TidBITS: Apple News for the Rest of Us  TidBITS#893/20-Aug-07

MacHack カンファレンスは過去のものかもしれないが、その魂は今も C4 の中に生き続けている。C4 は独立系の Mac プログラマーたちのためのイベントだ。Adam がその内容(彼自身も講演者の一人だった)をレポートし、そこで見つけた珠玉の作品、iPhone 用のネイティブなゲーム Lights Off や、ソフトウェアをアップデートするフレームワーク Sparkle などについて語る。また今週号では、Glenn Fleishman が AirPort admin ユーティリティに改善が施されたことをお伝えし、Jorg Brown は iPhone の海外データローミングに対する常識外れの料金について検討する。実際に請求を受けた iPhone ユーザーもいるのだ。また、Matt Neuburg は Keyclick を使ってキーをタイプした際に音によるキューを出せるようにし、Joe Kissell は現行の Apple ラップトップ機に見られる Safe Sleep 機能に関する前回の記事をアップデートする。

記事:

----------------- 本号の TidBITS のスポンサーは: ------------------

---- 皆さんのスポンサーへのサポートが TidBITS への力となります ----


AirMac ベースステーション・アップデートが管理ユーティリティを更新

  文: Glenn Fleishman <[email protected]>
  訳: 羽鳥公士郎 <hatori@ousaan.com>

AirMac ユーティリティ・ソフトウェアのアップデートにより、Apple が言うところの「全般的な修正、および互換性の更新」が、802.11n 対応 AirMac Extreme ベースステーションに施される。AirMac Base Station Update 2007-002 for Mac はまた、AirMac ディスクユーティリティをアップデートし、AirMac ベースステーション・エージェントを追加する。AirMac ディスクユーティリティは新しいベースステーションに USB 経由で接続したボリュームのマウントを管理し、AirMac ベースステーション・エージェントはネットワーク上のベースステーションを監視する機能を提供する。

Apple は新しい AirMac Extreme ベースステーションの改訂版を出荷し始めており、すでに受け取った人もいることだろう。明らかにされているアップグレードは、「Fast Ethernet」(100 Mbps)からギガビット Etheret(1000 Mbps)への移行だけだ。(2007-08-13 の "AirPort Base Station ギガビットイーサ対応にアップグレード " 参照。)このソフトウェアアップグレードの後にはファームウェアアップグレードが続くのではないかと思う。というのも、802.11n AirMac Extreme には多くのバグや不整合が認知されているからで、それらについて、また回避方法の多くについて、私は "Take Control of Your 802.11n AirPort Extreme Network" に書いた。(ギガビット Ethernet 以外にも十分な変更点があれば、この本をアップデートすることをお約束する。)

このアップデートの一部である AirMac ユーティリティ 5.2.1 をざっと見たところ、管理者アクセス用パスワード入力欄(Base Station Password)とWi-Fi セキュリティ用パスワード入力欄(Wireless Password)の近くに、Apple は2つのコントロールを加えた。新しいチェックボックスでは、それぞれのパスワードについて独立に Mac OS X のキーチェーンに保存するかどうかを選択できる。Apple はまた、強力なパスワードを選ぶのに役立つ Password Assistant アイコンを追加した。

airport-password-asst

しかし注意。このアシスタントがどんなものか見たいと思って鍵のアイコンをクリックしただけでも、そのアシスタントの Close ボタンをクリックしたとき、アシスタントが最初に提案したパスワードがメインのパスワード欄に入力されてしまう。元のパスワードに戻すには、AirMac ユーティリティの一番下にある Revert ボタンをクリックする。

このソフトウェアでは Preferences ダイアログも拡張され、いつアップデートをチェックするか(毎日、毎週、毎月のいずれか)、そしていつ「ベースステーションの状況を監視するか」が選択できるようになった。後者の選択肢は、このアップデートでインストールされるデーモンである AirMac ベースステーション・エージェントを必要とする。これは、AirMac ユーティリティで設定されたベースステーションやネットワーク上で到達可能なベースステーションの動作状況を監視する。自分で設定したのではないベースステーションを無視するためのチェックボックスがあり、これは大規模なネットワークで役に立つだろう。

AirMac ユーティリティは AirMac Extreme と AirMac Express のすべてのモデルと後方互換性があるが、新しい 802.11n AirMac Extreme ベースステーションに付属するディスクからインストールするよりほかに入手方法はない。

Lights Off で iPhone の灯を消そう

  文: Adam C. Engst <[email protected]>
  訳: 羽鳥公士郎 <hatori@ousaan.com>

びっくりさせるような表題をつけて申し訳ない。 Lights Off というのは、実は iPhone 用のゲームだ。PopCap のウェブベース Bejeweled(2007-08-06 の"PopCap がポンッ! iPhone 生産性アップ!" 参照)とは異なり、Lights Offは本当に iPhone ネイティブの初めてのゲームだ。最近開かれた C4 会議のIron Coder Live ハックコンテストのために Delicious Monster の Lucas Newman と Adam Betts によって作られた(そして第2位を獲得した)無料のLights Off は、一見すると簡単に解けそうな一連のパズルを提供する。あなたの目の前にはライトが格子状に並んでおり、明かりがついているものとついていないものがある。ライトをタップすると、明かりの状態が切り替わるが、隣接する4つのライトも同時に切り替わる。目的はすべての明かりを消すことだ。そうすると次のレベルに進める。全部で 200 のレベルがある。

