2014年4月26日土曜日

Pebble SDK 2.0

新しいPebbleの開発環境の話しですが、3月11日にPebbleから届いたメールを試したときの記録です。すでに旧聞に属していますが、ないよりはまし(笑)

Pebbleのメール中に以下のようなMac OS Xに新しいSDKをインストールする命令が書かれていました。
$ curl -sSL http://developer.getpebble.com/install.sh | sh && source ~/.bash_profile
curlなどの命令はmanやネットなどをみれば分かると思います。install.shはPythonのスクリプトで、PebbleのSDKをホームディレクトリにインストールします。

Pebble SDK 2.0のインストールが終わると、~/pebble-dev/PebbleSDK-2.0.2/にREADME.txtがあります。ここには以下のURLにあるPebble SDK 2.0の紹介ページを参照するようにと書かれています。
http://developer.getpebble.com/2/
上記ページ内の項目[Documentation]にある[Pebble Getting Started Guide]をクリックすると、上記と同じインストール命令の次に、appとファームウェアのアップデートの紹介、そして毎度おなじみHello, worldが書かれています。

話しがそれますが、従来の開発環境はOS XとLinuxは用意されていますが、WindowsはCloudPebbleというサイトを利用するようです。
https://cloudpebble.net
CloudPebbleの紹介ビデオがYouTubeにアップされています。
https://www.youtube.com/watch?v=LU_hPBhgjGQ
これはこれで、おもしろそうです。

閑話休題、appとファームウェアのアップデートが終われば、3番目の項目[Hello, world]の[Hello World Example]をクリックして解説ページに飛びます。[Create a new Pebble project]の1にあるプロジェクトを生成する命令が書かれています。プロジェクトの生成命令は以前も用意されていましたが、書式が変更されています。
$ pebble new-project hello_world
Hello Worldのサンプルコードは、文字の表示だけでなくボタン操作による画面切り替えも含まれています。ファイルの編集はもちろん、ビルドも問題なくできると思いますが、インストール方法が変更されています。

Appのインストールの手順はページの項目[Build and deploy your Pebble app]の中程に書かれています。iOS装置に関する部分だけを抜き出すと以下のようになります。
1.開発環境とiOS装置が同じWi-Fiネットワークに接続されていることを確認する。
原文では後の方に書かれていますが、iOSのPebbleが2.0にアップデートされていることも確認してください。
2.iOS装置の[設定]を開き、Pebbleを選択し、[Developer Mode]のボタンをONにする。
他に、開発機での作業に必要なため、iOS装置のIPアドレスを調べます。
3.iOS装置の[設定]から[Wi-Fi]を選択し、使用しているネットワークの右に表示されている[i]をタップし、画面中央の[IPアドレス]の[DHCP]タブ内にある[IPアドレス]の内容をメモする。

以上の作業が終われば作業機のターミナルで以下の命令を実行します。
pebble install --phone IPアドレス
上記命令の内で[IPアドレス]の部分を先ほどメモしたIPアドレスに置きかえて実行してください。以下のような応答が返るはずです。
$ pebble install --phone IPアドレス
[INFO ] Installation successful

以上の応答がありPebbleの画面が図のように切り替われば成功です。
応答内容から推測するとiOS装置にファイルサーバを構築して、そこに生成したappをコピーし、Pebbleに転送しているようです。なお、インストールなどで失敗したときには以下のURLを参照するように書いています。
https://developer.getpebble.com/2/getting-started/pebble-tool/
私の場合は以下のエラーが出ることがありました。
[ERROR ] Could not connect to phone at IPアドレス:9000. Ensure that 'Developer Connection' is enabled in the Pebble app.
対症方法は、Pebble.appの設定画面で、[DEVELOPER (ON) >]になっていても[>]をタップして[Enabled]スイッチをON/OFFしてサーバを再起動します。

ところで、私の場合は始めてインストールに成功した場合に、以下のようなメッセージが出ました。
$ pebble install --phone IPアドレス
[INFO ] Installation successful
[INFO ] Got system message (0, 7)

Using the Code Samples
https://developer.getpebble.com/2/getting-started/using-examples/

上記のページにはサンプルコードの使い方などが説明されています。たくさんの(ウンザリするほどの)サンプルが入っています。
なお、インストールしたappを消去するにはiOS装置のPebble.appで[MY PEBBLE]を表示し、消去するappを選択し、そのappをしばらくタッチすると画面が切り替わります。その画面下に表示される[UNLOAD]をタップします。
サンプルだけでも、かなりの時間つぶしになりそうです(苦笑)

2014年4月10日木曜日

iOSのマルチ ウィンドウ

AppleがiOSでマルチ ウィンドウに対応しないのは「ウィンドウの分だけ装置を買え」と言うこと?(笑)
2台買うユーザが既存ユーザの10%でも累積販売数は10%伸びることになりますし、新規ユーザにたいするサポート経費を考えると利益率も上がります。

もし、そうだとすると、AirDropやiCould経由のデータ共有は不十分で、コピー ペーストの共有など、さらにシームレスに共有できないと不便です。また、筐体はさらに薄く、フレキシブル基板や液晶を使うなど、物理的に壊れにくくする対策も求められるでしょう。もちろん、タップするたびに筐体がペコペコされては困りますが(笑)

2014年3月22日土曜日

Pebble 2.0

久しぶりにPebbleを起動すると、Pebble 2.0が配布されていました。Pebble 1.0用Appとの互換性は・・・HellowWorldのAppすら動かない(苦笑)

2014年3月8日土曜日

Mac OS X 10.9.2のPowerボタン

