半知半解
友人とスキー旅行に行った. スノボはやったことが無かったのでスノボをやることに, バランス感覚ゲーだった. 斜面の方向に背中を向けるのが怖かった. 1日目は半日練習しただけでとても疲れてしまいコースの端で上手い人を観察していた.
なにもわからない pic.twitter.com/ucWOPHLwhx
— ごみ (@kmch000) March 19, 2022
途中, 旅行の企画としてアニメBGM当てクイズをした. 日頃の運動不足が祟り, 2日目の朝の時点で既に結構な筋肉痛だったが, 帰りのバス内でそれが悪化し歩くのに支障が出る程の筋肉痛になった.
帰宅後風呂に入ると手の筋肉痛でシャンプーボトルがプッシュできなかったが手の重みでどうにかなった.
日常の全ての動作が苦行でつらい重いをしたので, 最低限の運動習慣はやはりあったほうが良いのだろうなと当時は感じた.
生活
- メモリアロケータ勉強会を友人としていくことに
- 20220307_redox_os_slab_allocator_code_reading
- 20220314_malloc_code_reading
- linux kernel or 小さなOSのソースコードリーディング or 資料読む
- -> xv6に
- https://pdos.csail.mit.edu/6.828/2014/xv6/book-rev8.pdf
- CS4414: XV6 introduction
- なぜか, University of Virginia School of Engineering and Applied Science の講義資料とか課題, スライドが見放題なので見ることに
- ブログ, ダークモードに対応
- wakame.tech/windi.config.js at main · wakame-tech/wakame.tech · GitHub
darkMode: "media"とすることで, 現在のOSの設定に基づいたテーマが適用される- 後は
dark:<class>を各HTML要素に書くだけ
- wakame.tech/windi.config.js at main · wakame-tech/wakame.tech · GitHub
yarn,lernaからpnpmに乗り換えtsconfig.jsonなんもわからん
- Flutterのゲームエンジン Flame 触っていた
- Dart用のprotocをするコンテナを作る
- client: flutter-desktop, server: rustでgRPCでやりとりする
- 強化学習入門
CUIローグライク
Bevy と bevy_crossterm
ECSエンジンとして, Bevyを採用した.
- GitHub - rhaiscript/rhai: Rhai - An embedded scripting language for Rust.
- Rust製のスクリプト言語
- GitHub - usagi/tia: tia; trait, impl accessors | automatic for Rust, proc-macro
- SSIA
rhaiのカスタム構造体に対するgetterがfn get_hoge(&mut self) -> Tなので微妙にユースケースに合わず採用できなかった. もう少し柔軟なproperty accessor生成proc macroあって欲しい- コード例: rhai sample · GitHub
- Rust Bevy ECS 入門
bevy でrendererとしてCUIを使うことは可能か? -> bevy_crossterm
- Is Bevy suited to building a console-based roguelike simulation a la Dwarf Fortress? : bevy
- crossterm をbevyのCUIレンダラとして使う為のbevyプラグイン. 大元のrepoはbevy v0.4に対応していて, v0.5のPR Updated for bevy-0.5 by brianbruggeman · Pull Request #9 · octotep/bevy_crossterm · GitHub が出ているが数ヶ月放置されている.
- 2022-03現在はv0.6が最新なのでPRを出している人のrepoを更にforkしてv0.6に対応した GitHub - wakame-tech/bevy_crossterm: Crossterm plugin for the bevy game engine. これで, bevyを使ってCUI-baseなゲームを作れるようになった.
Rogue調査
元祖 Rogue のソースコード等は The Rogue Archive で見ることが出来る.
-
- Rogue を Flutterに移植してテクスチャ当てた版
-
Rogue 5.2 のソースコードの規模
$ tokei .
Language Files Lines Code Comments Blanks
===============================================================================
C 32 12903 9735 2120 1048
C Header 2 571 386 117 68
Makefile 1 147 110 16 21
Plain Text 1 92 0 79 13
===============================================================================
Total 36 13713 10231 2332 1150
===============================================================================思ったより巨大か.
みたり聞いたり知ったり思ったり
Rust
- alacritty+tmuxもいいけど、weztermがすごい件
- sixel: ターミナルで動画像を出力出来る規格
- async function: the trait
std::marker::Sendis not implemented forstd::sync::MutexGuard<'_, Client>- Stack Overflow- Rustなにもわからない
- https://stackoverflow.com/questions/67277282/async-function-the-trait-stdmarkersend-is-not-implemented-for-stdsync
- mutex握っているときにawaitできないらしい
- Streams|Tokio チュートリアル (日本語訳)
stream::unfold:Futureをまとめるものじゃないのかfor_eachするにはfuture::FutureExtが必要だった- Introduction to gRPC in Rust | Roman Kudryashov’s tech blog
技術
-
コードとドキュメントの同期コストを最小化するという動機で両者の距離をなるべく小さくするのが是だと思っている
- RustのDocumentationではドキュメント内のサンプルコードに対してもテストすることが出来るらしく理想に近そう
-
claim よほどコストをかけないと仕様書と現行の仕様の一貫性を保つことは難しそう
- 修正コストはソースコードの距離(doc comment < repo < external e.g. excel)に比例すると思っているので
- idea 理想はdoc commentの中で仕様DSLを書くと単体テストが出来上がる
-
verification validation
- validation: 妥当性 仕様が利用者の価値に見合うか
- verification: 正当性 システムが利用者の価値に見合うか
-
仕様(= 制約)をなにかしらのDSLで書けて, それをもとにコーナーケースのテストを自動で出来たらうれしそう
-
形式手法でデータ構造を記述・検査してみよう:Alloy編 - DeNA Testing Blog
- 小スコープ仮説: 小さい例でもだいたいの反例は見つかるはず
-
Object Constraint Language モデル記述に制約を付けたみたいな
- 契約プログラミングみたいに事前条件事後条件みたいなの書ける
-
Alloy 6 の新機能 Mutable Field と線形時相論理
- model-checking と同じで探索空間が爆発しがち
-
Saturation-Based Model Checking of Higher-Order Recursion Schemes
- https://www-kb.is.s.u-tokyo.ac.jp/~koba/papers/csl2013.pdf
- Higher Order Recursion Scheme ってなんだ watchlater
- 高階モデル検査
- 再帰がある無限木の検査が出来るらしい?
- 抽象モデル検査 の分野 model-checking
- https://www-kb.is.s.u-tokyo.ac.jp/~koba/papers/csl2013.pdf
-
カメラに近づくとディザ抜きで透明になるシェーダー · GitHub
- シェーダーがあった
高校の頃, Visual Studioで間違えて F# のソリューションつくってしまってF#で競プロ解こうと思ったけどなにからなにまでわからなかった. let ってなんだよとか思っていた. (let という予約語を見るのが初めて, 関数型プログラミングっていう概念すら知らなかった)
- おもしろそうな本がたくさんある watchlater
- go 1.18 でジェネリクス来た
- 1ずつ増える整数列 の由来
- Goで本質的に並列な関数型言語つくった - Qiita
- 並列グラフ簡約 ってなんだ
プログラムをDAGとして表現し、そのグラフの各部分を並列に評価することで本質的に並列なプログラムの実行が可能になります。データ競合は基本的にこの処理の中でしか起こらないので、プログラマは並列処理に関わるデータコラプションやデッドロック等に気を使うことがありません。
- fhe の一種? で Functional Encryption というのがあるらしい, todo indistinguishability Obfuscation にa連するのかどうか
- watchlater 並列化をする言語を設計した博士論文
- スマホゲーム「アイドルランドプリパラ」1年延期し, 今春リリースらしい
- 待ち遠しい
- GitHub - Kotlin/dataframe: Structured data processing in Kotlin
- Kotlin公式のデータフレーム操作FW
- 絶賛開発中でドキュメントとか揃っていないところがあったが, 基本 pandas のノリで使える?
- Kotlin公式のデータフレーム操作FW
- 【gsudo】Windowsで簡単にsudoする - Qiita
- 便利
- プロンプトを Starship: Cross-Shell Prompt にした. on GitBash
- 平均勤続年数短めの企業はスキルアップが強い?
- 会社, 思想として3つのフレーズ掲げがち
- Security Engineer - SmartNews
- todo OWASP Top10見る
- 絵文字, 気持ちの微妙なニュアンスを表す記号として使いがち
- e.g. :glasses: 気持ちが上昇傾向にあることを示す, 頑張りたいね的な
- 代表的なコード進行を見た後に, rechord - 演奏もできるコード進行共有サービス で有名なコード進行がどんな感じになるのか試していた.
- youtube 【解説】音楽理論を1枚のマインドマップにまとめてみた - YouTube 見た
- 12平均律はここ300年位しか使われていないので新しいらしい
- 【微分音】微分音ドレミの歌(53平均律ver.) - YouTube のような違う平均律の音楽が流行る日が来るのだろうか
- 12平均律はここ300年位しか使われていないので新しいらしい
- コード進行まとめ(80種類以上) O-TO【音楽理論ウェブアプリ】
- コード進行のチートシート
- idea docsのtypoを指摘する為だけにissue or PRを立てるの面倒くさい人もいそうだからdocs上でワンクリックでissue化出来る拡張機能か何かがあると良さそう
- ウォッパ: ウォッチパーティの略