2010-11-14

Apple TV、届いた!

届いたのは昨日(2010-11-13)の昼すぎ。ちょっと放置してしまっていたが、本日、夕方に設置完了。簡単に使ってみたので第一印象などを書き留めておく。

コンパクトなボディ

すでにあちこちで実際の写真が公開されているから十分想像はついたことだけど、実際、自分の手に取ってみると改めて実感する。コンパクトっていうより小さい。これで電源内蔵だからね。

(多少かぶる部分があるとはいえ)使う目的が同一ではないから比較することに意味はないけど、PS3 と比べると驚愕の一言。価格も大きさも(多分消費電力も)。

設置もカンタン

つなぐのは 2 ヶ所。TV との間を HDMI ケーブル(別売)で、コンセントの間を電源ケーブル(付属)で。ネットワークへの接続は有線または無線で。ウチでは TV のところまでネットワークケーブルを引いてハブを置いてあるから有線接続にした。

Time Capsule と同様電源スイッチはない。電源ケーブルをつなぐことがそのまま電源オンになる。電源オフしたければ電源ケーブルを抜くしかない。使わないときはスリープ状態にしておく(再生やその他操作をせずに一定時間が経過すると自動でスリープになる)。これ、知っていないと戸惑うかもね。

最初に電源を入れると TV 画面に言語選択の画面が表示される。「日本語」を選択すればメイン画面に移る(途中、Apple TV の動作に関するデータを Apple に送信しても良いかという選択画面が出る)。メイン画面のメニューは以下のようになっている。

Apple TV: Main Menu
項目名 機能
ムービー iTunes Store (映画)を開く。「上映中」は US の情報っぽい。
インターネット YouTube、Podcast、MobileMe、Flickr、ラジオ。
コンピュータ ホームシェアリングを有効にした Mac (や PC) の iTunes ライブラリを開き、音楽や動画を再生する。
設定 各種設定と「今すぐスリープ」

使ってみる (機能/サービス編)

設定

何はなくとも初期設定。設定の項目は以下の通り。AirPlay は iPhone や iPad 上のコンテンツを Apple TV (経由で TV) に映す機能だが、まだ iOS アプリがないので使えない。

  • 一般
  • スクリーンセーバ
  • オーディオとビデオ
  • AirPlay
  • コンピュータ
  • 今すぐスリープ

最小限の設定は「一般」>「iTunes Store」と進み、Apple ID で iTunes Store にサインインすること。これがなくては「ムービー」でレンタルできない。無線 LAN 接続の場合は、「一般」>「ネットワーク」で設定できる(付属「設定ガイド」p.16)。

さて、ときどきおかしな翻訳でユーザを困惑させてくれる Apple だが(→「すべての無効化を許可、ってどういう意味?」参照)、ここでもやってくれた。「一般」>「ペアレンタルコントロール」と進むと、初期状態で画面に表示されるのは「ペアレンタルコントロールは入」という表現だ。これを読んでどう思う? ペアレンタルコントロールは有効なのか、それとも無効なのか。

「ペアレンタルコントロールは入」という表現だと、これはペアレンタルコントロール機能の状態を表示しているのだ、と思うのではないだろうか? 少なくともわたしはそう思った。しかし、それは間違い。「……は入」と表示されているとき、この機能は無効になっている。実際、その下にあるペアレンタルコントロールの設定項目はグレーになっていて選ぶことができない。で、この項目を選んで押すと「……は切」に変わり(パスコードを設定させられる)、設定項目を選べるようになる。表記と機能が合っていないと思わないか?

英語環境にして同じ項目を表示させると、初期状態は「Turn On Parental Control」。これを押すと「Turn Off Parental Control」になる。そう、日本語の翻訳が悪いってことだ。この場合の「Turn On」と「Turn Off」は「入りにする」「切りにする」と動詞として訳さないと意味が通らない。もちろん「入りにする」「切りにする」という表現も普段目にするものではないから、ここは意訳で「有効にする」「無効にする」とでもすべきところだろう。

販売開始前にアップルジャパンの社員は一人も使ってみなかったのか?

ホームシェアリング

メインメニューのところにも書いたように、Apple TV では、ホームシェアリング(iTunes の機能の一つ)を有効にした Mac の iTunes ライブラリのコンテンツを再生できる(たぶん PC でも可)。LAN 内に Mac があるとメインメニューのコンピュータに表示され、それを選ぶことで、音楽はもちろん動画もポッドキャストも iTunes U も再生できる。もちろん、コンテンツを入れた(そしてホームシェアリングを有効にした) Mac が起動していなければ使えない(スリープもダメ)。

