Shibuya.js #2 会場に到着

場所は、IIJの会議室。参加者の層は幅広そうな感じ。

LL Ringのチケット購入

月曜日発売開始のチケットはあっという間に売り切れになったようです。私は火曜日のうちに、なんとか入手しました。チケット代、そんなに安くないのに凄い人気だなー

今から楽しみなんだけど、LL Ringのサイトの写真みたいな人がいっぱいいたら嫌だな…

Akismetを使ったトラックバック・スパム対策

いい加減にトラックバック・スパムがうざくなってきたので対策してみました。COREBlog2におけるコメント&トラックバック・スパム対策に関しては、清水川さんが纏めてくれているので、それを参考にAkismetというWordPress標準の対策機能を使ってSPAM判定をするようにしました。

1. akismet.py をダウンロードしてパスの通った所(/usr/lib/python2.3など)に置く

2. akismet.pyをZope環境から呼び出せるように設定

[Zopeのディレクトリ]/Products にGlobalModulesという名前のディレクトリを作成
下記の内容の __init__.py というファイルを中に作成
from Products.PythonScripts.Utility import allow_module
allow_module("akismet")

3. WordPressのアカウントを登録して、APIキーを取得

APIキーは、http://wordpress.com/signup/ でサインアップするとメールで送られてきます。

4. ZMIから portal_skins/COREBlog2/tbping を編集して、太字部分のコードを追加
from Products.CMFCore.utils import getToolByName
from Products.CMFPlone.utils import log
import akismet

cbtool = getToolByName(context, 'coreblog2_tool')

REQUEST = context.REQUEST
form = REQUEST.form
RESPONSE = context.REQUEST.RESPONSE
entry = context

excerpt = ''
if form.has_key('excerpt'):
    excerpt = form['excerpt']

title = cbtool.convert_charcode(form['title'])
blog_name = cbtool.convert_charcode(form['blog_name'])
excerpt = cbtool.convert_charcode(excerpt)

#Try to add trackback
try:
    #Check SPAM
    is_spam = False
    my_api_key = "xxxxxxxxxxx"
    try:
        real_key = akismet.verify_key(my_api_key, context.absolute_url())
        if real_key:
            is_spam = akismet.comment_check(my_api_key,
                          context.absolute_url(),
                          REQUEST.getClientAddr(),
                          REQUEST.get('HTTP_USER_AGENT', ''),
                          comment_type="trackback",
                          comment_author_url=form['url'],
                          comment_content=form['excerpt'].encode('utf-8'))
    except Exception, e:
        log( 'COREBlog2/tbping: '
                     'akismet exception occured, %s' % e )
    if is_spam:
        raise RuntimeError, 'akismet judged as SPAM. %s' % form['url']
    #Send notify mail if need
    if context.getSend_trackback_notification():
        try:
            to_addr   = context.getNotify_to()
            from_addr = context.getNotify_to()
これで問題のトラックバック・スパムは、ほぼ防げているようです。でも、自分でテストした感じでは、問題のないトラックバックもスパムと判定して弾いちゃうことがあるようです。とりあえず、これでしばらく様子をみますが、”ここはまずいんじゃないの”とか”もっと良い方法があるよ”とかのツッコミは大歓迎。


関連リンク:
Akismet in Python and API docs

Python Challenge - Level 6

なぜか今頃になって、The Python Challengeに挑戦しているわけなんですが、Level 6で行き詰まりました。

電車の中で「チャック半開きの画像」を見ながら、うーんと唸っている人がいたら僕です。あんまり近寄らないほうがいいと思います。変態がうつるといけないので。まぁ、危害を加えたりはしませんが…

http://www.pythonchallenge.com/

Python Challengeは、プログラミングで解けるなぞなぞです。中にはPythonモジュール依存な問題もありますが、他の言語でも大丈夫だと思います。なんと、 PL/SQLで解いてる人 (←ネタバレかもしれないので注意)もいたりします。問題は、Level 33まであるらしい。先は長いな~

telnetでワールドカップ中継

./images/worldcup_20060620.gif

telnetで接続すると、アスキーアート(AA)でワールドカップ中継をしてくれるサイト。

http://ascii-wm.net/

試しに接続してみたのですが、アクセスが殺到しているらしく繋がりませんw

$ telnet ascii-wm.net 2006
Trying 213.129.247.65...
Connected to ascii-wm.net (213.129.247.65).
Escape character is '^]'.
too many connections :)  .. try later
Connection closed by foreign host.

似たようなものでは、telnetでSTARWARSが見られるサービスが昔からありますね。

Try! "telnet towel.blinkenlights.nl"

