2023/05 1週目
Rust
- https://github.com/dtolnay/cargo-llvm-lines
- ジェネリクス関数のインスタンス化の数とサイズを測定できるやつ
- https://github.com/denoland/fastwebsockets
- Rustによる高速なWebSocketの実装
- どれくらい速いかのベンチマークは書かれていないので気になるところ
- Why do I need to set the crate-type to cdylib to build a wasm binary?
- Rustでwasmバイナリをビルドするときなぜcdylibにする必要があるかについて質問
- まとめると以下の理解になった
- dylibやrlibなどは*.oと同じようなものでRustの成果物に使われるので適切ではない
- 静的リンクを行わないので、staticlibではない
- 上記以外の選択肢としてcdylibが適切
- function performance seems to be affected by a match arm which is not evaluated.
- 決してmatchせず評価されない部分が関数実行速度に影響する話
Wasm
- WebAssemblyはJVMやeBPFのリバイバルではない WasmがWeb以外でもアツい理由 1/2
- WebAssemblyはJVMやeBPFのリバイバルではない WasmがWeb以外でもアツい理由 2/2
- eBPFやNaCI全然知らない子なので、画像のような切り口からの解説が面白かった
- また、個人的に思っていたけどうまく言語化できなかった内容、がまさにそのまま言語化されていたのが一番良かった
要は、外界とのやり取りができる口(API)がある時点でsandboxではなくなるので、APIををちゃんとケアしようねって話先ほどWasmはSafeでIsolatedでうれしいみたいな話をしたんですが、本当か? という話なんですね。これは実は語弊があって、Wasmが全部のLinuxのシステムコールを呼べれば、自由に変なことができたり、いろいろな副作用があったりするので、ぜんぜん安全ではありません。 Wasmの安全性は、ホストが提供するAPIの安全性に依存します。なので、本当にセキュアなランタイムインターフェイスを定義しようと思ったら、そこをケアする必要があります。
- また、個人的に思っていたけどうまく言語化できなかった内容、がまさにそのまま言語化されていたのが一番良かった
- eBPFやNaCI全然知らない子なので、画像のような切り口からの解説が面白かった
- カーネル空間ですべてのプロセスを動かすには -TAL, SFI, Wasmとか -
- 安全にプロセスを動かす色々なアプローチについて紹介されている
- wasm in kernal ってのが初耳、どうやらkernel空間で動作するらしい
- そもそもそんな簡単にkernel空間でアプリを動かせることに驚いた(ここらへんまったくの無知)
- 安全にプロセスを動かす色々なアプローチについて紹介されている
AI
- 日経サイエンス2023年5月号(特集:対話するAI ChatGPT)
- ChatGPTの特集
- 主に以下のことが書かれていた
- LLMの仕組みや学習方法
- LLMは推論モデルに過ぎないこと
- Chatの魔法の言葉(Let's think about step by step)について
- LangChainの概要と使い方【プロンプトエンジニア必見】
- LangChainの概要をこれで掴んだ
- 次は触ってみる
Deno
- A Global Database for Global Apps
- DenoのKVがリリースされた
- https://twitter.com/kt3k/status/1652245679396524032?s=20
- ローカル環境では SQLite ベースの KVS、Deno Deploy 上では FoundationDB ベースの分散 managed KVS
- mattnさんが書いたサンプルコードを見るとキーが配列になっている様子
RISC-V
- https://en.wikipedia.org/wiki/Classic_RISC_pipeline
- CPU命令処理周りについて説明している
- データハザードなどの説明もある
- Hardware RISC-V CPU in TypeScript: First Steps
- RISC-Vのアーキテクチャについて解説している
- エミュレーターのリポジトリ https://github.com/lowbyteproductions/RISC-V-Emulator
- xv6が動くRISC-Vエミュレータを作った
- RustでRISC-Vエミュレータを作った話
- コミット記録と一緒に振り返る内容となっている
- xv6は初めて聞いたけど、エミュレータを作るときにこれを動かすのを目標にするのが良さそうな気がする
ELF
- 仕様書
- https://refspecs.linuxfoundation.org/elf/elf.pdf
- ちょっと古いっぽい?OS/ABIについての記述がない
- https://wiki.osdev.org/ELF
- osdevのELFのフォーマット説明
- 図解(Wikipediaより)
- [全部無料]最小限で理解しつつ作るELF parser入門 in Rust
- RISC-Vエミュレーターを作る前にELFの最低限の入門をするのに良さそう
OS
- https://github.com/osdev-jp/osdev-jp.github.io
- OSといった低レイヤーの人が集まる osdev-jp というコミュニティ
- Writing an OS in Go: The Bootloader
- GoでOSを書くシリーズ
- 自作OSで学ぶマイクロカーネルの設計と実装: マイクロカーネルの深淵を知り、骨太なスキルを身に付ける
- 基礎知識、マイクロカーネルの解説、その上で動くソフトウェア部分(ユーザーランド)の解説、そして発展的内容
- それぞれのパート内の章は、概念の解説部分と、その概念をどのように実装しているかを解説した実装部分に分かれています。
- Interface 2023年7月号予告
- 短い・シンプル・読みやすい作って理解するOS
- https://wiki.osdev.org/
- OS開発に関する情報が集まっているwiki
- Let's Build an OS: Day 0 - Getting familiar with RISC-V and writing a small bootloader.
- RISC-Vエミュレーターを実装する動画っぽい
- 再生リスト
k8s
- もっとも簡単なKubernetes構築 on Raspberry pi
- ラズパイを使ったk8sクラスタ構築の概要をまとめた動画
- 初めてKubernetesクラスタを作る人のためのKubeadm入門
- kubeadmを使ったk8sクラスタ構築の概要をまとめた動画
- おうちで「おうち Kubernetes インターン」を実施しました | CyberAgent Developers Blog
- https://ngrok.com
- ローカルサーバをインターネットに公開できるやつ
- ローカルにagentをインストールして、それを通してngrokと通信するみたい
- 自作して学ぶKubernetes Scheduler | メルカリエンジニアリング
- ちゃんと読んでいない
- schedulerを自作したいときに読み返す
- Raspberry Pi で【リアル☆Kubernetes】を作る!!
- ラズパイでk8sクラスタを作って船に乗せるといった内容
- 手順や材料リストも載っている
- Raspberry Pi4 Model B 4GB (ラズベリーパイフォーモデルビー)
- ラズパイ売っているところ
- 「eBPF」がクラウドネイティブを超強力にする。eBPFとは何か? 何ができて、どんな利点があるのか? Cloud Native Days Tokyo 2022基調講演から
- まだ読んでいないけど、eBPF入門するのに良さそう
Frontend
- SPA化するMPAとMPA化するSPA ~TechFeed Experts Night#4 講演より
- WebContainers now run on Safari, iOS, and iPadOS
- web containerがSafariなどでも動くようになった