September 30, 2004

bloglines2ipod

Bloglines Web Services をつかったアプリケーション例。ということで、Bloglines の未読アイテムをとってきて、iPod の「メモ」にぶっこむスクリプトをつくってみました。bloglines2ipod からダウンロードできます。

朝、家を出る前にこのスクリプトでぶっこんで、電車の中で未読アイテムを読んでしまおう、ってわけですな(電車乗らない人、車内でノートパソコン広げられる人には無意味です。。)。

Win32 の場合は ActivePerl に、WebService::Bloglines が必要。Mac OS X では試してないですが、マウントポイントを変更するだけで動くかな?

マウントとかユーザアカウントの設定はファイルの先頭の方に書いてある変数をちょこちょこいじればいけます。たいしたことしてないので、WSH (JScript) でもできそうですね。TODO としては、description が 4K 以上の場合、ぶちぎらないとだめかも。

参考:
iPodと連携できるMac OS向けRSSリーダー「NewsFan 1.4.0」
iPod で RSS を持ち歩く - selected subscription in NetNewsWire : NDO::Weblog

Posted by miyagawa at 10:30 PM | Comments (0) | TrackBack (2)

アメーバブログの RSS

まあ News-Handler 系に共通の不具合なんですが。。

http://shibuya.ameblo.jp/ を例にすると、Syndicate this site のリンク先は http://ameblo.jp/rss.php?bid=shibuya となっていて、これだと一応問題なく表示されるんですが (channel と item の rdf:about がおかしいですけど)、

HTML 内の RSS Auto-Discovery は以下のようになっていて、

<LINK title="RSS" href="http://ameblo.jp/rss.php?bid=0a5cc28ff83a27b45e61871ccb682e4c" type="application/rss+xml" rel="alternate">

実際に http://ameblo.jp/rss.php?bid=0a5cc28ff83a27b45e61871ccb682e4c をみてみると、

<channel rdf:about="http://ameblo.jp/http://ameblo.jp/index.php?bid=0a5cc28ff83a27b45e61871ccb682e4c&fid=rss">
  <title>渋谷ではたらく社長のblog</title> 
  <link>http://0a5cc28ff83a27b45e61871ccb682e4c.ameblo.jp/</link> 

という具合に link がおかしくなってしまってます。

Posted by miyagawa at 06:44 PM | Comments (3) | TrackBack (0)

iPod 40G

iPod を3台目の購入(1台目は故障、2台目は 盗難)。mini もひかれたんですが、新世代の iPod 40G にしておきました。

Dock は第3世代のがそのままつかえました。40G モデルは付属しちゃってるのでDock とアダプターが余ってる状態。キャリングケースとリモコンは、買い替え組に配慮してか同梱されてない。盗まれたときにとられたものなんで買い足さなきゃ。。

Posted by miyagawa at 01:45 PM | Comments (1) | TrackBack (0)

パイオニアから i.LINK のデジタル録画 DVD レコーダ

パイオニア、i.LINK経由のデジタル放送録画に対応したDVDレコーダなど

上位モデルの「DVR-920H-S」と「DVR-720H-S」は、i.LINK端子を装備し、同社製プラズマテレビなどと接続することで、地上/BS/110度CSデジタル放送のHDDへの録画が可能。HDD容量は920Hが400GB、720Hが250GB。

i.LINK でハイビジョン録画可能、しかも HDMI 端子つきときた(いまのプラズマには HDMI 入力があまっているのでした)。これほしくなりそー。

Panasonic の STB で i.LINK 対応できんのかな(PIONEER のプラズマオンリーとかだったらショボン)とか、DVD レコ自体の使い勝手とか、コピワンのムーブできるのかな(できないみたい↓)、とかいろいろギモンはありますが、ちょっといじってみたい感じ。

パイオニア、22万語の辞書を内蔵し録画機能を高めたHDD DVDレコーダー4モデル Digital-AV News

さらに上位2モデルは、チューナーとi.Linkで接続することでデジタル放送のストリーム録画が可能。ハイビジョンも記録できる。GUIは独自のものを装備するが、通常のプログラムリストとは切り分けられ、ストリーム録画したものだけを表示する。また、録画データのムーブは行えない。

HD録画できるけども、やはりムーブはできないみたいですね。ま、それはそれで妥当な判断かも。

Posted by miyagawa at 12:53 PM | Comments (0) | TrackBack (1)

September 29, 2004

東芝液晶テレビ face

東芝、“デジタル頭脳”搭載の37/32V型液晶テレビ「face」

faceのデジタルチューナのハイビジョン映像を暗号化し、100BASE-TXのネットワークに接続したLAN HDDに転送して録画する。また、画質レートを変換した長時間録画も行なえ、記録モードはMPEG-2 TSのHD/SDモードに加え、XP/SP/LPの計5モードが用意される。

これアレゲでいいですね。LANDISK みたいな NAS ストレージに、そのままデジタル録画できちゃう。しかしテレビにこんな機能つけなくても、チューナー部だけ別売りしてくれたらムチャクチャうれしいんですが。

Posted by miyagawa at 07:59 PM | Comments (1) | TrackBack (0)

Bloglines API on O'Reilly Network

O'Reilly Network: The New Bloglines Web Services

Bloglines today announced a set of new Web Services APIs, allowing developers to write applications for reading RSS and Atom feeds by drawing data directly from the Bloglines databases.

さっそく O'Reilly Weblogs で Bloglines Web Services の記事。Bloglines が RSS Feed のキャッシュになり、Bandwidth 節約に一役買う部分の前提知識から REST API をGroovy + Java から使用した Bloglines GUI クライアントのソースコードまでかなりよくまとまってます。

最後にアイデアとして、

The Bloglines APIs would be a great basis for an offline RSS reader. If you're getting on a plane and will be offline for a while, just sync up your unread feeds, and use a desktop system to read them on the road.

長期間オフラインになっている間は、未読のフィードを一気に sync して、デスクトップの RSS リーダーで読む。

Make a better notifier. Right now, the Bloglines notifier simply alerts you to how many new articles you have to read. With the new APIs, you could present a list of new article titles, or show which feeds have updates, or more.

もっとよい Notifier をつくる。現状は Item の数しか通知してくれないけど、タイトルや更新されたフィードの数とか、いろいろ出せるはず。

Read your feeds in email....or nntp....or on your pager....or wherever. The APIs would make writing an RSS-to-anything gateway trivial. You could probably even spit out stock prices on an old ticker-tape machine....

RSS フィードを E-mail や NNTP などで読んだり、他のシステムにつなぐのに使えるでしょうと。

などなどいくつかアイデアがのってますね。

とりあえず、Feed ジャンキー向けのモバイル用のゲートウェイ、それから長期間オフラインになったときにたまりまくって困らないように、未読が一定アイテム数を越えたら MIME メールで送りつける、みたいのがあるといいかもです。

Posted by miyagawa at 02:21 AM | Comments (0) | TrackBack (2)

RD-X5

東芝、GR機能付きダブルチューナを搭載した「RD-X5」

 株式会社東芝は、ハイブリッドレコーダ「RDシリーズ」のフラッグシップモデル「RS-X5」を11月中旬に発売する。価格はオープンプライスだが、店頭予想価格は17万円前後の見込み。

東芝の最上位モデル RD-X5 が発表されてます。DVD-R へのコピワン録画はいいですね。HDD からのムーブも可能なのでしょうか(RD-X4 と拡張パックでもできましたが)。 ダブルチューナーは、地上波で録画しない CATV や地上デジタル派にはあまり影響ない気がしますね。

RD-XS41 相当+ DVD-R へのコピワンムーブがあればとりあえず満足します。

Posted by miyagawa at 01:15 AM | Comments (1) | TrackBack (2)

September 28, 2004

WebService::Bloglines

Bloglines Web Service!: blog.bulknews.net

Bloglines がついに Web Services を提供開始。完全な REST スタイルで、OPML / RSS でリスティングや更新アイテムを取得します。エラーや Not Modified なんかは HTTP Status で表現。詳しくは API Guide をどうぞ。

というわけで Perl からのバインディング WebService::Bloglines (bulknews.net 上のアーカイブ)をつくってみた。REST を OO でキレイに表現するのはちょっと難しいです。

レスポンスが OPML だったり RSS だったりで統一してないので、キレイに扱えるようにしてみたかったのですが、単純なハッシュのほうが結局扱いやすいのでそちらにしてみた。

コレをつかって Bloglines のモバイルゲートウェイをつくってみようかなと。http://www.bloglines.com/mobile は Cookie 必要だし、コンテンツやフィードリストが長すぎてもきってくれなかったりと i-mode などではちょっと使えないので。

Posted by miyagawa at 08:08 PM | Comments (5) | TrackBack (3)

Bloglines Web Service!

Bloglines | Bloglines Services

The Bloglines Web Services (BWS) let software developers access Bloglines subscription and feed data directly from computer programs. Bloglines uses a RESTful API consisting of a set of URLs, which return data in RSS and OPML formats.

Bloglines がついに Web Services を提供開始。完全な REST スタイルで、OPML / RSS でリスティングや更新アイテムを取得します。エラーや Not Modified なんかは HTTP Status で表現。詳しくは API Guide をどうぞ。

