2013年10月26日土曜日

PebbleとMac OS XのWi-Fi

Pebbleの開発では、Wi-FiとiOSを経由してPebbleに試作したappをダウンロードします。しかし、日常的に使用しているWi-Fiルータを実験に使用するのは不安です。MacではWi-Fiのアドホック モードも利用できますし、屋外や出先でも開発できます。

設定は以下の通りです。
Mac OS X側で[Apple mark > システム環境設定 > ネットワーク]の画面左欄から[Wi-Fi]を選択し、右欄の[Wi-Fiを入にする]ボタンを押します。[ネットワーク名]ポップアップ メニューから[ネットワークを作成...]を選択します。表示された画面でネットワーク名(たとえばOPPANIHA)を指定し、必要に応じてセキュリティを[128 ビット WEP]などに設定します。[メニューバーに Wi-Fi の状況を表示]チェックボックスをONにすると、メニューバーのアイコンがiMacのような図に変わります。

なお、この時にMac OS XはIPアドレスを自動的に割り振ってくれているはずです。[状況]にIPアドレスが表示されていると思います。IPアドレスの変更は[詳細...]ボタンを押し、表示された画面の[TCP/IP]タブで、[IPv4 の構成]のポップアップ メニューから[手入力]を選択し[IPv4 アドレス]などを適時設定してください。

次に、Terminalを開いて、開発しているディレクトリに移動し、以下の命令でPythonのhttpサーバを起動します。
python -m SimpleHTTPServer 8000

iOS側で[設定 > Wi-Fi]の画面で[Wi-Fi]ボタンをONにし、[DEVICES]欄から先ほど設定したネットワーク名を(上記の例ではOPPANIHA)選択し、アラートボックスの[登録]ボタンを押して、パスワードを入力します。

iOSのSafariを起動してURL(上記の例では)に移動すれば、以下のような画面が現れます。
なお、Wi-Fiを設定した後に実際に接続可能になるまで時差があります。特に始めて設定した場合には、数分ほど余裕を見ることをお勧めします。また、スリープの設定などにも注意してください。

次に、URLの入力ですが、メモ.appにURLを入力し、[完了]ボタンを押せば、URLがアンカーポイントして機能します。URLをタッチするとSafariが起動し、目的のURLに移動します。メモ.appであればURLを確認しやすく、複数のappを開発しているときなどに便利です。
まぁ、多くのMacにはBluetoothがあるので、直接ダウンロードするのが正当とは思いますが(苦笑)

MacとPebble SDKの記事はPebbleのラベルで検索してください。

Pebble SDKのHelloWorld

さて、Pebble SDKの最後にHelloWorldです。
Build your first Pebble application
http://developer.getpebble.com/1/GettingStarted/HelloWorld/

今回の実験に使用した器材は以下の通りです。
  • MacBook Pro 17" Mic 2010
    Mac OS X 10.8.5
  • iPod touch 5th
    iOS 7.0.2
  • Pebble Hardware V2R2
    Pebble Firmware v1.12.1
他にWi-Fiのルータがあれば便利ですが、他の人も利用しているルータではセキュリティが気になります。Mac搭載のWi-Fiのアドホック モードでもappをダウンロードできますので、こちらの方が便利な場合もあると思います。興味のある方は、このBlog内の「PebbleとMac OS XのWi-Fi」の項目をご覧ください。

さて、Mac OS Xで開発したappのPebbleへのインストールに関して、上記のページには以下のようにしか書かれていません。
And on your phone, go to: http://:8000/build/. Click on hello_world.pbw and choose to install it with the Pebble application.
iOSのSafariに他appを指定してダウンロードしたファイルを開く機能があることを知らなかったので、この説明には混乱しました(苦笑)

閑話休題、上記URLの解説にある順で説明しますと、以下のようになります。

■ Create a new Pebble project
まずは、新規プロジェクトを作るPythonスクリプトcreate_pebble_project.pyを走らせます。
$ ~/pebble-dev/PebbleSDK-1.12/Pebble/tools/create_pebble_project.py ~/pebble-dev/PebbleSDK-1.12/Pebble/sdk hello_world
生成したプロジェクトのディレクトリhello_worldに移動します。
cd hello_world

