2007年10月30日火曜日

uGNote1.22

GoogleNoteの公開ページを閲覧するアプリuGNoteを更新しました
といっても先月行ったオフラインブラウズ機能をちょっといじっただけです
機能的には殆ど変わっていません。9/30日バージョンからの変更内容は

  • 画像ファイルの受信に失敗することがあったので受信処理を変更
  • オフライン用のログファイルの保存先を設定できるように修正
  • 不要なログファイルをメモ単位で削除するように修正
です

オフラインファイルの保存先を設定する処理にだいぶ手間取りました。あとはプログラミングをサボり気味でした。細かい作りこみの様な作業はテンションが下がってしまって、はかどらなかったりします。

cabファイル

このアプリの基本コンセプトはログファイルを残さない事でしたが、オフライン機能を導入したことでログを残す設計になりました。
ログを残さないってコンセプトはセキュリティ考慮的な意味合いがあったりした訳ですが、そもそも公開ノートを閲覧する時点でセキュリティ云々は意味が無い事に後で気がつきました。

そんな訳でオフラインの要望を貰ってあっさりと方針を転換しましたが、プログラミングはあっさりとは行きませんでした....

オフラインブラウズをする場合はuseridの設定画面で、offline browseにチェックを入れる必要があります



オフラインファイルの保存先はオプションメニューから設定画面を開いて設定します



オプションメニューはユーザーリスト表示中のみ選択できます。また、メモのダウンロード中は選択できません

2007年10月29日月曜日

モーターショー

土曜日にモーターショーに行ってきました。土曜日は天気が良くなかったし、僕はモーターショーにあまり興味が無かったので気は乗らなかったのだけど、小3のお兄ちゃんが行きたいと言うので行ってきました。
お兄ちゃんは前の日から興奮ぎみでした。

彼は、なぜかプジョー好きで、普段から「プジョー、プジョー」とうんざりする位にプジョーの話を聞かされていたので、プジョーブースでの彼の満足げな顔を見て、来て良かったな~って思いました

話題のGTRは人が多すぎて近づくことも出来ず。

トヨタとかホンダ、日産のコンセプトカーって相変わらず、かっこ悪いなーとか思いました。未来っぽいデザインの車って何であんなにかっこ悪くしちゃうんだろーね。って思うのは僕だけなのか?
日産のロボットが付いてる奴なんて、意味が分からん!と思っていたけど、実物を見ると、かわいいから良いか~って気になってしまった。R2D2みたいな物か?でも必要ないと思う

BMWでもらった冊子に付いていたVirtual Ownerってポスターが面白かった
ポスターをこんな感じで地面に置いて、


携帯で写真を撮って、bmwのサーバにメールを送ると、一分ぐらいで




BMWを合成した写真が送られてくる。ポスターの置く向きや角度に合わせて、車の向きも変わる。自宅の車庫の前で撮影してオーナー気分を体験してください、って事らしいけど

自宅も、車庫もネーヨ!

しょうがないので駅の改札前で撮ったり、部屋の中で撮ったりして遊びました...

2007年10月27日土曜日

開拓おかき

北海道の土産物屋さんで、売り切れだった北菓楼の開拓おかき。千歳空港のお店でも売り切れで、買えないと思うと欲しくなるもので。飛行機の搭乗ゲート前でようやく見つけてホタテ味だけ購入した。

ホタテ味チョーうまかった!他のも食べてみたいと、思っていたら
二子玉川の高島屋で北海道展をやっていたので、4種類買ってしまった

Posted by Picasa

2007年10月25日木曜日

web上のファイルを受信する処理

フォルダ選択ダイアログは、不満はあるけど一応実装できた。ノート
不満点は
  1. やはり、ルートの名前とアイコンが取得できていないので適当に処理してしまった
  2. 指定したフォルダを選択した状態でダイアログを開く処理が不完全
だが、使用上あまり重要でもないと思うので、あんまり深く追っかけないで次の課題に進む事にした

次の課題は画像ファイルをwebからダウンロードしてファイルに保存する処理。
今までは受信処理を非同期処理として複数個のファイルを同時にダウンロードするようにしていた。しかし受信に失敗しているファイルが幾つかあるようだったので、受信処理を見直すことにしてみた。

非同期処理は、HttpWebRequest.BeginGetResponse();を使って、非同期リクエストを発行してレスポンスをコールバック関数で処理する
非同期なので、レスポンスが帰る前に次の処理が実行できる。あらかじめ受信する必要のあるuriへのリクエストを発行しておけるので、リクエスト->レスポンス->リクエスト->レスポンス....と順番に処理をするよりも効率が良いはず。

