9/30/2010

マイク・ポートノイの DREAM THEATER 脱退の件について

Mike Portnoy leaves Dream Theater (Press Release) - Mike Portnoy's MySpace Blog

DREAM THEATER をこよなく愛する身としては、このことに対してなにも触れずにおくことはできない。先日、MySpace 上にて本件を知ったんだけど、あんまり MySpace の他人のブログを読まない身としては、発表日から遅れて知った有様だった。その時点より前に、Versaiiles のドラマー YUKI のブログ(改行が多いのは日本語文として非常に違和感があるから、なんとかしてほしい)で「マイクさんの件」とされている一文を見て、なにか判らなかったけど、なにが起こったかを知るとさすがに「マイクさんの件」の意味を理解できた。

マイクは DREAM THEATER のリーダーであり、そもそも DREAM THEATER というバンド名はそもそもマイクの父親が付けたもので、彼も今回のメッセージでは冒頭に「今まで考えたこともなかったようなことを言わなければならない」としている。

彼を含めたメンバーでヴォーカル以外は全て音楽学校を卒業しており、複雑な音楽構成ではあるけど緻密な計算によって流れるような展開を実現している。この点に私は昔からとても魅力を感じており、尊敬をしていた。ただ、ここ 2 作で言えば、マイクの好みによりラップを少しだけ入れていることからも、他のメンバーとの方向性の差異が表面化しているように感じていた。脱退については非常に驚き、落胆したけど、そう考えると仕方なかったのかもしれない。

それよりも、DREAM THEATER の骨格を成すマイクの後を埋められるドラマーを探せるのかどうかが少し不安だ。Burrn の広瀬和生は、新しいドラマーに「雇われか?」という、かつてのジェイムズ・ラブリエ(Vo.)に向けた幼い質問をするのだろうか。

9/25/2010

Safari/Chrome Extension "noticeAboutMe" を公開してみた

Safari/Chrome Extensions を初めて作ってみた。Twitter で誰かが自分に対するツイート(@ユーザー ID でツイートしてるもの)があったりしても、いちいち見に行かないといけない。リツイートだって、見に行かないとされてるのかどうか判らない。ということで、そいつをチェックしに行く機能拡張を作ってみた。なかなかいい勉強になった。

Safari Extensions でも同じものを作ったけど、こちらは現在 Apple にて評価中。載るかどうか判らない。

良ければ使ってやってください。

Chrome:
noticeAboutMe - Google Chrome 拡張機能ギャラリー
Safari:
noticeAboutMe | Prime Design Works | Webサイト制作・開発 | 京都市内・京都府

Safari Extensions の feedback ページのお問い合わせフォームがいい感じ

お問い合わせフォームのエラー画面というのは、デザイナーではなくエンジニアの UI の活きるページだと思っている。もちろんデザイナーは素晴らしいデザインを創るけど、かつて在籍していた会社では、お問い合わせフォームなどのシステマティックなページの UI はエンジニア製だった。どのようにして判りやすくユーザー「アンタ、間違ってるよ」ってことを伝えるか、エンジニアの想像力をかき立てる場面だと思う。

この前、私がよくブログを読んでいるある人が退職し、別の会社に就職した。そこのウェブサイトにもお問い合わせフォームがあったので、「あの人が選んだ会社だ。どのようなエラー処理をしているのか」という純粋な興味で、何気なく、全ての項目を空のままで送信ボタンを押した。送信できてしまった。結構がっかりしたもんだ。

さて、Apple の Apple - Safari - Feedback というお問い合わせページがあるけど、ここはアクセスしたままの状態だと項目右の「REQUIRED」という部分がグレーのまま。しかし、例えば、名前を入力しようとしたけど「次の Email Address から入力しちゃお」とか思って項目を移動すると、Name 項目右の「REQUIRED」が怒り出して赤くなる。こういうのだと「ああ、ここ入力必須なのね」って、送信ボタンを押す前にユーザーに教えることができる。こういうページはとてもいいと思う。一つ注文をつけるなら、ページにアクセスした時に Name 項目にフォーカスを自動で合わせてほしいくらいかな。

