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。
色々欠陥はあるけど。
最近のコメント