「アンパンマンDB」に関する日記(17)

アンパンマンDBの、主に開発に関する日記。

<前 次>

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

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

来週の放送情報。
ドリアン王女も輝いてしまうのか。

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

竜王のよろいセット
おきがえリポちゃん ~ 竜王のよろいセット ~ (2024/5/22)|目覚めし冒険者の広場
毎月の貸衣装。
今月はいかついフルフェイスの鎧ですね。
こんな強そうでも単なるおしゃれアイテムなので守備力は1。
後ろで飛んでるドラキーは貸衣装とは関係なく、竜王イベントの報酬です。

竜王のよろいセット
女性用は太腿がはだけています。
どうして顔までしっかり守るのに脚の守りをおろそかにしちゃうの!!
もともと守備力1だけど!!!!

竜王のよろいセット
最近いかつい斧も買ったのですが、偶然にも雰囲気が似ていて、違和感なくマッチしていました。

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

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

死去に伴う更新です。

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

シャントットの像・庭
【2024再演】FFXIコラボイベント「シャントット博士来たる」 (2024/5/15)|目覚めし冒険者の広場
コラボイベント。
FFXIまだ続いてたんだ…。
イベント内容は以前のままで、プレイヤー陣営だけ強さインフレが進んでいたので、マンドラゴラ強も秒で消し飛びましたね。
新報酬のシャントット像は、とりあえず高笑いさせときました。

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

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

リストとペアリストのストリクトクエリ、旧仕様を当面残すため、内部仕様を変更しても影響を受けにくい仕組みを作っていました。
この仕組み、将来的には新仕様に一本化するタイミングで消すことになるんですが、これやっとかないと新仕様の実装が面倒になりますからね。
で、この2つを同時に作業進めているのには訳があって、まあ想像はつくと思うんですが、内部的には似たようなことをやっているんですよね。
リストは単に文字列のリスト、ペアリストはA→Bみたいな文字列の組み合わせのリストで、検索では、それぞれの文字列に対して検索をかけられるだけでなく、アンパンマンDB内のどの記事にリンクしているかでも検索できます。
「登場作品を探す」で使っている検索ですね。
これ、まあまあ無理やりな感じで共通化しているのですが、新仕様ではもうちょっといい感じに共通化しようかと思っています。

アンパンマンDBとPHP-CS-Fixer

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

リストの現行のストリクトクエリのテストを作成。
新記法にする前に、内部処理を変える必要があって、旧記法でも同じ内部処理を使う必要があるので、内部処理を変えても旧記法が通用することを確認するためのテストが必要なのです。

PHP-CS-Fixer(Today I Learned)

PHP-CS-Fixer/PHP-CS-Fixer: A tool to automatically fix PHP Coding Standards issuesには、ドキュメントコメントでもないくせにドキュメントコメントぶっているただのコメントを本当のただのコメントに戻す機能があります。
/** ただのコメント *//* ただのコメント */

しかし、/** @var ADBValueList $adb_value */みたいに、ローカル変数の型を指定しているコメントまで、ただのコメント扱いされてしまいます。
Intelephenseでは、ちゃんとローカル変数のドキュメントコメントも認識してくれるので、PHP-CS-Fixerにぶち壊されると困るのです。

そこで使うのが以下のオプション。

Rule phpdoc_to_comment - PHP Coding Standards Fixer
ドキュメントコメントをただのコメントに戻す処理の制御ができます。
今回の件なら、ignored_tagsオプションにvarを入れれば、@varのドキュメントコメントだけは見逃してくれるようになります。

アンパンマンDBとdotnet

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

来週の放送情報。
再放送ですね。

dotnet(Today I Learned)

dotnet build コマンド - .NET CLI | Microsoft Learn

ソリューションでこのコマンドを実行するときに --output オプションを指定すると、出力パスの不明なセマンティクスが原因で、CLI から警告 (7.0.200 のエラー) が出力されます。 このオプションは、ビルドされたすべてのプロジェクトのすべての出力が指定されたディレクトリにコピーされるため、この --output オプションは許可されません。これは、複数のターゲットを持つプロジェクトと、直接および推移的依存関係の異なるバージョンを持つプロジェクトと互換性がありません。 詳しくは、「ソリューション レベルの --output オプションがビルド関連コマンドで無効に」を参照してください。

dotnet buildコマンドを--outputオプションと一緒に使うと、出力先を変えられるわけですが、プロジェクト名を指定しないでこのオプションを使うと、ソリューション内に複数あるプロジェクトが全部同じディレクトリに出力されて、全部交ざっちゃって困るよねって話。
実際には、エラーで止まったりせず、警告を出して指定された出力先に出力されるようです。

アンパンマンDB

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

ストリクトクエリの新記法、リストとペアリストの件が全く進まないまま、エイリアスと個人メモが手付かずなのが発覚しました。

