-
過去寫了 好幾篇跟執行緒相關的文章 ,講的都是如何精確控制執行緒的問題。不過實際上有在寫的人就知道,那些只是 "工具",最重要的還是你該怎樣安排你的程式,讓它能有效率的用到執行緒的好處,那才是重點。大部份能有效利用到多執行緒的程式,大都是大量且獨立的小動作,可以很簡單的撒下去給ThreadPool處理,不過當你的程式沒辦法這樣切,就要想點別的辦法了。 開始看 code 前先講講簡單的概念。這篇要講的是另一種模式: "生產者 v.s. 消費者"。這是個很典型的供需問題...
-
其實本來沒打算寫這篇的,不過之前在寫第二篇: [ 該如何學好 "寫程式" #2. 為什麼 programmer 該學資料結構 ?? ] 時,寫的太高興,忘了查 System.Collections.Generics.SortedList 的 KEY 能不能重複... 結果貼出來後同事才提醒我,SortedList 的 KEY 一樣得是唯一的... Orz 實在是不想自己再去寫這種資料結構的作業... 一來我寫不會比較好,二來自己寫的沒支援那堆 ICollection, IEnumerable...
-
接續前文: 該如何學好 "寫程式" ?? 該如何學好 "寫程式" #2. 為什麼 programmer 該學資料結構 ?? 這類文章還真不好寫,想了好幾天,才擠的出一篇文章。第一篇已經講了一堆教條了,第二篇也舉了簡單的例子,說明挑對資料結構的重要性,接下來這篇會把主題放在更複雜的例子上,到底那些地方該注重技術,而那些地方該把重點放在基礎的資料結構及演算法身上。 這次不囉唆半天了,先來回顧一下第一篇,我出的題目是這樣: 以台灣高速公路為題 (中山高、北二高、國道二號...
-
雖然 上禮拜就知道了 ,不過 獎品 還沒拿到,當然要忍一下再發表... 哈哈! 花了幾個晚上拼了 猜數字的程式 ,運氣不錯,順利拼到冠軍了。除了寫程式,把心得貼到 BLOG 也花了不少時間.. 主要貼的這四篇: Thread Sync #1. 概念篇 - 如何化被動為主動? Thread Sync #2. 實作篇 - 互相等待的兩個執行緒 [C#: yield return] #1. How It Work ? [C# yield return] #2. 另類的應用 - Thread Sync 替代方案...
-
自從貼了上一篇 [ 該如何學好 "寫程式" ] 一文,原本以為這種老生常談的內容沒什麼人會看,沒想到還有人給我回應.. :D 原來這種文章還是市場的。接下來這篇,是延續上一篇,來談談要成為合格的 programmer, 我認為應該要俱備的 "內功" 是什麼。上篇我提到,我認知的 programmer,就是要有實作 (CODING) 的能力。要有能力把技術規格 (像是輸入格式,操作介面等等) 具體的寫成可以執行的程式碼。當然是要寫的又快又好,穩定不當機又沒 BUG...
-
無意間在網站上看到這則新聞: GOOGLE 讓人變笨?網路便利後遺症 http://n.yam.com/bcc/life/200806/20080626204869.html 文內有這麼一段話: 但是大家都忽視了這種便捷要付出的代價。「網路似乎粉碎了人們專注與沉思的能力,到如今,腦袋只盼著以網路提供資訊的方式來獲取資訊」。 影響所及,傳統媒體也跟著零碎化,長篇大論的東西不再有人要看,一篇文章超過四個段落,讀者就想落跑,電視節目加入滾動字幕和不斷跳出的小廣告,報刊則儘量縮短文章長度,改以一小塊一小塊的摘要取代...
-
上個禮拜才看完 2008 / 10 的 MSDN Magazine ,才想說這期 MSDN 的內容,有一半以上的主題是討論多核心處理器效能問題 (平行處理,多核的 CACHE 機制對程式的影響... etc),不過剛才才想貼篇心得,上網一看竟然又縮回去只剩九月號? @_@ 難道我是夢到我看過十月號的嘛? 哈哈... GOOGLE 找一下還真的給我找到 庫存網頁 :D 當然要貼來紀念一下。不知道重新上架後內容會不會多幾篇文章? 這期的主題還真的都押在多核處理器的效能問題上。光是平行處理 ( TPL...
-
繼 上篇 ,講了一些 yield return 編譯後產生的 Code, 說明了 C# compiler 如何用簡單的語法替你實作了 IEnumerator 介面,而完全不會增加程式的複雜度,這是我認為 C# 提供最讚的 Syntax Sugar ...。 不過無意間我想到了 yield return 還有另一種應用方式。靈感來自之前 Darkthread 舉辦的 [ 黑暗盃程式魔人賽 ]。因為參賽題目 [xAxB猜數字遊戲] 原本就是考驗演算法,邏輯就不大簡單了,加上要配合 GameHost 的呼叫方式...
-
C# 常常拿來跟 Java 比較,在 .NET 1.1 時常常是不相上下,而 .NET 又因為較年輕 & 頂著 M$ 的名號,往往被當成玩具一樣,不過 M$ 的確是在 .NET 及 C# 下了很多功夫,作了很多 Sun 不願意在 Java 身上作的事,這次要探討的 yield return 及 IEnumerable<T> 這搭配的 Interface 就是一例...。 Java 在過去的版本,往往為了跨平台,把修改 VM 規格視為大忌,連帶的連語法修改都一樣,即使不影響編譯出來的...
-
話說前陣子處理了 BlogEngine.NET 升級到 1.4.5.0,另外也寫了 SecurePost.cs 這個 extension, 其時都碰過這個鳥問題,只是一直沒去理它而以。接下來為了要改 PostViewCounter.cs (BE extension, too), 又碰到... 於是就認真的研究了一下...。 過程是這樣,為了建立 BlogEngine 的開發環境,首先我從官方網站下載了 source code, 解開後編譯都沒問題,OK。 接下來 WEB 的部份我把網站上的 source...
-
因為家裡大人開出條件,除非新的 BLOG 系統 (就是我在用的 BlogEngine 啦) 有特定文章要輸入密碼才能看的功能,否則她就不想換系統了 (原來是用 CommunityServer 2007)。要弄密碼其實很簡單,不過過去試過 IIS 加上整合式驗證... 弄到最後該看的人看不到,也沒擋到該擋的人而作罷...。 仔細想了想大人的需求,要的就是簡單的控制機制。不需要先建立帳號,也不需要登入,就是特定幾篇文章要輸入暗號才能看到內容,就這樣而以。無耐 BlogEngine 還算很年輕,替它寫的...
-
抱怨一下,因為在看照片時發現,有些直的拍的照片看起來是正確的 (會自己轉 90 度),有些卻不是... 得歪著頭看,所以就很好奇到底是怎麼回事...。 這幾張是正確的 (右上 & 左下,會自動轉 90 度) 這幾張是錯的 (應該自動轉 90 度才對) 第二張是錯的 (應該要轉 180 度才對) 越想越不對,我記得除了我那台古董 CANON G2 之外,後來 CANON 的相機都有加上偵測轉向的機制啊? 不外乎是 水銀開關 或是類似的東西,總之相機能夠得知目前是不是轉直的拍,同時能把這資訊寫到...
-
http://www.books.com.tw/exep/prod/booksfile.php?item=0010334718 沒想到電腦書也流行復古... 真是令人懷念的一本書啊,電腦書通常都是半年到一年就過時了,堆了兩年以上的書很少還會拿出來翻... 不過這本 (原版,不是復刻版) 例外,足足有好幾年的時間我還是會沒事就拿起來翻一翻。每想到十來年後還會有書局再版... 一定要推一下。 這本書的觀念寫的實在不錯,我有很多OOP的觀念都是靠這本書建立起來的。常常有人問我學物件導向要看那本書,我都很想推這一本...
-
繼 上篇 , 有人 跟我講太深奧了... Orz, 其實不會,只是還沒看到 Code 而以...。就先來幫 黑暗魔人賽 說明一下程式碼...。首先來看的是黑暗大魔王: GameHost.. GameHost 呼叫 Player 的片段 [copy code] public void Start(Player p) { // 略... int[] guess = p.StartGuess(_maxNum, _digits); // 略... Hint hint = compare(guess); 讀取更多...
-
別以為我轉行了... 這篇不是勵志文章,教你用主動積極的態度面對人生.... 而是討論執行緒同步機制及如何用來解決惱人的流程問題。會寫這篇的念頭來自 黑暗程式魔人辦的猜數字程式設計大賽 ,在處理的過程中想到的解法...,不過這篇要講的不是猜數字,而是不相干的東西: Thread Sync (執行緒的同步機制)。 一般程式寫久了,會很習慣一路到底的思考方式,程式也完全照這樣的思路被設計出來。不過寫 GAME 這類的程式就不是這麼一回事了。就先舉十五年前我用 C 寫的俄羅斯方塊的遊戲當例子 (大驚!...