お問い合わせフォームページって、エンジニアの腕の見せ所の一つだと思う。

自分とこのウェブサイトを英語化してみた

今後、アプリケーションを公開していくのにも、自分のウェブサイトを英語化したおいた方が便利かもしれないと思って、数日かけて英語化してみた。去年の立ち上げ時に、色々と説明しておかないとと思って文章をたくさん書いたので、難儀した。

基本的には OS の言語で日本語以外は英語版となるようにしてあるけど、ページ内の English を押すことで英語ページの表示も可能にしてある。構造としては、両言語用の文章を別に持ち、php で OS の言語を判断、またはクリックされて cookie に保存された言語切り替えリンクの内容を php で読み込み、言語を特定。html 内は ssi で php を読み込み、言語に応じた文章を返すようにしてある。

言語ごとにページを分けたりしても良かったけど、ディレクトリ構造を変えるのはめんどくさかった。あと、ページそのものを php 化してしまえば ssi は要らなかったけど、xhtml が好きな人だし、そもそも php 化するのもめんどくさかったから、これもしなかった。

今となってはこの仕組みで良かったかなとも思う。この英語化されたページが実際に役に立つ日が来るのだろうか。

Prime Design Works

9/24/2010

Blogger の新しい投稿画面がイマイチ

なんだか「Blogger の投稿画面が新しくなったぜ」みたいな告知があったので使ってみたけど、う〜ん。

「プレビュー」ボタンを押すと新しいタブが開いてしまうため、そのタブ内にある編集ボタン(鉛筆ボタン)を押して編集を進めると、「プレビュー」ボタンを押す前のタブが残ってしまう。そして、投稿したあとにこの要らなくなった前のタブを閉じようとすると、「ホンマに消していいんでっか?」と訊かれる。正直、鬱陶しい。

あと、「Tweetmeme Retweet Badge」っちゅーのを貼ってるんだけど、プレビューページでは何故か 1 とカウントされる。なんでやろね?

とりあえず Google Product Ideas ってとこに投稿しといた。

Javascript ファイルから設定画面の情報を読み込む [Safari Extensions を作ってみる:第七回]

Safari Extensions ではメニューの「Safari -> 環境設定...」画面の「機能拡張」タブをクリックすることで現れる画面に、「機能拡張ビルダー」内の「機能拡張の設定」で指定した各種設定を表示させることができる。これの設定をどうやったら読み込めるのかを、これまたひとしきり悩んだ。公式のドキュメントである Safari Extensions Development Guide: Settings and Local Storage を見てもやり方が判らない。色々と検索した挙げ句、Safari Extension Questions - Stack Overflow でなんとか解決した。以下にやり方を書いてみたいと思う。

まず、設定を読み込むには、safari.extension.settings.getItem("xxx") で取り込めばいいんだけど、これは「機能拡張ビルダー」内の「取り込んだ機能拡張の内容」の「スクリプトを開始 or 終了」のところに入れた Javascript ファイルに記述しても機能しない。その少し上の「機能拡張グローバルページ」で指定した html ファイル内で記述しないと能力を発揮しない。先程の「スクリプトを開始 or 終了」とグローバルページとの応答でようやく取得することができる。

ついでに設定画面で変更された時にも値を Javascript に渡すようにする。ユーザーが変更した際は change event が発行される。

★「グローバルページ」で指定した html 内の Javascript
<!doctype html>
<html lang="en">
<head>
  <script type="text/javascript">
// 問い合わせ or 設定変更時に呼び出される
    function respondSetting(evt) {
// 設定の「キー」項目である「xxx」という値を変数 zzz に代入
      var zzz = safari.extension.settings.getItem("xxx");
// Javascript への返答
      safari.application.activeBrowserWindow.activeTab.page.dispatchMessage("answer", zzz);
    }

// Javascript からの問い合わせを受信
    safari.application.addEventListener("message", respondSetting, false);
