凡人は論理的思考すべし

登 大遊 (Daiyuu Nobori)さんの論理的思考の放棄というエントリが時を超えて話題になった。

softether.hatenadiary.org

これは氏の類まれな才能あってなされることで、僕を含む凡百のプログラマはこれを読んで(あるいはタイトルだけ見て内容すら読まずに)論理的思考を放棄してプログラムを書くのは危険である。

当該エントリおよび氏の過去のエントリを拝読する限りにおいて、氏が才気あふれるソフトウェア技術者であることは自明であるように思われる。氏が筑波大学に入学しソフトイーサ社を立ち上げる過程を軽妙に綴った次のエントリなどは、ユーモアに溢れ、優れた技術者は文章もうまいのかと嘆息してしまった。

futureship.sec.tsukuba.ac.jp

また僕が普段から敬愛する素晴らしいエンジニアによる証言も氏の大きな才能を裏付けている。

本題に入る。多くのプログラマにとって論理的思考は必要である。というか、当該エントリを拝読する限り、表現方法が異なるだけで論理的思考を放棄していないようにすら思われる。冒頭で触れたように、タイトルだけ見て中身を読んでいない人は一度最後まで当該エントリを読んで欲しい。

まず、だいたいこういうソフトウェアがあればいいなあとか、このような機能を付ける必要があるなとかいった、とても抽象的なことを思い浮かべる。この際、「絶対に論理的に考えないこと」が必要である。論理的に少しでも考えてしまうと、途中までうまくいっても、それが壊れてしまい、最初からやり直しになるので注意する。感覚的な思考でもってこれを行うのである。

次に、だいたいイメージができたところで、心の中に、ソフトウェアの設計図やデータ構造といったものを思い起こす。ここで注意するのは、「絶対に論理的に考えて設計をしないこと」である。徹底して、感覚的な思考でもって設計する。

彼がここで言っているのは抽象化である。コンピュータの論理にとらわれず、まず実社会で実現したい形を思い浮かべ、実装の細部に気をそらされることなく設計せよと主張しているように思われる。氏のエントリを拝読するに、低レイヤの理解と実装力にめっぽう強みがありそうであるから、氏が指す論理的思考とはCPU命令と一対一で紐づくアセンブリレベルの命令列、あるいは仮にもう少し高次元の想定だとしても、libcのシステムコールレベルでの論理をもって「論理的思考」とおっしゃっているのではないかと拝察する。

そも、ソフトウェアコンポーネントを高度に抽象的な概念として捉えて設計することは、僕の語彙では「論理的思考」である。表現方法が違うだけなのだ。氏は当該エントリで

ここで「論理的な思考」の定義を細かくすることはしない。そもそも、細かく定義しようとすること自体がすなわち「論理的な思考」である (論理的に、厳密に定義しないので、あなたの頭の中で、「論理的な思考」というイメージを自在に思い浮かべれば良い)。

と明言しているので、彼の考える論理的な思考と世間一般でそれと考えられている論理的な思考に乖離があったとして、何ら不思議でない。

折しも、次のようなエントリが先ごろ話題となった

nazology.net

曰く、プログラミング時には脳内で数学や論理を思考するときに活性化する部分ではなく、むしろ会話時と同じような部分に活性化がみられたという記事である。

これは個人的な経験にも近い。僕はプログラミングのロジックを読む・組む際に、そこに流れを意識している。このような名前のコンポーネントがあり、このようなAPIが外部に公開されているのだから、このように使われることを想定されているのだろう。このChange Setsで、これまで別のExecutorでパラレルに実行されていた処理が単一のExecutorに積まれるように変更されたということは、これは順序に意味があるということなのだろう。挙げるときりがないが、多くのプログラマはこのように処理の流れにストーリーを感じているはずだ。なので、熟練のプログラマの差分は名前、処理、コミットの単位にすら強いメッセージを感じるし、自分が何を書いているのかも理解していないプログラマの差分はレビュワーにもひどく読みづらい。もうお分かりかと思うが、この一連の流れは論理的思考そのものである。

