2007年8月31日金曜日

明日は諏訪湖

ですわ
夏休みの最後の旅行だけど天気がどうかな~

2007年8月30日木曜日

ノート

自分で言うのもなんだけどuGnoteを使い初めて今まで読みきれていなかったネット上のコラムとか記事が消化できるようになった。メモも取りまくってる。
だけど、公開メモにネット上の記事を丸ごとコピーするのってマズイよなぁと思う
今はコピーした記事は2日以内に読んで消すようにしてるけど、やっぱり非公開のノートも見れるようにしたいな...


関係ないけどこれよさげ

www.nikkeibp.co.jp/style/biz/cover/topics/070829_s...



シャーボXもよさそ
一本スタイラスにするとか出来ないかな

www.nikkeibp.co.jp/style/biz/cover/topics/070829_s...

2007年8月26日日曜日

ソースの公開

してくれている人が増えて嬉しい

W-ZERO3 Holic さん
ShowCallLogのソース
自作のTodayアプリに組み込ませて頂いた、ありがとう


W-ZERO3tool さん
zm_helper のソース公開

2007年8月25日土曜日

uGNote1.10

googleノートブックをアドエスで閲覧するためのアプリケーション uGNote を修正した
  • リストの表示処理を変更
  • リストが10アイテムしか読み込まれない問題を修正
  • 外部webブラウザでメモにリンクされたページが開けるように修正
  • 外部webブラウザを標準で使用するウェブブラウザを使うように修正
  • リストのクリックで選択できるように修正
  • メモ表示画面でタイトル他の情報を表示するように修正

リストの表示処理はListViwerを使っていたけど、オーナードローで独自にリストボックスを作った。ほんとはアイコン表示がしたいだけだったので、ListBoxコンポーネントで実現できればよかったのだけど。なんだか回りくどい、へたくそな実装になってしまった

以前はメモの項目が10件以上は取得できていなかったので、全件取得するようにした。全件取得するので大量にメモを登録するとサーバーから読み込むのに時間がかかってしまうし、メモリを消費すると思う。(パソコンのwebブラウザでも大量のメモを登録すると動作が重くなった)メモの長さによるけど、せいぜい10件くらいにしておくのが良い
メモはノートブックを選択した時点でノートブックに含まれるメモを読み込む。全件読み込むので、読む必要の無いメモまで読み込むとパケット代の無駄になる。だから一度に読める程度の件数だけでノートブックを作ると良い、つまり10件程度ってことです

CABファイル


プログラムはGoogleのライブラリを使用しているので、たいしたことはしていない割には汚なくなってしまったけどソースも公開しておきます

2007年8月22日水曜日

Bluetoothヘッドホン

何日か前の記事だけど、
塩田紳二のPDAレポートBluetoothのオーディオスタックを追求する
って記事が面白かった。技術的な内容まで突っ込んで取材されていてよかった

BluetoothヘッドホンがPC側のbluetoothスタックとの組み合わせで音が途切れたり再生速度が変わったりするらしい。スタパ斎藤の昔の記事 拙者が体験したBluetoothヘッドホンいろいろ
でも音が途切れると書いていたのでA2DPもダメだなぁと思っていたら、どうやらソフトウェアの実装に問題があるようだ
 SOUNDaboutに多少の工夫があるにしても、他のプロトコルスタックでは仕様書に忠実に実装されていないと言うことになる。とりあえずコネクションが出来て音が出ますよってレベルと、高品質な音声伝送を目指しているのかは商品を買ってみないと分からないって事なのかも
それにしても、"「ソース側で実装を間違っている可能性もある」らしい"ってのには参った
確かに複雑な仕様を間違えずに実装するのは大変なことなのかもしれない...
昔仕事でirdaのファームを前任者から引き継いだときに適当な実装に驚いたけど(それでも一応通信できてた)、それより遥かに複雑なんだろうなぁ、ソフトやさんも大変だ...

大変と言えばuGnoteのリスト表示の動作がちょっと怪しげだ。アイコン付のリストを表示したくてListViewを使ったけどソフトウェアからフォーカスを制御する部分がうまく動いてない

2007年8月21日火曜日

uGNote

β版を公開して一週間たったけど何にも反応無くてちょっと寂しい
一応アイコンとか作ったのでVer1.00として公開する

