いうサードパーティのライブラリの開発が進んでいる。github.comラッパーを作る以上のノウハウをまとめて、こういう感じのラッパーを作っておくと便利なのではないかと思う。データファイルとかを受け取るとヒープメモリが爆発四散するので、その場合はストリームの作法に従って書こう。よる畳み込みをしているのが分かる)。ドキュメントが充実しており、ライブラリの思想や使う上で必要なことは概ね書かれている。制約が型として埋め込まれており、自分がどんなコードを書こうとしているのか、常にプログラマに意識させるような作りになっている。それはごまかしが効きにくいということでもある。「サーバからデータをガサッと持ってきてババッて変換してさー」的なやり方は技術的にはいくつも穴があるが、ちょっとした作業では不問に付したい場合も多い。日々の作業をアドホックにこなしていくツールとしては使いにくい点が多い。堅牢で高性能なアプリケーションを書く上では強力な道具になりうると感じた。提供することを目的としている。したライブラリを、作業に求められている品質に応じて使い分けていくのが良いのではないかと思う。エンジニアリングの文脈では)誤解の余地が大きいので良くないのではないか、という話。いう英単語は、一般的に「繋ぐ」とか「接続する」と訳されることが多いと思う。「互いに結びつける」という意味のラテン語から来ていて、初期には「物理的に一つにする」という意味で使われていたようだ。表すのにも使われている。日本語で「接続する」と書くと、何となく媒体(メディア)を介して二つのモノを物理的に結線する様子を思い浮かべがちだ。どちらかというと「二者の間に関係性を作る」というニュアンスで理解するのが正しいだろう。「接続」と訳すのは間違いではない。壊すとか断つとかいう意味になる。断ち切るとはどういうことだろうか?そもそも「繋がり」とは何か。ここでは、互いの存在を認識した上で、媒体を介して情報(やエネルギーや社会的な何か)を交換すること、と定義してみよう。指す「繋がり」には、物理的なものだけでなく観念的なものも含まれる。断つのは「繋がり」であって「媒体」ではないということだ。あらゆる繋がりは媒体を介した交換行為を通じて実現される。媒体が断たれれば繋がりも断たれることが多いので、我々は両者を同一視しがちだ。媒体が断たれなくても繋がりが断たれることはある。この世から公衆電話網が無くならなくても、友達同士は絶交できる。「切断」と表現すると、状態がゼロイチでキレイに切り替わる様を想像しがちだが、しかしコトはそう単純ではない。媒体の接続性はそれ自身で完結する問題であるのに対し、繋がりは二者の関係性、つまりお互いが相手のことをどう認識しているかの問題だからだ。媒体に(一時的に)障害が起きると二者は一切情報を交換できなくなる。情報の一部だけがたまたま失われて届かないような場合もあるだろう。二者の繋がりは障害が起きた途端に断たれるわけではない。お互いが諦めない限り、媒体の障害が回復した時点で再び交換が行えるようになるからだ。それでも繋がりが断たれるとしたら、例えば、以下のようなことがあった場合だろう:どちらかが、相手との交換の意思を捨てる相手に通知して辞める場合も、そうでない場合もあるだろう媒体の障害が原因の場合、一定期間待っても復活しない時点で「媒体はもう二度と復活しないに違いない」と予測して諦めたのだろう(=タイムアウト)どちらかが、媒体の先にいる相手が自分との交換の意思を持っていると信じられなくなる黒やぎさんは、白やぎさんから届いた手紙を食べてしまって、しかも返事を書くのを忘れているだけなのかもしれない。それは「白やぎがそう判断した」というだけだ。この時、媒体に物理的な変化は何も起きていない。「相手が自分との関係をどう思っているか」を知るのは難しい。それを知るためにすら、媒体を介して相手にコミュニケーションを試みるよりないからだ。コミュニケーションを取らなければ家族や恋人が何を考えているのか分からず、相手に示す適切な愛情表現を選べないのと同じように。通信が正常に完了しなかったというだけだ。ネットワークという「媒体」そのものが切断されたわけではない。日常の業務では様々な障害発生ケースを念頭に置いた上で、その簡便な表現として「切断」という単語が使われている。我々はふとすると、ネットワーク経路がゼロイチで開通したり不通になったりすると考えたり、そもそも媒体が完全に正常でも通信の失敗が起きうる(片側のプロセスが応答しなくなるとか)ということを忘れたりしがちだ。何をもって「通信障害が起きている」と判断すべきかは難しい。経路が死んでいると判断...するのは難しい。その時、たまたまパケット損失が起きただけなのかもしれないからだ。通信障害が発生しているか否かは、実務的には統計量に基づいて判断するしかない。従って、上記のような「一回ごとの通信」について記述しているコードでそれに対処することはできないだろう。例外が起きたらその経路は不通と判断する、みたいなコードを書いてしまうことになる。二者の間に関係を作ったり無くしたりすることであり、二者の関係性を取り持つ媒体はその本質ではない。「切断」という語は、二者間の繋がりの有無がゼロイチで判定できるかのような誤解を生み出しがちなので、あまりよろしくないのではないか。すごく細かいことにこだわっているような気もするのだが、一度自分の考えをまとめてみるのも良いかと思って書いてみた次第。それはご愁傷様...。幕張メッセで開催された「ニコニコ超会議」だろう。万人越を動員して大盛況だったようで、今年は僕も久々に顔を出して知り合いやマストドン本の関係者に挨拶して回ったりしていたけれど、相変わらずのカオスな活気だった。