Mac mini Server にコンテンツを入れようかな。

ムービー(予告編)を観る

Apple TV を買った理由(の一つ)に「予告編(プレビュー)が長い(3 分)」ことを挙げたが(→「Apple TV、買った」)。早速、あれこれ予告編を観てみた。Mac 上の iTunes で観る場合と違って、Apple TV では TV 画面一杯にフルスクリーンで表示される。良い感じ。予告編をザッピングするだけでオモシロイよ。

ちょっと残念だったのは、すべての映画で 3 分表示されるわけじゃないってこと。1 分のものもあれば、1.5 分のものもある。

レンタルしてみる

これはまだ試していない。この記事をポストしたら何か一つレンタルしてみよう。

使ってみる (操作編)

本体付属のリモコン

付属のリモコンは製品版の Remote と同じように見える。ということは、Mac の操作(Front Row とか iTunes とか)もこれで可能なはず。実際、iMac でリモコンを有効にしてみると(普段は無効にしてある; 「システム環境設定」>「セキュリティ」>「一般」>「リモートコントロール赤外線レシーバーを無効にする」)、「Menu」ボタンで Front Row が起動するし、iTunes の操作もできた。

また、古いタイプの Remote (→) でも Apple TV の操作ができた。

このリモコンは普段の操作に限れば問題はないんだけれど、設定のときなどにアカウント名やパスワードを入力する際にはやはり使いにくいと感じる。上下左右で文字を選ぶのはシンドイよ。ただ、キー入力画面(ソフトウェアキーボードの一種かな)で、小文字のアルファベットだけでなく、同時に大文字のアルファベットも表示されているのは評価できる。下手に QWERTY 型の配列を表示してシフトで大文字小文字を切り替えるっていう方式にしたら使いにくさを増すばかりだからね。

iPhone アプリ(Remote)

おもしろいところでは、iOS アプリにも「Remote」があること。ただ、純粋にリモコンをエミュレートするだけのようで、設定の入力なんかはできない。文字入力に iPhone (や iPad) のソフトウェアキーボードが使えたら良かったのに。

訂正@2010-11-16:
iPhone/iPad アプリの Remote で文字入力にソフトウェアキーボードが使えないというのは勘違いだった。Remote を使って操作すると、アカウントやパスワードの入力に加えて、検索画面でも iPhone (や iPad) 上のソフトウェアキーボードで入力できる。これを使うと検索画面で日本語も指定できるようになる。
コメントで指摘してくださった gakkey さんに感謝!

関連リンク

関連記事

2010-11-13

ソースコードの色付け - google-code-prettify を使う

古いブックマークを整理していて google-code-prettify を紹介するマイコミジャーナルの記事を見つけた(→「【ハウツー】ハイライトもGoogle流 - "google-code-prettify"でソースコードに色付けを」)。

ブログの記事に埋め込むコードの色付けをしたくて調べていたときに見つけたものだったのだろう。ブックマークしただけで放置して(忘れて)しまっていたのは、外部ファイル(JavaScript と CSS)を使うその仕組みが Blogger で使うには不向きだったから。

しかし今は、GAE を外部ファイルの置き場所として使う方法を知っている(→「外部ファイルの置き場所としての Google App Engine」)。さらに Blogger Glass は、まさにこういうモノを組み込むためにあると言って良い。Blogger Glass に組み込み、さらに Blogger のテンプレートにも組み込んでみた。Blogger のテンプレートではスタイルシートと同様 Style Repository に google-code-prettify を置いた。

使い方

マイコミジャーナルの記事にも簡単な使い方が書かれている。公式なドキュメントとしては README が用意されている。

一番単純な使い方。pre 要素のクラスとして prettyprint を指定する。

class ListViewHandler(webapp.RequestHandler):
    def __init__(self):
        self.app = info.App()
        self.view = info.ListView()

    def get(self):
        util.save_url(self.request, self.response)
        util.fill_app_attrs(self.app, self.request.uri)
        label = self.request.get("label", default_value=None)
        page = int(self.request.get("page", default_value="1"))
        if page > 0:
            self.fill_view_attrs(label, page)
            self.response.out.write(util.render_template(self.app, self.view))
        else:
            self.view = info.MetaInfoView()
            self.fill_metainfo(label)
            self.response.out.write(util.render_template(self.app, self.view))

