久しぶりに3時間ほど残業した。
diary
久しぶりに3時間ほど残業した。 私のミスを私が修正するためのものなので苦痛ではないが、明日の体調が気になる。
alcohol and bar
BARでお酒を飲む
- ビール(496)
- ハーパー(12年)
- 溶液臭さのあるバーボン
- お腹にくる感じでよい
飲み屋を支える人というのはどういう人かわからないが、過去に100本以上ボトルキープした人もいるらしい。
communication
お酒を飲みに行って人と会うことは好きだし、チームをよくするために人と話すのも好きである。 しかし、人を会うことや人と話すことを主目的にする場合はより苦手であるし、他に主目的があるからといっても、苦手なのは苦手である。
苦手であることについて繰り返し述べているが、人と交流するのが苦手と述べる際に、具体的にどういうところで苦手さを感じているか。 私は、人とのコミュニケーションを、まるで映像のように思い出してしまう。 そして、人とのコミュニケーションにおける自分のコミットメントを重く捉えてしまいがちである。 これら忘れることができない、そして責務を重く捉えてしまっているところから、苦手さを覚えてしまう。
仕事においては仕事の範囲で捉えるようにしたい。
Hanlon’s Razor
人とのコミュニケーションでさんざん悩んできている人間なので、他人の見方に関して、多少なりお悩み解決的なことはできる。 例えば、他人をネガティブに見てしまうことで悩んでしまう人がいる。
まず第一に、ネガティブに見てしまうこと自体は悪くない。 しかし、ネガティブに見すぎてしまうことは、相手への尊敬の念がないことの表れになり、コミュニケーションがうまく回らなくなる可能性がある。 つまり、ネガティブに見たとしても、別の見方を一度はした方がよりよくなる確率が高まる。
どう別の見方をするのか、ということを考えるためには、同じ事象であっても状況が異なる場合において、よく人をネガティブに捉える人でも、必ずしも否定的に他人を見るとは限らない場合があることを考えよう。 例えば、路上喫煙をしている人を見たとしよう。この時、その人を見て、以下のように異なる判断をしないだろうか。
- 路上喫煙している日本人を見て、この人は悪い人と思う
- 路上喫煙している外国人観光客を見て、この人は日本の法律や条例や文化を知らないんだ、と判断する
こういった判断の違いはしばしば発生していると思う。これは差別とかではない。 その人の行為の善悪は置くにしても、その人の行為の理由を推測することによって、その人の行為に対する評価が異なることがあることが重要である。
上記の事象と同じことを、普段の判断にも転用してみたら、他人の上げ足をとるようなことはしなくなり、楽になり、そしてコミュニケーションが楽になるのではないだろうか。 ハンロンの剃刀と一緒で、無知で済む話は悪意に持ち込まないようにしよう。
ファーストインプレッションでの認識の操作は、文化や知識という、その人の状態に対する判断をするという、事実ではなく文化や環境から判断をする、ということによって達成できる。
今日の勉強
ecs
タスク定義を間違えて、ECSの無限再起動を犯してしまった。
なんとか修正。
rust
TRPL
pp. 61-65
プログラムは、実行中に計算機のメモリの使用方法を管理する必要がある
- GC
- 明示的な確保と解放
- コンパイラがコンパイル時にチェックする一定の規則とともに、所有権システムお通じて管理
- Rustは第三の道を歩む
- より自然に安全かつ効率的なコードを構築できる
スタックとヒープ
- この違いで言語の振舞い方や特定の決断を下す理由などに影響以上のものを与える
スタック
- データを追加する(push to)のも取り除く(pop from)のも、常に一番上
last in, first out
- スタックにpushするのはメモリ確保とは考えられない
ヒープ
- コンパイル時にサイズが不明なデータや、サイズが可変なデータの場合にヒープに格納する
- データを置くとき、つまりヒープに領域を確保する(allocate on the heap)ときにやること:
- あるサイズのスペースを求める
- ヒープ上に十分な大きさの空き領域を見つけ
- そこを使用中にし、
- ポインタを返す
- (実データを取得するとき、ポインタを追いかける)
現代のプロセッサはメモリをあちこち行き来しなければより早くなる
コードが関数を呼ぶと
- 関数に渡された値がスタックに載る
- 関数のローカル変数がスタックに載る
- 関数の実行が終了したら、これらはスタックから取り除かれる
所有権が解決する問題
- どの部分のコードがどのヒープ上のデータを使用しているかの把握
- ヒープ上の重複しているデータを最小化
- メモリ不足にならないようにヒープ上の未使用データを掃除
所有権を理解したら、ヒープとスタックに関して、頻繁に考える必要はなくなる
所有権の存在理由: ヒープデータを管理すること
所有権規則:
- Rustの各値は、所有者と呼ばれる変数と対応
- 所有者はいつも1つ
- 所有者がスコープから外れたら値は破棄される
変数スコープ
- 変数の有効範囲
- 変数が宣言された地点から、
- 現在のスコープの終わりまで
- スコープに入ると有効になり抜けると有効でなくなる
- 変数の有効範囲
String型
- 所有権の規則の具体化のために、より複雑な、ヒープに確保されるようんま、データ型を見る
- 文字列リテラルは不変
- 全ての文字列値が判明しているわけでは必ずしもない
- よって、ヒープにメモリを確保し、コンパイル時にサイズが不明なテキストも保持するように、つまり可変にしたい
- それがString型
- 文字列リテラルとString型とでは、メモリを扱う方法に違いがある