もちろん一般のデベロッパー向けにも公開されていますが、きっかけとしては New Bloglines Web Services Selected by FeedDemon, NetNewsWire and Blogbot to Eliminate RSS Bandwidth Bottleneck ということで、RSS リーダがフィードの更新チェックするときに、個別のクライアントがチェックするのは Bandwidth のムダが多すぎるから、Bloglines で一括してチェックしてあげましょう、ということのようです。NetNewsWire, FeedDemon, BlogBot の作者と共同で API を開発したようですね。

Bloglines Web Services Enable Synchronization for Desktop News Aggregators "Our customers have been looking for the ability to synchronize their feed subscriptions across multiple computers," said Nick Bradbury, founder of Bradbury Software and creator of FeedDemon, the leading RSS aggregator for Windows. "By partnering with Bloglines, we are now able to offer the rich desktop functionality FeedDemon customers have come to expect, with the flexible mobility and portability of a web service."

FeedDemon は Bloglines Sync API を使用して、複数のマシン上にインストールされた RSS リーダーで、Subscription や最終更新時刻を Bloglines 上に同期できるようになる、と。 こうなると RSS リーダーソフト自体が、Bloglines のクライアントインタフェースになる感じですね。

こうしたサーバ型アグリゲータと、クライアントリーダとの連携はとてもエキサイティングですね。Bulkfeeds でも一部のデータを Web Services API として公開し、いくつかの クライアントソフト (サーバサイド含む) で採用されています。

Posted by miyagawa at 03:25 PM | Comments (1) | TrackBack (3)

RSS はキャズムを越えるか? (Module for New My Yahoo! Beta)