Lucas と Adam は、Apple の UIKit 開発フレームワークを用いて Lights Offを開発した。このフレームワークは Apple が iPhone 組み込みアプリケーションを作成するのに使ったものだが、彼らはそのほかに、iPhone を独立開発者に開放するための、コミュニティのさまざまな成果も利用した。だから、Lights Off が完全に iPhone ネイティブのアプリケーションだとは言っても、インストールするには、iActivator を使って iPhone へのアクセス通路を開き、iPHUC を使って Lights Off を iPhone にアップロードし、iPhoneにSSH サーバ をインストールし、Lights Off アプリケーションのパーミッションを変更する必要がある(完全な手順書が Lights Off のウェブページにある)。もちろん、Lights Off がこのようなハックである以上、iPhone ソフトウェアのアップデートをインストールすると Lights Off が動かなくなる可能性が高い。また、Lights Off をインストールすれば iPhone の保証が受けられなくなるかもしれない。しかし、最悪の事態でも、iPhone を出荷時のデフォルトにリセットし、コンピュータからデータを戻すだけでよいように思われる。

私は何人もの初期の iPhone ユーザーから、ゲームがないという不満の声を聞いたことがある。もっともそのほとんどは、Apple がゲームを含めるのは適切でないと考えたところにゲームをしたいという願望を持っていることについて、いささか恥じているようではあるが。おそらく Lights Off は、そして今後登場するであろう iPhone ネイティブのアプリケーションは、十分な人気を獲得するだろう。そうなれば、Apple に対し、Web 2.0 アプリケーションとしては開発できないようなゲームや役に立つプログラムの開発者に iPhone を開放するよう促すことになるだろう。

それに、Arlo Guthrie には申し訳ないけれど、たった1人の iPhone ユーザーが Apple Store を訪ね「どうして私がほしいものを1つだって iPhoneに入れることができないんだ」と言ったところで、頭がおかしいとでも思われて、アップデートした iPhone にゲームを再インストールするのを手伝ってはくれないだろう。そして2人の iPhone ユーザーが、口をそろえて同じことをしたら、何かの宣伝だとでも思われて、やはりどちらも手伝ってはもらえないだろう。そして3人が同じことをしたら、3人だ、想像してほしいのだが、3人の人が Apple Store を訪れ、望むものを何一つ iPhone にインストールできないのはなぜかと尋ね、店を立ち去ったら、これは何かの団体だと思われるかもしれない。そして、想像してほしいのだが、1日に 50 人が、そう、1日に 50 人が店頭で、望むものがインストールできないのはなぜかと尋ね、立ち去ったら、さあどうだろう、これは運動だと思われるかもしれない。まさにその通りだ。これは iPhone アプリケーション虐殺反対運動なのだ。これに参加するには、次の機会にギターに合わせて歌うだけでよい。感情をこめて。


iPhone 請求書と海外での問題

  文: Jorg Brown
  訳: 亀岡孝仁 <takkameoka@bellsouth.net>

今 iPhone の世界で二つの大きな論争がもちあがりつつある、両方とも間違いなく AT&T の範疇に属する問題である。

最初の問題は、AT&T が電話使用に関する詳細情報をあなたに送りつけるのをデフォルトとしたことである。これには、郵便で送られるプリントアウトも含まれ、そこにはあなたが送受信したテキストメッセージ全てとデータブロック全ての情報が含まれる;これは、あなたが使い放題の契約をしていても適用される。典型的な例としては、請求書が 300ページにも及ぶ顧客は AT&T がそれを送るのに $10 もかかってしまう。

これは正しく資源浪費以外の何ものでもないが (ブロガーの一人である Muhammad Saleem はこれは年間 75,000 本の木に相当すると見積もっている)、聞くところによると、10-Aug-07 以降に申し込んだ顧客は基本的にいくら支払わなければいけないかを示している要約請求書のみを受け取ることになるという。それから AT&T に対してあなたの口座を要約請求書かペーパーレスに変更するよう頼むこともできるが、噂によると AT&T のコールセンタの一従業員から Muhammad に送られたという一通のメールには、ペーパレスに変更すると毎月 $1.99 課金されると書いてあるという。

しかしながら、これはたいした問題ではない - AT&T は時と共に解決できるであろう。

より大きな問題は、iPhone のデータ利用は米国では定額料金制であるが、それ以外の国ではバイト当りで課金され、それもかなり高いことである。同じことがテキストメッセージにも言える。

これに加えて、多くの人が自分の iPhone を数分おきにメールを自動的にチェックするよう設定している。これは米国内にいる時は問題にならないが、他の国に行った時、これが巨額の料金に膨れ上がる恐れがある。

例えばの例として考えてみて欲しいのだが、Canada ではテキストメッセージは一通当り 50 セントで、データ料率は 50K 当り約 $1、言い換えればメガバイト当り $20 である。そこで iPhone の Home > Settings > Usage に行ってあなたのデータ使用量に(メガバイトで)$20 を掛けてみて、あなたの電話料金がどれ程高額になり得るのかよく考えてみて欲しい。

飛行機でしょっちゅう飛び回る iPhone のユーザーが今経験している高額の請求書を回避する方法はいくつかある:


C4 カンファレンスに MacHack を想う

  文: Adam C. Engst <[email protected]>
  訳: Mark Nagata <nagata@kurims.kyoto-u.ac.jp>

私は最近週末をシカゴで過ごして帰ってきた。シカゴでは、第2回の独立系開発者向け C4 カンファレンスに出席してきたのだ。シカゴ地域在住の開発者 Jonathan "Wolf" Rentzsch(彼は 時折 TidBITS にも寄稿してくれるし、すべてにわたっていい男だ)によって始められたこの C4 カンファレンスは、数年前に終焉を迎えたあの崇高なる MacHack プログラマー・カンファレンスの遺してくれたものを多くの意味で引き継ぐとともに、MacHack が消え行く原因となった事ごとについて考え直し、磨きをかけ直す機会ともなっている。

MacHack が伝統的にミシガン州ディアボーン市で開催されていたのとは異なり、C4 はシカゴで開催されたので、多くの人にとって出席がし易くなった。何と言ってもシカゴは国の中央部にあって、巨大な飛行場も集まっているのだから。その上、シカゴはディアボーンに比べてちょっぴり旅行先に相応しい。(でも、ディアボーンを悪く言うのはこれでやめにしよう。だって、ディアボーンでは市の商工会議所の所長が自ら私を観光案内して下さったのだから。2005-08-01 の“さらば ADHOC よ”参照。)