cabファイル

(前バージョンをアンインストールする場合は設定ファイルが削除されるのでUserList.xmlファイルをバックアップしておいた方がよい)


もういちど説明すると
Googleの公開ノートブックをアドエスで閲覧するアプリ
使用するには公開ノートブックのIDが必要。IDについてはここを参照

web上のちょっとした記事をパソコンでメモしておいて、後で読むときに使用する。
公開ノートしか閲覧できないので個人情報をメモすることは出来ないので注意

googleノートブックはユーザー毎に複数のノートを持ち、ノートごとに複数のメモを作成出来る。分類ごとにノートを作成したり公開したりできる

uGnoteでは複数のユーザーを登録できる。従ってメモは4階層の画面で管理されることになる
  1. ユーザーのリスト
  2. ノートブックのリスト
  3. メモのリスト
  4. メモの閲覧

操作方法
リストの選択中
  • カーソルキー上下ボタン リストの選択
  • カーソルキー左右ボタン 階層の移動
  • 決定ボタン(Enter) 下の階層へ進む

メモを表示中
  • カーソルキー上下ボタン スクロール
  • カーソルキー左右ボタン メモの移動
  • 決定ボタン メモのリスト画面へ戻る


デフォルトでuma's NoteBookを登録してあるので、こちらを閲覧すると大体の使い方が分かると思う

以下、起動直後の画面
ユーザーリスト

Default User's NoteBookを選択して決定ボタンでインターネット上のノートを読み込んで、ノートリストが表示される。読込に少し時間がかかる。まれに読込に失敗する事があるが、再読込をすると表示されるはず

ノートブックリスト

メモリスト

メモの表示

新しいユーザーを追加する場合はユーザーリストのNew User を選択して右ソフトキーでユーザーID編集画面が出るのでユーザーIDを入力する
pasteボタンでクリップボードからの貼り付けが出来る

2007年8月17日金曜日

キャンプに行ってきた

11日から九十九里浜にキャンプに行ってきた。11日の土曜日分しかキャンプ場を予約していなかったので土曜日に一泊後、日曜日にはテントを畳んで別のキャンプ場に移動して、空きのあるキャンプ場を探して一泊したあと、茨城の実家に行って2泊。
その間毎日、海かプールに行ったので日焼けして大変

九十九里浜は波が強くてサーファーが結構いた。夕方になると堤防でオネーチャンが並んでもぞもぞ着替えてました。インストラクターのオジサン一人にオネーが数人って感じで、こんな仕事もeなぁなんて、おもったりして(無理だけど)

九十九里浜は子供達には波が強すぎたみたいだった。移動中に海岸沿いに大きなプールがあって、そこが大混雑していた。”海よりプール”とか書いた看板があったりして、地元の人たちには海よりプールなんだねぇ

2007年8月10日金曜日

GoogleNoteBookを使う

普段パソコンでwebページを見ているときに、気になった記事とか、後で読むつもりの記事をGoogleNoteBookにメモしています。NoteBookにメモした内容はWebブラウザがあれば会社でも、家のパソコンでも、アドエスからでも、どこからでも読めるので便利です
専用のプラグインをブラウザに組み込んでおくとメモの作成が非常に簡単に行えます

このメモを通勤途中の電車の中などで読むために、アドエスからGoogleNoteBookを読むだけのアプリを作ってみました。

盆休みに入ると家族サービスで休み明け間でプログラムする暇がなくなりそうなので、とりあえずβ版ですが公開してみます。

読めるのは公開指定したノートブックだけなので、個人的なメモでは無く、パブリックなwebページの記事をメモする為に使います。公開ノートは他人のものが閲覧できるので、やや一方的な情報交換や、情報の共有に使えるかもしれません。

webブラウザで同じことが出来るので、有用なアプリかどうかは分かりませんが、コンセプトを試すようなつもりで作っています
  • googleノートブックの公開ノートを閲覧する
  • 他人のノートブックを登録できる
  • ローカルファイルにログを残さない
  • まだアイコン作ったりとか出来てません
  • 一度読み込んだメモはアプリを終了するまでメモリに残るので注意
  • googleのライブラリを使う
  • リスト表示にhtmlのごみが表示される
  • .NETコンパクトフレームワーク2.0が必要(アドエスなら入ってる)
  • 実はRSS/ATOMリーダーでも同じことが出来る

