窗外的濛濛細雨混合著漫室的茶香,眼前的好友們,
很高興能認識大家,更懷念每週打球的時光,和充滿笑聲的夜市巡旅,
即將踏上不同的夢想的你們,請帶著我最真摯的祝福。

Generate Lightbox syntaxs with Flickr API

使用 Lightbox 套件的 bloger 常會遇到的問題,大概就是每次都要很麻煩的去點 flickr 的 Medium 和 Large Size 的圖片連結。在小穎昨天晚上沒給我看他寫的服務之前,自己真的就是打開好幾個頁籤,然後一張一張的點開,實在有夠浪費時間。

這是從昨天晚上寫到下午的小雛形,大意來說就是透過比較友善的 UI 來產生寫網誌時候需要嵌入的 Lightbox Code。下圖是初版系統的介面,系統目前發佈在這裡

使用方式很簡單,就是像上面規劃的三步驟:

  1. 先輸入自己的 flickr account。
  2. 接著系統會先抓出最近上傳的 50 張照片出來,且會把該帳號所建立的 Sets 都列在下拉式選單中。這時候你可以直接透過點選照片的方式來標記哪些是等下要產生 code 的照片,若是照片太多不方便點選,也可以直接選取特定的 Set,讓數量變少方便選擇。
  3. 最後填下你要的 group name,然後按下 "Generate" 按鈕就會得到 Lightbox Code,是不是很方便呢,個人覺得和以前相比,貼圖上真是快多了!

這邊一定要感謝一下小穎提供的 idea 和系統,才讓我脫離 Lightbox 地獄哈哈

阿桐阿寶四神湯


正當我覺得齊齊人怎麼不發一語的狂嗑,心裡正納悶著有這麼好吃嗎?...

有! 真的是粉好吃,沒有一點肥肉的瘦肉,帶著甜味的糯米,還有不膩的醬汁,
天啊,真是太好吃了!!

附上寫的超讚的食記一篇: [記食] 30年老店 阿桐阿寶四神湯

訓誠♥婉均


學長,要幸福喔。

剛剛從 Scott RSS 中看到的文章 New ASP.NET Charting Control,其實 ZedGraph 也是挺好用的,但這新的 Control 除了原公司開發多年的經驗外,更整合到 VS 2008 IDE 中,加上 Dynamic Data Web Site 等 3.5(SP1) 才有的技術,感覺不想用都不行,MS 這次除了有誠意之外,真是佛心來著。

廢話不多說,馬上下載範例後編譯,如果你也出現下面的錯誤訊息:
無法載入檔案或組件 'System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 或其相依性的其中之一。 系統找不到指定的檔案。
這時候不要緊張,你可能看 Scott 的文章看太快了,文中的第一個連結就是要先安裝 Microsoft Chart Controls,安裝完之後便可以正確的編譯和瀏覽了。

這次也提供了整合 Chart Control 到 VS 2008 IDE 工具箱的安裝檔,安裝後就可以在工具箱中看到該控制項。

順帶一提的是這次還有詳盡的 Microsoft Chart Control Documentation 可以參考,寫法就不贅述了...慢慢長大的 .NET..

失去你的3月4日


(copyright: 誠品網路書店)
關了電視後,在客廳裡沈思著自己是否能踏入妳的文字中,而不沾染的全身而退..

打從一開始就被妳真實而毫無掩飾的真情文字所打動,被制約一樣的查詢著圖書館什麼時候才會採購,最後還是忍不住想拿在手上仔細咀嚼的心情....
兩個小時過去了,老實說就像你說的一樣,不是沒有人失去自己所摯愛的人,
但循著文字閱讀時,心頭卻是一陣又一陣的被搥擊的痛和難過,
彷彿自己也是澤銘和妳的好友一般的經歷著你們的故事...

理性的看著澤銘為原住民小朋友做的一切,就像你形容的,天使走過人間一般,
深深的認同著你,問著自己,是否也能成為別人的天使?
還是要這樣汲汲營營的過一生...我內心顫抖的大喊著!!

打從心底覺得你們是幸福的,彼此擁有了身體的溫暖和靈魂的慰藉,
雖然我不會基督式的禱告,但我還是蹩腳的為妳和藍屋頂—你們的夢想祝禱,
希望上帝能聽見我的祈求。

謝謝妳願意分享這份感動,讓自己除了感動的淚水之外,更獲得更深處的省思。
願妳一切都好。

想推薦給大家的好聲音 Vienna Teng(史逸欣)

