t_wの輪郭

Rust

2022/2/18 20:22:00

プログラミング言語

あれあれFerrisBiomeあれsqlx循環参照は、メモリをリークすることもある『RustでWebバックエンドを書き始めてから1年くらい経った』シャドイングの嬉しさ「Rustでは、変数は標準で不変(immutable)」to_string()Displayprintlneprintlnsuper親モジュールから始まる相対パスは、superをつけることで構成できるmodRc<T>は、参照カウント方式のスマートポインタRc#strong_countRc#weak_countfn&Result<T, E>をテストで使うunwrap_or_elseis_errResult『Rust入門』演算子またはformatマクロで連結String可変参照は特定のスコープで、ある特定のデータに対しては、 一つしか可変な参照を持てないスコープを切れば同じ関数内で複数回の可変参照を使えるRefCellモジュール文字列リテラルcargo test -- --test-threads=1std::mem::dropで早期に値をドロップするあれstd::mem::drop「文字列リテラルは、高速で効率的」pubcollectトレイトはメソッド群の集合体iter()filterの試しiterpanicpretty-printcloneを使用する代償Rustの勉強RustでブラウザアドオンRustを勉強するあれStringの難しさgetResult<Hoge, &'static str>RUST_BACKTRACERustの整数型恐れるな!並行性『SeedでRust-onlyなポートフォリオサイトを作ってみた』src/lib.rsmutRustにて関数内で引数を変更する構造体を可変変数に入れてフィールドを書き換えるあれ#[test]あれ文字列スライスloop可変参照は1つしか存在してはいけない配列の各要素を取得するRust一家離散問題forargsArgs可変参照演算子&mutwasmでRustコンパイラーを動かすcargo-lambdaあれあれベクタ型ベクタの作成ベクタの変更ベクタの解放ベクタの要素を不変変数に借用した場合は、そのベクタの要素を変更・追加できなくなるベクタのgetと[]の要素取得の違いパッケージは1個までのライブラリクレートを持つことができるcargo test -- --nocapturecargo checkcargo testcargo new --lib {lib name}cargo docCargoCStr&strstrCargo.lock+演算子による文字列の結合push_strRustの文字列操作モジュールを複数のファイルに分割するcargo runRefCellを使うことは、内部可変性を得る方法の一つcargo buildformat#[should_panic]#[ignore]Rustでコマンドライン引数を受け取るベクタの走査に参照を使うのは所有権の移動対策ベクタの値を走査するstaticinto_iterの試しunionあれRustで作りたいものto_lowercaselines特質境界構文配列型Rustで遊んでたら疲れてきた参照渡しでは所有権の移動は発生しない参照渡しRc#cloneRc<T>をクローンすると、参照カウントが増えるSomeあれボックスで再帰的な型を可能にするBoxがスマートポインタなのは、Derefトレイトを実装しているからBoxString型文字列リテラルからString型を生成『所有権とは?』所有権の移動所有権tupdrop_ => ()_あれあれstd::rc::Rcstd::error::Errormatchの途中放棄(elseみたいなことをする)Box<Error>Boxはポインタぶら下がりポインタforあれexternパッケージはバイナリクレートをいくつでも持つことができるextern crateバイナリクレート戻り値String::new()Drop#drop+構文borrow of moved value戻り値による所有権の移動あれrandrand::thread_rngrand::thread_rng().gen_range(1, 101);モジュールツリーの要素を示すためのパスDropトレイトで片付け時にコードを走らせる借用#[derive(Display)]derive#[derive(Debug)]{:#?}#[derive(PartialEq, Debug)]Debug参照演算子?演算子あれ{:?}std::iofalsetruebool型if式の代入ifelse ifelsewhileRefCell<T>と内部可変性パターン『Linux 以外の OS への対応 - akaza-im / akaza』use super::*;*glob演算子use std::io;Rustの文字列リテラルをbyteとして走査useパッケージRustにはnullが存在しないDerefトレイトを実装して型を参照のように扱う『Rust製のngrok代替えツール「tunnelto」』Option<&V>HashMapに要素を追加HashMapの値を取得get_mutHashMapの値を変更HashMapを表示HashMapのキーに値がなかった時のみ値を挿入するentryor_insertHashMapOkErr『RustのLinux muslターゲット (その1:Linux向けのポータブルなバイナリを作る)』参照外し型強制は、 Derefを実装する型への参照をDerefが元の型を変換できる型への参照に変換しますFilevarcreatestd::time::Durationstd::collections::HashMapRustで指定した秒数停止するstd::fs::Filecontents&'staticstd::fsstd::timestd::memstdあれstd::cmp::Orderingstd::cmpcargo build --releaseenumの値は、その列挙子のいずれか一つにしかなり得ないNoneRustのNoneはenumの列挙子クレートはバイナリかライブラリのどちらかcrateクレートルートとは、Rustコンパイラの開始点となり、クレートのルートモジュールを作るソースファイルパッケージ はある機能群を提供する1つ以上のクレートクレート自動参照()structタプル構造体ユニット様構造体構造体更新記法enum「Rustには継承がない」トレイトRc<T>とRefCell<T>を組み合わせることで可変なデータに複数の所有者を持たせるライフタイム指定子ダングリング参照あれRustでの参照外し参照外しcmp自動参照および参照外しメソッド記法関連関数impl for特質を型に実装するimplあれ可変参照 (&mut) はCopy traitを実装していない関数に変数を渡すことによる所有権の移動コピーによる所有権の移動『多コピーの原罪』Copy特質のデフォルト実装mapの試しmaprustctrait引数の型として特質を使う戻り値の型が特質を実装していることを指定する引数の型が複数の特質を実装していることを指定するRustのクロージャはFn特質を実装しているDeref特質error[E0106]: missing lifetime specifierBox<dyn Foo>clone「Rustでは、 自動的にデータの"deep copy"が行われることは絶対にない」ぶら下がり参照rustc –explain E0106Rustでは関数で作成した変数への参照を戻り値で渡すことはできない&'生存期間指定子rustc --explain E0106 日本語訳Rustの勉強しながらいろいろ書いてるけど壮大に間違えてる気がするif letletあれwgpuあれburnElectronの代替を目指す軽量なRust製フレームワーク「Tauri」、リリース候補版に到達TauriOxlintRust から WebAssembly にコンパイルするRustからWebAssembly (wasm)を生成してJavaScriptとブリッジ通信してみるあれ一応 Rust の利を挙げるとすれば no_std のライブラリは一通り使える一方で AssemblyScript だと 既存の JS やら TS の資産は基本的に使えないということぐらいか『Fast and Portable Llama2 Inference on the Heterogeneous Edge』Rustでセル・オートマトンを作りたいPRRTTスタックpulldown-cmark不変変数の参照は不変スライス型strong_countRcborrow借用チェッカーあれRustの文字列リテラルを文字として走査std::env::args可変参照『Rustで書いたコードをAWS Lambdaにデプロイする』wingetでRustをインストール『Compilation to WASM?』『Wingetを利用してWindows11にRust/Rustupを導入する』Vecベクタは同じ型の値しか保持できないモジュールの中におけるものcargo doc --opencargo new {project_name} --bincargo new型注釈文字列リテラルは&strString::from#[cfg(test)]assert_eqDeref特質を実装することで、参照外し演算子の*の振る舞いを変更できるErrorあれ『参照と借用』『What #[derive(Display)] generates』特質を定義するRustの文字列リテラルは不変use std::collections::HashMap;sleepthread::spawn&'static strEnumを使うとベクタに複数の型を保持できるstd::envstd::errorstd::rcライブラリクレートクレートルートRustのループ構文selfユニット型『Rustがオブジェクト指向型言語ではないのとその理由』『Rustのトレイトはトレイトではない』参照外し演算子あれResult<(), Box<Error>>IteratorDroperror[E0782]: trait objects must include the dyn keywordRye『「Rust」「Tauri」などのモダン技術で開発されたWin/Mac/Linux対応ファイラー「Spacedrive」』Ferris Saysweak_countOrderingFile::createstd::vecstd::collectionsRustのenumとmatchmatchFnrustc –explain E0782 日本語訳あれクレートルートファイル

