«前の日(12-06) 最新 次の日(12-08)» 追記

Matzにっき


2003年12月07日

_ [教会]松江出席

昨日の旅行で疲れてて、ぐったりしてたことをのぞけばごく普通の日曜日。 今日は日曜学校などにもちゃんと出れたしね。

日曜学校は「黙示録」、先頭の手紙の部分。 「教会の御使(みつかい)」の部分は、英語でも「Angel」だが、天使というわけではなくて、 それぞれの教会の指導者のことを意味する、とか、当時の「アジア」は今でいうトルコの周辺であるとか。 しかし、象徴が多くてひっかかる。たぶん文化的バックグラウンドを押さえていないと理解しがたいのだろうなあ。

急に寒くなったが、 帰ってから 子供はベランダでシャボン玉を吹いて遊んでいる。風邪引かなきゃいいけど。

疲れに堪え切れず10時前には寝てしまう。


2004年12月07日

_ [OOP]Traitsについて再び

OOPSLA 2004の「Applying Traits to the Smalltalk Collection Classes」を読み返し、 Traitsについて考えてみる。

で、しばらく考えるにRubyのようなOpenなクラス/モジュールを持つ動的言語では、 TraitsよりもMix-inの方が適しているという結論に達した。

しかし、Traitsの演算は魅力だ。Moduleへ演算を追加することで、 Mix-inのまま、Traitsの利点を導入することは理論的には可能のような気がするが、 普通に実装すると実行効率が下がりそうな気がする。

内部的に多重継承を素直に実装するのが一番単純だが、 CLOSのように毎回クラスリストをソートするのは避けたい。

いろいろ考えるに、

  • モジュールに変更タイムスタンプをつける
  • メソッド検索時にタイムスタンプの比較も行う
  • モジュールに対してメソッドの削除(exclude)演算を用意する。 あるいはモジュールのundefの挙動をexcludeにする。
  • モジュールから、そのモジュールから指定したメソッドをexcludeした新しいモジュールを生成するメソッド(exclude)を新たに定義する

ことで、Traitsの良さとMix-inの良さのいいとこ取りができそうだが、 タイムスタンプを格納する領域とか、excludeの効率の良い実装とか、 実現までには解決しなければならない問題がいくつかありそうだ。


2005年12月07日

_ Perl format string integer wrap vulnerability

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 3のトレーニングコースを実施

オープンソースビジネスには大賛成だ。

トレーニングでの学習内容は、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でやったら何人集まるだろうか。


2006年12月07日

_ [Ruby] CUA TECHNOLOGY DAY 2006

講演。CTCさんといえばシステムインテグレータとしては 中堅以上、大手と言っても良いと思うレベルだと思うのだが、 相当Rubyについて真剣に考えていただいている。

「Beyond Java‐Ruby on Railsが与えたWeb開発の衝撃」

CTC 執行役員 ITエンジニアリング室 室長 鈴木 誠治氏

非常によくリサーチしてあって、私の過去の発言からの引用なども あったりして、本気度を感じられた。っていうか、 だいぶかぶってしまった。正直、なめてました。すいません。

「オープンソース界の有為な人材をいかにして獲得するか 〜NaClの事例から〜」

株式会社ネットワーク応用通信研究所 代表取締役 井上 浩

うちの社長。途中、RadRailsを使って、名刺管理アプリケーションヲ作るデモを 行ったのだが、実質2分で完了した。「説明がなければ1分で出来る」そうだ。 まあ、何度も同じデモをしているせいもあるが、 おそらく彼は「日本で一番速くWebアプリを作れる男」の称号が得られるかもしれない。 意味があるかどうかはわからないけど。

「Ruby 1.9への長い道のり」

株式会社ネットワーク応用通信研究所 特別研究員 まつもと ゆきひろ

「ここまで来ました」という話。 どっちかっていうと「社会の変化と動的言語の台頭」がメインテーマで、 1.9の話はほんの数枚。

「J2EE使いが語るRuby on Rails」

●パネリスト
 稚内北星学園大学 客員教授/要求開発アライアンス 理事 細川 努 氏
 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ページ以上になるかも。 まずい。

編集の方には迷惑かけるなあ。

_ [Ruby] XRuby

JRubyはJVMで動くRubyインタプリタだが、 XRubyは.classファイルを吐くRubyコンパイラである。 「開発の初期の段階」とは言うものの、 とりあえず標準ライブラリ全部とRuby on Railsは読み込めるらしい。

コンパイルして動くかどうかまではわからないけど。


2007年12月07日

_ [Ruby] ナレッジエース - autocomplpop.vimがバージョンアップしてRubyのオムニ補完とファイル名補完に対応

Vimの補完機能であるオムニ補完のRuby対応について。

なんだかとっても賢い補完をしているように見えるんだけど、 実際にはどうやっているんだろう。

どうも変数に格納しているデータの型まで見ているみたい。 スクリーンショットにあるのは「代入された時の右辺がリテラルだったら、その変数の型を決定する」という挙動で説明できるけど、それだけだと、日常的には嬉しくはないよね。 ローカル変数ってのはリテラルで初期化されるものばかりじゃないし。

いずれにしても、コンテキストを考慮する補完というのは すばらしいことだし、それを実現しているVimについては賞賛しておきたい。

_ The Programmer Dress Code

プログラマの外見。 なぜか私も載っていたりする(ひげのせい?)。

しかし、「恐い」とか「子供を食べちゃいそう」とかひどいコメントが多いな。

_ [言語] i c e d ( j a v a ): The Evolution of Java

Javaの進化(イメージ)。

Java 7の評価がめちゃ低い。 新しいものを導入する時には「変化の痛み」があるせいか、 大抵、評価は低いよね。

私は自分自身でJava 7を使うことはないと思うので、 私の知っている範囲内ではそんなに悪くない(むしろもっとやれ)という感じなんだけど。

_ [言語] VanPyZ Presentations - Pythonと他言語の比較

Pythonと他言語の比較。比較対照は

  • Erlang and Processing, Dethe Elza
  • Ruby, Paul Prescod
  • Icon and TCL, Brett Cannon

なかなか面白い。しかし、ErlangとProcessingとか、IconとTCLってのは あんまり関連のある組み合わせじゃないよなあ。

_ Michael’s Random Thoughts >> Every open system develops towards the unusable

あらゆるシステムは使い物にならなくなるまで進化する、という話。

  • ナイス。これもできるといいんだけどな
  • これらもできると嬉しいんだけど(機能は増え続ける)
  • すごいっ
  • サイコーっ
  • (ユーザーの満足度、頂点)
  • マニュアル見ないとわからないな...
  • ○○機能はどこにあるんだ
  • 基本的なことさえできないじゃないか
  • もうだめだ...

くわばら、くわばら。

_ [言語] jaql.org

JSONオブジェクトデータに対する問い合わせ言語。

なぜかHadoopで検索する機能もついているようだ。 まだ中身を見ていないけれども。

_ [Ruby] @Ruby City Matsue : Java/JRuby for Shimane Univ. and OSS community

Sunの下道さんに(島大の講義のついでに)、オープンソースサロンでも講演していただいた。 JRubyとの比較や歴史を含めて非常に面白かった。

おまけの「Matzをさがせ」も楽しんでいただきたい(楽しくないって?)


«前の日(12-06) 最新 次の日(12-08)» 追記