Spinach Forest

June, 2023

/ マンガの読めなさ   / Morning Spinach, May   / Vision Pro   / ... 

マンガの読めなさ

マジでBLEACH初めて読んだ|ジスロマック

これを見かけてふと思い立ち BLEACH を読み始めた(電書)。でも 20 巻くらい読んだところで疲れたというか、白けてしまった。

BLEACH は 20 年前の作品というせいもあって古さが目立つが、別に BLEACH に限らずマンガはどのジャンルも類型化と先鋭化が進んだ結果、素面で読むとつらい蛸壺的表現がある。マンガを日常的に嗜んでいるとそういう蛸壺ノイズに適応するので無視できるが、間があくと鼻についてしまう。

20 年くらい前に社会人になったとき、少年誌・青年誌のマンガを読むのはやめて少女漫画と大人向け少女漫画(なんていうの?青年誌の女性カウンターパート)だけを読もうと決めた。それまではどちらも読んでいたが、金もかかるし本棚にも入らないし会社員は学生より時間もないしで、探索空間の半分をばっさり切り捨ててスループットを減らそうとした。

少年誌をしばらく読まないでいると、努力友情勝利的な価値観がくだらなく思えてくる。現実には努力と友情があっても勝利には繋がらないし、おまえらそもそも努力より謎の才能の力で成功してるじゃん。そんな作為性が鼻につくようになってシラけ、ジャンプ的なマンガを読めなくなった。ジャンプマンガを読むときはそういうのはお約束として受け流さないと楽しめないわけだが、間があくとスルーのための免疫が失われてしまう。これが最初の蛸壺ノイズ免疫消失体験だった。

そこからまた 10 年くらいして結婚して西海岸に引っ越して、少女漫画も読まなくなった。持っていたマンガは引っ越しに際し全部捨てた。以前より生活が忙しくなり妻も特にマンガを読む人でなかったせいもあり、マンガが生活から消えた。

電子書籍アプリの仕事をしていたあるとき、製品のマンガサポートを強化するプロジェクトが始まった。自分は開発に参加はしてはいなかったが、せっかくだから dogfood でもするかと久しぶりにマンガを買って読んでみた。

一番好きな漫画家だった谷川史子の新刊をホクホクしながら開くと、これが全然楽しくない。というかムカつく。なんちゅうか、結婚して家庭を持つことに対する甘さや覚悟の無さがヤバい。結婚すんの大変なんだよおまえわかってんのか!と無性に腹が立ち、読み進められなかった。

言うまでもないことだが少女漫画における甘さすなわち王子様信仰みたいのはジャンプの謎の才能バトル勝利信仰と同じで、ジャンルの様式である。それは受け流さないと読めない。おもえば10代の頃はじめて少女漫画に舵を切ったときは王子様信仰や恋愛至上主義がくだらなすぎて辟易した遠い記憶がある。当時はそれをある種の挑戦として受け取り、読み続ける中で克服したのだった。

そしていま、再びジャンプ的マンガである BLEACH を読んでみると、ムダにバトルばっかりなのはまあいい。冒頭でリンクしたレビューを読んで心の準備をしていたので。でも Rukia と Orihime の扱いに落胆してしまった。

まず Rukia. 物語冒頭で描かれていた強さや個性が Soul Society に捕まったあたりから完全に姿を消し、すっかり囚われの姫君になってしまう。

Orihime. 登場当初は乳がでかくて髪が長いベタな設定を笑い飛ばす力があったのに、いつの間にか戦隊モノの紅一点みたいになってしまう。

もっと強くて攻めたかんじにしてくれよ。Uryu とか Chad とかもっと活躍してんじゃん。よわっちいベタなステレオタイプに巻き込まないでくれよ。

囚われの姫君や戦隊ものの紅一点といった抑圧的なステレオタイプへの失望。これは「少年」ジャンプなので仕方がないというか、BLEACH に限らず多くの少年漫画が抱えている慢性的な問題なのだろうけれど、女児父親西海岸大企業勤務という立場が著しく増幅した自分の PC sensitivity と、年寄りにありがちな精神的柔軟性の欠如が重なって、このがっかり感をお約束だと受け流せない。

そんな中でかっこよさを発揮している女性キャラクター Yoruichi. ちょう強い。

Yoruichi, 最初は黒猫として登場し、そして後にめちゃ昔から生きている古株であることが明かされる。動物と年寄りの成分を頼りに抑圧的ステレオタイプを退けることができたといえる。まあ結局くノ一なんですけど。それはいいとして・・・

こういうのが言いがかりだとはわかっている。自分が対象読者ではないだけである。

