メタプログラミングRuby 月曜日

メタプログラミングRubyを読み始めた。第一部は月曜から金曜にわかれていて、、、、、 まぁ毎日読めってことですな。

というわけで、機能はRubyのオブジェクトモデルに関して読んでいた。

ProductName メタプログラミングRuby
Paolo Perrotta
アスキー・メディアワークス / ¥ 2,940 ()
在庫あり。

rubyにはancestorsっていうメソッドがあって継承関係を調べることができる。

pythonだとこんな感じか?

def ancestors(ins): return [c.__name__ for c in ins.__class__.mro()]

クラスに関してはPython Types and Objectsが分かりやすかった。

あと、pythonでのメタプログラミングはエキスパートPythonで少し触れられている。

ProductName エキスパートPythonプログラミング
Tarek Ziade
アスキー・メディアワークス / ¥ 3,780 ()
在庫あり。

Python,Ruby,PerlのMicroframework

Flask周りを調べていたらいくつかあった

Python

Ruby

Perl

Dancer面白そう。

#!/usr/bin/perl
use Dancer;

get '/hello/:name' => sub {
    return "Why, hello there " . params->{name};
};

dance;

Scalaプログラミング入門 6-9章

一通り読んだ。

次の2章は内容がついて行けないとこがあったので、また読み返すことになると思う。

  • 6章 アクターと並行処理
  • 7章 トレイトと型、アーキテクトの秘密道具

7章でドウェムジーのRubyのやつをScalaに移植するっていう話があったんだけどRubyの元ネタ知らんかったので。

8章はパーサーで、よくある四則演算だったのでわかりやすかった。後半でJSONパーサ書いてtwitterにアクセスするというサンプルがあったのだけど、後で手動かしてみる。

ProductName Scalaプログラミング入門
デイビッド・ポラック
日経BP社 / ¥ 3,360 ()
在庫あり。

入門ってかいてあるけど、最初に読む本としてはつらいかも。Scalaスケーラブルプログラミングのほうが入門には適してる。

ProductName Scalaスケーラブルプログラミング[コンセプト&コーディング] (Programming in Scala)
Martin Odersky,Lex Spoon、Bill Venners
インプレスジャパン / ¥ 4,830 ()
在庫あり。

ゼロから学ぶOAuth

ゼロから学ぶOAuthの第二回のサンプルを試した。

tcpflowはifconfigで適切なインターフェースを調べてから

sudo tcpflow -c -i en1

とかやった。

pythonのOAuthのモジュールはoauthoauth2ってのがあって、どっちがよいんだかわからん。

あとで読む

A Face for Richie Hawtin

ruby-processingのところのGalleryにあったA Face for Richie Hawtinはマイクの音に反応する。

ffrh

椎名林檎の時は暴走するを流して適当にスクリーンショットを撮ってみた。

あとでコードをちゃんと見てみる。

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

予約した

ProductName Rubyで作る奇妙なプログラミング言語 ~Esoteric Language~
原 悠
毎日コミュニケーションズ / ¥ 2,814 ()
在庫あり。

Quine

Esotericを読み始め。

ProductName Rubyで作る奇妙なプログラミング言語 ~Esoteric Language~
原 悠
毎日コミュニケーションズ / ¥ 2,814 ()
在庫あり。

一章の練習問題にファイルのオープンを使わないでQuine

rubyだとかなり短く書けるのね。

printf a="printf a=%p,a",a

perlだとsigilが必要な分だけ難しいなぁ。

シングルクォートをq{}にして$_に入れてevalするとか。

HQ9+

HQ9+の実装終了。

ProductName Rubyで作る奇妙なプログラミング言語 ~Esoteric Language~
原 悠
毎日コミュニケーションズ / ¥ 2,814 ()
在庫あり。

HQ9+のQはQuineのQだったのね。

Brainf*ck

Brainf*ckの実装を通して、チューリングマシンに対する理解が深まった。

ProductName Rubyで作る奇妙なプログラミング言語 ~Esoteric Language~
原 悠
毎日コミュニケーションズ / ¥ 2,814 ()
在庫あり。

この本おもしろいですのう。

Starry

スタック型のオリジナル言語を本を読みながら写経

サポートサイトの正誤表

ProductName Rubyで作る奇妙なプログラミング言語 ~Esoteric Language~
原 悠
毎日コミュニケーションズ / ¥ 2,814 ()
在庫あり。

シンタックスとセマンティクス

次は最後の言語で、再帰下降パーサを使って構文解析をするやつを作るらしい。Higer-Order Perlだと8章あたり。