1. 新手機真是讚 (y)

    哇哈哈, 用了半個多月, 覺的這支新手機 (dopod c720w) 真是不錯啊... (Y)

    這支手機果然沒有辜負我對它的期望, $$果然沒有白花, 喜歡用 smartphone 的人可以考慮一下... 首先對於一支手機, 它是還蠻稱職的, 雖然這些要求可能幾百塊的手機就擺的平, 不過被舊手機折磨了兩年多, 我一定要講一下...

    • 待機時間還不差, 官方說法待機 250hr, 平常一天講個三四通, 早上當 mp3 鬧鐘, 可以連續用個四五天.. 比之前那支待機 1 天, 電力剩不到一半還會斷訊好多了
    • 終於不會當機了... :'(
    • 很薄, 掛在腰帶上很舒服, 不會卡卡的

    如果只有上面這些優點的話會被人當笑話看, 咳咳...

    • 橫的 LCD ( 320x240 ) 看起來果然爽多了, LCD 畫面真棒
    • 跟 outlook 整合的很完美, 藍芽一按下去資料就通通過來了, 通訊錄的大頭照貼在 outlook 裡就自動進來...
    • 鬧鐘 + 自動鍵盤鎖 + 全螢幕的類比時鐘等小軟體, 灌一灌就很順手
    • 不小心買了 1GB microSD, NTD 600 含運費 + 發票 + USB 讀卡機, 灌不滿 :~~
    • 可以跑 PaPaGo, 以後出門不用多帶台 PDA ..
    • 終於可以用 bluetooth headset ... :D
    • 標準 mini USB 充電, 到處都可以充...
    • 用了之後證明, 有 qwerty 鍵盤, 比拿隻筆在上面戳戳戳方便太多了 (H)
    • 有 wifi, 在公司可以直接上網, skype / communicator 可以直接用
    • 搭公司的 exchange server 可以有 push mail
    • 語音命令很好用, 直接唸名字就可以打電話...
    • RSS reader 放上面很方便, 平常同步抓一下, 出門沒事可以當報紙看
    • 可以看 word / excel / power point / pdf, 檔案帶著實用多了
    • 通話記錄可以傳回 outlook journal, 有來電號碼, 通話時間等...
    • 電腦放房間, 我躲在床上還收的到藍芽的訊號, 剛好省了 wifi ...
    • 可以自己寫 .net cf 的程式丟上去跑...

    爽完了, 講點不爽的...

    • dopod 的客服實在是很鳥, 手機買來有灌一些工具, 手冊說 hard reset 後這些軟體會清掉, 要上網 download 軟體回來補... 不過網站跟本沒這堆檔案, 跟客服盧了兩個禮拜沒結果 :@
    • 為了搭手機去買 bluetooth headset, 沒想到連這東西都有冒牌的.. -_-, 不過很便宜就是...
    • notebook 沒有內建藍芽, 插一根藍芽棒好麻煩.. 該去敗 thinkpad bmdc 300 或是 billionton 的 pcmcia bluetooth adapter 了..
    • 沒座充... mini USB 有個蓋子, 要拔來拔去的.. 為什麼不能無線充電啊!!!
    • 好貴...

    哈哈, 還沒退伍時買了第一支手機 (Panasonic GD70), 之後就沒再買過了, 中間兩支手機都是不用錢的 (H), 這支是第二支... 不錯不錯, 果然手機還是要自己買才合用啊... 這篇其實沒啥內容, 只不過是勸敗文而以, 哈哈 :D

    2007/02/02 敗家 有的沒的

  2. 皮哥皮妹的年齡 user control ...

    每次看 sea 在貼文章都會貼小皮幾歲幾個月, 妹妹幾個月... 就想說直接寫個 user control 就搞定了, 沒想到真的寫下去還有點小麻煩... 哈哈...

    曆法的規則還真不少, 難怪每個教寫程式的書都會來一段萬年曆的 sample code.. 每個月天數都不一樣, 還有潤年不潤年的, 四年一潤, 百年不潤, 四百年又潤...

    這堆原則弄下來, 單純的幾歲幾個月反而不好算了, 算從出生到現在共幾天, 去除 365 當歲數的誤差還好, 餘數再除 30 當月份的誤差就不小了, 最後的餘數再當天數就完全不對了...

    弄了一下, 果然寫元件的爽度就是不一樣... 這個 control 寫好後的用法是這樣:

    <CH:Age runat="server" birthday="2000/05/20" pattern="阿扁當總統已經 {0} 年 {1} 個月了" />

    會顯示: 阿扁當總統已經 6 年 7 個月了

    細節就不多說了, 以後進到 皮哥&皮妹的小天地 的左上角, 就看的到年紀, 純脆自己爽一下, 我們家的 blog 又跟別人的有一點點地方不一樣了 :D

    2007/01/18 .NET ASP.NET Community Server 家人 技術隨筆 有的沒的

  3. 敗家新目標... Dopod C720w

    好久沒敗手機了... 之前就一直在物色新手機, 因為快被現在這支氣炸了... 現在這支 SmartPhone (Mio 8390) 其實功能沒什麼好挑的, 就敗在當支手機實在太不稱職了...

    1. 待機太短, 新的時後只能待機 2.x 天, 只要某天話多一點就掛了
    2. 電力剩一格以下, 通訊就很容易中斷... 如果通話中從兩格掉到一格, 一定段訊..

    其它都很好, smartphone 搭 outlook 的好處太多了, 所以想找隻能夠替代的 smartphone .. 看了半天終於有兩支入選, 分別是 Dopod C720w595 ...

    借用一下 Dopod 的圖...

    C720W:

    595:

    網頁的官方訂價都一樣, 對我而言, 兩台的優點各為:

    1. C720W 有鍵盤 [*][*][*]
    2. C720W 的螢幕是橫的 (360x240) [*][*][*][*][*]
    3. C720W 有  wifi [*][*][*]
    4. 595 有 3G [*][*][*][*]
    5. 595 的螢幕規格較普遍 (240x320), 軟體相容性較好 [*][*]

    看了半天, 決定放棄用不大到的 3G, 盡量用內建的軟體就不會有解析度跟軟體不相容的問題了... 不過目前的門號有綁約, 要等到 2007 / 05 才解套... 再龜幾個月吧 (H), 搞不好那時又變卦了..

    2007/01/01 有的沒的

  4. Background Thread in ASP.NET (II)

    為了讓 ASP.NET 的 worker thread 能多做點事, 還真是吃盡了苦頭... 最近試到差不多了, 晚上睡覺就放著讓 worker thread 跑看看...

    果然, 放著去看個電視回來就不跑了, log 檔剛剛好寫了 20 min 就停了... 看了一下, 原來是 COM+ App Pool 設定在搞鬼, 20 min 內 iis 沒有新的 request 過來, 就自動停掉把 resource 放出來, worker thread 就跟著 application unload 就不見去了

     

    改個設定再跑一次, 不錯, 跑了幾個小時, 不過這次因為別的問題, IIS w3wp.exe 又停了... 至少往前跨一大步... 接下來就是看怎樣做 exception handling 比較妥當的問題了 :D

    2006/12/30 系列文章: 多執行緒的處理技巧 .NET

  5. Background Thread in ASP.NET ...

    Web Application 越做越大, 就會多了一堆不是網頁型態就能解決的功能需求... 舉例來說, 一般網頁就是你點了某個功能, server就會想盡辦法把結果輸出成網頁給你看. 但是這幾種型態的功能就非常不適合用這種模式來開發...

    1. 會輸出大量資料的功能 (像報表之類的, 或是列出一堆資料, 又不想分頁)
    2. 會長時間執行的 (像資料轉檔, 一跑就要半小時)
    3. 需要定期執行, 一直躲在後面偷偷的執行的程式

    web application越作越完整的時後, 難免會碰到這種需求. 這些需求其實是有很多方式解決的, 例如用 message queue, 用 reporting service, 另外寫 windows service, 或是另外寫 window form / console application 搭配排程使用等等. 這些作法都會造成開發及安裝的不便... 隨便舉就是好幾個缺點:

    1. configuration 無法共用. 除非你另外花力氣去做 application configuration management, 否則, web 的 web.config 跟 app 的 app.exe.config 設定檔的方式就不一樣了
    2. library 也要另外設計. web 環境下用的 lib 可以直接以 source code 型態存在於 app_code 目錄下, 同時 web 用的 lib 也有 HttpContext 執行環境的支援, 這些東西都是離開 web 環境下就用不到的
    3. asp.net 強調的就是 xcopy 就能完成 deployment, 如果再用到這些額外的開發方式, 很好... 你的程式安裝仍然是個惡夢, 要裝 MSMQ, 要註冊成 windows service, 要排定排程... etc...

    看來看去, 如果可以在 asp.net web app 裡把這些問題搞定, 就簡單多了. 找到的 solution 就是用些技巧, 偷偷建立一個 thread 在 web server 裡躲著, 利用這個 thread 來執行這些動作, 讓它用起來好像是 windows service 一樣. 挖了 community server 的 source code 來研究, 發現它的作法是這樣, 在 application_start 時把 background worker thread 建起來, 之後這個 thread 就進入無窮迴圈, 直到 application shutdown ..

    自己試了一下, 優喜參半... 解決了一些問題, 不過也有些新的問題... 整理如下:

    1. 整個機制一定要 web app 有人連線進來後才會啟用. 假如 server power on 後一段時間都沒有人開網頁, 那麼所有的動作在這段時間內都不會執行. 而 windows service 就不會有這問題.
    2. 類似 (1) 的狀況, 如果 IIS 因為各種原因判定要 unload application, 則結果一樣背景作業就會被中斷. worker thread 的生命周期控制沒辦法像 windows service 那樣精確.
    3. 效能影響, asp.net 會嚴格監控所用的 thread 數量, 拿一條 thread 做別的事對效能影響不小. 除非你特別去調整 thread 數量上限, 否則至少就少了一條 thread 來處理 http request, 一般預設記得是 20 or 25
    4. 因為 thread 執行的環境, 也不是搭配某個 http request, 因此一樣拿不到大部份的 asp.net 特有物件, 像 request / response / session 等... 不過 configuration 機制倒是還正常, 比另外準備一套 library 好一些, 用到的 code 也可以丟 app_code 下就好..

    看起來還是有不少的問題待解決, 不過至少對於簡單的 scheduler task 有辦法處理了. 只要你對基本的 thread 控制有概念的話, 寫起來應該不是什麼大問題. 簡單寫了個 sample code, 沒做什麼事, 就是 web application 啟動之後, 會每隔十秒把現在的時間寫在 log file ...

    sample source code download: [HERE]

    2006/12/25 系列文章: 多執行緒的處理技巧 .NET