著作一覧 |
買った記憶はないのだが、本棚を整理していたら、1巻だけ出てきたので読んだ。古本屋で買ったらしく、裏表紙に150と鉛筆で書いてあるが、ものは昭和50年の8刷。
デューン砂の惑星 (1) (ハヤカワ文庫 SF (76))(フランク・ハーバート)
まあ、1965年の作品ではある。しかし、魅力的な作品でもあって、続きが読みたいがどうにもならんなぁ。
設定は単純で、世界は3つの勢力から成立している。皇帝、豪族、宇宙商人ギルド。豪族は家ごとに分かれて団結したり憎みあったりしていて、主人公のポール君が所属するアトレイデ公爵と、ハルコンネン男爵のところは長い因縁からいつでもお互いを滅亡させようとしている。さらに皇帝も権力を保つために豪族のどちらかに加担して勢力バランスを取ることに汲々としているらしい(が、1巻だけではなんともわからないけど)。で、それとは別に化外の民がいて、領地替えでアトレイデ家が向かった砂の惑星アラキスにはフレーメンという部族が住みついている。勢力バランスを取るには、アトレイデ家はフレーメンを味方につける必要があり、そのために公爵は算段する。
さらに古い文化の担い手として特殊能力を持ったメンタートだのベネゲセリットだのがいる。
賢く治世の要諦を若くして心得たポール君は(まだ生きているけど次巻以降で殺されることが明らかにされている)親父のレト公爵の跡を継いで、無事ハルコンネンを滅ぼして、皇帝の風上に立って世界に平和をもたらすことができるやいなや、という感じ。
翻訳の文章は練達、用語はその世界を描写するに適切、確かに傑作に違いない。1965年ということはまだ公民権が確率していない(キング牧師が暗殺されたのが1968年)ということは、褐色の肌の連中(アトレイデはオリーブ色の肌ということは、アラブあたりということだ)とか、女性とかは、アメリカではパワーマイノリティなのだから、独自文化を持たせて現実とは異なるパワーバランスを世界にもたらすためにいろいろ小説的な工夫が必要だったのだろう。
さて、どうなんだろうか。皇帝と豪族と商人が陰謀をめぐらして争い、そこに化外の民がからんで政策中心の歴史を物語るというのだったら、別に砂の惑星の続きを読む必要もないようにも思う。
たとえば正親町天皇と細川家といった皇帝一派と、織田家、武田家、足利家、朝倉家、浅井家といった豪族群、堺の商人軍団、化外の民としての浄土宗徒や漂泊民が、裏切ったり協力したりしながら歴史を回し、そこに陰のように入り込むイエズス会の神父たち、若き武田勝頼に明日はあるのか? とか、化外の民の首長楠正成を味方に得た後醍醐天皇の陰謀を阻止するために立ち上がった源氏の頭領足利尊氏の前に立ちはだかるは、北条の遺児忘れた丸、我こそは頭領たらんと無い知恵を絞る役立たずの新田義貞、獅子身中の虫として密かに勢力を伸ばす高兄弟、その血で血を洗い、陰謀に次ぐ陰謀、逆転に次ぐ逆転の中を絶妙なバランス感覚で我が道を往く婆沙羅大名佐々木道誉、さらには怪しの呪術で宮中に影響力を駆使する真言立川教の魔導師たち、とか日本の歴史のほうがよっぽど濃くておもしろいかも知れない。
しかしページ数は薄い。
新丈さんからもらった横尾忠則の本を読み始めた。
結構、おれには感動するものがあった。
良くわからない基準で、発表年もまぜこぜにして並べている。2年もたてば人は変わる。だから、直前に読んだ文章と異なることを書いていたりもして、その変化が横尾忠則なのだ、と言わんばかりだ。もちろん、変わらない人間なんていないし、いたら、そんな人間の書いたものを読む気にはならない。
最初、いきなりセザンヌから入る。
なんでセザンヌ? と思わず読むのやめようかというくらい、セザンヌには興味のかけらもない。
しかし、横尾忠則は違うことを言う。
セザンヌはすごい。あいつは、いかに書くかの男だ。いやしくも芸術家なら、何を書くか、なぜ書くか、どう書くか(表現するか)をアピールするだろう。
そしてアイディア勝負に走る。
でもセザンヌは違う。どうでも良い風景画に対して、おそるべき真摯な態度で、繊細に描く。
セザンヌを知った当初、ぼくは彼の絵の中に劇的なものを発見することはできなかったが、それは主題をどのように描くかという問題に転化されていたからである。しかし画面をくまなく観察するとそのタッチは実に激しく感情に溢れているのである。
そこで僕は、はじめてロメールの映画をアテネで観た時のことを思い出す。クレールの膝だ。
クレールの膝/背中の反り (エリック・ロメール・コレクション) [DVD](ジャン=クロード・ブリアリ)
英語字幕というえらく不利な状態での上映だったが、話は誰でも知っている、あの有名な膝の話だ。隣の家のクレールはかわいい女の子(ハイティーンになりかけくらいか)。そこで30男は、彼女の膝を触りたくて触りたくてたまらない。ある日、クレールはボーイフレンドに振られて落ち込んでいる。30男は彼女をなぐさめ、そのついでに、ついに膝を触ることができる。おしまい。
あるいは、僕が一番好きなモード家の一夜(これはパルコパート3だと思うが、ちゃんと日本語字幕があってよかったね)。
モード家の一夜/パスカルについての対談 (エリック・ロメール・コレクション) [DVD](ジャン=ルイ・トランティニャン)
男がぼーっとしていると旧友に出会う。そこでみんなでモードの家へ行く。そこでみんなでパスカルについて話し合う。やはりフランス人の思想的基盤はパスカルだよね。おや、朝になったようだ。
ロメールの映画は、どれもこれもどうでも良い話だ。そこには適当にインテリでちょっと韜晦的な日常があるだけで、特に何か劇的なことが起きるわけではない。
だが、ロメールは、誰よりもハワードホークスを愛している。そこで単にインテリの男女がパスカルについて会話している光景を撮っているだけなのに、めっぽう楽しかったり、さびしかったり、つまり映画を観る幸福に包まれる。なぜなら、ロメールはどのように撮るかという問題に映画というものを転化しているからだ。
そういうことだ。
かくして、横尾忠則の最初のセザンヌについて書いたものがやたらめたらと腑に落ちたので、この本にすっかりのめりこむことになった。
馬が荒くれているキリコの絵(しか知らないが)に代表される晩年のキリコがいかに、形而上のキリコよりも真摯な芸術家であるか、ピカソは2年で他の画家が一生かけてもたどりつけない頂上に上りつめ、そしてそれを破壊して次の2年を始める。だから2年ごとにピカソは素人に戻る。そこでわれわれはピカソの絵を観て、これならおれにも描けそうだ、と思う。おれも描いてみたいなと思わせる。それこそが天才ピカソのもっとも優れた業績なのだ。
そうなのか? いや、そうなのだろう。おれも学生の頃、ピカソ晩年のミノタウロスのシリーズ(エッチングだったような)とか観て、はてこれのどこがあの(泣く女とかあるいは青いころのピエロとかの)ピカソなのだろうかと不思議になり、退屈し、でもこれならおれでも描けそうだと思い、もっとも思っただけだったが、そうやって人々を鼓吹してきたと考えるのは悪くない。
まあ、良い本だ。
というわけで、プログラムを書く場合も、ある機能を実現するというのはあたりまえなのでどうでも良く、どう書くかに注意を払い、2年ごとに異なる言語、異なるパラダイムで書くようにしよう。それがピカソ後に生きるわれわれの務めというものだ。
ハンマースホイの画を思い浮かべる。
単なる部屋の画だ。だが、そこには何かおそるべきものがある。
そのおそるべきものを感じ取る人はたくさんいる。だから、ハンマースホイの画は人気があるのだろう。単なる部屋の画なのだが。そこには神経を直接刺激する直截的なものはない。だが、そこに何かがあることがわかる。
だが、そういう人たちでも、映画についてはそうでもないようだ。相変わらず、映画というものは物語が重要なようだ。あるいはオリジナルの再現性とか。突然、横尾忠則が模写重要と叫ぶのを思い出すが、そういうことではない。
だが、どう書くか問題というのは、1950年代にグールドがさっさとやっていたことだ。楽譜にどう書いてあるか、伝統的な奏法はどうであるか、効率的な演奏法はどうであるか、といったことはどうでも良く、重要なのはどう弾くかだ。だから素材は誰でも知っているバッハで十分(と言いながらも、ヒンデミットやシベリウスのうずもれた曲を復興させたりもする)。
その一方で、奇を衒った演奏はあまり好みではない。カラヤンのジュピターとか、最初はえらくおもしろく感じたが、すぐにうんざりしてしまった(と思うのだが、えらく昔に一度聴いただけなので実はリンツだったりして)。
svn coか、exportができるはず。VC# 2008で作ってVista64でテストした。
+GAINER―PHYSICAL COMPUTING WITH GAINER(GainerBook Labo + くるくる研究室)
APIは仮決め。
新国立劇場でワルキューレ。
驚くほど明快な演出で、おれはこれまで誤読していたことを発見。
もっとも、誤読していたのは、2幕の夫婦喧嘩と長い独白が退屈でろくに聴いていなかったのが原因かも知れない。ワルキューレは最も好きだが、好きなのは1幕だなぁ、やっぱり。
というわけで、まず一幕は良かった。指揮はなんかあまり弱音を使わない、低音を強調した感じがする音を作っていて、でも最初のボボボボの部分とか僕は好きだが。
1幕は、無限旋律でえんえんとウェルズングのモティーフが美しい最高な曲だが、演出上は、春が来た途端に、床から緑のキノコ矢印がにょきにょき生えてくるのにはぶったまげた。フンディングは、DVな演出。でも、それにもましてジークリンデが反抗的で掴みかかったりもして、えらくスリリングである。舞台左にフンディングとジークリンデのほぼ等身大のウェディング写真のポスターが貼ってあって、ジークリンデが白く光る(どの部分だったかな? ヴェルゼ、ヴェルゼ、約束の剣をおれに寄越せかな)とか、いろいろ使うが、ノートゥングを手にしてフンディングを切り裂く演出はおもしろい。
ジークムントは若々しく、ジークリンデは美しく、いずれにしても、観られて良かった。しかし、ジークムントの科白が無頼漢の独りよがりな自己賛美(あるいは、空気が読めない一族というような印象を受ける。それはなかなかシビアな人生を送って来たのだろうな)に聴こえるような翻訳または演出となっている。たぶん、演出の方向が、だと思う。最後、部屋の後ろに暗く空いた奈落へ二人で飛び込む。
で、問題の2幕。ここでおれは誤読に気づく。
フリッカの屁理屈(と、これまでは考えていた)は、実は屁理屈でもなんでもなく、ヴォータンの英雄計画の急所を正しく指摘していたのだった。ジークムントがノートゥングを手に入れるというのは、ヴォータンの筋書き通りで、しかも直接的な助けで、これでは自立した英雄ではないというのは、その通り。それで、ヴォータンは裏切らざるを得なくなるのか。
それにしても、このやり取りはちゃんと詞を読むとやたらと愉快だ。
「まあまあできちまったものはしょうがないじゃないか、お前も覚えがあるだろう?」だの、「祝福してやれよ。そのほうが気分がいいぞ」だの、ヴォータンの科白はいちいちおもしろい。
かくして、ヴォータンは、自分が指輪の呪いの下にあることに気づき、アルベリヒ同様に、愛を断念しなければならないことに気づく。
しかも2つ。つまり、ウェルズングへの愛とブリュンヒルデへの愛、というかどちらも父性愛ですなぁ。これは辛いことだろう。
そして、ブリュンヒルデに長い独白を聴かせることになる。
が、木馬に乗って登場してきたブリュンヒルデは、叡智の女神エルダとヴォータンの娘ではあるが、まだ子供だ。ヴォータンの意図を理解できない。かくして、ヴォータンの思惑通りに、しかし独自の動きとしてジークムントを助けようとする。
独白では、ハーゲンの誕生も語られる。ということはジークフリートはハーゲンより一歳若いことになる。そのハーゲンが東京リングでは羊マーク(羊はフリッカ)のギュビッヒに居付いているのは意味深なような。これは今まで見落としていた。いやぁ、劇場の椅子に張り付いていると発見があるもんだ。それに、独白の中でヴォータンは自分はもう滅びるべきだと再三にわたってブリュンヒルデに告げている。契約で王となったが契約に縛られていて身動きが取れない、愛を求めてしかも得られない、死んだほうがましだ。
一方、ジークムントは親父の教育のせいで、文句なしの無頼漢に成長してしまった。造反有理と教えられているのだから、ブリュンヒルデがどれだけヴァルハラへ行こうと呼びかけても否定するのは当然だ。
フンディングと郎党は、ヴォータンの指かざし一発で即死する。犬だ。というよりもヴォータンが強過ぎる。
3幕は、病院で手術服を着たヴァルキューリがベッドに英雄たちを横たえて大忙しで始まる。ドアを脚でドンと蹴って開ける。確かに、奇を衒っている演出ともいえるが、岩山の舞台裏を考えると、正しいイメージだな、と気づく。戦場で死んだ英雄を集めてくるんだから、これが実態だろうな。
ジークリンデが赤ん坊の存在を告げられていきなりお助けモードに入るのはいつも唐突さに唖然とするのだが、説得力がある演出。ヴァルキューリもここで協力態勢に入る。病院にいきなり入り込むヴォータンの演出はかっこいい。
眠りのシーン、ブリュンヒルデは最後にヴォータンの意図に気づく。ブリュンヒルデが神性をはく奪され、ヴァルハラから追放され、もう2度とヴォータンに会うこともなく、ヴォータンは2度とヴェルズングと関わることはない、ということの意味を唐突に悟り、それを悟ったことを知ったヴォータンが、恐れを知らない自由な勇者のみが突破できるローゲの炎で包むことを許すというよりも、それは織り込み済みということで、大喜びでローゲを呼ぶ。そういえば、自分に訊けと、ヴォータンは何度もブリュンヒルデへ向かって怒鳴る。神々の黄昏のシナリオはこの時点で2人の間での共通認識なのかぁ、まったく気づいていなかった。それはそれとして、眠りと炎の音楽は好きなのだが(フォーレは好きではなかったようだが)、指揮のテンポがなんか中途半端で微妙な引っかかりを感じた。
かくして、ワーグナーはヴォータンの計画の物語を作っていたということになる。ジークフリートがルートヴィヒなら、ヴォータンはワーグナーその人であり、主人公はヴェルズングでもなければブリュンヒルデでもなく、もちろんジークフリートでもなく、ヴォータンその人なのだ。
そのため、ラインの黄金の演出はヴォータンが映画を観ているところから始まり、ワルキューレでは赤い槍を持ったヴォータンが暗がりに立つところから始まる。おそらく、ヴォータンが映写機で眺めるのは、ヴェルゼ時代に撮ったホームフィルムやブリュンヒルデと過ごした日々のホームフィルムなのだろう。
なんとわかりやすく整理してあることか、と、ウォーナーの手腕に感服した。それにしても、ラジライネンのスマートで、いかにも賢明そうなヴォータンは良い。(単純に歌はジークリンデの人が良かった。フンディングは声を震わせ過ぎにおれには聴こえていまひとつだったけど)
More Joel on Softwareを青木さんから献本していただきました。
More Joel on Software(Joel Spolsky)
去年のデブサミの思い出を語る序文に始まり、青木さん(山田康雄がルパンでクリントイーストウッドで、小池なんちゃらがコロンボで、熊なんとかがヒチコックだという意味で、青木さんがジョエルなのだ)の序文があり、そしてとても興味深いApressのゲリーコーネルのなんだろう? たぶん原書にもあるのだと思うが、前書きがある。
スターウォーズ風に始まるのはギークな本屋だからだと言いたいんだろうけど、興味深いのは次のくだりだ。
私は突然ひらめいた。自分は出版者であり、ジョエルの書いたものを読むのがこんなにも好きなんだから、それを本として出したらいいじゃないか!
そうして、Joel on Software(の元になった最初の本)が世に出ることになったらしい。
(前略)公式には2001年6月21日に出版されたのだが、これは最初の「ブログ本」だと見なされている。私やコンピュータ書業界にショックだったのは、この本が当時の基準からすれば圧倒的なベストセラーになったことだった。
というわけで、無料でWebで読めるかどうかではなく、おもしろくて価値のあるものを、人は買うのだということ。少なくとも、Joel on Softwareを買う人はそうらしい。
特に僕がおもしろかったのは、第15章のユーザビリティがすべてではないと、第16章のソフトウェアで作るコミュニティのソーシャルインターフェイスについての考察群だ。が、それだけでなく第3部のデザインに関する考察はいつもながらにおもしろい。もちろん、第1部のマネジメントについては、例によって読んでいて気分が良くなるタイプの文章だけど。
どうでも良いが、青木さんは、第22章の君のプログラミング言語で、これ、できる?で、「無名関数」という訳語を使っているので、匿名が嫌いな人たちも安心して読める。おれは、へそが曲がっているので、声高に主張する人たちとは逆を行くことにしているから、匿名関数という言葉を確実に利用することに決めつけているけどな(たぶん)。何が嫌いって声高な主張は嫌いだ。それがどれくらい嫌いかと言えば誤訳よりも100000倍嫌いだ。と、声高に主張しておけば、無名関数という用語をおれが利用したときのエクスキューズになるね。おれは声高な主張が嫌いなので、4/5の声高な主張の逆を張って無名を使うことにしたというように。というように、柔軟なのが好きだ。
全然ジョエルから離れたが、というわけで、何が好きって、第28章だ。玉を握らせるな、自分で握れ、というやつ。コアとなるものには、借り物ではなく、自分でどうにかできるやつを利用しろという、明らかに正当な主張なんだけど、それと同時に、FogBugzがソース丸見えであり、しかし非オープンソースでOK(たぶん、何か勘違いか、わざと知らんぷりをしているのだと思うが)というようなことを書いている章。全然、変だと思うのだが、これぞJoelという感じでおれは好きだ。
それはそれとして、正しいハンガリアンノーテーションについて明らかにした第23章の間違ったコードは間違って見えるようにする、は、もうまったくどうしようもないほど、正しく、これはプログラミングをする人は、誰でも読んでおくべきであり、知っておくべきだ。しかし、書いている間に調子にのって羽目をはずしたんだろうな、と思うんだけど。WriteS sNameって冗談だろう? あと、例外についての主張はそれなりに正しいと思うんだけど、それとは異なる理由から間違っているし(断言して良い)、そのあたりも含めて、Joelの書いたものは圧倒的におもしろい。ワイズではなくスマートとも思えないが、しかしまちがいなくクレバーだ。で、クレバーな文章は、読んでいて楽しい。
本棚を整理していたら、古いノートが出てきた。
多分、Z80でMSX用に何かを作ったらしい。が、全然覚えていない。
しかも読もうとしても全く読めない。確かにコメントを書いとくべきだったかも。書かないけどな。
こんな調子でえんえん数10ページに渡って書かれている。
隔世の感ってのは、こういうのを見るとつくづくと思う。
推論によって立てられた一般命題が、新たな成果の発見に役立つことは決してあり得ない。なぜならば自然のもつ精細さは、推論のそれを何倍も越えるものだから。しかし個々的なものから正当に順序立てて抽出された一般命題は、逆に新たな個々的なものを容易に指示し・提示し、したがって諸学を働きあるものにする。
ノヴム・オルガヌム―新機関 (岩波文庫 青 617-2)(ベーコン)
なんで、アマゾンのカテゴリーランキングが
117位 ─ 本 > 新書・文庫 > エンターテイメント > 音楽 > ロック・ポップスなんだろうか?
ここには、ベーコンの『帰納法』についての自負がある。
帰納法は、汎化によるスーパークラスの導出だ。
対立概念として、デカルトの演繹法がある(元になるのはスコラだとしても近代科学と演繹を結びつけたのはデカルトのはず)。演繹は逆に特化として立ち現れる。
システムは、ビジネスルールが合成されたものとみなせば、モデルは帰納的に求められる。そうではなく、最初にビジネスがあり、それの個別適用としてビジネスルールがあるものとしてシステムをみれば、モデルは演繹によって求められる。
はず。
(追記:失礼ですな。調べたらウェブサイトも持っていた。SIBA)
古いといってもたかだか10年ちょっと前のチャンピオンが出てきた。なんで、そんなのを取っておいたのか不思議に思ってぱらぱらめくってたら、わかった。
柴田芳樹のジャイアンツの特別版が出ていたからだ。
適当なコマを引用する。
これは、リアルジャイアンツである岡本太郎の伝記マンガの一節だが、簡潔にして要点を押さえていて(と、おれは思う)、最もすぐれた岡本太郎伝じゃないかと思うのだが、というか、この漫画家は本当に岡本太郎のことが好きなんだろうなと感じる。おれだって好きだから遠慮すんなである。
ジャイアンツ 1 (少年チャンピオン・コミックス)(柴田 芳樹)
ジャイアンツというマンガそのものは、ダイダラボッチというちょんまげともひかんの中間くらいの髪型の中学教師が、学生たちにジャイアンツたれと指導するという、実にくだらない作品なのだが、絵柄に妙な迫力があって、なんじゃこりゃと思いながら読んでいたのだが、少なくとも、この回(リアルジャイアンツとジャイアンツの2本立て)は岡本太郎伝に引っ張られてしまったのか、それほど面白くもなかったりして。
まさか、こちらの柴田芳樹と同一人物ではないよなぁ。
Effective Java 第2版 (The Java Series)(Joshua Bloch)
(違うね)
さて、マンガというのは強く印象に残るし(特に子供のころに読んだものは特にそうだし、子供は大人のビジネスの仕組みを知らないので、打ち切りというのがなんだかは理解していなかったりもするし)、ある日、自分が気に行ったマンガ家の作品がなくなってしまって驚くのだ。
そういった子供の頃に抱いた疑問に答えるべく、大泉実成が探してインタビューしてなんで消えたのかを訊いてまわって(過去をほじくるわけなので答えた漫画家もえらいと思う)、マンガを取り巻く状況(個人的なものからビジネスの問題もあり、社会的なものもあり、実にいろいろ)を浮き彫りにするという、実に良い仕事をしていたのだが、絶版みたいだ。
消えたマンガ家―アッパー系の巻 (新潮OH!文庫)(大泉 実成)
(手元のは太田出版のやつだ)
ここで大泉は、聖マッスルのふくしままさみ(で、再評価されて女犯坊とかが復刻されてつい買ってしまったおれはばかだと思うが)や、東京ひよこじゃなくて鴨川つばめとか……同世代っぽい選択だなぁ、もしかしたら、消えた漫画家はブラッシュアップすればおっさんホイホイとして今ならえらく売れるんじゃないか? と思う反面、そんなものを記憶の片隅に抱いていい年まで来てしまうところで読者層が地下系になっちまうからだめなのかも、とも思うが。内田善美とか(大泉のルポには登場することはなかった)。
でも、おれにとっては、眼力王の平井なんとかと柴田芳樹かなぁ。子供ころだと小沢さとるや久松(なんとか。ガボテン島の人)が消えた漫画家の筆頭だったけど(と、サンデー系のマンガ家がすぐに出てくるけど、良く良く考えると、ふくしままさみというか聖マッスルや、後で転身を知ることになるけどモトクロス漫画を書いてた村祖俊一(という名前ではないころ)とか、マガジンの漫画家にそのてが多い)。
あろはさんのところのコメントがおもしろかった。
「プログラミング素人」まで巻き込んで「流行った」言語3/25のコメントだけどリプライが昨日あったので気づいた。
BASICはほぼ「ゲームを書く為の言語」、そしてPerlは「掲示板を書く為の言語」として認識されていた、って事です。
自分の非専門分野で同じような現象が見られるだろうか(と、まず自分に訊いてみる)。
哲学あたりはどうだろうか。過去、「哲学素人(おれを含む)」まで巻き込んで「流行った」哲学になにがあるだろうか。ショーペンハウエルやカントはそれにはあたらない。でも待て、デカルトとベーコンはくそまじめに学んだぞ。なぜなら、この2者の哲学は、学問とはどのようなものかについての哲学であり、「方法はデカルト哲学によって明らかにされているそうですが…。」と哲学初心者が圧倒的に誤解してしまうものだ。無理があり過ぎるなぁ。
外国語はどうだろうか。過去、「外国語素人」まで巻き込んで「流行った」外国語といえば、英語だ。真実はどうであれ、「英語は外国語を読み書き話すための言語である」って素人には認識されている。したがって、より汎用的(母語とする人数比)な言語である中国語やインド語より流行る、というのも無理があるような気がする。
むしろ、セロテープかも知れない。
低学年の小学生はセロテープが好きだ。もう少しでかくなると、紙なら大和糊、プラスティックにはセメダイン、木には木工ボンド、と使い分けをするようになるが、はみだそうが、指紋がついて汚くなろうが、なんでもセロテープを使いたがる……というか、これでは逆だ。
と、いかにプログラミング言語というものが特異なものか、ということもないだろうけど。
つまるところ、「すっきり痩せる、Haskell 10days」とか、「幸運を掴むOCaml 100話」とか、「あなたの運命はあなたが変える Squeak」とか。ロートレアモン風な出会いが人生を豊かにするということだろう。
あるシステムの統合のためにいろいろやっているのだが、どうにもバッチなシステムで、強い違和感を覚える。
バッチのメリットも多少はわかる。やり直しが一括でできるとか、ある時点で一括してバックアップ取れば、一括してその時点の状態をリストアできるとか、とにかく一括だということ。
でも、その一括というのは、たとえば夜中の2時から6時までの4時間をないものとみなすことによって支えられているわけだ(としか思えない)。
したがって、2時までと6時からで別の世界になって、続く4時から2時までが、これがなんだかよくわからない時間となる(一種のジャーナルが作られるということなんだろう)。
こういうやり方の人たちが24H7W365Dなシステムを設計するとしたら、どうするんだろう? やはり2時から6時までのジャーナルを作って、ジャーナルの切り替えという考え方を取るのだろうか?
非力なコンピュータを前提とすると、2時から6時に一括して処理をするというのは危険過ぎる。そこで、常時少しずつ処理していくように考える。ただ、処理が間に合わなくなる可能性も十分以上にある。
そこで、ジャーナルをキューとして利用する。リアルタイムにさばけなければ、余裕があるときにキューから流しつづければ(いずれにしてもさばけないときに溜まることになる)それで良い。リアルタイムとは言っても、擬似も良いところだが。
しかし一括でバックアップだの、一括でどうしただのは、できない。
全体最適化が難しいというのは、こういうところでも真実ではあるな、とか。
素数求めるベンチマークを見ていて、Lispで書いたらどうなるか試そうと思った。手元ですぐ使えるのはelispなので、次のように書いてみた。
(defun primep (n primes) (let ((sq (sqrt n))) (cond ((null primes) t) ((< sq (car primes)) t) ((= (mod n (car primes)) 0) nil) (t (primep n (cdr primes)))))) (defun primes (max) (let ((p '(2)) (n 3)) (while (< n max) (cond ((primep n p) (nconc p (list n)))) (setq n (+ n 1))) (print p))) (benchmark-run 1 (primes 100))
だが、何かおかしい。
(primes 10) (2 3 5 7) (2 3 5 7) ; replのp (primes 10) (2 3 5 7 3 5 7) (2 3 5 7 3 5 7) ; replのp
なんで?
ううむ、「よくある落し穴は、nconcの最後以外の引数に、クォートした定数リストを使うことである。」というのはわかっていたつもりだったが、呼び出しの都度、(2)が新たに作られると考えたのが大間違い。関数内に出現するクォートした定数リストは定数として(再作成したりせずに)扱われるということみたいだ。
システム化を提案する立場の人が、自分自身の業務がシステム化、自動化されていないようでは、紺屋の白袴にもほどがあるんじゃないでしょうか。
おれもそう思う。
なんでだろう?
実証実験にはえらく金(スポンサー)と人手がかかるというのが一つの原因かなぁとか考えてみるのだが、スポンサーには困らないはずなんだよな、というか国(それが可能なスポンサーだろう?)は発注者として、そこまで踏み込んでみたらどうだろうか(でも、失敗した場合の追及され度が現行踏襲よりでかい、失敗を許さないシステムというシステムがあるためにそれが難しいのならば、まずそこからリストラクチャしなければならないのかも、とかも思う)。
先日から、地下鉄の通路にバカボンのでっかなポスターが貼ってあるのだ。それも2枚もなのだ。
白と銀のすっきりしたデザインなので、おしゃれな美術館で原画と2次創作でも集めた展示でもするんだろうと思っていたのだ。
今日見たら違うデザインになっていたのだ。
それで、あらためて良く見たのだ。
BALLという単語があるのだ。でもボーリング場ではなさそうなのだ。良くわからないのだ。
DAIICHIという名前もあるのだ。でもカラオケシステムの広告とは思えないのだ。
つくづくと見ているうちに銀がボールなのに気付いたのだ。
ナショナルブランドは小売ではなく製造者が出稿するのだ。同じことなのかそうなのだ。TVCMではそうなっているのは知っていたが、地下鉄の通路のポスター(映画的記憶として、ポンヌフの恋人やディーバが出てくる)もそうなってしまったのだ。それがいいのだ。
なんか、えらく面倒なExcelのお絵かきが必要になって、それは四角の中にテキストを入れて、場合によってはその四角に別の四角がくっついて(しかも、それにもテキストがある)いて、しかも全部で四角が200個くらいある。
それだけあると、人間がうまいこと並べてやらなければだめだが、かといってすべて手作業するのはいやなこった。というわけで、あまり気はすすまないが、マクロを使って、別のシートの表に埋まっているテキストを取り出して四角を配置しておくものを作った。
が、ときどきうまく動き、ときどきうまく動かない。
'思い出して書いているので嘘もあるはず。 Set src = WorkSheets(4) ' Setを忘れやすい Set dst = WorkSheets(5) x = 100 y = 200 For r = 10 To 300 If src.Range("F" & r).Value = "" Then Exit For ' カラムFが空なら終了 End If If src.Range("G" & r).Value <> "" Then Set attr = dst.Shapes.AddShape(msoShapeRectangle, x, y - 24, 240, 12) With attr.TextFrame .Characters.Text = src.Range("G" & r).Value .Characters.Font.Size = 11 End With Else Set attr = Nothing End If Set rc = dst.Shapes.AddShape(msoShapeRectangle, x, y, 240, 40) x = x + 260 y = y + 80 With rc.TextFrame .Characters.Text = src.Range("F" & r).Value .Characters.Font.Size = 12 End With If Not attr Is Nothing Then attr.Select True ' 以前の選択をちゃらにする rc.Select False ' 現在の選択に追加 Selection.ShapeRange.Group ' 2つ四角を作った場合はグループ化 End If Next
良くわかったが、MSDNのOffice2003のドキュメントがかすなのは、コレクション、オブジェクト、メソッド、プロパティという項目立てになっていて、それはまあそれで良いとしても、オブジェクトやコレクションからメソッドやプロパティがリンクされていないことだ。そのため、どのオブジェクトで何が使えるかさっぱりわからない。
一部についてはインテリセンスが効くから良いとしても、Selectionなんかはインテリセンスが効かないので全然だ。
で、うまく動くときは、上でWorkSheet(5)としているシートがフォアグラウンドとして表示されている時だということがわかり、しかし、なぜそうでなければうまく動かないかわからなかった。
で、これを書いていてわかったが、Selectionは移出されたオブジェクトではなく、デフォルトオブジェクトであるApplicationのプロパティで、アクティブなウィンドウの選択を返すから、うまく動いたり(WorkSheet(5)がフォアグラウンドシート)、動かなかったり(WorkSheet(5)以外のシートがフォアグラウンドシート)するからなのか。考えてみれば、それはそうだな、と納得できるが、とても不思議だった。
というか、もう少し手を入れれば、ほとんど人手の介在は不要にできそうだ。
あらためて上のリストを見ると気に食わない。
こうだな。
'思い出して書いているので嘘もあるはず。 Set src = WorkSheets(4) ' Setを忘れやすい Set dst = WorkSheets(5) x = 100 y = 200 For r = 10 To 300 If src.Range("F" & r).Value = "" Then Exit For ' カラムFが空なら終了 End If Set rc = CreateRect(dst, x, y, 240, 40, src.Range("F" & r).Value, 12) ' see #c01 If src.Range("G" & r).Value <> "" Then Set attr = CreateRect(dst, x, y - 24, 240, 12, src.Range("G" & r).Value, 11) attr.Select True ' 以前の選択をちゃらにする rc.Select False ' 現在の選択に追加 Selection.ShapeRange.Group ' 2つ四角を作った場合はグループ化 End If x = x + 260 y = y + 80 Next ... Private Function CreateRect(ByVal dst As WorkSheet, ByVal x As Single, ByVal y As Single, ByVal w As Integer, ByVal h As Integer, ByRef txt As String, ByVal sz As Integer) Set s = dst.Shapes.AddShape(msoShapeRectangle, x, y, w, h) With s.TextFrame .Characters.Text = txt .Characters.Font.Size = sz End With Set CreateRect = s End Function
で、ここまでは良いとして、次の修正をするかどうかが思案どころだ。
おれは、平気だし、むしろ、次のようにしたほうが良いと思うが、純粋主義者であれば、CreateRectがそれ以外のロールを果たすことに嫌な匂いを嗅ぐと想像できるからだ。
Set src = WorkSheets(4) ' Setを忘れやすい Set dst = WorkSheets(5) x = 100 y = 200 For r = 10 To 300 Set rc = CreateRect(dst, x, y, 240, 40, src.Range("F" & r).Value, 12) If rc Is Nothing Then Exit For End If Set attr = CreateRect(dst, x, y - 24, 240, 12, src.Range("G" & r).Value, 11) If Not attr Is Nothing Then attr.Select True ' 以前の選択をちゃらにする rc.Select False ' 現在の選択に追加 Selection.ShapeRange.Group ' 2つ四角を作った場合はグループ化 End If x = x + 260 y = y + 80 Next ... Private Function CreateRect(ByVal dst As WorkSheet, ByVal x As Single, ByVal y As Single, ByVal w As Integer, ByVal h As Integer, ByRef txt As String, ByVal sz As Integer) If txt = "" Then ' fixed on 4/22 (see #c04) Set CreateRect = Nothing ' see #c01 Exit Function End If Dim s As WorkSheet ' fixed at 4/21 Set s = dst.Shapes.AddShape(msoShapeRectangle, x, y, w, h) With s.TextFrame.Characters ' fixed see #c04 .Text = txt .Font.Size = sz End With Set CreateRect = s End Function
これだけ読むと、わびさび方式って、JavaでFormデータの受け渡しにHashMapを利用する方法と同じに読める。多分、その通りなんじゃないかなぁ。
だとすると、LLではどちらかというと良いプラクティスな方法が、Javaを使う世界ではダメな方法と受け取られていることになる。FormデータをHashMapで受け渡そうと言えば、間違いなく罵倒の嵐が飛ぶんじゃないかな。
で、そういうときは、「ふ」と枯淡の風を吹かすと良いかも。
(が、おれもJavaでは、そういうふうにはしないと思う)
子供用に急に薬を買おうと思ったのが22時20分。
早稲田あたりにやたらと薬屋があるのは知っているので、着いたのが22時50分くらい。しかしまったくやっていない。薬屋って閉まるのが早いのかと思ったが、他の店もサントクくらいしかやってないから、どうも、最近は店が閉まるのが早いのかも。そんなものなのか?
でも、高田馬場に出ればヒグチがあるのは知っていて、駅前のタクシー渋滞を越えてそこへ行ったら、目当ての薬が置いてなかった。
そこでちょっと考えて新大久保へ向かう。場所柄、薬屋がそこそこの数あって、しかも割と遅くまでやっていたという記憶がある。
が、ない。(少なくとも表通りには)
変だなぁ。薬屋は必要だろうに。
で、つい、以前、強烈な看板で記憶していた中野へ続く道にある薬屋は10年くらい前に廃業しているから、そっちへは向かわない(あやうく行きそうになった)
この時点で、23時30分くらい。早稲田通りのタクシー渋滞と工事がロスを生んだんだろう。
一度甲州街道へ出てから新宿へ向かうが、新宿通りに車を止めるのはブロンクスに車を止めるのと同じで危険だ。そこで、職安通り経由で十二社へ向かう。職安通り沿いはドンキホーテの脇に電飾看板があって驚いた。この奥は奥ゆかしい場所だから、薬屋もありそうな気がするが、車を止めて入り込む気にはならない。新しくできた道を通って青梅街道に出てから十二社へ入る。しかし、目当ての薬屋はすでに閉まっていた。
一転、中野へ向かう。通り沿いに薬屋はあるはずだが、ここも全滅。
中野通りに出て、さて、駅前へ行くか、早稲田通りへ出るか、鍋横に入るか迷うが、この時点で期待するもんはなくなっている。
そこで中野新橋へ。ヒグチはあるんだよなぁ。結局、目当ての薬はないが次善の薬を買う。
結論。最初からヒグチで売っている薬を買うか、車を捨てて渋谷か新宿へ行くのが良い選択。
とは言え、iTSでだけど。
iTSですぐにそれなりに安く買えるようになるとCD買うのは場所も取るし、どうなんだああなんだという感じもするが、CD-EXTRAでライブが入っているとか読むと、そっちのほうがいいなぁという気にもなるけど。
なんか、ピカード艦長と、スペースヴァンパイアの館長と、歌丸を合わせたような実に味のある顔になったものだが、この人の才気と声の良さは相変わらず素晴らしい。
が、コマーシャルから遠ざかっているのもわかる。なんというか、上質なクラッビングミュージックであるな。
メロディーのキャッチーさやポップさでは、オリジナル Day&Nightのほうが上だけど、おれはこっちも好きだ。
特にStayだ。この曲はすさまじくスローで分断されたピアノの和音がきれいな曲だが、コード進行は、オリジナルDay&NightのStepping' Outになっている。(歌詞も同じかなぁ? さすがにそれはないか)なんという韜晦趣味。
とは言え、オリジナルの耳への心地よさは別格でもある。
-読み返したら、Day&Nightと書いているが、アマゾン書影を見ればわかるように、これはナイト・アンド・デイだ。いつのまにか、おれの中では完全にデイ・アンド・ナイトになってしまっていたのか。このあたりの話は、サーペンス・アルバムにちょっとあったり(と他人のコンテンツへ)。そういえば、上で挙げたStayは、間違いようがなく最後の曲だ。ほら、Stepping' Outが最後だとちょうど釣り合いが取れるぜ。
#include <stdio.h> int main(int argc, char* argv[]) { int i = 0; goto l0; int j = 10; l0: while (i < j) { printf("%d\n", i); i++; } printf("%d\n", j); return 0; }次の動作は予期したものか?
$ gcc go.c;./a.out 0
もし、int j = 10; をスキップするのが目的ならば、jの宣言をスキップしたことになるので、jを参照できるのはおかしくないか? あるいは、jに対する代入がスキップされたとして、自動変数のjが0に設定されているというのは正しい動作なのか?
というくらいに、gotoは難しい。確か、前者はおかしくなく、後者は偶然のはずだけど。
少なくとも2つあって、そのうち1つは、人間にはまだるっこしかったり、面倒だったり、単純な反復だったり、間違えやすかったり、.+だったり、*を機械に任せられるようにすることじゃん。
でもそういうのが好きな人もいるんだよな。
その努力を別のもの、正拳突きの練習とかに向ければ、大山倍達をも凌駕できるかも知れないのに。
_ 通りすがり [セザンヌの話の「いかに書くか」が微妙なところで微妙なつながりをしていたなぁと思ったのでした。]
と、「GitとGitHubを使ってみる」を読むと思うわけだよね。
でもまあ、おれはWindowsマシン(もちろんcygwinは入れない)の他にLinuxマシンも使っているから、別にバカとは思わないわけだが(いや、むしろ賞賛に値すると思っている)。
最近、ftpでgetしてtar -xvfして./configureしてmakeしてなんてことはあまりはやらず、野良ビルドとか言われたりして、むしろあまり良くないことのようにさえ思えるような気がする。
まあ、気がするだけなのだろう。そうじゃなければ、msiに固めたRubyの配布をしているという行動と矛盾しそうだ。
でも、そうではない。今でこそ、Express Editionなんてのが出ているが、VC++6の時代には、VC++を購入していなければ、普通の人はソースのタールボールを手に入れても何もできなかったわけだ。もちろん、cygwinやMinGWがどうしたとか言えば言えるけど、それを言えた時点で普通の人ではない。
でも、Linuxとかだったら、それを使っている時点で、上の意味では普通じゃないんだから、バイナリーで配布とか不要じゃないかと思わないでもなかったのが数年前、しかし今では、すっかりUbuntuでしかもaptitudeどころか、Synapticでマウスくりくりするほど堕落した生活に慣れてしまって、ソースタールボールをいじるのなんてRubyだけくらいになってしまったわけだが。
とはいえ、デバッグでもしてみようかな、と思ったら、やはりソースから作らないとどうにもならない(とおれは思う)ので、OS XのMonoを一発ソースから作ってみようかと思い立った。
が、やっと作れたものの、思わぬ時間を取られてしまった。
反省点。
1. お手軽に慣れきってしまったため、READMEを先ず読む習慣がなくなってしまっていた。いきなり./configureするのは無意味だよな。
2. 最近の環境についての知識がない。というか、全然最近じゃない気がするが、バイナリーでどかどかインストールするか、さもなきゃなんでもかんでも/usr/local というのに慣れてしまっていたので、pkg-configって全然知らなかった。(特にOS Xだと/Libraryのサブシステム分離方法から、とても必要なツールなんだなとわかったけど)
というわけで、OS XでMonoを構築 (おれ以外には役に立たない環境のような気がするが)
OSXのMonoをいじっていて、おそるべき真実を知る。
OSXには、sys/poll.hもあるし、pollを呼ぶこともできるが、しかし、ずーっとずーっとバギーだということだ。
10.2の頃、OSXじゃサポートしてないよと書いている。
Rubyはselectを使っているから大丈夫なのかな? というわけで、新しめのプログラムでpollをつい使ってしまうと、OSXでは厄介なことになるという事実。
Ruby 1.8.7-p160に更新しました。
このリリースから、るりまの成果物を同梱しています。各位に感謝します。
なお、週末には、ミラーサイト(infoseek)にコピーする予定です。パッケージに問題がありましたら、ツッコミお願いします。
オライリーからリファクタリング?ウェットウェアの献本きて、えらくおもしろくて、あっというまにほぼ読了した。どうもありがとうございます。
しかし、はたと考える。おもしろいは、どえらくおもしろいのだが、この本は、なんかいやなスメルジャコフ。ウェットウェア=生ものだし。
リファクタリング・ウェットウェア ―達人プログラマーの思考法と学習法(Andy Hunt)
アンディハント(いわずとしれた、Tell Don't AskとかDRYの達人プログラマの片割れ)は、この比較的薄い本で、何を書いているのだろうか。
それは、身も蓋もない言い方をすれば、「右脳を使え!」ということだ。それだけだ(追記:いやまてSMART)。
いちおう、いろいろ調べて書いているようで、そこまで身も蓋もないことは言わないけど。右左の分類はどうやら正しくはなさそうだ。したがって、LとR(LeftとRightじゃないよ、LinearとRich(LogicalとR?となって、直線的思考モードと、あっちいったりこっちいったりと何やら豊饒な思考ではないモードに分けたような)の2つのモード)に区別して、Rを使おう、そのためにはどうすればよいだろうか、と、昔々の水平思考の本とかみたいなお話集になる。
最初はドレイファスモデルというのの説明。看護士に役立ったというやつ。人間は初心者、中級者、上級者、熟練者、達人の5段階の習熟度モデルを持つ。たいていの人は中級者。なにやら、about faceのような。
About Face 3 インタラクションデザインの極意(Alan Cooper)
達人は初心者の40倍の生産性を持つ。彼らにルールを作らせると、中級者も一騎当千の強者となる。だがしかし、熟練者や達人をルールで縛ると、中級者並みの無能っぷりをさらけだす。
このモデルは、とてもしっくり来て、すごく説得力がある。まるで血液型性格診断だ。おっと、眉に唾をつけてはいけない。それはLモード。大事なのはRモード。直観を信じ、類推に頼るんだ、ルーク。(もっとも、相関関係と因果関係の違いに気をつけろよ、とか押さえるところは押さえているのは、さすがにプログラマ)
つまり、怪しげな香りがぷんぷんしてくる本だ。
だが、おもしろい。なぜおもしろいのかは、読めばわかる。
さて、おれはロゴスの人なので、いつも頭の中には言葉が渦を巻いている。したがって、Lモード(ところでNTTはどうしたのかな)マターなようだ。しかし、おれは何かを考えるとき、まずパターンマッチングをして、つまり類推して考える。そういう思考方法をするようになんとなく訓練してしまったからだ。さらに、イドラを捨てるべく血がにじむような努力のおかげで、先入見から完全に解放されている。なんという二次無能力者であることか(二次無能力とは、自分がどれほど無知かをわかっていない状態をさす)。
というわけでコンテキスト重要。
ここで、引用をしておこう。
そして、生半可ではない「本気の努力」が必要です。10年間、ただ取り組むだけでは不十分で、激しい訓練が必要なのです。著名な泥ですね。
おそらく、この本を読み、真に何かを得て、それによってさらなる高みへ行ける人は、この本を読まない人ではないだろうか。たとえばなしに耳を貸すことはなく、常に論理を重んじ、数値化を基盤として物事をきちんと図り、計画するような人間は、おそらくこの本を読み始めて、すぐに捨ててしまうだろうが、実は何かが得られる可能性を投げ捨てたことになる。一方、この本を楽しめる人は、この本からは何も得られないのではなかろうか。
読んでいると、二次無能力という言葉の呪いにかけられてしまうからだ。だって、当たり前のことしか書いてないんだもん。
そこで思うに、まずは、本物、解説書ではなく、そのものずばりを読む、レーニン流読書術(カウツキーは読むな、マルクスを読め)を試してみるのも一興だろう。
でも、まあ、掛け値なしに、おもしろかったです。
追記:脳ミソをデバッグするという考え方こそ、この本の価値。
さらに追記:まだ続く
T/O
昨日は、リファクタリング・ウェットウェアのちょっと気持ち悪い点にフォーカスしてみたが、実はそれほどぶっとんだことをアンディハントは書いていない。
せいぜい、プラグマティックな効用もあるようだから現代のシャーマニズムも取り入れてみました、程度だ。多分。書いている本人も気にはしていて、
さあ、ここは我慢して私の話を聞いてください。というのも、「妖精が使う魔法」のようにうさんくさい話と思われそうだからです。
なんていう言葉がちょくちょく出てくるからだ。
それどころか、
数年前、右脳に基づくありとあらゆる長所を約束した自己啓発本が続々と出版されました。右脳の料理本まであったと思います。
もちろん、そんなのは意味がありません。「アホだ!」と言ってもいいくらいです。
と、自分の脚に銃を撃つ始末だ。というのも、うさんくさいことを言い出す奴は、他人のうさんくささに不寛容だし(だめだ、フォローできない、この点に関しては)。
ただ、少なくとも、Rモードで話を終わらせないということは重要だ。つまり、実用主義者としては、Rモードで終わっては、まったく意味がない。そこから得られた成果物を、ロジックとして組み立てて、現実の役に立つものに仕上げなければ意味がないからだ。というわけで、Rモードの成果物をどうLモードへ繋げるか、が、本書でもっとも注意深くかかれているところなのだ。
実は、昨日の時点で、僕は大事な数ページをすっ飛ばしていた。そのため、それに気づかなくて、読んだ覚えがないロッククライミングのエピソードに後の章で言及されて初めて思い出したのであった。
というのは、電車の中で読んでいたために、ペンと紙を使った実習のページを後でやろうと適当に数ページ分、すっとばしていたからだ。
で、さっき、紙とペンを使って演習をしてから、その飛ばした数ページを読んで、アンディが本当に書きたかったことを確認し、あ、昨日のエントリーはちょっとダークサイドにフォーカスし過ぎていたことを思い知らされた。
演習は、こういうものだ。比較的複雑な線画を天地逆転して掲載し、それを意味を持つ絵として認識せずに、線だけを頼りに紙へ写す。
ふむ、と書き上がった絵を天地逆にして、満足のいく出来栄えにうっとりする。次に、天地をまともにして写してみる。あ、おれはそこそこ絵が書ける。でも、最初の絵のほうがうまく写せているようだ。
ロジックを抜くことで、本来Rモード向きの作業をRモードで実行でき、それによってその能力を示すということであるな。
で、重要なのはその続きにある。しかし、とアンディは続ける。
伝統的に無視されてきたRモード処理を活用することができるからといって、Rモードは特効薬でも万能薬でもありません。単独では、すべての問題を解決するどころか、言葉すらまともに処理できないのです。
我々が必要としているのは、Lモードによる処理とRモードによる処理をうまく同期させる方法なのです。
で、ロッククライミングのエピソードが始まる。
ある、ロッククライミングスクールに通った話だ。
最初、インストラクターは、さあ、登りなさい、と言って、そのまま消えてしまった。教室中がざわざわざわになる。何も教えないのに高い金を取ったのか、ぶーぶーぶー(まさにアメリカだな)。
でも、しょうがないので、みんな登ってみる。うまくいくはずもない。
で、疲れたところにインストラクターが戻ってきて、やおら、ロッククライミングの方法論についてレクチャーが始まる。
すげぇ、とアンディは感動する。
もし、まったく登った経験がなければ、レクチャーはレクチャーで、何のフィードバックもないはずだ。ところが、おれはさっき壁とへたくそな方法で格闘したばかりで、身体が感覚を覚えている。そうか、そうやって体重を移動させればいいのか、それは、納得だ。
最初にLモード用のレクチャーを持ってこられても得られない納得感を、このインストラクターはうまく処理しているではないか。
そこから、たとえばペアプログラミングがなぜうまくいくのかの考察に入る。おそらくコードを書いている人間は当然Lモード全開だが、相手は逆にそいつのやっていることを眺めていることが主になる。退屈もするだろう。LモードとRモードの間を揺れ動くことができる。それが適切なヒントを出せたり、つまるところ、Lモード専従者にとって外部Rモードとしての役割を果たせるのではなかろうか。おれには正しい考察かどうかはわからないが。でも、傍目八目というのは、そういうことだというのは知っている。当事者よりも結局は余裕があるからな。
後、おそらく本書の中で最も現実の役に立ちそうなのは、読書会のハウツーの部分だろう。なぜ、大人の学習の場として、読書会が向いているのかの相当説得力がある導入部から、どう準備して、どう進めるか、まで。レクリエーションとしての読書会ではなく、学習の場としての読書会の方法論としてこれは相当正しそうにおれには思えた。
ついでに、人によってはなぜプレゼンテーションすることが本人にとって役立つのか、でも役立たない人もいるとか、そういうところの考察は納得がいく。
そして重要なのは、脳みそのデバッグという考え方。
もし、今、二人の人間が力を合わせなければ、だめな状態に置かれていると仮定する。二人が大木の下敷きになって、せいのーで力を合わせれば大木を転がせて二人とも助かるとしよう。その時、一人は韓国人で、もう一人はそこらの嫌韓厨だとする。そこで、厨がちゅうちゅう竹島がどうしたと言い出したら、間違いなくそいつの脳みそにはバグが湧いている。コンテキストを理解していないからだ。いや、それは違う。領土問題は重要なのだ、とLモード全開で力説したとしても、バグはバグだ。仲良く困難を乗り切るしかないだろ。
いや、もう少しまともな例が書かれているけど。
人には向き不向き、その人の得意な流儀があり、それは千差万別で、A君のベストプラクティスは必ずしもB君のベストプラクティスにはならない。しかし、特定のコンテキストではB君にもA君のベストプラクティスが向くこともある。そのようなコンテキストの判断と個性の尊重(おれにはその方法は向かない)と適切な排除(でも、今回はその方法をやろう)のことを、アンディハントはデバッグと呼んでいる。
アジャイルってそういうことだな?
と、まあ、怪しげなことをまき散らしながら、結構納得もいく知見を織り交ぜて、副題「達人プログラマーの思考法と学習法」にふさわしい内容になっている。何より読んでいておもしろいのが素晴らしい。翻訳者がうまいというのもあるだろうな。語り口が流れるインターフェイスになっているんだよ、多分。
というわけで、実はこの本は、アジャイル開発をうまく進めるための基盤となる心構え(これまた妙な言葉だが、本書を適切に評するとこうなると思う)について巧妙に説明したものだ。
うまいなぁと思うのは、読んでいる人にまったく劣等感や罪悪感を与えないように書かれているという点だ。ただ、少し行き過ぎな気もしないでもないが(アンディ自身が、何度も注意はしているのだが、それでも読んでいると二次無能力が推し進められそうな気がするのだ)。
リファクタリング・ウェットウェア ―達人プログラマーの思考法と学習法(Andy Hunt)
思うに、アジャイル本の多くはチームをどうするか、チームでどうするか、チームをどう導くか、について語ったものが多いのだが(少なくともおれにはそう感じる)、この本は、そうではなく、ではチームの構成員あるいは構成者たる、個人はどう思考すべきか(結果的には行動すべきか)に焦点を当てたと言っていいだろう。
したがって、一人アジャイルをやっている人や、考え方を変えろ本のうさんくささに耐えられないけれど、多少は我慢ができる人には、読んでおもしろいだけではなく役に立つと思う。しかし、真に役に立つのは、昨日も書いたように、この本を読まない人にだろうなぁ。
void foo() { string[] a = { "a", "b" }; …… a = { "b", "c" }; // 変数a の使いまわし }さすがに、そういう意味とは思えないよ。とすると、
void foo() { X x = new X(); // しかもXはイミュータブルだったりして ... bar(new X(), new X()); ... baz(new X(), new X(), new X()); ... } ... class X { String contents; public X() { File f = new File("X"); FileReader br = new FileReader(f); contents = br.readAll(); // これはJavaではないらしい。ちなみにファイルXのサイズは500MBあって、かつ、r--r--r-- で内容は不変 br.close(); } public getContents() { return contents; } }
いや、それ最初のxを使いまわせばOKだから、とか。
追記:元の元が書き換わっているので、どこまでが初出かわからないけど、「変数の使いまわしを避けよ」という呪文が強力に効きすぎて「オブジェクトの使いまわし」にまで適用されてるよ、おいおい、と書いているね。
O Eastへ行って、スパークスを楽しんだ。メンバーは拝殿さん、かずおさんと大佐。前回と同じ。
なんか、妙に人が少ないなぁとか思っていたが、椅子席は指定制だから開場−開演までの間に結局は埋まっていた。おれらは立見席だったが、それはそれで自由度が高かったから悪い選択じゃない。
で、最初は、最新を使ったスパークスショー。
EXOTIC CREATURES OF THE DEEP(DVD付)(スパークス)
スーパーのカートにマイクを付けた女声コーラス隊がぞろぞろやってきて、バックはスクリーンの後ろ、真ん中に映写用のスクリーン(あとで、スクリーンピアノにロンが利用する)。
当然のように楽しくおもしろい。
で、休憩のあとはバンド形式でナンバーワンソングスインヘヴン。
まさか、これを生で観られることがあるなんて、考えもしないね。
でも、ベースとギターは手持無沙汰だったりするのだが(つまりは、本当の意味では生ではない。生ミックス)。2年前はベースがマンマシンになっていてとてつもなかったが、今回はそうではなかった。
No.1 In Heaven(紙ジャケット仕様)(スパークス)
いや、ハイティーンというかハタチ前後に耳にこびりついたものは、一生ついてまわるというのは本当なのだな。
ジョルジオモロダーのピコピコピコピコプンプンズンズクズンズンが流れ始めるだけでハッピーになれる。
ビートクロックを生で歌うとこうなるのか、とか、アザーボイスってアザーボイスだよなぁとか、それにしてもアルバムの再現能力の高さ(しかも、おもしろいというか、ステージ付きだとだれないのには驚く)。
アンコールはディックアラウンドから。この曲は名曲だな。で、マイウェイみたいな曲、ミッキーマウスの曲、このあたりはまったく知らないのだが(アルバムの数がすごくて、ショーの最後ではまだあるのか、とうんざりするくらいあるわけで)、で、なんか知ってそうな曲、MC。ビッグブラザーって年上のほうの兄弟って意味か。最後は知っているけど曲名を思い出せない曲でおしまい。ここではベースとギターもがんがんやってた。で、ついにロンも何か喋る。
このバージョンも観てみたいな。
昨日、OSXのMonoを構築しようとして、えらく閉口した。
libmonoutil.a というのを、いろいろ見ていてみても、libMonoPOSIX.a(うろ覚え)アーカイブ時に参照させる方法がわからない。
最後には面倒になって、libMonoPOSIX.a用のMakefileを直接編集してしまったが、もちろん、それではconfigureをし直すたびに手作業が入るのでだめだ。
で、思ったのは、autoconfも自動生成パターンなんだから、結局は
・Makefileのジェネレーションギャップパターン用スタブを用意しておく
しておいてくれりゃ、それで良いのではないかと。
「最後には手作業」ってのが、人間が介在することの一番のメリットなんだから、それをサポートしておいたほうがいいと思う。
(もちろん、きれいに全部自動化でき、かつその生成物の何をどうすればどう変わるかが、すごく低いハードルで処理できるんなら、そのほうが良いかも知れないけど、やっぱり人間様が切り札だということは変わらないよね)
ビニール盤には、たまに2つ折のジャケットがあって、そういうのは大体、開くと60cmになる。結構な大きさだ。
この大きさを埋めるのは難しい作業なように思う。
で、ロキシーミュージックの勢ぞろいとかがあったりして、イーノが異様だが、良く見るとフィルマンザネラもどこかおかしい。
フォー・ユア・プレジャー(紙ジャケット仕様)(ロキシー・ミュージック)
で、ロキシーミュージックはおもしろくて良いのだが、
Parade(Spandau Ballet)
同じバンドメンバー勢ぞろいでも、こういうのは、ちょっと悲しい。
このアルバムの発表後、スパンドーバレエがフェードアウトした理由には、このアートワークがあると思う。音楽は好きなのだが。
兼子さんの事務所に置いてあったポップアップという、飛び出す絵本の教科書を見る。おもしろい。
実物で学ぶしかけ絵本の基礎知識ポップアップ(カーター,デビッド・A.)
最初にえらく複雑でどでかい何かが飛び出す。これが目標ということだな。
次のページから、個々の技法のサンプルが始まる。
最初は1ページに2つ。
対称的なテント、非対称のテント、立方体、直方体とか、そんな感じ。実物と、どう折り曲げて組み立てて、どこを糊代にするかとかが丁寧にサンプルと同時に説明してある。
次にめくると、6つに増えている。かまぼこ型とか。音が出るポップアップ(ぎざぎざを使って紙でギロのような効果)とか(これはさらに次の2ページかも)
さらに、引っ張りもののページ。回転する歯車とか渦巻き効果の出し方とか。裏側がどうなっているか見られるように2重になっている内側からも観察できるようになっている。
簡単なものから複雑なものへ向けて、基礎的な技術から複合的な技術、ある効果を得るための実装パターン。
本をプログラムするための本だ。
最後のページでは、構想し、デザインし、実装し、仕上げるまでの全工程を写真で解説。すげぇ。
こういうのが作れればいいなぁ。
もちろん技術がわかったからといって、サブダになれるわけではないけど、それでも、こういう教科書があって、サブダがあるとは言えるかも。
Alice's Adventures in Wonderland (New York Times Best Illustrated Books (Awards))(Carroll, Lewis)
(ラストのトランプの群舞は、書物による表現の極北)
追記:最初、サブダの書影が出なかったのでパッチを投げた。投げた場所があっているかよくわからないけど。しかし、上の楽しい書影をみると、0じゃなくてlastのほうが良かったのかなぁという気もする。
久々にTheServerSideを眺めていたら、非同期Webってなんだろう、っていうかどうしてそんなにカクメー的?というナンパな記事が出ていて、おもしろそうなんで読んだ。
そしてがっかりした。
最初に単にリクエストを定期的に投げてポールする方法を示す。まあ、それはそうだ。でも、ポールとサーバーサイドイベントは非同期に起きるわけだから、つまりは、これでは非同期Webではない。
次に、HTTPストリーミングだ。おお、これは知らないかもしれないぞ。でもすべてのプロクシやファイアウォールで使えるわけではないから、汎用性に欠ける。そうか、がっかりだ。
で、ロングポールが出てくる。Cometだな。で、これこそ非同期Webとなる。
えー、まだそういう話なのか、というのが正直な感想だ。
で、さらにその後に、JSR 315の話が出て、Tomcat6 Comet Processor、Glassfish Grizzly Connectorだのが続き(でもそれぞれ異なる方法で実装しているから標準がないよ、と結論)、最後はJSF 2.0(どっこい生きていた、でもAjaxサポートは入ったけど非同期Webの標準があるわけではない)で話が終わる。(サーバコネクションシェアリングの個所は納得がいくけど)
なんで今頃、こんな話になるんだろうか。というか、不思議なのはたかがComet程度ならふつうに実装すれば良いだけだし、事実そうなっているのに、なぜそんなものに標準が必要とかいう話になるのだろうか。Servlet標準の上に乗せればそれでポータブルだと思うのだが。
ジェズイットを見習え |
_ ムムリク [確かにブックオフオンラインあたりにもないですねえ。 4分冊された「砂の惑星」と続く「砂漠の救世主」までが、デューンシ..]
_ arton [ハルコンネンですね。]
_ arton [と、そう書いていたのか。ありがとうございます。]