駒形電産

自分のページにリンクが張られたらRSSで知らせてくれるTrackFeedを便利に使わせてもらっています。
最近、「なんで?」ってとこからリンクを張られてるのをよく見ます。

kuroki.png

とか。

今気づいたんだけど↓コレが原因か!

[PHP-users 25710] Re: mojaviでのサイト構築

以下のサイトを参考にしました
http://p0t.jp/mt/
http://ozaki.kyoichi.jp/mojavi3/transparentformobject.html

っっっつ!!!
haltさんとこがいつの間にか*を極めて起業するに!

PHPを極めて起業する

PHPLog: PHPEclipse1.1.4

出たみたいだけど、
http://pipestonegroup.com/eclipse/updates
↑eclipseでソフトウェア更新してもつながらない…

そうそう。超気になってるのにつながんないですよね。

PHPEclipse.de

There is also a BitTorrent file available? Just grab Azureus from Sourceforge if you haven’t and use this link:
http://pipestonegroup.com/eclipse/torrents/PHPeclipse-1.1.4-features.zip.torrent

BitTorrent試してみるいい機会なのかな?

PECL :: Package :: svn

PHP Bindings for the Subversion Revision control system.

PECLにlibsvnのバインディング。
PHPでSubversion、面白い何かができそうな気がするようなしないような。

PEAR :: Package :: Net_SmartIRC

Description

Net_SmartIRC is a PHP class for communication with IRC networks, which conforms to the RFC 2812 (IRC protocol). It’s an API that handles all IRC protocol messages.

IRCのBotとかすぐ作れるNet_SmartIRCの1.0.0がついに出ました。
イベントにリスナを登録してく感じで気軽に作れるのでコレを機にPHPコマンドラインアプリに目覚めるのも!

この間のMojaviバグ疑惑ですが、気になるのでもう少し調べてみました。

ForumのOld Supportに該当する投稿がありました。(去年の5月だからかなり前です。)

Mojavi Forum > ErrorLogger and Smarty

However, Mojavi’s controller automatically sets an instance of its own ErrorLogger class (opt/filters/ErrorLogger.class.php) as the error handler (thus overriding Smarty’s settings), which defaults to flagging E_NOTICE as a fatal error. So every time I set a {$tag} in my Smarty template that does not have a corresponding value set in my View, I get a FATAL error.

やっぱりSmarty使ったときE_NOTICEがFATALエラーってでて困ってます。

I would really like to see that change in the source Mojavi too, feti. Error handling is really weird right now.

Will you resist the plea of your people? Come on, be a good and just ruler here ;)

ところでMojaviって1人で作ってるんでしょうか?エラー直してくれってsetiという人を名指ししてるし、Mojavi Founderの肩書きも他に見当たらないです。しかし言い方が気に入らなかったのか、

The check against error_reporting() is used to decide when to log an error depending on whether or not it was supressed.

Without the check, or with improper checking an error that occurs from @function() would be reported, when you don’t want it to be. That’s why the checking exists. Otherwise it proceeds as normal.

問題無い的発言。

しかし、その後の発言で端的にまとめられてますがそのままでは困る点が。

  • Smartyで未定義の変数があるとFATALエラー
  • ロギングのとこでWARRNINGとERRORが逆
  • (上記のせいで)WARRNINGがでるとFATALエラーでスクリプトが終わる
  • ユーザーがerror_reporting設定しても無視される

最後のは別にいいかなと思いますがその他は露骨に困ります。

最終的には結局自己解決して終了してます。
SVNの2.0.1 DEV見ても変わってないので特に取り入れられて無い様子です。

もう2系はどうでもいいやって感じなんでしょうか。それとも「もうPHP4アンインストールしたよ」とかでしょうか。

ブランチとか厭なのでパッチを公開しつつ本家に「できれば・・・反映してもらえないかと・・・PLZ・・・」という地道な働きかけをして行きたいと思います。

