2012年1月の日記

<2012年02月 2011年12月>

無題

ラギアクルス撃退できました。
本気じゃなかったのか何なのか、思ったほどは苦戦しませんでした。
地上では体感的にロアルドロスぐらいの強さで、水中では戦いと言えるほど戦わずに終わってしまいました。

無題

これまでのAmazonアフィリエイトの売り上げをまとめてみました(Aはアンパンマンの商品)。

年月個数売上額紹介料A個数A率
2009年8月110003000%
2009年10月811709411563%
2009年11月1012410434440%
2009年12月102399684010100%
2010年1月318990665267%
2010年2月13277759711185%
2010年3月917522613333%
2010年4月514362503360%
2010年5月915309538667%
2010年6月1022938765990%
2010年7月193881813411789%
2010年8月14245368581286%
2010年9月614477508467%
2010年10月1017112599770%
2010年11月514743516480%
2010年12月16445421562850%
2011年1月386948127782463%
2011年2月16388181008850%
2011年3月19335821083842%
2011年4月255105617651768%
2011年5月1825723902739%
2011年6月1417098557857%
2011年7月1116390574327%
2011年8月215420619001467%
2011年9月18248348151267%
2011年10月253432412061352%
2011年11月243994013981354%
2011年12月327067828281134%
合計4097963692796824359%
受け取れる紹介料は全体的に小学生の小遣い程度なのでお世辞にも儲かっているとはいえませんが、ちょっとでもアンパンマンを見る手助けになっていれば嬉しい限りです。

無題

アンパンマンいっぱい見た!
来週はこっちの地方でも1111話「消えたアンパンマン」やるみたい!
きっと見るよ!

無題

今日はモンスターハンター3Gやってました。
チャナガブルにはいまだ苦手意識が残りますが、ギギネブラとかドスバギィとかはそう苦労せず倒せるようになりました。
そうは言ってもギギネブラだと30分ぐらいはかかってしまいますが。
それで、ラギアクルスの撃退クエストが出てきたわけですが、今はほったらかしにしてモガの森に入り浸っています。

無題

初登場キャラの強調表示にも対応しました。
昨日までの実装ではページIDとページ名までを特定していました。そうすると、日付を取得するにはページIDで検索するだけなのでたいした負荷にはならないって寸法なのです。ページIDの特定が一番厄介な問題だったのです。
ただ、アンパンマンDB1のころと同じく日付のみで判定しているため、Aパートで登場し、Bパートでも引き続き登場した場合、両方で強調表示されます。
まあ、こういうことがあるのは初期の話だけだし、その日に初登場という意味で問題なかろうと思います。

無題

自動リンク機能、一覧表示上のみですが、実装できました。
機能的には現状のアンパンマンDB2と同等でありながら、速度は圧倒的に上です。
ただ、アンパンマンDB1に存在していた初登場キャラの強調表示は今のままでは難しそうです。

無題

自動リンク機能のためのSQLは出来上がりました。
割とシンプルで素直なSQLになって、インデックスさえ利いていれば速度も申し分無しです。
ただ、表示用データにリンク情報も含めなければいけないので、そのあたりである程度改造が必要そうです。

無題

アンパンマンDBの自動リンク機能、現状はページ名完全一致、別名完全一致、ページ名曖昧一致、別名曖昧一致の最大4回検索が行われ、表示速度の低下に繋がっていました。
アンパンマンDB3ではこのあたりをひとつのSQLに統合して高速化しようと思っていたのですが、この4回の処理はSQL化が面倒なので、なんとか工夫して、SQLは複雑化させずにうまく1回の検索で済むようにしたいところです。

無題

Bomber丸Worldのキャラをいくらか描いてもらえることになりました。
普通の一枚絵なのでゲームにそのまま使うことはできないと思いますが、ともかくうれしいことです。

無題

これまでずっとsmartyではバージョン2の記法で書いてきたのですが、実はうちで使っているのはバージョン3だったのでもっと書きやすい気泡があったのでした。
foreachとかずっと{foreach from=$array item=value}なんてことやってましたよ。
バージョン3では{foreach $array as $value}というPHPに近い表記も可能なのです。
とりあえず見つけ次第新しい表記に直していこうと思います。

無題

アンパンマンDB3の自動リンクつきリストを充分な速度で処理するためのテーブルを作っていました。
単純なサブクエリやJOINに帰着するのが一番簡単なので、JOINしやすさを第一に考えて。
あと、逆に検索で使わない重複データなんかは関数で算出することにして、省略するようにしました。

無題

TGWSAdmin、もうちょっと基本的なところで改良したいですなぁ。
タスクトレイ常駐型のアプリケーションでウィンドウを閉じると終了というのにはどうにも違和感があるのです。
やっぱり本体は通知領域にいるアイコンですから。

無題

プログラミングコーナーの当たり判定補助クラスにミスがあったので修正しました。
報告してくださったtetさんに感謝します。

アンパンマンDBは、登録するデータの重複を一部省略してデータサイズを削減したり、リンク機能無しのリスト表示など。
自動リンクを入れると結構骨が折れるのですが、それさえなければただの単純なサブクエリなのです。

無題

最大の難関であろうカテゴリ表示は達成したので、気分を変えてタイトルジェネレータを移植中です。
あと、カテゴリ以外の表示も少しずつ作ってはいます。

無題

アンパンマンDB3のアニメDBの登場キャラクターとかに代表される、関連項目のリストを実装しているのですが、なかなか難しいです。
こういったリストには自動的にリンクを作っているのですが、今回はそれをSQLでやろうとしています。
しかしこれ、単にサブクエリやJOINをすればいいというものでもないのです。
というのも、リンク先は一種類のDBに固定されているわけではなく、異なるDBにリンクされていることもあるのです。
例を挙げていえば、音楽の関連項目には、関連性の深い楽曲もリンクしていますが、その曲を題材にした話にもリンクしていることがあるのです。
そのあたりの振り分けをどうするか思案中です。