では 10 代の自分が少女漫画に挑戦したように、40 代の自分も少年漫画の価値観を受け入れるメンタル・ストレッチに挑んで対象読者マインド、ノイズへの免疫を取り戻すべきなのだろうか。あまりそうは思えない。こんな抑圧的な表現ダメでしょ、というのが今の自分の立場なので、それを取り下げる気はない。

人々に BLEACH を読むのをやめろという気もない。自分は SJW ではないし、そもそも BLEACH なんて 20 年前のマンガである。 今更ケチをつけても仕方ない(つけてるけど)。自分は読まないというだけで。

むしろこれを機に現代的なマンガを読んで自分の認識を新たにするのが生産的かもしれない。きっと現代的でかつ面白いマンガもあるでしょ。マンガが楽しめないの、これはこれで悲しいんだよね。安心して楽しめるのが Disney だけっていう精神性どうなの。

が、なんだか疲れてしまったので現代マンガ修行は元気になったときにとっておき、まずは BLEACH 読みすぎで乱れた生活を立て直していこうと思います。寝不足。

Morning Spinach, May

2023-05-05

  • もう五日ですか・・・。
  • 夜型への移行を試みたが失敗し、寝不足など生活の乱れなどで発熱クラッシュし昨日は欠勤。今日は回復してきたが気力がなく欠勤。来週からは復帰したい。
  • 諸事情により寝室から kicked-out されてしまうので、リビングで作業する環境をつくりたい。ということでいくつか方法を考えたが、寝室のデスクトップの vscode server にリビングのラップトップからつなぐ方法を試してみる。いちおうシェルも使える。ターミナルはしょうもないくらい遅いが・・・。
  • 一年ぶりくらいに duckdb 活動をしてしてみようかとクローンしてビルド。
  • 最近どんなかんじなのかとビデオを冷やかす。
    DuckCon 2023 - State of the Duck - Mark Raasveldt and Hannes Mühleisen - YouTube
  • めっちゃ開発進んでんな。もうコード読んでもわからないのではと不安。
  • MotherDuck インテグレーションのためにめちゃ複雑さが高まりそうな話を以前聞いていたのが、それが起きている。たとえば AST を直列化するコードが入っている。ZetaSQL ならともかく君たちは in-process のデータベースじゃないのかい。Proto 的なのをつかわず直列化とか地獄である。そしてこのシリアライザは素人か・・・。このひとたちはデータベースの実力はワールドクラスだが他は素人っぽいのだよな・・・。
  • まあコードを漫然と眺めていてもはかどらないのでバグでも眺めましょう。
  • Issues · duckdb/duckdb
  • 550 open. このくらいでまったくビビらないのが大企業人材であるところのわたくしです。
  • 一年前は何らかの方法でこれを整形してマークダウンかなんかにしたような気がする。Markdown がいいかはさておきデータを手元に持ってきて分析したほうがよさそうなのは確かである。
  • 記録をみるとGH コマンドをつかっている。なるほど。
  • 今回は・・・前回同様 MD -> Docs といきますかね。つまりコマンドそのままもってくればよい。なお前回は 300 くらいだったらしい。
  • できた: DuckDB Issues
  • Docs にコピペ Morrita's DuckDB Issue Traige May 2023 - Google Docs
  • とりあえずタイトルからして興味がないのを strike-through していくべし。
  • というわけでトリアージを続けているが、2021 年分すら終わりません・・・。

2023-05-06

  • 体調不安から朝はスキップしたが夕方にちょっと時間ができた。トリアージなので細かいじかんですすめるべき(家計簿のトリアージはいいのか?)
  • VSCode server 経由で terminal は tunnel server 代とかいらなくて便利なんだけど、遅いなあ。やはり managed で native な ssh tunning がほしくなる。そんなんあるんか。-> あるが、とてもじゃないけど信頼できませんわ。我慢だな。

2023-05-08

  • 自分の体調が回復したとおもったら今度は妻子が風邪。ここしばらく家族で不調。
  • 出社の前にちょっとだけトリアジる試み。
  • 先日「閉じたら?」とコメントしておいたバグのいくつかは担当により閉じられていた。Bot が必要。
  • 2021 年分は終了しました・・・。2022 年分を見終わったら直し始めようかな。なお半分くらいは 2023 である。もしかしたら 2023 も眺めたほうがいいのかもしれないが、それは 2022 終了時点での気力をもって判断すべし。

