Dropbox

Palmな時代2 「クリエ」プログラムコンテスト

ネタ切れになると始まる「私の電脳歴」シリーズです。前回のPalmな時代1から実に四ヶ月も経過してしまいました。まぁ、つながりも何もないので良いのですが、、、

Palmのシンプルな使い良さに感銘していた私は続々と発表されるPalmデバイスに物欲を刺激され続けていました。しかしVisor Deluxeはすこぶる順調で新しいデバイスを購入する理由を自分自身で見つけられません(今だと、「欲しい」というのが理由になるのですが)。そんな時、2000年にPalmデバイスの販売に参入したソニーから2001年にハイレゾ(320×320)のCLIE PEG-N700Cが発表になりました。これには大いに興味がわきました。色々と情報を調べてみるとソニーのプログラムコンテストに応募宣言をするとN700Cがもらえる(最初は貸与で、ちゃんとコンテストに出品して初めて自分の物になる)とのことです。

斯くして 第2回「クリエ」プログラムコンテストの「応募宣言します!」に企画を提出したところ見事に採用されてしまいました(たしか10作品ほどだったと思います)。Palmプログラミングの準備はしていたものの、まだ一つもプログラムを書いたことが無かったので、今にして思えば無茶な話です。しかも、万華鏡シュミレーター(かれいどすこーぷという名前です)という、いかにも企画を通すための思いつき(実際は、随分前からPalmとは限らず何かしらの形で作ってみたかったのですが)のような実現できるかどうかも定かでない題目です。

プログラムを始めてから、おお浮動小数点や三角関数って無いんだ(math.libというのが入っていれば使えます)、なんて気づく始末です。物を回転させるのに三角関数は欠かせません、仕方なくテーブルを引く形で三角関数を導出し、全てを固定小数点で計算しました。実際には、この方法を使ったことにより何とか満足のいく速度で図形を動かすことが出来たのだと思います。

3ヶ月ほど悪戦苦闘の末、何とかコンテストに出品し、N700Cは自分のものとなりました。残念ながらコンテストで入選には至りませんでしたが、ベクターさんやMuchy.comで、こんな役に立たないPalmwareは珍しいとレビュー記事を書いていただきました。

その後、入手したCLIE SJ33が私の最後のPalmデバイスとなりました。ということでPalm OS5を知らないままに私のPalm時代は終わりを告げたのでした。

10日ほど前にeXpanysさんにE90を発注しました。しかし「ご注文処理状況の追跡」によると、いまだ倉庫間輸送中になっています。一緒に注文したE90のケースは何日か前に「倉庫間輸送中」から「有り」に変っています。

今回のE90はアメリカのブツだそうです。「初めにお読みください」によると定期便の頻度は「英国・週に二便」「米国・週に一便」とのことです。普通に考えれば、一度は定期便に乗るチャンスがあったはずなのですが、、、何かの都合で一便パスされちゃったのかなぁ。

eXpansys頑張ってくれ!! 今回オーダーされた他の方たちはどうなんでしょう?

Nokia S60 3rdアプリケーション開発に必要な情報源のまとめです。C++を知っていてもSymbianのソースコードを見ると面食らいます。UIに関しては違ったプラットフォームで開発を始めるときには、それなりの準備が必要です。ということで、S60 3rdでプログラミングを始めたばかりの私が参考にしている情報源の紹介です。

[ Symbian OS/C++ プログラマのための Nokia Series 60 アプリケーション開発ガイド ]
私にとっては、ほとんどバイブルと言っても良いでしょう。高いですが、その値段に見合う価値があります。対象はS60 2ndなので、S60 3rdとの違いを別の情報で補う必要があります。ただしAPI、フレームワーク等「中身」に関しては、ほとんど差がないのでサンプルコードもルーチン単位では活用可能です。

文中のサンプルコードのダウンロード先URLが既に存在していません。サイモンを書いていた頃は仕方なく本文中に出てくるコードのみを参考にしていましたが、本文読んでいると後はコードを見れば分かります、みたいな所も多く困っていました。探してみたらForum Nokiaのココにサンプルコードが置いてありました。

[ DIGIらいふ〜スマートに行こう!〜 ] wikiサイト
M-FEPのま〜さんのwikiサイトです。Symbianの開発情報がまとめられつつあります。開発環境の構築手順、ケイパビリティと認証、開発者証明についてなど必読です(苦労の跡が伺えますm(__)m)。