無題

アンパンマンDB3のカテゴリ表示、うまくいったと昨日いいましたが、キャラDBで表示確認してみたところ、とても実用に堪えない速度であることがわかりました。
というわけで、快適な表示を実現するべく、SQLを見直しました。
カテゴリは読みでソートしたかったのですが、これをSQLだけで行おうとすると集約関数に渡す前にソートしなければならなくて、それを実現するためにはソートするためだけに全件ソートするサブクエリを作らなければいけなくて、ということをやっていると重くなってしまいました。
最新版のSQLiteでは余計なサブクエリを作らなくて良いみたいなのですが、バージョンアップできない環境なので、SQLだけで高速化は無理そうでした。
そこで、SQLではカテゴリのソートは行わず、ソートのヒントまで作っておいて、実際のソートはPHPプログラムで行うことにしました。
これで5秒が0.05秒になりました。

無題

アンパンマンDB3のカテゴリ表示うまくいきました。
サブクエリの中で使っていたパラメータを外に引っ張り出してきて外側で評価することでスコープの問題を回避。
ただ、単純な列挙なのでこれで済みましたが、将来的にはもっと複雑なことをしたいのでもっと研究が必要そうです。

モンハン3G、チャナガブル討伐しました。
これで★★★★にいけます。
★★★★といえばギギネブラが出てきたはず…。

無題

アンパンマンDB3のカテゴリ表示うまくいかないです。
どうにも入れ子にしたサブクエリの中まで外側の値が入っていかないようで。
ローカル環境では動いていたのでちょっと困惑気味です。

無題

タイトルジェネレータのデータ移行プログラムを作成。
タイトルジェネレータそのもののプログラムは以前のものをSQLite用に書き換えるだけで済む。
残るはコメントと質問箱だが運営方針が定まらないとどうにもならない。

無題

アンパンマンDB3の関連カテゴリ&別名の登録機能作成。
また、ペアリストのリンク先の設定がおかしくなる問題を修正。
普通の情報はこれで全て移行可能になった。

無題

アンパンマンDB3のデータベース管理クラスを検索機能のクラスと編集機能のクラスに分割しました。
現状のアンパンマンDB2のように何でもかんでも1箇所に集約しすぎてソースがごちゃごちゃしてきたのと、ユーザー側のページでも呼び出していないだけで編集機能そのものは動く状態で存在していたのが理由としてあります。
編集機能は結構大きいので、ユーザー側のページでは絶対使わない編集機能を読み込むのも無駄な話だし、もし万が一間違えて編集機能を呼び出すコードなんて書いてしまったら大変です。実際紛らわしい内容のメソッドもありますし。

あと、SearchPhraseParserを微妙に更新しました。
本体の動作が変わらないほど本当に微妙な変更ですが。
ただ、オプション項目を追加する程度のことはできたかなーって気がします。

無題

アンパンマンDB3のカテゴリ取得のSQLを作っていました。
先祖カテゴリまで遡って一気に取得するSQLを作ったのですが、思いのほか長くなってしまいました。

無題

アンパンマンDB3、従来通りの部分はいい感じに表示できるようになってきました。
リスト系の項目は検索の利便性重視でデータ構造を変更しているのでもうちょっと時間がかかりそうです。

無題

アンパンマンDB3の内部処理をいじっています。
データ取得のためのSQL文の自動生成です。
内部処理しかいじっていないのでまだ表に見える部分は変わっていません。

無題

NeoMupl:エラーの原因それとなくわかった。たぶんCOMオブジェクトのRelease忘れかなにか。
モンハン3G:ロアルドロス捕獲。いい感じ。次はボルボロス。
アンパンマンDB3:おまかせ表示を実装。アンパンマンDB1にあって2で廃止された機能。似た機能は検索の並び替えで実現できたがおまかせ表示の気軽さは実現できていなかった。アンパンマンDB1にあった初登場キャラの強調表示も復活させたい。

無題

星のカービィWii、本当の本当に完全クリアしました!
メタナイトっぽいあの人にも勝って、ラストのムービーも登場。
なんだかものすごく風が吹き荒れたような気がしますが、まあよかったです。

無題

アンパンマンキャラDBではキャラのシルエットとかでも検索できるといいなーって考えています。
ポケモン図鑑の形による検索とほぼ同じですが、名前を覚えていないキャラクターを見つけるのにはよいのではないかと思っています。
システムを作るのもデータを用意するのも大変そうなので、できるといいなーというレベルの話ですが。

無題

モンスターハンター3Gやってました。
あまり大型モンスターには挑まず細かい素材集めを色々やっていました。
まあ、クルペッコやドスジャギィぐらいなら相手していますが。

無題

アンパンマンDB3作っていました。
とりあえず詳細ページへ飛べるようにまでなりました。
表示できるのはまだタイトルだけですが、これを元に拡張していけば色々表示できるはずです。

無題

モンスターハンター3Gやってました。
クルペッコがでてきたのでトランペッコの素材を集めています。

無題

アンパンマンDB3の管理画面を作ったりデータベース定義情報そのものに手を入れたり。
実はバージョン2の定義情報をバージョン3用に移行した段階で大事な情報が一部ごっそり抜け落ちてしまったのですよ。
今日までこのことに気付かなかったとはうかつでした。
どうせ入力しなおしになるので入力しやすい形式に作り直そうと思っています。

<2012年02月 2011年12月>