ちょっと前にwalkman nw-z1050買った。
もってたmp3入れるとタグちゃんと認識しない。
id3タグ全部v2.3のUTF-16にしたのに
アーティスト名とか「不明」になる。
SuperTagEditorでみたところ、文字データはおそらくUTF-16なのに、
文字コードの情報がlatin1になってるっぽい?
SuperTagEditorはwineで使うとすぐ死ぬので、他の方法を色々探した結果、
taglibとそのフロントエンド使うことにした。
ほんとはrubyがよかったんだけど、setDefaultTextEncodingが使えなそうなので、
ubuntuのパッケージになってるtagpyってのを使うことにした。
で、色々苦労して以下をfindで回すことで全部変換した。
ちゃんとv2.3のUTF-16にしてるのに何かwalkmanがちゃんと認識しない時用スクリプト。
import sys
import tagpy
import tagpy.mpeg
import tagpy.id3v2
argvs = sys.argv
del argvs[0]
tagpy.id3v2.FrameFactory.instance().setDefaultTextEncoding(tagpy.StringType.UTF16)
for i in range(len(argvs)):
f = tagpy.mpeg.File(argvs[i])
t = f.tag()
t1 = f.ID3v1Tag()
t2 = f.ID3v2Tag()
t2.artist = t2.artist
t2.title = t2.title
t2.album = t2.album
print "%s - %s - %s" % (t2.artist, t2.album, t2.title)
f.save()
っていうかパッケージに入ってるのに情報少なすぎでえらい苦労した。
サンプルのテストすら動かないし。
pythonとか使ったことないし。
2013年2月16日土曜日
2013年2月10日日曜日
BUFFALO WZR-450HP
使ってた無線LAN親機がどうも調子がおかしくなってきた。
(たまに再起動しないとつながらなくなる。)
電気屋をうろうろしてたところ、「おすすめ!」「はやい!」みたいな感じだったので、
何も調べず買ってみた。
とりあえず家の構成に合わせないといけない。
モデムがルータ機能を持ってるので2段ルータになる。
とりあえず以下の機器がある。
(1) モデム兼ルータ Aterm DL180V-C
(2) ルータ(買った奴) AirStation WZR-450HP
(3) 常時稼働サーバPC
(4) 携帯
(5) 客とかDSとか
(3)はwebサーバとかsshサーバとか動いてるので、外部(Internet)からアクセスする。
なので、DynDNSを使ってて、 外部から割り当てた名前でアクセスできる。
で、内部から同じ名前でアクセスできるように(3)内にDNSサーバを立てている。(dnsmasq)
今まではルータのDNSとか全部切ってて(3)のDNSを使ってた。(DHCPも動かしてた)
で、今度買ったルータAirStation WZR-450HPには隔離機能っていうのがあるみたい。
客用に使いたい。
でも今まで通りにすると、隔離された(5)ゲストから(3)のDNS(&DHCP)へアクセスできないので使えない。
ってことで図のような感じにしてみた。
(2) AirStationのDNS,DHCPを有効にして、(3) サーバのDNSを参照する。(サーバのDHCPは止める)
これで(5) ゲストからも使える。
(2)のセカンダリDNSに(1)を指定しておけば仮に(3)のサーバが落ちても 使える様な気がする。
試してないけど。
(たまに再起動しないとつながらなくなる。)
電気屋をうろうろしてたところ、「おすすめ!」「はやい!」みたいな感じだったので、
何も調べず買ってみた。
とりあえず家の構成に合わせないといけない。
モデムがルータ機能を持ってるので2段ルータになる。
とりあえず以下の機器がある。
(1) モデム兼ルータ Aterm DL180V-C
(2) ルータ(買った奴) AirStation WZR-450HP
(3) 常時稼働サーバPC
(4) 携帯
(5) 客とかDSとか
(3)はwebサーバとかsshサーバとか動いてるので、外部(Internet)からアクセスする。
なので、DynDNSを使ってて、 外部から割り当てた名前でアクセスできる。
で、内部から同じ名前でアクセスできるように(3)内にDNSサーバを立てている。(dnsmasq)
今まではルータのDNSとか全部切ってて(3)のDNSを使ってた。(DHCPも動かしてた)
で、今度買ったルータAirStation WZR-450HPには隔離機能っていうのがあるみたい。
客用に使いたい。
でも今まで通りにすると、隔離された(5)ゲストから(3)のDNS(&DHCP)へアクセスできないので使えない。
ってことで図のような感じにしてみた。
(2) AirStationのDNS,DHCPを有効にして、(3) サーバのDNSを参照する。(サーバのDHCPは止める)
これで(5) ゲストからも使える。
(2)のセカンダリDNSに(1)を指定しておけば仮に(3)のサーバが落ちても 使える様な気がする。
試してないけど。
2013年1月13日日曜日
mechanize / watir
銀行とかから月イチで明細をダウンロードしてgnucashに突っ込む
と言う作業をここ3年くらいやっている。
正直面倒くさいので、mechanizeで自動化しようとした。
とりあえず以下の明細をとりたかった
・イオンカード
・中国銀行VISAカード
・中国銀行
・SMBC
・ゆうちょ
このうち、イオンカードと中銀VISAと中銀はjavascriptを解析して
mechanizeで自動取得できた。
他の(特にゆうちょ)は javascriptバリバリでちょっと無理。
と思ったら、中銀に改造が入ったらしく、javascriptの割合が増えて動かなくなった。
もうmechanize使ってjavascript解析してってのはやってらんないってことで
他のを探してwatirってのを見つけた。
ちょっと前までは要素が無いものに対してexists?を実行すると落ちてたけど、
最近updateしたら直っているようだ。
自動化するためのメモをいくつか書いておく。
・要素の調べ方
右クリックで「要素を調査」を選んだら色々調べられる。
・ofxファイルダウンロード 先の指定
普通に動かすとダウンロードダイアログが出てしまうので起動するブラウザの設定を変える。
profile = Selenium::WebDriver::Firefox::Profile.new
profile["browser.download.useDownloadDir"] = true
profile["browser.download.dir"] = '~/work/mechanize/smbc'
profile["browser.download.folderList"] = 2
profile["browser.helperApps.neverAsk.saveToDisk"] = "application/x-ofx"
driver = Selenium::WebDriver.for :firefox, :profile => profile
b = Watir::Browser.new(driver)
・フレーム
中銀はフレームを使って無いように見えて使ってたりするのでハマった
f = b.frame(:index=>0)
f.link(:href=>/hogehoge/).exists?
・ゆうちょは明細ダウンロードが無い
table要素を配列にできる
hairetu = b.table(:class=>"hogehoge").to_a
最近ゆうちょ使ってなくて明細にログが無いので未確認だけど、そのうちやる。
と言う作業をここ3年くらいやっている。
正直面倒くさいので、mechanizeで自動化しようとした。
とりあえず以下の明細をとりたかった
・イオンカード
・中国銀行VISAカード
・中国銀行
・SMBC
・ゆうちょ
このうち、イオンカードと中銀VISAと中銀はjavascriptを解析して
mechanizeで自動取得できた。
他の(特にゆうちょ)は javascriptバリバリでちょっと無理。
と思ったら、中銀に改造が入ったらしく、javascriptの割合が増えて動かなくなった。
もうmechanize使ってjavascript解析してってのはやってらんないってことで
他のを探してwatirってのを見つけた。
ちょっと前までは要素が無いものに対してexists?を実行すると落ちてたけど、
最近updateしたら直っているようだ。
自動化するためのメモをいくつか書いておく。
・要素の調べ方
右クリックで「要素を調査」を選んだら色々調べられる。
・ofxファイルダウンロード 先の指定
普通に動かすとダウンロードダイアログが出てしまうので起動するブラウザの設定を変える。
profile = Selenium::WebDriver::Firefox::Profile.new
profile["browser.download.useDownloadDir"] = true
profile["browser.download.dir"] = '~/work/mechanize/smbc'
profile["browser.download.folderList"] = 2
profile["browser.helperApps.neverAsk.saveToDisk"] = "application/x-ofx"
driver = Selenium::WebDriver.for :firefox, :profile => profile
b = Watir::Browser.new(driver)
・フレーム
中銀はフレームを使って無いように見えて使ってたりするのでハマった
f = b.frame(:index=>0)
f.link(:href=>/hogehoge/).exists?
・ゆうちょは明細ダウンロードが無い
table要素を配列にできる
hairetu = b.table(:class=>"hogehoge").to_a
最近ゆうちょ使ってなくて明細にログが無いので未確認だけど、そのうちやる。
ubuntu 12.10 byobuのエスケープキー
いままでbyobuのバックエンドをscreenにして使ってた(エスケープキーが変えられなかったから)
設定メモ: screenでマウススクロール
12.10でもUIでエスケープキー変えられないのは相変わらず。
なんでなんだろう。
とりあえずtmuxの設定を直書きする事にした。(Ctrl-gに設定)
~/.byobu/keybindings.tmuxに
set-option -g prefix C-g
を追加
byobuだと分割とかの設定がtmuxとかscreenとかと違うっぽい
よく使う機能
shift-F2 -> 横分割(Ctrl-g "は違うっぽい)
Ctrl-g % -> 縦分割
Ctrl-g Tab -> 分割間の移動
Ctrl-g 1 -> 分割やめる
Ctrl-g n or p -> ウインドウ移動
Ctrl-g d ->デタッチ
Ctrl-g [ ->コピー(スペースで開始→Enterで確定(何か分かりにくい))
Ctrl-g ] -> ペースト
Ctrl-g A ->ウインドウへの命名
まあこんくらいメモっとけば大丈夫だろう。
設定メモ: screenでマウススクロール
12.10でもUIでエスケープキー変えられないのは相変わらず。
なんでなんだろう。
とりあえずtmuxの設定を直書きする事にした。(Ctrl-gに設定)
~/.byobu/keybindings.tmuxに
set-option -g prefix C-g
を追加
byobuだと分割とかの設定がtmuxとかscreenとかと違うっぽい
よく使う機能
shift-F2 -> 横分割(Ctrl-g "は違うっぽい)
Ctrl-g % -> 縦分割
Ctrl-g Tab -> 分割間の移動
Ctrl-g 1 -> 分割やめる
Ctrl-g n or p -> ウインドウ移動
Ctrl-g d ->デタッチ
Ctrl-g [ ->コピー(スペースで開始→Enterで確定(何か分かりにくい))
Ctrl-g ] -> ペースト
Ctrl-g A ->ウインドウへの命名
まあこんくらいメモっとけば大丈夫だろう。
2012年12月2日日曜日
007SH電池消費
007SH(android 2.3)を使っている。
もともとバッテリーは少ないけど、待ち受けだけなら2日はもつ。
ところが何のタイミングか分からないけど、急に電池消費が激しくなる。
電池が急降下している間、ほとんどスリープなし状態。
とにかくいろんなプロセスを終了させたらスリープなし状態は終わった。
普通だったらこんなもん。
とりあえずスリープを無効にする権限を持ってるプロセスを調べた。
どれかが怪しいはず。
全然別の原因かも知れないけど。
多分ジョルテは入れる前から現象出てたはずだから無実だと思うとして、
他をちょっとずつ調べるのめんどくさい。
電話
ジョルテ
Android Assistant
Googleサービスフレームワーク
ワンセグ
HDMI
マップ
SHARP DMS
SharpIPCService
FeliCaObex
VideoConverterService
コンテンツマネージャー
BURS
アストロ
Dropbox
Google Play ストア
関係ないけどスクリーンショットのとり方をメモっておく。
通話終了キー+ホームキーで、/mnt/sdcard/screen shotにファイルができる。
追記>
犯人はBURS
もともとバッテリーは少ないけど、待ち受けだけなら2日はもつ。
ところが何のタイミングか分からないけど、急に電池消費が激しくなる。
電池が急降下している間、ほとんどスリープなし状態。
とにかくいろんなプロセスを終了させたらスリープなし状態は終わった。
普通だったらこんなもん。
とりあえずスリープを無効にする権限を持ってるプロセスを調べた。
どれかが怪しいはず。
全然別の原因かも知れないけど。
多分ジョルテは入れる前から現象出てたはずだから無実だと思うとして、
他をちょっとずつ調べるのめんどくさい。
電話
ジョルテ
Android Assistant
Googleサービスフレームワーク
ワンセグ
HDMI
マップ
SHARP DMS
SharpIPCService
FeliCaObex
VideoConverterService
コンテンツマネージャー
BURS
アストロ
Dropbox
Google Play ストア
関係ないけどスクリーンショットのとり方をメモっておく。
通話終了キー+ホームキーで、/mnt/sdcard/screen shotにファイルができる。
追記>
犯人はBURS
2012年11月24日土曜日
ubuntu 12.10とpt2
ubuntu 12.10で、pt2をしばらく使ってみた。
一応動きはしたけど、どうも動きが怪しい。
カーネルに組み込まれてるDVB版のドライバで動かしているけど、
微妙に動きが変わっている。
12.04のカーネル(3.2.0-31)だと、ドライバのカーネルスレッドは常時動いていた。
なので、起動後にカーネルスレッドの優先度を上げたりできた。
(PT2(DVB)安定化検討中とか設定メモ: PT2(DVB)安定化検討中の続きとか)
12.10のカーネル(3.5.0)のDVB版ドライバは録画開始でスレッドが立ち上がるように変わったらしい。
カーネルスレッドの優先度を上げておくっていうやり方が使えなくなった。
また、データをドロップする確率がかなり上がってる感じ。
優先度上げても関係ないっぽいし、lowlatencyカーネルに変えても同じ。
もうしょうがないからカーネル3.2.0をそのまま使うことにした。
このままずっと治らなそうだなあ。
追記
最近更新して(3.5.0-23-lowlatency)ここ1週間くらいつかってみてるけど、
大丈夫っぽい。
特定のバージョンでのバグかもしれん。(おかしかったときは3.5.0-18くらいだったかな?)
一応動きはしたけど、どうも動きが怪しい。
カーネルに組み込まれてるDVB版のドライバで動かしているけど、
微妙に動きが変わっている。
12.04のカーネル(3.2.0-31)だと、ドライバのカーネルスレッドは常時動いていた。
なので、起動後にカーネルスレッドの優先度を上げたりできた。
(PT2(DVB)安定化検討中とか設定メモ: PT2(DVB)安定化検討中の続きとか)
12.10のカーネル(3.5.0)のDVB版ドライバは録画開始でスレッドが立ち上がるように変わったらしい。
カーネルスレッドの優先度を上げておくっていうやり方が使えなくなった。
また、データをドロップする確率がかなり上がってる感じ。
優先度上げても関係ないっぽいし、lowlatencyカーネルに変えても同じ。
追記
最近更新して(3.5.0-23-lowlatency)ここ1週間くらいつかってみてるけど、
大丈夫っぽい。
特定のバージョンでのバグかもしれん。(おかしかったときは3.5.0-18くらいだったかな?)
2012年11月20日火曜日
登録:
投稿 (Atom)