// 設定が変えられた時に発行
    safari.extension.settings.addEventListener("change", respondSetting, false);
  </script>
</head>
<body></body>
</html>

★「スクリプトを終了」で指定した Javascript
// グローバルページからの返答時に呼び出される
function getMessage(evt) {
// 返答された設定画面の値を変数 sValue に代入
  var sValue = evt.message;
}
// グローバルページに設定画面の値を問い合わせを送信
safari.self.tab.dispatchMessage("settingValue", "xxx");
// グローバルページからの返答を受信
safari.self.addEventListener("message", getMessage, false);

9/23/2010

Chrome / Firefox でキャッシュを飛び越して再読み込みする

さっき Firefox で確認することがあって、どうもキャッシュを読んでいるらしく、変更したのに変更後の表示にならない。いちいちメニューの「ツール -> 最近の履歴を消去...」を選んで消してからもう一度読み込むというかなりめんどくさい動作をしていたので、キャッシュを飛び越して再読み込みできたらいいのにと思った。昔 Windows を使っていた時代に、IE では Ctrl + F5 でできた気がしたので、似てることもできるだろうと考えて、普段再読み込みするのに Command + R を使っているけど、それに Shift キーを混ぜたらどうなるかと思ってやってみると、早々と答えが出た。これでキャッシュを飛び越して再読み込みできた。

★Chrome / Firefox でキャッシュを飛び越して再読み込みする方法
Command + Shift + R


Opera ではダメだった。Safari でもダメだった。でもあんまりこの 2 つではキャッシュで困ったことはないからいいかなと思う。

Extension のアイコンを設定する [Safari Extensions を作ってみる:第六回]

Apple - Safari - Safari Extensions Gallery でいくつかの Extensions をインストールすると、Safari の環境設定画面の「機能拡張」タブをクリックすると表示される画面で、アイコン付きで表示されている。このアイコンはどうやって設定するのだろうとひとしきり悩んだ。

「機能拡張ビルダー」をよく見てもそれらしき項目はないし、検索してもなんだか見当違いばかり出てきて役に立たない。仕方ないので、「ユーザー -> ライブラリ -> Caches -> com.apple.Safari -> Extensions」内に展開されているそれぞれの Extensions の中身を見てみた。すると、この環境設定画面で表示されているアイコンが格納されていた。名前は「icon.png」。こいつをどこで設定しているのかと、.plist ファイルを見てみたりしたけど、やっぱりない。

仕方ないので、現在テスト中の Extension のフォルダに、同じ icon.png で保存してみた。すると、表示された。なんやそれ。ま、一度判ってしまえば簡単な構造ではあるけど。

自動的にアップデートをさせるようにする [Safari Extensions を作ってみる:第五回]

Safari Extension が 1 つできたとして、それのアップデートを自動的にさせたい場合はどうしたらいいのだろう。メニューの「Safari -> 環境設定...」を選択し、「機能拡張」タブをクリックすると、環境設定画面左下に「アップデート」と表示されている。おそらくここになんらかのアクションを与えられる筈だ。「機能拡張ビルダー」には「マニフェストをアップデート」という項目があるので、ここが関係していると思って、Safari Extensions Development Guide: Updating Extensions を見に行く。すると、このページののっけから答えが書いてあった。このページには 2 種類の xml コードが紹介されている。今回のエントリーで使用するのは上のコード(以下、このエントリー内では「plist コード」と称する)。

とりあえず、マニフェストファイルを用意する。名前は「manifest.plist」とする。
  1. 上述の plist コードを貼り付ける
  2. 「機能拡張ビルダー」の「バンドル識別子」の文字列をコピーし、plist コードの「com.yourCompany.safari.yourExtensionName」と置き換える
  3. 「機能拡張ビルダー」の上部にある「Safari Developer」の括弧内の文字列を plist コードの「YourCertificateID」と置き換える
  4. 「機能拡張ビルダー」の「機能拡張のバージョン」の「バンドルのバージョン」内の文字列をコピーし、plist コードの「Your current bundle version」と置き換える
  5. 「機能拡張ビルダー」の「機能拡張のバージョン」の「バージョンを表示」内の文字列をコピーし、plist コードの「Your current display version」と置き換える
  6. パッケージとしてビルドした Extension ファイル(拡張子:.safariextz)をアップする予定の URL を、plist コードの「Your-.safariextz-URL」と置き換える

