Jun 27, 2005

LOGGiX関連:アクセスログ解析

LOGGiXのGDによるアクセス解析機能

LOGGiX

Excerpt(要約)の実装のあとCSSスイッチの実装も終わったLOGGiXですが、今度は以前からちょこちょこと弄っていたGDによる動的グラフ画像生成を使ったアクセスログの解析機能をお試しで実装中。...というわけで、現在このような感じのグラフが出来るようなところまでもってきました。(↓ クリックすると原寸大画像が表示されます)

LOGGiX AccessAnalyzer

これはコーディングがなかなか結構難しいのですが...これは作ってて楽しい!:-) このアクセスログ解析機能もコメント/トラックバック機能などと同様にプラグインモジュール形式での実装、というスタイルをとりました。これは機能の「組み込み/取り外し」がし易いのを狙うというよりメンテの容易さを実現するため、です。

難点はGDがサポートされているサーバーでないと使えない、という事ですね。GD非サポートサーバーの為に代替のアクセス解析機能を用意する必要もあるかもしれません。(う〜ん面倒だ...)

新しいCSS「Sun Flower」

LOGGiX / P_BLOG用に新しいCSSを作ってみたので実験的にに当サイトのCSS切り替えスイッチに登録してみました。適用されたイメージはこんな感じになります。(↓)

Sun Flower CSS

夏らしいCSSが欲しかったので向日葵をテーマにしてみました。このサイトのデフォルトCSSはブラック基調なので暑苦しい方は是非切り替えてみてください。:-) スタイル名は(ベタですが)「Sun Flower」としました。ちなみに元画像はこんな感じ。(↓)

Sun Flower

私は普段CanonのIXY DIGITAL 500を愛用しているのですがこの画像はケータイ(DoCoMo P506iC)のデジカメで撮りました。良い絵があるときに限ってカメラ持ってなかったりすることが多いんですがこの写真はケータイのデジカメにしては結構気に入ってます。

細かい部分では、タイトル部分の背景画像の上に半透明の透過24bitPNGを被せています。これまでP_BLOGに添付するCSSでは透過PNGはWinIEがサポートしていないのでなるべく使わないようにしてきたのですが、もう時代遅れのブラウザに合わせて制限するのは止める事にして:-)、 WinIE用には白ストライプの背景を読み込ませるようにしてあります。なので24bitPNGをサポートしているモダンなブラウザでは奇麗に半透明に、そうでないブラウザは「それなりに」見えるようにしてあります。(早く出てくれ>WinIE7)

Jun 23, 2005

Web技術関連本

最近購入したPHP本

P_BLOG用のAmazon ISBN変換プラグインがPHP5にアップグレードしてからエラーを吐くようになったのでディバッグがてら、最近購入したPHP本を紹介。

これはPHP5のオブジェクト指向関連に特化した本で非常に中身が濃い。PEARやphpDocumenterにも触れているのでその辺りに興味がある中級以上の人にはおすすめです。初心者にはお薦め出来ません。ひと通り学んでさらに一歩進んだヒントが欲しい人向け、かな。

これは即戦力というか真似てコードを書きながら実際に使えるスクリプトを書きたい人向けですね。初級から中級以上の方にお薦め出来ます。個人的な感想としては、実際に自分のアプリケーションに応用出来るようにするにはもう少しオライリーの「PHP Cookbook」のような最小限のコードリファレンスの方が良いような気がします。...が、価格対内容的には十分満足すると思います。

ついでに...最近購入したDVD

これはもう文句なしなにも言う事ありません。Pixer最高です。Pixerといえば、最近モンスターズインクのメイキングDVDにスティーブジョブズがちょろっと出ているのに気がつきました。:-)

これはまだ入手してませんがすぐにBuy Nowした作品。私はブルースリーのファン...というより「この映画のブルースリーの大ファン」なのでこれのデジタルリマスター版がリリースされるとは嬉しい限り。この映画のリーの肉体はアジア系男のひとつの理想型です、ホント。入手した暁にはリー御大にまた気合い入れてもらいます。

LOGGiX関連:Excerptを考える

LOGGiXではExcerptを実装

LOGGiX

P_BLOGでは現在Excerpt(本文の要約/概要)を記述する項目が無いのですが、LOGGiXではこれを実装してみることに。理由はRDF/RSSとの連携。つまり、

(X)HTMLRDF/RSS
本文のコメント部分content:encoded要素
Excerpt(本文の要約)description要素

と対応して連携したほうが妥当ではないか、ということからです。あと、トラックバックを送信するときに本文からデータを抜粋するより要約を送った方が良いという人もいると思ったのも理由。

それを考えると現行P_BLOGの「もっと読む...」とのからみはどうなるのか、とか、例えばP_BLOGからLOGGiXへ移行したい場合はどうするのか、とか色々出てきますが、その辺はExcerptをオプション扱いにしてExcerptが無ければ本文から抜粋という常套手段を取ることで対応しようかなと思ってます。

ただ、「もっと読む...」を使うときにトップページでは要約を表示して本文の詳細はPermalinkで、という実装がスマートのような気もする。この辺はユーザー/サポートディベロッパーのみなさんの声を聞きながら仕様を固めていくつもりです。

