Zinnia hacks tomorrow. (2023/8)

2023/08/01 (Tue)

_ 気付けばもう8月だ。


= Next.js 合宿

_ React.js のドキュメントが残りわずかだったが飽きたのでNext.jsに進んだ。

_ Learn Next.js を読み進めたんだが90分かけてReact.jsをおさらいしただけだった…


2023/08/07 (Mon)

_ 久しぶりに本社に出社

_ 台風は真北に進路をとっている。朝鮮半島を縦断する珍しいコースだ。それだけ太平洋側の高気圧の勢力が強いのだろう


2023/08/08 (Tue)


= Tlog

_ 少し天気が下り坂で、最高気温も35℃を下回ることが多いので室温も30℃未満で どうにかなっている。

_ 台風6号は九州→朝鮮半島を縦断するような珍しいコースをとっている。 それだけ太平洋側の高気圧の勢力が強いのだろうか… と思っていたら その太平洋沖に新しい台風ができてしまった。台風が近づくと反発するのか 融合するのかがいまひとつわからんが、今のところ予報円は本州を直撃するような 感じになっている。


= 腰痛

_ 継続している。コルセットがないと辛くてたまらんということはないものの、 やはり姿勢を変えるときに痛いし、中途半端に動けるもんだから歩いたり 小走りしたりするとまたぶり返す…という繰り返しな感じだ。痛くなる一方という わけではないのでまだましなのかもしれんが


= カメラ

_ あまりの暑さで日中に外を出歩くことがほとんどないのでアクティビティが ぜんぜんない。夏の間はカメラ以外のことに注力しようとは思っていたので ある程度は折込み済ではあるものの、ここまで触らないと少し動揺する。

_ そんな調子なので関心がありつつも手が出ていないものに手を出す思い切りが 出てこない。MMF-2 (4/3→M4/3マウントアダプタ) は順調に値段が下がっているようで、 昨年末くらいは1万前後だったのが、ここ1週間くらいは7700円といったものも ちらほら見られるようになってきた。この先値上りするとは思えない タイプの製品なので、もっと待っていてもいいような気がしつつ、 35mm F3.5マクロの出番がいつまでもないのは勿体ない気もする…


2023/08/09 (Wed)

_ 視野の右下あたりがとても見づらいので何事かと思ったら久しぶりの閃輝暗点かもしれない。


= カメラ

_ 物撮りの真似事。 今回は自室でやってみた。1Fの卓袱台よりも撮りやすいかもしれない。撮影ブースとして固めてしまってもいいような気がしている。


2023/08/10 (Thu)

_ 昨日の頭痛は薬の投入が早かったおかげか軽めで済んだ。

_ 台風6号はだいぶ勢力が弱まったものの進みが遅いままらしい。10km/h というのは発達してすぐくらいのときのスピードだろう

_ 7号も直撃コースであることは変わっていないようだ。お盆どきなので帰省にも影響が大きく出ているようだ。

_ 調べものをしたり書きものをしたりでいそがしかった。


= 頭痛

_ あれ、今日も閃輝暗点? 現在17時だが視界がちらちらしはじめた。

_ 右下に広がってゆくのは昨日と一緒だ。逆「く」の字の形状もまったく一緒に見える。閃輝暗点2日連続というのは生まれて初めてか

_ 視界の外に出ていった。こんなにスピード早かったっけ… でも30分くらいかかっているようだからこんなもんか


= スマホ

_ DSDS/DSDVのものはだいたい片方がeSIMになっているようだ。nanoSIMを2枚挿すなんてのはもう流行らないのだろうか

_ そしてどれもでかい。重くはなっていないようだが液晶6インチ超えでフットプリントはかなり大きい。あんまり大きいのは好みではない…


= タブレット

_ 父に使ってもらうタブレットの選定が滞っていた。

_ iPadにこだわらなくていいと言っているので、ではNECかLenovoか… NECはやたら高いが中のSoCは中国製だし今はあんまりこだわってもしょうがないのかな…と思ったりする。頑丈で長生きできることを期待していいのなら倍近い値段の価値もあるかもしれんが、2万そこそこなら1~2年もてばよいという考えかたができないこともない

