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

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

<前 次>

アンパンマンDBとTGWSAdmin

アンパンマンDB

「ドロリンとバケ〜るカーニバル」の作品情報を更新
キャラ「フワリー」を更新
映画のこと、書いてきました。
で、書き方で昨年の映画を参考にしていたら、昨年の映画のヒロインの情報が全然書けてなかったので、ちょっと追記しました。

TGWSAdmin

スマホで撮った縦長画像がうまく処理できていなかったので修正しました。
以下のサイトに、やりたかったことそのままのサンプルがありました。

EXIFの情報に基づいて画像を回転する - smdn.jp

PropertyItemsを見て回転、ですね。
サンプルは3種類の回転しか対応していなかったので、反転の方も対応して取り入れてみました。

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

それいけ!アンパンマン ドロリンとバケ〜るカーニバル

観てきました。
詳しい感想とかは後日アンパンマンDBにでも書きます。

アンパンマンDB

「ゆず姫とヨーカンマダム」の作品情報を追加
「ビクビクちゃんといなりずしのみこと」の作品情報を追加
来週本放送分記入。
来週からまた通常回ですね。

ドラゴンクエスト10

森林警備隊の制服セット
おきがえリポちゃん ~ 森林警備隊の制服セット ~ (2022/6/21)|目覚めし冒険者の広場
月例貸衣装。
明日だと思ってぼんやりしていて忘れるところでした。
自然を愛し自然を守る森林警備隊の制服だそうです。
私の場合、うまのふんを愛しうまのふんを守る馬小屋警備隊ですね!

写真置き場「2022-06-24」 | ミフミンのDQ10メモ

ドラゴンクエスト10とアンパンマンDBとみんなのタグ

ドラゴンクエスト10

ゲーム内資産5000万ゴールド突破。
レンダーヒルズまで折り返し地点です。
まあ、真面目に金策やっている人なら結構すぐ貯めちゃうらしいですが。

アンパンマンDB

Twitterのハッシュタグのページを更新
いよいよ映画公開が明日に迫ったということで、「#映画33作目も公開だし好きなアンパンマン映画を3つあげる」追加です。

キャラ「カマンベールくん」を追加
やっとカマンベール回見たので。

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

「逆引き編集」というアイディア。
現状は、記事を選んでから、タグが当てはまるかどうかを次々投票する仕組みですが、それとは逆に、最初に一つのタグを指定して、それに当てはまる記事・当てはまらない記事を次々選んでいくという考え方です。
具体例で言うと、「女」というタグを選んで、こいつは女だから「+」、こいつは男だから「-」と次々入れていく感じです。
検索に役立てるには、一人のデータが充実するより、みんなのデータが少しずつ出そろった方がいいですからね。

GitHub CopilotとアンパンマンDB

GitHub Copilot

GitHub Copilot · Your AI pair programmer
コーディング補助システムですな。
ペアプログラミングのように、人が最初のコードを書いて、AIが続きを書いて、それを人が手直しして、という作業になるようです。
Visual Studioでもコードの続きを提案してくれる機能があるのですが、それをもっと大掛かりにしたようなイメージですね。
無料体験もあるようですが、その場合でも手続きが必要になるようなので、今のところ始めてはいません。

アンパンマンDB

昨日のやつ、キャッシュがあるときは24時間ごとにキャッシュ更新するというプログラムが、キャッシュがないときにしか働かないようになっていたのが原因でした。
なので、一度間違ったキャッシュを取得してしまうと、それをずっと表示し続けるようになっていたのです。
本来は、PA-APIの使い方として、24時間に一度更新しなければならないのですが、それもできていなかったようでした。

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

ドラゴンクエスト10

バージョン6.2の情報が出たようです。
とりあえず、私に大きな影響があるのは職業&職人レベル上限解放かな。
流浪のキャラクターとかの緩和もありがたいかな。

アンパンマンDB

