Spinach Forest

November, 2021

/ Restarting Extra Curricular   / Book: The Second Shift   / Webcam   / 横書き日記 - 完了   / Publishing Blog Draft Behind oauth2-proxy on Cloud Run   / 横書き日記   / Revisiting Writing   / Office   / HP C1030 Chromebook   / Alder Lake and The End Of Linux Laptop   / ... 

Restarting Extra Curricular

昼間カフェインをキメたせいか寝付けず夜中の二時。仕方ないので起き上がり braindump 活動をするものなり。

ごだごたして一ヶ月くらい途切れてしまった課外活動を再開したいが、なにをするか。

Duck 活動を再開する。ただ間が空いたせいもあってやや盛り下がってしまった。理由はいくつかある。

  • GitHub の mail notification を filter で skip inbox するようにした。ので、プロジェクトの進捗が目に入らなくなった。一体感が消えたというか。GMail の inbox に残しても邪魔なので、RSS 的に消化できるといいんだけれど。
  • トレースを実装してみたが、即座に便利!というほどでもなさそうだった。たぶんマルチスレッドで HTTPFS とかやりだすと有効なのだが、そうでもないなら負債になってしまう予感がある。
  • 若干仕事っぽさが抜けない。つまり、やれば成果はでるが、学びが少ないなという。特に高速化系。これは Duck のせいではなく自分の問題で、結局他人のために自分が得意な分野でコードを書くだけで得られる学びってのは限られてるじゃん。では SQL に詳しくなろうかな思い SQL の仕様書を (ANSI) 読んでみているが、SQL が面白くないせいなのか仕様書の出来が悪いせいなのか、どうにも盛り上がらない。

継続のための対策としては:

  • Notification を GMail の外で読む方法を模索する。
  • 覚悟を決めてトレース実装を PR し、そのあと HTTPFS を速くしてみる。
  • 他のランダムなバグを探して直す
  • SQL 仕様を通読しきる。

などがあるが・・・。どうかね。


他のやりたいことを書き出してみる:

  • VSCode のコードを読む。code-server 活動を通じて興味が湧いた。どうやってプロセス分離してるのか, extension でどこまで拡張できるのかなどが気になる。
  • Altair のコードを読む。可視化ライブラリ、どうやってデザインするものなのか見てみるのも楽しそうなので。あとレンダラを自分で書けるらしいので、それを書くのも楽しそう。

実用系: こいつらはコード書きとしては特に楽しくないが、結果が欲しい。

  • campsite の予約状況を監視する crawler. キャンセル狙いの予約を支援したい。
  • 子のためのドリル生成の自動化。奥様が手で作っているが、持続可能性のためテンプレっぽいのは機械にやらせたい気がしている。
  • Census データの可視化。Japanese/Asian がどのへんに沢山住んでいるのかを調べたい。

そのほか次点:

  • いいかげん Rust でもさわってみるか、とか。
  • ML 系をつついて罪悪感を薄めるか、とか。

やって楽しいことをやる、という今年のテーマに従い Altair のコードを読もうかな。Python のまとまった量のコードを読むのははじめてなので、なにか学びもあることでしょう。Duck は、また気が向いたらね。

そして夜の3時。さすがにもう朝は起きられないな・・・

Book: The Second Shift

|

著者 Arlie Russell Hochschild のファンなので聴いた。共働きについて書いたある種の ethnography で 1989 年に書かれている。

ある調査が明らかにした「共働き夫婦では女性の方が年間で一か月分くらい長く働いている」という事実を受け、女性は昼間に最初のシフトで働いた後家で二番目のシフトで働いてますよね、というタイトル。

本書は、まずフィールドワークで出会った 7 組の共働き夫婦を詳しくインタビューし、彼らがどのように家での労働を分担しているか(していないか)、それを夫婦それぞれはどのように受け止めているかを、夫婦ごとに章をわけて書き下す。これらの夫婦は、それぞれ異なるタイプの関係性を捉えていて、それぞれに面白い。