主要な言語は自動的に認識してくれるが、クラスとして明示的に指定することもできる。クラス属性に prettyprint の後に lang-* という形式で追加する。「*」の部分の書き方は README の「How do I specify which language my code is in?」を参照のこと。Python なら py、Ruby なら rb、つまりはソースファイルの拡張子だと思って良いようだ。

class ListViewHandler(webapp.RequestHandler):
    def __init__(self):
        self.app = info.App()
        self.view = info.ListView()

    def get(self):
        util.save_url(self.request, self.response)
        util.fill_app_attrs(self.app, self.request.uri)
        label = self.request.get("label", default_value=None)
        page = int(self.request.get("page", default_value="1"))
        if page > 0:
            self.fill_view_attrs(label, page)
            self.response.out.write(util.render_template(self.app, self.view))
        else:
            self.view = info.MetaInfoView()
            self.fill_metainfo(label)
            self.response.out.write(util.render_template(self.app, self.view))

行番号を表示させることもできる(5行ごと)。これは linenums を追加する。行番号を 1 以外から開始させるには linenums:15 のように番号を指定すれば良い。

class ListViewHandler(webapp.RequestHandler):
    def __init__(self):
        self.app = info.App()
        self.view = info.ListView()

    def get(self):
        util.save_url(self.request, self.response)
        util.fill_app_attrs(self.app, self.request.uri)
        label = self.request.get("label", default_value=None)
        page = int(self.request.get("page", default_value="1"))
        if page > 0:
            self.fill_view_attrs(label, page)
            self.response.out.write(util.render_template(self.app, self.view))
        else:
            self.view = info.MetaInfoView()
            self.fill_metainfo(label)
            self.response.out.write(util.render_template(self.app, self.view))

既存のスタイルと組み合わせることも可能。以下の例は、このブログでこれまで使ってきた code クラスと prettyprint クラスを同時に指定したものだ。ちなみに、複数のクラスを適用する場合はクラス名を空白で区切って並べれば良い。↓の例では class="code prettyprint" と書いている。

class ListViewHandler(webapp.RequestHandler):
    def __init__(self):
        self.app = info.App()
        self.view = info.ListView()

    def get(self):
        util.save_url(self.request, self.response)
        util.fill_app_attrs(self.app, self.request.uri)
        label = self.request.get("label", default_value=None)
        page = int(self.request.get("page", default_value="1"))
        if page > 0:
            self.fill_view_attrs(label, page)
            self.response.out.write(util.render_template(self.app, self.view))
        else:
            self.view = info.MetaInfoView()
            self.fill_metainfo(label)
            self.response.out.write(util.render_template(self.app, self.view))

スタイルの調整

prettyprint クラスのスタイルは、配布パッケージにふくまれている prettyprint.css で定義されている。ただ、主にトークンの種類による色分けの定義のみで、フォントサイズやフォントの種類については定義されていない。つまり、ブログのスタイルを引き継ぐことになる。

prettyprint.css を組み込む位置に注意すれば、ブログの CSS 中で prettyprint クラスのスタイルを追加(あるいは上書き)することができる。

実際、上の例では以下のようなスタイルをブログ側のスタイルで定義している(Blogger Glass の場合)。

pre.prettyprint {
    margin: 0 2em;
    padding: 5px 1em 5px 1em;
    border: #cccccc 1px dotted; /* silver */
    font-size: 10pt;
    font-family: "Monaco", monospace;
    overflow: auto;
    background-color: #ffffff;
}

これは従来の pre.code のスタイル定義と背景色以外が同一のものだ。

関連リンク

関連記事

twitter より (2010-11-12)

Powered by twtr2src.

2010-11-12

Apple TV、買った

Apple TV をリンゴマークを使って「tv」のように表記するのは良いけれど、これ Mac (と iOS デバイス) 以外で見ている人にはきちんと表示されないだろうな。Apple のサイトでもテキストには「Apple TV」と書いてある。「tv」という表記にはすべて画像が使われている。その画像を真似て、ロゴを作ってみた。フォントは Lucida Grande。同サイズだとリンゴマークが大きいので「tv」のサイズを大きくして調整。ほぼ Apple のサイトにある画像と同じになった。少し、「tv」の文字が細いかな。

さて、tv の国内販売開始について知ったのが昨日の夜(22:15 ごろ)。同時に iTunes Store で「映画」の販売・レンタルが開始されたことも知った。

