「アンパンマンDB(システム)」に関する日記(2)

<前 次>

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とドラゴンクエスト10

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

今日開発していたのはAPIを使う非公開ツール側だったのですが、なんかそれっぽいコードができたので、ちょっと調整してAPI利用サンプルとして公開してもいいかも。
ただまあ、今回作ったのはC#だけど、需要ありそうなのはPythonとかだよなぁ…。

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

砂塵にうごめかなかった大巨人
七不思議見に行こうと思ったけど間に合わず…!

必殺技と仲間モンスターの技が重なり何とも言えない迫力になっている図

  • クエスト「教えて! ミラクル整理術/やさしさに包まれて」をクリアした!

最近職人依頼時に装備一杯になること多いなと思ってたら拡張クエスト受けてなかった!
ということで、やってきました。

(ボスネタバレだよ)

お掃除マシン・白式にばくれつけん!

  • 【クエスト】「教えて! ミラクル整理術/やさしさに包まれて」お掃除マシン・白式をはじめて倒した!

いつもならバトルのあるクエストには一番レベルの高い天地雷鳴士で行くんだけど、今日はうっかりレベルの低いスティック僧侶でボス戦に突入してしまいました。
ァォィョッュの縛りでサポも連れていないので、頼れる味方は仲間モンスターのみ。
「よわい」モードで始めたし、仲間モンスターのアサツユは回復方面に強いホイミスライムなので、負けることはないのですが、とにもかくにも火力が足りない!
僧侶は回復役で、スティック装備だと完全に回復特化になるので、最大火力のホーリーライトをもってしても悲しいダメージしか出ません。
アサツユは神速メラガイアーとかの攻撃技も持たせているけど、それでも火力的には物足りない!
というわけで、すごく久しぶりに武器を捨て(比喩表現)、素手でばくれつけんを使って戦うことにしました。
それでも基本ダメージは微々たるものだったのですが、会心率が高いので、まあまあ頻繁にホーリーライト並みのダメージを出せたので、一応火力として貢献はできたはず。
回復役二人で火力頑張った結果、かかった時間は…!

21分!

普通ボス戦は2・3分で終わるものだし、苦戦してもだいたい5分とか10分。
気付いた時点で引き返して天地雷鳴士に転職してきたほうが早かったのでは…?

ドラゴンクエスト10(しろいコキン)

まさかこっちは忘れてないよな?と思って確認したら、忘れてました。
また今度受けよう。

ドラゴンクエスト10(ミフミン)

さすがにミフミンはとっくの昔にやっていました。
ただ、メガルーラストーン拡張クエストをすっかり忘れていたことが発覚したので、これもやっとかないと。

他の写真は以下から。
写真置き場「2025/08/14」

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

検索フォーム情報をJSONに出すようにしました。
例:https://tgws.plus/anpandb/anime.json?search=%E3%81%8D%E3%81%97%E3%82%81%E3%82%93&sort=-access
検索フォームに表示される情報をsearchプロパティに出しています。
それから、検索フォームと重複するsearch_query・sort・specified_item_idsプロパティは削除しています。
移行期間とかなしにいきなり削除しましたが、まあ使ってる人なんていないでしょう。

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

自分用ツールでアンパンマンDBの検索をAPI的に使う必要が出てきたので、使いやすいように改修中。
検索フォームに表示されている、ソートの選択肢とかも、JSONで出せるようにしたいんですよね。

アンパンマン日替わり紹介botとアンパンマンDBとドラゴンクエスト10

アンパンマン日替わり紹介bot


ちょっとわかりにくいですが、上の3枚が独立した画像で、下の5枚が1枚の画像にまとまっています。
16:9の比率に近付くようにうまいこと配置するようになっています。
これでまあ、まとめられても全体像が見えやすいかと。

もう一つ、本文が長すぎて2投稿に分かれそうなときに残りの本文を画像化して無理やり1つの投稿にまとめるというのも考えるには考えたのですが、昨日の本文短縮対応によって投稿が分かれるのが1年に1度10月3日だけになり、1年のうちの1投稿をけちるのはさすがに意味ないかと思って中止しました。

ということで、投稿数減らしをそこそこ見栄え落とさずにできるようになったので、明日から早速反映させます。
まあ、明日はもともと本文短いので節約の効果はないですけどね。

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

管理メモ | アンパンマンDB
管理メモのページ、更新日付がかぶった非数字IDのメモが表示されなくなるバグがあったので、直しました。
ちなみに今日の更新日付になっていますが、内部仕様の調整なので、あまり見るものはないかと思います。
一応、「つくりかけ」にストリクトクエリのページへのリンクを付けました。
もしかしたらルーズクエリも含むページにするかもしれないので将来URL変わるかもしれないですが。

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

幻の海トラシュカ2025
またちょっと行ってました。
ラグは昨日ほどじゃないし、スコアも上がったけどまだまだ。