「3」の YourCertificateID(Safari Developer ID)は入力するのが面倒な場合は、以下の方法でコピーできる。
  1. 「アプリケーション -> ユーティリティ -> キーチェーンアクセス」を起動する
  2. 一覧から「Safari Developer〜」の行で右クリックして「情報を見る」を選択する
  3. 表示された画面の「詳細な情報 -> サブジェクト名 -> 通称」にある括弧内の文字列を選択してコピー


なお、環境設定画面で自動アップデートとして反応するのは「バンドルのバージョン」だけで、「バージョンを表示」は関係ない。例えば配布している Extension をパッケージ化したときの「バンドルのバージョン」が「1」だとして、manifest.plist の「CFBundleVersion」が「1.1」だとアップデートを促してくれるが、パッケージ化したときの「バージョンを表示」が「1」で、manifest.plist の「CFBundleShortVersionString」が「1.1」でもアップデートは促してくれない。

あと、<dict> で一括りにして、複数の Extensions のマニフェストを 1 つのファイル(ここで言う manifest.plist)に纏められるので、このマニフェストファイルをアップロードする場所は、ある程度意味が共通する名称の方がいいと思う。

さて、このマニフェストファイルを作成し、アップロードした後の手順はこうなる。
  1. manifest.plist をサーバーにアップする
  2. 「機能拡張ビルダー」の「機能拡張の詳細」の「マニフェストをアップデート」に、「1」でアップした URL を入力する
  3. 「機能拡張ビルダー」の「パッケージをビルド...」をクリックして、保存する
  4. 保存した Extension を前述の「6」で指定した URL にアップロードする

9/17/2010

Ben Johnson というミュージシャン

この前 YouTube を徘徊してるときに、初めて Ben Johnson というミュージシャンを認識した。以前にも一度聞いたことがあった気がするけど、「走る人と同じ名前ね」と思って大して気にしていなかった。

ところが、私が YouTube 内に Bach の BWV1043 をギターで弾いてる人がいないかなと思って見ている内に、彼の動画を目にした。圧巻とも言えるプレイだが、特筆すべきは、この BWV1043 は「2 つのヴァイオリンのための」という題が付けられているが、その 1 本をギターで、もう 1 本をキーボードで弾いているのである。同じ Ben Johnson 自身が。どちらも素晴らしいプレイだった。彼のウェブサイトによると、初めはピアノを習っていて、そのあとギターを弾けるようになったという。ギターの音のセンスや左手の動かし方(オーディエンスに対する魅せ方)も私の好みに合い、ギターを後付けで学習したようには到底思えない。もちろん、この BWV1043 をチョイスした時点で Bravo なんだけど。

百聞は一見に如かず。
Ben Johnson - "Double" Concerto in Dm by J.S. Bach, BWV 1043, 1. Vivace
BenJohnson. NET - Home

9/15/2010

iPod touch の電池消耗を抑える

どうも家では iPod touch の電池の消耗が激しい。ずっと外にいると特にそんな気はしないのに、家では凄く減りが速いと感じている。前までは電源ボタンをポチっと押すだけの「スリープ」みたいな状態にするだけで、使っていない時は放置してたけど、きちんと毎回電源を切ってバイバイして放置するようにしたけど、なんかダメ。やっぱり消耗が激しい。

そこで、その「スリープ」にする前に、WiFi を OFF にしてみた。そしたら、結構消耗が抑えられている気がする。ずっと ON にしたままだと、「スリープ」にしてから 2 日後に再度見てみると、もう電池表示が真っ赤っかになっていたけど、WiFi を OFF にしたら、「スリープ」にしたときの電池残量のまま復帰できている気がする。ちょっとは減っているかもしれないけど、気づかないくらい。