ただし、リソースが限られるので大量のリクエストを発行することは出来ないので、同時に発行するリクエストを制限する必要があると思う。リクエスト数の制限はOSかフレームワークがやってくれるから気にしないで好きなだけBeginGetResponseを呼び出しても良い”と勝手に思っていたが受信失敗しているので、そうでもなさそう

また、レスポンス待ちで長時間処理が終了しないリクエストをkillする仕組みを用意しなければいけないので処理が煩雑になってしまった

そこで、ThreadPool.QueueUserWorkItem();を使って同期処理の受信関数を複数スレッド同時実行するようにしてみた。、ThreadPoolはシステムが同時に実行するスレッドを適当に管理してくれるもの(だと思う)

実験してみた結果は、ほとんどの受信リクエストが失敗するというひどい状態になってしまった。

結局今のところ、ファイルを一個づつ順番に同期処理でダウンロードするのが一番確実みたい。これだと、レスポンスの遅いuriがあると無駄に時間を費やしてしまうので効率が悪く気にいらない。他に解決策が見つからなければしかたが無いかもしれない

2007年10月23日火曜日

蓼科

土日にまた白樺湖近辺に行ってきました、そろそろ紅葉の時期かと思って出かけてみました。
紅葉はこれからって感じでしたが、場所によっては良い感じで楽しめました
遊んでばっかりですね

霧が峰、八島が原湿原、車山、横谷渓谷と見て回りました

金曜日は雨でしたが土日は快晴。土曜日は前日の雨のおかげか空気がスッキリときれいで富士山が良く見えました。

八島が原湿原:天然記念物だそうです。


お昼は定番の蕎麦やに行きました。最近蕎麦アレルギー反応が強くなってきた感じがしていたので、蕎麦は食べないようにしました。かき揚げ丼を頼みましたが、不覚にも完食できませんでした....

車山:正面に富士山がうっすらと見えました

横谷渓谷の王滝:滝まで結構な山道でした。途中からは登山道って感じでした。筋肉痛になりそうです。

2007年10月18日木曜日

プログラムしてない

先週旅行から帰ってきて、一週間、録画してあった24を見ただけで終わってしまいました。
ほとんどプログラムさわってないので、旅行前に何をしていたか忘れてしまった....

2007年10月13日土曜日

フォルダ選択ダイアログ

yeneさんにコメントでSHGetFileInfoを教えてもらったので、フォルダアイコンを表示できるようにしてみた。ただ、WinodowsMobileには開いた状態のフォルダアイコンは存在しないのか?取得できなかった。エミュレータで実行した場合と、アドエスで実行した場合ではアイコンの形状が違って、アドエスでは横向きのフォルダアイコンが出てきた。僕の個人的な趣味ではエミュレータで表示された従来のアイコンのほうが好き。横向きは、なんか中身がこぼれそうで心配だ
さらに、アドエスではSHGFI_SELECTICONを指定すると一寸だけ開いたアイコンが取得できた。ホンとにちょっとだけなので暫く気がつかなかった
ルートの名前とアイコンは取得でき無そうなので自分で用意しなければいけないのかも...

エミュレータで実行した場合(QVGA)


アドエスで実行

北海道旅行

行って来ました、北海道。北海道に行ったのは今回が初めてでしたが、とてもよかったです
今回の旅行は嫁さんの北海道出張に便乗してついて行きました。嫁さんは昼間仕事なので、嫁抜きで子供二人をつれて色々まわってきました

ホテルは嫁の仕事があるので札幌市内から移動する訳にはいかず、札幌付近のみの観光。札幌市内の観光、定番の旭山動物園、小樽って感じでまわってきました

テレビ塔:トウキビ食べた




旭山動物園:カピバラさん

3連休中という事もあって、動物園は混んでました。
動物園までは観光バスツアーで行きました。レンタカーや電車で行くことも考えましたが、結局バスツアーが一番安くいける計算でした。楽だし。バスガイドさんも言ってましたが、旭山動物園に行くならバスツアーがオススメです
でも、札幌からの移動時間が長いので朝8時30分に出発して、17:30分に札幌駅到着のツアーでも動物園は3時間半程度しか見学時間が取れませんでした。
すいていれば3時間半でも大丈夫だと思いますが、混んでいて並んだりするとちょっと厳しい

