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"でしょうか?(大笑)
2014年1月22日水曜日
2013年12月21日土曜日
2.5" HDD ケース
I O DATAの2.5" HDD HDPC-UT1.0Sを分解してみました。
下の写真をクリックして拡大すると分かると思いますが、上下ケースを止めるために14カ所ものツメがあり、爪を立てて一つ一つ外すのはけっこう面倒です。しかも、下ケースもHDDの四つのビス穴に引っかけてピタリと止めていて、これも爪の場所が分かっていないと外しにくいです。
使用しているチップはJMS539でした。
http://www.jmicron.com/Product_JMS539.htm
よくぞ、ここまで小さくなったものです。
下の写真をクリックして拡大すると分かると思いますが、上下ケースを止めるために14カ所ものツメがあり、爪を立てて一つ一つ外すのはけっこう面倒です。しかも、下ケースもHDDの四つのビス穴に引っかけてピタリと止めていて、これも爪の場所が分かっていないと外しにくいです。
使用しているチップはJMS539でした。
http://www.jmicron.com/Product_JMS539.htm
よくぞ、ここまで小さくなったものです。
2013年12月18日水曜日
MoinMoin DesktopEditionの一括起動
MoinMoinはWikiとしてはよく利用されているようですが、個人が使うためのMoinMoin DesktopEditionはPythonのSimpleHTTPServerを起動して、Webブラウザを起動して、localhostの8080ポートにアクセスして、始めて利用できるようになります。
当然これは面倒なので以下のようなShell Scriptを使うことになります。
そこで、Automator.appでShell Scriptを走らせるようにプログラムして、それをアプリケーション形式で保存してみました。これで、何かを思い付いたときにすぐに起動でき、必要なTerminalだけ開いた状態にできます…ただし、終わらせるのはSafariとTerminalで他のプログラムを走らせているかも知れないので、一つずつするしかなさそうです。
当然これは面倒なので以下のようなShell Scriptを使うことになります。
open /Users/Shared/Documents/Backup/DevelopBackup/tiddlyWiki_DB/moin-1.9.7/wikiserver.py open http://localhost:8080/ただ、これだとスクリプトが終了したウィンドウが一つ開いたままになります。Terminalの環境設定を変えるという方法もありますが、それをすると他のシェルを走らせるときに不便です。
そこで、Automator.appでShell Scriptを走らせるようにプログラムして、それをアプリケーション形式で保存してみました。これで、何かを思い付いたときにすぐに起動でき、必要なTerminalだけ開いた状態にできます…ただし、終わらせるのはSafariとTerminalで他のプログラムを走らせているかも知れないので、一つずつするしかなさそうです。
2013年12月17日火曜日
TiddlyWikiとMoinMoin
新しいTiddlyWikiがTiddlyWiki5として発表されていました。
TiddlyWikiはファイルを保存するためにJavaを使っていましたが、少し前からTiddlyFoxと言うFirefox用のアドオンで保存できるように変更されました。Safariでも保存はできますが、別ファイルとして保存するので面倒です。
さて、個人用のWikiとしてMoinMoin DesktopEditionも利用していますが、私にはTiddlyWikiのマークアップ言語の方が書きやすいです。
たとえば、メモを列挙する場合に、MoinMoinもCreoleも項目の列挙に手間がかかります。ともに単独の改行は無視されますし、項目には各項目の先頭にスペース+*が必要です。TiddlyWikiでは改行は見たままに評価されますし、項目は*一つで済みます。
また、TiddlyWikiのタグに当たる機能がMoinMoinもありますが、入力に手間がかかります。私の場合は、書いた記事に複数のタグ付けをすることで、分析に利用していますのでTiddlyWikiが簡単にタグ付けできる点はありがたいです。
書いた後の読みやすさもMoinMoinの初期設定は行間が空きすぎている感じがします。MoinMoinはさまざまなテーマが用意されて見やすく設定できるので、MoinMoinはまとまった長文を公開するためのものと考えています。
TiddlyWikiはファイルを保存するためにJavaを使っていましたが、少し前からTiddlyFoxと言うFirefox用のアドオンで保存できるように変更されました。Safariでも保存はできますが、別ファイルとして保存するので面倒です。
さて、個人用のWikiとしてMoinMoin DesktopEditionも利用していますが、私にはTiddlyWikiのマークアップ言語の方が書きやすいです。
たとえば、メモを列挙する場合に、MoinMoinもCreoleも項目の列挙に手間がかかります。ともに単独の改行は無視されますし、項目には各項目の先頭にスペース+*が必要です。TiddlyWikiでは改行は見たままに評価されますし、項目は*一つで済みます。
また、TiddlyWikiのタグに当たる機能がMoinMoinもありますが、入力に手間がかかります。私の場合は、書いた記事に複数のタグ付けをすることで、分析に利用していますのでTiddlyWikiが簡単にタグ付けできる点はありがたいです。
書いた後の読みやすさもMoinMoinの初期設定は行間が空きすぎている感じがします。MoinMoinはさまざまなテーマが用意されて見やすく設定できるので、MoinMoinはまとまった長文を公開するためのものと考えています。
2013年11月15日金曜日
Finderのタグ
Mac OS XがMavericksになってFinderのタグ機能が改善されました。旧Mac OSからMac OS Xに移行するときに削除されて、また復活した曰く付きの機能です。この削除が理由でMac OS Xへの移行を見合わせた知人がいるほどです。
タグは便利なのですが動作が不安定な点が困りものです。今回もタグ付けされたファイルだけを見ようとするとファイル名が表示されない問題が出ました。問題のあるウィンドウを閉じて、新しくウィンドウを開くと正常にもどりましたが、いやなものです。
他に、タグ付けしたファイルを他のMac OS Xにコピーしたときにそのタグもコピーされます。これは自分のPC間でコピーするときには便利です。しかし、アプリケーションなどをインストールして、そのファイルにタグ付けがあると、Finderはそれも表示します。正直言って素人のようなミスですが、実話です(苦笑)
タグは便利なのですが動作が不安定な点が困りものです。今回もタグ付けされたファイルだけを見ようとするとファイル名が表示されない問題が出ました。問題のあるウィンドウを閉じて、新しくウィンドウを開くと正常にもどりましたが、いやなものです。
他に、タグ付けしたファイルを他のMac OS Xにコピーしたときにそのタグもコピーされます。これは自分のPC間でコピーするときには便利です。しかし、アプリケーションなどをインストールして、そのファイルにタグ付けがあると、Finderはそれも表示します。正直言って素人のようなミスですが、実話です(苦笑)
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サーバを起動します。
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のラベルで検索してください。
設定は以下の通りです。
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/
今回の実験に使用した器材は以下の通りです。
さて、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を走らせます。
■ 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を使って設定とビルドを実行します。
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のラベルで検索してください。
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
さて、Mac OS Xで開発したappのPebbleへのインストールに関して、上記のページには以下のようにしか書かれていません。
And on your phone, go to: http://
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 buildPythonのSimpleHTTPServerモジュールを使用して、httpサーバを開きます。ちなみに、サーバの終了は昔ながらのcontrol + cです。
python -m SimpleHTTPServer 8000さて、ここで最初にあげた一文に突き当たります(笑)
And on your phone, go to: http://
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のラベルで検索してください。
登録:
投稿 (Atom)