ということで、ちょっとめんどくさいけど、最近 WiFi の ON/OFF はこまめに切り替えている。

9/10/2010

Google 乗り換え案内(車で行く)の印刷ページが素晴らし過ぎる

ちょっと用事で車での行き方を調べることになり、Google の乗り換え案内に「車で行く」というモードがあったなと思って、やってみると、印刷ページが素晴らしい。

Google 乗り換え案内の素晴らしいインターフェイス

上のリンクをクリックして画像を見てもらうとすぐに判るけど、印刷前の検索結果の状態で細かく分けてくれているルートが、印刷画面ではそれぞれをカスタマイズできる。「ここは知ってる」というところはそのブロックにカーソルを合わせて「テキストのみ」をクリックすると、文字情報だけになって印刷部分を削ることができ、結果的には印刷枚数を減らせる。逆に知らない場所はそのブロックを「地図」にしておき、さらに「+」「-」ボタンやドラッグによる移動で自分にとって判りやすい縮尺や場所にすることができる。

印刷画面なのに、う〜ん、と唸ってしまうインターフェイスだ。

インストールした Chrome Extensions の格納場所 [Chrome Extensions を作ってみる:第一回]

Safari Extensions とは違い、Chrome Extensions を開発する際は証明書がいらないようなので、自分用に開発するだけならなんの申請もいらずにちょっと楽。

さて、他人が作った Chrome Extensions の内容を見たい場合は、どのフォルダに格納されているのだろうか。ちょっと Finder の中を漁ってみると、ここにあった。

ユーザ -> ライブラリ -> Application Support -> Google -> Chrome -> Default -> Extensions


ここにダウンロードした Chrome Extensions が格納されているので、.json ファイルの書き方を見るなどの勉強になる。

Chrome Extensions を作ってみる

Safari Extensions をやってみたので、Google Chrome Extensions も作ってみようと思う。

  1. インストールした Chrome Extensions の格納場所
  2. Extension の定義ファイル
  3. 読み込んだウェブページの内容を使って処理を行う
  4. 読み込んだウェブページに CSS を適用させる
  5. content_scripts と background_page でデータをやり取りする
  6. 独自の要素からページ遷移を行う
  7. 独自のコンテクストメニューを生成する
  8. 開いている全てのタブに処理を走らせる
  9. ウェブページに iframe があって複数挿入されてしまう場合の対処
  10. 拡張内に入れた画像などのファイルを読み込む
  11. 現在開いているタブのスクリーンショットを撮る

Safari Extensions と同じものは、こちらを参考に。

読み込んだウェブページに CSS を適用させる [Safari Extensions を作ってみる:第四回]

さて、Safari で読み込んだページに CSS を適用させてみる。今回は Apple の背景を青にしてみる。

とりあえず、CSS を用意する。名前は「apple.css」とする。
body {background: rgba(0, 102, 255, .7) !important;}

既に背景はスタイルで宣言されているので、!important を付けておく。

  1. Safari Extensions の新規開発画面を表示する

  2. Safari Extensions の新規開発画面を表示する際に保存したフォルダに、上記で作った css ファイルを保存する

  3. 「機能拡張の情報」「機能拡張の詳細」「機能拡張のバージョン」の各項目に適宜な内容を入力する

  4. 「機能拡張 Web サイトアクセス」の「アクセスレベル」を「すべて」にする

  5. 「取り込んだ機能拡張の内容」の「スタイルシート」の「新規スタイルシート」をクリックする

  6. 入力箇所が表示されるので、セレクトボックスをクリックすると 2. で保存した apple.css が表示されるので、それを選択する

  7. 少し下の「ホワイトリスト」の「新規 URL パターン」をクリックする

  8. 入力ボックスが表示されるので、「http://www.apple.com/*」と入力する。アスタリスクでワイルドカードを使えるので、スラッシュの後には「*」を入力する

  9. 機能拡張ビルダー右上の「インストール」をクリックし、Apple にアクセスすると、背景が青くなる。


