Blogを始めて4年半になりますが…

plonified 0.9のエラーですが、メーリングリストでの情報を元に次のように修正したら、動くようになりました。できれば、このGW中に2台体制で動いている自宅サーバをCentOSの1台にまとめるのと、SimpleblogからCOREBlogに移行したいと思っています。ワンルームで2台のPCが常時稼動しているのは、暑くてしょうがないのです。
tal:attribute="href python:here.blog_url() + '/style_css' />
↓
tal:attribute="href python:here.blog_url + '/style_css' />

うちのサイトは、フレッツISDNで常時接続環境になったのを機会に自宅サーバを立ち上げたのですが、以前は Zope + Squishdot を使って稼動していました。Squishdotというのは、Zope上で動くSlashdotクローンなのですが、導入したことでFTPでコンテンツをアップロードすることなしに、Webブラウザだけで記事を書いて公開できるようになりました。また、標準でRSS(RDF)配信機能があり、たかのさんという人が運営されていた「My Portal」に登録してもらっていました。Slashdot Japanがまだオープンしていない当時、日本でSquishdotを使ったサイトは10ぐらいあったでしょうか。My Portalは、これらのサイトが配信しているRSSを集めてきて、まとめて表示してくれるページです。自分の好きなページの新着情報だけ表示したり、並べ換えたりすることもできました。

これらは2000年末のことなので、今思うとBlog、RSSブームのハシリだったのかもしれません。自分で言うのもなんですが、当時は最先端をいっていたと思っています。でも、うちのサイトはその頃からあまり変わっていない気がします。また、しばらくPHP-Nuke/Xoopsに浮気していたこともあり、私のZopeに関する技術もその頃から変わってません。反省しきりです。何でZope一本に注力してこなかったのか、と。やっぱり人生においては、何が一番大切かを見極めること、一度決めたらそこに出来る限りの情熱を注いでいくことが重要なのかもしれません。
ただのアーリーアダプタで終わらないために、今から巻き返しが図れるでしょうか…

関連リンク:
2001年5月のWeboo! Returns.
2001年6月のMy Portal

plonified 0.9にしたらエラー発生

COREBlogをPlone下で表示するためのスキン plonified の新バージョン(0.9)がCOREBlogのメーリングリストにてアナウンスされていたので入れ換えてみました。結果は、エラーが発生して表示されなくなりました。 orz
これから出掛けなくちゃいけないので、とりあえず元に戻しておこう…

サイトエラー

リクエストに回答しようとしてエラーが発生しました。エラーの詳細は以下の通りです:

エラーの種類
TypeError
エラー値
'str' object is not callable
リクエスト実行日時
2005/04/29 10:50:47.160 GMT+9

plonified COREBlogを試してみました

Epithet NAGOSUIさんの導入手順を参考にしてやっと動きました(感謝)。最初、エラー出まくりでガックリだったのですが、何のことはない、Plone 1.05で動かそうとしていたのが原因でした。恥ずかしい…
で、感想ですが、素晴しいの一言。中身が良く分かってないのでアレなんですが、Skinだけで対応できちゃうものなんですね。正式リリースを待たずに、SimpleBlogから移行したい衝動にかられました。問題はどうやって既存データを移行するかですが。

plonified COREBlogサンプル(既に移行済み)

うちの環境だけかもしれませんが、気になった点をいくつか書いておきます。
・ナビゲーションメニューが同じ項目が2つずつ表示される(サンプルサイトは非表示にしています)
・エントリーを書くときのプレビューがエラーになる
・コメント記入時のタイトルやcategoriesポートレットのタイトルなどの末尾に"s"がおまけで付いてくる

これは、日本のみならず海外でもブレイクしそうな予感…

アロンソ vs M.シューマッハ

