「GitHub」に関する日記

TGWS内部処理とアンパンマンDBとGitHub Copilot

TGWS内部処理

バイオ9の画像ページみたいに、たくさんある画像をいい感じに一覧表示する機能の、もっといい感じにやるやつ実装中。
ユーザー側からはあまり意識しないかと思いますが、URLが内部形式むき出しになっていたり、ページを最初に表示したときは表示しない画像も一気に生成するから重くなっていたりして、微妙だったんですよね。
なので、URLをすっきりした形に整理したり、必要な画像だけ作るようにしたり、ついでに画像形式をJPEGより高効率なWEBPにしたりしています。
いやあ、他でもないバイオ9の画像が、4K画像大量表示だから重いんですよね。

アンパンマンDB(アイディア)

トップページにもアフィリエイト入れようかなとか考え中。
別に生活が変わるほど売り上げがあるわけじゃないけど、売り上げが少なすぎるとAPI止められる可能性があるんですよね。
ただ、今でもトップページはかなりごちゃついているので、必ずやると決めているわけでもないです。

GitHub Copilot


記事執筆ではなくネタ出しのほうにAIを使うという案。
そもそも何書くか決まらないというのが一番困りますからね。

日記


ご覧ください。今日は𝕏でつぶやく以外、何もしてません。

…なわけないんですけどね!
うちの日記にはその日やった内容を自動で取ってくる優れた機能があるんですが、GitHubにプッシュした内容をちょくちょく取りこぼすんです。
メインブランチは名前がmasterだろうとmainだろうと取ってくるようになってるはずなんだけどなァ。

NeoMuplとAmazon Q DeveloperとアンパンマンDB

NeoMupl

以前にリリースしたバージョン0.37.0、GitHub上ではリリース打ってなかったので、対応しておきました。
もちろん、今回のリリースからImmutable Releaseです。

Amazon Q Developer

邪魔なので、使うのやめました。
相談もなしにいきなり極端な考えを押し付けてくるし、対話はできない感じだったし。
同じAmazonでもエディタ上で細かく取捨選択できるCodeWhispererは悪くない感じだったので、そっちは使ってもいいかもしれない。
まあ、こっちはこっちでライセンス更新が面倒でGitHub Copilotに移っちゃったんだけど。

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

お気に入りのアーティストの音楽を探す - YouTube ヘルプ
YouTubeのTopicチャンネルには、正式なライセンスを持つ無料の音楽配信があります。
例えば、アンパンマンのマーチとか。
もちろん無料である分広告はついていますが、曲がわからないときにまずは無料で聞いてみるというのはとても有意義な選択肢です。
というわけで、アンパンマン音楽DBに無料YouTube配信を表示できるように調整中です。
日替わり紹介botにも出せそうかな。

アンパンマンDBとGitHub Immutable Releasesとゲーム記

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

来週の放送情報。

GitHub Immutable Releases

GitHubは、アプリの設計図ことソースコードを共有・管理するホスティングサービスですが、成果物であるアプリ本体を配布、つまりリリースする機能も持っています。
たとえば私の場合、ふにゃ1の現状最新リリースは「Release 2.4.3 · mifumi323/funya1_wpf」になります。

開発者からすると、作るところから配るところまで一箇所でできて便利です。
犯罪者からすると、便利さには付け入りたいわけです。
開発者が「最新版はここだよー」とアプリの場所を正式発表したら、犯罪者はその正式な場所にウィルスとか置いてしまいたいわけです。
それを防ぐのが、「Immutable Releases」(変更不可能なリリース)です。
これをやると、開発者本人でさえも変更不可能になるので、万が一犯罪者に侵入されても大丈夫というわけです。
もちろんそもそも侵入されないのが一番ですけどね。

とりあえず、私のリポジトリにも設定を入れておきました。
既にあるリリースには適用されないようですが、今後のリリースからは安全になります。

ゲーム記

