Time of Update: 2018-12-03
通用Regex譯者:張桂權 (出自《Regex袖珍手冊》一書。譯者,張桂權。可以從http://download.csdn.net/source/346896下載完整的譯稿) 本節包含簡單的通用Regex模式。為了滿足需要,你可能需要進行必要的調整。這兒只給出了每一個運算式和它們匹配的目標字串和不匹配的字串。為了滿足需要,你可能需要進行必要的調整。採用Perl風格來書寫: /模式/形式 s/模式/替換/形式訣竅 去掉前置和末尾的空格 s/^/s+/
Time of Update: 2018-12-03
前言:自然語言處理(Natural Language Processing——NLP)廣泛應用於語音辨識、機器翻譯、自動問答等領域。早期的自然語言處理技術是基於“詞性”和“文法”的,到了70年代走到了盡頭,取而代之的是基於“數理統計”的方法。NLP的曆史可以參考《數學之美》(吳軍 著)一書。本系列跟隨斯坦福Dan Jurafsky教授和Christopher Manning助理教授來學習NLP的具體知識。其中包括word and sentence
Time of Update: 2018-12-03
最近在網上看到了一道面試題,初看很簡單,細看有點意思的一道題目:http://blog.csdn.net/zhangxiaoxiang/archive/2011/04/01/6294132.aspx為避免著作權糾紛,我這裡就不引用原文了。 各人對題目的理解不一樣,我把它當成一道離散事件模擬題目來做,用一個優先隊列解決。完整的代碼見 https://github.com/chenshuo/recipes/tree/master/java/bankqueue
Time of Update: 2018-12-03
歸併排序(MergeSort)#include "MergeSort.h"void Merge(int A[], int Start, int Mid, int End){int n1 = Mid - Start + 1;int n2 = End - Mid;int *Left = (int*)malloc(n1 * sizeof(int));int *Right = (int*)malloc(n2 * sizeof(int));int i, j, k;for(i = 0; i < n1;
Time of Update: 2018-12-03
插入排序(InsertionSort)時間複雜度O(N2)#include "InsertionSort.h"#include "Print.h"// 插入排序演算法void InsertionSort(int A[], int N){int j, P;int Tmp;for(P = 1; P < N; P++) // 每增加一個新的數,就依次與前面的數比較,插入到前面已經排好序的數列中,相應的位置後移{Tmp = A[P];for(j = P; j > 0 &&
Time of Update: 2018-12-03
J2SE 5.0 Generic應用一:型別安全的functor 一、簡介 函數式編程是非常常用和非常重要的一種編程範式,有的語言直接提供支援,C++則通過()運算子多載和模板提供了還算靈活的支援,而Java中的函數式編程則由於語言本身的局限沒有得到廣泛應用,Apache Commons Functor 項目是一個正在開發中的函數式編程庫,但目前看來並不是型別安全的;J2SE 5.0提供了有限的generic能力,除了用於Collection之外,型別安全的functor也是其用武之地,
Time of Update: 2018-12-03
基礎複雜性是守恒的,需要解決的基本問題始終是需要解決的;最終的複雜性,卻取決於基礎複雜性彼此間的依賴,如果互相依賴,最終將得到指數級的複雜性,而如果彼此獨立,最終只是若干基礎複雜性簡單的累加,因此,程式需要更好的的Design和Organize,主要任務就是“降低模組間的依賴至最小”,而對開發效率有重大影響的,主要是編譯期依賴,為此,人們發明了若干技術來降低編譯期依賴1,模組系統C++繼承了C的include機制,缺少ABI,缺少模組系統,用戶端代碼依賴於對象的記憶體布局,任何對標頭檔(類定義)
Time of Update: 2018-12-03
綜述本書以Lisp語言本身為例,完整而辨證的講述了“電腦程式”的各種形而上形而下的問題:程式語言本身的要素(原語、組合手段、抽象手段)程式的計算模型(代換模型、環境模型,迭代、遞迴)程式的世界觀(對象式、函數式)程式如何繁殖進化(元語言抽象)程式如何執行(編譯、解釋)同時闡述了程式設計中常用的幾大關鍵技術:寄存器與堆棧的使用(目前多數電腦的基本抽象)資料導向與通用型計算(涉及高階過程,資料與過程的統一)並發程式設計(模型與時序的衝突)曆史記憶法(即緩衝)應用序與正則序,及背後的惰性求值/延時求值
Time of Update: 2018-12-03
Roger.Yi
Time of Update: 2018-12-03
本篇並非是講述具體的排序演算法,而是做一些準備工作1. 產生10000個隨機數,作為後續測試排序演算法的資料來源。 /* 產生10000個可重複的隨機數,儲存到檔案中,並計算產生時間 */#include <stdio.h>#include <stdlib.h>#include <ctime>typedef long clock_t;void main(){clock_t start_time = clock(); // 計時開始srand(unsigned(
Time of Update: 2018-12-03
Roger (roger2yi@gmail.com) 這篇文章試圖說明如何使用auto_ptr和shared_ptr,從而使得動態指派至的使用和管理更安全,方便。除了一般的使用說明外,更主要是說明它們之間的異同 —— 滿足需求的不同和開銷上的差異。 文章的多數知識都來源於: 1. Exceptional C++(Herb)Item 37 auto_ptr2. Exceptional C++ Style(Herb)和C++ Coding
Time of Update: 2018-12-03
本科學習資料結構時實踐比較少,因此最近開始複習,看到網站http://learn.akae.cn/media/ch12s03.html,既可以打基礎,又可以順便學習Linux的知識。第12章講“堆棧”,第3節講“深度優先演算法”尋找路徑迷宮。代碼已經給出了,為了方便其他同學下載調試,我這裡也附上:原始代碼:#include <stdio.h>#define MAX_ROW 5#define MAX_COL 5struct point { int row; int col;}
Time of Update: 2018-12-03
我在一個滑鼠可用性測試的項目裡面用到了QT的Graphics View架構(使用Python+PyQt),這是一篇簡單的介紹文章,Graphics
Time of Update: 2018-12-03
這篇文章很大程度是受到Exceptional C++ (Hurb99)書中第四章 Compiler Firewalls and the Pimpl Idiom (編譯器防火牆和Pimpl慣用法) 的啟發,這一章講述了減少編譯時間依賴的意義和一些慣用法,其實最為常用又無任何副作用的是使用前置聲明來取代包括標頭檔。Item 26 的Guideline - "Never #include a header when a forward declaration will
Time of Update: 2018-12-03
QT為資料庫編程提供了一個類似JDBC的統一操作模型,它的底層是具體資料庫或資料庫介面的外掛程式,由它們負責完成真正的資料庫操作。QT內建有QODBC Driver,在Windows平台上通過系統提供的ODBC Driver可以訪問支援ODBC的資料庫,如Ms Access、SQL Server等 (Windows XP 內建有Access和SQL Server的ODBC
Time of Update: 2018-12-03
早前寫了一篇文章“Introduce My Work”,用一個例子 —— HTML5 Canvas的一個簡單實現,介紹自己工作的內容,而這篇文章試圖去描繪自己工作內容所需的一個完整的知識體系的階層(見),並對其進行簡單介紹。Browser App基於系統的GUI架構開發完整的瀏覽器應用。Android GUI Framework瞭解Android的View System機制;從3.0開始Android支援使用Layer作為View的Backing
Time of Update: 2018-12-03
DDD的關鍵問題是如何識別缺失的領域概念. Eric的書裡提供了一些方法, 比如傾聽表達用語, 檢查不協調之處, 研究矛盾之處等等. 我們需要更多的實踐來捕捉缺失的概念.新實踐: 檢查更換編程架構對代碼帶來的影響.這個實踐基於以下的理念: 商務邏輯沒有發生變化則領域模型也不應該變化. 因此如果更換編程架構造成了大量業務代碼的變動, 則意味著有概念沒有被封裝在領域層. 這裡並非鼓吹要應用程式可以支援動態切換編程架構, 比如從一種ORM工具切到另一種, 或者從一種MVC架構切到另一種.
Time of Update: 2018-12-03
金溪民方仲永,世隸耕.仲永生五年,未嘗識書具,忽啼求之.父異焉,借旁近與之,即書詩四句,並自為其名.其詩以養父母,收族為意,傳一鄉秀才觀之.自是指物作詩,立就.其文理皆有可觀者.邑人奇之,稍稍賓客其父,或以錢幣乞之.父利其然也,日扳仲永環謁於邑人,不使學.餘聞之也久.明道中,從先人還家,於舅家見之.十二三矣.令作詩,不能稱前時之聞.又七年,還自揚州,複到舅家問焉.曰:"泯然眾人矣!"最近和主管談到人才培養的問題,交談的過程中也說了自己的一些困惑,為什麼公司自己沒辦法培養出足夠的能夠獨當一面的人才
Time of Update: 2018-12-03
See also Lightening Talk: 簡單設計經常碰到的一段對話是:“這裡為什麼要引入一個類?字串就好了,簡單設計嘛” 或者 “一個switch/case就搞定的,弄個子類幹嘛?”事實通常是反過來的,引入新的類型或子類比使用字串或switch/case更簡單. 我來解釋一下設計是否簡單的一個判斷標準是它是否更容易理解. 而我們對事物的理解建立在概念或模型之上. 比如做一個最簡單的超市存包系統,能存包能取包,沒有進一步的需求. 牽扯到的概念可能有包裹,儲物櫃,存完包有個憑證用於取包.
Time of Update: 2018-12-03
The Trouble With Physics: The Rise of String Theory, the Fall of a Science中譯本<<物理學的困惑>>.科學的不同風格多個最聰明、受過最好教育的科學家在最好的條件下研究的弦理論,怎麼會面臨失敗的危險呢?這令我困惑了多年,不過現在我想我知道答案了。我認為將要失敗的不是什麼特別的理論,而是一種科學作風,它適合我們在20世紀中期遇到的問題,