でそうででなかった PSP Hacks ですがついに出るみたいですね。Game developers とかのネタがあるということはファームウェア 1.5系のものがおおいのかな。2.5 からのハックならいろいろ持ってますが。。とりあえずゲットして読んでみますか。
itunes-rss-server をアップデートしました。
* Authen::Simple::Passwd を使って Basic 認証を可能にしました。--passwd=.htpasswd のように htpasswd でつくったファイルを指定すると認証が可能です。現状は require valid-user 相当で、すべての認証されたユーザがアクセス可能です(PSP の RSS チャネルで HTTP 認証できるかどうかはテストしてませんが)
* My Documents\My Music を取得するためにWin32 のレジストリを使うように変更しました。特殊なフォルダに iTunes を置いている人でも多分動くようになったと思います。それでも無理なら --library オプションを。
exe ファイルもアップデートしてあります。Enjoy!
ということで 1/8-12 と台湾にいってきました。(1日たたずに出張でサンフランシスコに来ていて、3月までこちらにいる予定です)
英語Blog のほうで詳細 (Day 1, Day 2, Day 3, Day 4) は書いていますがサマリー的に。
竹北 (Chu-Pei) という新しく開発されている途中の都市にある gugod の家で Hackathon。かなり広い部屋 で、ゲストルームも2つ、自分はおもにソファーでいつものようにハックしてました。初日、2日目は Ingy, clkao, Audrey Tang と勢ぞろいしてかなり楽しかったです。Hackathon といってもみな特定のプロジェクトで集まっているわけではなくて、個人でそれぞれやりたいことをやって、わからないことがあったら聞いたり、IRC でブレインストーミングして pair-coding したりと突発的 Hackathon な様相でした。これはこれで楽しい。(ほかに写真は tag:chupei から)
滞在中、食事以外はほとんどを部屋、もしくは近くの Wi-Fi 完備のカフェで過ごしたのでどこでもコードを書いてる感じで、おもに CPAN モジュールのメンテやいままであたためていたアイデアの実装、それと Trickster 関係のエンハンスといったあたりに使いました。ほかにも原稿書きやら Bulkfeeds の機能追加とかもしたかったんですがそれはまた今度。
とりあえず成果をば。
Catalyst::View::JSON, PoCo::Client::AirTunes, JSON::Syck, XML::Liberal, itunes-rss-server (Win32 の My Music がらみの BK), OpenSearch 1.1, Kwiki::TypeKey (Userpic integration), Text::Emoticon (new API), Template::Provider::Encoding, Kwiki::Emoticon, Google Video to PSP Syncr, Kwiki::Export
やはり svn/svk と Trac の便利さを痛感。JSON-Syck と YAML-Syck は違うレポジトリにあるのにコマンド一発 (svk smerge) でマージできるとか、 svk がなかったらどんだけ不便だったかという感じです。Trac は Timeline がみれるだけでもひとまず満足。Trickster では Ticket のインテグレーションもためしてますがこれもかなりイケてます。
それと、 Kwiki::Export で CPAN モジュール数が 100 になったみたい。これでリタイヤした Simon Cozens を除けば、Audrey Tang と Adam Kennedy だけになりました。
PSP で iTunes いろいろフィードバックをいただきましたので FAQ 気味に。
デフォルトでは用意していないので、フロントに Apache をおいて認証しつつ Reverse Proxy するとよいかと。--bind 127.0.0.1 のようにループバックアドレスだけ bind することもできます。
Apache をインストールしてモジュールをコンパイルする必要がないところ、またプレイリストをベースにしているのでスマートプレイリストとかで動的にファイルリストがビルドできるところが大きな違いです。また AAC にも対応してます。
itunes-rss-server.exe --port 8081 のようにしてポート番号を指定できます。
--library "C:\path\to\iTunes Music Library.xml" のように指定できます。
デフォルトで1個の接続しか受け付けませんが、--server Fork と指定すると HTTP 接続ごとに fork するので複数の接続を同時に処理することができます。
いまんとこそうです。リロードオプションをつける予定です。
最新版の svn コードではその機能を組み込んでありますがどうも PSP がうまく表示してくれません。原因不明なので人柱は募集中です。
PSP のファームウェア 2.60 では RSS チャネル(いわゆる Podcast) をサポートしていますが、Podcast はストリーム経由で聴くことしかできません(メモリースティックにダウンロードできない)。最初はイケてない仕様だなあと思ったのですが、1つこれをうまく使いこなす方法を思いついたのが、せきむらさんの PSP から iTunes ライブラリを聴くというアイデア でした。
せきむらさんのハックは Windows に Apache2 をいれて手で RSS 2.0 をつくっていますが、これを自動でやりたい、しかもスマートプレイリストとかもサポートしたい、ということでこの正月ハックしていたのが Trickster 2.0 プロジェクト の svn につっこんである itunes-rss-server です。
実行すると Web サーバとして動作し、プレイリストを自動で RSS 化、また enclosure のリンク先は MP3 や AAC をダウンロード再生することができるようになっています。PSP の byte-range ストリームにも対応しています。こうして、PSP から自宅内の Wi-Fi につないで http://{PC の IP}:8080/ を開けば RSS リストがでて subscribe できます。ジップロックにつっこんで風呂で音楽を聴くのに最適(実際には PSP 生だと音質がイマイチなので Happy Aqua Tone などに入れるとよいかと)。グローバル IP があるならそちらからつなげば出先から livedoor Wireless などの公衆 WiFi から自宅の iTunes を聴くことも。(もちろん Fair use の範囲で!)
ダウンロードと実行は簡単で、Windows なら itunes-rss-server.exe (PAR で exe 化)をダウンロードして実行、Mac OSX なら svn co http://svn.bulknews.net/repos/trickster/trunk/itunes-rss-server/; cd itunes-rss-server; perl itunes-rss-server.pl
として実行、どちらもブラウザで http://localhost:8080/ を開いてテストすることができます。ポートを変えたければコマンドラインで --port 8081 などとオプションをつけてみてください。PSP から登録するときは localhost の部分を PC の IP アドレスに変換する必要があります。
この台湾ハッカソンで機能強化しようと思っているので要望などはいまのうちに送ってもらえるとうれしいかもしれません。
いま成田空港でこのエントリを書いています。
ふと Ingy とチャットで Taiwan いこうかなぁとか話していたら、Audrey Tang とか gugod, clkao なんかも来ることになって gugod の家で Hackathon が決行されることに。Ingy が gugod のうちに2ヶ月ほどとまっているみたいですが、その2人で Chupei.pm (Chupei は gugod の家がある地区)を立ち上げたとのこと。参加メンバー6人でCPAN モジュール 350個というなかなか素敵な Perl Mongers です。
とりあえず 13 日からのSF 出張に備えて、Pet Project の整理をしないと、ということで、JSON まわりの Catalyst プラグイン、WWW::OpenSerach とか Trickster、Hacks 本の原稿、などいろいろ片付けてきます。