それはそうとして、画像のシステムを変更することを考えていて、ファイル名のつけ方をいい感じに思いついたので、試しに実装してみました。
まだ全面的に適用しているわけではないので、一般ユーザーに見える場所では登場はしていないのですが。

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

これまで新機能を実装するたびに「プレビュー1」から数字を上げてきていたのですが、毎度毎度これをやっていると細かい改良がだるくなるので、「プレビューN」で一本化しました。
もう細かい機能実装は事前にも事後にも告知なく随時リリースしていきます。
プレビュー版って本来そういうことですからね。

あと、みんなのタグの管理強化の準備の実装の準備を実装したりして、管理機能自体は別にまだ強化してません。

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

ストリクトクエリの新記法、単に冗長な記述を取り除くだけの形で、エイリアス、真理値(ON/OFF)、択一カテゴリ、複数カテゴリ、日付、数値、読みを対応しました。
残るは、リスト、ペアリストだけです。
この2つは、結構大きめな拡張を予定していて、旧記法を当面の間残すことを考えると、旧記法も中身を新記法と同じにする必要があります。
この辺りはさすがにちょっと大変になるかも。
あと、新記法の対応が完全に終わってからになりますが、ストリクトクエリの説明ページも作ろうかと思っています。

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

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

ストリクトクエリの件、みんなのタグ、一行テキスト、複数行テキスト、タイトル、商品単体リンクの項目について、実装完了しました。
旧ストリクトクエリも当面の間は使えるようにしますが、使われてなさそうなら一定期間後にこっそり廃止します。
これで残るは、エイリアス、真理値(ON/OFF)、択一カテゴリ、複数カテゴリ、日付、リスト、ペアリスト、数値、読みだけとなりました。
…いや、多いな。

ドラゴンクエスト10

魔法の迷宮ボスモンスター「タイムマスター」登場! (2024/5/2)|目覚めし冒険者の広場
タイムマスター実装!

『おでかけ超便利ツール』タイムマスターリリース記念スペシャルキャンペーン! (2024/5/2) |目覚めし冒険者の広場
タイムマスター実装記念!

キャンペーンはタイムマスターと関係ない福引にも適用されるので、お出かけ便利ツール福引引きました。
今回は、リースブランコプリズムとしぐさ書・怒り心頭が当たりました。
写真撮っときゃよかったな。

アンパンマンDBとFNチェンジャー2

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

ストリクトクエリ、独自実装の方向で作ってます。
「:」で分割する方向性はそのまま。
分割内容に「:」を含みたい場合は、「\」でエスケープ。
分割内容に「\」を含みたい場合も、「\」でエスケープ。
例えば、「#test:test」を検索するストリクトクエリは、「user_tag:+:test\:test」になります。
エスケープしていない場合は、正しく解釈できないので、「user_tag:+:test:test」は無効です。
この分割ルールは早々にできましたが、分割結果をどう使うかっていうのは項目の種類ごとに実装が必要なので、そっちはまた追々ということで…。

FNチェンジャー2

今更ながら、ウィンドウ最下部についているプリセットの読み書きUI、何の説明もないのでわかりにくい気がしてきました。
自分用ツールなので分かりにくくても私には支障はないのですが、仮にもみんな向けに公開しているわけですから、一応改善はしておいたほうがいい気がしてきたので、課題立てておきました。
実はこう見えてOSSなので、コントリビュートしたい人は作ってみてもいいんですよ。

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

ストリクトクエリの件、区切り子じゃないコロンをどうするかでちょっと悩んでます。
str_getcsvは区切りとして扱わない区切り子を考慮してくれますが、そのためには「"」など囲み記号が追加で必要になるんですよね。
単なるCSV(ここではCharacter Separated Values)であればそれでいいんですが、アンパンマンDBの検索構文では、ルーズクエリ・ストリクトクエリ両方に共通する文法で、スペースや「"」を含む単語は「"」で囲むという仕様があって、クオートの仕様がぶつかってしまいます。
一応ぶつかったところで、どちらにもエスケープ処理はちゃんとあるので、「"」で囲んだものを「"」でエスケープして「"」でさらに囲むみたいなことをすれば、不具合なく取り扱えるはずですが、ちょっとさすがにややこしいかなと。
ストリクトクエリの囲み記号を「"」以外にするか、そもそもstr_getcsvを使わずに完全に独自仕様にするか…。

あと、ストリクトクエリをパースするのとは逆に、ストリクトクエリを構築する機能もアンパンマンDBにはあるんですが、str_getcsvの逆をやる関数が実はPHPには今ないんですよね。
CSVの構築にはfputcsvがありますが、これはファイルに出力されてしまいますし、末尾に余計な改行も追加されます。
多分どうにかする方法はあるとは思うのですが、そこまでしてPHPの標準関数使うべきかな…と思ったり。