最初の数章は、前のインタビューや他の調査をうけ、働く女性の置かれている望ましくない身分を社会的背景の中に位置づける。

30 年以上前の本だが、夫婦のあり方とか今でも普通にありそうな話で、あんまり変わってないのかな、と思った。もちろんそんなことはなくて変わったことも沢山あるのだろうけれど、7組の夫婦のあり方が、どれも少しずつ自分の身と重なって他人事でない。自分はフルタイムの共働きじゃないんだけれど。2009 年に出た二版で追記された部分でも、調査の結果の変わらなさについて少し触れている。

安直なフェミニズムの本は男たちを大声で糾弾してうさを晴らしがちだが Hochschild にはそういうところがなく、見たものを描き出すところに注力している。そういうプロの社会学者の仕事が好き。


自分は、フルタイムで働いていた奥様に仕事をやめてもらってアメリカに引っ越してきて、 それでも奥さんはまたフルタイムの仕事をみつけて働いていたのに、 子供がうまれて一年したくらいで共働きは大変すぎると再びフルタイムをやめてもらい、 奥様は今はパートタイムで働いている。 働く女性を disempower しまくっており、我ながらろくでもない。 色々言い訳はあるが、言い訳でしかない。返しきれない貸しを抱えて生きている。

仕事を奪うというのは、収入を奪うとかやりがいを奪うみたいな面もあるけれど、それ以外にも金を稼ぐ能力を奪う、つまりある独立する力を奪う面があって、それが罪深い。自分は高校生の頃に父親が死んで、母親がフルタイムで働いていたおかげで無事大学まで行けた。そういう経験があるので、人は結婚してもちゃんと金を稼いでいた方がよいと割と心の底から思っていたはずだが、それを自分の結婚では実現できていない。Hochschild も終章近くで “The Working Wife as a Urbanizing Peasant” と書いており、根にある問題を同じように捉えているのが見て取れる。

自分の勤務先とかこのへんの tech worker だと移民でもない限り tech 共働きは割と普通で、そういう夫婦はだいたい nanny をやとっている。そうやって家事を outsource するのが、たぶん現代の(金のある)夫婦の主要な問題解決だと理解している。Nanny を雇う話は本書にも少し出てくるが、主要なツールとみなされている様子はない。なんとなく、それが 30 年の変化なのかなという気がする。

Hochschild は、nanny もまた親であり、そうでなくても nanny というのは low-paying job で、しかし/したがって nanny の子供を見てくれる nanny はいないという事実を指摘する。つまり nanny を雇うのは性差の向きに仕事を押し付けるかわりに経済力の向き(それはだいたい人種の向き)に仕事を押し付けることである。アメリカ的。この話は前によんだ他の人の本 にも出てきたのを思い出す。Hochschild もその後に書いた本で近い話題を扱っているらしいので読んでみたい(が Audible がない・・・)


自分の結婚生活の(政治的)正しく無さについて考える。そういう正しさを自分はそこそこ重視していたはずだが、なぜまたこんな有様なのだろう。

と考えると、結婚というものに心の準備ができてなくて、今でもできていないままなのだろうね。独身の若いうちから「結婚したい、子供が欲しい、こういう家庭をつくりたい」と願ってイメトレするというか、それについて考えることに時間を使ってメンタルモデルを作っておかないと、結婚して子供を持つというドラスティックな変化に備えるのは難しい気がする。割と早いうちからスッと結婚してめでたくやっている数少ない友人たちのことを思い浮かべると、程度の差はあれそういうパーソナリティを持っている。

ただそういう心構えって、ある程度現実が伴っていないと厳しいよね。つまり結婚できそうもないのに結婚するつもりで生き続けることはできないじゃん。

