トップ «前の日記(2006-11-24) 最新 次の日記(2006-11-26)» 編集

jFD開発したりしなかったり日誌

2004|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|
2006年
11月
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30

2006-11-25 [長年日記]

_ がっかり

今夜はHさんとジャズバーに行く予定だったのだが、2時間ほど前に電話が

かかってきた。

昼に行った歯医者の薬が切れたら、猛烈に痛んできたので今日はパスさせて、

だそうだ。

うーんー、がっかりがっかり。

_ うーむ

C#でiTunesに関連したアプリを作っているのだが、どのくらいのメモリが必要か

ちょっとわからなかった。

iTunesは曲ライブラリのデータをXML形式で保存していて、そのサイズは

たとえば664曲入っている僕のライブラリだと、800KBだった。

このくらいのサイズのXMLならDOMで対処できるが、ほかの人のライブラリだと

どのくらいのものかわからないので、たぶん僕の周りで一番でかいライブラリを

構築していると思われるマサトクさんにお願いして、XMLを貸していただいた。

すげえ、26メガのXMLなんて初めて見た・・・

こりゃDOMで扱うのは無理だろう、と思ったが試しに読み込んでみたところ、

物理メモリを80メガ食いつぶしてくれた。

SAXで読み込むしかないな、これは。

_ iTunes

iTunesのXMLファイルのフォーマットが気に入らない。

タグの種類が極端に少なく、↓このくらいしかない。

dict, array, key, string, integer, date

keyタグの値がその次のタグのIDを表す、という構造のようだ。

属性はまったく使用されていない。

で、曲データはこんな感じで表現されていた。

<key>448</key>

<dict>

<key>Track ID</key><integer>448</integer>

<key>Name</key><string>Despertar</string>

<key>Artist</key><string>Aisha Duo</string>

<key>Composer</key><string>Andrea Dulbecco</string>

<key>Album</key><string>Quiet Songs</string>

<key>Genre</key><string>Jazz</string>

<key>Kind</key><string>AAC オーディオファイル</string>

<key>Size</key><integer>4980013</integer>

<key>Total Time</key><integer>307385</integer>

<key>Track Number</key><integer>11</integer>

<key>Year</key><integer>2005</integer>

<key>Date Modified</key><date>2006-11-08T19:23:21Z</date>

<key>Date Added</key><date>2006-11-08T19:23:06Z</date>

<key>Bit Rate</key><integer>128</integer>

<key>Sample Rate</key><integer>44100</integer>

<key>Comments</key><string>"Despertar" performed by Aisha Duo from the CD Quiet Songs, courtesy of Obliq Sound. Written by Andrea Dulbecco, published by Editions ObliqMusic (GEMA). All Rights Reserved. Used by Permission. </string>

<key>Play Count</key><integer>1</integer>

<key>Play Date</key><integer>3246879634</integer>

<key>Play Date UTC</key><date>2006-11-20T06:00:34Z</date>

<key>Artwork Count</key><integer>1</integer>

<key>Persistent ID</key><string>75B5F8832557AC49</string>

<key>Track Type</key><string>File</string>

<key>Location</key><string>file://localhost/C:/Users/shunji/Music/iTunes/iTunes%20Music/Aisha%20Duo/Quiet%20Songs/11%20Despertar.m4a</string>

<key>File Folder Count</key><integer>4</integer>

<key>Library Folder Count</key><integer>1</integer>

</dict>

この書式はかなりいけてないと思う。

keyタグが次のタグを修飾するというのが酷い。

順番そのものを表す場合を除き、XMLはタグの順番が変わっても意味が変わらないような

書式にするべきだ。

順番に依存すると、XPathが極端に書きにくくなるし、二つの並列のタグで一つの

情報を表すと、パーサーも書きづらい。

自分だったら、↓こんな感じにkeyタグは属性で名称を指定し、中に値を持つようにする。

<key name="Track ID"><integer>448</integer></key>

じゃなかったら、変にタグの種類をケチらず、トラックIDならTrack_IDというタグを作る。

本日のツッコミ(全4件) [ツッコミを入れる]
_ genu (2006-11-29 08:48)

まあ人生がっかりだらけですよ。
特に男女関係に関しては自分で勝手に100%を妄想しますからねえ…そのぶんがっかりも大きいと。

_ Shunji (2006-12-07 01:53)

まあ、鼻に荒らしのたとえもあって、がっかりだけが人生なんですよ。

_ genu (2006-12-07 09:05)

さよならだけよりも救いようがない感じがいいですね…

_ Shunji (2006-12-08 16:25)

鼻に辛子の方がよりモアがっかりで良かったかなあとか思ったり思わなかったり。がっかりですまなさそうだけど。

本日のリンク元
その他のリンク元
検索