お雑煮研究会

好きな焼肉は魚

2025.10 ふりかえり

10 月のふりかえりを書こうと思っていたが普通に 11 月半ばになってしまった

身体

8 月頃から自覚症状があるレベルで精神に不調をきたしていて一時は家から出られない状態になっていた。 が、10 月はまともに家から出られるようになってきたのでかなり回復している。

sushichan044.hateblo.jp

一方で、今もまだ本調子が戻っているわけではなく、頭がぼんやりとしか回らない・熱がうまく入らず集中できないなどが発生している。 原因としては、大学に上がってから自己を顧みない生活を続けたせいで心身に負担がかかりすぎたことが大きいと思っている。セルフネグレクトと呼ばれているあれだろう。

最近は運動・睡眠・食事など少しずつ気を使うようにしているが、効果が出てくるのは中長期的なスパンだと思うので、良くなることを祈って続けるしかない。

id:Windymelt 氏のセルフケアのくだりについては共感できる部分しかなく、自分を大事にしないとな、と再認識した。

blog.3qe.us

学業

なんとか中間発表を乗り切ったものの、依然として卒論の進捗は良くない。 糸口は見えているものの、理論系の分野かつパズル的な発想が必要な部分があるので、なかなか思うように進んでいない現実がある。

とはいえ卒業しないといけないのでやっていくしかない

技術系

OSS など

調子が良くなかったこともあって、あまりなにか言えるような成果物やコントリビューションは発生していない。

最近はあまり時間を取れる状態ではないので、大学と引っ越しが終わるまでは控えめにバグを治すくらいしかできなそう。

イベント

Hono Conference 2025

さまざまなご縁があり、Hono Conference 2025 にコアスタッフとして参加した。

主に CfP を見る・片方のトラックのセッション進行をするなど、プログラム周りの部分を担当していた。

当日は大盛況で、セッションも熱のあるものばかりで総じてよいカンファレンスだった。 あとから自分が進行していなかった側のトラックのセッションも見たが、パワフルな事例が多く Hono に関わる人々の輪が広がっているのが良いな、と思った。

honoconf.dev

findy-code.io

Vue Fes Japan 2025

こちらはスタッフではなく純粋に興味があったので参加した。

個人的にとても嬉しかったこととして Daniel Roe 氏と対面で話せたことがある。

自分が初めて単なるバグ修正でない PR を送るようになった OSS が unjs で、Daniel 氏にレビューいただいたこともあるので感謝を伝えられて良かった。

Had the chance to speak with @danielroe.dev in person at Vue Fes — that really made my day! `unjs` has been incredibly helpful across several of my projects, and I’ve started contributing small PRs too. Looking forward to continuing to be involved with you and the team on GitHub and beyond!

sushichan044 (@sushichan044.dev) 2025-10-26T04:38:55.316Z
bsky.app vuefes.jp

文化

書籍

別に記事を書いたのでこちらで。

sushichan044.hateblo.jp

音楽

暴力的にカワイイ 2025

2023 / 2024 と、行きたいと思っていながら予定が被ったりしていて逃していたのでついに参加に成功した。やったね。 デカい音、酒、肉、久々に会う先輩など、最高尽くしの 1 日だった。

KMNZ に目星をつけていたので、夕方頃までは談笑しながら散策したり飲酒しつつ、途中から KMNZ が来る側のステージに近づいて... という感じの行動をしていた。

KMNZ の持ち時間はしっかりブチ上がって、数日前に公開されていた新曲も予習していたのでバッチリノレて大満足の 30 分だった。やっぱ音楽いいな。

https://cultureofasia.zaiko.io/e/violentcute25

M3 2025 秋

前日が Vue Fes で体に来ており、同人音楽への気持ちもすこし落ち着いていたので今年は通販なり委託で少量を購入するのみにした。

相変わらず Room97 さんと Isle & Notes さんはよく聴いている。

room97.booth.pm

isleandnotes0002.netlify.app

おわり

おわり

2025.10 読書ログ

10 月もある程度本を読むことに成功したのでメモを残す。

なお、先月にこう言ったものの実際には割と違う本を読んでいそうだった。

9 月は百合小説とラブコメの発売ラッシュだったので、手元に 20 冊ほど積んでしまっている。 来月はこのあたりをガツガツ読むぞ。

2025.09 読書ログ - お雑煮研究会

読んだ

あそびのかんけい

別記事を書いてるので省略。周囲に勧めたら割と好評だった。

