月: 2022年11月

君はNorman Y. Mineta Highwayを知っているか

何ヶ月か前のことなんだけど、Highway 85を走っていたら “Norman Y. Mineta Highway” って書いてある標識を見かけた。

ハイウェイは通常、数字で呼ばれるけれど、たまに名前がついていることもある。大体の人は名前の存在を知らないけれど、そういうことはある。なので、おっそんな名前ついたんだ、と思ったのだった。

ノーマン・Y・ミネタの日本における知名度は高くないと思うけど、地元ではとても有名な政治家で、かなり出世した人だ。名前はかなり知られている。サンノゼ空港が正式には Norman Y. Mineta San Jose International Airport であったりするようなこともある。

つい最近(2022年5月)に亡くなられたのもあって、それでついた標識なのかなぁと思ったのだった。

それでふと、これいつからある標識なんだろ?と思ったのだった。Googleのストリートビューは定期的に撮影しなおされていて、過去の画像も見えたりする。で、色々みてみるとなんと2008年の12月にはもうあるのだった。

Wikipediaを見てみたら2008年9月にこの名前がついたという情報が書いてあった。どういうきっかけなのかはよくわからないけれど。

それにしても2008年て。私がこの辺に引っ越してくるより随分前だ。2008年くらいにはもう出張で頻繁に訪れて、この通りを通った回数なんて数えきれないぐらいなのに、マジで今年になるまでこの標識のことに気づいていなかった。

やーびっくりしました、という話でした。人間の認知なんてあてにならんもんです(それは主語が大きいという話かもしれないが)

mastodonについて

ElonがTwitterを買ったことは自分にとって思った以上にショックだった。彼のやろうとしていることがうまくいくか、それがいいことなのかどうか、というのはまあ興味深い話ではあるが、それはそれとして個人的に私はElonを支持しないので、彼の支配下のTwitterの利用を段階的にやめてみることにした。このブログは自動連携でtwitterに出てくるようになると思うし、アカウントを止めるわけではないが、基本的には投稿はしないし見るのも減らしている。

と言っても、まあ完全に止められるかはわからないし、数ヶ月後に何事もなかったかのように利用を再開することもあるかもしれない、と予防線ははっておきます。自分はsocial addictなので……。

さてそういうわけでどうするかということで、ひとまず個人的なこととかはFacebookに書いてみたり、5年前にアカウントを作ったっきり放置していたMastodonのアカウントを復活させて少し投稿してみたり、しているが、これが持続可能なのかどうかはよくわからない。

twitterがもしダメだったとして、しかし今後どうなるだろうか? Mastodonとfediverse(というらしい)がそのニッチに収まるかというと非常に怪しいなという印象しかない。Mastodonは(色々トラブルはあるものの)比較的牧歌的な状態であるが、それはユーザ数が少なくて理想論的なユーザが多いからだろう。ユーザ数がふえればtwitterと同じような問題、スパムやボット、問題発言、偽アカウントなどの問題が頻発するようになるはずだ。そして分散的なネットワークであるMastodon / fediverseでは誰かを追い出したり禁止したりということを現実的にenforceすることが非常に難しくなるだろう、ということは容易に想像される。

公式アカウントの認定のような機能はMastodon / fediverse には存在しないし、ありえないとも考えられる。ただ自分のドメインで運用することで公式性を与えるということになるだろう。それでも「紛らわしい微妙な名前のドメイン名」を使ってくる人々とか、そういう多数の問題が生じることも容易に想像される。映画が公式サイトにドメインを取得して公開後に第三者が勝手にドメインを獲得できてしまうように、時限的なアカウントの乗っ取りのようなことも起こりえる。それに結局、ドメイン名の維持に必要なのは少々の登録料な訳で、金銭で認証バッヂを買える新しいtwitterとどれぐらい違いがあるのかはまあわからない。

fediverseというのはどうもblogosphereみたいなのと似たような語感に思う。そうやって「誰もが使うサービス」はなくなり、それぞれがそれぞれに分かれて棲み分けるようになるという未来像は考えられなくもない。とはいえ便利だからみんな使うようになるわけで、twitterでないにせよ、それがなくなるという未来もあんまり考えづらい……。

とかまあ考えてみるとMastodon / fediverseではない別の何かになるのかなという気がする。それはdiscordのような非公開の場かもしれないし、redditなのかもしれないし、これからできる新しい何かなのかもしれない。正直よくわからんけど、まあ新しくできた何かなんじゃないか、という気がする。