自分も大学生の頃くらいまではそのうち結婚とかするのだろうと曖昧な見通しを持っていたが、会社員になって早々に自分は結婚とかできなそうだな・・・と思い至った。落胆したが、同時にすごく心が軽くなったのも覚えている。叶わない願いを持ち続けなくていいと気付いたから。結婚しない、どうせできないからするとかしないとか気にしなくていい、と決めて暮らすのは、自分の精神衛生には必要なことだった。

自分にとって結婚は unlikely outcome だった。だから心構えができていないのは仕方ない。事後的にできる範囲で方向転換しつつ、残った正しくなさは受け入れるしかない。

返しきれないこの「正しくなさ」のせいで家庭が崩壊する心配はしていないけれど、結婚生活というもののポテンシャルを完全に引き出そうと思ったら若いうちから心の準備をしておく方がよかったのだろうなあ。でもそういう青春時代を過ごす並列宇宙の自分を想像するのはとても難しい。一ミリも想像できない。

Webcam

少し前に High Fidelity Remote Communication という記事を読み、 ふと仕事用の Chromebox 用に外付けの webcam を買ってみた。C925-e. 記事中で参照されているハイエンドのやつはアプリでカスタマイズする前提なので Chrome OS には不向き。

しょうじき画質や音質は自分ではわからないが、ミーティングをするのに laptop を開く必要がなくなったおかげで QoL は改善した。 カメラの視点もスタンディングデスクの高さを変えて調整できるし、色々よい。 さっさと買っておけばよかったね。ミーティングが好きではないせいでミーティングへの投資をする発想がなかった。

ただ個人的に VC のボトルネックは帯域だと思っている。 その点では Comcast より AT&T の方が良さそうと思っているが ISP を乗り換えるとかかったるすぎてやってない。

もう一つの問題は照明。これは少し前にデスクランプを設置した結果(手前から照らせるぶん)改善した。 逆に部屋の照明は背景として distracting なので VC のときは照明を消して自然光とデスクランプだけにしている。

横書き日記 - 完了

私的ブログ環境を “非公開の Wordpress.com ブログを Hugo にインポート” という従来の方式から “code-server で Hugo のドラフトを書き GitHub に push して CI で公開” という方式に移行した。

従来は Hugo にエクスポートするほかに App Engine を使って WP のデータからランダムな URL を割り振ったドラフト用のページを生成して友達に送ることもしていた。このドラフト公開用途には oauth2-proxy と Cloud Run を使うことにした。

ブログとは別に Confluence Cloud の fee tier で防備録 Wiki をつけていたが、それもこの新しいブログに統合した。(目次の下の方にひっそりリンクがある)。Confluence に書いたものは、気が向いたら手動でコピペしようと思っている。実際に参照したらそのタイミングで移行すればいいかな。


自分のブログ環境には以下のような要件があった。

  • 普段 Chromebook や Linux といったアプリの不自由なラップトップを使っているので、ブラウザの中で作業を完結したい。
  • 複数の PC から編集したい。のでデータはクラウドに置きたい。
  • ブログは書き溜めてあとで公開したい。ただし友人たちには書いたものを送りつけたい。
  • 自分だけが読む日記のようなものも同じ場所に書きたい。場所がいくつもあると書かなくなりがちなので。

自分の防備録 Wiki には以下のような要件があった。

  • やはりブラウザで完結して欲しい。
  • 読むのはウェブブラウザのタブや履歴を使ってサクサクしたいので、 閲覧と編集は別れていてほしい。(Notion はこれができない。)

WP+Confluence には以下のような不満があった:

  • 遅い! どちらもとにかく遅い!
  • WP の Gutenberg editor がめちゃ使いにくい。
  • WP と Confluence の二箇所に書く場所があるのがかったるい。

以下の点は妥協した。

  • WYSIWYG で編集するのは諦めて Markdown を受け入れた。WYWIWYG を諦めて vscode (code-server) の速度をとった。
  • 無料での運用は諦め、code-server の VM 代は払うことにした。e2-micro という一番やすいインスタンスで RAM だけ増やして使っている。$5-$10/m くらいの想定。この運用でいけると確信できたら前払いの discount を行使する予定。
  • モバイルは完全に諦めた。外出先でブログとか書かないのでいいです。