■ A first glance at a Pebble application
この項目は~/hello_world/src/hello_world.cの解説です。興味深い内容もありますが、読み飛ばすか、後でじっくり読んでも良いと思います。なお、全てのAPIの解説はPebble SDK: Main Pageにあります。ただし、いきなり補償対象外のコメントが出てきます(笑)

■ Write a Pebble Hello World!
~/hello_world/src/hello_world.cを書き換えてHello World!を表示できるようにします。とりあえず動かしてみたい人はa. c. の内容はそのままコピー、b. は最後の内容をコピーしてください。

■ Build and deploy your Pebble application
Pythonのビルド システムwafを使って設定とビルドを実行します。
./waf configure
./waf build
PythonのSimpleHTTPServerモジュールを使用して、httpサーバを開きます。ちなみに、サーバの終了は昔ながらのcontrol + cです。
python -m SimpleHTTPServer 8000
さて、ここで最初にあげた一文に突き当たります(笑)
And on your phone, go to: http://:8000/build/. Click on hello_world.pbw and choose to install it with the Pebble application.
your phoneとはiPhoneやiPadなどのiOS装置のことで、URLにあるip addressはMac OS XのIPアドレスのことで、[Apple mark > 環境設定 > ネットワーク]で左欄の[Ethernet]を選択すれば、右欄の[IP アドレス]に書かれていることはご存じの通りです。iOSのSafariでURL(例えばhttp://192.168.0.1:8000/build/ )を指定すると、以下のような画面が表示されます。

表示されたファイル リストの中からhello_world.pbwをタップして、表示された画面右上の["Pebble"で開く]ボタンを押します。

これで、Pebble.appの画面に切り替わって信用するかの問合せに答えると、メータが現れインストールが始まります。

インストールが終わると画面が書きのように変わって、Pebbleにはインストールしたappが起動します。

Wi-Fiのアドホックモードを利用した場合には、URLの指定が少し異なりますが、このBlog内の「PebbleとMac OS XのWi-Fi」という項目を参照ください。

MacとPebble SDKの記事はPebbleのラベルで検索してください。

Pebble SDKイントール

Pebbleと言う時計のオモチャを調べる機会を得ましたので紹介します。

Pebbleの使い方はあちこちで紹介されていますし、日本語の紹介記事もあるようです。しかし、SDKに関しては見当たらないようです。

SDKはInstalling Pebble SDK on Mac OS Xにあります。比較的読みやすい英語ですが、ほかのプラットフォームと共通化するためにMacで馴染みのある方法とは言いがたいところが散見されます。今回はMac OS X 10.8.5上のXcode 5.0 (5A1413)で試しています。

先のページInstalling Pebble SDK on Mac OS Xには最初に四つの作業手順の概要が書かれています。簡単そうに見えますが、一番手間がかかる作業は2のbで、これだけで半分以上の作業時間を取られます。

解説ではインストール先を~/pebble-devにしており、そのまま従いました。また、インストールのヘルプ フォーラムもあるそうですが、私はお世話になることはありませんでした。以下は、開設の手順に従って気がついたことなどを紹介します。

1. Download and install Pebble SDK
PebbleのサイトDon't have an account? Sign Upボタンでアカウントを作り、SDKのファイルPebbleSDK-1.12.tar.gzを入手します。
ホームにフォルダを作って~/pebble-devと命名し、そこにPebbleSDK-1.12.tar.gzを入れてダブルクリックし、PebbleSDK-1.12というフォルダができたことを確認します。

2. Download and install dependencies for Pebble ARM toolchain
XcodeのPreferencesでDownloadsタブのComponentsタブでCommand Line Toolsの右にあるボタンを押してXcodeのツールをインストールします。

さて、libmpc(GNU Multiprecision library)のインストールですが、ここでhomebrewのインストールが求められています。これは別にまとめましたので、「PebbleのためのHomebrew」の項目を参照してください。

無事にhomebrewがインストールされ、brew doctorも通った…として、次は以下の命令です。
brew install libmpc
ファイルを三つほどダウンロードすると完了しますので、以下のファイルが存在するか確認します。
/usr/local/lib/libmpc.3.dylib

3. Download and install Pebble ARM toolchain
もうひとつファイルをダウンロードします。このファイルはMac OS Xのバージョンによって異なります。ダウンロードしたファイルを~/pebble-devに入れてダブルクリックするとinside ~/pebble-dev/と言うフォルダができます。
私はTerminalでbashシェルを使っていますので、.bash_profileを編集して環境変数PATHに~/pebble-dev/arm-cs-tools/bin:を追加します。解説ページにもあるように、一時的にexportしても良いかもしれません。
以上の作業が終われば、gccのバージョンをチェックし、コンパイルの動作検証します。解説ページにある命令はコピーしてTerminalにペーストすれば実行できます。動作検証では解説にもあるwarningが表示され、a.outが作られました。
今回はBuilding the toolchain from Sourceにあるソースからのビルドは不要でした。

4. Download and install SDK dependencies
この作業はフォントや図の変換などに使うPythonのライブラリのインストールです。Mac OS X 10.8.5では書かれた通りに手順を踏めば良いのですが、c. Install the Python library dependencies:は先の二つの命令と比べて長めのテキストをはき出し、最後は以下のようになります。
Successfully installed Pillow freetype-py sh
Cleaning up...
また、最後のfreetypeのチェックはなにも応答が な け れ ば 正常です。

はてさて、これでようやくHelloWorldのappを試す、用意ができました。

MacとPebble SDKの記事はPebbleのラベルで検索してください。

Pebbleの解説文章

Pebbleの解説文章にはiOSやMac OS Xに関連する部分が書かれていないことが良くあります。ほかのプラットフォームと共通化が目的なのでしょうか?

例えば、最初にBluetoothでPebbleをペアリングする時にPebble.appのインストールを求められますが、同社の説明書にもWebサイトにも記述が見当たりません。私の場合は、機能制限でappのインストールを止めていると、iTunes StoreでそれらしきPebble.appを探す羽目になりました。探すものがPebble.appという名前であると分かっていれば良いのですが、最初なので分かるはずもなく似たような名前のappをいくつか試しました。

MacとPebble SDKの記事はPebbleのラベルで検索してください。

PebbleのためのHomebrew

Pebbleと言う時計のオモチャを調べるために、Homebrewをインストールしました。
http://brew.sh
Homebrewのインストーラは上記URLの一番下にかかれたRubyのスクリプトです。

ところで、ドメインが.sh、なんとナポレオン幽閉で有名なセントヘレナ島(笑)いままでパッケージ管理システムは避けていたのですが、大西洋の孤島程度にはパッケージを閉じ込めてくれるのでしょうか?
少し調べてみると、比較的分かりやすいところにHomebrewはアンインストールの方法が書かれていたので試すことにしました。もちろんTime Machineもありますし…

ruby -e "$(...
インストールのスクリプトは最初にどこを書き換えるかなどを表示します。しかし、問題は利用後のテンポラリ ファイルなどのゴミが妙なところに残ったり、ほかのファイルを書き換えたりしないか?という・・・まぁ、心配し始めると切りがないので、パスワードを入力すると以下の一文で終わりました。
==> Installation successful!
You should run `brew doctor' *before* you install anything.
Now type: brew help

brew doctor
インストール スクリプトがはき出した指示に従ってbrew doctorを実行するとWarningが7つ出てきました。
指示に従って一つ一つ潰していき、適時にbrew doctorを走らせ追加の指示があればそれに従いますと、以下の一文が出てきます。
$ brew doctor
Your system is ready to brew.
これでPebbleのSDKをインストールする準備ができました。

MacとPebble SDKの記事はPebbleのラベルで検索してください。

2013年10月19日土曜日

大量データ消去のハズ・・・

MacのMountain Lionで大小取り混ぜて400G byteほど(のハズ)のデータを消去するのに、半日ほどかかりました。
その間、PowerBook Proのファンは回りっぱなしです。

ファイルシステム(データベース)の更新って、そんなに負荷のかかるタスクか?と思ってActivity Monitor.appでみるとroot権限のmtmd(Mobile Time Machine Daemon: Time Machineのデーモン)とmds(metadata server: Spotlightのデーモン)というプロセスが頑張っていました。

消去前にはFinderが空き領域として200G byte足らずあると表示していたのが、消去後は600G byte以上になりました。しかし、消去に時間がかかりすぎている…気がします。何となく不安なのでDisk Utilityでディスクを調べると、空き領域が200G byteを切っていると表示されます。

やむなく、Disk Utilityで修復すると、Finderも消去前と同じ200G byte足らずしか空き領域がないと表示するようになりました。12時間の作業は無駄?(苦笑)