OS Xユーザに自由を与え、開発者に報いたnotMac Challenge
Pepper氏は昨年12月のコンテスト開始に先立ち、賞金制度によって質の高いソリューションが生まれるかどうかについて叔父と議論を行った。Ansari X-Prize(準軌道宇宙飛行を対象とした賞金制度)のような、注目度の高さと高額の賞金が魅力の取り組みが成功を収めていたことから、Pepper氏はもっと小規模なものでも同じ効果が得られるはずだと考えた。
当時のことをPepper氏は次のように語る。「叔父には、自分の考えに従ってやったらどうだとけしかけられた。しばらく考え、dotMacなら申し分のない実験対象になるはずだと思い至った。dotMacに関心を持つ人々はそれほど多くはないが、彼らは情熱にあふれているし、そうしたソリューションなら個人のレベルでも実現できると思ったからだ」
Pepper氏が考えたように、年に99ドルというdotMacサービスの料金は倹約指向のユーザにとってはそれなりの負担だったが、それに代わるものを個人のプログラマが自分の手で書き上げようと思うほどの額ではなかった。だが、コミュニティにいる各自の要望が1つにまとまれば、十分な動機づけになるものだ。
「賞金で関心を惹くやり方で特に効果的だった点の1つは、こうした場がなければ従来のやり方では顧みられることのなかった参加者の存在を認めることが可能なことだった。シリコンバレーで働く開発者にとってこの賞金の額は十分ではないかもしれないが、賞金の存在は世界中のあらゆる人々にとって参加のきっかけになる」(Pepper氏)
アイデアを実行に移す
notMac ChallengeのWebサイトではPayPalサービスを通じて寄付の受付が行われ、それぞれの寄付金はPepper氏の叔父の手で1つずつ照合が行われた。結果的に、優勝者への賞金は8,622ドルに膨れ上がった。
Pepper氏が作成した詳細なエントリ要件のリストには、dotMacサービスのうち再現すべきものとそうでないものの指定のほか、インストール環境の動作やシステム互換性といった項目も含まれていた。
dotMacは、オンラインストレージ、Webサイトおよびフォトギャラリー、カレンダーや連絡先といったユーザデータのセキュアなリモートバックアップおよび同期といったサービスをユーザに提供している。これらのサービスはクライアント側のOS Xとダイレクトに統合されており、たとえばオンラインストレージサービスのiDiskはローカルのファイルシステムとの違いをユーザに意識させることなく機能する。ただしdotMacは、IMAPによる電子メールやWebベースのカレンダーのようなサーバ側のアプリケーションも提供している。
Pepper氏は、notMac Challengeへのエントリ要件をクライアント側に組み込まれるサービスに限定することにした。IMAPやオンラインの予定表については無償のものがすでに数多く存在するので、同じようなものを作らせて不必要にコンテスト参加者の負担を増やすのは無意味だったからだ。
また、コンテストのルールにより、予選では全エントリ作品が21日間の一般公開レビューを受けることになっていた。そうして審査をパスした最初のエントリ作品が賞を獲得し、ソースコードを公開する運びになっていた。
そして受賞者は…
Ben Spink氏がコードを提出して応募したのは9月、そして優勝者として発表されたのが10月1日だった。またSpink氏は、プロプライエタリなファイル転送アプリケーションCrushFTPの開発者でもあった。彼の受賞作には、notMacの重要なWebDAV基盤を実現するためにCrushFTPの縮小版が組み込まれていた。しかし受賞者として公表された以上、コンテストのルールに従って、彼はnotMac実装のソースコードとCrushFTPから利用したソースコードの双方を公開することになった。
ルールどおりに行かなかったのは、実はSpink氏の作品はコンテストで規定されていたOS X FinderのGoメニューの変更に関する2つの要件に従っていなかったことだ。Spink氏が従わなかったこれらの要件というのはOS Xのセキュリティ方針を容認するものだったが、Spink氏はこの点のまずさを指摘してPepper氏を納得させたのだった。同じ機能はSpink氏のnotMac実装にも確かに存在するが、Finder側ではなくアプリケーションの内部で実装されていた点が異なる。
Spink氏のnotMacパッケージは現在バージョン1.1になっていて、SourceForge.netから入手できる。OS X用パッケージは7.4MBの.DMGイメージになっていて、サーバとクライアントの双方のコンポーネントの実行コードが含まれている。1台のMacをnotMacサーバとしてセットアップしておけば、以降のMacには、本来のdotMacサービスをこのnotMacサーバにリダイレクトするクライアントパッケージを入れるだけでよい。
また、notMacサーバ側のコンポーネントをLinuxマシンにセットアップできるLinux用パッケージも存在する。今のところ1台のMacでnotMacのサーバとクライアントを同時に実行することはできないので、複数のMacでサービスの同期を取る必要がある場合は、LinuxマシンをnotMacサーバとして利用するのが最善だろう。
ただ残念なことに、このLinux用パッケージはMac版に比べるとユーザビリティとバグ修正の点で後れをとっている。アプリケーションはどちらもJavaベースだが、Mac版にはユーザフレンドリなランチャ(ローンチャ)と詳しい説明書が付いているのに対し、Linux版にはそのいずれも見当たらない。ただし、notMac Challengeのフォーラムに行けば、LinuxおよびFreeBSDにnotMacを設定して実行する方法を扱ったスレッドがいくつか存在する。
このフォーラムからはSpink氏本人もバグ報告やフィードバックを受け取っていて、バージョン1.1リリースの理由になった修正点の多くはこのフォーラムから出てきたものだった。こうした過程が功を奏したものとして、一部のシステム設定ファイルの変更や、Mac OS Xに似たディレクトリ構造の作成が挙げられる。
Steveを出し抜こう
簡単に使い始めるには、サーバ、クライアントともMacにしてセットアップを行うとよい。最初にnotMacサーバを立ち上げてからクライアントマシンの設定に進む必要がある。notMacの.DMGディスクイメージのマウント後、notMacアプリケーションをダブルクリックするとクライアントとサーバのどちらをインストールするか訊かれるので、まずはサーバを選ぶ。
サーバのセットアップツールでは、利用するIPアドレスとポート番号の指定が可能だ。ポート番号のほうはデフォルトでSSL暗号化のために443番が使用されるが、コンピュータの正しいIPアドレスは自動では設定されないのでしっかりと確認すること。また、デフォルトで設定されているデータストレージディレクトリは、必要に応じて変更できる(大量のバックアップを行う際には重要なポイントだ)。
一方、notMacユーザアカウントの設定は、このシステムにアクセスする全ユーザについて必ず行わなければならない。サーバ側で設定したユーザ名とパスワードは、notMacのクライアントマシンにおいてOS Xが期待するdotMacアカウントの詳細情報の代わりに使われることになる。すべてのユーザのアカウント設定が済んだら、「Enable」ボタンをクリックする。これでサービスが起動され、利用可能な状態になる。
クライアントマシンのセットアップはもっと簡単で、セットアップツールで要求されるのはサーバのIPアドレスとポート番号だけだ。それらを入力して「Enable」ボタンをクリックすると、セットアップツールによってAppleのdotMacサーバのクレデンシャル情報がnotMacサーバのものに置き換えられる。
notMacサーバが稼働中でポート443番をブロックしていなければ、dotMacの「System Preference」パネルを開くとdotMacロゴマークの色を反転させたnotMacのマークが表示されているはずだ。あとはnotMacのアカウント名とパスワードを使ってサインインし、同期やiDiskアクセスの設定を行えばよい。
iPhotoやiWebなど、一部のiLifeアプリケーションにはワンクリック公開のような組み込みのdotMac機能が含まれている。こうした機能はコンテンツをクライアント側で編集したうえでその結果をアップロードするので、そのままnotMacでも動作するはずである。ただし、iPhotoギャラリーを誰からもアクセス可能なものにするには、ローカルのnotMacサーバを外部に公開する必要がある。
主な関心がアドレスブックやその他データの同期化にあるなら、LANベースのnotMacサーバを稼働させるだけで事足りるだろう。また、パブリックIPアドレスを使ってnotMacサーバを稼働させると、理論的にはシステムを危険にさらすことになるので、そうした試みがうまく行かなくてもAppleが助けてくれることはない。
今後の展望
私自身はdotMacサービスに身銭を切ったことがないので、気軽に使える代替サービスとしてnotMacがどれほどありがたいものかについての証言はできない。だが少なくとも、OS Xに組み込まれている同期のフレームワークを活用する優れた手段であることは確かだ。
日頃から複数のコンピュータを利用しているので、データの同期を取ることの厄介さは身に沁みてわかっている。たとえそれがMacに限ったことであっても、同期の問題が一部でも(しかもコストゼロで)解消されるのであれば大歓迎だ。
そのうえ、コンテストとしてのnotMac Challengeの成功も注目に値する。Pepper氏は、スケールが小さくても賞金で関心を惹くやり方はうまく行くはずだ、という自らの考えが正しいことを実証した。事実、こうした賞金制度は、少なくともコミュニティ主導で実施される場合は、大がかりなコンテストよりも成功する可能性が高い。
Pepper氏は、Spink氏が賞金を獲得した時点で複数のプロジェクトチームがソリューションを手掛けている途中だったことを認めている。コンテストの規則に従えば、こうしたチームには成果物をオープンソースソフトウェアとしてリリースする義務はない。彼らは賞を取らなかったからだ。しかし、彼らの存在は、Spink氏の受賞が八百長ではなく、本当のコンテストだったことを証明している。
このコンテストが首尾よく幕を閉じた今、Pepper氏は別の企画を検討中だという。一方で、ほかの人々がこうした取り組みを模して独自の賞金コンテストを実施できる手法の開発にも、彼は関心を持っている。「iPhoneとAppleTVのリリースに際して、ある種のハック技術を開発するために数百ドルの賞金を用意した人が数名いた。その結果、コミュニティ全体の役に立つソリューションが生まれた。以来、ほかの人々からの寄付によって賞金を用意できるならそれに越したことはない、と思っている」