ふつーのプログラマです。主に企業内Webシステムの要件定義から保守まで何でもやってる、ふつーのプログラマです。

ハローサマー、グッドバイ(33) ブラインドタッチ

»

 サンキストが小清水大佐の腕を必要以上の勢いで踏みつけ、カッターナイフが床を滑っていった。

 「てめえ」サンキストは憤怒で顔を歪めた。「ふざけるな!」

 「騒ぐな」谷少尉は顔をしかめながらも、平静な声で告げた。「深くない。ブラウンアイズ、すまんが適当でいいから手当をしてくれ」

 「適当って」ブラウンアイズはすでに緊急キットを掴んで谷少尉の隣に膝をついていた。「そういうわけには......」

 「血が止まればいい。リーフ、小清水大佐を拘束しろ。他はスロープと階段に防壁を展開。急げ」

 ブラウンアイズは青ざめた顔で頷くと、落ちていたカッターナイフを拾った。ぼくは手伝おうと近づいたが、ブラウンアイズは首を横に振って制した。

 「間に合ってるから、あんたはソリストをやって。超特急でね」

 「......わかった」

 それでも谷少尉の方を見ずにはいられなかった。本人が明言した通り重傷ではないようだったが、過少申告している可能性もある。ブラウンアイズは谷少尉の都市迷彩の背中を切り裂いて手当を始めていたが、その横顔は険しく、楽観視していないことがわかった。

 他の隊員も忙しく動いていた。リーフは何事か喚く小清水大佐の自由をあっさり奪うと、手近にあった延長コードで手足を拘束している。サンキストとシルクワーム、テンプルの3 人はスチール棚やパイプ椅子、展示してあった自転車などで、スロープと階段を塞ぎ始めていた。

 朝松監視員は、手を縛られたままの藤田を立たせると、追い立てるようにこちらの方に連れてきた。谷少尉の横に立つと、顔をしかめながら訊問の成果を口にした。

 「EV ヴァンの場所は言おうとしない。だが、自由にしてくれるなら案内すると言っている」

 「そうですか」谷少尉は押し出すような低い声で答えた。「すみませんが、今、ちょっと手が離せないので。後で私も話を訊いてみます。安全な場所にいてください」

 「どこにそんな場所があるんだろうな」

 「朝松さんの言う通りですよ」ボリスが甲高い声で言った。「そろそろ私の話に耳を傾ける気になったんじゃないですか?そんなチンピラの言うことなど信用に値しないことぐらいわかるでしょう」

 ボリスは椅子に座ったまま、薄気味の悪い笑顔を見せていた。ハッタリなのかもしれないが、この状況であんな余裕のある顔ができる度胸だけは認めざるを得ない。島崎さんはボリスの近くに立って、恐縮したような顔で何かを話している。それに目を留めた谷少尉は額に脂汗を浮かべながら言った。

 「島崎さん、ミスター・ボリスをもう少し奧に引っ張ってきてください。そこだとZの目に付きやすい」

 「はあ」島崎さんは頷いた。「話は聞かなくていいんですか?」

 「後です。胡桃沢さん、鳴海さん」谷少尉はぼくたちの方を見た。「ソリストを。通信とドローンだけでも」

 階下からは、耳を塞ぎたくなるようなうめき声と、何かにぶつかったり壊したりしている音が聞こえてくる。しかも、それらの音が発生する頻度が高くなっていた。臨時のバリケード設置を終えて、陰から下を警戒するバンド隊員たちの顔は一様に緊張している。一体、何体のZが店内に入り込んだのだろう。

 谷少尉が立ち上がった。ゆっくり足の機能を確認するように歩いている。それを見届けたブラウンアイズがこちらに歩いて来た。

 「谷少尉の具合は?」

 「内臓には達してなかった」ブラウンアイズは心配そうに囁いた。「とりあえず止血はできたわ。縫合セットはなかったから、瞬間接着剤とホッチキスで止めた。激しい動きをすると危ないかも。まあ、今、心配してもしょうがないけど。こっちはどう?」

 「まだ始めたばかりだよ」

 胡桃沢さんにシステム管理者用のコマンドを教えてもらい、ノートPC のWi-Fi に接続したところだった。何しろ電源ランプ以外のアウトプットがないから、無線LAN 関係が破損していても不思議ではなかったが、認証を求めてきたところを見ると、稼働はしているようだ。何もかもがうまくいかないという日ではないようだ。

 「そう。あっちの応援に行くけど」ブラウンアイズはスロープの方に顎をしゃくった。「何かあったら呼んで」

 「わかった」そう答えたが、不意に不安が押し寄せてきた。「なあ、もし、Zが2 階に上がってきたら......」

 「あたしが、あたしたちが守るから心配しないで」

 確かに心配しても仕方がない。ぼくはノートPC に、正確にはシースルーディスプレイに視線を戻した。

 「認証が通ったら」胡桃沢さんが説明を続けた。「次は取ってきたFFmpeg のライブラリを、ラズパイにコピーしなきゃならん。といっても、公開鍵を交換していないとできないから、まずキーペアを生成する必要があるな」

 そう言うと、胡桃沢さんは首にかけていたUSB メモリを外して、ノートPC に挿した。たちまち目の前に、デバイス認識のメッセージが表示される。

 「手順は出発時にやったリビジョンアップと同じだ。やってみろ」

 「はい」

 ぼくは練習した手順通りに実行しようとして、ちょっとした壁にぶつかった。視点の移動、コマンドを思い浮かべる、Enter。視点の移動でコマンドモードに入るのは、意識することなくできるようになった。Enter も簡単だ。だが、肝心のコマンド入力がうまくいかない。mount、cd、cp など、簡単なコマンドを入力するのに、何度も何度も失敗してしまうのだ。

 「おい、どうした」胡桃沢さんが心配そうに言った。「音が気になるのか?」

 「いえ......」

 ぼくはなけなしの集中力をかき集めた。Zがうろつきまわる音は聞こえていたが、もう頭には届いていない。視点の移動、コマンド、Enter......ダメだ。コマンドが認識されない。余分な思考が混入しているのか「タイプミス」が多いのだ。

 人の気配を感じて顔を上げると、島崎さんが傍に立っていた。胡桃沢さんが呼んだらしい。

 「苦労してるみたいだけど」島崎さんは、ぼくの顔を観察するように覗き込んだ。「大丈夫?」

 「コマンド入力がうまくいかなくて......」

 「ああ、最初はみんな苦労するみたいだね。とりあえず、文字を1 つ1 つ丁寧に思い浮かべてみたらどうかな」

 「やってるんですが......」

 「どうしてもコマンド入力が難しいようなら、メニュー選択モードもあるよ」島崎さんは提案した。「メニュー一覧からコマンドを選択する方法。オプションも選べる。時間はかかるけど、そっちでやったらどうかな」

 「......もう少し試してみます」

 ぼくは、ともすればあふれ出しそうな焦燥感を押し殺して、必死で入力を続けた。島崎さんの言った通り、コマンドのアルファベットを順番にゆっくりと頭に浮かべてみたが、今度は間隔が開きすぎて、コマンド文字列として認識されない。ぼくは途方に暮れた。ぼくの思考には何か致命的な欠点でもあるのか、それとも日本語で考えているからいけないのか。そういえば、ロシア語で考えるんだ、って映画があったっけ。あれは何の映画だったか......

 「くそ」ぼくは口の中で自分を罵った。「違うだろ」

 いかん。また、余計なことを考えてしまっている。いっそメニュー選択モードでやってみるか。入力速度は遅くても確実ではある、と気持ちが揺らいだが、すぐに考え直した。コマンド程度ならともかく、もしプログラミングをする必要が出てきた場合に対応できない。プログラミングには、キーを打ちながら考えるという方法が必須だ。

 「鳴海さん」

 谷少尉の声に、ぼくは顔を上げた。谷少尉はレジカウンターにもたれながら、ハンドサインで指示を出していた。顔が青ざめていたが、その表情にはいささかの緩みも見られない。視線が合うと、谷少尉は小さく頷いて、プログラマにはなじみの深い言葉を口にした。

 「ブラインドタッチですよ」

 問い返す間もなく、谷少尉は別の方向を向いてしまった。ブラインドタッチ?

 ふと、初めてブラインドタッチの練習をしたときのことが思い出された。PC には学生時代から触れていたが、最初は人差し指、中指と親指しか使わない自己流だった。それでも、それなりに速い入力ができていたから、ブラインドタッチなど練習する必要はない、と主張していた。今思えば、ブラインドタッチを練習しない口実に過ぎなかったのだが。

 そんな根拠のない自信が、ガラガラと音を立てて崩れ落ちたのは、社会人になり、会社の先輩の入力を見たときだった。太り気味でパッとしない髪型の先輩は、隣の人と話をしつつ、視線をモニタに据えたまま、両手の太い指を王蟲の触手のような滑らかさで動かし、正確な入力を続けていた。数字や記号でも、滑らかにシフトキーも駆使して指を止めることがなかった。ぼくの自己流では、数字を入力するときはテンキー、記号のときはキーボードを見ながらだ。そんな未熟な方法で得意げになっていた自分がとても恥ずかしく、横28.5cm、縦9.5cm の平面を縦横無尽に動き回る指の動きが、とてもかっこよく見えたものだ。ぼくは帰宅してから、タイピング練習ソフトを探し、早速訓練を開始した。昼休みと帰宅してからの時間をほとんど費やして練習したおかげで、2週間後にはキーボードを支配することができた。

 「そうか......」

 そういうことか。ぼくはコマンドを文字列として思い浮かべるのをやめた。代わりに頭の中でキーボードを叩く......いや、モニタを見つめながらキーボードを叩いている自分をイメージした。いわゆる「手が憶えている」感覚を呼び起こしたのだ。ぼくたちプログラマが、コマンドやメソッドを記述するとき、変数を命名するとき、引数を並べるとき、それらを文字として入力しているわけではない。必要な文字列をしかるべき場所に存在させているのだ。頭ではロジックを考えながら、手の指に入力作業を委譲している。それと同じことをやればいいだけだ。

 「鳴海くん?」胡桃沢さんの声が聞こえた。

 「すいません。大丈夫です」

 ぼくはコマンドを入力した。あれほど苦労したのがウソのように、思い浮かべたコマンドが投入されていく。デバイスのマウント、ディレクトリ移動、キーペアを生成するシェルスクリプトの実行。

 「できました」

 「そ、そうか。なら次は、生成した公開鍵をUSB にコピーして......」

 ぼくは胡桃沢さんの指示の元、次々にコマンドを実行していった。生成した公開鍵をUSB メモリを使って、ラズベリーパイの1 台にコピーする。胡桃沢さんがあらかじめラズベリーパイ上で作っておいてくれた公開鍵、id_rsa.pub をノートPC 側にコピーし、authorized_keys に追加する。ssh 通信が確立したら、多くの犠牲を払って入手した、FFmpeg 関連のファイルを一気にラズベリーパイ側に転送する。

 「いいですね、これ」ぼくは思わず笑った。「楽ですよ」

 人間が、人間ではない機器に意思を伝えるときには、何らかの物理的なインターフェースを必要とする。コマンドを実行するにしても、頭で考え、指を動かし、キーを叩き、結果を目で見て、脳にフィードバックする。メモリに比べてアクセス速度が100万倍遅いために HDD が処理のボトルネックになっているように、指で入力するという動作は、マンマシンインターフェースの大きなボトルネックだ。その行程をすっ飛ばせるのは非常に快適だ。

 「速いな」胡桃沢さんが唸った。「よし、もうラズパイにログインできるんだな?じゃあ、ソリストのセットアップパッケージをコピーして、インストールを開始してくれ。私は残りのラズパイを仕上げる」

 「わかりました」

 ソリストをラズベリーパイにセットアップしながら、ぼくは、ブラウンアイズが言っていた機能を試していた。視覚野に直接仮想モニタを投影するというやつだ。設定メニューを探していると、それらしい項目がある。選択してみるとメッセージが表示された。