New My Yahoo Beta, Featuring RSS and Atom (Jeremy Zawodny's blog)

This is clearly a different world than when My Yahoo was a New Thing. Personalization on the Web is Old News. Aggregation and Syndication are some of the hottest topics around these days. But the difference between old school My Yahoo aggregation and today's RSS and Atom driven aggregation is that it's a decentralized model.

Yahoo! Inc. の Jeremy 氏による、My Yahoo! RSS 対応の意味。

This not only makes My Yahoo relevant in the modern wave of syndication, it does something else--something that Yahoo is in a unique position to do: bring RSS to the masses.

Web 上のパーソナライゼーションという考え方は古い。My Yahoo! の RSS モジュール対応は、モダンな Content Syndication の波に乗っただけでなく、RSS を Mass なユーザベースに対してリーチさせるモノになる、と。

So instead of thinking that My Yahoo has morphed into a low-end RSS aggregator, think of it this way: My Yahoo has adapted to handle RSS/Atom feeds in addition to all the other content that was previously available.

Bloglines のようなより完全な RSS アグリゲータになるのではなく、既存の My Yahoo! のコンテンツアグリゲーションモデルに追加された 1 つとして RSS を採用した、ということ。「RSSってナニ?」というユーザ層に対しては、

To make content discovery easier, there are multiple ways to find feeds: search, a small directory, a list of popular feeds, and even some editor's picks.

ということで、既存の My Yahoo! のコンテンツ追加同様、検索、ディレクトリ、ランキング、エディターオススメという方法で探すようです。

1つ気になるのは、My Yahoo! と契約しているコンテンツプロバイダとの関係。たとえば新聞社の HTML コンテンツをスクレイプして RSS を吐き出し、My Yahoo! アグリゲータにぶっこんでしまえば、Yahoo! と 新聞社との契約は無視されてしまうわけです。この辺りをどうやって解決していくのか興味深いところがあります。

O'Reilly の Rael 氏 (blosxom 作者、Hacks シリーズのエディターでもある) もMy Yahoo! comes full circle というエントリで紹介しています。

ちなみに今日は livedoor が livedoor Blog リーダー, goo が goo RSS リーダー をリリースと、RSS リーダーのリリースデイみたいな雰囲気。はてなも RSS 対応か なんていわれてますし、RSS リーダーがマスのユーザベースに向けてアプローチする準備完了って感じでしょうか。

ということで、ちょっとエントリタイトルをソレっぽくしてみた。

Posted by miyagawa at 02:30 PM | Comments (0) | TrackBack (0)

September 27, 2004

3社目参入表明

nikkansports.com: 3社目の新規申請あった!が、却下

3社目の申請があったことを会見で明らかにしたセ・リーグ会長の豊蔵実行委議長は「申請内容が十分でありませんでしたので」と却下の理由を説明。コミッショナー事務局のある職員はその申請書について「紙1枚で手書きで書かれていた」とだけ話し、企業名は伏せた。

売名失敗。

Posted by miyagawa at 11:09 PM | Comments (0) | TrackBack (0)

Apache2 の ACL 脆弱性

窓の杜 - 【NEWS】「Apache」v2.0.51にWebページのアクセス制限を回避される脆弱性が発見

 本脆弱性は最新版のv2.0.51のみが影響を受け、今週中の公開を目指して修正版のv2.0.52が現在開発中であるとのこと。しかし、Windows版はUNIX版などに比べてリリースが遅れる傾向にあるので、修正版が公開されるまではWebページのアクセス制限を本ソフトの機能に頼るのではなく、CGIやJavaScriptなどを活用するほうが賢明だろう。

おっと。。。

Posted by miyagawa at 11:00 PM | Comments (0) | TrackBack (0)

Moreover が RSS フィードに広告

RSSフィードに広告を組み合わせたサービスが登場 - CNET Japan

Moreover Technologiesは、ウェブ上にある各ニュースサイトから配信される記事の見出しを、ユーザーが好みに合わせて収集できるサービスを開始した。この無料サービスは広告収入によって運営される。

Moreover は Bulknews みたいなサービスをやっている会社ですが、パーソナライズされたニュースアグリゲーションに、1日1件のキーワードマッチ広告をいれることにしたようですね。

一方、Technorati の Hodder 氏がいう、「他人のふんどし」的というツッコミ、

 「単に情報を収集しているだけで、それを利益目的に利用する権利があるのだろうか」と、ブログとRSSフィード用検索エンジンのTechnoratiでウェブ製品マネージャを務めるMary Hodderは述べている。

個人的には Moreover, Technorati どちらにも類似したサービスを運営しているので、どちらの意見もよくわかる気がします。

Posted by miyagawa at 07:05 PM | Comments (0) | TrackBack (0)

Yahoo! Blog?

ヤフーは球団経営よりも本業のサービス充実を目指す〜ブログ提供も表明

プロ野球参入に名乗りを上げたライブドアと楽天、ブログサービスを立ち上げ、さらに音楽ダウンロード販売サービスも開始するというMSN。ポータル他社が大きな話題を振りまくのを後目に、依然としてトップを独走するYahoo! JAPANは何を考えているのか? ヤフーのPS本部マーケティング部長兼パーソナルサービス本部企画室長である大蘿(たいら)淳司氏に、ブログを含む新サービスの予定や戦略について話を聞いた。

Yahoo! Japan のマーケティングの方へのインタビュー記事。

いずれにしても、ブログサービスへの参入時期は、タイミング重視というよりも中身を考えた上で決定する。単に日記のようなものを提供するのだったらすぐにでもできるのだろうが、トレンドに乗るために不十分なサービスを開始しても意味がない。

というのがどういうものになるのか楽しみ。blog.yahoo.com が Yahoo! Groups にリダイレクトしていたり、日本の Yahoo! グループも Blog 的機能のとりこみがみられるので、そこら辺のアプローチになったりするのかも?

野球経営はないといってますが、ぜひ孫さんも参入とかパリーグ買収とか言い出してほしいところです。

Posted by miyagawa at 02:37 PM | Comments (0) | TrackBack (1)

NIRO サイトリニューアル

ホームシアター :: NIRO

NIRO のサイトがリニューアル。相変わらず微妙なデザインですが(フォントとか)、情報がちょっと増えてよい感じです。この中では唯一見た目が許せる 1.1PRO II を買ってみようかなぁ、とおもいました。いまはリビングで音楽をまともに聴く手段がないので、こいつと DVD プレイヤーをつないで、あと AirMac Express で充実させたいなと。

Posted by miyagawa at 12:58 AM | Comments (0) | TrackBack (1)

スクールオブロック見た

スクール・オブ・ロック スペシャル・コレクターズ・エディション

今日は某ゴロ宅でプラズマテレビ+ホームシアターでスクールオブロック鑑賞。よい映画でした! 最後のライブシーンでじわじわ感動が押し寄せる。エンディングはもう少し後日談で余韻を引っ張ってほしかったなぁと思いつつも、10点満点で9点以上は確実に僕の中でいった映画になりました。

TSUTAYA でレンタルは全部貸し出し中なので購入したわけですが何度も楽しめそうです。中に解説のシートが入っていましたが、予想通り(?) 伊藤政則でした!サントラ も買っておこう。

同じ青春音楽映画としては 青春デンデケデケデケ もオススメ。スウィングガールズもそんな感じだそうで、中学〜高校とバンドやってるような人間はこういうのに弱いんですよねぇ。

Posted by miyagawa at 12:55 AM | Comments (0) | TrackBack (6)

September 24, 2004

朝生に堀江さん

livedoor TV

朝まで生テレビ
出演者:テリー伊藤 野村克也 田原総一朗 長野智子 渡辺宜嗣 玉木正之 坂井保之 堀江貴文 小林至 坂本幸夫 野崎靖博 広瀬一郎

またも朝生出演! ミッキーもでてほしい。

→ なんか出てなかったですね。小林至って人の発言が終始DQNっぽかったのが気になりました。

Posted by miyagawa at 02:35 PM | Comments (0) | TrackBack (0)

eBay と PayPal でミュージックストア

オークションを宣伝に活用、eBay上にオンライン音楽ストア (MYCOM PC WEB)

米PassAlong Networksが、eBayにオンライン音楽ストアをオープンした。これまでCDやレコードを販売するeBayストアはあったが、ダウンロード方式の本格的な音楽ストアは初めて。1曲99セントで、アルバムは1枚9.99ドルを基準としている。現時点で販売曲数が約20万曲と少ないが、ポイント方式による割引システムの導入やeBayのオークションサービスの活用など、ユニークなサービスを提供している。

eBay と PayPal がインターネット上の新しい OS としての機能を担っていることがよくわかるニュースです。

Posted by miyagawa at 02:18 PM | Comments (0) | TrackBack (1)

September 23, 2004

サイバーもプロ野球参入へ!

nikkansports.com > 野球TOP > 野球ニュース

藤田社長は自身のホームページ日記(16日付)でライブドアと楽天の球界参入に「新興インターネット企業経営者の視点から言わせてもらえば、まったく正しい戦略。知名度と信頼感を獲得するのに、何百億円と広告費を投じるよりも、プロ野球球団を運営した方がはるかに効率がよいし、確実だ。球団運営には興味がないの? とよく聞かれるのですが、あります」と断言。ただ、具体的参入時期については「当分先になるでしょう」としている。

とりあえず Blog に「参入したい」と書いておけばとりあげてもらえるらしいです。

Posted by miyagawa at 11:54 AM | Comments (0) | TrackBack (1)

iTunes で聴いてる曲: ストリームの場合

iTunes で聴いてる曲を Blog エントリに掲載 は、ネットラジオのストリーミングだとうまくいきません。この種別は currentTrack.Kind で取得できて、

enum   ITTrackKind { 
  ITTrackKindUnknown = 0, 
  ITTrackKindFile, 
  ITTrackKindCD, 
  ITTrackKindURL, 
  ITTrackKindDevice, 
  ITTrackKindSharedLibrary 
}

ってな具合。なので、以下のようにコードを修正してやればよろし。

// Create text for "Now Playing"
var strNowPlaying;

if (track.Kind == 3) {
  // ITURLTrack: Stream
  var titles = iTunes.currentStreamTitle.split(",");
  strNowPlaying = "Now Playing: " + titles[0] + " - " + titles[1] + " (" + track.Name + ")";
} else {
  strNowPlaying = "Now Playing: " + track.Artist + " - " + track.Name + " (" + track.Album + ")";
}

Club 977 だと StreamTitle にカンマ区切りでアーティスト名とタイトルがはいってるので、split してやると、↓のようになる。他のラジオ局ではフォーマットが違う可能性大。

Now Playing: Van Halen - Jump (Club 977)

Posted by miyagawa at 10:53 AM | Comments (0) | TrackBack (1)

近鉄が楽天に売却シナリオ?

nikkansports.com > 野球TOP > 野球ニュース

一方この日、楽天の三木谷浩史社長(39)が、本拠地を仙台とした加盟申請を明日24日、NPBに対し行うことを表明。ライブドアとの勝負になるが、周囲の状況から楽天の参入が有力。合併を白紙に戻し近鉄を買収した上でのパ6球団存続〜の仰天構想が浮上した。

こりゃスゴイシナリオですな。。

Posted by miyagawa at 09:07 AM | Comments (0) | TrackBack (0)

iPod & iTunes Hacks

Ipod And Itunes Hacks (Hacks)
Hadley Stern

iTunes ハックづいてるこの Blog でしたが、O'Reilly からぴったりの書籍 iPod & iTunes Hacks が発売されますね。O'Reilly Catalog に Sample Hacks が掲載されてました。

Beta Hack 31: Build a Cheap Linux Music Server (PDF Format)
Beta Hack 38: Convert Text Files into iPod Books (PDF Format)
Beta Hack 43: Get Your Email on Your iPod (PDF Format)
Beta Hack 52: Clean Up Your ID3 Tags (PDF Format)
Beta Hack 83: Make a New iPod Playlist from Your Selections (PDF Format)
Beta Hack 94: Manipulate Audio Using the Terminal (PDF Format)

といった辺りが、iTunes の API や DAAP で云々というハナシになっている模様。いくつか読んでみましたが、あまり API ほげほげという開発向きの内容は少なくて、それらを利用したサードパーティ向けのソフトウェアを使ってハッキング (Blog Hacks でいうところのコードを書かないハック)が中心になっているかも。そのほうが売れそうなので正解ですが。

Posted by miyagawa at 08:34 AM | Comments (0) | TrackBack (1)

Green Day - American Idiot

American Idiot
Green Day

今年のサマソニのライブがすばらしかった GREEN DAY の新譜 American Idiot がようやくリリース。American Idiot ってタイトルはストレートでいいですね。たしか Rock Against Bush のコンピレーションにも参加してましたし。

Posted by miyagawa at 08:02 AM | Comments (0) | TrackBack (2)

September 22, 2004

Bulknews RSS Reader Stats

Bulknews RSS Reader Stats

Bulknews のアクセスログから RSS リーダーのシェアグラフを出してみました。今後毎晩 1:00 に更新します。

- GET /rss/rdf.cgi?.* を行っている User-Agent について、IP アドレスと User-Agent 名でユニーク処理
- User-Agent 名は / で区切って左側を名前とする
- 直接アクセスと、MSIE によるアクセスは排除

という条件で抽出してあります。MSIE を排除しても、Mozilla が結構あるのは Mozilla の RSS Reader Panel とかでしょうかね。

Rabbit Ticker が意外に人気があるのにびっくりしました。自分の Blog の RSS へのアクセスをみてみたらたいした量がないので、Bulknews をデフォルトで組み込み配布しているからこのランキングになってしまっているのかもしれませんね。

サーバ型である Bloglines は IP アドレスが1個になってしまうので、User-Agent 申告をベースにすると 500 程度となっており、ランク的には 6-7位あたりに食い込みそうな感じでしょうか。

他にも、4年前からのアクセスログもあるので、ユーザ数の推移とかを出してみると面白いかもしれませんね。

Posted by miyagawa at 10:02 PM | Comments (0) | TrackBack (3)

O'Reilly Village に掲載

O'Reilly Japan -- O'Reilly Village / オラの村

『Blog Hacks』著者の宮川達彦さんが当日即席サイン会をしてくれました。これはサインをし終わったところで撮影したものです。

O'Reilly の Editor 日記(?) O'Reilly Village に LL Weekend の模様が公開されました。って写真しかないけど。。

Posted by miyagawa at 05:12 PM | Comments (0) | TrackBack (0)

サイバーエージェントのアメブロでXSS脆弱性

アメーバブログ更新情報

セキュリティ上の問題で、javascriptのご使用はご遠慮いただいております。その為、今後HTMLおよびjavascriptはプロフィール、ブログ概要、ブックマーク欄においてご使用になれません。また、既に上記箇所で、HTMLおよびjavascriptをご使用になっている方も、再編集をされると、使用箇所が無効となります。なお、2004年9月28日午後2時以降から、勝手ながら順次タグ使用箇所の無効化を行わせていただきますので、ご了承ください。

管理画面と読者画面で同じドメイン・Cookie を利用しているので、記事やコメントに JavaScript をいれておけばCMS のセッション乗っ取り放題。Google AdSense や BlogRolling などリモート JavaScript を利用するプラグインも利用できなくなっています。

こういうのは利便性とのトレードオフになるわけですが、現状では管理系とユーザがいじれるページのドメインおよび Cookie を分けておくのが鉄則でしょうね。

ちなみに現時点でもコメントや Trackback の一部で HTML のエスケープ処理がもれているようです。

Posted by miyagawa at 04:54 PM | Comments (0) | TrackBack (0)

ケーブルテレビでPPV: エラボ

みなとケーブル

●観たい番組だけを、選んで購入できる、デジタルコースならではのペイ・パー・ビューサービス。
●メガヒット映画を、どのチャンネルよりも早くオン・エア。
●ご利用登録さえ終えれば、リモコン操作だけで、いつでもカンタンに購入・予約OK。
●オン・エア中はプレビュー画面※で確かめてから購入できるので、安心。

みなとケーブルで PPV がはじまったらしい。エラボ ってとこのを使ってるみたいです。なんか番組みたらパーフェクトチョイスの映画番組ばっかり。映画だったら WOWOW とかツタヤ、ぽすれんで借りてみればいいからなぁ。UCL とかプレミアリーグ、WWE の特番なんかを安価で提供してくれませんかね。

Posted by miyagawa at 03:56 PM | Comments (0) | TrackBack (0)

Bloglines: Related Feeds

Bloglines | News

Throughout the Bloglines site, there is now a related feeds link for each feed. We look at all the Bloglines subscribers for a given feed, and calculate what other feeds may be related to that feed. This is another method for finding interesting feeds. It compliments the Bloglines Recommendations which differ in that those are personalized for each user.

Bloglines に Related Feeds 機能がついた。コンテンツの内容ではなくて、読者の統計で表示する Collaborative Filter の一種ですね。

たとえばこの Blog の Related Feeds は このように になります。(すでに Subscribe しているものも含む設定にしてあります)

Posted by miyagawa at 03:25 PM | Comments (0) | TrackBack (0)

Tim O'Reilly @ OSCON 2004

CNET Japan Blog - 梅田望夫・英語で読むITトレンド:データの重要性を指摘するO'Reilly

今日も引き続き、Tim O'ReillyのOpen Source Conventionでのキーノートスピーチを取り上げる。今日は5ページ目から。講演のタイトルに「Radar」とあるように、ここからはTim O'Reillyのレーダーが感知した重要な事象が次々に語られていく。最初が「データの重要性」という問題。

CNET 梅田さん Blog でも3日にわたってとりあげられた Tim O'Reilly のキーノートスピーチ。ITConversations というサイトで音声Transcript がダウンロードできます。

オープンソースの上につくられたソフトウェア、そこにロックインされたデータと、それを Hack する API、といったあたりへの考察がさすが Tim という感じです。そしてこれが Open Source Conference というイベントのキーノートであるというところが時代の流れというものなのでしょうか。

最後にオマケっぽくついてましたが、iPod から iTunes, Rendezvous (ZeroConf) そして iTunes Music Store への連携を例にして解説していた、ハンドヘルドのデバイスからサーバサイドのテクノジーへの一貫したインタフェース (networking interface) ってのも今後見逃せない UI のあり方の1つになってくるのかも。

Posted by miyagawa at 02:41 PM | Comments (0) | TrackBack (0)

ビッグフィッシュ コレクターズエディション

ビッグ・フィッシュ コレクターズ・エディション

映画館でみてかなり感動した Tim Burton のビッグフィッシュの DVD が登場。Tim Burton ワールド満開、ユアンマクレガーが最高な一作です。エンドロールの Pearl Jam の曲もいい。

Posted by miyagawa at 11:55 AM | Comments (1) | TrackBack (2)

スクールオブロック

スクール・オブ・ロック スペシャル・コレクターズ・エディション

劇場では見る機会を逃してしまったスクール・オブ・ロックですが、DVD 発売ということで、ゲットしたいとおもいます。

Posted by miyagawa at 11:53 AM | Comments (0) | TrackBack (0)

楽天が大阪を本拠地に

nikkansports.com > 野球TOP > 野球ニュース

太田房江大阪府知事は21日の定例記者会見で、プロ野球球団経営への新規参入を目指す楽天について「動きをこれから注視し、大阪を本拠地とするならば歓迎したい」と述べた。

このオバサンも2ヶ月前はこんなこといってたわけですが。

Yahoo!ニュース - スポーツ - 共同通信

大阪府の太田房江知事は6日の記者会見で、プロ野球近鉄の買収に名乗りを上げたライブドア(東京)の堀江貴文社長に対し「買収後に大阪に本社を移すとおっしゃっているが、それくらいの意欲があるのなら(買収前に)まず大阪に移すというくらいの気概を示して」と注文を付けた。

Posted by miyagawa at 11:44 AM | Comments (0) | TrackBack (0)

September 17, 2004

ホリエモン明日デビュー

ライブドア堀江社長の持ち馬 ホリエモン が明日 9/18 の中山5R でデビューだそうです。

→ 11頭中10着でした。1着からは 3秒9差。

Posted by miyagawa at 10:16 PM | Comments (0) | TrackBack (0)

memcached

memcached: a distributed memory object caching system

memcached is a high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load.

Slashdot.orgLiveJournal で使用されているメモリ上にデータやオブジェクトをキャッシュし、レプリケーションも可能なデーモン memcached だそうです。

MySQL でも MyISAM や InnoDB (ACID) でロックのオーバヘッドが若干発生しますがその辺りの解消によさげ。Linux では epoll、FreeBSD では kqueue を使うのかな。ちょっと試してみよう。オブジェクトをそのままマッピングするための Perl API もリリースされています。

Posted by miyagawa at 06:42 PM | Comments (0) | TrackBack (0)

avex が CCCD からスーパーオーディオDVDへ

エイベックス、CCCDの採用を弾力化。現場スタッフが採用決定

エイベックス株式会社は、2002年3月より導入してきたコピーコントロールCD(CCCD)の取り組みが一定の成果を得たとして、今後はCCCDの採用をアーティスト/作家、ディレクターなどの判断に委ねながら弾力的に採用することを決定した。

avex が商品ごとに CCCD にするかどうかを判断していく、とのこと。いままでは avex で買っても(まああんまり買いませんが)、Mac の人にリッピングしてもらわないと iPod で聞けない、とかありましたからね。素直に喜ぶべきですか。

エイベックス、CCCDからスーパーオーディオCD/DVDビデオへ移行――iPod効果か?

エイベックス(株)は17日、22日に発売する音楽CDから、コピーコントロール機能を施すかどうか商品ごとに弾力的に決定していくことにしたと発表した。今後、同社では、スーパーオーディオCDやDVDオーディオの採用を進め、スーパーオーディオCDはCDとの、DVDオーディオはDVDビデオとのハイブリッド仕様を採用し、5.1chサラウンド対応の音源を収録するなど、音楽コンテンツを複数の形式で提供するという。

Posted by miyagawa at 06:20 PM | Comments (1) | TrackBack (1)

フィードの帯域幅制限に If-Modified-Since を利用

mod_speedyfeed : NDO::Weblog

Atom フィードのダウンロード速度を上昇させる Apache モジュール。仕組みはフィルタモジュールとして動作し、Content Type が application/atom xml の場合、クライアントから送られてくる If-Modified-Since ヘッダを調べて、新しい記事のフィードのみを配信するという仕組み。

これは素敵なアイデア。静的な RSS/Atom フィードでどこまで読んだか情報を表現するために If-Modified-Since を利用するんですね。

ちょうど MSDN の Blog で全コンテンツフィードをやめた結果不満が増大、って記事に似てるな。

マイクロソフト、増大するブログのトラフィックに苦慮 - CNET Japan

Blogの人気が高まるなか、そのトラフィックがインターネットの帯域幅をますます多く消費するようになっていると、批判的な立場の人々が警告を発している

Posted by miyagawa at 05:08 PM | Comments (0) | TrackBack (1)

Simon Cozens off from CPAN

use Perl | Simon Cozens' Modules Need New Maintainers

Simon Cozens, the not-entirely-mad genius, has left for God School. He's retiring from the CPAN, and leaving his legacy of Perl modules behind

CPAN No.1 Author であり Maypole の作者でもある Simon Cozens さんが宣教師になるということで、Perl モジュールの引き取り手を募集しています。ほとんどはすでにアサインされているみたいですが、興味ある人はどうぞ。

Posted by miyagawa at 01:26 PM | Comments (0) | TrackBack (0)

September 16, 2004

A9 が正式ローンチ

Amazon.com の新検索サイト A9 が立ち上がりましたね。複合検索をナビゲーションバーで制御するようなイメージ。

ITmediaニュース:Amazonの新検索サイト「A9.com」正式立ち上げ

A9.comではGoogleのWeb・画像検索、Amazon.comの書籍全文検索、Internet Movie Databaseの映画情報、GuruNet.comの百科事典・辞書情報を組み合わせた検索を提供。さらに、ユーザーが自分のアカウントで過去に行った検索を記録して、履歴やブックマークを参照したり、訪れたサイトについてのダイアリーを作成できる。

梅田さんの Blog にもあるように、自分の履歴を確認できる History に、クリックストリームからオススメを出す機能が特徴的でしょうか。Diary や Bookmarks など、パーソナルな情報を蓄積する口が用意されていて、これを検索結果のスコアリングや表示 UI にどう絡めてくるのか興味ありです。

CNET Japan Blog - 梅田望夫・英語で読むITトレンド:Amazonのサーチサイトが狙うものは?

いまや、Googleも、Yahoo Search Technology(YST)も、A9も、皆、シリコンバレーに集結した。シリコンバレーはサーチ戦争のメッカへと変貌を遂げようとしている。確かにサーチはComputer Scienceにおける本筋のテーマだから、シリコンバレーが有する人材や経験の層の厚みから考えて、自然な流れと言える。

Posted by miyagawa at 12:26 PM | Comments (0) | TrackBack (1)

リチャードホール

フジテレビのロバートホール、最終回かとおもいきや、冠がかわるだけみたいですね。リチャードホールって名前でそのまま存続。ワールドダウンタウンの後番組もくりいむしちゅーらしいけど、その辺り兼ね合いはどうなんでしょうねえ。

しかし笑点ネタは面白すぎます。

Posted by miyagawa at 03:30 AM | Comments (0) | TrackBack (2)

Blog Hackers Conference

Blog Hackers Conference 無事終了しました。企画とか全然してない状態で130人も登録いただいて(実際120人ぐらいきたんじゃないかと思いますが)かなり驚きです。

会場では濃ゆいネタが展開されていましたが、またそれも刺激的ということで、よかったですかね。ご協力いただいたスピーカーの皆さん、デジハリのWさん、橋本さん、ありがとうございました!

僕のプレゼンはちょっとアサマシネタに終始してしまいました。結構ヒミツなことも調子に乗ってしゃべってしまったので資料の公開はちょっと編集してからにさせてください。。

あと、オライリーの Blog Hacks ポスター(アキバ方面向け?)がかなりアツかったです。

Posted by miyagawa at 03:02 AM | Comments (2) | TrackBack (8)

September 15, 2004

楽天もプロ野球参入

楽天もプロ野球参入に名乗り 週内に申請へ - asahi.com : スポーツ

インターネット上の仮想商店街を運営している楽天(本社・東京)は15日、プロ野球球団に新規参入する方針を明らかにした。今週中にも日本プロ野球組織(NPB=日本野球機構)に加盟申請する。本拠地は神戸市とする計画。オリックス・ブルーウェーブと大阪近鉄バファローズの合併で選手枠から漏れた選手らを獲得し、地域密着型チームとして地元の支援も仰ぐ考えだ。

楽天も名乗り!面白くなってまいりました。

「プロ野球球団は持ちません!」――楽天が2004年度第2四半期決算説明会を開催

また、この日の午前中に(株)ライブドアの代表取締役社長兼最高経営責任者の堀江貴文氏が“プロ野球球団の新規参入を表明”したこともあって、記者から「プロ野球の球団経営については?」と聞かれると、「ありません」とあっさり否定。「球団の経営が大変であろうことと、そのための時間が取れないから」とその理由を述べた。

決算説明会では、球団は持たないっていってましたが、状況をみて気が変わったんでしょうか。

一方堀江さんはシダックス志太会長とテレビ番組で会談。

Yahoo!スポーツ - ニュース - 日刊スポーツ

今後は堀江社長も利用しているというカラオケ「シダックス六本木店」での再会を約束した。

カラオケで再会。。。

Posted by miyagawa at 01:30 PM | Comments (0) | TrackBack (2)

September 14, 2004

mt.cgi への自ドメイン以外からの POST を拒否する

MT などをはじめとする Cookie ベースの Web アプリケーションで、ログイン状態のセッションを利用して、危険な操作へのリンクや XSS により意図しない操作をさせられてしまう可能性がある、という問題について(長い)。

基本的には Trackback が単純な POST でおくれてしまう 場合とほぼ同様に、Referer が自ドメイン以外の POST リクエストをけってしまえば OK かと。

RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{HTTP_REFERER} .+
RewriteCond %{HTTP_REFERER} !^http://blog\.bulknews\.net.*
RewriteRule /mt/mt.cgi - [F]

って GET でも削除とかできちゃうんか。これじゃだめだな。 JavaScript だとリファラきかない場合があるし。MT/App/CMS.pm でデータベースに書き込むようなメソッドは POST じゃないと実行しないように手をいれるとかでしょうかね。

Posted by miyagawa at 07:42 PM | Comments (0) | TrackBack (0)

iTunes で聴いてる曲に Amazon アフィリエイトしてさらに画像も

Hacking the Hack #92: iTunes COM API で今聞いている曲を Blog エントリに掲載: blog.bulknews.net
Blog Hacks Hack #92 では、Winamp とそのプラグイン amip を使用して、今聞いている曲をエントリに追記する方法を紹介していますが、iTunes の場合は COM を利用してもっとスマートにできます。

某氏からのリクエストでこれにアートワークもひろってきて Amazon アフィリエイトリンクもつけてみる。

ActivePerl で Net::Amazon が必要。環境が用意できない場合は、JScript 版で開く URL を、G-Tools とか amazlet とかの検索フォームにしてしまうのが手っ取り早いかも。何ステップか増えてしまいますが。

JScript 版と基本的にやってることは同じですね。InternetExplorer.Application のいじり方で若干はまった。CPAN にある Win32::IE::Mechanize がその辺を隠蔽して WWW::Mechanize とおなじ API 提供してて素敵。

use strict;
use Encode;
use Net::Amazon;
use Net::Amazon::Request::Keyword;
use Win32::OLE;

# Configurtaion: path to your MT script
our $MT = "http://blog.bulknews.net/mt/mt.cgi";
our $BlogID = 6;
our $DeveloperToken = "YOUR-TOKEN";
our $AssociateID    = "yourassoc-22";

# Get Trackname from iTunes using COM
my $itunes = Win32::OLE->new("iTunes.Application");
my $track  = $itunes->CurrentTrack;

# Create text for "Now Playing"
my $now_playing = sprintf "Now Playing: %s - %s (%s)",
  $track->Artist, $track->Name, $track->Album;

# Search AWS for Artist - Album
my $item = search_aws($track->Artist, $track->Album, "", "music");
$item  ||= search_aws($track->Artist, $track->Album, "jp", "music-jp");

if ($item) {
  $now_playing = sprintf qq(<a href="%s"><img src="%s" alt="%s - %s" border="0" clear="all" /><br />%s</a>),
    $item->url, $item->ImageUrlMedium,
    $track->Artist, $track->Album, $now_playing;
}

# Open "New Entry" page of MT in IE using COM
my $url = $MT . "?blog_id=" . $BlogID . "&__mode=view&_type=entry";
my $ie  = Win32::OLE->new("InternetExplorer.Application");
$ie->{Visible} = "TRUE";
$ie->Navigate($url);

# Set "Now Playing:" text in a "exntended" textarea
1 while $ie->Busy;
1 while $ie->document->readyState ne "complete";

$ie->Document->forms(2)->text_more->{value} = $now_playing;

sub search_aws {
    my($artist, $title, $locale, $mode) = @_;
    warn "Searching $artist - $title on Amazon...\n";
    my $attr;
    $attr->{token}  = $DeveloperToken;
    $attr->{locale} = $locale if $locale;
    $attr->{affiliate_id} = $AssociateID;

    my $ua = Net::Amazon->new(%$attr);

    my $keyword = "$artist $title";
    Encode::from_to($keyword, "Shift_JIS" => "UTF-8");
    my $req = Net::Amazon::Request::Keyword->new(
        keyword => $keyword,
        mode    => $mode
    );

    my $response = $ua->request($req);
    my $item = ($response->properties())[0];
    return $item;
}
Posted by miyagawa at 06:41 PM | Comments (0) | TrackBack (7)

September 13, 2004

VAIO type R で HD 録画

ソニー、外部チューナを利用したHD録画が行なえる「VAIO type R」

最大の特徴はデジタル放送録画HDDとして利用できること。デジタルチューナは内蔵していないが、外部の地上/BS/110度CSデジタルチューナや、2003年以降発売のWEGAなどと連携してデジタルハイビジョン放送を録画できる。同社のデジタル放送用HDDユニットチューナ用の「VRP-T5/VRP-T3」やアイ・オー・データの「Rec-Pot M」のようなD-VHSをエミュレートしたHDDユニットとしてパソコンを利用可能にするものだ。

ソニーの VAIO type R で i-Link 経由の HD 録画がサポートされるみたい。IO Data の Rec-POT M とおなじことをデスクトップ PC で行えるということで、期待大ですね。このためにこの PC を買うということはない気はしますが。

Posted by miyagawa at 05:12 PM | Comments (0) | TrackBack (0)

Trap-TV CSフジで再放送

広報ページ:Trap-TV

この番組は、毎回、吹越満がストーリーテラーとしてミステリーを語り、吉田朝が聞き手としてそのミステリーの“なぞ解き”に挑戦していく。

1993 年に深夜番組として放送されてた不朽の名作ミステリー番組 Trap-TV が CSフジで再放送決定! 懐かしすぎる。録画しなきゃぁー。

Posted by miyagawa at 02:11 PM | Comments (0) | TrackBack (0)

ゴジラの挿入曲は SUM41

ZAKZAK

生誕50周年でシリーズにピリオドを打つ映画「ゴジラ FINAL WARS」(12月4日公開、北村龍平監督)の挿入曲をカナダ出身の4人組ロックグループ「SUM41(サム・フォーティワン)」が担当することになった=写真。

サマソニにもきてた SUM41 がゴジラの挿入曲を担当。ZAKZAK の見出しに普通にでてることのほうが驚きです。

Posted by miyagawa at 02:05 PM | Comments (0) | TrackBack (1)

ワールドダウンタウン 9/15 最終回

Yahoo!テレビ - ワールドダウンタウン[最終回]

ウワサどおり、明日で最終回です。ロバートホールもおわっちゃうみたいで残念。DVD でないかなぁ。

Posted by miyagawa at 01:54 PM | Comments (0) | TrackBack (0)

はてなのオープンソース

Rabbit Ticker Linux 版 オープンソース : NDO::Weblog

はてなも何かオープンソース化するかあみたいな話も時々。何がいいかな、やっぱりフレームワークだろうか。でもそれは!

はてなはオープンソースするより、いろんな機能を Web サービスで提供してくれるほうがうれしいかなとおもいます。今もやっていますけどね。

あともしコード公開するなら、マークアップの部分とかをモジュール化して公開すると、日記系ツールではてな記法をサポートするのがカンタンになっていいんじゃないでしょうか。(コード汚いことになってそうですが。。)

Posted by miyagawa at 01:40 PM | Comments (0) | TrackBack (0)

September 11, 2004

Netflix RSS Feeds

Nick Bradbury: Netflix RSS feeds (finally!)

At long last, Netflix offers RSS feeds - including personalized ones for your queue and your recommendations (via Scripting News).

US DVDレンタル最大手の Netflix がランキングの RSS フィードを開始しました。ユーザごとのキューも RSS で取得できるようです。

Posted by miyagawa at 01:39 PM | Comments (0) | TrackBack (1)

September 10, 2004

iTunes のアートワークを Amazon Web Services からとってくる

iTunes はアートワークを設定しておくと、プレイヤーの左下にアートワークが表示できます。が、1個ずつ設定するのはめんどくさすぎ。なので、Amazon Web Services からとってきて、iTunes COM つかって設定してしまいましょう、と。

以下のソースを fetch-artwork-aws.pl で保存して実行。ActivePerl と、それぞれモジュール、それに AWS のデベロッパトークンが必要です。さすがにこれを Pure WSH で書くのはしんどい。

なんだか日本盤がうまくいかないなあ。日本語は Shift_JIS => UTF-8 変換をいれてみたがだめか。→ %Cache が US と JP で同じものもってたので修正。

use strict;
use Cache::FileCache;
use Cwd;
use Encode;
use File::Basename;
use File::Spec;
use Image::Size;
use LWP::Simple;
use Net::Amazon;
use Net::Amazon::Request::Keyword;
use Win32::OLE;

our $ImageDir = File::Spec->catfile(cwd, "itunes-images");
our $DeveloperToken = "XXXXXXXXXXXX";

mkdir $ImageDir, 0777 unless -e $ImageDir;

my $itunes = Win32::OLE->new("iTunes.Application");
my $playlist = $itunes->LibraryPlaylist;
my $tracks = $playlist->Tracks;
my $count  = $tracks->Count;
for (my $i = 1; $i < $count; $i++) { # start from 1
    my $track = $tracks->Item($i);
    next if $track->Artwork->Count;

    my $artist = $track->Compilation ? "" : $track->Artist;
    my $item  = retrieve_item($artist, $track->Album, "", "music");
    $item   ||= retrieve_item($artist, $track->Album, "jp", "music-jp");
    if ($item) {
        my $url = $item->ImageUrlMedium;
        my $file = File::Spec->catfile($ImageDir, basename($url));
        unless (-e $file) {
            warn "fetching $url\n";
            LWP::Simple::getstore($url => $file);
        }
        my($width, $height) = imgsize($file);
        unless ($width == 1 && $height == 1) {
            $track->AddArtworkFromFile($file);
        }
    }
}

my %Cache;

sub retrieve_item {
    my($artist, $title, $locale, $mode) = @_;
    my $cache_key = join "|", $artist, $title, $locale;
    if (exists $Cache{$cache_key}) {
        return $Cache{$cache_key};
    }
    warn "Searching AWS for $artist - $title\n";

    my $cache = Cache::FileCache->new({
        cache_root => File::Spec->catfile($ENV{TMP}, "itunes-cache"),
        default_expires_in => "60 min",
    });

    my $attr = {
        token => $DeveloperToken,
        cache => $cache,
    };
    $attr->{locale} = $locale if $locale;

    my $ua = Net::Amazon->new(%$attr);

    my $keyword = "$artist $title";
    Encode::from_to($keyword, "Shift_JIS" => "UTF-8");
    my $req = Net::Amazon::Request::Keyword->new(
        keyword => $keyword,
        mode    => $mode
    );

    my $response = $ua->request($req);
    my $item = ($response->properties())[0];
    $Cache{$cache_key} = $item;
    return $item;
}
Posted by miyagawa at 09:50 PM | Comments (0) | TrackBack (5)

Hacking the Hack #92: iTunes COM API で今聞いている曲を Blog エントリに掲載

Blog Hacks Hack #92 では、Winamp とそのプラグイン amip を使用して、今聞いている曲をエントリに追記する方法を紹介していますが、iTunes の場合は COM を利用してもっとスマートにできます。

以下のコードを nowPlaying-iTunes.js として保存します。

// Configurtaion: path to your MT script and blogID
var mtUrl  = "http://blog.bulknews.net/mt/mt.cgi";
var blogID = 6;

// Get Trackname from iTunes using COM
var iTunes = WScript.CreateObject("iTunes.Application");
var track  = iTunes.CurrentTrack;

// Create text for "Now Playing"
var strNowPlaying = "Now Playing: " + track.Artist + " - "
                    + track.Name + " (" + track.Album + ")";

// Open "New Entry" page of MT in IE using COM
var urlNewEntry = mtUrl + "?blog_id=" + blogID + "&__mode=view&_type=entry";
var objIE = WScript.CreateObject("InternetExplorer.Application");
objIE.Visible = true;
objIE.Navigate(urlNewEntry);

// Set "Now Playing:" text in the "exntended" textarea
while (objIE.busy);
while (objIE.document.readyState != "complete");
objIE.document.forms[2].text_more.value = strNowPlaying;
WScript.Quit();

iTunes で何か曲聞いている状態で nowPlaying-iTunes.js をダブルクリックすると、IE のウィンドウが開き、Extended (追記) セクションにアーティスト、曲名、アルバムが表示されるという仕掛けになってます。

Posted by miyagawa at 02:50 PM | Comments (0) | TrackBack (15)

September 09, 2004

RSS よりメール

楽天、エージェントサービス“楽天スーパーエージェント”を開始

楽天(株)は9日、インターネットショッピングモール“楽天市場”において、エージェントサービス“楽天スーパーエージェント”を開始すると発表した。

検索結果をメールで配信、と。これ別に RSS で提供して RSS リーダーで読めばいいじゃんって話なのですが、まあ楽天のユーザ層考えるとまだメールなのでしょう。それは理解できます。

しかしそれ以上に、どのユーザがどの単語で検索してるか、ってログを有効活用したいと考えると、単純に RSS を配信するだけでは不十分だということもあるかもしれない。オープンすぎてデータが管理できない。こないだの RSS ではじまるマーケティングセミナー では RSS に個人データを埋め込んで広告配信、みたいのがありましたが(聞かないで帰ってきたけど)それにちょっと近い話かもしれない。

feedburner みたいにフィードのトラフィックとったりする ASP もでてきていますが、 RSS の取得に認証 / Cookie を必要とするような規格も、こうした技術がビジネスに乗るためには必要になってくるのかもしれないです。SPAM フリーである、という RSS のよさとのトレードオフになってしまうのかもしれませんが。。

と、ネタふりしてみる、誰となく。

Posted by miyagawa at 10:29 PM | Comments (0) | TrackBack (1)

Apache::MP3::DAAP

というわけで iTunes まわりいじってのメモ。

Apache::MP3 っていう、ファイルシステム上の mp3 ファイルをブラウザから閲覧&ダウンロードできるアプリがあるんですが、これを DAAP に対応させれば、iTunes のセグメント越えができるなと。Apache::MP3 と iTunes ってイマイチ再生の相性(というか使い勝手)がよくないんで、微妙かもしれませんが。。Trickster で iTunes DAAP を読むようにしたほうがいいのかなぁ。

実装としては、Apache::MP3 でファイルを読むところを Filesys::Virtual の API にしてしまえば、Filesys::Virtual::DAAP とつなぐだけでできそう。みてみたら Apache::MP3 はファイル読むところがキレイな API になっているみたいなので、やる気がある人はやってみて、CPAN に公開してみてはいかがでしょう(人まかせ)。

ってか、個別にモジュールやらアプリを Filesys::Virtual に対応させるんじゃなくて、 CORE の open とかで対象とするファイルシステムを Filesys::Virtual のサブクラス群に透過できるプラグマがあったらムチャ便利な気がするけど、難しいかな。ファイルシステムのマッピングは PerlIO とは違うレイヤーっぽいし。

iTunes の COM まわりは、Audioscrobbler.com あたりの再生データと連動してジュークボックスみたいのが実装できれば楽しそう。

Posted by miyagawa at 08:55 PM | Comments (0) | TrackBack (1)

iTunes COM API with Perl

DAAP と Rendezvous で iTunes の共有プロトコルをいじれることがわかったので、次はローカルにインストールされてる iTunes 自体をハック。

これは iTunes COM で公開されてる API を使用すればカンタン。言語をそろえるために Perl でやるなら、

use strict;
use Win32::OLE;

my $itunes  = Win32::OLE->new('iTunes.Application') or die "oops\n";
my $library = $itunes->LibraryPlaylist;
my $tracks  = $library->Tracks;

my $count = $tracks->Count;
print "You have $count tracks.\n";

Win32::OLE 偉大なり。すべての API は iTunes COM SDK のヘルプに含まれてます。

Posted by miyagawa at 08:40 PM | Comments (0) | TrackBack (2)

Blog Hacks イベント

Blog Hacks 発売記念イベント Blog Hackers Conference 2004 開催!: Blog Hacks - プロが教えるテクニック & ツール100選

Blog Hacks の発売を記念したイベントを開催します。

ということなので、登録よろしくデス。

Posted by miyagawa at 06:21 PM | Comments (0) | TrackBack (4)

GmailFS の実装

ちょっと興味があったので GmailFS の実装をのぞいてみた。

ファイルシステムとしての実装のベースは FUSE というフレームワークを使用している。これを Linux カーネルに組み込むことにより、その後カーネルをコンパイルしなおすことなく、プログラムなどでファイルシステムを実装することができる。具体的には、

mount -t fuse /path/to/script/or/program /path/of/mount/point [options]

みたいにスクリプトを指定してマウントできるようなイメージ。このスクリプトは標準入出力か何かを利用して、ファイルの読み書きを実装すればいいのかな。GmailFS は、Python のライブラリ fuse を継承してこのフレームワークを実装している。実装の中身はというと、

    #@+node:getinodeMsg
    def getinodeMsg(self,inodeNumber):
        """
        Get Gmail message handle for the message containing inodeNumber
        """

        folder = _getMessagesByQuery(self.ga,'subject:inodeid=__'+inodeNumber+'__')
        if len(folder)!=1:
          log.error("could not find inode msg with inodenumber:"+inodeNumber)
          return None;
        if len(folder._threads[0])!=1:
          return None;
        thread = folder._threads[0]
        if not thread._messages:
          thread._messages = thread._getMessages(thread)

        return thread._messages[0]
    #@-node:getinodeMsg

のような感じで、メールの Subject: フィールドに inode などのメタ情報を書き込み、ボディに本体をいれて自分の Gmail アカウントにメールを送信する、ってな感じなんですね。取得は普通に getMessage でよい、と。面白いけど自分で実装したくないなぁ(実装しなくていいよ)。

ちなみになんでこんなん調べてたかというと、iTunes がらみの Hack で調べてたら、作者の Richard Clamp 氏が変態的なモジュールつくってるのいろいろ発見して、その中に Filesys::Virtual::DAAP なんての発見したのがきっかけ。これ、Filesys::Virtual というフレームワークで、仮想的なファイルシステムを実装しています。これを利用したサーバアプリとして、Net::DAV::Server とか PoCo::Server::FTP なんてのがある。

つまりまあ、DAAP (iTunes の共有) にある音楽ファイルを、DAV やら FTP でマウントしちゃえ、ってなワケなんですね。で、それぞれが抽象化されていて、プロトコル変換されてつながる、と。こういう遠〜い実装は MODULE.JP の人なんかと IM でよくしゃべってるネタなんですが、ホントにやっちゃうのが気持ちいいな〜と。

んで、Filesys::Virtual::Winny とか Filesys::Virtual::Gmail あたりをキボンヌです。

Posted by miyagawa at 12:01 AM | Comments (0) | TrackBack (3)

September 08, 2004

itshell - Net::DAAP::Client

MyTunes Rudex なんて iTunes の共有をダウンロードするエグいツールが出てたんで、ちょっと実装を調べてみることに。

基本的には Rendezvous をつかって mDNS にサービスを登録しておき、共有しているサーバのリストを取得。iTunes の音楽配信自体は DAAP というプロトコルで行われる、と。この辺は developer.apple.com などで詳しく解説されています。日本語だと MYCOM の記事 とか。

んで Perl によるオープンな実装は CPAN で検索すると、Net::DAAP::Client というそのものがあり、そこに itshell というコマンドラインツールも同梱されてる。ActivePerl から CPAN シェルでがっつりいれるとカンタンにはいりました。

itshell は Rendezvous を調べる機能はないみたいで、サーバ名なしで起動すれば localhost をルックアップする仕様になっています。

C:\Documents ans Settings\miyagawa> itshell
iTunes> db
Loading database (may take a moment)
iTunes> playlist
1615: miyagawa(Ashlee Simpson)
iTunes> find Ashlee
3733 : Autobiography, Ashlee Simpson (Autobiography)
iTunes> get 3733
Fetching 3733 : Autobiography, Ashlee Simpson (Autobiography)
iTunes>

こんな感じで取得できた。他のマシンは IP アドレス指定すればOK。

んで、そもそも Rendezvous から共有されているマシンリストは、以下のような感じで取得できる。Machine Name は UTF-8 なので適宜シェルの文字コードにあわせて (Win なら cp932 あたり) 変換する必要ありです。

use Net::Rendezvous;

my $res = Net::Rendezvous->new("daap");
$res->discover;

for my $entry ($res->entries) {
    printf "%s:%s (%s)\n", $entry->address, $entry->port, $entry->attribute('Machine Name');
}

といじっているうちに、どうも1個だけ IP アドレスが正しく出てこず、しかも問い合わせがとっても長びくものがある。調べてみると iTunes の共有名に . (ドット) が含まれると split にシケる Net::Rendezvous のバグ。しかも Net::DNS::Resolver::Win32 にも影響がありそうなややこしい問題。この辺でとりあえず作者に報告して深追い終了しますか。。。

Posted by miyagawa at 09:35 PM | Comments (3) | TrackBack (1)

Google::PageRank

search.cpan.org: Yuri Karabank / Google-PageRank-0.01

Query google pagerank of page

Google toolbar が内部でおこなってるハッシュ計算をインプリして Google にクエリ投げて PageRank を取得。限りなく黒に近いグレーですが。。

Posted by miyagawa at 09:29 PM | Comments (0) | TrackBack (3)

いきなり事情通

ソースネクスト・ドットコム/製品情報/いきなり事情通

ソースネクストの「いきなり事情通」には Bulknews の RSS がデフォルト組み込みだそうです。そういやスクリーンショットにも写ってますね。

Posted by miyagawa at 08:26 PM | Comments (0) | TrackBack (0)

AdSense のマッチ広告

Google AdSense の広告マッチのロジックがちょっと変わってきた感じ。

具体的には、Mediapartners が未クロールのコンテンツで、従来なら代替広告がでていたところ、サイト全体にマッチする広告がでるようになっている感じ。(どうも直近の記事ではメルマガ広告がでまくってます)

個別記事の代替広告を Amazon Web Services で Hack して遊んでいた私としてはあまりうれしくない感じです。AdSense の収入は最近復調気味なのではずすのもちょっとやだしなぁ。

Posted by miyagawa at 02:39 PM | Comments (0) | TrackBack (0)

バカ日本地図

バカ日本地図〜全国のバカが考えた脳内列島MAP〜

「鳥取と取鳥、どっちが正しいかわからない」「名古屋は県名だと思っていた」「富山は山だと思っていた」……こういったバカたちの脳内地図をかきあつめてつくったのがこのバカ日本地図。ウェブサイト「借力」がはじめた「バカが思い描いている日本地図をつくる」プロジェクトがついに書籍化です。書籍版ではバカ日本地図の誕生から最終形態までの変遷地図、ユーザーの勝手な脳内日本地図投稿を多数収録

借力[CHAKURIKI] のバカ日本地図が書籍化!しかも技術評論社ってのが笑えました。

Posted by miyagawa at 01:23 PM | Comments (0) | TrackBack (0)

MSN Music Feeds

Nick Bradbury: MSN Music Feeds

Microsoft's MSN Music beta offers RSS feeds. As Dave Winer points out, the Top 100 songs feed has enclosures with excerpts of the songs, which means you can play them by clicking the paperclip icon in FeedDemon's newspaper.

MSN Music の Top 100 が RSS でフィードされてるそうです。

Posted by miyagawa at 01:21 PM | Comments (0) | TrackBack (1)

ソーシャルネットワーキング+音楽配信

ITmedia ライフスタイル:“ソーシャルネット”型でDRMフリーの音楽サービス「recommuni」が開始

レコミュニは、ソーシャルネットワークのしくみを利用したP2Pによる有料音楽配信サービス「recommuni」(レコミュニ)の提供を開始する。楽曲はDRMによる制限なしに提供される。

ソーシャルネットワーキングによる信頼されたネットワーク+レビューデータなどにもとづいた、DRM フリーな音楽配信サービス「レコミュニ」の開始がリリースされています。やはりソーシャルネットワーキングのアプリケーションはこういうところに潜在的価値があるなと思います。レコミュニも Gree や mixi といった既存SNSのユーザデータと連動できると面白いと思いますし、サービス側もデータを外部からユーザが利用可能にする仕組みをつくれば、さらにポテンシャルを発揮することが可能だとおもいます。海外では Flickr がすでに一部 API を公開していますね。

関連したところで MSN が MSN Music を開始しました。

マイクロソフト、音楽配信サービス「MSN Music」のプレビュー版公開 - CNET Japan

Microsoftは米国時間1日、大きな期待が寄せられているオンライン音楽ダウンロードサービスのベータ版をリリースした。同社は、盛り上がりをみせるこの市場で支配的な立場にあるApple Computerを、首位の座から引きずり下ろしたいと考えている。

iTunes Music Store の日本でのサービス開始は来年とかウワサされていますが、この MSN Music も Windows Media Player との連携や iPod の以外のハードディスク音楽プレイヤーでの利用など、本サービスが開始されれば iTMS に匹敵する魅力的なものになりそうです。記事でも触れられているように、MSN Messenger で音楽を共有、といった点も視野に入っているとのことで、これは今年の頭にリリースされていた threedegrees ですでに実装されていますから、ローンチははやいのではないでしょうか。MSN Spaces といった個人コンテンツとの融合が進めばさらに脅威になると思います。

関連サイト:
Audioscrobbler - iTunes などの再生ヒストリを共有
Musicmobs.com - iTunes のプレイリストを共有

Posted by miyagawa at 11:45 AM | Comments (0) | TrackBack (6)

沖縄より帰還

沖縄に夏休みで出かけていたのですが、ちょうど帰りの飛行機に台風18号がバッティングし、 飛行機とばず で2日間、帰京が遅れてしまいました。

ノートPCを持っていかなかったのでメールやBlogの未読が大変なことになってます。メールはようやくおわりましたが Bloglines の未読が 6000 アイテム以上。。どうやって処理しようかしら。

Posted by miyagawa at 11:35 AM | Comments (0) | TrackBack (0)

Google News にみる Google IPO までの道のり

Tanakayoshikazu.com: Google News 日本版ローンチ、Google IPO

最近思うのですが、「検索」と一言で言っていたサービスの意味を再定義して、認識する必要性を強く感じています

よっしーによる Google のもつテクノロジーとその IPO までのサービス展開についての考察。さすがよくまとまってます。

Posted by miyagawa at 11:05 AM | Comments (0) | TrackBack (3)

September 02, 2004

Google AdSense 新機能

Google AdSense

複数の広告ユニット
サイト運営者様の各ウェブ ページに広告ユニットを 3 つまで設定していただけるようになりました。これにより、ユーザーの利便性が増すだけでなく、ウェブ ページから得られる広告収入も増やすことができます。 Google システムでは、追加の広告ユニットを自動的に認識して、それぞれに固有の広告を配信します。また、広告ユニットごとに異なるカラー パレット、フォーマット、代替広告 URL を設定できるため、お客様のサイトのデザインと調和した Google 広告を掲載することができます。詳細については、「よくある質問」で複数の広告ユニットに関するセクションをご覧ください。

1つのページに複数の AdSense が入れられる複数の広告ユニットや、Ads by Goooooooogle の謎などの新機能が公開されてました。

Posted by miyagawa at 03:09 PM | Comments (0) | TrackBack (1)

September 01, 2004

Blog で採用/解雇/転職

個人ブログが「やぶ蛇」に--ネット企業が社員を解雇 - CNET Japan

Friendsterが米国時間8月30日、個人的に付けているBlogの内容に問題があったとして、従業員の1人を解雇した。

Friendster は、PHP や Blog 界で有名な troutgirl 氏を Blog の内容に問題があるとして解雇したそうな。Yahoo! Inc の Jeremy 氏の Blog では、Friendster 退会キャンペーンを実施中。

サン、オープンソースのブログソフト開発者を採用 - CNET Japan

Sun Microsystemsが、開発者や顧客とより密接な関係を築く取り組みの一環として、オープンソースソフトウェア「Roller Weblogger」の主要な開発者を採用した

かたや、Sun Microsystems は オープンソース Blog ソフト Roller Weblogger (シラネー)の開発者を採用。これにどういう価値があるのかはあんまりよくわかりませんが。。

株式会社はてなに入社しました。 : NDO::Weblog

昨日ニフティを退職しましたが、休みなしで間髪いれずに働きたいという希望から、本日 9 月 1 日 株式会社はてな に入社しました。

そして、Blog Hacks の共著者でもある 伊藤直也氏 がニフティをやめ、はてなにジョインしたことを Blog で発表。なかなかインターネット的(って何)であります。彼とはてなの今後の発展を期待せずにはいられません。

と、関連あるんだかないんだかな3つをまとめてみました。

Posted by miyagawa at 08:44 PM | Comments (0) | TrackBack (3)

gnews2rss-jp

gnews2rss-jp

gnews2rss-jp: Google News Search to RSS

まあ、そういうモノです。空気を読んでお使いください。

genfeed (まだ公開してない...) 用のパターンファイルは こちら

Posted by miyagawa at 08:27 PM | Comments (5) | TrackBack (15)

Google ニュース日本語版

スラッシュドット ジャパン | Google日本版 「Googleニュース」

Google日本に、いつのまにかニュース機能がついた。ニュース作成方法は、610の情報元から、コンピュータアルゴリズムにより自動的に記事を集め、自動的に一覧とそのサマリーを表示しているようだ

すでに各所で話題ですが、google ニュース日本語版きましたね。610 のニュースソースと契約してるとは思えないので、US と同じ方式なんでしょう。Froogle とか価格比較なんかのエンジンも楽しみです。

Posted by miyagawa at 02:26 PM | Comments (0) | TrackBack (4)

GmailFS

スラッシュドット ジャパン | GmailアカウントをマウントするGmailFS

takano32 曰く、 "Googleが提供するWEBメイルサービスGmailのアカウントをLinuxのファイルシステムとしてマウントするGmailFSの登場が話題を呼んでいます.(

これを Emacs の MUA からマウントして読んだりするのか。遠すぎ。ここまでくるとただのストレージ用途な感じなんですかね。。

Posted by miyagawa at 02:25 PM | Comments (0) | TrackBack (0)

ルーニーがマンチェスターユナイテッドに移籍

スポーツナビ | ニュース | ルーニー、マンU移籍固まる=移籍金は50億円 英BBC

英BBC放送は31日、サッカーイングランド代表のエースストライカー、ウェイン・ルーニー(18)=エバートン=が、イングランド・プレミアリーグの名門、マンチェスター・ユナイテッドに移籍することが固まったと報じた。

EURO で大活躍のルーニーがマンUに移籍。マンチェスターでファンニステルローイ、クリスティアーノロナウドとのコンビネーションがみれるのは楽しみっすね。

Posted by miyagawa at 02:40 AM | Comments (0) | TrackBack (0)

Trackback Ping からエントリを投稿

Blog Hacks サポートページ で追加情報や新 Hack の集約に使用しているスクリプトを適当に公開。Trackback Ping を受けて、その title, excerpt などを XML-RPC で Movable Type にポストしています。

#!/usr/local/bin/perl -w
use strict;
use CGI;
use Jcode;
use XMLRPC::Lite;

our $BlogCharset = "utf-8";  # XML-RPC is done in UTF-8
our %CategoryID  = qw(bonus 60 hack 61);
our $DefaultCategoryId = 61;
our $XmlRpcURL   = "http://example.com/mt/mt-xmlrpc.cgi";
our $BlogID      = 19;
our $Username    = "foobar";
our $Password    = "blahblah";

my $q = CGI->new();
my $charset = $q->param('charset');

my %postdata = get_postdata($q, $charset);

my $category = $q->path_info() || "";
   $category =~  s!^/!!;

my $category_id = $CategoryID{$category} || $DefaultCategoryId;

if ($postdata{title}) {
    post_entry(\%postdata, $category_id);

    # XXX no error handling
    print $q->header('text/xml'), <<XML;
<?xml version="1.0" encoding="UTF-8"?>
<response>
<error>0</error>
</response>
XML
    ;
} else {
    print $q->header('text/xml'), <<XML;
<?xml version="1.0" encoding="UTF-8"?>
<response><error>1</error><message>Invalid Trackback parameter</message></response>
XML
    ;
}

# get TrackBack parameters
sub get_postdata {
    my($q, $charset) = @_;
    my @keys = qw(blog_name url title excerpt);
    return map { $_ => get_param($q, $_, $charset) } @keys;
}

# get parameter from CGI considering $charset and $BlogCharset
sub get_param {
    my($q, $key, $charset) = @_;
    my $data = $q->param($key);
    my %code = ('euc-jp' => 'euc', 'utf-8' => 'utf8', 'Shift_JIS' => 'sjis');
    my $code = ($charset && $code{$charset}) ? $code{$charset} : Jcode::getcode($data);
    my $outcode = $code{$BlogCharset};
    return Jcode->new($data, $code)->$outcode;
}

# Post entry using MT XML-RPC API
sub post_entry {
    my($postdata, $category_id) = @_;

    XMLRPC::Lite->import('trace' => 'debug');
    my $entry_id = create_item($postdata);
    set_category($entry_id, $category_id);
    publish_item($entry_id);
}

sub create_item {
    my $postdata = shift;

    # create item data from Trackback data
    my $item;
    $item->{title} = "$postdata->{title} (via $postdata->{blog_name})";
    $item->{description} = <<DATA
<blockquote>$postdata->{excerpt}</blockquote>
<p><a href="$postdata->{url}">Continue Reading "$postdata->{title}"</a></p>
DATA
    ;

    my $publish = 0; # no publish here
    my @args = ($BlogID, $Username, $Password, $item, $publish);
    return XMLRPC::Lite->proxy($XmlRpcURL)->call("metaWeblog.newPost", @args)->result;
}

sub set_category {
    my($entry_id, $category_id) = @_;
    my @args = ($entry_id, $Username, $Password,
    [ { categoryId => $category_id } ]);
    XMLRPC::Lite->proxy($XmlRpcURL)->call("mt.setPostCategories", @args);
}

sub publish_item {
    my $entry_id = shift;
    my @args = ($entry_id, $Username, $Password);
    XMLRPC::Lite->proxy($XmlRpcURL)->call("mt.publishPost", @args);
}

まあ特にコメントは必要ないかとおもいますが。XML-RPC でカテゴリをセットするためには、metaWeblog.newPost でエントリを publish=0 で作成したあと、mt.setPostCategories でカテゴリをセット、その後 mt.publishPost で公開というメンドウなステップを踏む必要ありです。

Posted by miyagawa at 01:38 AM | Comments (0) | TrackBack (3)