cabファイル


使用するにはgoogleノートブックのユーザーIDが必要です
ただし、このユーザーIDはgoogleのログインIDとは別物でやたらと長い数字の羅列です。
ユーザーIDをどこで知るのかイマイチよく分かってませんが、以下のようにwebブラウザで共有ノートページを開いたときのurl中の赤字部分がユーザーIDに相当するようです


http://www.google.com/notebook/public/USERID/XXXXXXX?hl=ja


例えばfireFoxの拡張機能にノートブックを追加しているとブラウザの画面右下よりノートブックに簡単にアクセスすることが出来る。このとき共有ノートブックの青丸部分をクリックするとノートブックをブラウザで開くことが出来る


ノートブックページの青丸部分(表示リンク)をクリックするとパブリックなノートページが開く



このページはノートブックの所有者以外でも自由に閲覧が出来るページとなります
このページのURL中の青丸部分がユーザーIDとなります





ちょっと時間が無いのでここまでとします
要望があれば、そのうちアプリの使用方法を説明をしていきたいとおもいます

2007年8月7日火曜日

アドエスのスタイラス

アドエスになって一番困ったことは、スタイラスの置き場所でした。本体に収納できないので、ストラップに引っ掛けるぐらいしか出来なくて非常に不便です
そこで、伸縮式の液晶クリーナストラップのクリーナ部分を取り外して変わりにスタイラスを引っ付けました。



ストラップはusenにもらったやつで丁度よい長さです。クリーナーはブッタ切ってやりました。スタイラスの輪っか部分の切れ目はホットボンドで塞いで落っこちないようにしました。

クリーナーストラップとはこんなのです。わざわざ買うほどのものでは無いけど売ってるんですね~


2007年8月3日金曜日

カブトムシが家に飛んできた

昨日の朝、カブトムシが家に飛んできたらしい。しばらく観察して逃がしてやりました。去年の夏に40匹ぐらい蛹から羽化させたので、もうカブトムシは要らないって感じです。去年も全部逃がしてやったので、もしかしてその子供が帰ってきたのかも



ところで、zero3メールで新着メールの通知が来るけど、受信箱には何も入っていない事があって。届いたはずのメールは行方不明状態で3日後ぐらいに出てきたりすることがある。
色々ソフトを入れ替えたりして、いじくり過ぎたのかも?
一回きれいにしてから環境を作り直したほうがいいかなと思っているけど、まだタスク管理とランチャーアプリが丁度よいのが見つからない

[es]のときはGsPocketMagicを使っていたけど、アドエスにしたら安定しなくなった。SmallMenuも入れてみたけどいまひとつしっくりこないplusにすると有料になるし...
YtaskMgrも[es]では画面回転ボタンに割り当てて使いやすかったけど、アドエスでは画面回転ボタンが押しにくくなって使いにくくなった(間違って押す事がなくなったけど)