■視覚野プロジェクションモード
このモードを使用するには、管理規定G1-550B および、G2-7-4-2F に定められたトレーニングの受講を強く推奨します。
未受講のユーザは[戻る]ボタンで、通常モニタモードに戻ってください。
続行する場合は[次へ]ボタンを押してください。

 [次へ] ボタンを選択すると、またメッセージが表示された。今度は赤いボールドフォントだ。

■警告■
ログインユーザの受講レコードに、管理規定G1-550B およびG2-7-4-2F で定められたトレーニングコースの受講歴を見つけることができませんでした。
[戻る]ボタンで、通常モニタモードに戻ってください。
続行する場合は[次へ]ボタンを押してください。

 再び[次へ] を選択すると、メッセージが変わった。

■警告■
完全な自己責任において[視覚野プロジェクションモード] を実行しますか?
実行すると、このモードを使用することによって生じるいかなる身体的・精神的異常、および後遺症について、関係するあらゆる政府、法人、個人は法的責任を免除されることに同意したと見なされます。よろしいですか?
[戻る]ボタンで、通常モニタモードに戻ってください。
実行する場合は[実行]ボタンを押してください。

 さすがに少し躊躇した。だが、警告されたトレーニングの受講歴がなければ切り替えられない、ではなく、「強く推奨します」だ。試してみる価値はある。ぼくは[実行] を選んだ。

 目の奧がズキンと痛んだ。眼球の奧に熱源が生じたような感覚が走る。こめかみの血管が脈打つ音が聞こえる。急に床が消失したような浮遊感で頭がクラクラした。薄暗い店内の光量が急激に増加している。

 「おい」胡桃沢さんの声が、やけに遠くから聞こえた。「どうした。大丈夫か?」

 返事をするどころではなかった。ぼくは目を閉じて痛みが去るのを待ったが、まだディスプレイの表示が見えていることに気付いた。中央に明るいグリーンのメッセージが点滅している。

