本年も適当にやっていくのでよしなによろしくお願いします。
2025年の振り返り
一番創作した年かも
1月から3月にかけて「ラッダイトだけはご容赦を」の第1部の執筆をして、その後に第2部のプロットを考えて、今も執筆中。
AVGも重い腰を上げて実装している。
AVGのテキストを仕上げた後に「ラッダイトだけはご容赦を」を書いたせいか、書き直したい衝動に駆られているのを我慢している。ひとまず、最小限の加筆修正で様子を見ようと思う。
手広くやろうとするほど、調べ物や壁打ち、仮説と検証をいかに早くやるかが課題になってきた。その課題の解決に生成AIが活躍し始めた。
生成AIの利用開始
Claudeの契約をきっかけにChatGPTとGeminiも併用するようになった。
利用開始時点から想像できないぐらいに発展していく様子を体験できただけでも元が取れたと思う。
与太話や軽い調べごとはChatGPTやGemini、本命はClaudeという使い分けをしている。
仮説と検証のサイクルは早くなったと思う。従来と同じ時間をかけていたとしても、質は上がったのではなかろうか。
今度は検証に時間がかかったり、仮説と検証のサイクルを捌けなくなったりしてきた。行動がボトルネックになった。
仮説の質を良くするには、前提になる問いや設計が重要になる。その設計の土台となる考え方を、思わぬところから得ることになった。
物語学の衝撃
あることをきっかけに大学で講義をしている人とじっくり話す機会が得られた。
原初の物語は何か、物語を支えるものは何かを掘り下げていくうちに人類の文化や言語の領域に踏み込んでいくのはなかなか面白かった。
膨大な量の情報が得られたので、じっくり読み直している。
「ラッダイトだけはご容赦を」の第2部はこのやりとりをもとに作り方が変わった。我流でやっていた部分に裏付けができて自信を持ったり、アラが見つかって考え直したりした。
前者について言えば、物語の最小単位は問題発生・対応・解消の3要素で良さそう。
後者は人間の心理描写が甘いこと。心理学のモデルを参考に肉付けする実験中。人間は難しい。
物語の源流は体験と思考を伝えることにあるのだろう。
何を通じて、何を思ったのかを意識する訓練が議論のあり方に繋がるから面白い。
議論のあり方
学び途中だけど、どうやって自然言語で建設的なやりとりをするかのヒントになる。
誤謬に関しては自分もやるので気をつけようと思う。
自分には見えているからこそ、前提の共有を飛ばしてしまう。だからこそ、当たり前かもしれないものでもいいから、とにかく共有すること。できる限り、相手のわかる形式にする。
議論の手順は定石だけど、テーマやゴールを共有し、それを知るため、あるいは実現するためにどうすればいいのか話して、最終的に意見をまとめることから始めるのが良さそうだ。
何回かやってから、良くするにはどのような方法があるかの話ができる。目標なしに改善案や理想像を出すと、不満の言い合いか、綺麗すぎる理想に向かって現実に着地しないから。
手段が増えると、どの手段が最適なのか考えることになる。かけた手間暇の分、返ってくるのかはよくある問いだ。その問いを深掘りすると、倫理の領域が見えてくる。
倫理学
よき隣人であるにはどうあるべきかを問い続ける学問だと思う。
今までの経験から、できることとやっていいことには大きな隔たりがあるのはわかっていた。その隔たりには何があるかを言語化する方法の一つだろう。
仕事柄、システムやデータに対して強い権限を持つことが多い。管理者権限があるから何をやってもいいのか、と言えば、答えは否。社内での合意は得られているか、目的や手順に透明性はあるか、責任の所在はどこか。これらをクリアして初めて安全に実施できる。
創作に関してもそうで、何を書いてもいいけれど、読者にどのような影響を与えるのか、あるいは投稿サービスなどにどのような影響を与えるのかは想像してもいいと思う。
技術の進歩と同じぐらいの速度で倫理も発展していることがわかったのも大きな収穫だ。
ノート
こうやって整理すると、今年学んだことが綺麗に繋がっている。
隣接領域を攻めて繋げたものもあれば、人から教えてもらって繋がったものもある。
人の繋がりと知識体系に百万の感謝を。
2025年買ってよかったもの
Apple Watch Series 10(GPS + Cellularモデル)
前に使っていた機種のバッテリーがへたってきたので乗り換え。
普段は睡眠や脈拍の計測、外に出ればマップや通知の確認などに活躍中。
受け取りが1/3なので、2025は林檎の年。
MacBook Air (13インチ, M4, 2025)
M5待つか、と思っていたけど、気が付いたら買っていた。
メモリ24GB、ストレージ1TBに増やしてある。
スペックはあがってバッテリー持ちも良いままなのはありがたい。
仮想マシン動かしたり、アプリ開きっぱなしにしても問題なし。
最近は VSCode と Claude Code を組み合わせて執筆や趣味コーディングマシンになりつつある。
REALFORCE RC1
R3は黒だったので今回は白を選んだ。
ダークブラウンの天板、ディープブルーのデスクマットの上に冴えわたる白いキーボードとケーブルがいい。
荷重30gキーだから打ちやすい。これがそのまま短所になり、ミスタイプしやすい。ストロークを調整して様子を見ている。
充電式バッテリー内蔵型でバッテリーの交換をしなくてもいいのも利点。将来的にはバッテリー寿命で交換することになるはずだけど、RC3の頃のバッテリーが切れたら交換がなくなったのは地味に便利。
私用では有線接続、仕事はBluetoothで繋いでいる。
iPhone Air
iPhone 16 Pro からの乗り換え。
ちょうど iPhone 16 Pro の買い取り価格があがっていたので、 iPhone Air の購入価格との差額がだいぶ小さくなったのがちょっと驚き。
その分、 iPhone Air のリセールバリューが落ちているから相殺されそう。
ディスプレイサイズのわりに重量は軽く手に持つと感覚が狂う。
165gぐらいだとさっと持ち出せて、鞄のポケットに放り込みやすい。それがいい反面、どこか行ったときに重量を頼りに探せない。
マップアプリでお店を探すときに大きなディスプレイとこの軽さは地味にありがたい。
AirPods Pro 3
順当にスペックアップしたAirPods Pro 3。
ノイズキャンセリング性能が大きく向上し、今まで聞こえていた音も消えるようになった。
WF-1000XM5と同じぐらいノイズキャンセリングが効いている印象。
音質面はまんべんなく聞こえる音が増えたように思う。
Claude Pro の年間サブスク
応答の良さに思わず年間サブスクを買ってしまった。
創作や趣味のコーディング、執筆、調べごとに大活躍している。
いかにやりたいことをプロンプトに落とし込むか、で頭を使う。生成AIでできることが増えていく中、人間のやるべきことは強く願うことなのかもしれない。
ノート
こうやって見るとほんと、Apple製品祭り。
リプレイスして小さな引っ掛かりを取り払って、生成AIで作業を加速する下地を作る年だったのかな、と思う。
UNEXPECTED_STORE_EXCEPTION が出てNVMe SSDを見失うことがある(B650 + P44 Pro)
要約
- Windows起動後、しばらくしてから保存/読み込みが止まりフリーズ、クラッシュする
- 自動再起動後、UEFI画面が表示され、ストレージ/ブート一覧にSSDがない
- 暫定対処: Windowsの高速スタートアップをオフ、PCIe省電力設定見直し / UEFIの設定初期化、メモリをJEDEC定格運用に切り替え
症状
- Windows起動後しばらくして、ファイル保存/読み込みが止まる
- マウスカーソルは動くが、クリックやスタートメニューが反応しない
- クラッシュ後に自動再起動すると、ブートデバイスが見つからずUEFI設定画面が表示される。SSDがUEFIのストレージ/ブート一覧に存在しない
- 電源ボタンを押してシャットダウン、数秒あけてから電源を入れるとSSDが認識され、正常に起動する
発生頻度は数カ月に1度ぐらい。
環境
- CPU: AMD Ryzen 7 9700X
- マザーボード: B650 GAMING PLUS WIFI(MS-7E26)
- BIOSバージョン: 1.L0 2025/06/19 公開
- MSI Center のこのバージョンは参考にならさそう
- SSD: Solidigm P44 Pro
- メモリ: CORSAIR VENGEANCE DDR5 16GB
イベントログ
- 記録されていたもの
- Kernel-Power 41 / volmgr 161 / EventLog 6008
- 記録されていないもの
- storport 129 / disk 153 / stornvme
- メモ: 書き込めずにクラッシュしている可能性大
原因
切り分け中
Solidigm P44 Pro の問題?
SolidigmコミュニティでP44 Proの「突然の切断→BIOS非認識→コールドブート後に復帰」という同一症状の書き込みあり。
Solved: P44 Pro nvme controller is down will reset - Solidigm - 24097
仮対応
Windows
- 高速スタートアップをオフにする
- リンク状態の電源管理をオフにする
UEFI
- 設定初期化: Load Optimized Defaults
- PBO Thermalプロファイルの再設定: Set Thermal Point 75℃
設定初期化してメモリは定格運用に戻った。
これでも再発するなら?
UEFI
- Fast Boot をオフにする
- Memory Context Restore をオフにする
- ASPM をオフにする
- NVMeリンクをGen3固定にする
SSD
ノート
MSI CenterからさくっとUEFIファームウェアの更新できるのに、更新後は設定初期化(Load Optimized Defaults)したほうが無難なのは罠だと思う。できれば「初期化推奨」の注意書きも一緒に出してほしい。電源ボタンを押したら電源が入る、くらいの常識扱いだったりする?
オーバークロックは簡単にできるようになったけど、定格で回すのが無難なのかもしれない。省電力設定も含めて、安定して動作するゾーンがあるのでそれを探すのがよいのだろう。
Windowsの省電力関係の設定は速度が落ちたり、挙動が不安定になったりした記憶しかない。マシン関係なく起きているのが辛い。
高速スタートアップはまずオフでよさそう。
モダンなゴースト開発環境の作り方(YAYA編)
伺か・伺的 [第2会場] Advent Calendar 2025 - Adventar の18日の記事です。前後はブランクなのであとはよろしくお願いします。
要約
- YAYAを使ったゴースト向けの話
- Git + GitHub でバージョン管理するように
- システム辞書は
git submoduleでさくっと更新できるように - Visual Studio Code に YAYA 用のシンタックスハイライトアドオン追加して開発しやすく
ゴーストの構成
今までどうしていたのか
Dropboxを使っていろんなPCにファイルを同期させていた。
ファイルをうっかり消したり、余計なファイルを編集したとしても、履歴機能である程度は遡れる。
ネットワーク更新やNarファイルの作成はゴースト配布系自動化システム
そのやり方のしんどいポイント
- どのファイルに何の変更を加えたのかわかりにくい
- 複数のファイルを変更したときに戻しにくい
- システム辞書の更新が手動
解消していきましょう
- 対象: ファイルの管理、エディタの変更
- 対象外: ネットワーク更新やNarファイルの作成
用意するもの
- GitHub アカウント
- Git - Downloads クライアント
- と初期設定 Git - 最初のGitの構成
- GitHub に SSH で接続できるようにする
GitHub にリモートリポジトリを用意する
アカウント作って、リモートリポジトリ(保存場所)を作成する。
リモートリポジトリは Public と Private が選べるから用途に応じて使い分けよう。
ゴーストマスカレードやプライベート用のゴーストは後者の Private がおすすめ。
Git でバージョン管理
初期設定
各ゴーストにつき1回やるイメージ。
リモートリポジトリをクローンする
- 自分のPC(= ローカル)の適当な場所に作業フォルダを作成する
- 例
C:\workspace - ターミナルで
git clone リモートリポジトリのURL - リモートリポジトリの名前でフォルダができているのを確認する
ゴースト関係のファイルを上のフォルダに移す
移した段階でコミットしておく。
- セーブデータや追加シェルなどは
.gitignoreに追加すると、バージョン管理の対象外にできる
.gitignore の例
セーブデータやOSが自動生成するものを中心に除外する。
この辺は個人の環境によって変わるので参考程度に。
.DS_Store /ghost/master/yaya_variable.cfg /ghost/master/profile/ /shell/master/profile/ /ghost/master/messagetxt/*.bak updates2.dau updates.txt
git submodule でシステム辞書を引っ張ってくる(任意)
初回は submodule としてシステム辞書を追加する。
git submodule add https://github.com/YAYA-shiori/yaya-dic.git system
更新は git submodule update --remote で最新版を取得できる。取得後、変更をコミットしておこう。
あやりりすを使っていない人はゴーストとは別のフォルダに git clone して、必要なファイルだけコピーする方法をとるのもあり。
ブランチの使い分けを考える
git のブランチ戦略で調べるとかなり出てくる。
GitHub Flow を参考に簡略化したもので回している。
- main ブランチ: ちゃんと動くゴーストの辞書が格納されている
- feature ブランチ: main ブランチから生やすランダムトークや新イベント追加作業中のブランチ。ネットワーク更新まで終わったら main ブランチにマージする
- bugfix ブランチ: main ブランチから生やすバグ修正用ブランチ。ネットワーク更新まで終わったら main ブランチにマージする
こんな感じで。
- main ブランチは動作が保証できるもの
- 作業するときは main ブランチから派生して何かブランチを作る
ぐらいでいいと思う。
こうすることで何か作業中に誤字報告を受けても、作業中の内容は保持したまま、誤字脱字だけ修正した更新ができる。
開発環境と実行環境を繋ぐ
SSPのフォルダわけ機能を使う
workspace にゴーストしか入ってない場合はこれで登録するのが確実。
シンボリック機能を使う
workspace にゴースト以外も入っている場合などはこちら。
実行には管理者権限が必要、パスは適宜読み替えて。
mklink /d "C:\ssp\ghost\my_ghost" "C:\workspace\my_ghost"
my_ghost: ゴーストのフォルダ名C:\ssp\ghost\: ゴーストのインストールされるフォルダ。初期設定だとSSP直下の ghost フォルダC:\workspace\: workspace のパス。この記事通りに作るとCドライブ直下
作業する
日頃のゴースト更新作業 + git のブランチ操作 になる。
main と feature ブランチの差分が見やすいので、変更点がすぐにわかるのが嬉しいところ。
ネットワーク更新まで終わったら、 git commit と git push、GitHub上で Pull Request を作成して、 Merge する。
すぐに終わるものなら main ブランチに直接、 git push しても問題ないと思うけど、何か起きたときに困るのでブランチをわけるようにしよう。
作業のフローを整理
- main からブランチを作成する
- 作業する
- 一区切りついたところで
git commit - 意図したファイルが対象になっていることを確認する
- 作業した内容がわかりやすくなるようコメントをつける
feat: ランダムトーク追加fix: トークの誤字脱字修正
- 今日はここまで、あるいは作業完了のタイミングで
git push - GitHub上で Pull Request を作成する
- 最終確認
- 問題がなければ Merge する
GitHub Issues の利用
いわゆる課題管理機能。
バグや追加したい機能はもちろん、思いついたネタのメモに使える。
スマートフォンアプリからも操作できるので、出先でネタをメモするといったこともできる。
VSCodeおすすめアドオン
- ayaya - Visual Studio Marketplace
- YAYA用シンタックスハイライター
- formatyaya-vscode - Visual Studio Marketplace
- YAYA用フォーマッター
- surfaces.txt - Visual Studio Marketplace
- surfaces.txt の入力補完。これはYAYA関係なく、surfaces.txt を書く機会があるすべての人におすすめ
FAQ
git コマンド覚えるの大変そう
Visual Studio Code ならボタン操作できる。
GitHub Desktop などもあるので、コマンド苦手でもなんとかなる。
複数のマシンで作業したいときはどうするの?
- 初回: リモートリポジトリから
git cloneする - それ以降: ブランチ切り替えて作業前は
git pullする。作業後はgit commitとgit pushする
conflict した
複数のマシンで作業していて、片方が git push する前にもう片方で作業したりすると発生しやすい。
Visual Studio Code のマージエディタを使って何が正しいか整理しながら、一つずつ解消する。
予防法としては、
- 作業開始前には
git pullをする - ブランチはこまめに main へマージする
の2点があげられる。
雑感
Gitでバージョン管理するようになって、不具合修正やトークの追加といった小さな作業と辞書の大規模変更のような大きな作業が並行してできるようになった。
作業が終わったらブランチを切り替えれば済む。
ブランチ操作やコミット単位を整理しようとすると、自然に今はランダムトークを追加する、今は不具合修正をする、と思考が切り替わるのも利点だと思う。
この記事を読んで試したいと思った人は、その日はGitHubのアカウントを作る、次の日はリモートリポジトリを作ってみる、と1ステップごと進めてみるとよいのではないかな、と。