トップ 最新 追記

日々の破片

Subscribe with livedoor Reader
著作一覧

2010-08-01

_ 何も変えてはならない

ユーロスペースで、ペドロ・コスタの何も変えてはならない。

白黒で最初何が映っているかわからないが、女性だとだんだんわかる。素晴らしい映像。

が、これはだめだ。音楽が耐えられない。

toutが強過ぎる、と練習風景の繰り返し。こういうのは良い。

が、バンドと一緒に歌うときは、ギューワーンーギューワーンーという異様に緩慢なテンポにディストーションがかかったギターで、4流の灰野敬二というか、5流の裸のラリーズというか、これはおれは聴いていられない。というわけで寝る。

時々目覚めると素晴らしく美しい光と影の世界が見え、言葉がある。

ジョニーギター。

しかし、すぐにギューワーンーギューワーンーが始まる。寝る。

気付くと監督挨拶がはじまる。

ここではフランス語なのか。

私のために言うのではない。それはあなたたちのためなのだ。ジャンヌ・バリバールとロドルフ・ビュルジェに注目しなさい。

いや、おれはロドルフ・ビュルジェの音は二度と聴きたくはない。


2010-08-02

_ 修道女アンジェリカ

で、フリットリ熱が冷めないうちに観てみたわけだが、どうしてジャンニスキッキだけが独立して演じられるか納得も得心もした。

まず誰が誰かわからない。修道女長と伯母さん以外みんな同じ服(当然だけど)。

これ、学園ものアニメを外国に売る時、同じ問題にぶち当たりそうだな。アニメなら髪の色を変えられるからまだましか。

それはきれいな歌がある。

でも変化がまるでない。伯母さんとの対決が一種の山場なんだろうけど。

遺産と不快な伯母さんというモチーフは、ジャンニスキッキのジータが原罪を背負わされちゃったんだな、この作品のせいで、とかいう意味では連続性もあるわけだが。

後、つくづく自殺が罪な国では終身閉じ込めっておっかないことだなとか、背後の物語の恐ろしさに震え上がる。


2010-08-03

_ ASP.NETでリモートファイルを利用する

検索しても具体的で簡便な方法が見つからない。相談サイトみたいなところに質問はあったが、答えるやつが想像力が欠如したバカらしくなんでそんな必要があるのか、とか説教垂れたりしているし。

時々失敗するが、以下の方法でできた。

ただ、微妙なところもある(後述)。

まず、Windows Script Hostを参照設定する。

        const int FACILITY_WIN32 = 7 << 16;
        const int ERROR_SESSION_CREDENTIAL_CONFLICT = 1219;
……
            IWshRuntimeLibrary.WshNetwork wshn = new IWshRuntimeLibrary.WshNetwork();
            try
            {
                wshn.MapNetworkDrive("", "\\\\FileServer\\path", false, "user", "password");
            }
            catch (System.Runtime.InteropServices.COMException e)
            {
                if ((e.ErrorCode & 0xfffffff) != (FACILITY_WIN32 | ERROR_SESSION_CREDENTIAL_CONFLICT))
                {
                    ....
                    return;
                }
                wshn.RemoveNetworkDrive("\\\\FileServer\\path", true, false);
                wshn.MapNetworkDrive("", "\\\\FileServer\\path", false, "user", "password");
            }

ERROR_SESSION_CREDENTIAL_CONFLICTが返るのは、同じドライブを別のログインユーザがマップしている時だと思うのだが、一度だけその例外がスローされたので、試しにRemove/Mapし直すようにしてみたが、おそらくデッドコード。

ドライブ名は割り当てない。アクセスするときはUNCを使う(ドライブ名を固定アサインすると、コンフリクトする可能性があると思う)

IISで動かしたときに、ERROR_NO_SUCH_LOGON_SESSION(1312)となる場合がある。2度目以降。

最初は、利用後は、RemoveNetworkDriveを呼んでいたのだが、それを避けるために、Removeはやめた。ドライブ名は割り当てていないし、他のユーザでFileServerにログインすることもないので、重複例外(ERROR_LOGON_SESSION_COLLISION 1366)だけを気にすれば良いかな、と。

と、うろ覚えのエラーコードなので、実際に試したほうが良い。良くわからないのは、ERROR_NO_SUCH_LOGON_SESSIONが出ることで(このコードは間違いない)、一度は成功して、Removeした2度目にそうなる理屈がわからない。


2010-08-04

_ 読みたいよ

黒後家蜘蛛の会(5) / アイザック・アシモフ

どうってことなさそうなオチが想像できるにも関わらず、どえらくおもしろそうだ。

そのうち買って読むかもというメモ。

黒後家蜘蛛の会〈5〉 (創元推理文庫)(アイザック アシモフ/Isaac Asimov/池 央耿)

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

Before...

_ ma2 [懐かしい... アシモフのSFは今はあんまり評価されていないようですが,ミステリは生き残っていますね。]

_ arton [懐かしいのかぁ。僕はファンデーションとかは読んだけど、ミステリ(というよりも一種のパズルのようだなぁ)作家としてのア..]

_ ムムリク [まさにSFなミステリとして「アシモフのミステリ世界」(ハヤカワ文庫SF)があったのですが、入手不可のようですね。残念..]


2010-08-06

_ じゅんく堂トークセッションJRubyKaigi前夜祭

じゅんく堂で、大場夫妻、橋本さん、なぜかなひさんのトークセッション。

最初に大場さんから、なぜなひさんが最(向かって)右翼にいるのか説明。おっかない人、見た目通り、だからこちら側に置いておいた方が安全。ひでぇ言いようだが、そのあたりはasakusarbの和気藹々とした雰囲気乗りということなのだろう、きっと。

で、本の紹介から。

JRuby on Railsシステム構築入門 (DB Magazine SELECTION)(橋本 吉治)

橋本さんは、DBマガジンの(日本でも最初期の)Ruby連載がいつの間にかこうなってこうなった、と紹介。

企業人が1週間程度かけてJRuby on Railsの評価(採用するかとか)をするときに手元に置くのにふさわしい本なのは、おれもよーく読んだから知っているけど事実。