[ PC View – S60アプリケーション開発ガイド ]
S60の開発を解説した連載ものです。S60 2ndからS60 3rdへの移植に関する情報は貴重です。

[ Symbian OS開発の勘所 ]
S60ではなくSymbianを解説した連載です。最初に書いた「面食らう」部分を分かりやすく独特な口調で説明しています。モバイルデバイスを以下に堅牢に作り上げていくかというSymbianの思想を学ぶのに最適です。

[ Forum Nokia ]
ご本家です。SDK等の入手先でもあります。押さえておくべき所はForum Nokia WikiDeveloper Discussion Boardsでしょう。Googleで検索してもこの二つに行き着くことが多いです。

[ NewLC ]
S60に限らないSymbianの情報源です。コラム、サンプルコード、フォーラムなど幅が広いです。Symbian Signedの変更などもかなり前に情報が掲載されていました。

[ Google Code Search ]
ソースコード専門の検索エンジンです。すごく役に立ったというわけではありませんがS60のAPIとか検索かけて、それなりにコードが見つかります。

[ SDK ]
SDKにも色々と情報が付いてきます。SDK Help以外にもSDKを導入したディレクトリーにPDFドキュメントやサンプルコードが沢山入っています。SDKのバージョンによって内容は様々です。

[ 普通的生活工作室 – Crabide.c++のメモ ]
最後に私個人の覚え書きを紹介しておきます。

hamaさんの所reveilさんの所で中国移動の新しいGPRSメニューが紹介されていました。以前、中国移動のナビソフトを調べていた時に5元套餐(セットメニュー)のニュースを見た記憶があるのですが、全球通というポストペイ・プランの物と思っていました。それが私が通話用に使っている神州行というプリペイド・プランにも適用できるとの事で上海移動のwebページを見てみました(同じ中国移動でも地域会社毎に色々と差があるんです)。

以前はGPRS関連の情報がどこにあるのかも分からない状態の上海移動のwebページだったのですが、今はトップページにGPRSのリンクが出来ています。そのページによると来年の7月末まで限定の5元のメニューがあります。5元で10MBまで定額、超過分は0.01元/KBとのことです。別にデータ通信専用の随e行というSIMも持っていてプッシュメールなどで使用していますが、それですら30MBに満たない使用量です。おそらく補助的に使うだけなので5元のプランで大丈夫そうです。

上海移動の神州行は、何の設定もなくGPRSが使えるので便利に使用していました。ただし0.03元/KBの従量制なので、ごく控えめに使用していました。定額プランがあれば鬼に金棒です。と、勇んで申し込みをしようとしたらwebからの申し込みは何度やっても「システムビジー、時間をおいて試してください」のようなメッセージで受け付けられません。SMSで申し込みは出来ると書いてあるのですがコマンドが書いてありません。結局、SMSでメニューを取得しつつ探していき、何とか5元のメニューを申し込むコマンド’KTG5’が見つかりました。これで来月からは存分にGPRSが使えます。

SMSを使用したコマンドの一覧をreveilさんのところのコメントにてhama@東莞さんに教えて頂きました。ありがとうございました。m(__)m

SMS送信時に送信内容をファイルに保管するようにしました。

SMS送信に先立ち保管するためのフォルダーの設定が必要です。v1.12導入後、初めてのSMS送信を行う際にフォルダーの設定画面が現れます。予めKKJSetup にて設定し置くことも可能です。フォルダーの既定値はE:/KKJConv/Sent (ソニエリはE:/Document/KKJConv/Sent)です。設定に先立ちファイルマネージャーなどでフォルダーを作成しておく必要があります。

送信済みSMSは’SMS送信/送信済みSMS’で参照出来ます。送信済みSMSの内容を漢字入力画面に上書きコピーすることも出来ます。

全ての機能を使いSMSを送信すると沢山の確認メッセージが出てしまいます。jarファイルに、ちゃんとした署名が出来れば良いのですが 、今のとこ為す術無しです。署名なしでの機能拡張は、このあたりが限界かもしれません。

解説およびダウンロードは以下のURLからお願いします。

http://www.nkozawa.com/wiki/index.php?KKJConv

[ その他の変更 ]
– ファイルの読み込みにて改行のみが続く時に一つの改行になってしまう不具合の修正。
– コピペ画面から漢字入力画面への文字列の上書きコピー機能の追加。
– ユーザー辞書の保管フォルダーの既定値をSonyEricssonデバイスに限りE:¥Document¥KKJConvに変更しました(新規導入にのみ影響します)。