ref: Mojavi + Smarty Undefined index地獄

KANOU.JP: 井川りかこ6(最終回)

結局は有料サイトへの誘導だったわけですが、スパムとわかりつつも、結局、最後まで読んじゃったし、各所でも話題になっているので、マーケティング的には成功だったんじゃないかと思いました。ストーリー仕立てで商品へ誘導するこの方法を「りかこマーケティング」と名付けて、今後に生かしていこうと思います。

りかこマーケティング!!!

はた迷惑なマーケティングですが、購入(支払い)までのストーリーを完全に用意する姿勢は見習わなければ!

Pro PHP:: The Podcast – Giving voice to the Professional PHP Community

Welcome to the Pro PHP Podcast. Your number one source for conversations, interviews, debates and op-eds with PHP pioneers, project heads, and companies using PHP. From PHP 5 to PEAR. From Databases to Daemons. The First All PHP Podcast.

PHPネタPodcast!

聞いてみたけど全然分からなかったおれが来ましたよ。

PEAR :: Package :: Services_Trackback :: 0.5.0

Changelog:

New API to check if a trackback is spam.
Implemented spam checks using Wordlist, Regex, DNSBL, SURBL.
Completed unit tests.
Refined overall API.

一度使ってみたいServices_Trackbackがアップデート。
主にトラックバックスパム対策関連の機能が入ったようです。ワードリスト、正規表現でのスパム対策はわかるとして、DNSBL、SURBLってなんだろう。

用語解説

「DNSBL」[専門][独自]

メールサーバにおいて、DNS(ドメインネームサーバ)レベルでのフィルタリングを行うブラックリストシステムのこと。DNS(ドメインネームサーバ)とはIPアドレスとドメイン名の対応付けを行うシステムの総称であるが、その対応付けの際にブラックリストを参照し、問題のあるサーバからの要求を受け付けないようにする、というものがDNSBLの根本的発想である。

なるほど、DNSのブラックリストと。

SURBL —Spam URI Realtime Blocklists

SURBL is an RBL designed to be used to block or tag spam based on URIs (usually their domain names) contained within the message body.

スパム送ってくる奴のブラックリストということですか。
国内のBlogは日本語が入ってるかどうかで大抵弾けちゃいますが、やっぱり本来はこういうやり方しかないんですね。
便利っぽい。使ってみたい。

ref: PEAR Services_Trackback

logging.png

Mojaviの地味プログラム公開。(こないだMojaviのクラス図雛形作っておいたので簡単に図で説明できる。ツイてる!)

EmailAppender.class.php

MojaviのロギングはLoggerにどんなAppenderをaddAppenderするかでログをどこに出すのか決めます。
opt/loggingにはデフォルトでStdoutAppender(標準出力に追加する)とFileAppender(ファイルに追加する)がありますが、本運用する場合に必ず必要なのがEmailAppender(メールに追加する=メール飛ばす)かと思って作りました。
具体的にはEmailAppender.class.phpをopt/loggingにでも入れてからindex.phpでLoggerにaddAppenderします。

$logManager =& LogManager::getInstance();
$deflog =& LogManager::getLogger();
$layout =& new PatternLayout('%N %c::%F() %m %d{r} %f:%l%n');
require_once(LOGGING_DIR."FileAppender.class.php");
$fileAppender =& new FileAppender($layout, LOG_DIR.'mojavi_%d{Y_m_d}.log');
$deflog->addAppender("file", $fileAppender);
<strong>require_once(LOGGING_DIR."EmailAppender.class.php");
$emailAppender =& new EmailAppender($layout, "komagata@p0t.jp");
$deflog->addAppender("email", $emailAppender);</strong>

上記の例だとLoggerはデフォルトでStdoutAppenderを持っているのでFileAppenderとEmailAppenderを追加してることになります。設定した閾値(レベル)を超えるエラーが発生したときにログを標準出力とファイルとメールに書きます。