Wolf は、数多くの素晴らしいセッションを一つのトラックに集めて開催してくれた。その冒頭を飾ったのは Wil Shipley (Delicious Monster) による途方もなく楽しい基調講演、その名も“On the Creation and Maintenance of Hype”(「誇大広告の作成と運営について」)だった。他のセッションでビジネス側の物事をテーマにしたものもたくさんあって、Daniel Jalkut (Red Sweater Software) のアプリケーション取得に関する講演、私が演壇に立った“報道をハックする、パート 1, 報道をハックする、パート 2, 報道をハックする、パート 3”アップデート講演、Allen Odgaard による TextMate 開発の話、それに Cabel Sasser の素晴らしい語りによる Panic 社の創設とウェブ開発ソフトウェア Coda の創造(2007-04-30 の記事“Coda、ウェブデザイナーに新しき調べを奏でる”参照)をめぐる秘話もあった。

より技術的な側のものとしては、VMware の Shawn Morel が仮想化についてなかなか良い説明を語ってくれた。非常に技術的な話だったが、プログラマーでない人間にも理解できるものだった。私の頭では全く理解できない話もいくつかあった。例えば Bob Ippolito による Erlang 入門の話もそうだった。これは新しいプログラミング言語・環境で、ホットなコードのリロード、耐障害性のランタイム、同時並行性指向のプログラミング、それに関数のパターンマッチングなどを提供している。それがどういう意味なのか私にはさっぱり見当もつかないが、Bob の話に登場したいくつかの機能は確かに素晴らしいものに見えた。また、Tim Burks も Ruby と Objective-C の橋渡しについて語ったが、私は自分の講演が済んだばかりだったのと、プログラミングの知識がないこともあって、ちょっとぼうっとしながら聞いていたことを白状しよう。Tim の講演の内容について、またこの C4 カンファレンスに関する他のいろいろな考察などについては、 Mike Zornek の記事をお読みいただきたい。

カンファレンスで最も価値ある部分はフォーマルなセッション以外のところから来ることが多いが、今回の C4 も例外ではなかった。MacHack でそうだったように出席者が場所を占領できるロビーはなかったが、Wolf は巧みに物事を組み合わせて、人々が集まって食事を共にしたりレセプションのような集まりがあったりといった場を数多く設けてくれたので、その場で人々のネットワークを作れる機会がたくさんあった。私は業界のトレードショウでしか会えない友人たちに大勢会えて情報を交換し合えるのを楽しんだし、また MacHack のコミュニティーには属していなかった開発者たちにも大勢会うことができた。他の人たちも同じことを言っていたので、何よりも、次回の C4 では(次回があるとすればの話だが、Wolf はそれについては何も触れなかった)ぜひセッションとセッションの間の時間をうまく生かして人々が集まって、聞いたばかりの講演について議論したり、いろいろとネットワークを張り巡らしたりする機会が作れるようにしたいと思う。

私が予想していなかったことが一つ、それは Twitter が始終使われていたことだった。Iconfactory の Craig Hockenberry が出席していたのがなおさらこれに輪を掛けていた。彼は、Twitter にうまい Macintosh インターフェイスを(それから Growl 通知も)提供する Twitterrific クライアントの著者だ。私は Twitter のファンではなかった。これまで私の見た限りではほとんどが極めて馬鹿げたものばかりだったからだ。けれども、C4 ではグループによるチャットルームを作ってメッセージを保存しておくために Twitter が使われた。別の言葉で言えば、誰でも Twitter メッセージを送ることができて、それは C4 ユーザーをフォローしている人全員が見ることができる。これらのメッセージは保存されているので、接続している間だけ見られるのではなく、いつでも見ることができる。こうした使用法は完全に革新的というわけではない。グループチャットのシステムはたくさん存在するが、ここでは Twitter システムがたくさん使われて、平行して存在していた IRC チャットルームの方はあまり見向きもされなかった。カンファレンスの終わりごろに話していた時、何人かの Twitter ファンが私に説明してくれたところによれば、Twitter を使うコツは、何か興味あることを言っている人だけをフォローする(何を食べたとか交通機関で苦労したとかばかり言っている人は無視する)こと、仕事時間以外に限って使うこと、それから見落としたメッセージ(“tweets”という)を無視するのをためらわないことだという。ふうん、じゃあ、私も試してみようか。Twitter をお使いの方、どなたでも、どうぞ私をフォローして下さい。それから、私たちが新しい TidBITS 記事をポストする度に即座に通知を受けたいなら、 TidBITS をフォローして下さい。

C4 の最後には、Iron Coder Live があった。MacHack の MacHax Best Hack Contest に倣った、ハックコンテストだ。参加した 11 のハックの大部分は提案されたテーマでもあった iPhone に関するものだったが、第3位に入賞したハック、独立コンサルタントの Dave Dribin の書いた The Bouncer はそうではなくで Input Manager のハックで、選択されたアプリケーションの Dock アイコンがバウンスするというものだった。それ自体はあまり目覚ましいものでもなかったが、Dave はその際、複数個の Dock アイコンをいろいろな方法でシンクロさせられることを実演して、音楽に合わせて一斉にバウンスさせてみせた。これには満場大喝采だった。第2位は Delicious Monster の Lucas Newman と Adam Betts の書いた Lights Offで、これは初めてのネイティブな iPhone 用ゲームであり(2007-08-14 の記事“Lights Off で iPhone の灯を消そう”参照)彼らはこれを一般にリリースした。Lights Off も印象的だったが、第1位に輝いて Wolf の Golden Dog Tags 賞を受賞したのは Ecamm Networkの Ken と Glen Aspeslagh の書いた Squidge、これは iPhone 上で内蔵カメラを使って双方向ビデオ会議を実現するというハックで、強烈に印象的なものだった! 彼らのデモでたった一つ問題だったのは、Glen と Ken が一卵生双生児で、壁面に上映されたちっぽけな iPhone 画面からはどちらがどちらか見分けが付きにくかったことだ。