無意間在閱讀如果你在天堂時,才知道原來有一位這麼好聲音的歌手,單純的鋼琴配合著嗓音,很柔和很舒服,相關的簡介在這裡,推薦給大家。

以下挑了各專輯中最喜歡的歌曲,請大家欣賞看看囉。

Waking Hour (2002) (November 5, 2002; Virt Records)
Lullaby for a Stormy Night (track)

Warm Strangers (February 24, 2004; Virt Records)
Harbor (track)

Dreaming Through the Noise (July 25, 2006; Zoë/Rounder)
City Hall (track)

Blue?


天空灰濛濛的...還好,即便是灰濛濛的心按下的快門,仍能保有洗盡塵埃的鮮綠。

芸芸


可愛的芸芸,剛滿兩個月就儼然已經有正妹的雛形了,水啦!


凝視。


我很可愛吧

中研院隨拍 Nov, 2008


水中映著的是地球科學所旁的建築物,每每看到總是不知道怎麼拍,原來在水中是這樣的美,早晨的天空藍的很透徹。
天空很有 Berkeley 的感覺,很純淨的藍。


喜歡這樹枝所構成的線條,和那透著光的翠綠。


這些小草和苔廯總讓我感受到很強的生命力。


地球科學所


Harvest Nation Flag From IP Address

一個留言版或是討論區常有的功能,能在發言者的旁邊顯示出發言時所留下的國家國旗;網路上也有一些公開的 API 可以呼叫,只要丟一個 IP Address 在 API 後面就可以反查到所在的國家代碼的圖示,例如:Neekey API Services,或是 hostip.info 也是相同的簡單方式就可以使用;另外一種方式就是把廠商放出來的資料庫整合到自己的系統中,這次實做的系統是用 MaxMind 所放出來的 GeoLite Country 資料庫,檔案格式是 Comma Separated Value (CSV),詳細的用法請參閱 GeoIP Country CSV Text Files

其實 CVS 的用法該網站已經寫得很清楚了,以下就是一些實做的步驟記錄。這天拿到的版本有包含 105,920 筆紀錄,格式如下:


StartIPAddress EndIPAddress  StartIPNumber EndIPNumber CountryCode CountryName
140.109.0.0   140.138.255.255 2355953664  2357919743  TW      Taiwan

例如一個 IP 位置為 140.109.18.38 經過計算(ipnum = 16777216*w + 65536*x + 256*y + z)之後可以得到 2355958310 這個值,所以丟到 SQL 上之後就可以得到國別代碼 TW,國家名稱為 Taiwan。這邊唯一要注意的是,存放 StartIPNumber 和 EndIPNumber 的資料格式不能是 Int,因為已經超過其值域範圍,這裡我是使用 bigint(8 bytes, -2^63 to 2^63-1 )。

所以剩下的事情就更簡單了,就是找國旗的圖囉,如 famfamfam.com: Flag Icons 或是 Free World Flags Download | IP2Location™ 都有,所以開發起來應該不難,參考看看囉。

入秋了


那天巧遇 Jaimie 的時候,我說著她總是能用獨特的眼光在平凡之處找出不平凡,至少我是這麼認為的..所以這天早晨去 7-11 的科學研究所旁的小徑上,特地帶著 GRD,也想捕捉點什麼..看著樹上的葉子掛著晶瑩的水珠,雖沒有陽光的陪襯,但還是好美。

圖片套用了 Lightroom Presets 故意營造出 300 壯士的畫面效果,還蠻喜歡的,感謝好友 tacojohn 的不吝分享,謝謝你們讓我看到更多美好的事物。

請到這邊下載:
Inside Lightroom » Colour Presets

如何找出給定日期的該週起始日期

網路上常有一些公開的行程表(schedule),一般會列出好幾筆最近的行程(可能橫跨過去現在未來的日期),如果要把這一週的行程做強調(highlight)的效果,我們勢必要知道一個日期(given date)在當週的頭(Week Begin Date)尾(Week End Date)日期。

上圖是 Roger Federer 的行程表,像是10月13號他在馬德里打球,我個人會比較傾向把這一行做強調,讓瀏覽者一眼就看的到他現在到底在哪打球,所以系統必須要能判斷現在的時間點是否要若在該行程那一週,若是有的話就顯示,沒有的話就找下一個賽事的行程。

拜了一下股溝大神之後,有神人在 2004 年就弄出來了,請參閱以下的連結:
Raj Chidipudi:Getting the Week Start Date and Week End Date in SQL
有一些很陌生的 SQL function,所以以下是自己加上的註解,若要改成 Stored Procedure 的話也是很簡單的,好用喔。


