2006-02-02(Thu) 2005年12月64日 [長年日記] [Edit]
■1 『RailsによるアジャイルWebアプリケーション開発』
AWDwR、すなわちRails! 達人! オーム社! 前田さん! 3,990円! 2月って何日なのさ?!?!?! 我らがJoe(とDHH)のアイコンは残ってるんでしょうか????
via moroの日記。
(TODO: アサマシャブルになったら再度更新すること)
2006-02-03(Fri) 2005年12月65日 [長年日記] [Edit]
■1 達人プログラマーの本棚:
『Rails Recipes』PDF β版
AWDwRの邦訳発売の嬉しいニュースに続いて、『Rails Recipes』もPDFのβ版が入手可能に。βの時点では継続的インテグレーションとかRakeとか自己再帰m:nとかタギングとかAjaxとかメール受信とか添付メールとかfixtureのTipsとか、全124ページ。Final Releaseまでにレシピは増えるのかしら。
著者は『My Job Went to India』で「RubyプログラマはHaskellを学ぶべし」(要旨)と言い放ったRuby界のファウラー、Chad Fowler……ってMartin FowlerもRails Conf 2006でしゃべるそうですが(っていうかPaul Graham降臨!!)。
それにつけてもRailsConf2006、Martin Fowler, Dave Thomas, DHH, Paul Grahamが一同に会するって、歴史の教科書に載るんじゃないの。行きたいなあ。すごく行きたいなあ。はてなキーワードに「RailsConf2006行きたい!」と書くと(ry
2006-02-08(Wed) 2005年12月70日 [長年日記] [Edit]
■1
『オープンソースマガジン』2006年03月号
現物はまだ見てないんだけど:
第2特集:Ruby on Rails 1.0の世界
- Part 1 Instant Railsで始めるWindows環境のRails
- Part 2 Locomotiveで始めるMac OS X環境のRails
- Part 3 Rails vs. Catalyst
- Part 4 言語内DSLの概念とRake
- 角谷信太郎
ひとりだけRails1.0の世界と関係ないことを書いてる人がいるけど気にしないでください。はてな率75%。
■2 シカゴシカゴシカゴシカゴ……シカゴ 書けば書くほど恋しくなる
煽られてるのは百も承知なのだけれど、YAPC::Asia 2006 Tokyoの4,000円の金策にも困る今日この頃。私もガスコンロでハンガーを折り曲げて白パンを焼きたいッ!!
■3
DVD:『クレージーキャッツ 作戦ボックス』
これはAmazonギフト券にて。黄金作戦。
2006-02-09(Thu) 2005年12月71日 [長年日記] [Edit]
■1 Rabbit 0.3.2 リリース
リリースお疲れさまです。マウスジェスチャがサポートされたらしい。どうやって使うんだ。あと、モルドール級の茨の道だったWin32環境での動作が改善されてるらしいよ。2/9も「肉の日」なのね。
明日のデブサミ2006のセッションはもちろん0.3.2でやる予定(っていうかEdge Rabbitだけど)。Rabbitを使うのはいつもプレゼン直前なので、いつになってもパッチを投げられるようになれない。
■2 デブサミ2006:1日目
- はぶさんのセッション
- 終盤、怒涛のCoddのリレーショナルモデル解題に震えた。目からウロコで、はぶにっきに書いてある色んなことが私のなかで繋がった。見逃した方、残念でした。
- 高橋さんのセッション
- 高橋メソッド421枚のデブサミテンプレ仕様。Webアプリのライフサイクル。ネゴ重要。契約重要。テクニカル(?)なキーワードがLL,Rails,internal DSL,Rake,PofEAA,XP2.0……って既視感が(w そして衝撃のラスト。見逃した方、残念でした。
- 日本Rubyの会のブース番
- はじめて日本Rubyの会の役に立ったよ!
明日は午後の自分の出番が終わった後は「日本Rubyの会」のブース番をしてると思います。
2006-02-10(Fri) 2005年12月72日 [長年日記] [Edit]
■1 デブサミ2006:2日目
お、終わりました……。あとで書く、と書くのでいまは精一杯。
(追記)資料を置いときます:
- 『プロジェクト・オートメーション〜コンピュータもチームメンバだ!!〜』(PNG+HTML via Rabbit), アーカイブ(tar.gz)
- 検閲済。発表時にものから少しだけ変わってます(オーム社の応援を追加)。247枚。
- 『プロジェクト・オートメーション〜延長線〜』(PNG+HTML via Rabbit),アーカイブ(tar.gz)
- 時間が余ったときに備えて殴り書いたもの。当日は話してませんが、問い合わせが何件かあったので、置くだけ置いておきます。
2006/02/13追記(1): アーカイブも作成しておきました。
ナローバンドなt-wadaさん向け特製なのでtar.gzのみです。他形式が欲しい方はpullしてください。
2006/02/13追記(2): "「『単調な仕事を自動化したい』という“態度”が技術者には必須」,永和システムマネジメント角谷氏"
大森さんによる記事。50分間に私が「何を」しゃべったのかの全てがまとめてある。素晴らしい。「誰が」しゃべったかについては言及されていないけれど、それは当日に参加されていた皆さんの記憶にだけ残るべきものだから、これでいいのだ。「角谷アレンジ」の狙いは「記録に残るプレゼンよりも、記憶に残るプレゼン」ですよ。
■2
デブサミ2006:2日目(あとで書いた, 2006/02/14)
今日は「勝負の日」。なので、_whyな「addiction is like pokemon.」Tシャツ。でもツッコミを入れてくれたのはまつもとさんとささださんだけ——って、Rubyの中の人に気づいてもらえれば本望。ささださんからは「RubyちゃんTシャツにすればいっぱいツッコミもらえますよ」とのアドバイス。
プレゼンの構成がギリギリまで決まらず、最終構成が「降りて」来たのは当日朝、目黒へ向かう山手線車中。持っててよかったMoleskine。資料完成はセッション開始時刻の30分前。本来ならばスピーカー間の交流の場であるべき控室で独りずーっと殺伐としていて周囲に不快な思いをさせてしまったと反省。 セッションまでに間に合うかどうか不安で泣きそうだったが、本番の壇上ではホントにに泣いちゃった。はぶさんに「さくらばさんと角谷さんのは見たかった」と書かれたことは光栄だけれど、見られてなくて助かった。
masarlさんの言葉への言及は、id:emeitchさんからのサジェスチョン。心の底から感謝します。masarlさんのミームが一人でも多くの方に伝わりますように。
今回のセッションに臨んでの自分のチャレンジは2つ。1つ目は自分の考えがホビット庄からどれぐらい遠くまでリーチするのか。2つ目は、50分もの時間をちゃんと使うことができるのか。
まず1点目。セッション終了後にモナッシュ大学の学生さんと名乗る方が「感動した!」と言ってくださったので、豪州南部ぐらいまではリーチした模様。ネット上では日経ITProのニュースに掲載されて、はてブで100以上の脊髄反射を起こすことができた。自分としては(って記事を書かれたのは大森さんですが)上出来だ。
2点目については、きっかり終了予定時刻通りに終われたことを何よりも評価したい(時間が余らなかった!)。5分以上のプレゼンはペース配分がわからん。「時間が余りそうならゆっくり話せばいいじゃない」という妻のアドバイスに従ったら、ゆっくりすぎてちょっと時間が足りなくなりそうだったが、最後の5分はいつものペースでやれた。やっぱり5分がいいよ。
自分の出番が終わったあとは燃え尽きちゃって、セッションを聞ける状態にあらず。なので日本Rubyの会のブースで頼まれてもないのに今日も勝手に留守番。「日本Rubyの会のほうから来ました」みたいなツラして座れて私は大満足。ささださんのYARVの開発の邪魔してなかったかなぁ。コミュニティブース撤収と同時に私も撤収。天一を食べて帰宅。
最後になっちゃったけどクレジット。まず、お忙しいなか私の拙い話を聞いてくださった皆さん、ありがとうございました。次に、私に50分もの時間を与える英断を下したデブサミの中の人たちに感謝。また、事前のグダグダなレビューに付き合ってくれた皆さん、ありがとうございました。ここまでは当日にも言った。以下は、ここで追加しているけれど、欠かすことのできない大事な人たち:
- プレゼン前日に私が書いたテーマ記述通りにRabbitを修正してくれた須藤さん、カッコイイ。
- 妻と息子にはホントに迷惑をかけました。ありがとう、と言いつつもまだしばらく色々負担をかけます。今後もよろしくお願いします。
- そしてmasarlさん、Quick Junit Pluginのメンテをサボっててごめんなさい。
ふりかえり
まとめておくと:
KEEP
- Rabbit
- 日本Rubyの会のブースの留守番
- 時間厳守
- 事前に素振
- お辞儀をちゃんとできた
- 高橋メソッドの実装
PROBLEM
- 壇上で泣いた
- ストーリーの練り込みとメリハリが足りなかった
- 演台の後ろに引っ込んでしまった
- 進行表を開始からの経過分でつくってしまった
- Rabbitがスケールしなかった
- スピーカー控室で直前まで資料を作成しながら殺伐としていた
- 素振りがギリギリになってしまった
TRY
- Quick JUnit Pluginのメンテの再開
- Rabbitを自分でイジれるようになる
- 余裕をもって資料を完成させる
- 進行表は「hh:mm」フォーマットで作成する
■3 高橋メソッド標準装備のRabbitを高橋会長が「利用できない」件について
Rabbit史上初(推定)、280枚のスライドをキャッシュしてたらセッション開始5分前にRabbitがXを道連れにして死亡。ものすごい勢いで汗が噴き出したが、キャッシュ無しでなら動いたっぽいので、赤外線リモコンマウスを使うのを諦めて演台の後ろに引っ込むことになった。セッション中にはRabbitは落ちることなく使命をまっとうした。よくがんばった。
ところが、デブサミでの元祖高橋メソッドのセッションはスライド枚数、423枚。Rabbitは今後は少なくとも500枚ぐらいまではスケールする必要がありますな :-)
○ kou [計算間違ってる... 24はbitだから3にしなきゃいけないのか... 「前後10ページなら」とかいうチェックが面..]
○ 咳 [PixmapはX11サーバの資源で貴重なんですよね。キャッシュを二段階にして、一次はPixmap、二次はXImage..]
○ kou [あぁ,だからXサーバが太っていくんですね. Imageを使うにしても,画像としてキャッシュすると結局メモリ使用量がす..]
○ 咳 [資源番号も貴重なのです。> Xサーバ側の資源。]
○ TrackBack [http://mugiwara.jp/ki/?200602b#200602190 麦わら帽子の「記」 いまさらながら..]
2006-02-17(Fri) 2005年12月79日 [長年日記] [Edit]
■1
PofEAA読書会:第10回参加申込受付のお報せ
2006/2/26(Sun.)の13:00に開催する、PofEAA読書会第10回の申込受付を開始しました。申込締切は2006/2/23(Thu.)の17:00です。
今回は会議室がちょっと狭めだそうです。参加を検討されている方、申し込みはお早めに。
2006-02-19(Sun) 2005年12月81日 [長年日記] [Edit]
■1 0x1F
age +=1. いよいよ10代最後の年。自分の誕生日なので息子にレゴを買ってやった。バカでっかいヤツ(クアトロよりもデカい)はどこで入手できるのだろう。
2006-02-20(Mon) 2005年12月82日 [長年日記] [Edit]
■1 扁桃腺炎
0x1F経過初日でいきなり扁桃腺炎。熱が39.9℃とかになると世界の秘密を知るような夢を見ることがわかった。田沢湖の下にはもう一つ湖があって、龍神はそっちに住んでるよ。いまの龍神は5400万歳で2代目だそうです。
2006-02-21(Tue) 2005年12月83日 [長年日記] [Edit]
■1
『RailsによるアジャイルWebアプリケーション開発』
くらげ。デブサミでオーム社さんの書籍を勝手に宣伝したところ、編集の方からいただきました。うれしい。やしきたかじんが満月ポンをテレビで紹介したときのような感じですな。
前田さんからの事前リーク通り、「David曰く(!)」「Joeの疑問」と、きちんとアイコン付で訳出されているのが素晴らしい。これがあってこそ達人の本棚シリーズだよ。また頭がボーっとしてるので続きはあとで書く。
DHH Says...
オーム社と前田さんの名前が(改めて)世界に轟いております。フレンチ版の装丁がオサレだ。ドイツ版はドイツな感じ。日本語版の表紙は鉄分濃度高めの息子が「しゃ!」(電車と言いたいらしい)
と気に入ってます。
2006-02-22(Wed) 2005年12月84日 [長年日記] [Edit]
■1 Rubyist Magazine 0013 号
出てました。いつもありがとうございます。
Rubyist Hotlinks 【第 13 回】 関将俊さん
次回は角谷さん (紹介は後で書く) にインタビューします。お楽しみに。
あとで書くメソッド……というか紹介する内容が無いだけなんだけど。いいのかなあ(と書きつつも、嬉しいから喜んで受ける)。
2006-02-24(Fri) 2005年12月86日 [長年日記] [Edit]
■1
『Refactoring Databases: Evolutionary Database Design』
Martin Fowlerシグネチャー・シリーズ久びさの新刊。さしあたってSafariに来た。書籍の発売はもうちょっと先(2006/03/05?)。
表紙の橋の写真を携えて(Nikon D70Sで撮ったそうです)、Scott Amblerが本シリーズに登場。共著のPramod J. SadalageってFowlerとの共著の記事、Evolutionary Database Designぐらいしか知らない……って本書は明らかにこの内容を膨らませたものなんだろうけど。
進化的データベース設計については、『データベースの進化的設計』というid:t-wadaさんの翻訳がある。
■2 通院
今週は火曜日から金曜日までの4日間の間に、家族全員が患者として入れ替わり立ち替わり同じ医院へ通った。息子の付き添いを含めると4日で延べ6人の通院回数か。フォースの乱れを感じる。
2006-02-26(Sun) 2005年12月88日 [長年日記] [Edit]
■1
PofEAA読書会:第10回
テーブルインヘリタンス3兄弟(Single, Class, Concrete) + Inheritance Mapper。Inheritance Mapperは頓知の利いた設計だと思ったが、このサンプルがC#なのはズルいな、と思った。JavaでもTigerだったら実装できるのかなあ。
予定よりも時間がちょっと余ったので急遽、Embedded Valueパターンをその場で読んだ。音読。第1回とか第2回の経験から、大人数の前で洋書をその場で読むのはキケン、と思っていたので邦訳を声に出して読んでみた——のだが、声に出して読んでも一向にアタマに入ってこない。ちょっと頑張ったけど以下の箇所で沈没。特に最後の一文でノックアウト:
「既存のスキーマにマッピングする場合、メモリ上の複数オブジェクトに分割するデータが、テーブルに含まれているのであれば、組込バリューを使って行う。このような状況が発生する原因は、オブジェクトモデルの振る舞いを抜き出すために、分離したオブジェクトが必要なのだが、データベースでメモリ上にある複数のオブジェクトすべてを1つのエンティティとして扱ってしまう場合である。この場合、Dependentの変更が、Ownerを不確定なオブジェクトとして扱っている(Owner内で置き換えられるバリューオブジェクトにとっては問題ではない)。」(p.289)
ここ、原文では:
「If you're mapping to an existing schema, you can use Embedded Value when a table contains data that you split into more than one object in memory. This may occur because you want a separate object to factor out some behaviour in the object model, but it's all still one entity in the database. In this case you have to be careful that any change to the dependent marks the owner as dirty——which isn't an issue with Value Object that are replaced in the owner.」(p.269)
となっている。もうちょっと声に出して読めるように訳すならば:
「既存のスキーマに対してマッピングするのであれば、テーブルのデータをメモリ上では複数のオブジェクトへと分割したい場合に埋め込みバリューを適用できるだろう。こうした状況が起りうるのは、オブジェクトモデル上では振る舞いを分割されたオブジェクトへと括り出したいのだが、データベース上では単一エンティティのままであるような場合だ。このとき注意しなければならないことは、依存オブジェクトに関するどのような変更も、オーナーオブジェクトをダーティ(変更された状態)にしてしまうということだ。ただし、バリューオブジェクトを使用しており、インスタンスがオーナー側で置き換えられるのであれば、これは問題とはならない。」(拙訳)
みたいな感じでは? 私の訳がこなれているとは言い難いが、これなら声に出しても読めるんじゃないかと思うのだがいかがか。現場では以後、洋書を黙読&その場でサマリ。うむ、わかりやすい。Embedded Valueは、RailsのAWDwRではActive Recordのaggregation/compositionとして紹介されている機能。compose_of。Hibernateだと……componentってやつ?
今回はドタキャン続出でかなーり落ち込んでいたのだけれど、懇親会でid:yyamanoさんに慰めてもらったので次回以降も淡々と開催するよ。次回は3/26(日)の予定です。次でO/Rマッピングのパートが完了する(はず)。
翻訳ネタを出したついでに、シングルテーブル継承の訳
今回の読書会で(も)騒然となった箇所について。シングルテーブル継承(Single Table Inheritance)の以下の箇所:
階層構造全体に、継承マッピングの1つの形式を使う必要はないことを忘れないでほしい。大量の特定のデータを持つクラスに対して、具象テーブル継承を使う場合は、1つのテーブル内にある類似した6つのクラスを完全にマッピングできる。(p.300)
という訳文があるわけだけれども。これに対応する原文は:
Remenber that you don't need to use one form of inheritance mapping for your whole hierarchy. It's perfectly fine to map half a dozen similer classes in a single table, as long as you use Concrete Table Iheritance for any classes that have a lot of specific data.(pp.279-280)
となっている。ううむ。わかりづらいけど:
「忘れないでほしいのだが、継承階層全体につき1種類の継承マッピングしか必要ないというわけではない。固有のデータが多いクラスには具象テーブル継承を利用しておいて、残りの似たようなクラスを単一テーブルへとマッピングするというのでも全く問題ない。」(拙訳)
ってことじゃないのかなあ。訳の巧拙というか日本語として成立してるかどうかの問題のような。いちいち指摘しないが、第12章は会場騒然となる翻訳が多かったように思う。レビュー重要。ヒトフリ・ワガフリ。
○ ヤマグチ [ヤフーショッピングだと、2月中旬予定になってました。今週か来週ってとこですかね…待ち遠しい。 http://7and..]
○ shugo [ちゃんと残ってますよ:)]
○ かくたに [すばらしいい!! 期待してます!!!]