2023-05-10

  • 六月分までみて 130/550 とかなんだけど、なんかバグの増加ペース速くない?
  • バグも割としょうもないのが多く、自分が直せそうのが沢山あるのはいいんだけど品質管理に不安を覚える。単純に質が低いというよりは、機能が多すぎるのだよな。そして機能同士が独立してなくて相互作用があるので、複雑さが爆発するという。ほんとにブラウザ的である。
  • ただブラウザと比べ API や機能の追加にめちゃおおらかなので、どんどん機能の surface が肥大化していく。このまま 1.0 に突入して大丈夫か?ちょっと scale back したほうがよくない?
  • Intern の子が duckdb にバカスカコミットしてるのをいて、はーワシもどっかで気楽にインターンとかしたいもんだわ、と思うものなり。当人は別に気楽じゃないんだろうけれども。
  • たぶんマイナー機能の実装が half-baked なのだろうね。世の中色々 half-baked なものはいっぱいあるのでとやかく言うものではないが、データベースで half-baked だとユーザはちょっと不安になってしまうのではないか。
  • CSV reader まわりはしょうもないバグが多い割にユーザが結構いて、直しがいがありそうである。
  • 160/550 まできた。目標の 330 までは道半ばである。

2023-05-11

  • 朝ちょっとだけ進めて 179/550. この人たちに必要なのは TPM だな・・・。

2023-05-12

  • 04:23.
  • needs-reply label が必要だと思うんだけど、あれデフォルトじゃないんだね。
  • DuckDB Lab, 名門大学発だけあって DB 人材に事欠いてないのはすごいね。いるところ(=データベースの研究室)にはいるよなー。
  • 2022 の終わりまで残り 100 件 aka 一カ月半まで来ました。しかし一カ月半で 100 件とか、なかなかのペースだね。これ破綻してしまわないか。
  • ちなみにもう 20 個くらい "閉じられるよ" といって close している。自分の感覚だとこの x3 くらい閉じていいかんじだが、そういう価値判断は保留して単なる閉じ忘れだけでこの件数・・・やはり TPM が・・・というかわたくしにクローズ権限くれたらやりますよ・・・。
  • はっきり閉じられるやつはさておき、議論が stall したり WAI ですよ、とやんわり伝えているが伝わっていなかったり、ビルドが通らないなどのサポート窓口になっているがサポートされている側が蒸発、みたいのが邪魔。
  • 今週中にはおわらせたかったが、明日明後日と早起きできるかは怪しいのであった。というか明後日は外出の用事があるからダメだな・・・。

2023-05-13

  • 04:19. カフェインなどなくても早く寝れば早く起きられるのである。
  • 2022 年分トリアージ終了!276 件すなわち半分以下でした。もう半分も軽く眺めてやってもいい気はするが、その前に直せそうな候補を整理してみようではないか。
  • Morrita's DuckDB Fixlist May 2023 - Google Docs
    既に何十個も候補バグがある。これで既に年内いっぱいくらいヒマつぶせるわ。1 bug per week として 20 個くらいだからねせいぜい。まあ古いバグなので半分くらいは obsolete でしょうが、それでも十分。2023 はほっといてバグ直しやってみるべし。
  • 時間切れ。
  • さて子が同級生の BD とかで微妙に時間があるぞ。とりあえず fork を clone のちビルドすべし。
  • full build で 90 秒! 速いマシンを買った甲斐があったねー。
  • なんか様々なノウハウがあった気がするが忘れかかっている。その手のドキュメントを整備欲しいというバグがあったが、まずは自分用チートシートの構築が先である。
  • DuckDB Dev Cheatsheet by Hajime Morita そのうち contrib しませうね。
  • Adding column with type ENUM fails when schema is not main · Issue #3076 · duckdb/duckdb
    最初のターゲットはこれです!明らかにバグ~というかんじなので。
  • まだ再現するかな? -> した。ところで CREATE TYPE って前なかったよね。ENUM 以外でも発生するのかな?ためすべし。
  • そして documentation もないねー・・・。直して理解した暁には書いてやってもよいかもしれない。
    PG にもある: PostgreSQL: Documentation: 15: CREATE TYPE
  • 適当なサンプルを試すが動かない。ENUM 以外サポートされてんのかなこれ・・・。
  • duckdb/create_type.y at master · duckdb/duckdb · GitHub
    ENUM か typedef 的なのだけサポートしている。

