メニューをスキップして本文へ


ここから本文

RSSAggregator-1.3.2

  • 2010年4月24日(土) 10:09 (JST)
  • 投稿者:
    mystral-kk
  • 閲覧数
    686
GeekLog

先日からGeeklog.jpの掲示板のこのスレッドで問題になっていた、XHTMLで" />"が消える問題だが、原因は拙作のRSSAggregatorだった Orz...

phpblock_rssaggregator()の先頭で


if (!defined('XHTML')) {
  define('XHTML', '');
}

のように定義している。問題は、この関数をlib-custom.php内で読み込むため、テーマのfunctions.phpの設定や$_CONF['doctype']よりも優先されてしまう、ということだ。RSSAggregatorを使用しているサイトはどんなテーマでもXHTMLではなくHTMLになってしまう。

これはあまりにもまずいので、対応したバージョン1.3.2を公開した。といっても、上述の3行を削除しただけ。お騒がせして申し訳ないm(_ _)m。

教訓: lib-custom.php内で読み込む関数では、トップレベルで(= カスタム関数の外で)XHTML定数を定義してはならない。

2010年 4月24日追記: 「トップレベルで(= カスタム関数の外で)」の部分を加筆しました。

タグ:カスタム関数

  • 記事を友人にメールする
  • 印刷用ページ

Twitterプラグイン0.3.1

  • 2010年3月24日(水) 22:37 (JST)
  • 投稿者:
    mystral-kk
  • 閲覧数
    553
GeekLog

昨日公開したバージョン0.3.0では、キャッシュの制御がうまくいっておらず、「1時間あたり150回まで」というAPIの呼び出し制限を超えてしまっていた。このバグは修正できたと思う。

もう一つのバグは、記事を投稿したときに自動的にTwitterにも投稿する機能で、bit.lyでURL短縮を指定しているにもかかわらず、URLの一部が欠けたり、URLが丸ごと消えてしまうというもの。bit.lyにログインして調べてみると、APIの呼び出しには成功している。

この2つのバグの修正が確認できれば、バージョン0.3.1として公開するつもり。

  • 記事を友人にメールする
  • 印刷用ページ

カスタム検索関数

  • 2009年4月10日(金) 17:52 (JST)
  • 投稿者:
    mystral-kk
  • 閲覧数
    1,362
GeekLog

現在のGeeklogで検索対象になるのは、記事と検索APIを実装しているプラグインのみ。つまり、公開領域/docs/にあるhtmlドキュメントは検索されていない。ドキュメントの翻訳にかかわった者としてはもったいないの一言に尽きる。そこで、検索APIを調べてみると、カスタム検索関数を追加できるよう設計されていることがわかった。APIのシグネチャを調べて実装したのが、こちらのカスタム検索関数。対象のhtmlファイルを力ずくで検索するのであまり格好いい方法ではないが、ないよりはましと思う。

  • 記事を友人にメールする
  • 印刷用ページ

KZ_Templateクラス

  • 2009年4月 2日(木) 20:30 (JST)
  • 投稿者:
    mystral-kk
  • 閲覧数
    1,681
GeekLog

GeeklogがHTMLのレンダリングに使用しているのはPHPLIBのTemplateクラスで、Dirkさんが何かのカンファレンスでその制作者に出会ったときに「まだそんなもの使っているの? Smartyを使えよ。」と言われたほどの代物。軽量だが、変数置換などの最低限の機能しかないため、条件分岐やループ構造を単体では実現できず、PHPコードでレンダリングしなければならない。

開発時期が古いためか、コードを読んでも「なぜそんな実装?」と突っ込みたくなる箇所が多い。

このような状況で、JoeさんさんがCaching Template Library(CTL)を開発・公開した。オリジナルのTemplateクラスに、1. 条件分岐やループ構造を追加 2. デフォルトの変数を定義 3. テンプレートをPHPコードにコンパイル・キャッシュして、実行速度アップを狙った優れものである。MediaGallery-1.6.xはこのCTLがないとインストールすることすらできない。

上記1., 2.はありがたいが、モジュール版PHPが多い日本のホスティングサービスでは、パーミッションの関係で3.でつまずくことが多い。それと、これは私見だが、Geeklogのように各テンプレートファイルのサイズが小さい場合には、コンパイル・キャッシュの恩恵をあまり受けられないように思う。

そこで、CTLからキャッシュ機能を抜き、代わりにdengenさんが提唱しているTemplateクラスの高速化(file()をfile_get_contents()で、preg_replace()をstr_replace()に置き換えるなど。)と木下さんが実装したOverRide機能(該当テンプレートファイルがない場合、デフォルトのテーマに自動的にフォールバックする機能)を追加したKZ_Templateクラスを開発した。ダウンロードはこちらから。まだ、開発段階なので、いろいろバグが残っていると思われるが、Geeklogのコアファイルを改変しなくても使えるので、それなりの価値はあると思う。

  • 記事を友人にメールする
  • 印刷用ページ

Style Viewer

  • 2009年2月12日(木) 22:32 (JST)
  • 投稿者:
    mystral-kk
  • 閲覧数
    2,190
GeekLog

