読者です 読者をやめる 読者になる 読者になる

コンパイラかく語りき

文系新卒プログラマーのメモ

Swift実践入門1 レッスン4

Swiftの練習です。 いよいよワードカレッジのレッスンもこれで最後ですね。 WordCollage - Teaching App Development with Swift - Swift Education chuckwebtips.hatenablog.com プロジェクトダウンロード 何はともあれ、プロジェクトをダウンロードします…

【Ruby】範囲の配列化

Rangeを使って配列を生成する方法について。ちょっと誤解していたのでメモ。 まず、[0..3]みたいに書けば[0, 1, 2]が生成されると思ってました。 実際には、0..3というRangeの入った要素数1の配列なんですね。 案外そんな勘違いをしている人はいるのでは?…

Python入門(後半)

ドットインストールのPythonレッスンの写経がおわりましたのでメモ。 今回は、関数やクラスについて。 こちらが写経メモ。 gistf0c8c66e9642024b6ef2babec57be34a passとかlambdaが初めて知る概念で面白かったです。 ラムダってあれですよね。難しいやつです…

【Ruby】injectの初期値に配列を設定

そういえば、injectの初期値って、別に数値に限らないんじゃない? そんな風にふと思い立って、やってみました。 inject (Enumerable) - Rubyリファレンス injectのリファレンスを見ると、だいたい初期値のサンプルコードはこんな感じです。 [1, 1, 1].injec…

python入門(前半)

機会学習に入門するために、まずはpythonに入門しました。 定番のドットインストールを消化したのでメモ。 かなり雑ですが、写経メモ。 gist5e8594823963f48aaca6ad7b27cb129c else ifがelifなのはちょっとした衝撃ですね。。 あと、forやwhileに続けてelse…

Swift実践入門1 レッスン3

引き続き、Swiftの練習です。 chuckwebtips.hatenablog.com 前回はラベルに関する操作を行いました。今回はUIボタンと呼ばれるパーツを操作します。 いつもどおり、下記のURLからプロジェクトをダウンロードします。 WordCollage - Teaching App Development…

【Ruby】ordメソッドとchrメソッドで、1文字とコードポイントの変換

Rubyで文字と数値を変換する方法。ここでの数値とは、文字に割り当てられたコードポイントと呼ばれる数値です。 まず、文字から数値への変換はString#ordメソッドを使います。 http://ruby-doc.org/core-2.2.0/String.html#method-i-ord 反対に数値から文字…

Swift実践入門1 レッスン2

引き続き、Swiftの勉強をしていきます。 前回のワードカレッジの続きです。 chuckwebtips.hatenablog.com 新たなラベルや、レイアウト制約を追加します。 はじめに まず、はじめに。インターフェースビルダー(XCodeでのビュー)と、iOSシミュレータとでは、…

【Ruby】配列の最多要素を取得

Rubyです。 配列でもっとも数の多い要素を取得する方法について、調べてみました。 どうやら、max_byを使うのがよさそう。 osa.hatenablog.com こんな感じ。 gist119ad15321cd485f62dcbe768c36d810 配列に対して、max_by関数を用いて、そのブロック内でcount…

【Ruby】割り算と剰余のメソッド復習

Rubyにはたくさんのメソッドがありますが、割り算や剰余を求めるためのメソッドがあるんですね。ビックリしました。 このページを参考にして、学習します。 www.rubylife.jp 写経写経。 gist2c79c5914680e5089045cd38af9e229d なるほど。。divとquoを使えば…

Swift実践入門1 レッスン1

Swiftの勉強です。 ひとまず、公式のSwiftツアーをほぼ終えました。 chuckwebtips.hatenablog.com 最後のほうのプロトコルやエラーハンドリングは実は未消化です。 基本的な文法を学んだ所で集中力が尽きてしまいました。クラス・構造体・Enumあたりまでは学…

ElmでつくるTodoList(5)

Elm

引き続き、ElmでTodoListをつくっていきます。 chuckwebtips.hatenablog.com ここで、ちょっと修正を行います。 Elmのプロの方からブログにコメントをいただけたので、そのフィードバックを反映します(嬉しい!) 型のimport TodoListを作り始めた頃、親子…

SwiftTourをやってみる(Enum編)