スゲ━━━ヽ(゚∀゚)ノ━━━━━━ ッ ! !
F1サンマリノGPは、本当に面白いレースでした。最後の10周、トップを走るアロンソとそれを追うM.シューマッハのバトルは凄まじいものでした。予戦13番手スタートから驚異の追い上げを見せ、シューマッハが残り13周で2回目のタイヤ交換を終えた後は、トップのアロンソとの差はごく僅か。ここから、激しいバトルが繰り広げられるのですが、6度のワールドチャンピオンに耀くシューマッハに対して、23歳のアロンソは一歩もひきません。厳しいプレッシャーをかけられ、いつミスをしてもおかしくない状況の中、絶妙なラインでブロックします。ニュータイヤで有利なシューマッハは最終コーナーでブレーキをロックさせながら攻撃をしかけるものの一歩およばず、アロンソが0.2秒差で優勝を果たしました。

これでアロンソは3連勝、ポイントランキング・トップを独走中と新旧交替の感もあるのですが、開幕以来ずっと不調だったフェラーリのシューマッハ、BARの佐藤琢磨,バトンが復活してくれたのが嬉しいです。今後の展開がますます楽しみになりました。

音楽用Bluetoothヘッドフォンを物色中

ワイヤレスで音楽を聴きたい、軽量なシリコンオーディオでもいいけど、できればBluetoothヘッドセット機能も持っているとベストということで、いろいろと物色しています。

Aiwa XDM-S710BT
・ヘッドセットプロファイル(HSP), ハンズフリープロファイル(HFP)に対応
・電話がかかってきたら、本体内蔵マイクでそのまま通話可能、通話が終わると再び音楽再生が始まる
・再生可能フォーマットは、ATRAC3plusとMP3
・自分の好きなヘッドフォンに交換可能
・メモリーが256MBしかない

MOBILECAST mClip Audio
・HSP,HFPの他に A2DP(Advanced Audio Distribution Profile)に対応
・ヘッドフォン端子のある機器ならば、付属のDongleでワイヤレス化可能
・電話がかかってきたら、内蔵マイクでそのまま通話可能
・自分の好きなヘッドフォンに交換可能
・ヘッドセット側は充電式、Dongle側は単4乾電池
・再生/停止などの操作はできない


iCombi Wireless HeadPhone (iPod用)
・対応プロファイルは、A2DP, AVRCP(Audio Video Remote Control Profile)
・ワイヤレスで再生/停止/選曲などの操作が可能
・ヘッドフォンは充電式、Dongle側はiPodから給電するので充電不要
・ヘッドフォン一体型なので、ヘッドフォンの交換は不可
・携帯電話のハンズフリーには非対応




TEN Technology naviPlay Bluetooth Stereo Kit for iPod
メーカーのサイトが落ちてて詳細不明 復活した模様
・再生/停止/選曲等の操作ができるっぽい
・A2DP, AVRCP, HSP, HFP
・受信部にマイクが付いているらしい

どれも一長一短で、非常に迷います。こんな記事もありました。
「Bluetooth対応ヘッドセットでは帯域が問題に」 (PC Watch)
難点は音楽の再生品質が、5,000円級のカナル型ヘッドフォンと比べてもやや聴き劣りすることだ。音楽が楽しめないクオリティではないものの、 5,000円の普通のヘッドフォンをCDクオリティとすれば、FMラジオのような感じになる。MPX1100で別売のヘッドフォンを使えば違う印象になるのかもしれないが、そもそも本格的なHiFi用途にはBluetooth 1.xでは帯域が不足している、という事情が無関係ではないだろう。一般にBluetooth 1.xの帯域は1Mbpsといわれるが、実際にはピークでも723.2kbpsしかない。ここに非圧縮のオーディオを流すのだから限界はある。
このライターの人が見劣りすると言っている音質はヘッドフォン自体の性能だろうし、A2DPプロファイルはSBCというCodecで圧縮される(MPEG,AAC,ATRACも可)ので帯域が足りないということもないと思います。ライターの人も良く分かっていないようです… まだまだこれからの市場なんでしょうね。
それから、iPAQはドライバ入れてA2DPに対応できるんですね。ちょっと羨ましいかも。SL-6000以外のZaurusはBluetoothも内蔵じゃないからなぁ〜

