EJBのことをさんざんけなしている私だが、徹底的に間違っているとは思わない(Berkeley DBは徹底的に間違っている)。気持ちはわかるのだ。私自身、EJBと似たようなことをしている。
ビジュアルノベルのように、シナリオに沿って進行するタイプのゲームでは、状態管理が問題になる。どういう問題か、以下に一例を示そう。
シナリオAの最後で選択肢が登場して、BとCに分岐し、さらにBの終わりではCに飛ぶものとする。つまり、シナリオの流れは以下の2パターンがある。
・A→B→C
・A→C
さて、シナリオCはどちらの流れでも同じ内容なのだから、同じ状態を表現しなければならない。状態とは、画面表示やBGMなどだ。
シナリオデータを作成する際は、基本的に、状態の変化を記述してゆく。「背景を××に変える」「BGMを××にする」という具合だ。すべての地点の状態を、シナリオデータに書き込んでゆくことはできない。そんなことをしたら、シナリオデータは以下のようになってしまうだろう。
----------------------------------------------------------------------------
[背景は××][BGMは××][立ち絵のキャラはS][Sの服装は××][Sの表情は××]
さて、これは。
----------------------------------------------------------------------------
[背景は××][BGMは××][立ち絵のキャラはS][Sの服装は××][Sの表情は××]
さて、これは。
いったいどういうことなのか?
----------------------------------------------------------------------------
[背景は××][BGMは××][立ち絵のキャラはS][Sの服装は××][Sの表情は○○]
私は考えた。
----------------------------------------------------------------------------
[背景は××][BGMは××][立ち絵のキャラはS][Sの服装は××][Sの表情は○○]
私は考えた。
こんなデータを人間が作れるのか?
----------------------------------------------------------------------------
変化だけを記せば、以下のように自然な記述になる。
[背景は××][BGMは××][立ち絵のキャラはS][Sの服装は××][Sの表情は××]
さて、これは。■
いったいどういうことなのか?■
[改ページ]
[Sの表情は○○]
私は考えた。■
こんなデータを人間が作れるのか?■
実際問題として、シナリオデータは変化だけを記すしかない。
変化だけを記していく場合、シナリオデータがある地点で表現する状態は、その直前の状態に影響される。上の例でいえば、最初の行で指定された状態が、最後まで影響している。もし最初の行で、[背景は○○]と指定されていれば、最後まで背景は○○のままだ。
全シナリオが最初から最後まで一本道につながっているのなら、これは問題にならない。だが、「A→B→C」と「A→C」の2パターンの流れを記述した場合、シナリオCの開始時点では、その直前の状態は2種類あることになる。
さて、ここで大きな問題にぶちあたる。2つの考え方があるのだ。
逐次的:シナリオCが、その開始直前の状態に影響されることを認め、シナリオCが2種類の状態を表現することを許す
宣言的:開始直前の状態からの影響を排除し、シナリオCが表現する状態は常に1種類であると定める
前者は、シナリオデータをプログラムとみなすものといえる。プログラムなら、たとえばループ内のループ変数のように、同じ地点が複数の状態を表現する。
この方式は、プログラマには、自明のことに見える。私の知るかぎり、既存のビジュアルノベルフレームワークはすべてこの方式である。利点は、後者にくらべて表現力が高いことだ。たとえば、同じシナリオに違う背景をあてたい場合、逐次的データなら簡単に書ける。宣言的データでは、使いたい背景の数だけシナリオデータを作るしかない。
だが現実には、逐次的データの表現力が生かされることはめったになく、害ばかりがある。害、すなわち、状態管理のトラブルだ。現実には、シナリオCに2種類の状態を表現させることはまずない。あるのは、意図せず間違って表現させてしまった場合、つまり、バグだ。
宣言的にやる場合、開始直前の状態からの影響を排除するといっても、具体的にはシナリオデータにはどう書くのか。
シナリオの開始地点となる場所で、[背景は××][BGMは××][立ち絵のキャラはS][Sの服装は××][Sの表情は××]という具合に、すべての状態を指定させるのか。だがこれは、最初に示した冗長な例ほどではないにしても、面倒くさすぎて現実的ではない。
そこで私は考えた。
A・B・Cとシナリオが並んでいるとき、再生順を無視してA→B→Cと頭から順に読んでゆけば、すべての地点で状態が一意に定まる。こうして得られた状態を、シナリオの流れがA→Cとなったときにも保つ。つまり、状態の変化だけが記してあるシナリオデータを、最初に示した冗長な例のようなデータへと変換して、これを再生する。(もちろん現実にはこんな馬鹿正直な実装ではなく、もっと効率のよい方法を採っている)
おわかりだろうか。EJBではリソースやトランザクションをコンテナが管理するように、宣言的データでは状態をフレームワークが管理するわけだ。
宣言的データはバグを減らすが、代償は小さくない。まず、管理下に置く状態を、かなり面倒なやりかたで宣言しなければならない。一時変数のようにアドホックに追加することはできない。一般にプログラマは万能チューリング機械に慣れており、有限状態機械は不自然で不便に見える。また現実には、管理されない状態も必要になる。いわゆる「フラグ」だ。すべての状態を宣言的に扱えるわけではないので、バグの可能性は常に残る。
(C言語のincludeマクロのような表現と相対ジャンプを駆使すれば、フラグを管理下に置くことも可能だが、このような実装はまだ試していないので、その当否については保留する)
シナリオデータ作成者は、考えること(状態管理)が減るかわりに、フレームワークを理解するための手間が増える。フレームワークを管理するのも、逐次的データのほうが楽だ。
というわけで、宣言的データはまったくもって、EJBのコンテナ管理そっくりの様相を呈している。
ソフトウェアはよどんでいる。コンテナ管理的なものへの試みや、有限状態機械の積極的な利用、つまり万能チューリング機械への挑戦は、どこにあるのだろう。私はEJBをけなすが、それはEJBがこうした問題に挑んでいるからだ。EJBの解答はろくでもないが、もし問題がくだらなければ、解答をけなすのは時間の無駄だ。
アラビア数字が算数を簡単にしたように、なにか物事をまとめて簡単にする方法があるはずだと、私は信じている。EJBは問題をあまりにも狭い範囲に限定してしまったが、もっと広い範囲の問題を、もっと一般的に解けるはずだと、私は信じている。
もし本当によい解答が見つかれば、それはソフトウェア産業の全面を変えるかもしれない。なにしろ、エロゲーでさえ、そうした解答を求めているのだ。
このドラマCDに関して私は利益供与を受けた、つまり現物をもらったので、褒めておく。
格闘まんがをドラマCDにするという構想自体に無理があるので、そこは期待してはいけないが、ドラマCDオリジナルの第5話は面白い。
このドラマCDが売れると、原作者の高遠るい氏が喜ぶので、氏を喜ばせたいかたは、ぜひお買い上げください。喜多村英梨ファンの皆様にもお勧めします。
褒めるはずなのに、ぜんぜん褒めていない気がするが、あまり気にしないでほしい。7andy
悪魔的なまでに有能で無思想な青年が、ヨーロッパを滅ぼし、人の住まない荒野に変える話である。
と、あらすじを書くと面白そうだが、実際に読むとそれほどでもない。なんといっても、抽象化のレベルがおかしい。主人公がヨーロッパを滅ぼす動機からして、「典型的なヨーロッパ人はヨーロッパの自殺を願っており、それが彼のなかに体現された」というのだから、ふるわない。
滅びの過程にしても、陰謀論的な図式が鼻につく。ひとつの組織、ひとりの人間が、巨大なものごとの一切を影から取り仕切る、という陰謀論的な図式には、なにかしら不健康なものがある。それよりは、主人公に神のような力を与えて、組織や陰謀など抜きにして気ままに振舞わせるほうがいい。チェスタトンいわく、『ありえないことは信じられるが、ありそうにないことは信じられない』。陰謀論的な図式は、たとえ駄ボラとしても、ありそうにないことだ。
今日の百合はいまだに多くの課題を抱えているが、少なくとも、吉屋信子の負の遺産と決別したことだけは確かだ。
はかなくて美しい真実ではなく、馬鹿馬鹿しくも愛すべき世迷い事を。真実の徒は背を向けるだろうが、私は人間のそばにいたい。
*
『私は、陸子さまをお慕い申し上げております』
『陸子さまを』
はじめは、言い間違いか、聞き間違いだと思った。
「――でも私は、陸子さまとともに歩むことはできません。あと2年もすれば、お側仕えを外れて、もう陸子さまのお顔を拝することもなくなるでしょう。無理にお側仕えを続けたり、……もっと別の形でお側に置かせていただいたり、そこまでしたいとは思いません。私はそんな重たい女にはなれません。
私は、もっと強くて、卑怯な女でありとうございます。――ひかるさまをさらっていって、陸子さまを悔しがらせるような」
この告白の、いったいどこが『人並みの口』なのかと問いただしたかった。
「……ひかるさまご自身のことも、大切に――とは言葉の綾でございますが、今日のようなことをしでかすくらいの気持ちはございます。
ひかるさま、私にさらわれてしまいませ。そうすれば、陸子さまが奪い返しにきてくださるかもしれませんでしょう?」
奪い返しにきてくれる――その空想は一瞬、美しい輝きを放った。
輝きに見とれる間もなく、すぐに打ち消す。あまりにも身勝手な空想だ。一瞬でも目を奪われたのが恥ずかしい。
「そうすれば、ひかるさまの求めておられる喜びを、陸子さまが与えてくださるでしょう?
喜びに逆らえない、ふしだらな女におなりませ、ひかるさま。その弱さで、陸子さまを誘い惑わし惹きつけて――ドラマを、陸子さまに捧げなさいませ」
美園はふたたび私の手をとり、かがんで、唇に近づけた。約束を忘れているのではなく、約束を破ろうとして。
Continue
EJBの最悪さを知らない人々は幸福である。幸福な人々には大変恐縮だが、暗澹たる事実のひとつをお知らせしよう。
EJBコンテナ内では、普通の方法でスレッドを作ってはいけない。
今度はEJB 3.0だそうだが、そもそも最初から作り直せと言いたい。MSの.NETがよくできている(後発だから当然だが)のを見るにつけ、「貧乏人はJavaをやれ」と言われている気分だ。
普通の方法でスレッドを作ってはいけないが、普通でない方法ならある。JCA 1.5で導入された javax.resource.spi.work.WorkManager
を使う方法だ。具体的にどんなコードになるのか、ちょっと調べれば出てくるだろう――しかしこの期待はあっさりと裏切られた。
この記事が典型例だ。WorkManagerインスタンスをJNDIで取ってくる、と書いてあるだけで、具体的にどこでどうやってインスタンスを生成し、JNDIにバインドするのかは書いていない。この問題について書いた記事は、どこをどう探しても、出てこない。そして、WorkManagerについて書いてある記事は、ひとつの例外もなく、どこか知らないところで生成・バインドされたインスタンスを取ってきているのだ。これらの記事を書いた連中は、実際に動くコードを自分の手元に持っていたのだろうか。どれかがオリジナルで、ほかの記事はオリジナルをコピペしたのではないだろうか。
私が書くのは記事ではなくソフトウェアなので、実際に動くコードが必要だ。JNDIで取ってくるのは正しい方法なのかもしれないが、私は違う方法をとった。
以下に実際のコードを示す。まず、Runnable相当のクラスから。
import javax.resource.spi.work.Work; public class MyWork implements Work { public void release() { System.out.println("MyWork#release"); } public void run() { System.out.println("MyWork#run"); } }
そしてEJB。
import java.util.Set; import javax.ejb.EJBException; import javax.ejb.SessionBean; import javax.management.Exception; import javax.management.MBeanServer; import javax.management.MBeanServerFactory; import javax.management.ObjectInstance; import javax.management.ObjectName; import javax.resource.spi.work.WorkManager; /** * @ejb.bean * name="My" * type="Stateless" * view-type="remote" * transaction-type="Bean" * @ejb.transaction type="Required" */ public abstract class MyBean implements SessionBean { /** * * @ejb.interface-method view-type="remote" * @throws EJBException */ public void calltest() throws EJBException { try { ObjectName name = new ObjectName("jboss.jca:service=WorkManager"); ObjectInstance wmo = mbserver.getObjectInstance(name); WorkManager wm = (WorkManager) mbserver.invoke(wmo.getObjectName(), "getInstance", new Object[] {}, new String[] {}); wm.scheduleWork(new MyWork()); System.out.println("MyWork scheduled"); } catch (Exception e) { e.printStackTrace(); } } }
これが私の結論だ。
ちなみに私はEJBのトランザクション管理をまったく使っていないので、ここからトランザクション管理をしようとすると、なにが起こるかわからない。あしからず。
MovableTypeを復旧させた。
日に30時間のハッキングという矛盾を乗り越え、今やすべては元通りである。
私の経験が特殊であってほしいが、おそらくこの祈りは空しい。Berkeley DBのバージョン違いによるトラブルは、これから数十年間、絶えることがないだろう。同じ罠にはまった人々のために、ここにメモを残しておく。
まず、このページを見る。事態の大枠がつかめるはずだ。これに書いてあるとおりで復旧できたら、それに越したことはない。
これに書いてあるとおりでは復旧できない場合(私がそうだった)、試す価値のある方法がある。
移行先のサーバではなく移行元のサーバ上でdb_dump185を使い、ダンプファイルを移行先にコピーして、ロードするのだ。
もし移行元のサーバにdb_dump185がなければ、コンパイルする。Berkeley DBのソースからdb_dump185.cを探し出し、サーバにアップロード、サーバのシェルからgcc -ldb db_dump185.cとやってa.outを作り、これを使う。
さらに私の場合、バックアップのファイルが論理的な不整合を起こしていて、もうひとつ地獄めぐりをさせられたが、これはあまり一般的な問題ではないので省略する。
このサイトを別サーバへと移したら、すさまじい混乱に襲われている。
ある本物のプログラマが、事あるごとにBerkeley DBを罵っていた。今日からは私もそうさせてもらおう。Berkeley DBは悲劇の根源であり、フリーであるがゆえに有害なソフトウェアの典型だ。
バージョンが上がるたびに後方互換性を失うストレージ。そんなものがこの世に存在しうるとは、このBerkeley DBに襲われるまで、まったく想像もしていなかった。コードでさえ20年も生きることがある。200年を生きるデータなど珍しくもないだろう。そのデータを支えるストレージに、後方互換性がない――まさにコペルニクス的転回だが、この場合は、ポルポト的転回といったほうが当たっているだろう。「共産主義は原始共産制であるべきだ。だから、文明を根絶しよう」というくらいの大胆な夢想であり、壮絶な犯罪である。
心あるプログラマなら避けて通るはずのこの犯罪に、誰かが加担して、DB_Fileという名前の一見無害そうなPerlモジュールができた。さらにこのDB_Fileをうっかり踏んだのがMovableTypeの開発者である。さらにそのMovableTypeをうっかり踏んだのが、間抜けピラミッドの底辺こと私であり、おかげてこの日記は10エントリほど吹っ飛んだうえに、いまだに再開のめども立たない。
H. G. ウェルズは偉大な作家だった。SFはいまもウェルズに大きく影響されている。
現在のSF作品がウェルズに似ている、という意味ではない。問題は、SFと縁遠い人々の頭のなかにある「SF」のイメージだ。それは現在でも圧倒的に、ウェルズだ。
ファンタジーに比べて、SFは売れないという。この現象の原因については、いろいろな説が唱えられているが、要するに、はっきりしない。この機に乗じて、私も新説を唱えたい。「人生の壮士的な面をウェルズが憎んだから」、という説を。
若き日の吉屋信子にも、ウェルズと同じ傾向がうかがえる。人生の壮士的な面への憎しみ。そして、敗北によって逆説的に自己を正当化する敗北主義。
戦前少女小説の百合で、こうした傾向を示す作品は、あまり見つからない。むしろ、吉屋に抗議するかのように、むやみなほど肯定的な作品が目立つ。だが、百合のイメージを変えるうえでは、無力だった。
*
私はくつろいでいた。
最初はなにかと言葉をかけていた美園も、次第に黙りがちになり、今ではただ私の身体や頭を撫でるだけになっている。
ときどき、その表情を盗み見る。穏やかで優しい。それを見て、考えさせられる。私にこんな格好をさせているから、こういう顔になっているのだろうか。拘束具を使うことには、前から興味があったと言っていた。ほかのことでは、こういう穏やかな顔にはなれないのだろうか。もしそうなら、美園のしたことには、同情の余地があるかもしれない。
同情の余地を探すまでもなく、私はもう半分くらい、美園を赦していた。約束はすべて守ってくれた。私が苦しくないよう、細やかに気を使ってくれた。
とはいえ、どんなに赦しても、もう二度と美園を家にあげたりしないだろう。
ぽつりと美園が言った。
「平石さんが公邸に入ったときに、保安部から説明を受けました。平石さんと陸子さまの関係について。
平石さんは、陸子さまの文通相手でございました」
文通と並行して、電子メールをやりとりするようになったこと。陛下がご両親のつてをたどって、協力してくれるイギリス人を見つけたこと。他人名義のパスポートの件は、緋沙子がひとりでやりとげたこと。私がすでに知っていることに混じって、初耳のことも聞こえてくる。
「陸子さまが平石さんのことを、どう思っておられるか――私は陸子さまではございませんので、私なりに推し量ったことを申し上げます。
ひかるさまは、陸子さまにとっては、いうなれば母親のようなかたでございます。ところが、平石さんが相手では、なかなかそういうわけにはまいりません。この違いを、どうかお忘れなく。陸子さまが、ひかるさまを愛するように平石さんを愛しておられるとは、お考えになりませんよう」
美園はそこで黙った。考えをまとめているらしかった。
「平石さんの育ちには、陸子さまのお育ちと似通ったところがございます。そのためでしょうか、陸子さまは、平石さんにご自分を重ねていらっしゃいます。それで平石さんを愛しておられるのですが――同じくらい、憎んでおられるのだと思います。
憎む、というと、おだやかならぬことのように聞こえますけれど――可愛さあまって憎さ百倍、とでも申せましょうか。
陸子さまは感情表現の素直なかたです。ご自分の感情がどんなものかをよくご存じで、扱い方を心得ていらっしゃるのでしょう。けれど、こと愛情に限っては、どうも苦手になさっているようです。
……ひかるさまを相手になさるときだけは、素晴らしくお上手ですが――だから私は、ひかるさまは陸子さまと歩まれるべきだと申し上げたのです。ひかるさまはご存じないでしょうが、陸子さまは、誰にでもああではございません。ことに、平石さんがお相手のときは」
その説明は、私が見てきたことに、よくあてはまった。緋沙子のことを話すときの冷酷な態度は、緋沙子への愛憎が不器用に表れたものだ。
美園はしばらく、先を続けずに、私の頭を撫でていた。
「――ですから、陸子さまは平石さんの前で、いつも苦しんでおられます。
ひかるさまは、そうした苦しみを、まるでご存じありません。
好きだから、大切にする、慈しむ――ひかるさまの世界は、それで済んでしまいます。陸子さまは、そうではございません。
陸子さまの苦しみをご存じないままで、陸子さまと平石さんの関係をご覧になれば――平石さんをかばって、陸子さまを責める、という次第になりましょう」
私は反論したかった。陛下が苦しんでおられるのは事実としても、だからといって、緋沙子をもてあそんでいいということにはならない。たとえ陛下に罪がなくても、緋沙子をかばう以外のことはできない。
「陸子さまと平石さんの関係が深ければ深いほど、陸子さまが悪者に見えてしまいます。ですので、関係の深さを思わせるような事実は、みな伏せてきました。ひかるさまには陸子さまと結ばれてほしいと、願っておりましたので。
……それももう、過ぎたことでございますが」
もし口枷がなければ、訊ねたかった。
緋沙子のことを、どう思っているのか。幼く、よるべのない身の上で、暮らしのすべてを陛下に頼っている。助けてあげたいという気持ちはないのか。
そんな私の思いを知らない美園は、私の両手を握った。
しばらく、指先や手のひらを撫でていた。やがて、身体をかがめて、唇を指先に近づける。約束違反だ。私は手をひっこめた。それだけで美園はすぐに気がつく。
「申し訳ございません。唇で触れないとの約束を、忘れておりました」
愛おしそうに、残念そうに、何度も指先を撫でさする。
ふとその手が止まった。
「――ひかるさまを、さらってゆくだの、……萌えるだのと、そんなことばかり申しておりましたけれど、……もっとふさわしい言葉で、私の気持ちを申し上げるべきかと存じます。
ひかるさま、私は――」
そこで言葉は止まり、かなり長い時間、そのままだった。
「……やはり、このままがよいでしょう。こんなときに人並みの口をきけば、言い訳がましく聞こえます。でも――」
また間を置く。
その優柔不断に、私はいらいらしてきた。ありきたりの愛の言葉をひとつやふたつ並べたところで、美園のしたことが覆い隠せるはずもない。
「ひかるさま――」
それでも、耳をそばだててしまう。
「……私は、陸子さまをお慕い申し上げております」
Continue
「人の痛みがわかる」という表現が流行りはじめたのは、いつからだろう。ここ数年のような気がする。
こういう表現はいったん慣用句になってしまうと、あまり深く意味を考えなくなってしまう。私もついこのあいだまでは、この表現に目くじらを立てることはなかった。が、今は、猛烈に腹立たしい。
先週の金曜日から腹痛が続いている。入院中にはいろいろ辛い目にあったが、この痛みは、入院中のどの辛さにも劣らない。この日記を書いているいまも、痛みが続いている。おかげで痛みを、過去の記憶としてではなく、現在進行形で把握できる。
現在進行形の痛みは、わかるものではない。襲われるものであり、耐えるものだ。「人の痛みがわかる」などという表現を使う輩は、なにひとつわかっていない。
戦中から晩年にかけて書かれた評論を集めた本である。権力や全体主義を扱ったものが多い。
権力や全体主義について書くとき、どんなアプローチをとればいいだろうか。オーウェルは、人間の弱さから入った。
貨幣は鋳造された自由である。だから、自由のない人間ほど貨幣を有難がる――ドストエフスキーの言葉だ。貨幣が自由をくれるように、権力は強さをくれる、だから弱い人間ほど権力を有難がる――オーウェルのアプローチを私なりに要約すると、こうなる。
このアプローチは、言うは易く行なうは難しだ。他人の強さは嫌でも目に付くが、弱さを感じ取るのは難しい。他人の弱さを感じ取るには、それと同じ弱さを、自分のなかに見出さなければならない。自分の弱さは、認めるだけでも辛いのに、見出すとなると絶望的に苦しい。だがオーウェルにはそれができたのだろう。
本書のどの一編をとっても全人類に読ませたい傑作だが、特に、晩年のトルストイを批判した評論は、神業だ。頭の痛くなるようなたわごとから、トルストイの弱さを探り当てて、鮮やかに描き出す。人間に対する興味と尊敬と同情が詰まっている。
松本清張の最高傑作は『点と線』ではない。あれはただ歴史のいたずらで有名になっただけで、最高傑作どころか最低駄作だ。同様に、オーウェルの最高傑作も『1984年』ではない。あれはソルジェニーツィンなみにくだらない。よい本を求める全人類に、本書を勧める。
ジョージ・オーウェルがH. G. ウェルズを批判したエッセイがある。
ウェルズはヒトラーの指導力をみくびっている。それは知識や観察が間違っているからではなく、彼自身の性格のためだ。ウェルズは、「祖国」や「名誉」のような算盤にあわない情熱を憎んでおり、理性の優位を信じている。情熱に突き動かされる世界は屑であり、理性の支配する世界こそ素晴らしいと信じている。そのため、ヒトラーがふりまく邪悪な熱狂の力を過小評価している――大要このような論旨である。
オーウェルはこのエッセイのなかで、ウェルズが憎むものを、一言で表現している。「人生の壮士的な面」、と。
*
四つん這いで歩かされるのは、思ったほど辛くはなかった。
「この床は、さきほどお掃除したばかりでございます」
あとはなにも言わず、のそのそと歩く私に、後ろからついてくる。ただしその手には、私の首輪の綱が握られている。
トイレにたどりつくと、私の身体を抱え起こして、便座に座らせてくれた。手を伸ばせず、足も棒が邪魔なので、ひとりではなかなか起き上がれない。そして、さっきつけた条件のとおりに、トイレのドアを閉めて、私をひとりにしてくれる。
下腹部を被うものはないので脱ぐ必要もなく、そのまま用を足す。
用を足して――気づく。どうやって拭けばいいのだろう。
口枷の下からうなり声をあげて、呼ぶ。
「ご用はお済みでしょうか?」
私がうなずかないのを見て、微笑んだ。どうやら予想していたことらしかった。
「ひかるさまがお許しくだされば、私が拭いてさしあげます」
ほかにどうしようもなかった。
拭く手つきは、必要以上に丁寧でゆっくりしていた。目をつぶって耐える。
「枷を解いてさしあげるまでのあいだ、どのお部屋で過ごされますか? 寝室がよろしいでしょうか? ……では、居間がよろしいでしょうか?」
寝室では、今夜眠るときに、思い出してしまいそうで嫌だった。
「……居間でよろしゅうございますね。ひかるさまに寛いでいただけるよう、お部屋を整えてまいります。少々お待ちください」
すぐに戻ってきて、私を床に降ろし、首輪の綱をとる。
居間はカーテンが閉められ、毛布が敷かれていた。クッションもある。毛布の上に身体を丸めて横たえると、口枷が外された。
「お口に異状はございませんか?」
「ない」
「では、しばらくお預かりします」
美園は、口枷のボールに唇をつけて、息を吸った。一体なにをしているのか一瞬わからず――私の唾液を啜っているのだと気づいて、目を逸らす。自分の口を吸われているような気がした。
「ひかるさまの体液を求めない、とは約束いたしませんでした」
私はうなずいた。
寒くはございませんか? 眠たくはございませんか? 姿勢は? クッションの位置は? かゆいところは? 際限なく尋ねてきた。
「もういい。答えるの面倒」
「かしこまりました。こちらを、どうぞ」
差し出されたボールを口にくわえると、沈黙が訪れた。
美園はすぐそばに正座して、コルセットやお尻に片手を、肩や頬にもう片方の手を置いている。ときどき、肌をなでる。指先がわずかに触れるくらいに。あるいは、肌の下にある骨や筋肉を探るように。
話し合いのときには美園は、私の肌にできるだけ広く触れることを望んだ。『胸に触れない』という条件はずいぶん不本意だったらしく、何度も蒸し返された。なのに、こんなにおずおずとした触れかたをされたのは、拍子抜けだった。
「……ひかるさま、」
耳に心地よい、穏やかな声だった。
「こんな真似をしでかしたあとで申し上げるのは卑怯と思いますが、……私にとっては、なにもかも初めてのことです。誰かに枷をはめるのも、……女の子と、肌を重ねるようなお付き合いをするのも。
私はひかるさまとちがって、女の子にもてたことなどございませんし、……陸子さまとちがって、興味を抱いたこともございません。……こういった道具を使うことには、興味だけはございましたが。
今日のことは、ずいぶんあれこれと考えてきました。もし事が計画どおりに運んだら、あれをしよう、これをしよう、……たくさん考えてきたのですけれど」
ため息の音がきこえる。
「いま、こうなってみると、さっぱり思い出せません。……しょせんは付け焼き刃なのでしょうか。
でも、こうして、ひかるさまを撫でているだけで、……幸せです。
……つまらないことをお耳に入れてしまいました。どうかお聞き捨てください」
しばらくすると今度は、私のあちこちを撫ではじめた。
拘束具のために閉じることのできない内股を撫でる。反射的に腰が逃げようとするのを見て、
「まるで猫でございますね。飼い猫をなでると、ちょうどこんな風に逃げようとすることがございます」
子供を褒めるように、頭を撫でる。
「そうやって素直になさっていると、お召し物がよくお似合いです。可愛らしゅう、……愛しゅうございます」
手のひらを指でなぞる。
「思い出しました。皮膚がふやけて白くなるまで、お指をしゃぶりたい、と考えていたのですが…… お許しいただけないようですね」
そのうち、撫でることから、私の身体を観察することへと、比重が移ってゆく。
下腹部を見つめながら、
「上の生え際がとても整って見えますが、なにかお手入れをなさっていますか? ……私のはもっと複雑なラインになっております。ご覧になりますか?」
足の裏をさすって、
「細いおみ足でございますね。輸入物の靴がよくお似合いでしょう。いつか、私を踏みつけてくださいませ」
見るべきところがなくなると、私の身体を起こして、背中から抱きしめた。胸に触れないよう、コルセットに覆われた腰に腕を回して。
お互いの頬が触れあう。
しばらくそのままでいてから、美園は、私の口枷を外した。
「お口に異状はございませんか?」
「……ない」
「では、お口が休まれたころにお返しいたします」
さっきと同じように、口枷に残った唾液を啜る。
それを見ても、もうあまり動揺はない。私はだんだん自分のペースを取り戻しつつあった。
「――陛下が何年も前から、平石さんを手助けなさっていた、っていう話はどうなったの?」
「解けてしまえば興ざめな謎でございます。お暇するときに申し上げます」
どうやら今日は、前置きが長すぎるほうらしい。
Continue
言うまでもなく、私は『ストロベリー・パニック!』を連載第1回から読んでいる。
ストパニは、連載開始時の設定では、主人公=読者=兄だった。その後正義が行われて是正されたが、このような致命的な過ちは、そう簡単に拭いきれるものではない。私はいまだにストパニを疑いの目で見ている。また、この過ちの責任者と思しき公野櫻子のことは、特に厳重に警戒している。
さて本書である。主人公=読者=兄を唱えたか、あるいは少なくとも容認した人物にふさわしく、イデオロギー上の問題が多々認められる。それらをいちいち糾弾してもいいのだが、読み返すのが辛いので、直接役に立つような教訓だけを以下に述べる。
・単純な攻(静馬、夜々)の心理描写は避けるべし
そもそも百合においては、単純な攻は、その存在自体が問題を孕む。
BLの受は、多かれ少なかれ、受であることを押し付けられる。最初から「私は受です」という自己認識をもって登場する受はほとんどいない。そのような受が主人公の話を想像してみてほしい。その話は、BLというよりは、ジェンダー問題の物語になるだろう。
では百合においては、攻であることを攻に押し付ければいいのか。ある意味ではそのとおりだが、受であることを押し付けるほど単純なものではない。
さらに、百合の受が受であることのなかにも、なんらかの押し付けの要素がある。もちろんこれはBLの攻も同様なのだが、基本的にBLは受の視点なので、避けて通りやすい。しかし百合ではこの問題は避けられない。
というわけで、百合においては単純な攻は不可能だ。やろうとすれば、『サフィズムの舷窓』の杏里のような突き抜けたバカになるしかない。それができないのなら、単純な攻の心理描写を避け、含みを持たせて逃げるのが一番いい。
・誘い受の使いやすさを重視すべし
百合では誘い受の使える幅が広い。あまりに広いので、複数の概念に分ける必要があるほどだ。「ブラック誘い受」「引き倒し誘い受」「天然誘い受」などなど。が、本書のノリでは、誘い受が使いづらい。天音と光莉は、光莉が誘い受パワーを発揮すべきところなのに、それが見えてこない。
・地味なキャラをハーレムの主にすべし
『学園の五大スター』などと複数のスターを持ち上げてそれぞれにファンクラブがあったりする話では、スターの品行はやや抑え気味にして(一妻一婦は守る、など)、地味なキャラが何気にハーレムを持っていたりすると面白い。
実例は思いつかないし、原理的な根拠があるわけでもないが、私の脳内国会において満場一致で可決された。7andy
妹を溺愛する姉が本格的に登場――と思いきや、あまり活躍しない。
前にも書いたが、サザエさん化してなごむ話にならないうちに終わらせてほしい。すさんでこその『ガッチャガチャ』だと私は強く主張する。7andy
都市伝説かもしれないが、ご紹介する。
『仮面ライダー』が東南アジアの某国で放映されたとき、「殺人テレビ」と言われた。子供たちがライダージャンプの真似をして、死傷事故を多数起こしたからだ、という。
この話を聞いて以来、「ライダージャンプ」は私の呪文になった。自分で書いた話を思い返して、「このヨタは人としてどうか」などと思ったときには(たいてい思うのだが)、この呪文を唱えることにしている。ライダージャンプが許されるのだから、このヨタだって許されるはずだ、と。
毎度のことながら、今回も唱えずにはいられない。ライダージャンプ、ライダージャンプ。
*
美園を家にあげる前に、一悶着あった。
予告どおり午前11時にやってきた美園に、私は告げた。どこかに遊びにゆくのなら付き合うし、電話をくれるのも嬉しいけれど、あなたと二人きりになるのは恐い。先日のディズニーランドのお礼に、今日はお台場にでも――
私のつたなくもつれる言い訳を、最後まで聞いてから、美園は言った。
「私は悪者なのに、ひかるさまのお友達でもいようとする、それは欲張りすぎではないかと、ひかるさまはおっしゃいました。
でも、ひかるさまも欲張りでございます。
私をひきとめながら拒もうとしておられます。迎え入れてくださるでもなく、居留守を使うでもなく、私の顔色をうかがっておられます。
そうやって人の気持ちを忖度してばかりのお心で、私をなだめることができると、まだお考えでしょうか? まだ私の気持ちをお疑いでしょうか? 私がこれほど悪事を重ねているのに、まだ私を悪者扱いしてくださらないのでしょうか?」
「だって――」
「どっちつかずは、これきりになさいませ。ひかるさまがそのように煮えきらないのなら、私は押し通らせていただきます」
ずい、と前に出る美園を、私は止められなかった。
美園は、家の中をざっと掃除してから、昼食を作ってくれた。一緒に食べる。
話題は緋沙子のことになった。
「平石さんは人気者でございます。夕食のときには、彼女のそばの席をめぐって争いになるほどです」
「そうなんだ」
「なにしろ陸子さまの思い人ですもの」
緋沙子についての物言いには、相変わらず刺があった。
食後のお茶をいただいて、後片付けの段になったとき、私は自分で片付けをしようとした。が、美園の猛反対にあった。
「こればかりはご勘弁くださいませ。私のことは、ひかるさまにお仕えする者として見ていただきとうございます。そのために私はいまここにおります。なのに、ひかるさまのお手を煩わせては、今日一日が台無しになってしまいます」
もしここで美園の反対を押し切れるのなら、そもそも美園を家にあげてしまうこともなかっただろう。それで私は、居間でTVアニメの録画を見ていた。
すると、美園がやってきて、告げた。
「ひかるさま、冷蔵庫の調子がおかしいようです。冷蔵庫の中に、熱くなっているところがあります」
私はキッチンに行き、冷蔵庫の中をのぞきこんだ。右手で、冷蔵庫のドアをつかみながら。
「どこ?」
「このあたりです」
美園が指をあてて示したところに手を伸ばして、腰をかがめた瞬間――私の右手には、手錠がはまっていた。手錠のもう一方の環は、冷蔵庫のドアの取っ手をつかんでいる。
美園はすたすたと離れて、私の手の届かないところに立った。
私は手錠を確かめた。叩けば壊れるプラスチックのおもちゃではない、本物の手錠だった。
「……冷蔵庫の故障って、」
「嘘でございます。たばからせていただきました」
「私をキッチンに閉じ込めて、どうするつもり?」
それには答えず美園は、
「ひかるさまは、このような物はご存じでしょうか?」
と言って、取り出してみせたのは、黒いゴム製の手枷だった。
「私がそんなものつけると思う? もう美園の――橋本さんの言いなりにはなりません」
敬語や『橋本さん』を気にとめる様子もなく美園は、
「ひかるさまはさきほど、お茶を召されました」
そう言ってから、気を持たせるように、黙る。
あのお茶に、なにか入れてあったのだろうか。まさか。美園はそこまではしない。それがわかっているから、こうして家にあげてしまった。
「……それが、どうしたんですか」
「お茶を飲んだあとには、お手洗いが近くなる――そう感じたことはございませんか? お茶に含まれるカフェインは、眠気ざましの効果で有名ですが、お小水を作るのを早める効果もございます」
私は息を飲んだ。
「だからって橋本さんの言いなりになっても、トイレに行けるかどうか、不安ですね」
「確実に床を濡らすほうがお好みでしょうか? では、それまで待たせていただきます。
そうそう、あまりひどく我慢なさるようでしたら、脇腹などをくすぐらせていただきます。お小水をひどく我慢しているときに、くすぐられるとどうなるか、ご存じですか? ……ご存じとお見受けします。
ひかるさま、どうぞこちらにお掛けください。……お茶をもう一杯、いかがです?」
私は勧められるままに椅子に座り、お茶は断り、目をつぶって、言った。
「……条件があります」
話し合いの結果、かなりたくさんの条件をつけることができた。
・午後3時には、すべての拘束をほどいて帰る。
・私の許しがないかぎり、胸と下腹部には触れない。
・くすぐらない。痛みや熱さを加えたり、つらい姿勢を強いたりしない。
・撮影や録音をしない。
・唇や舌や歯で、私の身体に触れない。
「あと、それから…… 唾液とか――体液を触れさせるのも禁止」
「汗と涙はお許しください」
「わかった。それから……」
考えているうちに、ふと気がついた。
「手錠を外さないと、服が脱げないんじゃない?」
「ええ。ですので、手錠をもうひとつ用意してございます。左手にかけてから右手を外す、という要領で、お召し物を脱がせてさしあげられます」
その言葉どおり、美園は手錠をもうひとつ取り出してみせた。
Continue
私の知るかぎり、本物のプログラマはPHPを使わない。私がかつて一瞬使おうとしたとき、さる本物のプログラマから強く止められた。その後、Zendが取締役にマーク・アンドリーセン(この業界でもっとも呪われた人物だ)を招聘したのを見たときには、氏の慧眼に感服し感謝した。
PHPだけは、バグ密度が基準より高かった
かつては本物のプログラマにしか感知できなかった死の影は、いまや明白にPHPを覆っている。
山口貴由というまんが家がいる。代表作は『覚悟のススメ』だろうか。
作品のひとつに、『蛮勇引力』がある。涼やかなメガネ男の主人公が、超管理社会に肉弾戦を挑む物語だ。主人公を助けるのが、性具商・張孔堂の一味である。
『蛮勇引力』の世界は近未来と近世をつなげたような代物なのだが、張孔堂の商う性具は、産業革命前の技術でできている。木製で手彫りの張形などだ。張孔堂の面々はこの製品に、自信と誇りを抱いており、産業革命以降の技術革新をほとんど意に介していないように見える。
合成高分子(ブラスチックと化学繊維)、エレクトロニクス、合成色素、これらはみな産業革命後に現れて、性具の世界を塗り替えた。いま作られている性具のほとんどは、これらの技術なしには、想像することさえも難しい。また、ポルノは過去50年で驚くべき革新を遂げ、性具業界に大きな影響を与えている。間違いなく、性具はこの150年ほどで、華々しく進歩した。それ以前の性具は、懐かしさや微笑を誘う小道具でしかない。
だが、現実の性具商の店頭に立って商品を眺めると、張孔堂の自信には根拠があるように思えてくる。
モノとして魅力のある製品が、ほとんどない。考え抜かれて作られたモノや、高精度で加工されたモノには、必ず独特のオーラがある。性具商の商品には、それがない。こんなものを買う客がいるとしたら、それはモノを見ているのではなく、自分自身の幻想を見ているのだろう。古典的な狂人のクリシェを思い出す――本人は、自分が王様で宮殿に住んでいるつもりだが、実はゴミ溜めに埋もれて生きる乞食だ、という。
技術革新はまだ続いている。ネットは製造者とユーザを近づけ、大きな影響を与えるはずだ。3Dプリンタ(立体物を光で彫り出す装置)はきっと何かすごいものを作り出すだろう。マイクロメカトロニクスは性具の世界を塗り替える可能性がある。張孔堂をも唸らせる製品が当たり前になる日が、いつか来るかもしれない。
だが今日のところは、山口貴由の慧眼に唸る。古典的な狂人のクリシェをそのまま人々に演じさせる超管理社会と戦う勢力として、産業革命前の性具商を持ってくるとは、斬新で適切、素晴らしい着想だ。
*
「お口を大きく開けてくださいませ」
私はそのとおりにした。
私の両腕、手首のそばには、黒い手枷。少し重いほかは、着け心地は悪くない。外側は硬いゴムだけれど、柔らかい内張りがしてある。
「拝見します。……きれいな歯並びでございますね。虫歯も見えません」
美園は、指で歯をひとつずつ押してゆく。
私の首には、首輪。鎖で手枷とつながっている。この鎖は短くて、手が腰に届かない。
「抜けそうな歯や、ぐらついている歯はございませんね?」
「ない」
私の両足、膝のそばには、足枷。足を閉じられないよう、左右の足枷を棒でつないである。
腰には、コルセット。紐で締め上げてある。深く息することも、かがむこともできない。
そして、左手首に手錠。この手錠のもう一方の環は、冷蔵庫のドアの取っ手をつかんでいる。
拘束具に包まれた私自身は、足を開いて椅子に座り、肘掛けに肘を置いている。
「では、こちらをお試しください」
美園は奇妙なボールを差し出した。
大きさは鶏の卵ほど。白いプラスチックでできている。卵の殻のように中空で、ただし、このボールの殻の厚さは数ミリ以上ある。その殻にも、指先くらいの穴がいくつも空いている。
「なにこれ」
「この状態では見慣れないものでございましょう。このようにして用いるものです」
美園は、黒いゴム製のハーネスのようなものを取り出した。そのハーネスについている金属の棒を、ボールの穴に通し、取りつける。
「間接キスはお気になさいますか?」
「いまさら」
「では、失礼します」
美園はそのボールを口にくわえこんだ。ハーネスの両端を、頭の後ろに回す。
見覚えのある道具だった。口枷の一種だ。ボールに穴が空いているから、口で息もできるし、声も出せる。言葉をしゃべることと、口を閉じることはできない。
美園はボールを口から出して、
「詳しくご説明いたしましょうか?」
「いい。早くやって」
ボールをハーネスから外し、目の前に差し出す。私が口を開けると、そこにボールをそっと押し込む。かなり大きく口を開けないと、中に入らない。
弱く噛む。見た目よりは柔らかいプラスチックだった。といっても噛み砕けそうにはない。
「これをはめておりますと、ひとつの歯に力が集中して、噛み合わせが狂うことがございます。はめている時間が短ければ一晩で直りますが、それまでは、お食事の際などに大変気になるものでございます。
ボールを回したり、位置をずらしたりして、ひとつの歯に力が集中しないよう調整なさってください。もしボールの大きさがあわないようでしたら、別のサイズのものをお試しください」
言われるままに、しばらくいじる。口を指差して終わりを告げると、ボールを口に入れたまま、ハーネスに取りつけた。そのハーネスを私の頭に固定する。
「痛いところはございませんか?」
かぶりをふる。
「しゃべれなくて恐い、というお気持ちはございませんか?」
ちょっと考えて、かぶりをふる。
美園は、私の顔を自分の胸に押しつけながら、
「嬉しゅうございます」
と、囁いた。
Continue
突然だが私はいま再び入院している。
健康なときに入院すると、すさまじいものだ。この病院が特にひどいほうなのだと信じたいが、それにしても不健康な施設である。
食事のまずさはすでに書いた。今回は、空調のひどさに痛めつけられている。
ここはいったいどこの発展途上国なのかと思うような、いまどきなかなか体験できないほどの、頭熱足寒。頭がゆだち足が凍えるので、起きているのが難しい。まともな断熱が施されていれば、これほどにはならないはずだ。
不健康なときに入院するならたいして変わらないが(なにしろ起きていられない)、健康なときに入院するなら、床暖房のある病院を強くお勧めする。
*
護衛官が国王陛下と二人きりで話せる時間は、あまり多くない。
普段、陛下と話す機会がもっとも多いのは、移動中の車内だ。これは二人きりではない。運転手がいる。二人きりになりやすいのは控室だが、これもお側仕えのメイドや、TV局のメーキャップアーティストがいることが多いし、あわただしく着替えたりするだけで終わることも多い。
今日は、朝の9時から午後10時半まで警護したのに、結局チャンスがなかった。
別れ際、
「遅くまでありがとうね。どこが一番疲れてる? ……背中? このへん?」
と、陛下は、私の背中をさすってくださった。
「今度は、明々後日だね。そしたら、またお願いね。大好きだよ、大好きだよ、ひかるちゃん」
家に帰って、プライベートの携帯をみると――橋本美園からの着信記録が残っていた。留守電メッセージはない。
どうすべきか。
携帯を見つめながら迷っていたそのときを、まるで見計らったかのように、着信があった。かけてきたのは、橋本美園。
「ひかるさん? こんばんは。いま上がったところでしょ? お疲れさま」
「……美園さんは悪者のはずですが、友達でもいたいんですか。欲張りすぎではないでしょうか」
「そう? なんなら今から制服に着替えて、そっちに押しかけようか?」
「よしてください」
美園は公邸の離れにいた。離れの2階には女中頭のオフィスがあり、そこからは護衛官の官舎が見える。官舎に明かりがついたのを見て電話をかけてきた、というわけだった。
「遠野さんから聞いた。陸子さまのイメージプレイ。
裏は取ったんでしょうね? 平石さんの作り話って可能性もあると思うんだけど」
いかにも女中頭らしく、疑り深い。
「わかりません」
私はわざとそう答えた。私の心証は決まっているが、陛下がお認めになっていない以上は、これも嘘ではない。
「へー? ま、いいか。
それじゃ、本題。
あさっての日曜日の午前11時、ひかるさんの家に遊びに行くから、よろしくね」
「よしてください」
「あら肘鉄砲。
平石さんがどうやってバッキンガム宮殿に潜り込んだのか、本人に聞いたんでしょ? もちろん私は最初から知ってた。知ってて、ひかるさんには黙ってた。どうしてだと思う?」
「陛下がそれほどまでに慈しんでこられた子だと知ったら、私が身を引くかもしれない、と予想なさったのでは」
「慈しんだ? そんなに大切にしてるように見える?」
「……少なくとも私よりは、あの子のことを深く理解しておられます」
「そりゃそうね。でもそれで、納得できる? ひっかからない?」
『ま、そうなったら、ひさちゃんには辞めてもらうけどね』『ひさちゃんは戦わない。弱いふりして、ひかるちゃんをたぶらかしてるだけ』――緋沙子の気持ちを踏みにじって恥じないといわんばかりの、お言葉の数々。
「美園さんがなにが言いたいのか、わかりません」
「日曜日に教えてあげる」
私が返答に迷っていると、電話が切れた。かけなおす気力は、わいてこなかった。
Continue