引き続きSwiftTourを消化していきます。 developer.apple.com 今回は時間がなかったため、Enumの箇所のみ写経しました。 gist90c7f94c1a39a8d341562dd77cfd13e8 Enumの箇所のみ、とは言え自分にとってはEnum自体が新鮮で、圧倒されました。 たぶん、まだしっ…

ElmでつくるTodoList(4)

Elm

ひきつづき、TodoListをつくっていきます。 chuckwebtips.hatenablog.com 今回はちょっとした機能追加をします。 現在、Todoを追加する際には、空文字でも追加できてしまいます。 (2つめのTodoが空文字) そこで、空文字の場合はAddボタンを押せないように…

【Ruby】先頭の1文字を大文字にする

Rubyで先頭の1文字を大文字にする方法です。 結論から言うと、capitalizeメソッドを使えばOKです。 ref.xaio.jp gist60583a25c54aad08dafe0c1d1b25de77 いやあ、Rubyってホントになんでもありますね。 最初こんな風に書いてた自分が恥ずかしいです。。 gist…

Elm-Architecture入門(6)

Elm

ちょっと間が空きましたが、Elm-Architectureの学習のつづきです。 前回の学習はこちら。 chuckwebtips.hatenablog.com この間に何をしてたかというと、TodoListを作っていました。 ずっと写経ばかりだったので、手を動かしてみようかなと。 chuckwebtips.ha…

SwiftTourをやってみる(中盤)

中盤です。引き続き、Apple公式のswift tourをこなしています。 今回はクラスとオブジェクトに関して学びました。 gist243819b3890246b8824394658f0acbeb 継承っぽいものがあったり、ゲッタ・セッタがあったり、基本的にはJavaと一緒ですね。 ただ、イニシャ…

SwiftTourをやってみる(前半)

Swiftの勉強記録です。 前回は輝かしいハロワデビューをしました。 chuckwebtips.hatenablog.com 今回からは、Swiftのシンタックスやデータ型に触れていきます。 techstars.jp こちらのありがた〜いブログポストによると、たくさんのチュートリアルサイトが…

SwiftでHelloWorld!

今日からSwiftに入門します。 なにはともあれ、HelloWorldですね。 qiita.com Swiftを書いて実行する環境は、特にこだわりもないので、XCodeを使います。 XCodeのざっくりとした使い方は、ドットインストールで学んできました。 dotinstall.com XCodeが初め…

【Ruby】Timeクラス入門

競技プログラミングで時間を扱う問題が出ました。 RubyでTime関数を書いたことがなく、良い機会なので軽く勉強してみました。 gist550d361d5256c1f74a5c3de7fc31d568 Time.atで時間の起点を指定できるのがいいですね。 フォーマット指定のstrftime関数も覚え…

ElmでつくるTodoList(3)

Elm

ひきつづき、ElmでTodoListをつくっていきます。 前回は、Todoに任意の文字列を入力できるようにしました。 chuckwebtips.hatenablog.com 今回は、それぞれのTodoに終了機能をつけていきます。 終了機能の実装 チェックマーク まず、見た目から追加します。 …

ElmでつくるTodoList(2)

Elm

ひきつづき、ElmでTodoListをつくっていきます。 前回までで最小構成ができたので、ここからはTodoListらしい肉付けをしていきます。 chuckwebtips.hatenablog.com テキスト入力 現在、Todoの追加はボタンのクリックのみです。 ボタンをクリックすると、do s…

ReactNative入門(2)

ReactNativeの学習を続けていきます。 chuckwebtips.hatenablog.com 前回まででセットアップが終わり、XCodeで画面を立ち上げることができました。 といっても、指示通りにやるだけですが。。 今回からは、公式のチュートリアルに従って映画リストを作成して…

ElmでつくるTodoList(1)

Elm

今回から、ElmでTodoListを作っていきます。 ちなみに、elmでtodolistを作成する場合、以下のレポジトリが参考になるかもしれません。 github.com チュートリアルというほどではないですが、学習の参考になるはずです。 ただし、ただの写経になってしまいそ…

【glob】ignoreで除外ファイルを指定