念願のCOREBlogとPloneの統合が実現か!?

COREBlog 1.2a1をリリース (TRIVIAL TECHNOLOGIES)
COREBlog 1.2a1をリリースしました。ML限定の先行リリースです。
また,併せてCOREBlogインスタンスをPlone下で表示できるスキン「plonified 0.8」をリリースしました。このスキンは1.2a1と組み合わせて利用してください。
COREBlogを使ったサイトって結構あって、今まで羨ましいなぁ〜と思っていたのですが、これでCOREBlogをPloneに統合できそうです。Simpleblogは本当にシンプル過ぎて…
さっそくテスト用のZopeインスタンスで試してみようと思います。

それから、「Zope Essentials 1」の参加申し込みをしました。実はこういうイベントに参加するのって初めてなので、今からとても楽しみです。東京勤務を希望してたのは、オープンソース関連のイベントに参加したいっていうのも理由の一つだったのに半年間何をしてたんでしょう、私は。

del.icio.usの"recommended tags"機能

先日紹介した「del.icio.usの隠されたインターフェース」ですが、"experimental post to del.icio.us"のbookmarkletにもろURLが書いてありました。今まではポップアップするブックマーク登録用bookmarklet(ややこしい)を使っていたのですが、このtagの推薦機能いいですね。右のスクリーンショットがそれなのですが、本文を統計的手法で解析しているわけではなく、単純に同じURLをブックマークしている人が付けたtagが人気順に"popular tags"として表示されます。そして、自分がこれまでに付けたtagとマッチしたものを推薦しているようです。
tagを付ける際に結構迷ったりするんで、便利な機能だと思います。ただし、まだブックマークしている人が少ないような最新情報の場合は、参考になるtagがないので、やっぱり自分で考える必要があります。

   

ポップアップするtab推薦機能付きのbookmarkletを作りました。とっても安直ですけども。リンク内のUSERNAMEを自分のユーザ名に置き換えてください。

» popup experimental post to del.icio.us

# 自分のサイトを故意にたくさん登録するようなtagスパムみたいなのがすぐに出てきそうです。
# そうなる前に悪意を持ったユーザをマイナスモデレートするような仕組みが必要かもしれません。

開発中システムにAjaxを採用してレスポンス向上

6月リリース予定の開発中システムにAjaxを採用してみました。言語は、最近Abobeによる買収で話題になっているMacromediaのColdFusion MX。幸いなことにSAJAXというAjaxのフレームワークが対応していたので、プログラム自体は簡単でした。SAJAXによって、ColdFusion側の関数を呼び出せるのが便利です。結果は、必要最小限の情報だけサーバから取ってこれるのでレスポンスが向上した気がします。でも、さすがにデバッグが大変なので、全部Ajaxでシステムを構築しようとは思いません。現時点では、効果のありそうな箇所にピンポイントで使っていくのが良いと感じました。

以下、いくつかつまづいた点を書いておきます。
まず、Mozillaでは問題ないのですが、IEで"システムエラー: -1072896658"なるエラーが発生しました。いろいろと調べた結果、XMLHttpRequestに対するレスポンスの"Content-type" が "charset = Windows-31J" になっているのが原因でした。どうやらMSXMLが知らないcharsetを指定された場合にこのようなエラーが発生するようです。これは、"Shift-JIS"(今回は)とすることで解消しました。
次の問題もIEで発生しました。<tbody>のinnerHTMLにレスポンスを流し込もうとしたのですが、"未知の実行エラー"とかいう訳の分からないエラーが起こります。どうもIEは、TBODYの要素を操作することはできないみたいです。

IEのエンジンは、いろいろとバグがあるし、CSSの実装が時代遅れなのが嫌です。利用者が急増中のFirefoxを敬遠する意味もあるのか、今年の夏にはIE7が出るそうですが、また例によって標準に準拠していない独自仕様を組み込んでいないことを祈ります…

del.icio.usの隠されたインターフェース

"Sorry, you have been banned for 30 minutes."と言われて、del.icio.usのブックマークにアクセスできません。何も悪いことした記憶はないのですが。何でだろうと思ってググってみると…