_ Lenovo Tab B10 3rd Gen にしようかな? \24,860、 Androidは12らしい。1年前と思われるモデルはAndroid11である他のスペックはだいたい一緒なんだけど、そっちはメモリが4GBあるらしい。新しいモデルは3GB… なんで減らす必要があるんだ

_ Lenovo Tab M9 ZAC30178JP こっちのほうがいいか… Android12で3GBだけど、こちらは9インチ 1340x800 なので無理がない感じがする。10インチのモデルより100gくらい軽い344gも魅力だし… ただ価格は10インチのものとほとんど同じくらいだ。とはいえ楽天でも 23,861円 らしいので高すぎるということはない

_ 9インチの方を注文した。


= なないさん急逝

_ 心不全だそうだ。びっくりした。 数日前にEVOの現地レポートを見たばかりだったのだが…

_ 格闘ゲーム関係の動画というとウメハラの切り抜きをたまに見る程度で、 昔からの格ゲー業界の人の名前は知っているけど喋っているところをあまり 知らない人も多いし、なないさんも 先日のCRカップの動画を追いかけている最中に知ったというくらいの 浅い視聴者だけど、人柄のよさが滲み出てくる物腰の方だった。 まだ若いのに…


= SF6

_ SF5はスタートでかなりつまづいてしまいユーザ離れが進んだそうだが、 SF6は好対照なスタートを切っているようだ。 デモ動画だけを見ているとインパクト(ドライブインパクト)まわりの演出が 派手ではあるが、逆に大味なゲーム性なんだろうか…? というような警戒感が あったものの、いざ対戦の様子を見てみるとドライブゲージの巧妙なつくりと 演出がうまく噛み合っていて、観戦するだけでとても見ごたえがあって楽しい。

_ またシンプルな操作が可能な「モダン」というモードがようやく搭載されたようで、 新しく参入する人の障壁が大きく下がっているようだ。 SF6が出た直後に格ゲーのプロと、格ゲー以外で活動しているストリーマーや VTuberの人達がチームを組んだ オンラインイベント(Reject Fight NightやCRカップ)がさっそく始まっていて、 モダンのおかげで格闘ゲームの経験が少ない人が (といってもFPSなどの他の ジャンルでは名の知れた方々だったりするので「ゲームが上手い人たち」 ではあったと思うけど) かなり短期間に駆け引きできるようになっていて きちんと格闘ゲームとして見ごたえのある対戦になっているというのも すごいことだと思う。モダンの功績が大きいのだろう。 プロの方々も、一部懐疑派や否定派がいるものの、 概ね待望していたものが入ったという反応が多かったように見える。 振れる技が少ないしダメージも少し下がるけど、ワンボタンでSAが出せたり、 コンボ出せたりというメリットがあり、 一方従来の操作(クラシックという名前がついている)だと、 コマンドは複雑だし完成するまでの時間で不利になるかわりに そのキャラクターにできることはすべてできるし威力も強い、みたいな トレードオフになっているようだ。

_ YouTubeのおすすめにウメハラの令和版背水の逆転劇が… みたいなものが ちらほら出てきて、またそういう大袈裟なキャプションをつけて…と、 オリジナルの「背水の逆転劇」 (EVO2004のSFIII3rdで 体力ゼロのウメハラケンがJustin春麗の千裂脚をすべてブロッキングした後に 反撃を入れて逆転勝利するという屈指の名場面) に魅了された人間の 一人としては反発に近いような感覚でちらとその切り抜きを見てみたところ、 それがCRカップSF6の決勝戦の大将戦(ウメハラケンvsふ〜どダルシム)の 動画で、まんまと魅了させられてしまい、それから 各チームの練習の風景や、CRカップの少し前にやっていた RFL の様子なども何度も見てしまうくらいはまってしまったのだった。 プロ同士がオンラインイベントで激突するのも面白いし、 格闘ゲーム初心者に近い人達がプロのコーチがつくことで みるみる強くなっていって、みんなで優勝を目指してゆく姿に年甲斐もなく 感動してしまった。