[ 制限事項 ]
– ファイルダイアログ(ユーザー辞書の辞書ファイル、送信済みSMS保管フォルダーの指定)がM600iでうまく動いていないことが分かりました。原因を調査中ですが、うまく行かない場合はテキストフィールドに直接フォルダーをキーインしてください。

発表時にはiPhoneにSDKは必要ない、Safari上でのWebアプリがあるからと言われていましたが、やはりNativeなアプリケーションの要望が強かったようでiPhone, iPod Touch向けのSDKが来年公開されるそうです。

オリジナルの文章はApple Hot Newsで、日本語の情報はIT Proのニュースengadget japaneseで読めます。engadgetの方がより詳細に内容を伝えています。

もともとiPhoneがクローズな環境であったのは、携帯電話としてセキュアな状態を保つためであったと推測できます。当然の流れとしてSDKを公開するに当たって何らかのマルウェア対策を施すそうです。興味深いのはNokiaの現在の対策(どらちかというとSymbianなんだけどなぁ)を引き合いに出して方向性は正しいが”totally open”とは言えないと書かれているところです。安全性を保ちつつ適度にオープンって事でしょうか。小規模なベンダーとか個人が自由なアプリを書ける環境を期待したいです。少なくともお金をかけて署名しないと行けないような事にならないと信じたいです。

iPhone in Shanghai

ついこの間、上海のスタバでニヤニヤしながらiPhoneをいじり回している外人をみかけ、うらやましく思っていたところ、実際に触るチャンスがやってきました。残念ながら私のではありません、、、

操作性の良さについては情報が沢山出ているので分かってはいましたが、実際に触ると想像以上の素晴らしさです。また画面の視認性の良さも私には得点が高いです。上の写真はSafariの画面です。画面はPCで見るのと同じ(というかSafariそのものだし)だし、上のように画面一杯にこのブログの文章が入る大きさにしても文字は読みやすかったです。年のせいでX01HTだと文字が読みづらい私にも問題なしでした。

下の写真はおみやげにもらった如意棒です。分かる人には、これでどのあたりから持ち込まれたiPhoneか分かるでしょう。(^_^)

Mini Stylus

emoze の Gmail プッシュ・サービスを試す

のぞきイヌさんが何やら面白そうなことをやっているので真似してみました。

何でもemozeがGmailのプッシュサービスを行っているとのこと。emozeというと、ずっと前に自分のPCを立ち上げておくと無料でプッシュメールが携帯端末に送られてくるというサービスで一部マニアな人たちの間で話題になったことがありました。その後4smartphoneなどのExchangeサーバーを使う事が一般的になって久しくemozeの事は忘れていました。

いつの間にかGmailに限っては自分のPCを使わずにプッシュメールを受けられるようになっています。とりあえずX01HTに導入して半日ほど使ってみましたが、なかなか良い感じです。

emozeのサイトでは機種毎に導入手順が示されます。ただしHTCの中にHermesなどは無かったのでTyTNを選択してうまく行っています。Windows MobileだけではなくSymbian系もサポートしています。実際の所は試してもらうしかないのですが、簡単に印象など、、、

– 感覚的にはExchange Serverと大差ない運用が出来る。
– Exchange Serverとの併用も問題なし。
– 最初の同期にてGmailの連絡先とデバイス(ひいてはExchange Serverとも)が完全に同期された。いやならば同期前に設定を変えられるかも(未確認)。
– 送信メールはGmailのメールアドレスになる(当然か)。
– 送信済みのメールはデバイスに残らない。設定に送信済みフォルダーの同期というのがあるがオンにならない。
– 送信したメールの最後にemozeの宣伝が入る。
– Gmailのパスワードを晒しているような気もするが大丈夫かなぁ?

KKJConv v1.11 SMS送信の補足事項

E90にて350件ほどのアドレス帳エントリーがある場合に「名前の確認」に30秒近く要するとの連絡をいただきました。S60のMIDPの作り込み部分に起因する問題と思われますが、何かしらエントリー数の限界値を超えると極端にパフォーマンスが悪化するものと想像されます。

根本的な対策はありませんがKKJConvのSMS送信における電話番号検索の使用例を説明することにより、それぞれの環境において最適な実行方法を見いだしていただければと思います。

実行例 1 – MIDPの組み込み機能による電話帳検索を使う