でも、良く話を聞いていると、JRubyが使い物にならなかった時の押さえにMRIとSOAP4Rを用意しておいたとか言っていたけど、それはどうなのかなぁ。コンポーネントはできるだけ使いまわしたほうがお得だという事実を考えれば、MRI+rjb+JAX-WSのほうが遥かに良いと思うのだが(速度的な面で。測ってないけど、パーズの速度はMRIよりJavaのほうが高速だと思うんだよなぁ。というのは、SOAPで一番のボトルネックはXMLマーシャリング/アンマーシャリングだから(これは.NETでの経験だけど、JavaでもXMLマーシャリング/アンマーシャリングは結構な時間が必要だし、SOAP4RがどれだけうまくやったとしてもMRIの速度に制限されるわけだからなぁ、とかは思った。

一方、大場夫妻はオラビニ本の翻訳だが、とにかくオラビニは頭が切れるらしく妙に詳細から詳細へ話が飛ぶので読みにくいことこの上ないので、そこは思いっきり日本語化するときに読みやすく変えたとか言っていた。それで、内容がそれなりに深掘りしたりしているのに読みやすいのかな。

JRuby on Rails実践開発ガイド (Professional Ruby Series)(Ola Bini/株式会社万葉/大場 光一郎/大場 寧子/田中 祐樹)

ウリは、巻末のJRubyリファレンスだとか。手元のやつを読むと、java.lang.Runnableに追加した(Rubyから扱いやすいように)メソッドのto_procとか、プリミティブ型配列のto_java(大場さんの好きなメソッドらしい)とかのことかな。確かに日本語ドキュメントとしてはコンパクトにまとまっている。

で、JRubyKaigi(RubyKaigi2010の2日目)の紹介と、Tシャツ買ってくれ(サーブレットガール(でも20世紀のことだからサーブレット姫と呼ぶらしい)の来日費用になるらしい)のお願いとか。

懇親会で、なひさんとJMSの記述についての問答。

JMSで投げるとこまで(橋本本)、結果をスリープしながらポーリング(オラビニ本)、どっちも中途半端と思う。どう実装する?

おれだったら(橋本本のは読んだがオラビニ本のその部分は読んでいないので半分想像だが)、別にプロセス立ててそっちで待たせる。戻ってきたら127.0.0.1:80へPOSTしてRails側へ渡す。(または、J2EE規約では非推奨または反則だが、受信スレッドを別立てしてそこでキュー待ちさせる)とか答える。

が、今になって考えると、橋本本のほうはともかくオラ本のほうがそういう変な待ち方をするということはそもそもインターフェイスがまずいのだろう。

つまり、クライアント→サーバ→JMS(どこか)JMS→サーバ→クライアント という処理をしようとしているに違いない。

これはまったく良くない。

クライアント→サーバー→JMS(どこか)

クライアント←サーバー(投げた)

として、ポールするならクライアントにやらせるべき問題だ。

クライアント→サーバー(受信していたらその旨返答)

以前はこういうことをやろうとするとREFRESHみたいな野蛮な方法しかなかったが、今ならAjaxでこっそりやれるのだから、そのほうが良い。

この時、JMS経由の応答はやはり別プロセスか別スレッドで応答を受信したという状態をDBにストアしておく。

だが、もしクライアント−サーバのネットワークトラフィックが問題となるようなシステムだったら本当にポールは正しい方法か?

それはたぶん異なる。であればトラフィックを減らす工夫、たとえばCOMETを使うとかする。この方法だと、別プロセスから受信したという状態をRailsに回せば、そこでCOMETのキューをキックできる。

あるいは、クライアントが応答を必要としているのだから、JMSを使わずに確定応答な通信を上位サーバと行うか、だ。

それでもクライアント、上位サーバの仕組みがどうにもレガシーで、クライアント側は上位サーバの結果を一連の動作として表示したく、しかも上位サーバとはJMSを使う必要があるとすればどうするのが良いだろうか?

その場合も別プロセスでJMSのキュー待ちさせて受信したら、127.0.0.1:80を叩き、その中でsynchronized, notifyAll, すれば良い。つまり、JMSへキューした元のリクエスト処理スレッドはタイマー付でwaitさせておく。もちろんスレッドを1つ占有するのだからろくでもない仕組みだが、周り(クライアントは応答を待ちたく、上位サーバはJMSでリクエストを要求する)がそれを要求しているのだから、そのほうが良い。

で、こういう場合はJMS経由の応答待ちの最大スレッド数を決めておき、サーブレットコンテナにはそれ以上のスレッドを割り当てて、待ち状態のスレッド数が上限だったらビジーを即座にクライアントへ返す処理をコントローラの先頭に入れておけば良い。

とかいろいろ方法はあるなぁ。

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

_ なひ [何か忘れてると思ったら、rjbでした。紹介すべきでした。。。JRubyKaigiで誰かLTしないかしら。 Ola ..]

_ arton [実は僕がrjbでLTを申し込みました。]


2010-08-07

_ カポディモンテ

上野でカポディモンテ美術館展。

困ったことに固有名詞がまったく覚えられないので、誰がどうだかはまったく思い出せない。

ポスターにも使われている左を少し引いてこちらを見ている女性の画はすばらしく美しかった。

宗教改革があって、マグダラのマリアが着衣に変わったとか。

乳房を切り落とされた聖女の画が3種類あって、最初のやつはエジプトのマリア(老婆)と対応している若い女性なので、まんなかに幼子を配して19世紀末のモチーフみたいだなぁとか、2番目のはまるで革命の女神のような美しい構図。鎖でつながれているだけなのだが、高々と上げられた腕の白さが光をもたらしている。3番目のは血まみれの布で胸を覆っていて、哀しげな素晴らしい表情。

表情といえば、不思議な蝋細工の苦悩する表情。

冷器の裏側にまでしつこく描かれた絵。

スペイン人の光の中でぼやけた(誰か)。

異様に躍動的な追っかけっこ。

エルグレコは同じ時代にあって一人異なる。

極初期の服の不思議な(ネガのような)表現。


2010-08-08

_ インセプション

最初渋谷TOEIに行ったら次の回は満員とか言われてしょうがないので、HUMAXへ行った。行ってみたらHUMAXって結構おもしろかった。

もしかしたら、インセプションやってる映画館では全部同じことやっているのかも知れないが(2回、3回観る映画でもないから、別の劇場でやっててもわからないわけだし)、HUMAX店員お勧め本ガイドとか銘打って、あなたのお気に入りの登場人物が、もしアーキテクトならエシャーの画集(かなぁ? 忘れちゃったけど)、もし調合師なら毒薬(や、これは嘘だな)、斉藤さんなら葉隠(これも嘘)とか、コボル社の殺し屋なら実践COBOL(これも嘘だな)とか、実際のところ何だったかまったく思い出せないが、どうも本屋連動企画みたいなことをやってて、(もちろんそれらの本がインセプションとタイアップして宣伝しているわけじゃないことはわかるラインアップなので)一種の草の根あるいは地域メディアミックスだなぁとか。あるいは、映画館にわざわざ足を運ぶ層には本がリーチするかもという本屋さん側のアイディアなのかな?

それにしても、清掃中で中に入れないからロビーでうろうろしていると登場人物人気投票みたいなのがあって、1位が協力者役のアステアをっちょっぴりとイケメンにしたような役者で、なんでこんな聞いたこともないやつが1位なんだと不思議だったけど、観てみたら実に良い役回りで納得した。


2010-08-09

_ 片隅にいるもの

映画が始まるまでの間の時間つぶしに適当に本でも買おうとブックファーストに行ったので、黒後家蜘蛛の会の1を探したが置いていない。

で、気持ちの悪い表紙の本が平積みになっているので手に取った。

カバー裏に、ある日物置で蟲を食べる気持ちが悪い生き物を見つけたとか書いてある。ケッチャムの本みたいのだったら読みたくはないなぁとか思いながらひらひらさせているとカーネギー賞がどうしたとか書いてある。ではケッチャムってこたぁなさそうだ。

でも一体なんなんだろう? とやはり不思議なので買って読み始めた。

赤ちゃんが生まれたからおそらく以前の家が手狭になったので、引越したらしい一家の長男視点で物語ははじまる。それほど裕福ではなさそうで、老人が孤独死した家なので安く借りられたらしい。件の物置というかガレージは得体の知れないものと死骸とゴミが詰まっていて、おまけに柱も壁も床も腐っていていつ壊れるかわからない危険地帯。隣の家には鳥の絵を描く典型的が大嫌いな女の子が住んでいる。赤ちゃんは未熟児で半分天国で暮らしたままこの地上にしっかりと足を下ろしていない状態。父親は一生懸命に家を修理しペンキを塗り……と働きまくっているがなかなか家は住みやいとは言えない状態で母親は疲れ果てている(が、子供に対する愛情は失っていない)。

さて隣の家の女の子に呼ばれて何やら秘密を見に行くところまで読んだら時間となった。一体どういう話なんだ? と興味は尽きないのでとりあえずこれを先に読むことにしよう。

肩胛骨は翼のなごり (創元推理文庫)(デイヴィッド アーモンド/David Almond/山田 順子)

(追記:読了。これは児童文学だな、とか思ったら後書きにそう書いてあったというか、カーネギー賞ってのがそもそも児童文学対象だった。まあ、鼻につくところは隣家の母娘とかいろいろあるけど、そんなに悪くはなかった)

たぶん、題名から天使のやつを想像したから興味を惹かれたのかも知れない。

天使の顔写真 (ハヤカワ文庫 JA)(森脇 真末味)

まったく関連はなかったけれど、それは当然。


2010-08-10

_ エンタープライジーなREST

オライリーから私が監訳(という作業を初めて経験したわけですが、それは別の物語)した、『JavaによるRESTfulシステム構築』という本が近々出ます。

JavaによるRESTfulシステム構築(Bill Burke/arton/菅野 良二)

この本は、実にいろいろな面からおもしろい。おもしろいので、オライリーの編集の方に翻訳して出版する価値もあれば意義もあるとお勧めしたわけで、当然、読むことをお勧めします。

さて、何がおもしろいのか。一端は後書きに書いたけど、当然、書ききれない点や後書きに書いてもしょうがない点とかは省略しているので、そのあたりを含めて紹介します。

1. 著者がBill Burke

これはおもしろい。というのは、BillはJBoss野郎なのだ。当然、CORBAからのORPC男。当然EJB。もちろんEJB3。

なぜ、そのBillが『JavaによるRESTfulシステム構築』なのか。そのあたりは前書きでいろいろ書いていて、そのあたりの葛藤がまずおもしろい。かつ、その葛藤の切実さは結構よくわかる。

こんな感じだ。

ある日、飯を食ってたら、へーいBillじゃないか、おれだよ、おれ。と呼ばれて顔を上げると、IONA時代の大先輩がにやにやしているではないか。この男は、おれの師匠で、ORPC道に引き込んだ張本人だ。

最近は何をされてるんですか? と思わず訊くと、まじめな顔で、Bill,おれはCORBAは捨てたよ。これからはRESTだ。

えー、まじっすか? せめてSOAPと言ってくださいよ。

やなこった。Bill。おれたちは若かったんだよ。苦いものだな、若さゆえの過ちというものは。というわけで素直に負けを認めようじゃないか。ジャーレスタファーライ!

バカですか!?

というわけで大激論を延々と繰り広げることになるのだが、ちょうどそのころ技術ブロゴスフィアでもREST対SOAPで賑わっていたのであった。

そして今おれはこの本を書いているし、JBoss RESTEasyのスペックリードやってんだぜ。

諸君、RESTだよ。分散コンピューティングの結論はここにあったのだ。

という具合に、Bill BurkeのRESTに対する否認、怒り、取引、抑鬱、受容が書かれている(まあ、この文章は広告だから大げさだが、書かれていない技術的なドラマ、つまり設計やネットワークシミュレーションなんかをいろいろやってみたのは間違いないだろう)。

2. 書籍の構成

2部構成となっていて、第1部はRESTとJavaプログラムのマッピングをJAX-RSを仲介として説明していく。

たとえばURIがなぜ重要かというRESTの原則を説明してから、ではこれこれという(例としてはショッピングサイトっぽいものを使っている)サーバ上の処理があるとして、それをURIによって示す、つまりリソースとして設計するにはどうすれば良いか(このあたりは、特に例が複雑化するにつれて、いや、おれはそうは思えないとか、おれだったらこう考えるとか、読者が設計に参加する余地があり、そこも良い)、ではこういう設計とするとして、それをJavaのプログラムにマップするために、どのようにJAX-RSは機能するのか、リストで示した例を見てみよう。

というように、概念、概念の実例化、JavaプログラムへのJAX-RSを利用したマッピングという構成で各章を構成している。

これはわかりやすい。とにかく、RESTの原則とは何で、それは実際にはどのように実装設計に落ちるのか、そしてJAX-RSが、「このREST」(そうでないRESTもあると思う)を実現化させるためにどのように設計されているか、そして実際のJavaのクラスにどのようにマッピングされるのかが語られている。

RESTの原則に限らない。キャッシングについてはHTTPのIf-xxxヘッダの具体的な使い方の説明になる。(こういった微妙な点については後述)

そのように構成された第1部に対して、第2部は実際に動くコードサンプルの動かし方とコードの読みどころの紹介となっている(チュートリアル)。当然、すべてのサンプルはユニットテストが仕込まれている(もっとも、動作確認を目で見せる必要があるからだと思うが、System.outを使いまくるユニットテストになっているけど)。後、Maven2ね。サンプルは、JBoss RESTEasyに組み込まれているので、いずれにしろJAX-RSの実装が必要な以上、とりあえずはRESTEasyをダウンロードして展開すれば、本書の第2部をすぐに試せるという仕組みだ。もしJBossのJAX-RSは避けたいのであれば、とりあえず本書を読み終えてから乗り換えれば良いと思う。JAX-RSはJAX-RSだから、同じことだ。

この章立ての妙味と、部分けの現実味(コードの詳細はどうでも良い人は第1部だけ読めばよく、コード詳細も読むべき人は1部と2部を交互に読めばよい)は感心した。

3. JAX-RSというフレームワークの設計

というように、JAX-RSが、どのようにRESTの原則をJavaのコード実装にマップするかということが語られる都合上、フレームワークの特色についても深みがある説明が行われている。

その結果、アノテーションとDI(単にインジェクション)、そして特には語られないが流れるインターフェイスの世界が目の前に繰り広げられることになる。

実装継承はほとんど無し。フレームワーク規定のインターフェイス継承すら無い。

では、どうするのか、にまで踏み込んでいる。POJOを使え。クラス定義からはアノテーションは追い出せ。

つまり、独自のインターフェイスを切り、そこにアノテーションを埋め込み、実装はそのインターフェイス(JAX-RS規程のインターフェイスではない点に注意)を実装すれば、完全なPOJOとなる(ただし、僕はそこまでPOJOにしなくとも良いと思うし、どうもBill自身もそこまでやりたければやれるよ、というスタンスのようだが)。

EJB3もアノテーションとインジェクションだったが、Beanの役回りは固定的でそれはEJBの性格上どうしようもなかったのだが、JAX-RSではそのあたりも含めて、実装そのものは完全にJAX-RSとは独立できる(もちろんRESTな処理をするためのユーティリティクラスとかヘルパメソッドは外ざしで使うことになるので、importフリーにするメリットはない。が、そのあたりが必要となる面倒なことをしないのであればimportフリーにもできる。

4. 分散システムインフラとしてのREST

もう一点、大きな特徴だと思うのが、実際のところ、Billが想定しているRESTは、インターネットのRESTでは無いという点だ。そうではなく、SOAのサブシステム間連携のためのインフラとしてのRESTなのだ。

だから、サンプルにはYahooあたりのWebサービスの呼び出しとかはまったく出てこない。

基本はクライアントはApacheやRESTEasyが提供するHTTPクライアントクラスで、サーバはJAX-RSを動かしているJavaサーブレットコンテナだ。

倒錯している?

おそらく。

Javaによるホモ環境の分散のためのグルーとしてRESTを意識しているというのは、常識的には倒錯だ。ヘテロ環境だからこそのHTTPではなかったっけ?

どうやら、本気でRMIでもなければJava/IDLでもなく、もちろんJAX-WSでもなく、JAX-RSに賭けているのだ。

(当たり前だが、JAX-RSはヘテロ環境でも使える。だが、Billの興味はそこにはない。その意味では第1部は、一見するとインターネット上のショッピングサイトを例にしているようでいて、実体はエンタープライズなSOAを想定している。それが良くわかるのは、キャッシング戦略の章だ。ETagを駆使した楽観ロックというのは、インターネットシナリオには無理/無駄があり過ぎる。特定エンタープライズ環境だからこそ有意義だと考えられる。同様なことはメソッドの利用方法とステータスコードの利用方法にも表れている。PUTと204ががんがん出てくる)

ここが分散コンピューティング実用化20年の当面の帰結だというのは、僕は賛意を覚える。

たとえば2フェーズコミットは、一見良さそうな仕組みだが、実は大きく矛盾している。もし、ネットワークが切れず、システムが落ちないのであれば、この仕組みは単なるオーバーヘッドだ。しかしネットワークが切れるのも、システムが落ちるのも、実は2巡目に起きるのだ。結局、ブラックボックスの中で複雑な処理が、想定外の状況で起きるため、どれだけの苦労をしてきただろうか。

(余談だが、RAID5ってのも似たようなものだ。HDDが多いので障害はむしろ多い。そして障害が起きるときは複数台まとめて起きてファームがバグる。単なるミラーリングよりも容量が稼げて、しかも気休めになるよ、というだけに近い。もっとも、さすがに最近はファームのバグで……というのは聞かなくなったような気がするけど、最近はディスク容量あたりの単価が低くなったから単純なミラーリングしか使わなくなってきて、ミラーリングは処理が単純だからファームにもバグがないっていうだけなのかも)

複雑な障害が起きるところでは、システムはできるだけシンプルに保つべきではないか?

ところで、JAX-RSというのはどのようなフレームワークなのだろうか? と先日松田さんに訊かれて、Railsにたとえて言うと、と考えて、route、と答えた。さらにコントローラのメソッドパラメータに対してURIのフラグメント分配もする。

でも、これが肝なのだ。Railsだってよくよく考えてみれば、routeがどれだけ重要か。それはActiveRecordの重要性は当然としても、でももっとも重要なのはまずはrouteだ。

というわけで、この本はおもしろいのだが、それは表面的なところに留まらず、分散設計への踏込をぎりぎりの点で見せていないだけで、実際にはRESTを使ったエンタープライズシステムの分散設計が隠れているという点でおもしろいのだ。つまり、技術の実システムへの適用という点からわくわくさせてくれるのだった。

JAX-RSあるいはRESTeasyは、非RESTfulか?の「JAX-RSは、開発者にRESTfulなサービスの*実装*方法に多くの柔軟性を与えます。ここでは、実装がキー・ワードなのです。」という言葉は、なかなか含蓄がある。


2010-08-11

_ 猫が来て去って行った

家の近くで妙に鳴いている猫がいる。

近寄るとすりすりしてくるので、人に慣れている。というか、首輪をしている。

が、妙に薄汚れているし、異様に痩せている。

捨て猫がいよいよ窮したか、あるいははぐれ猫が帰宅の途中で窮したか。

しょうがないので、家に連れて帰って、とりあえず何もないのでしらす干しを洗って塩抜きして与えるとすごい勢いで食べる。

この季節なのにノミもいないし不思議だが、薄汚れてはいるので、とりあえず洗う。首輪も汚いので洗ったら薄荷っぽい匂いがしてきたので、どうやら、ノミ取り薬剤を染み込ませてある首輪らしい。

というか、しつけも良いし、やはり飼い猫なのは間違いなさそうだ。結構なおばあさんっぽいから、いきなりの捨て猫とは思えず、やはりはぐれ猫らしい。

さてどうしたものか、と考えると、もっと食い物を寄越せというので、とりあえず妻に猫餌を買いに行かせて、居ついたときのために猫トイレと砂も買ってきてもらう。

飯を食ったら落ち着いたのか、横になってぺろぺろしたり、固まってみたりいろいろしている。が、どうにも落ち着かない。

しばらしくして外に出せと騒ぎ出した。

腹が張ったので、帰還を続けるのかな? それともコンピュータの音がずっとしているので嫌なのか、どちらかだろう。

とりあえず外に出すと、あたりをいろいろ調べて、車の下にもぐって寝始めた。と思うとこっち来て何か言いたそうだ。

猫が何か言いたいときは飯の話だろうと思って、皿に買ってきた餌を入れ、外にだしておいたら、ぼりぼり食べて、一緒に出した水を皿から飲みまくっている。そしてまた車の下にもぐって落ち着いている。

次の日に見たら、皿はどちらもきれいに空になっていて、猫はどこかへ去っていた。

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

_ ムムリク [きっと、ある日突然に大きなつづらが置かれているかもしれませぬ。]

_ arton [猫つづら? いや、小さいつづらで十分です。]


2010-08-12

_ 続き

もしかしたら戻っているかな? と思ったが、結局、戻っては来なかった。


2010-08-13

_ 突然メモ

rubytalkで話題になっているので、今頃、firewatirというものに気付いた。

firewatir

jssh


2010-08-14

_ Ruby拡張ライブラリと、RubyのMSVCRTバージョン違いまとめ

Ruby拡張ライブラリと、Ruby、それからRuby拡張ライブラリが依拠するDLLの3つのプレイヤーがいる場合に、Rubyが落ちる場合と落ちない場合がある。

通常、まずいのは次の組み合わせだ。

RubyがリンクしたMSVCRTと拡張ライブラリがリンクしたMSVCRTが異なる。

これは、mallocとfreeのMSVCRTの実装による。

・もしかすると、MSVCRT70以降は共通化されているかも知れないが未確認。

・理屈上で確認しているのは、MSVCRT(6)とそれ以降の任意の1つとの組み合わせ

これは、次の状況で発生する(追記あり)。

・拡張ライブラリでマクロを利用してオブジェクトを生成する(具体的にはData_Make_Struct)。マクロなのでmallocの呼び出しは拡張ライブラリ側のMSVCRTで行う。

・GCで上記オブジェクトを回収。GCのfreeなのでRuby側のMSVCRT側で行う

それに対して、拡張ライブラリが利用するサードパーティDLLはRubyオブジェクトを利用することはないので、よほど生なAPI(mallocしたオブジェクトを返すのでfreeは呼び出し側でやってくれ、というようなもので、しかもWin32APIではなくMSVCRTのmallocを利用する)が無ければ問題ない。

のだが、readlineのMSVCRT(6)が、rubyとreadline.soをMSVCRT(100)で利用すると落ちるのだった。

で、なんでだか追っかけたら、fdの問題だった。うむ。そう来たか。

というか、メモリーアロケーションにしろ、ファイルハンドルにしろ、なぜ素のWin32のオブジェクトを使わないのかと(それは、POSIXそっくりさんのMSVCRTと、Win32の設計思想の相違をMSVCRTが吸収しているからだと言えばそれまでなのだが)

追記:

と思っていたのだが、今見ると、ALLOCはxmallocで、xmallocはgc.cのruby_xmallocだから、拡張ライブラリとRuby本体で異なるmallocを使うということは無いようだな。

ということで、上のは、ファイル関係以外は嘘っぱちということだ。

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

Before...

_ なかだ [あぁなるほど、dllexportにはできないというわけか。 確かに、特定のsegmentに対するoffsetだと、D..]

_ なかむら(う) [少なくともVC6にはありましたねえ。 とりあえずこのURLは見ておくといいかな。特に一番下の項とか必見。 http:..]

_ arton [これって、Vista以前は、DLLでは事実上declspecディレクティブは使えないって意味なのかな? と思ったが、..]


2010-08-15

_ HATEOAS

HATEOASというのは名前がおかしいからかも知れないが、とてもわかりにくいと思う。

だが、この檜山さんの説明はわかりやすい。Webサービスの設計: ハイパーオブジェクトとトリガー

もしかすると、HATEOASという言葉を使っていないからかも。

via 謎おじさん


2010-08-16

_ 東京バレエ団のベジャールガラ

五反田。最初は、ギリシャの踊りとかいう題。間の抜けた(テンポが。必ずしも悪い意味ではない)ギターがポロンポロン鳴るような曲。これはおもしろかった。集団が体を動かすのを観ているのは心地よい。それにしても筋肉というのは不思議なものだ。こと筋肉の表現という点に関しては男のほうが美しいな。

2つ目はドンジョバンニ。これは途中退屈した。たぶん第五だと思うが変奏曲の動きのある踊りはおもしろかった。

3つ目は、これがお目当てなのだが、ニコラ・ル・リッシュがメロディ役のボレロ。

以前、テレビでシルヴィ・ギエムがメロディを演じるのを観て、おそろしく凝縮度が高い踊りでまさに目が釘付け状態だったが(筋肉については男がどうこうと上で書いているわけだが、まったくの別格の存在ということになるのだろう)、生で動いているだけに(もちろんルリッシュもうまいわけだが)やはり目が釘付け。

最初に右手、次に左手、両手、とだんだん闇の中から形が作られていって全身があらわれ動きもそれにつれて大きくなり、そこにリズムが少しずつ加わる。踊るほうの疲れも相当なものだろうが、観ているこちらも極度の集中力を要求されるので同じく疲れる。それだけに最後の高揚感がすさまじい。(ラヴェルの作り方のうまさもあるかも知れないが)

お立ち台で一人で動いているところから、なんとなく途中、ウブメの踊りを想起する。その位置関係から行くと、天の岩戸は舞台と客席の間にあり、それをこじあけることがこの舞踏の目的である。

と考えると、まったく正しい観方のように思える。

実にすばらしかった。

ベジャール、そしてバレエはつづく [DVD]

(文化村の前売り買ったらすぐに終わってしまって見逃したからそのうち観てみたいものだ)

_ 幾何とは

子供が、数学のプリントを見せてくれる。そこにはこんなことが書いてあった。

幾何とは中国人が最初に訳した言葉をそのまま日本人が取り入れた。中国人はgeoをジホと聴き、その音に幾何の2文字を当てた。

geoなのか。そうだったのか。とちょっとした感動を覚えた。

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

_ きしだ [長年のなぞがとけました! > 幾何]


2010-08-18

_ 7世紀

7世紀ってのはどんな時代だろう?

大化の改新645匹ってことは、飛鳥時代で、うまやどのおうじ(なんで変換できないんだろう?)とか、蘇我馬子とか、馬がやたらと日本中を走っていた頃だ。法律としては何があったんだ? 十七条の憲法ってのはあったが、あれはなんというか道徳訓というか社訓というか、法ではなく訓だよなぁ。裁判は熱湯に手を入れるやつとかだ。でも、仏法が伝来して、みんなそっちに帰依しはじめていたりするのかも。

一方、アイルランドでは男女の差別はそれほどなく、どうやら死刑というものはなく、でも金鉱を巡る部族間戦争はあるそういう時代だったらしい。法は賠償による罪との等価交換というか。ローマから坊さんが送り込まれてきて古来の神々からキリスト教に帰依しはじめているというか、ほとんど帰依している。

ムムリクさんが書いていた修道女フィデルマがおもしろそうなので買って、読み終わった。確かに赤毛の一房の決まり文句は印象的。

後書きを読むと、作家(ピーター・トレメイン)は、本来はアイルランドの歴史研究者で、そこで得た歴史を普通の人たちにわかりやすく説明するために、推理小説という形態で物語化しているということらしい。

ということは、おおざっぱには、こういう時代だったらしい。

5つの王国と小さな王国で群雄割拠。でも特別に力が強いところが全土を基本支配。ってことは、周が体をなしていた頃の中国みたいな感じだな。まっとうな法体系が整備されていて、弁護士制度があり、罪に応じた賠償額が決まっている。そこからほーなるほどのような物語も生まれる(犯行動機について)。王様は男に決まりんこのようだが、特にジェンダーが固定されているわけでもなさそうである(が、読んでいると、完全なる職業女性は主人公の他には修道院長(冒険家にして考古学者で、結局は死んでしまうのだが。修道院長は2人出てきて、両方ともあくが強い)くらいしか出てこないから、法は法、現実は現実ってことかも。でも意思決定年齢になれば女性は自分の意思で結婚相手を決定できるというような箇所もあるし、良くはわからないな。

同じような小説は日本でも成立するだろうか?

推古天皇が主人公ってのはともかく、尼さんはいなさそうだしな。というよりも、そもそもまともな法が存在しなければ、弁護士という職業もあり得ず、結局は……、と考えてみたら、それ以前の問題として、実際はどういう時代だったのかわからないというのが正確なところだと気付く。というのは、すべての資料は大化の改新の時に、首謀者の天智天皇が燃やしてしまった(焼き討ちなのか、蝦夷が自ら火をつけたかは重要ではなかろう)からだ。

修道女フィデルマの洞察 (修道女フィデルマ短編集) (創元推理文庫)(ピーター・トレメイン/甲斐 萬里江)

それにしても考えてみると、紀元は2600年とか世界で唯一の代々一統とかえらそうな空辞を弄しても、どんな歴史でありどんな国家であったかがまったく明らかではないのだから、ばかげたことだな。言ったもの勝ちというか。(それでも実質7世紀からとしても1300年だから大したものだとは思うけど)

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

Before...

_ klm [7世紀ならすでに日本にも尼は存在したようです。 http://ja.wikipedia.org/wiki/%E5%B..]

_ arton [うぉ、無茶苦茶おもしろいですね >7世紀の尼。留学生でもあるし。]

_ arton [というか、善信尼の11歳で法難を受けて14歳で留学って、どえらく昔の人っぽいなぁ(というか6世紀なのか)]


2010-08-19

_ tcltk

しまった。enableオプションセーブパッチ投げていなかった。


2010-08-20

_ ASR 1.8.7.33 (== p302)

多分、Win32版で影響を食らう人はいないんじゃないかなぁとは思うけど、脆弱性修正なので取りあえず作りました。

infoseek

いつものところにもあります。

Exerbのコアの作り直しは不要だと思うので、そのままです。

後、1.9.1系は1.9.2-p0パッケージを作り次第、表からは外します。1.9.2系はVC6からVC10へ移行します(1.8.7はVC6のまま)。

(というわけで、現在置かれているRuby-1.9.1系は、VC6でビルドした最後のRuby-1.9系となります)。


2010-08-21

_ 青は自由

Wikipediaを読むと、フランスの国旗について

青は自由、白は平等、赤は博愛(友愛)を表すというがそれは俗説である。正式には白がフランス王家の色、青と赤はパリ市の紋章の色であり、三色が合わさり、パリと王家との和解の意味を表している。赤と青はフランス革命軍が帽子に付けた帽章の色に由来し、白はブルボン朝の象徴である白百合に由来する。

と書いてある。

ふむ。

おフランスのことはおフランスに訊けというのでそうしてみた。

La cocarde tricoloreには、次のように書いてある。

. La Fayette avait fait ajouter le blanc par rvrence envers Louis XVI, le blanc tant la couleur des Bourbons.

だが、待て。これは国旗の話では「まったくもって」ない。これはコカルドの話だ。

国旗のほうを読む。

La couleur blanche n'est pas encore associe au roi(フランス語で「要出典」)

いや、要出典とは言ったって、そこまでの経緯を読めば、直接は関係ないだろう。

それどころか、文字とか自由に入れられるロゴタイプにいたっては、

Sous le rectangle figure la devise de la Rpublique « Libert • galit • Fraternit » et sous une deuxime ligne la mention Rpublique Franaise.

ではないか。

ということで、ja.wikipediaにはいつものように知ったか大賞を贈ることにする。

だが、修正はできない(わかることは、青には青、赤には赤、白には白で、ばかばかしいほど歴史があるので、一つ一つを取り上げてもまるで意味がない。日の丸の赤は平家の旗印から取ったというような言い方をしているようなものだが、完全否定はできなかろう(旗をデザインしたやつが源平の旗色を知らないはずは無いからだ。源平融合を意味し、国家一丸を示す意図があったとか)。

追記:でも、「正式」とか嘘が書いてあるのはまずいな。まともな出典を元に秋までには修正しておいてやろう(検索すると知恵袋とかでも、このたわけた俗説がしたり顔で騙られているし)。

と思ったら、日本語で書かれた最も公式な意見として「フランス革命下、国王の色(白)とパリ市の色(青・赤)が結びついて生まれました。」「三色旗の歴史は、今でも学問的に明らかにされていません。その起源は未知の部分が多く、そのことがかえって絵に描いたような、さらには詩情をそそるような国旗誕生の物語や逸話――真偽のほどは定かでないにせよ――を数多く生むことになりました。というのも、多くの偉人が国旗の起源に思いを馳せ、思い思いに脚色したとされるからです。」と書いてあるから、やめた。


2010-08-22

_ ソルト

ソルトを観てアンジェリーナ・ジョリーってとんでもなく優れた女優だな、と思った。

というか、元々トゥームレイダーのアクション女優だという程度の知識しかなくて、子供がソルトに行こうとか言うので観てきたのだが、観ている間は楽しめているのに、だんだん嫌な気分になってきて、観終わった後は虚無感しか残らず、なんて後味が悪い嫌な映画なんだと思う。

どうしてこんなにも不愉快な気分になるのだろうか? と不思議に感じて自問自答。たぶん、あまりにもアメリカの身勝手さに拒否感があるからだろう。あの連中はパナマの大統領やらイラクの大統領やらを誘拐したり殺したり、東京に住んでいる非戦闘員におおげさな焼き討ちをかけてレミングのように隅田川で溺れ殺したり、バグダッドに住んでいる連中うをピンポイントで爆殺したりとかしていることをコロリと忘れた振りをして、どうです我が国はそういうことをやらかさなくて済みましたぞというようなダブルスタンダードを平然と語るからだな、と取りあえず結論してみたものの、どうもそうは割り切れない嫌な感じがしてならない。

家に帰ったら子供がプログラムのシネマグラフィを眺めながら、あれー一本も観たことないやとか言っているので、ふむふむおれも観たことないと思うよとか言いながらのぞきこんだら、あ、観たことある、と思い出した。

チェンジリング [Blu-ray]

イーストウッドの映画を観たという鮮明な記憶はあっても、女優の名前を全然覚えていなかったのだ。そうか、母親を演じた女優だったのか。

それではたと気づく。この嫌な気分は、主人公の感情に対して相当な共感をしてしまったためだな。

世の中には不愉快な「性格」俳優と呼ばれる人たちがいて、喚いたり怒鳴ったり泣いたりして、それは観ていて不愉快なのだが、というのはそういう極端な演技というものが舞台的な大仰さを生み出すから、映画を観ていたいのに別のものを見せられている気分になるからだ。つまり、舞台と異なり映画の場合は、人物は等身大より遥かな巨大さで提示されているのだから、その大仰な身振りが増幅されてインプットされる。そのために観ていて痛い。これをテレビ版デビルマンの原理と呼ぶ。たとえば、ドミニクサンダとかジャックニコルソン(逆手に取ったシャイニングは良いわけで、このあたりは監督の能力ということになると思う。逆にイージーライダーとかだとピーターフォンダやデニスホッパーがただふらふらしているだけなので、ジャックニコルソンの大仰な演技が実に不快感を誘う)とかいっぱいいる。痛いなぁと観ているわけだから、これっぽっちも共感もなければ感動もない。さっさと別のシーンにしろ、と思うだけだ。

それに対してまったくそうではない人たちがいる。ただ必要があって暴れて、必要があって走る。必要があって飛び跳ねる。最高の例が説教を垂れるシーン以外のジャッキーチェンとかだ。

必要な処理以外の余分なことをほとんどしないことで、逆にごく少量の静的なシーンによって心理を鮮明に表出させ、観ているこちらはストレートに感情を合わせられるのだった。感情のちらりずむというか。だが、それをうまくやるには、表情だけで(大仰さゼロで)演技しなければならないから、難しいのだろうと思う。大声を出させたり涙を流させたらその時点でアウトだから、映画文法としても難しいのだろう。役者と監督とシナリオがうまく組み合わさったときにだけ現れるものだ。

それならば、後味の悪さに納得が行く。というか、其の手の説明的な心理的な描写を抑えて、とにかくアクションを連続させることで物語をうまく組み立てた監督も大した力量だな。(気になって今調べたらパトリオットゲームを作ったのか。あれも感情を抑制してアクションを多くすることで感情をうまく表現していた)

ストーリーはうまくできていて、アクションは派手(3角蹴りみたいな技が多発するけど、あれは映画的にもおもしろい)、役に立たないが変装する必要があるのでいろいろなスタイルを取るのは気が利いている(映画として別人に扮したら観ている人がとまどうだろうから、すぐそれとわかるような変装をさせているのかと思ったら、登場人物がすぐに「彼女がいたぞ」とか指摘するわけで、物語として役に立たない変装らしい)。しかも役者が良いのだから、これは傑作だ(が、実に気が滅入る)。

それにしても冒頭の北朝鮮のシーンで妙な縦の筋があったが、あれは日本オリジナルなのかな?


2010-08-23

_ 流行ものだが正しい

はやぶさのカプセルを会社の同僚と観に行って、そのまま丸善に入ったわけだ。

すると、強烈な表紙の本が正方形に積み上げられていて100万部突破とかポップされている。

「これ、そういえば読みましたか?」と相手が訊いてきたので「ううん」と答えた。すると、「では貸しましょうか? すごくいいですよ。とてもいいですよ。僕なんかついでにこっちも買ってしまいますよ」といって、これまたその正方形の隣で正方形にうず高く積み上げられた山からエッセンシャル版を取り上げてレジに並んで買っている。

いらねぇとは言い難い雰囲気なので借りることにしたら次の日に本屋のカバーにくるまれたそれを貸してくれた。が、まだ修道女フィデルマを読んでいたのでとりあえずそこらに置いておいた。

さて翌日、家に帰ってすっかりそれを忘れていたので、あれカバーが付いているが(おれは本屋のカバーは手触りが悪いので嫌いだから、基本的に不要と断るか、仮につけられてしまった場合は速攻で捨てる。したがってカバーが付いている=おれの本ではないということがわかる)一体なんの本だ? と取り上げてページをめくったらカラー口絵のページが出てきて、はて、なぜこのような本がここにあるんだ? 子供はそれほどラノベとか読まんし、というか判型も変だし、と一瞬悩んだ。が、思い出して、読み始めたらあっという間に読み終えた。

もし高校野球の女子マネージャーがドラッカーの『マネジメント』を読んだら(岩崎 夏海)

それにしても頭の良い作者だなぁと、その発想に感心しまくり。後書きで「自分のことだと勘違い」とか書いているところをみると、少なくとも高校生向けに書いたのではないようだが、ビジネスマン向けだけで100万部が出るとは思えないから、老若男女、誰でも読めるようには考えているのだろう。専門家の通訳ね(専門家の閾値がずいぶんと下がったような気がするが、おそらく実際に下がっているのだろう。そこを見極めたというのも要点だな)。しかもイノベーション。メタな構造がおもしろい。また、文体が内容に即していて、なるほどなぁ、こういう文章表現を使えば良いのか、などえらく感心する。

マネジメント - 基本と原則 [エッセンシャル版](P・F. ドラッカー/上田 惇生)

で、なぜこちらも一緒に出るのか、そこはちょっと不思議な気はする。

・というわけで、同工異曲の女子マネージャが、コビー7つの習慣を読むというのをこねくり回してみたが、おれにはだめだ。

_ ASR再パッケージング

雪見酒さんから、swinがバージョンダウンしているとメールを頂いたので、調べたらライブラリを作成するスクリプトを間違えていた(というか、もう少し複雑なのだが、どちらにしてもミスはミス)ので、修正。

infoseek


2010-08-24

_ 迷宮のRuby

角さんから『メタプログラミングRuby』を頂いた(レビューに参加したから)ので、紹介します。

著者はPaolo Perrotta(どうでも良いけど、ペロッタって、日本語の語感としては相当ユーモラスな気がするのだけど。ペロッタが居るならばグリッタが居てもおかしかないし、二人合わせてペロッタとグリッタとか)というイタリアで彼女と猫と暮らしている人らしい。

で、題名の通り、本書はRubyでメタプログラミングするための方法を説明したものです。したがって、Rubyのクラスとオブジェクトとメソッドとあれやこれやがどういうつながりになっていて、何を使えば何が起きるかがいろいろ書いてある本です。

が、この本はいろいろ仕掛けがしてあって、そこがうまい。うまいというのは、読みやすく、わかりやすく、おもしろい、という意味。角さんの翻訳がうまい具合にくだけていて日本語としてもリズミカルで良い感じだというのがそれに大きく貢献している。

全体は1つの大きな物語からできている。

アノニマスな「あなた」はある会社に雇われたRubyプログラマだ。

そこにはビルがいた。

ビルはメンターにして相棒(ペアプログラミングするので文字通り)で、教えたがりで、変なやつだ。

この会社にはレガシーなRubyコードがあり、それはレガシーなコーディング、つまり非メタプログラミングでコードされている。メタプログラミングを使わないコードというのは冗長だ。したがって保守しにくい。「あなた」のミッションはビルと一緒に、そいつをいかしたコードに直していくことだ。

さらに、これまたアノニマスな上司というのがいる。どういう上司かというと(P.133)

「動くじゃない。いいわね。」上司が認めてくれた。しかし、彼女は、トップレベルのスコープにmonthly_sales()メソッドや変数target_salesなどが散らばっているのが気に入らないらしい。「こんな感じのDSLになるといいのだけど。」上司はそういってキーボードに手をかけて、猛烈にコードを書き始めた。

3.7. クイズ:より良いDSL

上司がRedFlag DSLにsetup命令を追加するよう依頼してきた。

event "空が落ちてくる" do

  @sky_height < 300

end

event "空が近づいてくる" do

  @sky_height < @mountains_height

end

setup do

  puts "空の高さを設定"

  @sky_height = 100

end

setup do

  puts "山の高さを設定"

  @mountain_height = 200

end

新しいDSLではeventとsetupを自由に組み合わせられる。これまでどおりにeventを実行するが、直接にsetupを実行する。上記のテストファイルでredflag.rbを実行すると以下が出力される。

(略)

3.7.1 ビルの逃亡

(略)

というように、その場で仕様(いきなり山のほうが空より高い)を例示してクイズを出して逃げていく上司なのだ(この箇所では)。さらに、この回ではビルまで逃げ出していく。Javaholics Anonymousクラブでディナーを取ることになっているからだ。

そこで、「あなた」は自分でクイズを解かなければならない。つまり、上のsetupだのeventだのを実装することになる。

で、(もちろん、読者はここで自分の解決策を作るべきだが)、解答案が提示され、どのような仕組みで実現したかが説明される。すると、

頭のなかでビルの声が響いている。まるでオビ=ワン・ケノービのようだ。「トップレベルのインスタンス変数@eventsと@setupsは変装したグローバル変数のようなもんだ。どうして排除しない?」

●もっと良いDSL

グローバル変数(と頭のなかのビルの声)を排除するには、「共有スコープ(119)」を使う。

(コード)

というように、リファクタリングフェーズとなる。(119)というのは、そのテクニック(魔術と呼ばれる)が説明されたページだ。

このような魔術は、全部で34個あって、付録C『魔術書』にまとめられている。

というように、ある日が始まり、ビルと二人で提示された問題を眺め(ビルが提示する場合もある。たとえば――「C#にもすばらしい機能があったのは事実だ。……「usingってカッコいいよね!」ビルが大声でいう。あなたは同意してうなずく。「じゃあ、usingのRubyバージョンを書いてみてよ」彼はそう言って、ニヤニヤ笑っている。そしてテストケースを見せてくれた。p.109――ここでもテストケースがあることに注目したいところ)、ビルがその問題を解くために必要となるRubyの仕組みを解説し、そしてコードがあり、会話があり、またコードという具合だ。

この紹介で本書の雰囲気はわかってもらえただろうか?

これはプログラミングの本であり、技術解説書であり、(ジョエルの本やポールグレアムの本のような)ハッカースタイルのユーモアにくるまれたソフトウェア開発の一つのあるべき環境の提示である。つまり、おもしろい。

メタプログラミングRuby(Paolo Perrotta/角征典)

RubyKaigiに行くのならあせってクリックしなくとも、28(土)の12:00からサイン販売会があるのでそこで買うのも良いかも(隣になぜかおれもいる)。

これ書いている時点では書影がなくてつまらないので、おまけ。

M.C.エッシャー CONTRAST [DVD]


2010-08-26

_ BOF終了後の歓談会メモ

TechEDのBOF終了後、@ayuminに先導されて焼肉屋へ行く。@ironshay、@ayumin、@shinjkとおれ。非常に快適な4人組であるが、店を選ぶ。

以下、メモというわけではなく(おれの英語理解度は30%程度なのでまさに当たるも八卦の占いの宣託を聞いているが如し)、おれの考えも混ぜ込んでいる。

_ ヘブライ語

ヘブライ語というのも(アラブ諸国の言葉がそうだというのは知っている。一応、別口として扱うべきなのか、それともヘブライ語からアラビア語が生まれた(ユダヤ教からイスラム教が生まれたのと同様に)のか、右から左へ綴るので、技術書を読むと、右から左の本文と左から右へのリストが交互に出てきて、混乱してしまうよ(冗談だと思うが)とか。

_ 人口

イスラエルには700万人が住む。市場が成立する規模じゃない。だからヘブライ語じゃなくて英語が必要だ。

日本はいいね。一億を超える人がいるなんて。TechEDで驚いた。プレゼンターが日本語で話していて、会場の連中も日本語を話している。ていうか、英語が通じないよ。

_ DLRの下

TechEDのShayさんのIronRuby BOF。

IronRuby Unleashed(Shay Friedman)

DLRは、その下のCLRによって実行される。CLRはその下のBLRによって実行される。BLRはその下のALRによって実行される。

おそらくその直下はALUだと思う。

_ 4世代目

イスラエルのデベロッパーも4世代目を待つらしい。

_ ASP.NETのエキスパートでもある

ASP.NET 4 Programmer's Reference(Shay Friedman/Gaston Hillar/Ido Flatow)

それにしても、ASP.NET MVCが、Railsの影響下にあるのはわかるね(Strutsではなく)。

でも、Railsの影響下の製品を出荷する時点で、Railsは遥か先へと歩を進めている。追いつくことはできないだろうな。

_ ASP.NETの2つのフレームワーク

おれの目下の関心ごとである、WebFormとMVCの選択について訊く。

WebFormは10年の歴史がある(4世代目のあれだ)。MVCは出たばかり。

それはそれとしてAjaxやJavaScriptを組み込むことを考えてみよう。WebFormの吐き出すHTMLをどう思うか? MVCのほうはシンプルだ。

_ Shayの発音

シャイさんなのか、シェイさんなのか訊いたら、本当はシャイだが英語じゃシェイなんで皆そう呼ぶと教えてくれたような気がするのだが、おれの聞き取り能力だと、必ず最後に「気がする」がつくところがよくないなぁ。


2010-08-28

_ 赤と黒

スタンダールもそうなんだが、赤と黒というと、レミゼラブルの革命歌(それにしてもうまくパスティーシュしている)を思い出す。

Les Miserables(Les Miserables)

赤は、若者の血の色。世界を変えろと叫ぶ。

黒は、老人の怒りの色。世界を変えろと叫ぶ。

(うろ覚え訳)

_ 開発者会議のこと

参加してないので、中田さんから教えてもらう。

うささんがx64に専念したい(かどうかはわからない)ので、MS-Win32のサポートをやめるつもり。(おれの予想としては、16ビットハイブリッドが足を引っ張っているから面倒というのがあるのではなかろうか。そりゃ、今頃になってWindows95で動かないとか言われても困るだろうなぁ)

1.9.3予定として(来年7月頃にリリース予定)

キーワード引数の整理

・拡張ライブラリからの取り方

ClassBoxの導入(Binding部が未定なので、発表内容とは変わるかも。JRubyとのすり合わせとか)

LazySweepGC(trunk導入済み)

ほかにもあったと思うが思い出せないのでまとめが欲しいな、とのこと。

_ 開発者会議のこと(続)

アジェンダを見ろと。


2010-08-29

_ RubyKaigi2010 2日目

この日は、JRubyKaigiでLTやった。

発表資料

なんか最後まで走りきれなかった。

走りきれなかったといえば、大場さんのRAVAデモ(jrubyの上でravaを動かして、その上でjrubyを動かして、その上ででravaを動かして、というのを12単衣にして、美しき日本のRubyというのを示すということに最終的にはなるはずのもの)が、まったくそこまでたどり着けなかったのが残念というか、観ていると余裕たっぷりに時間を使っているので予定調和としてデモまでたどり着かないのかと思った。後で聞いたら実際に動く(JRubyはクラスが不足しているから無理だけどfibは動く)というか動かすようにするためにravaのrequire循環参照のバグを潰さなければならなくてひどい目にあったとか。その成果物のrava

あとは、えんどうさんのquine(特にエンディングの5分間実行にかかる大作)はすげぇなぁとか、akrさんのプレゼンは相変わらずおもしろいなぁとか。akrさんのプレゼンで、やたらと時間を気にしているので、最後の最後によほど重要なことを言うのだろうと思ってwktkしていたのだが、はて、なんだったのだろうか。単に集めたネタをすべて見せたいというような単純な話ではないと思うのだが。forkするとファイルハンドルが子プロセスに受け継がれるからopen-fork-closeの順で記述すると子プロセスの処理時間に引っ張られる可能性があるとか。非同期シグナル(EINTRの話だと思う)の話は最初から省略とか書いてあったように見えたし。feofの話はどうもおれも引っかかったか引っかかっているのを見たことがある気がした。最後はユースケース重要というまとめかな(確かに最後が重要だったようだ。事例を集めるとか他の言語はどのような仕様となっているかとか)。

後でゆうぞうさんと、httpsでのgets+sysreadは、もともと1行目のconnectに対する応答を受信しない限り(というか、受信してこちらがリクエストを送らない限り)、後続のデータは来ないので問題とはならないのではないかとかいう話をする。https proxyのプロトコルについてはその通りだけど、まあ相手次第だからかも(特に例が例だし)、とか。

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

Before...

_ arton [確かに良い例は出ないですねぇ。何となくやってしまいそうな気はしますが。 プロプラエタリなプロトコル(メインフレームの..]

_ koichiro [JRubyKaigi登壇ありがとうございます。 面目ないです。スライド公開しました。 http://www.slid..]

_ arton [最後まで見られなかったのは残念ですが、おもしろいLTだったと思います。]


2010-08-30

_ RubyKaigi3日目

スタッフのみなさんありがとうございました。

いよいよ来年で一区切りなのか、と思うと感慨も湧く。

午前中は中ホール。

メモリ使用量のprofilerのセッションは、動作を示す資料と、効果を示す資料が入っているのが大きいのだな、と思った。NArrayもその意味では同じか。AOTも地味におもしろかったが、さてどういう方向へ進むのだろうか。LLVMのは、rubiniusとの比較についての質問が強烈な印象。BigDecimalは掛け算の高速化の話が聴くまではわかっていなかったのでおもしろかった。計算量を減らすのが高速化っていうのはそれはそうだなと聴けば納得。

昼休みは高橋さんのバナナの叩き売りのような(話芸という意味で)じゅんく堂セッション。おもしろい。

そう言えば、まったく買う気がなかったWave本を高橋さんの説明があまりにおもしろそうなので買ってしまった。ほとんど役に立たないけれど、プロトコルの説明とかもしかしたら役に立つかもとかいうような(いざ、書こうとすると思い出せない)いい加減な説明なのにネットワークプログラマの食指を動かさせるには十分。

Google Wave 入門 サービス概要、APIからオープンソースWaveサーバーまで――リアルタイムWebの最前線(あんどうやすし)

午後は企画部屋。

予想より参加者が多くてちょっと驚くが、そうなるとUSBメモリ1個で回覧というのは無理があると思い知る。特にsetup.rbを完全に失念していたのは手痛かった(予定が崩れるとパニックになるのはいかにもまずい)。進め方については反省点が多い。全体としては早めというよりもこまめに観て回るべきとか、手元については栞をはさんでおくべきだったとか、いろいろ。

謎現象

・setup.rbがextの下のextconf.rbを認識しない問題。extにcdするとちゃんと認識する。

・ext生成中の謎エラー(再実行の都度止まる場所が変わる)

ほぼ同じ環境のはずなのに、差が出るというのが不思議だが、さっぱりわからない。

disable-win95の意味がわかったこととか。

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

_ むらまさ [arton道場の参加者です。openssl関係のコンパイルで躓きましたが、とりあえずコンパイルはできてtestも全部..]

_ arton [デバッガ走らすとこまでもうちょっとですね。というか、至らないところが多くてすみませんでした。フィードバックは是非お願..]


2010-08-31

_ tDiaryの更新

3.0に更新。本当に、日記そのものについては何もいじらずに移行できる作り方に感銘を受ける。で、本当にUTF-8になっているのか見てみたり。

_ メモ

	switch((ret2 = ssl_get_error(ssl, ret))){
73553DE2  call        esi  
73553DE4  mov         dword ptr [ret2],eax  
73553DE7  call        dword ptr [__imp__WSAGetLastError@0 (7355DAB0h)]  
73553DED  push        dword ptr [ret]  
73553DF0  mov         ecx,dword ptr [ret2]  
73553DF3  push        ebx  
73553DF4  mov         dword ptr [ecx],eax  
73553DF6  call        SSL_get_error (7355B5D2h)  
73553DFB  mov         dword ptr [ret2],eax  

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|

ジェズイットを見習え