CFUSION_ENCRYPT関数をPHPで書いてみる

思いっきりチラシの裏。中身は文字列とキーの排他論理和をとって16進化してるだけ。

function cfusion_encrypt($text, $key) {
    $keylen = strlen($key);
    $j = 0;
    $newval = "";

    for ($i=0; $i<strlen($text); $i++) {
        if ($i >= $keylen) $j++;
        $wd = (ord(substr($key, $i - $keylen * $j, 1)) ^ ord(substr($text, $i, 1)));
        $newval = $newval . sprintf("%02X", $wd);
    }
    return $newval;
}

このクレジットカード本当に必要?

初年度年会費無料に惹かれて作った某クレジットカード。ガソリン代が割引になるわけでもなく、モバイルSuicaに利用できるわけでもなく、かといってEdyにチャージできるわけでもない。あまり使わないし、もうすぐ2年目で年会費を取られるのは嫌なので解約することにした。

サポートデスクに電話して解約の意向を伝えると、まず別の担当(どうやら解約専門の人らしい)に転送された。そして、どうして解約するのか?としつこく聞かれた。SuicaやEdyに使えないし、あまり使わないからと正直に言うと、ポイントも貯まっているし、海外旅行に行くなら絶対に持っていたほうがお得ですよと、その人は延々と説明してくれた。

でも本当に必要ないので、それでもずっと渋っていたら、なんと「年会費を半額にするから解約しないでくれ」との申し出。えっ、そんなことできるの?それなら、ちょっと考えてもいいかなとは思うものの、やっぱり年会費無料のカードは他にいろいろあるし、あんまり持っていることのメリットが浮かばない。

僕は高い買い物は全部カードでして、自動車税もEdyで払ってポイントを貯めるようにしてるんだけど、何枚も持っていてもあんまり意味がない気がする。個人的には、 買いものをして貯まったポイントをSuicaにチャージできるカード が気に入っているんだけど、どうしようかな…

鮭とばテラウマス

ちょっと前に、友達が北海道で買ってきたという「鮭とば」を初めて食べました。鮭をスライスして干したものなのですが、これがとても美味でした。酒の肴にぴったりで、また食べたいなぁーと思っていたら、近所のドンキホーテに売ってるのを発見。明太味と両方買ってきました。

これはやばい、一度食べると止まらない…

残業しないで帰るSEって、やる気ないんじゃない?

残業しないで早く帰ることを略して、GHQ(Go Home Quickly)っていうんですね。 Natural High さんのところで知りました。

以前に比べたら、徹夜するような仕事って大分減っていると思うのですが、それって自分の周りだけなのかな。でも、いまだにいますね、残業自慢するSE。そろそろ「残業自慢は、カコワルイ」っていうことに気づいたほうがいいよ。自分が能力がないのを宣伝してるのと一緒なんだから。ただ、普通の会社ではダラダラと残業している人のほうが給料多いという罠..

僕の知ってる凄い人はみんな、仕事が終わった後の深夜や休日、自主的に勉強している。自分はまだ独身だから時間を自由に使えるけども、奥さんや子供がいるのにオープンソースで成果を出している人は本当に凄いと思う。めちゃくちゃ頭がいいか、めちゃくちゃ効率いい方法で開発しているか、WifeHackの技を使って奥さんを開発(もしかして奥さんにコード書かせてるのか!?)しているかのどれかだろう。また、勉強じゃなくても、趣味の世界や他業界の人など仕事では絶対会わないような人と話すことも大切。そこで得た知識や発見から、現在の仕事を効率化したり、新しいアイデアを考え出したりすることができる。そういう正のスパイラルを作り出すことが、残業しないでかつ成果をあげる秘訣だと思う。

残業だけの生活でそれができるだろうか?ただ、ルーチンワークをこなすだけなら、何も考えずに今の効率の悪い方法を続けていけばいいかもしれない。でも、世の中は常にめまぐるしく変化しているんだから、現状維持っていうのは、退化しているのと一緒なんだよ。昨日のサッカー、オーストラリア戦もそうだ。1点とった後に現状維持でいいや的な雰囲気だから負けるんだよ。

と、たまには愚痴をこぼしてみる。


追記: タイトル変えました。(2006/06/17)

引越し完了

無事に引越し完了しました。ネット環境だけは、モデム取り付け作業の都合により、人間の引越しから1日遅れだったのですが、こちらも無事に完了。しかし、かなーり疲れました。社会人になってから、なんだかんだで1.5年おきくらいに引越してるんだけど、次こそは最後にしたいと思いました。