3 巻待ってます。

sushichan044.hateblo.jp

魔法使いの引っ越し屋シリーズ

生活感のある魔法ファンタジーが好きなので、偶然見かけたこちらも購入し一気読みした。

オムニバス形式だが少しずつ話が繋がっており、最後まで読むとそうだったのか!となる腹落ちがあった。 2 巻通して読んだときに本当によく構成が練られていて、かなりよくできたファンタジーだと思う。おすすめです。

kadokawabooks.jp

kadokawabooks.jp

作者の坂石遊作先生繋がりだと、直近で『才女のお世話』シリーズのアニメ化が決まっているので早めに原作を読みたいな、と思っている。

異世界食堂 5 / 6 巻

もともと中学生の頃に 4 巻まで読んでいたのだが、ふと思い出して調べると 2 冊続刊が出ていたので購入。

こちらもオムニバス形式で、数十年のスパンで物語が繋がっていって各所で暖かい出会いが芽吹いている。 あと本当に料理の描写がきめ細かいのが好みのポイントだ。普通に文字を読んでいるのにお腹が空いてくる良い小説です。

books.shufunotomo.co.jp

books.shufunotomo.co.jp

恋に至る病

ふらっと入った書店で見かけ、そういえば読んでいないな、と思ったので読んだ。 タイムリーに作者からの補足本である「病に至る恋」が出ていて、ちょうどいいタイミングだったかもしれない。( こっちはまだ読めてないが )

判断材料は最初から最後まであったものの、結局寄河景の真意はなかなか読み切れないな、と思ってまだ自分の中では答えを保留にしている。 一定自分の中で答えが出たらスピンオフと向き合おうと思う。

mwbunko.com

アフタヌーンティーはいかがですか? 私と先輩の、不純で一途なふたり暮らし

詳しく感想を書くと生々しくなってしまうのだが、今まで読んだことがある百合作品の中でかなり生活感に焦点が当たっているように感じた。 ひとつひとつの描写解像度が非常に高く、筆者の桃田ロウ先生が「三度の飯より百合が好き」というのはおそらく伊達ではないのだろう、と思う。

カクヨムで完結まで読めるので、ぜひ読んでいただきたい。

www.kadokawa.co.jp

【書籍発売中&コミカライズ決定】アフタヌーンティーは如何ですか?(桃田ロウ) - カクヨム

11 月に読みたい

読みたいというかもう現在進行系で読んでいるが、ミステリと SF が結構積まれているのでそろそろ読んでいきたい。

最近は出先でふらっと本屋に入って本を買う、という行動が増えてきているので積読は増えていく一方である。

「あそびのかんけい」1・2 巻を読んだ

9 月は百合小説とラブコメの発売ラッシュだったので、手元に 20 冊ほど積んでしまっている。 来月はこのあたりをガツガツ読むぞ。

2025.09 読書ログ - お雑煮研究会

ということで今月はラブコメと百合の強化月間に指定されている。

早速気になっていた「あそびのかんけい」を読んだのだが、今すぐ誰かに読ませたくなったので感想を書くなどしていく。

※記事執筆で発売されている 2 巻までの内容です。また、公開されているあらすじ相当のネタバレを含みます。

booklog.jp

booklog.jp

感想

実は寝る前に 2 巻続けて読んだのだが、プロットが面白すぎて引き込まれてしまい眠れなくなったので深夜に書いている。

本作は荻窪のとあるボードゲームカフェを舞台に、店長代理である主人公と同僚・客など様々な立場で主人公にかかわるヒロインたちのラブコメだ。 ボードゲーム自体も単なる演出上のモチーフではなく、ストーリー展開や恋模様そのものを示唆する形で随所に登場する。

何度もボードゲームを囲むうちに、登場人物がそれぞれの「あそびのかんけい」を変えるべく動き出していくのだが、ここからが本作の見せ場。 関係性の盤面を巡って駆け引きを繰り広げるなかで、各々の思惑と秘密の伏せ札が絡み合っていくというボードゲームそのものの面白さがあった。 特に 2 巻からは、少し違った立ち位置の人物も現れてかき乱されていく展開の中でそれぞれの一手がハマっていく気持ち良さを感じた。 このプロット作るの絶対楽しいだろうし、思いつける気がまったくしない。

