元が海外のツールだから、文字エンコーディングに関してロクにテストしておらず、バグっている、というわけなのだな。何をやってもダメそうなので、ソースコードを修正してやろうかとも思ったのだが、Cを読むのがダルい。Rubyのライブラリがあるらしいので、自作しようと思ったが、ライブラリの導入が面倒くさそう。うーむ、ID3v2.2の仕様書をちょっと見た限りでは、さほど複雑そうでもないので、ぜんぶ自分で実装してしまうか。やりたいことは、既存のmp3ファイルの存在するフォルダから、曲目リストを作成することと、修正した曲目リストから、既存のmp3ファイルのタグを付け直すこと。実は、前者は「mget」、後者は「tagmp3」として既に完成しているので、そいつが呼んでいるバグ付きの「id3v2」と、ほぼ同等の動作をしバグのない「mp3id3」というツールを実装すればいい。実は、手持ちのmp3の多くは、WindowsのiTunesでエンコードしたものがほとんどであり、それらのタグはID3v2.2で記録されていたので、その読み出しにも対応させた。ID長などが変わっていてマジで互換性がない。策定から時間が経っているとはいえ、先が見えないアホが規格を作るとアホなことになるという見本だな、これは。:パッケージを置いておく。いえば、冒頭に「以前に自作したflacのタグ編集ツールにより」などと書いたが、公開してなかったことに気づいた。上記のパッケージに含まれている「cget」「tagflac」というのがそれ。「cget」は、先の「mget」と似ているが、ローカルのmp3ファイルからではなく、CDのトラック情報を元に、外部のCDのデータベース「gracenote」から曲目リストを得るもの。利用にはgracenoteの開発者登録が必要で、あらかじめcget.confにクライアントIDを設定しておく必要がある。「tagflac」は、先の「tagmp3」と同等のもので、修正した曲目リストから、既存のflacファイルのタグを付け直すもの。どちらも、扱う曲目リストのフォーマットには互換性を持たせてある。使い方は(CDをセットしてから)こう。tagflac余談だが、ちょっと前に「ギャラクティックストーム」というタイトーのゲームのサウンドトラックを購入した。作曲はダライアスやニンジャウォリアーズのOGR氏だし、やたらネット上の評価も高いのだが、未プレイのゲームの曲ってのもなぁ、と躊躇していた。んが、Amazonでmp3形式で配信しているのを知り、先日、製作したPC用スピーカで試聴してみると、意表を突く節回しが心地よく、未プレイであることなどどうでもよくなってしまった。以前のAmazonのmp3配信は、妙な形式でのダウンロードを強要され、mp3を取り出すのにひと手間が必要だったような気がするが、今はシンプルにzipでまとめられたmp3をダウンロードできるし、ブラウザで直接に聴くことまでできて、なにひとつ不満はない。これに上記の「既存のmp3ファイルのタグを付け直せるツール」が加わったことで、最強の環境になったと言えよう。ひとついうと「ギャラクティックストーム」の「オリジナルサウンドトラック」の購入は、アレンジ盤である「ギャラクティックストーム~瞳の記憶~」の購入の布石だったりする。似たような位置関係にある「メタルブラック」のアレンジ盤である「メタルブラック-The-First-」は、気がつくともう10年以上も聴いているお気に入りだったりするからな......のだが、なぜかAmazonでは配信されていない。moraでなら配信されているのだが......aac形式なんだよなぁ。いや、別にaacでもいいんだが、それは、次に「aacのタグの付け直しツール」も作らねばならんということを意味するわけで......とほほ。うるう秒を回避する何を隠そう、オイラの仕事はLinuxのテクニカルサポートなのだが、数年に一度のうるう秒発生前の約半年は、関連する質問が殺到して、うっとおしいことこの上ない。んが、毎度のようにLinuxOSが、何かと(パニック、ストール、CPU100%などを)やらかしてしまうのも事実であり、GoogleやAmazonが前後数時間の1秒を微妙に延ばして回避するというのは、もっともクールな回避方法だったりする。いう自分はどうするのかというと、単にntpサーバを止めることで、対処するのであった。kernelに通知され、kernelが誤動作することで起こる。最初からLIビットを受け取らなければいいのだ。その場合、正月明けにntpサーバを再起動するまで、時刻が1秒進んだ状態となり、再起動後には、ポンと1秒戻ることになるが、ウチでは1秒の狂いや1秒の時刻戻りが影響するような微妙なアプリは走らせていないので、それでいいのである。職場のntpサーバは、テスト用の1台を除いて、すべて停止してある。オイラは結構な数のサーバを管理しているので、結構な手間だった。デスクトップPC、サーバほかの物理マシン以外に、OpenStack上の仮想マシン、ラズベリーパイ......あ、借りてるVPSもあったっけ。そのほかにもありそうだが、まぁいいや。あまりにも数が多いので、スクリプト(?)を作った。sources一応、ホスト名は秘しておくが、アホな数だ。意外とchronyに移行しているサーバが多いのに気付かされた。これで無事に正月が迎えられるかねぇ。1.8.7-p357。