DECLARE @REPORT_DATE DATETIME, @WEEK_BEGINING VARCHAR(10)
SELECT @REPORT_DATE = '2008-10-13T00:00:00'
SELECT @WEEK_BEGINING = 'MONDAY'


這邊就是單純的宣告變數,@REPORT_DATE 就是我們所給予的日期(例如可以把費神的行程中任一天丟進去),而 @WEEK_BEGINING 則是我們告訴系統一星期開始的第一天是星期幾,你可以設定任一個星期,一般我是用星期天,那你只要把他改成 SUNDAY 就可以,純粹只是變數內容而已。


IF @WEEK_BEGINING = 'MONDAY' 
    SET DATEFIRST 1 
ELSE IF @WEEK_BEGINING = 'TUESDAY' 
    SET  DATEFIRST 2 
ELSE IF @WEEK_BEGINING = 'WEDNESDAY'
    SET  DATEFIRST 3 
ELSE IF @WEEK_BEGINING =  'THURSDAY'
    SET  DATEFIRST 4 
ELSE IF @WEEK_BEGINING =  'FRIDAY'
    SET  DATEFIRST 5 
ELSE IF @WEEK_BEGINING =  'SATURDAY'
    SET  DATEFIRST 6 
ELSE IF @WEEK_BEGINING =  'SUNDAY'
    SET  DATEFIRST 7 


接下來這個比較有趣,有一個 DATEFIRST,MSDN 中文版上的白話文是「將一週的第一天設為 1-7 其中一個數字」。所以如果你和我一樣設定成 SUNDAY 的話,這時候的 DATEFIRST 會是 7。


DECLARE @WEEK_START_DATE DATETIME, @WEEK_END_DATE DATETIME
--GET THE WEEK START DATE
SELECT  @WEEK_START_DATE = @REPORT_DATE - (DATEPART(DW,  @REPORT_DATE) - 1) 

--GET THE WEEK END DATE
SELECT  @WEEK_END_DATE = @REPORT_DATE + (7 - DATEPART(DW,  @REPORT_DATE))


上面的查詢句就是重點了,他的大意就是用使用者給定的日期去減掉 (運算式) 來對日期對往前或往後的動作。而 SELECT (DATEPART(DW, @REPORT_DATE) - 1) 這一句是指我給定的日期這一天是代表一個星期中的第幾天,由於是往前取日期,所以才預先 -1,所以反之如果要算該日期的當週最後一天的日期時,就是用 7 去減就可以得到值,再加上原本給定的日期,就會得到往後推遲幾天的日期了。DATEPART 中的 DW 是指 weekday,詳細說明請參閱這裡


PRINT 'Week Start: ' + CONVERT(VARCHAR, @WEEK_START_DATE)
PRINT 'Week End: ' + CONVERT(VARCHAR, @WEEK_END_DATE)


最後作者是列印出結果,當然你也可以把他改成 SELECT 這樣程式執行完 SP 後就可以得到這兩個起迄日期的值。

以上是自己的小小筆記,年紀大了需要寫下來才不會忘記,若是有相同情境的需求,這個 SP 應該可以適用喔 ^_^

沈葆楨廳 Shen Pao-Cheng Hall@Tapei City Hall


就是這半年心情的寫照,期望掙脫研究泥淖的那天。

CAPE NO.7

電影散場時,布丁小聲的問著我:為什麼大家都不說話? 怎麼這麼安靜? 也許那時候大家都有很多的感觸吧...至少我是這樣的,還好在電影開場前 30 分鐘拿著車鑰匙往電影院衝的臨時起意,讓我沒有錯過這部好的國片。

PS. 沒看過這部電影的朋友就別繼續讀下去了吧,是部值得推薦的好電影喔。

照例,看完之後又瘋狂的在網路上搜尋大家的觀後心得,超多格主寫的超棒的,寫這文章對我總是很難,因為腦裡千頭萬緒不知道怎麼像國小寫作文一樣工整的鋪陳,但這次的觀後感動還是讓我很想分享自己的觀點。

劇中角色個個鮮明,獨特的個性也發揮到極致,但最感動我的還是每位平凡小人物對於自我的堅持,像是主角阿嘉(范逸臣)對音樂的熱情和 15 年的努力,警察勞馬對妻子的愛情不渝,友子對工作的堅持等,一切都是這麼的平凡不奇,但卻又這麼的深刻,並引起自己內心的共鳴;跳脫戲裡人物看著導演不計成本和兩年的光陰就是為了呈現這樣的一部作品的堅持,真的讓我戲裡戲外都想為這群電影工作者鼓掌叫好。更回頭審視自己內心的夢想時,是否也一樣盡了最大的努力嗎? 是否還是努力的尋找藉口,讓時光隨意的流逝卻不願意面對...