_ そしてこれはほとんどウメハラの感想の請け売りになってしまうが、 今まであまり触れてこなかったストリーマーやVTuberの方々が 一生懸命努力している姿を見て、やはり一線でやっている人達は こういうところで手を抜かないんだなあという感動とともに 偏見というか…近寄り難いものを覚えていた気持が変わってゆくのを感じるのだった


2023/08/11 (Fri)


= Tlog

_ 建物の足場はそのままだが遮光?遮音?の幕が折り畳まれていた。 もう撤去だろうか… と思ったがもうすぐ来る台風の対策なのかもしれない

_ 台風7号はかなり勢力が強くて動きが遅く、 また本州を直撃するコースになっていて、2〜3日は居座りそうな気配だ。 私の住んでいるあたりにここまではっきり近付いてくるのも久しぶりな気がする。


= 歩いた

_ 腰痛はよくなりきっていないが歩いている分にはさほど負担がないようなので 今日は北綾瀬から家まで歩いてみた。 日射しが強くて大変だがさほどの距離ではない。金町駅〜自宅の3倍くらい?


2023/08/13 (Sun)


= 携帯音楽プレイヤー

_ 母は散歩が趣味で、涼しいときには1時間でも2時間でも歩いているような 人なのだが、車の通りがない道ではポータブルCDプレイヤーを使って音楽を 聞きながら歩いているらしい。いくらポータブルといっても 携帯して歩くといったユースケースはあまり想定されていないのか頻繁に 壊れるらしい。ヘッドホン端子部分や、駆動部分など

_ ポータブルオーディオプレイヤー的なものがあればもっと軽くて小さいしいいのでは と思うのだが、母は複雑な機器には近付こうともしないし、聞きたいCDを選んで 再生ボタンを押す…以上のことをしたいとは考えていないようで、 誤操作防止のためのロックですらどこにあるのか分かろうとしないような状態だ。

_ そんな母でも違和感なく使えるものがあるのか? というと、 聞きたいものを選ぶ→CDをいれかえる、以上に分かりやすいものはなかなか 思いつかない。CD何枚分も入れられる、というのがメリットになるには、 それを選ぶための操作ができることが前提だし、CD何枚分も入るから ランダム再生で我慢しましょうというのもおかしな話だ。

_ 高齢者向け、みたいなカテゴリで探すと、 単にコストを下げて機能を単純化して、さらに1機能1ボタンにしただけ、 みたいなものが多く、 本当に高齢者が抵抗を覚える部分を丁寧に取り除いたような製品という 感じがしない。品質としてもあまりよいものではなく乱暴に扱ったらすぐに 壊れてしまいそうな作りになっていることが多い。 なお母は耳が遠くなってはいるものの、これまで使っていたCDプレイヤーや ヘッドホンがそこそこ性能のよいものだったこともあり音質の劣化には わりと敏感なようだ。私はあまり気にするほうではないので、音質を聞き分ける 耳があるというのは私には遺伝しなかったのかもしれない。

_ 安物のプレイヤーでも今時ならそこそこの音質だとは思うが、 壊れたときに同じ操作感のものを入手することはむずかしいだろう。 それは有名なメーカーであっても同じなのかもしれんが…


= メッセージ

_ 父も複雑な機器が苦手なのは同じだが、それでもなんとか慣れなければ… という意思はあるものの、表示(メッセージなど)を読もうとせず、〜〜だけ 見ておけば、気にしておけばよい、といった覚えかたになってしまう。 たとえばショッピングサイトのメッセージなど。ただサイトのデザインなんて しょっちゅう変わるし、覚えていたことを忘れるし… で、久しぶりに アクセスすると何もできない、なんてことになってしまう。


2023/08/14 (Mon)


= Ubuntu

_ ずっと先送りにしていたがサーバのUbuntuのバージョンアップをしようと思う。

_ ノートPCは20.04LTSを使っているが、それ以外のほとんどの環境は21.04を 使っており、そろそろ全体的にupgradeしたいなという気になってきた。 現在のLTSは22.04で、2022年4月に出たものらしい。Ubuntuのバージョン番号は 年.月の形式になっていることを今更知った(……)

_ ZFSのアップデートがちゃんとできるか心配。