ちなみに、このホワイトリストでドメインを指定しないと、あらゆるウェブページで css が発動してしまう。ホワイトリストの説明は Safari Extensions Development Guide: Using Extension Builder に載っている。

読み込んだウェブページの内容を使って処理を行う [Safari Extensions を作ってみる:第三回]

機能拡張では、メニューバーになにかを表示したりするだけでなく、Safari で読み込んだページの内容を使って処理を行うこともできる。今回は Apple のトップページ右上にある検索ボックスに「Safari Extensions」という文字を放り込むような処理を作ってみる。

とりあえず、Javascript を用意する。名前は「apple.js」とする。この検索ボックスは、ソースを見ると id="sp-searchtext" となっている。
document.getElementById("sp-searchtext").value = "Safari Extensions";

  1. Safari Extensions の新規開発画面を表示する
  2. Safari Extensions の新規開発画面を表示する際に保存したフォルダに、上記で作った js ファイルを保存する
  3. 「機能拡張の情報」「機能拡張の詳細」「機能拡張のバージョン」の各項目に適宜な内容を入力する
  4. 「機能拡張 Web サイトアクセス」の「アクセスレベル」を「すべて」にする
  5. 「取り込んだ機能拡張の内容」の「スクリプトを終了」の「新規スクリプト」をクリックする。「スクリプトを開始」のものでは動作しないので、必ず「スクリプトを終了」のものにする
  6. 入力箇所が表示されるので、セレクトボックスをクリックすると 2. で保存した apple.js が表示されるので、それを選択する
  7. 少し下の「ホワイトリスト」の「新規 URL パターン」をクリックする
  8. 入力ボックスが表示されるので、「http://www.apple.com/*」と入力する。アスタリスクでワイルドカードを使えるので、スラッシュの後には「*」を入力する
  9. 機能拡張ビルダー右上の「インストール」をクリックし、Apple にアクセスすると、検索ボックスに「Safari Extensions」と表示されるようになる


ちなみに、このホワイトリストでドメインを指定しないと、あらゆるウェブページで js が発動してしまう。ホワイトリストの説明は Safari Extensions Development Guide: Using Extension Builder に載っている。

とりあえず Hello World [Safari Extensions を作ってみる:第二回]

まずは新しくプログラムを行う基本である、Hello World の文字を Safari のメニューバーに表示するようにしてみる。

とりあえず、Hello World と表示する html ファイルを用意する。html5 で記述し、名前は「index.html」とする。
<!DOCTYPE html>
<head>
  <meta charset="UTF-8" />
  <title>タイトル</title>
</head>
<body>
Hello World
</body>
</html>

  1. Safari Extensions の新規開発画面を表示する
  2. Safari Extensions の新規開発画面を表示する際に保存したフォルダに、上記で作った html ファイルを保存する
  3. 「機能拡張の情報」「機能拡張の詳細」「機能拡張のバージョン」の各項目に適宜な内容を入力する
  4. 「機能拡張クローム」の「バー」の「新規バー」をクリックする
  5. 入力箇所が表示されるので、「ラベル」には適宜な文字を入力し、「ファイル」をクリックすると 2. で保存した index.html が表示されるので、それを選択する
  6. 機能拡張ビルダー右上の「インストール」をクリックすると、メニューバーに「Hello World」と表示される

とっても簡単。

Safari Extensions を作ってみる

Safari 5 から Extensions(拡張機能)を使えるようになったので、作ってみようと思う。

  1. Safari Extension(機能拡張)を作る前に証明書をゲットし、Safari Developer となる
  2. とりあえず Hello World
  3. 読み込んだウェブページの内容を使って処理を行う
  4. 読み込んだウェブページに CSS を適用させる
  5. 自動的にアップデートをさせるようにする
  6. Extension のアイコンを設定する
  7. Javascript ファイルから設定画面の情報を読み込む
  8. 読み込んだページに独自の要素を表示させる
  9. 独自の要素からページ遷移を行う
  10. 独自のコンテクストメニューを生成する
  11. 開いている全てのタブに処理を走らせる
  12. 設定内容の保存先には localStorage がいいと思う
  13. ウェブページに iframe があって複数読み込まれてしまう場合の対処

