- Published on
Weekly Report 2021/05/10-05/16
今週の振り返り。
Table of Contents
振り返り
続けたいこと
- やりたいことをやりたいように学んでる
- Learn Betterにも書いてあるように、自分にとって直近で学ぶ意義を見いだせるものは学ぶのが苦じゃないなと実感した
- 学ぶのが苦でないし、集中力も続く、気がする
- なので、これからの勉強はあまり手を広げず、自分にとってメリットがあると強く思えるものを優先的に学ぶ、あるいはやる気はでないけど学ぶ必要があるものはモチベーションをどうにかつくろうと思った
- やるほどにどんどん疑問が生まれてきてそれを解決していくと理解が深まっていってさらに楽しい
- この本はまだ読みかけなので来週までに読む予定
- Learn Betterにも書いてあるように、自分にとって直近で学ぶ意義を見いだせるものは学ぶのが苦じゃないなと実感した
改善したいこと
- たぶん5月病
- 週の前半はやる気が出なくてしょうがなかった
その他トピック
Unity の教科書
Unity の教科書 Unity 2020 完全対応版 | SB クリエイティブ
- SAGO mini のアプリに娘ちゃんがハマっている
- 私もこういうの作れるようになって作ってあげたい
- このアプリはUnity で作っていそう
- ということで Unity を学んでいる
- Unity は初めてだが、GUI でキャラクタなど配置してアニメーションや物理演算をつけたりするだけで、スクリプトを書かなくてもだいたい形になっちゃうのすごいと感動した
- この本は非常にわかりやすく、8 時間もあれば一通り全部ゲームを作れて、達成感と学びがあるので初心者には非常におすすめ
- Rust でBevyでやるぞ、と最初思ってたけど、まずは Unity でゲーム開発に入門してよかったと思う。たぶん挫折してた。
Web フロントエンド ハイパフォーマンス チューニング
Web フロントエンド ハイパフォーマンス チューニング | 久保田 光則 | 工学 | Kindle ストア | Amazon
ブラウザの仕組みを踏まえて、HTML、CSS、JS それぞれで何をするとなぜ遅くなるのかが書かれていて良かった。
SVG でのアニメーション、やったことないのでやってみたい
本書で参照されていたページ。これらも合わせて読みたい。
Bazel x Swift x Rust
複数の言語で書かれるリポジトリ、Bazel で扱うととても楽だなあと思っている。 それぞれスクリプトを書いて Make のようなものでビルドパイプラインを作る必要がなく、すべて Bazel で完結するので、慣れるとわかりやすい。
今回は、Rust と Swift を Bazel で build するのを試してみた。
Rust は、以下の rules_rust を使う。試してみたけど非常に簡単だった。
bazelbuild/rules_rust: Rust rules for Bazel
- rule は以下にある通り
- toolchain も Bazel が download してくれる
- wasm-bindgen で wasm build する
rust_wasm_bindgen
が用意されている- wasm-bindgen のような 3rdparty の crate は、 cargo-raze で Bazel の中で取得しビルドしている
- cargo-raze は Cargo.toml に書いた dependencies の crate を Bazel で build するための Build.bazel を生成してくれるやつ
- example を見ればだいたい困らなそう
Swift は rules_swift
bazelbuild/rules_swift: Bazel rules to build Swift on Apple and Linux platforms
同様にexamplesを見ればだいたいわかる
TensorFlow Lite の Swift binding も同様に、C API を直接 Swift から呼んでいる。
https://github.com/tensorflow/tensorflow/tree/master/tensorflow/lite/swift
応用で、Swift から Rust を呼ぶのを Bazel で build するには、こうなるのかな?
- Rust で C API として実装(no-mangle, extern C, static lib)
- rust_library で Rust を build
- cc_library で wrap し、Swift における ModuleName を指定する
- Swift からその ModuleName で import する
あとでやってみよう。