話のついでにactivitypubも把握しておいた方がいいだろうなと思って仕様もざっくりと眺めてみた。20年くらい前にRDF / RSS / Atom とかを勉強してたのを思い出すね。なんか自分でactivitypubなマイクロブログを作ってみると楽しいのかなぁ。どう考えても持続可能ではないけれど。

それにしても仕様としてはまあまあシンプルなので、このままではとてもスケールしなさそうだなという気がする。例えば、

  • いろんなドメインのオーナーが自分のMastodonインスタンスなりなんなりを立てるのは大変すぎるので、マルチホストで独自ドメインに対応したホスティングサービスは不可欠になる。今のwordpress.comみたいな感じ。Automatticとか今頃そういうのを頑張ったりとかしてるのかな
  • スパム対策。メールと同じでスパムメッセージには対策が必須になる。Akismetみたいなサービスが必須みたいなことになると思う
  • 投稿数に応じてHTTPリクエストが爆発的に増えるとやってられないので、中継・一括化のようなものが必要になりそう

とか、色々やることがあるのかもね。

yamlについて思うこと

yaml、どうしてこんなに使われているのだろうか。kubernetesにも責任があるというのはありそうな話だけど、色々考えてみるとそこまで簡単な話でもなさそうな気がする。例えばtravis-CIの設定ファイルがyamlであったりというように、この分野ではyamlは割と広く使われていたんじゃないかという気がする。思い起こせばGoogle AppEngineもapp.yamlに設定を書いていたし、設定にyamlというのは割とよくあることであった、のではないかなあ。

しかしなぜyamlなんだろうか。yamlのフォーマットには問題がたくさんあることが知られているし、自分も全く好きではない。

例えばyamlの問題の一つとして、キーに任意のデータ構造を持ってこれるという話があり、これが一部のプログラミング言語で問題を厄介にしている。またエイリアスがあってデータ構造がツリーにならない(複数の経路から同じノードに到達できる)ということがある。本質的にはグラフになっている。

一方、kubernetesなどを見てもそんなことは全く考えられていない。全てのキーは単に文字列しか考えられていないし、エイリアスがレスポンスに出てくることはあり得ない。入力にエイリアスがあった場合の処理は自分はやったことがないのでわからないけど可能なら単にコピーしていたりするだけで、循環はスキーマに合致せずにエラーを返して終わりだろう。実際のところ、kubernetesのAPIサーバはyamlもjsonも返せるようになっているので、jsonで表現できないデータ表現はkubernetesにはあり得ない。

要するにyamlである必然性は全くない。単純に、jsonみたいだがもう少し「簡単に」かけてコメントのある何かというのが望まれていて、標準的だったのがyamlだったというのが本当のところだろうと思う。

ただ本当にこれが望まれているものだったのか、というのは謎でもある。yamlは文字列も数字もクオートなしで書けるのでちょっとした変更でデータ型が意図せず変わってスキーマに一致しなくなったりとか、インデントに意味があるのでうっかりミスでおかしくなったりとか、全体的に非常にerror proneなところが大きい。やりたいことは「なんか少しだけオシャレなJSON」なのにオーバースペックすぎる。なんというか、vscodeの設定ファイルみたいな、JSONにコメントを書けるようにすると言った拡張だけするのが望まれていたんじゃないか、という気もする。

kubernetesを出すときか、別のタイミングがあり得たのか知らないけれど、何か別のフォーマット、jsonnetとかcueとかdhallとかHCLとか……なんかそういうものを作ってそれを使えるようにしておけばよかったんじゃないか、という気がしないでもない。社内のborgは独自の設定ファイルだったからyamlにする必要はなかっただろうにね。

もっとも、新しくオープンソースプロジェクトを立ち上げるにあたって設定言語を独自に策定、というのはやりたくなかったのだろうね。yamlがここまで使われているのには「それが標準規格のものだから」というのはある気がする。コメント付きのJSONを処理するためのパーサというのはどのプログラミング言語にもあるわけではないけど、標準規格のフォーマットは大体パーサライブラリがあるので。

ただいかにもstatus quoであってこれをなんとか打開することがあったりしないんだろうか……といつも思っている。そう思ってる人がいるから、結構いろんな設定言語が色々あるんだろうけども。

(Helmについても色々思うところがあるが今回はオフトピックなので次回に持ち越します)