沒有刻意的去注意劇中的主線鋪陳,只要放鬆的隨著口白進入故事,伴隨著人物的互動與音樂的搭配,相信應該能獲得相當多的感動,最後這篇心得仍是非常的不專業與凌亂,但我想我仍記得那些許過的承諾,並追求幸福的堅持。導演加油!! 期待您下一次的作品與感動。

印象最深的對白

  • 「留下來…或者我跟妳走!」
    很單純的也不理性的浪漫,所以布丁後來是和我走了哈哈
  • 「因為愛,才有思念。」
    很輕描淡寫,但卻能激起無數漣漪的對白...
  • 「難道妳不期待彩虹嗎?」

中研院隨手拍 SNAP@SINICA

relection

不知名的大樓,反射著對面的綜合體育館,中午跑步無聊的話,就會開始數牆上有多少塊磁磚...

ingenious

巧妙的錯位,檔鏡頭的方式也很異曲同工哈哈

searching meself...

尋找自我的小穎

不知名的小白花

很難掌握的白花,在灰暗的空氣中更顯他的姿態,讓人有充滿活力的感覺

reflection

just reflection...

water drop on FOCUS

看著小佛身上的雨滴,讓我想起高中時代熱門刊物 PLAYBOY 中的女郎總是要拍個一張全身噙著圓滾滾水珠的照片,所以也想把小佛拍的「濕濕的」...不過看起來是失敗了哈哈

正妹的世界是彩色的

正當黑白二人組往 7-11 方向覓食的時候,一位背影很水的正妹讓我們的世界亮了起來...果然正妹的世界是彩色的...murmur..

the sight of tacojohn's back

看著小穎的背影映襯著老街...如有善心人士要小額捐款的話再聯絡狗頭哈哈

ASP.NET Dynamic Data


這是第一次覺得寫 CRUD 這麼的簡便和控制的完整性。

常常網站系統可粗略的分為前後台,通常後台是案子中僅次於套版的煩人,因為總有寫不完的新增(Create) / 檢視(Read) / 更新(Update) 和刪除(Delete),倒不是因為商業邏輯的複雜,而是一些前端的檢查和參數值的保存和維護等都是很花時間的手工,自認沒有很資訊焦慮,前天不小心逛到 ASP.NET Dynamic Data 的相關文章時,一天玩下來比初遇 ASP.NET MVC 還更要振奮!

一整天下來瀏覽器開了幾十個頁籤,且對這技術還不算很透悉,所以這篇比較像是自己看的摘要,和一些遇到的小問題分享,希望有興趣的人不用在花同樣的時間在探索 ^_^

現在的時間點搜尋的話,可能會發現有不同版本的畫面和目錄結構,這是因為之前有一個 Preview 的版本,但現在如果有安裝 .NET framework 3.5 和 Visual Studio 2008 SP1 的話,你所新增的 Dynamic Date Web Site 專案的目錄結構會和較早的畫面有所不同喔。 但這一篇還是要推薦一下,史考特大大的好文: New ASP.NET Dynamic Data Support 這一篇對於整個的架構寫得很好閱讀,看完後你會對於整個套件能做到的事情有一個底,竟是這樣的簡單,但不像之前的一堆 Web Control 一樣,可能拉一拉完結束後卻不知道怎麼做變化,但透過 Linq to SQL class 的 O/RM (object relational mapper) 管理資料表間的關係。

接著可以看看最新的教學短片,這邊你會發現之前的 App_Shared 資料夾已經不見了,這些影片從最基本的工具使用到整合第三方元件的作法,還有對特定頁面的客製化都有詳細的解說,史考特大大很用心的力做! The Official Microsoft ASP.NET Site

murmur..說了這麼多廢話,到底這東西可以做什麼? 基本上我認為他拿來做後台的頁面管理系統是非常好的工具和架構。不管資料表之間是否有關連,透過 Linq to SQL 還是可以正確的做異動,不像以前還要手工敲一堆 SQL Statement,不過還是建議 SQL 是一定要會的,就是懂了後面的原理再來使用這工具的話,才不會受限於工具。

就像這張圖一樣,如果網站管理者要每一區的維護功能的話,我的作法是透過 MasterPage 來做版面的統一,並且對於日後的維護較方便,接著對於每一區適合用 List 方式還做管理的就藉由 Dynamic Data 來做控制。