_ Ubuntuの現在の最新版は23.04 (Lunar Lobster) らしい。LTSは22.04らしい。20.04LTS (Focal Fossa) から辿ってゆくと、20.10 (Groovy Gorilla) → 21.04 (Hirsute Hippo) → 21.10 (Impish Indri) → 22.04LTS (Jammy Jellyfish) → 22.10 (Kinetic Kudu) → 23.04 (Lunar Lobster) → 23.10 (Mantic Minotaur) となるようだ。20.04LTSは2025/04まで、22.04LTSは2027/04までのサポートらしい。

_ 外部に公開しているサーバならLTSを追うのもひとつの考えかただが、内部で使っているものだしこまめにアップしてゆくのがいいんだろうな… こういうときのupgradeってどのように進めばいいんだろう。一気に上げていいんだろうか?少しずつ上げてゆくのが正しい気もしつつ面倒だ

_ 家にある会社サーバ (形容矛盾) の zpool version は以下の通り:

# zpool version
zfs-2.0.2-1ubuntu5.1
zfs-kmod-2.0.2-1ubuntu5
pool の version は 5000 … そういえばもう今は番号で判断するのではなかったか。

_ UbuntuにおけるZFSの未来はあまり明るくないという 。昨年 zsysがインストーラから外されかけたという もあるし、23.04からはもうインストール時にZFSを選ぶことができなくなっているらしい。まあもともとインストーラ経由でZFSを入れたことがないのでその点はあまり気にしていないが、OpenZFS自体に元気がないとするとそれはそれで困る。 zsysはもうろくにメンテナンスもされていないようで… といってもそれによって何が救われているのかなどが分かっていない。ドキュメントもほとんどないしなあ

_ なんとかLTS (22.04のことと思われる) までには排除したいといったコメントもあったりするので、もう面倒見る気がないのだろう。LTSに残ったことにより厄介払いをしそこねたというところなのかもしれない。だからといって2027年まで安泰だ…ということもないだろう

_ OpenZFS の Ubuntu 22.04 向けの ドキュメント でそのあたりの話が整理されている。このドキュメントはLTS向けにしか書かないように見える。次のLTSは24.04で、Ubuntuのバージョンは年.月なので来年4月に出る予定ということになる。そう考えると22.04で留まっておくのが無難なような気もしてきた。

_ 22.04はGNOME42で、23.04はGNOME44らしい。他の変更はどんなのがあるかな?

_ GNOMEは3.xx系と、43以降というふうに分かれており、22.04に入っている42はGTKが3ベースで、次からGTK4ベースに変わったらしい。22.10からPulseAudioではなくPipewireになったとか。

_ ひとまず22.04LTSに移行してみるか… 会社サーバは最新にするメリットがほとんどないし。

_

root@ubuntu-storage:~# do-release-upgrade
Checking for a new Ubuntu release
Your Ubuntu release is not supported anymore.
For upgrade information, please visit:
http://www.ubuntu.com/releaseendoflife

Please install all available updates for your release before upgrading.
むむむ

_ /etc/apt/sources.list の archive / security を old-releases に変えたところ apt update などが動いた。ひとまず apt upgrade してみる。

_ 自宅サーバもupgradeしようとしたのだが、bpoolの空きが足らずに失敗してしまった。snapshotもろくにとれないし、困ったもんだ

_ いろいろスナップショットを削除するなどして先に進める。

_ 自宅サーバが先に終わった。途中空きなしで止まってしまったが、snapshotを消したりで再度実行して、うまくいったらしい。

_ 会社サーバの方はやたらと遅い。 unpacking がやたら遅い。どうもディスクIOがやたら遅い症状が出ているように見える。


2023/08/15 (Tue)

_ 会社サーバの方は一晩経っても終わっていない。延々と Unpacking、Preparing … とやっている。Load Averageは2くらいなので負荷がものすごいわけでもない。

_ 配信用…として用意したが現時点では動画見る用にしかなっていないVAIOも21.04→22.04LTSに上げた。FirefoxがSnapベースになったとか。 Snap もきちんと履修しておく必要を感じつつ、Ubuntu独自の技術というと後でキャンセルされがちというおかしな学習をしてしまっているので悩ましい

