2009/08/27

Google docs makes Firefox javascript engine busy.

After opened a document in Google docs, an alert window popup as the screenshot showed.

Firefox_busy_google_docs

Firefox version is 3.7a1pre.

2009/07/21

MSDN 雜誌線上文章中英對照功能

許久沒有看 MSDN 雜誌的線上文章了,赫然發現現在不但有中英對照本版,還可以逐句對映,並且可以編輯中譯內容。由於中文內容一向是繼器翻譯,所以文句上面總是不通順,微軟這招讓社群成員可以編輯中譯本的功能,也頗不錯,集合大家的力量讓中文化資源越來越豐富。雖然是機器翻譯,有些時候還是可以省去翻字典的時間。

msdn_mag

2009/07/10

Microsoft Expression Blend 2 SP1 安裝問題

在微軟 Expression 網站下載英文版的 Blend 2 試用版安裝完成後,接著下載 Blend 2 SP1,安裝完成後,執行 Blend 2 卻跳出一個警示訊息 "The prereleased version of this product has expired. You must update to a newer release.",關掉訊息後,程式也隨之結束。在 google 上爬文後於這個討論串看到有人(Cary321)發現解決方式。

在下載 Blend 2 SP1 的網頁,按下 download 後,會跳到一頁 “Thank You for Downloading” 的說明頁面。在這個說明頁面有另外一個連結,那種告訴你如果瀏覽器沒有自動下載檔案,可以點這裡下載的說明 : "If your download does not start after 30 seconds, click this link: Start download. " 請點一下 "Start download”,下載這個 Blend 2 SP1 安裝檔。

自動下載的檔案和手動下載的檔案名稱雖然一樣,但是檔案大小不同,請安裝手動下載的那個。現在,你可以安心的使用 Blend 2 了。

2009/07/07

在微軟報表檢視器加入自訂程式碼 實例說明

加入程式碼的 MSDN 說明請參考: Adding Custom Code to a ReportViewer Report

在製作報表的時候,客戶有一個需求,假設資料的內容如下:

班號
(ClassNumber)
學生姓名
(StudentName)
001 王大明
001 陳小華
002 李大丙
002 吳小菁
003 張小英

希望輸出的報表的時候,重複的班號不要顯示,如下:

班號 學生姓名
001 王大明
  陳小華
002 李大丙
  吳小菁
003 張小英

在一般製作報表的時候,班號的這個欄位會填上 Fileds!ClassNumber.Value 的內容,但要怎麼才可以濾掉重複出現的班號呢? 使用自訂程式碼。

展開 Visual Stuio 的命令選單 Rport –> Report Properties,選擇 Code 頁籤,寫一段判斷式的函式。如下:

Dim tempClassNumber as String = ""
Public Function ShowClassNumber(ByVal classNumber as String) as String
    If (classNumber = tempClassNumber)
        Return ""
    End If
    tempClassNumber = classNumber
    Return classNumber
End Function

然後在設計報表的地方使用如下的 expression:

=Code.ShowClassNumber(Fileds!ClassNumber.Value)

客戶期望的報表內容就成功了。

自訂程式碼是動態地將程式碼編譯到報表內建的 Code 類別,以記事本打開報表設計 rdlc 檔案,可以在 <code> 區塊看到上面寫的程式碼。在報表的 expression 編輯器,使用 Code 類別來呼叫。有幾點要注意一下:

1. 必須先編譯一次專案才可以使用自訂的程式碼。
2. 在 expression 編輯器不會自動列舉自訂程式碼裡面的函式名稱。
3. 自訂程式碼必須以 Visual Basic 撰寫。

2009/06/17

GETDATE() in Oracle

MS SQL Server 取得伺服器時間很簡單地只要呼叫 GETDATE() 預設 function。那麼,Oracle 呢 ?
請執行這個語法

SELECT TO_CHAR(SYSDATE,'yyyy/MM/dd HH24:mi:ss') FROM dual;

執行結果為

2009/06/17 14:56:31

2008/08/07

什麼是正確的握刀與拔刀方式?

這句話是依達我流問良峰貞義的,當劍聖收依達我流做徒弟後,第一件事情就是叫他去向良峰貞義學習正確的握刀與拔刀方式。什麼是正確的握刀與拔刀方式? 在多次的體悟後,依達我流終於答出正確的答案。

正確的握刀與拔刀,就是沒有多餘的動作,只為目標而握刀,只為目標而拔刀。當手握刀之前就已經決定,這一刀要往哪邊拔出,往哪邊揮斬,在拔刀之前一瞬間制敵機先。

以上故事是霹靂神州第17集的劇情。是啊~ 這是布袋戲裡面的劇情。不過在這段短短的劇情中,體會出幾件人生通則:專心、決心。除此之外呢? 目標!

常常在開發軟體或製作專案時,會發現功能不斷擴增,需求不斷改變,計畫永遠不足。為什麼會這樣? 因為我們缺乏明確目標,不只是身處開發者的我們,客戶與其他的第三者亦同。因為沒有明確的目標,所以對正在開發階段的項目,一邊討論需求一邊修改,產生多餘的工作打亂了原訂的計畫,使得我們無法專心致志。

螺旋開發法與 MSF 都強調階段性,在每個 iteration 中大致包含需求、設計、開發、測試的流程。在一個 iteration 中如果發現新的需求,可以排入下一個 iteration,以免打亂目前的開發節奏。堅守開發的節奏與流暢度,才能讓軟體品質節節高昇。

2008/03/20

微軟的對手

沒有一家像微軟這樣,在 4C 產業占據如此巨大的位置。這家樹大招風的公司,自來也是對手林立,然而從每個主要時期的競爭對手來看,都不得不配服微軟的多型態發展,以及窺見整個資訊產業的變遷。

從早期的個人電腦時代,IBM PC 相容機種的興起,支持眾多新興 PC 公司與 IBM 抗衡的主力就是 MS DOS 作業系統。乃至 Windows95 與 OS/2 Warp 的對抗落幕後,PC desktop 作業系統就被微軟把持到現在。

在程式開發領域,微軟是首屈一指的軟體開發商,手上的 Visual Studio 開發工具也是赫赫有名。在 VB 年代,和微軟打平的 Borland Delphi,自從 .NET Framework 興起後,節節敗退。微軟的對手後來被成了 Sun,代表 Java 一方的 Sun 曾經是微軟為可惡的惡魔。今天 Sun 與微軟簽訂了不少共同合作的協議,已經化敵為友了。接替 Sun 的地位在 Java 界繼續扮演老大哥的是 IBM,它們又再度對壘了。

不過,現在真正才要開始激烈地競爭的終端應用是 RIA,這回微軟的對手是 Adobe,Adobe 擁有 PDF 和 Flash 這兩個悠久的應用技術,微軟則回敬 XPS 和 Silverlight,目前鹿死誰手尚不可預期。

其他關於娛樂產業、遊戲機的競爭,鍵盤滑鼠的領域。都是微軟分得到一杯羹的地方。現在還吃不大開的,就屬企業核心領域,企業核心需要大型的資料庫,高階的運算系統,這一直以來是 Unix 的天下,近年來雖然被 Linux 入侵了,始終是 Unix-like 家族掌控著。微軟不會放著不管的,推出了 Microsoft Dynamic 企業系統,後端資料庫從 SQL Server 2000 演進到未來的 SQL Server 2008  可以看到十足的成長。

從微軟的對手,可以發掘資訊產業的焦點變遷,整個趨勢的轉移。同時也意味著,微軟的持續變化。我只能說,它真得是隻八爪巨獸的怪公司。