全体的に見て、また他の参加者たちから私が聞いた意見からも、今回の C4 は大成功だったと言える。去年の第1回は 98 人の参加者を集めた。(Wolf は当初参加者数を 75 人に制限していたが、要望が多かったため増員せざるを得なかった。)今年の参加者数は私の見たところ 140 人くらいに増えたようだった。これはなかなか良い規模だと思う。そして、もしも今後も開催されるのならば、今回はいろいろな手配やスケジュール、食料、オーディオ、部屋の設定など、何から何まで素晴らしい働きをしてくれた Wolf と彼のスタッフたちが、評判が広まるにつれて増えて行くであろう参加者数にどうやって対処できるか、期待を込めて見守りたいと思う。


Sparkle がアプリケーションのアップデート体験を改善

  文: Adam C. Engst <[email protected]>
  訳: Mark Nagata <nagata@kurims.kyoto-u.ac.jp>

C4 カンファレンスの会場で、私は David Teare と出会った。彼は 1Passwd ユーティリティの作者で、私は 1Passwd がとてもスムーズに自己アップデートしたことに感激したと彼をほめた。(1Passwd はブラウザのプラグインなので)開いているブラウザを終了させるためにユーザーと関わらなければならないことだけを別にすれば、それ以外のプロセスはほとんど全自動で働いたからだ。1Passwd を起動させた時にアップデートが入手可能なら、1Passwd はウィンドウを開いて最新バージョンのリリースノートを表示する。そこには新機能、変更された機能、修正されたバグなどの見出しがきれいに色分けして示される。今は忙しくてそのことを考えられない場合のために後日もう一度アップデートについて通知させるか、あるいはこのアップデートを完全にパスするか、それとも今すぐインストールするか、という選択肢が提示される。そこでインストールを選べば、1Passwd は自動的に新バージョンをダウンロードして、古いバージョンを上書きし、新しいコードをロードするために自分自身を再起動する。これ以上簡単なことはない。

1Passwd-Sparkle-window

彼のアップデートプロセスについて私がそんな風に感激を述べたところ、David はちょっと恥ずかしそうにしてから、「ああ、それはオープンソースの Sparkle だよ。Sparkle を 1Passwd に組み込んだだけさ」と言った。私はプログラマーではないのでこれまで Sparkle のことを聞いたことがなかった。そこで、ここはひとつウェブで洞窟探検、と洒落込むことにした。すると分かったのは、Sparkle がかなりの数のアプリケーションで使われているということだ。例えば SubEthaEdit、iStumbler、MarsEdit、その他およそ 200 ほどの Macintosh プログラムが含まれる。

C4 の会場で開発者たちに聞いたことと、Sparkle のウェブサイトで分かったことを突き合わせると、これは自己アップデートの実装について徹底的に考え抜かれた結果の産物のようだ。最も重要なのは、ユーザーが何もしなくてよいということだ。ただし、アップデートを後日の機会に延期する選択肢をユーザーに与えることはより一般的に(一般に敬意をもって受け入れられるように)なっている。Sparkle は、詳細なアップデートステータスウィンドウの中に WebKit を使ってリリースノートを表示し、セキュアなアップデートのために DSA 署名をサポート、また多数の異なったアーカイブフォーマットからアップデートを抽出することができる。もう一つ重要なことは、Sparkle がシームレスにアプリケーションの中に統合できて、一切コードを必要とせずにアプリケーションに追加できるという事実だ。(すべては Interface Builder と plist を通じて行なわれる。)Sparkle 自身は Cocoa アプリケーションの中でしか動作しないが、Carbon アプリケーションで使うための別バージョンも用意されている。

もちろん私は TidBITS を読んでいる方々の多くが自己アップデート機能を必要とするアプリケーションを作っている開発者ではないと分かっているが、きっと皆さんの多くはよくあるアップグレードの煩わしい手順にうんざりした経験がおありだろう。まずアップデートがあることを知って(アプリケーションから知らされることもあるし、他からの情報のこともある)それからそのウェブサイトに行き、正しいページを探してから、ファイルをダウンロードして展開し、新しいバージョンのアプリケーションを古いものの上にコピー(その際もしも古いバージョンのアプリケーションが動作中ならばそれを終了させておかなければならない)して、新しいバージョンを起動させ、その後でダウンロードしたいろいろなファイルを整理する、という具合だ。

それは別に高度な難題とは言えないが、やはり煩わしくて時間もかかる。たった一つ良いことは、その間ずっとあなたがすべてをコントロールしていて、いつアップデートをインストールするか、古いバージョンのアプリケーションを残すか残さないか、またダウンロードしたアーカイブファイルを残しておく価値があるかどうか、といったことを決められるということだ。現実問題として、自己アップデートの最も大きな欠点は、それが Sparkle によるものであろうと他のどんな自家製メカニズムであろうと、アップデート後に何か予期せぬ問題が発生した場合に前回のバージョンに戻そうと思えば相当に苦労しなければならないという点だけだろう。

そういうわけで、もしもあなたが普段使っているアプリケーションについて、できるだけ煩わしさを少なくしてユーザーとの関わりも最小限にした自己アップデートがあったらなあ、例えば Mac OS X や Apple のアプリケーションがソフトウェア・アップデートでできるのと同じくらい簡単になればなあ、とお思いなら、ぜひそのアプリケーションの開発者に Sparkle を試してみるようにと勧めてみられるとよい。Sparkle は無料で、使い方も簡単、世界中のユーザーに恩恵をもたらすだろう。


