欲しい本いろいろ

まあ得てして専門性の高い書籍というものは値が張る。しかし……自分の底の浅さみたいなものを今日垣間見たような気がしたので。以下、とりあえず今日欲しいと思った本。

Amazon で買うと合計8404円。うーん。少々散財したから今月はムリか? 来月ならいけるかもしれない。ぼちぼち考えとくか。

2007-10-30

CSS ファイル書きなおし中……

結構カオスな状況にあるため。しばらくガリゴリと書きなおしてみる。その上で Opera 6 対応なんかはいい加減にやめてもいいかなーと。よく考えればまだ Opera 6 が現役だった時代に書きはじめたのか。うわ。感慨深いというか何というか。

あまりトリッキーなことをしなければ、IE 以外は素直に意図どおりの挙動を示してくれる。勿論、トリッキーなことをしはじめると最悪のパターンではセレクタハックによる切りわけをしなければならない羽目になるのだが……。条件付コメントも本当なら使いたくなんかないし、セレクタハックもまた同じ。

そういえば、条件付コメントにしろセレクタハックにしろ、発想としては C 言語でいうところの条件付きコンパイル(#if とか)と同じだ。条件付コメントはまさにそのものといっていい。とはいえ、C 言語のように「コンパイラのチェックを通らないため、仮に条件以外の部分に含まれるコードに何らかの違反があったりした場合に困る」ということはない。そもそもの前提が違う。CSS はプログラミング言語ではない。コンパイルして静的なオブジェクトを生成する必要もない。勿論文法違反は問題になるが、環境さえあればデバッグはできる。無論、Windows 環境でゴニョゴニョしている人でなければこの理屈は通用しないのだが……。これ以上云々するのは野暮か。

2007-10-29

神田古本まつりに行ってきた

残念ながら、探していた本は見つからなかった。しかし、それ以外の副産物があまりにも素晴らしかったので、まあよかったかなと。以下、本日購入したブツのリスト。

『JAPAN UNDERGROUND』は、ひと昔前に話題となった日本の地下にある様々な施設を撮影した写真集。このシリーズが元ネタもとい元祖。アスペクトのブースがあったのでちょいと覗いてみたら……何と! 写真集は全部一冊1000円とか言ってるではないか! しかも目の前には『JAPAN UNDERGROUND』三部作。これは買いだろ! とばかりに購入。そしたら隣にいた女性も同じ三部作を注文していた。あらま。実はこの本、定価だと一冊4500円ぐらいする。それを三冊3000円ポッキリ。無茶苦茶だ。遅い時間だったのもいい塩梅だったようだ。各社、値下げ競争を繰り広げるこの時間が、二度目のチャンスタイムである(一度目はもちろん開始直後)。とんでもない値下げ品が大量出現するから。

唯一古本として買ったのは、『SF の時代 日本 SF の胎動と展望』。まあこのくらいしか目につかなかったのだからしょうがない。お値段525円とかなり安かった。

そして『上弦の月を喰べる獅子』。しかもこれ、早川ブースで入手しているので、いつもながらの著者サイン入り本。ワゴンには「上」しかなかったので、「下、あります?」と訊いてみたら在庫があった。じゃあ両方いただきましょうと購入。これもいい買い物だった。

『星新一 一〇〇一話をつくった人』は普通に三省堂で。なかなかの力作との評もあがっている代物。じっくり読ませてもらいましょう。

そしてやってきた『文學界 十一月号』。ここには円城塔の新作、『つぎの著者につづく』が掲載されているのだ。ざっと一読したが、ますます偏執的ともいえる言葉の羅列に磨きがかかっている。より読者を選ぶようになってしまう類の作品だ。これは「全て嘘」「全て本当」という二元論では絶対に割り切れない。登場する全ての事象に対して調査をする(もしくは知識を持っている)ことでもない限り、小説そのものの立ち位置が曖昧なままだ。

意外と散財せずに済んだため、夕食は「ボンディ」で野菜カレーをいただいた。カレーの味はコクがあっても無難、つまり日本人の味覚によく適合したマイルドな味わいで美味いといえるものだったが、店員がやけに無愛想というかやる気のない応対で、それが減点ポイント。実に惜しい。

2007-10-28

W3C、XMLHttpRequest オブジェクトの仕様をまとめた WD を発表

去る2007年10月26日、W3C は "The XMLHttpRequest Object" なる Working Draft を発表した。どうやら、UA 間で実装とインタフェイスに差異がある XMLHttpRequest の仕様を一旦まとめて標準化しようじゃないかという試みのようだ。因みにエディタは Opera の中の人。IE の ActiveX 経由呼び出しだけでも何とかしてもらいたい(こいつが元祖でもある)ものだが、実装されるとしても IE8 からかな……? Microsoft ガンガレ。超ガンガレ。

まだ読み込んでないため詳細はわかっていないが、謝辞にはなかなか興味深い記述があったりする。ちょっと訳出してみた。

最初は Windows Internet Explorer ブラウザによって広く展開された、XMLHttpRequest インタフェイスを最初に実装した Microsoft 社員に特に謝意を表します。

初期バージョンの Web Applications 1.0 document 仕様(現在は HTML 5 に改名された)を起草した WHATWG にも特に謝意を表します。

The XMLHttpRequest Object

前者はまあ当然っちゃ当然の話。後者は、HTML 5 仕様も色々と参考にしているということだろう。比較してないけど。

今日は雨。神田古本まつり には行けなかった。台風のバカヤロー! 明日は晴れるらしいので、多分いけそうだ。

2007-10-27

アクセシビリティ確保への広範な実用書 - 『Web アクセシビリティ』発刊

ついに『Web アクセシビリティ ~標準準拠でアクセシブルなサイトを構築/管理するための考え方と実践~』が発刊となった。本来であれば「アクセシブルであるべき」な Web 上にある数多のコンテンツは、実際のところ無知と無理解によって誰にとってもアクセシブルであるとは言い難い状況にあるといっていい。『Web アクセシビリティ』という書籍は、かなり広範な範囲にわたるアクセシビリティに関連した話題・ノウハウ・その他諸々を一冊に凝縮した代物である。

この『Web アクセシビリティ』、原著は英語であり、つまりは欧米圏での話題がベースになっている。しかし目次を読んでみると、かなり日本向けに新規で書き起こされたと思しき節が見うけられる。他にも、実際の Web サイト制作現場でよく用いられているツールにまつわる話題などがある。また、付録がかなり充実している感がある。かなりローカル色が出やすいスクリーンリーダにまつわるものや、JIS X 8341-3(「高齢者・障害者等配慮設計指針-情報通信における機器、ソフトウェア及びサービス-第三部: ウェブコンテンツ」)の解説など、まあ要は「盛り沢山」という塩梅。

個人的に、アクセシビリティについてはあまり突っこんだことはしていなかったという反省点もあるわけで……。ともかく購入することにした。

書籍という、ひとつの形としてまとまりを得たものは、インターネットというインフラに点在する集合知とはまた別の利便性がある。つまりは私のような不精者や、時間のない人にとってはとってもありがたい形態なのだ。特にそれが綺麗なまとまりを見せる良書である場合は。

2007-10-26

RMS がやってくる! 専修大学でリチャード M. ストールマン氏の特別講演会

ネタとしては少々古いが、是非行ってきたいと思っている講演なのでメモ。つか、来週の月曜じゃないか。うぁ……どうしよう。午前中だし。しかも通訳ナシか。根性入れて聞き取れば何とかなるかしらん。

RMS の思想は一貫して単純だ。「ソフトウェアは自由でなければならない」。その体現が GNU Emacs や GCC に代表される自由ソフトウェアであり、その手段が GNU GPL による著作権法を逆手にとった法的束縛である。彼一人では成しえなかったことだが、彼がすべての初まりであることは紛れもない事実である。また、その努力によって数多の素晴らしいソフトウェアが誰でも「自由に」ソースコードを読み、書き、公開し、お金を稼ぐことができる権利を保証されたのである。

その彼が日本に来ている。そして、講演をしてくれる。動向的に、今自由ソフトウェアでは一番ホットな話題がネタになるだろう。GNU GPL Version 3邦訳もある)のことだ。