でも、苦労した甲斐あって、以前よりも快適に生活できるようになったかも。まー、やっと人間的な生活ができるようになったというか。まだ部屋にはダンボールが散乱してたり、シュラフで寝てたりするんですが、これは少しずつ片付けていこう。

そして、落ち着いたら SQLAlchemy のほうをぼちぼち調べていこうと思っています。僕は、SQLの実行計画とかを見てチューニングしていく作業に喜びを感じるタチなので、普通のORマッパーじゃ満足できないのです。これは、かなり強力っぽい。あとは、これが本当の意味での錬金術(=ビジネス)に直結すれば良いのだけど…

トヨタ2000GTに遭遇した!

会社帰りに、トヨタ2000GTが道端に止まってた。

スゲー!!!!

一目散に近寄り、その美しいボディを堪能する。塗装も綺麗だし、メッキの部分もピカピカでかなり程度がいいようだ。うんうん、きっとオーナーに大事にされてるんだろうな。うぉー、ソレックス・キャブの生音聴きて~、と思ったけど、残念ながらエンジンはかかってなかった。モーターショーでも何度か見たけど、動物園で見る虎と野生の虎が大きく違うように、街中で見る2000GTはその存在感が明らかに違う。遠くからでも2000GTだと一発で分かった。もう、舐め回すように見てやった。たぶん、スゲー!とか独り言も言ってたと思う。自分で言うのもなんだけど、ある意味変態だ。

と、ここで何だか周りの雰囲気がおかしいことに気づいた。なんか、専用のライトで照らされているし、どう見ても車好きとは思えない若い兄ちゃん姉ちゃんがいっぱいいる。車しか視界に入ってなかったけど、よくよく考えるとドラマの撮影のようだ。ふーん、ドラマには興味ないや、ここは邪魔しちゃ悪いなと思って立ち去ることにした。

余韻に浸りながら歩いていると、前を歩いていた兄ちゃんが冊子を落とした。親切な僕は「落ちましたよー」と、その冊子を拾ってあげた。チラッと見ると、それは台本だか絵コンテみたいなもので、表紙にはこう書いてあった。

「結婚できない男」


それは僕に対する嫌がらせなんでしょうか?正直、ほっとけ!と思った。2000GTに遭遇して上がったテンションも一気に下がって、一人寂しく帰路につきましたとさ。

May the Forth be with you!

こないだ紹介した“Plaggerで人工無能”のYTPXさんが、ブログ名を 「はじめてのForth」 に変更していろいろ調べているようです。
スパム対策のため、コメント欄がないのでこのブログでコメント。
・はじめてのForth
Forth言語 で作るということでしょうか?
・CVSはじめました。
Subversion使うならCVSは要りません。むしろ、Trac使うならSVNじゃないと。
・Planet MeCab
それPlaggerでできますよ。
・RSS配信のお願いメール
「これもPlaggerで」と言いたいところですが、サイト管理者に直接RSS配信を依頼してみるというのは、大事なことかも。

自分に一番足りないものかもしれない、その行動力には感心する。今は放射状に広がっているっぽい興味が、どう収束していくかが気になるところ。応援してるので頑張ってください。また、メールでも情報交換しましょう。

K.AND HIS BIKE / the band apart

またまた届いたバンアパのCD。今度のは、K.AND HIS BIKE で、これがファースト・アルバム。「アシッドジャズやダンスクラシックなど多種多様なテイストを取り入れたロック・サウンド」と紹介されているけど、まさにそんな感じ。オリジナリティに溢れ、誰にも似てない。バンド名は、クエンティン・タランティーノの映画製作会社「A Band Apart」から取ったらしいです。確かにパルプ・フィクションな香りもするかも。僕は、「Eric.W」「Snowscape」「Take a shit」が気に入りました。

# 7月24日に新宿LOFTで行われるライブに出演するらしいです。チケット買おうかどうしようか考え中。


最近のTop Artists. 6/5のデータなので、今はもっと差が付いてると思われます。2,3位が懐メロなのはスルーしてください。

auの仕様変更に伴う不具合

auからのお知らせ

昨日(6月6日)6時57分より、「.」(ピリオド/ドット)を連続して使用、もしくは「.」(ピリオド/ドット)を@マーク直前で利用したEメールアドレスをご利用され、メールフィルター機能を設定しておられるお客様におきまして、Eメールが受信できない事象が発生しておりましたが、本日(6月7日)8時36分に解消しております。

auのメールが一番デキがいいからi-modeから乗り換えて今まで使ってたのに、最近のRFC違反な仕様変更にはがっかり。さらに自らトラップにひっかかってるし…

ナンバーポータビリティで移ってくる人のために、DoCoMoの仕様に合わせたのだろうけど、これはひどい。157に電話したら、顧客の意見を聞いてもらえるのだろうか。

