2021年8月
08月31日(火)
何?もう8月終わりなの?
ながらくsvnを使っていたので、どうしてもci, stといったコマンドを使いたがっていたが、ちゃんとcommit、statusを入力するようにした。さらに、checkoutのかわりにswitchを使うように練習中。学生さんに変な癖つけるわけにはいかないしね。
Git 内部探訪。git init 直後は、.git/HEADは`
ref: refs/heads/main
とmain(master)ブランチを指している。しかし、init直後は.git/refs/heads
は空っぽ。この状態でgit log
を叩くと、
$ git log
fatal: your current branch 'main' does not have any commits yet
つまり、「HEADが指すブランチが存在しなければ、コミットが無い」と判断する。また、この時点ではindexも存在しない。
git add
するとindexが作られる。
git commit
してはじめて.git/refs/heads/main
が作成される。
さて、git log
が「歴史があるかどうか」は「対応するブランチに対応するファイルがあるかどうか」で判断しているので、それを削除すれば歴史が無いと判断する。
git switch -c hoge
これで.git/refs/heads/hoge
が作られ、.git/HEAD
がそこを指す。
ここで、hoge
ブランチファイルの名前を変えてしまおう。
mv .git/refs/heads/hoge .git/refs/heads/hoge.org
これで、HEADは.git/refs/heads/hoge
を指しているが、そのファイルは存在しない、という状態になった。この状態でgit log
を叩くと、
$ git log
fatal: your current branch 'hoge' does not have any commits yet
と「歴史が無いよ」と言われる。しかし、.git/index
は存在するので、git diff
は使える。
$ echo "hogehoge" >> hello.txt
$ git diff
diff --git a/hello.txt b/hello.txt
index e965047..0e05194 100644
--- a/hello.txt
+++ b/hello.txt
@@ -1 +1,2 @@
Hello
+hogehoge
indexも消してしまおう。
rm .git/index
これはgit init
直後の状態となるので、git diff
が何も表示しなくなり、git status
がhello.txt
をUntracked
filesと認識する。
$ git diff
$ git status
On branch hoge
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
hello.txt
nothing added to commit but untracked files present (use "git add" to track)
なるほどね。
08月30日(月)
発表の仕方スライドを作成。
OS自作もくもく会。7章終わったことにする。使うアセンブリ命令が特権命令なので、普通のOS上で全部SIGSEGVになるのがしんどいなぁ。
ブランチの比較のためにGitLensを導入したが、なれないと鬱陶しいなこれ。消すか、慣れるまで頑張るか……
やっぱり消すか。GitHub演習のために変なの入れてそれがデフォルトだと勘違いすると困るから。
08月29日(日)
NOP
08月28日(土)
NOP
08月27日(金)
RevTeX、Ubuntuだと。
WSL2のUbuntuでチェック。まずlatexmkを入れる。
sudo apt-get update -y
sudo apt-get install -y latexmk
RevTeX入ってないな。dkpg -lで調べる。
dpkg -l | grep texlive
texlive-publishersが入ってないな。入れる。
sudo apt-get install -y texlive-publishers
でビルド。あれ?。
GitHub演習の講義ノート続き。いま見たら「Gitはファイルシステムの一種である。ファイルシステムといえばext4である。だからとりあえずinodeについて説明する」とか書いてあって、「それはないな」と正気にかえった。
08月26日(木)
JPSJ論文投稿覚書。
- https://publication.jps.jp/jpsj/submission/からログイン。
- 左のメニューの「Submit a New Manuscript」ボタンをクリック
- タイトル、著者、自分の所属、全員分のメールアドレス、カテゴリ、分類、キーワードなどを入力
- Short Summary to the Editorを入力 (300 words or less)
- Suggested Referees を入力(人数が書いてなかったが、とりあえず2人推薦してみた)
- Single PDFをアップロード。JPSJは投稿時にはPDFだけで良い。
- 全員分のメールアドレスを要求されるが、確認メールはcorresponding authorにしか飛ばないらしい。
cond-matにも投稿した。https://arxiv.org/submitから投稿開始。ライセンスは「arXiv.org perpetual, non-exclusive license 」にした。こちらは特に難しいことはなかったのでそのまま。bblファイルがあって、latexmk -pdfでビルドできるファイル一式をtar.gzで用意すれば良い。Metadataはコピペでよい。
JPSJもarxivも、所属が物性研だった。慶応に来てからこれまで論文を投稿してなかったのか……
これからがんばろう。
08月25日(水)
時間割のGoogle Spread Sheet化した。頭が混乱していたので、整理がてら。
08月24日(火)
書類一個提出したぞ。
学生さんの立替払い確認。とりあえず出してみないとよくわからないな。
大学院の講義を考えててさっぱりわからんくなった。
08月23日(月)
修論中間発表会。書類仕事が溜まってきたが、正直疲れている。明日にしよう。
OS自作もくもく会。ついに参加者二人になってしまった・・・
GitHub演習、演習部分を一つ書いた。
- 座学
- ☑ バージョン管理とは
- ☑ Gitの仕組みと用語
- ☑ コマンドラインの使い方
- Gitの基本的な使い方
- ブランチ操作
- Gitの仕組み(いらないかな?)
- GitHubの使い方(演習だけで良い?)
- 演習
- ☑ Gitの操作(init add commit log diff)
- Gitの操作(switch merge branch rebase bisect blame)
- GitHubの操作(push fetch)
- 何か作らせる
結構頑張ったつもりが、わりとまだできてない感。
08月22日(日)
講義ノートがある程度形になってきたので論文に取り組もうと思ったが、体調が悪くてほとんど見れず。でもだいぶよい感じになってきたので、あと一往復したら英文校閲出して投稿してしまおう。もう一つの論文もなんとかしないと。あと、まだ手をつけてない奴もある。いろいろ遅くて申し訳ない。
本当は未踏のイベントがあったのだが、いろいろ立て込んでて参加できず。富岳も、そして未踏HPCも手を付けられていない。いろいろ厳しい。
08月21日(土)
学生さんとミーティング。金曜日できなかったので。
あとなにしたっけ?Gitのコミットログを見る限り仕事してるっぽいが記憶喪失。
思い出した。子供を公園に連れ出してバテてたわ。
08月20日(金)
いろいろ会議。なんか疲れた。
講義ノートを余談から書いていくスタイル。
08月19日(木)
VSCodeのmarkdownlintの設定。インデントをスペース4つ分にする。
"markdownlint.config": {
"MD007": {
"indent": 4
}
}
なんか.markdownlint.json
が効かなかったので、VSCodeに直接設定。
理科設備費は、Excelの一覧だけメール。後は紙で。
VSCodeのMarkdownのタブサイズ変更が効かなかったの、エディタが開いたファイルで自動的にタブサイズを認識していたからだった。
"[markdown]": {
"editor.detectIndentation": false,
"editor.tabSize": 4,
"editor.insertSpaces": true,
"editor.wordWrap": "on",
"editor.quickSuggestions": false
}
08月18日(水)
研究室サーバのポート増設。予算執行計画の確認。研費使用説明会の動画見た。まだ知らないことがあった。
いろいろバタバタしてダメだ。
知り合いが炎上に近い状態になっていた。ネットで有名な人に言及してはいけない。
08月17日(火)
いろいろ忙しい。GitHub演習、HTML化した。コマンド解説を書き始めた。
08月16日(月)
OSもくもく会。
C/C++は、関数内関数を作れないのか。なんか作れるイメージでいた。
OS自作もくもく会。4名。がんばろう。
C/C++で関数内関数が作れないことを知った。いや、知ってたんだろうけど、再認識した。Ruby/Pythonでは普通に作れるし、Javaで無名関数をよく使うので忘れてた。使いたければラムダ式を使え、と。
おお、未踏からまた組版システムが。しかもこの人、筑波大の履修登録システムを作った人か。
08月15日(日)
講義ノート執筆。とりあえずGitの仕組みと用語については書けたことにする。
08月14日(土)
講義ノート執筆。
学生さんとミーティング。
08月13日(金)
Gitのindexの中身。
- indexはinit直後には存在しない。
- indexはディレクトリではなくファイル
- フォーマットはこちら
- indexの中身は
git ls-files --stage
で見ることができる。 - ファイルのハッシュは
git hash-object filename
で調べることができる
講義ノート書いてて、メールアドレスで仮の例を出そうとしてmail@hogehoge.comと書いて、念の為調べたらhogehoge.comが存在し、仕方なくnowhere.comにしようとしたらそっちも存在して、mailaddress.comも調べたらそれもあって「ムキー!」ってなってる。
停電のためにサーバその他の電源を落とした。
こういう用途のために、例示/実験用として利用できるドメイン名があることを教えていただいた。とりあえずexample.comを使っておくと良いらしい。
Gitのインデックスの中身について覚書を書いた。
08月12日(木)
colordiffなど、色つきのターミナルの結果をそのまま保存したいことがある。いろいろ調べたが、一番楽なのはahaを使うこと。Ubuntu(WSL)ならaptで、Macならbrewで入る。
sudo apt install -y aha
brew install aha
08月13日(水)
いろいろバタバタして、ミーティングをバッティングしてしまった。
GitHub演習の講義ノート作成を続けている。
08月10日(火)
Oh、またpush忘れた。プロンプトに表示してあるのに。
Gitでブランチをmasterからmainに変えたときに、
fatal: ambiguous argument 'origin/main..main': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
というエラーが出て困っていたが、これには2つの理由があった。
まず、プロンプトでpush忘れを防ぐためにgit log origin/master..master
コマンドが自動で実行されるようになっていた。この状態で、git branch -m main
として、ローカルのmasterをmainに変えてしまった。upstreamのブランチ名がローカルと違うことを想定していなかったので、git log origin/main..main
というコマンドが実行されてしまい、そんなパス無いよ、と怒られた。
秋学期の講義の予定をカレンダーに突っ込んだ。やはりHPCI報告会と講義がぶつかるので、事務局に相談。
Intel C/C++ compilers complete adoption of LLVM マジか。
なんか、WSL2上にあるファイルをWindows側でいじると、その変更が反映されるのにたまにタイムラグがある気がする。遅延書き込みでもしてるのか?
08月9日(月)
だいぶ体調も戻ってきたので講義の準備をはじめる。いろいろヤバい。
あー富岳の準備も全然できていないぞ。
08月8日(日)
ワクチン接種から12時間ほどで発熱がはじまり、38度台へ。たいしてつらくなかったので甘く見ていたら、そこから1時間で39度台になって、眠れないほどの悪寒。それが5時間ほど続き、明け方ようやく38度台に戻って眠れるように。そこからさらに12時間ほどで平熱に。結構な副反応があった。やれやれ。
08月7日(土)
なんか講義の準備ができていないまま講義が始まってしまうという悪夢を見た。正夢になりそうで怖い。
二回目のワクチン接種。
08月06日(金)
見ず知らずの人に「お気持ち」を直接表明されてもな、という気持ちなんだけど、そう思わない人が多いんだなぁ。
Linuxの操作に慣れるための環境が欲しいという話、ブラウザでエミュレートしてくれる環境とかないかなぁ。
Dropboxがブラウザ上で動くといいんだけどなぁ。Play with Dockerって使えるのかな?
会議。会議の後に研究打合せ。若い人が成果を出すのを見るのは良いですね。
論文なんとか仕上げたことにして共著者に送った。そろそろ供養したい。この年になっても、論文は一文一文、一語一語紡ぎだす感じなんだよなぁ。
08月05日(木)
世の中のほとんどのことにはメリットとデメリットがあって、そのどちらを重視するかは人によるわけ。例えばフリーランスになることを考える。フリーランスにはメリット、デメリットが当然あるわけで、そのどちらを重視するかは人による。フリーランスになることにより負うリスクや、サラリーマンとして生きている時、雇用主が支払っているコストについて無知なままフリーランスになることはまずいわけで、逆にフリーランスの厳しさをむやみに強調し、その道を閉ざしてしまうのも問題。「フリーランスという道もある」という可能性、選択肢を持っていることは良いことだから。
繰り返しになるけれどそのメリット、デメリットのどちらを重視するかは人のポリシーによるわけで、それは例えば設定スイッチの「どちらをデフォルトにするか」の問題なわけだ。で、例えば僕が「フリーランス慎重派」の立場をとったとして、それに対していちいち「それには賛成できない」と言われても、「そうですか」としか言いようがない。っていうか、明らかに間違っているとか勘違いしているとかならいざ知らず、こういう「どちらを重視するか」という人の好みに問題に、いちいち「その趣味は理解できない」って言われても困るんだけどな。
v(t)自己相関関数のt=0が1にならないって騒いでたのだが、v(t)^2の平均で割るのを忘れていた。ひどすぎる。
数億年ぶりくらいにLangevin方程式の解析(速度相関とか平均二乗変位とかの計算)をした。完璧に忘れてた。
08月04日(水)
たまにでる「ダメな技術記事を書くな」論、これは全く検索システムやトレンドシステムの問題なのであって、執筆者に文句を言うべきではないんだけれども、一定頻度で出ますね。
僕の中では「ぐるぐるSQL問題」がその一種。
いろいろ考えた末、結局記事を書いた。
08月03日(火)
修論中間発表会の準備。遅くなってしまった。
明日の議論のための準備。論文も修正。
子供達を公園に連れて行った後のわりには頑張った(と自分を慰める)。
またフーリエ変換による相関関数の計算がおかしい。確認しなければ・・・
08月02日(月)
集中力を欠くなぁ。
学生さんと1on1ミーティング。進捗いい感じ。
BGM代わりにYouTube開いているんだけど、なぜかおすすめされたつまようじ造構造物耐震コンテスト2010(崇城大学)が面白かった。こういうコンテスト系、やってみたいなぁ。
研究室サーバの調子が悪い。
$ mpirun -np 4 ./a.out
[name.of.server:202001] PMIX ERROR: OUT-OF-RESOURCE in file gds_dstore.c at line 1178
[name.of.server:202001] PMIX ERROR: OUT-OF-RESOURCE in file gds_dstore.c at line 1313
[name.of.server:202001] PMIX ERROR: OUT-OF-RESOURCE in file gds_dstore.c at line 2331
[name.of.server:202001] PMIX ERROR: OUT-OF-RESOURCE in file gds_dstore.c at line 3148
[name.of.server:202001] PMIX ERROR: OUT-OF-RESOURCE in file gds_dstore.c at line 3180
[name.of.server:202001] PMIX ERROR: OUT-OF-RESOURCE in file server/pmix_server.c at line 2170
[name.of.server:202006] PMIX ERROR: OUT-OF-RESOURCE in file client/pmix_client.c at line 223
[name.of.server:202001] PMIX ERROR: OUT-OF-RESOURCE in file gds_dstore.c at line 1178
[name.of.server:202001] PMIX ERROR: OUT-OF-RESOURCE in file gds_dstore.c at line 1313
[name.of.server:202006] OPAL ERROR: Error in file pmix2x_client.c at line 112
[name.of.server:202001] PMIX ERROR: OUT-OF-RESOURCE in file gds_dstore.c at line 2331
[name.of.server:202001] PMIX ERROR: OUT-OF-RESOURCE in file gds_dstore.c at line 3148
[name.of.server:202001] PMIX ERROR: OUT-OF-RESOURCE in file gds_dstore.c at line 3180
[name.of.server:202001] PMIX ERROR: OUT-OF-RESOURCE in file server/pmix_server.c at line 2170
[name.of.server:202001] PMIX ERROR: OUT-OF-RESOURCE in file gds_dstore.c at line 1178
[name.of.server:202001] PMIX ERROR: OUT-OF-RESOURCE in file gds_dstore.c at line 1313
[name.of.server:202001] PMIX ERROR: OUT-OF-RESOURCE in file gds_dstore.c at line 2331
[name.of.server:202001] PMIX ERROR: OUT-OF-RESOURCE in file gds_dstore.c at line 3148
[name.of.server:202008] PMIX ERROR: OUT-OF-RESOURCE in file client/pmix_client.c at line 223
[name.of.server:202001] PMIX ERROR: OUT-OF-RESOURCE in file gds_dstore.c at line 3180
[name.of.server:202001] PMIX ERROR: OUT-OF-RESOURCE in file server/pmix_server.c at line 2170
[name.of.server:202008] OPAL ERROR: Error in file pmix2x_client.c at line 112
[name.of.server:202007] PMIX ERROR: OUT-OF-RESOURCE in file client/pmix_client.c at line 223
*** An error occurred in MPI_Init
*** on a NULL communicator
*** MPI_ERRORS_ARE_FATAL (processes in this communicator will now abort,
*** and potentially your MPI job)
[name.of.server:202006] Local abort before MPI_INIT completed completed successfully, but am not able to aggregate error messages, and not able to guarantee that all other processes were killed!
[name.of.server:202007] OPAL ERROR: Error in file pmix2x_client.c at line 112
*** An error occurred in MPI_Init
*** on a NULL communicator
*** MPI_ERRORS_ARE_FATAL (processes in this communicator will now abort,
*** and potentially your MPI job)
[name.of.server:202008] Local abort before MPI_INIT completed completed successfully, but am not able to aggregate error messages, and not able to guarantee that all other processes were killed!
[name.of.server:202001] PMIX ERROR: OUT-OF-RESOURCE in file gds_dstore.c at line 1178
[name.of.server:202001] PMIX ERROR: OUT-OF-RESOURCE in file gds_dstore.c at line 1313
[name.of.server:202001] PMIX ERROR: OUT-OF-RESOURCE in file gds_dstore.c at line 2331
[name.of.server:202001] PMIX ERROR: OUT-OF-RESOURCE in file gds_dstore.c at line 3148
[name.of.server:202001] PMIX ERROR: OUT-OF-RESOURCE in file gds_dstore.c at line 3180
*** An error occurred in MPI_Init
*** on a NULL communicator
*** MPI_ERRORS_ARE_FATAL (processes in this communicator will now abort,
*** and potentially your MPI job)
[name.of.server:202001] PMIX ERROR: OUT-OF-RESOURCE in file server/pmix_server.c at line 2170
[name.of.server:202007] Local abort before MPI_INIT completed completed successfully, but am not able to aggregate error messages, and not able to guarantee that all other processes were killed!
[name.of.server:202009] PMIX ERROR: OUT-OF-RESOURCE in file client/pmix_client.c at line 223
[name.of.server:202009] OPAL ERROR: Error in file pmix2x_client.c at line 112
*** An error occurred in MPI_Init
*** on a NULL communicator
*** MPI_ERRORS_ARE_FATAL (processes in this communicator will now abort,
*** and potentially your MPI job)
[name.of.server:202009] Local abort before MPI_INIT completed completed successfully, but am not able to aggregate error messages, and not able to guarantee that all other processes were killed!
--------------------------------------------------------------------------
Primary job terminated normally, but 1 process returned
a non-zero exit code. Per user-direction, the job has been aborted.
--------------------------------------------------------------------------
--------------------------------------------------------------------------
mpirun detected that one or more processes exited with non-zero status, thus causing
the job to be terminated. The first process to do so was:
Process name: [[46247,1],0]
Exit code: 1
--------------------------------------------------------------------------
[watanabe@watanabe-login ~]$ mpirun -np 2 ./a.out
[name.of.server:202103] PMIX ERROR: OUT-OF-RESOURCE in file gds_dstore.c at line 1178
[name.of.server:202103] PMIX ERROR: OUT-OF-RESOURCE in file gds_dstore.c at line 1313
[name.of.server:202103] PMIX ERROR: OUT-OF-RESOURCE in file gds_dstore.c at line 2331
[name.of.server:202103] PMIX ERROR: OUT-OF-RESOURCE in file gds_dstore.c at line 3148
[name.of.server:202103] PMIX ERROR: OUT-OF-RESOURCE in file gds_dstore.c at line 3180
[name.of.server:202103] PMIX ERROR: OUT-OF-RESOURCE in file server/pmix_server.c at line 2170
[name.of.server:202103] PMIX ERROR: OUT-OF-RESOURCE in file gds_dstore.c at line 1178
[name.of.server:202103] PMIX ERROR: OUT-OF-RESOURCE in file gds_dstore.c at line 1313
[name.of.server:202103] PMIX ERROR: OUT-OF-RESOURCE in file gds_dstore.c at line 2331
[name.of.server:202103] PMIX ERROR: OUT-OF-RESOURCE in file gds_dstore.c at line 3148
[name.of.server:202103] PMIX ERROR: OUT-OF-RESOURCE in file gds_dstore.c at line 3180
[name.of.server:202108] PMIX ERROR: OUT-OF-RESOURCE in file client/pmix_client.c at line 223
[name.of.server:202108] OPAL ERROR: Error in file pmix2x_client.c at line 112
[name.of.server:202103] PMIX ERROR: OUT-OF-RESOURCE in file server/pmix_server.c at line 2170
[name.of.server:202109] PMIX ERROR: OUT-OF-RESOURCE in file client/pmix_client.c at line 223
まず、エラーを出しているのがPMIXで、その実装はおそらくOpenPMIx、これはProcess Management Interfaceらしい。
ftraceを入れてみる。
sudo yum install -y trace-cmd
ディスク容量が足りずに失敗し、それでディスクが一杯になっていることに気が付く。これが原因か。
うーん、logwatchを入れるべきか。
08月01日(日)
もう8月なのか。
細かい仕事をした。
つい気になって、Zennにリンカのお仕事という記事を書いた。