工夫したところ:

  • Messsage Passing で使っていた oauth2-proxy + Cloud Run を static file の配信に転用した。費用をかけずにドラフト公開ができる。
  • 自分専用に小さな vscode extension を書いてブログ草稿の stub ファイルづくりを自動化した。新しい記事を作る認知負荷が高いのが Hugo の弱点だったけど、これで敷居が下がった。
  • パブリック、友人向け、自分向けと三段階の可視性を実現するのに、Hugo の draft (友人向け公開) と expiryDate (自分向け公開) を併用した。

まあ大した工夫はしてないけど、大した工夫をしなくて済むならその方が保守の負担は小さくなるのでそれでいいです。例えば最初は Foam という vscode の拡張を基盤にしようかと試したものの、大掛かり過ぎる(かつ buggy) なので諦めた。

良いところ:

  • 速い! VSCode の速さプラス有償で VM を確保しているおかげで、新規記事作成、保存とプレビューも一瞬。公開は git commit + push で CI が走る都合から遅いけど、非同期なので UI がブロックされたりはしない。既存の記事への移動も速い。URL を覚えていれば Ctrl+P でインクリメンタルサーチできるし、全文検索も普通にある。WP や Confluence にあった遅さへの不満は完全に解決された。満足。
  • データソースが Git のテキストファイルなのでロックインされていない。たとえば Confluence の export は不完全で Blog を export できない。テキストファイルだとそういう不安はない。
  • VSCode 拡張で雑に UX を拡張できる。

良くないところ:

  • code-server の持続性が不安。Coder という on-premise な Github Codespaces 代替みたいなやつをやってる会社なんだけど、いかにも儲かんなくて潰れそう。ただ Codespaces 的な VSCode on Brower/Cloud はあまりに正しすぎて消えることはないと個人的には思っているので、なんらかの代替品が出てくるんじゃないかと期待している。し、最悪 VS Code を手元で使っても良い。
  • 公開がめんどくさい、というか今のところまだできていない。anemone.dodgson.org の git repo を fork しているので、時期がきたら merge back すればいいかなとは思っている。
  • 有償。
  • SSH port forwarding するのがちょっとめんどくさい。

やりのこし作業、かすかな不満:

  • Wiki 的環境の支援。新規ファイル作成は Blog 用しかないので Blog にもほしい気がしている。
  • Hugo の shortcode Wikilink をつくる。

自分は Wiki 側は編集頻度があまり高くないので、このへんは気が向いたらやります。

  • Blog のミタメのダサさ、雑さ。もうちょっとシュっとしてほしい気もする。

これは・・・ほっときます。


WP は 5 年くらい使った。この構成もそのくらい長持ちすると良いなあ。

Publishing Blog Draft Behind oauth2-proxy on Cloud Run

Hugo のような static site generator で公開しているブログのドラフトを友人など限られたユーザだけに公開したい。 Netflify Pro ($20/mo) ならパスワードつきサイトを公開できるが、そんなに費用を書けたくない。 そんなとき oauth2-proxyCloud Run で動かすと、限りなく小さな費用でブログドラフトを特定ユーザだけに公開できる。大枠の手順を以下で紹介する。

oauth2-proxy は Google や GitHub などの OAuth を任意の URL の前におけるプロキシサーバ。プロキシするだけでなく静的なコンテンツも返せるので、その機能を使って Hugo などの生成した HTML を配信する。

Cloud Run は Docker イメージを serverless で動かす環境。Serverless なので友人にブログのドラフトを読んでもらうだけならほぼ停止状態になり費用がかからない。そこで oauth2-proxy を動かしたい。

事前に必要なもの

  • Hugo などを使ったブログの Git レポジトリ
  • 適当な GCP のプロジェクト (新しく作るのが無難)