globで初めてignoreを指定したのでメモ。 まずはコード。 gist2e4b810930e2c89a05b282b1f686734b ※ elmプロジェクトを例にしました。通常は、node_modules/**/*.jsとかにすれば良さそう。 ignoreする場合は、第二引数にオブジェクトを渡せばOK。キーをignore…

ReactNative入門(1)

今日からReactNativeの勉強を始めます。 ReactNativeとは、JavaScriptでネイティブアプリが書けてしまうすごいやつです。 ずっと勉強したかったのですが、どうやら前提知識としてReactができる必要があるらしく、遠回りをしていました。 年始からReactとRedu…

Elmシンタックス(3)

Elm

引き続き、Elmのシンタックスのお勉強。 前回は再帰関数について学びました。 chuckwebtips.hatenablog.com 今回は、union typeのうちeitherというものについて学びました。 union typeってなんやねんと思ったのですが、要は直和型っぽいです。 ただ、こんな…

【Ruby】コレクション系メソッドおさらい

Rubyを始めて4ヶ月。だいぶ慣れてきました。 ここらで配列操作系のメソッドをおさらいします。 gistですみません。。 gistd977462ee6b2417050933bd9bf759945 最初はeachだけでがんばっていたのですが、ようやくmapやinjectを使えるようになってきました。 …

【Ruby】max_byで最大要素の取得

Enumerableクラスのmax_byが地味に便利だったのでメモ。 リファレンス↓ ruby-doc.org Enumerableの要素に対して、評価式を渡して、大きいものを返します。 コード例は以下のとおり。 gist8829cdac7dead0afd066b9d7a80aaac7

Elm シンタックス(2)

Elm

Elmのシンタックスについて、ひきつづき勉強していきます。 前回は基本的な関数の用法について学びました。 chuckwebtips.hatenablog.com 今回は関数の中でも、再帰を使った処理について学びました。 http://elm-lang.org/examples 写経したコードがこちら。…

Elm シンタックス(1)

Elm

Elmのシンタックスについて、軽く勉強しました。 まだまだ記法に慣れておらず、公式のサンプルを写経しました。 今回は、以下のCore > functionsを消化。 http://elm-lang.org/examples 書いたコードがこちら。 gist35a6ce778af8c49457a0df837d20f579 Elmで…

"魅惑のElm標準ライブラリ"を読んだ

Elm

Qiitaのこちらの記事を読みました。 qiita.com Elmで定義されているデータ型とその内部実装について、解説がなされています。 以下、読みながらのメモとなります。 直和型 基礎知識としまして、Elmにおいて直和型は以下の様にctorフィールドを持つObjectとし…

Elmのコンパイルにウォッチ機能がないから外部ファイルを作った

残念ながらElmのコンパイルにはwatchオプションがありません。つまり、「ファイルの変更を感知してコンパイルを行う」といったことができません。 そこで、Nodeの標準パッケージを利用して、擬似的なwatch機能を作ってみました。 gist8b7482df27f3e1b80f4823…

【node.js】execでunixコマンドを実行する

Node.jsのお勉強です。 Nodeの標準パッケージのうち、chukd_processというものを使えば、unixコマンドが利用できると知ったのでメモ。 Child Process Node.js v0.11.11 Manual & Documentation コマンド実行関数 ざっと見たところ、コマンドを実行できる関数…

【node.js】fs.watchでファイルを監視

タスクランナーやバンドラのwatch機能ってあるじゃないですか。あれらはもちろん知っていたのですが、nodeの標準パッケージにもwatchがあるんですね。初めて知りました。 というわけでメモ。 fs.watch 使い方:fs.watch(filename[, options][, lister]) 指定…

Elm-Architecture入門(5)

Elm

引き続き、ElmArchitectureの勉強をしていきます。 chuckwebtips.hatenablog.com 前回は動的にカウンターを作成する方法を学びました。 今回は、削除機能を改良して、それぞれのカウンターに削除ボタンをつけるようにします。 github.com レンダリング関数の…

npmパッケージ「array-flatten」

npmのパッケージを触ってみるシリーズ。 chuckwebtips.hatenablog.com chuckwebtips.hatenablog.com array-flattenとは 配列を平坦化してくれるパッケージです。 詳しくは後述の例を参照ください。 github.com インストール $ npm install array-flatten 使…

ちょっとES2015を書いて、手元で実行させたいときにやること

