2011-10-01から1ヶ月間の記事一覧

Module#module_functionって必要なのかしら

ユーティリティ関数をモジュールに定義しておいて、名前空間を分けてグローバルに利用するというアプローチが良くある。Rubyでは、moduleを使ってメソッドをグローバル名前空間と切り分ける。例えばピュアRubyのWebサーバ「Webrick」には、webrick/httputils…

Mongrel2のコードリーディング……、と関係なく正規文法についてメモ

Mongrel2のコードを眺めていてRagelという有限オートマトンを一般的なプログラミング言語にコンパイルするツールのことが気になった。Ragelのユーザーガイドの冒頭に、rationale的なことが書いてある。それとか、Wikipediaで読み漁ったところを勉強メモとし…

Mongrel2とは関係なく「Ragel」……とも関係なくGarden Path Sentences

Mongrel2のsrc/http11/http11_parser.cを見てたら以下のようなコードがあった。 #line 454 "src/http11/http11_parser.c" switch( (*p) ) { case 33: goto st16; case 58: goto tr25; case 124: goto st16; case 126: goto st16; } if ( (*p) < 45 ) { if ( …

Mongrel2が面白い

クリーンなCで書かれたWebサーバ「Mongrel2」を読んでみた。コードの内外ともにドキュメントはしっかりしているし、関連ブログエントリもあって、非常に勉強になる。何より、毒舌のZed Shawの書く文章は面白くて飽きないのがいい。例えば、src/adt以下にはユ…