Dockerfile

適当な Hugo ブログの Git repo があるとして、そのトップレベルに以下のような Dockerfile を置く。

FROM alpine:3.13 AS build

WORKDIR /opt/draft-proxy-src
# Copy blog source 
COPY content ./content
COPY static  ./static
COPY themes  ./themes
# Binaries and config files
COPY third_party/hugo_0.89.2_Linux-64bit.tar.gz \
     third_party/oauth2-proxy-v7.2.0.linux-amd64.tar.gz \
     config.toml \
     users.csv \
     ./
# Extract oauth2-proxy. This is used by the next stage.
RUN tar xvf oauth2-proxy-v7.2.0.linux-amd64.tar.gz && \
    mv oauth2-proxy-v7.2.0.linux-amd64/oauth2-proxy .
# Extract Hugo and run it as draft mode (-F -D).
# -b sets the base URL, which is the Cloud Run endpoint.
RUN tar xvf hugo_0.89.2_Linux-64bit.tar.gz hugo && \
    ./hugo -D -F -b https://YOUR_DRAFT_DOMAIN/

FROM alpine:3.13 AS image
WORKDIR /opt/draft-proxy
# Copy generated content
COPY --from=build /opt/draft-proxy-src/public /opt/draft-proxy/public
# ... and required binary and its configuraiton file.
COPY --from=build /opt/draft-proxy-src/oauth2-proxy \
                  /opt/draft-proxy-src/users.csv \
                  /opt/draft-proxy/
# Start serving! 8080 is the default port for Cloud Run.
CMD ["./oauth2-proxy", \
     "--provider=google", \
     "--http-address=0.0.0.0:8080", \
     "--reverse-proxy=true", \
     "--authenticated-emails-file=/opt/draft-proxy/users.csv", \
     "--upstream=file:///opt/draft-proxy/public#/", \
     "--redirect-url=https://YOUR_DRAFT_DOMAIN/oauth2/callback", \
     "--client-id=XXXXX", \
     "--client-secret=YYYYY", \
     "--cookie-secret=XXXXX"]

必要なファイル:

  • Hugo ブログのソース (content, static, themes など).
  • Hugo と oauth-proxy のリリース tar ファイル (上の例では third_party/ 以下にコミットされている)
  • users.csv

イメージをビルドしてみる:

$ docker build -t draft-proxy:hello . && \
  docker run -p 8080:8080 --rm draft-proxy:hello

http://localhost:8080/ にアクセスすると oauth2-proxy の認証画面が表示される。

users.csv

users.csv ファイルには、ログインを許したいユーザの GMail アカウントが列挙されている。

user1@gmail.com
user2@gmail.com
user2@gmail.com

なお上の例では Google ログインを使っているが、GitHub など他の OAuth provider も利用できる。oauth2-proxy のドキュメント

oauth2-poxy に渡すフラグのうち --client-id--client-secret は OAuth provider から発行されたものを使う。--cookie-secret は適当に生成された ランダム文字列を使う。ドキュメンテーションでは以下のように生成している:

$ python -c 'import os,base64; print(base64.urlsafe_b64encode(os.urandom(32)).decode())'

Google 側で OAuth の認証画面を設定する。このドキュメント に従って GCP のコンソールでポチポチと設定する。

こうしたドラフトは “External User” 向けに公開する必要があり、そうした OAuth consent screen の作成にはレビューが必要なことになっている。ただし “Testing” モードにしてけばレビューは必要ないので、それがおすすめ。テストユーザには users.csv と同じアカウントを列挙すればよい。

Cloud Run の deploy

以下のコマンドでデプロイできる

$ gcloud builds submit --tag gcr.io/YOUR_GCP_PROJECT_ID/draft-proxy
$ gcloud run deploy draft-proxy --image gcr.io/YOUR_GCP_PROJECT_ID/draft-proxy --platform managed --allow-unauthenticated --region=us-west1

