トップ 最新 追記

日々の破片

著作一覧

2008-02-01

_ 自分の貧乏な読み方に気づく

業務連絡です。

みんなで1000円と1人1000円を読み間違えていることに朝目が覚めたら気づきました。

でも1人1000円のほうでも僕はかまいませんので、後はよろしく。

というか、予約できるのか問題が最初に来ますね。


2008-02-02

_ 蔵人

クランドで変換するかと思ったらしない。クロンドかと思ったら、それも違う。いろいろ試したらクロウドだった。でも、「ウ」じゃなくて「ン」だと思うが、まあいいや。辞書に書かれた字は、必ずしも正しい音韻を示すものではないが、では「正しい」とは何が基準だ? といわれると、オレオレルールになってしまって(大した)意味がなくなってしまうし。(といって見逃すと、サッキュウがソウキュウになったり、タットブがトウトブになったりシがヒになったりエイがアイになったりガがガになったりしてしまうのであった) 2008年、学ぶべき5つのJava技術とは
Cloud Computing - クラウドコンピューティング
すぐ後に、
クラウドコンピューティングは対象となる幅が広すぎる。Webサービスを活用したJavaプログラミングや関連するコンポーネントの調査や評価といった感じでとらえるといいかもしれない。
と来ているが。 やっぱり実装をみたほうがわかりやすいというわけで、このへん(Hadoop)はその実例。でもドキュメントが404になるけど。Javadocはこのあたり。

2008-02-03

_ 室温の調整

細かく室温が調整できるならば、浴室の温度調整は、基本は30℃くらいで、しかし湯船の上50cmまでは2℃とかだと気持ち良さそうだと、露天風呂につかりながら考えた。

つまり、冬の露天風呂は、湯船に浸かるまでの移動は辛いが、浸かってしまえば、顔に感じる冷気が、実に心地よい。

_ 日本酒の会

聞いた話。

酒屋さんとかが主宰する日本酒の会というようなオフラインな集まりがあって、そこに顔を出すと色々呑まされる。

なんかもやしもんあたりに出てきそうな集まりだなぁと思ったわけで、そうやって普及させるのか、とか。

もっとも、オチは「お、新人だな、良く来た、そら呑め」と、振る舞われ過ぎて敢えなく撃沈、以後日本酒は鬼門としてワイン党となった、と続くので、過ぎたたるは猶及ばざるが上善水の如し。


2008-02-04

_ 八百屋

新潟の八百屋さんはちょっとプリミティブだった。

縄文時代の八百屋さん

_ ユーザーが欲しいのは万能ワンストップソリューション

MSはASPをMTSコンポーネントのグルーといい、PHPの作者はPHPをテンプレートエンジンといい(木村さんのとこへリンク予定)、JSPはASPと多分同じ。

でもそうやって利用されるわけでもない。死ぬ気で頑張りまくればそれだけでもどうにかなるからだ。バターナイフでマグロの解体ショーへようこそ。

JSPが想定される利用のされかたとなるにはStrutsが必要だった(Eclipsも関係しているかも知れない)。ASPは.NET化された今でも微妙な雰囲気だけどVWDを使えばそう大きくは外れない。。

かといって汎用性が見えないと頭から無視だろう。

……やっぱりRailsはいいところを突いたのだろう。

_ 売ってない

シナトラ&ジョビン(フランク・シナトラ,アントニオ・カルロス・ジョビン)

原先生(いろいろ留保付き)お勧めのジョビンとシナトラだけど、売ってなかった。

本日のツッコミ(全7件) [ツッコミを入れる]

Before...

_ arton [わお、シナトラの顔だ。すげぇ。]

_ arton [確かにおもしろさはアブルーとメロ(ミーロ?)のほうがおもしろいかなぁ。でも、シナトラは顔がシナトラだから。]

_ arton [っていうか、紫煙がたなびくところが良き時代感をかもしてますな。]


2008-02-05

_ 本当は下品なグリム童話

子供のころ、岩波少年文庫の西遊記を読んでいて、もしかしたら、冨山房のやつかも知れないけど、まえがきに、「もともとの西遊記には尾籠な話がたくさん出てくるので、みなさんのためにそういうところは書き直しました」とかいうようなことが書いてあった。

西遊記〈上〉 (岩波少年文庫)(呉 承恩)

(尾籠な本ならいくらでも他で読めるから、西遊記はこれでも全然OKだな、と尾籠なバージョンも読んだ今なら言える)

尾籠ってなんだ?

と疑問を持つのは当然だ。

辞書をひく。

どうも下品ということのようだ、と調べた辞書からは読み取れた。

モーツァルトの手紙 (講談社学術文庫)(吉田 秀和)

いや、しかしこの本の紹介文

「ひとたびこの書簡集を読めば、モーツァルトはあなたの生涯の友となり、その愛すべき面影があなたの苦しみの時にも現われることだろう。彼は愛を知る心や平和な魂にとっての無二の伴侶なのだ。」万人必読の書とロマン・ロランも讃美した至上の書簡集

……実に尾籠な話で恐縮ですな。

が、もう少し大人になってから、尾籠な話というのは、うんことかの話じゃなくて、尾が籠に入る系列の話のことだ、と知った(思いつきで切り離したが、実際そういう意味なのかな?)。大辞林を読むと、「痴」を「おこ」と読み、その当て字が「尾籠」だったと書いてあるから全然違うようだ。

つまり、真に尾籠な話とは、これのことだな。

痴人の愛 (新潮文庫)(潤一郎, 谷崎)

(「しれもの」という場合の痴の意味なんだろうけど、それはそれ、これはこれ)

ロマンロランは痴人の夢をみたのだろう。

_ 好きな女優

という話題になって、そういえばと

ビートルジュース [DVD](アレック・ボールドウィン)

に出てくる女の子がやたらとかわいくて好みであるというようなことを言ったが、名前を知らない(というか出演者の名前はマイケルキートンしか知らない)。

そうしたら、すぐに相手から、ウィノナ・ライダーと名前が出てきて驚いた。

しかし、相手がどの女優の名前を挙げたかは忘れてしまった。

本日のツッコミ(全4件) [ツッコミを入れる]

Before...

_ arton [お、そうでした。で、お勧めの出演作はありますか?]

_ arton [とか書いてからしらべたらあだむすふぁみりーに言及されてたのを思い出してた。恋する人魚(未観)で共演してたり。スリーピ..]