他の写真は以下から。
写真置き場「2025/07/31」

ドラゴンクエスト10とアンパンマンDBとTgwsMark

ドラゴンクエスト10(全員)

Tカバーな水着&サニーボード
夏イベント『炎夏の海を駆け抜けろ!2』開催!  (2025/7/14 更新)|目覚めし冒険者の広場
夏イベント全員分やりました!
レース系の期間限定イベントはあまり積極的にはやっていないのですが、海のイベントは基本的に行くので、今回は行く方向で。
とりあえず全員2分10秒台は出せて、サニーボード手に入りました。

2025夏家具(ペンギンのぬいぐるみ / たゆたうクラゲの柱 / アイスクリームランプ)
家具も買いました。
でっかいペンギンかわいいね。

他の写真は以下から。水着は染色次第で化けるね。
写真置き場「2025/07/17」

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

キャラ数検索の件、リリースしました。

TgwsMark

最近から、細かい技術の話を日記に書くようにしたのですが、それに使っているTgwsMark、コードブロック機能がないんですよね。
だから自前でpreタグとかcodeタグとか書いてたんですが、そういうタグは認識しないので、段落記法と衝突してしまいます。
だから、コードブロック機能も作っちゃうべきかなーとか思っています。
あと、柔軟性を高める仕組みなんかも作れたら作りたい。

ドラゴンクエスト10とアンパンマンDBとSQL

ドラゴンクエスト10(しろいコキン)

バウギス

  • クエスト「竜と契約せし者」をクリアした!

しろいコキンも魔法使いと魔法戦士のレベル上げて竜術士になりました!
さすがに3回目なんでムービーはスキップしたんですが、見てなくてもクイズに正解さえすればいいんですね。

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

キャラ数検索、まだテストコード上でしか確認できていませんが、修正しました。
画面上で何パターンか確認してからアップしようと思います。

SQL

上記の問題の原因、SQLの条件句における型の不一致が原因でした。

((SELECT COUNT(*) FROM list_anime_chara1 WHERE list_anime_chara1.page_id = page_anime.page_id) + (SELECT COUNT(*) FROM list_anime_chara2 WHERE list_anime_chara2.page_id = page_anime.page_id) + (SELECT COUNT(*) FROM list_anime_chara3 WHERE list_anime_chara3.page_id = page_anime.page_id))=:p

こんなSQLを条件に入れていたのですが、この右辺の:pにPHPの整数を入れても、SQLiteの内部的な整数型とは一致せず、常時不一致扱いとなっていたのです。
左辺が単純な項だったら型が自動変換されて大丈夫だったんですが、サブクエリとかの複雑な式だと無理だったようです。
というわけで、以下のようなキャストを明示的に入れて、型を合わせるようにしました。

((SELECT COUNT(*) FROM list_anime_chara1 WHERE list_anime_chara1.page_id = page_anime.page_id) + (SELECT COUNT(*) FROM list_anime_chara2 WHERE list_anime_chara2.page_id = page_anime.page_id) + (SELECT COUNT(*) FROM list_anime_chara3 WHERE list_anime_chara3.page_id = page_anime.page_id))=CAST(:p AS INT)

アンパンマンDBと次期NeoMupl

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

キャッシュ更新高速化の第一段階は成功。
期待したほど爆速にはなってないけどそれでも体感で半分ぐらいの時間になっています。

それとは別に、キャラ数検索が動いていないことが発覚したので、今度はそっちの修正にかかろうかと思っています。
検索結果「キャラ数:6」 | アンパンマンアニメDB

次期NeoMupl

今考えてるのはこんなところ。

  • 様々な情報を表示できるように表形式にする
  • オンラインストリーミングに対応
  • DPIAwareness
  • 一応オープンソースにする
  • みんなが広く使うようなものは目指さない
  • プラグイン式みたいな高度な柔軟性は提供しなくていい
  • 映像や波形の表示はしない(引き続き音楽専用)
  • 一曲を複数の設定で再生できるようにする
  • 一時停止・再開対応
  • UIスレッドと再生スレッドを分離(UI操作中は音が途切れがちだった)

アンパンマンDB

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

また見に行ってたので。
ひとまず今書きたいことはあらかた書き終わったつもりだから、あとはDVDでじっくり確認できるようになってからかな。

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

キャッシュ更新があまりにも重いのでチューニング中。

ドラゴンクエスト10とアンパンマンDB

ドラゴンクエスト10(ミフミン)

バシっ娘シンリィ
ミフミンも七夕イベント終わり!

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

ほぼ自分専用ですが、DBID検索を付けました。