論理は、自分たちが思いも寄らない状況に置かれた際の道しるべとなる。巨大なプロジェクトに突然放り込まれたとき、難解なバグに対峙したとき、我々はまずどこかに取っかかりをみつけ、それから論理の流れを追って二分探索してゆく。凡人は論理的思考を絶対に放棄してはならない。

最後に、僕も彼の境地にいつか達してみたいという思いはある。なかなか、頭の中で大きな設計ができた後も、

コンピュータの前に座って、キーボードの上に両手を置けば、後はあまり考える必要はない。自動的に手がキーボードを打ち、プログラムを入力して完成させてくれる。

とはいかない。どのくらい書けばここに至るのか。精進をつづけたい。

月が綺麗ですね

新しい職場で仕事がはじまって、毎日英語に悩まされています。必要とされる会話能力にここまでギャップがあるとは…もはやチームでは僕だけ小学生扱いです。何とか技術の方で信頼をリカバリするしかありません。

もっと早くこう、人類が第2・第3言語を覚えることなくコミュニケーションを取れる時代は来ないものでしょうか。ほんやくコンニャクというんですか?令和時代にはもっとよい例えがあるかも知れませんが、とにかくお互いにそれと意識しなくとも意思疎通を図りたい。

もっと言うなれば、それぞれの言語でそのまま伝えてそれを各自翻訳というのがそもそもまどろっこしい。言葉として伝達する以上、情報のロスや誤解の余地があったりするわけですね。なんとか意思というか情念そのものを伝えられないだろうかと思います。これは適切な喩えではないかも知れませんが、プログラミング言語にも抽象構文木というものがありますね。各言語の細かい文法や作法を取り払い、意味情報のみを抽象化した木構造です。これをそのまま伝えてそのまま解釈してもらえたら誤解の余地はかなり減るのではないか、などと思うわけですね。

凄く古いのですが、僕が高校生のときにファイナルファンタジーXというゲームがありました。そのエンディングで、主人公ティーダが消えてしまう前に、ヒロインのユウナに向かって

「ザナルカンド案内できなくて、ごめんな」

っていうと、ユウナが

「…ありがとう」

って答えて、そのまま抱きしめるシーンがあるんですが、制作陣のインタビューによれば、北米版が出る際にアメリカ人スタッフに

「ここは "Thank you" はおかしいです」

と指摘されて "I love you" と訳されるんですね。これに対してプロデューサーが

「あの『ありがとう』はそういう意味なので、これでよい」

とOKを出すんです。これは僕の中で非常に強い印象として残っています。言葉や表現はまったく異なるのに、伝えたい情感は同じなんですね。 この「ありがとう」から "I love you" は、2020年の素晴らしい機械翻訳をもってしても出てこないのではないかと考えます。

qiita.com

何年か前にこの記事を拝読して、最近ではディープラーニングを使った機械翻訳がホットな話題であると知りました。 僕は自然言語処理はまったく専門ではないので、正しく理解できているか甚だ疑問ではありますが、色々なサイトを読む限り、このRNNというのは入力層と出力層の間の中間層の結果も一緒に次の入力に伝えることで、いわば「コンテキスト」を理解した上で次に出現する可能性の高い単語を選ぶことができるものなのかなと考えました。

そうするとやはり、このAIから "I love you" を引き出すためには、この会話をしている二人の関係性、話している状況、お互いの感情の高まりなどをコンテキストとして伝えなくてはなりません。そのようなことは現実的に可能なのでしょうか。それともすでに先行した研究があるのだろうか。