あれ

2022/3/23 14:59:00

 欧米が作った思想に乗っ取って、欧米が作ったプログラミング言語を使い、欧米が作った基盤(クラウド・OS・ハードウェア)の上で事業をするというのが日本のIT企業のやり方になってしまっている。クラウドもアメリカ製のものばかりだ。
 日本はアメリカと戦争をできるか?したとしたらどうなるか?という思考実験をたまにするのだが、これらのIT基盤がアメリカに握られていては戦いにすらならないだろうなと思う。IT基盤は国防問題だ。今はまだアメリカのポチでいられるが、アメリカの気が変わり搾取の度合いが増した時には困り果てることになる。現時点でもう困っているのかもしれない。アメリカの気分次第では、今ウクライナ侵攻によってロシアが受けているような制裁を受ける可能性がありうる。もしくは機嫌を損ねないように立ち振る舞い続けるかだ。軍事的にも、経済的にも。
 その点で中国はうまくやっている。自前で様々な基盤を開発しており、もし戦争になったとしても骨抜きにならないようにしている。度々制裁を受けているが、定期的なモンキーテストのようなものでその度に制約を乗り越えていくだろう。

 SIer企業がこれらを欧米が作った基盤を跳ね除けるのは不可能に近い。利益を出すなら(初期費用は)安価で手軽かつ高品質なこれらを活用するほかない。契約の期間内での利益を最大化することでしか生き残ることができない。

あれ

2023/5/31 13:55:00

現代のプログラミング言語はまだまだ論理の表現密度が低く、論理からソースコードへの変換という単純作業なので、脳内で奇声をあげて単純作業の苦痛に耐えている。