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

<前 次>

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

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

最新っぽい情報群のRSS配信作成中。
アンパンマン最新情報botは最新っぽい情報群と連動しているんですが、これ、最新情報登録時に同時にツイートしているんですよね。
昔はこれで問題なかったんですが、TwitterAPIの制限がきつくなってしまって、情報登録のたびにツイートするのはつらくなってきたのです。
なので、いったん情報をためておいて、いくつかの情報を1ツイートにまとめて投稿して投稿数を節約したいのです。
速報性は落ちてしまいますが、あくまで最新“っぽい”情報群ですからね。

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

こっそりひっそり特定の条件下の検索を高速化しました。
一致度順検索はそれ自体はいい感じの順序にしてくれるのですが、動作が重い欠点がありました。
順序を変更した場合、並び順はほぼ指定された順序で固定され、一致度は計算してもほとんど結果に影響を与えません。
なので、順序を変更した場合に限り、一致度順を考慮しなくなり、従来の軽い検索に戻ります。
このあたり細かく制御できるこだわり検索も実装してみたいなァ。

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

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

来週の放送情報。

アンパンマンDB(クイズ)

ログイン状態でクイズの一覧ページに行くとエラーが起きる不具合がありました。
修正しました。
一応アップ前にはテスト環境で主要なページをクロールさせてエラーが出ないか確認していたんですけど、クローラーはログインしないので気付けていませんでした。

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

表示のロジックもできて、全ツイート履歴のリクエストも通り、あとはデータを取得してアップするだけ。

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

アンパンマンDB(みんなのタグ)

みんなのタグの一致度順ソートリリース。
懸念していたパフォーマンス問題も今回はありませんでした。

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

ドワーフたち
5月4日(みどりの日)は「ドワーフの日」! (2025/4/28)|目覚めし冒険者の広場
ドワーフの日なのですが、自分はドワーフキャラいるので種族変更は使わずにプレイ。

いつものコスミン

  • クエスト「オトナのコスメティック★」をクリアした!

ガテリア号のイベントもこなして、ついでに別のクエストもクリア。
同じ部屋にドワーフの日の種族変更に来たプレイヤーも多数いました。

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

<前 次>