hsimyu's diary

ゲームなどをします。

10/21 ハンバーガー

10/21 (日)

ごはん

朝: クッキー

昼: ハンバーガ

夜: 肉じゃが

個性の強いハンバーガー屋

近所のハンバーガー屋に行ったら、店主の個性が強かった。

プレミアムパイナップルチーズバーガーは確かに旨かったが、プレミアムオニオンバーガーの玉ねぎが辛くて妻からは不評。あと待ち時間が長すぎた。

SSSS.GRIDMAN

「SSSS」は「エスエスエスエス」じゃなくて、発音しないらしい。

3話まで見た。新庄アカネさん、臭いそう。バトルシーンの演出が良すぎる。

UE4 Blueprint

バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~

UE4 ブループリントとC++のバランスを深く考える - Let's Enjoy Unreal Engine

Blueprint vs C++ performance .

何も考えずに色々作れるけど、最終的に辛い、みたいな話。

Annict

こんなサービスがあるのかー。

https://annict.jp/about

RAII (Resource Acquisition Is Initialization) の良さ

ちゃんと言語化したことがなかったので調べた。

RAII が保証されているとオブジェクトのスコープとリソース確保(ファイルとかメモリとかスレッドへのアクセス権)を自然と一対一に出来るので、分かりやすいし、例外安全性の保証もしやすくなる。

なぜ例外安全の保証をしやすくなる?

初期化時、つまりコンストラクタの中で、リソール確保失敗時に例外を投げる構造にする。

    class Log {
        Log(const char* fileName)
            : m_FileHandle(OpenFile(fileName)) {
            // 確保失敗したら例外を投げる
            if (!m_FileHandle.isValid()) {
                throw new FileOpenFailedException();
            }
        }
    
        ~Log() {
            // デストラクト時に close()
            m_FileHandle.close();
        }
    
        // コピーを防ぐ
        Log(const Log& log) = delete;
        Log& operator=(const Log& rhs) = delete;
    
    private:
        FILE_HANDLE m_FileHandle;
    }

こうすると、そのオブジェクトを呼び出す側がリソース確保に失敗したかどうかを毎回確認しなくても例外が飛んでいく。もちろん呼び出し側のどこかで例外に対する処理は必要になるが、例外を投げる部分を書く手間がなくなるし、書き漏らしもなくなる。

RAII が一般的に使われているのは C++ / D / Rust とか?

英語

そろそろ再開したい (n回目)。Podcast はずっと聞いてるけど。

英単語覚えるアプリ、専門的な記事に出て来る単語が分からない事が多いので自分で単語帳を作れるかどうかだけを重視してたけど、たんにボキャビルするだけならその部分って必要ないよなーという気がしてきた。Notion に英単語メモページ作って分からなかったらそこに追加しにいく(その時に他のやつも目に入る)という従来の運用で十分で、mikan みたいな英単語学習アプリでは、普段目にしない単語とか日常会話向けの単語を強化するというのをやると良いのではないか。

ところで学生時代にひたすら作った Anki の単語帳が死蔵状態になっているので何とかしたい。

Magic Scroll Tactics

www.youtube.com

サイドビューでタクティクス系戦闘するゲーム知らないのでちょっと興味ある。他に例あるかな?