最新の商品画像が取得できていなかったようなので、応急処置で無理やり差し替えました。
バグってるようならなおしとこう。

アンパンマンDBとPHPとVoidolとInternet Explorer

アンパンマンDB

Twitterのハッシュタグのページを更新
「アンパンマンポテト」を追加しました。
「アンパンマン」タグで検索していると、ちょくちょくおいしそうなポテトの写真が出てくるので。

PHP(Today I Learned)

PHP: プロパティ - Manual
プロパティ自体は昔から使っていたけど、8.1からはreadonlyが付けられます。
最初に代入した値以外に変更できなくして、想定外の変更によるバグを防ぐ、イミュータブルを実現できるというやつです。
で、もう一つ…

PHP: コンストラクタとデストラクタ - Manual
8.0から追加されたコンストラクタのプロモーション機能と組み合わせると、コンストラクタを書くだけで、最初にデータを全部受け取って保持するイミュータブルなクラスが簡単に書けてしまうというわけなのです。

まあ、今開発しているものは、ミュータブル(変更可能)なことに意味があるクラスなので、readonlyの方は使ってないのですが。
でも多分、今後どこかで必ず使うことになると思います。
…覚えていれば。

Voidol

Voidolを期間限定で無償配布します。PC Watch様にも取り上げていただきました。 | クリムゾンテクノロジー株式会社
ボイスチェンジャー、インストールしてみました。
私はあまり声出し配信とかしないのですが、VRChatをインストールしてたり、やっぱりたまには配信したくなるかもしれなかったりするし、そのときに地声から離れたらちょっとは抵抗感なくなるのかなと。
まだ試運転すらしていないですが、何かしら喋るネタでも探して試してみようかな。

Internet Explorer

IEはとっくにサポート終わってるわけですが、IEと一緒に使えなくなってしまったサイトが世の中にはいろいろとあったそうで、うちのサイトはどうなのか、というのを一応語っておこうと思います。

まず、そもそも当サイトTGWSは、Internet Explorerに対応していません。

一部のコンテンツ(具体的に言うとミディビ)だけは、IEにだけ残されたプラグイン機能に依存していましたが、そっちはそっちで、早々にプラグインの方がサポート外になったので、IEがサポートを続けようとももはや動きません。
このようなコンテンツは、歴史的な理由で残しているだけなので、今後も、特段の事情がない限りは、サポート外のまま残ります。

一方、ページ構成としては、一部を除き、JavaScriptやCSSが正常に機能しなくてもHTMLの基本的な機能だけで成り立つようになっています。
なので、IEでもそれ以外でも、何なら古いバージョンでも、多少崩れながらも意味が解る程度には表示できるかと思います。
おそらく、将来ブラウザが進化しても、それなりに表示できることでしょう。

なので、IEがサポート終了したことで、私のサイトが変わることはありませんし、移転や閉鎖の予定もありません。

アンパンマンDBと更新履歴

アンパンマンDB

「ふわふわフワリーと雲の国」の作品情報を更新
昨年の劇場版テレビ放送後半の情報を入れました。
そして来週は今年の劇場版も封切りですね。

更新履歴

現在の更新履歴からデータを取ってきてデータベースに入れるための仕組みを作成開始。
チャンネルの仕組みがまだできていないので、完全移行はまだ無理ですが、どこまで本当に移行できるか確かめながら開発していけるようになる…といいなあ。

アンパンマンDBとNeoMuplと更新履歴とPHP

アンパンマンDB

未実装のアイディア。
「ヤーダ姫」とか、「かつぶしまんと鉄火のマキちゃん」とか、タイトルだけで区別のつかない記事がいくつかあります。
そういうのに区別をつけるために、今は「ヤーダ国のヤーダ姫」みたいな説明的な名前を、「他の呼び方」に入れて対応しています。
こういう説明的なタイトルの、タイトルそのものじゃない補助的なテキストを、独立項目として作ろうかと考えています。
ヤーダ姫の例で言えば、「ヤーダ国の」や「ヤーダ星の」などを入れる形です。