– SMS送信にてメニューを表示しAdd from contacts(携帯電話の機種より異なります)などのメニューよりデバイス組み込みの電話帳機能を呼び出し目的の電話番号を得る。
– 「名前の確認」を実行し電話番号に対応した名前を確認する(ここで実行せず「送る」の中での自動実行に委ねても良い)。
– 「送る」を実行しSMSを送信する。このとき「名前の実行」機能が未実施の場合は自動的に名前の確認を行う。使用した電話番号とあて先の名前は「良く使うあて先」のリストの先頭に挿入される。
– 次に同じあて先にSMS送信を行う場合は「良く使うあて先」から選択する。

この方式の利点: 本物の電話帳なので使い慣れた方法で検索等が出来る。
この方式の欠点: 「名前の確認」で時間を要するケースがある。(現在の所NOKIAで電話帳のエントリーが多い場合に発生を確認している)

実行例 2 – KKJConv組み込みの電話帳を使う

– SMS送信にて「電話帳」を呼び出し一覧からあて先を選ぶ。この場合、電話番号と名前を同時に取得するので「名前の確認」の必要が無い。
– 「送る」を実行しSMSを送信する。使用した電話番号とあて先の名前は「良く使うあて先」のリストの先頭に挿入される。
– 次に同じあて先にSMS送信を行う場合は「良く使うあて先」から選択する。

この方式の欠点: 簡易電話帳なので検索等の機能が無い。電話帳の全てのエントリーが(おそらくは)MIDPのメモリー空間に展開されるのでMIDPのメモリー使用量が増えるまた実行時間もそれなりに大きくなる。

後はKKJSetupにて、一切のPIM電話帳機能を使用しないようにするという選択肢もないわけではありません。

SMS送信機能を少々強化しました。v1.10では電話番号を検索しSMSを送るだけでしたがv1.11では自前のコードで電話帳をアクセス出来るようになりました。詳しいことは下に書いていますが、注意点だけ読んでもらい実際に使ってもらえば大丈夫だと思います。

[ その他の変更 ] – 順番が変ですが忘れないように最初に書いておきます。
– SonyEricssonのデバイスでAlt+OK長押しでコピペし、漢字入力画面に戻った時にKKJSetupでスキップしている入力モードが設定されてしまうバグの修正。

[ SMS送信機能の変更点 ]
– SMS送信をスレッド化した。 内部的な話ですが表面的な挙動も少し変わります。v1.10ではSMS送信が終了したところで画面の制御がユーザーに戻って来ましたが、v1.11ではSMS送信を開始してすぐにユーザーが画面を操作できるようになります。もちろんエラーが発生すればメッセージで知らされます。

– SMS送信完了メッセージ。スレッド化にともなう変更です。SMS送信が完了した旨を知らせるポップアップを出すようにしました。KKJSetupにより、これを抑制することも出来ます。

– 独自の電話帳検索機能搭載。自前のコードで電話帳にアクセスし電話番号を引き出すことが出来ます。良い点は、電話番号と名前が同時に取得できることです。電話帳の一覧をメモリーに展開することになるので大量の電話帳エントリーが有る場合、動作的には優しくないかもしれません。KKJSetupにより、このメニューを隠すことも出来ます。

– 名前の確認機能。これはv1.10で使用したMIDPの組み込み機能による電話帳検索を補うものです。組み込みの電話帳検索では電話番号のみしか取得できません。その後で名前の確認を実行すると対応する名前を取り込み画面に表示します。

– SMS送信時の自動的な名前の確認。名前の確認が出来ていない電話番号に送信を行うと、最初に名前を自動的に取得します。KKJSetupにて、この機能を抑制することが出来ます。

– 良く使うあて先の表示。SMS送信に使用した電話番号と名前を10件分だけリストする機能です。固定したSMS送信先を使う分には、電話帳からの検索の必要がなくなります。

[ 注意点 ]
– SMS送信を開くと前回使用した送信先の電話番号と名前が出ます。ここで組み込み機能の電話帳検索を行うと電話番号だけが更新されます。そのため、表面上は電話番号と名前が食い違った状態になってしまいます。SMSの送信は電話番号に対して行われますので、そのまま送信してもかまいません。名前の自動確認により良く使うあて先には正しい名前が入ります。気になる場合は、名前の確認機能を使い送信前に正しい名前を表示することも出来ます。

[ ダウンロードと解説 ]

http://www.nkozawa.com/wiki/index.php?KKJConv