HTTPSをやめたらChromeから接続できなくなった話

ブンブンハロー、はいどーも。

HTTPSからHTTPへ

最近、わたしと友達がやっている、妖精⊸ロケット(hexe.net)というウェブサイトをHTTPSからHTTPへ移行しました。HTTPSへの移行ではなく、HTTPへの移行です。暗号化するのを、やめました。

んん??時代に逆行しているような気がしますな。Let’s encryptで無料のSSL証明書が簡単に手に入る時代だというのに、お前は一体なにをやっているんだ!

実をいうとHTTPSにも対応してます。HTTPにリダイレクトするけどな!

「保護されていない通信」ですが、何か?

常時https化が叫ばれて久しいですね!

…たったそれだけの理由で、このサイトも含めてなんとなく流されてHTTPSに対応していましたが、…これ、本当に必要なんでしょうか?

そもそも、一体HTTPSで何を保護しているというのか。わたしたちのウェブサイトには公開鍵で署名をしないといけないような、誰が書いたか(あるいは、書いていないか)が極めて重要な、そんなソーシャルな内容はありません。ついでに、このサイトは等しく公衆に公開されているものですから、盗聴されても困らないはずです。まぁ、パケット書き換えられて勝手に改竄されるのは嫌ですけど。でも、ソーシャルな内容でもないのに、わざわざ改竄する人なんか、いるのだろうか?

っていうか、実は常時HTTPSなんかしてもしょうがないから「検索エンジンでの検索結果の順位を上げます(SEOのためにHTTPS対応してね!)」とかいってHTTPSにするモチベーション作ってるんじゃないの。

疑い始めると止まらない!

うぉー、人間が憎い!

「信用できるHTTPSを売りつけてくる人間」が信用できない!

…というわけでHTTPSからHTTPにしてみました。

なぜかChromeでアクセスできない(Firefoxはできる)

設定自体は簡単です。表のnginxが、裏はgoで書かれたバックエンドに対してリバースプロキシしているという構成なので、表のnginxの設定をHTTPとHTTPSでごそっと入れ替えるだけです。

これで際限なく暗号化する潔癖症から逃れられたと思ったのもつかの間。いつも使っているFirefoxでは何の問題もなくHTTPでも表示できたのですが、Chromeでhexe.netを開いてみるとなぜか全く表示されないことに気づきました:

HTTPの方を開いても、勝手にHTTPSへなぜかリダイレクトされてしまいます。サーバはHTTPへリダイレクトし返すので、そこで堂々巡りが発生して「リダイレクトが繰り返し行われました」となってしまったようです。

元々は301でHTTPからHTTPSへ投げていたわけだから、それがChromeのキャッシュに残っていたのだろうか?と思って消してみても、効果はありませんでした。

開発者ツールの「ネットワーク」で確認してみると、301ではなくて「307 Internal Redirect」だそうな:

な、なんじゃそりゃ。307はTemporary Redirectだったはずですが…。そしてもちろん、サーバーでは307を返す設定なんかしていません。

HSTSってのが悪いのか?

そこで思い至ったのがヘッダに書かれているHSTS、一度HTTPで繋いだ時に、次以降は常にHTTPSを利用するよう要請できるという機能でした。HSTSを設定した覚えは一切ないんですが、ひょっとすると、ほら、まぁ、ね、nginxの設定をコピペし間違えるなどして昔設定したことが無いとは言えない…じゃん?

chrome://net-internals/#hstsからHSTSの設定キャッシュは削除できるはずなのですが、やはり効果はありませんでした。変だなぁと思いながら状態を確認してみると:

dynamicなんとかとstaticなんとかの値があって、staticの方にだけ意味のありそうな値が入ってます。ん…static…?

と思って調べていくと、HSTS Preload Listというものに突き当たりました。

ChromeとFirefoxで中身が違うHSTS Preload List

HSTSを指定する方法には、HTTPリクエストへ対するレスポンスのヘッダで指定する方法の他、HSTS Preloadingという方法もあるそうです。

HTTPで最初に接続した時にHSTSを要請する方法の場合、その定義から初回のリクエストは安全でないHTTPで通信しなければなりません。この初回時に改竄でもされたらオシマイです。そこでHSTS Preload Listの出番なのであります。HSTS Preload List Submissionというサイトに「わたしのサイトはHSTSに対応していますよ」と登録しておくと、なんとブラウザの中にその情報が書き込まれて、最初から安全なTLSで通信できるようになりますよ…と。段々宣伝みたいになってきたのでこの辺でやめておきますが、HSTSのRFCの著者の1人がGoogleの中の人なこと、HSTS Preload List Submissionもいかにも「公共」な雰囲気を纏ってはいますがChromium(実質Google)がやってることは指摘しておきましょう。

ここで登録されたリストは最終的に週一の頻度Chromiumのコードに反映されるようです。見てみると…:

ありました。ここでHSTSが有効とマークされているせいで、ブラウザ側でhttpからhttpsへの自動リダイレクトが行われているのでしょう。原因がわかってすっきり。…身に覚えがないけど…。

git blameしまくった結果、この行は2016年11月18日のコミットで追加されたことがわかりました。その時はまだhexe.netは持って無かった気がするので、前の持ち主の人が設定したのかもしれません。前にも使われていた事があるような短いドメイン名はこういう事もあるのでしょう…。