NeoMupl

ファイルの場所を開く機能 · Issue #29 · mifumi323/NeoMupl
これまた未実装のアイディア。
ショートカットファイルを右クリックしたら出てくるメニューの項目みたいなやつです。
浮き沈みランチャーには同じような機能を実装しているので、そんな感じで。

更新履歴

先月やっていた根本的な作り直しの続き。
履歴項目の読み込みを作っている最中なのです。

PHP(Today I Learned)


で、そのときに、データベースから読み込んだ結果をPHPのクラスに変換する処理で、callableを渡す新しい書式。

PHP: 第一級callableを生成する記法 - Manual

PHP8.1から出てきた記法で、従来は「['NoteItem', 'fromArray']」と、文字列の配列で記述するしかなかったのですが、「NoteItem::fromArray(...)」という書き方で同じ意味を表現できるようになったのです。
文字列だと、プログラム的に意味があるのか単なるテキストなのか文法的には区別がつきませんが、「(...)」を使った記法だと、明確にプログラム的に意味のあるcallableとして書けるのです。
ただ…見た目気持ち悪いですね…慣れるしかないか。

アンパンマンDB(みんなのタグ)とFlaky test対策

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

構想段階で全く着手していないアイディアなんですが、「共起度」というもの。
このタグとこのタグは一緒にいることが多いなってやつ。
これの統計を取っておいて、みんなのタグの編集画面での並び替えに活かしたいなと。
例えば、すでに「姫」のタグが付いていた場合、共起することが多い「女」を上の方に表示するとか。
「共起度」というのはわかりにくいから、「関連度」とかの用語にした方がいいかもしれないですね。

Flaky test対策

新VPSに移行してからはなぜか落ち着いているんですが、不安定なテストの対策。
ネットワーク関係など、プログラムが正しくても失敗してしまうテストがあります。
プログラムが正しいならそんなもの無視すればいいんですが、Flaky testだと思っていたものが実はプログラムミスだったということもざらにあるので、ネットワーク関係だからエラー無視、というわけにもいきません。
今のところ、毎回エラーの詳細を出力して、目視確認して、「これは今回だけの偶然だな」とか判断しているのですが、頻度が高いと面倒だし、精神衛生上もよくありません。
で、なんとかFlaky testを自動検出して、あるいはそうでなくとも、FlakyとわかっているテストはFlakyなりの判断基準を持たせて、ただFlakyなだけなら一応テスト成功として扱いたいなと。
実現するには、過去数回のテスト結果を保存しておいて、一定割合までの失敗なら許容する、くらいの扱いが現実的かと考えています。

参考:世界中のITエンジニアが悩まされている原因不明でテストが失敗する「フレイキーテスト」問題。対策の最新動向をJenkins作者の川口氏が解説(後編)。DevOps Days Tokyo 2022 - Publickey

アンパンマンDBと日記

アンパンマンDB

「えいごランド 1 歌って踊ってゆかいな幼稚園」の作品情報を追加
「えいごランド 2 ばしゃばしゃスイスイプールの日」の作品情報を追加
「えいごランド 3 楽しい遠足 動物園」の作品情報を追加
「えいごランド 4 みんなガンバレ運動会」の作品情報を追加
「えいごであそぼう 1 きみのなまえはなーに?の巻」の作品情報を追加
「えいごであそぼう 2 えいごでワン・ツー・スリー!の巻」の作品情報を追加
「えいごであそぼう 3 きみのようふくどんないろ?の巻」の作品情報を追加
「えいごであそぼう 4 いまなにしているの?の巻」の作品情報を追加
英語の知育ビデオの情報を一気に追加しました。
具体的な内容の記載は実際に観たときにでも改めて…。