Keyclick で無意識にパチパチタイプ

  文: Matt Neuburg <[email protected]>
  訳: Mark Nagata <nagata@kurims.kyoto-u.ac.jp>

パーソナルコンピュータを持つようになるよりずっと前から、私は IBM Selectric タイプライターを持っていて、それですべてがうまく行っていた。私が気に入っていたのはただ単にフォントの交換ができること(これは私の仕事にとって根本的に重要で、古代ギリシャ語と英語が両方タイプできた)だけでなく、タイプライターのキーボードの感触に関する何かが私の心を捉えて離さなかった。そのことはもう少し前の年代に遡って IBM のカードパンチマシンでも同じことで、何か他にはない満足感、クリアな感じ、積極的な気持ちを私に伝えてくれるものだった。そのお陰で、私は非常に高速かつ正確にタイプすることができた。ある意味、その後の私はずっとその同じキーボード感触を探し求める旅を続けてきたとも言える。

ここ TidBITS では、私たちは皆キーボードのヘビーユーザーで、特に私たちの気に入ったキーボードを見つけると時折それについての記事を書いたりしてきた。2004-03-29 の記事“荘厳なるアルプスにキーボードの帝王が輝く”で、Adam は Apple Extended Keyboard へのノスタルジーを膨らませ、その生まれかわりとも言える Matias Tactile Pro キーボードを夢中になって褒め讃えた。でも、ポータブル機を持って出かけていて(ここで「出かけている」というのは単にリビングルームの向こう側に持って行くような場合も含む)外付けキーボードを繋いだりできない場合には、やはり「連れ合いとダンス」する以外にない。私は新しく買った MacBook のキーボードに特に否定的な感想は持っていない(このモデルが初めて登場した時の紹介記事、2006-05-22 の“MacBook がラップトップのラインを完成”参照)が、かと言ってそれほど肯定的にもなれないでいる。だからこそ、私は Keyclick にこんなにも夢中になったのだ。Keyclick の作者 Peter Sichel はネットワーク関係のユーティリティの作者として最もよく知られているが、同時に彼はどんな場面でもとにかく「いい奴」で、全く知らない人がトレードショウの会場で近づいてきた時にも喜んで彼の素晴らしい知識と技量を分け与えてくれる。(私がどうやってそのことを知ったかお分かりだろうか?)

Keyclick はシステム環境設定パネルだ。これは、あなたの物理的キーボードには一切影響を与えない。ただ、あなたがタイプする際に音を発するだけだ。では、どうしてそれが役に立つのだろうか? 製品ウェブページにも記載されている「あなたのキーボードがぐにゃぐにゃした感覚の時、あるいは昔のキーボードの歯切れのいい感じが懐かしく思える時、きっとお役に立ちます」というのはどういうことか? いったいなぜ、これがあると私は MacBook でうまくタイプできるのだろうか? それは、これが発する音が、私がキーを押す度に聞こえるか聞こえないか程度のかすかな音をたてるというだけのことなのだが、私がキーを _押した_ という事実をほとんど無意識のうちに教えてくれるからだ。それだけでなく、Keyclick は私がキーを _押さなかった_ 時も(沈黙を通じて)そのことを私に教えてくれるし、また私が一つのキーを長く押し続け過ぎて同じ文字が繰り返し入力された時にもそれと分からせてくれる。だから、あたかも迷路の中のネズミが成功すればエサを貰えるように、私の頭脳と私の指先は丁度ぴったりと正しい分量だけキーを押せば満足できる音が返ってくることを学習して導き育てられるのだ。こうして、何の面倒なこともなく、私の迷路を歩く技術はみるみる上達していくというわけだ。

実際、Keyclick にはさらにあと2つ役に立つ機能がある。まず第1に、私がトラックパッドのボタンをクリックした時と、ボタンを離した時にも音を出してくれる。これはとても重要だ。なぜなら MacBook のトラックパッドボタンは非常に固く、クリックしたつもりでも実はクリックしていなかった、ということがよくあるからだ。Keyclick を使い始める以前は、そういう状況で私はスクリーン上で何も変わっていないことに後から気付いて、いったいなぜだろうかと思い悩んでいた。でも今では、即座にフィードバックが得られる。第2には、Keyclick は私がスクロールホイールを使っている時にも音をたてる。MacBook では、これはトラックパッドを2本指でこするという意味だ。だから、1本指の場合のカーソルを動かす動作との区別をつけることが重要だ。この場合も時々意図していなかったことが起こって、私はなぜかと思い悩んだものだ。思っていたのとは違ってカーソルがそのウィンドウの上になかったのか、それとも私の指の動きがスクロールと解釈されなかったのか、と迷わされた。でも今は Keyclick のお陰で、私のしたことがコンピュータにどう伝わったのか、私は以前よりずっと正確に、ずっと早く知ることができるようになった。こうして私はマシンとの意思疎通において間違いをすることが少なくなり、たとえ間違いをしても、それが瞬時に分かって素早く対処できるようになった。

Keyclick のさまざまのオプションをどのように設定すれば最も便利に使えるようになるかは、いろいろ実験してみて知るしかない。キーストロークに伴う音はオン・オフできるし、その音の高さと音量も調整できる。スクロールホイールの音もオン・オフでき、_それの_ 高さと音量も調整できる。さらにマウスクリックの音もオン・オフでき、その音量の調整ができる。(また、キーストロークに Command や Shift などの修飾キーが伴っている時には違うピッチの音が出るようにもでき、特定のアプリケーションが前面にある時には Keyclick を黙らせるようにも設定できる。)すべては純粋に心理学の問題だ。実際のところ私の iMac G5 には、クリック感の心地よいキーボードと、トラックボールやスクロールホイールもあるので、Keyclick の音はうるさい邪魔者以外の何物でもないように感じられる。だから、私は Keyclick を使っていない! でも、私の MacBook では、全く同じ音ながらそれが本質的に重要で、なのに私が気付きもしないような存在でもある。だから、皆さんもぜひダウンロードしてお試しあれ。そうすることなしには、Keyclick があなたがずっと欲しいと思っていたあのちょっとした最後の一味、あなたの幸せと生産性を増してくれる秘密の味付けであるのかどうかを、見極めることはできないのだから。