折しも、大学院の単位はほとんど取りきってこれから1年と数ヶ月使って修士研究に取り掛かるところで、出願時に教授と話したテーマとこの1年弱で学んできたことを総合してテーマを絞ろうかという時期であります。かねてより機械学習にも自然言語処理にも興味があったので、当初考えていた研究テーマにこのような要素を加えてみても面白いかもしれないな、などと考えておりました。気になったキーワードで論文を調べてみようと思います。

コンパイラ自然言語処理ディープラーニングも専門ではない大学院生の妄想でした。おかしなことを申していたらご指摘ください。ほいでは。

AmazonのSoftware Development Engineerになった

AmazonのSoftware Development Engineerになりました。

久しぶりにプログラミングが職責の第一義であるロールに戻ってまいりました。クビにならないように必死で頑張りたいと思います。詳しいことはまた追々。

コープデリの宅食よいです

TL;DR

コープデリデイリーコープとてもよいので、ごはんを作る暇がない人、外に出たくない人は活用しまくるとよいと思いました。

ロックダウンやばい

緊急事態宣言からひと月が経ちました。我が家は6歳と2歳のふたりの子供の面倒をみながら、夫婦とも在宅勤務しています。これがまあヤバイ。成立してないです。気が狂いそうです。

在宅勤務それ自体は問題ではありません。我がチームは元々裁量労働で、特に必要性のないときは1年前から積極的にWFHしていました。ただそれは、あくまで子供たちが家に居ないから成立していたわけですね。いまは、早起きして人気がまばらなうちに子供らを散歩につれていき、日中はひたすら仕事。夕方早めに切り上げられる日には夕食前にもう一度お散歩にいく。それ以外はひたすら家にこもる生活です。

子供たちも不満ですね。「はい!起きて!走って!(パッジェーロ…パッジェーロ)」って、犬じゃないんだから。もっとこう、ムードってもんがあるでしょうと。なので折角外出しようと言っても「今日は行かない!」とヘソを曲げ、案の定2時間後には「おぞどいぎだああい😭」と発狂するわけです。ところがどっこい、我らは勤務中なんですよね。以前と変わらぬお給料をいただいているので必死です。子供らにいちいち構っていられないので、求められるままに、YouTubeで誰かがアンパンマンを動かすだけの虚無を一日中流すことになります。うーん、困った。

子供らのごはんがやばい

不思議でしょうがないんですが、完全WFHになったことで以前より却って忙しくなりました。これは仮に子供らがいなくても、です。

なんででしょうね。起きて即始業して終業時間ギリギリまで働けるから?MTG10秒前まで前のMTG出られるから?とにかく忙しい。そこで困るのが子供たちのごはんです。とにかく針の穴を通すようなスケジュールで仕事をしているので、子供たちのごはんを作る暇がありません。毎日西友のみなさんのお墨付きカップ焼きそばを食わすわけにもいきません。Uber Eatsでもいいんですが、ファミレスやマクドばかりは飽きちゃうし、塩分とか心配です。何より時間が非常にコントロールしづらい。

コープデリ

はい!前置きが長くなりました。そこでコープデリです。簡単にいうと、生協の宅食サービスです。これがすごい。

f:id:fushiroyama:20200505142012p:plain
デイリーコープ

これが実際の画面です。見てください。いくつかあるメニューから、好きなおかずやお弁当を、好きな日(月〜金)、好きな個数で選んで注文することができます。 お気づきかもしれませんが、今週はゴールデンウィークであるにも関わらず月〜金ならいつもどおりお弁当を届けてくれます。

これが実際のお弁当です。おかずが多い!野菜が多い!てかうまい! 我が家では「デイリーコープ」という、毎日でも注文できる1プランを使っています。お弁当は「舞菜おかず」「舞菜しっかりおかず」「舞菜御膳」「生野菜サラダ」をそれぞれ1つずつ、計4種類を月〜金までお願いしています。我が家では取っていませんが、減塩メニューもあるので嬉しいですね。うちは毎日午前11時ごろ届けに来てくれるので、お弁当の数を×2にしたら晩ごはんも作らなくてよいかもしれません2