注意:

  • 事前に所定の GCP プロジェクトで gcloud init しておく
  • 様々な API が Enable されていない、しろと問い詰められるので、一つ一つ Enable していく。だいたい gcloud がよろしくやってくれるはず。

(Optional) Cloud Run のカスタムドメイン

Cloud Run は初期状態だと https://xxxx.yyy.run.app のような URL が割り振られる。 この URL は永続的なものなのでドラフトの URL としてそのまま使っても良いが、 もうちょっと気の利いたドメインを割り振る場合は以下のドキュメントに従い追加の設定をする。

注意:

  • 一部の region ではこの機能が使えない! Cloud Run を動かす region がドメイン割当に対応しているか、上のドキュメントで確認しておくと良い。
  • ぼんやり読むと Cloud Domains でドメインを買う/管理する必要があるように見えるが、他所で管理しているドメインも普通に使える。その場合 “domain verification” の手続きが必要。以下の資料を参照のうえ設定する:
  • これらのステップは DNS が関与するので待ち時間が長い。待ちましょう。

(Optional) CI の設定

変更をコミットして GitHub に push したら勝手に deploy してほしい。 Cloud Run のコンソール から デプロイした proxy サービスのページを開くと “SETUP CONTINUOUS DEPLOYMENT” というリンクがある。リンク先の指示に従いウェブからぽちぽちと設定すると CI が動くようになる。

注意:

  • ここでも様々な API が Enable されていない、しろと問い詰められるので、一つ一つ Enable していく。だいたい gcloud がよろしくやってくれるはず。
  • GitHub の認証が必要なので gcloud による CLI にこだわるよりはブラウザで済ませたほうがラク。

横書き日記

WordPress および Confluence からの脱出を目指して code-server を試している。code-server は要するに GitHub Codespaces の self-host のしょぼいやつ。これなら Chromebook からも使える。

目論見としては:

  • anemone.dodgson.org のドラフトを code-server で編集し oauth-protected で自分+ お友達の皆様向けに公開する。
  • Wiki っぽい個人的なメモもここに統合する。
    • 気が向いたら Confluence のメモもここに移動する。
  • Braindump もここに統合する。
  • 縦書日記もここに統合する?
  • 適当なタイミングでブランチを切って anemone.dodgson.org に push する。
    • ドラフトは公開しない。しょうもない愚痴や braindump はドラフトのままにしておく。

といったかんじ。 このページ で TODO しつつ Fragments に日記をつけていく予定。

Revisiting Writing

|

今年のはじめに自分の書き物について検討した。そのアップデート。主にツール関係。

Blog

つまりこれ。WP 新エディタのイマイチさは未だに払拭できない。

あと Fragments のように日々の細かいことを書く場所は、やはり欲しいなあと思ってしまう。これは欲しかったり止めてみたりしているのでたぶん結論は出ない類のものなのだろうけれど。

あと、最近はもう年一回 publish じゃなくてリアルタイムに出しても良いかな、という気もしている。なぜなら数年の撤退を経て自分のブログのコンテンツとしての価値は無事(?)ほぼゼロになったからである。ただ RSS はインターネット中毒者にフィードしてしまうので、無い方がいいかなと思う。読んでほしい人には今のようにメールすればよい。もし広く読んでほしいなら tweet でもすればいいし。

Wiki

色々試した結果 Confluence を使いはじめた。

良いところ: まあ、なんかメモしておく場所があるのは良いね。どうでもいい細かいコマンドとか Linux の設定とかさ。そういうやつ。

悪いところ: とにかくクソ遅い。どうにもならないレベルで遅い。編集が遅いのは百歩譲って許すとして、閲覧も遅いのはどうなんだ。

