iTunes を試しに使ってみたらおもしろかったので、携帯音楽プレーヤーを買ってみようかなと。調べて分かったこと。
主なDRMは FairPlay(Apple)、OpneMG(SONY)、Windows Media(Microsoft)の3つ。
携帯プレーヤーに関してはFairPlay対応は当然iPodのみ。OpenMG対応はほぼソニー製品のみ。Windows Media対応は割とたくさん。
対応するオンラインストアはそれぞれ、Apple が iTunes Store、ソニーがMoraとYahoo! MusicとOricon、Windows Media 採用が ExciteとOnGenとOricon。
んで、iTunes と iTunes Store のインターフェースって思っていたほど良くなかった。タブブラウザになれていると、タブなしでブラウジングするのは辛い。細かいところに不満が残る。設定で大きくしても文字が小さいとか。試聴している時に別のページに行くと音楽が途中で止まるとか。アニソン少ないんだね。アニソン・ゲーム音楽とiTMSの2ch板横断まとめサイト
iTunes をフォルダごとバックアップするには、PowerToysに含まれるSyncToyが良い。
Mora も使ってみた。こちらはブラウザでも利用可能なのでタブが使えて割と快適。試聴はSonicStageが独立に行うので、何をしようが音楽が途中で止まることはない。ただ、SonicStage自体が不安定で良くフリーズした。それとSonicStageをWindowsの制限ユーザー権限で使うと試聴さえ出来ない。管理者権限で使うように作られているらしい。なんだかなあ。
とりあえず Mora で何曲か購入。
iPod にするか iPod nano にするか思案中。ネットワークウォークマンでも良いような気もするけど。
使ってみる。素晴らし過ぎる。iTunes 歴3日のわたくしが断言しますが、iTunes よりも遥かに遊べます。iPod 買うのはあとまわしにして、安い Napster 対応プレーヤーを買おうかな。Microsoft が発売する予定の Zune は Napster には対応しないらしい。
携帯プレーヤーを選ぶ時は、WMA フォーマットに対応していても、Windows Media DRM に対応しているとは限らないので注意。対応プレーヤー一覧。一覧にはないけど、iriver のT20も対応しているらしい。amazon は通常1〜2週間以内に発送。2週間したらNapster熱自体が醒めてしまっているような。Creative の一覧。
読了。とてもおもしろい。普段は押入の中から外を覗き見るだけの、ドラえもんの成れの果てかはたまた究極のひきこもりかという、幽霊役者小平次が主人公。山東京伝の怪談を元にした小説。京極夏彦の書く物語はミステリーであるなしに関わらず基本的に謎ときを推進剤としている。この作品も例外ではない。
解説を斉藤環が書いているのは出来過ぎ。
userContent.css に以下を書いた。
@-moz-document domain("bewaad.com") { div { height: auto ! important; } }
というか、http://bewaad.com/bewaad.css で指定されている height は、もともと指定する必要がないと思います。line-height ではなく height の話。
Irb/TipsAndTricksだと全てのシンボルが補完候補として出てきてしまう。以下のようなスクリプト(irbri.rb)を用意して、
require 'irb/completion' module Kernel def r(arg) puts `ri #{arg}` end private :r end class Module def i(meth = nil) if meth puts `ri #{self}##{meth}` else puts `ri #{self}` end end def c(meth = nil) if meth puts `ri #{self}::#{meth}` else puts `ri #{self}` end end end RICompletionProc = proc{|input| bind = IRB.conf[:MAIN_CONTEXT].workspace.binding case input when /(\s*([A-Z].*)\.([ic])\s*):(.*)/ pre = $1 receiver = $2 ic = $3 meth = $4 ? /\A#{Regexp.quote($4)}/ : /./ #} begin if ic == 'i' candidates = eval("#{receiver}.instance_methods(false)", bind) else candidates = eval("#{receiver}.methods(false)", bind) + ['new'] end candidates = candidates.grep(meth) candidates.map{|s| pre + ':' + s } rescue Exception candidates = [] end when /([A-Z]\w+)#(\w*)/ #} klass = $1 meth = $2 ? /\A#{Regexp.quote($2)}/ : /./ candidates = eval("#{klass}.instance_methods", bind) p meth candidates = candidates.grep(meth) p candidates candidates.map{|s| klass + '#' + s } else IRB::InputCompletor::CompletionProc.call(input) end } Readline.basic_word_break_characters= " \t\n\"\\'`><=;|&{(" Readline.completion_proc = RICompletionProc
irb を実行すると、
$ irb -r irbri.rb irb(main):001:0>String.i:s[TAB] #<= ここでTABをうつ。 String.i:scan String.i:split String.i:strip! String.i:succ! String.i:size String.i:squeeze String.i:sub String.i:sum String.i:slice String.i:squeeze! String.i:sub! String.i:swapcase String.i:slice! String.i:strip String.i:succ String.i:swapcase! irb(main):001:0> String.i:sum ------------------------------------------------------------- String#sum str.sum(n=16) => integer ------------------------------------------------------------------------ Returns a basic _n_-bit checksum of the characters in _str_, where _n_ is the optional +Fixnum+ parameter, defaulting to 16. The result is simply the sum of the binary value of each character in _str_ modulo +2n - 1+. This is not a particularly good checksum. => nil irb(main):002:0>
とStringのインスタンスメソッドしか補完候補にならない。クラスメソッドは.cでok。
色々欠陥はあるけど。
最近のコメント