原创 排列組合程序

今天忽然想起高中最基本的排列組合公式,想起用程序實現一下將排列組合各項列出來的功能。由於是遞歸寫法,還是調試了一些時候才搞出來,不過感覺寫法還是比較簡潔的,記錄在這裏,還有改進餘地。  typedef std::vector<int> I

原创 c++循環包含一種解決方法

 上次在一個設計當中遇到A類調用B類,B類又調用A類的問題,由於循環包含搞了半天,後來覺得還是將其用接口方式實現好一些,也就是將會被別人調用的方法寫成抽象類放在一個公共文件中,包含的時候都使用抽象接口,如下面的例子: 先設計一個公共包含的

原创 一見鍾“情”還是一見鍾“性”

今天看一個歐美的賽車電影,裏面的小夥子對那小姑娘一見之下就被深深吸引,走了過去……,這是電影的套路,自然不必多說,要是不被吸引電影就沒法往下拍了,這

原创 關於高精度時間獲取

一直以爲QueryPerformanceCounter得到的是CPU的tick數,後來才知道精度遠低於這個。 例如我有一個2..8GHz的CPU,按理說精度應該達到0.357ns,但如果你用QueryPerformanceFrequenc

原创 小型軟件開發的四個階段

 1. 預研 這個階段要把各種算法以及技術路線方面的不確定問題做一個嘗試。代碼可以相當隨意,也不用擔心架構,但是務必要把各種問題覆蓋全面,例如exe下能夠做到的,換成dll是否還能。這個階段不拘一格,八仙過海,各顯神通。 2.設計 這是需

原创 PC與萬花筒

一臺主頻1個多GHz,內存512MB,200多GB硬盤的PC,啓動運行一個若干年前的xp操作系統,光啓動個系統就要1分鐘,啓動以後又被不知什麼的後臺程序佔用着cpu遲遲不能步入正題。我時常想,這是21世紀PC機的水準嗎?誠然電腦是老了一些

原创 如何編譯OpenCV裏面的ocl模塊

最近OpenCV代碼庫有SVN轉到Git了,裏面多了我們期待已久的ocl模塊(一些接口的OpenCL加速版本,如果不知道OpenCL是啥,就自己查一下了,我這裏不做介紹)我試了一下,在VS2010上面使用x64模式編譯沒有問題。下面是遇到

原创 OpenCL裏面read_image小測試

使用OpenCL處理圖像的時候,通過read_image而不是普通的cl_mem似乎是一個十分誘人的方式。但通過實際測試,發現這個接口不像想象的那樣好。我們選擇AMD的顯卡,使用新的驅動和SDK。然後測試read_imagef和read_

原创 軟件是什麼車

程序其實和汽車一樣,同樣一個軟件,可以做成這個樣子,也可以做成那個樣子。可以做的精緻,也可以粗糙。反正最後的功能差不多,裏面的邏輯誰也看不見。在汽車的論壇裏面經常有人陶醉於自己車子的質量多麼好,做工多麼精細。比如一些德國車主就感慨自家車子

原创 工程師的品德

  做軟件工程師已經有幾年了,但是最近的一件事對我觸動很大。憑生頭一次,我聽說一個軟件應該做的越慢越好。那是在和老外的一次項目末期彙報上,我們精心設計的架構不但沒有爲我們贏來好處,反而成了衆矢之的,深受譴

原创 windows bat 文件腳本例子

@echo OFF if "%1" == "good"  goto enable if "%1" == "bad"  goto disable goto enable :enable echo good job goto done :di

原创 賽車遊戲的悖論

玩賽車游泳已經有些年頭了,最近忽然明白了一件事情,那就是賽車遊戲裏的畫面細節對於遊戲的好壞而言是雞肋。在GPU如此發達的今天,一個競速遊戲如果沒有逼真的畫面似乎說不過去,但事實上,當你專注於駕駛賽車的時候

原创 基於Winmm庫的音頻採集

Winmm庫提供的音頻採集接口比較底層,可以直接獲取和播放wave數據。其主要流程如下:採集1. waveInOpen()2. waveInStart()3. waveInPrepareHeader()4. waveInAddBuffer

原创 應用SOCKS服務器實現P2P轉發

服務器轉發是解決兩個子網內主機直接通信的最後辦法,在STUN協議當中定義了相關規範,不過看了一下SOCKS代理服務器協議,覺得也可以實現,具體方法如下: 需要被連接的一方首先通過BIND操作在代理服務器上面開闢一個監聽端口,然後通過外部數

原创 XMPP協議摘要

總體描述   一個會話以<stream>開頭,</stream>結束,中間可以有任意長的信息流   <stream>包含的屬性有'to''from''id''xml:lang'四種,用法如下                 |  init