最近、JavaScriptを勉強している。食わず嫌いだったが、きちんとした本(O'REILLY®の「JavaScript(第5版)」や"JavaScript: the Good Parts"など)を読むと、結構面白い。何か実用的なものを作ってみたくなり、表題のStyle Viewerを試作中。マウスを動かすと、ツールチップと共に当サイトの右上ブロックにスタイル情報の一部が表示される。まだ、Firefoxでしか検証していないので、他のブラウザではうまく表示されない可能性大。しばらく放置して、需要があるようなら、プラグイン化することも検討するかも。

(2009年 2月13日追記)JavaScriptを修正して、IE7、Opera9、Google Chromeでも正常に動作するようにした。

  • 記事を友人にメールする
  • 印刷用ページ

テンプレート変数インジェクション

  • 2009年1月18日(日) 10:08 (JST)
  • 投稿者:
    mystral-kk
  • 閲覧数
    1,676
GeekLog

Geeklog.jpの掲示板のこのスレッドから始まったmore_article_linksカスタム関数だが、実装している最中に考えたことを参考までに記す。

続きを読む (29 ワード)

  • 記事を友人にメールする
  • 印刷用ページ

Geeklog-1.5用のPrecheck試作

  • 2009年1月12日(月) 23:47 (JST)
  • 投稿者:
    mystral-kk
  • 閲覧数
    1,723
GeekLog

少し時間ができたので、Geeklog-1.5.x用のPrecheck(インストール前診断)を試作してみた。db-config.phpの位置をビジュアルに探す機能とデータベースの接続をリアルタイムでチェックする機能付き。JavaScript(というか、DOM)の挙動の違いに戸惑った。Firefoxではエラーコンソール(+ Firebug)が克明にエラー原因教えてくれるので楽勝だが、IE7ではDeveloper Toolbarを入れていてもあまり役に立たない。ベースになるAjaxのライブラリは最低限の機能を備えた軽量のものをということで、SitePointのcore.jsを使用した。興味のある方は、こちらからダウンロードしてほしい。

PS. なお、使用後は必ず、admin/installディレクトリごと削除すること。放置しておくと、サーバのファイルツリーがある程度見えてしまう危険性がある。

  • 記事を友人にメールする
  • 印刷用ページ

RSS Aggregator改造版にdescription追加

  • 2008年12月22日(月) 20:12 (JST)
  • 投稿者:
    mystral-kk
  • 閲覧数
    1,772
GeekLog

ユーザの方から「RSS_Aggregatorでフィードのdescriptionを表示できないか?」というお問い合せがあった。何せ1年半ほど前に作ったスクリプトなので、覚えていない。アーカイブを引っ張り出してみると、わずかなコードの追加で実現できそうなことが分かったので、さっさと仕上げてアップロードした。ユーザの方からのフィードバック、リクエスト(あまり過大なものは困るが(^^;))こそがフリーソフトウェア作者を動かす力なのだと思う。

  • 記事を友人にメールする
  • 印刷用ページ

Geeklogの性能測定(その3)

  • 2008年10月11日(土) 13:57 (JST)
  • 投稿者:
    mystral-kk
  • 閲覧数
    1,825
GeekLog

前々回と同じ環境で(config.class.phpのキャッシュ機能あり)、CTL(Caching Template Library)あり・なしで違いを測定してみた。時間の単位はms(ミリ秒)。結果は以下の通り。

CTLなし CTLあり
平均実行時間(ms)平均比率(%)項目平均実行時間(ms)平均比率(%)
9.89.6index.php自体の読み込み16.213.6
30.429.8lib-common.phpインクルード30.225.4
28.427.8COM_siteFooter()34.429.0
20.219.8COM_siteHeader()21.618.2
7.87.7STORY_renderArticle()10.28.6
2.82.7lib-story.phpインクルード3.02.5
102.0 全体118.8

意外な感じがするが、自分が使用している環境ではCTLの恩恵を感じられず、むしろほんのわずかだがスピードダウンする。CTLとは違う方法で、テンプレートライブラリをハックする方法を考えてみようか。

  • 記事を友人にメールする
  • 印刷用ページ

Geeklogの性能測定(その2)

  • 2008年10月 5日(日) 16:02 (JST)
  • 投稿者:
    mystral-kk
  • 閲覧数
    1,867
GeekLog

前回と同じ環境(config.class.phpのキャッシュなし)で、public_html/index.phpにアクセスしたときに、lib-common.phpインクルードにかかる時間の内訳(5回の平均値)。時間の単位はms(ミリ秒)。0.2ms以下のものは適当に省いている。

項目実行時間比率
lib-common.php自体の読み込み19.449.0%
config->initConfig()9.423.7%
config->load_baseconfig()3.17.9%
lib-syndication.phpインクルード1.53.8%
staticpages::functions.incインクルード1.33.3%
links:functions.incインクルード0.82.1%
lib-plugins.phpインクルード0.71.7%
japanaese_utf-8.phpインクルード0.61.4%
polls::functions.incインクルード0.51.2%
smapx::functions.incインクルード0.41.1%
calendar::functions.incインクルード0.30.9%
SEC_getUserGroups()0.20.6%
合計39.6 

意外な感じがするのは、プラグインのfunctions.incをインクルードする時間が長いこと。同梱されている標準の5つのプラグインだけでも3.3ms(全体の8.7%)かかっている。

ついでに、public_html/index.php自体も計測してみた。

続きを読む (25 ワード)

  • 記事を友人にメールする
  • 印刷用ページ

サブメニューをスキップしてフッタへ

話題

ログイン

ログイン

Twitter

[twitter:block all]

過去の記事

土曜日 10-31


日曜日 10-18


土曜日 10-17


金曜日 04-10


木曜日 04-02


火曜日 03-24


日曜日 03-22


土曜日 02-21


木曜日 02-12



訪問者数(ユニーク)

昨日: 0342
今日: 0279

RSSフィード(RSS 2.0)

Who's Online

ゲストユーザ: 7

新着情報

記事

-

コメント (2日)

-

トラックバック (2日)

-

リンク (2週)

新しいリンクはありません

新着ファイル (14 日以内)

-
-

DokuWiki last 14 days

No new items

RSS Aggregatorデモ


ここからフッタ