Hidden interface in del.icio.us
There is an interesting hidden interface in del.icio.us. The nomal URL to look at your tags is del.icio.us/username. Try adding the work 'new' into the URL so it becomes del.icio.us/new/username and you'll see a nice new interface...
http://del.icio.us/new/username でアクセスすると隠されたインターフェースにアクセスできるよ、みたいな情報を発見しました。やっと30分経ったので試してみると、各ブックマークの左側に人気度のグラフが表示されるのと、自分が付けたタグが鮮度と登録数に応じた(?)表示になりました。面白いのでしばらくこっちを使ってみようと思います。

でも、結局何でアク禁にされたのかは分からず仕舞いだったり…

[続]FOMA M1000情報

"まるでPDAみたいな携帯「M1000」、何ができて、何ができないのか"にM1000の詳細なレポートが掲載されています。実売価格は5万円程度だそうです。
これを見ると、想像していたよりも日本語化のデキがよさそうな感じです。手書き入力にクリエでもおなじみのDecumaとかな漢字変換にWnnが採用されていたり、日本語フォントのクオリティも許せるレベルな印象です。液晶がQVGA以下なので、さすがに月間スケジュールの一覧表示はできないようですが。あと、数字キーがなくタッチパネルのみなので、電車などで片手でメールを書くことができないのは問題かもしれません。

VodafoneもVGA液晶+PocketPCなVPA IVを出すっていう話もあるし、いよいよ日本にもスマートフォンの時代がやって来そうな予感。auからはスマートフォンの噂が出てこないのがちょっと残念です。音声とデータ通信に同一チャンネルを使用するFOMAに対して、auのWINはデータ通信専用のチャンネルを持っているという記事が日刊工業新聞に出ていました。つまり、FOMAはデータ通信が混雑すると音声通話に影響があるため、積極的にパケット定額制を導入できないということ。W21CAのOperaは定額の対象内なのに、M1000のOperaは定額対象外というのはこのあたりのインフラ事情があるようです。
800MHz帯を使った音声通話や2.4Mbpsのデータ通信などインフラはauが一番なんですが、こういう魅力的な端末を発売してくれないならナンバーポータビリティを待たずに乗り換えちゃうかも。VPA IVスゴすぎ…

ドコモのフルブラウザ端末「FOMA M1000」が発表に

ドコモもフルブラウザ端末を投入―PDAライクな「FOMA M1000」を発表
NTTドコモは4月14日、PCサイトが携帯電話から見られるフルブラウザを搭載したMotorola製端末「FOMA M1000」を発表した。30代から40代のビジネスユーザーをターゲットとする。夏のボーナス商戦に向けて、6月ごろに市場投入する考えだ。
 ブラウザはOpera7.5を採用した。タブ機能を備えており、複数のサイトを並べて閲覧することができる。ただしiモードは使えないため、iモード用サイトを利用することはできない。
ドコモからかなり気になるケータイが発表されました。iモードの機能が使えないので、完全にオッサン用です。OSは702NKと同じSymbianで、スペックを見てるだけでも夢が膨らみます。会社の後輩の702NKを触ってみましたが、まだPDAの域には届いていない感じでした。でも、色々なアプリをインストールして使い易いようにカスタマイズできる点は、既存の携帯電話とは一線を画しています。Pythonが動くらしいし…
W31Sのエンターテイメントな方向は、私が望んでいるものじゃないのでM1000に乗り換えるっていうのも考えておこう。でも、ドコモのFOMAっていう点が…○| ̄|_

