GitHub Actions
CircleCIの自動テスト復旧より、GitHub Actionsに挑戦してみました。
今のところ、PHPのインストールはできているけど、Composerのチェックで引っかかって自動テスト本体までたどり着いていないようです。
プログラミング関係の話題。プログラミングコーナーを更新したとか、プログラミングの内容に踏み込んだ話とか。
CircleCIの自動テスト復旧より、GitHub Actionsに挑戦してみました。
今のところ、PHPのインストールはできているけど、Composerのチェックで引っかかって自動テスト本体までたどり着いていないようです。
C#用のライブラリ探してます。
Twitter(自称𝕏)と同時投稿みたいなことやってみたいんですよね。
まあ、単にそれだけならすでにそういうアプリはあるわけですが、やっぱり自分なりにアレンジしたい部分もあるわけで。
ということで…
syuilo/Misq: .NET Misskey library
Misskeyのメイン開発者しゅいろさんによる公式ライブラリ。
公式なので最も信頼性が高いと思われますが、機能としては認証と通信周りの最低限に絞ってあり、便利機能などは一切ありません。
Misskeyは開発がアグレッシブで、APIの仕様もよく変わるので、ライブラリ側の対応を待たずに自力でAPIの変化に追随できるという意味では、使いこなせば最も強いのかもしれません。
とはいえやっぱり、よくあるアプリよりちょっとアレンジを加えたい程度のことを、自力で全部頑張るのはつらいので、もうちょっと意識低めのライブラリが欲しいところです。
a32kita/MisskeySharp: MisskeySharp is a client library for .NET applications to utilize Misskey.
そこで、これ。
名前からしてMisskeyのC#用ライブラリって感じがしますし、サンプルプログラムも付属しています。
見た感じ、よく使いそうな機能はありそうですね。
こっちのほうを一度試してみたいと思います。
高 DPI サポート - Windows Forms .NET Framework | Microsoft Learn
昨日WPFにしなきゃみたいなこと書いてましたが、Windows Formsのままでも高解像度対応できるようです。
とりあえず、個人的によく使う浮き沈みランチャーかNeoMuplあたりを対応させようかなぁ。
高解像度のモニタを買って拡大率の設定を上げたら自作のソフトが軒並みぼやけたので、Windows Formsから高DPIに標準対応してるWPFに変更するのを検討中。
UI全部作り直しだし、古くてモチベないやつもあるけど、簡単そうなのからやっていきたいとか思っています。
そういえばWPFより新しいC#向けのUIフレームワーク、あったよな…。
UWPはUI以外も全面的に変更になるしWPF以上に未来なさそうだから除外するとして。
dockerのphp8にGD ライブラリをインストール #PHP - Qiita
このへんを参考に画像ライブラリ入れてみました。
これでとりあえず画像は表示されるようになりました。
文字列の表示とかツイート文字数計測とか、なぜかうまくいかない部分がまだ残っていますが、ひとまず目立つ部分はいい感じに動くようになりました。
ちょっと前からテストが動かなくなっていたので、ちょっと修正していました。
ちょっと修正というにはちょっといろんなところを調べまわってちょっと大変だったのですが。
で、最終的に何が悪かったのかというと、ネットの疎通確認に確実に存在するURLとして http://example.com/ を使っていたら、https://example.com/ にリダイレクトされていて、httpの方に繋がらないぞという判定になっていたことでした。
大変だったのは、それを突き止めるために別ソフトの修正を行ったら、修正が何も反映されず古いビルドが使われ続けたこと。
こっちは、修正が反映されなくなり始める前のバージョンまでソースを差し戻して、そこから新たに修正し直しました。
こういうのをどうにかできるのはGitなどバージョン管理システムのいいところですね。
Pleroma / pleroma-docker-compose · GitLab
ここ参考に、pleromaのインストールに挑戦してみました。
WindowsのDockerだったからかなんなのか、なぜか起動してもポートが開かずアクセスできなかったんですが、まあ、Docker Composeの練習にはなったかな。
情報提供の確認&商品情報の記入。
とまあ、こんなのんきなことを言っている場合ではないわけでありまして。