_ あいて [子役時代は「アダムス・ファミリー2」 http://cinema.intercritique.com/movie.c..]


2008-02-06

_ 多様性

多様性

そこでふと気づいたが、共和党の巻き返しとか、マケイン奇跡の逆転とかなければ、アメリカの次の大統領は、女性か黒人か、いずれにしてもマイノリティ(しかしこれ、全体の頭数とは無関係なところが奇妙な言葉だ)の登場となるんだろうな。

_ 哈爾浜

哈爾浜(はるぴん)の都市計画を読み終わった。(買ってぱらぱら読んで、しばらく放置した後、ポストマンの次の本として通勤時に読んだのであった)

哈爾浜(はるぴん)の都市計画 (ちくま学芸文庫)(越沢 明)

固い本だが(学芸文庫だし)、にもかかわらず、とんでもなくおもしろい。

たとえば、ロシアが鉄道を作るために町を作る。

北洋軍閥が、ロシア革命のどさくさにまぎれて街を奪取する。

革命政府が鉄道の主導権を握り、白系ロシア人に対する排斥が始まる。

おお、いよいよ満州事変ですな、と思って、章扉を開くと、満州国はできあがっていて、都市計画をめぐって関東軍と哈爾浜市役所が対立している。

歴史の節目は特に語られることなく、そのときどのような都市計画が立案されて、そして実装されたかに的を絞っている。(そもそも資料がないものについては書かれない)にもかかわらず時代の変化によって街の相貌が少しずつ変わる。

いくつもの歴史の皮肉。

1. ロシア人の都市計画を基にさらに現代的なグリーンベルトなどの要素を取り入れて、継承と革新の合わせ技で、より発展させた満州政府に対して、一部の技術者に席を設けて引き続き継承を図った革命中国政府。しかし、文革で寺院や歴史的な建築物が破壊されてしまう

2. 内地では地位が低く主導権をとることができないが、満州では技官がその技術によって主導権を取り、立案し、実装した。

3. というわけで哈爾浜、大連、新京での経験を基に、戦災でからっぽになった東京を作り直そうと雄大な都市計画を作り上げる(ゑいようさんは満州帰りじゃないけど)。GHQのインフラ担当は若い元銀行員で、「都市計画? 緑地? 100m道路? コストとゲインは?」で、今の東京となった

4. 帝政ロシア、奉天派、満州、と常に負け組みによって作られてきたため、都市計画の全容について正しく評価されてこなかった(この本は画期的なものらしい)

5. ロシア時代には放置されていた河川事業を完成させたため、中国人の間でも市役所と都市計画に対して協力的な雰囲気が生まれる。が、戦争に負けてすべてがパー。

6. 白系ロシア人とソ連人と漢人と満人と朝鮮人と日本人が一緒くたに住んでいる都市。

・ロシア時代の細かなしかし有効な建築規制: 門扉は道路に対して開くようにつけてはならない(通行人にぶつかる可能性がある)。

哈爾浜が出てくる作品。

冥土行進曲

人間レコード

ハルピンの一夜

武装せる市街


2008-02-07

_ オープンソース化

fastladderがオープンソースになったという情報は読めても、ソースには今いる場所からは到達できない罠。

本日のツッコミ(全2件) [ツッコミを入れる]

_ nanashi [svn がダメなら、Linux 版をダウンロードすればコード読めますよ。]

_ arton [どうもありがとうございます。http://fastladder.org/ja/download.html こっちか。]


2008-02-08

_ クー

バッハと言えばヨハンセバスチャン(JS)だけど、エマニュエル(CPE)もそれなりには名が通っていて、たとえば僕はCPEのソナチネ集の楽譜を持っているけど、結構いい感じだ。ささやかに楽しいんだよね。

で、逆にプーを読み間違えて「大」ではなく「小」(とは言わなくて、その他大勢扱いなのかな)に木管の合奏曲があるのだと勘違いした。(というか、今初めてルイというクープランがいたことを知った)

Wikipediaの「バッハ」には曖昧さ回避ページがあるが、「クープラン」には曖昧さ回避ページがないな。でも直し方がわからない。

何か絵を貼ろうと思って木管で調べてたら、なつかしいのが出てきた。これ好きだった。

シェーンベルク:管楽五重奏曲(ウィーン・フィルハーモニー管楽ゾリステン)

でも、全然関係ない。

ノベレッテ~木管五重奏曲集~(トウキョウ・ウィンズ/赤坂達三/岩佐和弘)

この五重奏曲は全然別ものなのかな? それとも六重奏曲をエマーソンという人が五重奏曲に直したという意味かな。

_ BATCHとOLTP

分散してネットワーク化されれば、自然とOLTPに向かうべきなんじゃないかと思うわけだが、徹底的に元データの集約とそれに対する集約処理の速度向上が可能となれば(14時間かかっていた処理が1秒で済むというような劇的な速度向上をここでは指している)再びバッチの目もあるとは思う。というのは、OLTPには幾つもの制約があり、それが問題となりうるからだ。たとえば競合(による障害、処理遅延といった問題に対してのドメインモデルレベルから実装レベルまでの戦略と実装)、障害時の再作成(とその間のOLTPの競合、それに対する回避あるいは停止あるいは……といった戦略の可否判断とそれの実装)。こういったものはすべてソフトウェアの複雑さを増すことになり、当然、それによって新たな障害の芽を生み出す。

そうでなければ、OLTPで次々とキャッシュに相当する中間データベースを作っていかなければ処理は間に合わないのではないか(今ここ)。

もちろん、ドメインに依存するわけなので、ちょっと絞り込む。

原理的には、たとえば商業というのは、1冊の大福帳があれば、それでまかなえる。毎日夜になったら大福帳から当日の売上を抜いて、日割り計算してうんぬん。締め日には月の売上を抜いたり、掛けを抜いて月単位での請求伝票を作ってうんぬん。これはバッチだ。でも、毎日やることであれば、毎月のための中間キャッシュが作れるし、毎日やることであれば、発生時に中間キャッシュが作れる。それによって遅延をなくし、夜なべ作業をなくせる(OLTPというよりも電算化の意義のひとつ)。

バッチではソフトウェアは簡単である(発生時は単に追記していけば良い。計上時は単に積み上げていけば良い)。しかも人手作業時代のビジネスプロセスがそのまま通用し、それは劇的に単純だ。しかし速度的なデメリットが大きい(場合によっては不可能だ。たとえば年締め処理がバッチで、すべての発生時点データから処理を始めるとしたらどうなるだろうか)。

OLTPは速度的なメリットがきわめて大きい。しかしソフトウェアは複雑になる。


2008-02-09

_ X31死亡

子供用に使わせていたX31がどうも死んだらしい。

最近、妙にサスペンドからの復帰が遅いとか異常な感じではあったのが、Wiiテニスをしてとどめをさしてしまった(まあ、おれが電源コードにリモコンを引っかけたのが原因なわけだけど)。外傷はないけど、BIOS画面さえ出ないから中で何かが切れたのかな。

というわけで、アップルの電源コネクタはいいね、と。

_ X31復活

裏ぶた開けて、メモリーを抜き差ししたら復活した。

_ アハ

さて、はるぴんの本であるが、1つの大きな発見があった。

哈爾浜(はるぴん)の都市計画 (ちくま学芸文庫)(越沢 明)

内容が内容なので、しょっちゅう、都邑計画書であるとか、都市条例であるとかの法令が引用される。場合によっては全文引用もある。

コレラハ全テ漢字片仮名混リ文ニテ書カレテイル。

読めねぇ。

というわけで、最初はスキップしてしまおうと思ったわけだが(これまでも帝国憲法とかを「勉強するとき以外」はそうやって済ませていたらしい)、論議はこれらの法令を軸に進むため、読まないとさっぱり理解できないことに気づく。何かおもしろいことはすべて法令にある。

しょうがないな、と腹を括って読み始めると、(当たり前だが)読める。法律的な言い回しの平仮名の部分を片仮名にしているだけだから読めないわけがない。

というわけで、どうも漢字+平仮名を「読む」のと、漢字+片仮名を「読む」のでは、同じ読むのでも異なる読むであったようだ。

前者は読んでいるのではなく見ているだけらしい。見ただけで自然に読みとれている(高速に単語を抽出し、文節に区切る。字句解析器をコマンドレベルでなく、read(バッファ転送)時点で完了させているという意味)から「読める」。後者は見慣れていないため、見ても「読めない」。ツマリ、読ム(明示的ニ字句解析器ノ起動ヲ要スル)必要ガアルト云ウ事ニ思イ至レリ。

まあ、いろいろ読んでみると発見があっておもしろい。

_ 続き

そこで、この「読む」という行動のあり方から、ひとつの仮説をもった。

世の中には、本を読まない人がいるが、彼らは、おそらく「読む(明示的な字句解析器の起動)」必要があるために、読まないのではなかろうか(文盲ではないわけだから)。

であれば、それはかったるかったり、面倒だったり、つまらなかったり(字句解析器を実行した後で、あらためて文意をとるという作業が必要になるわけだから、少なくとも1ステップ余分な作業が必要となり、それは当然負荷となる)するのは当然かも知れない。

ではなぜおれは平仮名+漢字をDMA転送時点で字句解析まで完了できるのだろうか? って、それは慣れということだろう。実際、はるぴん本の最後のあたりでは、特に意識しなくても漢字+片仮名文を読めるようになっていたからだ(にも、関わらず上のエントリを読みなおすと、やはり漢字+片仮名の部分では引っかかる。テンポラリな字句解析機構つき転送バッファが作られただけで、すぐに引っ込んでしまったらしい)。

(というか、英文を読むのも同じようなことは言えるね)

頻繁に実行する、継続して実行するってことは重要だな、という素朴な結論。

本日のツッコミ(全2件) [ツッコミを入れる]

_ ムムリク [確かにカタカナがはいると読みにくいですね。とはいえ少なくとも明治の頃はそれが普通だったようにも思うわけで、つまり慣れ..]

_ arton [そんな感じなんでしょうね(明治の頃といっても、小説などは平仮名だったようなので、文書の種類によって使い分けていたとい..]


2008-02-10

_ キャッスルはハウル

うろ覚え

すばらしいパワー。みなぎるマッスル、という感じ。


2008-02-11

_ MacBook Airの現状

Apple MacBook Air 1.6GHz 13.3インチ MB003J/A(-)

やっとある程度使える程度にセットアップできて、というところまで来るには、

・24時間以上必要だった、PowerBookからのマイグレーション

・Office:macと、ニッポニカは移行できず(ライセンスの問題かな?)

(でも、Omni Graffle Proは移行できてたわけだが)

・移行できなかったやつは、さわるとエラーになる妙なシェルスクリプトに置き換わっている

・ニッポニカは手で再インストール(元のはアンインストール)

(これ、ユニバーサルバイナリじゃないのに、別に何も気づかない程度に動くのはエミュレート技術が進んだということなのか、それほどPowerよりCore2のほうが能力が高いということなのか。

・Office:macは面倒くさくなったので、そのままPowerBookに放置

・馬鹿げた時間がかかることを除けば、XP→Vistaよりうまく移行できたような気がする

・clasicのアプリケーションまで全移行されたので、削除しまくる(ルートのシステムフォルダの削除はちょっと怖かったがOKだったようだ)

・ruby-1.9.0-0をconfigureしたら、ccが無いとか言われる。

・Xcodeをインストールしたり

・すると、マイグレーションの結果/usr/local/libに入っていた(というかインストールしたわけだけど、全然覚えていない)libpngとかlibjpegとかが軒並みリンクでエラーとなる。面倒なんで/usr/localの下を全部削除してしまおうかとも思ったけど、微妙に良くわからないので、エラーになったやつだけ削除して、どうにかmake testまで完了(makeの過程を眺めていてもいらつかない速度で動くから、これもOK)

・jruby-1.1rc1を入れる。これはさくさく動くけど、日本語が(Windowsでも同じだけど)

・Carbon EmacsでATOKが動かないのでググルとFAQもいいとこだったり

・Firefoxがまともに動かないと思ったら、2.0.2とかやたらとバージョンが古い。最新にする。

・にもかかわらず、最初のページが表示されるまでばかみたいに時間がかかる。

・ネットワークが遅いのか? と思ってみたり

・でも、Safariはすぐ動くから別の原因らしい(追記:死んだプロクシの設定もマイグレートされたからだった。すまん)。まあ、いいや。Safariをメインに使おう。

・というわけで、Safari、Mail App、Carbon Emacs、Ruby、gcc 4.0、jruby、Java 5あたりはちゃんと動く環境までできた。

で、外に持ち出してみると、やはり軽いってのはいいなぁと。

・にもかかわらず、キーボードに妥協なし(でも、左下Ctrlに慣れきっているので、そこはちょっと問題。かと言って、キーの入れ替えは嫌いなのでまあいいや)

・2本指の右クリック最高。これなら、ボタン1個で十分だ。

・同様に2本指スクロールもまあ、ありかな。

・でも、静電気のせいだと思うが、パッドに指を近づけただけでクリック扱いになるのは、かんべんな。(ちょっとドックのあたりにマウスカーソルがあるときに、パッドに指を近づけると、連続してアプリケーションが起動して、とんでもないことになる。でも、これディスエーブルすると、右クリックもできなくなるようにみえるので、ちょっと困るところ)

・熱さは、まだわからない。冬だし。とりあえず、PowerBookと違って、10分程度は腿の上に載せていても死なない(あっちだとモモ肉のステーキができると思うのでとてもできない)

・バッテリーは、3時間程度無線LAN使いっぱなし状態で、ブラウズしながら、エディター叩く程度の使い方したけど、まだ1時間程度余っていたのだった(実際にあと1時間以上使えるかどうかは別問題だけど)。

・サスペンドへの移行とリジュームは相変わらず速い。Vistaもこのくらい速ければなぁ。(ブートが遅いからどうなることかと思ったけど、考えたらMacはソフトウェアの更新をしなければ再起動しないから問題ないのであった。というか、Windows Updateよりも再起動したがるから、よっぽど悪質だと思うけど、誰も指摘しないね。変なの)

というような感じ。こうなるとDELLのVistaノートは重いから、Air専用DVDドライブ扱いか、というと、Visual Studioの動く動かないがあるから、状況に応じてという感じかな。でも持ち出しのメインはAirになるだろう。

あとは、PowerBookの始末。X31が壊れたと思ったので子供にやろうかと思ったのだが、直ってみると、黒くて小さいほうが良いとか言われたのでその目はなし。DVDドライブ扱いにするのはDELLで十分だし。というわけでソフマップの下取りに出すのが良さそうだな、と思いながらも熱さで使えないことを除けば、きれいで良いマシンなのでちょっと愛でるためにとっておきたい気もしたり(と、冬の間は思って見ても、現実には使い物にはならないから、そりゃないだろう)。

あと、思いだしたPowerBookより劇的に改善された点。手首が切れない。

本日のツッコミ(全2件) [ツッコミを入れる]

_ ogijun [2本指タップをdisableしても、パッドに指を2本置いた状態でボタンに触ると右クリック(というかCtrl+クリック..]

_ arton [>パッドに指を2本置いた状態でボタンに触ると右クリック(というかCtrl+クリック)にできますよ。 これねぇ、どう..]


2008-02-12

_ 微妙なシャリシャリ

iPod touchを音楽プレイヤーとしてまったく利用していないことに気づき、たまにはこれを使ってみるかと試してみたら、付属のイヤホンが最低なことに気づく。というか、左の耳から落ちるんですが。15Gとかシャッフルのイヤホンではそんなこた起きたためしがないのだが(黒いすぐ伸びるクッションの有無にかかわらず)、touchのやつは微妙に形状が違うのが、おれには合わないらしい。

で、あとで書く映画を観終わってから、その足でビックカメラへ行き、適当な値段のやつを購入。CD1枚と同じくらいの値段で良いだろうと、適当にさがして、ソニーは嫌いだし……とか見ていくと、オーディオテクニカのやつがあって、そういや昔ここのレコードクリーナー買ったなぁとか思いながら2480円のやつをポイントで買った。

audio-technica 密閉型インナーイヤーヘッドホン ATH-CK51 BK(-)

で、店の人に頼んで中身だけもらって早速使うと、耳にはフィットして良い感じなのは良いけれど、シャカシャカシャカシャカ妙に高音ばっかり強調されてびっくり仰天、こりゃひでぇ(たしか、このときはスタイルカウンシルがかかっていたような)。まるで、地下鉄で隣に座ったどでかい音で聴いてるやつの耳から漏れてくる音を聴かされているような感じだ。しかも低音がない。

で、アマゾンのカスタマレビューでもそう書かれているから、別におれの耳が変になったわけじゃなさそうだ。

しかし買ったものを捨てるのもしゃくなので、耳を馴らそうと(耳は慣れるからな)ずっといろいろ聴いていたら、妙にボウイのスケアリーモンスターズの楽曲が良く聴こえることを発見した。

スケアリー・モンスターズ(紙ジャケット仕様)(デヴィッド・ボウイ)

とにかく、ロバートフリップのギターが良く伸びる。しかも空間的な広がりがでかいのなんのって。ティーンエイジワイルドライフって、(好きな曲だが)こんなに良い曲だったっけ? というような感じだ。

Bowie and Audio-Technica ATH-CK51

いや、というか、ボウイの声も良く伸びて気持ちいいぞ(ヒーザンも良く聴こえる)。

特定の音域の偏りとか、AAC(ボウイはAAC128で入れた覚えがある)とMP3の差とかもあるのかなぁとか、いろいろ思うところもあるが、これだけ聴こえ方にばらつきがあるということは、よくも悪くも癖があるということなんだろうな、とオーディオの奥の深き闇におののくのであった。

#Ziggy Stardustのスネアはだめだ。すげぇ耳につく。これもAAC128なんだが。

_ ボリシェビキを観に行ったらエスエルを観ることになった件

ソコロフのタウロスを観ようと朝も早く11時開演の回めざしてラブホテル街を朝帰りのカップルの群れをかきわけながら、ユーロスペースへ向かった。

レーニン (光文社古典新訳文庫)(レフ・トロツキー)

ソコロフの描くレーニン最期の1日に胸が躍るぜ。

しかし、なんてこった。

タウロスじゃなくて、蒼ざめた馬とか書いてあるぞ。ソコロフのロープシンとは! とびっくりしたもののすぐに目が覚めた。全然関係ない「ロシアの有名な監督」としか情報が書いてない聞いたこともない監督の作品の特別上映になってるじゃんか。モーニングショーって時間じゃないだろう。

(一緒に掴まされた、上映レポートが必要な作品なんだろうか?)

でも、まあ、しょうがないから観ることにした。

蒼ざめた馬 漆黒の馬(ロープシン)

実はおれは、左翼エスエルにはちょっとうるさい。ましてサヴィンコフについてはちょっとした研究家だと言っても良い。さらにロシアテロリズムの系譜についてもなかなか詳しい。レーニンの兄貴がニコライ2世を爆殺したことはこないだのことのように鮮明に覚えているわけはないが。(突然思い出したがヴェーラザスリッチの本はどこへ行ってしまったんだろう?――気になって調べたらヴェーラ違いのフィグネルの本で、ちゃんと取ってあった)

したがって、へなちょこな映画だったら途中で出るつもりだ。

で、始まるとモスフィルムだということがわかる(ロシア語のアルファベットは読めるからだけど)。じゃあ、聞いたことない監督なのもしょうがない。ご他聞に洩れずレンフィルムしか追ってないからだ。

うーん。

で、地方の城館を訪ねる女性。侯爵夫人が閣下に陳情に来ましたことよ、と列に割り込み、いきなり長官を射殺するところから始まる。要人を暗殺した瞬間に群衆に殴り殺されてホルマリン漬けの首となって公開されるテロリスト(カメラに向かっておどける役人――と、往年のニュースフィルムのパスティーシュ)、炸裂する爆裂弾。

簡単なテロルの歴史の説明。

良いテンポで物語の舞台背景が描かれ、いよいよフレンチカンカンが鳴り響くカフェにカメラは向う。

見るからにワーニャなワーニャ。

どうみても二重スパイのアゼフ。

確かに、これがジョージだろうなのロープシン。

(それにつけてもロシアの役者の層の厚さにはいつも驚かされる。常に適役がいるものだ)

エレナは鼻から薬を吸い、信管を作成する。

(爆裂弾ってのは、爆殺した後に捕まるかどうかより前に、製作から運搬のすべての工程で死と隣り合わせだということが映像で告げられる。これは良い映画だ)

馬車の中の子供と眼が合い、爆裂弾を引っ込めるワーニャ。

びびるハインリヒ。

だが、名前忘れたが無産階級は敢然と馬車にしがみつき爆裂弾を放り投げる。しかし、不発だ。逃走。自殺。

エレナとイレーヌじゃないな、名前忘れた軍人の奥さん。

2回目の計画のために戻ったモスクワでのエレナについてのモノローグ。ワーニャの爆死と手足がもぎれた群衆、オペラハウス2階での大公の銃殺から、軍人との決闘まで、ていねいに物語が追われるが、まったくもたつかない。

確かに、腕の良い職人監督の技だ。

最後(あたかもアニマルハウス風だが、もちろんオリジナルもそうだ)、ハインリヒが銃殺され、エレナは爆裂弾の調合(あるいは信管の作成)に失敗して爆死し200m先まで吹き飛んだ手から身元が割れ、アゼフは逃亡先で監禁され寝台から暗い目つきでこちらを睨み、そしてジョージ(ロープシン=サヴィンコフ)は5階の窓から投げ出され、舗道の上で血を流して死ぬ。(踊り場じゃなかったっけ?)

ここ数10年、(娯楽映画は別として文芸的な)物語の映画は観ていなかったが、良い映画は良い映画だった。

でも、ソコロフが観たいわけだが。


2008-02-13

_ 雅叙園

都内には良くわからない園がある。

般若園、八芳園、椿山荘(園じゃないや)とか。(まだありそうだが忘れた)

で、椿山荘を除く3つは、同じようなエリアにあるところが、不思議な感じ。


2008-02-14

_ デブサミのジョエルのセッションのメモ

・技術的な優劣ではないが、厳然と差がある

blue-chip(英辞郎だと、「一流銘柄」とかなっている)の例:

iPhone $450、バッテリの交換は不可。ろくでもない入力機構。遅い通信速度

ヘイジュード(ある年の1位)

それに対する(言葉忘れたけど、2流品)の例:

サムソン $99、バッテリ交換可能。フルキーボード。高速通信

ポールモーリア(ある年の2位)

(カラヤンとジョージセルというような比較も成り立つかも)

つまり、おれがAirを買った理由であるな。

・おれってすげー感(全能感)を与えよう

アマゾンのチェックアウト画面は、できることがすべてできる。

・パワポで作ったWindowsのログイン−Windowsアップデート−プラグアンドプレイのシミューレタ

−かわいいネコの写真を撮った。犬でも良いけど。スターバックスで熱いコーヒーを買う。さて、オフィスに着いた。では、まずはブログへネコの写真をアップロードするとしよう。

電源を入れる。ログイン画面。パスワード。エラー。パスワード。エラー。CAPSロックだよ。パスワード。ログイン。なんかバルーンがあるぞ。Windowsアップデート。回線エラー。再試行。回線エラー。再試行。インストールしています。インストールしています(インストーラを作る人間は100%というものを何か誤解しているらしいね)。再起動します。ちょっとはしょることにしよう。さて、カメラをUSBで接続する。ウウープス、新しいデバイスを見つけたので、WindowsのCDを入れろ。む、CDってなんだ? ファシリティ部門へ電話だ。…… やっとCDをもらえた。うわー、CDドライブのフタが開いた瞬間に、コーヒーに当たった。こぼれた。あちち。と手を振り回したらUSBケーブルが抜けた。「このルーザー、勝手に抜くんじゃねえよ(バット×丸)」

罪悪感を与え、お前は無能だとわめきたてるユーザーインターフェイスの例。

・感情を重視せよ

SUVの背の高さは転倒の危険性に通じる。→安全に対する消費者の懸念が売り上げに悪影響。いかに安全性をアピールするか?

フランス人広告屋のアドバイス:

コーヒーホルダを付けろ。角をなくせ。背を高くしろ。

理屈では背が高ければ転倒の危険性は増す。購買層はそれを頭では理解している。しかし、高みからあたりを睥睨する感覚は感覚だ。高いところから見下ろすことで、万能の安心感を得ることになる。

熱い飲み物に手が届く丸みを帯びた空間は、子供のころの安心な世界と同じ感覚を与える。

ジョエルの新しい本(ただし、ジョエルは編集とコメント、序文(めっぽうおもしろい)のみの、有名無名を問わず、ソフトウェアについておもしろいことを書いたり言ったりした人々の論考だのブログだのマンガだのを集めたアンソロジー)。

BEST SOFTWARE WRITING(Joel Spolsky)

レビューのお手伝いをしたので頂けたうえに、青木さんとジョエルのサインももらえた。どうもありがとうございます。

この本にはホワイの感動的なRuby入門の抜粋がついている。スモッキス。それ以上に、クレイシャーキーという人のコミュニティにおけるユーザーインターフェイスについての章が良い。


2008-02-15

_ マクロ

マクロは言語を拡張するから、言語デザイナに嫌われるというのは良いとして、ではDSLは嫌われないんだろうか?

別に嫌われないと仮定すると、言語デザイナは、とにかく食わされたものを評価しなければ気がすまない人、ということになるんだろうか?

というか、マクロというのは、評価しないという理解は正しいのだろうか?

本日のツッコミ(全2件) [ツッコミを入れる]

_ Yugui [たまたま今日、Matzはどうしてそんなに「ユーザーが自分で分かってて型システムを破壊する」のを嫌うんだろう、と思った..]

_ arton [にしてはオブジェクト指向言語(ユーザーが型を拡張できる)を作っているんですよね。]


2008-02-16

_ 時代的な制約

Strutsって、まさに時代的な制約による(アクションが単一インスタンスなんて完全にそうだと思う……と書いた先から不安になってきたが、本当にそうだっけかな?)アーキテクチャを採用して、逆に時代的制約によって好まれて、で、時代的制約によってけなされる(そりゃ、2008年現在から見れば古臭いのは当然)存在であるなぁと。

にもかかわらず、嫌いではない。

フルスタックのよさというのは、Instant RailsとかLocomotiveに端的にあらわれているけど、確かに良いものだ。だって、楽だもの。でもこれは、Microsoft的アプローチと言ってよいと思うけど? SQL*Server+IIS+ASP.NET(ASP)+System.Enterprise(MTS)+Visual Studioというアプローチみたいだ。

別に対抗させる意味はないけど、これに対してバザールアプローチというのを対置させてみる。カーネルはLinux、libcはGNU、コマンドもGNUというようなやつ。別々に開発して誰かが取りまとめて(でも取りまとめる誰かがまた複数いるわけで)、みんなで好き勝手に使う。WebサーバーはApacheかも知れないけど、CGIエンジンはPHP、いやおれはPerlが好きだとか、で、RDBMSにはPostgres、いやMySQLとか、ちょっとひねりをきかせてFirebirdというのもあるよとか、そんな風に別々に作られたものを自由に組み合わせて自分のためのシステムを作る。

Strutsはバザールアプローチに向いたフレームワークだったと思う。何をしてくれるかというと、何もしない。ただ、URIからのルーティングをするだけだ(と、おまけのようにTagLibが付いていて)。でもJ2EEが想定したWebアプリケーションの構造を強制するだけの能力は持っている。

奴隷生活は楽だ。自由な生活は不便だし効率もそれほどは良くない。というような考えもないわけでもない。目覚めよと叩き起こした人間が起こされた連中に袋叩きにされるというのは、魯迅の好きな寓話だ。

レールという言葉が、歯車とほぼ同義語だったころを知っているわけだけど(親が敷いたとか、教師が敷いたレールを進む人生みたいな使い方をするんじゃなかったけな)、どうどうと名乗られると別にネガティブな意味ではなく、まあそう悪いものではないとも思う。というか楽だし。

J2EEはある頃までは、そういうバザールアプローチで、いろいろあってさてどれを選ぶとかやっていたのだが、いつのまにか内部で淘汰が始まって、気づくと外側の世界のほうが楽しそうになっていた、という印象も受ける。いや、結局はIBMあたりが巧妙に敷いたレールだったのだよ、という印象もあるわけではあるが。

そこで、もう統一的アプローチの時代なのだ、と考えてみても良いかも。つまりは、Instant Strutsというのは今さらだけど、展開するとApache+AJP+Tomcat+……な環境が勝手にそろって(いつでも削除できるように単一ルートディレクトリの下に配置されて)、いつでもレディみたいなやつ。あるいは、RubyGemsみたく、必要なjarを集めまくってくる仕組みとか。ふむ、ちょっと興味はある(プライオリティを考える必要はあるな)。

_ コードよりも仕様

public foo(String s) {
}
なメソッドのJavadocに、*param s なんちゃら名。名称未決定ならnull。 と書いてあれば
if ("foo".equals(s)) {
と書く。あとになって、s.equals("bar")とか書いてあったらそりゃメソッドの実装がバグだというだけのことだ。
逆に*param s なんちゃら名。null不可。と書いてあれば
if (s.equals("foo")) {
と書く。仕様を決めずにコードの詳細をうんぬんするのって、ばからしい。
というか、入出力の仕様も決めずに適当にその場の勢いで、どっちのオブジェクトを主(メッセージの送り先)に決めるのか?

2008-02-17

_ Vistaの落とし穴

ふと思うことがあって、メインマシンのグラフィックボードを変えてみることにした。元々は128MB載ったQuadroだったわけだが。

で、思うに、Vistaの場合だとオンボードメモリ容量がでかいほど有利かなと。

というわけで、512MB積んだnVidiaの8600GTを買ってみた。

でエクスペリエンスインデックスで測ると、ミドルレンジとは言え、新しいだけあって、3Dは5.3となった。以前は3.xだったからえらい向上だ。が。Aeroは4.7と期待より全然振るわない。

それだけならばまだ良いが、以前は1G積んだVirtual PCの起動は余裕、うまくすると2台実行とかも平気だったのがだめになっている。というか、1台ですら場合によっては上がらない(以前の2台に相当する感じだ)。おかしいな、と思ってみてみると、物理メモリが2.2Gちょっとになっている。以前は3Gを越えてたはずだが。

そこであらためて考えてみると、どうやら大きく誤解していたことに気づく。VRAMについても32ビットのメモリ空間上にマッピングするということなのか。メモリマップトIOとか全然忘れ去っていたけど、そうに違いない。しかもそれが512MB-128MBの減少ではなく、多分シャドウ用のバッファも確保されると考えると384×2で768MBの減少となり、だいたい計算が合うことに気づく。

えー、ってことは、Aeroを使いながらかつ3Dも生かし、かつメモリをがめまくるには、逆にグラフィックメモリーの搭載量は少ないほうが有利なんじゃないか? それで高性能なボードでも256MBしか搭載してないんだろうか。または、結局64bit Vistaに本気でしろということなんだろうか。というか、そういうことだ。で、さらにつらつら考えてみるに、多くの作業をVirtual PCで実行しているわけだから、本当に64bit Vistaへ移行したほうが賢いのかな? (グラフィックボードを以前のQuadroに戻すことを検討しているわけだが、迷いはあるわけで)

_ ツールドフランスおもしれぇ

ニコラフィリベールの動物、動物たちを観に、銀座テアトロシネマへ行く。

すると、最初に「行けラペビー(ヴァジラペビ)」ってのが始まった。爺さんが車に乗って、自転車選手についてあれこれ話している。横を自転車の人たちが走りまくる。なんだこりゃ? と思って観ていると、1930年代の優勝者でツールドフランスの生き字引のような爺さんだということがわかる。

帽子を拾うとは? そりゃいやなことだ。つまり、最後尾を走るって意味だ。

とか、用語説明をしてみたり。

石畳の上り坂。

一列になって選手たちが来る。とみるまに1人転倒して、2〜3人道連れになる。おっかねぇな。

1930年代の実況だと、区間優勝しても、外人については「イタリア人が優勝」とか「ドイツ人が優勝」とか、国名しか言わなかったり、妙にベルギー人に対して張り合ったり。当時は1人で走ったのだ。だから替えのタイヤなんかないんだ。先頭のベルギー人とは10kmも差がついてしまった。でもふと見ると、婦人用自転車が見つかった。いいかい、当時のことだよ。ためらわずにそれに乗ったよ。婦人用自転車だ。さらにしばらくして、別の自転車があるじゃないか。いいかい、当時のことだよ。もちろん乗り換えた。そしてついにベルギー人に追いついて抜いて区間トップだ。ところが、それはおれの自転車だとか、言い出したやつがいた。自転車の交換は反則だ、というわけで審査員がやってきた。

(でも、これはOKになったみたいに思うがよくわからない)

ポルシェにも乗っていたし、船を持っていたこともあった。でもそれらはすべて失った。残ったのは自転車だ。でも、それでよかった。自転車をこいでいるときに死ねたら最高だ。

とか言いながら、とにかく爺さんが自転車で走る。赤い自転車で、ぴかぴかに磨く。

当時のフィルムを交えながら、えんえんと赤い自転車をこいだり、選手と併走したり(先頭争いしている選手に声かけて振り向かせたりしているが、いいのか?)、これは良い映画だった。本当の映画だ。

一方の動物は、3頭の熊とか、オルレアン公の象とか(耳に濡れタオルを巻きつけ搬送する。博物館の入り口で耳を折り曲げて搬入)、解剖直後のアザラシかアシカ(手だけ最初に映るのでサルかなにかかと思った。ちゃんと指があるのだ)の皮を手際よく折りたたむ、ゴリラが重くて搬入できない、清掃ができない蝶の展示のために密閉するということについての議論、冒頭のみ、破壊作業が黒いアフリカ系作業員で、その後は、白人しか出てこない点について、とか。展示でコンセプトを打ち出すということにかけての女性科学者の議論の場での表明とか、スライド式棚を順にあけて剥製を探すシーン(におうらしく鼻を覆う女性。防腐剤の臭いなのかな? それとも剥製に特有の匂いがあるのだろうか)、オウムの羽の補修作業、引き出しの中のたくさんの義眼、下半身が針金になっているカンガルーの子供を母親のポケットに設置するシーン。とにかく動物の顔。たくさんのサルの顔。パンダの口がもにょっとした顔。毛もじゃの蜘蛛の美しさに手を触れる。チータの顔の紋。


2008-02-18

_ かぜ

ひく

のこ

ぎり

す。


2008-02-19

_ EM・ONE

こないだソフマップをぶらぶらしてたら、EMONEがクレドール付きで9800円だったので、ふらふらと吸い寄せられてしまった。

まるで、Visor Plutinumのときみたいだ。絶対単価が低いというのはおそろしい。

まあ、MacBook Airではそれまで使っていた富士通のUSB H"が利用できないってのはわかっていたので(Intel MACに対応してない)、いずれにしろ、何かの通信手段は買う必要はあったのだ。(knuさんに教わったのだが、emobile EM-ONEで、BluetoothモデムとしてemoneをMacで使うためのモデムスクリプトをroentgen1024さんが公開していて、えらく便利なことになった。あまりに便利なので、DELLのM1210にも後付でBluetoothモジュールを買って取り付けた)

で、ウィルコムは解約して、emobile生活が少しばかり始まって、すぐに結構気に入った。ので、10000円近く出してαにグレードアップしてしまった。

今、キャンペーンでEMONEαがクレドール付きで約20000円だが、同じ値段を出したといっても、最初からこの値段だったら買わなかっただろうなとは思う。

つまり、CE版のRubyが必要になったということだ。

ちょうど、MSDNでVisual Studio 2008が届いた。

ここには、Windows Moblie 6用のVC++も入っているんじゃなかったっけな? というわけで、まずはインストールを始める。が時間がかかるので、ここまでだったり。


2008-02-20

_ ce

なんかえらく面倒なようだ(書いてあるとおりにすんなりできないとそう感じる。っていうか、VS2008にはWM6の環境ないし。armv4とarmiv4iの違いもわからないし、知らないことだらけだ)。

とりあえず、ふつうのプログラムを作って、どんなものか様子を見るところから始めよう、とかやっているうちに今日は時間切れ。


2008-02-21

_ ce続き

適当にボタンを押したらメッセージボックスが出るようなプログラムは、emoneで普通に動いた。

問題は、これがどうなってるかなわけだが(それはそれとしてVS2008のMobile プロジェクトだと、^X^Sは効くけど、^Aとか^Nとかが全滅なのはなぜだ? VS2003の頃のできがきわめて悪いEmacsエミュレーションに逆戻りのような)。

_ やはりメモリが足りない

というわけで、Quadro FXに戻してしまった(とたんに物理メモリが3.2Gに跳ね上がる)。64ビットVistaにする前に、SP1を入れたかったし。

_ SP1の画期的な新機能

この機能が実装されたからには、OEMベンダーは安心して4GBメモリ搭載モデルを出荷できるね。

つまり、ウェルカムセンターの表示が「4.00 GB RAM」になったということだ。

もちろん、タスクマネージャなどで物理的に利用可能なメモリサイズを見ると、以前と少しも変わらないわけだけど。

(Joelがいうとおり、感情を重んじること重要だから、購入したコンピュータに搭載されたメモリ量がウェルカムセンターに表示されていなかったら、暴動が起きるだろうし。ディスクの10進計算に文句つける人もいるわけだし)


2008-02-22

_ 論理和と論理積

木村さんのところでなんか読んだほうが良さそうなことが書いてあったので、アマゾンを見てみると、こないだ草葉の蔭に思いが飛んでしまった草思社なもんですでに新刊は存在しない(リアル書店だと在庫があるんじゃないかって気もするけど)。とはいえ、マーケットプレイスに定価で出品されてたんで、注文した。

思考する機械コンピュータ (サイエンス・マスターズ)(ダニエル ヒリス)

で、さっそく読み始めたのが3日前くらい。

おお、目からうろこがそれなりに落ちてくるではないか。言葉というのはまさに使い方だな、とそのあたりも含めて、なるほど、これは読む価値があるようだ(いま、プログラミング言語に入ったところで、これまでのところは)。

僕は、アセンブラのようなものから入ったから、レジスタとかポインタとかスタックとかそういうものについては頭の中でいくらでも操作できる。そのため、コンピュータについて「低レベル」という言葉の意味をそのあたりにおかれているのを見ると、なんとなく違和感を覚えるのだが(っていうのは、これはやはり実装の詳細に過ぎないと思うのだ。というのも、使っていたのは非スタックマシンでスタックは存在しなかったわけだけど、スタックマシンを使うようになったからといって理解の断絶がなかったからだ。ということは、より下により抽象化できる層があるということではないだろうか)、この本では最初に論理回路がきて、その上に有限状態機械が置かれていた。これは、すごくしっくりときたよ。

(たまたま、2か月前くらいにとある事情からえらくへたくそな3目並べのアルゴリズムを作った(失敗しているのだがそれはそれ)という事情もあって、この本の掴みが3目並べだったので妙に引き付けられたという側面もあるかも。しかも別件でじゃんけん勝敗マシンのプログラムを作り上げた直後に、読み始めた章にじゃんけんマシンが次の掴みとして入っていたり。おかげで、僕もそれほど思考の方向性は外していないかも知れないかも知れないとか思ったりもしたわけだが、入口は1つでも中はたくさんあるからこれも別問題だ)

ところどころに問題が入っている。

最初の問題は、解けた今となっては、見た瞬間にわかりそうなものに感じるけど、実際には1日かかった。それだけ、そのレイヤで思考する習慣がないということなのだろう。

AND回路とINVERT回路を使って、OR回路と等価な論理ブロックを組み立てる方法は?

数秒で解けなかった場合は、この問題を次のように置き換えてみてやってみれば良いかも。

require 'test/unit'
def _and(x, y)
  x && y
end
def _invert(x)
  !x
end
#以下を満たす_or関数の中を埋めよ
def _or(x, y)
  ?
end
 
class TestOr < Test::Unit::TestCase
  def test_or
    assert_equal true, _or(true, true)
    assert_equal true, _or(true, false)
    assert_equal true, _or(false, true)
    assert_equal false, _or(false, false)
  end
end
で、この結果が、OR回路とINVERT回路を使ってAND回路を組み立てた型(これは最初のほうで示されている)ときれいな相似形で、ちょっと感動したり。

_ RJB-1.1.2

ばかなバグで、テストプログラムが間違っている(少なくとも正しく機能しない)場合には、役に立たないという話。

Rjbのテストに以下のメソッドがある。

  def test_field()
    point = import('java.awt.Point')
    pnt = point.new(11, 13)
    assert_equal(11, pnt.x)
    assert_equal(13, pnt.y)
    pnt.x = 32
    assert_equal(32, pnt.x)
  end

このメソッドは、フィールドアクセスのテストで、そのため、あの悪名高いPointクラスを利用している。

1.0.5で、jruby同様のRuby化したメソッド/アクセサを取り込んだ。その時点でバグが混入してフィールドの読み込みアクセスはできなくなってしまった(書き込みは可能)。でも、上記のテストの表明は問題なし。というのは、

  def test_field()
    point = import('java.awt.Point')
    pnt = point.new(11, 13)
    assert_equal(11, pnt.x) # pnt.getX() のRuby化メソッド呼び出し
    assert_equal(13, pnt.y) # pnt.getY() のRuby化メソッド呼び出し
    pnt.x = 32              # ここはフィールドへ設定できる
    assert_equal(32, pnt.x) # pnt.getX() のRuby化メソッド呼び出し
  end

となったからだ。だから、Pointクラスではなく、ゲッタセッタを持たないか、または名前がフィールドと衝突しない公開フィールドのみを持つクラスを使うようにテストを変える必要があったのであった。

でも、これはフィールド公開インターフェイスを選択したのに、無意味なゲッタメソッドを後(1.2)から追加したPointクラスのインターフェイスがまずいのだと思う。(イミュータブルにすべきとかいろいろ考えはあるだろうが、Pointは限りなくプリミティブだと思うので、フィールドアクセスは別に構わない)。


2008-02-23

_ 有限状態機械

昨日の本の続きで、第2章は有限状態機械についてだ。

思考する機械コンピュータ (サイエンス・マスターズ)(ダニエル ヒリス)

有限状態機械は、ネットワークプロトコルを実装する必要があったので、ずいぶん以前から親しんでいるのだが、これも問題が出てきて、やはり僕には簡単ではなかった。

問題はミンスキーがMITで筆者に教えた「一斉射撃問題」だ。

司令官が銃を手にした兵士たちを一列横隊に整列させ、銃殺刑を執行させようとしている。しかし、兵士たちの数があまりにも多く、[簡略して書くと、司令官が怒鳴っても声が最後の兵士までは届かない。したがって、列の先頭の兵士に命令を下す。兵士は同様に、隣の兵士には命令を伝えられる。]ただし、兵士たちは一斉に射撃しなければならない。背後では太鼓が規則的に鳴らされているが、兵士の総数がわからないので、「太鼓が何回鳴ったところで一斉に射撃せよ!」といった命令は下せない。兵士は自分の両隣の兵士に何を言ってもかまわないが、射撃はすべての兵士が一斉にしなければならない。

ヒントとして、片手に満たない有限状態機械を作って解ける、と出ている。

以下に、Rubyで僕が書いたプログラムだが、本当にこの方法(状態の切り出し)で良いかは自信がない。状態は4個に収まっているが、射撃をする状態は独立しているべきなのではないか、とか、伝達内容は本当にこれで題意を取っているのか、が、わからないからだ。

もう一点あって、これを書いて気づいたが、Rubyではあまりきれいに書けないか、または僕がきれいな書き方がわからない。Cなら関数ポインタの状態遷移表、Javaならインナークラスの状態遷移表を作るところだが、Rubyだと表を作る気になれないからだ。

class Soldier
  def initialize
    @state = idle
  end
  def pulse(left, right)
    @state.call(left, right)
  end
  def prepare(count)
    @count = count
    @state = prepare_next
  end
  def start_count_down
    @state = prepare_count_down
  end
  private
  def idle
    Proc.new do |left, right|
    end
  end
  def prepare_next
    Proc.new do |left, right|
      if right
        right.prepare(@count + 1)
        @state = idle
      else
        @state = prepare_count_down
      end
    end
  end
  def prepare_count_down
    Proc.new do |left, right|
      if left
        left.start_count_down
      end
      @state = count_down
    end
  end
  def count_down
    Proc.new do |left, right|
      if @count == 0
        puts 'bang!'
        @state = idle
      else
        @count -= 1
      end
    end
  end
end
NUMBER_OF_SOLDIERS = 20
s = [nil]
1.upto(NUMBER_OF_SOLDIERS) do |i|
  s << Soldier.new
end
s << nil
s[1].prepare 1
x = 1
while true
  puts "round # #{x}"
  1.upto(NUMBER_OF_SOLDIERS) do |i|
    s[i].pulse(s[i - 1], s[i + 1])
  end
  x += 1
  break if x > NUMBER_OF_SOLDIERS + 10
end

このプログラムでは、兵士が20人いれば、太鼓が23回叩かれたところで一斉射撃が起きる。

状態は4つあるprivateメソッドで示されている。pulseメソッドは太鼓の音によって実行される。

追記:これはだめだな。23回で射撃するというのはおかしい。隣の兵士への伝言を1回で全部やってしまっているけど、それは無理だ。たまたま、同時に遷移が行われるような作り方をしているからだな。というわけで、後で直す。と思ったけど左から右を直すと、右から左への通信が1太鼓分遅延するようになるから、配列使って順にまわす限りそこにこだわっても意味がないことがわかったのでやめた。

追記:別解。逃げ出したら(一歩を踏み出したら)、撃つってのも良いかも。もちろん死刑囚にはそれを教えていない。彼は気づくと、すべての縛めから解放された状態で壁の前に立たされている。しかし、もし観念していたら、永遠のデッドロックとなる。

_ さて

さっき本屋で買ったもやしもんを読む。

もやしもん6巻限定版 ぬいぐるみ付き(石川 雅之)

(実物のオリゼのでかさにたまげて、普通の本のほうを買ったのであった)

_ なぞの記事

クレジットカードの磁気ストライプをハックするプログラムがリリース

なぞ1:20世紀ならいざ知らず、磁気ストライプには表面に書かれた情報以上の情報は含まれていない(むしろ、セキュリティコードが含まれていないので、表面よりも情報は少ないとも言える)

なぞ2:EMVでは磁気情報はきわめて稀な場合にのみ入力が許容されているので磁気ストライプという単語が出てくる時点で謎、というか、「チップ」と書いてあるけど。

なぞ3:「ChaP.pyはカード所有者の氏名や主要口座番号、その他口座の識別情報などの磁気ストライプ内の機密情報」というか、「主要」「氏名」が「磁気ストライプ」とどう関係するのか意味不明

なぞ4:翻訳ミスかと思ったが、原文もmagnetic stripsとか書いてある。


2008-02-24

_ マージソート

思考する機械コンピュータ (サイエンス・マスターズ)(ダニエル ヒリス) まだ、続きを読んでいるわけだが、
このアルゴリズム(マージソート)では、対象物を二つのグループに分割し、各グループの要素を一つずつ順繰りに取り出しては、昇順に揃える操作を繰り返し、その結果をマージしたものを再びマージの対象にするサブルーチンが再帰的に呼び出される(これでは簡単すぎてうまくいく訳がないとお疑いになる読者は、ご自分で試してみるのも一計である
自分で試すも何もさっぱりわからない説明だ。が、いろいろ考えて、次のようなのができた。これで良いのかな?
NUM_OF_ELEMENTS = 16
o = []
1.upto(NUM_OF_ELEMENTS) do |x|
  o << (rand * NUM_OF_ELEMENTS).to_i
end
p o
 
def m(o0, o1)
  if o0.empty?
    o1
  elsif o1.empty?
    o0
  else 
    [((o0[0] > o1[0]) ? o1.shift : o0.shift)] + m(o0, o1)
  end
end
 
def s(o)
  if o.size > 1
    m(s(o[0...(o.size / 2)]), s(o[(o.size / 2)..-1]))
  else
    o
  end
end
 
p s(o)
実行するとこんな感じ。
$ ruby -d msort.rb
[7, 7, 0, 2, 13, 9, 15, 7, 7, 15, 7, 10, 3, 0, 7, 8]
[7, 7]
[0, 2]
[0, 2, 7, 7]
[9, 13]
[7, 15]
[7, 9, 13, 15]
[0, 2, 7, 7, 7, 9, 13, 15]
[7, 15]
[7, 10]
[7, 7, 10, 15]
[0, 3]
[7, 8]
[0, 3, 7, 8]
[0, 3, 7, 7, 7, 8, 10, 15]
[0, 0, 2, 3, 7, 7, 7, 7, 7, 7, 8, 9, 10, 13, 15, 15]
[0, 0, 2, 3, 7, 7, 7, 7, 7, 7, 8, 9, 10, 13, 15, 15]
(追記:mをちょっと直した(ら、sも直すことになった(ら、デバッグ出力できなくなったので、実行例は嘘になった))。こういう意味かなぁ)

2008-02-25

_ アマゾンダンス

在庫なしだったせいで、6800円とかわけのわからない(ということもないけど)価格がついていた思考する機械だが、なんか急遽在庫(取り次ぎ在庫?)を取り寄せたらしく、アマゾン販売の定価で出てる。

思考する機械コンピュータ (サイエンス・マスターズ)(ダニエル ヒリス)

(今日はNP完全が出てきたとこまで。セールスマンは偉いなぁ。じゃなくて、ヒューリスティックな例としてチェスのプログラムのところまで読んだ)


2008-02-26

_ 携帯の未来

縁あって、1000万ドルへのパスポート本をいただきました(というか、今、届いた)。

Google Android完全解説 (アスキームック)(アスキー書籍編集部)

概要と、機能それぞれ、最後に実践編としてスケジューラとメッセンジャーの例でまとまっています。

(今気づいたが、こういうかたちでまとまっていると、Javaを利用してサブシステムを構築する場合のシステム設計の見本としても読める)

というわけで、お知らせでした。


2008-02-27

_ 未来の携帯

ウェアラブルコンピュータってコンセプトは世の中から消えたのかな?

_ ドメイン

SMTPサーバを持とうとドメインは取ったのだが(一部で使っているサフィックスxが付いたやつが確保できた)、結局何もしないまま1年たとうとしている。というか、継続するかメールが来たので、ちょっと迷ったがartonだとmobiとサモワしかないし、結局x付きを継続することにした。でも、また1年放置することになりそうな気もするのだな。


2008-02-28

_ 進化論的アプローチと量子コンピュータ

いよいよクライマックス(後、数ページ)だが、話はどんどん広がっていく。

思考する機械コンピュータ (サイエンス・マスターズ)(ダニエル ヒリス)

超並列コンピュータが必要かつ有意義な問題として、進化論的アプローチによるプログラムの生成が出てくる(ただしコンテキストはモジュール化アプローチの限界に対する克服手段の例として)。

生成方法にドメイン固有の偏りを与えてから数万個のプログラムを生成し実行して最も正しいものを選択していく。

直感的に無理だと思うわけだが(というか読み進めたらソートプログラムは実際に作ったと書いてあった)、でも待てよ?

これこそ量子コンピュータで(こそ)解決可能な問題にみえる。

そこで生命の不思議さについてしばし考えこむ。


2008-02-29

_ 予約した

マリオカートWii (「Wiiハンドル」×1同梱)(-)

ハンドル1個でも対人レースってできるのかな? とか謎はあるけど、とりあえず予約した。

ついで(つまり配送料の問題)に、近所の本屋は仕入れないらしいズーキーパーも予約。

ZOOKEEPER(5) (イブニングKC)(青木 幸子)

_ 買った読んだ

へうげもの(6) (モーニング KC)(山田 芳裕)

リブロに行ったらへうげもんの6巻が置いてあったので買った。読んだ。おれは高山好きだな。(追記:あ、しまった。どうも変だと思ったら、これは5ではないか)

シグルイ 10 (チャンピオンREDコミックス)(山口 貴由)

しぐるいの10も出てたので買った。読んだ。

_ 舞台装置

ブルガリアヨーグルト

19世紀のしっぽを引きずったおかしな異国趣味が、20世紀になって正されて、逆にむかゆうきょう(変換できない)として立ち現れるって感じでおもしろい。

そういえばベリオ版の演出も奇天烈だしな。

#む、むかゆうきょうではなく、無何有(むかう)の郷(さと)なのか。変換できるし。


2003|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|12|

ジェズイットを見習え