Mac OS X 10.9.2でPowerボタンを押して2秒半待たずに終了ダイアログを表示させるHackです。
これで昔のようにMacBook Proが使えます。
10.9: Disable power button sleep - Mac OS X Hints

残念ながらOnyX (2.8.3)がまだサポートできていないので、現状ではTerminalのみ設定できます。

2014年2月26日水曜日

Dockでタグ機能

Mac OS X Mavericksで改善されたタグ機能ですが、以下の方法でDockからも利用できます。

スマート フォルダの検索条件にタグを指定して、そのスマート フォルダをDockにドラッグ&ドロップします。これで他のフォルダと同様に利用できます。

細かな手順は以下のようになります。
  1. Finderで、ファイル > 新規スマートフォルダを選択
  2. 検索フィールドの下にある検索ウインドウで[この Mac]を選択
  3. 検索ウインドウの右側の「追加」(+)をクリック
  4. 左端のポップアップメニューから検索条件で[その他]を選択
  5. 表示されたリストの属性から[タグ]を選択し、[OK]ボタンを押す
  6. 目的のタグの名前と[一致]などの条件を設定
  7. 検索ウインドウの右側の[保存]ボタンを押す
  8. スマートフォルダの保存場所を指定
  9. 保存したスマートフォルダをDockにドラッグ&ドロップ

2014年2月14日金曜日

32 bit?64 bit?

自分のMacが32 bitモードで動いていた事を今朝知りました。
Mac OS X v10.6:64 ビットのカーネルを使う Mac

わたしのはCPUがi7で、OSがOS X Mavericksなので、当然64 bitモードだと思い込んでいたのです(苦笑)しかし、64 bitに切り替えるにも、64 bitであることを確認するにもTerminal.appが必要でした。

まずは64 bitであることを確認する方法ですが、Appleのサイトに書かれている方法は、私のMacには通用しませんでした。
Intel ベースの Mac のプロセッサが 32 ビットか 64 ビットかを識別する方法

以下のサイトにTerminal.appを使って調べる方法が書かれていました。
How to Determine if You're running the 32 Bit or 64 Bit Kernel in Mac oSX

unameはシステムの情報を得る命令で、記事にある-aでは全ての情報を表示してしまいす。-mにするとプロセッサの情報のみが表示されます。応答がi386なら32 bit、x86_64なら64bitです。

$ uname -m
x86_64

64 bitにする方法はAppleのサイトに書かれています。
OS X:32 ビットまたは 64 ビットカーネルで起動する

記事の中にあるcom.apple.Boot.plistは以下のように書き換えられています。
変更前
<dict>
 <key>Kernel Flags</key>
 <string></string>
</dict>

変更後
<dict>
 <key>Kernel Architecture</key>
 <string>x86_64</string>
 <key>Kernel Flags</key>
 <string></string>
</dict>
まぁ、Macの場合はよほどのことがない限りどちらでも良いのですけど・・・ネ。

2014年1月27日月曜日

FontForgeマニュアル

昨年9月にも紹介したFontForgeですが、新しい場所で現在も開発が続いているようで、この記事を書いている時点の最新版の日付は2014-01-08でした。

FontForgeの古いマニュアルであれば日本語版があります。ユーザインターフェースが代わっていますが、日本語のフォントを作るだけなら推測しながら利用できると思います。

しかし、新しい合字や字詰めなどの機能が必要な場合には英語の資料を読むしかないようです。ただし、本家の英文資料も新しい合字や字詰め、とくにlookupの機能に関しては暫定版の感がぬぐいきれません。

さて、新しい資料「Design With FontForge」を作る作業も進んでいるようです。
http://designwithfontforge.com

この"Design With FontForge"のソースは他のFontForge関連のソースと共にGitHubに置かれています。https://github.com/fontforge

執筆作業は継続されているようですが、readme.mdに書かれたローカルでこの資料を読む方法が少し古くなっていました。

資料はMarkdownと言う軽量マークアップ言語で書かれています。Markdownで書かれた「Design With FontForge」のソースは以下にあり、ページにある[Download ZIP]ボタンを押せば入手できます。
https://github.com/fontforge/designwithfontforge.com

ダウンロードし解凍したMarkdownのファイルは好みの場所に置くことができます。MarkdownをHTMLに変換してローカルのWebサーバ経由で読めるようにするツールがJekyllで、Rubyで書かれています。Terminal.appでJekyllのインストールする命令はこの資料に書かれている通りです。
sudo gem install jekyll
しかし、Mac OS X MavericksではRDiscountパーサーのインストールも必要でした。
sudo gem install rdiscount
次に、Terminal.appのディレクトリを「Design With FontForge」のソースファイルを置いた場所に移動して、Jekyllのサーバ起動するのですが、その引数が変更されています。
jekyll serve
以上の命令の後で、Webブラウザで以下のURLでサーバに移動すると、「Design With FontForge」をローカルで読めます。
http://localhost:4000/

・・・とここまで、サイトに書かれている内容を実行したのですが、資料を読むだけのために毎回々々サーバを起動して.mdファイルを変換するのは面倒です。Markdownから変換済みのファイルがどこかにあるはずと思って調べてみると、「-site」というディレクトリが生成されて、その中に変換されたhtmlファイルが入っていました。

調べてみると以下の二カ所を修正すれば、図も含めて表示できました。修正はBBEditなどのエディタを使って一括変換ですみます。ただし、一部の図は本家のWebサイトでも用意されていないようです。
  1. _site/en-US/の下にあるhtmlファイル内の全ての「href="/」を「href="../」に置きかえる。
  2. _site/index.htmlを以下のように戦闘のスラッシュを消す。
    • window.location.href = "/en-US/index.html"
    • window.location.href = "en-US/index.html"