○ POPおよびIMAPのマルチアカウントに対応
○ Word/Excel/PowerPoint/PDFなどの閲覧機能
○ FOMAとGSM/GPRSのデュアルで、海外でも利用可能
○ IEEE802.11bの無線LAN機能
○ Bluetooth1.1、USB 2.0でPCと同期
○ MP3、AAC、WMAなどほとんどの音楽ファイル形式に対応
○ スクリーンに触れると指に軽い振動が伝わり、押したことが分かる
○ アプリケーション開発キットを無償配布
○ マカフィーのウイルススキャンソフト「セキュリティスキャンLight」を搭載
○ 国語/英和/和英の電子辞書機能
○ ZIP形式で圧縮されたファイルも展開可能
× iモードサービス非対応(iモードサイト、メール、iモーション、キャラ電などが利用不可)
× パケット通信料金は定額制が適用されない
× 汎用性のないメモリーカード(TransFlash)
× 208×320でQVGAに満たない液晶画面
× FOMA901iシリーズよりも高額になるだろう(PDA端末程度?)

関連リンク:
DoCoMo Net - M1000 (ニュースリリース)
ドコモ、海外でも使える無線LAN+フルブラウザFOMA「M1000」 (ITmedia)
NTTドコモ、無線LANやOpera7.5搭載を搭載したFOMA端末「M1000」を発表 (livedoor コンピュータ)
ドコモ、タブ型フルブラウザ「Opera 7.5」を搭載したFOMA「M1000」 (INTERNET Watch)

国立競技場にてサッカー観戦

10年振りくらいにJリーグの試合を観て来ました。柏レイソルと横浜Fマリノスの試合で、黄色いチームを応援してたのですが、結果は1-0で横浜Fマリノスの勝利。後半は、いい感じで攻めてたんだけどなぁ

サッカー観戦の後は、会社の後輩と新宿で軽く一杯。
のつもりが、結構遅くまで飲んで帰りの電車でマジ寝しちゃいました。気づいたら6駅も通り過ぎてて、ギリギリ終電で帰って来たっていう…(>_<)

いや~、春はイベントが多くて楽しいです。今週末はD1グランプリ・お台場ラウンドか!

PloneにCMFTrackbackを追加

Plone 2.0.5に対応したCMFTrackbackというプロダクトが本家で公開されていたので、追加してみました。
まず、Plone 2.0.3 → 2.0.5にバージョンアップ。ダウンロードして解凍したファイルをZopeのインスタンスを止めてから、Productsディレクトリに展開します(あらかじめ同名のファイル/ディレクトリは削除しておきました)。その後、Zopeを起動すると自動的に新しいバージョンが認識されて、ZMIの“portal_migration”にビックリマーク(!)が付いているのでクリックして、migrateを実行します。

次にCMFTrackbackのインストールですが、こちらもProductsディレクトリに解凍して、Zopeインスタンスを再起動するだけで認識されます。そして、[Ploneの設定]-[プロダクツを追加・削除]の“インストール可能なプロダクツ”から“CMFTrackback 0.3.4”にチェックをして「インストール」ボタンを押します。そして、left_slots または right_slotsなどに“here/trackback_slot/macros/portlet”を記述して、ポートレットを追加します。

以上で、Discussionが有効になっているオブジェクトでトラックバック機能が使えるようになるはずなのですが、SimpleblogのBlogEntryでは有効になりませんでした。試しに通常のドキュメントに外部からトラックバックを送ってみたのですが、一応成功はするもののトラックバック一覧のリンクがうまく表示されませんでした。Plone 1.0.5 + ゆうせいさんのオリジナルバージョンでは使えていたのですが、もうちょっと詳しく調べてみる必要がありそうです…

新生・富士スピードウェイに行ってきました

日曜日に行われた、リニューアル・カーニバルに行ってきました。
往年の名車や、トヨタF1、D1マシン、SuperGTのデモランがあり、かなり楽しんできました。富士スピードウェイは10年ぶり以上でしたが、かなり近代的になりました。安全運転研修施設なんかもあって、ツインリンクもてぎのようです。コース自体もコーナーが増えて、以前よりもテクニカルになっています。最近のトヨタの勢いからしてもF1開催もそんなに遠くないのでは、と感じました。
それから、レースクイーンも登場したクイズ・イベントで、「メインスタンドには何人収容できるでしょうか?」との質問にちびっこが「2千2万人!」と答えていました。逆だよ、逆!!2万2千人だから。でも、おまけしてもらって正解だったので安心しました。

     
≫ 写真一覧へ