ブコメを読んでいるはずなのに気づいたら作者と恋模様の盤面を囲んで探り合いをしていた、そんな刺激的な読書体験がしたい方にはもちろん、 すべてのラブコメ好きにおすすめできる本当に良い作品なので今後が楽しみだ。

おわり

作者と展開の探り合いをしたうえで、あとがきを読みながら気持ちをまとめるこの時間も「感想戦」というやつなので、 つくづくおもしろいボードゲームブコメだと思う。

おわり

2025.09 読書ログ

今月はあまり読めなかった。腰を据えて読書できる時間が少なかったので主に Web 小説を読んでいた。

ログを見返したら今月は魔法が絡む作品が多かった。現実逃避というやつかもしれない。

紙の本もかなり買ってしまい、積読が高くなってきている...

読んだ

人妻教師が教え子の女子高生にドはまりする話

読了直後で気が狂いそうなので感想はまた今度。

booklog.jp

月の魔女と楽園の錬金術

結構な大作を発見したので思わず最新まで読んでしまった。

世界観の重厚さはもちろん驚くべき点だが、それよりも本編と外伝が両方毎日更新されていることの方に腰を抜かしている。

現代ファンタジー軸ではあるが、あらゆる次元にとらわれないストーリー展開は飽きないのでぜひおすすめしたい。

kakuyomu.jp

kakuyomu.jp

憧れのお姉様が「妹になりたい」って甘えてくるんだけど!?

自分的に百合小説 2025 優勝作品。

何を書いても重大なネタバレになってしまうので何も書けないが、知り合いの方だったら DM で欲しいものリストを送っていただけると問答無用で送りつけるくらいのオススメ度合。

over-lap.co.jp

サイレント・ウィッチ ( Web 版 )

書籍はこれから読む。

ちょうど放送中のアニメを見る前にまずは原作を履修しようということで一気読みした。

必要以上の飾り気がなく、ゆるやかだが確実に物語が進んでいくテンポ感が印象的だった。

詳しく書くとネタバレになってしまうが、登場人物の一人であるロベルトの言動は突飛に見えてあとから読み返してみると違った面白さがあったりと、作者の言葉選びや文章構成力の高さを感じる描写が随所に見られた。

書籍版のあらすじやアニメの予告文などを見るに、どちらにもオリジナル要素がありそうなのでもう二重ほど楽しもうと思う。

https://ncode.syosetu.com/n8356ga

宮廷錬金術師の自由気ままな異世界旅 ~うっかりエリクサーを作ったら捕まりかけたので他国に逃げます~

主人公たちが置かれている状況に対して話が比較的コミカルに進むのが良い。

まだ物語的には序盤なので、ここからどうなるか毎日楽しみに更新を待っている。

追記: 書籍化されるそうです!!!!!おめでとうございます!!!!!!!!!!!!!

kakuyomu.jp

来月読みたい

9 月は百合小説とラブコメの発売ラッシュだったので、手元に 20 冊ほど積んでしまっている。 来月はこのあたりをガツガツ読むぞ。

ghostty v1.2.0 以上でキーバインドを設定する場合 JIS 配列環境では注意が必要

TL; DR

主に @ ; : [ ] ^ キーを含む keybind を設定する際は、この記事に書いてあることを確認してから設定することを推奨する。

特に [ ] はデフォルトでタブ / ペイン移動のキーにバインドされているため、タブやペインの移動が動かなくて困っている場合はおそらく v1.2.0 での変更が影響している。

タブ / ペイン移動についてはこのような設定を書けば今までのデフォルト設定と同じ挙動で利用できる。

github.com

何に注意する必要があるのか

Ghostty 1.2.0 の key binding rework では、key bind の設定を W3CKeyboardEvent.code に基づいて行うような変更が行われた。
(以下、本記事では W3C KeyboardEvent Code と表記する)

ghostty.org

www.w3.org

これはキーボード上の物理的な位置に基づいてユーザーが押下したキーを特定するための値で、キーボード配列に依存せず US ANSI 配列を基準とした一意な値を返すように実装するように求められている。

このため US 配列以外のキーボードでは、キーによって OS が解釈して入力する文字と W3C KeyboardEvent Code が異なる場合がある。 JIS 配列では主に @ ; : [ ] ^ キーがこれに当てはまる。

たとえば、JIS 配列の ] キーの位置は US 配列だと \ キーに相当するため W3C KeyboardEvent Code は Backslash となる。