Keyclick は無料で 21 日間試用できる。ダウンロードサイズは 312K で、Mac OS X 10.4 かそれ以降を必要とする。(ちなみに、Keyclick はその魔術の技を行なうために、あまり知られていない Quartz Event Taps というテクノロジーを利用している。これは Tiger で新しく登場したものだが、基本的にプログラマーがユーザーの入力をそれがどのアプリケーションのイベントループに到達するよりも先に受け取って変更もできるようにするフックだ。PreFab Software のフリーウェア Event Taps Testbench は、このイベントタップについていろいろと実験できるツールで、使うとなかなか楽しい。)Keyclick の登録料金はたったの $5 で、これもまた Peter Sichel が気前の良い人物である証拠の一つだ。その上、Peter はユーザーから Keyclick に新機能のお願いや提案が届けばとても積極的に応対してくれる。このユーティリティは使って楽しく、開発者と話をすれば心が弾む。これ以上素晴らしいことがあるだろうか?


安全なスリープ再考

  文: Joe Kissell <[email protected]>
  訳: Mark Nagata <nagata@kurims.kyoto-u.ac.jp>

私の最近の記事“安全なスリープとは何だろうか”(2007-07-30) は、どうやら皆さんの気に障ったようだ。TidBITS Talk ではたくさんの議論が起こり、もちろん電子メールのメッセージも数え切れないほどたくさん届いた。そこで、私は自分の個人ブログに追加の記事をポストすることにした。けれども今や、その追加記事にまでさらなる追加を書き加えなければならないことになった。新しい情報も出てきているし、また役に立つヒントもいろいろな人たちから寄せられたからだ。そこで、ここにそれらの後日談をまとめてみることにした。(少なくとも、現在私が知っている限りのことをまとめてみたい。)

手早く復習 -- Apple の現在の実装による Safe Sleep では、あなたのラップトップ機を単に(通常の)スリープに入らせただけで、いつも Safe Sleep が呼び出されてあなたの RAM のコピーをディスクに保存する。これには 4 GB ものディスク容量が要って、スリープ開始の遅延時間が 49 秒にも達するかもしれない。(もちろんこれらの数字はあなたのマシン構成に依存する。)その間、あなたはコンピュータを移動させてはならない、と Apple の説明書は警告する。RAM がこのようにキャッシュされるのは、後になってあなたのバッテリが完全に尽きてしまった場合でも、素早く元の状態に復帰できて(普通のスリープからの復帰よりは少し遅いが再起動するよりずっと早い)未保存の作業内容が失われることもないからだ。このようなデフォルト設定を変更したいと思えば、Terminal をいじり回すか、あるいはサードパーティのハックを使うかしなければならない。あなたのコンピュータがスリープに入る度にほとんど1分近くも待たなければならないのが嫌なら(私は絶対に嫌だ)相当の努力を注ぎ込んでこの挙動を変更させなければならないのだ。

Safe Sleep がふさわしい場合 -- 前回の私の記事で、私は Safe Sleep が実際に価値あるものとなるケースは(少なくとも私にとっては)稀で、だからこそなおさら RAM をディスクに保存するというデフォルト設定にイライラさせられると不満を述べた。けれども何人かの人たちから、たとえそれがラップトップ機のスリープ前に余分の一分間がかかることを意味したとしても、状況によってはやはり RAM のコピーがディスクにキャッシュされるのをありがたいと思う人もいる、という使用例のシナリオが指摘された。私自身がそのような状況になることはないかもしれないが、そういう場合ならば Safe Sleep がもっと便利になることは私も認める。例えば、太平洋横断の飛行機の機内でバッテリがいくつも空になる状況ならば Safe Sleep の出番だろう。同様のことは、仕事の行き帰りの通勤中でラップトップ機のバッテリがすぐにどこかへ行ってしまう(電源をとる方法がなくてコンピュータが電源切れになりがちになる)ことがあらかじめ分かっているような場合にも言えるだろう。

もう一つ良い実例がある。バッテリの交換だ。私の Titanium PowerBook G4 は、スリープさせれば(AC アダプタを繋がなくても)RAM の内容を失うことなくバッテリの交換ができる。けれども、いくつかの機種の Mac ラップトップでは(例えば新しい MacBook Pro もこれに当てはまる)そういうライブ交換を可能にするような短時間電源供給が何も備わっていない。そのような機種では、AC アダプタに繋ぐこともできず Safe Sleep も使わないなら、残されたただ一つの方法は、完全にシステム終了してからバッテリを交換し、その後また再起動するという、かなり面倒なことになる。言うまでもなくこれは使い勝手の点から見て大幅な後退だ。(こんなことも想像してしまった。ひょっとして、Safe Sleep 機能はハードウェアコンポーネントで数セント節約しようという誰かのアイデアだったのではないか? つまり、RAM を保つために余分の部品を入れなくても、同じことがソフトウェアで達成できるんじゃないか、という考えの産物だったのではないか? もちろん私はそんなことだったのではないと信じたいが。)

それに加えて、もしも RAM キャッシュが作られずにバッテリが完全に尽きてしまったら、未保存の書類以外にもいろいろと失われるものがある、と書いてくれた読者たちも数多くいた。ウィンドウやパレットの位置、クリップボード内容、ウェブブラウザで開いたタブ、その他にもさまざまなことが失われてしまうかもしれない。さらに言えば、たくさんのアプリケーションを開き直すために必要な時間だけでも、結構長くかかってしまうかもしれない。Safe Sleep なら、たとえ前回 RAM をディスクに保存するのを待って時間を無駄にしたとしても、立ち上がる方はずっと速くなる。

