2026年8月

2026年の一覧へ

8月18日

研究室サーバの電源ON。まずはファイルサーバから。

ファイルサーバが上がったのを確認してログインノード(NISサーバ)を立ち上げ、ログインノードが上がったあたりで計算ノード(NISクライアント)を立ち上げた。

まずはNISの確認。

またポート番号が変わっている。ポートを昔開けた861に固定。/etc/sysconfig/network に以下を追記。

YPSERV_ARGS="-p 861"

その後再起動。

sudo systemctl restart ypserv
$ rpcinfo -p localhost
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100004    2   udp    861  ypserv
    100004    1   udp    861  ypserv
    100004    2   tcp    861  ypserv
    100004    1   tcp    861  ypserv

861になった。これで計算サーバにもNISが通った。

なぜかyagami03が死んでいる。yagami01,02だけ復活させる。

sudo scontrol update NodeName=yagami01.appi.keio.ac.jp State=RESUME
sudo scontrol update NodeName=yagami02.appi.keio.ac.jp State=RESUME
$ sinfo -N -l
Tue Aug 18 23:45:24 2026
NODELIST                  NODES PARTITION       STATE CPUS    S:C:T MEMORY TMP_DISK WEIGHT AVAIL_FE REASON
yagami01.appi.keio.ac.jp      1     main*        idle 20     20:1:1      1        0      1   (null) none
yagami02.appi.keio.ac.jp      1     main*        idle 20     20:1:1      1        0      1   (null) none
yagami03.appi.keio.ac.jp      1     main*    drained* 20     20:1:1      1        0      1   (null) planned_power_outage

yagami01,02だけ復活。03は明日確認。

RBM論文、arxivでリプレースされたんだけど、なぜかPDFが古い。

arXiv:2509.04899

メタデータも、HTML (experimental)も更新されているが、PDFとTeX Sourceが古い。なんか変にキャッシュされてるのか?しばらく待って直ってなかったら再投稿?

昔作ったRubyスクリプトを修正しようとしたら、Rubocopがうるさいこと。特に、「関数の引数は3文字以上」という制約が厳しい。これがRuby独自なのか、いくつかの言語について調べてみた。

  • Python PEP8 lowercaseであることだけ。最低文字数の定めなし。
  • C++ — Google C++ Style Guide snake_caseとだけ定められている。
  • Java — Google Java Style Guide 引数は lowerCamelCaseであること、パブリックな関数は一文字は避けることが書いてある。
  • JavaScript — Google JavaScript Style Guide lowerCamelCaseであること、パブリックな関数は一文字は避けることが書いてある。一方、「スコープが10行以下で、exported API の引数でなければ、1文字変数名でもよい」と踏み込んだ記述がある。
  • Effective Go 探した範囲では、関数の引数に関する規定がない。公式のサンプルに一文字の引数を多数利用している。Go Wiki では、逆にlineCountよりcsliceIndexよりiを使えと、短い名前を推奨している。
  • Microsoft C# camelCaseであることが求められているが、最低文字数は定められていない。
  • Swift — Swift API Design Guidelines 引数についての明確な規定はなさそう。
  • Community Ruby Style Guide おそらく規定はない。

要するに、Rubcopが独自に厳しい。

さらに調べてみたが、RuboCop 0.53でNaming/UncommunicativeMethodArgNameが導入され、その時に既にMinNameLength: 3が指定されていた。これがNaming/MethodParameterNameに変更され、今にいたる。