お値段は、おかずが500〜600円ほど、これにサラダで一日あたり2000円ぐらいです。これを高いとみるか安いとみるかはご家庭によると思いますが3、我が家には非常にありがたいです。これで、夫婦共働きしつつ栄養バランスも塩分濃度もきちんとしたものをチンするだけで出せるわけですから。お昼ごはんを食べさせるときの罪悪感がなくなりました。

加入が鬼門

ということで興味を持った人は是非利用してみてください。共働きに限らず、このご時世ひとり暮らしでもガンガン利用すべきだと思います。

で、加入がちょっと面倒です。僕は次のステップで加入しましたが、これより効率的なフローももしかしたらあるかもしれません。

  1. デイリーコープの「組合員でない方へ」から資料請求へ飛んで、コメントに組合員になりたい旨書いて送信する4
  2. 電話がかかってくる。「ご自宅に伺って説明を…」と言われるので拒否すると加入フォームが送られてくる
  3. 500円組合費をデポジットし、数日すると組合員カードが送られてくる
  4. インターネットから注文するためにeフレンズに加入する
  5. ログインしても、なぜか数日間デイリーコープにジャンプできない5
  6. デイリーコープが押せるようになっても、そこから資料請求のページにしか行けないので、今度は組合員番号を入れてデイリーコープに加入したいとコメントを送る…
  7. 電話がかかってくる。「ご自宅に伺って説明を…」と言われるので拒否すると「じゃあこれで加入としますね」と言われる。良いのかよ。
  8. 翌週になるとeフレンズから注文ができるようになっている
  9. 翌々週から届く

一応公式のフローはこれっぽいです。

とにかく、2回も電話がかかってきて飲みサーの大学生ばりに直接会いたがってくるので、それは「時勢柄、対面で人と会うのを避けておりますので…」とか何とか言っておくと次のイベントに進むことができますので耐えましょう。

まとめ

とにかく、届き始めたら大満足です。最初に一週間の配送スケジュールを立てると、特に変更がない限りそのスケジュールで次の週からずっと届きます。お弁当は発泡スチロールに保冷剤入りで、さらに発泡スチロールを保冷バッグで保護した上で届けられます。うちはオートロックですが、管理人さんに声をかけて玄関先に前日の発泡スチロールを出しておけば、勝手にコミュニケーションして玄関先で交換しておいてくれます。お弁当を作ってくれている方、配送員さんに感謝ですね!

望むらくは、コープデリのシステムを運営しておられる方がこれを目にしたら、すべてのフローをオンライン化してくださるとありがたいです。


  1. 毎日注文しなければならないわけではありません。週3から利用可能と書いてあるようです。

  2. 何時に来るというのは保証されていないそうです。飽くまでサービスとしては「夕食宅配」らしいので注意してください。

  3. 正直、マクドすき家でも家族分注文すると2600円ぐらいかかっていたので、金銭的にも普通に安いと思っています。

  4. どうしても直接加入申し込みをする手順が見当たらなかった…

  5. FAQによると加入直後に選べないのは仕様っぽいので、週次バッチが走っているのか、ひょっとすると人力で有効化しているのかもしれない…

ネットが遅いのでIPv6 IPoE + DS-Liteにした

TL;DR

BB.exciteコネクト(IPoE接続プラン)1DS-Lite対応ルータで月額700円(税抜)でインターネットが速くなったのでフレッツ光が遅い人は試してみてください。

IPv4 PPPoEが遅い

本格的に在宅勤務が始まったが、自宅のネットが遅すぎて業務に支障をきたしていた。

どうもIPv4 PPPoEが詰まっているようだ。PPPoEはネットワーク終端装置という部分で輻輳しやすいらしい。 いまはIPv6 IPoEというものが利用可能で、これはGWR(GateWay Router)を介してインターネットに出ていくいわばLANそのものであり高速だとか2。 "PPPoE IPoE" とかでググるとそれっぽいポンチ絵が出てくるので見てみてください。

