11月上旬の雑記
2023-11-01 (水)
お仕事で並列なコードを書いている。mimallocを参考に問題が難しくならないように工夫しているが、それでもなかなか難しいな。
仕事を6割契約にして1日の仕事量をそのくらいにするの、すごく良いと思うんだが、 みんなもこれやった方がいいんじゃないか?
やっぱりこう、1日のやる気が尽きたあとに続けないといけないのが仕事の辛さとしてかなりある気がする。 尽きたらやらない、としてしまえば、すごくストレスが無い。
技術文書の読み方を考えてみているが、意外といろいろあるなぁ、と考えたり。 でもなんか必要最小限って感じしないよな。なんか訓練するなら必要最低限な事を訓練したい気もするが、何が必要最低限なのか。
考えていくと、これはソースコードを読むというのと似た話に思えるな。 何か訓練するべき事で、訓練方法はたぶんあって、でもそういうものが今の所開発された事は無い。 自分には作れる気もする。
2023-11-02 (木)
お仕事で昨日書いたコードのUnit Testを書いている。 コードは短いがテストは結構多くなるヤツなので、Unit Testを書くのはかったるさもあるな。 お仕事だとこういうのきっちりやれるのは物作りとしては良い所でもあるが。
夕方はなろうを読む。夜まで読んで満足してきたので現実世界に戻るなど。
mimallocコード読みを終わらせる。segmentの一覧を持ってないのが予想外だったが、一通り理解出来たかな。 この難解さのコードを読んで知りたい事を理解するのは、かなりのコード読み力なんじゃないか?自分。
2023-11-03 (金)
お仕事で並列スラブアロケータを書いている。評価したり直したりはこれからだが、なかなかいいものが書けたんじゃないか。
あおぞら教室でラムダ式を教えたり。これは動画も作らないとダメかな。
2023-11-04 (土)
今日は仕事をしようかと思っていたが、1024 coresのブログ記事も書きたいので先に【書籍】CppConcurrencyInActionを読んで、そのあと1024 coresを読む作業を進めたい気もする。 とりあえず気が向いている間は本でも読むか。
【書籍】CppConcurrencyInActionを読み終わる。最後は酷い内容だったが、全体としては読んで良かったし、手元に置いておきたい本でもある。
他の言語の(並列)メモリモデル
なんとなく、C++以外の世界はどうなっているのかな、とThe Go Memory Model - The Go Programming Languageを読んでいたら、なんとatomicはseq cstのみ! release-acquireが無いというのは驚きだな。
rustはC++ 20そのまんまとのこと>Atomics - The Rustonomicon
この文書の最初に書いてある事はまさに気になった所で、 正直C++以外でこの分野で何か書くの無理じゃね?と自分が感じる事でもある。 既存の研究の積み重ねが無いと何も書けないが、積み重ねがC++しか無いんじゃない?という。
そういう点ではC++まんまか、それをより厳しくしたもの(いつでもseq cstのみというgolangなど)しかありえない、 というのは理解出来る所だ。
ただ研究の蓄積の無い所で書ける気はしないので、Rustでこの辺書ける気はしないなぁ。
1024 coresのepub
読み始めたので、epub作ったよ、という事を書いておく。>Unofficial 1024 cores epub - なーんだ、ただの水たまりじゃないか
omo先生のpythonスクリプトをちょこちょこ手直しして作ったが、結構いい感じに読めている。 図も多いし。 コード例はインデントが無くていまいちだけれど、もともとコード例はいまいちだし、 そんな長くは無いので読む事は出来る。
内容的にも一番しっかり書かれた並列のC++の本となるんじゃないか?C++ 11世代じゃないのは残念だが、 0xへの言及はあるので安心感はある。
10年以上前に更新が止まっているので本人に連絡するのもな、と思い連絡は入れてないが、ページは英語にしておく。(実際日本人以外の方が読む人は多いだろうし)
それにしても1024 coresは良く書けているよなぁ。Dmitry Vyukovはこの分野の専門家って感じするし、本当に必要な事を良く理解しているよなぁ、という感じ。
2023-11-05 (日)
昨晩 1024 coresの作者の名前でググっていて、以下の動画を見つける。
youtube: Dmitry Vyukov — Go scheduler: Implementing language with lightweight concurrency
今朝だいたい最後まで見たが、golangのランタイムの理解が深まってなかなか面白かった。golangを使う予定は無いけれど。
明日から波がありそうなので今日は働こうかと思っていたが、なんかやる気出ないな。 こういう時は無理せず違う事するかな。
以前書いたJS入門の関数の話は長くて良くない気がしていたので、kotlin用に書き直すかな。>あおぞらAndroid教室
関数を書き直したら興が乗ったのでそのまま継承の解説も書く。ここを乗り切れば言語の勉強は終わりが見えてくるな。
2023-11-06 (月)
今日は波が上がってくるのを待ちつつお仕事をしていたら波が上がってこず、良く働いた1日だった。 仕事は結構いい感じの成果が出つつある。
2023-11-07 (火)
今朝は期待してたが風が強すぎてダメそう。ぐぬぬ。
1024 coresのepubの目次が全部同じページに飛ぶので直す。h1のidが被ってたので消した所直った。よしよし。
1024 coresにDRCの解説があることに気づいたので読んでいる。 >1024cores - Differential Reference Counting
というか昨晩epubでこれに気づいて飛ぼうとしたら最初のページに飛んでしまったのが今朝のebpuの修正の理由。
1024 coresは解説がめちゃくちゃ少なくて、「コードがあれば分かるでしょ?」みたいな所が多くて読むのが大変だが、 確かに頑張れば分かるんだよな。【書籍】CppConcurrencyInActionがダラダラ解説があるが何を言っているかわからない(自分の分かってるトピックでも分からない)のと好対照だ。
昼前に雨が上がったので湾内に出てみる。波は良くは無かったが乗れはしたので、全然入れていない最近の状況を思えばまずまず。
夜はDRCの理解をブログにしておく>Differential Reference Countingのメモ
この一ヶ月くらいで一気に並列の理解度が上がったなぁ。 1024coresを読んだのは良い選択だった。良くある問題のうち、並列度を上げるちょとした工夫が分かっている分野の工夫をいろいろ知る事が出来て、 並列度を上げる考え方のようなものが身についた気がする。 並列プログラムに必要なのはこれだよなぁ。
2023-11-08 (水)
波は落ちてしまわれた模様。仕方ないのでお仕事。
なんかSSGじゃなくて単にmdからhtml出すのを組み合わせる感じでいいんだよな、というのは自分も思っていて11tyとかを調べていたのはそういう意図だったんだが、 なんか比較のためにいろいろ調べているとLiquidに詳しくなってそれならjekyllでいいじゃん、となってしまった。 jekyllは明らかに必要なものよりも大げさなものなんだけど、 ひとたび理解してしまえばやりたい事は全部出来るんだよな。
ここ最近やってた並列の仕事が一段落。 もうちょっと細かい調整はやる余地はあるけれど、現時点でも目的は達成出来ているのでやった甲斐はあったかな。
夜に読書するようなカフェを求めて外出。気になってたフレッシュネスに入ってみたら、外から見た印象よりだいぶ広くて、夜は空いてていい感じだ。 今後はもっと使っていこう。
しばらく本を読んだが、なかなか良いな、このフレッシュネス。夜の読書ポイントとして決定版だな。
鎌倉ライフは概ね満足しているが、友人と会う機会が少ないのだけは不満だな。 カフェで読書したあとにちょっと友人とあって話す、ができたらいいのになぁ。 鎌倉のプログラマの友達とか出来たらいいのに。
出戻り – Spinach Forest へー、出戻ったんだ。大チームにそんなに適応しなかったのは意外だ。自分も大きくない所で働くのがいいと思っているのでその辺は理解出来る。
Kotlinリファレンスのリンクを見せて「これを訳して」とbingチャットに頼むとかなり良い訳だ。 短文を和訳させるとまだまだ全然だけど、こういうページ全体を和訳させるのはページの内容(というかkotlinのコード)を理解して訳してくれるので、かなり良い。 ただこれだとちょっと実用にならないのでブラウザの「このページを日本語に翻訳」とくっついて欲しい所だが。
その位の未来はすぐに来るだろうから、今回のkotlinのリファレンスの和訳が技術文書の和訳の最後かねぇ。 少し感慨深いものがあるな。
2023-11-09 (木)
お仕事でここ最近作っていたものをいろいろ評価している。意外な結果もあるが総じてなかなか良いスコアだ。 やはり並列アロケータはアプリごとに固有の事情を考慮に入れて作る方がずっと良いという事だなぁ。
スケーボーで少し陸トレをするなど。腰の位置が高い問題。
夜
eventcountsの解読に成功>Eventscountのメモ
めちゃ便利そうなのにこんなに解説無いのなんなの?無いと困ると思うんだが…
2023-11-10 (金)
今日はあおぞらAndroid教室なので、なんとなくKotlinリファレンスの和訳を進めておく。 当初やろうと思っていた範囲はあと3ファイルちょっとで終わりだな。
その後は1024coresを読んだり。今はSpinning。もう少しでlock-freeのパートは読み終わるな。