SQLite関連

SQLite

色々といじっているとphpMyAdminのような完成度の高い管理ツールのあるMySQLと比べてしまいます。あの環境に慣れてしまうと色々と不便です。

最初に困ったのはALTER TABLEが上手くいかないこと。コマンドラインツールではバージョン3からALTER TABLEやADD COLUMNなどのクエリーが使えるようになっているとのことなのですが、私の環境ではなぜかシンタックスエラーが出て上手くいかず。どうしても既存のデータを残したまま新しいテーブル項目を増やしたかったので、しょうがないのでALTER TABLE機能の使えないsqliteバージョン2を使って

  1. temp(一時)テーブルを作成。
  2. tempテーブルにデータを流し込む。
  3. もとのテーブルを削除。
  4. もとのテーブル名と同じ空のテーブルを作成。
  5. tempテーブルから新しいテーブルにデータを流し込んで終了。

という荒技を使って対処。うーむ、めんどくさい。。。 :-!

あと、SQLiteって、バイナリセーフじゃないんですね。これだとバイナリファイルを格納したりする場合エンコードしてストック、取り出す際にデコードして復元、という方法を取らないといけないのでMySQLと比べるとパフォーマンスや安全性にやや不利、ということでP_BLOGの「FILES」の実装はそっくりそのままにはちょっと難しいかも。う〜ん、やっていくと色々と壁が出てきますね。

Jun 21, 2005

近況報告:水面下で色々と(2)

LOGGiX Project進行状況

LOGGiX

先日「JAM LOG : 近況報告:水面下で色々と」で書いたP_BLOGのPHP5+SQLite版プロジェクト「LOGGiX」ですが、現在基本機能の実装がようやく出来てきました。ということで、アイコンも作成。P_BLOGとは趣きを変えてブラック基調で。(上の画像↑)

私がとりあえずの目標と設定した基本機能というのは、

  1. ログの投稿/更新/削除
  2. データベースによるマルチユーザー対応のセッション管理
  3. ログの検索機能及びページャーの実装
  4. 恒久リンク(Permalink)ページ生成
  5. 編集/削除可能なコメント機能の実装
  6. トラックバック機能の実装
  7. RSS/RDF生成機能の実装

だったのですが、これらの実装がある程度出来てきたのでようやく一息、といったところです。殆どフルスクラッチで書き始めて3週間でようやくこのような感じまで持ってきました。(↓)

LOGGiX v.0.0.1-dev

現行P_BLOGとの大きな違いは、P_BLOGではシステムにベッタリで実装したコメント/トラックバック/RSS機能を全てプラグインモジュール化して実装した、というところです。これによって開発/メンテナンス効率が大幅にアップした気がします。これは将来のP_BLOGにも生かして行きたいところ。

そういえばSafariが2.0になってから例のRSS機能のせいでローカル環境でのRSS機能の開発/ディバグがしずらくなってしまいました。(クリックするとfeed://で飛ばされてしまうのでローカルだとブラウザ内に表示されなくなってしまう。これは不便。)というわけで、開発は画像のようにシイラのお世話になってます。

...と、調子に乗ってきたので現在ロードマップも作成中。恐らく今後の予定はこんな感じになるかな、とイメージしています。:-)

RoadMap

Jun 18, 2005

GDによるグラフの実験

ここ最近水面下でハマっていたのがPHP5の環境でのGDを使ったグラフ画像生成なのですが、ちょっと面白いものが出来たのでその成果を実験として晒してみます。生成されるイメージ画像はこんな感じです。(↓)

これはアクセスログをグラフ化してGDを使ってPNG画像を生成する、というもので、バックエンドデータベースとしてSQLiteが動いています。日本語フォントはライセンス的に問題のないフリーTTFであるIPAフォントのプロポーショナルゴシック体を使用しています。

実際に動的に動かせないと面白くないと思うので、サンプルを公開してみます。グラフを表示した状態でブラウザをリロードするとログがSQLiteに保存され、再度読み出されて変化しますので試してみてください。

時間別アクセス情報 by PHP5+GD+SQLite

サンプルコードは整理がかなり必要なので未だ公開出来る状態ではありません。

クラス使いまくりでパフォーマンス的に難があるかも。あと、PHP環境でfreetype2が有効になっていないサーバーでは日本語生成が出来ないので例えば配布するコードを作る、といった場合に障壁になりそうです。

MacのIntel採用関連

この記事読んで思ったのですが、アキバのパソコンショップの店員って、こんなにレベル低いんですか? ショップ店員ならパソコンのプロとして(プロ意識があるなら、ですが)もう少し勉強した方が良いのでは。(典型的な「ハードおたく」「DOS/Vおたく」な意見が多い気がします) 今時素人ユーザーでもMacとPCくらい両刀使いで使い分けられる時代なんですから。(#まぁ、今時「パソコン=アキバ」という時代でもないでしょうけど)

【特別企画】ショップに聞きました! Macintoshにインテル製CPUを採用することをどう思いますか?

次へ