iTunes 10 の違和感

昨日、ようやく iTunes 10 をインストールしたけど、どうも違和感がある。。。画面でメインとリストの部分は、なんだか OS 9 以前のデザインぽいなぁという感じはするけど、違和感の正体はこれじゃない。

左上の赤・黄・緑のボタン類が縦並びになっていることだ。何故こんな仕様に?いつ見ても違和感がある。

アップル - iTunes - あなたを楽しませるすべてのエンターテインメントが、ここに。

Mac で全角入力モードで半角スペースを打つ

私は以前勤めていた会社で、「半角英数字を打つ場合は前後に半角スペースを入れて見やすくする」ということを学習したので、今もそれはむしろ癖となって体に染み付いている。しかし正直なところ、例えば「これは 1 です」と打つ場合、モードは「全角→半角→全角」と切り替えるのはめんどくさい。テンキーの数字は半角モードにしているため、「1」はわざわざ半角モードにしなくても打てる。問題は全角モード時に半角スペースを打つことができれば、随分と楽になる。

で、先程キーの押し間違いからそれが解決した。全角モードで半角スペースを打つ方法はこれだった。

Shift キー + スペースバー


これで全角モードであっても半角スペースを打つことができた。JIS キーボードでも US キーボードでも確認済み。ただ、うちには Mac しかないから、Windows ではどうなのかと言われると、判らない。

iTunes で同じアルバムなのに 1 つにまとめられない問題の解決法

以前から気にはなっていたけど、何故だかよく判らなかったので放置していたこの問題。友人も同じことを言っていたので、結構同じ問題を抱えている人はいるんだろうなぁと思っていたけど、放置していた。で、ふと思って検索してみると、アップルのサポートに載っていた。

同じアルバムアートの曲がひとつにまとめれない理由

正式のサポートページなのに、タイトルで「ら」抜きとは如何なものかと思ったが、(今見たらタイトル直ってました)とりあえず記事を読んでみた。このページに書いてある原因は以下の 3 種類。

  1. アルバム名が少し異なる
  2. アルバムに収録されている曲のアーティストが異なる
  3. アルバムに収録されている曲の「アルバムアーティスト」が異なる


1. と 2. は記事に書いてあるようなことはない。今では CD を挿し込むと情報を書き込んでくれるけど、昔の iTunes ではそんな便利なことをしてくれなかった。しかし CD から取り込んだ後に 1 曲だけ情報を入力して、あとは曲名だけ完全に入力し、残りの部分はサジェストで表示されるものを使っているから、間違う訳がない。3. に至っては、「アルバムアーティスト」という項目を使っていないので、全部空欄。

ということで、記事の最後に書いてある方法をやってみる。「コンピレーション」にチェックを付けるというもの。ただ、これをすると iTunes の「カラムブラウザ」欄の「アーティスト」に「コンビレーション」という謎の「アーティスト」ができてしまい、美しくない。しかし今回は「同じアルバムなのに 1 つにまとめられないという問題を解決する」という目的なので、コンビレーションを「はい」にしてみた。手順は以下の通り。

  1. 本来同じアルバムとして登録される筈の曲を全部選択する
  2. Command キーと i キーの同時押し、もしくは右クリックの「情報を見る」、もしくはメニューバーの「ファイル」から「情報を見る」を選択する
  3. 「複数項目の情報」という画面が表示されるので、「オプション」タブをクリックする
  4. 「コンビレーションの一部」の右にあるセレクトボックスを「はい」にして、「OK」をクリックする