_ 昼前になってやっと少し先に進んだようだ。Setupやパッケージのremoveなどはわりと速いので、ディスクIOではないのだろうか?


2023/08/16 (Wed)


= ACM

_ ACM会員になれば174ドル/年でO'Reilly本が読み放題に を読んで自分にアナウンスが来ているか確認したのだが見当たらなかった。追加料金払うとO'Reilly Online Learningが使える特典が復活するのか、と思いながら読んでいたのだが、どうも年会費($99)のほかにACM Skills Bundle Add-On($75)をつけると、O'Reillyや、Pluralsight、Percipioなどが使えるようになる、という話のようだ。$99ではこれらのサイトがいずれも使えなくなってしまうということなので、O'Reilly追加オプションができたというよりは、全体的に値上げすることで復活したと理解するのが正しいようだ。今は1ドル141円台なので、$174 は 25,300円ちょっとになるらしい。まだ十分に割安なんだが、それでもこの価格に見合うサービスなのかというと… 自分が活用しきれていないという点も含めてさすがにちょっと高いかなという気がしてしまう。

_ 特典目当てに入っているわけなので、$99で継続するという理由はないが…


2023/08/18 (Fri)


= BASE BREAD

_ はじめて喰った。チョコレート。 まずくて喰えないというほどではなく、それでいて絶妙に喉を通らない感じがする。 栄養満点らしい。


2023/08/19 (Sat)


= React

_ 練習がてら以前作ったRegEx Sandbox を React で作ってみた。慣れていないのでぎこちないが、さほどの戸惑いもなく同等の機能を組むことができた。構造上の無理もなくすっきりと書けたと思う。

_ 一致した位置をハイライト表示などさせようと思ったが、RegExp.exec で返ってくる配列の追加プロパティは index のみなので、グループそれぞれの位置がどこにあるのかは分からないようだ… と思ったら "d" オプション (hasIndicies に対応) をつけると indicies という配列が追加で返ってくるようになり、各グループに対する位置と長さを手に入れることができるらしい。あとはこれを見た目に分かりやすく表現する方法を考えられれば… よくある、コンパイルエラーが発生した位置を分かりやすく表示させるみたいなテクノロジーの応用だろう


= スライド

_ もう1ヶ月くらい放置しているが次につなげるためにできることを考えたい。

_ まずなにより現状のソースをいじりたいという気持にならないところがあり、動きを損わずに構造を見直していって、あれこれ試すためのプラットフォームづくりができたら、それを分離してスライドとプラットフォームにできる… というのはスライド作りはじめるときからずっと考えていたことなので、そこからだろうか


2023/08/20 (Sun)

_ 今日は出社した。


= Next.js

_ Next.js には React を使うための環境を整えてくれたり、サーバサイドの苦労を大幅に削減してくれたりとすごいのだけど、漏れなく Node.js などが必要になってしまう… のが不便なときがある。たとえば RegEx Sandbox なんてのを作っているが、使うときに毎回サーバを上げるなんて面倒でやってられないので完成形はstaticなページとして構築したい。

_ Next を SSG できる範囲でだけ使っていればサーバは不要にできる、なんてことはないのだろうか?と思いながら調べてみたところ、Next.jsで静的なサイトを作ってみよう|Next.jsとStripeではじめるシンプルなECサイト開発ワークショップ という記事があって、なるほどなと思うんだけど、こういう内容は公式で扱っていないんだろうか?

_ 使っている要素としては、 Static Export (npx next export) というものらしい。 Deploying: Static Exports | Next.js これか… App Router の場合は Deploying: Static Exports | Next.js こっちらしい。 App Routerだと Server Components や Route Handlers が使えるようになるらしい。前者はともかく後者はなんだ? … 固定の応答を返すような route を作れるらしい。


= FRP

_ 以前からFRP (Functional Reactive Programming) について関心がありつつ取り組むことができていなかったので、そろそろなんかしてみたくなってきた。それが私の抱えている問題をどの程度解決してくれるのかが分からないまま放置しておくのは精神衛生上よくないし、たいして役に立たないのであればそれを待望する気持を持つ時間も無駄と言える。

