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を保存しておいて、他のプログラムで使える。
uvpoetryも今年初めて覚えたけど、それよりもuvの方が圧倒的に良かった。経緯でいうと、Ryeを使い始めようとしたら、uvに統合されるとのことだったので、uvを使い始めた。- なんと言っても速いのでCI/CDで使うときに便利。
- poetryと違って、venvの場所が分かりやすいし、pyenvでpythonを入れる必要すらなくなる。
singularitydockerの代わり。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にするとめっちゃ速くなる。Flaxはnnxとlinenがある。nnxの方が当たらくて、インターフェースがtorchに似ている。(気がする)Optaxはtorch.optimの代わり。optax.adamとかoptax.sgdとかがある。line-searchとかもある。
ガンダムファクトリーに行った話
年明けに行った。今年の3月で終了らしい。お台場にあるやつと違ってちゃんと動いてた。またどこかで開催してほしい。

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

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

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

エスコンフィールドに行った話
横浜と日ハムの交流戦を見に行った。横浜が勝った。食事を楽しむために、開場時間に行くべきだった。すごく良い球場だった。

超音波洗浄機を買った話
眼鏡と、ガンプラ洗浄用に買った。
スイミングを始めた話
健康のために始めた。週一回くらいのペースで西京極のプールに行っている。100m泳げるようになった。
PFNのインターンにいった話
記事はこちら。 分子のxyz構造を生成するDiffusion modelを非平衡物理の方法を使って訓練する方法に取り組みました。 2か月実家にいたら5 kg太った。
ポケモンスタンプラリーを制覇した話
夏休みにほぼ東京にいたので、ポケモンスタンプラリーを制覇した。 代々木駅に等身大ヌオーがいた。越谷レイクタウンのチルタリスが難易度高かった。 一番遠いのは土浦。 幹線駅のスタンプをゲットすると、メダルがもらえるので、初めて上越新幹線に乗って新潟に行った。
