イギリス人が石器で獣を追っていたころ、中国人は既に官僚の汚職に悩んでいた。
なんか、見積もり2週間×2人(ここでスカラーとの乗算は非可換だからね、よろしく)、残り日数4日、進捗0%の仕事が降ってきましたよ。うちの会社にこんな異常なプロジェクトが降ってくるまでにはいろいろ語れない事情があったわけだけどさ。政治的に。まぁ、いろいろあって。私が担当。
引き継ぎしようにも、Howしか書いてないドキュメント。WhyもWhatも書いてないから読み取るのに時間が掛かるよ。しかも書いてあることが中途半端。そして、どうして日本人はそんなにExcelが好きかな。Changelogでいいでしょ。vimで編集できないファイルはファイルじゃないんだよ。
自称SEはなんでその自称設計をしてる暇で動くソフトウェアを書かないの? 走らないものがそんなに好きか? そんなにドキュメントが好きなら勝手にドキュメントでも走らせてなさいよ。Shebangは書いてあげるから。
今回はうっかり引き受けてしまったけど、今後は心する。私はアジャイルじゃない仕事は断る。
『戦争を演じた神々たち』所収「天使が舞い降りても」はその寓話的雰囲気が好きだ。いや、この連作短編集に収録されている作品は全部、寓話的、神話的、詩的にして荘厳なのだけれど。

不調に襲われるとたまにこの作品のフレーズがぐるぐると頭の中を回り出す。
あ、気がついたら、これ全部AUM老人の台詞だね。聖音AUM。サンスクリット語かな。どっかの今は改名した新興宗教団体が名前にも使ってたね。
世界の創造と維持と破壊の作用。ヴェーダの三柱の神々。中国語への音訳転写で仏典では
死ねばいいのに。
やっぱりC++だよね。いま一番好きな言語はRubyだけど、私の心の母国語はC++だから。今のC++ stdは委員会の中の綱引きで、土壇場で例外だのテンプレートが追加された中途半端な状態だけど、C++ 0xはboostの成果も取り込まれるしきっと良くなる。もう第2のCOBOLとは言わせない。
D言語は、簡単なコード書いた感触ではやっぱりC++の強力さに比して物足りないんだよね。似ているだけに。安全性やEoDを求めるならもっと徹底した方がいいと思うし。あ、それがC# 3.0か。
C++ 0xが出たあかつきには、ついにC++が『UNIXという考え方』でいう「第3のソフトウェア」に進化すると期待。
LL Ringのチケットをゲット。今からwkwktktk。
直近ではオブラブとShibuya.jsか。こっちも楽しみ。いま、イベント当日に響かないようにがんばって仕事を片付けてる最中。ここ数日は営業さんが先月頑張った甲斐あって大量の見積もり依頼とかシステムのお絵かきが発生。ソースコードから遠い。まぁ仕事だから、たまにはこういう日もあるよね。ソースに触らない仕事ばっかりずっとだったら嫌だけど、そういう会社ではないからそこは安心。
ActiveRecord を SQLObject っぽくを読んだ。言ってたね。くまくまの人が。svn headにはこの機能入ってるの?
入ってないとしても、くまくまの人が既に書いてそうだけど、面白そうなので自前で書いてみた。5分じゃ無理だった。10分掛かった。
Rubyは実はメソッド名には予約語を使えるので、APIを設計するという意味では予約されててもあまり困らない。
class C
def end
:end
end
end
c = C.new
p c.end #=> :end
p RUBY_VERSION #=> 1.8.4
ただし、文脈によってはうまくparseしてくれないので、Module#define_methodで代用するテクニックが必要だったり。メソッドを使う側はいいとして、書く側は面倒かも。それから、呼ぶときもレシーバを明示的に書かないとparse errorになる場合もあるけど。
でも、本当に身内で使うようなメソッド、privateなメソッドは、予約語を避けて命名してもあまり困らないしなー。そして、publicなメソッドはどのみちレシーバを指定するわけだし。
それにしてもさすがにメソッドをifとかelseとか命名する邪悪なコードを書くのはDHHだけで十分だ。
それよりJavaはgotoをどうするつもりだ。
るびまのRubyKaigi2006特集号編集は、当初の予定より大幅に遅れてる。
でも、るびまの中の人達が会場のロガー席にてリアルタイムにタイプしたメモに基づいているし、スピーカー自身に間違いがないかチェックしてもらってるし、みんなの知恵があつまっている。RubyKaigiレポート群の中でもかなり高品質、S/N比高なものに仕上るんじゃないかと思う。特に質疑応答におけるスピーカーの微妙な言い回しなんかはそのまま保存されていて素晴らしい。
なので、私は自サイトの記事では敢えて個人的感想や偏見を交えて、るびまでは割愛された脇道も含めつつ、容量大を志し、S/N比の低下も辞さない覚悟で書いている。
宣伝です。LLを用いたweb開発に携わる技術者を募集しています。(2006-10-03現在、募集終了しています)
えっと、人事から「とりあえず今はフルタイムで働ける人が来てくれたほうがうれしい」って言われました。 正社員の場合、
一応これがモデルケースなのですけれど、会社とお互いに折り合いがつけばこれに限りません。雇用形態も、出来高、インターン、アルバイト、その他。勤務日・勤務時間も応相談。モデルケースにマッチしている人のほうが少ないです。私もそうだし。
というか、大手航空会社の各国版サイトも管理させて頂いていて業績は順調なのですけれど、なにぶん無名なベンチャーゆえ人材不足は否めず。なので、優秀な人なら上の条件にこだわらずになりふり構わず優遇しますのでぜひお願いします。
一部のオタクたちの間で評判の『涼宮ハルヒの憂鬱』を読んでみた。