_ FRP はやはり Haskellで発達した世界らしいので他の環境だと独自の解釈や改変が加わったものが多くて純粋なものではない的な議論があったりと少々うっとうしく感じる。RxというのはReactive ProgrammingではあるがFRPではないという態度らしい。ElmはもうFRPではなくなっている。

_ 軽くWebを眺めてみると、Sodium (SodiumFRP) というのがクロスプラットフォームであってFRPという名前もついているし、よく話題になっているようだ。F# でも使える。 MANNING の Functional Reactive Programming という本はSodiumをベースにしているらしい。Percipioでも読めるらしいのでこれを読んでみることにするか

_ F# for Fun and Profit にも FRPのページが あった。 これはFRPの原理を説明しようとしているように見える。

_ (PDF) Survey of Functional Reactive Programming Approaches to Virtual Environment Applications on the .Net Platform という論文が。とりあえずこっちを読んでみるか

_ …読んだ。いくつか評価してSodiumを選びました、という話だった。それだけのように見える


= スライド

_ 書き始めようとすると割り込みが入って…ということを繰り返しており全然本題に入れていない。

_ 触りたくないという感覚になる原因として大きいのは、やはりソースが長大になっていることだろう…といっても700行くらいだけど、重複コードも多いし、全体を見渡すには辛い。同じソースでスライドとスタッフロールを両方やっていて、かつそれぞれに似たコードが多いというのも問題だろう。

_ まずモジュールを分離して、共通で使えそうなものをモジュール化して、スライドとスタッフロールの処理を簡略化するのが第一で、その簡略化された状態を観察して、共通に使える枠組を準備するといった感じだろうか。F#ではなくTypeScriptなのでクラスも遠慮なく使ってゆけるだろう

_ あれこれ機能を盛ろうとするとupdateのロジックが複雑化するという別の問題もある。以前のSPS2のようにそれぞれが独立したイベント処理と更新・描画処理をもっていればよい気もしつつ、あまり複雑な構造を持ちたくないなあという気持も一方ではある。FRPなどが役に立つのか立たないのかはっきりしたいのはこのあたりだろう

_ 構造の方ではなくスライドの方で言うと、触りたくないと感じる理由はやはりHTMLを直接書かなきゃいけない点だろう。ドキュメント化可能なマークアップという点だとasciidocなんかはスタッフロールくらいなら使えそうなんだが、あれに追加の情報、たとえばエフェクトなどの情報を与えるところが本来やりたいことだったので、そのへんをうまいことできるDSLが必要ということになる。

_ HTMLとシンプルに対応させられるという点ではPDMLが有望な気がしつつ、インデントが深くなるという点では大差がないので、見た目の圧迫感がないかなあという程度で終わってしまうかもしれない。

_ PDMLのCore定義には属性がない。PDMLにおいて属性と子ノードというのはあまり大きな違いを持たせていない。まあたしかに何を属性として何を子ノードにするのかというのはHTMLやXMLでもあまりはっきりした基準がないとは感じている。ノードの補助情報的なものは属性にするかな…といった程度だろうか

_ HTML/XMLでは親ノードの属性にあたるものだという規則を設けた状態で子ノードを作るということができれば、HTML/XML化する際にそれらを集めてやればいいだけなので、マークアップ言語において属性にあたるものがないというのはさほど大きな瑕疵ではないのかもしれない。今までは属性が表現できないものは無条件に却下していたが… といっても復活するのはYAMLやJSONくらいしかないような気もする。


= FRP ふたたび

_ 本を流し読みしているがあまりピンと来ていない。CellとStreamがあって、10このprimitivesがある、というのはわかった。

_ F# for Fun and Profits の記事を読んだ。 Microsoft.FSharp.Control という namespace の中に Observable というのがあるらしい。AsyncとかMailboxProcessorなどもこの中なのか。

_ Microsoft.FSharp.Control.Observable はたしかに便利そうに見えるし馴染みやすいのだけど、あまり万能感を覚えないというか、これで目先のあらゆる問題への取組が飛躍的に改善するという感じはしない。ひとまずFRP本をきちんと通して読みつづけることにする。


