Tuesday, January 27, 2009

榮休舊機數攝

上個月放在客廳的電腦,終於達到了一日一問題的地步,因此就走了去買部HP廠機作total replacement。

前幾天因為新年臨近,因此便將舊電腦有用的零件拆下來後將舊機棄置。在拆件時則拍下了數張榮休照。

這是一部在2003年3月購入的電腦,採用了...
ASUS P4PE Mainboard


Intel Pentium 4 2.4GHz 的 CPU




Asus V8170SE Geforce4 MX440 Display

年宵花市 - 雞蛋仔

冬眠了兩天,今日終於發牛年第一個Post。在此,先祝大家心想事成,身體健康,荷包常滿。

一月二十五日年三十晚,一如以往全家人晚飯後便到黃大仙摩士公園去行年宵花市,也許是我們早了去,今年不用排隊便入到場了。







因為無論乾貨或是濕貨檔都比往年少,因此花了不足二十分鐘便行完整個花市。

最後,手痕地買了今年花市大熱,雞蛋仔


真真假假雞蛋仔~~

Friday, January 23, 2009

800人大合唱天空之城的『君をのせて』

近日在YouTube發現了這段片



真的想知有沒有這concert 的 DVD 發售,因為真的十分震撼

Wednesday, January 21, 2009

乘船

在港島區返工,回在九龍東的家,有時我會選擇到碼頭乘船回家。
今晚坐船時,我那班船只有我和另外一個乘客,水手在途中突然同我講,『又坐最尾呀』,才發現在不知不覺中,每晚(如適用者)乘那條航線時,就一定會到船尾的最後一排坐位,面向著海。
總覺得比海風吹一會可以使自己從工作中refresh過來 (10度以下者則是急凍...),把自己從工作中抽出來,以免夜晚發夢都debugging X_X 


Tuesday, January 13, 2009

近日天寒地凍...

終於放棄了美心麵包加存放在公司的Nescafe Morning,改為在地鐵站附近的茶餐廳買杯少奶咖啡,順道加埋早餐外賣。

前幾天還是到了茶餐廳才落order,結果要等短則三分鐘,多則廿分鐘。結果,今日決定乘地鐵時上OpenRice找茶餐廳的電話,早兩個車站落Order,結果剛剛好。

明日繼續~直至天氣回暖~~~

食Excel

背景
近期寫了個module係去食user一個upload的Excel,再將D data process過後放入DB。
基於flexibility及re-usability,我就寫了個C# function將個Excel transform 落 System.Data.DataSet入面,個logic大概係咁:
  1. 用OleDB開個connection落個Excel到
  2. 用GetSchema("Tables")去食個Excel個list of available worksheet
  3. 憑Step 2 return回來的list去用 SELECT * FROM "worksheet name" 去將每張worksheet的全部data放入dataset入面
本來試就好地地,到個system上了production,user真係用的時候(又一個缺乏user合作UAT的結果),就發現無法process 個uploaded excel。

GetSchema("Tables")
請求user提供那個excel後,行debug mode看,才發現當我用GetSchema("Tables")去get個list of worksheet時,有很多很多不知名table走了出來,Google後發現該是一些user於excel行filter後留下來的working temp worksheet。不過,基於MSDN並無提及到對個Excel 用GetSchema("Tables") return 回來的data有任何詳細的解釋,結果唯有在各forum的提示下,用一個不大安全的方法去做個workaround。

Solution
首先,經GetSchema("Tables")而穫得的table 名是在worksheet 名加上"$",在各Forum提示下,這類working temp worksheet個table name的pattern是 worksheet name + "$" + others (like GUID),因此,我就假設,逢table name最尾一個"$" 後有其他字串的話,就會ignore有關table,因此就即是:
// Get list of available worksheets by using GetSchema
DataTable dtSchemaInfo = conn.GetSchema("Tables");

foreach (DataRow drSchemaInfo in dtSchemaInfo.Rows)
{
    if (drSchemaInfo["TABLE_NAME"] is string && Convert.ToString(drSchemaInfo["TABLE_NAME"]) != null && Convert.ToString(drSchemaInfo["TABLE_NAME"]) != string.Empty)
    {
        // Only handle table ended with $ or $' 
        string tableName = Convert.ToString(drSchemaInfo["TABLE_NAME"]);
        if(!(tableName.LastIndexOf("$'") > 0 && tableName.Substring(tableName.LastIndexOf("$'") + 2) == string.Empty) &&
               !(tableName.LastIndexOf("$") > 0 && tableName.Substring(tableName.LastIndexOf("$") + 1) == string.Empty))
            continue;

        // Select all data from the worksheet
        DbDataAdapter adapter = factory.CreateDataAdapter();
        adapter.SelectCommand = conn.CreateCommand();
        adapter.SelectCommand.CommandText = string.Format(TEMPLATE_SQL_GET_ALL_DATA, tableName);
        try
        {
            adapter.Fill(_dsExcel, tableName);
        }
        catch
        {
            ;
        }
        finally
        {
            adapter.Dispose();
        }
    }
}

最後,本人coding經驗尚未算深,如有錯漏,敬請指正~

Friday, January 2, 2009

Google Street View 準備來香港了...

繼早前有雜誌及網站(Engadget, 小心有少少不雅內容)見到『Google 街景車』在香港出現後,剛才午飯後回公司之際,在港島東的某個路後便親眼目睹『Google 街景車』的真身在我前面出現了兩次。

看來,我中了。

大家近日出街要小心點了。

Thursday, January 1, 2009

Items for Giveaway - Round 1

呢排執房,找到有一批唔想keep的東西,看看大家有無興趣

  1. 百老匯贈品 - Mickey Mouse 湯杯一隻


  2. 買機時的USB Web Cam 贈品一隻,不過好似不大support Messenger