◇視覚野プロジェクションモード切り替え完了◇
◇以後仮想モニタで表示◇

 ぼくは目を開いた。シースルーディスプレイの表示は消えているのに、まるで眼前にスマートフォンをかざされているように、モニタの表示がはっきり見えた。正面にいる胡桃沢さんの顔の右下に、半透明のモニタ画面がオーバーレイされているのだ。

 「おい」胡桃沢さんが言っている。「大丈夫なのか?」

 「大丈夫です」ぼくはようやく声を出した。「問題ありません。ちょっと表示方法を切り替えてたので」

 応答速度の問題からか、シースルーディスプレイの表示は色数が少なかったが、仮想モニタではフルカラー表示になっている。視点でコマンドを実行する方法は変わらないが、移動は20 倍ぐらい高速になっていた。

 「この2 台はソリストのセットアップが完了しました」

 「じゃあ再起動してテストしてみてくれ。ノートPC の方で、コンソールアプリを起動しておけば、起動したときに勝手に探しにいく。ゲストマネージャに追加されていくはずだ。追加されたら、オートでリソース再配置が実行される」

 「RAID のHDD を入れ替えたら自動的に再構成が始まる感じですか」

 「そういうことだ。コンソールで優先度を設定できる。とりあえずドローンだろうな」

 「わかりました」

 ぼくは言われた操作を実行しようとしたが、ボリスの声に妨げられた。

 「おいおい、凄腕プログラマさんよ」また嘲笑か、と思いきや、ボリスの声は意外な真剣さを帯びていた。「ドローンはやめておいた方がいいぞ」

 ぼくはボリスを見ようとしたが、胡桃沢さんが止めた。

 「相手にするな」

 「......はい」

 少し気になったが、ぼくは作業に戻ろうとした。そこにボリスが再び声を投げてくる。

 「あーあ、D 型を呼び寄せたくなけりゃ、素直に聞いておいた方がいいと思うがね」

 今度はバンド隊員たちが反応した。谷少尉が苦しそうな呼吸をしながら訊いた。

 「ミスター・ボリス、どういうことですか?」

 「ああ、やっと私の話を聞く気になったみたいで嬉しいですよ」

 「D 型って、例のマーカーと何か関係あるんですか?」

 「ドローンを操作するには、ハイゲインアンテナパネルを接続しなきゃなりません。そうですよね、胡桃沢さん」

 呼びかけられた胡桃沢さんは眉をしかめながら頷いた。その視線がテーブルの上に置かれているパネル型のアンテナに落ちる。

 「マーカーを打ち込んだD 型は、無線LAN の電波の方に向かうように行動を設定されているんですよ」ボリスは得意そうに説明した。「そのノートPC だと10mW ぐらいですが、ハイゲインアンテナは、1.2W の出力になりますから。近くにD 型がいたら一発で寄ってくるでしょうね」

 「あたしたちがセンタービルにいたとき」ブラウンアイズが険悪な顔で言った。「D 型が来たのはそのせいなの?」

 「そういうこと。ビルのWi-Fi に向かってきたんだよ」

 「何のために、そんな設定を」

 「近くに寄ってきてくれれば、データも収集しやすいんだよ。まあ、お前らの人数を減らせればと思ったことも否定はしないがね」

 「それは今回だけですか?」谷少尉が訊いた。「それとも、マーカーで転移したD 型は、全部そうなるんですか?」

 「今回だけですよ。私がそうしたんでね。あんたたちがせっせとマーカーを打ち込んでくれている間に、後追いで条件付けを送信してたんだ」

 サンキストとテンプルが怒りの表情で詰め寄ろうとしたが、谷少尉が片手を上げて制した。

 「なら、その設定をキャンセルすることもできるはずですね」

 「確かにできるんですが、今は無理です」ボリスは嬉しくてたまらない様子で言った。「指揮車両が破壊されたと同時にキャンセル機能も消失してしまったので」

 「ちょっと待てよ」ぼくは声を上げた。「ソリストの全ソースはこのノートPC にダウンロードされているはずじゃないか。ここからでもできるはずだ」

 「マーカーを打ち込まれたZの行動をコントロールすることはできるだろうな。その気になれば。だが、今回の一連のD 型コントロールパターンは、ソースに組み込まれているわけじゃない。一時的な設定ファイルとして、メモリ上だけに存在していたんだ。もうないよ」

 「でも、D 型をコントロールできるなら......」

 「新しい行動パターンで上書きできないかって?ああ、できるよ。ただし、今のパターンを消去した後でないと無理だな。優先度を最高レベルにしてあるから。新しいパターンは弾かれてしまうんだよ」

 「ソースを調べて」ぼくは諦めきれずに食い下がった。「キャンセルするパターンを送れば......」

 「そういう情報はソースにないよ。諦めな。ロジックではなく、あくまでもパターンの組み合わせで実現されるんだ。パターンの組み合わせは2 の32 乗だ。量子コンピュータでもない限り探し出せないだろうな。言っておくが、私を拷問したってムダだぞ。そんな組み合わせパターンなど知らんからな」

 「ドローンを使って」谷少尉が考えをまとめるように言った。「音響機能で周辺のZを遠くへ誘導、その隙に脱出というプランだったわけだが、同時にD 型を呼び寄せることになるわけですね」

 「ドローンでD 型も誘導されるんじゃないですか?」サンキストが発言した。

 「どうだろうな。無線LAN の電波に引き寄せられる条件付けと、元々の光や音に寄っていくZの本能の、どちらが優位になるかという賭けになるな」

 谷少尉はレジカウンターに座った。傷は深くはない、と言ったのはウソではないのだろうが、決して浅いわけでもなさそうだ。そのまま、顎に手を添えて考えている。ぼくはソリストのセットアップを続けながら、谷少尉が口を開くのを待った。他のバンド隊員も、階下を警戒しつつ、指揮官の決断を待っている。

 「それで」谷少尉はしばらくして顔を上げた。「あなたはどうやって脱出するつもりだったんですか?」

 「やっとそれを話せる」ボリスはニヤリと勝ち誇った笑いを刻んだ。「実はヘリの用意があるんですよ」

 「ヘリ?」

 「そう、横浜港内に輸送艦がいるんです。飛行甲板にヘリが待機していて、信号を送るとピックアップに飛んできてくれることになっています。ガンシップではないですが、それなりの兵装を持ってます。あんたらの装備じゃ勝負にならないでしょうな」

 「ヘリに輸送艦?」谷少尉は疑問符を顔に浮かべた。「よくそんな燃料を調達できましたね。自衛隊のじゃないでしょう?」

 「某国、としか言えませんね。もちろん日本じゃないですよ。要するに、それだけ私が収集したマーカーのデータを重要視しているってことです」

 「このビルの屋上にヘリの着陸は無理ですよ」

 「ご安心ください。私は軍人じゃないですが、スパイリギングでの脱出訓練は受けてるんでね」

 「なるほど。で、さっき言っていた我々に有用な情報というのは?」

 「わかりませんか。一緒に脱出させてあげようというんですよ、もちろん。そんなチンピラの不確実な情報に頼る必要もなくなりますよ」

 「魅力的な話ですが、全員乗れるんですか?」

 ボリスは酷薄な笑みで、ぐるりと全員を見回した。

 「無理ですね。空席は3人。私を入れてね。さあ、一緒に乗っていきたい人は誰ですかね」

 「ま、待ってくれ!」

 真っ先に焦ったような声を張り上げたのは、拘束されて床に転がっている小清水大佐だった。慌ててリーフがつま先で脇腹を軽く蹴ったが、小清水大佐は口を閉ざそうとはしなかった。

 「わ、私を一緒に連れていってくれるんじゃないのか。私がソリスト導入に便宜を図ったんですよ。任期後にハウンドに場所を用意してくれるはずだったでしょう。そうでしょう?こんなことまでしたんだ。私を見捨てるようなことはしないですよね」

 「ああ、小清水大佐」ボリスは縛られたままで、器用に肩をすくめてみせた。「あなたの尽力には感謝に堪えません。私が帰還したら、ハウンド本社のパティオの一番目立つ場所に、あなたの功績を讃える銅像を建てさせていただきますよ。神かけて約束します。でも、残念ながら、あなたの席は用意できそうにないですね。たとえ私が連れて行く気になったとしても、他の方々が許さないでしょうから」

 小清水大佐は絶叫した。この人は、階下にZが続々と入り込んでいることを、すっかり忘れてしまっているらしい。

 「ふざけるな!私がこの中で一番偉い。こいつらの上官なんだ。おい、お前ら、早く私を立たせろ!早くしろ、早くするんだ。命令だ!」

 その命令に従うバンド隊員は誰もいなかった。

 「ハウンドは儀礼的な地位などに重きを置かないんですよ」ボリスはもはや小清水大佐への興味を失ってしまったような素っ気なさで言うと、谷少尉の顔を見つめた。「さて、谷少尉。私の話に乗りますか?」