2023/08/21 (Mon)


= FRP本

_ あまり飲みこめていないまま流し読みを継続している。 Javaだと全然楽しそうに見えないというかFunctionalのよいところを生かそうとすると記述があまりに冗長だろ… という気がしてしまう。

_ ひと通り流したら F# + Sodium使っている人の記録を見て真似しはじめるのがいい気がしてきた。


2023/08/27 (Sun)


= Tlog

_ あいわらず暑い日が続いており、室温が30℃近くになる日も… それでも30℃を超えることはないので、やはり一方的に暑いというわけではなく 波があるのだろう


= 台風

_ フィリピン東あたりで発達している低気圧が9号になり、 これから台湾やそちらの方に進むらしい。そして太平洋沖で発達したのが10号となり 本州にかなり近付くようだ。が、上陸する前に東に進路を変える見込みらしい。 身のまわりにはそんなに大きな影響がないかな…と思ったら 9号と10号の間に出現した熱帯低気圧が発達して台風11号になるらしい。 近付くまでには10号は東の遠くに行っていると思われるが、 9号はまだ西で強い勢力を保ったままなので、半月前の6号と7号みたいな 進行具合に見える。


2023/08/28 (Mon)


= Tlog

_ 外装工事のための足場が解体された。 台風に備えて幕が畳まれたときから とくに作業も発生しておらず、幕もそのままだったので今月に入ってから 遮熱としての役割はほとんどなかったと思われる。 組み立ては1日がかりだったが解体は数時間だった。早い。


= React / Next

_ 久しぶりにやる。 RegEx Sandbox を Static Export する実験。

_ まず Next.js 化する際に create-next-app@latest を使って、惰性でTypeScriptを選んだところ各種型指定がとたんに面倒になるのだった。まず Destructuring Assignment にいちいち型を指定しているのが面倒だなあ… と思ってしまうのだった。 layout.tsx の指定をお手本にいじってみた。

_ あとはイベントハンドラなどにもいちいち型指定するのがいまいち面倒だ。

_ そしてcatchで受けるやつはunknownにしなければいけないらしい。まあJavaScriptがなんでもthrowできるようになっているから仕方ないのか

_ そして Static Export をしてみたところ… 確かに静的アセットができあがったものの URL が / ではじまるものになっているので、サーバがないとリソースがとってこれないことになるようだ。中のURLをぜんぶ ./ にすればいいのかしら? それでできるくらいならそういうオプションがあってもいい気がするのだが…。 あるいは全部を1つにまとめてしまうとかができればなおよいような、そうでもないような

_ Next.js の Static Export はいきなりブラウザで開けるようにすることを目的としているわけではないのだから別にこれでもいいんだろうし、Reactを中心としたクライアントサイドのテクノロジをうまいことまとめあげてくれるようなものを期待するのはうまくないのだろう。ただもうひと工夫な気がしないでもないのだが

_ next.config.js の設定でなんかできないか読んでみる


= RegExpExecArray

_ RegExp.exec で手に入るのは RegExpExecArray というものらしいのだけど、 "d" オプションつきの正規表現を実行したときに手に入るはずの indices が含まれていない。

_ tc39 / proposal-regexp-match-indices というやつで提案されているようなのだが、さての行く末がどうなったのやら…?

_ type RegExpExecArrayWithIndices = RegExpExecArray & {indices: Array<[number, number]>}; みたいな感じで拡張した型を作ることはできるので、それにキャストして使うことは可能だった。

_ TypeScriptの方にもissueがあった。 Node now supports Regexp hasIndices -- typescript does not. #44227。 そうやって拡張するもんなのか


= RegEx Sandbox

_ マッチしたところに色をつけるのはさほど難しくない。 indices があるのでグループごとにどこに該当するのかを表示するための情報も持っているのだけど、それを表示する方法に苦慮する。大変な割にはあまり役に立たないような気も

_ ほかに欲しい機能として、途中からマッチしなくなったときに、どの部分に問題があったのかを調べられるような機能…? undoができる、一部を適用してみる、など?


2023/08/30 (Wed)


= Tlog

