hoge diary - June 2007

June 25, 2007

[Vim] Vim の複数起動を抑制

Windows 上で複数ファイルをまとめて GVim で開くと,大量の GVim インスタンスが起動してどうしようかなーと思ってたら,--remote-silent というオプションが用意されてました.もっと早く気づいていればよかった...

gvim.exe --remote-silent <ファイル名>

上記の通りにすると,新しく GVim を起動したときに,既に起動している GVim のインスタンスがあれば,そのインスタンスでファイルを開いてくれます.便利便利.

June 12, 2007

[PC環境改善] iPod の再生履歴を Last.fm へ送信する Ruby スクリプト

iPod で再生した曲の履歴を Last.fm へ送信するツールが何かないかなぁ,と探すと,iPod-last.fm bridge というスクリプトがありました.

アーカイブファイルをダウンロードして展開すると,いくつかの Ruby スクリプトが出てきます.

Cygwin 環境で試しました.まず最初に,config.rb を編集する必要があります.

$user_name = 'username'
$user_name = 'secret'
$ipod_paths = [
    "/cygdrive/e/iPod_Control/iTunes"
]
$ipod_timezone_shift = 8

強調で示した部分が今回私が書き換えた箇所です.

日本は GMT+9 ですから,$ipod_timezone_shift は最初 9 に設定していたのですが,iPod 本体の時刻設定が正しいにも関わらず,再生時刻が 1 時間ずれてしまったので,8 にしています.

とりあえず設定完了です.これで get_play_counts.rb を実行します.これを実行すると,以下のように,1 行に 1 曲分のテキストデータ (UTF-8) が得られます.

$ ./get_play_counts.rb
曲1のアーティスト ; 曲1のタイトル ; 曲1のアルバム ; 曲1の長さ ; 曲1の最終再生時刻
曲2のアーティスト ; 曲2のタイトル ; 曲2のアルバム ; 曲2の長さ ; 曲2の最終再生時刻
...
(中略)
...
$

get_play_counts.rb は曲の再生履歴を出力するだけです.これを Last.fm へ送信するには,as_submit.rb を使用します.パイプで渡すだけ.

$ ./get_play_counts.rb | ./as_submit.rb

これであとは待つばかりです.送信に失敗するとリトライしてくれます.

さて,iPod は再生回数と最終再生時刻しか本体に記録しないわけですが,このスクリプトは,再生回数も考慮してくれます.

ただしデフォルトの設定ですと,再生回数を無視するようになっています.これを有効にするには,config.rb の次の行を編集します.

$add_fake_songs_to_make_playcount_match = true

元々は false と書いてありますので,true に変更します.このスクリプトの作者は true に設定しているようです.

なお,clear_play_counts.rb を実行すると,再生履歴をクリアできます.


Valid XHTML 1.1! Valid CSS!
© 2004-2009 ぱくちゃん.
Last modified: Mon Jun 25 20:00:25 JST 2007