「0才からのやさしいえいご」シリーズとかもまだあったりします。
そっちはまあ、気が向いときにということで。

日記

カテゴリ周りのコードや最近の活動(管理画面)の表示を修正中。
カテゴリは、「管理画面クラス」に何でもかんでも乗せすぎたので、他でも使いやすくなるようにクラス分割。
最近の活動の方は、リンクの付け方が気に入らなかったんで。

↓現状(修正前)の見え方。

「分野:内容」の順で書いてあるんだけど、ここのリンクがかかる範囲を内容だけにしたいんですよね。

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

日記

管理画面で、カテゴリ削除できるようにしました。
既にカテゴリ登録済みの日記からも、カテゴリが消えます。
で、先日言っていた「更新」カテゴリ、さっそく消しました。

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

アストルティア住宅展示場 フォトスタジオ
毎月10日はDQXで遊ぼう! ~アストルティア住宅展示場 フォトスタジオ オープン!~ (2022/6/3)|目覚めし冒険者の広場
テンの日。
日記書いたことをツイッターでも報告するようになって、これまで以上に日記の賑やかしが欲しくなったので、いつもはフォトスタジオ系のテンの日イベントには行ってなかったのですが、行ってみました。
結婚式場風のスタジオですね。
新郎役のプライベートコンシェルジュ(NPC)と、スタッフでもないのになぜか神父役をやってくれている一般プレイヤーも居ました。

アンパンマンDB

「ふわふわフワリーと雲の国」の作品情報を更新
来週の本放送は去年の映画ですってよ。

アンパンマンDBとPhpTestTemplateGeneratorとさくらのVPS for Windows Server

アンパンマンDB

曖昧リンク検出のため、まずは全記事列挙を作りました。
これを馬鹿正直に全部リンク解析すると時間がかかるので、ここは方法をうまく考えたいところです。

それと、Anpanatorのテストのひな型作成。
CRAP指数がでかすぎるし、使い方もよくわからない代物になっていたので、そのあたりの整理も兼ねて。

PhpTestTemplateGenerator

初期メッセージ追加 · mifumi323/PhpTestTemplateGenerator@6c54ace
大したことじゃないんですが、本っっ当に大したことじゃないんですが、最初に起動したときに使い方の簡単なメッセージを出すようにしました。
ええ、久しぶりにテスト作ろうとして、使い方忘れてました。
これでもう使い方忘れても安心!

さくらのVPS for Windows Server

予定作業としては、こんな感じ。

  • 新VPSをクーポンを使って契約
  • TGWSAdminのアプリを移転(せっかくなので最新ビルドにする)
  • TGWSAdminのデータを移転
  • スタートアップを移行
  • タスクスケジューラを移行
  • IISの設定を移転
  • TGWSのVPS接続先IPを新IPに変更
  • ドメインの設定を新IPに変更

リストアップしてみると意外と多いな…。

さくらのVPS for Windows ServerとアンパンマンDB

さくらのVPS for Windows Server


来年ですが、今契約しているVPSが終了してしまうようです。
すぐではなくていいようですが、忘れないうちに準備をしておこうと思います。

アンパンマンDB

アンパンマンDBには歴史的な理由で、記事間リンクが記事じゃなくて検索につながることがあります。
たとえて言うなら、Wikipediaの曖昧さ回避みたいなものです。
で、Wikipediaと同じく、曖昧さ回避にリンクされているものは、出来る限り具体的な一記事にリンクしたほうがいいのです。
ただ、すでにアンパンマンDBには膨大な量の記事があり、膨大な量のリンクがあります。
これを探すのは大変、ということで、自動で見つけ出す仕組みを作っていました。
まあ、まだ出来てないんですけどね。

アンパンマンDB(みんなのタグ)とmifumitterとキャラ倉庫とfunyak

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

トップページでも不適切タグは表示しないようにしました。
アクセス解析のタイミングで表示切替するのでタイムラグはある程度ありますが。