Key.js ウェブツールのスクリーンショット。]キーを押した結果、JavaScript の keydown イベント情報が表示されている。e.key は ]、e.code は Backslash、e.which と e.keyCode は 221。
W3C KeyboardEvent Code は https://keyjs.deve.code で簡単に確認できる

つまり Ghostty が W3C KeyboardEvent Code ベースで key bind を処理するようになった結果、US 配列以外のキーボードでは一部キーの解釈が変わってしまったので、この不一致を念頭に置いてキーバインドを設定する必要がある。

どうすればよいか

OS が解釈して入力する文字と W3C KeyboardEvent Code が異なるキーを含むキーバインドに対して、今まで利用していた物理キーに対応する W3C KeyboardEvent Code を利用したバインド設定を書き直せばよい。 修正する際には https://keyjs.dev が役立つだろう。

参考までに、タブ / ペイン移動についてはこのような設定を書けば今までのデフォルト設定と同じ挙動で利用できる。

github.com

おわり

おわり

とにかくリポジトリ内になんでもメモしてみる

最近、実装中に思いついたメモなどをとにかくリポジトリ内に書き留めておくようにしている。 やっていることは単純で、 .sushichan044/ というディレクトリを global な gitignore の設定に追加したうえでそこにどんどん Markdown を書いているだけだ。

書き出すことは、そのコードベースに関連があって自分が一時的になにか残したいと思ったことをなんでもだ。 Cosense の使い方に近い。

整理などを考えるのも面倒なので、 memo コマンドだけでいい感じにファイルが作れるようにしてある。

gist.github.com

このブログも、 memo コマンドを入れたその日に dotfiles のリポジトリでメモした文章を見て思い出したので書いている。

メモをリポジトリ内で取るようにして2ヶ月ほど経ったので、軽く振り返ってみようと思う。

ふりかえり

とにかくメモの量が増えた。 業務コードをいじったり OSS をいじったりする中で感じた些細な pain なども一旦メモするようにしたので、たまに読み返してみると「ああ、そういえばこれどうにかしたいんだったな」と思い出せる。

そして今は AI Coding 時代なので、リポジトリ内のメモを雑に AI に投げて解決の糸口を探らせることもできる。とにかくファイルパスだけ渡してよろしく、ができるのは心理ハードルとしては最高に低くて良い。

あとは、なにか調査をするときも一旦 URL をメモしてそこに自分なりの要点を殴り書きしておいたりできる。 各リポジトリに何を書いてもいいパーソナルスペースがあるのはとにかく助かる。

まとめ

忘れっぽい自分にとって、IDE やターミナルを離れずにコードベース内でメモが取れるのはかなり大きい。

リポジトリ内のテキストファイルとして記録される特性上 AI や各種ツールとの連携も取りやすく、時代的にも悪くない習慣だと思うのでこのまま続けていこうと思う。

おわり

おわり

Astro Font API で必要な字形だけに最適化された Google Font を使う

CJK 圏ではフロントエンドのパフォーマンス改善において、しばしば「フォントのサブセット化」を行うことがある。

これは、「一部のみデザインの都合でこのフォントを利用したい」という場合に、そこで使われている字形だけを含むように最適化したフォントファイルを利用することでパフォーマンスの劣化を抑える手法だ。 ( フォントのライセンス条項をきちんと確認しないと違反してしまう可能性があるため事前にチェックすること )

アプローチとしては、主に以下の二択が考えられる。

  • 自前でサブセット化したフォントファイルを配信する
  • Google Font の最適化機能を利用する

自前での用意は pyftsubset などのソフトウェアを組み合わせると自動化できるものの、 CI / CD との統合にもそれなりに手間がかかる、というつらさがある。

github.com

一方で Google Font の最適化機能を利用する場合は、リクエスト時に特定のクエリパラメータをつけるだけでよいのでかなり手軽に済む。

developers.google.com

具体的には HTML に含まれる <link> タグの内容を正しく指定すれば最適化されたフォントファイルが手に入ることになる。

現代においては大規模な Web サイト / アプリではフレームワークを用いることが多いので、この機能をフレームワークと統合できたら嬉しそうだ。

Astro Font API との統合

Astro 5.7.0 で追加された Astro Font API によって、ユーザーは Google Font をはじめとした Web Font プロバイダからフォントを取得し、フレームワークと統合されたインターフェースで扱えるようになった。

docs.astro.build

このように設定ファイルで利用したいフォントを定義しておくと、自動的に最適化されたフォントが取得され、事前に指定した CSS 変数経由でフォントを利用できるようになる。