Nintendo Switchのソフトのページに、2向けの対応をひっそりこっそり入れました。
今は昔のままの表示ですが、2の写真を追加すると、自動的に写真一覧へのリンクが出てくるようになります。
まだ動作確認してないやつでまた遊んでみるか。

funyan

実装の前にまずはファイルフォーマット確定させなきゃということで。
チャンクの種類もいろいろあるのでそっちも整理していきたいところですが、ひとまずはコンテナ形式の確定ということで。
以前にも言いましたが、これができればfunyakにも応用可能だし、ステージエディタだけリメイクとかも可能性が見えてきます。

それはそうとして、GitHubのMarkdown、EBNFもシンタックスハイライト効くんですね。

アンパンマンDBとGit

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

トップページのメタ情報にRSSへのリンクを入れました。
ページ自体の見た目には反映されないし、どのブラウザが対応してるのかもわからないんですが、まあ、仕組み上存在するということで。
ついでに、サイト全体のことになりますが、RSSのMIMEタイプを「application/rss+xml」に変更しました。

あと、設定画面が特定の条件でエラーを起こすという問題があったのですが、解消しました。
そのかわり、別のバグを引き起こしてしまったので、今後修正します。

Git

Gitのブランチ運用を更新しました。
最近はプルリクエストを使った運用にも慣れてきたのと、各種自動化も進んできたので、そのあたりの変更です。

GitHubとアンパンマンDB

GitHub

昔C#で作ってたちょっとしたツールをGitHubでソース公開しました。
ちゃんと作り込んだツールじゃないからバイナリの配布はしないけど、需要があるなら…JavaScriptでWebアプリ化したほうが使い勝手いいか?

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

検索用データ更新処理競合対策中。
変化がないときにまで更新しないというシンプルな対策です。
ただ、動作確認してみたら、うまく動いてるんだか動いてないんだかよくわからない状況…。
動作確認方法も工夫必要かも。

GitHub Copilotとふにゃ1とFamiTracker

GitHub Copilot

Announcing GitHub Copilot Free - GitHub Changelog
なんか無料枠ができてました。
以前からちょいちょいお試しで触ってはいたんだけど、本格的に使い始めてもよさそう。
まあ、あまり本格的過ぎると無料枠の限度に達してしまうかと思いますが。

ふにゃ1

今回はスクショなし。

この辺はバグ修正。
カウントダウンのほうは、メッセージ表示にダイアログボックスを使わなくなったことで発生した初期化漏れ。
キー入力のほうは、リセットのコードが解析で出てこなかったので、原作でももしかしたら発生していたかもしれません。

これは単にコードを移植しただけ。
先ほどのGitHub Copilotに一度書かせてから、手直しして作ったものです。
コミットメッセージは、全面的にGitHub Copilotに任せました。
基本的に全面的に信用してプログラミングを任せるのはありえないですが、修正する前提で案を出してもらうとか、少し変でも害の少ないコミットメッセージあたりに使うのがよさそうかな。

ここはメニューの機能の実装だけで、実際の読み込み処理はまだ作っていません。

FamiTracker

ふにゃ1にはもともとBGMはついていなくて、プレイヤーが好きな音楽をかけられるだけでした。
せっかくの移植だしここらで標準のBGMでも作ってみようかと思って思い出したのがこれ。

FamiTracker
ファミコン音源で音楽作れるやつです。
単に音がファミコンっぽいってわけではなく、しっかり制限事項も含めてファミコンの仕様で音が鳴ります。
前回使ったのが2008年だから、16年ぶりか…。

HTMLとGitHub Copilot

HTML

以前修正したHTMLと、あの後もちまちま作業してたHTML、順次アップ中。
エラーが起こらないかどうかと、デザイン崩れの目視確認もしながらなんで、あんまり進んではないです。

GitHub Copilot

GitHub Copilotちょっとお試し中。
コミットメッセージ生成が便利かなと思ったけど、何でもかんでも「読みやすさのためのリファクタリング」扱いしてくる印象。

GitHub