……まあ、結局のところ、私が単純に St IGNUcius の信徒であるっていうだけの話なんだが :-P

2007-10-24

もう少しで「神保町古本まつり」!

ふふ。待ちに待ったこの時期がきましたよ。去年は何だかんだで行けなかった大イベントの時期が。日程詳細を読むと、金曜は流石に無理だが、土日なら何とかなる。むしろ何とかする。何がなんでも。

というのも、欲しい本があるからだ。もしかしたら古本まつりには出品されるかもしれないという情報を某古本屋の店員さんから聞き及んだ。……裏を返せば、そんな時ぐらいしかお目にかかれないぐらい数が出回っていないらしい。何とは書かない。とりあえず。

この感覚は、夏と冬の祭典に限りなく近い。そういえばそろそろ冬のカタログも予約の季節。思えばもう10月も終りに近い。あっという間に過ぎ去っていくなぁ。

今日の読書:『トリプルプレイ助悪郎』(西尾維新 講談社 NOVELS)

薄いくせにけっこう値が張るのがノベルス。仕方ない。だが内容は非常によろしい。オチの安易さ(めくるめく流転の世界!)は逆にその意味が浮き彫りにされ、読者にやさしい注釈まで添えて補強されている。こうまで綺麗にまとめられると脱帽するしかない。まいりました。エンタテインメントとして、とても完成度が高いことは認めなければならない。