mifumitter

リツイート周辺表示へのリンクをちょっと調整。

キャラ倉庫

コードネーム:テツ – 美文のキャラ倉庫
昔の日記で紹介していたキャラ案、固まってはいませんが、ちょっと設定を増やしてキャラ倉庫に入れておきました。

funyak

[追加]TileGridPlateCollider · mifumi323/funyak@19f31cc
タイルの当たり判定の続き。
とりあえず、一番実装が楽な、タイルをまたがってなくて当たってないケースだけ実装しています。

ColliderBase.Shiftいらないのでは? · Issue #59 · mifumi323/funyak
さっきのソースコード中にも書いているのですが、当たり判定を移動するメソッド、いらないのでは?って思っています。
タイルだと特に、当たり判定とマップオブジェクト本体が不可分になっているので、当たり判定だけ動かすというシチュエーションがなく、マップオブジェクトの変更に当たり判定が追随しないというシチュエーションもないのです。
じゃあ他のマップオブジェクトはどうかというと、テストだけ作って実際には一つも使っていないのです。
後で使うかもと思って作ったものが後になって邪魔になるパターンですね。


この辺の書き方について、助言いただきました。ありがとうございます。

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

「みんなのタグ」機能プレビュー4を公開
条件による絞り込みと、中立投票機能も実装して、プレビュー4としてリリースしました。

「すべて」が付かない絞り込み条件は、当てはまる記事が一つもないタグは除外するようになっています。
箸にも棒にもかからないようなタグはこれでまあまあ目立たなくできるのではないかと。

中立投票は、「未投票」条件を便利に使えるようにするために急遽付けました。
判断に困るけど今後投票することもなさそうな場合には、使えるかと思います。

アンパンマンDBとみんなのタグと雑多

アンパンマンDB

「ロールパンナとかいじゅうモカ」の作品情報を追加
「とびだせ!3ばいレアチーズ」の作品情報を追加
来週放送分のデータ追加。
『メロンパンナとまいじゅうモカ』がいい話だったんでロールパンナもきっといい話。
そしてもう一つはカマンベールとな。

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

キーワードによる絞り込みを実装。
条件によるフィルタ機能もすぐ作れそうなので、一緒にリリースしてしまうつもりです。

雑多

別に記事もデザインもいじってませんが、WordPress本体をバージョン6.0にアップデートしました。
こっちも何か書くネタあれば書いておきたいなァ。

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

ドラゴンクエスト10

バージンロードラグ
季節の家具・庭具販売「よろず屋ロココ」期間限定オープン! (2022/5/25)|目覚めし冒険者の広場
家具再販。
以前のイベントでは、道具枠圧迫を嫌って買わなかったものが多いのですが、いつぞやのレプリカ対応で圧迫の心配がなくなったので、思う存分買いました。
写真はバージンロードラグです。
バージンロード感がないのはひとえに私のセンスのなさがなせる業です!

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


現状でちょっと統計取ってみました。
変なタグはやっぱり単独でやっているのが多いみたいですね。
この程度ならば人海戦術で全部拒絶することもできそうです。
だったら、単純に検索しても記事が出てこないタグをデフォルト非表示にするだけでも、タグ荒らしを表舞台からかなり減らせそうです。
もちろん、タグ消し荒らしもありうるわけなので、完全に抹消するわけではなく、記事がないタグも表示できる方法は残しておく必要はありますが。

キャラ倉庫とアンパンマンDBとみんなのタグと日記

キャラ倉庫

Bomber丸Worldの当初のストーリー予定 – 美文のキャラ倉庫
古い資料が発掘されたのでキャラ倉庫更新。
これに適当にサブイベント生やしていったらあの途方もないキャラ数になったんですよね。
正直、ゲームとして完成させるにはあのストーリーは何かしら変更する必要があるんじゃないかと思っています。

アンパンマンDB