pdaXrom beta4 for C7x0/860/7500

出ました!やっとKernel 2.6なpdaXromが僕のboxerでも動かせるよ。
あー、でも今手を付けてしまったPythonのプログラムがあるので、インストールはもうちょっと我慢。例によって、「for extreme testers only」と思われるので注意してください。

6/7現在 「brocken - wait for fixes」となっているので注意

beta4 for C7x0/860/7500 | pdaXrom


ちなみにSLシリーズのZaurusには、コードネームとして犬の種類が付けられていて次のようになっています。無線LAN、Bluetooth内蔵で薄型と噂される次期ザウルスは、どんな名前が付くんでしょうね。 新しいW-ZERO3 がメモリ256MB搭載らしいので、新型ザウルスにはかなり期待してたりします。( 追記: と思ったんだけど、追加されたのはフラッシュメモリでSDRAMは64MBのまんまじゃん。意味ねー)

SL-B500 Poodle
SL-C700 Corgi
SL-C750 Shepherd
SL-C760 Husky
SL-C860 Boxer
SL-6000 Tosa
SL-C3000 Spitz
SL-C1000 Akita
SL-C3100 Borzoi
SL-C3200 Terrier

恋するPlagger大作戦

香港の映画 ではありません。 YTPXさんのブログ に次のようなことが書かれていて、とても気になりました。

Plaggerで人工無能 とかがやってみたいので これから調べていこうと思います。

それって何なんでしょう?興味津々。

  • Plaggerで取得したRSSの文章を学習させる?
  • 入力RSSに対する人工無能の反応をPublishするプラグイン?
  • もしかして、Plaggerが恋をしたりするんだろうか?

いや、僕が今考えているアイデアに繋がってくるかもしれないので、とても気になるのです。


6/7追記: YTPXさんにトラックバックで回答頂きました。コメントを許可されていないようなので、ここで返信。なるほど、「入力*ルール*アクション*出力」ということで、2番目のプラグインですね。

quake and brook / the band apart

またまた注文していた“the band apart”のCDが届きました。インディーズなので新星堂には置いてありませんでした。こういう時はやっぱりAmazonです。

quake and brookという1年前のアルバムです。ギターも最高なんだけど、ボーカルも艶があっていい味だしてるんだよなぁ。あと、DANIELS E.P.よりもベースが存在感ありますね。歌詞は全部英語なので、日本のバンドだっていうのは言われないと分からないかも。ただ、「coral reef」に関してはMock Orangeのほうが良かったかな。

ライブに行きたい!ライブに行きたい!

追記:mixiでコミュを探したら、7,000人とかいて焦りました。そっか、自分は最近知ったのだけど、世間では大人気なのか > バンアパ

追記:新曲「led」のPVがMusicnetで見れます。要Real Playerですけど、めちゃくちゃカッコイイ。

透過フェチにおすすめ、半透明PuTTY

僕は透過フェチです。ウィンドウが透け透けになっているだけで、何となく嬉しい。

Linuxデスクトップで作業しているときは、当然ながらコンソールを半透明にしてるし、Windows上でもCygwin用の ck という半透明にできるターミナルソフトを使っています。最近、Cygwinはあんまり使ってないですが。

で、最近になってPuTTYでも半透明化できることが分かりました。 PuTTY マウス選択挙動変更+背景半透明化+文字ふちどりパッチ を使うといいらしいです。使い方は、ダウンロードして解凍したファイルを実行するだけです。PuTTYを既に使っている場合は、PuTTYのフォルダに上書きしましょう。透明度は、設定の「ウィンドウ-色」で設定できます。

素晴らしい。しばらくこれで生活することにします。

引越し準備

来週に迫った引越しに向けて荷造りを始めました。ちょうどいい機会なので荷物を減らすべく、“迷ったら捨てる”をモットーに進めています。中でも一番やっかいなのが本。かさばるし重いので、1年以上読んでいないものを中心に処分したのですが、やっぱり取っておきたいなーと思う本もあって、今のところダンボール5箱くらい(弱いな自分)。もっと減らそうと、中身をパラパラめくっていたら、なんと1万円札が出てきました。超ラッキー

それから、当たり前ですけど、住所変更の手続きがかなり面倒です。電気,ガス,水道,プロバイダー,電話,銀行… いったい幾つあるんだよ!っていう。引越れんらく帳っていう東京電力が行っている住所変更の手続きを一括して行えるサイトもあるようなのですが、対応している会社が少なくてまだ実用的ではない感じ。

さて、これから洗濯機を買いに行かなくちゃ。