2023-05-15

  • 04;27. 月金は通勤ランがないので朝に軽く筋トレをしてみるものなり。
  • さて・・・typedef 的 type でも同じ問題があるので、これは alter table における type lookup の問題です。テストケースを作ってデバッグすべし。
  • というわけでテストを書くと、ASAN で死ぬわ・・・。
  • ところでコードをみると STRUCT, LIST(?), UNION も 扱えそうな雰囲気である。シンタックスがわからんが。テストケースには追加する必要があるでしょう。ついでに use type のネストもできる。再帰とか大丈夫かな・・・(大丈夫だな)。
  • ASAN はバグではあったが本題とは関係なかった。
  • なんか色々問題があるな・・・ 1) GetLogicalType() に降ってくる schema が ALTER しようとしているテーブルの schema である。これは、あってるといえばあってるが、そこを探すので良いのか?妥当なサーチオーダーは 1. テーブルの schema -> デフォルトの schema -> システムの schema とかではないのだろうか。2) そもそも user type の schema を指定できない。つまり "ALTER TABLE test_schema.test_t1 ADD COLUMN j memory.main_int" と書けない ("memory." が不正). これは syntax をさぼっているためである。あとで直すべし。
  • というわけでまず search order をなんとかすべきだが、そのロジックどっかにないんですかね。なんか昔そのへん直した気がするのだがまったく覚えていない。
  • 名前の lookup をさがすと・・・てきとうである(おもいだしてきた)。
  • https://github.com/duckdb/duckdb/pull/6141 ここでデフォルトの fallback を雑に実装している。これは特に根拠なさそうだな。適当に loosen すればよさげ。
  • CatalogEntryLookup Catalog::LookupEntry() に unused code. あとで消す・なおす。
  • 適当に lax にするだけでは治らず。
  • VSCode のデバッガを試してみると動くが・・・なんか xSAN 関係でクラッシュしがちだなあ。デバッグ中は SAN を切れということですかね。
  • step in できない・・・。
  • 時間切れ。

2023-05-17

2023-05-18

2023-05-19

  • 04:34. 手早く心拍を上げるために縄跳びをしてみたら 300 回飛んだだけで 150. これは手軽でよいのではないか。
  • さて・・・ Podcast 準備するかな。

2023-05-20

  • 04:40. 今日は 400 回とんでみた。腕が重い。
  • つづき。

2023-05-22

  • 04:50. 縄跳びし過ぎで腕が筋肉痛のため今日はあとで走りに行こうと思います・・・。
  • ひきつづき準備。

2023-05-23

  • 04:34. 軽く腕立て腹筋したのち、縄跳びを 100 回ごとに休憩をはさみ 700 回。400 回でくたばると運動量が足らないとおもってインターバル方式にしてみたけど、これだと心拍数が 120-130 くらいまでしかあがらず微妙。150 までいきたい。次回は 200 回で区切るべし。
  • さて週末したり Podcast 準備したりしているうちに PR がぜんぶマージされてました!めでたい。今日はフォローアップで CREATE TYPE で qualified name を使えるようにします。Grammar をさわらないといけません。
  • この bison/flex で生成したコードをチェックインするの、ほんとやめてほしいなしかし。一方でバージョンとかがめんどいというのは理解できるので、こういうツールこそ wasm にしてバイナリをチェックインし、クロス環境で実行できるようにしてほしいもんだわ。
  • なんかこの文法は直感的にはおかしいよな。STRUCT とかは TypeName の producdtion なのに、ENUM だけここにハードコードされている。一方で ENUM は SELECT から定義できるという狂った仕様をサポートされているらしく、それだと TypeName に入れるのは厳しいのもわかる。つまり... SQL is crazy, as always.
  • さてどこをいじるべきか...と PR を見直すと、直すべきは CREATE TYPE ではなく ALTER TABLE だった。
  • さて微妙・・・。GenericTypeName はコメントに反して qualified name をサポートしていない。一方 SELECT とかで使われる qualified name は quote とかをサポートしている。ALTER TABLE ADD COLUMN i "my_scheme.my_int" とか書けてしまうのはいいのか?まあ別にいいか(てきとう)・・・。
  • ていうかさ、cataloname.schemaname.columname は OK だが thereis.no.nested.schemanae.here なのか。つまり dot は二つまで。SQL is crazy as always....
  • そして下手に GenericType で qualified name をサポートしてしまうと、TypeName を使っている場所すべてで qualified name に対処しないといけなくなる。これはそれなりに big change じゃないですか。いきなり PR を送り付けるのもアレなのでいちおう Issue を file しておくか。
  • まず PG で挙動を確認すべし。
  • なんか CREATE TYPE myint AS numeric; とかいう時点で既に PG 互換じゃなくない? PG は CREATE TYPE mytype AS (intval AS numeric); みたいな composite type はサポートしているけど typedef 的な用途はサポートしてないよねこれ。一方の Duck は STRUCT はサポートしているが PG のような伝統的 data type はサポートしてない。互換性考慮する必要なし。
  • Feature Request: Support qualified name in TypeName · duckdb/duckdb · Discussion #7643
  • 時間切れ。