「ドロリンとバケ〜るカーニバル(劇場版ベストCD)」の商品情報を更新
映画サントラの正式な曲目が出ていたので更新しました。
テーマ曲の『おばけなんてないさ』はおそらく新録じゃないだろうと思っています。
ジャケット裏見られれば著作権表記で確実にわかるんですがね。

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

通報機能の前段階として、絞り込み機能を作っています。
一度通報されて不適切扱いされたタグも、実はいたずら通報で闇に葬られそうになっただけ、という可能性はあるわけで、基本的に不適切タグは表に出さないけど、望むなら深淵まで光を当てる選択肢は提供しておきたいなと。
ただ、根本的にタグ自体が多いので、まずは通報とは関係なく、単なるテキスト検索としての絞り込みを作っています。
ここで一度仕組みを作ってしまえば、いろいろある絞り込みのルールの中で、「不適切なタグ以外」という条件を作ってやれば、無理なく通報結果を反映できるわけなのです。
通報からどのように不適切なタグを判断するのか、という点についてはまだ結論出せてませんがね。

日記

うちのサイトは、ほぼ毎日何かしら更新しているわけです。
「更新」カテゴリいらないんじゃないかなって思えてきました。
特に、今日の日記の上の方みたいに、CMSによる更新も日記に書くようにしたら、収拾がつかなくなってきました。

それとは別に、「アイディア」カテゴリから実現済みと放棄したアイディアを分離しようかなとも考えています。
一度アイディアとして出しておいて、終わったものは「アイディア」とは違うカテゴリに入れて、「アイディア」カテゴリをこれからやる可能性があるアイディアだけに絞るということです。
日記を後から修正すること前提のカテゴリにするわけですね。

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

みんなのタグは、ユーザーが勝手に追加できるので、変なタグも当然追加される可能性があるわけですが、結構数が増えてきたので、そろそろ対策が必要な時のようです。
ひとまずは、通報機能を作る方向で考えていますが、通報結果を管理人が精査して削除だと結局管理人に頼るシステムになってしまってコンセプトに反するし、管理しきれなければそこで通報機能も機能停止するわけです。
そうなると、通報も多数決の原理にするべきかと思うのですが、じゃあ通報の乱用を抑止する対立票はどうするの?って話で。
現状の投票の統計から不適切そうなタグの傾向を観察して、適切な通報がある程度溜まれば不適切なタグは排斥され、不適切な通報が多少あっても適切なタグは守られる、そんないい塩梅のやり方を探っていくところから始める必要がありそうです。
通報データをある程度溜める必要があることは確実そうなので、通報データを蓄積するためだけの画面は先に作ってしまってもいいかもしれません。

mifumitterとアンパンマンDBと美文のキャラ倉庫

mifumitter

検索ミュートでエラーが出る件、解決しました。
ミュート対象者をループで回して判定しているのですが、引用ツイート内にミュート対象者がいた場合、引用ツイートの判定は引用者が対象者かどうかとは関係なく行うので、全対象者でマッチした扱いになっていたのでした。
引用ツイートの判定をループ外に出して解決しました。
「なぜミュートしたのか」を事細かにログに残して見つけました。

アンパンマンDB

まあ、いつもやってる更新作業なんですが、こういうのも日記に書いていいかな…と。

次のレンタルビデオの情報が出たので記入したのですが、わずかにタイトルのパターンが変わっていて、半自動記入の仕組みが機能しませんでした。
以前は「vol」だった部分が今回は「Vol」になっていて、知らないシリーズ扱いになっていたのです。
ひとまず、大文字小文字を区別しないようにして、既知のシリーズとして、同じシステムを引き続き使えました。

美文のキャラ倉庫

2022年5月27日 – 美文のキャラ倉庫
数多くはありませんが、今日も記入しました。
キャットバイパーはちょっとお気に入り。
登場作は全く未完成でキャラ設定と絵以外何もありませんが。

<前 次>