-
20080124
001260
- Guinness
銀座のバグースにて。
[ permalink ] [ 0 comment(s) ] [ 0 trackback(s) ] -
20080120
001259
京王百貨店 新宿店の七階催事場にて開催されている「有名駅弁と全国うまいもの大会」に行ってきました。 20:00 の終了間際に行ったので既に売り切れている駅弁も多かったのですが、幸いなことにお目当ての「かきめし(厚岸町)」を買うことができてほくほくしながら帰ってきました。 ひとつ980円也。
ぼくは小学三年、四年の二年間、厚岸町に住んでいました。 この町は牡蠣の養殖が盛んで、どれくらい盛んかというと海に牡蠣の殻でできた島があって、その島に神社を建ててしまうほど。 弁当のふたを開けると、当時も何度か食べたことのある懐かしい景色。 「かきめし」という名前に違わぬ、しょうゆで甘く煮た小振りながらも濃厚な牡蠣が四つ、ご飯の上に鎮座ましましております。 完全にご飯の色に同化してしまっていますが、牡蠣だけではなくつぶ貝とあさりも載っています。 山の幸からは椎茸と蕗。 もちろん主役は牡蠣なのですが、その他の脇役もなかなか良い味を出しています。 いやあ、懐かしかった、美味しかった。
北海道の隅っこの小さな駅で売られている弁当を、東京にいながらにして食べることができるなんて、嬉しいようなちょっと情緒に欠けるような複雑な気分ですなぁ。
-
001258
- Guinness
浅草橋のペルシャ料理屋さんにて。
-
001257
- エクストラスペシャルビター - エチゴビール
- Anchor Christmas Ale 2007
- なまらにがいビール
飯田橋の La cachette にて。
-
20080114
001256
OLPC へ搭載するために、初代 SimCity のソースコードが GPLv3 下で公開されたそうです。 ただし、Electronic Arts 社の QA を通ったもの以外は "SimCity" と名乗ってはいけないそうで、GPL 版は "Micropolis" という名称になっているとのこと。
ダウンロードは以下から。
配布されている Linux 版バイナリは、我が家の CentOS4.6 (Intel Pentium D) ではなぜか Floating point exception が出てしまって動かないため、ソースからコンパイルしました。
xorg-X11-devel パッケージを追加し、micropolis-activity-source.tgz に以下のような変更を加えたところ、コンパイルが通りました。
残念ながら Cygwin/X に飛ばしての実行はできませんでしたが、VNC 経由で以下のように無事動作しました。
はるか昔に何度か遊んだことがあるゲームなので、なにやら懐かしいです。
-
001255
- Samuel Adams Boston Lagar
表参道のどこぞのお店で。
-
20080110
001253
- アップルシナモンエール - サンクトガーレン
- Guinness
洗足の PANGAEA にて。
-
20080107
001252
昨年末、12/07 に Ruby on Rails 2.0 がリリースされました。 種々の変更点がありますが、特に気になったのは scaffold の刷新。 Ruby on Rails 1.2 では scaffold_resource とされていたものが、新たに標準の scaffold に格上げとなりました。 Ruby on Rails は RESTful なフレームワークとしてさらに歩を進めた形ですな。
この scaffold を利用すると、実に簡単に RESTful な API を備えたリソースを作成できます。 Ruby on Rails 2.0.2 からデフォルトの RDBMS となった SQLite3 を使って、この機能を試してみました。
Ruby を SQLite3 に対応させる前述の通り、Ruby on Rails 2.0.2 からはデフォルトの RDBMS が SQLite3 となりました。 これまでの標準も比較的敷居は低い MySQL でしたが、今回さらにそれが下がることになります。 実証コードやプロトの開発には SQLite3 でもある程度事足りますしね。 もちろんオプション指定で MySQL も引き続き利用可能です。
さて、Ruby から SQLite3 を使うための設定を行います。 まずは SQLite3 のパッケージのインストール。 もともとインストール済みの場合はこの手順は不要です。
$ sudo yum install sqlite sqlite-devel
続いて Ruby から SQLite3 を叩くために、gem にて sqlite3-ruby をインストール。
$ sudo gem install sqlite3-ruby
アプリケーションの作成実験用に適当な名前でアプリケーションを生成します。
$ rails example00
続いて scaffold を利用してリソースを生成します。 引数にはリソースが持つ属性とその型を指定します。 このあたりの書き方は Ruby on Rails 1.2 の scaffold_resource からは変更されているようです。 ここでは、リソース User が属性 (name:stirng, password:string, email:string, is_admin:boolean) を持つとします。
$ cd example00 $ ./script/generate scaffold user name:string password:string \ > email:string is_admin:boolean
これでリソース User の定義、それに対する CRUD を提供する RESTful な API、その API への Web インタフェースが生成されました。 ただし、今のこところは HTML4 の制約を超えることはできないので、Uniform Interface を理想的な形で実現することはできません。 代替手段として、生成される Web インタフェースでは "_method" というパラメータに HTTP method 名を埋め込んで POST する手法(overloaded POST) を採っています。 もちろん、直接 HTTP を話せるクライアントを用意すれば、PUT, DELETE などでリソースを操作することが可能です。
scaffold の生成によって、データベースのスキーマ定義も完了しています。 db/migrate/001_create_users.rb を覗くと、引数に渡した属性が書かれていることが確認できるはずです。 というわけで、データベースを作成します。
$ rake db:migrate
サーバーの起動サーバーを起動して動作を確認してみましょう。
$ ./script/server
特に設定を変更していなければ TCP 3000番を聴くはずです。 Web ブラウザでたたいてみましょう。
- http://example.com:3000/users

