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

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

<前 次>

ドラゴンクエスト10とSPFレコード

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

ペリポン&ペリポン2号
七夕イベント 『願い星瞬いて2022』 開催!(2022/6/30)|目覚めし冒険者の広場
七夕イベント全員分完了!
ペリポン就職という衝撃展開!!!
いや、ペリポンが本来登場するクエストをやってないので詳しいことはわからないんですが、とにかく無職なんですよこいつは!!

家具庭具も一通り買いましたが、個人的にはあまりピンとこない感じ。
なので、家具庭具の写真もなしです。
レプリカでいつでも使えるようになったので、またハウジングやりたいスイッチが入ったころに使えたらいいな程度の投資ってやつです。

他の写真は、以下から。
写真置き場「2022/07/13」 | ミフミンのDQ10メモ

SPFレコード(Today I Learned)

SPF レコードの例 | なりすまし対策ポータル ナリタイ
SPFレコードは以前からあれこれ調整していたんですが、ドメインを指定したり他のレコードを取り込む方法もあるようで。
これをうまく使えばサーバー業者のメールサーバーの設定に自動的に追随するようになるのかな?

アンパンマンDB

キャラ「サフィー」を更新
キャラ「エメラ」を更新
「関俊彦」のデータを更新
Twitterのハッシュタグのページを更新
上3つは、日替わり紹介bot用に元の記事よりちょっと記述を増やしたので、元の記事の方にも反映させた形です。
Twitterのハッシュタグは、ちょうど今日がその日だった「#うきぐも城の秘密20th」です。

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

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

フレンジー(不完全体)
七夕イベント 『願い星瞬いて2022』 開催!(2022/6/30)|目覚めし冒険者の広場
ァォィョッュの分、七夕イベントクリアしました!
極天女帝とフレンジーの願いを聞きました。

バージョン6.0のネタバレがあるって聞いてたんでちょっと警戒してたんですが、極天女帝に関してはこのくらいのばらしかたがメインストーリーが気になっていい感じ。

フレンジーの方は、すでにクエストクリア済みなんで全く平気。
やけに簡単なお使いだなーと思ったら、もうひと悶着あった模様。
それが今回の画像なんだけど、わかるかなー?

報酬の浴衣は、ァォィョッュなんで青く染めました。
青く染めた方の写真は撮ってませんが。

他の写真は、以下から。
写真置き場「2022/07/11」 | ミフミンのDQ10メモ

アンパンマンDB

コメント管理でコメント変わらない問題、解決しました。
コメントのスコアが変わらなかったとき、スコア変動の処理をスキップするのですが、そのときについでにキャッシュ更新の処理までスキップしていました。
表示非表示が切り替わるのは大体違反時でスコアが減っていたので今まで気づきませんでした。

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

ドラゴンクエスト10

ヒコボシ
七夕イベント 『願い星瞬いて2022』 開催!(2022/6/30)|目覚めし冒険者の広場
やっと七夕イベント着手。
クリアはしてませんが。
3キャラでやっているので、分担して相手キャラ6人分やろうと思います。

毎月10日はDQXで遊ぼう! ~みんな一緒に福の神まつり~ (2022/7/4)|目覚めし冒険者の広場
テンの日。
魔法の迷宮なので、魔法の迷宮行きました。

写真置き場「2022/07/10」 | ミフミンのDQ10メモ

アンパンマンDB

コメント管理で古いコメントの状態を変えたらコメントの表示が更新されないという微妙な不具合に遭遇してしまいました。
キャッシュが利きすぎているのが原因と思われるのですが、古いコメントだろうとキャッシュは更新するようになっているんですよね…。
全キャッシュ強制更新にしたら反映されるのですが、毎回そんなことはしたくないですからね…。

PHPとアンパンマン

PHP

配列のアンパック、バージョンは合ってるはずなのになぜか公開用サーバーでは使えませんでした。
テスト用サーバーでは大丈夫だったのに…。
早まって全部置き換えなくてよかった。

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

また見てきました。
今回気付いたことも、アンパンマンDBに追記してきました。

@WIKIとアンパンマンDBとPHP

@WIKI

管理画面のメモ用Wiki、@WIKIに移転しました。
もともと非公開コンテンツだったので、@WIKIでもやっぱり非公開です。
ページ名だけはURLにアクセスすればわかってしまうのですが、まあ、URLも非公開なので多分大丈夫でしょう。

アンパンマンDB

「鉄火のコマキちゃんとミス・マリーネ」の作品情報を追加
「どんぶりまんトリオとオーロラ姫」の作品情報を追加
来週放送情報の追加。
美しい大人の女性のキャラクターがABともに出る感じですね。

PHP(Today I Learned)

PHP: 配列 - Manual
配列のアンパック。
array_mergeでやっていたような配列の結合を、[..$array1, ...$array2]みたいに記述できる機能です。
簡潔な構文で記述できて、性能もよくて柔軟性も高いそうです。

PukiWikiを復活させようと試行錯誤していた時に見つけました。
機能自体は7.4からあったのですが、うちのサイトでは7.4をすっ飛ばして一気に8.1まで上げてしまったので、気付けませんでした。
ネット上の記事では、JavaScriptでの同様に機能からの類推で、「スプレッド構文」と呼ばれることが多いようですね。

ただ、便利で、今後は積極的に使っていきたいとは思うのですが、性能がいいからと言って、過去のコードのarray_mergeまで全部置き換えるのはちょっと無謀かなって思いました。
というのも、array_mergeを削除するのはいいとして、丸括弧()で囲っていた部分を角括弧[]で囲ったうえ、両方の配列に...を付けるって言うのが、繰り返し間違いなく行うには結構複雑な手順なのです。
特に...忘れに関しては、エラーが出ずに、ただ望まない処理結果が返るだけなので、間違った修正をしても気付かずに、発見したころには元のコードを忘れていて修復不可能、ということが起こりそうなのです。

アンパンマン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としてリリースしました。

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

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

<前 次>