昨日の旅行で疲れてて、ぐったりしてたことをのぞけばごく普通の日曜日。 今日は日曜学校などにもちゃんと出れたしね。
日曜学校は「黙示録」、先頭の手紙の部分。 「教会の御使(みつかい)」の部分は、英語でも「Angel」だが、天使というわけではなくて、 それぞれの教会の指導者のことを意味する、とか、当時の「アジア」は今でいうトルコの周辺であるとか。 しかし、象徴が多くてひっかかる。たぶん文化的バックグラウンドを押さえていないと理解しがたいのだろうなあ。
急に寒くなったが、 帰ってから 子供はベランダでシャボン玉を吹いて遊んでいる。風邪引かなきゃいいけど。
疲れに堪え切れず10時前には寝てしまう。
OOPSLA 2004の「Applying Traits to the Smalltalk Collection Classes」を読み返し、 Traitsについて考えてみる。
で、しばらく考えるにRubyのようなOpenなクラス/モジュールを持つ動的言語では、 TraitsよりもMix-inの方が適しているという結論に達した。
しかし、Traitsの演算は魅力だ。Moduleへ演算を追加することで、 Mix-inのまま、Traitsの利点を導入することは理論的には可能のような気がするが、 普通に実装すると実行効率が下がりそうな気がする。
内部的に多重継承を素直に実装するのが一番単純だが、 CLOSのように毎回クラスリストをソートするのは避けたい。
いろいろ考えるに、
ことで、Traitsの良さとMix-inの良さのいいとこ取りができそうだが、 タイムスタンプを格納する領域とか、excludeの効率の良い実装とか、 実現までには解決しなければならない問題がいくつかありそうだ。
printfのフォーマット指定子にinteger overflowがあったという話。 Perlでは落ちるらしい。Pythonはチェックしているとか。 Rubyでは上記記事にある値では落ちない。
でも、別の数ではやっぱり落ちるらしい。
integer overflowのチェックを加えた。しかし、gcc 4.xでは
(n*10)/10 != n
という条件は、どうやら 10/10 を先に計算して最適化により消してしまうらしい。 手元のPython 2.3.5(gcc 4.0.3 20051111でコンパイルされている)ではinteger overflowチェックは動いていないようだ。
仕方がないのでむりやり一時変数に代入して最適化を止めた。 volatileまではつけなくてもいいみたい。
しかし、integer overflowはまだあちこちに残ってそうだなあ。
オープンソースビジネスには大賛成だ。
トレーニングでの学習内容は、Zopeのコンフィグとインストールから始まり、強力なZopeのフレームワークまでをカバー。Zope 3 Webアプリケーションサーバを使ってWebアプリケーションを構築したい開発者をターゲットとし、参加者はPythonプログラミング言語とWebアプリケーション開発の入門的な知識を要する。また、必須ではないものの、Zope 2でのアプリケーション開発に習熟していると効果的であるという。また、事前準備としては、Pythonチュートリアルの学習が必要。
コース日時は2006年1月30日〜2月1日の3日間で、それぞれ10時〜17時。場所は東京都内で、定員は最大10名(最小開催人数3名)、費用は31万5千円(税込)/人となっている。
しかし、3日間で31万5千円かあ。まあ、当然の値段のような気もするし、 めっちゃ高いような気もする。すくなくとも個人は払えないし。
この値段でRuby on Railsでやったら何人集まるだろうか。
講演。CTCさんといえばシステムインテグレータとしては 中堅以上、大手と言っても良いと思うレベルだと思うのだが、 相当Rubyについて真剣に考えていただいている。
CTC 執行役員 ITエンジニアリング室 室長 鈴木 誠治氏
非常によくリサーチしてあって、私の過去の発言からの引用なども あったりして、本気度を感じられた。っていうか、 だいぶかぶってしまった。正直、なめてました。すいません。
株式会社ネットワーク応用通信研究所 代表取締役 井上 浩
うちの社長。途中、RadRailsを使って、名刺管理アプリケーションヲ作るデモを 行ったのだが、実質2分で完了した。「説明がなければ1分で出来る」そうだ。 まあ、何度も同じデモをしているせいもあるが、 おそらく彼は「日本で一番速くWebアプリを作れる男」の称号が得られるかもしれない。 意味があるかどうかはわからないけど。
株式会社ネットワーク応用通信研究所 特別研究員 まつもと ゆきひろ
「ここまで来ました」という話。 どっちかっていうと「社会の変化と動的言語の台頭」がメインテーマで、 1.9の話はほんの数枚。
●パネリスト
稚内北星学園大学 客員教授/要求開発アライアンス 理事 細川 努 氏
TIS株式会社/日本XPユーザグループ 会長 倉貫 義人 氏
「Drecom Award on Rails」大賞受賞者 メタデータ株式会社 大場 寧子 氏
CTC ソリューションエンジニアリング技術部 基盤技術課 井澤 信悦
●モデレータ :
コモンズ・メディア 代表 星 暁雄 氏
すばらしかった。これまでパネルと言うと、 自分自身がパネリストのものを含めて盛り上がらず退屈なものが多かったのだが これは情報は豊富だし、啓発されるし。
特に私自身はJavaな経験がないので、当て推量で話をしているJavaとの比較を 実際の経験をもとにした話として聞けたのはありがたい。 また、倉貫さんから聞いた「Railsの良さは、立ち上げの速さよりも、変化への対応の速さ」という点は、予想はしていたものの、非常に興味深かった。
また、「Rubyができる人を集めるのが大変なので、小規模なものはRuby、大規模なものはJava」という話は良く聞く(し、私もそう思っていた)のだが、大場さんの「(少なくとも自分の経験がある6人くらいまでなら)改めてRubyを教えても元が取れる」という意見は予想していなかった。彼女はすでに現在かかわっているプロジェクトのほとんどすべてをRubyでやっているそうだ。今年になってからRubyを始めたはずなのに。
その後、懇親会。たくさんの人にあいさつさせてもらい、 名刺交換もたくさんした。あまりいっぺんに大勢の人にあったものだから、 一人一人顔を覚えていられなかったのが残念だ。 次お会いした時に失礼なことを言っても許してください。
で、帰りの飛行機のために、会場を後にし、羽田空港まで急いだのだが、 思ったよりも京急が遅くて、空港に着いたのが出発10分前だった。 息が切れるほど走って、カウンターのお姉さんにお願いしたのだが 「今、ゲートが閉まりました」とのこと。がーん。
しかたがないので、近くのホテルにチェックイン。 1泊の予定だったのに家族に申し訳ない。
が、なんとか今日、暇を見つけて完成させました。
とはいえ、
内容的に浅い。
「とりあえずこんなのがあります」というので終始している。
その割に分量が多い。
説明したのはRCS, CVS, Subversion, svk, git, stgくらいなのだが(既に多い)、 これにstg向け自作スクリプトのリストなんかも載せたもんだから 普段より相当増えた。もしかしたら10ページ以上になるかも。 まずい。
編集の方には迷惑かけるなあ。
Vimの補完機能であるオムニ補完のRuby対応について。
なんだかとっても賢い補完をしているように見えるんだけど、 実際にはどうやっているんだろう。
どうも変数に格納しているデータの型まで見ているみたい。 スクリーンショットにあるのは「代入された時の右辺がリテラルだったら、その変数の型を決定する」という挙動で説明できるけど、それだけだと、日常的には嬉しくはないよね。 ローカル変数ってのはリテラルで初期化されるものばかりじゃないし。
いずれにしても、コンテキストを考慮する補完というのは すばらしいことだし、それを実現しているVimについては賞賛しておきたい。
Javaの進化(イメージ)。
Java 7の評価がめちゃ低い。 新しいものを導入する時には「変化の痛み」があるせいか、 大抵、評価は低いよね。
私は自分自身でJava 7を使うことはないと思うので、 私の知っている範囲内ではそんなに悪くない(むしろもっとやれ)という感じなんだけど。
Pythonと他言語の比較。比較対照は
なかなか面白い。しかし、ErlangとProcessingとか、IconとTCLってのは あんまり関連のある組み合わせじゃないよなあ。
あらゆるシステムは使い物にならなくなるまで進化する、という話。
くわばら、くわばら。
Sunの下道さんに(島大の講義のついでに)、オープンソースサロンでも講演していただいた。 JRubyとの比較や歴史を含めて非常に面白かった。
おまけの「Matzをさがせ」も楽しんでいただきたい(楽しくないって?)