無題
アンパンマンDBバージョン3、DB構成フォーム作成中。
以前のDB設定ファイルは持ち込んでいるのですがそのままでは使い物にならないのです。
アンパンマンDBの、主に開発に関する日記。
アンパンマンDBバージョン3、DB構成フォーム作成中。
以前のDB設定ファイルは持ち込んでいるのですがそのままでは使い物にならないのです。
やっぱりSmarty使うことにしました。
変数の割り当てやヘルパー関数の用意などを考えると、新規に自分でテンプレートエンジンを作っていると時間がかかってしまいそうなのです。
私が作りたいのは「スマートな設計のプログラム」ではなくて、「しっかり動くプログラム」なのです。
理想を追うあまりいつまでたっても何も動かなくては何の意味もないのです。
早速テンプレートをPHPコードに書き換え始めたわけですが、変数とか関数の扱いをあまり考えていませんでした。
テンプレートは関数を使って呼び出すことになるのでグローバル変数は使用不可。
テンプレートに変数を渡す方法を考える必要あり。
関数は常にグローバルスコープなので呼び出しに関しては何の問題もなし。
逆に、テンプレート用関数の定義をするときにどうするのかが問題。
このへんを充実させれば扱いやすくはなるかもしれないけど、今度は普通のテンプレートエンジンと何が違うのかってことになりかねない…。
アンパンマンDBバージョン3で、デザインとロジックの分離、デザインを複数用意したいという希望からテンプレートエンジンのSmartyを導入していたのですが、どうにも今回はSmartyにあまり利点がないような気がしてきました。
Smartyは高速なテンプレートエンジンですが、その高速化の根拠はテンプレートをPHPコードにコンパイルして、ほとんどの場合単にPHPファイルをインクルードするだけで済ませてしまいところにあります。
それだったらむしろSmartyなど間に介さず直接インクルードすればもっと速くて手っ取り早いわけです。
Smartyはデザインとロジックの分離のため、テンプレートファイル中では極力PHPコードを実行できないようにしてあります。
これはデザイナーが余計なコードを書いてプログラムをバグらせるのを防ぐという点では素晴らしいのですが、個人開発では単に自分一人が気をつければ済むだけの話です。
そもそも、PHPそのものが最初からテンプレート的な使い方をできるように設計されていて、Smartyはそのテンプレート的な使用法に特化したものに過ぎないのです。
そう考えると、Smartyはただのインクルードより設定が大変なだけでメリットがあまりないなぁ…と。
アンパンマンDBのコメント機能を映画公開に合わせて一部復活させようかと思います。
あくまで映画を見た感想などを書けるようにするための復活であり、情報提供などは基本的に受け付けません。
時期は7月2日正午から。
「すくえ!ココリンと奇跡の星」「うたっててあそび!アンパンマンともりのたから」の2ページに限って復活させます。
システム的な準備が整ったら改めて告知します。
アンパンマンDBバージョン3開発中。
基本的なナビゲーション周り。
まだまだ表に出る部分には手が回っていません。
そろそろアンパンマン映画の公開が近付いてきているので、あと何日の表記をアンパンマンDBのトップページにでも出そうかと思います。
時限式コメント消去のプログラムを流用して作れそうです。
アンパンマンDBバージョン3開発中。
わかりやすいアドレス実現のため.htaccessをいじっています。
あと、日記に「アンパンマンDB」カテゴリを追加しました。
アンパンマンDBのシステムの話だけでアンパンマンそのものの話を全然していないことが多かったための措置です。
アンパンマンDBバージョン3開発中。
パラメータによる表示切替システムの基礎まで。
データベース構造の定義ファイルは旧版を差し当たりは使いまわすことにします。
アンパンマンDBバージョン3のデータベース構造の同期について。
データベース定義だけを記したファイルを用意しておいて、アンパンマンDBはデータベース中のデータ構造によらず定義ファイルにしたがって各種データ操作を行う。
そうすると、定義ファイルだけ最新でデータベース本体が古い形式であれば当然エラーが発生する。
そのときのエラーを捕捉して、データベース構造を自動的に最新のものに書き直し、改めてデータ操作を行う。
このようにすれば、普段はパフォーマンスを極力落とさず、データベース構造が変化したときには管理画面における更新手続きすらなしに最新版に更新されます。
このアイディア、すごくよさそうな気がしますが、果たして実装できるものなのか…。
脚本家の島田満さんに聞いてみたのですが、実はアンパンマン映画って「原作絵本」より先に「映画」ができるらしいです。
絵本の出版時期や情報の出てくる時期などを考えて、「まず原作絵本ありき」で作られているわけではないんだろうなとは予想していましたが、やっとはっきりわかりました。
もちろん年によってもこういった作り方が変わることはあるのでしょう。
たとえば同時上映の「うたっててあそび!アンパンマンともりのたから」は、対応する絵本「アンパンマンともりのたから」が昨年に出版されているので、文字通りの意味で、絵本が「原作」なのでしょう。
一方、「ばいきんまんVSバイキンマン!?」は、「アンパンマンとおえかきベレちゃん」が対応しますが、こちらは絵本のほうが後であり、映画のキャラを使って描き下ろされた別の作品です。
アンパンマンDBバージョン3のデータベース構造をどうするか、いまだに考えてしまいます。
問題はローカル環境と本番環境でのデータベース構造の同期。
SQLiteはデータ構造とデータ本体がひとつのファイルにまとまっていて、それが利点でもあるのですが、欠点でもあるのです。
データ構造を反映するために単にファイルをアップロードするというわけには行かないのです。
アンパンマンDBバージョン3用の文字エンコーディング正当性チェックを作りました。
TGscriptとも将来的に統合する予定なのでTGscript枠で作っています。
従来のアンパンマンDBとは異なり、UTF-8だけでなくShift_JISも受け付けます。
というのも、ezwebで繋ぐとUTF-8に指定していても関係なくShift_JISでデータが飛んでくるので、UTF-8で決めうちしていると全く検索などが使えなくなってしまうのです。
そのため、最初に文字エンコーディング変換を入れてから正当性チェックを行うことにしました。
アンパンマンDBバージョン3開発中。
データベース構造をいじるのも管理画面から行うようにしたいので、管理画面を先に作っています。
7月中をめどに作り上げてしまいたいものですが…。
あと、プログラミングコーナーのスクリプト作成企画やめました。
うん。頓挫しました。
Luaがあるしもういいかな…と。
実はここ数日のTGWSAdminの変更は設定項目の不備により反映されていませんでした。
その関係でアンパンマンDBの最新っぽい情報群のデータが一部おかしくなっています。
TGWSAdmin改良していました。
いつも半手動でやっていた作業を完全自動化したのです。
昨日のアンパンマン×ポケモンの設定を簡単にするために、CSV編集ソフトインストールしました。
オフィスソフトでも編集できなくはないのですが、もともと表計算用ソフトなのでいろいろと余計なことをしてくれるんですね。重いし。
そこで、Cassavaを入れてみました。
やっぱり一瞬で起動する軽量ソフトっていいですね。
アンパンマンDBのタイトルジェネレータをTwitter連携機能、微妙に変更しました。
まあ、細かい文面の変更です。
バージョン3からですが、アンパンマン商品DBってのもやってみようかなって思っています。
理由はいくつかありますが、だいたい以下の3つです。広告収入は今更言うまでもないとして。
1.商品情報の入力補助機能をつけたい。
2.絵本など、アニメDBでは取り扱えない作品も載せたい。
3.商品つながりの検索機能をつけたい。
閲覧者側にとって意味があるのは3ですね。
私自身、商品の検索にアンパンマンDBを使っているので商品関連の利便性はとても大事なのです。
アンパンマンDBバージョン3のデータベース構成を考えるためアクセス解析やりました。
個別ページと一覧ページどちらがどれだけ多いか、というのを主に調べました。
個別ページが多ければ、ページIDから1ページのデータを取得することが多くなります。
したがって、ページIDの検索に最適化すれば効果的です。
一方、一覧ページが多い場合、何らかの形で様々な検索クエリが各DBに飛ぶので、検索の平均性能を上げるのが効果的になります。
結果はというと、個別ページのほうが一覧ページの2倍ほどアクセスがありました。
ただ、個別ページでも関連項目などの形で検索クエリは内部的に発行されているので、この程度であればページIDの検索に最適化することはなさそうです。
アンパンマンDBバージョン3開発中。
Smartyのインストールに手間取っています。
公式のサンプルが古いPHP用だったりクラスのオートロードがうちで設定しているものと衝突したり、簡単そうに見えてなかなかうまくいかないものです。
タイトルジェネレータをTwitter対応にしました。
いつの間にかTwitterに投稿するためのURLが変更されていたので最新のものを使っておきました。
アンパンマンDBバージョン3の現在できている画面をアップしました。
ただし、フロントエンド側はまだ何も作っていないので本当に何にもないただの真っ白な画面が出てきます。
たぶん今後は随時進捗状況をアップしていきます。
Svg2Xaml、ストローク対応版公開しました。
実際に変化しているファイルは2つだけで、ほかのファイルについてはオリジナル版をそのまま使っています。
あと、付属しているテキストはライブラリそのものではないのでLGPLの適用外だと思われます。
TGWSAdminを修正しました。
RSSをアンパンマンDBの最新っぽい情報群に取り込むプログラムが、Twitter連携のときと同じように特定の状況下で働かないことがあったのです。