2021年8月

2021年の一覧へ

8月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 statushello.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)

なるほどね。

8月30日

発表の仕方スライドを作成。

OS自作もくもく会。7章終わったことにする。使うアセンブリ命令が特権命令なので、普通のOS上で全部SIGSEGVになるのがしんどいなぁ。

ブランチの比較のためにGitLensを導入したが、なれないと鬱陶しいなこれ。消すか、慣れるまで頑張るか……

やっぱり消すか。GitHub演習のために変なの入れてそれがデフォルトだと勘違いすると困るから。

8月29日

NOP

8月28日

NOP

8月27日

RevTeX、Ubuntuだと\appendixの動作がおかしい。

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

でビルド。あれ?\appendixちゃんと動くなぁ。

GitHub演習の講義ノート続き。いま見たら「Gitはファイルシステムの一種である。ファイルシステムといえばext4である。だからとりあえずinodeについて説明する」とか書いてあって、「それはないな」と正気にかえった。

8月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も、所属が物性研だった。慶応に来てからこれまで論文を投稿してなかったのか……

これからがんばろう。

8月25日

時間割のGoogle Spread Sheet化した。頭が混乱していたので、整理がてら。

8月24日

書類一個提出したぞ。

学生さんの立替払い確認。とりあえず出してみないとよくわからないな。

大学院の講義を考えててさっぱりわからんくなった。

8月23日

修論中間発表会。書類仕事が溜まってきたが、正直疲れている。明日にしよう。

OS自作もくもく会。ついに参加者二人になってしまった・・・

GitHub演習、演習部分を一つ書いた。

  • 座学
    • ☑ バージョン管理とは
    • ☑ Gitの仕組みと用語
    • ☑ コマンドラインの使い方
    • Gitの基本的な使い方
    • ブランチ操作
    • Gitの仕組み(いらないかな?)
    • GitHubの使い方(演習だけで良い?)
  • 演習
    • ☑ Gitの操作(init add commit log diff)
    • Gitの操作(switch merge branch rebase bisect blame)
    • GitHubの操作(push fetch)
    • 何か作らせる

結構頑張ったつもりが、わりとまだできてない感。

8月22日

講義ノートがある程度形になってきたので論文に取り組もうと思ったが、体調が悪くてほとんど見れず。でもだいぶよい感じになってきたので、あと一往復したら英文校閲出して投稿してしまおう。もう一つの論文もなんとかしないと。あと、まだ手をつけてない奴もある。いろいろ遅くて申し訳ない。

本当は未踏のイベントがあったのだが、いろいろ立て込んでて参加できず。富岳も、そして未踏HPCも手を付けられていない。いろいろ厳しい。

8月21日

学生さんとミーティング。金曜日できなかったので。

あとなにしたっけ?Gitのコミットログを見る限り仕事してるっぽいが記憶喪失。

思い出した。子供を公園に連れ出してバテてたわ。

8月20日

いろいろ会議。なんか疲れた。

講義ノートを余談から書いていくスタイル。

8月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
    }

8月18日

研究室サーバのポート増設。予算執行計画の確認。研費使用説明会の動画見た。まだ知らないことがあった。

いろいろバタバタしてダメだ。

知り合いが炎上に近い状態になっていた。ネットで有名な人に言及してはいけない。

8月17日

いろいろ忙しい。GitHub演習、HTML化した。コマンド解説を書き始めた。

8月16日

OSもくもく会。

C/C++は、関数内関数を作れないのか。なんか作れるイメージでいた。

OS自作もくもく会。4名。がんばろう。

C/C++で関数内関数が作れないことを知った。いや、知ってたんだろうけど、再認識した。Ruby/Pythonでは普通に作れるし、Javaで無名関数をよく使うので忘れてた。使いたければラムダ式を使え、と。

強力なグラフィック機能を備えた組版処理システムTwight

おお、未踏からまた組版システムが。しかもこの人、筑波大の履修登録システムを作った人か。

8月15日

講義ノート執筆。とりあえずGitの仕組みと用語については書けたことにする。

8月14日

講義ノート執筆。

学生さんとミーティング。