検索結果「パンマン dbid:chara,item,term」 | アンパンマンDB
こんな感じに、全体検索で「dbid:~」を指定すると、検索対象自体を絞り込めます。
例えば、「dbid:anime」ならアニメDBだけ、「dbid:anime,chara」みたいに対象をコンマ区切りすればそれぞれが対象になります。
一つだけならすぐ下にあるプルダウンの選択肢で指定したほうが手っ取り早いですが、複数指定はこの検索語による指定だけの機能です。
また、検索語なので、「-dbid:anime」みたいに否定を伴って使ったり、「(dbid:anime しょくぱん) OR (dbid:chara カレーパン)」みたいに組み合わせて使ったりもできます。

アンパンマンDBとアンパンマン日替わり紹介botとふにゃ1

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

アンパンマン音楽DBの単曲リンク削除しました。
Amazonは特定の曲を選んで再生すると関係ない曲がランダムに再生されますからね。
単曲としては意味がないのです。
紹介botの音楽紹介も同様にリンクを外しています。

アンパンマン日替わり紹介bot

深夜0時のシステム情報の投稿を2日に1回から毎週土曜日に変更しました。
投稿回数制限が厳しくなってしまって、ワンドロとかにも影響出てますからね。
特に何の紹介もしていないものにかける回数は減らせばいいのです。

ふにゃ1(開発状況)

AIのコードレビュー待ちしてる間に忘れちゃってた。
ということで、以前実装したやつのマージ。
これのリリースで今度こそ最終版になるはずだから、ふりーむとかにも公開してもいいかもしれない。

ふにゃ1とアンパンマンDBとアキタラヤメル[ただの乱数表]

ふにゃ1(開発状況)

余計なメニュー非表示にしました。
完全に消し去ってもよかったんですが、まあせっかくなのでね。

データ消して動作確認してたら発見したバグも修正。

このあたりはついでのわりとどうでもいいやつ。

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

キャッシュ更新システムが不安定だったのでいろいろ頑張ってました。
時間がかかるのが悪いのか?キャッシュが競合しているのか?
時間がかかること自体は、システムがずいぶん複雑化してきたので仕方のないところです。
ただ、時間がかかったときの対応がまずかったようです。
タイムアウト直前になると最後にもう一回を試みて百回分の時間をかけたり、競合発生時の競合解消待ちでさらに新たな競合が発生したり、あきらめの悪さが裏目に出ている感じでした。
ということで、タイムアウトが迫ったら可及的速やかに中断、競合が発生したらそれは即座に諦めて後に回す、といった対応を取りました。

アキタラヤメル[ただの乱数表]

世の中に乱数生成サービスは多々あるものの、オプション設定が必要だったり、乱数に必要ないアニメーションをころころ回したりとか、とにかく余計なものがついてるのが多いんですよね。
乱数の出すまでの手数が数手とはいえかかったり、一瞬で生成した乱数の表示を1秒待ったりとか、ぱっと見はよさげでも、繰り返し使ううちに小さなストレスがたまりがちでした。
乱数なんて最終的には解釈次第なんですから、凝ったものを作る必要などないのです。
大昔からある紙の乱数表のように、そこに乱数が並んでさえいれば、好きなように数値を取り出して好きなように使えばいいのです。
そう考えて、今回ただの乱数表を作りました。

アクセスすれば、もうその瞬間に乱数はそこにあります。
0から9の数字がひたすら並んでいます。
1から100の乱数が欲しければ、左上から2桁ずつ取って、00を100とみなせばよいでしょう。
1から6の乱数が欲しければ、0789が出たマスを飛ばして使えばよいでしょう。
コインの表裏の代わりとしたいなら、数値の偶奇を当てはめれば完璧です。
単に1桁ずつ欲しければ、クラシックな紙の乱数表みたいに、目をつぶってペンで一点を指してもよいでしょう。
暇で暇でしょうがない日は、各数字の出た回数を数えて確率の偏りを厳しく審査してもいいかもしれません。

乱数表は自由です。
必要なものは十分にあります。
それでも足りないなら?
更新ボタンを押せばよいのです。

アンパンマンDBとfunyakとドラゴンクエスト10

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

来週の放送情報。
映画公開と同日ですが見事なまでに通常放送ですね。

アンパンマンDB(つくりかけ)

管理メモにつくりかけのページ作りました。
開発中の機能を一部試せる…かもしれません。

funyak

GitHub Actions対応のほうは全面的にAIに任せてみたんですが、なんか必要以上に大掛かりな工事やっちゃってますねぇ。
最初のコミットは良さそうだったけど、そこで起きたエラー解消のために全面的に修正を加えようとした感じ。
レビュー機能使って修正依頼したつもりだったんだけど、そっちに関してはAIは聞いてないみたい。
やっぱ自分でやるしかないかぁ?結局人間かぁ?

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

  • 獣頭将軍スレイヤーの称号を得た!