やはり独自仕様にする…かなぁ。

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

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

来週の放送情報。
カッパチーノは21世紀に入ってから登場したメンバーの中ではかなり好きなほうなので、楽しみであります。

ドラゴンクエスト10

毎月10日はDQXで遊ぼう! ~DQコスプレパーティー2024~ (2024/5/1)|目覚めし冒険者の広場
テンの日。
DQコスプレ装備なんて持ってないけど冷やかしで見に行くだけ行ってみようかなと思ったら、人が多くて重すぎて写真も撮らずに退散してきました。

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

  • 【コイン】プチドラゴンをはじめて倒した!

テンの日で渡されるカードをテリーに押し付けるために個人的に毎月恒例の魔法の迷宮周回していたんですが、道中スキップのために入れたプチドラゴンカード、今日初めて使ったっぽいです。
まさか初めてだったとは思わず、こちらも写真は撮っていませんでした。
ァォィョッュはブレス耐性100%なんでドラゴンの攻撃ほとんどスルー出来ると思ってたんですが、「息」と名の付かない火では普通にダメージを受けました。
危ないというほどの場面はなかったけど、予想外のダメージ受けたなァ。

アンパンマンDBと日記

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


善は急げで+-つけてみました。
しかしこうして見てみると、一行が長くなって折り返された時の見せ方にまだ改良の余地がありそうですね。

関係ないですが、検索のストリクトクエリもいくらか改良を考えています。
一般ユーザーにも教えている範囲では、みんなのタグの「user_tag:user_tag:○○:○○」があるんですが、最初の「user_tag:user_tag」の部分が見るからに冗長ですね。
本当は最初のトークンと次のトークンは意味が違っていて、最初が項目名、次はそれをどう扱うかというインターフェース指定なんですが、みんなのタグを含め、インターフェースを複数持つ項目はないから、実は項目ごとにインターフェースはすべて固定なのです。
なので、この冗長性を排除したいというのが一つ。
第二に、これは実用上ほぼ問題ないんですが、「○○」の部分にコロンを入れられないという地味な問題もあります。
あと、第三として、リスト項目をより細かい条件で検索できるようにするといった、純粋なグレードアップもしたいところですが、ストリクトクエリのトークン数は現状固定なので、まあまあ難しいのが現状です。
このあたり、第一の冗長性は当然廃止するとして、第二・第三の問題は、str_getcsvを使えばいい感じにトークンに分解できると思うので、これでトークン数可変で処理するようにすれば、まとめて解決できるんじゃないかと思っています。

日記

たまーに無題のまま日記投稿しちゃうことあるので、投稿前に無題チェックを入れるようにしてみました。
シンプルにJavaScriptで題を判定してconfirmしています。

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

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

来週の放送情報。

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

そんなの絶対ムリーズ
しろいコキンもモンスターバトルロード上限解放してみようかなと思ったんですが、装備とかスキルとかいろいろひどい状態で、とりあえずスキルとバッジだけどうにかしてチャレンジしたものの、負けてしまいました。
やはり装備をいいのに入れ替えるか。
メンバー全員、防具は共用できるので、武器より防具に金かけたほうがよさげ。
とはいえ、武器も結晶用流用とか季節イベント用の最低性能のやつとかだったので、こっちも金かけすぎない程度には新調します。

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

コメント周り、データベースからとってきたままの連想配列で持ちまわしていて、ちゃんとしたコメント用の型がなくて不便だったので、新たに型を作っています。
既存のシステムは連想配列前提で組まれているのでそれを新しい型に置き換えていくのは、それはそれでしんどいのですが、できてしまえばだいぶ扱いやすくなる予定です。
内部的な処理の都合なので、一般ユーザーにとっては特に変わらないですけどね。

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

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

映画サントラと同日発売のDVD情報記入しました。
「みんな大好き!?ばいきんまん」収録の『ばいきんまんとマジカちゃん』は同じタイトルで2つあるのですが、今のところどっちなのか特定できる情報がないので、曖昧リンクのままにしてあります。

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

地上に現れた双竜
モンスターバトルロードアナザーE開放。
昇格試験相手の地上に現れた双竜は、ドラゴンの見た目通りブレス攻撃が苛烈なのに加えて、亜空間判定の理不尽広範囲なテールスイングが強烈な相手。
なのに、ブレス対策が全くせず、物理対策も大してできてない状態で挑んでしまい、ァォィョッュのとき以上にひどいゾンビゲーになってしまいました。
今回ばかりはいったん退いて対策してから仕切り直しかなと何度も思ったのですが、なんかァォィョッュのとき以上にギリギリで何度も踏ん張ってくれて、どういうわけか一発クリアできてしまいました。