だから一方では、Safe Sleep から大きな恩恵を受けられるタイプのユーザーたちはちゃんと存在しているとも言えるのだが、他方では、Safe Sleep なんか必要ないとあらかじめ分かっているような場合には、やはりコンピュータが即座にスリープしてくれる(そしてハードディスクに数ギガバイトの容量が節約できる)ようにできる方が好ましい。もちろんいつでもモードを切り替えたいと思う度に Terminal にコマンドを入力することもできるのだが、それでは到底便利な方法とは言えない。そこで Greg Nicholson が電子メールで、彼の使っている解決策を教えてくれた。これはとても賢いやり方だと思ったので、ここで紹介しておこう。彼は、cron を設定してスクリプトを 10 分ごとに走らせるようにしている。けれども Greg のスクリプトは私が前の記事で書いたシンプルなものとは違っていくつか賢いところを持っている。バッテリの残量に応じて挙動が変わるのだ。もしもバッテリの残量が少なければ、このスクリプトは hibernatemode をオンにする。つまり、コンピュータがスリープする際に RAM キャッシュを保存する。けれどもバッテリ残量がまた高くなったら、スクリプトが hibernatemode をオフにして RAM キャッシュファイルを消去するのだ。これで、両方の良いとこ取りができるわけだ。ある意味では。

Greg のスクリプトを私の用途に合わせて少し手直ししたバージョンが以下のものだ。30 と 50 という数値はあなたの好みに応じて変更できる。(この例では、バッテリ残量が 30% 以下ならば hibernatemode をオンにし、バッテリ残量が 50% 以上ならば hibernatemode をオフにするようになっている。)

#!/bin/sh
MODE=`/usr/bin/pmset -g | awk '/hibernatemode/ { print $2 }'`
LEFT=`/usr/bin/pmset -g batt | grep Internal | awk '{ print $2 }' | awk -F % '{ print $1 }'`

if [ $LEFT -lt 30 ] && [ $MODE != 3 ] ; then
  {
     /usr/bin/logger -t "hibernatemode" "Battery level less than 30%; setting hibernatemode to 3"
     /usr/bin/pmset -a hibernatemode 3
  }
elif  [ $LEFT -gt 50 ] && [ $MODE != 0 ]; then
  {
     /usr/bin/logger -t "hibernatemode" "Battery level greater than 50%; setting hibernatemode to 0"
     /usr/bin/pmset -a hibernatemode 0
     rm /var/vm/sleepimage
  }
fi

どんなシェルスクリプトでも同じことだが、これはプレインテキストファイルとして保存してそのファイルを実行可能に設定しておかなければならない。次のようにタイプするのも一つの方法だ:

sudo chmod ug+x your-script-name

それだけでなく、cron を使ってこのスクリプトを定期的に自動作動させるつもりならば、root のアクセス権を与えておく必要があることも忘れてはならない。私の方法は、このファイルを私のシステム crontab に入れる(それならばすべてのスクリプトが root 権限で走る)というものだが、もう少し安全な方策を採りたいという人は(こちらが Greg も勧める方法だが)次の3行を /private/etc/sudoers ファイルに加えればよい:

ALL ALL=(ALL) NOPASSWD: /usr/bin/pmset -a hibernatemode 3
ALL ALL=(ALL) NOPASSWD: /usr/bin/pmset -a hibernatemode 0
ALL ALL=(ALL) NOPASSWD: /bin/rm /var/vm/sleepimage

さらにもっと安全な方法をというならば、各行の最初の ALL をそれぞれあなたのユーザ名(ショートネーム)で置き換えてもよい。

暗号化の問題 -- この前の記事で、私は手動で hibernatemode の設定を変える際には、オフにしたい時にはその値を 0 にし、デフォルトの設定に戻す(つまり必要な時のみオンにするが、スリープに入る時には常に RAM 状態を保存する)には値を 3 に、コンピュータが通常のスリープでなく常に Safe Sleep を使うようにするには値を 1 にすべきだと書いた。それに続けて私は「システム環境設定のセキュリティパネルで Use Secure Virtual Memory を設定している場合には、1 を 5 に、3 を 7 に、それぞれ置き換える」と書いた。実は、この最後の一文は、単に間違っていただけでなく、非常に良くない助言であることが分かった。私の書いたこの文は、どうか無視して頂きたい。つまり、5 や 7 という値は、決して使わないこと。

通常、Mac OS X が仮想メモリ (VM) を使う時、一時的にあなたの RAM 内容の一部をディスクに保存する際には、そのデータは暗号化を受けずにディスクに書き込まれる。ここで問題となるのは、もしもあなたの RAM がたまたま何か機密の情報、例えばパスワードを含んでいた場合、あなたがコンピュータをシステム終了させた後でさえも誰かがそのデータをあなたのディスク上の VM スワップファイルから抽出できてしまうかもしれないということだ。セキュリティの専門家はこれを非常に大きなリスクだと見なしており、仮想メモリをディスクに書き込む際には常に暗号化を施すことを勧めている。Mac OS X Tiger においては、システム環境設定の セキュリティ パネルを開いて Use Secure Virtual Memory をチェックすればこれが実現される。(実際、誰もが今すぐにそうしておくべきだ。ちょっと待ちますから、あなたもさあどうぞ。)

さて、この Secure VM が、hibernatemode とどう関係してくるのだろうか? それは、hibernatemode が 1 か 3 に設定されていれば、あなたの RAM はあなたの現在の Secure VM 設定に従ってディスクに保存される。だから、もしも Secure VM がオフならば、1 や 3 の設定では RAM キャッシュが暗号化されずに書き込まれる。けれどももしも Secure VM がオンならば、1 や 3 の設定で RAM キャッシュは暗号化される。これこそ、最も正しい設定だ。