# 途中の道でネズミ捕りをやっていて、対向車線のインテRにパッシングで教えてもらいました。感謝(^^;

Ploneにdel.icio.usポートレットを追加

右側にdel.icio.usのRSSを取得して表示するポートレットを追加したので手順をメモ〆(._.)
RSSの取得とパースは例によって、RDFSummaryを使いました。そのまま読ませたら、“taxo:topics なんてタグは知らないよ”というエラーになったので、Products/RDFSummary/RDFSummary.py に以下の定義を追加しました。
@@ -169,6 +169,7 @@
   'http://slashcode.com/rss/1.0/modules/slash/ hit_parade': 'hitparade',
+  'http://purl.org/rss/1.0/modules/taxonomy/ topics': 'topics',
   }

次にPloneのポートレットとして登録します。Zope 管理画面(ZMI)から /portal_skins/custom に portlet_delicious というPage Templateオブジェクトを追加します。ソースはこんな感じです。
<html xmlns:tal="http://xml.zope.org/namespaces/tal"
      xmlns:metal="http://xml.zope.org/namespaces/metal"
      i18n:domain="plone">
<body>
<div metal:define-macro="portlet">
    <div class="portlet" id="portlet-delicious">
    <metal:block tal:condition="here/rss_delicious"
                 tal:define="news here/rss_delicious">
   <h5 tal:content="python:news.channel()['title']" />
   <div class="portletBody"
        tal:define="results news/items;
                    batch python:modules['ZTUtils'].Batch(results, size=10);"
        tal:repeat="item batch">
       <a href=""
          tal:attributes="href item/link"
          tal:content="item/title" />
   </div>
   </metal:block>
   </div>
</div>
</body>
</html>
ポイントはbatchの部分で、10件だけ表示するように制限しています。最初、tal:conditionで制限しようとしたのですが、うまくいかなくて結構悩みました。batchの機能を使うんですね。
そして、ポートレットの表示です。追加したいコンテンツ(今回は/plone/blogフォルダ)の Properties タブを開いてright_slot 欄に下記を追加します。
here/portlet_delicious/macros/portlet
以上で、作成したポートレットが右側に表示されるはずです。レスポンスを考えると、更新はページ表示とは非同期でやったほうがいいと思うので、cronで定期的にRDFSummary/updateを呼び出すことにしました。

Subversion + WebDAVによるバージョン管理 - その2

Dreamweaverを使って一緒に作業している人のために、Apache2にて自動バージョン化の設定をしました。
ソースリポジトリにはWebDAV経由でアクセスしてもらい、編集時にはDreamweaver上でチェックアウト。編集が完了したらチェックインして自動的にコミットされるっていうの目論んでいたのですが、チェックイン/アウトの部分がうまくいきませんでした。どうやら、Apacheのモジュールで“mod_dav_lock”というのが必要らしいのですが、これがApacheの開発版であるバージョン2.1以降でないと添付されていないようです。どこかにバックポートされたモジュールがあれば良いのですが…

ApahceのWebDAV+Subversionの設定はこんな感じです。
LoadModule dav_module modules/mod_dav.so
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

<Location /svn>
   DAV svn
   SVNPath d:/svn/repos
   SVNAutoversioning on

   AuthType Basic
   AuthName "Subversion repository"
   AuthUserFile d:/svn/svn_passwd
   Require valid-user
</Location>
で、何かいい方法はないかと探していたら、「SVN for Dreamweaver」なるものをみつけました。$59の製品版とFREE版があるDreamweaver用のSubversion拡張プラグインなのですが、svnコマンドのフロントエンドになるだけで使いにくいので却下。
結局、その人にもTortoiseSVNを使ってもらうことにしたのですが、アップデートとコミットのやり方は分かってもらえたようです。エクスプローラ上から使えるので、あまり違和感がないからかもしれません。
ちょうどTortoiseSVN-1.1.4の日本語ランゲージパックが出ていたので、最新版を導入しました。