主にパソコン周りのはなし
主にパソコン周りのはなし
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
iTunes自体の表示文字列の変更方法を書いておくよ
この手順が簡単なのか、そうでもないのかは
僕にはよくわからないんだけど、
うちの母親にはできないと思うから難しいとしておく。
難易度超高いぜ!!!
ちなみにウインドウズね。
iTunesはマルチ言語に対応してるので、表示文字列なんかはそれぞれの言語で表示できるようにつくってある。
これは、一般的なソフトウェアでは普通。
そのファイルの中身さえ書き換えてしまえば、表示はあっさりとかわります。
そのための手順は次のような感じ。
1.リソースファイルのバックアップを作る
2.リソースファイルをデスクトップに持ってくる
3.リソースファイルをテキストファイルにする
4.テキストエディタで変えたい文字を変更する
5.リソースファイルをバイナリファイルにする
6.リソースファイルを元の場所に戻す
それでは1個ずつ。
1.リソースファイルのバックアップを作る
具体的に何をするのかというと、コピーをとるだけでいい。
あ、やべ。って思ったり、期待したところの文字列が変わらなかったり、
なんだかんだで元に戻したいということは良くある。
バックアップを取るのは基本。
それでは、そのリソースファイルとやらはどこにあるのかというと
C:\Program Files\iTunes\iTunes.Resources\ja.lproj
ってフォルダの中。
ちなみにデフォルトの場所なので、インストール場所とか変更してると違うところ
Localizable.strings
ってファイルがお目当てのファイルです。
こいつをクリックして、ctrl+c ctrl+vでコピー完了!!
なんだけど、ここでそういうことすると警告があがることもあるかもしれない。
OKしておけば問題はないかと思うけど、もちろん自己責任で
2.リソースファイルをデスクトップに持ってくる
リソースファイルのバックアップを取ったら、
今度はリソースファイルをデスクトップに持ってきます。
移動しても、コピーしてもどっちでもいい。
別に移動させずにその場所で編集してもいいのだけれど、
ちょっと特別な場所なので、編集させてもらえないかもしれないので
一旦デスクトップに持ってくるのだ。
3.リソースファイルをテキストファイルにする
では、リソースファイルをテキストファイルにします。
何もせずにテキストエディタでリソースファイルを開くと、
意外と開いちゃいます。
日本語も読めるし、修正もできた感じになります。
でも、そんなことをすると、実はファイルをぶっ壊しているので
次回iTunesを起動した時に
「ファイルが壊れてるから再インストールな」
って言われます
なので、ちゃんとテキストファイルにしてから編集します。
plutil.exe
ってのを使う。
iTunesをインストールすると、
C:\Program Files\Common Files\Apple\Apple Application Support
に勝手にいれてくれているはずなので、持ってるはず。
ここにはもちろんpathが通ってないので、pathを通してあげるか、
場所まで指定して呼び出してあげる必要がある。
pathを通すっていうのは、環境変数のPATHに、
C:\Program Files\Common Files\Apple\Apple Application Support
を追加するってこと。
このあたりから説明すると3行はかかるので、
詳しくはグーグル先生が教えてくれます。
パスを通したら、
コマンドプロンプトを開きます。
(デスクトップを表示しているエクスプローラーのアドレスバーにcmdって書き込んでリターンすると、カレントフォルダがデスクトップの状態でコマンドプロンプトが開くよ!)
plutil -convert xml1 Localizable.strings
とかすれば、Localizeble.stringsファイルがテキストファイルになります。
中身はxmlです。
4.テキストエディタで変えたい文字を変更する
変えます。
僕はサクラエディタを使ってます。
嘘をつくけど、クリーム色の背景色が好きなんです。
5.リソースファイルをバイナリファイルにする
plutil -convert binary1 Localizable.strings
とかでバイナリファイルになります。
6.リソースファイルを元の場所に戻す
デスクトップから元の場所に戻してあげます。
ひょっとすると、同名のファイルがあると上書きできないかもしれないので、
その場合は、先に削除してからコピーしてあげてください。
以上で 作業はおわり。
画面キャプチャなしでお伝えしました。
常々、こういうイベントごとは大切にしたい、
可能な限り、積極的にパーティーとかに参加したい
そんな風に思わなかったり思わなかったり
いやー
ほんと
今年も関係ないなー
じゃあ、実装の話でもしてみようか
今回は
「僕のitunesに入ってる曲は、last.fmではどんなくらい聴かれてんのかねぇ」
って情報から、曲に点数つけてみたよ
last.fmのweb serviceのapiをスココココーンっと叩けば簡単。
特に情報取得系はログインとかしなくても取得できるので、お手軽。
取れる情報は、曲によってまちまち。
やっぱり人気のある曲にはいろいろな情報がついてる
人気がそんなになくても、その曲を持ってる人数と合計の再生回数はついてる
まあ、そもそも曲が見つからないってこともあるっちゃあるけどね。
でも、OK
そういうのは、良しとする。
「再生回数」の右に「再生回数(みんな)」「聴いて人数」「みんなのスコア」「俺スコア」
っていう感じで表示してみた。
iTunesでどうやって属性追加するのかわからなかったので、
とりあえず、それぞれの値は既存の属性に入れてある。
画面は表示文字列を修正しただけ。
「再生回数(みんな)」はlast.fmの再生回数の値。
この属性が「文字列型」だったので、ソートの関係で前方を'0'で埋めてみた。
見にくいけど、こうしないと文字列ソートだから期待した結果でソートできないんだよね
それにしても桁数多すぎた。
「聴いてる人数」もそのままlast.fmでこの曲を所持している人のカウント。
そんで、「みんなのスコア」っていうのが、「再生回数(みんな)」と「聴いてる人数」からいい感じに求めた値。
「俺スコア」は俺個人の再生回数から求めた値。
「再生回数(みんな)」でソートしてみると・・・
やばい・・・ 全然聴いてないぞ 俺・・・
ColdplayとかViva la Vida以外知らんし。
みんな変なもの聴いてんのな・・・
ってか、どんな曲かわかんないのが上位にありまくる
せっかくだから、「Wonderwall」ってOasisの曲を聴いてみる。
暗いな・・・
ちなみにこの画面は、「聴いている人数」多分、この曲をscrobbleしたことがある人数だと思うんだけど、それでソートした状態。
158万人持ってんだね。
さて、「みんなのスコア」でソートしてみると、
突然、「Daft Punk」だらけ・・・
実は巷では「Daft Punk」が大ブームなんです。
なんてことはなくて、これは今日、実験のために「Daft Punk」のデータを一度消して入れ直したからなんですね。
「みんなのスコア」にも「経年劣化」するような計算をしているので、
入れたばかりの時には、そりゃもうスーパーサイヤ人3ぐらいになります。
そのスコア1億超です。
ちなみに、「Daft Punk」を除くと、「Lorde」の「Royal」が1位で7449513ポインツ
普通のスーパーサイヤ人くらいかな?
強すぎるか・・・
それはともかく、
自分で1回も聞いてなくても、ほかの人が聴いてる情報があるので、
順位がついてるし、どれがいい曲かとかわかっちゃいます。
「Get Lucky」なんでしょうね。
まあ、こんな感じで、
last.fmの情報を引っ張ってくることで、
聴かなくてもレーティングっていうか得点付けができました。
やってみると、「みんなのスコア」と自分の好みにだいぶズレがあるような
☆3個とか付けた曲は従来であればまず聴かないんだけど、
こういうふうに、「みんなは聴いてるぜ?」みたいな結果がでると
聴いてみようかな・・・
とか、あっさり思っちゃう
つづく
重複データは消しちゃダメだそうですwww (消すページはこちら)
調子にのって、英語ページとか作ったので、いい張り場所ないかなと探してたところ
こんなとこを見てしまった。
一部抜粋すっと
--------
Duplicate scrobbles
If you are finding duplicate scrobbles in your library, please be patient and do not delete them. Our team are working on cleaning up your library and removing duplicates scrobbles, while retaining the original ‘legitimate’ scrobbles.
More details can be found here: http://www.last.fm/forum/21713/_/2211521/1
--------
おいwww
日本語も展開しとけつーのwww
(してるかもしれないけどwww)
っていうか、
scrobbleって名詞だったのかよ
動詞だと思ってたよ
いや、それは今はどうでもいいんだぞ、俺
please be patientとかいわれても、もうページ作っちゃったよwww
消しマクリマ・クリスティーだよ
昔から我慢のできない子なんだよ
なんだよ、みんなこの情報知ってたから、重複削除とか話題にもしなかったのかよ
おれ、超情弱じゃん
そんで、More detailsのとことか見てみると、今のとこ(2012/12/22)29ページまであって
17 Dec 2013, 14:47 の投稿でもなんか問題発生中
半年近く野放しなの? なにハゲたことしてんの?
まあ、俺のでも問題発生中なんだから問題継続なのはわかってんだけど
「同じアーティスト」「同じ曲名」「同じタイムスタンプ」の重複のscrobbleは1個消すと全部消えるから消しちゃダメなんだってwww
それ消すためのページ書いたのになぁwww
とうぜん、俺も実装の段階で削除リクエストした個数しか消えないことは確認してるから、
今はその問題は解決されてんのかもしれないけど、
消えちゃう人もいるみたい
俺自体は消えちゃいけないものまで消えちゃう現象は1回も確認してないので、
多分大丈夫だとは思ってんだけど、
俺のページで、消しちゃいけないものまで消しちゃった人 もしいたら わりぃwww
野良犬に噛まれたとでも思って忘れてくれ
please be patient だぜ
いやいやいや
実装してみたけど
どうなのこれ??
いきなりレーティングに値を書き込むとか怖すぎるので
使ったことのない属性に入れてみる。
seasonNumberって属性
なんか整数型の属性で、
ビデオで使うみたい。
「Frends season 10」とかそういうやつ?
とりあえず、整数型なので何も考えずにソートに使えるし、
スマートプレイリストの検索条件にも使えそうなので、
こいつに入れてみた。
ん?
なんの話かって?
iTunes上の曲で「再生回数」から適当にレーティング用の数値を作ってみる実装をしてみたんだ。
この画面上で、
「再生回数」のとなりにある「シーズン」というカラムの値が
再生回数から計算した値。
ざっくりいうと「古い曲は価値がなくなっていくだろ?だから再生回数も少なく見たほうがいいんじゃないの?」っていうこと。逆に新しいのはおおくなるはず。
そうやって、今、まさに、聞きたい曲に高得点をつける予定。
最も「再生回数」の多い1曲目の「Lifetime Respect」は再生回数が983回もあるものの
そのリリースの年が2001年なので12年分の価値償却。
結果「シーズン」の値は「2」。
2って・・・
0より大きい偶数じゃ一番小さいぜ?
今もう、そんな価値しかないの?
2番目の「Stop Standing There」は882回。
2011年らしく、比較的新し目。
そんでシーズンは「296」
2年前っていうとやっぱり価値はさがりますわな。
まあ、基本となる年齢22歳児で1年すると音楽の価値半減ってことで計算したから、
2年経つと75%も減っちゃうからね・・・
でも、まだ300くらいあるし、聞く機会もありそうかな?
それでは、「シーズン」でソートしてみる。
「再生回数」のソートでは上位を誇っていた曲は全滅。
かわりに台頭してきたのは2013年の曲ばかり。
「Royals」なんかは77回しか再生していないのに、「シーズン」は4739。
これは2013年でも、僕がiTunesに追加した時期がかなり最近だからと思われる。
もし「年」の情報があれば、「追加日」から復元したカレンダー情報の年だけ付け替えて、
もし「年」がなければ「追加日」をそのまま使って、
スクリプトを走らせた日との差分を元に、音楽の価値の経年劣化を計算しているので、
2013年発売のやつはそのまま、追加日で計算してる。
「Royals」はやっぱりそこそこ最近な気がする。
一方、同じ2013年でも、春頃から聴いていた気がする「We Can't Stop」は312回も再生しているのに、「シーズン」は3874どまり。
どまりってスコアでもないんだけど・・・
このスコア、再生回数の微分値みたいな感じというかそれっぽいものなので、変化が激しいんだよね。
しかしまあ、最近聴いてる曲ばかりが見事にならんでいる
あれ?
もともと聴いてるなら、わざわざスコア付けることもないんじゃね?
って、思っちゃったりするけど、俺が最近聴いてるってことが客観的にわかるようになったことには価値があるかもしれない。
ボッチだけど
2013年以外のものはというと、「再生回数」では2位であった「Stop Standing There」がようやく90位に食い込んでるという感じ。
89位の「John Doe」とか8回しか聴いてないのに、882回聴いてる「Stop Standing There」と一緒とか、流石にそれはないぜぇ。
経年劣化酷過ぎ。
ちょっと、半減期1年ベースはやりすぎだったなぁ・・・
という感じで、「再生回数」から評価するのはだいたい終了。
え? これで?
って思うかもだけど、あとはパラメタ調整だしぃ
パラメタをUIでいじれるようにして
近いうちにスクリプトを公開しようと思う。
つづく。
つづくの?
誰か見てるのかなぁ
なんて気になってアクセス解析なんてものをつけてみた
まじで誰も見てなかった・・・
・・・
・・・
・・・
よーし、遠慮なく毒はきまくれるぞ!!
そんで、
今回は
「iTunesの中にある曲を自動でレーティングする」方法を考える
ことにした
実装は次回以降
さて
レーティングをすることは良いことだ。
是非レーティングをしよう。
そもそもレーティングってなに?
とか言われちゃう気もするけど
曲に☆をつけるやつ
結構まめにつけているんだ僕は
☆1個→消してもいい曲
☆2個→たぶん2度と聞かない曲
☆3個→うーん。一応とっとく?
☆4個→たまには聞いてもいいかもな
☆5個→すごく聞くやつ
こんな感じの基準で評価したつもりで☆をつけている
評価は、それなりに分散させないと、意味がない。
例えば、美味しいお店を探すとき
「どのお店もおいしい」とかいう人は、
気分を悪くすることなく一緒に食事ができるので
とても良い人間に思える。
しかし、よくよく考えてみると
普通なら悪く感じるお店まで美味しいというので、
その人の紹介で行った店が普通にまずいことも多々あることになる。
美味しいお店を探すのには、その人の意見は全く参考にならない。
本人の意識はともかく、
良い人っぽく見えて
実は極悪
そして、そのことの自己認識がないのでいい人のつもりだったりする。
もちろんこれは、会話において、その目的を生産性の向上に置いている場合。
そういうときは、
こういう人と話すこと自体結構むだ。
ひょっとしたら、ごく希にいいことも言うかもしれないが、
たまたまいいこといわれても
その人の判断基準そのものが信じられないので、
そこからの結果を信じることが難しい。
確認するのもめんどくさい
一方、生産性の向上を期待しない、
消費を主たる目的とした活動のばあい、
何事も(いいことも悪いことも)肯定的に捉える、
または何も考えずに肯定的な発言により共感を示すので、
こういう人は一緒に居ていいかんじだ
すくなくとも俺ほどめんどくさくはない
話はずれたが、
生産的活動の場においては
このように?
レーティングはとても良い行いなのだ。
しかし、消費の場では避けたい行動でもある。
つまり、ひとりでこっそり☆はつけて、
誰かと音楽を聴くときには、
「クソみてぇな曲だな」っと思っても敢えて言わないほうがいい
(ただし、相手がそういうならそこは共感的な感想だけのべればいい)
え?しってた?
・・・
ひとりでいるときにこっそりレーティングをしておけば
誰かと音楽を聴くときに
そもそも、ゴミみたいな曲を聞かせることもなくなるので
「いい曲ばかり聴いてて素敵」
って、モテモテなはずなのだ。
動機としては十分だろう
さて、
レーティングは評価そのものであるが、
今回は自動でこれを付加することを考えている
他に評価といえば、再生回数。
これからレーティングする。
「再生回数」は「聴く」に値するという評価をしたことの積み重ね
と考えることができる。
「再生回数」が高いものは概して良い。
いい曲はよく聞く(再生回数が多い)!。
この「再生回数」は対数関数の1よりでかいとこ的に増えていくと直感的に思える。
最初に結構な頻度で聴いて、そのうち聴く回数が減っていくというあれ。
聴く回数がだんだん減っていき、やがて聴かなくなるというのは、
その曲の価値が指数関数的減衰をしている
ってことだと思うって近所の猫が言ってた。
iTunesがきちんと聴いた時間を1回1回記録してくれていれば、
単位時間あたりの聴く回数が半分になるところを見つけて、
曲の価値の半減期を観察することができる。
そしたら、その曲の最終的な「再生回数」も推測することができるし、
今、その曲にどのくらいの価値があるか、
どのくらいの時間に1回聴きたくなるか
ということが計算できる。
でしょ??
あ、できないの?
あ、よくわかんないな
まあ、どっちにしても、iTunesはそんな記録とってないけどね
しかたがないから半減期は適当に決めてみることにする
どう決めよう・・・
「石のうえにも3年」という言葉がある。
石の上に3年もいたら、痔になるってことか飽きるってことで大体いいと思う。
これが大体3回の半減期を繰り返したと仮定すると、
半減期は1年。
まじで決めるのいい加減すぎ。でも採用。
んで、これがいい大人の場合として、22才ぐらいと思ってみる。
「普通の22歳は1年で曲の価値が半減する」
なんで22歳っていうと、
まあ、歳にはあんまり意味はない。
なんか基準がほしいだけ。
人間、時間の感じ方は人それぞれで、
特に若いほど、時間を長く感じる傾向にあるよね。
小学生の1日は長くて、おっさんの週末は一瞬
日曜日のサザエさんを見て、
もう週末が終わっちゃうと思ったら
もう週末じゃん!!
みたいな
時間の認識も、
やっぱり指数的減衰をするのではないかと思ってみる。
時間の認識は脳がなんらかの刺激を受けて行われている。
「ハートで感じる」とかわけのわからないことを言う人もいるが、
現実としては、脳以外に認識はしないからね。
じゃあ、その半減期ってどのくらいよ
ってことが重要になる
これもちょっとわからないので、次のようなことを考えてみる。
時間の流れに一様にイベントが発生する粒子があるとして、
人間はそのイベントにあたると刺激を受けて、時間の経過を認識するとする。
一度受けたイベントと同種のイベントの刺激は慣れにより次回は刺激を受けない、
または、刺激の量が減るので、時間の経過の認識量も減るという時間認識モデルを考える。
すると、より経験を積んで様々なことに慣れて
すっかりよごれてしまった大人の単位時間あたりの認識時間は減る。
つまり、1日が短くなる。
それでまた、その関数に収束してもらいたいので、
一生をかけて全てイベントを消費すると仮定する。
ここは便宜上であって、現実てきではない
まあ、新しい環境とかに身を置いたりすると、
イベントの要素や密度が変わって、
また長い一日を経験できたりするだろうし、
旅行に行くのも、なんかそういう感じのあれなんだろう
ま、今はそういうことは考えない
一生で使い切る
収束するってことが大事なんだ
便宜上
そんで、じゃあ一生はどれくらいかというと、
88年くらいにしておく
米寿だしね。
じゃあ、こんな感じで個人の時間の感じ方を数式化してみたいと思う
イベントの存在率が一様ならば・・・
その有効なイベントの母数が慣れにより減っていくことになる
慣れたイベントの数はテイラー展開されて、それを母数から引いた数に
イベントの遭遇率をかけてやれば、
対象とする時の時間の感じ方みたいのがでるよね
文字で書くと、書いてる俺でも意味がわからない。
テイラー展開って書きたかっただけなんだ
しかもテイラー展開なのかわかってないんだ
けど、そんな感じ
今の時間の感じ方=(謎の定数C×イベント遭遇率)×(イベント母数ーlog(今の年齢ー記憶開始年齢,謎の定数C×イベント遭遇率))
(log(パラメタ1,パラメタ2)はパラメタ1が真数、パラメタ2が底であるとする)
(謎の定数Cは謎である。)
ここで、「謎の定数C」を88才でイベントを消費するように設定してみる。
なお、記憶開始年齢は、なんとなく自分を振り返って4才くらいにしてみる。
と、この式がでてくる
イベント母数=log(お亡くなりになる88才ー記憶開始年齢の4才,謎の定数C×イベント遭遇率)
イベント遭遇率は基準値はとりあえず、1で計算する
イベント母数は、まあ適当に決めればいいから10000とする。
するとこれは、謎の定数に関する式になり、
謎の定数=exp(ln(88ー4)/10000ーlog(1));
謎の定数≒1,0004431798550711960934904097897
ですって奥さん
この定数を使うと、22才で1年とした曲の価値の半減期は、
今の年齢ではどのくらいの期間なのかということを求めことができる。
今の年齢の半減期=22才の半減期÷(今の時間の感じ方÷22才の時間の感じ方)
これは、22歳のときより年をとって、
「更に時間が短く感じるな、そうだな~、だいたい0.9倍してるくらいに感じる」
っと思うことがあると思うんだけど、
あなたの音楽の価値の半減期は22歳のときの半減期を0.9でわったもの、
つまり1.1年くらいかな
って計算するよってことを示しているんだ。
たぶん。
体感的には同じくらいで飽きがきても、時の過ぎるのが早くなってるね
ってこと
そうすっと、
曲の今の価値はどうなんのよってのは、
今の価値=元の価値×pow(1/2, 曲の視聴期間/今の年齢の半減期)
ところで元の価値は
再生回数=元の価値×(1-exp(-1年×曲の視聴期間))
から
元の価値=再生回数÷(1-exp(-1年×曲の視聴期間))
なので
今の価値=再生回数÷(1-(1/exp(1年×曲の視聴期間)))×pow(1/2, 曲の視聴期間/今の年齢の半減期)
というように、曲の今の価値が導けるのではないかな?
じゃあ実装してみっか。
つづく