_ わりと部屋が暑くなってきた〜 といっても29℃台前半なので耐えられないというほどではない。が油断していると 熱中症になっても不思議ではないくらいの温度ではある

_ 19時前にすでにだいぶ暗くなっていることに今更気付いた。えっもう夏至って 過ぎてるの? … 6月下旬だったらしい。2ヶ月気付かないのは勘違いが過ぎる


= カメラ

_ 月末にSONYから新機種が出るよという話はα7CIIとα7CR らしい。 先月あたりもα6700出していたし、その前も ZV-E1 出してきたり、 アグレッシブですごいなあーと思う。が、出せなくなる前にやりたいこと やりきってしまおうみたいな割切りでないといいのだが

_ プロモーション画像を見るとやはり小さくてすごい。そしてα7CR と、 Rというのがついているということは高画素モデルということでしょう…? 6100万画素らしい。RAW画像1枚50MBを軽く超えるような感じだろうか。


2023/08/31 (Thu)


=

_ グラノーラ喰ってたらバリッという小気味よい音がして、 なんか固いドライフルーツでもあったのかと思ったがどちらかというと ポップコーンになる前の乾燥とうもろこしみたいな固さだったので まさかな…と思いつつ取り出してみたらかぶせものだった。数回前に 治してもらったところのようだ。

_ 来週は次の虫歯をやりましょうねと言われていたが、 その前にこれをなんとかしてもらうことになりそうだ。 それにしてもかれこれ半年近く治療を 続けているがいったい何本虫歯があるんだ? 今のところ下の歯しかやっていないが 上の歯も同様であれば治療しながら年越しも夢ではなくなってくると思った


= React / Next

_ ドキュメントを読んで学ぶところは比較的順調…というか別に迷うこともないのでさほど苦労しないのだけど、さてこの先どうやっていったもんか?というのがよく見えない。これまで得た知識と、ドキュメントをあたる努力によってアプリを組み始めよといわれればできないことはないと思うのだが、手持ちの道具がいまひとつ貧弱なような、これだけでアプリ組んでゆくの…? みたいな不安がある。

_ Next.js には膨大な examples があるようなのだけど、膨大なだけに何をどうしたらという感じもあるし、あとは最新に更新がかかっていないものもあるように見える。とくに昨今は App Router が導入されはじめた過渡期なのでそのあたりの混乱もあるのだろうと思う。


= Mapとkeys

_ 行を map して列名と長さが手に入った後、それを用いてK→Vにしたい。Map<K,V> なら型推論しつつ作ってくれるのでよい。

_ そして keys というメソッドでキーの一覧を返してくれるのだが、これが IterableIterator<T> というものらしく、 next とか限られたメソッドしかない。 反復処理プロトコルというものらしい。 C# だと IEnumeratorに相当するものなのかなと思うんだが、どちらかというと IEnumerable の方が欲しいので、そのようなものを期待するとだいぶ勝手が異なる。 問題意識としては TypeScriptでイテレータを使ってみよう! という記事にだいぶ近い。

_ Yomguithereal / obliterator なんてのもあるが… 自分で準備しなければいけないのか感がある。 groupBy とかも欲しいしな


= Remeda

_ 以前は Lodash なんかが流行したようだが、TypeScript時代に合ったものはないのかしら? と思ったら Remeda というのがあるらしい。Tree Shaking も考慮しているのでバンドルサイズの肥大化をおさえることができるとか

_ Mapping for Lodash and Ramda という比較が参考になる。

_ …入れてみたけど、 map が Iterable を受けられないのは変わらない。いったんArrayにするしかないの?


= ES5とES2015

_ create-next-app で TypeScript のプロジェクトを作ると target が "ES5" になる。これだと generator の再帰が期待通りに動かない (yield* で怒られる) ので ES2015 にしてみた。

_ ひとまず文字列に入っているメッセージをdecodeして求める構造にしたがって表示するところまではできた。さほどむずかしくはないがいろいろひっかかるところがあって、あまり楽しくはないというのが正直なところだな。for .. in と for .. of の違いとか嫌すぎて死にそう。 for...of と for...in との違い




Zinnia (zinnia@risky-safety.org)
Back