地獄への道は善意で舗装されている。善意で二回オフィスのWi-Fiの設定をしたら今回も依頼されて、地獄だ。
diary
Wi-Fi
Wi-Fiの設定はまじでわからない。これまでと契約先が違うプロバイダを一時的に使うことになったが、本当に大変だ。なんもわからない。明日もそれの対応がある。 (配線や環境構築はその専門の人にお願いするのが絶対コストがやすい)
何よりもつらいのは、旧オフィスと新オフィスを往復する頻度が多く、かなり多く歩くことになっていることである。
おかげで近くに面白いバーベキューサンドイッチ屋を見つけられた。
Team
チームとその外部とのインターフェースについて悩む。
やりとりを手軽に、かつ、相互の尊敬や信頼を伴ったようなインターフェースは難しい。
私は人に意見を伺う時や意見を提示するときは、直接相手のところに伺って、相手の目線より下に自分の目を置く、ということをしている。 これは相手への尊敬の念を示すのに非常に効果的であると思っている。 (ウェブカメラでも同様で相手を見下す形ではなく見上げる形にするのがよいと私は思っている。)
相手に何かを伝えられる自信のない私にとって、物理的な振舞いというのはある種の保証でもある。
さて、いざこれを個人ではなくチームや部署レベルで実施しようとなると難しい、特にテキストベースだと難を感じる。 というのも、相手にこちらの文章の意図が伝わり切れない、コミュニケーション不全があるかもしれないからだ。それは個人の言い方や伝え方の問題というよりも、その言い方や伝え方をどうして採用しているのか、というところがある。
これは、ネットの問題ではなく、人間の問題であり、人間がコミュニケーションに向いていない、もしくは、人間が言語以外の要素に多く頼ってコミュニケーションをしていることが原因であり、さっさと人間は一つになるべきだと私はしばしば思う。
しかし、人のコミュニケーション能力や言語以外の要素に頼っていることを排除し、1つになるということは現時点ではできないから、インターフェースをよりよくしないといけない。
銀の弾丸はないので、手探りでやるしかない。チーム内の文化と外部とのインターフェースは協調をもって確立する必要があるのではなかろうか。 (チーム論について隔週で部内で発表するトライについて提案をしてみた。これで解決するというよりも、これで歩み寄り、これで次の一手や方向性を探り出したい。)
Sound
チームメイトからお古のDACとアンプを譲り受ける。
久しぶりの音響関連製品の購入だ。
これの効果を直に感じるのは毎回難しいと感じる。この音を出したい、余計な音を削りたい、という強い意志がないと音響関連はその力能を十分に発揮できない。
画面上での音量の調整ではなく、物理的なダイヤルでの調整を久しぶりで本当に楽しい。
今日の勉強
rust
TRPL
- pp. 24-36
手書きのメモを文章に起こし直す(手を動かしたほうが楽)
2章
- 変数(
let ...
で宣言)- immutableとmutableがある。不変がデフォルト。
- 参照(
& ...
で宣言)- 可変と不変両方ある。
- クレート(外部クレートとバイナリクレートがある)
- 外部クレートは
Cargo.toml
に記述して、全ての依存をダウンロードさせられ、また、Cargo.lock
でビルドされるものを再現できる。 - 外部クレートを
.rs
で仕様するために宣言するのにはuse ...
を使う- トレイトに定義されているメソッドを呼び出せる
- 外部クレートは
- 関連関数(
::
)- 型に対して実装された関数
- 疑問: 関連関数とトレイトに実装されているメソッドとの違いは何か。
- 予測: トレイトはinterface的なもの?
- 型に対して実装された関数
match
- armがある
Result
型OK(v)
とErr(e)
のenumErr
の場合.expect()
でクラッシュする- クラッシュを避けたいなら
match
を使おう
- クラッシュを避けたいなら
- シャドウイング(覆い隠し, shadowing)
- 新しい値で変数の値を覆い隠す
- 値を別の方に変換したい場合などでよく使われる
loop
,break
3章
- コンパイルエラー
- 潜在しているエラーを見つけ出す手助けをし、
- プログラムにしてほしいことが安全に行えていないことを示している
- 値が不変と宣言すると、コンパイラがそれの担保をする
- 不変であることのメリットは、変化を追いかけなくてよく、コードを通して正しいことを確認するのが簡単になる
- 可変や不変と宣言したら、将来の読者に変数の意図を伝えられる
- 可変である方がよい場合というのは、大きなデータ構造の場合などが挙げられる
- 変数と定数
- 定数は不変定数ではない
- 定数の命名規則は大文字とアンダースコアのペア(e.g.,
ABC_XYZ
) - 値の型は必ず注釈する
- 任意のスコープで使用できる、globalでもlocalでも
- 定数は定数式にしかセットできない
- 呼び出し結果や実行時に評価される値にはセットできない