日本Rubyカンファレンス2006に行ってきました。今回は、ログを「るびま」に提供することになっているのでいろいろややこしかったりするわけですが、当初の予定より遅れ気味の「るびま」編集が、ようやく方向性が見えてきました。だいぶ出遅れましたが、るびまへ提供したものとかぶらなそうな部分を中心に、いくつかレポートを上げたいと思います。
簡単な第一報は書いてありますので参考までに。
Rails勉強会@東京 第7回に行ってきた。今回はドリコム恵比寿オフィスにて。
小雨の降る中、参加者がぞろぞろと集まってくる。残りの人を待っている間、話題になるのは昨日のはぶにっきのこと。はぶさんから提示された「RailsのやりかたはDOAへの退化ではないか」という疑問と、いくつかの質問。そしてそれへのid:takahashimこと高橋会長のコメント。これは懇親会の話題にも続いた。
詳しい勉強会レポはあとで書く。
全体に羽生さんにかなり影響されてた。私やもろはしさんがABDに思考を引っ張られてるのも大きかったけれど。そのへんはやどかりの人が書いてる。
次回の勉強会ネタ予告

LL Ring キミならどう書く 2.0 - ROUND 1 -への回答。
まずは、日本Rubyカンファレンス2006でネタにした関係上、お約束のやつだけ。一応Rubyの標準添付ライブラリ。
require 'mathn' Prime.new.each do |p| break if p > 100 puts p end
短いけど美しくない。非正格評価欲しい orz
AWDwR邦訳も出たし。あっちではAWDwR 2nd ed.も順調に進んでるみたいだし。そして、
かつてのRuby本ラッシュ再びという印象。ドリコムみたいなEarly Adaptor(うちもそのつもりだけど)からEarly Mojorityへと移りかけているのが現在で、そしてこの出版ラッシュに乗れば、いよいよ来るよ。たぶん。
一般に、人間における仕事のスイッチは、CPUにおけるプロセスやスレッドのスイッチ同様コストを伴う。あまりスイッチが多ければ当然処理能力の低下を起こす。
他業種は知らないけれど、少なくとも技術者のスイッチングコストはかなり高い。文字どおり「コードに落とすだけ」まで書かれたプログラム設計書をコーディングしている「文字どおりのコーダー」ならともかく、そうでなければシステム全体に関する幅広く、階層的な、抽象的な知識をロードしておいて、そのフィールド内で作業しているからだ。この知識をロードするのに相当の時間が掛かる。
実際の所、「文字どおりのコーダー」の存在が全体の能率を上げるようなのは『人月の神話』で解説されているように、ハードウェア先行のプロジェクトや超大規模プロジェクトなど限られていて、少なくともweb系には関係なさそうだ。
なんでこんな常識をいきなり語りだしたかというと、今日そういうのがあったから。作業のストアに10分、ロードに20分、作業3分、報告5分みたいな。アホらしい作業。まぁ、そのプロジェクトの管理担当は私だから、誰のせいでこういう非効率が生じたかといえば、私がまだ管理体制をしっかり敷けていなくて作業の割り振りが適切に機能していないからなんだけどさ。だから、早く体制を固めなきゃという自戒を込めて。
ある技術者がいて、その人に30分に一回誰かが5秒間話しかけたとすれば、その日の進捗はゼロだと覚悟しなければならない。
無理矢理上げてたテンションが狂ってきた。パニック発作来そう。死にたい。
何よりも自分が忘れないためにレポートをまとめている部分はあるのだけど、今回はネット上にレポートがかなり流れてる。
なんか、モチベーションが激しく下がってます。
オーストラリア戦では、会社のみんなも早く帰りたがってるし。私一人遅い時間になったら明らかに街中の人通りが少ないし。そこら中の店で「店内で観戦しませんか」って誘導してるし。ジュンク堂の会計フロアがむちゃくちゃ空いてるし。電車も空いてて、普段なら帰宅ラッシュの時間なのにほとんどの人が座れてるし。
日本人そんなにサッカーが好きか?
Livedoor Readerの中の人を11回クリックした時のメッセージが
_| ̄|○ オーストラリアおめでとう!
になってる。
原書は私もゼミで半分ぐらい読んだけど説明がとてもわかりやすかった記憶がある。教授曰く、Knuthの"The Art of Computer Programming"は良書だけど紹介してるアルゴリズムとか、ちょっと内容が古くなってきているので今なら"Modern Computer Algebra"でしょ、とのことでした。
邦訳が出てるならますます気楽に読めるね。原書に比べてのタイトルのダサさ加減は置いておくとして、欲しい。これは欲しい。でも高すぎ。原書は$49だよー。なんで翻訳はこんな値段なのさ。せめて半額なら昨日迷わず買ったんだけどなぁ。

