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

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

<前 次>

無題

アンパンマンDB3のデータ移行プログラム、主要5DBのデータ本体は全部移行できるようになりました(廃止予定の項目を除く)。
これでとりあえず各項目の表示に取り掛かることができるようになりました。
それと並行してカテゴリ階層の再現やその他のデータベースの移行も作っていきたいところですね。

無題

アンパンマンDB3のカテゴリ自動登録もできました。
これでデータ移行は100%できるようになります…が、変身・変装データの構造を見直したいのと、カテゴリの階層構造やメタデータ等の反映もさせたいので、登録したデータで何かするという段階はもう少し先です。
あと、データ移行プログラムは、進捗状況をストリーミング配信とJavaScriptでリアルタイム表示します。
Ajaxほど回りくどくなく、ただのHTMLよりは細かく進捗を表示できます。
気の利いたWebアプリなら割と昔からこういうのはやっていたようですが、私がこういうのをやるのは初めてです。

無題

アンパンマンDB3、普通のリストの登録を実装しました。
これで少なくともアニメDBの8割はデータ登録できます。

111111

カービィWii、本当の100%クリアしました。
本編は、ですが…。
あとは夢の対決のあの人と戦うことになるあのモードが……

アンパンマンDB3のカテゴリは元々の入れ子集合モデルのままで行くことにしました。
書き換えの手間やデータ量の点で経路列挙モデルが不利というのももちろんですが、入れ子集合モデルには入れ子の表現に遣う値がそのまま並び順にもなっているという利点があったのでこちらを選びました。

プログラミングのページ更新しました。
ファイルサイズを文字列に変換するFormatProviderです。
サンプル的なものなので色々抜けていますが、もうちょっと調整すればちゃんとしたものとしていろんな面で使えるようになりそうです。

無題

アンパンマンDB3のカテゴリのツリー構造は入れ子集合モデルで作っていたのですが、経路列挙モデルもよさそうな感じですね。
データベースを直接見て入れ子構造が簡単にわかるというのは大きいです。
ただ、すごく冗長なデータになってしまうので、データサイズや取り扱いやすさなども考慮に入れて考えてみたいところですね。

無題

アンパンマンDB3のデータ登録プログラム、ページ情報テーブルに直接書き込む項目については対応できました。
リストやカテゴリなど、別テーブルに分かれている項目が今後の課題です。

無題

TGWSAdminの最新情報抽出機能の挙動がちょっと前からおかしいです。
新着情報が同着一位だと、データ上先にあるほうを最新情報として扱うのですが、このとき同着内で順番が入れ替わると別の情報が新たに記載されたと誤認してしまうのです。
商品情報などでは同日発売がまれではないので対策が必要そうです。
実際今問題が起こっているのは商品情報ですし。

それから、アンパンマンDB3データ移行ツールの読み仮名変換プログラムは出来上がりました。
該当データが700件以上もありました。

無題

アンパンマンDB3データ移行ツールのための、読み仮名作成テーブル作成中です。
数が意外と多くて大変だったのですが、もう少しで終わりそうです。
あと、移行ツール自体も進捗を表示できるように改良しました。

無題

アンパンマンDB3へのデータ移行ツールのための、読み仮名作成プログラムを作っています。
このあたりは前後の文脈で読みが変わったりするので、自動化のためのデータはほぼ手作業で用意せねばなりません。
結構面倒です…。

無題

カービィとかポケモンとかは残りの部分をゆっくりペースでぼちぼちやっていきながら、今後はゲーム以外のところをちょっと力入れていこうと思います。
そんなわけで、アンパンマンDB3のデータ登録プログラム構築中。
データベース構造が大きく変化したので面倒ですが、根本的にはアンパンマンDB2でやっていたことと変わりないので、さっさと作ってしまいたいところです。
これがないとデータ表示もできないし。

無題

ここの所暫くの間アクセスログを取れなかったのですが、サーバー管理者に問い合わせてまた取れるようになりました。
アンパンマンDBの最近のTOP10はアクセスログに依存しているので困っていました。

無題

アンパンマンDB3のコラムと商品DBのデータベース構造定義を仮に作っておきました。
まだしっかり作りこんだわけではありませんが、細かいところは表示画面を実装しながらにしましょう。

無題

アンパンマンDB3(バージョン3と書くと長いので略します)を作っていました。
今回は、データベース構成の省略時初期値を作っていました。
こうやってすべてのデータがあることを保障しておくと後々いろんなものが書きやすくなるのです。

無題