IPv6 IPoEを契約する

電話したり契約書を郵送したりしなくてもIPoEを試せるプロバイダはBB.exciteINTERLINKを見つけた。他にもあると思うので自分だけのプロバイダを見つけるんじゃ。

PPPoEのように接続認証が利用できないのでどうするのかと思ったら、フレッツ光ネクストが開通したときに郵送されてくる「お客さまID」と「アクセスキー」をプロバイダに通知することで直接接続できるようだ。的外れな例えかもしれないけど、CATVインターネット接続はWAN側インタフェースに直接IPが割り当てられるのでプロバイダにMACアドレスを通知すると思うんだけど、あんな感じのイメージで捉えた。 で、郵送でしか送られてこない書類なんてもちろん失くしてしまったので116116に電話して再度郵送してもらった。今度はちゃんとスキャンしてDropboxに保存しておいた。

無事お客さまIDとアクセスキーが届いたらプロバイダでIPoE契約をする。1時間〜半日ほどで使えるようになるようだ。待っている間も開通後も既存のPPPoE接続に一切の影響がないので気軽に申し込むことが可能。

DS-Lite (IPv4 over IPv6)でIPv4も利用する

IPoEが開通した時点でIPv6でサービス提供しているサービスはすべて利用できる。YouTubeNetflixIPv6で利用できるし凄く速い。 ただ、IPv4でしか利用できないサービスは一切利用できない。ここでDS-Liteという技術を利用して、IPv6パケットはそのままIPv6インターネットへ、IPv4パケットはIPv6カプセル化されてAFTRと呼ばれる出口でNAT変換されてIPv4インターネットへ出ていくようにすることができる。つまりきちんと設定さえしてしまえば、利用側はIPv6だのIPv4だの意識することなくインターネットに接続できるわけだ。これはGeekなページのDS-Liteの仕組みが図もあってわかりやすかった。

DS-Liteを利用するには対応ルータが必要となる。プロバイダのIPoE契約時に必ず対応ルータの一覧があると思うけど、手持ちのRTX1100/RTX1200ともにDS-LiteのためのIPIPトンネル設定が可能だったので追加コストゼロだった。まだ持ってなくてYAMAHAルータの設定に抵抗がない方は、RTX1100は中古で3000円ほど、RTX1200は中古で10000円ほどで手に入ったりするのでオススメ(ホンマか?)

ということで非常に速くなりました!朝から晩まで、これまで特に使い物にならなかった夜9-12時ぐらいのピークタイムも含めて上下とも安定して70Mbps以上出ます3

RTX1100/RTX1200でDS-Liteの設定

以下、RTX1100/RTX1200での設定例。いずれでも動作確認した。非常に簡単。

[RTX1200] # show config
# RTX1200 Rev.10.01.78 (Wed Nov 13 16:29:42 2019)
# Memory 128Mbytes, 3LAN, 1BRI
# main:  RTX1200 ver=b0
# Reporting Date: Apr 7 23:35:59 2020
administrator password *
login user xxxx *
security class 2 off off off
console character ascii
console prompt "[RTX1200] "
ip route default gateway tunnel 1
ipv6 prefix 1 ra-prefix@lan2::/64
ip lan1 address 192.168.11.1/24
ipv6 lan1 address ra-prefix@lan2::1/64
ipv6 lan1 rtadv send 1 o_flag=on
ipv6 lan1 dhcp service server
ipv6 lan2 secure filter in 1010 1011 1012 2000
ipv6 lan2 secure filter out 3000 dynamic 100 101 102 103 104 105 106
ipv6 lan2 dhcp service client ir=on
tunnel select 1
 tunnel name DS-Lite
 tunnel encapsulation ipip
 tunnel endpoint address 2404:8e00::feed:100
 tunnel enable 1
