每次看 sea 在貼文章都會貼小皮幾歲幾個月, 妹妹幾個月... 就想說直接寫個 user control 就搞定了, 沒想到真的寫下去還有點小麻煩... 哈哈...
曆法的規則還真不少, 難怪每個教寫程式的書都會來一段萬年曆的 sample code.. 每個月天數都不一樣, 還有潤年不潤年的, 四年一潤, 百年不潤, 四百年又潤...
這堆原則弄下來, 單純的幾歲幾個月反而不好算了, 算從出生到現在共幾天, 去除 365 當歲數的誤差還好, 餘數再除 30 當月份的誤差就不小了, 最後的餘數再當天數就完全不對了...
弄了一下, 果然寫元件的爽度就是不一樣... 這個 control 寫好後的用法是這樣:
<CH:Age runat="server" birthday="2000/05/20" pattern="阿扁當總統已經 {0} 年 {1} 個月了" />
會顯示: 阿扁當總統已經 6 年 7 個月了
細節就不多說了, 以後進到 皮哥&皮妹的小天地 的左上角, 就看的到年紀, 純脆自己爽一下, 我們家的 blog 又跟別人的有一點點地方不一樣了 :D
好久沒敗手機了... 之前就一直在物色新手機, 因為快被現在這支氣炸了... 現在這支 SmartPhone (Mio 8390) 其實功能沒什麼好挑的, 就敗在當支手機實在太不稱職了...
其它都很好, smartphone 搭 outlook 的好處太多了, 所以想找隻能夠替代的 smartphone .. 看了半天終於有兩支入選, 分別是 Dopod C720w 跟 595 ...
借用一下 Dopod 的圖...
C720W:
595:
網頁的官方訂價都一樣, 對我而言, 兩台的優點各為:
看了半天, 決定放棄用不大到的 3G, 盡量用內建的軟體就不會有解析度跟軟體不相容的問題了... 不過目前的門號有綁約, 要等到 2007 / 05 才解套... 再龜幾個月吧 (H), 搞不好那時又變卦了..
為了讓 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
Web Application 越做越大, 就會多了一堆不是網頁型態就能解決的功能需求... 舉例來說, 一般網頁就是你點了某個功能, server就會想盡辦法把結果輸出成網頁給你看. 但是這幾種型態的功能就非常不適合用這種模式來開發...
web application越作越完整的時後, 難免會碰到這種需求. 這些需求其實是有很多方式解決的, 例如用 message queue, 用 reporting service, 另外寫 windows service, 或是另外寫 window form / console application 搭配排程使用等等. 這些作法都會造成開發及安裝的不便... 隨便舉就是好幾個缺點:
看來看去, 如果可以在 asp.net web app 裡把這些問題搞定, 就簡單多了. 找到的 solution 就是用些技巧, 偷偷建立一個 thread 在 web server 裡躲著, 利用這個 thread 來執行這些動作, 讓它用起來好像是 windows service 一樣. 挖了 community server 的 source code 來研究, 發現它的作法是這樣, 在 application_start 時把 background worker thread 建起來, 之後這個 thread 就進入無窮迴圈, 直到 application shutdown ..
自己試了一下, 優喜參半... 解決了一些問題, 不過也有些新的問題... 整理如下:
看起來還是有不少的問題待解決, 不過至少對於簡單的 scheduler task 有辦法處理了. 只要你對基本的 thread 控制有概念的話, 寫起來應該不是什麼大問題. 簡單寫了個 sample code, 沒做什麼事, 就是 web application 啟動之後, 會每隔十秒把現在的時間寫在 log file ...
sample source code download: [HERE]
嗯, 我沒 Canon DSLR 的人, 跟人家在湊什麼熱鬧... 前陣子聽說小熊子買了 5D, 真是夢幻機種啊... 被問到支不支援 .CR2 .. 阿災, 我也沒 sample file 可以試...
後來公司大老闆剛好有帶他的相機 20D, 拍了幾張當 sample, 就回來改 code 了... 結果還挺樂觀的, Microsoft 包的那套 wrapper 通通都吃, 而且 library 的用法也都一樣, 唯獨 .CR2 的檔案不會附帶一個 .thm 的縮圖檔案, 因此 RAW file 轉存的 .JPG 就沒有包含完整的 exif 了.
不過高級的相機還存什麼縮圖? 當然不會這麼小家子氣... 哈哈, 需要的話, Canon DSLR 就直接再幫你存一張原圖大小的 .JPG 檔了. 這麼一來, 再自己做一次 .CR2 -> .JPG 好像也沒意義了, 因此這個工就省下來, 不理它...
這次修改沒動到多少地方, 簡單列一下 update:
最後感謝小熊子買了新相機讓我更崇拜了一下, 哈哈... 公司老大提供 sample 檔也是要感謝一下啦.. 更新的檔案下載: [HERE]
小抱怨一下, 不知道是我的 G2 搞怪還是怎樣, 想不通到底是啥原因... 我的 G2 拍 RAW file 時, 如果接了外閃, 同時拍照時外閃又剛好來不及回電沒有打出來.. 那麼拍出來曝光不足的 RAW file, 在相機裡 preview 就正常, 傳到電腦用 Microsoft Raw Image Viewer 就解不出來, 當然用它的 library 也不行, 會有 exception ... 是怎樣? :@ 嫌我相機 & 閃光燈太爛嘛...