見せられるのはこの2つだけなんですが、作り始めてから動きのないリポジトリを整理しました。
完全に開発終了して続きを作る気のないものはアーカイブして、一応やる気のあるものは課題を立てました。

私は開発をGitHubの課題を使って進めているのですが、開発初期で課題もへったくれもないものは課題立ててなかったんですよね。
そうしたら、課題がないので存在をリポジトリごとスルーしてしまい、課題が立てられる程度まで開発が進まないという悪循環…むしろ何の循環もしていなかったのです。
なので、具体的な課題はないけどやる気だけはあるぞという意思表示だけの課題を立てておいたわけです。
この課題を起点にして、本当に開発を進めたり、本当の課題を見つけて登録したりするのです。

ここでは見せられないプライベートリポジトリだと、「作る」っていうやけくそ極まる課題や、「このリポジトリ何だったっけ?」みたいなどうしようもない課題が続々生まれました。
結局何のリポジトリか思い出せないとか、やけくそになっても手の施しようがないとかだったら、諦めてアーカイブ行きです。

アンパンマンDBとGitHub Actions

アンパンマンDB(レンタルDVD収録見込み)

レンタルDVD収録見込みページの内部動作、微妙に変更しました。
あくまで内部動作だけで、今のところは表示内容は変化しません。
これを、アニメDB側にも表示できるようにしたいんですよね。
だから、逆引きできるようなデータ形式にしつつ、レンタルDVD収録見込みページ独自ではなく共通処理として切り出したのです。
アニメDB側も実はすでにほぼ出来上がっているので、明日辺りにはアップできそうです。

GitHub Actions(Today I Learned)

GitHub Actionsでエラーの時だけ特定の処理を実行する
GitHub Actionsで、テスト失敗時にもアーティファクトをアップロードするように設定したら、アップロードの成功によりテストの失敗がなかったことにされてしまって、テストの失敗に気付けず困っていました。
そこで使えるのが、steps.(ステップID).outcome
これなら任意のステップの成否を参照できそうなので、ジョブの最後にテスト成否を報告するステップを追加すれば、また気付けるようになりそうです。

ドラゴンクエスト10とNeoMuplとGitHub

ドラゴンクエスト10(おきがえリポちゃん)

エルドナ神の装束セット
おきがえリポちゃん ~ エルドナ神の装束セット ~ (2024/2/22)|目覚めし冒険者の広場
毎月の貸衣装。
和装にリボンの組み合わせですな。

エルドナ神の装束セット(後頭部)
頭にぴったりくっつく配置なので、髪にボリュームがあると埋もれてしまいます。

他の写真は以下から。
写真置き場「2024/02/27」

NeoMupl

Windows用ソフトウェア『NeoMupl』バージョン0.35.0を公開
リリースしました。
リリース内容としては、当初の予定通り。
ショートカット変更の件をREADMEに書き忘れていましたが、覚えていれば次期バージョンのタイミングで書き足します。

GitHub(Today I Learned)

Release 0.35.0 · mifumi323/NeoMupl
GitHubで自動的にリリースノートを作れるようになったのは便利。
今回はこの機能を特に考えずにコミットしていたので変な感じになっていますが、今後課題を立てるときはこの機能を意識すれば課題名としてもいいものになりそう。
「〇〇したい」じゃなくて「〇〇の機能を追加」とかね。

GitHub Actions

動くようになりました。
Composerのバリデーションは神経質すぎるところがあるので実行しないことにして、本当にやりたい自動テストだけにしました。
phpdbg使えなかったけど、普通にPHPUnitを動かすだけでカバレッジは取れました。
アーティファクトがばらばらのファイルじゃなくてZIPアーカイブしかなさそうなので、HTML出力したカバレッジレポートを見て回ることはできないけど、まあ手元でZIP展開すれば見られるのでこれはまあOK。
あとは…そう、もういらなくなったCircleCIとの連携を切るだけ。

GitHub Actions

CircleCIの自動テスト復旧より、GitHub Actionsに挑戦してみました。
今のところ、PHPのインストールはできているけど、Composerのチェックで引っかかって自動テスト本体までたどり着いていないようです。