あまり色々書くとネタばれになるのでこのくらいで。最近は着実に積読を消化しているのて実に気分がいい。

2007-10-23

フォームまわりの CSS 話

ADP の「フォームにCSS 2007」(と、関連エントリ並びに「検索フォームにCSS」)という記事が、ある程度ではあるがきちんと「問題提起・詳細情報・解決策」をまとめているのが素晴らしい。私は自サイトでフォームまわりのスタイルをまともに実装したことがなかったので、こういう事前情報があると非常に有用だ。

よく考えると、確かに form 関連の要素は、table 関連要素と同等、いやそれ以上に特殊だ。異質、といってもいいかもしれない。UA レベルではなく、ウインドウシステムレベルの独自スタイルを組み込んでしまう場合もある(Windows 然り、Mac OS 然り、GNU/Linux で利用可能な各種ウインドウマネージャ然り、その他 OS 諸々然り)。つまり、現状では全ての(比較的使用されている) UA で完璧を求められない。この現実は他の部分にも当然当てはまるのだが、それにしても根底となる定義の階層が、UA という枠組みを飛び出している。

確かに form 関連の要素やそのバリエーションは、元々ウインドウシステムが実装していたものを流用している感がある。こういった要素は「閲覧者の環境にあわせる」方が、慣れていたり理解しやすかったりという面で有効なのかもしれない。事実、「あれ、これって入力可能なフォーム部品だったの?」と思わされる体裁をとっているページも少なくない(私自身の経験から)。ウインドウシステムレベルのデザインだと、サイトのデザインラインから浮き上がってしまう場面も多々あるが、「あ、これ入力可能なんだ」と閲覧者に認識させるには手っ取り早い。

一方、そうであっても、「これは入力可能だ」と認識させられるデザインを考えることも可能だ。私は、根底の思想さえ同じなら、結構「連想」で何とかなる場面もあると考えている。form 関連要素もそのひとつだと思う。だからこそ、暫定的であっても、折衷案であっても――つまり、100% の実現は無理でも、80% の実現は――可能にする、できるだけクリーンなテクニックは必要だ。その意味で、先だって紹介した記事のノウハウは有用なのである。

そういえば、CSS Level 3 ではこの辺の話はどうなっているのだろう? 今度調べてみよう。

今日の読書:『さらば愛しき大久保町』(田中哲弥 ハヤカワ文庫 JA)

ようやく読んだよ「大久保町シリーズ」最終巻。相変わらず無茶苦茶な設定、人物、展開に大笑いしっぱなし。これは電車で読んではいけない。絶対。えらいぞ早川書房。こんな代物を復刊してくれるなんて。

何はともあれ、一読をお勧めしたい一冊。だが、どうせ読むなら「大久保町シリーズ」1作目、『大久保町の決闘』からの方がいいだろう。流れとして、また、大久保町の凄まじさを身をもって体感するために。

2007-10-21

Mozilla Firefox 2.0.0.8 Released

既出きわまりないが……一応。セキュリティアップデートなので導入必須。セキュリティアドバイザリが参考になるだろう。

眠い……睡眠とるか。

今日の読書:『進化の設計者』(林譲治 早川書房)

プロットがいささか散逸しすぎで、まとめがかなり強引である(伏線は回収できているが……)点が気になった一品。書いてある内容は濃密っていえばそうなるのだが、物語として読むとぐにゃぐにゃとした感じで何とも落ちつかない。所々にでてくる説明台詞が妙に浮き気味で、会話とかなりのズレを生んでしまっている。そう、うまく会話中に馴染ませようとして、逆に違和感を生んで失敗している感じ。ユビキタス云々も、ちょいとオチに説得力が足らない。登場人物があまりにも理路整然とした者ばかりなので、理想と現実のバランスが完全に喪失してる。

