最初は、単なるデモプログラムのはずだった。しかし、それはとてつもない可能性を秘めたサンプルだったのだ。
9月 思いがけない誕生
PiyoCast Link & Control Maker
PiyoCastのエンドユーザー向けヘルパーアプリケーションがほぼ出せる状態に仕上がってきたので、番組製作側のツールである「PiyoCast Link & Control Maker」の作成に取りかかった。
制作環境側と再生コントロール側で歩調を合わせておかないと、トラブルの原因になってしまう。再生コントロール側に盛り込んでおいた機能も、番組制作側で指定できないと実際には効力を発揮しない。
とりあえずGUIだけMAXの仕様で作成し、最低限の機能のみイネーブルにして試験リリースする考えだ。
このほかにも、番組登録リクエストを受け付けるAppleScriptのロボットプログラムが1本必要になる。
さてさて……どうなることやら。
超高速ランキング生成
以前に開発しておいた技術がPiyoCastで役立つことになった。iTunesの聴取回数から「自分のベスト10」といったものを動的に再生する機能をPiyoCastに実装中だが、これは今回作ったものではなく、DragThingの起動回数ランキングを計算するAppleScriptで開発しておいたものだ。
1,000以上にのぼるDragThingの登録項目から、2〜3秒で起動回数ランキングを作成し、DragThingのDockを動的に生成して結果を発表するというものだ。こういうのを地道に作っておいたのが、イザという時に威力を発揮する。
計算量を劇的に削減可能で、おそらく普通に行うよりも数百〜数千分の1の計算量で済むことだろう。
この方式を採用すると、数千項目のデータからランキングを瞬時に生成できるため、海外のエンジニアに見せたら「それはC言語で記述しているのか?」と言われたほどだ。残念ながら、これはAppleScriptなのだ。結局、彼はそれを信じていなかったようだが……。
ちなみにPowerBook G4/867で、1787曲のiTunesライブラリからベスト10を算出するのに要する時間はたったの3秒だ。奥方様のiBook G4/1.2GHzで実行したら(ライブラリは500曲程度だったが)1秒かからなかった。
おまけに、この処理にはソーティングが含まれており、処理が終了した段階ですでにベスト10はソート済み状態で出力される。
自分は決してiTunesのヘビーユーザーではない。1787曲というのは、全体から見ればそれほど多い部類には入らないだろう。いま使っているのは30GのiPod Photoだが、実際のところ10Gあれば足りてしまう程度だ。
60GのiPodに12000曲程度入っているという状態で、この超高速ランキング生成アルゴリズムを用いてどの程度の時間がかかるのか、それはやってみないと分からない。下調べのためのアプリケーションを配布してみるべきだろうか。
PiyoCastの製作意欲が減退
プログラミングは頭の中につまっているさまざまな野望を具現化するための「手段」である。つまり、野望を達成できれば自分でプログラミングなどする必要はない、ということは常に言ってきた。自分は企画を行いたいのであって、プログラミングはその企画や考えの正当性を立証するための単なる「手段」に過ぎない。
さらに逆のパターンは困る。
プログラムはできたのに、野望が達成されないというパターンだ。PiyoCastがどうもこのパターンに入りそうになっているので気分がブルーである。誰かが真似をしてWindows版を作成し、さも自分が考えましたといわんばかりに配りまくるというパターンが見えてしまう。
PiyoCastを作ることでこのような状況を招いてしまうことは想像にかたくない。
とりあえず、モノは作ることにしよう。だが、一般配付を行うことについてはよく考えたほうがよいのではないか……そんな気がする。
PodCastingとライブラリ楽曲の連係OK!!
必要な基礎実験をすべて通勤中の電車の中で行い、OKの状態です。
できるわ、これは〜
名前は「PiyoCast」に決めました>PodCasting DJ Helperアプリ
Script Casting
PodCastingのデータフォーマットには、ただのオーディオ情報から構成される通常のPod Castと、URLや画像などが入れられた「拡張PodCast」なるものが存在する。チャプターごとにマークしたりでき、再生させただけでも一目で分かるものだ。
「そうかあ、URLが入れられるのかぁ」
などとぼーっと考えつつ、
「じゃあ、PodCastのデータの中にAppleScriptを仕込んでおいたりできるわけだ」
というアイデアに思い当たった。
Mac OS X 10.3で標準搭載されたScript Editor 2.xは、URL Protocol Messagingというメカニズムを採用している。URLリンクの中にエンコードしたAppleScriptを入れておき、それをクリックすると勝手にScript Editorが起動して、本文内にScriptが転送されるというものだ。
http://www.appleco.jp/piyomarusoft/sample/record/
上記URLの下のほうに「新規書類にペースト」「カーソル位置にペースト」「ドキュメント末尾にペースト」のリンクがあり、クリックするとその通りの動作を行う。セキュリティ上の理由から、転送するだけで実行はできない。ユーザーが構文確認と実行を行う必要があるのだ。
この仕組みを使って、ScriptについていろいろPodCastingで話しながら、一方でAppleScriptをユーザーの画面上で示すことができたりするはずだ(まだ試していないので、できないかもしれない)。
こうしたPodCastingを「Script Casting」と名付け、何かひとつ番組を作ってみるとよいかもしれない。
