[SQL Server] 鎖定使用的藝術 (Part 1) - 鎖定控制類型

只要是寫到資料庫存取程式,而且程式又是多人運作 (這裡的多人是指 100 個人以上同時存取) 的環境時,很難不碰到並行處理 (Concurrency Process) 的問題,並行處理在資料庫系統中是一門很重要的學問,因為它一定會出現在商業運轉的環境,而且問題不只是資料庫,像是執行緒的處理也會遇到這樣的問題,所以在並行環境下資料庫都會有一些行動或處理方式,鎖定 (Lock) 就是其中一種。

...繼續閱讀 »

[SQL Server] 游標使用的藝術

在資料庫的設計中,用戶端程式的存取通常會扮演重要的角色,因為用戶端的數量,使用的存取方式,SQL 指令,交易處理等都會影響到資料庫應用程式的效能。我們一般在想定資料庫發生效能問題時,最有可能的幾個因素是 CPU/Memory 以及 I/O 能力,對應到用戶端的程式處理的話,通常就是 SQL 指令,連線開關以及資料的存取方式,這三種通常會具有資料庫效能的決定力。

...繼續閱讀 »

[碎碎念] 資訊管理系之我見

長久以來,資訊管理 (Information Management) 這個科系,一直都被認為是一個在夾縫中生存的科系,左手要面對資訊工程 (Computer Science) 的競爭,右手又要對付企業管理 (Business Administration) 的進逼,總是會聽到一些學生,同行或老師提到這個問題,但事實上也沒錯,資訊管理在課程的安排上,大多數的學校都是一定比例的資訊科技和一定比例的管理學程,不論是普大或科大都一樣,頂多是重視哪一邊,特色導向或是內容的安排有所不同而已。

...繼續閱讀 »

[如何學習寫程式] #10 - 練習由線索去找解答或可行的作法,而不是老買伸手牌。

我們經常會對新手說:寫程式前一定要先思考,意即於此。設計決策只能透過不斷的思考訓練才能進步,坊間的書雖然也會講設計的最佳作法 (Best Practices),但不會告訴你這些作法是如何發展而來的細節資訊,這些細節只能透過學習的人一步一步的實作來感受,也因此這些設計決策是經驗累積而來的。

...繼續閱讀 »

[證照] 證照應該是經過一連串歷練過程後,必然得到的結果

證照制度本身其實沒有問題,各大廠針對自己的產品或技術進行規劃,為了要確認某個人是否有足夠的能力能讓原廠背書,故設計了不同的門檻給有興趣的人報考應試,達到門檻後授予由原廠背書的稱號,我們稱的 CCIE, MCITP, CTT+, PMP, … 這些都是,同時原廠還會公布這些門檻的資訊 (考試重點,對應產品或技術等),讓有興趣的人參考,以準備並加強自己的能力。其實每張證照真正的重點,應該是在加強自己的能力的過程,一旦自己的實力已經得到提升的話,拿證照其實真的只是一個必然得到的結果。

...繼續閱讀 »

[如何學習寫程式] #9 - 寫程式的人,你不能不會 "資料結構" Part 1

資料結構 (data structure) 是資料的組成方式,資料可以是字串或是二進位資料 (binary data),組成方式則要看不同資料整理的需求,可以是分布在記憶體不同位置,然後用特定方法管理,或是以特別的格式排列組合,以達成有效率管理資料的方式,而一般程式設計人員接觸到最多的是資料結構,因為這會決定你在程式中處理資料的方式,簡單的資料當然可以用很簡單的結構來組織,但是如果在寫程式時不在乎資料結構的話,很容易發生寫出的程式效率低落的問題。

...繼續閱讀 »

[Code隨手寫] 樂透對獎程式兼新年恭賀

適逢虎年除夕,即將邁入兔年的前一刻,台彩宣布百萬中獎的100個號碼,但因為一張一張對真的會眼花,索性花了十來分鐘撰寫了一支小程式,由電腦去做這件事,雖然對的結果 ... 沒中 Orz,但其實寫下去也是蠻有趣的,但會不會再改成真的可以對獎的程式,那就看我想不想做了。順道藉此文恭祝大家新年開運旺旺來,心想事成,萬事如意。

...繼續閱讀 »

[.NET] 產生具有多個值,multipart/form-data 的 HTTP POST 訊息