一番奥まで行くと、異形獣改めヘルゲゴーグの親玉が登場。
初手いきなりヤバそうな技出そうとしたのですが、こっちも初手必殺技が来たので、難なく阻止。
そして、パーティー編成も強敵向けに回復厚めにしていたので、危なげなく撃破。
それにしても、ヘルゲゴーグはロボットじゃなくて魔法生物だから、毒が効くんですね。
久々にタナトスハントが存分に活躍してくれました。
王様は…目的はまだわからないけどどうやら何かしらの悪意があって一連の事件を仕掛けていたようです。
次はそれの詳細を暴くところから。
他の写真は以下から。
写真置き場「2023/11/19」
買った当時に一応確認はしたんだけど書いてなかったやつ、今更ながら書きました。
歌の勇気の花が開くときが'99バージョンで、新録はBGMのみでした。
ストーリー中で戦ってきたボスと再戦できる機能を解放するクエスト、やってみました。
クエストは案外簡単だったので、全キャラ一気にやってしまいました。
再戦の方ですが、普通の強さの方は、今まで通りで特に問題なし。
で、追加難易度となる「超強い」に関してですが、想像以上に超強くなっていました。
今のスペックなら通常攻撃ワンパンで倒せる初期村ボスが、超強いだとこっちが通常攻撃ワンパンで倒される強さ。
基本的にレベルMAXじゃなきゃ話にならなくて、それでいてノルマも結構厳しいので、現状一番強いミフミンでも安定しません。
とりあえず今のところは、ミフミンだけ欲しい報酬がもらえるところまでやりました。
他の写真は以下から。
写真置き場「2023/11/09」

AI コードジェネレーター - Amazon CodeWhisperer - AWS
AIでコーディング支援してくれるツールです。
GitHub Copilotは有料なので、無料で試せるこっちをVSCodeに入れてみました。
今のところサンプルコードでしか試していませんが、前後の文脈を見てそれっぽいコードを書いてくれています。
やりたいことを書いたコメントからでも書いてくれるらしいのですが、そっちは試せていません。
GitHub Copilotと比べるともっさりしていると聞いたのですが、個人的には自動補完はちょっと待つぐらいがちょうどいいので、気にしてはいません。
検索の初手が身も蓋もない感じだけどまあまあよさげなコードに見える。 pic.twitter.com/acwrdhyTNG
— 📛松田美文 (@matsuda323) September 18, 2023
出来上がったコードは、C#側は.NET Framework 2.0、PHP側はPHP 7.0相当のコードが出てきて、両者とも、Haxe自身の言語仕様やライブラリとの互換性のためのファイルがいくつか追加されていました。
C#の方は、丁寧にもDLLにまでビルドしてくれたので、コードで共有しなくても、このDLLをプロジェクトに追加すれば、Haxeで作ったライブラリをC#で使えることになります。
PHPの方は、パッと見た感じ、互換性用のファイルが、PHP 8.2ではエラーになりそうな感じだったので、何か追加対応をしてエラー解消するか、これのためのPHP 7.0サーバーを作るか、何か対応が必要そうです。
プロジェクト実質停止してるけど、funyakあたりでも何かしらの形で使ってみたいんですよね…。
Webの次世代アーキテクチャ - PESPA - Qiita
Webアプリの作り方で、JavaScriptに頼らないシンプルなマルチページアプリは良くも悪くも愚直で、一見スマートなシングルページアプリは複雑怪奇、両方のいいとこどりをしたのがPESPAってとこかな。
こういうのは代表的なフレームワークを使って1個何か作ればよくわかる気がするけど…うーん、何を作ろうか。
来週の放送情報。
5-Gクリア。動かした落書きは消して書き直すと元の位置に戻っているという仕様を使うステージ。相変わらず初手に悩む。 #さかだちの街 #NintendoSwitch pic.twitter.com/ZotTJLJfjr
— 📛松田美文 (@matsuda323) July 21, 2023
カスタム URL スキーム の 設定 と 利用 - galife
HTMLのリンクから他のアプリを起動できる機能。
試してみたらうまく起動できないパターンもあったので何とかできないか検討中。
巧くいろんなアプリ起動できたらいろいろ捗りそう。
【PHP】相対パス(相対URL)を絶対URLに変換する - Qiita
自前で変換処理を書いていてバグったのでこれを機に直して、その副産物です。
Twemojiが2023年になると表示されなくなる(かもしれない)問題に対処する
アンパンマンDBのコメント欄とか、プロフィールページとか、主にユーザーからの入力を表示するページで、環境によらず統一的な絵文字を表示するTwemojiを使っていたのですが、どうにもそのままの設定だと年末に使えなくなる可能性があるとのこと。
なので、スクリプト(twemoji.min.js)は自前ホスト、絵文字本体はjsDelivrを参照するように変更しました。
参照先を変えられるようになったので、仮にjsDelivrもダメになったとしても、GitHubのTwemoji本体が無くならない限りは置き場所を変えつつ継続可能なのです。
📛松田美文 (@matsuda323) | Misskey.io
登録してみました。
マストドンとはまた別の分散型マイクロブログだとか。
Twitterから移行するというよりは、あちこち様子を見てみたいという気持ちですね。
ライブラリ更新 · mifumi323/Namalyzer@6dd8da4
昨日のWellKnownUriParserが期待通りに動いていたので、ナマライザに反映。
こっちはまた日を改めてリリースしようと思います。
GitHub Codespaces のドキュメント - GitHub Docs
で、ナマライザのリポジトリの操作のためにGitHubに行ったらこんなのがありました。
クラウドの開発環境で、月60時間までは個人だと無料だとか。
継続的に使うかどうかわかんない技術を手元の環境を汚さずに試せるし、時間にさえ気を付ければそのまま本格的に開発に入ってもいいってことかな。