メモ書きです。 npmのパッケージをインストールして、それを手元で作動させてみる。みたいな時があると思います。 タスクランナーを走らせたりバンドルするまでもないけど、さくっとトランスパイルしたい。 そんな時、babelをターミナルで動かすと便利だなと…

Elm-Architecture入門(4)

Elm

引き続き、Elm-Architectureのサンプルを見ていきます。 chuckwebtips.hatenablog.com 前回は、複数のカウンターを作成しました。 今回は動的なカウンターを作成します。 github.com カウンターモジュール カウンター自体は前回作成したものを再利用します。…

【Ruby】時計の針の距離を算出する

競技プログラミングの回答メモ。 実際の問題はちょっと違うけど、エッセンスは同じです。 abc013.contest.atcoder.jp 問題 まず、2つの数値が与えられる。それぞれの数値は、時計の長針と短針の位置を指し示す。ここから、2つの針の最短距離を求めよ。 ※ …

Elm-architecture入門(3)

Elm

前回までは、Elm-architecturの基本について学びました。 chuckwebtips.hatenablog.com 今回はちょっとだけ自分で手を動かしてみます。 トリプルカウンター 作成するのは3つのカウンターです。とはいえ、前回2つのカウンターを作ったのでホントにカンタン…

Elm-architecture入門(2)

Elm

前回に引き続き、Elm-architectureの例を消化していきます。 chuckwebtips.hatenablog.com 例2 ペアカウンター 前回は単一のカウンターを作成しましたが、今回はペアのカウンターを作成していきます。 github.com カウンターが2つということは、カウンター…

Elm-architecture入門(1)

Elm

前回まではElm入門と題して、Elmの基本について学びました。 chuckwebtips.hatenablog.com 今回からは、Elmの重要概念となるElm architectureについて学びます。 ここからの学習は、以下のレポジトリに沿って行います。 github.com Elm-architectureとは Elm…

Elmに入門する(3)

Elm

引き続き、Elmの入門記事です。 前回は恒例のHello Worldをしました。 chuckwebtips.hatenablog.com 今回はスタートガイドの残りの部分を消化しつつ、新しいことを学びます。 スタートガイド elm-repl REPLってなんか聞いたことがありますね。 ”値や関数に直…

【Ruby】文字列から特定の文字を消す

文字列から特定の文字を消す方法について。 String#deleteを使えばいいわけですね。 ruby-doc.org ただ、引数がややこしかったのでメモ。 参考になったポスト↓ qiita.com gistc156aecd5aa77d629579 引数には、範囲指定や”以外”指定ができるんですね。

Elmに入門する(2)

Elm

前回は、Elmという言語について簡単に学びました。 chuckwebtips.hatenablog.com 今回は、Elmをインストールして実際に書いてみます。 インストール インストールします。 公式:http://elm-lang.org/install Mac用のinstallerをクリック。 エディタ用にシン…

Elmに入門する(1)

Elm

今日から何回かに分けて、Elmに入門してみます。 AltJSの一種で、関数型リアクティブプログラミングであるElm。非常に楽しみです。 Elmとはなんなのか 1. HTML/CSS/JSにコンパイルされる AltJSの一種ということで、HTML/CSS/JSにコンパイルされるようです。…

自分なりに順を追って、Reduxを理解する(9)

Reduxのお勉強。いよいよ大詰めです。 前回は、コンテナコンポーネントで作成したpropsを、プレゼンテーションコンポーネントで利用するように追記をしました。 chuckwebtips.hatenablog.com 今回はその中でも、ページ送りのクリックイベントについて見てい…

自分なりに順を追って、Reduxを理解する(8)

引き続きReduxの勉強です。 前回はreducerを書いたので、Reduxに必要な部品は全てそろいました。 chuckwebtips.hatenablog.com 今回は、コンテナコンポーネントでpropsに変換したstateや関数を、プレゼンテーションコンポーネントに組み込んでいきます。 Pag…

自分なりに順を追って、Reduxを理解する(7)

Reduxのお勉強です。 前回はactionと、コンテナコンポーネントを作成しました。 chuckwebtips.hatenablog.com 今回は、reducerという、stateとactionを受け取ってstateを更新する処理を書きます。 qiita.com 起点となるReducerの作成 まずは全てのreducerの…