アンパンマンDBとCircleCI

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

来週の放送情報。
カレー餃子ができるのか、餃子カレーができるのか。

CircleCI

ここTGWSの自動テストが動かなくなりました。
自動テスト自体の問題ではなく、セキュリティ関連で何か拒否されてテストが始まってすらいないっぽいです。
どうせ修正が必要になるなら、せっかくだしGitHub Actionsに移行してもいいかもなァ。

ゼルダの伝説 ティアーズ オブ ザ キングダムとFNチェンジャー2とドラゴンクエスト10と日記

ゼルダの伝説 ティアーズ オブ ザ キングダム

昨日は攻略途中で日をまたぎそうになって一言しか書かなかったので、昨日の分も含めて。


モンハンのラスボスみたいなツラしてますが、ストーリーの本筋に関わらない野良の強敵は日記では隠さず出す方針なので。
地底で、なんか闘技場っぽい場所があるなーと思って入ってみたら、グリオークの巣で、全グリオークの属性を併せ持つキンググリオークがいたのでした。
以前は別の場所で雷属性のグリオークにちょっかいをかけて即座に逃げたのですが、今回はそれなりに強い武器と、瘴気ダメージ回復のアイテムをたくさん持って来ていたので、挑んでみました。
前回で頭を弓で射ればいいのかなというところまではなんとなくわかったので、後はあの激しい攻撃をどういなすか、というところが焦点…だと思っていたのですが、案外一撃のダメージが少なかったので、守り方面はさほど大変ではなかったのでした。
ただ、ライネルとかと同じく、ブループリントで出したものの陰に隠れてやり過ごすみたいなことはできないようでした。
攻撃方面は、キースの目玉が八面六臂の大活躍!
最後は飛び上がったところを射落として、落下ダメージでとどめとなったのでした。
しかしこれ、戦い方はどの属性も変わらないみたいだし、全属性分のドロップアイテムがある分、こればっかり狩っていればいいのでは?


ゴロンシティのストーリーはまだ進めるつもりはないのですが、デスマウンテン登頂。
地図での様子から、山頂が深穴にでもなっているのかと思ったのですが、瘴気が噴き出しているだけで、火口はふさがっていました。
やっぱりデスマウンテンの異変も空に行くのかな?


地上絵探しも。
確認すべきポイントもわかってきたので、探索もスムーズになってきました。


で、昨日のメイン、水の神殿。
最初、興味本位でゾーラの里のストーリーを進めずに行ってみたら、神殿には入れたけどギミックが進行拒否して、それまでになってしまいました。
ちゃんとストーリー進めたら、入れました。
ダンジョンを進めて、ボスが現れたところあたりで、昨日は時間切れ。

日記を一言書いて日付が変わってから、ボス戦。
詳しいことは伏せますが、強くはないけど楽しいボスでした。

ゾーラの里のストーリーは、シド王子が(もう王子とは呼べないけど)相変わらず最高でした。

他の写真は以下から。ボスの写真もあるよ。
ゼルダの伝説 ティアーズ オブ ザ キングダム(2023/06/03)の写真
ゼルダの伝説 ティアーズ オブ ザ キングダム(2023/06/04)の写真

FNチェンジャー2

フォルダに対する処理(テストプロジェクトの自動ビルド設定調整) by mifumi323 · Pull Request #7 · mifumi323/FNChanger2
数年前に課題だけ建ててほったらかしだった件、やっと実装しました。
ついでに、CIビルドの設定も済ませて、masterブランチにマージするたびに最新のソースで自動的に実行ファイルが作られるようになりました。
書いていた悩みごとの1・8・9・10が、実質8の作業だけで完了するようになったのです。
GitHub Actionの結果ページに、Artifactsとして「Build Result」という名前で置いてあるので、正式公開前の開発中バージョンが欲しい人はここから一足先にダウンロードできます。