プチじゃないギュメイ将軍、倒しました!
ァォィョッュはプレイヤーとはパーティーを組まず、サポも雇わない縛りで強敵は厳しいので、今まで倒してなかったんですよね。
戦った覚えあるのになァ、って思ってたら、3月に挑戦して負けてました。
メイン職の天地雷鳴士はあのころから特に強化しておらず、竜術士のパッシブが乗っただけですが、今回は勝てました。
既に討伐済みだと思って写真撮ってなかったし、特に作戦や対策などもないので、戦いの内容に関しては特に語ることなしです。
しいて言うなら、序盤攻撃がぬるかったので油断していたら、中盤で盛大に崩れて盾ガード頼りの運ゲーになったことぐらいかな。
そっからは心を入れ替えてちゃんと戦ったので何とか勝てました。

アンパンマンDBとGit

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

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

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

Git

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

アンパンマンDB

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

来週の放送情報。
このタイトルだけど初登場じゃないよ。

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

コメントに関するちょっとした機能実装進行中。
この機能、あんまり便利にしすぎると対戦型SNS化してしまうので、いろいろと限定的にはなりますが。

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

記事削除実装完了。
基本的に過去の記事に使うことはあまりないと思いますが、うっかり重複記事を立ててしまったときなんかには使うことになるかと思います。
作ろうと思い立ったのが3月だったからだいぶたってんな。
やっぱもっとどんどんスピーディにいろいろこなしていきたいですねぇ。

PHPとCSSとアンパンマンDB

PHP

[PHP]DateTimeのtimezone_typeって何だ? #PHP - Qiita
記事投稿しました。
アンパンマンDBで日時の出力をDateTimeそのままjson_encodeしてみたら見たことないプロパティが出て来たんで不思議だったんですよね。
で、json_encodeに限らず出てくるので、題材としては変数の中身を見るためにより広く使われるvar_dumpのほうを挙げた次第です。
それはそうと…

【PHP】Qiita デイリーいいね数ランキング【自動更新】 #LGTM - Qiita
なんか1位になってました。
他誰もいないけどな!
鶏口となるも牛後となるなかれということわざがあるけど、鶏どころか単細胞生物ですな。

CSS

古いスタイルシート整理してました。
レスポンシブ対応前の古いページ用の古いスタイルシートもまだ残しているんですが、さすがに数が少なくなってきたので名前を変えたり。

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

コメントに関するちょっとした機能実装中。
関係あるのは一部の人に限られますが。

アンパンマン最新情報botとアンパンマンDB

アンパンマン最新情報bot


ちょっとトラブルあったけど最新っぽい情報群との連携完了。

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

来週の放送情報。
再放送だけど、3ばいメロンパンナは印象に残っています。

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

最新っぽい情報群SP | アンパンマンDB
久しく動いていなかったレンタルDVDとほうそうのおしらせの最新情報が取れるようになりました。
そして、アンパンマン最新情報Botとの連携は、アンパンマンDBで直接やるのではなく、RSS経由でTGWSAdminから行うようにしました。
RSSのほうは更新時刻もちゃんと出るようになっています。

アンパンマンDBとドラゴンクエスト10

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

最新っぽい情報群のRSS配信、出力側はできました。
https://tgws.plus/anpandb/news.xml
書き込み側で時刻の情報が渡ってきてないので、今のところは全部9時(UTC0時)となっています。
ここをいじってしまうと今度は通常表示側に影響が出そうなのでね。
そこんとこどうにかすれば、RSS配信の仕組みはいったん完成となります。

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

ゲーダム

  • クエスト「海賊と海神の秘宝/戦いの残痕」をクリアした!
  • クエスト「海賊と海神の秘宝/おたからの地図」をクリアした!
  • クエスト「海賊と海神の秘宝/暴虐の海賊団」をクリアした!
  • クエスト「海賊と海神の秘宝/共同戦線」をクリアした!

海賊の職業クエスト進行。
実はァォィョッュ、ボスカードをテリーに押し付けるために迷宮を高速周回すべく、一瞬で負けられるように海賊だけ弱いままにしていたんです。
しかし、前回の、つまり7.3あたりから、負け周回では出てこなくなった感じがしていたんで、もう弱いままでいる理由がなくなったので、強化を始めた次第です。
クエスト自体は他のキャラで攻略済みなので、ムービーを飛ばさない程度にストーリーを楽しみつつ、周辺人物にまで聞き込みに行かない程度にはさくさく進行。

(ボスネタバレ)

ハルバルド海賊団ハルバルド船長
こかすぞこかすぞ!
弱いままとはいえ他職パッシブもあるし、ホイミスライムのアサツユは普通に強いままだし、苦戦する要素はなかったのです。

残る海賊クエストはあと一つ。
問題を解決した後のすっきりとしたグランドフィナーレとなるはず!…覚えてないけど。

他の写真は以下から。
写真置き場「2025/05/26」

<前 次>