(続)

Comment(13)

コメント

Nukky

ファイアフォックスなつかしい・・・

しんにぃ

>コンソールで優先度がを設定できる。

サイバープログラマー鳴海で一本読みたくなった。今後がたのしみです。

FF

一次元上のブラインドタッチ……快適そうです。

神かけて約束します
→神にかけて約束します

BEL

「神かけて」という言葉も一応ありますね。

いちいちリアルだった描写は、この作品では既にいい意味でリアルではなくなった。
この先は何がどうなるかさっぱりわからぬ。

>信号を送るとピックアップに飛んでくてくれることになっています。

警告を2回無視するとか、自分だったらキャンセルするだろうなって思うけど、状況が状況だけに踏ん切りがつくのだろうか。

しんにぃさん、ささん、ご指摘ありがとうございます。
FFさん、「神かけて」は、個人的にこの方がしっくりくるので。

a

鳴海さんのいいですね
クソかっこいい

p

警告無視してボタンぽちぽちーする鳴海さん好き。
好奇心うずくことについ手を出してしまうキャラというイメージを勝手に持ってる。
私も脳から直接端末叩くという経験を生きているうちにしてみたいですね。無理かな。

谷少尉のアドバイスで突然覚醒した鳴海さんに引き気味の胡桃沢さん笑う。
鳴海さん始めから結構化物だったけど、マイクロマシン手に入れてさらに進化するのかな。
文字通りの脳内コンパイルをする場面もあるんだろうか、などとどうでもいいことを考えつつ続き楽しみです。

金さん

Dのマーカーって、
鳴海さんたちのマイクロマシンと何らかの関係があるのかな(読者はみんな思ってるか)。

MUUR

眉をしかめながら~
「眉をひそめる」「顔をしかめる」(漢字ではどっちも顰める)という表現はあるのですが。
本来は眉はしかめないのですがまあ、結構見かけるのでいいのかなとも思っています。
Yumingも使ってるくらいなんで。

これから夏休みですか…お疲れさまです。

suginorl

そっか、明日か。

西山森

更新明日かーーー!
待ち遠しい!!

techuo

毎週楽しみにしてます!
明日更新待ち遠しいです!!!

コメントを投稿する