日記(90)

<前 次>

NeoMupl

ひとまず、アンドゥ・リドゥ機能、実装しました。
再生日時まで履歴記録時のものを再現してしまうとか、ファイル名編集時が怪しそうとか、ちょっと懸念点は残っています。

再生日時は、うっかりミスの復元のためだから、うっかりミスしてから元に戻すまでの間に再生することはないだろうし、気にしないというのもありかも。

ファイル名編集がちょっと厄介そうで、もともとの仕様として、他の項目と同じファイル名にすると、統合されちゃうんですよね。
今回の実装だと、このパターンがおそらく復元できません。
とはいえ、統合する仕様自体、私もすっかり忘れていた仕様なんで、編集で他の項目と同じファイル名にするのを禁止する仕様に変更してもいいかもしれません。
そうすれば、アンドゥのほうはシンプルな実装を維持できるはず。

アンパンマンDBとNeoMupl

アンパンマンDB(記事更新)

来週の放送情報。
おくらちゃんの肩に乗るサンショウくんが可愛いな。

NeoMupl

アンドゥ・リドゥの具体的な実装はまだだけど、呼び出す口は作りました。
中身の実装もそんなに難しくはないとは思います。
追加に対しては、記録時に追加分を記憶、アンドゥで削除、リドゥで記憶したものを追加。
削除に対しては、記録時に削除分を記憶、アンドゥで記憶したものを追加、リドゥで削除。
変更に対しては、記録時に変更前・変更後を記憶、アンドゥで変更前を上書き、リドゥで変更後を上書き。

メテオンもどきとPHP8.3とNeoMupl

メテオンもどき

ゲーム本体はもうとっくに動かないんだけど、微妙な警告が出ていました。
PHP8.3の動作確認中だったのですが、バージョンアップの影響かどうかは不明です。
どのみち、良い傾向とは言えないので、修正しています。

PHP8.3

というわけで、ステージング環境的な場所で、動作確認中。
表示時にエラーが起きないかどうかだけなら、クローラーを走らせればいいだけなので楽。
まあ、でたらめに走り回るので、エラー発見効率はお察しですが。

NeoMupl

コミットメッセージが紛らわしいですが、アンドゥ・リドゥ機能の実装を始めました。
GitHub Copilot を試しに使ったんですが、チャット機能で生成させると微妙で、履歴の一動作に相当するインターフェースを作ってやると、それに沿っていい感じに作ってくれました。
アンドゥ・リドゥ機能自体はエディタ系のプログラムでは定番なので、お手本となるコードも豊富なんでしょうね。
こっから先の、各動作を実際にやり直す機能は、さすがに自力で実装しようと思います。

HTMLとアンパンマンDBとPHP8.3

HTML

とりあえず主要なファイルは一通りアップ終わりました。

アンパンマンDB(システム)

また発動していないバグ修正。
話数が空欄じゃなくて「0」になっていた場合に、「第0話」とかになってしまうんですが、アンパンマンDB的には「0」も空欄扱いしたいので、空欄の処理に飛ぶようにしました。
さっきのHTMLと一緒にアップ済みです。

PHP8.3

もうそろそろPHP8.4の正式リリースも近そうですが、うちはまだ8.2だったので、ひとまず8.3まで上げることにしました。
とりあえず開発環境での動作は一部のライブラリ以外はコードの修正なしで大丈夫そう。
本番サーバーはオプションを変えるだけだからいいとして、DockerとCI環境も対応しておかないと。

アンパンマンDBとXdebug

アンパンマンDB(記事更新)

コラムからの転記。
この程度なら毎日いっぱいやってもいいのにね。

アンパンマンDB(システム)

リストをNULL検索できないバグを修正しました。
ただ、今のところ、何もない項目はNULLじゃなくて空文字列が入っているので、実質的に影響はありません。

Xdebug

Xdebug - Debugger and Profiler Tool for PHP
Xdebug導入しました。
すなわち、Xdebug使わない縛り辞めました。

もともとデバッガとしては、PHP標準のphpdbgを使ってました。
PHPUnitのカバレッジもphpdbgだったんですが、PHPUnit10以降(最新版は11)には使えなくて、phpdbgのために古いのを使う続けるのも厳しいなって思ってました。

カバレッジ計測の選択肢としては、PCOVもあったんですが、あんまり更新されてなさそうだったし、カバレッジ「だけ」というのもどうかと思ったので、デバッグ並びにカバレッジ計測の定番、Xdebugを導入した次第です。

そもそもXdebugを避けてphpdbgを使っていたのは、XdebugはPHP標準に入っていないというのと、カバレッジ計測が遅いという話を聞いたからだったのですが、実測してみると、今はXdebugのほうがphpdbgより1割ほど早く終わりました。

WinUI 3(Today I Learned)

DataGrid - Windows Community Toolkit | Microsoft Learn
ListView クラス (Microsoft.UI.Xaml.Controls) - Windows App SDK | Microsoft Learn
これまでDataGridViewとかでやっていたことをやろうと思ったら、素直に考えればDataGrid。
ただ、WinUI 3では標準機能ではなく、NuGetでライブラリとして導入する必要があります。
標準機能にあるListViewは、ヘッダ表示とかは期待できませんが、テンプレートをうまく使えば、複数列表示も可能です。
外部依存を不必要に増やすのはあまり面白くないし、いったんListViewを試してみようかな。

デ・キリコ展


開催中の展覧会 - 神戸市立博物館
見てきました。
形而上絵画の画家だそうです。
形而上とか言われてもよくわかんなかったんだけど、普通の画家としての普通の絵から、段階を追って形而上絵画の要素を紹介していく構成の展示で、少しでも理解できたような気がします。

<前 次>