アンパンマン商品DBについて、外部サイトとの連携があるから他のデータベースと同じような実装は難しいとかつて書きました。
しかし、よく考えてみると、連携が必要なのは商品説明文と画像程度のもの。
だとすれば、アンパンマンDB自体に外部サイト連携機能を付け、商品DBでのみその機能を呼び出せばよいのではないかと思いました。
アンパンマンコラム共々、他のデータベースと同じシステムを使った運用が可能そうです。
また、商品は他の項目と違って名前が長くなりがちだったり、毎回必要な注釈があったりと、運用の効率性の面から商品DBに実装したい機能もあります。
とりあえずこれらの機能は片っ端から実装していって、商品DBでは機能ON、それ以外では機能OFFという運用にしていったらよさそうだと思っています。

アキヤメの[アンパンマンキャラをポケモン風に]が動いていないという報告を受けました。
ローカルではばっちり動いているので、ローカルと公開用の違いを意識しつつ原因を究明したいと思います。

無題

データベースの自動インストールを実装しました。
インストール処理が実行されると0.15秒かかります。
1回や2回では気付かないような一瞬ですが、これを毎回やっていると、慢性的にワンテンポ遅れるのが体感的にもわかるので、この0.15秒も削るようにしています。
といっても、データベース定義ファイルの変化を検出するためのファイルを別途用意しておいて、それを使って変化が検出された場合のみインストール処理を実行するというだけの簡単なものです。
変化の検出にかかる時間は0.00005秒。
これはさすがに毎回でも気付くようなものではありません。
なので、インストールを管理画面専用にせず、ユーザーによるものも含め、すべてのリクエストで自動インストールを試みても問題はなさそうです。
管理画面専用にすると、定義ファイルが変更されてから管理人がそれを反映するまでの間にアクセスがあるとエラーが発生しますが、毎回自動インストールしていれば、ほんの一瞬の遅延と引き換えにエラーの出る瞬間が発生しない運用が可能となります。

無題

アンパンマンDBバージョン3開発中。
データベースの自動インストール周りです。
ここんところCREATE TABLEが反映されなくて困っていたのですが、この処理をトランザクション内で行おうとしていたのが原因でした。
また、インストールには数秒とはいえ時間がかかり、その一方で休止時間ゼロでの運用もしたいので、設定をリアルタイムに反映させつつその作業には極力時間をかけないようにする方法も考えています。
データベース定義ファイルの変更検出用の小さなファイルを作って、変更が検出された場合のみ自動インストールを行います。
データベース定義が変更されることは、運用開始後には少なくなるはずなので、ほとんどのケースでは体感できるほどの速度低下はありません。
また、インストール作業が入った場合にも、数秒なので、体感的には回線の調子が悪かったのとそう変わりないはずです。
もちろん、なるべくインストールは自分で行って、訪問者には数秒も待たせないようにしたいと考えてはいますが。

現行のアンパンマンDBの「今月の仲間」のページをこっそりパワーアップしました。
年月を選べるようになったのと、十周年単位での強調表示です。
メロンパンナちゃんが来年9月で20周年というのもわかるようになったのです。
将来的には、さらに拡張してアンパンマン年表のようなものにしたいと思っています。

ブラウザ版ふわふわふにゃ、iPhoneでの動作確認も取れたので、動作環境のところにiPhoneも追加しました。
少なくとも最新版のiPhoneならばちゃんと遊べると思います。

無題

先日の今月の仲間と未記入キャラのページを改良しました。
未記入キャラのページについては、記入しなくてもいいキャラを表示しないようにしただけです。
今月の仲間は、レイアウトを調整したのと、URLで指定すれば年月を指定して表示することができるようになりました。
さらに拡張して仲間だけでなくイベントの予定や放送の記録なども入れてアンパンマン年表的なものにしてみるのもいいかもしれません。

無題

昨日に続けて、今度は未記入キャラを列挙するページを作ってみました。
処理の高速化と開発スピードのため、すべてカタカナにして処理しています。
これがキャラDB充実の助けとなるはず…!

無題

アンパンマンDBのメモページに「今月の仲間」を作りました。
トップの○○周年の月間バージョンです。
ちょっと変えればいろんな月の仲間も作れます。

無題

それいけ!アンパンマンアニメ化23周年ですね。
だからというわけじゃないですが、トップページの○○周年のキャラクターの表記を改善しました。
今まではキャラクターがたくさんいても一人一行使っていましたが、初期エピソードや劇場版だと一度にたくさん出てくるので紹介が長くなりがちでした。
今回からは同期のキャラクターは一行にまとめてすっきりした表記にしています。

<前 次>