2023-05-24

  • 05:05. 目覚ましつけわすれ :-(
  • さて .y いじってくぞ。
  • これ型名だけじゃなく関数名も qualify できないっぽいな・・・。
  • うーむできん。時間切れ。やや大がかりなリファクタリングをしないといけなさげ。
  • 具体的にはいままでは雑に grammar.y に埋め込んであったコードを、grammar.y から呼ばれている C++ の "backend" 関数からアクセスできるようにしないといけない。めんどくさいな・・・。
  • 本来なら .cpp に置きたい関数をテンプレートにして .hpp におき、依存したい関数は引数で渡すか・・・。

2023-05-31

  • 05:15. 起きられず。そして WP で一週間分(といっても寝過ごし多数のため実質二日分くらい)の記録が消えてしまった。WP ちゃん・・・あんたにゃ autosave が必要だよ・・・。
  • この時間じゃなんもできないけど、せめて失われたコンテクストを取り戻し翌日に備えるべし。
  • なんだっけ? ALTER TABLE の奇妙なシンタックスの理解を深める必要があった。PG のマニュアルでも見てみるか。
  • "ALTER [ COLUMN ] column_name SET ( attribute_option = value [, … ] )" これだな・・・。
  • "SET ( storage_parameter [= value] [, … ] )" というのもあるな。
  • Bison のでだした counterexample をみると
    "First example: ALTER TABLE relation_expr SET '(' ColLabel '=' IDENT • '.' attr_name '%' TYPE_P ')' $end"
  • その文法 PG になくない・・・?
  • Duck でためしてみると
    "ALTER TABLE tbl SET(foo = bar);"
    -> NotImplementedException: Not implemented Error: ALTER TABLE option not supported yet!
  • ALTER TABLE tbl ALTER i SET(foo = bar); もおなじ。
  • つまり実装されてもおらず PG にも storage_parameter くらいしか使われていないしょーもないエッジケースである。ので、多少表現力を弱くしてもばちはあたるまい。
  • なお同じ文法をつかう CREATE TABLE tbl2 (i int32) WITH (foo = bar); は動くが・・・、おめーそれエラーチェックしてないだけだろ。CREATE VIEW, CREATE INDEX も同様のオプションをサポートしている(文法レベルでは)。
  • しかし PG のマニュアルをみると・・・けっこう色々できるね。ストレージに渡すオプションらしい。Duck がエラーをチェックしてないのは確かだが、ここが柔軟な dict になっていてほしいのは事実の模様。ただ key = value の右辺 def_arg が option の指定でそんなに厳しい必要ないだろ・・・とおもったら constraint の指定と文法をシェアしているらしい。ここで constraint 用と create/alter 一族用の表現力に差をつければいいのではないか?
  • 時間切れ。明日は早起きしたいですね・・・。
  • ていうか五月おわっちゃったよ。
  • DuckCon に申し込んでいたが、なんとその日は子の学校の林間学校、というかキャンプで親同伴なのだった。はー Duck 勢がわざわざオランダから来てくれるというのに残念。しかし親業というのはそういう楽しみをポイポイ投げ捨てながらやるものなのです。

明日

  • かるく筋トレ
  • ↑つづき

Vision Pro

Apple Vision Pro - Apple

I am super impressed. It's appealing.

I have no idea how well it will sell, or whether it is the "future of computing". It can be. I wouldn't pretend I know anything.

I am impressed, firstly because it is ambitious. They are trying to build another computing platform. It is not either an iPhone accessory (Watch) or a large screen iPhone (iPad). It is a totally different thing, and in theory it can kill existing platforms, like desktop computers.

Well, Meta's Oculus is as ambitious. However their "vision" has too much distance from their reality. The second reason for the impressiveness comes from the technical achievement. Although we don't know how well it works in practice, the technologies they showed off are novel and interesting enough. It is also very sophisticated. It demonstrates the strength of Apple both as an innovator and as a big company. I haven't felt that immense technical feat from other Big Tech peers for a while.

It feels exciting. and that excitement feels good. Things like AI and LLM are exciting for sure, but as an old person it's a bit hard to relate to these. The new computing platform is a more "traditional" new thing. It might sound weird, but this excitement feels familiar. The computing platform was supposed to change for like every decade. That moment might finally have arrived. We all have waited so long.

This familiarity gives me some comfort, even though I'd never code on this new platform. Apple fanboys will have a good time for the coming few years, and I'm jealous. And feeling jealous of the competing platform is strangely energizing. Computing platforms become less boring thanks to this. Hey competitors, work hard to catch up!