お知らせ|radiko.jp
パソコンがそのままラジオ受信機となる「IP(Internet Protocol)サイマルラジオ」の実用化試験配信サイト「radiko.jp」が公開されました。
楽しみにしていたradikoがついに始まったのですが、ブラウザで開きっぱなしは邪魔なのでAIRでプレイヤーを作ってみました。実態はタスクトレイやドックにしまえるただのブラウザですが。
AIRアプリなので動かすにはAIRランタイムが必要です。
インストールはこちらから。
普通にブラウザで開くのと変わらないのでルール的なもの大丈夫だと思ってますが、おこられたら急に消えるかもしれませんし、消えないかもしれません。
くやしいあるあるシリーズ。

使いたかったメソッドにAIRのロゴがついていたー!
正しくは、500を返す。
render :nothing => true, :status => 450
なんてことをしていて、Mongrelの開発環境だとちゃんと450が返ってくるのにApache+Passengerの検証環境だと500が返ってきていた。
そこで原因を調べたところ、返す可能性のあるステータスコードはすべて定義されていて、それ以外は500で返している。(※ソースは後述)
で、なんでこんなことをしようとしているのか。Flashのアップローダを作ってFileReference#upload()でアップロードしているのだけれど、こいつが結果をHTTPステータスでしか受け取れない。だから、結果のメッセージをサーバから返してそれを表示する、てこともできない。
アップロード自体が成功したか否かを知るには200かそれ以外か、くらいで十分なんだけれど、アプリ要件(たとえば、アップロードが終わってからファイルを受け付けられない状況になってただとか、ファイルの中身を見て判断しなきゃいけないだとか)での結果を返すには、これでは足りない。
結局、Apacheのソースコメントでunusedとなっていた418~421に意味を持たせ、そこを使って対応しました。層を混同していて気持ちがいいものではないのだけれど、影響範囲は広くなく、なんらかのフラグを立てて別リクエスト、のコスト増を考えるといいだろうとの判断。もしなにかいい方法があったら教えてください。
以下、Apacheソースの該当部分。
続きを読む…
括り出したい | アクトインディ技術部隊報告書
if pred
method(100)
else
method(200)
end
のようなものを見ると
method(if pred
100
else
200
end)
と書きたくなってしまいます。
このifの纏め方は、LISPではすんなり流れるものの、Rubyだとif〜endが重たくみえるので、なんとなく書いてはいけないようにさえ感じます。
ささった。言われてなるほど、同じことをするにも使う言語によって考え方が変わるという、わかりやすい例だと思いました。
前の版にはフリーになった年にだいぶお世話になって、いまでも時々リファレンスとして使っていたのですが、改訂版が出ているのを知ったのでさっそく買ってきました。入れ替えて置くことにします。
手引きや他の本を読んで「こう書いてあるけど、少し違うこういう場合はどうするんだろう?」って思うようなことが、こちら側視点で具体的に書かれているのが魅力です。
残念ながらアマゾンでは売り切れちゃってますが、大きめの本屋さんなら確定申告コーナーにあると思います。これはおすすめ。
configの下も出したかったので調べた。
rails-2.3.5/lib/source_annotation_extractor.rb
48 # Returns a hash that maps filenames under +dirs+ (recursively) to arrays
49 # with their annotations. Only files with annotations are included, and only
50 # those with extension +.builder+, +.rb+, +.rxml+, +.rjs+, +.rhtml+, and +.erb+
51 # are taken into account.
52 def find(dirs=%w(app lib test))
53 dirs.inject({}) { |h, dir| h.update(find_in(dir)) }
54 end
ここね。
日本語入力システム ATOK 2010 for Windows
変換エンジン・ATOKハイブリッドコアに新アルゴリズム導入、変換精度がさらにアップしました。もちろんWindows 7対応、よりスピーディーな入力環境を実現。ATOK 2010 for Windows [プレミアム]には入力したらすぐに翻訳できる、Web翻訳変換機能を新たに搭載いたします。
今年もこの季節がやってきました。もうちょっと早く予約はじまると誕生日特典が使えるのになーとかせこいことを毎年考えています。
TokyuRuby会議01 – Regional RubyKaigi
- TokyuRuby会議は東京で2回目の開催となるRegional RubyKaigiです。
- Rubyに興味を持つエンジニアが集う「Tokyu.rb」主催の、LT大会です。
- 飲み食いしつつ、みんなでLTをして盛り上がろうというイベントです。
自分はATOKプラグインをGemにした話をしました。
↑のGemは↓です。
atok-twitter | gemcutter | awesome gem hosting
Twitter client on ATOK.
みんなで持ち寄ってワイワイもいいですね、スタッフの皆さんありがとうございました!
Libron – 無料で本が読めるライフハック
Libron は Amazon のページから最寄りの図書館(*)の蔵書を検索できる便利なツールです。
Amazonのページから最寄りの図書館の蔵書を検索できるLibron(引用まんまじゃないか)で地域対応が進められているのを見て埼玉県在住としてだまっておられん、ということでやらせていただきました。
少し探してみたら埼玉県にも図書館を横断検索できるシステムがあったのでここを利用しようとしたのですが、調べてみると予想外の仕様・・・。
ここで検索すると裏側で各施設にリクエストを投げなおして、返ってきた結果をキャッシュしてフレームのひとつにはめ込むという挙動みたい。その結果は各施設のページそのものなので、チェックをつけた施設によってフォーマットはばらばら、しかもフレーム内で数回遷移するので数回リクエストを投げないと結果をとれない。これでは各施設に個別にリクエストを投げるとの変わらない、というかそれ以上に複雑になってしまいます。
そもそも人がブラウザを通して使うように作られているので当然と言えば当然です。しかしこれではあまりにもあまりではないですか。
ということで埼玉県/推計人口で、市町村または施設の検索ページが用意されている単位にそれぞれ人口を調べ、多い順に5件の施設を対応しました。
こういう経緯でのチョイスなので、いつも使ってる図書館がないよって場合にはここにコメントをいただけると追加できるかもしれません。
といいつつ、いちばん先に対応するべきであろう「さいたま市図書館」はISBN指定ができない(!?)ために対応できないのですが・・・。