8月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のインデックスの中身について覚書を書いた

いろいろバタバタして、ミーティングをバッティングしてしまった。

GitHub演習の講義ノート作成を続けている。

8月12日

colordiffなど、色つきのターミナルの結果をそのまま保存したいことがある。いろいろ調べたが、一番楽なのはahaを使うこと。Ubuntu(WSL)ならaptで、Macならbrewで入る。

sudo apt install -y aha
brew install aha

忘れないうちに記事にまとめた

8月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側でいじると、その変更が反映されるのにたまにタイムラグがある気がする。遅延書き込みでもしてるのか?

8月9日

だいぶ体調も戻ってきたので講義の準備をはじめる。いろいろヤバい。

あー富岳の準備も全然できていないぞ。

8月8日

ワクチン接種から12時間ほどで発熱がはじまり、38度台へ。たいしてつらくなかったので甘く見ていたら、そこから1時間で39度台になって、眠れないほどの悪寒。それが5時間ほど続き、明け方ようやく38度台に戻って眠れるように。そこからさらに12時間ほどで平熱に。結構な副反応があった。やれやれ。

8月7日

なんか講義の準備ができていないまま講義が始まってしまうという悪夢を見た。正夢になりそうで怖い。

二回目のワクチン接種。

8月6日

見ず知らずの人に「お気持ち」を直接表明されてもな、という気持ちなんだけど、そう思わない人が多いんだなぁ。

Linuxの操作に慣れるための環境が欲しいという話、ブラウザでエミュレートしてくれる環境とかないかなぁ。

Dropboxがブラウザ上で動くといいんだけどなぁ。Play with Dockerって使えるのかな?

会議。会議の後に研究打合せ。若い人が成果を出すのを見るのは良いですね。

論文なんとか仕上げたことにして共著者に送った。そろそろ供養したい。この年になっても、論文は一文一文、一語一語紡ぎだす感じなんだよなぁ。

8月5日

世の中のほとんどのことにはメリットとデメリットがあって、そのどちらを重視するかは人によるわけ。例えばフリーランスになることを考える。フリーランスにはメリット、デメリットが当然あるわけで、そのどちらを重視するかは人による。フリーランスになることにより負うリスクや、サラリーマンとして生きている時、雇用主が支払っているコストについて無知なままフリーランスになることはまずいわけで、逆にフリーランスの厳しさをむやみに強調し、その道を閉ざしてしまうのも問題。「フリーランスという道もある」という可能性、選択肢を持っていることは良いことだから。

繰り返しになるけれどそのメリット、デメリットのどちらを重視するかは人のポリシーによるわけで、それは例えば設定スイッチの「どちらをデフォルトにするか」の問題なわけだ。で、例えば僕が「フリーランス慎重派」の立場をとったとして、それに対していちいち「それには賛成できない」と言われても、「そうですか」としか言いようがない。っていうか、明らかに間違っているとか勘違いしているとかならいざ知らず、こういう「どちらを重視するか」という人の好みに問題に、いちいち「その趣味は理解できない」って言われても困るんだけどな。

v(t)自己相関関数のt=0が1にならないって騒いでたのだが、v(t)^2の平均で割るのを忘れていた。ひどすぎる。

数億年ぶりくらいにLangevin方程式の解析(速度相関とか平均二乗変位とかの計算)をした。完璧に忘れてた。

8月4日

たまにでる「ダメな技術記事を書くな」論、これは全く検索システムやトレンドシステムの問題なのであって、執筆者に文句を言うべきではないんだけれども、一定頻度で出ますね。

僕の中では「ぐるぐるSQL問題」がその一種。

いろいろ考えた末、結局記事を書いた

8月3日

修論中間発表会の準備。遅くなってしまった。

明日の議論のための準備。論文も修正。

子供達を公園に連れて行った後のわりには頑張った(と自分を慰める)。

またフーリエ変換による相関関数の計算がおかしい。確認しなければ・・・

8月2日

集中力を欠くなぁ。

学生さんと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を入れるべきか。

8月1日

もう8月なのか。

細かい仕事をした。

つい気になって、Zennにリンカのお仕事という記事を書いた。