April 18, 2006
coComment |
Tech and Software
|
だからなんだってわけではないが、index の "Recent Comment" の表示に coComment を使ってみた。
自分のブログの更新はサボりまくっているわけだが、他人のブログはよく読んでいるわけで、
時々どこかにコメントを残すこともあるのだけど、そのコメントに対して誰かが返事したかどうかを
チェックするのが、超面倒。なので、だんだんコメントするのも面倒になる悪循環。
ダメブロガーの典型です。はい。
ところが coComment のユーザーになり、
対応しているブログのコメントページで bookmarklet を実行してからコメントを入力すると、
全部 coComment にコピーが送られるのだ。でもって世界がみんな coComment ユーザーなら、
コメントに対する返信とか、自分が過去にコメントしたブログの他人のコメントとか、
きちんと coComment が管理してくれて、RSSで通知もしてくれるって寸法だ。
問題は日本に coComment ユーザーがほとんどいないってことかなぁ。
誰か僕と日本語で coComment してくれないかなぁ。
とか言ってみるテスト。
January 03, 2006
Hyper Estraier +estraierpure.php |
Tech and Software
|
さいきん Hyper Estraier が N-gram だけでなく形態素解析にも対応したので、ハイブリッドな検索の具合はいかがなものかと、正月休みにリニューアル開発中の某サイトに突っ込んでみることにしてみたら、これがまたハマった…
きっといつかサーバを引っ越すときに忘れてまたハマると思うので、メモっておくことにした。
Hyper Estraier を入れてコマンドラインでテストしたところ問題ないのだが、PHP バインディングの estraierpure.php 経由だと put_doc できない。つまり文書が登録できない。なんてこった。毎回コマンドを fork() してたら死んでしまう。
調べてみると、どうも PEAR の HTTP_Request がいけてない。
余談だが estraierpure.php 0.0.6 は setBody() を使うので、HTTP_Request 1.43 が必須のようだ。pear install だと 1.41まで しか入れてくれなかった。ケチ。っていうかなぜだ。とりあえず手動で入れて回避したので深く考えないことにする。
話を元に戻すと、estraierpure.php からのリクエストを受け取る側、Hyper Estraier ノードマスターのコード estmaster.c を見てみると、Content-type: text/x-estraier-draft つうのを期待しているようなのだが、この Content-Type が認識できずにエラーになってる。わがままだなぁ。
しかたがないので HTTP パケットをダンプして見てみると、なぜか Content-Type: ヘッダが二つある。HTTP の Content-Type ヘッダは複数あってもよいのだっけ? まぁそれは重要な問題じゃない(というかRFCを眺めるのが面倒くさい)。
で、estraierpure.php は new HTTP_Request() するときに、ちゃんとパラメータとして Content-Type を渡している。しかたがないので HTTP/Request.php を追いかけていくと、Method が POST の場合で、Content-Type ヘッダが存在しない場合に、デフォルトとして application/x-www-form-urlencoded を追加している。それは正しい気がするのだが、この判定が問題。
if (empty($this->_requestHeaders['content-type'])) {
// Add default content-type
$this->addHeader('Content-Type', 'application/x-www-form-urlencoded');
}
lower case しかチェックしていないのである。HTTP Header は case insensitive じゃなかったっけ?
そのくせ自分は Cap and Low でヘッダを足してるという矛盾ぶり…
なので、HTTP_Request 1.43 を使って、POST するときに、自前の Content-Type: ヘッダ *のみ* 使用したい場合は、addHeader("content-type", "hoge/hoge") と書かなければならないのだ。
そもそも estmaster が独自の Content-Type を要求しなければいけない理由はよくわからないのでさておき(そこまで追いかけるとさらに半日潰してしまう…)、とりあえず estraierpure.php の 1455行目あたりを s/Content-Type/content-type/ することで、一晩消費しただけで難を逃れることができた。
せっかくなので estraierpure.php の作者にも教えてあげたいけど、サイトに連絡先がないなぁ。残念。
BSDL なので、ありがたく改変して使わせていただいてます。この場をかりて感謝。
November 25, 2004
オープンソースSNS「wawawa」 |
Tech and Software
|
オープンソースの SNS エンジンがあるのね。
wawawa
参加・招待・コミュニティ作成・RSS登録などの、基本的な機能はひととおり実装されている感じ。PHP ベース。詳細は プロジェクトのWikiを参照。
これで g や m に続いて、SNS長者の道を他力本願レッツゴー!
ってなわけにはいかんなぁ。
November 18, 2004
Sleipnir開発中止? |
Tech and Software
|
「Sleipnir」「PictBear」の作者のパソコンが盗難に遭い開発中止に!?
大企業だとバックアップのロケーションを分散して災害に備えるようなことをするが、普通個人では、せいぜい動産保険に入るくらいで、こういうリスクの回避は難しいよなぁ…。ただ、知的財産の保全という意味では、SourceForge の CVS サーバーとかを使っていればよかったのかも。
むかし会社で、P2Pネットワークに暗号化してバックアップデータを分散保存しておけば安心、みたいな企画があったが、収益性が微妙で断念。どうでもいいデータは P2P に放流しておけば長期間保全されるのに、守りたいデータに限ってこういった盗難で全て失われてしまうってのが、どことなく皮肉な感じだ。
いずれにせよタブブラウザ利用者としては、Sleipnirの開発中止は残念としか言いようがないねぇ。
(といっても今使っているのは Donut P だが)
どこぞの会社でも、CVSサーバー1台の盗難で、ソースコードが全部紛失、なんてことがないように管理しなければいけませんな。なんといっても、デジタルデータは複製が効くわけだし。
November 12, 2003
キーボード付キーボード |
Tech and Software
|
104 + 37 = 141 key キーボードと言ってもよいのだろうか?
見てそのまま、キーボード付キーボード。どっちが付属品とか、そんな野暮なことは聞いてはいけない。全世界の MIDI プログラマー必携の一品だ。
ぷらっとホームの店頭にあるらしい。久しぶりに食指の動くキーボードだ。
ちなみに自分は IBM SpaceSaver 84key 愛用中。会社では「打鍵のうるさい男」と呼ばれて久しい。
自宅では UNI04C6 を使っているので、時々配列が混乱するのが悩み(?)
こいつらを使っていると、他のキーボードは使えません。物足りなくて ;-)
August 26, 2003
SPAMフィルタ |
Tech and Software
|
SobigFウィルスの吐くSPAMが余りにも多く来るので、だいぶ前から懸案だったSPAMフィルタを設定しようと決意した。
ベイジアンフィルタ系の実装は最近すっかり流行中で、spamassasin なんかにも実装されているらしいが、今回は bsfilterを試してみることにした。
いや何でって、たんに Mew のインタフェースがあるから、ってだけの理由なんだけど・・・
インストールは簡単。Webページに書いてあるとおり。なにも補足なし。あ、bsfilter コマンドに PATH 通しておかないと、Mew インタフェースから操作したときに、見事にメール消してくれます。エラー処理、端折りすぎ・・・
(文句あるなら contrib しろよ>俺)
さて、この日のために溜めておいた SPAM データ一式と、適当な(not SPAMな)フォルダの中身を、お腹一杯フィルタに食わせて、ついでにここ数日の SobigF のメールも食わせて、フィルタの学習完了。
とりあえずフィルタの誤爆が怖いので、procmail で強制振り分けをせずに、しばらくは一通ずつ手動で振り分けてみることにした。bsfilter を設定している間にも、ふつーのMLに投稿されたメールや、怪しげなSPAMや、SobigF のメールなどが、たんまり inbox に溜まっていたので、さっそく試してみる。
ざっと30~40通くらい試してみた感じでは、普通のメールを SPAM と誤爆してしまうケースはなかった。まぁ、default の Paul Graham(A Plan for SPAMを書いたひと)のアルゴリズムでは、だいぶ not SPAM 側にバイアスがかかってることだし、こんなものかな。
あきらかに SPAM なメールを not SPAM と判断してしまうケースはいくつか。これはすかさず Mew の Summary Mode で bs して SPAM 学習させる。この調子で教育すれば、ボチボチよくなるかな。
問題は、今一番の悩みのはずの、SobigF メールが、うまく SPAM と認識されないこと。
よく考えてみると、「Subject: Re: Thank you!」のほかには、単語らしい単語がないワケで、text/* なパートを統計的に相手する一般的なベイジアンフィルタでは防御が難しい気がしてきた・・・
やる前に気がつけよ、って話もある。
というか、こういうウィルスの出すメールこそ、統計的手法でなく、ルールベースのほうが強いのか。なるほど、みんな Razor とかと組み合わせて使ってるのは、こういうことか。
これだけ SPAM が増えると、ルールベース+ヘッダ解析+統計的手法+ブラックリスト・ホワイトリスト管理を組み合わせた、効果の高い簡単な SPAM 撃退ソリューションを作れば、ビジネスになるかなぁ。でも MUA が自前で実装しちゃったら意味ないか。
まだしばらく SPAM との戦いは続きそうだ・・・
August 22, 2003
J-Phone のメールサーバー |
Tech and Software
|
Webを使ったビジネスを企画すると、必ずといっていいほど必要になるのが、メール配信機能だ。ナマケモノエンジニアとしては、車輪の再発明をするのが大嫌いなので、だいぶ前にemailの大量配信エンジンを作ってみた。APIを呼び出すと、JMSでキューを管理して、時間指定やら設定に応じて、メール送信サーバーが分散並列に送りまくる仕組みで、SPAM屋さんが喜びそうな仕様である。
それを使って、勤務先のサービスとして、お客さんのメール配信代行みたいなことをやっているのだが、なにげに MRTG で眺めていると、最近妙にキューの掃けが悪いことに気がついた。
同僚の調査によると、携帯電話の J-Phone アドレス向けのキューだけ、ぜんぜん配信されてない。300通くらいの配信に、丸一日近くかかってる。
配送の log を見てみると、あるとき突然 J-Phone のメールサーバーが、完全にこちらからの接続をブロックしてしまうのだ。再送をかけると、送れるときもあるが、またすぐにブロックされてしまう。送信に失敗するほど待機時間を長くして再送するようにしていたので、どんどん待機間隔が長くなって、全部の配送完了まで非常に時間がかかる…てな状況。
どうやら、いわゆる J-Phone の「迷惑メール対策」らしいのだが、User Unknown なメールを5通くらい送ると、J-Phone のメールサーバーはウチからのコネクションを受け入れないようになって、その後15分くらいはダンマリなまま。えー、たった5通でオテアゲかよ!
なので、お客から預かったメールアドレス(もちろん全部オプトイン済)の中に、メールアドレスを変更したり解約したりして、既に不達の J-Phone アドレスが混じっていると、その他の J-Phone アドレスへの送信に、異常に時間がかかることに。
そりゃー、電話番号ジェネレーターでメールを送りまくる業者もいるし、おかげで J-Phone のメールサーバーは過負荷でいつもパンパンだって噂も聞くし、迷惑メールが地球上の全メールの50%を超えたなんて調査もあるから、何か対策が必要なことはわかるんだけど、あまりに困った仕様だなぁ。
DoCoMo の場合は 特定接続サービス が出来たおかげで、一時期にくらべ配信がだいぶスムースになったけど、J-Phone には同様のサービスすらない。どないせいっちゅーねん。ベッカムなんかCMに使う金があったら、メールサーバーに金かけんかい! それともアレか、ベッカム様が、うちのメールもゴールに運んでくださるってか、オラ。
…って、別に俺は J-Phone の顧客でも何でもないので、そんなこと言えませんが。
Vodafone に変わったら、マシになるのかなぁ。期待ageしとくか。
とりあえず J-Phone アドレスのメールは全部集めて、 serialmail で送りつつ、ダンマリくらったら17分間隔でリトライするように設定することで、多少マシになった。エラーになったアドレスを抽出することは出来ているので、フィルタしちゃえばよいのだけど、こちらはお客様と相談しないことにはナントモ。
July 25, 2003
WATER and STEAM |
Tech and Software
|
最近 update をサボってたので、今日は連チャンで…
新興企業Clear Methodsは、XMLデータの処理専用に設計されたプログラミング言語「Water」を開発した。同社はWaterによって、プログラマーがWebサービスを手がけるために習得しなければならない膨大な量の言語の代替となる汎用言語を開発したと説明している。
製品はさておき、このロゴがいい感じ。
なぜ水と湯なのかは、よくわからんけど…
July 11, 2003
縦書きブラウザ「影鷹」 |
Tech and Software
|
影鷹(かげたか)は HTML を縦書きに表示するためのソフトです。 (中略) 文章は、日本語(全角文字)であれば縦に並んで表示され、英語(半角文字)であれば右に 90 度回転されて表示されます。画像は、縦横比とサイズ、種類により、そのまま表示されるか 90 度右回転されて表示されます。これは、横長のロゴなどは回転させて表示した方がいいのに対し、写真などは回転させずにそのまま表示した方が見やすいからです。
だいぶ楽しいので、Applet を設置してみました。
んー、段組が崩れるのが難点かなー。影鷹 Best Viewed なサイト目指して精進せねば :-)
July 09, 2003
Netscape 7.1 リリース |
Tech and Software
|
Netscape 7.1 がリリースされた。
アンドリーセンは「もはやNetscapeに革新はなく、見苦しいだけだ」と切って捨てたという話。
俺も Netscape/Mozilla を使わなくなって久しいのだが、7.1 には唯一注目する機能がある。Netscape Mail だ。
ここに書かれている「ジャンクメールコントロール」というのは、どうやらベイジアンアルゴリズムを実装したSPAMフィルターらしい。これは評価に値するかも。
といっても、個人的にはメールを emacs 以外で読む気はしないので ;-) SPAM に悩む社内の連中に奨めてみようかと。
NRIがEclipse利用ガイドを公開 |
Tech and Software
|
NDO::Weblog より、野村総合研究所が Eclipse の利用ガイドなどのドキュメントを公開、とのこと。
株式会社野村総合研究所(本社:東京都千代田区、社長:藤沼 彰久、以下NRI)は、オープンソースに関連したマニュアル、利用ガイドなどの社内資料を無償で公開することにいたしました。NRIでは、社内のノウハウを積極的に公開することにより、オープンソースの健全な発展に貢献したいと考えております。
よき心がけである。しかしドキュメントの多くは、NRIのフレームワーク製品と連携して使うための利用ガイドになってるな。まぁ、製品の宣伝が狙いなのではなく、社内資料を公開したため、だと思っておこう…
ドキュメントそのものは有用そうな気配。
July 07, 2003
ベイズ理論SPAMフィルタ日本語版 |
Tech and Software
|
bsfilter / bayesian spam filter / ベイジアン スパム フィルタ
日本語に対応したベイジアン SPAM フィルタの実装を発見。mew 用のフロントエンドもあるぞ。
しかし、今まで SPAM なメールの収集なんてしてこなかったので、統計情報を作成するために最初に食わせるデータがないずら…
June 25, 2003
LindowsOS ベータ募集 |
Tech and Software
|
ZDNN:「LindowsOS日本語版」ベータテスターを募集
ついに日本語版ベータ募集がはじまった LindowsOS。当初の目論見どおり Wine が既存の Windows アプリケーションを何でも動かす、という夢はなくなったけど、OpenOffice あたりも良くなってきているようだし、OS のみならずアプリケーションも Microsoft の呪縛から解かれるためには、よい選択だったのかも。
しかし国内では Edge が販売するってことに驚いたのだが、なんか このへん とか このへん の噂じゃ、担当役員が失踪中とか…
あ、今見たら /. でも騒がれてるし。大丈夫なんかいな。
June 12, 2003
免許証ICカード化 |
Tech and Software
|
asahi.com : IC運転免許証、早ければ来年度末に 警察庁が仕様公表
IC化は免許証の偽造防止などが狙い。更新や「反則切符」作成の時間が短縮されるという。 また、プライバシー保護のため本籍欄は免許証からは削除し、ICだけに入れる。
反則切符の作成時間が短くなっても、全然うれしくないぞ。どうせならETCカードと一緒になって、免許証もってればゲート通れるようになってればよいのに。免許不携帯も減って、一石三丁だ。
どうせETC通れるなら、決済が必要だから、ついでに公安VISAカードとか言って免許証付クレジットカード(クレジットカード付免許証?)にすればよいのだ。suica とかも相乗りしてほしいぞ。
さらに、公安VISAでショッピングすると、ポイントがたまって、免許の点数に還元できます、とか。すばらしいインセンティブだ。非模範的ドライバーは、ポイントが不足すると買い物しまくる、と。消費刺激効果抜群。構造改革万歳。
でもそうなると、反則金の支払も一括引き落としになるのか。。。
巨額の反則金だと、5%の点数が還ってきます、って言われても嬉しかないな。
続アンチSPAM |
Tech and Software
|
先日 アンチSPAM で Aliencamel のことを書いたら、その Aliencamel からメールが届いた。
「お前の Blog で紹介してくれてありがとよ。俺達は日本語読めないけど、もし興味があれば trial account やるから、楽しめベイベー(意訳)」てな感じ。
こんな辺鄙な Blog を、よく見つけたもんだなぁ…
しかし元記事では「ただのブラックリスト構築じゃん」とか書いてしまっていたので(実はホワイトリストも使うようだが)、彼らが日本語を読めなくてよかった。。。
ついでに友人で SPAM 研究家のK内君に、統計学的手法による Anti-SPAM について教えてもらった。ベイズ統計を使うのが、ナウなハッカーのあいだで流行ってるらしい。
スパムへの対策 ---A Plan for Spam
ベイジアンフィルタの改善 --- Better Bayesian Filtering
ちなみに肉製品の缶詰じゃなく、迷惑メールをさすときには、SPAM でなく spam と書くのがオススメらしい。
関係ないけど、某おっさん曰く
「あのさ、最近SMAPからメールが届くんだけど、迷惑でさ」
そりゃすげえ。迷惑メールはジャニーズの陰謀だったのか…
もっと関係ないけど、SPAMオムスビ、好きです。
June 11, 2003
Java の新ロゴ |
Tech and Software
|
FreeML JavaOne ML に投稿された JavaOne 2003 のレポート によれば、Java のロゴが新しくなったらしい。
さっそく確認のために Java屋の聖地 を訪れてみると、確かになんか違う感じが…

ちなみに古いロゴは以下のような感じだったので、確かにコーヒーの絵も単純化しているし、Java のフォントも飾りのないものに変更されている。

実際同じサイズで並べてみると、新しいロゴのほうが、だんぜん見やすいのは事実ですな。
June 05, 2003
PEAR |
Tech and Software
|
数年ぶりに PHP の世界を見回してみると、なんともプログラマも増えたし、環境がだんぜん強力になっていて驚いてしまう。まったくもって、浦島太郎だ。
(そりゃ、PHP/FI とか呼んでた時代と比べるべくもないのだが…)
昨日 Smarty をメモしたが、PEAR にもテンプレートエンジンが含まれていることに気がついた。
(今ごろ気がつくな、という話もある)
PHPDoc も、この PEAR の一部だったのね。どうやら昨今の PHP プログラマには、超お馴染みなブツのようだ。Java でいう Jakarta のようなものか? ちょっと違うか。
June 04, 2003
Smarty |
Tech and Software
|
Smarty は、PHP 用のテンプレートエンジン。
商用サイトを本気で作ると、プログラマとデザイナで分業したくなるわけだが、PHP のように HTML 埋め込みがたスクリプト言語だと、分業がうまくいかない。Smarty は、それを解決するためのテンプレートエンジンだ。
作成したテンプレートは、最初のアクセス時に PHP コードにコンパイルされるらしい。まるで JSP みたいで面白い。
May 28, 2003
アンチSPAM |
Tech and Software
|
Aliencamelが開発した「Pending Email Advisory」技術は、差出人だけでは迷惑メールかどうか判断できなかったメールを「Pending Email」フォルダにまず収める。このフォルダのメールは800のパラメータに基づいて精査され、迷惑メールかどうか判定を下してから、利用者に最終的な判断を求めるアドバイザリーメールを送信する。このメールはHTML形式になっており、差出人を信頼できる送信者として認めるか、それとも迷惑メールと断定するかの判断をクリックひとつで決められる。この段階で利用者が迷惑メールに指定した場合、その送信者からのメールは二度と受け取らずに済む。
これだと単にブラックリストを構築しているのと変わらない気が…
MAPS RBL とか CDDB みたいに、どこかに SPAM-DB が用意されていて、本文や Received: の根元(を読み取るのは少し面倒だけど)なんかを比較して、受け取ったメールが SPAM かどうかを自動的に判断してくれればよいのに。
で、新しい SPAM だとクリックひとつで SPAM-DB に登録できて、世界中で共有できる、と。
これでも本文なんかを One To One に書きかえられたりしたら、イタチゴッコになるかなぁ。
では自分が送信したことのあるアドレスはホワイトリストに入れるとか、そういうのと組み合わせて 「SPAM らしさ」をスコアリングするとか…うーむ。
さいきん、SPAM 撲滅には技術的アプローチでなく、法的規制をかけてプロバイダで網をはるしかないんじゃないか、と思わないでもない。技術的に give up するのは、なんともいえず悔しい気分だが…
May 25, 2003
XPlanner |
Tech and Software
|
eXtreme Programming 実践型のプロジェクト管理ツール。イテレーション、ストーリー、タスクなどに基づくプロジェクト管理を Web ベースでおこなうことができるようだ。
そのまま使うと文字化けするが、日本語が通るように quick hack した人がいる。
May 19, 2003
IM Bots |
Tech and Software
|
IM というと Input Method とか思ってしまうが、Instant Messanger のこと。既存の IM プロトコルを喋る独自クライアントである IM Bot を作っている開発者のコミュニティを発見。
MSN Messanger のプロトコル実装は、Java, Perl, Ruby 版があるようだ。こうした実装を使えば、例えばメールが来たことを comsat よろしくチェックして、自分の IM アカウントにアナウンスする biff bot みたいな使い方ができる、ということか。
面白そうなので、そのうち遊んでみたいぞ。
May 15, 2003
Phrame |
Tech and Software
|
Phrame is a web development platform for PHP based on the design of Jakarta Struts. Phrame provides your basic Model-View-Controller architecture, and also takes a step further adding standard components such as: HashMap, ArrayList, Stack, etc...
Struts 風の MVC を書ける PHP フレームワークだって。
ちょっと見てみたら、Hashmap はあるわ、API ドキュメントは JavaDoc 風の phpdoc とやらになってるわ、なんというか Java と混乱しそうな雰囲気だ…
だったら Java で書けばいいじゃん、と言われたらそれまでだな。