Home | HaxeFlixel 2D Game Engine
Haxe用の2Dゲームエンジンです。
とりあえずインストールはしましたが、まだ触ってはいません。
興味があるとか言いながら結局何も作っていなかったので、ここらで一つ、簡単なゲームでも作ってみようかなと。
例えば…ふわふわふにゃの移植とか。
最近、リファラを独自に解析した検索フレーズ一覧が、URLだらけになってきました。
詳しく調べてみたところ、「https://www.google.com/url?q=https://tgws.plus/anpandb/tekkanokomakichan&~」みたいな、検索のURLと似たパラメータを持つリダイレクト用のURLを誤認しているようでした。
最近はGoogleでも他の検索サイトでも、プライバシーのため本来のリファラを出さなくなったので、リファラを解析しても、間に挟んだ何の情報もないページしかわからなくなったんですね。
リファラ自体あまり来なくなったとはいえ、一応リダイレクトは除外するように対応しておこうかな…。
エラーログに微妙な警告が残っていたので対応しているのですが、維持し続ける必要あるのかなって思っています。
参加者は昔来てくれた3名だけだし、ファン活動で繋がりたいなら昔みたいな同盟サイトに頼らず各種SNSでやればいいし、むしろうちのサイトに記録が残るのはある種のデジタルタトゥーなのでは?と思ったりもします。
Home | Yarn - Package Manager
JavaScript向けのパッケージ管理システム。
私はnpmしか使ったことなかったですね…。
そもそもあんまり大々的にJavaScriptを使いたい気持ちもないし、一応知識として知っておくだけ知っておこうかなというところ。