その他の発見: 書いてみると、自分のメモはコンテンツとしての価値は特にないが別に秘匿する必要がないものが大半だった。プライベートなメモはないではないが、そういうのはあまり書いていない。あと Wiki 的な hypelink は目次くらいにしか使っていないので、blog.kyanny.me 的に blog に書いても良い気はしている。特に人に読んでもらう気のない自分のような身にとってはね。

試したが板につかなかったツール:

  • Notion: 複雑すぎるのとアプリ感が強すぎブラウザで閲覧するのが Confluence 以上に向いていないので諦めた。
  • Obsidian: ウェブでないので Chromebook で仕事している身には厳しかった。あとコンテンツが URL を持ってないのもいまいち。

日記, Braindump

Docs につけていた日記は、結局書かなくなった。読み直してみると書いたほうがいいなと思うが、なんかいたに付かないのだよね。早寝するようになったせいかもしれないし、単に根気がないのかもしれない。まあ後者だろうな。というわけで未解決問題。

DuckDB 活動の記録をつける縦書日記は割と書いていて、満足している。ただ Github Issues で書く必要は、たぶん無い。

日記のバリエーションである Braindump は Confluence に書いているが、やはり遅いのがいまいち。まだ WP の方がマシ。ただこの letters をつけている WP は若干 messed up されている。WP を各種 writing の backend に使うというアイデアは、結果としてはイマイチだったね。なぜかは上手く説明できないけど。

Writing Platform

書く場所が WP / Confluence / Docs に散らばっており、かつどちらも遅い (Docs は編集は遅くないけど閲覧が弱い) のは、イマイチだなと思う。「考え事はここに書く」と決めて置けないのは、サッと書く意欲を下げている。

あと仕事や Message Passing で markdown を書いていると、まあ色々なものを md で書くのはもう受け入れてもいいかなという気がしてきた。WYSIWIG 環境である WP/Confluence/Docs のイマイチさのせいもある。

その点で GitHub Codespaces のようなブラウザ内 vscode で色々なものを書く実験をしてもいいのかもしれない。ブラウザ内 vscode は GH Codespaces に限らず色々イノベーションがおきており、Emacs 脱退以来諦めていた「なんでも書く場所」候補に期待できる。

仕事で試していた foam と組み合わせて public な書き物は vscode / markdown/ netlify に統一するのもアリかなという気がしており、仕事がヒマなうちに調査したいところ。

Office

|

週一通勤を初めて一ヶ月くらい。

同僚、あまり来てない。2割くらいだろうか。若者も来てない。若者は寂しいから会社にきたがるとか、幻想だったね。まあ来ても対して人がないから鶏と卵ではあるけれど。

対人コミュニケーションがどうとかいうけど、自分にとってのオフィスの良さはハードだよな。空間の広さ、ネットワークの速さ。割り込みの無さ(これは今だけだが)、無限メシ、無限スナック。今も会社の中庭のソファでスマホからブログしてる。こういう空間は、自宅にはない。

オフィスの最大のピュアなネガティブは、オフィスそのものではなく通勤である。完全な無駄で、しかも割とでかい。自分とか通勤インパクトを最小化してるけどそれでもやなので、車で往復2時間とかだとちょうイヤに違いない。

もう一つのネガティブは居場所を制約されるという事実だが、これは自宅で働いていても寝室に制約されているので大差ない。

こういうネガティブの総和がポジティブに勝たないと、会社来たくないよな。

対面コミュニケーションがどうとか周りからの割り込みがどうとかいうのは、今振り返ってみると相対的にはどうでもいい、とは言わないけれどより nuanced だったなと思う。VC そんなに悪くないし、たぶんリモートにコミットして環境改善に投資すればもっと良くなる。(リモートに振るなら VC じゃなくて非同期にしてほしいがそれはさておく。)割り込みは、家でもある。そして自分は割り込みがどうであれどのみち割と気が散っている。