もう少し全体的な論理をまとめられれば、とてもよい代物になっただろうが、どうにも個々の関連性が希薄だ(それでも繋がっているだけ流石といえる)。せっかく知識と、それを文章としてアウトプットすることができるのだから、道具の使いかたをブラッシュアップしてほしい。そこそこ遠未来の話なら説得力もあるのだが、かなり近めの未来を扱っていることが敗因か。

これからに期待しようと思う。やろうとしていることは、面白いのだから。

2007-10-20

xyzzy の css+-mode、エンコーディング誤判定対策コード(一応)書き終わり

昨日の続き。エンコーディング誤判定の対策コードをとりあえず使えるレベルにした。そんなに長いコードではないので、とりあえず載せてみる。テストは殆どしていない点に注意。予め css+-modeautoload 済みと仮定。

;;; *auto-encoding-alist* に CSS ファイル用の判別を追加
(pushnew '("\\.css$" . css+-mode-encoding) *auto-encoding-alist* :test #'equal)
(setf ed::*css+-use-utf8n-encoding* t) ; UTF-8N を強制利用
(defvar *css+-default-encoding* '*encoding-utf8n*) ; デフォルト encoding

;;; *auto-encoding-alist* 用 encoding 自動評価
(defun css+-mode-encoding ()
  (save-excursion
    ;; @charset 規則は文書の先頭に書かなければならない
    ;; -> いかなる文字も先行しない
    ;; http://www.w3.org/TR/CSS21/syndata.html#q23
    (goto-char (point-min))
    (if (looking-at "@charset[ \t]+['\"]\\([0-9A-Za-z_\\-]+\\)")
        ;; @charset に書かれた文字コード MIME 名を直接利用
        (let ((encoding (gethash (match-string 1)
                                 *mime-charset-name-hash-table*)))
          ;; 未知の encoding ならデフォルト値を使用
          (unless encoding
            (setf encoding *css+-default-encoding*))
          ;; UTF-8N 強制変換
          (if (and ed::*css+-use-utf8n-encoding*
                   (eq encoding *encoding-utf8*))
              (setf encoding *encoding-utf8n*))
          encoding)
      ;; @charset がなければデフォルト値を使用
      *css+-default-encoding*)))

CSS ファイルの判別は、xyzzy (というより GNU Emacs)の慣例として拡張子を正規表現で判断させることで実現する。"\\.css$" がそれ。

(setf ed::*css+-use-utf8n-encoding* t) は、autoload で css+-mode を呼んでいる場合は必須。だって一度も autoload されなかった場合は css+-mode-encoding 内で利用している同変数が「未定義」と見做されてしまうから。デフォルト値が何であれ必要。

(defvar *css+-default-encoding* '*encoding-utf8n*) も必須。判定ができなかった場合にデフォルトで用いられる encode を指定する。nil を指定すれば xyzzy がデフォルトで使用する encode になる(はず)。css+-mode-encoding で利用している。'*encoding-utf8n* でなくてもよい。

css+-mode-encoding が、実際に encoding 識別値を返す関数。中でやっていることは次のとおり。

  1. @charset アットルールを読んで charset を判定
  2. charset は IANA のリスト に列挙されているものが用いられている(つまるところ文字コードの MIME 名)
  3. xyzzy には *mime-charset-name-hash-table* なるそのまんまかつ大変ありがたいハッシュテーブルがあるので、文字コード MIME 名 → encoding 識別値変換をかける
  4. 得られた encoding 識別値を使って「charset が xyzzy でサポートされているものでなければデフォルト使用」、「UTF-8N 強制使用ならそのように変更」を実現する
  5. 結果的に得られた encoding 識別値を返す

でもって最終的にはきちんと encoding 識別値を返し、うまいこと @charset ルールからファイルのエンコーディングを判定することができる。

だが、勿論 @charset と実際に用いられているエンコーディングが異なる場合は保証されない。また、@charset がない場合も同様(基本的に省略しないほうがよい)。

さーて。あとは css+-mode の中身そのものだが……時間がなぁ。

2007-10-18

xyzzy の css+-mode でエンコーディングの誤判定が頻発するんで対応コードを書いてた(まだ未ブラッシュアップ)

css+-mode [1]が UTF-8N なファイルを Shift_JIS だと間違えやがるため、コメントが化ける化ける。C-u C-x C-ffind-file して encoding を明示的に渡して対応していたが、それも面倒でたまらなくなったので何かいいテはないかと調べていた。

そんな時に見つけたのが *auto-encoding-alist*。xyzzy Reference には次のような記述があった。

エンコーディング判定用の連想リストです。(key . datum) の組で登録します。

find-file または find-file-read-only の際に ENCODING が指定されず、*find-file-no-auto-encoding*nil の時、(string-matchp key filename)non-nil となった場合、datumfuncall します。

datum にはエンコーディングもしくはエンコーディングを表す文字列を返す関数を指定します。

xyzzy Reference

少しいいかえてみよう。*auto-encoding-alist* は、find-file-auto-encoding の実行時に dolist される。find-file-auto-encodingfind-file の評価時に内部的に実行される関数である。

このとき、find-file によって開こうとしているファイルのファイル名 filename が、*auto-encoding-alist* に格納されている各リストアイテムの key を正規表現とみなし、string-matchp によって大文字小文字を区別しないマッチが行なわれる。マッチに成功した場合、datumfuncall されて関数の呼び出しとして評価される。

datumfuncall される時、既にファイルはバッファに開かれ、goto-char などが利用できる状態になっている。datum の中身を書く者は、ひとまずこれからバッファに本当に開こうとしているファイルを実際に先読みして、何らかのヒントを得ることができる。

datum の評価値は、例えば "UTF-8" のように *character-set-alist**mime-charset-name-hash-table* などに格納されているような MIME 文字列か、*encoding-utf8* のように *char-encoding-list* などに格納されているような encoding 識別値でなければならない。煎じ詰めれば、xyzzy が get-hash を用いて *mime-charset-name-hash-table* から encoding 識別値に連想参照させられる文字列か、 encoding 識別値そのものかであればよい。

これはまったくもって便利きわまりない連想リストだ。試しに site-lisp 内に grep をかけてみたが、*auto-encoding-alist* を使っている拡張 Lisp はひとつもなかった。ユーザ側でどうにかしろ、ってことなのだろうか。実際そうしているのだが。

で、css+-mode で実際にどうやって使ったのかについてはまた明日にでも。

脚註

  1. 2007年10月17日現在、原作者のサイトにはアーカイブの実体が存在しなくなっている。とりあえず私の環境にある css+-mode.l を置いておく。微妙に手を加えているのでオリジナルとは若干ながら異なる。

2007-10-17

Netscape Navigator 9 Released - その有用性は Firefox との同時起動時に発揮される……かも

思いっきり乗りおくれたわけなんだが。とりあえず XP にインスコして使ってみた。まあぶっちゃけ Fx のカスタム版に限りなく近い。そして、設定のインポートが結構よくできている。すごく簡単かつシームレスに Fx の設定を移行させることができた。そして、デフォルトのテーマが駄目げなのでとりあえず rein 2.0.0.7 をぶち込み、インタフェイスを自分好み(Fx と同じ)に整理してみたら……ぱっと見ほとんど同じ感じになりましたとさ。Fx と異なる部分の詳細はえむもじらの記事にあるリンク先参照ってことで。

さてここで表題の話。つまるところ、Fx と NN9 は同時に起動させることができる。プロファイルも当然違う。だから、例えば NN には Firebug などのデベロッパ向け拡張をわんさか入れておき、Fx にはブラウジングに必要な拡張だけ入れておいて使いわけるといったことが簡単にできる。NN の方が新しい Gecko を使っているとはいえ、ブランチそのものは 1.8 系。そう大したレンダリングの違いなぞないと思っていいだろう(あったとしてもマイナーな部類?)。Fx のプロファイル分離だけではこうはいかない。

とはいうものの、Fx だけでも同時起動を実現する方法はあるのだ。えむもじらの記事朝顔日記の記事続編あり)に詳細がある。オチがついちゃったな……。

2007-10-17

最近 VL ゴシックフォントファミリの更新が頻繁で嬉しい悲鳴

いつもの M+ 部 CVS HEAD 反映とグリフ更新。最近は素晴らしい頻度である。何度もフォントを入れ直すのは面倒であることには違いないが、逆にここまで頻繁だと清々しいぐらいだ。

さて、寝るか。

2007-10-16

換気扇にしてやられた休日

換気扇にかけていた油よけカバーが突如回転中のファンにからまってどえらいことに。幸いファンが故障することはなかったが、とうとうカバーを買い替える時がやってきたようだ。ということで油でベトベトの枠掃除含め、何だかんだで掃除ばかりしなければならない日になった。幸いだったのはファンについた油汚れが微細であったことか。洗剤を染み込ませたペーパータオルで拭うぐらいで済んだ。

新しい油よけカバーを取りつけてすべての工程が完了。これでまた油ものを調理できるようになった。ついでにコンロまわりの掃除もやって、気分一新。だいぶ汚れていたが、何とかなった。これで G も出没しにくくなるだろう。いや、今の住み家にきてから二度ぐらいしか見ていないが。かなり大量の殺 G 餌を仕掛けているし、なるべく水を溜めおかないようにしているのもある。床の掃除もそれなりにしているし。

この休みの間はとにかく睡眠をよく取った。合計するととんでもない時間になったので……明記はしない。

今日の読書:『不気味で素朴な囲われた世界』(西尾維新 講談社 NOVELS)

久々に出た……というより、『刀語』シリーズやってんのに別作品出せるというのがまた生産性高すぎというか何というか。モノとしては『きみとぼくの壊れた世界』と同じ世界にある。シリーズ化とでもいうのだろうか? それにしても、事件の発生とその顛末、最終的なオチも含めていい具合に「西尾維新らしーや」といえる代物。無邪気でもなく無為でもない。そこには確かに現実――いや、もっと広い何か――に囲われた、一人の中学生がいるだけ。この作品からモラルを批判するのは馬鹿な話であり、そもそも意図ですらなく、そうしてもらうこと自体はぶっちゃけ蔑まれてもいい。考えるだけ無駄だ。

2007-10-14

思考のみによるデバイス操作技術の実験に成功したらしい

慶應義塾大学が発表した。GIGAZINE 経由。頭皮への電極接触はあるものの、インプラント(埋め込み)ではない汎用性が高いタイプの技術らしい。同様の話題は過去にも多々紹介されている[1]ためそれほど目新しいものではないが、日本の研究機関なり会社なりが実験に成功したというものはなかったように思う。その意味でも、また用いている機器が既製品だけらしいという点でも有意義だといえる。

私のような無精な輩にとって、こういうインタフェイスがより汎用的になってくれることは非常にありがたい。まだ SF の話でしかない情報の「概念伝達」ができるようになる日はいつくるのだろう。せめて死ぬ前にはどうにかなってほしいのだが……。

キーボードを叩くのは好きなんだけれどもね。マウス操作は大嫌いだけど。

今日の読書:『一兆年の宴』(ブライアン・W・オールディス、デイヴィッド・ウィングローヴ 東京創元社)

かの古典、『一億年の宴』(ブライアン・W・オールディス 東京創元社)の正統なる続編である。本来『一兆年の宴』は『一億年の宴』に対する膨大な加筆と既存テキストの修正がおこなわれたものという位置づけであった。しかし日本では加筆部分のみが別に刊行されたのである。

かなり広範な話題を一気に詰め込んだ代物だが、読むぶんにはとてもスラスラといける。それは批評の部分にきちんと毒が盛り込まれており、読者を飽きさせないためだ。研究書としても、読みものとしてもいい塩梅に仕上がった逸品である。

明日は……『進化の設計者』(林譲治 早川書房)でも読むか。

2007-10-11

xyzzy で「もちっとシンプルな正規表現にしてください」なんてエラー吐かれたのは初めてだ……

xyzzygresreg で、ちょいと title 要素の位置を変えようと正規表現をゴリゴリと書き、実行してみたら何と「もちっとシンプルな正規表現にしてください」なるエラーが出た。こんなの初めて見た。ちなみにバッファ内で通常の置換をやる分にはエラーを吐かない。つまり、やろうと思えば実行そのものはできる正規表現なのだ。次に示したのは、実際に書いた正規表現である。

\(<meta[^\n]+\n\)\( +<link\(?:.|\n\)+\)\( +<title>[^\n]+\n\)

まず title 要素が出現するまでマッチを行なう。その途中で meta 要素の直後に出現するような link 要素を見つけておく。置換文字列として \1\3\2 を与えることで、meta 要素と link 要素の間に title 要素を(含む行を改行文字ごと)移動させる。

恐らく、xyzzy が引っ掛かったのは \( +<link\(?:.\|\n\)+\) と書いた部分(\2 後方参照する)だ。後方参照なしグループ化括弧内で行なっている「選択(\|)」がマズそうな気配である。

仕方ないので別の方法で何とかすることにした。まっ先に思いついたのは、後方参照なしグループ化の部分を \2 グループ化部分から抜き出し、選択の使用をやめさせてみることだった。すると、次のような正規表現を書くことができた。

\(<meta[^\n]+\n\)\( +<link[^\n]+\n\)\(\(?:.+\n\)+\)\( +<title>[^\n]+\n\)

\3 に相当するグループ化部分で、選択を行わずに複数行マッチを行わせている。グループ化している部分がひとつ増えてしまったが、これはさしたる問題ではない。同じ意図を持たせるなら、置換文字列は \1\4\2\3 とすればよいのである。

結果、動作そのものはかなり緩慢な印象をうけたものの、きちんと gresreg を通し、意図した挙動を示させることができた。やれやれだ。

まあ正規表現は下手すれば無量大数に匹敵するほどの莫大な計算量を要求するようなものすら書けてしまう超強力なツールである。ある程度の「意図した性能悪化」は当然だろう。

本当は「iPod Touch + Windows Mobile 端末 + ZEROProxy = 定額プランで快適な iPod Touch Safari ブラウジングライフ!」の wktk 具合だとか、「一行で IE の JavaScript を高速化する方法」がなかなか面白かった話だとかを書こうと思っていたのに、思わぬ形でネタが飛び出してきてしまった。まあいいや。いい頭の体操になったから。

今日の読書:『たったひとつの冴えたやりかた』(ジェイムズ・ティプトリー・ジュニア ハヤカワ文庫 SF)

表題作を読みたい気分になったため。久しぶりに書棚から引っぱり出してきた。

年とると涙脆くなるって本当かしらん。あまりにもあざといとわかっているのに、しかし……。

ちなみにこの本、表紙のイラストが少女漫画家(川原由美子)によるもの。レジにもっていくのを恥ずかしがるシャイな奴は……まだいるか。多分。どこぞの早川さんみたいに。しかし内容の素晴らしさは折り紙つきである。迷うべからず。一度買っちまえば、あとは早いさ。

2007-10-10

あれ、おかしいな……夕方だよ?

気がついたら夕方になってた。……ということで今日は何もしていない。そんな時もあるさね。

とりあえず、今週分の白米をこれでもかと11合分炊きあげて晩飯喰って。あ、そろそろ DVD 借りにいかなきゃ。明日でいいか。

今日の読書:『キノの旅 XI』(時雨沢恵一 電撃文庫)

いつの間にか出てた。相変わらずチクチクと精神を刺激してくれる話ばかりだ。とりわけ目立ったのは、テロリズムに関する話。ひと昔まえの戦争というほど大規模ではないが、しかし武力による衝突であることに変わりはない、複数勢力の衝突。そんな、日本人という民族にとっては一度自覚を伴うに至った情勢は、現在世界を席巻し、混乱を生んでいる[1]

キノはどのような場でも、自分を最優先に考える。故に、事象を客観視しなければ生き延びることができない。だが忘れてはならないのは、キノの立ち位置は決して客観ではなく、むしろ主体である場合が多いという点にある。すると、ある種の読者は感情移入によってキノと同化してしまい、結果として客観を偽装した主観でしか物語を追えなくなる。逆にそれに気づいているならば、自分の視点は欺瞞であることにも思い至り、ある意味安心して物語を楽しめるようになる。要は「メタ」を理解しているかどうかの違いである。

それにしても、巻を重ねるごとにキノのイラストデザインは中性的なものから女性的なものへと変化しているな……。時間経過とは全く無縁である物語構成である以上、成長も成熟もある一定範囲内に収まるはずだが。

脚註

  1. しかし現在、どれだけの人がテロリズムを身近に感じているのだろうか? 地下鉄の記憶はもはや薄れている。昨今話題のジャーナリスト死亡にまつわる話も、どこか別世界のように感じている(軍部との衝突という時点で思想的には旧世紀のそれにあたる?)人も多いような感がある。そして、当たり前のように死者を英雄視しようとするマスメディア。その戦略は既にまったく効力を失くしていることに気付いていない。英雄の創造は、マスメディアという媒体からは生まれない。現在最も有力な媒体はネットワークであり、自らの思考をたれ流すのに便利なインフラである。群れることを嫌いながらも、結果的には群れていないと安心せず、ひとつの「総意」があるという誤解を伝搬させる。いくら誰かが「総意などない!」と言ったところで、結局はひとつの結論に落ちついてしまう……。

2007-10-08

『一兆年の宴』獲得!

いやー、今日は素晴しい買い物をした。既に『一億年の宴』は所持していたのだが、ここにきていきなり眼前に『一兆年の宴』(ブライアン・W・オールディス/デイヴィッド・ウィングローヴ 東京創元社)が現れたのだから。勿論即購入ですよ。お値段も手頃だったし。だって、出版当時の定価とほぼ同じ(約3000円)なのだ。版元品切れで絶対数もさほど多くないといわれているようだし、何より今まで古書店に並べられているのを見たことがない。まさしく私にとっては大事件。ありがとう羊頭書房

他には、新刊をいくつか購入。収穫の多い神保町巡りだった。

その見返りとして、生活費(特に食費)を大分削っているのだが……ま、いいか。死なない程度にしておけば。野菜と米と、適度のタンパク質さえとっておけば。いいダイエットにもなるし。

今日の読書:『ばいばい、アース I 理由ことわりの少女』(冲方丁 角川文庫)

文庫化されていたので。まだ読んだことがなかったのもある。まだ物語自体は序盤も序盤、ようやく盛り上がってきたところで「続く」になってしまった。まあいつぞやのマルドゥックよろしく4ヶ月連続刊行らしいので、あっという間に続きを読める日がやってくる。しかも今回は既刊の文庫化である。関係者の苦労は比較的軽微なはずだ。待てないなら単行本買えばいいし。

内容は……まあ相変わらずな感じ。ただ、我々現行人類からしてみれば明らかに亜人類というべき動物的特徴を具えた様々な種族が登場する。いってみればファンタジー。その中で唯一、牙も毛皮も鱗もない "のっぺらぼう" の彼女ことラブラック=ベル(つまり我々に等しい)の物語。

ぶっちゃけた話、話の骨子そのものは結構どこにでもありがちなものだが、それを取り巻く環境や設定にオリジナリティをある程度持たせることで、読者に安心感と刺激を供給しているのではないかなと。そりゃそうか。いきなり『Self-Reference ENGINE』みたいなブッ飛んだ代物では、若年層がついてこない。

今週末は本をたくさん読める時間があって、いい感じだ。このペースで積読を崩していこう。

2007-10-07

IPA フォントがついに単独配布可能なライセンスに変更

字形に多少クセがあるものの、対応文字数も多く、種類も serif、sans-serif、monospace、UI 用 sans-serif と MS フォントファミリ並に豊富な IPA フォントが、ついにフォントのみの配布・再配布が可能なライセンスに変更された。つまり、「一般利用者向け IPA フォント使用許諾契約書」(PDF ファイル)の内容に従う限り、フォントデータのみをデータ保持者が直接再配布可能になったのだ。OSS iPedia の専用ページからダウンロードして利用可能である。

残念ながらまだフォントグリフなどの変更は認められていないが、それを可能にするライセンスの作成を検討している旨がプレスリリースに記載されているため、例えば VL ゴシックフォントファミリとの合成が可能になる日も訪れる可能性も出てきた。実に素晴しいことだ。

日本語フォントは、高品質かつ文字数の豊富なものを利用したい場合、従来ならばプロプライエタリな独占ソフトウェアとしてのフォントしか選択肢がなかったらしい。少なくとも、私は JIS X 0213 : 2004 で追加されたような文字をもサポートしている、比較的自由なライセンスのフォントを知らない。せいぜいが JIS X 0208 どまりである。それでもフォントいじりを職としない人間にとっての常用には問題なかった。

IPA フォントはその豊富な文字数と金銭交換のいらないライセンスが魅力であったが、しかし配布・再配布には別ソフトウェアの同梱が義務づけられており、使い勝手を悪くしていた。フォントだけを利用したいのに、わざわざ何十 MB もあるようなアーカイブをダウンロードし、その大半を占める同梱ソフトウェアはまず使わない。とりあえず同梱ソフトは、それを利用しない人間にとってはハードディスクの肥やしにしかならない。

今回の変更で、少しだけだが IPA フォントは自由なソフトウェアへと続く道を進みはじめた。だがゴールには至っていない。これからの行く末が楽しみである。

2007-10-02