Build your first .NET MAUI app - .NET MAUI | Microsoft Docs
VS2022がバージョンアップして、.NET MAUIが普通に使えるようになりました。
とりあえず試してみたんですが、UI作るところではグラフィカルなデザイナは表示されないみたいですね。
今のところ、特に作りたいアプリもないので…どうしましょうかね。
自分用だとWPFで結局事足りそう。
お宝集めて大航海!「幻の海トラシュカ2022」 (2022/7/5)|目覚めし冒険者の広場
一日遅れですが、トラシュカ始めました。
まずはミフミンから始めたんですが…
お宝は、いつもの宝石やら魚やらがらくたやらに加えて、キャラクターの像が落ちてきます。
通常の像はもちろんのこと、ドット絵像、ちびキャラ像など、何でもあり。
邪魔してくるモンスターたちも、いつものばくだん岩系統はもちろんのこと、例年だと高々一種類しか出なかった特殊仕様のモンスターが、遠慮なく続々降ってきます。
死角となる海面から飛び出してくるサメ、地面を揺らして足止めしてくるモアイ、視覚妨害してくるイカ、他にも何かいた気がするぞ。
お宝の方は、何が出てこようとも、出てきたものを取るだけなのですが、モンスターの方は予測不能だから対応しきれなくて、やるたびにスコアが乱高下します。
今回はよくできた………あれえええええ???…みたいなことになっちゃうことも。
景品とかの画像は一覧から見てください。
こっちはこっちでツッコミどころはあるものの、本編が突き抜けているので相対的に控えめです。
写真置き場「2022/07/14」 | ミフミンのDQ10メモ
根本的な作り直しの続き。
現行データからの移行ツールを作りました。
これで実際の運用に近い形で画面を見ながら開発していけます。
テストデータを使ったテストは随時行っていますが、やはり最終的には本物のデータが一番わかりやすいですからね。
もちろん、本稼働開始のときにも使えるツールなのです。
リアクティブJavascriptライブラリ
Reactの代わりに使えそうなJavaScriptのフロントエンドフレームワーク「SolidJS」。
別にReactで不満を感じていたわけではないのですが、フレームワーク自体のコードが小さい、それどころかビルドすると消えてなくなるというのはすごいですね。
Anpanatorあたり書き換えてもいいのかなとか思ったり思わなかったり。
管理画面のメモ用Wiki、@WIKIに移転しました。
もともと非公開コンテンツだったので、@WIKIでもやっぱり非公開です。
ページ名だけはURLにアクセスすればわかってしまうのですが、まあ、URLも非公開なので多分大丈夫でしょう。
「鉄火のコマキちゃんとミス・マリーネ」の作品情報を追加
「どんぶりまんトリオとオーロラ姫」の作品情報を追加
来週放送情報の追加。
美しい大人の女性のキャラクターがABともに出る感じですね。
PHP: 配列 - Manual
配列のアンパック。
array_mergeでやっていたような配列の結合を、[..$array1, ...$array2]みたいに記述できる機能です。
簡潔な構文で記述できて、性能もよくて柔軟性も高いそうです。
PukiWikiを復活させようと試行錯誤していた時に見つけました。
機能自体は7.4からあったのですが、うちのサイトでは7.4をすっ飛ばして一気に8.1まで上げてしまったので、気付けませんでした。
ネット上の記事では、JavaScriptでの同様に機能からの類推で、「スプレッド構文」と呼ばれることが多いようですね。
ただ、便利で、今後は積極的に使っていきたいとは思うのですが、性能がいいからと言って、過去のコードのarray_mergeまで全部置き換えるのはちょっと無謀かなって思いました。
というのも、array_mergeを削除するのはいいとして、丸括弧()で囲っていた部分を角括弧[]で囲ったうえ、両方の配列に...を付けるって言うのが、繰り返し間違いなく行うには結構複雑な手順なのです。
特に...忘れに関しては、エラーが出ずに、ただ望まない処理結果が返るだけなので、間違った修正をしても気付かずに、発見したころには元のコードを忘れていて修復不可能、ということが起こりそうなのです。
カバレッジのグラフ
サイズがでかいので画像は直接貼りませんが、カバレッジの推移のグラフを表示する機能を作ってみました。
昨日紹介したRindow Math Plotは、ファイルへの保存は対応しているように見えて事実上対応していなかったので、直接表示するページを管理画面に作りました。
横軸はカバレッジ記録開始した日からの経過日数にして、上下に並べて時系列で傾向を見られるようにしました。
新機能を実装して複雑性が上がるとカバレッジが下がり、複雑性が上がらない間はテスト作成を頑張ったりしているのでカバレッジは上がる傾向があります。
今、日記の内部挙動を変えようと思っていて、内部挙動を変えても外部仕様が崩れないことを保証するために、日記の、特に管理画面のテストの作成を頑張っています。