組織はともかく個人のレベルでは、リモートライフが長引けば長引くほど適応が進んで、オフィスに行く意欲は薄れるだろう。一年前、半年前と比べたら、戻りたい人どんどん減ってるんじゃないか。そんな中オフィスを開けても、全然盛り上がらなそうだよね。ホントに来年初頭に開けるんだろうか。開けるんだろうなあ。全然現実感が無い。

HP C1030 Chromebook

|

会社の Chromebook を四年目の Pixelbook から HP C1030 というやつに乗り換える。4k の Chromebook というのは現存しないらしく、これも 1920x1280. ねえわーと思ったが、Pixelbook からハードウェア的な不調を感じるのでやむなく乗り換え。

画面が 4k でない以外は悪くはない。CPU もだいぶ速くなったらしく、スクロール、タブ切り替えなど色々と速やかになった。指紋認証もついている。

"HD" モニタは残念で、ダウンスケールして画面の情報量を増やすと普通に字が滲む。仕事で使うときは外部モニタに出すか VC するかなので許容できるけど、自分で買うのはナシだなあ。

VC といえば、ビデオ(カメラ)の品質は前より悪い。

Pixelbook は Slate がよほど大失敗だったのか後続機種が続かず、そういうことしてるからブランドの信頼度を築けないんだよ・・・と残念。さっさと新しいの出してくれー。

Alder Lake and The End Of Linux Laptop

|

ラップトップ探しをしていたら Intel がもうすぐ次の世代の CPU (Alder Lake) を出すというニュースを見かける。しかも Big / Little っぽい構成になるらしい。まじで。

ついに EAS 的なのが Linux の mainline に入るのだろうか・・・と更にニュースを眺めると、この asymmetry 構成にあわせ CPU がスケジューラのために色々なカウンタとかを提供する Thread Director というのが入るらしい。ではどんなシグナルが読めるようになるのかとワクワクしながら資料を探すが・・・。どこにも全然書いてない!"Hardware Feedback Interface" という機能の一部であることまでは文章化されているが、具体的なシグナルがマニュアルにまったく載っていない。まじか。

そんでは Intel の人が Linux にパッチ書いたりしてないかなとマニュアルに出てきた定数名などを頼りに検索すると、影も形もナシ。ほんとに?しかしよく考えると Intel にとって(というか世間の大多数の人にとって) Linux というのはデータセンターなり組み込み機器なりの OS であり、そいつら的に big-little 的な構成はあんまし意味ない。(データセンター向け CPU も同構成になるのだろうか?ならない気がするが、よくわからない。)

では誰がこの Thread Director を使ってくれるのかと言うと、Windows 11 らしい。つまり 12 世代の Intel CPU は Windows じゃないとちゃんと動かないじゃん!ええー・・・。今の所公には文書化されていない Hardware Feedback Interface の詳細も Microsoft には Intel から提供されているのだろうね。まあそうだよね。

このままドキュメントも現れず誰も Linux の Intel-Big-Little 対応をやらないままだと、Linux laptop / desktop はほんとに終了のお知らせという感じがする。まあ現状すでに終わっている(というか始まってもいない)わけだけど、バッテリーが全然もたないとはいえ少なくとも CPU 性能はちゃんと出た。しかし今後はそれも怪しくなる・・・とまではいかなくて、たぶん常に big core が優先的にタスクを受け取るのでスループットは大丈夫な気がするけど、バッテリーは今まで以上に持たなくなるであろう。

Mac OS が Intel CPU を真面目にサポートしてた頃は Darin/XNU 経由で実装の細部が漏れ出し、それを Linux が真似すればよかったかもしれない。が、それももうおこらない。

はー次の laptop は Windows か Mac かー・・・ Windows 11 使ってみたかったけどあまりに評判悪すぎだし Mac かな。いずれにせよかったりーなー・・・。


ところでふと気づいたけど Chromebook すごい困りそうじゃないこれ。Chromebook 人材が Linux をなんとかしてくれる、というのが個人的には夢展開だけど、それよりは Android の資産を持ってきて ARM に降る方が常識的だよな。どうするのかね。