舉例的新聞管理功能來說,畫面就像第一張圖片這樣,可以對每一筆資料作 Inline 的編輯和處理,比較特別要注意的地方是圖片上傳的地方。例如我的 Picture 欄位,型態為 image,在剛拉好整個架構的時候是不會顯示出來的,也沒有辦法上傳圖片。在 ASP.NET 的 UpdatePanel 中,Upload Control 是不被支援的,就算把 Upload 丟到 UpdatePanel 中,接收到的值還是 null;在 PageTemplates 中的每個版面都是共用的,所以對於 Upload 這個特例,我把他丟到 CustomPages/News/ListDetail.aspx 還是有符合 table name 的路徑。

接著把 Update Panel 拿掉。如果你有看 Scott 大的解說影片就會知道我改的這個客製化頁面是不會對所有頁面做套用的,相當的方便和實用。

再依照 Sample for Displaying Images Updated + Screencast 的作法,就可以顯示正常外,也能正確的上傳和寫入圖片了。

ASP.NET Dynamic Data - ASP.NET Forums 許多問題在這裡都可以找到熱心的網友提供解答。

雖然一開始我也是把 Dynamic Data Web Site 放到前台的系統裡,功能雖然正常運作沒有問題,但會有總雜亂的感覺,所以之後我是把他獨立成管理專案處理,有需要整合到之前網站的朋友,可以參考這一篇的作法: How to add Dynamic Data to an Existing Web Site

Dynamic Data 初體驗寫的很亂,不過當你認真試用一段時間,在往後的開發中會多一項工具,當然不是全部都用這把屠龍刀解決,只是當環境和需求是這工具適合的時候,相信產能和品質都會不錯。

給吳道源警員和家人的一封信


[引用]三貓娘的自言自語:

一位因公殉職的警員,新聞就這樣默默的被無聊的炒作新聞淹沒,只能成為一閃而逝的跑馬燈,連想替他哀悼的時間都不夠。
在充滿血腥暴力的新聞環境中,或許自己對於這類新聞的心已消磨殆盡...我試著告訴自己要保持平靜,但還是止不住胸口的激動與眼中的淚水,感動的是還是有人用行動來表達心中最大的支持,感念的是吳道源警員這樣的堅守崗位。

我並不認識您,雖然只能從新聞的隻字片語來揣摩對您的印象,但希望透過這封信來表達我對您的敬意,也期盼能把我滿滿的祝福傳達給您的家人。

這是朱大發起的串連運動,詳情請參閱相關的文章。

前進奧運—菲爾普滾


北京我來囉!! 正當菲爾普斯正在創造紀錄時,這位小菲爾普滾也在小床上練習划水哈哈,很可愛吧,這是好友的小寶貝,才兩個月就很活潑好動。


前進! 前進!


臉部表情超多超可愛的哈哈哈哈


偷喵爸爸中...


一整個就是斯文樣


玩累了..修眠中...一開始還以為旁邊的奶嘴也是小滾兒要咬的,經過證實那是奶嘴的盒子...嚇我一跳還以為現在的奶嘴都這麼大哈哈

小孩子真的粉可愛捏

恭喜 Rendy!!


雖不是很懂網球,但看著昨天的比賽,真的是很感動,就像自由時報形容的,Rendy 就像一隻奮力振翅高飛的孤鳥,當場邊的攝影機掃過觀眾席時,常常可以發現對手的教練團大軍坐鎮,但 Rendy 的背景畫面卻總是缺少那樣強有力的依靠...政府總在選手穿金鍍銀的時候才出來沾光...Rendy...很不容易的擊敗了世界排名第六的 Andy Murray,真的很替你開心,請繼續高飛創造歷史!!

這一盤打了好久,不過還是拿下了,讚!

不諱言的,昨天下午真的無法認真的上班,隔壁的實驗室大概也不知道我們在吼什麼,還好有 HinNet 的 hiChannel,第一次覺得中華電信很感心。

Andy..不要咬我 >_<

Andy Murray 打到有點心浮氣躁了...我想他是不是在想對面這麼厲害的傢伙我怎麼沒印象...完蛋了..

好球!!

我知道畫質不好,但還是要貼來記錄一下,每次 Rendy 好球的時候,我們實驗室也是變成這種姿勢哈哈

眼眶都快紅了...

這一盤殺的難分難解,每一球都是紮紮實實的打下來的,超感動的...連對岸同胞都開始幫 Rendy 加油...感動啊...這樣一個人到處征戰...Go Rendy!!


喔耶,贏了啦!!!


最後比賽的結果


Rendy 就這樣繼續簽下去吧,一場一場的拼!!

彥勳加油!! Go Rendy!!