ペンギンの水槽の下からペンギンを見上げるの図:

アザラシの丸い水槽とかシロクマが飛び込んでくる水槽は、タイミングが合わなかったのでガイドブックにあるようなシーンは見れませんでした。残念だけど、動物のやることだから仕方が無いですね


大倉山スキージャンプ台

高かった


小樽:
子供達の反応はあまりよくなかった。”運河?ふ~ん”って感じ
”それより、早く寿司食べようよ”って

結局お寿司を頂きました。おいしかったけどお金がかかりました。子供にはもったいないです。


モエレ沼公園:でっかい公園でした。帰る日に行きました。この日は嫁さんも一緒で子供達もそれなりに楽しんだようです。


旅行前から体調を崩して腹具合が悪かったのですが、旅行中には回復できませんでした。それどころか、下の子と嫁さんまで下痢になってしまった。下痢は治らなかったけど、せっかく北海道まで来たのだからと、ジンギスカン、ラーメン、水産物、寿司、スープカレーと一通り食べました。もーね、おなかの具合なんて、どーにでもなれって腹をくくって....

食べ物はどれもおいしかったです。食べてるときは、幸せでした。
ジンギスカンは生ラムは臭みも無くおいしかった。子供達も気に入ったので、2回も食べに行っちゃいました

2007年10月4日木曜日

明日から旅行

北海道旅行ですが、2日前から体調を崩して、フラフラしてます。下痢がひどくて2日間殆ど食べてないです。旅行計画は全然立ててないけど、食べ物のことしか考えてなかったので、心配です。(全部食べられるか心配)
今日は頭痛


保存先のフォルダを指定するダイアログを作っているところですが、いろいろ解らないことがあります。まずルートの名前。他のアプリだとマイデバイスみたいな名前がついてますが、あれはどこから持ってくるのか?それからフォルダのアイコンはどこから取ってくるのか?自分で用意するものなのか?

2007年10月1日月曜日

KeyLock

KOTETUさんのところでKeyLockが公開されていました

アドエスのキーロックスイッチが硬くて操作しづらいのが不満だったので、使えるかも?と思って画面回転スイッチに割り当ててみました
KeyLock.exe自体はアドエスでも動作しましたが、アドエスのスライドスイッチでのキーロックとKeyLock.exeでのキーロックは全然違うものでした。

KeyLock.exeから移行するキーロック状態はWindowsMobileのシステムで用意されたもので、キーロックからの回復の仕方、キーロック時の画面表示、キーロック時のキー反応がアドエスの標準キーロックと異なります。

アドエスのキーロックとの違い
  1. キーロックからの回復は画面タップ2箇所か、キータッチ2箇所の組み合わせを実行する
  2. キーロック中はタッチパネルには反応しないが、どのキーにでも反応する
電源キー以外のキーにも反応するので、キーロックしてズボンのポケットなんかに入れて持ち運ぶと、wakeupしてしまう可能性が高いです。キーロックの機能としてはアドエスのほうが優秀です

メリットは
  1. キーロックしやすい

デメリットは
  1. 意図しないwakeupをしやすい
  2. キーロック解除手順が煩雑
って感じでしょうか。
とりあえず両方使ってみることにしたけど、欲を言うとキーロックでサスペンドして欲しい
KOTEUさんは要望を受け付けてないらしいので、サスペンドするキーロックを作ってみた
と言うほどのものではなくて、
VK_KEYLOCKとVK_OFFを送りつけてるだけです

ソース
#include
#include

//#define VK_KEYLOCK (VK_F22)

int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{

keybd_event(VK_KEYLOCK, 0xff, KEYEVENTF_SILENT,0);
keybd_event(VK_KEYLOCK, 0xff, KEYEVENTF_KEYUP|KEYEVENTF_SILENT,0);

keybd_event(VK_OFF, 0xff, KEYEVENTF_SILENT,0);
keybd_event(VK_OFF, 0xff, KEYEVENTF_KEYUP | KEYEVENTF_SILENT,0);

return 0;
}

こんなので良いのか?という気もしますが exeファイル
問題が出たら使うのを止めます

uNClock もWindowMobileのキーロックステータスを見るようにしてみました。exeファイル
まだテストリリースなのでバージョンは無いです
WindowMobileのキーロック状態でwakeupすると、指定時間以内にキーロック解除しないとサスペンドしてしまいます。1秒では絶対無理で、5秒でも間に合わないことが良くあります
あまり実用的では無いかも