2023/07 3週目
Rust
- https://github.com/rust-lang/rust-analyzer/pull/15081
rust-analyzerにメモリレイアウトビュアー機能が入った
モチベーションは次のようだ
Motivation: rustc by default doesn't enforce a particular memory layout, however it can be useful to see what it is doing under the hood, or if using a particular repr ensure it is behaving how you want it to. This command provides a way to visually explore memory layouts of structures.
デフォルトではrustcは特定のメモリレイアウトを強制しませんが、ボンネットの中で何が行われているかを確認したり、特定のreprを使用する場合、それがあなたが望むように動作していることを確認したりするのに便利です。このコマンドは、構造体のメモリレイアウトを視覚的に調べる方法を提供します。
- Parser combinator nom 入門ブログ
- Rust 1.71を早めに深掘り
- https://github.com/TimonPost/cargo-unused-features
- 使っていないfeatureフラグを検出してくれるやつ
- https://github.com/Marwes/combine
- パーサーコンビネーター
- nomと2大巨頭らしい
- https://jpn.nec.com/cybersecurity/blog/220930/index.html
- Rust製のポートスキャンツール
- {n} times faster than C, where n = 128 これが最適化されてめっちゃ速いらしいrust
fn opt1_idiomatic(input: &str) -> i64 { input .bytes() .map(|b| match b { b's' => 1, b'p' => -1, _ => 0, }) .sum() }
Wasm
- https://github.com/bytecodealliance/wizer
- 初期化が完了した状態のwasmバイナリを生成してくれるやつ
- 初期化関数はRuntime側の処理のことを言っているらしい
- 参考記事: https://bytecodealliance.org/articles/making-javascript-run-fast-on-webassembly
- どうも初期化処理の結果をData Sectionにもたせているっぽくて、それでサイズが増える場合が多々あるらしい
- 初期化が完了した状態のwasmバイナリを生成してくれるやつ
- https://github.com/tinysearch/tinysearch
- 静的サイト向けの全文検索エンジン、Rustで書かれててWasmで動くらしい
Go
- proposal: spec: add range over int, range over func #61405
- 以下のコードをかけるようになる提案go
for range b.N { do the thing being benchmarked }
- ベンチマークを書くときいちいち
for i := 0; i < b.N; i++ {}
を書かなくて済むのは良さそう
- 以下のコードをかけるようになる提案
- proposal: spec: add untyped builtin zero
- zero値を表現する
zero
の提案 return ""
やreturn nil
、return 0
などをreturn zero
でかける様になる
- zero値を表現する
- Coroutines for Go
- Goにコルーチンパッケージがなぜ必要なのか、それがどのようなものなにかを紹介している
Elasticsearch
- https://www.elastic.co/guide/en/cloud-on-k8s/current/k8s-deploy-eck.html
- k8sにElasticsearchを乗せる手順
- 公式入門ドキュメント: https://www.elastic.co/guide/en/welcome-to-elastic/current/getting-started-general-purpose.html
JavaScript
- Node.jsでのイベントループの仕組みとタイマーについて
- イベントループは6つのフェーズがあって、次のフェーズに繊維する前にマイクロタスクを空になるまで実行する
- HTMLの場合のイベントループの仕様
k8s
- https://github.com/Ramilito/kubesess/
- kubectlをセッションごとに切り替えられるやつ
React
- https://ja.react.dev/learn/your-first-component
- 基本的にコンポーネント化するのが良いらしい
コンポーネントは、1 回しか使わないような UI コードやマークアップであっても、それらを整理するための有用な手段です。
- 基本的にコンポーネント化するのが良いらしい
その他
- https://hana-shin.hatenablog.com/entry/2022/04/16/202946
- iotopを使ってI/Oバウンドを確認できる
- https://github.com/Tomas-M/iotop ってやつもある