ipv6 filter 1010 pass * * icmp6 * *
ipv6 filter 1011 pass * * tcp * ident
ipv6 filter 1012 pass * * udp * 546
ipv6 filter 2000 reject * * * * *
ipv6 filter 3000 pass * * * * *
ipv6 filter dynamic 100 * * ftp
ipv6 filter dynamic 101 * * domain
ipv6 filter dynamic 102 * * www
ipv6 filter dynamic 103 * * smtp
ipv6 filter dynamic 104 * * pop3
ipv6 filter dynamic 105 * * tcp
ipv6 filter dynamic 106 * * udp
telnetd service off
dhcp service server
dhcp server rfc2131 compliant except remain-silent
dhcp scope 1 192.168.11.100-192.168.11.199/24 expire 12:00 maxexpire 12:00
dns server dhcp lan2
sshd service on
sshd host lan1
sshd host key generate *

ほとんどそのままフレッツ光ネクスト インターネット(IPv6 IPoE)接続 : コマンド設定DS-Lite(transix)でインターネット接続 : コマンド設定あたりから持ってきただけ。例によって、これは情報提供のみを目的としているので自己責任でご利用ください。

「AFTRのアドレス」という部分はインターリンクのFAQが参考になるけど、NTT東日本エリアかNTT西日本エリアかによって接続先が違う。このIPv6アドレスからInternet Multifeedのtransixを経由してIPv4に出ていく。診断くんとかで確かめるとtransixのsharedなIPv4アドレスに変換されていることが確認できる。

AFTRのアドレスは2つ掲載されているが、RTX1100とDS-Liteで高速化(ひかり電話なし)というサイトでkeepaliveを使って8.8.8.8へのpingの反応をみてもう片方にフォールバックする方法が書かれていて、これはオシャレだと思った。まあ片方だけでも特段困ることはないでしょう。

拠点間VPN自宅サーバをどうするか

で、今更気付いたけど、IPoE + DS-LiteではこれまでのようにネットボランチDNS4を利用できない。

これまではPPPoE接続してWAN側にIPv4グローバルIPを割り当てるppインタフェースをnetvolante-dnsでホスト名に紐付けることで名前解決していた。このホスト名をCNAMEレコードでエイリアスし、ルータの内側にあるホストにStatic NATでパケットを向けてやると、あたかも固定IPの自宅サーバのようなことが安価に実現できていたのだ。

ところが前述の通り、DS-LiteではtransixのNAT経由でIPv4インターネットに接続するので、サーバとしてIPv4の接続を受け入れるのが不可能になる。素晴らしいことに、ネットボランチDNS自体はすでにIPv6対応をしているが、利用できるのはRTX1210等の一部ルータのみに限られる。手持ちのRTX1100/RTX1200とも非対象機種となっている。誠に残念だ…

あいや、IPoEだけではなくてPPPoE契約も残して、IPoE + DS-LiteしつつPPPoE接続もして要するにこれまと全く同じ方法でネットボランチDNSを利用することは可能だ。ただ、自宅サーバの目的のため"だけ"にPPPoEの料金を支払いつづけるのはちょっともったいない気がする。とはいえ、自宅サーバはどうでもいいとして、実家と東京、東京と米国の拠点間VPNは紛れもなくこのネットボランチDNSを使って互いのホストを指定していたので、これが利用できなくなるのはかなりの痛手だ。

IPv6の固定IPを利用できるサービスなどもあるらしいと教えていただいたので、良い方法がないかもう少し色々考えてみたい。いいアイデアがあったら是非教えてください。


  1. 別にINTERLINKのZOOT NATIVEでもよい。こちらは月額1000円(税抜)

  2. 結局今は利用者が少ないから速いだけということなのか?専門家ではないので細かいところは許してくだされ。

  3. うちはVDSLなので100Mbpsで頭打ちになっている。その分安いので不満はない。

  4. YAMAHAが提供するDynamic DNSのようなサービス。これを無料で使わせてもらえるのもYAMAHAルータを使う大きな魅力。

