Rustプログラムでpolarsの空DataFrameを作る

ぶっちゃけ、公式ドキュメントですぐにわからなかったのでメモ。 やりたかったこと ArcやRwLockを使って、DataFrameにデータの追加と読み込みを別スレッドにしたく、 DataFrameの初期化で空のDataFrameが欲しかった。 結論 スキーマを使わない場合は、defaul…

ターミナルプロンプトを自作するには

ターミナルのプロンプトを自分仕様にカスタマイズしたいと思ったので調べました。 ターミナルのプロンプトにはPS1 ~ 4があり、コマンドの入力待ち状態に表示れされているのものはPS1に格納されたものを出力しています。 PS1~4の内容 PS1: プライマリプロンプ…

【Rust】HTTPのレスポンスをparseする

よくやるのでメモ 関連パッケージ [dependencies] reqwest = { version = "0.11.22", features = ["json"] } serde = { version = "1.0.188", features = ["derive"] } tokio = { version = "1.32.0", features = ["full"] } サンプルコード use serde::Dese…

AsRef<T>に対する解釈

AsRefトレイトがよくわかない。。。 よくわかならいなりに自分が解釈したものを書く 結論 AsRef<T>トレイトを実装してるものは.as_ref()することで&Tと見做して処理することができるよ ということをコンパイラに教えるアノテーション的な意味が強いというふうに</t>…

GRCを用いたsubmoduleの追加

AWSで開発するにあたってCodeCommitを使っています。 GRCはAWSのクレデンシャルを使ってgitが扱えるので非常に便利ですが、git submoduleで少々つまづいたのでメモ 何もしないとgit submoduleはプロトコルcodecommitを使えません。 GRCを用いたsubmoduleの追…

【Python】プリミティブな型をちょっとリッチに拡張する

きっかけ 今の案件で基本的にはintの振る舞いで構わないんだけど、 その数値の持つ意味をコードに反映したいということになった。 たとえば、型で具体的に何の値を指しているのかをアノテーションをしたり、ちょっとした変換処理やバリデーションや制約を数…

【Python】globalで環境変数を呼ぶことの罪

環境変数をglobalで読むコードを書く人がいるが、私はそれに関して完全にアンチである ※念の為書くが、決して環境変数自体を否定したいわけではない 環境変数をglobalで読むことで生まれる被害 importしただけで評価されるので使ってなくても要求される 忘れ…

技術職の転職事情

某転職エージェントの人と話したことをメモ 僕の転職モチベーション このまま今の会社にいると実践的な技術から離れざるをえない できればずっと現場で働きたい 今すぐは考えてないが数年以内には・・・ メモ 転職先について 事業会社からSI/コンサルへの転…

【Rust】トレイト名の後にコロン(:)でトレイトがつく構文

※この内容は The book に記載の内容です。 こういうやつ pub trait FuturesAsyncWriteCompatExt: futures_io::AsyncWrite { // <-- ここ! /// Wraps `self` with a compatibility layer that implements /// `tokio::io::AsyncWrite`. fn compat_write(self…

【Rust】静的型付けやnull安全、例外の排除はテストを削減するのか?

Rustの特性に以下の3つがある 静的型付け言語 null安全 例外がない これらはテストを容易にするとかコードの品質をあげるとか言われているが、 具体的に何がさせるのかを自分なりに解釈する 静的型付け 静的型付けの利点は以下 変数や関数の型が事前に宣言…

【Rust】引数にboolが必要な時に何に対するtrue/falseなのかがわからない

Rustにはデフォルト引数がない 引数でboolを渡したいとき、そのtrue/falseは何の値なのかはエディタの注釈機能を使わないとわからない(そもそもそんな関数を書くなというのはさて置いて) githubとかで見た時になんやねんとなる 個人的な解決策としてはenum…

個人的Rust langを勉強するならこれは知っておけ

Web The Rust Programming Language: 2018 Edition PDF (Japanese) : 言わずもがな asynchronouse programming in Rust : Rustと非同期処理は切り離せない Rustツアー : 上記は難しい人 playground リリース情報 : Rustは6週間でアップデートされる。後方互…