JanGaJan.com

Is fun? JOY!

冬休みの宿題

よちよち.rbで冬休みの宿題をやりました。

Rails4でGoogle Map API連携アプリを開発する

宣言したのはRails4でGoogle Map API連携アプリを開発するという資料。
ざっくりとした内容は下記の通り。

  • scaffoldでtodoアプリを作り、Railsの基本的な機能や約束事を学ぶ
  • scaffoldで住所と座標を登録するアプリを作り、Googleマップを画面に表示して、登録した座標にピンを刺す

yochiyochi.rbで覚えた内容を短時間で一通り復習できました。
その他こんなところですね。

  • underscore.js便利。lodashというやつも使えそう。
  • googleマップとの連携がこんなにも簡単だったなんて。今度Gemの中身見てみよう
  • iphoneやipad用のfaviconの画像はいくつか用意しないといけない

アプリ用のGemを簡単に試したい時、モックを用意したい時なんかは使い勝手が良くてscaffoldいいなって思います。

Rubyで作る奇妙なプログラミング言語

早いうちに消化を![email protected]
[email protected]Rubyで実装しよう!という内容だったのでやることは写経です。本はRuby1.8,1.9向けでしたが、2.2で問題なく動きました。
作ってみた言語のサンプルコードです。

brainf_ck
1
2
3
++++++
[> ++++++++++ < -]
> +++++.
whitespace
1
2
3
4
5





無の境地ですね。

starry
1
2
        +               +  *       +     * .               +
           +  *          +     * .

キラキラしてます。

あと記号とか絵文字だけのbolic(絵文字が対応していないのでキャプチャで)

bolic

言語のパターンとして、

  • インタプリタ型
  • 中間言語型
  • トランスレーター

を試すことができます。
ソースコードをほぼ全て丁寧に解説していて構文解析の入門というか、Rubyプログラミングの入門にはもってこいです(付録以外は)
ParserやVMの基本的な仕組みや役割をRubyのソースコードで理解できます。
紹介の仕方も興味深くて、構文の実装を一通り紹介しながら組み上げていくパターンと、解析部と実行部を並行して作り上げていくパターンがあって、実装の拡張の方法も垣間見れます。あと文章が面白い。
唯一の難点は確認のためのプログラムを書くのがつらいこと。(上のやつですね)

構文ごとに解析と処理内容をコツコツ作っていけば言語はできるんですね。
大事なのはシンタックスと意味論(見た目と中身)。
データの持ち方のアプローチはいくつかあるみたいで、以下のようなやり方が示されていました。

  • テープ(ハッシュ)を使う
  • スタック(配列)を使う
  • 木構造を使う

木構造のところは再帰プログラムになっているので、紙に書きながら「なるほどー」とかやってました。面白いですね。再帰と仲良くなることを目指そう。

ちなみに付録でesoteric languageの闇を垣間見れます。付録と言いつつ一番面白いところなので心して読みましょう。著者の熱意を感じました(特にKEMURI)lambdaの丁寧な解説のところは基礎知識が必要だったので後で再チャレンジしたい。

そういえば、この本を読む前に「コーディングを支える技術」の前半を読んでおくと理解が早くなるかもしれません。

コーディングを支える技術

5章ぐらいまでしか読めなかった。正月のだらけに負けました。
一般的なプログラミング言語の基本的な構文がなぜ必要になったか歴史的経緯とか、言語間のちょっとした違いを交えながら、コーディングの知識を解説しています。
残りは時間のあるときにさら〜っと読んでみよう。

Comments