当日記の VS Code タスクを改修する。一部のファイルを touch しないと Jekyll が再生成しないのをカバーする。

0:15 SOPHIE Naked Massacre Version やる。

0:25 マールマリィは最初のターンで勝利可能。二撃で屠ることができる。

0:45 裏ボス二回目勝利。ビビアンが死ななければ粘れる。

1:05 ソフィーを倒して街に戻る。宝箱を全部開けて金策して魔術庵コンプリート。 これで残すはレベルマックスとアーティファクツ蒐集か。

1:30 ゲームをセーブして終了。

【サヨナラCH】CastHour最終日にやる事と言えば、灼熱Beach Side Bunnyを伸ばすこと。【音ゲー / beatmania IIDX / CastHour / DOLCE.】 - YouTube: これを聴きつつ、寝るまでの僅かな時間を割いて麻雀の練習。 そういえば稼働最終日だった。ビートマニアのサイトにログインして成績をビデオに収録しよう。

2:35 消灯。就寝。

7:05 起床。納豆とおにぎり二個を食う。歯を磨く。出勤。

7:45 現場。資源ゴミを出す。空き缶がコンテナー三つぶんあるのは異常だと思う。 事実、回収に来た業者からも今日はすごいっすねと言われる。ビニール袋が必要になったようだ。

10:10 撤収。帰還経路上に通行止めが発生しており、迂回するとえらく遠回りになる。

イトーヨーカドー曳舟店。体温チェックと手洗い。

コンビニに寄って TOUGH をチェック。私の本作品への最大の関心事は、メルニチェンコの幻魔が治療されるかどうかなのだ。 今週号はその点で進展があるので良い。治療者になる悪魔王子の身辺が何やら不穏だが。

曳舟の部屋。PC を開く。

beatmania IIDX 30 RESIDENT 新機能をチェック。 判定タイミング分割表示機能が興味深い。どうしてこれを実装しようと考えたのだろう。

SQLite をやる。

  • SQLite PERCENT_RANK Function By Practical Examples: NTILE の n = 100 バージョンだと考えたい。
    • 簡単のために同じランクのレコードが二つ以上存在しないとする。 このとき、対象レコード r 個をソートして、0/r, 1/r, …, 1 と順に評価する。 ということは、PERCENT_RANK はレコード数が 1 のときには 0 を評価する。
    • PERCENT_RANK の出力は 0..1 なので、適宜整形して表示する。
  • SQLite RANK(): 着順評価関数の一つ。同着を作らない。ザ・ベストテン方式。
    • 最後の例は注意が必要で、すべてのアルバムから再生時間が二着であるトラックを出力するように見える。 しかし、RANK の仕様上、二着のものが存在しないアルバムが存在する可能性が論理的にはある。
  • SQLite ROW_NUMBER() Window Function By Practical Examples: 問い合わせの結果セットに連番を振り付ける。
    • 最初の例と次の例は挙動が意外に似ていない。
    • ROW_NUMBER は pagination 処理で役に立つ。
    • Sales の例は関数 NTH を用いた別解がありそうだ。

窓関数はこれで終わりか。次回は窓そのものに行く。

12:00 おやつ。

12:30 歯を磨く。

VS Code ノート。IntelliSense を追究しよう。

途中で二つあるトリガーの区別がわからなくなってやめる。 【BABY WALKING SIMULATOR】あかちゃん - YouTube を観る。このチャンネルのライブは雰囲気が独特でしばしば困惑する。

14:35 昼寝。

KONAMIサンダークロス2 Stage 1 BGM Air Battleギター演奏(2021/5/2 Rev0.69) - YouTube: Yabis Starlight のようなギラギラとした音がいい。

15:20 今度こそ昼寝。

19:30 起床。よく寝た。携帯電話で Twitter をチェック。 新作ビートマニアの情報がバンバン流れてくる。 解像度が倍になった関係で、旧筐体での挙動が面白いそうだ。

20:00 外出。水戸街道行き。

20:30 コモディイイダ東向島店。641 円。

  • 中華春雨サラダ小
  • 野菜中華丼
  • 明太フランス

曳舟の部屋。排便。珍しくスッキリ。それから入浴。体表面の細かい汚れが落ちて欲しい。

風呂を出て PC を開く。晩飯は春雨と中華丼。

Thunder Cross II (サンダークロス II) BGM - Air Battle = Thunder Cross II (extend) - YouTube: 涙が出るほど素敵なベース。

21:55 歯を磨く。VS Code の IntelliSense 調査続行。

バカだから editor.suggestSelection の説明が理解できない。

23:15 IntelliSense ノートをプッシュして今晩の VS Code 調査を終える。 いじるほうが良さそうなオプションが見つかって良かった。

SQLite3 の昼のやり残しをやる。

Understanding Window Frame in SQLite By Practical Examples: 窓枠は、窓が現在の行の周囲に何行含むべきかを指定するのに用いる。

  • 既定の枠は RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW だ。 このことは最初のデモで明確に理解できる。
  • RANGE と書いた部分は RANGE または ROW から選ぶ。
    • ROWS: 現在行のオフセットと枠行が行番号であることを指定する。
    • RANGES: それらが行値であることを示す。
      • したがって RANGESUNBOUNDED または CURRENT ROW と一緒にしか使えない。
    • 区間始点と終点とで指定可能なキーワードが微妙に異なるが、本質的には同じだ。 例えば N PRECEDINGN FOLLOWING の対はそういうことだ。
  • 最後のデモは可能な限り枠サイズ 3 で平均値を計算する。

次回、プログラミングインターフェイス。

23:45 休憩。転職・求人情報サイトの type をチェック。求人リストを拡充。