iTunes を開き、Store を覗くと、もう「映画」というカテゴリができていた。最近のものから、古い(マニアックな)ものまで、結構、数も揃っているように見えた。試聴(予告編と呼ばれている)もできて、しかも 3 分と長い。iMac (の iTunes) で見るうち、「ああ、やっぱ TV の方で見たいわ」と思ってしまった。さらに……

「tv を買えば TV に映せるよな」
「む? 円高のおかげで ¥8,800.- なのか」
「お! Apple Store で 24 時間以内に出荷になってる。」
「あ! ポチっちゃった」

そろそろ 24 時間たつけど、まだ「出荷のお知らせ」は届かない。届くのは早くても日曜(2010-11-14)かな。

追記@2010-11-17:
届いたのは 2010-11-13。設置と第一印象についてはこちら → 「Apple TV、届いた!」

ライバルは PlayStation®Store

ウチの TV には PS3 がつながっているので、PlayStation®Store でのビデオ販売・レンタルを利用している。始まった当初はアニメが数本という程度だったが、ゆっくりとその数が充実するとともに映画の配信も始まり「これはこれで良いかも」とそこそこ楽しんでいた。もっとコンテンツの幅(ジャンルという意味)を増やして欲しいとか、コンテンツによってはセル(販売)しかないってどういうことだとか、新しいものはともかく古いのはもう少し安くても良いんじゃないかとか、少々の不満はあってもネット配信の手軽さは魅力的だ。

実を言えば、PlayStation®Store で実際に体験するまでは映像配信に関しては懐疑的だった。その理由は 2 つ。(1) 映像の容量(とくに HD のそれ)に対してネットワークの速度(と帯域)が不足していると思っていたこと、(2) 映像を大量に保存するにはローカル(個人が用意できるという意味)のストレージの容量が不足していると思っていたこと。

とくに (1) のネットワーク速度(と帯域)が不足する(はず)という思いは強かった。光だ何だと言ったところで、しょせんは皆で分け合う方式。利用者が増えれば、コンテンツが大きくなればいつだって不足するのだ。そういう思い込みが強いから、そこにギガバイトクラスのデータを流すサービスはなかなか信用することができない。

だから、PS3 という「すでにそこにあるきっかけ」がなかったら、映像配信サービスを利用してみようとは思わなかったはずだ。ゲームのために買い、TV とネットワークにつないだ。その環境はそのまま映像配信にも使えるものだった。気付けば、もうボタンを押すだけで映像配信を体験できるようになっていたのだ。

そして、実際に体験してみると、現状のネットワーク速度(帯域)も十分に対応できることがわかった。

というのも、映像データの場合、30 分のデータだとして、その全体を一度に必要とするわけではない。PlayStation®Store の場合、PS3 でデータを受信しつつ再生することができるため、最初の数分間分のデータが受信できていれば十分なのだ。何も数百メガ、数ギガのデータがすべてダウンロードできるまで TV の前でボーっと待っている必要はないのだ。

わかってしまえば当たり前のことなんだけどね。

また、配信によるレンタルという形式に慣れてしまうと、わざわざセル(販売)コンテンツが必要だとは思えなくなる。同じ映画をそうしょっちゅう観るものでもないからね。ストレージもそれほど必要ではないってことだ。実際、ウチの初代の PS3 (HDD は 60GB) で外付けの増設 HDD も付けていないが、レンタル中心なので困ったことはない。

見終わった後で、せっかくダウンロードした数百メガ、数ギガを削除するときには「もったいないなあ」と思うけどね。まあ、それはわたしがオールドタイプってことだろう。

予告編だけでも楽しそう

話を tv に戻そう。すでに PS3 で映像配信を(そこそこ)楽しめているのに、今さら tv を買おうと思ったのはなぜか? 実は予告編(プレビュー)の長さだ。

PlayStation®Store に対する不満の 1 つにプレビューできないことが挙げられる。iTunes Store ではそれができる。それも 3 分だ。3 分と言えばそこそこ長い。ちょっとしたヒマつぶしに最適じゃないだろうか?

予告編だけを次々に見ていくのも楽しそうだと思った。それが tv を買った理由だ。いや、コンテンツもそこそこ豊富そうだから、レンタルするのも楽しみだけどさ。

関連リンク

関連記事

twitter より (2010-11-11)

Powered by twtr2src.