のんびりナマライザの自動ビルドも同じ方法でできそう。
こっちはもうちょっとアレンジが必要になりそうだけど。

ドラゴンクエスト10(ァォィョッュ)

クエド丘陵

  • クエスト「聖戦への導き/香りでたどる軌跡」をクリアした!
  • クエスト「万物を教え導く者/マスターを目指す者」をクリアした!
  • クエスト「聖戦への導き/星辰武王の最終試練」をクリアした!

ァォィョッュのレベル上げ関連のクエスト、一気にいくつか攻略しました。
クリアには至っていませんが、ガーディアン転職クエストも、ボスを倒すところまでは済ませました。

それぞれのボス戦は、「よわい」モードでもァォィョッュにとっては激戦でした。
NPCに「今回は弱くてよかったな」的な皮肉を言われたのですが、何の皮肉にもなっていない事実でした。
ブレス耐性100%の装備を持って挑んだのですが、それができてやっと戦いになるレベルで、物理攻撃や呪文の苛烈さで負けることもありました。
自分天地雷鳴士、仲間ホイミスライムで全部挑んだのですが、この実質3人パーティでも安定はしませんでしたね。
幻魔は、最終的に回復重視のカカロンかダメージ重視のバルバルーの選択となりました。
物理攻撃を軽減しないと始まらないこの戦いは、そういうこと一切してくれないクシャラミとドメディはあまり効果的ではなく、スクルトでこちらの防御力を上げてくれるカカロンか、特技の追加効果で敵の攻撃力を下げてくれるバルバルー、という選択です。

ガーディアン転職クエストでは、自分の防御を上げるより相手の攻撃力を下げる方が有効だったので、時短も兼ねて、バルバルーを選びました。
こいつはブレスより呪文メインだったので、呪文耐性60%の装備をそろえて、マジックバリアで100%を目指す方向にしました。
まあ、なぜかマジックバリアなしの60%でもジゴデインがノーダメージになったんですがね。
あとはガーディアン転職のためのおつかい、もとい、儀式を済ませればこのクエストも完了です。

他の写真は以下から。やっぱりボスの写真あるよ。
写真置き場「2023/06/04」

日記

今回、ゼルダもドラクエも、ネタバレに配慮してボス画像は伏せたわけですが、ボス戦の激戦ってやっぱり日記に喜び勇んで書きたいじゃないですか。
ということで、ネタバレを折りたためる機能を開発しようかと思っています。
本当はアンパンマンDBのために作ろうと思っていた機能ですが、同じシステムを日記でも使いまわしているので、あっちで作ればこっちでも有効になります。
イメージとしては、きらめけ!アイスの国のバニラ姫のページの折り畳みみたいな感じです。
これは無理やりタグを書いて実現していますが、果てしなく面倒臭いやり方なので、短時間で書いてしまいたい日記には徹底的に不適なのです。
楽に実装できるアイディアはすでに思いついているので、それをうまくコードに落とし込むだけ。

GitHub Actions

Update dotnet-desktop.yml ・ mifumi323/GitHubActionsWinFormTest@11fbb2a
自動ビルドできましたよっ!
ただ、アップロードしたアーティファクトが、ログインしていないとダウンロードできないようで。
リリースタグをつけてそれに添付とかできたら、CIビルドを(不安定とわかったうえで)自由にダウンロードしてもらえるようになるのかな、とか考えています。
無理なら無理で、とりあえず自動テストには使えそうです。
CircleCIはWindowsは使えないか、使いにくいですからね、Windows Server 2019 Datacenter&Visual Studio 2019 Enterpriseを簡単に無料で使えるというのは強いです。

GitHub Actions

調べていったら、GitHubからお勧めされるテンプレートが、昨日参考にしたものより新しいバージョンのようで。
まだ不明点があるので、すでに動いているプロジェクトにいきなり適用するのではなく、テスト用のリポジトリを作って試してみようと思います。
.NET Frameworkを使う場合と、.NET Coreを使う場合でも違うし、もちろんC#以外を使う場合も設定項目は違うわけです。