直接の議論は[Fix #3666] Adds Uncommunicative MethodArg & BlockParam Naming copsかなぁ。要するに洗い出しに使って、必要ならAllowedNamesに追加していってね、という感じらしい。うーん。

LSW理論の分布関数を出力するスクリプトを整理して公開。

LSW Distribution

以前書いたノートの分布関数、3倍だけ計算が間違えている。レビュー論文を参考にしたはずなんだけどなぁ。いまBaldanのレビュー論文を読み直してみたけど、そこには書いてなかった。いずれにせよ、もういちどノートを整理してブログかどこかで公開したい。

PCの電源が壊れたのと、マウスの調子が悪いので注文。

8月17日

昨日のディズニーが足に来ている。

RBM論文を再投稿した。arxivのリプレースもした。

8月16日

娘とディズニーランドへ。

スプラッシュマウンテンが思ったよりスプラッシュしてずぶぬれに。

9時から18時30まで、11アトラクションを制覇。昨日の時点で空きがなかったレストランにもキャンセルがでて、12:20にイーストサイドカフェでご飯を食べることができた。非常に順調。

去年のディズニーシーが死ぬほど暑かったので、暑さ対策をしてきたのだが、終始曇り or 小雨で、かえって過ごしやすかった。ただ、一番の目的だったプーさんのハニーハントが運休だったのが残念。あと、ホーンテッドマンションも運休だった。

8月15日

停電のため、計算サーバを落とす。slurmでDRAIN状態にしてからそれぞれshutdown。

sudo scontrol update NodeName=yagami01.appi.keio.ac.jp State=DRAIN Reason="planned_power_outage"
sudo scontrol update NodeName=yagami02.appi.keio.ac.jp State=DRAIN Reason="planned_power_outage"
sudo scontrol update NodeName=yagami03.appi.keio.ac.jp State=DRAIN Reason="planned_power_outage"
ssh yagami01
sudo shutdown -h now
ssh yagami02
sudo shutdown -h now
ssh yagami03
sudo shutdown -h now

ファイルサーバのシャットダウン。まずはumount。

sudo umount /home
umount.nfs4: /home: device is busy

おっと。誰かが使ってる。

$ sudo fuser -vm /home
                     USER        PID ACCESS COMMAND
/home:               root     kernel mount /home
                     user1  583544 F.ce. code-f6cfa2ea24
                     user2  1117848 F.ce. code-fcf604774b

ログインしていないが、プロセスが残っているな。

sudo pkill -KILL -u user1
sudo pkill -KILL -u user2
sudo umout /home
ssh hiyoshi
sudo shutdown -h now

最後にログインノードをshutdownしておしまい。

いいかげんNIS+NFSをなんとかしなければと思いつつ、LDAPに踏み出せない自分がいる。

8月14日

NOP

「慣れたら一日でパズルゲームくらいリリースできるんじゃね?」と、昨日と同じ手順で作ってみたが、アクションパズルにしたらルール解釈がAIと合わない、キャラクターがうまく動かない、スプライトをうまく切り出せない、とトラブルが続出してうまく作れなかった。うーむ、向き不向きがあるな。

キャラクタースプライトでいえば、複数マスにまたがる処理が入るとうまく生成できない。ルールが複雑だとかなり詰めてもうまく伝わらない。うーむ。

8月13日

HodokuをItch.ioでリリースした。

Hodoku

今調べたら、

  • ChatGPTでプロジェクトの「壁打ち」を開始したのが8月11日の23:44
  • 「壁打ち」のうち、パズルゲーム作成に関して終わったのが Aug 12 00:20:45。ここでパズルゲーム生成コードの生成に入った。
  • 次の日に「ゲームUI」の壁打ちをしてゲーム実装に入る。
  • HodokuをGitHub Pagesでリリースしたのが8月12日の深夜
  • そして、Itch.ioでリリースしたのが8月13日の夜

ということで、ほぼ丸2日でゲームの使用策定からリリースまでできたわけだ。しかもこれにかかりっきりというわけではなく、壁打ちは布団で寝る前にスマホでポチポチだし、実装は家事の合間にエンターキーを押すだけ(たまに修正指示したけど)だし、あまり手間がかかっていない。

改めてすごい時代だな・・・

8月12日

「Hodoku」というゲームを作った。

Hodoku

Gitのログを見ると、Initial commitが

Date: Wed Aug 12 00:20:45 2026 +0900

となっている。その前の日にChatGPTと壁打ちして仕様を作成し、完成したPLANS.md、PLANS_maker.md、PLANS_game.mdをコミットしたのが11日深夜。

そのままパズルの問題作成を行い、次の日にゲーム作成を行った。問題作成が重かったのでMPIで自明並列にして探索させた。

作曲も自分でやろうと思ったが、ちょっと時間的に苦しかったのでSuno Proプランで作った。

中学生の頃からたくさんゲームを作ってきたが、ゲームを作るのは久しぶり。おそらくFlashで昔作ったゲームをリメイクしたのが最後だろう。

ゲームの絵や音楽に関しては完全に「ポン出し」だが、ゲーム本体はそうもいかず、実装させては確認、テストプレイして修正を指示を繰り返した。家事の合間に実装させ、指示待ちになってたら修正して・・・という感じ。べったり張り付いてはなかったが、それでもまぁまぁ時間はかかった。

ゲームプログラミングに関しては完全にAIに任せた。ゲームエンジンとしてGodotを採用したが、Godot scriptに関しては完全にノータッチ。昔、ゲームエンジンから自作していた(エンジンを作っていたのは僕ではなく友人だが)頃に比べると隔世の感がある。

果たしてこれ、「僕がゲームを作った」と言ってよいのか微妙だが、それでも漠然と頭に浮かぶアイディアがこうして形になるのは気持ちが良い。

ただ、ゲームを作ったのはほとんどAIなので、その製作体験記もAIが書くべきであろうと、ブログはAIに書かせた。

AIを使ってパズルゲームHodokuを作った

8月11日

塾の夏期講習の送り迎え x 2。それぞれ1時間半あったので、その間に査読x2を済ませた。

粗大ごみもたくさん捨てた。だいぶ家がきれいになった。

ブログの改良。まず、検索をつけた。記事のタイトルについてはインクリメンタルサーチで即時表示、本文はGoogleに投げる。「こんなの書いた気がするんだけどなぁ」と探すことが多かったのでとても便利に。しかし380記事もあるのか。

また、デフォルトのページネーションがいまいちだったので、数字で指定できる形に修正。

8月10日

購入したケルヒャーで外壁を掃除。すごい勢いで苔汚れが取れる。ゴシゴシ不要。素晴らしい。ただ疲れた。

家を少しずつ片付けている。これまで子供が二人連続で中学受験だったので、とても家の片づけまで手がまわらなかった。

査読をなんとかしなければならない。最近多い。知り合いがエディタになったかなぁ。

学生さんのジョブ、たぶん走り切ってるのになぜかタイムアウトする。ただ、データはできているので、それを解析スクリプトを走らせてみる。3021888。

8月9日

ケルヒャーを購入。

娘とホラーゲームを作った。まずChatGPTと壁打ち。やりたいことを伝えて最終的にPLANS.mdを作ることを目的とするというと、向こうがおおむね三択で仕様を提案してきて、それについてどれにするか選ぶだけ。20問くらいやりとりしたら、最終的に向こうがPLANS.mdを生成してくる。

それをCodexで読み込ませる。Phase 1から23まであり、少しずつ作りながらテスト。気になったところを修正しながら作っていく。なんだかんだで半日くらいかかったが、一通りプレイ可能な一人称視点3Dホラーゲームができてしまった。すごい時代だな。

ただ、敵の行動ルーチンがアホですぐにひっかかってしまうのを修正したり、部屋のレイアウトが甘かったり、生成された効果音がダメダメだったりするので、そのあたりは手動で修正する必要がある。でも、これもすぐに全部できるようになるんだろうな。

ちなみにGodot 4で作った。ある程度修正したら公開しよう。

8月8日

度が合わなくなってきた息子の眼鏡を購入。なんか保証期間内ということで無料。ラッキー。

子供の送り迎えをしたり、棚を移動して掃除したり。

なんかSNSで学歴について話題になってて、うっかり反応してしまったのだが、そしたら「学歴は大事だ」みたいなレスがついた。見てみると、「学歴」で検索しては「学歴は大事」「国立理系は勝ち組」とレスしてまわるだけのアカウントらしい。文章から、おそらくAIではなく人間。なんというか、呆れを通り越して哀れだなぁ。

codexを入れる。

nvm install --lts
nvm use --lts
npm install -g @openai/codex

実行したらbubblewrapがないと怒られた。

sudo apt install -y bubblewrap

というわけで、ついにこの日記のブログ化を実施。このMarkdownファイルを正本として、PythonでばらしてHugoでビルドする形式にした。懸案だったRSSにも対応(この日記の読者がどれくらいいるかわからないが・・・)。

なんかこういう「やらなきゃなぁ。でも面倒だなぁ」ということがすべてサクサクできるようになったのはAIのおかげだ。しかし、それだけに恐ろしい。子供たちの世代はどうなるんだろう。

8月7日

会議。

「一週間でなれる!スパコンプログラマ」の英語化を完了した。

Become an HPC Programmer in Seven Days!

かなりの作業量があり、AIがなければやろうとは思わなかったな。

DEV Communityにも投稿しておいた

学生さんのジョブのスパコンへの代理投入、ミスってた。サイズを大きくしたのに、git pullに失敗していることに気づかずに投げてしまった。ちゃんとmergeして投げ直した。

MN-CoreのSDKをなんとかしようとしたが、全く手をつけられていない。こちらから「こういうのが欲しい」と言ったのに申し訳ない。

また査読が来た。なんか最近多いな。

明日から夏休みか・・・

8月6日

そうか、AIを使うとこれまで面倒だったことが全部できるんだな。QiitaやZennの記事をブログに引っ張ってきたが、そのリンクがQiita、Zennのままになっているのを直さなきゃなぁ、と思っていた。そんなの、Codexに頼んで昼飯食ってれば修正できるんだな。頼んでおこう。

・・・さて、出来たかな。リストアップされたリンク先を確認しよう。

根拠:Zenn側slugにtypoがあるが本文「その1」と対応記事内容が一致

やかましいわ。

さらに、Qiitaから持ってくる時に、僕がSlugミスをして、「ParaViewでVTKレガシーフォーマットを使う その2」を、なぜか「ParaViewでVTKレガシーフォーマットを使う その1」として持ってきてしまった。その修正もCodexにやってもらった。また、URLが生ではってある箇所も見つけたので、全てなおしてもらった。

548件の置換が完了しました。次に、残存リンクが「対応なし」「置換不要」だけであること、差分の範囲、ビルド結果 を確認します。

548件か。手作業でやったら、スクリプトを駆使しても面倒だったな。

研究室ミーティング。

  • F. Battiston, V. Nicosia, V. Latora, and M. San Miguel, Layered social influence promotes multiculturality in the Axelrod model, Scientific Reports, vol. 7, 1809, (2017).
  • D. Gessert, M. Weigel, and W. Janke, Frustrated Ising model on the honeycomb lattice: Metastability and universality, Physical Review B, vol. 113, 104436, (2026).

どちらも興味深かったのだけれど、後者の論文見た時に「W. Jankeってまだ論文書いてるんだ!」と驚いてしまった。調べたらまだ70歳。W. Jankeは僕が博士課程の学生の頃にはもう有名な研究者だったので、もっと年上だと思ってた。

ChatGPTに聞いてみた。僕が参加した夏の学校は「Computer Simulations of Surfaces and Interfaces」であり、NATO Advanced Study Institute(NATO ASI)/Euroconferenceとして開催。日時は2002年9月9日~20日、場所はブルガリア・アルベナ(Albena)。

この夏の学校の講義録が出版されている。

Computer Simulations of Surfaces and Interfaces

講義録には、K. Binder、D. C. Rapaport、W. Janke、N. B. Wilding、D. P. Landau、M. A. Novotnyなど有名人が並ぶ。やはりW. Jankeはこの夏の学校の講師だったようだ。いや、W. Jankeにはこの夏の学校で会った気がしていたのだが、当時の2002年の日記に記録がないため、2014年の日記に「会ってなかったっぽい」と書いてある。

ただ、D. P. Landauがブルガリアにいた記憶はないなぁ。

ついでに以下の日記の記述について調べてもらった。

Balchikへ。 Balchikというのは植物園のようなところだが、もともとは 庭付きのお城。 第一次大戦後にブルガリアがルーマニアに領土を奪われたとき、 ルーマニアの女王マリアが来てこの場所を気に入り、城を建てた。 ある時マリアの子供が海でおぼれたとき、トルコ人の漁師ハサンに 助けられた。彼はハンサムでかっこよく、 女王は恋に落ちてしまう。ところが実はハサンは海賊で・・・ というおとぎ話のようなバックストーリーがこの地にはある。

ChatGPTによると、溺れたのは女王マリアの娘、イレアナ王女(Princess Ileana, 1909–1991)、漁師ではなく商人で、海賊という情報は見つからなかったらしい。この伝説は、例えば以下のサイトで見られる。

The Palace of the Romanian Queen

うん、こんなところだった。懐かしい。

8月5日

スパコン一週間、パワポの英訳をしようとしてChatGPTに聞いたら、「まず対訳表を作ると良いですよ」と言われたので、対訳表を作るようにPLANS.mdを更新してcodexに投げる。するとPythonのpython-pptxパッケージを使って日本語を取得、対訳表をCSVで作って僕がそれを確認、OKを出したらPowerPointが翻訳された。すげぇ。

なんかGitHubにDependabotというボットからプルリクエストが来ている。最初、SPAMかと思ったが、GitHubの機能らしい。

いろいろ調べた(というかCodexに聞いた)が、マージできる奴とできない奴があるので、マージできる奴はマージ、できない奴はbotに無視しろとコメントすることに。っていうか、Codexにghコマンドの権限渡して「はいはい」って言うだけ。

Botに無視しろといったPRはこれ

AIに作らせたGitHub Actionに、GitHubのbotがプルリクを作り、それをAIにレビューさせてAIが「ignore this major version」と(僕を通じて)返事をして、botが「OK, I won’t notify you about version 7.x.x again, unless you re-open this PR.」と返事をしてきた。

もう近未来とかそういう雰囲気を超えている。

っていうか、Codexが.github/dependabot.ymlを作成しているな。これでbotが反応したのか。

version: 2
updates:
  - package-ecosystem: npm
    directory: /
    schedule:
      interval: weekly

  - package-ecosystem: github-actions
    directory: /
    schedule:
      interval: weekly

論文のイントロ書き直した。全体をチェックしてから共著者に送った。もうすぐ再投稿できるはず。

学生さんのジョブも投げた。

理事の仕事までは手をつけられなかった・・・

8月4日

物性研で会議。

三澤さんのリポジトリ見ててCFFファイルというものを知った。これはCitation File Formatの略で、GitHubのリポジトリにCITATION.cffがあると、右のメニューに引用方法が表示される。なるほど。

さっそくいくつか論文に関連づいているリポジトリにCFFファイルを追加してみた。

夜、ふと思い立ってAIに「一週間でなれる!スパコンプログラマ」の英訳をさせてみた。ついでに、英語と日本語を分けるためのディレクトリ構造と、Pandocではなく別の方法による管理を提案させたら、Astro Starlightを提案されたのでそれでやらせてみた。

最初は「量があるので、ローカル翻訳を試して良いですか?」と聞いてきたので、「いいよ」といったら、Pythonの翻訳ライブラリを試してから「やっぱ使えないのでマルチエージェント立ち上げていいですか?」って言ってきて、「いいよ」といったら、「それでは1,2章、3,4章、5-7章の翻訳をそれぞれのエージェントに任せて、私は全体の統括をします」とか言い出して、なんかもう、なんだろうこの近未来感。

これまでCodexは「部下」のつもりだったんだけど、なんか、その部下にさらに部下がいるという。自分が「課長」だと思ってたら、もう「部長」になってたような感じ。すごいなぁ。

で、放置して晩ごはん食べて戻ってきたら翻訳が出来ている、と。すごいなぁ(語彙力)。

8月3日

以前、「Xでポストがバズってましたね」って言われて「え?」と聞いてしまった。自分で言うのもなんだけど、わりとバズっているので、慣れているというか、「バズっていたポスト」がどれかがわからなくなる。

とりあえずバズるの定義を万バズとし、万バズの定義を「いいねが1万」として、「min_faves:10000 from:username」で自分のバズったポストを調べてみた。

  • 2026/7/27
  • 2026/6/21
  • 2026/5/17
  • 2026/2/10
  • 2026/1/18
  • 2026/1/4
  • 2026/1/1
  • 2025/12/6
  • 2025/11/21
  • 2025/11/19
  • 2025/11/12
  • 2025/10/19
  • 2025/7/22
  • 2025/5/10
  • 2025/3/16
  • 2025/2/19
  • 2025/2/9
  • 2025/1/25

2025年1月から2026年7月まで、19ヶ月で18回ですか。連続したり間があいたりはしているけど、概ね1ヶ月に1度という感じ。まぁ、これなら「ポストがバズってましたね」と言われて「どれ?」と聞き返してもギリ不遜ではなさそうですね。

しかし、Xの「For You」は駄目だ。どんなに「浄化」しても、すぐに喧嘩しているか「ざまぁ」系か、「困ったことを言っているアカデミアの人」のポストが流れてくる。これは、結局僕がそういうポストをクリックしてしまう、ということなんだろう。ようするにXのFor Youはカイジの「偽善の壁」であり、自身のダメさの鏡なんだ。

そういえばXの広告が鬱陶しくて言語設定を英語にしているので「For You」になってるんだけど、なんかこの設定、もうあまり意味がなくなってる気がするな。

RuffがMarkdownの整形をしようとして「Preview機能だから使うなら指定しろ」と警告を出してくる。ChatGPTに聞いたら「Prettier使えば?」とのことなので、VSCodeに拡張機能Prettierをインストール。以下の設定を追加。

  "[markdown]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "editor.formatOnSave": true,
  }

おお、便利だ。OLで

1. hoge
1. hoge
1. hoge
1. hoge

とある時に、

1. hoge
2. hoge
3. hoge
4. hoge

としてフォーマットすると連番に、逆に1. 1.の状態でフォーマットすると全て1. 1.になる。余計な改行も減る。

RBM論文を大幅に書き直した。あとは関連論文を読むのとIntroductionを修正するだけ(それが一番大変という話もある)。

8月2日

実家へ。

8月1日

クローゼット組み立てたりした。

日本物理学会・巻頭言 LaTeX テンプレートを整理して公開した。