kanejaku.org

Trying to keep English skill - 2020/10/20

20 Oct 2020

I feel my English skill has been declining.

One reason is that I don’t speak English in meetings these days. The first few months of working remotely I tried to be chatty. That motivated me to speak in English. It helped me a lot to keep my English skill, but it didn’t last because I’m not a social person.

One other reason is that I don’t write documents in English. In the early stage of my current project I had to write many documents. That helped me to improve my English skill. The project took longer than I expected, but it will end soon. This means that I don’t need to write more documents. I’m happy with that but it also makes me write documents in English less.

This is why I’m trying to write here in English.

6 AM - 2020/10/19

19 Oct 2020

It was a bit chilly this morning but the sky was beautiful.

While walking I listened to Misreading #85. It’s always fun to listen to the podcast.

早朝の浅草寺 - 2020/10/18

18 Oct 2020

三社祭が5か月遅れで行われるそうで小規模ながら屋台が準備をしていた。

ポッドキャスト消化と胃もたれ - 2020/10/14

14 Oct 2020

Misreading Chat #84backspace.fm #363 を聞いた。

エントロピーが変わってなければ同じ傾向のサンプリング結果が得られているだろう、というのが自分には無い発想で面白かった。Release binary のシンボルをサーバにあるデバッグ情報を使って解決する方式は自分も日々 crash bug の調査でお世話になっている。バグを直すという文脈だと stack fidelity がどのくらい担保されているのかで難度が変わってくる、という印象なのだけど、パフォーマンスの傾向をつかむという文脈ではその辺は無視できるのかな。

家の近くのお肉屋さんが作っている、がっつりしたサンドイッチをお昼ご飯に頂く。

ペリカンのパンを使っているそう。前食べた時はすごくおいしかったのだけど、今日はちょっと重かった。午後胃が痛くて苦しむ。

コントラストとフォントを変更

12 Oct 2020

1 年ほど視力障害を経験した を偶然読んだ。

駄文を書き散らすブログでも最低限のことはやろうと CSS をすこしいじった。まだ一部見づらいかもしれないし、他のアクセシビリティ対応は何もできていないけど、何もしないよりいいかな、と。

仕事終わりの散歩も闇夜につつまれるようになってきた。

Tracy Profiler ZoneScoped in Rust

11 Oct 2020

Tracy is a feature rich, frame-oriented profiler which is very useful for developing games and emulators. I’ve been using the profiler for my Famicom/NES emulator written in Rust.

Tracy provides C++ and C APIs so it’s fairly easy to create Rust bindings for most of them. An exception is the ZoneScoped macro which automatically records function name and source location. It’s not trivial to create an equivalent in Rust because it relies on both RAII and C/C++ predefined macros such as __LINE__. I’ve been trying to figure out ways to create an equivalent in Rust because I think the macro is the most useful API of Tracy.

My current approach is to use procedural macros combined with a struct that implements Drop. The struct ties up ___tracy_emit_zone_begin() in the constructor and ___tracy_emit_zone_end() in the destructor. A procedural macro injects code that creates the struct at the beginning of the annotated function. In this approach, the following code:

#[rustracy::zone_scoped]
fn execute_frame(engine: &mut Engine) {
  // …
}

will produce something like the below:

Note that zone name and location are recorded automatically.

A major problem of the approach is that it can’t automatically generate struct/trait names. The following code:

impl Engine {
  #[rustracy::zone_scoped]
  fn execute_frame(&mut self) {
    // …
  }
}

doesn’t generate zone name Engine::execute_frame() but generates execute_frame(). I added another producedral macro that takes a “prefix” to work around the problem, but I don’t like the workaround.

You can find my current approach at GitHub.

母校に寄付した

10 Oct 2020

今年も母校の大学院に学生支援の寄付をした。寄付を始めて 3 年目になる。

1 番の理由は控除を受けるため。でも他にも理由がある。まずは自分自身が学費を工面するのに苦労したこと。そして自分は幸運にもいろんな支援をもらって学位を取れたことに感謝していること。高専から(就職を経て)専攻科、大学院といった高等教育にかかる費用は奨学金や政策支援、そして自分で稼いたお金で賄った。受けた恩をほそぼそと返しているつもり。

教育は格差を是正する優れた手段だと思う。今の自分が平均以上の収入を得られているのは、高度な教育を受ける機会に恵まれたからだ。その機会を得られたのは人並み以上に努力したこと、めぐり合わせの運の両方が作用している。

今年は BLM を契機に格差について考える機会がありその思いをより強くした。この思いは良質な教育を受ける機会に恵まれた人には分からないんじゃないかという諦観の念がある。教育格差による優位を意識する機会のない人に、運に恵まれた、という意識が芽生えることはない。能力に見合った対価をもらっている。たぶんそう思っている。そう思うのは当然だし何の問題もない。でも一方でスタート地点でついていた差をどのぐらい意識できているんだろうか、とも思ってしまう。職場での雑談や同僚のツイートから感じる疎外感はここからきている。

とはいうものの、自分は志が高いわけではないし、この違和感について真剣に悩んでいるわけでもない。節税をするにしても、一部はふるさと納税とかを使って自分の生活を豊かにしつつ、一部はちょっとした信条に基づいて寄付するのがいい塩梅かなと思う。

ポッドキャストを聴く日々

9 Oct 2020

朝の散歩中に Misreading #83を、仕事を終えた後の散歩中に Retro Game Audio ep 21 を聴いた。

DTrace が使われている現役 OS といえば MacOS ではないかと思ったけど Mojave でサポートされなくなった、という言及を見つけた。あと、BPF は古の tcpdump のカーネル側の実装を指していて、汎用 Tracing 機構となった実装は eBPF と呼ぶ認識がまだ自分にはあって、色々キャッチアップができていないな、と実感する回であった。

Retro Game Audio の方は少し前に聴き始めて興味のある回をつまみ食いしている。DPCM とコントローラの read が干渉するのは知らなかった。スーパーマリオ 3 がコントローラの read を 3 回やって操作性を担保しているとか、悪魔城伝説のダメージをくらった時の「うっ」っていう効果音を鳴らしている間にキャラクターを操作できないのは干渉を workaround しているんだと思う、とかトリビアがあって面白い。燃えろプロ野球がサウンド再生の観点から面白いとか思いもよらなかった。 Jaleco ってどう発音するんだろう、とか英語話者ならではの疑問も新鮮だった。

Snacking

8 Oct 2020

Snacking なる言い回しを知った。

https://staffeng.com/guides/work-on-what-matters

簡単にできる、でも重要じゃないことをやるのは避けよう、と。やった気になるけど本質的な問題を解いてないよ、と指摘している。耳が痛い。Snacking を encourage する仕組みがあるのも問題。CL/Commit 数を報告させるとか、Github で草を生やすとか。

自分は Preener でもある。自己顕示欲が強いというのとちょっと違うけど、大したことしていないのに人からよく見られたい欲があるというか。文章を書いていて言い回しに凝りがちなのはその表れだと思う。

概念に名前を付けることで意識が向き、改善しようとする姿勢が生まれるので、名前を付けるの大事だなと再認識した。

自己啓発的な記事を紹介するだけのこのブログエントリも Snaking である。

今日もポッドキャスト消化

6 Oct 2020

早速新しいエピソードが出ていたので Misreading chat #82 拝聴。

今回は教養番組みたいなノリで聴けてこういう話題も良い。物理や化学、光学が分かるともっと楽しめるんだろうな。書いたコードがガラスに書かれて北極に埋まっていたら胸熱だなー。


Windows IME の変換アルゴリズムが変わった?意図しない変換が多くなった気がする。