Time of Update: 2018-12-07
當我們需要從一個字串(主串)中尋找一個模式串(子串)時,使用KMP演算法可以極大地提升效率。KMP是一個高效的字串匹配演算法,它巧妙的消除了在匹配的過程中指標回溯的問題,關於KMP演算法的更多介紹,可以參考這裡。原始的KMP演算法適用的對象是字串的匹配搜尋,其實針對任意類型的串(實際上就是一個數組)的子串搜尋,都可以使用KMP演算法。比如,我們可能需要在byte[]中尋找一個特定的位元組數組,這同樣可以使用KMP演算法來提升匹配效能。為此,我實現了泛型的KMP演算法,使之可以應用於任意類型的串匹
Time of Update: 2018-12-07
在GOF的設計模式中沒有簡單工廠,而是將其作為Factory 方法的一個特例加以解釋的。可以這樣理解,簡單工廠是參數化的Factory 方法。簡單工廠的作用是執行個體化對象,而不需要客戶瞭解這個對象屬於那個具體子類。優點:可以使使用者根據參數獲得對應的類的執行個體,避免了使用者直接執行個體化類,降低了耦合性。缺點:可執行個體化的類型在編譯期間已綁定,如果增加新類型,則需要修改工廠。簡單工廠需要知道所有要產生的類型,當子類過多或者子類層次過多時不適合使用。
Time of Update: 2018-12-07
1.前提
Time of Update: 2018-12-07
問題描述: 從A匯入資料,同步到B,在A系統中刪除資料,在B系統中刪除資料。 前提:A、B已經完成一次FULL_IMPORT、FULL_SYNC,假設在A中的資料在B中的資料(不考慮過濾),都一一對應。 按照之前的思路,在A中刪除一條記錄後,通過FULL_IMPORT的時候,在CS_A中會刪除記錄A,通過FULL_SYNC,因為CS_B中的DATA_1仍然與MV保持Connected,因此包括MV在內一直都會存在該條記錄。 解決方案: 1、
Time of Update: 2018-12-07
最近因為工作需要,在學習silverlight的使用。發現 xaml原本是支援3D,silverlight上的xaml卻沒有3d的支援,想起曾經有個叫 svgvml3d的javascript代碼,可以通過vml或者svg來繪製3d的情境。於是就將其拿來改改,經過半天的折騰,終於出來了大致的模樣。點擊這裡下載代碼用了silverlight後的一個好處就是容易繪製半透明效果。這個代碼IE上運行正常,但是在我的機器上的firefox上卻有問題,一時找不到原因,望高人指點。———————————————
Time of Update: 2018-12-07
在FIM同步中,除了上次提到的,刪除A庫之後,同步刪除B庫的需求(點擊這裡)。還有一種比較常見的需求:通常在應用系統中,並不會真實刪除一條資料庫記錄,只是做一個標記而已。操作思路:1、資料來源刪除使用者->刪除對應Metaverse對象(此時應用系統對應的CS
Time of Update: 2018-12-07
PS:目前官網的SDK詳細文檔還沒出,我也只能盡我所知來寫了,不對的地方,大家可以一起補充;如果有新的發現,我會持續更新此文。MediaElement類簡介:用來播放視頻或聲音名稱空間:System.Windows.Controls程式集:agclr 定義:C#代碼public sealed class MediaElement :System.Windows.Controls.MediaBase 如何?MedioElement重複播放(Replay)?1
Time of Update: 2018-12-07
FIM錯誤: Error:invalid-dn,Multiple values were specified for an attribute that can have only one value. 原以為是有多個值設定到同一個屬性中(包括http://support.microsoft.com/kb/286760 的說法也是。) 但後來仔細觀察發現出現這類問題的共性在於他們多了個空格。
Time of Update: 2018-12-07
在很多軟體系統中,都允許使用者佈建自己的頭像,甚至可以直接使用網路攝影機照相作為自己的頭像,就像QQ的自拍頭像功能一樣。 這種功能是如何?的了?最直接的,我們可以使用Windows提供的VFW技術或DirectX技術來捕獲網路攝影機採集到的視頻和圖片。但是,無論使用這兩種技術中的哪一個,要實現一個相容所有網路攝影機而又運行穩定的拍照功能,都不是那麼容易。幸運的是,OMCS已經內建整合了這種功能的一個WinForm控制項PhotoPanel,我們可以直接拿來使用。
Time of Update: 2018-12-07
近段時間,有幾個朋友問我如何?類似QQ離線檔案的功能。不想一一作答,就寫一篇博文來比較完整的解釋這個問題。 所謂“離線檔案”,就是當接收者不線上時,寄件者先把檔案傳送給服務端,在伺服器上暫時儲存,等接收者上線時,服務端再把檔案發送給他。當然,要想實現離線檔案的功能,其最基本的前提是要先實現傳送檔案的功能,我們就以ESFramework提供的傳送檔案的功能為基礎,在其之上一步步完成一個基本的離線檔案功能。 下面我們就使用者在使用離線檔案時,按各個動作發生的先後順序,
Time of Update: 2018-12-07
C和C++有很多好的類庫的沉澱,在.NET中,完全拋棄它們而重頭再來是非常不明智的、也是不現實的,所以,我們經常需要通過Pinvoke來使用以前遺留下來的非託管的dll。就.NET中使用非託管的dll經驗而言,經常碰到的問題至少有兩個,它們都是通過在運行時拋出異常來體現的。1.試圖載入格式不正確的程式 出現這種異常,通常是.NET應用程式的“目標平台”與非託管dll的平台不一樣。 一般,在使用VS開發.NET的應用程式和類庫時,預設的目標平台為“Any CPU”,
Time of Update: 2018-12-07
我們設想一下網路視頻會議的情境:在一個視頻會議虛擬房間中,每個人都需要將自己的視頻資料發送給房間中的其它人,從而實現在同一個地方進行即時會議的效果。為了簡單起見,我們假設,這個虛擬視頻會議房間中只有三個人,其結構可以簡化描繪如下: 用戶端A需要將自己的視頻資料發送給B和C,用戶端B需要發給A和C,用戶端C需要發給A和B。有了這個情境基礎,接下來,我們將從資料傳送通道的角度來分析在這個模型中可以採用的通道方式,以及進行對比並找出最優的通道模型。所謂最優,就是伺服器所佔用的頻寬(包括上行和下行)
Time of Update: 2018-12-07
1.裝飾模式的概述2.1 什麼是裝飾模式 在不改變對象的前提下,動態增加其功能,即我們不希望改變原有的類,或採用建立子類的方法增加功能,這種情況下需要採用裝飾模式。2.2結構 修飾一個對象後,其介面不應該發生變化;否則這個對象不能被原有調用者使用,修飾失去了意義。由此引出了裝飾模式結構最重要的一點,即裝飾者和被裝飾者具有相同的介面。換句話說,動態增加的功能不應該破壞已有的介面。裝飾模式的結構如所示。
Time of Update: 2018-12-07
到今天為止,wowMovies項目已經經曆了2次大的變動.在06年底我開始動手做這樣的東西,後來沒有繼續下去.等到siverlight推出我看到那高清的播放畫面,我覺得這就是我想要的東西. 08年底,我開始完成後台管理模組,前台山寨了 魔獸官網 的介面,那個功能基本完成了.不過這始終只能做為一個技術研究,不能投入實用,一個視頻網站太燒錢了. 09年3月份,.net mvc終於出了1.0正式版,為了學習新技術,我把wowMovies用.net mvc重新實現一邊.
Time of Update: 2018-12-07
1.引言 在商品房銷售系統中,房屋資訊是基礎資訊。在系統運行前必須輸入房屋的各種資訊到系統中,這是一項枯燥的重複勞動。如果讓使用者重複輸入房間的類型、面積和衛生間樣式,這個系統肯定尚未運行就夭折了。實際上,一個小區樓盤的樣式並不多,不同的只是樓號。另外,樓盤中的房間類型也非常有限,從而為解決輸入問題提供了啟示。樓盤的邏輯結構。
Time of Update: 2018-12-07
遊戲背景: 時間是歐洲中世紀,一位英雄堅守著他國家最後的城堡。一旦敵人攻破這個城堡,他的任務就失敗了。這位英雄有著百步穿楊的本領,還有強大的魔法技能。雖然敵人發起了一波波潮水般的攻擊,但他都頑強的擊退了。 敵人不甘失敗,派出了各種兵力,長矛兵,盾牌兵,騎兵,後來還調來投石車,空中的獅鷲騎士。敵人勢要把這個城堡攻下,這位最後的英雄能守住城堡嗎? 開發曆程:
Time of Update: 2018-12-07
1.概要1.1意圖 將複雜物件的構建與表示分離,使得同樣的構建過程可以建立不同的表示。需要注意如下幾點。(1)構建與表示分離:表明產生器模式的結構,構建過程被封裝在導航器中,產生器則負責實現具體的表示。(2)同樣的構建過程:產生器模式關注的是構建過程,即構建過程是相同的。(3)不同的表示:產生器模式並不在意產生對象的結果,其構造的產品不一定有相同的類型。1.2使用場合
Time of Update: 2018-12-07
GOF指出了設計模式能夠解決的問題,但是設計模式也不是萬能,什麼都可以做,肯定有他不能做的事情或者是用了設計模式卻適得其反。1.設計模式不是法則 模式理論的精髓之一就是模式的使用是有前提和代價的,模式是在某種前提下,綜合各方面的因素考慮得出的結果。即在使用模式時總要付出一定的代價的,當然這種代價是可以接受的。如果某個模式在所有場合的使用都是必然的,那麼它就不叫設計模式了,而是必須遵守的法則。例如“面向借口,而非實現編程”是法則而非模式。
Time of Update: 2018-12-07
如果把建立看作一個職責,那麼系統中的哪個對象應該擁有這個職責呢?如果把建立看作知識,那麼建立知識應該放置在什麼地方呢?說到職責我們不得不說一下著名的GRASP原則:GRASP是通用職責分配軟體模式(General Responsibility Assignment Software patterns)的簡稱。它包含了9大模式,分別如下所示: 1 建立者(Creator) :決定對象應該有誰來建立的問題。 2 資訊專家(Information
Time of Update: 2018-12-07
上一篇寫如何免安裝Oracle來使用PL/SQL Developer,http://www.cnblogs.com/volnet/archive/2012/05/22/2513728.html這一篇則需要在一台主機上同時支援.net程式,不論編譯成x86還是x64都要OK。1、下載Oracle Data Access Components(ODAC)