とりあえず第一報です。日本Rubyカンファレンス2006に行ってきました。ライトニングトークスで発表もいたしました。
会期中は会場近くに泊まっておりましたが、先ほど自宅に帰ってきました。
今回は私はるびまのカンファレンス特集号にログを提供することになっているので基本的にはそっちを通じて報告します。というか、〆切も近いので急いで書かねば。
なので自分のサイトでは、明らかに没になりそうなネタとか、個人的なこととか、るびまに採用されなかったログとか、提出が〆切に間に合わなかったログを今週いっぱいぐらいで順次報告したいと思います。
9日朝より12日深夜まで、家に帰りません。緊急に連絡が必要な方は掲示板、mixi、携帯電話等へお願いします。
報告が遅れましたけれど、日本Rubyカンファレンスのライトニングトークスで発表させてもらうことになりました。お題は「なぜブロックは素晴らしいか」です。
それはそうと、カンファレンス会場近くのRUBY CAFEの名前に魅了される今日このごろです。
特にIOモナドとか、boost uBLASのexpression template技法そのまんまという気がする。boost spiritも近いかな。expression templateもまた、コンパイル時に「どうやって計算するか」を値として、実行時はその値を利用する訳で。
C++ templateによるメタプログラミングを言語内言語と捉えれば、その副作用を持つのが難しいという性質から、思想こそ圏論でなくモナド律を前面に押しだしこそしていないけれど、似たようなものが見られるのは必然なのかもしれない。
Active Recordから変なレコードが返ってくるのは、Active Recordの問題かと思ったらMySQLの問題だった。Active Recordよ、疑って済まなかった。