import { defineConfig, fontProviders } from "astro/config";

export default defineConfig({
  experimental: {
    fonts: [{
      provider: fontProviders.google(),
      name: "Roboto",
      cssVariable: "--font-roboto"
    }]
  }
});
---
import { Font } from 'astro:assets';
---

<!-- cssVariable prop には TypeScript の補完が効く -->
<Font cssVariable='--font-roboto' preload />

<style>
body {
    font-family: var(--font-roboto);
}
</style>

そして、Astro 5.7.5 で取り込まれた変更により、冒頭で触れた Google Font のサブセット化機能が Astro Font API に統合された。

github.com

例として、このように glyphs オプションを指定すると、自動的に"おはよう" という字形だけが含まれる Noto Sans JP フォントが利用できるようになる。

import { defineConfig, fontProviders } from "astro/config";

export default defineConfig({
  experimental: {
    fonts: [
      {
        cssVariable: "--font-mini-noto-sans-jp",
        name: "Noto Sans JP",
        provider: fontProviders.google({
          experimental: {
            glyphs: {
              "Noto Sans JP": ["おはよう"],
            },
          },
        }),
      },
    ],
  },
})

実際にアプリケーションをビルドしてみると、 2.2KB という非常に小さなフォントファイルが生成されていることがわかる。

$ ls -lh dist/_astro/fonts
Permissions Size User         Date Modified Name
.rw-r--r--@ 2.2k sushichan044  5 9  17:14   98a181601b3d6ada.woff2

生成された HTML の先頭にはこのような <style> タグが注入されており、事前に指定した CSS 変数を通じて最適化されたフォントを気軽に利用できた。

<style>
  @font-face {
    font-family: "Noto Sans JP-61eeab963b6def3e";
    src: url("/_astro/fonts/98a181601b3d6ada.woff2") format("woff2");
    font-display: swap;
    font-weight: 400;
    font-style: normal;
  }
  @font-face {
    font-family: "Noto Sans JP-61eeab963b6def3e fallback: Arial";
    src: local("Arial");
    font-display: swap;
    font-weight: 400;
    font-style: normal;
    size-adjust: 197.6219%;
    ascent-override: 58.6979%;
    descent-override: 14.5733%;
    line-gap-override: 0%;
  }
  :root {
    --font-mini-noto-sans-jp:
      "Noto Sans JP-61eeab963b6def3e",
      "Noto Sans JP-61eeab963b6def3e fallback: Arial", sans-serif;
  }
</style>

実運用における注意点

便利な機能だが、すべてを解決するわけではなくいくつか注意点があるので触れておく。

  • 事前に必要な字形がわかっていない場合においてはあまり効力を発揮しない。相性が良いのは UI 要素や固定見出しなどに美しいフォントを利用したいケース
  • 事前に指定していない字形が混じった場合は表示が崩れるので注意すること。
    • これについては、特定のフォントを使いたい文言はすべて JavaScript 定数として管理したうえでコンポーネントと設定ファイルの両方から import するなどでカバーできる
  • 記事を書いている途中で気づいたのだが、フォントファイルのキャッシュ処理にバグがある。複数のビルド間で node_modules/.astro/fonts 以下を使いまわしている場合は削除すれば治る。
    • github.com
    • 2025.12.20 追記: 内部で利用しているライブラリ側のバグであり、v0.7.1 で修正しましたが、まだ withastro/astro には取り込まれていなそうです
    • 2026.01.13 追記: Astro 5.16.7 以上に更新すると修正後の挙動になります

まとめ

ということで、 Astro 5.7.5 以降では、Astro Font API に特定のオプションを指定することで、事前に指定した字形だけを含むように最適化された Google Font を扱えるようになった。 相性のいいユースケースにおいては便利なので積極的に利用していきたい。

なお、この機能の実現には unifontというライブラリが使われている。 実は少し前、自分が別の目的で「Google Fonts のサブセット化機能を unifont から扱えるようにする」という対応を入れたことがあった。

github.com

そのときは単に「個人的にサブセット化を使いたい」という動機で作ったのだが、結果的にその仕組みが Astro Font API に取り込まれ、より多くの開発者が便利に使えるようになった。

過去に自分が実装した小さな改善が、思わぬかたちで普段遣いしているフレームワークに恩恵をもたらしているのを見て、少し嬉しい気持ちになっている。

おわり

おわり