まだユーザーは作成されていません。 "New user" のリンクをクリックします。

ユーザーの作成画面です。 この画面には対応する RESTful な API はありません。 リソース作成用のフォームを表示するために、Web インタフェースに用意された画面です。 このフォームを埋めて "Creat" ボタンを押下すると、/users に POST されてユーザーが作成されます。


つまり /users は User のファクトリ・リソースです。 画面では /users/1 が表示されていますが、これは /users が 302 Found を返し、Location ヘッダフィールドで /users/1 に飛ばしているためです。 ここで 302 Found はちょっとおかしいですね。 201 Created のほうが意味がしっくりきます。
続いて "Edit" のリンクをクリックしてみます。

これも /users/new と同様に、フォームを表示するためのページで RESTful な API とは一対一対応してはいません。 ここでこのページのソースに注目。 こんな箇所があるはずです。
<input name="_method" type="hidden" value="put" />これが、HTML4 の制約を回避するための overloaded POST を表した箇所です。 Ruby on Rails は "_method" に指定された値を HTTP メソッドとして扱い、呼び出すアクションを決定します。 この場合は既存リソースへの PUT なので :action => update が呼ばれます。 繰り返しになりますが、直接 HTTP PUT メソッドをたたくようなクライアント・ツールを使用した場合には _method=put と同等の処理が行われるので overloaded POST は不要です。 値を一部書き換えて "Update" しましょう。


最後は DELETE です。 一覧画面で "Destroy" リンクをクリックします。


JavaScript で処理されてしまうので分かり辛いかもしれませんが、この場合も _method=delete が POST されています。

当該リソースは削除されました。 くどいかもしれませんが、/users/1 に直接 DELETE メソッドを送り込むことでユーザーを削除することも可能です。 むしろ、そちらが本来の姿です。
といった具合に、実に簡単に RESTful な API を備えたリソースを作成することができました。 データ・ストアに SQLite3 を使うことで、さらにお手軽に実証レベルのアプリケーションを作成することができそうです。 可搬性も向上しますしね。 ひとまずは「素」な状態のリソースを作ることができたので、以降これをベースに手を加えていってみたいと思います。
-
20080106
001251
今年は群馬県の貫前神社に初詣に行きました。 上野国の一宮という、なかなか由緒ある神社のようです。 下り宮といって石段を降りて参拝する珍しい形態の神社なのだそうで。 そこで目にした光景がこれ。
焼かれるのを待つ達磨の群れです。 もう達磨ダルマだるま・・・。 群馬県高崎市には少林山達磨寺というお寺もあったり、このあたりはなにかと達磨が盛ん(?)な土地柄なようです。 みなさん達磨を連れてきてはこの達磨の山に加えて立ち去っていきます。 ぼくとしてはかなり珍しい光景だったのですが、周りの人たちには当たり前すぎる光景のようで誰も目もくれません。 写真を撮っていたのもぼく一人だけのようでした。
ちなみに、達磨は火にくべると爆発するのでご注意を。 むやみに焼かないように。
-
20080105
001250
我が家では、以前に結婚式の引き出物としていただいた中華鍋をここ数年の間使い続けてきたのですが、どうも世に噂に聞くような「使うほどになじむ」状態になってくれません。 「焦げ付かない」という謳い文句のもとに鍋底にエンボス加工が施されているのですが、むしろこのエンボスの溝の部分が真っ先に焦げ付き、木べらが届かないために調理中にははがせない、という状態。 うーむ、なんともおかしい。
毎回何か作るたびに焦げ付く中華鍋に嫌気がさし、このたび買い替えを決意しました。 いろいろと調べた結果、この中華鍋が良さそうだという結論に。
世に中華鍋は数あれど、打出しの製法を採っているのは山田工業所くらいのものだそうです。 職人がひとつひとつ、鉄板を数千回叩くことによってこの丸い鍋底を作り上げているとのこと。 うむ、素晴らしい。 というわけで、かっぱ橋商店街へと赴いて、山田工業所の中華鍋(北京鍋)30cm径 / 1.2mm厚 を購入してきました。 鈴木信也機械製作所にて 2,400 円。 特価とのことで、ほかのお店よりも400円程度安く購入できました。
まずはガスコンロに30分ほどかけて錆止めを焼き切り、一旦水洗い。 このときの鍋肌が手に吸い付くような感覚は、まるで鋼の包丁の肌理とそっくりです。 背筋がぞくりとします。 続いて油を引いて屑野菜を空炒め。 おぉぉ、軽くて振りやすい。 鍋肌での野菜の回りも滑らかです。
その後、焼きそばなども作ってみましたが、非常に快適です。 焦げ付きにくく、多少焦げても木べらでざっとはがせます。 今までの重いエンボス加工鍋とのあまりの違いに愕然です。 これまでの苦労は一体何だったんだ・・・。 使用後はすぐに水とたわしでざっと汚れを落とし、火にかけて水分を飛ばした後に油を引いておけばお手入れ完了。 洗剤は使わないように。