'},ClipboardSwf:null,Version:'1.5.1'}};dp.SyntaxHighlighter=dp.sh;dp.sh.Toolbar.Commands={ExpandSource:{label:'+ expand source',check:function(highlighter){return highlighter.collapse;},func:function(sender,highlighter) {sender.parentNode.removeChild(sender);highlighter.div.className=highlighter.div.className.replace('collapsed','');}},ViewSource:{label:'view plain',func:function(sender,highlighter) {var code=dp.sh.Utils.FixForBlogger(highlighter.originalCode).replace(/'+code+'');wnd.document.close();}},CopyToClipboard:{label:'copy to clipboard',check:function(){return window.clipboardData!=null||dp.sh.ClipboardSwf!=null;},func:function(sender,highlighter) {var code=dp.sh.Utils.FixForBlogger(highlighter.originalCode).replace(/</g,'<').replace(/>/g,'>').replace(/&/g,'&');if(window.clipboardData) {window.clipboardData.setData('text',code);} else if(dp.sh.ClipboardSwf!=null) {var flashcopier=highlighter.flashCopier;if(flashcopier==null) {flashcopier=document.createElement('div');highlighter.flashCopier=flashcopier;highlighter.div.appendChild(flashcopier);} flashcopier.innerHTML='';} alert('The code is in your clipboard now');}},PrintSource:{label:'print',func:function(sender,highlighter) {var iframe=document.createElement('IFRAME');var doc=null;iframe.style.cssText='position:absolute;width:0px;height:0px;left:-500px;top:-500px;';document.body.appendChild(iframe);doc=iframe.contentWindow.document;dp.sh.Utils.CopyStyles(doc,window.document);doc.write('

'+highlighter.div.innerHTML+'

');doc.close();iframe.contentWindow.focus();iframe.contentWindow.print();alert('Printing...');document.body.removeChild(iframe);}},About:{label:'?',func:function(highlighter) {var wnd=window.open('','_blank','dialog,width=300,height=150,scrollbars=0');var doc=wnd.document;dp.sh.Utils.CopyStyles(doc,window.document);doc.write(dp.sh.Strings.AboutDialog.replace('{V}',dp.sh.Version));doc.close();wnd.focus();}}};dp.sh.Toolbar.Create=function(highlighter) {var div=document.createElement('DIV');div.className='tools';for(var name in dp.sh.Toolbar.Commands) {var cmd=dp.sh.Toolbar.Commands[name];if(cmd.check!=null&&!cmd.check(highlighter)) continue;div.innerHTML+=''+cmd.label+'';} return div;} dp.sh.Toolbar.Command=function(name,sender) {var n=sender;while(n!=null&&n.className.indexOf('dp-highlighter')==-1) n=n.parentNode;if(n!=null) dp.sh.Toolbar.Commands[name].func(sender,n.highlighter);} dp.sh.Utils.CopyStyles=function(destDoc,sourceDoc) {var links=sourceDoc.getElementsByTagName('link');for(var i=0;i');} dp.sh.Utils.FixForBlogger=function(str) {return(dp.sh.isBloggerMode==true)?str.replace(/
|<br\s*\/?>/gi,'\n'):str;} dp.sh.RegexLib={MultiLineCComments:new RegExp('/\\*[\\s\\S]*?\\*/','gm'),SingleLineCComments:new RegExp('//.*$','gm'),SingleLinePerlComments:new RegExp('#.*$','gm'),DoubleQuotedString:new RegExp('"(?:\\.|(\\\\\\")|[^\\""\\n])*"','g'),SingleQuotedString:new RegExp("'(?:\\.|(\\\\\\')|[^\\''\\n])*'",'g')};dp.sh.Match=function(value,index,css) {this.value=value;this.index=index;this.length=value.length;this.css=css;} dp.sh.Highlighter=function() {this.noGutter=false;this.addControls=true;this.collapse=false;this.tabsToSpaces=true;this.wrapColumn=80;this.showColumns=true;} dp.sh.Highlighter.SortCallback=function(m1,m2) {if(m1.indexm2.index) return 1;else {if(m1.lengthm2.length) return 1;} return 0;} dp.sh.Highlighter.prototype.CreateElement=function(name) {var result=document.createElement(name);result.highlighter=this;return result;} dp.sh.Highlighter.prototype.GetMatches=function(regex,css) {var index=0;var match=null;while((match=regex.exec(this.code))!=null) this.matches[this.matches.length]=new dp.sh.Match(match[0],match.index,css);} dp.sh.Highlighter.prototype.AddBit=function(str,css) {if(str==null||str.length==0) return;var span=this.CreateElement('SPAN');str=str.replace(/ /g,' ');str=str.replace(/');if(css!=null) {if((/br/gi).test(str)) {var lines=str.split(' 
');for(var i=0;ic.index)&&(match.index/gi,'\n');var lines=html.split('\n');if(this.addControls==true) this.bar.appendChild(dp.sh.Toolbar.Create(this));if(this.showColumns) {var div=this.CreateElement('div');var columns=this.CreateElement('div');var showEvery=10;var i=1;while(i<=150) {if(i%showEvery==0) {div.innerHTML+=i;i+=(i+'').length;} else {div.innerHTML+='·';i++;}} columns.className='columns';columns.appendChild(div);this.bar.appendChild(columns);} for(var i=0,lineIndex=this.firstLine;i0;i++) {if(Trim(lines[i]).length==0) continue;var matches=regex.exec(lines[i]);if(matches!=null&&matches.length>0) min=Math.min(matches[0].length,min);} if(min>0) for(var i=0;i

投票