Windows Mobile 用の GPS 地図 - Part 5 - FreeOTFE2010/04/12 22:57

gm_lite 改造版 (ver 0.1.4 ベースにした、rev 5.0) を update しました。

http://www.ne.jp/asahi/net/pockey/program/gm_lite-0.1.4_r5.0.patch.zip

メジャーな update は、ランドマークファイルとして lmark.js というファイル名のものしか読み込めなかったのを、指定できるようにしました。

利用法は、
「Windows Mobile 用の GPS 地図 - Part 4 ― 」
http://gethtmlw.asablo.jp/blog/2009/08/23/4533241
をご覧ください。

ReadGPS.exe と組み合わせて Windows Mobile で使う場合は、ll.js をやり取りするディレクトリを、gm_lite.html 内の Filelljs という変数に設定してください。
Filelljs = "/ramdisk/ll.js";
など。

さて、gm_lite を利用して地図を持ち歩くときに問題となるのが、ディスクのクラスタサイズより小さいサイズのファイルを多量に保存するために発生する無駄領域。例えば 16GB の microSDHC に地図ファイルを保存したいと思っても、地図の実容量は 8GB 分も入らず ディスク満杯、となりがちです。一枚の地図データがクラスタサイズである 16KB より遥かに小さいのが理由です。

クラスタサイズを何とか小さくしたい。そこで利用したのが FreeOTFE という、本来データを暗号化してディスクに保存するためのプログラム。

http://www.freeotfe.org/

これ、Windows Mobile に confidential なデータを保存する場合は必須です。Windows Mobile にも外部ストレージを暗号化する機能がありますが、例えば ROM の入れ替えや初期化を行うと二度と読めなくなるそうです。しかし FreeOTFE ではパスワードさえ覚えておけば大丈夫。

これ、暗号化用ボリュームファイルを作って利用するのですが、この機能を利用して、gm_lite 地図保存用ボリュームのクラスタサイズを小さくします。
まず、PC でボリュームファイルを作ります。microSDHC に入れる場合、FAT32 ですから、最大のファイルサイズは 4GB なので、4095MB のサイズのボリュームファイルを作ります。PC で作る理由は、PC ではこのボリュームファイルのフォーマット時のクラスタサイズの設定の自由度が高いからです。
ボリュームファイルを作ったら、PC 上でマウントしてフォーマットです。DOS 窓 (cmd.exe) でフォーマットするのがコツです。

例えば、g: にマウントした場合、

format g: /FS:FAT32 /A:1024

このボリュームファイルのクラスタサイズを 1KB でフォーマットします。これをアンマウントして、Windows Mobile に移してマウントして使えば、クラスタサイズ 1KB の記憶領域の出来上がり。
クラスタサイズが 1KB なので、無駄領域が気にならない程度で済みますから、16GB の microSDHC の記憶領域がフルに活用できます。
地図データ自体は 16GB フルに使うほどのデータを頻繁に使うことはまずないので、4GB のボリュームで十分。むしろ、各地域別に適切サイズのボリュームを作って地図を保存しておき、その都度マウントして使えば、つねに全地図データを持ち歩く必要もなく、地図ファイルの管理も楽になります。
この場合暗号化の機能は全く使っていませんが、非常に都合のよいソフトです。
本当は iso ファイルを Windows Mobile でマウントできるようなソフトがあればいいのでしょうが、FreeOTFE の機能で十分実用になります。

さらに gm_lite 地図の容量をけちりたい場合、かつ人口密度が低い地域で詳細地図を多量する場合には、いい方法があります。
このような条件の場合は、一枚の png 地図画像に道路も何もない場合があります。この場合 png ファイルサイズは 178 バイトです。そこで、178 バイトのファイルを検索して削除してしまいます。
何の情報も無い地図画像なら、無くても全く問題がないからです。

GetHTMLW 8.2.0 Test Release 13 公開2010/04/24 23:21

GetHTMLW 8.2.0 のテストリリースを公開します。

http://www.ne.jp/asahi/net/pockey/program/gethtmlw-8.2.0-TR13.exe

機能拡張・バグ fix をしたばかりで、検証に時間をかけていません。
もし不具合を見つけた場合は、コメントを書き込んでいただければ幸いです。可能な限り正式 release (Vector に掲載) までに盛り込みたいと思います。

変更点は以下。
・NTLM authentication に対応(libntlm の導入)。これに伴い、認証時の thread 起動制約、エラー時リトライ処理、Keep-Alive 通信の処理に 変更を加えている。

・取得開始 URL に対しても「拡張子/文字列フィルタ」を適用するように 変更。ただし非取得対象として引っかからないように実装

・メインメニューの「URL 情報(I)」で、更新時刻等の情報が無い場合に情報を全く表示しない不具合を修正

・「旧データを保存」で、一つ前のデータ以外残さない不具合を修正

一番大きい変更は、NTLM 認証を付加したことです。
会社で Proxy Server の変更があったのか、Basic 認証では通らなくなりました。Squid なんですけどね。Web 上のデータの変更記録を残しておくことが仕事上欠かせないため、急遽対応しました。

そこでインターネット上で流用できる NTLM のライブラリを探したところ、下記に当たりました。

Libntlm - Simon Josefsson さん
http://josefsson.org/libntlm/

Borland C++ に対応した lib/DLL は直接吐けないので、いろいろとヘッダ等の環境を整えたとき、stdint.h にだけ苦労したので、下記の方のヘッダも利用しました。
<stdint.h> for Visual C++ - 株式会社きじねこ様
http://www.vector.co.jp/soft/win95/prog/se432866.html

御礼申し上げます。

電池から OmniaII 充電 - 32010/04/28 19:34

Omnia II の Silicone Skin を探していたら、単三電池/ニッケル水素充電池からの充電器で良い物を見つけてしまいました。

Tekkeon 社
TekCharge™ MP1550 Mobile Power & Battery Charger
http://www.tekkeon.com/productcart/pc/viewPrd.asp?idcategory=9&idproduct=13

以前パナソニックのポケパワーや、PDA 工房で扱っているバッテリーエクステンダーIIを紹介しましたが、
http://gethtmlw.asablo.jp/blog/2009/01/10/4052362
http://gethtmlw.asablo.jp/blog/2008/10/18/3829999

MP1550 は単三 4 本自身を USB 経由で充電できたり、電源 SW が付いていたり、余計な USB ドングルが不要だとか、小型だったり、電池の残りインジケータとか、イケてます。
ポケパワーも USB 経由で電池自身を充電できたりしますが、単三 2 本使用だからか、Omnia II では充電電流が足りないようで使えないみたいです(ポケパワー定格 500mA、Omnia II はパワーアダプタのスペックから 700mA は食うようです)。

この MP1550 は日本では売っていないし、ebay でも出ていないようでしたが、上記 Tekkeon 社の online store で売っています。
クレジットカードさえ有れば買えます。
しかも送料込で $36.71- なり。この機能からすると安い!
カスタマサポートも良いです。クレジットカードの認証で問題が起きても、メール一つで対応してくれました。

注文から 6 日で届きました。早速 Omnia II を充電。充電ケーブルは USB の D+ と D- を短絡させた自作ケーブルです。

Looks も good。小型だし、言うこと無しです。