這個功能是在設計 Facebook Graph API Client Library 時碰到的問題,在 Graph API 中的 Publish_Stream 中有一項上傳相片的功能,這個功能內有一個 message 和 access_token 參數,而原本我們學習的 HTTP 技術本身大多都是沒有混合二進位和字串值的參數,所以當時碰到這個問題時,一時想不到什麼解決方法,後來搜尋到 RFC 2188: Returning Values from Forms: multipart/form-data,這份文件說明了在 HTTP POST 訊息中使用多種格式訊息的作法,它可以用在許多 REST-based API 的系統,它可以混合多種資料格式並一次傳送,當然非文字的資料必須要編碼為二進位字串。

...繼續閱讀 »

[Windows Azure] 在單一 Web Role 中部署多個 Web 應用程式

前面我們已經介紹了 Windows Azure v1.3 更新中的新功能之一:Full IIS,它可以允許開發人員在同一個 Web Role 中建置多個不同的網站應用程式,但目前 Windows Azure Tools for VS 2010 的專案模式,並不能在專案中直接設定在單一 Web Role 中部署多重網站或虛擬目錄,因此我們要用手動的方式來做一些改變。

...繼續閱讀 »

[Windows Azure] PDC 2010 新功能 (4): VM Role (Part 1)

在 PDC 2010 所宣布的十六項新功能中,最讓人感興趣的大概非 VM Role 莫屬了,VM(Virtual Machine)Role 是微軟特別開放 Windows Azure 上的 Image Deployment 機制,讓企業可以自行設定一個自己的虛擬磁碟(Virtual Hard Drive, VHD)並上傳到 Windows Azure 上的 BLOB 儲存區中,而 Windows Azure 的 Fabric Controller 可以在應用程式的設定下,由自己的 BLOB 儲存區中取用自訂的 VHD 進行組建,以作為應用程式的執行環境。

...繼續閱讀 »

[Windows Azure] PDC 2010 新功能 (3): Windows Azure Connect - 概念與簡單實作篇

PDC 2010 上宣布的 Windows Azure 新功能中第二項令人激賞的功能,就是可以把 Windows Azure 的虛擬機器當做企業內網路的一台電腦的能力,就有如將外部電腦視為企業內網路的電腦一樣,這個新功能稱為 Windows Azure Connect,它會透過 IPSec 的安全保護機制,以類似 VPN (Virtual Private Network) 的方式將安裝有 Windows Azure Connect Client 的電腦與 Windows Azure 的電腦串接在一起,利用這個能力,網管人員也可以將 Windows Azure VM 加入到企業的 Active Directory 網域中。

...繼續閱讀 »

[.NET] 使用 HTTP Handler 部署不同作業系統版本的 ActiveX Control

筆者在 ActiveX 控制項開發的封裝部署一文的最後,曾經提到 Windows XP 和 Windows Vista/7 的部署差異,這會讓開發人員需要依照作業系統的不同來撰寫 INF 檔案來自動化安裝,而且還要在網頁中偵測不同的作業系統給予不同的 CAB 檔案,但我們有一些方法來簡化這個部份的處理,讓開發人員可以在不動一行 <object> 宣告下,支援 Windows XP 和 Windows Vista/7 的作業系統環境。其實方法很簡單,只要使用 HTTP Handler 就能做到了。

...繼續閱讀 »

[Windows Azure] PDC 2010 新功能 (1): Extra Small Compute Instance 與 Remote Desktop Connection

XS 是新的運算資源尺寸,它的 CPU/RAM 與磁碟空間都比 Small 要小,分別是 1.0GHz CPU, 768MB RAM 以及 20GB 硬碟空間,主要是供企業在測試雲端實際的環境,或是對客戶做系統展示用的,也因為它運算資源小,在資料中心內所有的 XS 執行個體都是集中在部份實體伺服器中共享 CPU 資源的,簡單的說,如果是架設小型網站或使用者數很少的系統時,Extra Small 可以說是不錯的入門款。而 Remote Desktop Connection 這個新功能是 PDC 2010 所宣布的 Windows Azure 新功能中令人激賞的功能之一,因為有了遠端桌面的功能,開發人員或管理人員可以更掌握目前虛擬機器的使用情況以及環境,有助於微調應用程式組態或是加快排除問題的速度。

...繼續閱讀 »