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