これで確かに 1 つにまとまったけど、やっぱり「コンビレーション」という謎のアーティストができてしまう。そこで、上記の操作をもう一度やり、最後の「コンビレーションの一部」右のセレクトボックスを「いいえ」に戻す。すると、謎の「コンビレーション」というアーティストは消えるが、アルバムは 1 つにまとめられたままの状態で残る。これで美しくまとめられた。

9/03/2010

Safari Extension(機能拡張)を作る前に証明書をゲットし、Safari Developer となる [Safari Extensions を作ってみる:第一回]

Safari Extension(機能拡張)も widget と同じように、html や Javascript、css で簡単に開発できるみたいだけど、作る前にやることが結構ある。なんか証明書というのが必要らしい。

★機能拡張を開発する画面
まずは機能拡張を有効にしていなければ、これを有効にする
  • Safari を起動する
  • メニューバーの「Safari」から「環境設定」を選択する
  • 「機能拡張」をクリックし、バーを「入」にする

これをやっていれば、メニューバーの「開発」に「機能拡張ビルダーを表示」が表示される。これを選択すると、「機能拡張ビルダー」が起動する。


★機能拡張を新規に開発する
  • 「機能拡張ビルダー」左下の「+」ボタンを押す
  • 表示されたメニューから「新規機能拡張...」を選択する
  • まぁ待ちなさい、まずは保存しなさいとのダイアログが出るので、場所を選んで名前を付けて保存する
  • 証明書がないと、画面上から 3 行目辺りが赤くなっている



さぁ、この赤いのを取り除きたい。この手順は以下の通り。

★証明書を入手する
  • 「アプリケーション -> ユーティリティ」にある「キーチェーンアクセス」を起動する
  • メニューバーの「キーチェーンアクセス」から「証明書アシスタント -> 認証局に証明書を要求...」を選択する
  • 「ユーザのメールアドレス」にメールアドレス、通称に名前等を入力し、「要求の処理」のチェックを「ディスクに保存」にし、「続ける」ボタンを押す
  • 保存ダイアログが表示されるので、場所を選んで名前を付けて保存する
  • Apple ID を持っていない場合は、ご利用ガイド - Apple ID - Apple Store (Japan) を参考に、Apple ID をゲットする
  • Sign in with your Apple ID - Apple Developerにアクセスする。
  • 表示されたページの「Apple ID」には ID が表示されるので、パスワードを入力し、「Sign In」をクリックする
  • 「Developer Certificate Utility」をクリックする
  • 「Create Certificates」をクリックする
  • 「Add Certificate」をクリックする
  • 「Continue」をクリックする
  • 上記「4」で保存したファイルをファイル選択で指定し、「Generate」をクリックする
  • ローディング画像がくるくる回り、緑色のチェックマークが表示されたら、画面右下の「Continue」をクリックする
  • 表示された画面の「Download」をクリックすると、自動でダウンロードされる。
  • ダウンロードされた「safari_identity.cer」をダブルクリックすると、「キーチェーンアクセス」が起動する。これで証明書の準備は OK となる



この状態で上述の「機能拡張を新規に開発する」の手順を行うと、赤かった 3 行目に「Safari Developer:〜〜」と表示され、開発できるようになる。

新しい iPod touch

アップル - iPod touch - FaceTime、Retinaディスプレイなど、魅力を満載。

やはり新しい iPod touch が出た。毎年 9 月にはモデルチェンジしているから、期待していたけど、やっぱり出た。そして、欲しい。
今までは iPhone とのざっくりした違いを、通話とカメラとどこでもネットワークへ接続ができるかどうかだと思ってたけど、そのカメラが装着されたことにより、余計に魅力的に感じる。美しい Retina ディスプレイもとっても気になる。

糞フトバンクなどにはビタ一文ともやりたくないので、iPod touch の機能拡充にはいつも期待している。そんな中今年、iPod touch を買ったのはいいけど、一番安い 8 GB モデルだから、iOS4 にアップデートしても、ほとんどの機能を使うことができない。壁紙機能すら使えない。だからなおさら、気になる。。。ま、しばらくは我慢の日々だろうなぁ。