他の写真は…残り一枚しかないのでここで出しちゃえ。

地上に現れた双竜の赤い方
片方倒して余裕ができて、ついでに必殺技でマヒも入ったので撮れた写真です。

ゴジラxコング 新たなる帝国とアンパンマンDB

ゴジラxコング 新たなる帝国


映画『ゴジラxコング 新たなる帝国』公式サイト
見てきました。

(ネタバレなんかそうじゃないんかよくわからん感想羅列)
  • 既にある帝国じゃんって思ってたら結局新たなる帝国だった
  • 歯が痛けりゃ敵のテリトリーだとか細かいこと言ってらんないよね
  • パワードスーツゴリラはどう考えても強い
  • 死亡フラグを即座に回収するおじさん哀れ
  • ゴジコンより前は見てないからわからんのだけどモスラはゴジラの何なの
  • ちっちゃいサルは赤の他人だったのか
  • 無重力大怪獣バトルはすごいけど何が起こってるのかわからーん
  • シーモくん裏ボス枠かと思ったら被害者だった
  • ゴジラもコングも加害者でも被害者でもなかった以上、手を貸すだけの決着は納得
  • ゴジラが気軽に世界旅行してる感じ、なんかいい
  • ジア(コングと話せる女の子)のラスト、日本のゴジラだったら家族愛をみっちり描写してたやつ

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

今年の映画サントラ情報、記入しました。
『勇気りんりん』が『勇気リンリン』になってるのが気になりますが、公式サイトにもAmazonにもそう書いてあったので表記を合わせてます。
正式な曲目発表時には直ってるといいんだけど。
あと、今までは特典なしの商品で記事を作って特典ありの商品リンクを参考に置いておく形にしていましたが、特典なしを優先する利点が特にないように思えたので、今回は特典ありのほうで記事を作っています。

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

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

再放送情報半自動記入、真っ当に頑張って実装して、いい感じにできました。
これで、来週の放送情報に関しては抜かりなくできたわけですが、過去回の公式サイトのURL変更に追随するのはまだ手動なので、これも半自動化したいところですね。
実は過去回追随機能も入り口まではできていて、中身未実装の今は、「修正なし」を返すようになっています。

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

  • クエスト「ウワサのどうぐかばん工房/かばんを持てない者たちへ」をクリアした!

しろいコキンも道具袋カツカツなので、拡張しました。

徒弟ティナナ

  • クエスト「すべての職人を総べる者/おいしく焼きしめて」をクリアした!

本当はモンスターバトルロードの上限解放をしようと思っていたのですが、転生後にスキルを選んでいなくて弱い状態になっていたので、別のクエストにしました。
アストルティアが経済方面からもピンチになっているという話で、バザーで一部素材が高騰している事実を引き合いに出して、今素材屋で安い素材も同じことになるぞとのことでした。
まあ、ガタラの素材屋で売ってる宝石類は元が安すぎるんで、ある意味適正価格になりそうな気はしますが。

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

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

猛獣の道着セット
おきがえリポちゃん ~ 猛獣の道着セット ~ (2024/4/22)|目覚めし冒険者の広場
月例貸衣装。
キラーパンサーモチーフですな。
普通に装備として武闘家あたりに来てもおかしくなさそうなデザインです。

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

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

来週の放送情報。
再放送ですな。

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

で、再放送の情報は手動記入していたのですが、毎度毎度のこととなるとめんどくさいわけです。
それに、再放送は不意に来るので、新作か再放送かの警戒は、たとえ新作の時であっても必要になります。
警戒を怠って再放送を新作と間違えた日には、普段やらないかなり面倒な修正作業が発生します。

さすがにそれはしんどいなと。
新作のデータ記入は半自動化できてるんだから、再放送もそうしたいなと思うわけです。
ということで、再放送判定並びに記入を自動化するシステムを作っています。
本当は今日のデータ記入に間に合わせるつもりだったのですが、なぜか手間取ってしまって、まだ実装は途中です。
まあ、テスト用の今週の予告データは取得できてるから、明日には実装完了するかな。

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

目立っておかしなことをする特定個人はいるようなので、タグ新規作成だけでなく、投票にも制限を設けようかと思っています。
とはいえ、まともな投票をすることもあるわけで、完全禁止みたいなことはしたくないなと思っています。
なので、何パターンか作ってみて、状況に応じて付け替えるのがいいかなと考えています。
一応、制限タイプを指定できる仕組みまでは作っています。

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

DVDがレンタル開始されたので、正確な情報を記入しました。
『ジャムおじさんとアンパンマン』がイレギュラーで入り、その代わりに、『あかちゃんまんとおやこどんちゃん』『うなどんまんとポッポちゃん』抜けた形になります。

<前 次>