2013年2月16日土曜日

walkmanのid3tag

ちょっと前に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月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)のサーバが落ちても 使える様な気がする。
試してないけど。