2014年7月4日金曜日

無線Magic Trackpad

無線にはいろいろと苦い(つまりドジの)思い出があって、どうも無線技術は信用できず、悪いところばかりを探しています(苦笑)

そして…Magic Trackpadが購入後わずか3ヶ月で電池切れアラートが出てきました。これで悪口が書けます(笑)電池の電圧を測ると、1.056Vと1.072Vでした。Magic Trackpadを使っているのはサブ マシーンなので一日一時間か二時間ほどしか使っていません。

メニューバーには以下のようなアイコンが出てきます。

キーボードと比べてマウスやトラックパッドはデータ量が多いので電池は早くなくなりやすいと思います。キーボードと違って、無意味にカーソルを動かすことも多いです。USBにすれば電池の心配が無くなるにも関わらず無線にしています。また、尻尾(ケーブル)があれば机から落としても命綱(ケーブル)で床に激突せずにすみますし、資料の下になって探しまくることもなくなります。なにせMagic Trackpadは薄くて尻尾もないので、ついつい資料の間に挟んだりして行方不明になります(笑)

AppleのUrbinaさんが退職

AppleのUSBメーリングリストで世界中の技術者をサポートしてきたFernando Urbinaさんが退職するそうです。なんと彼はAppleに24年も勤めたそうです。

2014年5月7日水曜日

手乗りMars Exploration Rover

NASAはスマートフォンとタブレット用にいろいろなAppを提供しています。
NASA Apps for Smartphones and Tablets | NASA

その中の一つSpacecraft 3Dはプラモデルを見ているようで楽しいです。
Spacecraft 3D on the App Store on iTunes
Spacecraft 3DはMars Exploration Roverや衛星のプラモデルを手元に置いているような感覚で眺められるAppです。周囲から眺められるだけでなく、Mars Exploration Roverではソーラパネルやアームなどが動きます。解説ではAugmented Reality (AR)と呼んでいます。昔の話しですが、1991年にAppleはさまざまな新製品と共にQuickTime VRを紹介しサンフランシスコの橋脚のてっぺんから周囲をみ渡した風景で会場を沸かせました。初めて見たときには、その時に似たような感覚を覚えました。

Spacecraft 3Dを楽しむには、iPadなどのiOS装置とプリンタが必要です。Spacecraft 3Dを起動すると三つのボタンが表示されます。表示された三つのボタンから[Get Marker]ボタンをタップして、NASAのサイトにあるPDFファイルをダウンロードします。iOS装置から直接印刷できない場合は[Email Maker]ボタンで印刷できるPCにメールでURLを送ります。印刷できる場合は[Download Marker]ボタンをタップするとSafariが起動してPDFを表示しますので印刷します。
次にSpacecraft 3Dの[SELECT SPACECRAFT]ボタンをタップします。好みの宇宙機を選択し、3Dデータをダウンロードします。ダウンロードが終了するとカメラに切り替わりますので、先のプリントアウトにカメラを向けると・・・その上に宇宙機が表示されます。iOS装置を持ったままプリントアウトの周辺を回ったり上からみたり、近づいて細部を見たりといろいろ楽しめます。Mars Exploration Roverではソーラパネルやアームなどが動きます。

さて、ここでお立ち会い!(笑)印刷物だけでなくMacやPCのモニタ、iOSなどのタブレット端末に表示したPDFファイルでも3D映像を表示できます。iOS装置であれば、Safariで印刷せずにiBooks.appなどPDFを表示できるAppに保存します。もちろんSafariでPDFを表示したままでも利用できます。・・・で、iPod touchでPDFファイルを表示させて手の上にのせ、iPadからMars Exploration Roverを見たのがこの写真で・・・手乗りMars Exploration Rover(大笑)
またまた、昔話ですが…プロセッサの能力とプログラミング技術の向上で、リアルタイムの3Dレンダリングができるようになったときには驚きましたが、iOS装置のARMプロセッサにそれだけの処理能力があって、しかも電池で動いて持ち歩けるというのは隔世の感があります。

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"

2014年1月25日土曜日

IndexedDBのブラウザ

IndexedDBのツールですが、データベースをブラウズするにはGoogle Chromeが標準で持っている開発ツールが良さそうです。

FirefoxにはIndexedDB Browser 0.1.4(作者: Ben Turner氏)というアドオンがありますが、残念ながらMac OS X Mavericks上のFirefox 26.0で試した限りでは動作しませんでした。

代わりに動作したのがSQLite Manager 0.8.1(作者: lazierthanthou氏)です(苦笑)データ ファイルは、~/Library/Application Support/Firefox/Profiles/の下をたどると拡張子が.sqliteのファイルがいくつか見つかります。ただし、インデックス関連のデータばかりで、データ本体を見つけることができませんでした。

Google Chrome(32.0.1700.77)は標準でデータベースのブラウズができます。ツールの場所は表示 > 開発/管理 > デベロッパー ツールまたはJavaScript コンソールを選択して、開いた画面内にあるタブからResourcesを選択し、左欄からIndexedDBを選択すれば、データーベースやobjectStoreなどが表示されます。

2014年1月22日水曜日

Indexed Database API

Indexed Database API(以下IndexedDB)はローカルにテキスト データを保存するAPIを提供しています。

また、簡単な検索方法も提供します。データ保存が主な目的で、規格策定が中断されたWebSQLのようなサービスは提供されていません。複数条件の検索やテーブルの結合などの利用はJavaScriptで処理する、と考えた方が良さそうです。

解説は日本でもネット上に色々ありますが、とりあえず以下のページを参照してみました。
IBM HTML5 の IndexedDB API を使用する

すぐにわかる間違いが一カ所ありましたが、記事の発表が2013年10月24日で比較的新しく、W3Cの規格を調べるときの参考になります。

記事では言及されていませんがこのページで提供されいるサンプルコードにはブラウザごとの違いを吸収する部分があります。Mac OS X上の以下のブラウザで試しましたが、この部分をなくしても動作しました。
Google Chrome バージョン 31.0.1650.63
Firefox バージョン 26.0

IndexedDBでは固定したフィールドではなく、JavaScriptのJSONをレコードに入れています。このためにインデックス指定したKey以外は、レコードごとに異なるKeyと値を設定できます。IndexedDBにはフィールドの概念がないため、データベースのように特定のフィールドだけを取り出せません。レコードごと取り出して、あとはJavaScriptで処理、と言う事のようです。

IndexedDBで検索できるのはインデックスのあるキーに対して、一つの条件に合致するか、条件の数値よりもキーの値が大きいか小さいか、指定した上限数値と下限数値の間にあるか、のみです。先にも書いたように複数の条件で検索するにはJavaScriptで処理した方が良さそうです。

こうなると、JavaScriptでテーブルの結合などリレーショナルデータベース風に処理するためのAPIが欲しくなります。その問合せAPIはやはり"SQL"でしょうか?(大笑)