けれどもその昔、まだ hibernatemode が目新しかった頃、これは Secure VM とあまり相性が良くなかった。そこで、5 と 7 の設定が追加されて、あなたが Secure VM をオンにしている時も RAM が暗号化 *されない* ようにできるようにしたのだった! ただ、相性が良くないというこの問題点はそれほど長くは続かなかった。今やその問題は過去のものとなり、1 や 3 のモードが正しく働くようになったので、もはや 5 や 7 は使うべきではない。それらを使えば、実際上 Secure VM を使う意味が最初からないことになってしまうのだから。

でも、これはもっともなことだが、あなたが私のこの前の記事のアドバイスに従って、それとは知らずに暗号化されていない RAM キャッシュをあなたのディスクに書き込ませてしまっていたとしよう。あるいは、あなたが元々 Secure VM をオンにしたことがなくて、そのために暗号化されていない RAM キャッシュが保存されていたとしよう。そういう場合、単に sleepimage ファイルを消去しただけではその内容は上書きされない。ほんの少し技術を持ったハッカーなら、簡単にその内容を読み取れてしまうだろう。だから、この前の記事に書いたコマンド:

sudo rm /var/vm/sleepimage

を使って消去する代わりに、次のコマンドを使うべきだ:

sudo srm -s /var/vm/sleepimage

この srm コマンドは、rm ("remove") のセキュア版だ。デフォルトでは、srm は 35 回ファイルを上書きする。(ディスクユーティリティの Erase Free Space 機能の最もセキュアなバージョンと同じ動作だ。)これがセキュアであることははっきりしているが、同時にこれは果てしなく時間がかかるので、私たちの多くにとっておそらく現実的な価値は少ないだろう。そこで、-s フラグを付けよう。これは "simple" なセキュリティという意味で、1回だけ上書きをする。たいていの一般市民なら、それだけで十分適切だろう。もしもあなたがもう少し用心深くありたいと思うのなら、-s の代わりに -m ("medium") フラグにすれば、7回の上書きが行なわれる。

けれども、注意しておかなければならないのは、スクリプト(Greg のものにしても私のにしても)を使って必要に応じて hibernatemode をオフにしているのなら、スクリプトの中でこの srm コマンドを使う必要はないということだ。その理由は、hibernatemode がオンに切り替わった時は、中身が空の sleepimage ファイルが作られるからだ。そのファイルはあなたがインストールして持っている RAM の量と同じだけの大きさになるが、あなたのコンピュータがスリープモードに入る時までは何のデータも含まれていない。だから、あなたのスクリプトがそのファイルの存在を探知してコンピュータがスリープする前に消去しようとする限り、余分の時間をかけてまで空のファイルをセキュア消去する必要はないわけだ。


TidBITS Talk/20-Aug-07 のホットな話題

  文: TidBITS Staff <[email protected]>
  訳: Mark Nagata <nagata@kurims.kyoto-u.ac.jp>

プラスチック袋とキャンバス袋 -- 別のスレッドで出たちょっと話題から外れた意見を巡って、プラスチック袋(レジ袋)がいかに環境に悪影響をもたらすか、という議論が巻き起こった。 (20 メッセージ)

MacBook Pro での 56Kbps モデムオプション -- Apple がモデムをマシンに内蔵しなくなった今、Apple Modem は十分な働きができるのか? それとも、もっと別の選択肢があるか? (7 メッセージ)

音楽に詳しくない人のための作曲法 -- ある音楽音痴の人(TidBITS の友人でもある)が、着メロを作りたいと思っている。GarageBand なら、彼の望みが叶うだろうか? (4 メッセージ)

DVD から iMovie へ? -- Hi8 テープに撮影したものを DVD へ、その後さらに iMovie へと取り込む方法を、読者たちがいろいろ提案する。(7_メッセージ)

Microsoft Office を iWork '08 で置き換え -- Apple の新しい制作スイートはますます Microsoft Office の本格的な競争相手となってきているようだが、本当にそれを置き換えられるところまで達しているだろうか? 次期バージョンの Office で Visual Basic がなくなることが、決定的要因になるかもしれない。 (34 メッセージ)

iPhoto '08 と共有ギャラリー -- iLife '08 を購入するつもりでいる読者が、新しい iPhoto '08 のウェブギャラリー機能について質問する。(3 メッセージ)

安全なスリープ再考 -- Joe Kissell は引き続き Mac ラップトップの Safe Sleep 機能について検討中だが、スクリプト関係のちょっとした修正と、コンピュータが実際どの時点でスリープに入るのかについての説明が寄せられた。 (3_メッセージ)

iPhone 請求書と海外での問題 -- ある読者から、海外でのデータ使用に課金された実体験が届く。請求書に記載されていた金額は、$1,700 だった!(6 メッセージ)


tb_badge_trans-jp2 _ Take Control Take Control 電子ブック日本語版好評発売中

TidBITS は、タイムリーなニュース、洞察溢れる解説、奥の深いレビューを Macintosh とインターネット共同体にお届けする無料の週刊ニュースレターです。ご友人には自由にご転送ください。できれば購読をお薦めください。
非営利、非商用の出版物、Web サイトは、フルクレジットを明記すれば記事を転載または記事へのリンクができます。それ以外の場合はお問い合わせ下さい。記事が正確であることの保証はありません。告示:書名、製品名および会社名は、それぞれ該当する権利者の登録商標または権利です。TidBITS ISSN 1090-7017

©Copyright 2007 TidBITS: 再使用は Creative Commons ライセンスによります。

Valid XHTML 1.0! , Let iCab smile , Another HTML-lint gateway 日本語版最終更新:2007年 8月 25日 土曜日, S. HOSOKAWA