人の絶対数の関係上、大手にも人が少なくて色々買えた。量としてはさほど多くもないのだが、欲しい! と思っていたものは全て手に入ったので満足。それでもって未チェックだった作家のサークルが出ているのをぼちぼちと発見し、これまた入手。いやー、いい一日だった。……前の晩に DOM Tetris 2 のゴースト機能を完成させることができたのはいいがモニタと睨めっこしすぎて夜が明けていたため、睡眠とらないで向かったツケは今頃出てきてるけど。眠い。
明日は仕事か……クソだるい。でもやらないといけない仕事がある。あーあ。文書書くのに TeX 環境使わせてくんねーかなー。
久しぶりに本棚から引っ張り出して読む。挑発的といわれる著者のエッセイであるが、どちらかといえば「歯に衣着せぬ物言い」の方が適切であると思う。それなりに配慮していることもあるが、それは法的に面倒なことに巻き込まれないようにするための措置であって、それ以上でも以下でもない。つまり、人間の心理を逆なでするかどうかについては配慮する無駄を省いている。合理主義的でとても心地いいものだ。
プログラマは専門書だけ読んでいればいい、という固定観念は捨てるべきである。むしろこういうエッセイなどを読む方が、面白いうえにためになることも多い。何故なら素晴らしいハッカーの書いたエッセイや論文は、そのソースコードと同様に何らかの美しさを兼ね備えているうえ、思想・歴史・思考過程をトレースできる絶好のショートカットになりうるからだ。同様に『フリーソフトウェアと自由な社会――Richard M. Stallman エッセイ集』(Richard M. Stallman ASCII)や『デスマーチ 第2版』(エドワード・ヨードン 日経 BP 社)などが、本棚をざっと表面だけ眺めて目に付く読んで損はない書籍群といえる。奥の方にはまだ埋もれているブツもあるだろうが。
それが今日のマイライフ。昼まで寝ているという点でも何ら生産性のない一日だった。ま……いっか。こういう日にしてこその休日である。明日は COMIC1 がある。チェックが間に合ってないのでお目当てのところは少ないのだが。どうなるやら。
映像面では溜め込んでた録画 & DVD を鑑賞。グレンラガンにスカルマン、ロミオ×ジュリエット、ゲゲゲの鬼太郎、アイドルマスター、地球へ……、リリカルなのは。駆け足でぶっ続け。その後「今日の読書」の諸々を読んで、これから『くじびき♥アンバランス』の6巻。休む暇もない?
言わずと知れた「サイバーパンク」の指標作品。故・黒丸尚氏の名翻訳でも名高い。初読時はわけがわからず、何度も読み直したものだった。そうしているうちに段々と景色が脳裏に浮かび上がり、三読目にしてようやく完成をみた。かなり読み手を選んでしまう作品ではあるが、一度ハマるともう抜け出せない魅力に満ち満ちている。で、なんでコレを今読み返しているかといえば、ついこの間届いて昨日観た「ネギま!? III」収録の #07 を観たため。前も書いたけど、また「ウィンターミュート!?」の台詞で大爆笑。というかおまいらなぜ知っている。
他には『R.O.D ‐第四巻ー』『R.O.D ‐第五巻‐』(倉田英之 集英社スーパーダッシュ文庫)を読了。どうみてもファウストがジュニアとダブったり、実は OVA-TV シリーズとはパラレルになってたりと、本人曰く行き当たりばったり
な感覚。それもまた一興だけれども。個人的に、四巻表紙の間抜け面したジョーカーと(スモーカーだったことを初めて知ったよ……)、本文中での小心者具合がツボ。いい小物っぷりですね。だからあんなことになったわけなのかな。
ちなみに、これまた有名な話だとは思うが、同じ倉田氏が脚本を書いている『R.O.D the TV』と『ガン×ソード』の思想源流とオチはまったく同一だったりする。わざとかな……? まあ知らない人は観ればいいさ[1]。『R.O.D』は後半から鬱々モードに入ってどんよりするが、あれもあれでプロット上仕方ない状況ではある。
……と思った『みないぢめ』(18禁注意)なのであった。いやホント、まさかこの二人がタッグを組んでしかもネタがこれ。
よくやった! 本当によくやった! 本当に本当によくやった!
まさに万歳三唱(違。で、まあ今日は秋葉原へお買い物にいったわけですよ。色々買いに。目的のひとつがこの本だったわけだ。しかも、先行していた友人があらかじめ買っておいてくれたのである。もう残り4冊だったとか。あぶね……私が到着した待ち合わせ時間だと間に合わなかったかも。グッジョブ大佐!
あとは燃料補給(ルートビアとか)を済ませ、パーツショップを漁り(メモリ買おうかな……でも今のマザボ DDR だしな……組みなおしたいんだけどお金がな……)、書店を巡って解散。で帰ってきた。
えー。ちなみに いもうと姉オンリーイベント・シスターシスター!には何があろうとも参加する心持である。さて、どうなることやら……。
有名すぎるほど有名な「クトゥルフ(クトゥルー)神話」世界を創生したラヴクラフトの全集。著者にしては珍しい長編が収録されている(「チャールズ・ウォードの奇怪な事件」)。正直いって文体は読みにくい方だし、途中で展開が読めてしまうこともあるのだが、背景にずしりと横たわる怪奇の影はとても色濃く、何ともいえない暗黒の魅力に満ちている。読み直せば読み直すほどその感覚は強まるだろう。
クトゥルフ神話自体は完全に独り歩きし、現在では元ネタに使った様々な作品が書かれるようになっている。だがまさか、ニトロプラス(というか鋼屋ジン)の手によって、あのアル・アジフが美少女にされるとは思わなんだ。だって後のネクロノミコンである。禁断の魔導書である。もう……ゲームやってみたくなってしまったではないか。その設定だけでステキすぎる。
……ともかくラヴクラフトの作品は恐る恐る読む、というスタイルがとてもよく似合う。薄暗い部屋の中で、頼りない明かりを灯しながら読めば、もっと濃厚な「恐れ」をもたらしてくれるだろう。
学生時代以降、ぜーんぜん触ってなかった pLaTeX2e だったが、えいやとばかりにインストールしなおして現在目下遊び中。Windows 環境だと入れるの面倒なんだよね……。いや、だったら Vine Linux とかあるんだけれども、それはそれ、インストールのめんどくささを体感するのも一興かと。
といっても、解凍して放り込んで PATH 設定するぐらいしかやることないんだけど。あとは dviout と GNU GhostScript をインストールするだけ。いやまったく jsarticle 使うぐらいならまったくもって楽だ。それでもって KaTeX ぶち込んできちんと設定してやればもうウハウハや。
最近会社で Fuxk な M$ Word (しかも 2000!)を使わされてストレス爆発しそうなので、ここはひとつ言うことを素直にききとどけてくれる pLaTeX2e を愛でようとした次第。もうね、エディタでガリガリと書いてプレビューするだけなんだけれども、どうしてみんな乗り換えないのかなぁと不思議になる。勿論色々理由はあるんだけれどもさ。大人の事情とかその他諸々とか。そんな私だって学生時代の 3/5 は Word 使ってたんだし。ちなみに残り 1/5 は OpenOffice.org Writer、最後の 1/5 が pLaTeX2e。Word の体裁機能を覚えたのが3年の頃だった。既にスタイルシートの概念は知ってたから、これは便利すぎるとばかりにバシバシレポート用に使ったっけ。体裁を自分好み(+きちんと提出できるように)整えるまでに時間はかかったけれども、あとはすごく楽になった。どうしてか Word の体裁機能、知らない人が多いのである。個人的にはまず真っ先にこれを教えるべきなんじゃないかと。
pLaTeX2e も、inputenc
パッケージで簡単に UTF-8 を利用できるようになってるし(色々と問題点がないわけじゃないらしい)、相変わらず TeX Wiki の情報量は素晴らしい。検索かませば大抵のことはわかってしまう。その前に奥村先生のアレを読むべきだけれどもね。お世話になってます。
はじめに奥村本ありき。
TeX の派生物をいじってるならまず知らない人はいないであろう奥村先生の著書。既に4版を数えるまでに至り、時代にあわせてきちんと改訂を施してある、まさに生きた書籍。この本自体が TeX の底力で構築されているという説得力もあるのだが、何より内容の懇切丁寧さには脱帽するしかない。この本1冊あれば、大学の卒論を書くために使うぐらいなら何とかなってしまう。私も pLaTeX2e で卒論を書いた。研究室の Vine Linux マシンで。懐かしい話だ。
YaTeX のような代物の話は載っていない(かわりにもっととっつきやすそうな感じのツールは紹介されている)。Win32、Mac OS X、UNIX/Linux 環境の話をかいつまんではいるもののきちんと載せてくれているのはありがたい。入門編からマクロ、索引づくり、図、フォントの話とどれもこれも実用的。確かによりハイレベルな内容はより詳細な書籍に任せるとしても、手元においてわからなくなったらパラパラめくる使い方にもってこい。事実、昔私は3版をそうやって使っていた。
ちなみに4版を買ったのは偶然書店でみかけたから。完全に衝動買いだった。でも後悔はしていない。それだけの金をはらってもいいだけの価値は、確実に持ちうる書籍だからだ。コンピュータ関連書籍にはハズレも多いが、アタリのものは確固たる地位を築き、聖典と呼ばれるようになる。同僚にはもっとそういう「ボロボロになったその後までもつかえる本」を持ってほしいのだが……。この前『プログラミング Perl 第三版』読んでたらすごく変な顔されたっけ。あのさー。全部いっぺんに読むわけないでしょうが。読む必要がある場所を読みたいときに読みたいだけ読むだけなんだから。よい本は索引がすばらしい出来栄えであることが多いのはどうしてか、その点考えてみるといいと思う。
DVD とか DVD とかゲームとか。……その中でももう衝動買いしちゃったのが『スーパーペーパーマリオ』(任天堂 Wii)。この「ペーパーマリオ」は既にシリーズとして定着しているうえに、結構歴史もある。このタッチの原型をさかのぼれば SFC 時代の『ヨッシーアイランド』(任天堂 SFC)まで遡れる。全く同じコンセプトのものは『マリオストーリー』(任天堂 N64)が元祖だろう。面白かったっけ。
今回は Wii リモコン横持ちスタイルなので、「何コレ」とか思っていたのだが実際はヒント探しにポインタ使うので自由度は高い。しかも 擬似 2D と 3D の間をさまよえるというオマケつき。いいなコレ。ボタン数の少なさは「同時押し」で何とかしちゃってるし。意外と「同時押し」を前面に持ってきたゲームは今は少ないのではなかろうか。ボタン数多いのばかりだし。A ボタンが押しにくいというのが難点なのだが、まあそれほど気にはならない。押すだけだし。
今回のゲームも、またキャラクターの個性がキラリと光る。時代のニーズに合わせている面も多々ある(そういうネタを仕込みたがる人間がシナリオや企画に携われる年齢になったということか?)。「懐かしさ」もまた然り。1-1 の冒頭なんか、涙出そうだったもの。あと 1-3 の隠し宝箱。あれは絶対ワープゾーンのオマージュだ。「あやしいところがあったら行きたがる」人間用。勿論難易度を超高くしては意味がない。バランスのとり方がうまい。
案内役たるアンナ(妖精)を街行く人々やあれこれに向けると、解説を付してくれるのだが、これがまた細かい。その人物の再度ストーリーまで話してくれる。ガヤでしかなくとも全員に設定があるのがね。コンプリートしたくなる。何気にさらりと毒舌ツッコミを入れるあたりがツボ。背景の数式っぽいモノやらなにやらも、黒板ネタっぽくてついつい見てしまう。
しばらく楽しめそうだ。……勿論、PS2 Fate もやらないとね。
薄くて安くてすぐ読み終わってしまう。暗ーい上に救いなどない物語なのだが、面白いのである。エロとグロだけかと思えばそんなことはない。ギャルなんか大嫌いだという読者でもまったく問題なし。
あらすじを言ってしまえば「スプリットタンやってるような男と暮らしているうちにそいつが殺人やらかしてさあ大変、でも誤魔化せているし、自分のやりかけスプリットタンもいい感じになってきて、酒もつまみもある。しかしある日唐突にそれは起きた……」。短いながらも色々やっているので密度は決して低くはない。
悲しみが、もはやそれであることすらわからないまでに曇りきった主人公の精神に揺さぶりをかける。それをどう扱ってよいかもわからない未熟さを持ったまま生きてきたために、怒りすらもうそ臭いと感じてしまう。あらゆる意味で中途半端な面が多い中、それでも肉体だけは極端で、その狭間に置かれた精神はぐちゃどろになるばかり。
下手に芥川賞など与えなくても問題はない作品である。勿論世に知らしめたという点で賞の存在は大きかったわけだが……。
同時受賞した『蹴りたい背中』(なんとかかんとか)が疑問しか浮かばない作品構造だったのとは正反対だ。同じ「肉体」をテーゼのひとつとした作品でありながら、どうしてここまで質が違うのだろう。初読当時も今も、そう思う。
つうことで DOM Tetris 2 まだ書いてたりする。Ajax 側面は抜きという縛りはあるにしろ、Prototype ライブラリの力を身をもって知るにはいい具合だし。ゴースト (Ghost) とは、まあ落下確定地点を教えてくれるポインタのようなアレ。どうにも綺麗に実装できなくて四苦八苦中。あまり時間をとっていないのもあるけれど。現在の実装なら T-Spin は設計段階から完璧に実現できてる(と思う)し、まあ何とかなるか。スコア計算だけがネックなのだが……。どういう計算式導入したらええねん。他のテトリスクローンからアルゴリズムを推測してみるしかないか?
私はマンガ版から入った人種である。やはり基本骨子たる小説そのものも読み応えがあってよかった。図表を効果的に用いて文字の森に細部を埋めてしまわない配慮も、こういった架空戦記ものにはよくあることなのだろうか? 実際これが初めてのようなものなのでいまいち勝手がわからないのだが……。ま、面白いことに変わりはない。
マンガ版と小説本編との決定的な差異のひとつは、やはり登場人物のキャラクター性をどれほど前面に押し出しているかという面に尽きるだろう。新城も根幹こそ同じであるが、露骨に凄まじい表情をとらせたりするマンガ版の方が、実際のところ脳裏には焼き付きやすい。それは他の人物(キャラクター)にたいしてもいえる。
ふたつめの差異は、小説本編の方が物語世界の背景構造をより詳細に描写しているということだ。この点は先のキャラクター性強調とも絡んでくるのだが、まあ要するにレンズのフォーカスがどちらに向きやすくなっているかという話である。キャラクター寄りになりがちなのがマンガ版で、背景構造の説明寄りになることが(比較的)多くあるのが小説本編。
その問題は、フィクションとノンフィクションの差異にも直結するのかもしれない。勿論大本は架空戦記というフィクションなのだが、小説本編では当然ながらノンフィクションの世界として背景を扱う。ところがマンガ版にはそれが全くといってよいほど見受けられない。それは、デフォルメーションされた記号的身体が視覚という最も直接的な脳へのインプットでもって伝えられるからなのだろうか。そもそもマンガという技法ではノンフィクションという概念自体をメタ的に捉えるしかない。同じ「(架空の)現実」を表現するために全く異なるアプローチをとっているといっていいかもしれない。
考えまとまらないなぁ。まー2巻も買いまっせ。
今週末に開催される COMIC1 に行くべきか否か未だに悩んでいる。というのもお金がないからだ。今月はちょーっと色々買いすぎたので(本とか本とか本とか)出費がかさみ、通帳の中身が大ピンチ。給料日後なので問題はないのだが、次月末まで保つかどうかが大問題。今、生存と欲望の狭間でひとりの男が苦悩しているのです。
……ああ、マジでどうしよう。
やっと出た、TV 版ベースのコミカライズ。まあ何といっても作画が小梅氏というのがイイ。ある程度好みは別れる絵柄だとは思うけれども、もう何ともいえない滲み出るエロース
[1]が全編通じて溢れている。勿論有名な話であるが、小梅氏は元々成年向け雑誌でデビューした漫画家である[2]。読んでいて本当に眩しいと思えるぐらいによく描かれた「光反射」が特徴といえばそうなるか。
時乃の胸が大増量されてたり、蓮子たんの水着がどえらいデザインになってたり、現職生徒会三人衆の入浴シーンまであったりとまあもうやりたい放題というか何というか(ちなみに副会長がどえらいことになってたりする……愛されてるなぁ)。
TV アニメではできなかったこと・やらなかったこと・やろうとしなかったことをバシバシとぶち込んでいる作品。
サクッと頼んでサクッと到着。まあ何となく。初回限定のプレミアムエディション。これから観る。とりあえずまず本編を見て、コメンタリ聴いて、その他色々読んだり観たり。ああ忙しい。
去年の8月に観たときの記録が残っていた。またもういちど DVD で観てから書きたいことがあれば書くとして、とりあえず準備準備。
前々から気になっていたマンガ。思い切って買ってみた。アタリだった。
まあ私は考古学者でもなんでもないので時代考証の話はなーんにもできないのだが、とはいえこれが読んでいるだけで面白い。勿論作者の初連載だけあって荒削りな部分もあれば微妙な表現もあったりするのだが[1]、何より丁寧に描き込まれた「生活」の描写がとても心地よいのだ。買って損はない代物である。途中で現れる
読んでいて思い出したのは昔のことだ。小中学の頃は田舎に住んでいた。どこぞの「おひつ」を沈める祭りがある神社の近くとだけ言っておこう(わかりやすすぎるか……)。家は一軒家だったのだが、その敷地の片隅に小さなやしろが作られていた。「おじぶっつぁま」と呼ばれていた。確か、石が奉られていたと思う。昔からある民家、ないし人の家にはほぼ必ず存在した。母はたまーに掃除していたと思う。草むしりのついでぐらいの頻度で。正月になると、三が日はお供え物をしていた。雑煮とか。まあいってみれば家神様といったところだろう。図書館で郷土史を漁ったり、爺様婆様から話をきけばもっと詳しいこともわかるだろうが、生憎とそういうことを訊こうという気が起こる年代には高専に入っていた。よくよく思い出せば家の中にも神棚があった。
そんなこんなで、結構「神様」という概念と日常的に接していたと思う。「八百万の神々」という話を聞いても、まあもし神という存在が在るならばそんなもんだろうなと自然に受け入れていた。後になってキリストやイスラム、ゾロアスターなどが単一ないし善悪二元の神だけを信仰する宗教であるということを知った際に、違和感を感じたのは当然なのかもしれない。『かみちゅ!』のコメンタリで「八百万の神々」が今の若い子には理解できないらしいとかいう話をしていて、そんなことはないよと思ったものだが、生まれてからずっと都会に住んでいる人間は確かにそうなのかもしれない。
田舎にあるのはどちらかといえば「信仰」のような大げさなものではなく、「思い」のようなものなのかもしれない。神様っていたら面白そうだな、というぐらいの軽い気持ち。でもまあいたらいたで大切にしないとね、という「そーいうもんだろう」的な感覚。うまく言語化できないのがもどかしいが、とにかくそういったものだ。
『縄文物語』のそれは、古来の話だからかなり切羽詰った面もあるのだが、それでも根幹にあるのは「あらゆるものに神様ってのはいるんだよね」という認識だろう。「モノは大切にしましょうね」と同じような感覚かもしれない。
というわけで、ちょっと懐かしい気分にもなったわけで。
今度『ニタイとキナナ』も買おっと。
さっそくプレイしまっせ。ふふふ。
それにしても個人的な話なのだが、PS2 のコントローラは使いにくい。平均的にみてもかなり小さいといわれ続けている私の手の大きさもそれを助長しているのだが……あのアナログスティックがまたね。指がまずうまく届かない。感覚がふにゃふにゃで微妙な操作がやりにくいことこの上ない。十字っぽいボタン(本来の十字キーって、確か任天堂が特許取得していたはず)も気持ち悪い。ボタン多すぎて扱いに困る。特に LR ボタン。両方を使うように持とうとすると、すごく不安定になる。……そういう意味では、スーパーファミコンや背がサターンは非常に使いやすかった。
個人的には(デザインはアレだったが) Nintendo 64 のコントローラが大好きだった。3D スティックを使いすぎるとプラスティックの接触面が削れてカスが発生するという欠点はあったにせよ、スティックの固定感はバツグンだったし、何というか、手にとてもよく馴染んだ。コントローラにはかなり気を遣うという任天堂の精神が込められた作品だったと思う。……振動パックつけると途端に重くなってしまうのが玉に瑕だった。GameCube のコントローラもそこそこ好きだったけど。
コントローラという意味では Wii のリモコンはかなり個人的ヒットだった。スティックは固めでそれなりに固定感があるし、ボタンも必要以上に多くはない(少なすぎるとは思うが……)。相変わらずのフィット感もある。重量も、電池込みでさほど重くなく軽すぎもせず。SONY もこういうところは見習ってほしいよなぁ。XBOX 360? ……触ったことないからわっかんね。M$ はね……どうにもね……手を出したくない。でもアイドルマスターが面白そうなんだよなぁ。ああ。どうしよう。
最近買い始めた雑誌のひとつである。これがまた意外に面白いのだから始末が悪い。みてくれもタイトルもいまひとつパッとしないのだが、本が好きで好きで好きで好きでたまらんという人種の為にあるような雑誌である事は間違いない。新刊書籍のレビュー(しかもそうそうたる面々!)に一風変わった特集、読者参加型の、有り体に言えば昔懐かしい感じがする投稿コーナーの紙面量。ビブリオマニアの連載は勿論のこと、あまり気負いのない各々の連載が読んでいて心地よい。はっきり言って上質とはいえない紙質と印刷、そして厚みなのだが、その分お値段も手頃である(505円 + 税)。だが内容はかなり濃いので、とてもお得な代物だ。
読む人をかなーり選んでしまう類の雑誌ではあるのだが、選ばれてしまったならもうやめられない。そういう意味では『S-F マガジン』のような中毒性がある。しかもジャンルはかなり幅広く、一般文芸誌に載ったものから SF、ミステリ、ファンタジー、奇書、古書、ライトノベルと呼ばれる類のものまで、ありとあらゆるエッセンスを無尽蔵に無作為に無造作に掲載してしまう懐のだだっ広さを持つ。最近の連載陣には SF 畑で有名な人も多い(大森氏とか、鏡氏とか)。悪い事は言わない。一度は読んでみるといい。本好きならズガンとハマるだけのキャパシティを秘めている、しかも興味がなかった他のジャンルの情報までわかってしまうというお得度満載な代物である。
最近の gdi++(本スレ・アップローダ)は 0613 からフォントローダに Win32 API である GetGriphOutline を利用することもできるよう切り替え可能になった。つまりフォントグリフの取得方法を変えられちゃうということ。設定は以下。
[General] ; 0:FreeType 1:WIN32API (GetGlyphOutline) FontLoader=0
0612 にて実験されたコードを 0609 にマージしたものが 0613。
0616 辺りでボールド体制御を FontLoader
の 0 と 1 で共通化。
現時点での最新は 0629。0631 というのもあるが、テストバージョンなので挙動はもしかしたら微妙かも。私は現在 0629 + FontLoader=0
を利用。どうも 1 のレンダリング結果は好きになれないので。今色々いじってはみているが、調整にかなりてこずっている。使い物になるにはもう少し時間が必要かもしれない。
KODANSHA BOX で出た、ナニこれという厚みの論考集。現在 essays の方を読み進めている。『メタリアル・フィクションの誕生』が収録されている方だ。これは『ゲーム的リアリズムの誕生』(『動ポモ2』)の直接の下敷きになった連載。連載というだけあって、『動ポモ2』と比べてみればかなり荒削りで構成も混沌としている。理論と作品論が混在しているといえば、『動ポモ2』読者にはピンとくるだろう。だがそんな混沌さの中にもきちりと筋は通っている。現在 1-2-C 辺り。
ちなみに『文学環境論集S』と『文学環境論集D』も出るらしい。評論・対談集三巻の愛称を「LSD」としたのは、編集部のアイデアによるものであり、筆者としても気に入っているが、とくに標的な意図はない
のだとか。続巻にも期待しよう。
ちなみに今日もまた本を買ってしまった。……まずい。本格的にまずい。食費を切り詰めなければやっていけないぞ。でも食費ならいいか。
そのせいか! 金がみるみるうちになくなっていくのは。まあいっか。昔、欲しかった本を買わずにおいたらという超絶体験をふつうにやらかしたので、もう懲りている。今でも覚えてるがな。確か『戦争が終わり、世界の終わりが始まった』と『小さな場所で大騒ぎ』。……Amazon では買いたくないな。現物見て買えないのがどうにも怖い。ふんぎりがつかないといってもいい。新刊と DVD はかなりの頻度で買っているんだけれどもね。あわせて送料無料になるぐらいのものという限定条件つきで。
今週の週末は乏しい財布の中身をはたいてネットカフェにでも行こうかしらん。マンガを読みに。近所に結構綺麗なチェーン展開している類の店があって、そこそこお気に入り。『ジョジョ』もまだ全部読みきってないし。あれはね……一度読み出すとかなり中毒になるよ。本当に。私の友人にも『ジョジョ』大好きっ子がかなりいるのだが、その心情がほんの少しかもしれないがわかった気がする。ベクトルの向きは完全に王道からは逸れているのだけれども、しかしそれは加算したあとの結果でしかなくて、微小部分のそれは様々な文脈を持っている。
ああ……はやく週末にならないかな。
今日はさっくりと『R.O.D』なんぞを読んだ。薄めだから帰りの電車一時間ちょっとで読み切る[1]。相変わらずの駄目っぷりを発揮する読子と、イラストが妙にかわいいねねね。そして表紙でえらいことになっているドレイクさん。……怖いよアンタ。でも本編中ではとてもいい人なのである。つくづく報われない。内容を要約すれば「すっげー本屋にテロリストが現れてさあ大変、読子どうする!?」。まんまですな。
ちなみに行きと昼休みには『ユリイカ 詩と批評 2007年4月号 特集*米澤穂信』(青土社)を読んでいた。まだ全部読みきってなかったので。まだまだ途中なので続きは明日以降ということで。
本は暇を無理矢理創り出して読むもんだ。……それが絶対でもないけれど。今日は『コンテンツの思想 マンガ・アニメ・ライトノベル』(東浩紀 他共著者多数 青土社)を読む。内容的には『波状言論』と『ユリイカ』に収録された対談の再録(+補筆)なのだが、改めて読み返すという意味でじっくり読んでみた。青土社から出ているものとしては『網状言論F改』『波状言論S改』ときて第三弾ともいうべき代物か。『ゲーム的リアリズムの誕生』と同じタイミングで刊行されたので、そちらに関する言及が若干補足されている感じ。一度通して読んでみて脳内にマップを広げてみると、パズルがかちかちと解かれていく感覚を味わえるだろう。添え物的な印象はあるものの、構成はまとまっておりその意味では申し分ない。
因みに昨日は『街角のオジギビト』(とり・みき 筑間書房)を読んだ。前から書店の棚に入っていてとーっても気になっていた本だった。「なんであの工事現場のアレ?」とツッコミたいのをこらえつつ、買おうかどうしようか迷ったので、迷うぐらいなら買っちまえと[1]。そのせいで今月は既に赤字なのです。いや、もう貧乏。ちなみにこの『オジギビト』、なかなかに面白くて一気に読んでしまった。これはお薦めだ。ものすっごいくだらなーい紹介文なのに妙に熱気がこもっているのは、何故かは「察してくれ」と言うしかないが非常に共感できるものだった。とり・みき氏が SF 方面で有名なことも手伝ってか、後で『S-F マガジン 2007年5月号』を読み返してたら「SF BOOK SCOPE」のノンフィクションで既に紹介されていたのが個人的にツボ。
最近すっかりクラスベースよりプロトタイプベースなオブジェクト指向言語の方がしっくりきてしまう体質に。……いかんな。C++ ももうちっとはいじらんと[1]。でもいくら Boost 使えば lambda 記法も使える[2]とはいえ、とっても非科学的な物言いをしてしまえば「固い」印象がある[3]。そんなこんなで微妙にコード読んでみたりしてるのが Io という言語。
まあとにかく覚えがいはありそう。言語仕様もそれほど大きいものではない。文法的には Lisp に似ていなくもない[4]。多重継承までサポートしている。無名関数もあるらしい[5]。まだ読み始めたばかりなので何とも言い難いが。
ちなみに日本語の資料は Io 文書 (Io Docs) 辺りとか。もっともっと色んな言語を知らないとなぁ……自然言語は大嫌いだけど。
Object.prototype = { /* ... */ }
に関する議論は「注意喚起」の意味では適切だが……発端は amachang 氏の「JavaScript 入門」という文書。これに dankogai 氏が意見を述べ、amachang 氏が反論したという具合。
かくいう私も、昔この糖衣構文に引っかかったことがある。だから、「意味もわからずに無闇に使うと副作用がある」ことは、頭の片隅に入れておく必要がある。対象とするオブジェクトが別のオブジェクトを継承していることが不明確である――例えば「自分が書いたものではない」オブジェクトを利用する――場合は、Object.prototype = { /* ... */ }
という糖衣構文がプロトタイプチェーンをぶった切ってしまうことをきちんと認識した上で、Object.prototype.someProperty = someObject
のように「追加」(dankogai 氏のいうところの重ね合わせ
)するようにコーディングすれば、副作用を気にする必要が減るのは事実である。
だからといって「避けるべし」と言い切るのは言いすぎだ。amachang 氏の指摘にもあるように、私も前述したが、Object.prototype = { /* ... */ }
は糖衣構文であり、使い方さえ適切なら使用すること自体に何も問題はない。
しかし amachang 氏の次の発言にも問題がないとは言い切れない(強調筆者・引用先著者の強調略)。
もし、そのシンタックスシュガーは癖になって継承のときにも使っちゃって継承が台無しになってしまうから使うな。という意味の指摘であれば、こう言わざるを得ない。「{} が new Object; のシンタックスシュガーだということを理解していれば、そんな間違いを犯すことはないし、間違えてもすぐ気付くはずだ」。
IT 戦記 2007-04-13
前述の発言は、{} が new Object; のシンタックスシュガーだということを理解して
いない人間がいる可能性を排除している。初学者はまず鵜呑みにすることから全てをはじめることが多い。そのうえで段々と意味を学習し、背景を理解することで、はじめて {} が new Object; のシンタックスシュガーだということを理解
するのである。
繰り返しになってしまうが、私も昔は「Object.prototype = { /* ... */ }
とすることでプロパティを追加する」ものだと思い込んでいた時期があった。その後紆余曲折あって「Object.prototype = { /* ... */ }
で何でもかんでもプロパティ追加を行うとするとマズい場合がある」ことを知った。
話を短くするために、時系列順に amachang / dankogai 両氏の問題点を抽出してみよう。
Object.prototype = { /* ... */ }
が糖衣構文であることを「理解している」場合を前提にした故に、両者の議論は非常にちぐはぐとしたものになってしまっている。おまけに、amachang 氏は dankogai 氏への反論本文を記述する前に、本来ならば脚注にでもすべきである継承に関する議論を持ってきてしまった。論点がぼやけた原因のひとつである。
両者ともに前提条件を多く作りすぎ、本来あるべき可能性を考慮しなかったために、議論が収束することはなく、明後日の方を向いてしまった。
結論としては「どっちもどっちだった」という話になる。この議論は、両者ともに「指摘する側」「される側」になってしまった。丸く治めるには様々なやり方があるが、ここには記述したりしない。私にとってはどうでもいいことだからだ。
さて……最近睡眠不足だから早めに寝ようかね。
正しく HTML を書こうと心がけている人に5つの質問に回答。せっかくのネタなので有意義に使わせていただこう。
環境によって違うが、以下のものたち。
XHTML 1.1。いちばん新しい勧告済仕様……っていうのもあるが、わざわざ 1.0 を使う理由もなければ、1.1 に固執する理由もないから。つまり気まぐれに近い。
無論、使うなら XHTML ファミリ。将来的な拡張を考えた場合の処置。XML ベースというだけで相互利用性、特にプログラム側からの利用が断然楽になる。既にその複雑さから放置プレイを受けちゃっている SGML ベース(でありながらかなりルーズな)の HTML 4.01 や ISO-HTML より発展も期待できる。
書くのに一番楽だから。最小限の規則を最小限の要素でマークアップするだけで、十分意味は伝えられる。table レイアウトなんかもうやりたくありません。面倒だもの。
また、後になっていじるときも楽だから。規則的になっていないと将来的に文字列置換などで文書構造を変更(DOM や、XHTML なら XSLT でもいいけど)する際に苦労するだけ。実際に苦労した経験もある。
どちらに期待するしないという問題ではないと考えている。優れた仕様であると考えられる方を採用するだけの話。勿論それは理想論で、現実には「デファクトスタンダード」という悪魔が潜んでいるものだが……。
所謂青春時代と呼ばれる時期に没入し、今もなお愛で続ける言語。もはや (X)HTML のない生活など考えられない。
ああ……どうして人工言語ばかり好きなんだろう。自然言語にはぜーんぜん興味などないのに。
今まで何も考えずに使ってきた機能に名前がつけられているのを知ったときは結構おどろくものだ。今日は、あるコードが「リフレクション」と呼ばれることを知った。
リフレクションとはプログラムを実行する過程で自らを書き換える技術なのだそうだ。これは DOM Tetris 2 でも普通に使っている。ECMAScript ってやはり知れば知るほど深みがあるもんだなと再認識させられた。例えば次に示すオブジェクト Test
の execute
メソッドは、第一引数に渡された文字列が自オブジェクトに存在する場合それを実行する。
function Test() { // No Property } Test.prototype = { execute : function(name) { if (typeof name != "string") { return null; } if (this[name] !== undefined) { return null; } return this[name](); // ここでリフレクションが用いられている }, toString : function() { return "Test Object!"; } }; (new Test()).execute("toString"); // "Test Object!"
Object
オブジェクトが連想配列としての機能を持ち、prototype
プロパティへの関数オブジェクト追加で容易にオブジェクト自体を書き換えられるような素晴らしい柔軟性を持っているからこそ、改めて指摘されなければ気づかないだろう。
DOM Tetris 2 ではキーイベントを受け取った時に、どのキーが押されたらどのメソッドを起動するかをアルゴリズムとは別にデータ構造(連想配列)で保持している[1]。即ち、押下キーに対応したメソッド名文字列である。キー押下で連想配列からメソッド名を引っ張り、自オブジェクトに該当名のメソッドがあるならばそれを起動する。様々な場合分け処理にコストはとられるものの、連想配列のおかげで実質的なオーダーは O(1) で済む[2]。ただテクニカルなだけではなく、実用上とても都合がいいのである。
そもそも Common Lisp などの Lisp ファミリは言語仕様からしてリフレクションが使われて当たり前というかむしろ空気?みたいな感覚なので、わざわざ区別することもないだろう。というより、eval
系のインタフェイスがあるならほぼイコールでリフレクションが使える。
まあ、だからどうだというわけでもないのだが、一応名前がついていたということでネタにしてみたという話。
tetris.js
の TetrisObject.prototype.EVENT.KEYBIND
と TetrisEvent.prototype.keydown
(keyup
も) 辺りを参照。他にも TetrisEvent.prototype.observer
で使っていたりする。こちらはキーイベントの種類を表す文字列に応じて起動するメソッドを変えている。String.fromCharCode
なる怪しいメソッドが使われているのだが――流石にこれはオーダーの計算範囲外だよなぁ。内部実装まで見てないから何ともいえないが、連想配列使っていてくれると助かる。つーかメモぐらいとってくれ。××さん。
さて、私は非常に忘れっぽい。短期記憶があまりにも揮発性に富んでおり、もうお前は鳥アタマだなとよく言われた。自覚してもいる。だから言われたことは大体メモをとるようにしている。でなければ忘れてしまうからだ。メモが存在すること、メモを読まなければならないことすらも忘れるぐらいなのだから、外部記憶に頼らなければもっと酷いことになる。
今、中途で入社した人に色々仕事を教えていたりするのだが――またこれが人に言われたことを素直に実行しようとしない。いつも動いていない手を見ながら「メモとってますか?」とやんわりと言うのだが、「はい大丈夫です」と返事はよこす。「待ってほしかったら言ってください」と告げて話をどんどん先に進めても、一向にとめる気配もない。かといって全てメモをとるなり何なりできているかなと手元をちらちらと眺めても、筆が進んでいる様子がない。……こりゃ駄目だな、と青二才の私ですら溜息がでてしまう。
その本人、それだけ凄い短期記憶でも持っているのかと思えばそうでもない。一度言われて忘れ、二度言われてまた忘れる。n度目もまた然り。
返事だけはいつも「はい大丈夫です」の一点張り。見せかけの元気よくそう言う。マジで泣きたくなってきたものだ。
新人だから仕事が遅いのは勿論仕方のないことだ。そこで私は「こう考えればどうかな」と提案する。例えばあるプログラムの時間がかかる処理中に、バックグラウンドで別のことをするという至極当たり前の提案。
それすら無視するのだから恐ろしい。たとえ新人であったとしても倍速にはなりうる「ちょっとした考え方」であるにも関わらず、完璧に却下するのだ。
……「仕事をしている」という実感が欲しいのだろうか? そんな個人的な被虐欲望など、迷惑でしかない。利益にならない。自分のためにも他人のためにもなりゃしない。「非効率的である」という状態そのものを忌み嫌い、確かな意味での「不精」「傲慢」「怠惰」を貫くことこそがプログラマの在り方だろう。まったく Perl コミュニティはいいことを言った。まさにその通り。プログラマという人種は楽をするためにまず少しの苦労を厭わない。
例えば、今私はある用途に使うちょっとしたコマンドを書いている。それを使えば、少なくともある文字列をコピペして云々する手間が省けるうえに、従来のツールよりも高速に動作する。既にバージョン 1.0 レベルにまで持ってきたそれは、トータル換算すれば5時間ほどの時間をかけて書いたものだ。……それを使えば、今まで5分かかった仕事が1分で終えられる。コマンドを叩くタイプ数も激減する。
いくつか種類のあるそれらの中で一番の自信作は、それまで40分かかってしまっていた作業を5分で終えられるというものだ。コマンドも短い。プログラム自体も短い(Perl 万歳!)。共通部品をモジュールにして分離したので、再利用も楽だ。少しはマトモなマニュアルも pod で書いちゃったりした。数日かかったが、業務の片手間に書いたからだ。なんで今までだれも書かなかったのだろうと不思議になる。無論、まだ信頼性には欠けるが、それはおいおい改良すればいいだけの話。まず大事なのは、それが現実に利用できる状態にあり、かつ残業の悪夢を減らしてくれるものだということだ。
まあ結論としていえるのは、「唾棄すべき無駄は災厄でしかない」ということか。勿論「愛すべき無駄」もあるんだけどね。sl
コマンド打っちゃったときに通り過ぎる、可愛らしい機関車とかさ。
行ってきた。誰に投票したとはいわないが、少なくとも当たり障りのない候補にはしたつもり。そういえば昨日秋葉原に行ったのだが、あのドクター中松が街頭演説(ともいえなくもない広報活動のようなもの)をしている現場に出くわした。何というか、まあよくやるよ。ホントに。
今日は得票結果の速報でも見ながらコードでも書きますかね。
現在環境構築中。以前、一度 Windows XP 上につくりあげたこともあったのだが、その後 OS 再インストールで消えてしまっていた(システムパーティション……つーかドライブ C に入れてたから)。そんなこんなで格闘中。
実際のところ、編集環境である xyzzy のほうが先に整ってしまった。以前の設定残ってたからなぁ。以前より少しは Common Lisp の知識がついたので、出る理由がわからなかったキーバインドエラーの理由もわかるようになったり。そもそも KaTeX 自体が autoload
と export
のコンビネーションをあまり考えてないつくり。elisp::katex-mode
を elisp
から export
して autoload
で使うと、エラーが出る。理由はkatex.l
内部の require
が site-lisp/katex/katex.l
だった場合のことを何も考えてないから。まあ確かに分割した方が適切だけれども、だからってその解決方法が *load-path*
へのパス追加だなんて。おかげでパッケージ名をつけないで呼び出すにはラッパ関数を defun
しなきゃならない。
それでもまだ KaTeX
はマシな方だ。だってそれでも微妙に他と違うだけで、決してキタナイことをしているわけではないから。
私が知る限り、最も問題があるメジャーモードは xml-mode
だ。このモード、かなり厄介なことに、そもそも autoload
することなんか前提にしていないフシがある。無理矢理 autoload
でどうにか読ませるには、ちと汚い手段を使う必要が出てきてしまう。
素直に require
で我慢しろと? ……いやいや。やれないからこそやりたくなるもんなのだ。それも、xml-mode
自体のコードは一切改変せずに。.xyzzy
の中で完結させる状態で。
結論としては、明示的に defpackage
で xml
パッケージを定義するしかない。次に私が書いたコードを載せる。
;; autoload を使うなら、xml パッケージが undef のままになる ;; 故に強制定義して undef エラーを回避 (defpackage xml (:use "lisp" "editor")) ; see also "xml/xml-mode.l" (autoload 'xml::xml-mode "xml/xml-mode") ;;; ラッパ関数 (defun xml-mode () (interactive) (xml::xml-mode))
別にメジャーモードを書いているわけでもないのに、defpackage
を呼び出している。……気持ち悪いコードだ。だが、1行加えるだけで驚くほどうまくいく。
確かに独自のパッケージを定義して名前空間を明示的に分けてやれば、それだけ開発もやりやすくなる。だが、その代償も少なからずある。xyzzy 向けに書かれたメジャーモードは、大抵が editor
パッケージ(エイリアスは ed
)で定義されるように書かれている。editor
は .xyzzy
ロード時には既知のパッケージ名であることが保障されているから、(export 'ed::somemode "ed")
することができる。
xml-mode
を autoload
でロードさせると一番変わるのは、DOCTYPE 別設定のファイルを require
させるタイミングが *xml-mode-hook*
フック実行時になるという点か。それも当然で、例えば xml/xhtml.l
では xml-mode.l
で定義されている変数に値を云々したりしている。初期設定が済んだ後で require
しないとエラーになるという話だ。だからフックに噛ませる。require
だから多重読み込みはしない。つまり、2回目以降の呼出コストは微々たるものだから、安心して使える。
そんなこんなしていたら時間を喰ってしまった……。今日はもう寝るかな。
今日は CSS Naked Day。つーことで遅ばせながらスタイル変更ですよ。ナニこれ CSS 適用されてないぢゃんというなかれ。だって事実そのとおりだし。そういうことをする日なのですよ。だから、これでいいのだ。
素っ裸になっても構造が崩れてはならない。昔、まだ今より未熟だった頃(今も未熟といわれればそれまでだけど)、スタイル無効にしたときのぐちゃぐちゃ加減に唖然とした記憶がある。それだけスタイルシートという概念が、CSS というその体現がもたらした「覆い隠せてしまう」危険性が大きいということだ。道具は正しく使ってこそ価値がある。勿論敢えて間違うことでより大きな可能性を見出すこともあるが、しかしそれは道具の性質によるものが非常に大きい。CSS という道具は、構造と体裁を分離する手段を理論ではなく現実のものとするために考案された。その背景からしてみれば、そもそも CSS という道具はあってもなくてもよいものにしなければならない。必須であってはならないのだ。必須であるのは構造である。体裁も勿論大事だが、必要最低限のものは既に UA のデフォルトスタイルシートとして与えられている。CSS は、最低限の条件を満たした構造を、より閲覧しやすい状態にもっていくためにブースターとして用いられる補助具の実装なのだ。補助具が原点を侵害しては元も子もない。
さて、ようやく明日で一週間も終わりだ。ゆっくりと惰眠を貪ろう。
たとえば netinstaller でバージョンチェックをしたり、.xyzzy
の整理整頓をしたり。はじめて手を触れた時に比べれば格段に使いやすくなっているのは事実だが、結構継ぎ足し継ぎ足しで来たので .xyzzy
が冗長になってしまった。今日は DOM Tetris 2 をいじる気がなかったのでファイル分割をやってみた。Emacs でいうところのメジャーモードとマイナーモード、それから一般設定の拡張 lisp にわける。以前から設定が膨大になりがちなもの(特にメジャーモード)は別ファイルにして load-file
していたのだが、それを概念単位にした感じ。一般設定は .xyzzy
、マイナーモードは .xyzzy.minor
、メジャーモードは .xyzzy.major
にする。あれだけ長かった .xyzzy
が嘘のようにすっきりした……。もっと早くやればよかったかな。
懲りずに DOM Tetris 2 いじり。以前からの改良必須点だったキーリピートの有無を簡易に設定できるつくりに改良した。TimerExecuter
を少しと、TetrisEvent
を少し、あと TetrisObject.prototype.EVENT
をごっそりと変更。なかなかいい塩梅に仕上がった。まったく連想配列万々歳である。連想配列があるだけでデータ構造とアルゴリズムの分離はより明確にできるのに今の現場ときたらまったく……。いや、愚痴っても仕方ないか。どう考えても O(n) だったり O(2n) なコードが氾濫してる職場です。本当にありがとうございました[1]。
……で、話はそれで終わりじゃない。これでようやく TetrisEvent
に最低限の機能が出揃った。次は何に手をつけようかな。TetrisScore
にしようか。「横一列埋まったら全体に swapLine
かましてスコア計算」なメソッドを実装するとか。……以前は Tetris
オブジェクトに埋めてたからなぁ。あとで読み直したらかなり混沌としたコードになってた。しかしプロトタイプだから仕方ないか。あの時は確か、一週間ぐらいでバージョン 1.0 を仕上げた。そりゃ詳細設計もマトモにしてないのだから、コードがぐちゃぐちゃでもいたしかたないだろう。今は時間があるからゆっくりとやるさ。
さきに言っておこう。結婚することになった。
いよいよもって逃げられない状況である。というより、私自身が驚いている。まさかこういうことになろうとは。
もう2日ほど前の話になるだろうか。金曜日のことだ。いきなり親が縁談の話を持ち出してきた。まだ早い、といったのだが、「孫の顔が云々」と強引に押し切られ、ズルズルと見合いをさせられる羽目になった。何度も何度も「駄目」「無理」「まだ早い」と言い逃れようとしたのだが、親に現在住んでいるアパートに無理矢理おしかけられ、強制連行されたからにはもうどうしようもない。
とはいえ色々と立場というものもある。この場は逃げるよりも、とりあえず主席はしておいて、何がどうなろううとこちらから断ってしまえばいいと。
思えばあの時気づくべきだったのだ。あらゆることが不自然で、しかも無茶苦茶に急だということに。因みに見合いの日は土曜日だった。急転直下どころではないことがおわかりいただけるだろうか。
いいかげんな男だと思われるかもしれないが、相手には全く期待していなかった。私の中には「拒否」という選択肢しかなかったし、それしか考えていなかった。
1プログラマに過ぎない私に、嫁をもらうのはまだ早いという気もあった。
とりあえず、見合いの席に出た。まあ……詳細は割愛しよう。ここで述べても仕方ないことだ。よくありがちな見合い風景を思い浮かべれば、だいたいあっている。ただ言っておけることは、相手の女性はなかなかの美人であったということだろう。いや、はっきり言って私のストライクゾーン直撃だった。何がどう、とは言わないけど。
着るものの指定は、何故か相手側からの要望だと聞き及んだ。馬子にも衣装とはよくいったものだ。その場の私は、まあ別人状態であった。猫に小判だと言い換えてもいいだろうが……。私は和服を着せられた。相手もまた然り。それがまた似合っていたから始末が悪い。双方席に着き、隣に立会人。そして始まる堅苦しい挨拶。だが。
カフカもびっくりの超展開が、そこで生まれたのだ。
ブーッ! と飲んでいた茶を噴き出し……そうになった。慌てて抑えたので何とか最悪の事態は避けられたものの、まあみっともない姿には変わりない。しかし、相手は微動だにしなかった。
知るんじゃなかったとは言わない。だが、こんな無茶苦茶なそれこそエロゲ的状況が発生するとは。
何でかって、そりゃ、「生まれた時からの許婚ですからね」なんていわれれば誰だってそうなるだろう。21になり、春になったら――という約束だったというのだ。なら何故教えてくれなかったんだといえば、まあ諸々の事情云々があったらしい。その場では問い詰められなかったので、実はそのあとで色々と聞き出そうとはしている。しかし私自身も疲れているので、完全に真相がわかるのはいつになることやら。
みすみすこの機を逃すことはない、とウチの親が判断したらしいのは事実だった。一応破談にもできたらしいが、まあのらりくらりと生きてる馬鹿息子には嫁も必要だろうという考えだとか何とか。子が子なら親も親である。
何より……ああ……駄目だ。まだ気持ちの整理ができていない。この文章だって隠れて書いているのだ。とにかく今日はこれまで。続きは……多分明日以降。
Warning きょーうは何の日、るっるー(某昼の番組風に)。
ヒントは段落2文字目。
追記。今年もエイプリルフールなので一発やらかしてみた。去年は段落先頭文字の縦読みだったので、2年目の今年は2文字目の縦読みにしようと思い至る。……ネタは「ぶっちゃけお前にそれはない」といわれ続けていることのひとつ。一目でわかるのもどうかと思うが、まあそれはそれで。