さて、上記のHSTS Preload List SubmissionのサイトではFirefoxでも使われていると書いてありますが、Firefoxのソースコードを参照する限り、hexe.netは入っていません。これで、FirefoxからはHTTPでも見れることが説明できました。…でも、なんで入ってないんでしょう?管理系統が別なんでしょうか。Mozillaのページには特に説明はなく、コミットが3日おきくらいに粛々となされているのは分かるのですが、この変更のソースがどこから来ているのかはコードレビューを見てもよくわかりませんでいた。コードは読めても社会がわからーーーーん!

HSTS Preload ListはWeb標準じゃないけど、Chromeのシェアは大きいから…

このHSTS Preload Listなんですが、Mozillaのページに書いてあるとおり、実はRFCとかW3C勧告のようなWeb標準ではなく、各々のブラウザが勝手に実装したりしていなかったりする「独自拡張」にすぎません。

ところで、こんなニュースがあります:

グーグル、完全HTTPS接続で安全なアプリ用ドメイン「.app」–早期登録を受付開始 – CNET Japan

.appドメインは、アプリ開発者のウェブ運営向けとして用意するTLD。例えば、「アプリ名.app」「開発者名.app」「開発会社名.app」といったURLでアプリの最新情報やダウンロード用リンク、アプリ内コンテンツなどを提供すれば、ユーザーに覚えてもらいやすい、といったメリットがあるという。

最大の特徴は、.appドメインのウェブサイトが必ずHTTPS接続となること。個別にHSTSなどの設定をする必要がなく、.appドメイン内のサイトは自動的にすべてHTTPS接続される。これにより、アクセスするユーザーの安全を手間なく確保できる。

このニュースに対応するように、Chromeの方でもFirefoxの方でも”app”というエントリが含まれています:

Chrome

# https://cs.chromium.org/codesearch/f/chromium/src/net/http/transport_security_state_static.json?cl=0193585e14d2baf5c9ae96a767c532a13973b011

    // gTLDs and eTLDs are welcome to preload if they are interested.
    { "name": "android", "policy": "public-suffix", "mode": "force-https", "include_subdomains": true },
    { "name": "app", "policy": "public-suffix", "mode": "force-https", "include_subdomains": true },
    { "name": "bank", "policy": "public-suffix", "mode": "force-https", "include_subdomains": true },
    { "name": "chrome", "policy": "public-suffix", "mode": "force-https", "include_subdomains": true },
    { "name": "dev", "policy": "public-suffix", "mode": "force-https", "include_subdomains": true },
    { "name": "foo", "policy": "public-suffix", "mode": "force-https", "include_subdomains": true },
    { "name": "gle", "policy": "public-suffix", "mode": "force-https", "include_subdomains": true },
    { "name": "google", "policy": "public-suffix", "mode": "force-https", "include_subdomains": true, "pins": "google" },
    { "name": "insurance", "policy": "public-suffix", "mode": "force-https", "include_subdomains": true },
    { "name": "new", "policy": "public-suffix", "mode": "force-https", "include_subdomains": true },
    { "name": "page", "policy": "public-suffix", "mode": "force-https", "include_subdomains": true },
    { "name": "play", "policy": "public-suffix", "mode": "force-https", "include_subdomains": true },
    { "name": "youtube", "policy": "public-suffix", "mode": "force-https", "include_subdomains": true },

Firefox

# https://hg.mozilla.org/mozilla-central/file/4d15e90af575/security/manager/ssl/nsSTSPreloadList.inc#l3893

...
apothes.is, 1
app, 1
app-at.work, 1
...

ソースコードは非公開だけどInternet ExplorerとかEdgeとかSafariとかでも似たような設定がされてるでしょう。きっと、たぶん。そうにちがいない。

curlではHTTPでアクセスできるけどきっとこれは何かの間違いでしょう:

% curl -vvv get.app
*   Trying 216.239.32.29...
* TCP_NODELAY set
* Expire in 200 ms for 4 (transfer 0xe52310)
* Connected to get.app (216.239.32.29) port 80 (#0)
> GET / HTTP/1.1
> Host: get.app
> User-Agent: curl/7.64.0
> Accept: */*
> 
< HTTP/1.1 302 Found
< Location: https://get.app/
< Cache-Control: private
< Content-Type: text/html; charset=UTF-8
< X-Content-Type-Options: nosniff
< Date: Wed, 13 Mar 2019 03:26:39 GMT
< Server: sffe
< Content-Length: 213
< X-XSS-Protection: 1; mode=block
< 
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="https://get.app/">here</A>.
</BODY></HTML>
* Connection #0 to host get.app left intact

…うーん、なんか胡散臭いと感じてしまう。

今後どうしようか

  • HSTS Preload List SubmissionRemoval formから削除してもらう
    • 数カ月後のChromeのリリースで、たぶん接続できるようになる
  • HTTPSに戻す
  • すべてを放置し、Chromeからは接続できないウェブサイトを運営していく(自称ダークウェブ)

一番最後でも、良いかなぁ。それぐらいで、ちょうどいいのかもしれない。「地獄少女」みたいで面白くない?(どうかな…)

GoogleのクローラーはHSTS Preload Listを使っていない

ちなみに、GoogleのクローラーはたぶんHeadless Chromeを動かしているけれど、HSTS Preload Listは使っていないと思います。

なんでそんなことが分かるのかというと、次の検索結果からです:

この「WebGL not supported.」はJSを実行した結果DOMに追加される文字列なので、おそらくクローラーはHeadless Chromeを動かしていると思われます。が、このメッセージが出せるということはリダイレクト地獄に陥いっていないということなので、HSTS Preload Listは使ってないと思われます。…ってことは検索結果は改竄されてるかもしれないって事だな!(?)

you can also see

世界で一番美しい容姿の美少女Vtuberおじさん

はいどうもー。
世界で一番美しい容姿の
美少女
Vtuber
おじさん
ナニモ・ナイでーす。

えー。あのぉ、
よく知らないんですけど最近vtuberというのが流行ってるらしくてですね、
かわいい少女とか少年の絵とかCGに声を当てて喋る遊びらしいんですよ。

でー、まぁ、人の仔…?
人間はそういうの(かわいい少女とか)見ると「世界一」とか「ナンバーワン」を決めたくなるじゃないですか。

ミスユニバース、みたいな? アイドル総選挙、とか。

でも、でもですよ。

人間の容姿ってやっぱり人によって趣味が違うからNo.1とか決められないと思うんですよね。

美少女にしたって、俺はロリコンだー、とか、俺はボンキュボンが良いとか、
そもそも俺は少年の方が好きだ、とか、女装がいいとか。

キリがない。そうキリが無いわけですよ。

そこで、そこでですよ、

真っ暗なスタジオで収録してるって設定にして画面を真っ黒にしておいたので、
こう、各々の視聴者のみなさんに自分の一番好きな容姿を思い描いてもらおうかなと。

あの、声と容姿は一致していないっていうのは暗黙の了解になっていると思うので、声はそのままでいいのかなと。

キャラクター設定も人によって理想は違うし、正直考えるのも面倒くさいので自分で考えてもらえればなと。

どんな事をやってどんな番組コンテンツを配信してもらいたいかも人によって違うと思うので、
これから次の、2回目以降の配信もみなさんの想像に任せようかなと。

それではーまた。
世界で一番美しい容姿の
美少女
Vtuber
おじさん

世界で一番面白くて刺激的で扇情的な配信を次回からお楽しみに。

ナニモ・ナイでしたー。

動画の生成について

真っ黒なbg.png(640×360)を用意してから、

ffmpeg -loop 1 -i bg.png -i input.wav -c:v libx264 -pix_fmt yuv420p -profile:v baseline -level 3 -tune stillimage -acodec aac -b:a 128k -shortest tmp.mp4
ffmpeg -i tmp.mp4 -c:v libx264 -preset slow -crf 22 -pix_fmt yuv420p -c:a copy nanimo-nai.mp4

二行目が無いとFirefoxで上手く読み込めませんでした。

参考:

ほうれん草の収穫

ついにほうれん草を収穫していきます!

数日にわけちょっとずつ…と言いたいところなのですが、現実世界での忙しさから遅れてしまっているので(水はちゃんと毎日あげてましたよ!)、一気に収穫しちゃいます!

結構大きく育ちました!でもお店で売ってる農家の人の育てたほうれん草よりはちょっと小ぶり、かなぁ。

ただ「そろそろ収穫時期かな…」と思いはじめたころから、葉っぱが何者かによって徐々に食べられるようになってしまいました(写真だと奥の方とか)。この観察から今回一気に全部収穫することを選んだという所もあります。たぶん、ムクドリ?でしょうか。時期的に、たぶん虫ではないと思います。

ほうれん草を引っこ抜く時は、土を抑えて根本から引っこ抜きます。地上に出てるのと同じぐらいの長さの根っこが生えているのでなかなか驚きです。そして土もがっちりホールドしているので、丁寧にプランターへ戻します。

いぇーい。

そうそう、お店に並んでいるほうれん草はまっすぐになって袋に入っていると思うのですが、ああいう風に整理してみようと思ったら茎が折れてしまいました。…多少しなびてからパッケージしてるのかなぁ?実際に育ててみるとそんな所にも気づくので楽しいです。

収穫したほうれん草は、半分はチゲ鍋に、もう半分はおひたしにして食べました。プランター1つあたり、だいたいいつもお店で買う一袋2つぶん、といった所だろうか。わたしは野菜が大好きなので毎日たくさん野菜を食べている(し政府も推奨している)のですが、それを育てるのにいったいどれほどの広さの畑のお世話になっているのだろうか…。

ちょっと硬くて苦味が出ていましたが、それもまた美味しいものです。逆に、農家の人のつくっているほうれん草はそういう苦味が出る前に収穫してたんだな、という事がわかります。苦くても美味しいと思うんだけどな…ほうれん草の強い個性を感じる…というと表現が飛躍してるだろうか。

次はどうする!

2月中は寒いのですぐに次の種まきというわけにはいかなさそうです。つまり、悩む時間があるということだな!

次はパクチー、それを収穫したら大豆を育ててみたいかな…。大豆を育てたら、お味噌とか作ってみるのも良いかもしれません。

ホウレンソウの移植と間引き

移植(11月11日)

タネを蒔いたホウレンソウは順調に芽吹いて育っています。これがなかなか嬉しいんだな。あとで殺して食べちゃうと知っていても。芽吹いてうれしい、本葉が出たらまたうれしい。

とはいえ、タネというのは必ず芽吹くというものではありません。研究成果を出すことを義務付けられる大学院生とは違うのです。

結果として、たくさん芽吹いているところと、あんまり芽吹いていないところに分かれます。

このままでもいいのですが、せっかくなので他の混み合っているところから引っ越しに来てもらいました。

小さめのスコップで根っこを傷つけないように移植します。間違っても引っこ抜いてはいけません。双葉の状態で移植して一週間たちましたが、本葉も出てきたのでうまくいったようです。よかったよかった。

そうそう、このブログで「移植」といえばもっぱらソフトウェアの移植でしたけど、植物の移植はtransplant、ソフトウェアの移植はportingで英語だとまったく言葉が違うらしいです。知ってました?

間引き

たくさん芽吹いてくれたホウレンソウですが、悲しいかな。すべてを育てることはできません。そうしないと、場所(日光)を取り合って大きく育ってくれないからです。

というわけで間引いていきます。根っこごと取ろうとすると隣の株の根っこを傷つけてしまうかもしれないので、ハサミでチョキン、でございます。まるで介錯だなぁと思いました(小学生並みの感想)。

before
after

せっかくなので(?)ちょっとずつ間引いていきます。「株の間は3cmあける」との事なので、数日かけてちょっとずつ間引いていこうかと思います。間引くのはundoできないから、慎重にね。

2つずつタネを置いていった結果として、2匹同時に芽生えて隣り合わせで生えているところがところどころあります。わたしはこれに「姉妹」と名付けて遊んでいたのですが、片方は間引かないといけないのかと思うと今から気が重い。

間引いたホウレンソウも食べられます。今日は普通にサラダにして食べました。草って感じの味がした(小学生並みの感想)。

そうそう、混み合っているところのホウレンソウは双葉の下のくき(株元)が長い気がします。…一生懸命、混み合ったところから離れようとしたのかもしれませんね。わたしも混み合ったところから逃げたい。

プランターでホウレンソウを育てよう

最近気づいたんです。

何でも書いてありそうなインターネットには、
…実は人間が作った情報しか存在しないことに。

でも、この地球のほとんどは人間「以外」です。地球の質量は5.9724×1024kgだそうですが、人間全ての質量(70kg * 76億)のだいたい10兆倍ぐらいあります。地球に比べたら、人間なんて、ほとんどチリです。チリ。仮にあなたが人間であるとしても、人間にばかり目を向け、人間の事ばかり考えるなんて、偏った思考にもほどがあると言ってよいのではないでしょうか。

というわけで(?)、さっそくですがプランターで野菜を育ててみることにします。同じ人間「以外」でも猫はダメだ。いいな?

育てる植物を決める→ホウレンソウ

思い立ったが吉日。しかしもう秋も中旬です。今から育てて収穫できる(あとわたしが好きな)野菜を探していくと、…ホウレンソウかなぁ。

11月上旬くらいまでは大丈夫らしい。失敗して発芽しなくても、チャンスはまだありそうです。…インターネット頼ってんじゃん。まぁまぁ。

プランターと土とタネ、あと道具を入手する

何は無くともプランターと土、タネ、そしていくつかの道具がなければどうしようもありません。

とりあえず以下のものを購入しました:

あれ…結局またネット頼りじゃねーか!まぁまぁ。近所にホームセンターもあって、ギリギリ徒歩でなんとか土を運べなくはない距離なのですが、ちょうどいい容量の土がなかったので頼ることに…。

あとは道具もいくつか調達しました。最初からたくさん買っても「必要性」みたいなのが実感できないかな、家にあるもので代用できないかな、と思って、最初はできる限り道具は買わずになんとかできないかという方針で行こうかなと。

  • スコップ
  • ペットボトル用の水差しキャップ(@100均)
  • 園芸シート(@100均; 地面のコンクリートを無駄に汚さないために必要)

土は捨てるのが大変

一応これは書いて置かないといけないことだと思うので書きます。

一般的な自治体では、土を捨てることができません。例えば、わたしの住んでいる埼玉県川口市のページはこちらに記載があります

ではどうするのかと言うと、専門の産廃処理業者や、植木業兼便利屋みたいな業者の人に頼むことになります(「住んでる地域 土 処分」とかでググってみてください)。ふつうの粗大ゴミよりお金が掛かりますし、大変です。そこは覚悟しなければなりません。ちなみに勝手に他人の敷地に捨てたりすると不法投棄ということになります。悲しい。

余談ですが、東京都で回収してくれるウィステリア・ガーデンというところは、住民からの問い合わせに「集められない」としか答えられないことにジレンマを感じていた行政の元職員の方が起業したらしい。

都市においてはプランターの土すら処分に困る」という事実は記憶しておきたいですね…うーん、世知辛い。

場所を選定する

日当たりの良さそうなちょうどいい場所を探します。

まぁ悪くないんとちゃう?

土を入れる

このプランターは下に石を敷いたりしなくてよい、メッシュがついてるタイプなので土を淡々と入れるだけです。まぁ始めなのでこの辺は頼ろうかなと…。

土も、本当は赤玉土に腐葉土やバーミキュライトとか色々配合して「作る」ものだそうなのですが、今回は最初からミックスされている「培養土」の力を借りることにしました。

…まぁ、最初だからさ。Hello world!出力するのに、ターミナルから自作するやつはいないでしょ?

37Lのプランターに25Lの土を入れたところ(足りない)、案外上のほうまで埋まったのでこれで良いかな〜と思ったのですが、あとで水をあげたら土がしぼんでだいぶかさが減ってしまいました…。

とはいえ、土を買うと余った土の保管も処分も大変そうなので、ためしにこれで栽培してみようかと思います。そう、結局問題は育ってくれるどうかなんですよね。

タネを植える

写真を撮り忘れた…というか手が土だらけなので撮れなかったのですが、タネは基本的には一直線に溝を掘って1cmおきに置いたのち、溝の土を崩して土の中に入ってもらいます。で、ちょっと手で押して踏み固める。

タネは100均で買ったのですが、緑色に彩色されていました。たぶん、間違えて落としたときにわかりやすくするためなんでしょうね。こういうのをいちいち発見するのが楽しい。

水をじゃばー

そしたら水をあげます。タネが流れないように慎重に…だけど適当にやってしまった。大丈夫かなぁ。

プランターの下から水が出てくるまで十分あげるのがコツらしいのですが、毎日そこまであげてしまって良いのだろうか…腐らない?わかんないことだらけ。

ペットボトルをじょうろにするキャップを100均で買って使ってみたのですが、このプランター(37L)にはあまりにも足りなさすぎる。もう少し大きなじょうろを導入しようかなと思います。

おしまい

タネが発芽するにはだいたい一週間掛かるそうな。…一週間経ってもダメなら再度チャレンジですかね。発芽してくれ、頼む。

次回までの宿題

  • 毎日の水のあげかたを調べる
  • 園芸シートの買い直し(もう少し大きいもの)
  • 間引きの仕方を調べる
  • 冬場プランターをどうすればよいのか調べる

こうして見ると、データセンターを開設したときのことを思い出します。理屈や皮算用だけではわからないことだらけで、でもたのしい。

 

「ガチャ」でいいじゃん

もう分かんなくなっちゃったよ。

「いいね」の経済学で動くSNSとUGM。感想とキュレーションの循環参照。広告とマーケティングが支配する商業サイト。アイドルの焼き直しみたいなYoutuber。自前でコンテンツを用意してる検索エンジン。テレビの再放送みたいな番組を自前で作ってる元本屋・現なんでも屋。

…そして、無限のリコメンデーション。

わたしが1999年に、Googleの検索ボックスにキーワード入れて遊んでたころに夢みてた「集合知」とか、「インターネット」って、こういうものだったっけ?

うーん。でもちょっと待って。

そもそもGoogle、あるいはPageRankって、そこまで良いものだった?

美化された思い出に、過ぎないんじゃないの?

PageRankは「うまく動いてた気がする」

…ただしGoogleの中身について、誰も知らなかった時は。

つまり、Googleが登場した瞬間は、たしかにうまく動いていたような気がするのです。gooよりもGoogleがいい。なるほど、”gle”の部分が効いているんだね。そんなつまらんジョークを言っていたのは今でも覚えています。

しかし。

今思い返すと、「どう優れていたのか?」という質問に対して、具体的なエピソードで答えられないのも事実です。だから、「Googleが優れていたと思っていたのも、結局、『海外のなんか凄いテック企業、面接でヤバいこと聞くおもしろ会社』という幻影と神話に、化かされていただけでしょ?」といわれたら、言い返せない。

…そもそも「優れた検索結果」って何なんでしょう?

検索エンジンは、なぜ必要か?

そもそも論に立ち返りましょう。

検索エンジンは、なぜ生まれたのか。時計を巻き戻し、1999年へ戻るのです。

時は世紀末。「インターネット」というなんか新しいもんが出てきて。そこは「広大なネットの海」で、情報がたくさんあるけど玉石混交で、その中の有益な情報を見つけ出すぞ!というロマンに溢れておりました。

なるほど、有益な情報。…有益な情報って…何なんでしょう?

思い出して見ると、インターネットと図書館が対比されていたような気がします。「たくさん情報がある」という所からのすごく雑な類推ぐらいの意味でしかなかったのかなぁと今では思いますが。しかし、「図書館の代わり」を人々はなんとなく期待していたのは事実でしょう。

で、この「海」はあまりに膨大で、しかも本棚と違って、入り組んだグラフ構造になっていて、「ネットサーフィン」しているだけでは目的の情報(目的って何?)にたどり着けない。だから、検索エンジンってやつでなんとかするんだ!というのが、元々の「物語」でありました。

なぜ(山に登るのでなく)インターネットをするのか?

まぁ確かに、今日の天気や、今日行かないといけない場所や、ゴミの出し方、MySQLのマニュアルを調べるために数文字タイプすればいいのはすごい楽です。インターネットや検索エンジンは便利だなぁ。

しかし、それらを探すのに、PageRank…つまりページ同士の繋がりの情報はたぶん要らないんじゃないでしょうか。単に、転置インデックスとせいぜいTF-IDFとか使って中身だけを見ればわかるのでは。だって、namazuだって全然イケてるソフトウェアだったじゃないですか?

じゃあなんでTF-IDFとかだけではダメでPageRankみたいなアプローチが必要だと思われているのかといえば、…

それはたぶん、「SEO」があるからですよね。

SEO、体験の共有、共同幻想、目新しさ−
あるいは、テレビはなぜ代わり映えのしない濁流を映すのか?

Googleの結果はイケてたかどうかはともかく、イケてたと少なくとも私が思ってたのは事実です。そして、じゃあそこからどうなったかと思い出していくと、「SEO」が盛んになり、いたちごっこが始まりました。

「SEO」は、検索エンジンの結果の順位を、ページを作っている側が操作して「1位」になってやろうという行為です。

SEOがなんで行われるのかといえば。それは、みんな検索エンジンで読むページを探すから、ですよね。そこで目立って、人気のページになりたい。人気になるとなんで嬉しいのかといえば、サービスを使ってもらったり、読者になってもらって、もっと人気になって有名サイトになりたいから。

有名サイトであれば、その人気を、広告や影響力を通じてお金に変換できる。

そういう、「資本主義」の乾いた仕組みがあるからです。

だから、みんなが検索エンジンではなくSNSで情報を探したりするようになれば、SNSでバスる「フォトジェニック」とかのアプローチに変わる。スマホの「アプリ」をみんなが使い始めたら、スマホのランキングを操作しはじめる。それだけの話。

SEOも検索エンジンも、それ自体は、どうでもいいわけです。

そう。技術なんか、どうだっていいんです。「社会」で目立てりゃ、ウェブサイトでも、SNSでも、テレビでも、なんでもいい。

…というわけで、社会の話をしましょう。

この世はでっかいハンドスピナー

これは長くなるので今日は説明はしませんが、わたしの考えによると、社会1というのは大きな大きなみんなで回すハンドスピナー、あるいは盆踊りです。

みんなで一緒に同じことして、「いいね」と言い合ったり「ダメだ!」と断罪して喧嘩しあったり、そういうので一喜一憂してるとなんだか人生に「意味」がある気がしてきて、その「意味」に依存するのを「すがる」とか「大人になる」とか呼んでいる、と理解しています。(微妙にわたしの考えとは違いますが、「共同幻想」という言葉を当てた人もいます)

最近は「未知語」を検索する人が多くて、検索エンジンも未知語対策に重点を置いてるそうです。それも「社会は盆踊り」という標語の元ではすんなり理解できます。つまり、「社会の流行」です。盆踊りで皆と同じように踊ってないと「疎外感」を感じるように、同じ話題を追いかけたいのが人間、らしい。今あれが流行ってるらしい!って。何が流行っているかも、実はなんでもいい。フォトジェニックスイーツが流行ってるなら、その写真を上げて、いいねがもらいたい。流行ってる「猫の下着」の美少女イラストを描いて、いいねがもらいたい。流行ってるDeep Learningで研究して、いっぱい引用されたい。

ニュースと一緒ですよね。10年前の洪水の映像と、今日の洪水の映像、そんなに差はないけれど、今日というだけでなんとなく価値があって、世間話をするときのいいネタになる。そして、世間話ができると、人間は嬉しいらしい。

「夫 死んで欲しい」でサジェストされるのも似た話かもしれません。「共感」されたいのが人間、らしい。

で、人間ってのは社会性があって、偉いんだってさ。

無いと、病気なんだってさ。

ガチャ、あるいは「いいかげんインターネット」

わたしは、最終的にはインターネットっていうのは「己の心の中の世界を面白くしたりする」ためにあるんだ、となんとなく信じてたんだと思います。でも、どうやら、そうじゃなかったらしい。

でも。政治とか、ニュースとか、社交とか、人気とか承認とか、そういうのはもっともう、飽きてしまったのです。そういうのは、東大卒エリートで社会的地位のスペック競争に夢中な、インスタグラムに夢中な、「みんな」に任すわ…って感じ。心底うんざりしてるんです、もういいよ。

じゃあ、心の中に居場所を見出す「わたしたち」にはどんな物があったら面白いかな、と思って最近意識的にやってるのが「ガチャ」です。

検索エンジンなら、例えばあえてすでにしってるキーワードを入れて、なんか面白い結果が出ないかなと試して見たり。大半は失敗するのですが2、伝えやすい例としては、例えば「いいえ」って入れるとYahoo!が出てきて面白いとかですね。…伝わんないか。

あとは画像検索を使ったDeep Learning占いとか:

間違ってるような当たってるような
これ結果が一定しないんですよ。何で決まってんだろ。

散歩とかと似てるかもしれません。いつも見てる風景なのに、今日はこんな発見があった!こんな見方もできるのかって。

季節の歯車:人間がコントロールできないもの

「見せる側」からの例をあげます。

わたしは友達と「妖精⊸ロケット」というサイトをやっていて、絵や写真、文章などを展示(?)しているのですが、このサイトでは意図的に作品をランダムに並べ替えて表示しています。ただし、完全にランダムではなくて、写真も絵も「時間」が付いていることを利用して、一年のうちの季節に応じて円周上に並べています(これを、「季節の歯車」や「季節のしずく」と呼んでいます)

hexe.net: 妖精⊸ロケット

何が出るかはランダムですし、「キーワード検索」もできません。あえてね。でも、不思議かな、これで十分な気がしてくるのです。行き詰まった時に開いて10年前の紫陽花の写真を眺めると、色々考えが湧いてきたり。それもそれでいいじゃん、となんとなく思うのです。

「ガチャ」、つまり乱数での「ランキング」は絶対に「SEO」できないランキングであることも指摘しておきたいです。じゃんけんでランダムに出すのが絶対に相手が自分より優位に立てない「最強」の戦略なのと似てますかね。

 

みなさんは、どう思いますか。わたしは手探り状態です。

あなたはどうして、インターネットをしていますか。

あーそういえば。このブログのタイトル下に出てくる文章もガチャなんですよ。これはもう始めて12年といったところでしょうか。

  1. 例:政治、経済、サッカーチーム、学校、学会、宗教、町内会、恋愛、家族制度、SNS []
  2. 「ガチャ」ですから []

7io.orgへ引っ越した:RSSリーダ変更のお願い

(追記:Feedlyは追従するので変更する必要はありません)

最近ちょっと気分が暗いので、気分転換にドメインを変えてみました。7io.orgというドメイン名でお送りしております。今まではledyba.orgで6文字だったので、だいぶ短くなりました。

RSSリーダやブックマークに登録して居る方は、お手数をおかけしますが変更をよろしくお願いします。

引っ越し前のledyba.orgも3年くらいは維持して301(permanent)のリダイレクトを送り続けようと思います。

メールアドレスの方も、7io.orgドメインになりました。右側にあるプロファイルの下をクリックすると出てくるので、お手数ですが変更をお願いします。

7ioとは何か

7ioは、次に由来しています:

  • 人間の体は、毎秒7回の入出力(IO)をたくみに行う事で運動や思考をしているということ
  • IOは一括りにされがちだが、大きくわけると7つの分類ができるということ
  • 七福神は、それぞれ人間の願いを聞き、叶える、つまり世界に対してIOを行う存在であり、7つのIOを行う存在であると抽象化できること
  • 人間の精神は、実は7つの入出力機構に抽象化できるということ
  • このブログは、コスモスフィアで例えれば第七階層程度に相当するということ
  • 7ioは、上記のような適当なこじつけを行うには便利な3文字であること

7ioは、上記のような7ioから考えられる由来の集合の任意の部分集合の全てをさします。

たった3文字のドメイン名ですが、とても広大な意味を持つドメイン名なのです。

…というのは全部嘘で、三文字.org1を生成して空いてるやつを片っ端から探してぱっと見良さそうなやつを直感で適当に取っただけです。

もう一個の変更した理由

最近RSSリーダは正直死の危機に瀕していると思っていて、実際、アクセスのほとんどはSNS経由か検索経由なので、301で適切にリダイレクトして検索エンジンに認識させておけば、引っ越しても特に問題ないだろう、みたいな、そういう読みもあります。

  1. なんと、「三文字」は三文字なのです。 []

美少女をランダムウォークで生成し続けた

make.girls.moeは、ブラウザ上のニューラルネットワークを使って美少女を生成してくれるサービスです。すこし内部に立ち入ると、このネットワークは、162次元の実数ベクトルを受け取って、128×128の「美少女」の画像を返すことに気がつきます。今回は、そのベクトルの「ゼロ点(全要素がゼロ)」からちょっとずつランダムに動かしながら生成し続けた、40人の「美少女」の動画を作りました。

github repo


make.girls.moeで10回ぐらい「美少女ガチャ」を回してみると、いわゆる「絵を描く」という行為とはすこし雰囲気が違うと感じました。

それを言葉で説明するのはまぁ置いておくとして、「機械が美少女を生成する行為」と「人間が絵を描く行為」が違うとして、機械ででしか出来ないことはなんだろうか、と考えてみました。

このニューラルネットワークの上では、「美少女」は162次元のベクトルです。

ベクトルであるということは、ある「美少女」AとBが与えられた時に、それらを使っていろいろな演算が出来るということです。例えば、C = αA + (1-α)Bとすれば、美少女AとBをα:1-αで「混ぜ」た新しい美少女Cができますね1。これはαを変数として見ると美少女AとBの間に直線を引いて、その間にいる無数の「美少女」を「生成」する、あるいは美少女を「連続的に変化させる2」式ですが、直線じゃなくても、色々な曲線を引いて、その間にある美少女を「連続的に変化」させて「生成」することもできるでしょう。

でも、「美少女を混ぜる」ことだったら人間でも出来ます。「ベクトル空間上の美少女」を混ぜるための方法が直線だけではなくたくさんあるのと同じように、例えば「髪は涼風青葉だけど目と口は八神コウ」とか。「数学的に混ぜている」わけではありませんが、描こうと思えば色々な「混ぜ方」で描けそうな気がします。ですから、「人間は出来ないけど、機械なら出来る」という感じはあんまりしません。

じゃあ、こんなのはどうでしょう。遠くはなれた他の点だけでなく、ベクトル空間では、ある点のすぐ近くに、無数の他の点が存在します。美少女の世界で言えば、ある美少女の近くに、無数の、よく似た、しかし相異なる3「美少女」が存在すると言うことになるでしょう。これも、一見人間とよく似ている気がします。以前、犬吠埼樹ちゃんを50人描いた事がありましたが、同じ樹ちゃんではあるものの、描かれた樹ちゃんは間違いなく全員異なる姿をしていました。なんか近い感じがします。

しかし、ランダムウォークはどうでしょうか。ランダムウォークは、ある点のすぐ近くの点に、きまぐれな散歩のようにどんどん移動する運動です。

一次元空間と二次元空間では、ランダムウォークには再帰性があって、「いつかは元居た所に帰ってくる」らしいです。まぁ、「いつか」だから、「一億年後」かもしれないけど。これは、全然意味は違いますが、人間のやっていることに近い感じがします。様々な試行錯誤をして異なる美少女の絵を描きながらも、「樹ちゃん」という目標はあり、そこの近くをぐるぐる行ったり来たりしている。そんな感じがしました。

でも、三次元以上のランダムウォークには、再帰性はないそうなのです。運が良ければ元のところに戻ってくるかもしれないけど、普通はもう二度と戻ってきません。そして、その行き先は、まったくのランダム。これは人間には、たぶん難しい。オリジナルのキャラクターを描くとしても、何回も試行錯誤しながら描いてる最中に「こっちがよさそう」と思いながらなんとなく方向転換をしていくわけで、まったくのランダムな方角へ進みながら、よく似た、でもまったく別の絵を描き続けることは、たぶん難しい。でもコンピュータなら簡単です

というわけで、冒頭の動画では全く同じところから出発した、40人の「美少女」を並べました。


@0枚目

これがmake.girls.moeが定義する「美少女」の「ゼロ点」です。なんとなく「無個性」な感じするかな。そうそう、162次元中、いわゆる「属性」34次元で、残りは「ノイズ」らしいよ。個性は、ノイズ。

それぞれの美少女はすぐに異なる美少女へ「変化」していきますが、そこでとどまることなく、常に変化をし続けていきます。

@36000枚目

@60000枚目

@72000枚目

まぁ、雲みたいな感じかな。じっと眺めていると同じだけど、気がつくと変わってる。


FAQ

有用性は?

知るか。

新規性は?

お前が新しいと思った所があればあるし、なければない。

ところで「新規性のある美少女」は、居るとすればこのニューラルネットワークの中と外、どっちに居ると思いますか。


(→別の紹介

  1. 本当に「混ぜた」ことになっているかはわかりませんが、そもそも「美少女の演算」ってよくわかんないですし []
  2. ネットワークの定義見てないしそもそも比喩的な意味でしかないけど、数学的にもback propergationしないといけないからネットワーク全体を関数として見た時にも連続だよ…ね…? []
  3. 厳密に単射かどうかはわかりません []

#クソポンチ絵forまんがタイムきらら を集合知で描いてる話、あと架空のまんがタイムきらら

open-dokidokivisual.com

きららのクソポンチ絵で社会貢献!

2020までに”きららシンギュラリティ“達成へ

公式ハッシュタグ

#クソポンチ絵forまんがタイムきらら

あと一応、初期の属人性があった頃のモーメント

昔の

過去→

現在→そして子供たちに残したい未来の「きらら」へ

今期のきららアニメ面白い

今期のきららアニメ、「甘くて白い綿の花」めっちゃ面白くないですか?南北戦争時代のアメリカ南部のプランテーションで働く黒人奴隷のおんなのこ4人が主人公という設定はかなり攻めてるなと感じましたけど、「あぁ、奴隷にだって『日常』はあったんだよな」という当たり前のことを思い出させてくれて、それがまた儚くて、キラキラしてて。学校で学ぶ歴史とはまた少し違った当時のリアルな生活と、その中での「まんがタイムきらら」が織り交ぜられていて、時間を行き来しているような、そんな気持ちになります。

主人公の女の子たちの一人の子が持っている幽霊のぬいぐるみは「うらら」のマツコさんよりも輪を掛けて可愛くないし喋れもしない本当のぬいぐるみなのですが、話数を重ねるにつれ持ち主の子と大事な友情を育んでいることが分かるので、可愛いなと感じるようになってきました。わたしにも見えない友達が居るので、すごく共感します。誰にも見えなくても、大切な友達は大切な友達なんですよね。

コミックス版の煽りは「褐色多めでお送りします!」なだけあって「褐色フェチ」成分が多くてすこしセクシャルな感じはするのですが、まぁそれも「きらら」のいち側面に収まる範囲なので、わたしは許容できています。実のところ、ヌードデッサンの題材にさせてもらっています。リアルとアニメのバランスがいいですし、現実の裸はちょっと苦手なので重宝しています。

ぞいぞいぞい!

今日も一日がんばるぞい!

日曜日は物足りないぞい!

働いたら働いたぶん
本当の自分になれるんだぞい!