AWS Japanで1年経った

4月1日でAWS Japanに入って1年が経ちました。とても早かったです。

ネットワークエンジニアとしてキャリアが始まり、自宅サーバに固定IPを8本引いてXenKVMで仮想インスタンスをホストして知人に有料で貸してたら海の向こうからやってきたEC2の登場に腰を抜かし、その後バックエンドエンジニアになり、Androidエンジニアになり、10年の時を経てAWSを使ったお仕事をしているのは感慨深いものがあります。

AWS Japanで働いていてよかったことは沢山ありますが、これまでとは比較にならない深度でAWSのことを理解し、様々な生のユースケースに触れられるところです。AWSのスキルは言ってしまえばいちクラウドベンダの知識に過ぎませんが、それが世界中で使われているので事実上世界で通用するスキルを身に着けていることになるのは素晴らしいことです。

僕のキャリアはスタートアップといわゆるウェブ系企業を渡り歩いてきたので、比較的シンプルな構成のアプリケーションに関わることが多かったですが、AWS Japanの技術者として色々なお客様と仕事をしていると、かつての自分には想像もつかなかったような難しい要件を求められることが少なくありません。その時に、どんな難しい場所にもぴったり合うブロックのピースを見つけられるのは、今なおAWSをおいて他にないというべき境地にあると感じます。

21世紀も20年代に突入し、エンジニアとクラウドの関わり方もまた少しずつ変わりつつあります。今年はぜひとも、自分の最大の強みであるモバイル開発の観点からもAWSの良さを伝えていけたらなと考えています。今年も宜しくお願いいたします!

そうそう、僕のチームは次の2ポジションを熱烈募集しています。ご興味のお有りの方は是非お声がけください!それでは。

www.amazon.jobs

www.amazon.jobs

心のローパスフィルタ

地殻を毛細血管のごとく駆け巡る光ファイバが空間の垣根を取り去った結果、四半世紀前なら触れることすらなかった情報に晒されるようになった。 これは幸福でも不幸でもある。

観測する限り、多くの人は自分の置かれている環境の平均値で構成されている。朱に交われば赤くなるというやつだ。 これは環境のお陰で自分が周りのレベルまで引き上げられる例も、自分自身がいわば浸透圧の合った塩分濃度に自然と落ち着く例もあるだろう。 とにかく、環境から著しく外れた存在に触れるには周囲の人間を何ホップもしなければならなかった。

ところがインターネットが魔界の界峡トンネルのように突然1ホップで次元の違う人々に出会うことを可能にしてしまった。その結果、ブラウザ越しの玄関先にはS級妖怪がゴロゴロ歩いている。テクノロジーの進化はいつも喜ばしい。問題はこれにどう向き合うかだ。

ある種の人間にとって―まあこれは僕のことなのだが―半径30m以内にいる*ように見える*人たちは、自分が到達すべき平均目標に見えてしまうことがある。こうなると不幸だ。本来は界峡トンネルを越えないと出会うことすらできなかった文字通り次元の違う存在が当然にできることを、僕はどうして努力してもなお達成できないのだろうと思い悩むことになる。立っている土台も、越えてきた屍の数も、これから対峙する課題のスケール感も違うにも関わらずだ。

結局の所、昔からお母さんに言われる「他所はよそ、家はうち」に行き着く。どこかで心のローパスフィルタで余りにも高い理想をカットしないと自分の足元もおぼつかない。インターネットは簡単に他人の人生を摂取することができ、それはアルコールのようなエンターテインメント性と常習性をもたらすが、あくまで他人の物語だ。慎ましくも愛らしい自分の人生を、諦めるのではなく、前向きに受け入れなければならない。自分の他に自分の人生の面倒を見てくれる人はいないのだから。そんなことを考えていた。