2024-10-14

久しぶりに更新。今回の内容

JuliaのDocumenter.jlを使ってHPをビルドする方法 (更新)

自分は、こんな感じのディレクトリ構造でHPをビルドしている。

$ tree .
.
├── CMakeLists.txt
├── Project.toml
├── README.md
├── docs
│   ├── make.jl
│   └── src
│       ├── assets
│       │   ├── colorschemes-docs.css
│       │   └── logo.jpg
│       ├── diary
│       │   ├── 2023-12-30.md
│       │   └── 2024-10-14.md
│       ├── index.md
│       ├── misc.md
│       └── news.md
├── installer.jl
└── src
    └── WhoIAm.jl

18 directories, 58 files

前回のブログに書いたDocumenter.jlを使ってHPをビルドしようとしたら、 ERROR: Method overwriting is not permitted during Module precompilation. Useprecompile(false)to opt-out of precompilation. というエラーが出たので、

--- a/src/WhoIAm.jl
+++ b/src/WhoIAm.jl
@@ -1,4 +1,5 @@
 module WhoIAm
+__precompile__(false)

 using Documenter

として、__precompile__(false)を追加した。 どうやら自作モジュールWhoIAm.jlがprecompileされないようにすることで解決した。

ことし覚えた便利ツール

時間があるときに、充実させていこうと思う。

  • Quarto
    • 今年、沖縄で学んだ。
    • Markdownと同じ記法で書ける。
    • Webページ、PDF、Word、Slidesなどが作れる。Sphinxの上位互換?
    • でも、docstringの連携はまだ改善の余地を感じる。
    • quarto publishでGitHub Pagesにデプロイしてスライドだったり、Webページだったりを公開できるのが非常に良い。自分でGitHub Actionsを書かなくてもいい。
  • juliaup
    • Versionを簡単に挙げられる便利。
    • だけどJuliaはimportしたときにprecompileが走るので、時間のあるときにupgradeしておくとよき。
  • ITensors.jl
    • PhononやElectronのDMRG計算もできた。
    • 倍精度GPU計算の話。
      • GPUサポートされているのだけど、単精度でDMRGやってもあまり嬉しさがない。倍精度のCUDA配列にMPOとMPSを変換すればよい。
    • HDF5の読み書き。
      • MPSやMPOを保存しておいて、他のプログラムで使える。
  • uv
    • poetryも今年初めて覚えたけど、それよりもuvの方が圧倒的に良かった。経緯でいうと、Ryeを使い始めようとしたら、uvに統合されるとのことだったので、uvを使い始めた。
    • なんと言っても速いのでCI/CDで使うときに便利。
    • poetryと違って、venvの場所が分かりやすいし、pyenvでpythonを入れる必要すらなくなる。
  • singularity
    • dockerの代わり。sandboxとして使うときに便利。aptでインストールしようとしたら結局sudoが必要で、そういったときはDockerと大差ないかも。build-essentialとかをあらかじめsudo権限使える環境で入れておいて、それを持っていくとか。
  • VASP
    • Fujituのコンパイラに対応していた。すごい。
    • POTCARを準備するのが面倒くさい。デフォルトで入っていてほしい。
  • ruff
    • FormatやCheckをしてくれる。高速に自動で直してくれるのがとても良い。
  • pre-commit
    • commitするときにruffとかを走らせる。
    • 大きいファイルをcommitするときに警告してくれるのが良い。
  • mypy
    • うるさくてPythonのいいところがなくなる。あんまり好きじゃないかも。
  • pyright, pylance
    • VSCodeで定義ジャンプができる。JetBrainsのIDEと同じような感じ。
  • kubernetes
    • 使いはじめたい。
  • JAX, Flax, Optax
    • PyTorchの方が便利機能が詰まっているけど、逆にJAXの方が実装がコンパクトでNumpyとかを移植するにはJAXで十分。DeepになるほどPyTorchの方が便利そうだけど、スクラッチでこれまでにないようなモデルを作るときにはJAXの方が良いかも。
    • torchと違って、Tensorがgradとかgraphみたいなattributeを持っていないのが一番の思想の違い。
    • JAXの方がパフォーマンス良い傾向があるらしい。比較したことはない。
    • jax.lax.while_loopにするとめっちゃ速くなる。
    • Flaxnnxlinenがある。nnxの方が当たらくて、インターフェースがtorchに似ている。(気がする)
    • Optaxtorch.optimの代わり。optax.adamとかoptax.sgdとかがある。line-searchとかもある。

ガンダムファクトリーに行った話

年明けに行った。今年の3月で終了らしい。お台場にあるやつと違ってちゃんと動いてた。またどこかで開催してほしい。

Osmo-Pocket 3を買った話

vlog始めた。あと、こいつで自分の背中をとると、ひとりで散髪できる。動画保存ようにHDD買ったりYouTubeに投稿したりした。

座間味島に行った話

電動自転車を借りて、島を一周した。めっちゃ日焼けした。次いくときは、スキューバダイビングやホエールウォッチングをしたい。

下呂温泉に行った話

JR東海の新しい電車に乗った。京都から飛騨まで一本で行ける。帰りに東山動物園に行ってコアラを見た。

エスコンフィールドに行った話

横浜と日ハムの交流戦を見に行った。横浜が勝った。食事を楽しむために、開場時間に行くべきだった。すごく良い球場だった。

超音波洗浄機を買った話

眼鏡と、ガンプラ洗浄用に買った。

スイミングを始めた話

健康のために始めた。週一回くらいのペースで西京極のプールに行っている。100m泳げるようになった。

PFNのインターンにいった話

記事はこちら。 分子のxyz構造を生成するDiffusion modelを非平衡物理の方法を使って訓練する方法に取り組みました。 2か月実家にいたら5 kg太った。

ポケモンスタンプラリーを制覇した話

夏休みにほぼ東京にいたので、ポケモンスタンプラリーを制覇した。 代々木駅に等身大ヌオーがいた。越谷レイクタウンのチルタリスが難易度高かった。 一番遠いのは土浦。 幹線駅のスタンプをゲットすると、メダルがもらえるので、初めて上越新幹線に乗って新潟に行った。