Posted on

黙ったのはね言葉足りないせいじゃなくて

黙ったのはね 言葉 足りないせいじゃなくて
伝えたい事が多過ぎたからだよ TRUST IN ETERNITY/水瀬いのり

トラエタはいいぞ.

ゼミ終わりに帰宅しようと電車に乗ったら, 逆方向だったので数駅先で降りて駅前を適当に散歩して何もせずに帰りました. 不意なハプニングも楽しめる人間でありたい.

最近ピアノ熱が再燃しています. 電子ピアノにペダル譜めくり機能がついているのでiPadと繋げてYoutubeにアップロードされているMIDIを落ちてくるノーツにしたもののスクショを撮り, 左足でパラパラめくって練習するのが現時点での自分の中で一番効率が良い方法になっている. とはいえ, 楽譜を読む力が弱すぎるので楽譜で慣れることもしたい. とても簡単なランダムな音が生成されて初見奏の練習ができるアプリないのだろうか.

生活

  • 亀の歩みながらピアノ練習

  • 外出した日は公園の散歩

    • 外が暑い
  • mikanで単語学習

  • 就活: 微進

  • [[WASI]] とその実装について調査

    • Issues · WebAssembly/WASI · GitHub ファイルシステムやネットワークに関する機能が使えるようになったらブラウザの外でも活躍されていきそう?
  • 技術記事は息をするように読んでいるが, 書籍は読めていません…

  • レポート書く時に使っていたpandocをコンテナで使うようにした

  • vim, 最近意識的に esc ではなく ^[ を使うようにしている

  • [[GAN]] の実装 & 学習をしていた

  • 研の進捗(研究repoにコミットできていない)

  • 技術的な素振りが出来ていない

  • キャリアを考える中でソフトスキルに興味が出たので本を1冊呼んで自分とのdiffを考えたい

  • [『データ指向アプリケーションデザイン』] 読みたい #todo

  • 初めてトレースでも模写でも無いイラストを下書きから塗り, 仕上げまで行った

    • まずは正面アングル && 顔のみの構図に集中する
    • 毎週金曜日ワンドロしてどんなに酷くても内輪に見せることにした
  • イがあまり出来ていない

  • Crafting Interpreters いつかやりたい

  • Kindleセールだったので有名和洋ミステリーを何冊か積んだ

  • xx終わったらyyやりたいが山積している, 一旦今年やりたいことリスト作ってもよいかも

  • 論文のAbstractを読み札にして論文名でかるたしたい

ML系言語の実装について

[[HM型推論をJuliaで実装する]], スクラッチでのコード生成をやりたいのでML系言語コンパイラを実装したくなった. そのために少し調査した. 遅延評価とかどうやって実装するのだろうか

RustでHM型推論を書こうとした

The borrow checker is your greatest friend disguised as a brutally honest tormentor.

言い得て妙

  • まだ Rust らしい書き方が出来ない. self のメンバを関数に &mut で渡したい時に嵌った.
fn hoge(&mut self) {
 if let Some(a) = self.map.get_mut("a") {
                  ^^^^
                  mutable borrow occurs here
            fuga(a)
            ^^^^^^
            cannot borrow `*self` as mutable because it is also borrowed as immutable
 }
}
let ref ref_c1 = c;
let ref_c2 = &c;

等価, let Some(ref hoge) = hoge の時に使うことが多い?

Structural Subtypingを実装する

  • 少し前にRustでHM型推論を実装したので, 続けて [[Structural Subtyping]] の実装をしたい
  • https://jin.crypt.sg/files/subtyping.pdf を見た
    • Width-SubtypingDepth-Subtyping がある
      • TypeScriptは Width-Subtyping かつ Depth-Subtyping ?

見たり聞いたり

Rust

ところでRust, まだ初学者なので

  • structに参照持ちたくなるけどそのstructを使っている全ての関数とかenumにlifetime parameterつけて回って結局borrrow check通らなくて諦めの .clone() する
  • 内部可変性パターン 使うが結局実行時にpanicする

をしてしまいがち, もっとRust力を上げたい.

技術

  • #git Gitリポジトリ内で自分が書いたコードの行数を数える
    • git ls-files '<glob>' | xargs -n1 git --no-pager blame -f -w | grep <user> | wc -l
  • Kotlin Contract はプロパティの存在保証が出来ない
    • プロパティに対する Contract は書けない(status == Adult ならば job != null であることが保証されるみたいな表現)
    • こういう時はADT(sealed class) を使って Human をより細かくモデリングするのが良いのだろうか
@ExperimentalContracts
fun ensureJobIsNotNull(human: Human): Boolean {
    contract {
        returns(true) implies (human.job != null)
    }
    return human.status == HumanState.Adult
}
  • [[『ソフトウェアアーキテクチャの基礎』]] 9章まで読んだ

misc

  • ソフトウェアエンジニアでテストマンな私が家を買う際にやったこと - 若くない何かの悩み

    • 熱量がすごかった, どれくらいの期間の話なのだろうか, 流石にここまでは真似できないが家を買うときの検討事項のヒントが散りばめられていたのでいつか家を買う時はこの記事を思い出したい
  • [[企業がOSS活動をすることのメリット]] について調べたり考えたりしていた

  • Rustのdoctestの体験が良すぎるのでLSPみたいにプロトコル化するなりして全言語に広まって欲しい.

  • Big Techの面接レポを見てSWEにもグレードがあることを知った

  • 園児?2人が座っていておじさんが話しかけていたから事案か?とおもったら「名札とかで個人情報わかっちゃうから気をつけなよ注意喚起おじ」だった

  • Jeff Dean伝説ほんとうにすき. 全盛期のJeff Dean伝説 - Qiita

Jeff DeanにとってはNPは"No Problem"をあらわす。

  • 相々学舎のマッシュアップのせいで シャニマス楽曲とSOUL'd OUTにハマった

  • wasmとのブリッジ作るためにRustのstructからTSのinterface吐くproc macroあって良いな

  • 「問題から目を背けず取り組む」 一休の開発チームが6年間で学んだこと - Speaker Deck

    • 組織を目的別に分割する話, ドメイン毎にマイクロサービス化するのに似ている, 業務で一番重要なのがドメインの理解だと思っているのである程度組織がスケールするとやはりそうなるらしい
  • 脱レガシーを自分から進んで周りに浸透させる話, まさにテックリードを体現していてそうありたい

  • [[CQRS]] について

    • [[GraphQL]] に通ずる思想を感じた, readとwriteが不均衡なのはたしかに
    • [[DDD]] 極めて浅い理解しかないので引き続き学ぶ
  • RustにおけるVariance(変性)をふんわり理解する

  • k8s

    • [[Docker]] は少し使うのでコマンド含めて実感が湧くが,
    • 概念を知っているレベルなのでより深く知りたい.
    • 特にネットワークに関係する部分疎いし, [[LB]] の [[スティッキーセッション]] の話とか知らなかった. etcdらへんの話も学びたい.
  • z3 solver 必要にかられて使うことに

    • 可変長の項を定式化する時は有限個のboolを用意して使うか使わないかっている定式化で良いのだろうか, 定式化サンプル集みたいなの見たい.
  • Linus Torvalds says Rust is coming to the Linux kernel • The Register

  • 実装の際の程度のさじ加減難しい

    • タイトすぎるとちょっとした仕様変更でまた変えなければいけないけど先を見越しすぎるとオーバーエンジニアリングになりかねない
      • ex. bool vs enum 問題, 1:N vs M:N テーブル問題
  • Cloudflare, post motemすぐ出せるのは凄いけど思ったよりあった

    • Post Mortem - The Cloudflare Blog
    • 今回はオペミスらしい, 設定ファイル1つで世界に大きな影響を与えてしまうことが出来るので中の人も大変そう
  • #term ソーシャルレンディング: 以前, 個人同士のお金の貸し借りはトラブルのもとになるから仲介人立てるべきって思ったやつ, 既に言葉としてあった

    • 相談窓口が地獄の様相を呈していそう
  • clippy, cyclomatic complexity検査できるのか

  • GitHub - BurntSushi/quickcheck: Automated property based testing for Rust (with shrinking).

    • random test?(なんていうのだろうか)してくれるcrateの名前を思い出した

vault(メモ集)について

|500

[[20220207_obsidian]] から4ヶ月経ち, 段々と [[Obsidian]] の使い方が確立されてきた. vaultもより有機的になってきた.

|500

記事を noteview に分類した. 前者は特定の概念(ex. りんご)自体の言及をし, 後者は1つ以上の概念に対しての言及や1つ以上の概念のある切り取り(ex. りんごの皮の剥き方)についての言及をする. 例えば, 日々のlifelogやブログ記事は view である. note は [[Evergreen note]] にさせるのが目的なのでactiveであるが, view はただのsnapshotなのでなるべく note にbacklinkを張ることで情報を死蔵させないようにするのが理想. しょうがないことではあるが, view に記述されている情報は重複してしまうのが問題, 埋め込み ![[]] を使いたいがObsidian以外のviewee(ex. ブログ)が対応していないのが問題.

あと, [[Obsidian]] はimplicit backlinkを貼ってくれるが, 例えばブログ上ではリンクにならないので, explicitなbacklinkを積極的に書くべきかは検討中. #vaultstat GitHub Actionsで定期的に通知させたいな.

娯楽

アニメ

  • #watch/anime かぐや様は告らせたい3:6

Youtube

その他

  • スタートアップ シーズン1 (字幕版) Prime Video
    • 最近夜寝る前にAmazon Primeで観ている
    • 『シリコンバレー』みたいなギャグ寄りな雰囲気かと思ったらクライム・サスペンスだった
    • 何もかも上手くいかないので全然起業しない. 全員ギリギリを生きていてスリリングで面白い.