Time of Update: 2018-12-03
亞洲微軟研究院所在的希格瑪大廈一共有6部電梯。在高峰時間,每層都有人上下,電梯每層都停。實習生小飛常常會被每層都停的電梯弄的很不耐煩,於是他提出了這樣一個辦法:由於樓層並不算太高,那麼在繁忙的上下班時間,每次電梯從一層往上走時,我們只允許電梯停在其中的某一層。所有乘客從一樓上電梯,到達某層後,電梯停下來,所有乘客再從這裡爬樓梯到自己的目的層。在一樓的時候,每個乘客選擇自己的目的層,電梯則計算出應停的樓層。問:電梯停在哪一層樓,能夠保證這次乘坐電梯的所有乘客爬樓梯的層數之和最少?方法一:暴力枚舉,
Time of Update: 2018-12-03
最近很多同學在做基於oenfire伺服器,asmack開源架構的即時通訊應用,當中,多多少少碰到了一些問題。在解決問題的過程中,我發現很多同學的做法是錯誤的,所以我決定寫下一篇部落格告知正在為這些問題煩惱的同學。首先,奉獻一個Log類,大家以後不用在煩惱每次都要去寫TAG了,這個類用到了單例模式的餓漢式,有心的同學可以改成完美式:public class LogUtil { private final static String tag = "[你想取啥名,就取啥名]";
Time of Update: 2018-12-03
此文章系收藏之作,並非本人所寫大家都知道,一般的程式啟動並執行時候,可執行檔本身是被作業系統保護的,不能用改寫的方式訪問,更別提在本身還在啟動並執行時侯刪除自己了。在lu0的首頁上看到一種undocument的方法,通過改變系統底層的檔案訪問模式實現刪除自己,那是實在功夫。我看了很是佩服。但是有沒有一種用在msdn上就能查到的函數實現呢?有!jeffrey richter給我們做了一個範例:deleteme.cppmodule name: deleteme.cppwritten by:
Time of Update: 2018-12-03
位元影像就是用一個位元位去表示一個整數,該位為1,表示此數存在,該為為0,表示此數不存在。使用位元影像會節省空間的,並且查詢,插入操作都是O(1)的,效率極高,當然,如果你設定map的類型為unsigned char *,也是可以的,只不過這時候SHIFT = 3, MASK = 0x7#include<iostream>#include<string.h>using namespace std;#define BITSPERWORD 32#define SHIFT 5#
Time of Update: 2018-12-03
作為測試的基本概念,在開發測試中經常遇到mock和stub。之前認為自己對這兩個概念已經很明白了,但是當決定要寫下來並寫清楚以便能讓不明白的人也能弄明白,似乎就很有困難。試著寫下此文,以檢驗自己是不是真的明白mock和stub。1)
Time of Update: 2018-12-03
OEP是PE檔案被載入時的起始地址,該值位於PE檔案頭的IMAGE_OPTIONAL_HEADER32結構體中。照著網上的教程寫了一遍,收獲不小,現在對PE檔案的前兩部分已經有一定的瞭解了。下面的代碼很簡單,首先用CreateFile讀取PE檔案,PE檔案的起始位置是DOS部分,DOS部分又分為DOSMS檔案頭和DOS塊,在DOS MS檔案頭中包含了PE檔案頭的起始地址,而DOS塊中的資料沒啥用,該塊的大小為112位元組,通常其內容為“This program cannot be run in
Time of Update: 2018-12-03
在二維平面上的n個點中,如何快速的找出最近的一對點,就是最近點對問題。 一種簡單的想法是暴力枚舉每兩個點,記錄最小距離,顯然,時間複雜度為O(n^2)。 在這裡介紹一種時間複雜度為O(nlognlogn)的演算法。其實,這裡用到了分治的思想。將所給平面上n個點的集合S分成兩個子集S1和S2,每個子集中約有n/2個點。然後在每個子集中遞迴地求最接近的點對。在這裡,一個關鍵的問題是如何?分治法中的合并步驟,即由S1和S2的最接近點對,如何求得原集合S中的最接近點對。如果這兩個點分別在S1
Time of Update: 2018-12-03
很久沒更新blog了。前一陣子經曆了人生第一次跳槽,比想象中的艱難多了。畢竟是第一份工作,離開還是挺傷感的。新的工作剛剛開始,希望一切順利。這篇blog是五一期間寫的,今天正式貼出來。寫技術blog是個好習慣,我要保持! 在前東家的時候,一直很想去嘗試一下flash/SSD,可惜由於各種原因到今天也沒有實現。SSD在今天越來越流行,業內的很多公司都開始嘗試使用,甚至作為主要的儲存媒介,從Research的角度講,SSD更是一個重磅炸彈,因為它顛覆了原有hard
Time of Update: 2018-12-03
JBoss Training第一天1.Weblogic Domain --- JBoss instance2.assign server:run.bat -c all/default/...3.assign server IP address:run.bat -b IP_address4.assign all IP accessable:run.bat -b 0.0.0.05.change port
Time of Update: 2018-12-03
轉自:http://www.byvoid.com/blog/sort-radix/[非基於比較的排序]在電腦科學中,排序是一門基礎的演算法技術,許多演算法都要以此作為基礎,不同的排序演算法有著不同的時間開銷和空間開銷。排序演算法有非常多種,如我們最常用的快速排序和堆排序等演算法,這些演算法需要對序列中的資料進行比較,因為被稱為基於比較的排序。基於比較的排序演算法是不能突破O(NlogN)的。簡單證明如下:N個數有N!個可能的排列情況,也就是說基於比較的排序演算法的判定樹有N!個葉子結點,比較次數
Time of Update: 2018-12-03
這周在上班的路上看了本書《Effective TCP/IP
Time of Update: 2018-12-03
需求:一個帶有廣告圖案的花紙杯。查看需求說明書。可從功能性、效能性、易用性、穩定性、安全性……方面進行測試功能性: 水杯的特性: 1、杯子的容量:能裝多少升水,少量、半杯、滿杯。 2、杯子的形狀eg:圓形、上口大、下口小。 3、杯子的材料:紙杯。 4、杯子的耐溫度:裝冷水、冰水、熱水。 5、杯子是否會漏水。 6、用杯子裝水,看是否能喝到 廣告的圖案: 1、廣告圖案是否容易剝落。 2、廣告圖案是否合法。
Time of Update: 2018-12-03
編程之美1.7的一道光影切割問題,經過分析之後,可以簡化為一個求逆序數的問題,當然求逆序數可以用非常暴力的O(N^2)的解法,但是,如果你正在接受一個面試,給出了O(N^2)的解法的話,面試官一定不會滿意,對你的印象也大打折扣,所以這裡主要是講解一些求逆序數的一些高效方法。以poj上的一道題目為例http://poj.org/problem?id=2299方法一:分治演算法我們知道排序中有一種高效的排序演算法是歸併排序,歸併排序在最壞情況下是O(NlogN)的,另外需要O(N)的空間。分治演算法
Time of Update: 2018-12-03
很多時候真的很羨慕VB/DELPHI程式員,他們可以方便的用各種控制項來搭建一個應用程式。而我們呢,要使用ActiveX控制項都要找大半天資料,而且還要手工做大量工作,真是不公平(呵呵,想想人家寫硬體驅動的程式員,我們還是輕鬆多了嘛)。下面我就簡單的來講一下如何引用一個ActiveX控制項,我以Flash控制項為例:這裡我就不一步一步講了,有興趣的話就下載原始碼吧:)點擊這裡下載工程原始碼// 首先要包含幾個COM標頭檔//
Time of Update: 2018-12-03
做個預測,放在這裡,不知道若干年之後能否應驗:5-10年內,影像處理技術將會走出實驗室而大放異彩,並會基於此誕生很多新的應用。理由:1. 圖片資源已經非常豐富,並且人們生產高品質圖片的手段越來越多,因此存在潛在的消費圖片的需求;2.技術已經比較成熟了,關鍵在於怎樣切入;當資訊不斷的分別從文本和圖片中擷取時,一個基於文本和圖片之上的資訊表示中介層就越來越重要。這可能會是Semantic Web的契機。
Time of Update: 2018-12-03
方法一:最最容易想到的方法,先加上二進位最後一位,通過&1可以得到,然後原數除以二int getCount(int number){int ans = 0;while(number){ans += num&1;num >>=1;}return ans;}方法二:如何消除最後一個1呢,這裡我們想到,如何判斷一個數是不是2的整數次冪呢,分析一下規律,如果一個數是2的整數次冪,那麼他的二進位表示只有一個1,然後我們令這個數減去1,則原來的1變為0,後面為0 的數全部變為1
Time of Update: 2018-12-03
在安裝virtualbox以後有時需要複製,移動虛擬磁碟等操作,這些操作在vmware的虛擬機器下面可以直接操作虛擬磁碟即可使用,但是在virtualbox環境下每個VDI檔案都有一個唯一的uuid,而VirtualBox不允許註冊重複的uuid,所以直接複製的VDI檔案是不能拿來使用的,我們就需要使用到virtualbox內建的管理命令來複製一個VDI,這樣通過命令複製的VDI檔案會重新分配到一個新的UUID,所以就不會有重複,就可以隨便移動,使用了。VBoxManage命令如下:VBoxMa
Time of Update: 2018-12-03
仔細看了看,已經很久沒有更新部落格了。 沒辦法,今年以來事情實在是太多了,公司的,家裡的,好不容易有點小空閑也想休息睡個覺什麼的,沒找到時間靜下心來寫東西。其實最近攢了不好貨的:看過一陣子CouchDB的文檔,把它的設計和技術細節搞得差不多了;實驗了BerkeleyDB,也看了些資料,確實是個很有個性的東西;可以考慮寫個SEDA原始碼的解析;pthread編程;搭建過一次ganglia,這個東西挺好,能省我不少事;最近狂看epoll編程,捎帶瞭解libevent,算是入了門;試用了protoco
Time of Update: 2018-12-03
現在談到國外的搜尋引擎,人們知道的大概就只有google。可是在七八年前,在google還沒成立或者剛剛成立的時候,那個時候的搜尋引擎界也是強者如雲,Inktomi就是其中之一。現在談Inktomi,基本上無人知曉,所以如果你想知道它當時的地位,可以把它看做是七八年前的google。當然,那時候的Inktomi還不具有今天的google這種一統天下的局面,但是也算是行業的領頭者。Inktomi和google的策略不同,它沒有門戶網站,也就是說它是不直接面向使用者的。Inktomi在當時是為其它的
Time of Update: 2018-12-03
Ubuntu10.04終於來了,鄙人認為10.04是一個堪稱完美的linux。贊一個~~!使用的過程中,在閱讀pdf時發現中文不顯示或有亂碼出現的現象。特將方解決方案記下,以備忘。方法如下。 開啟終端輸入sudo apt-get installxpdf-chinese-simplified和sudo apt-get install xpdf-chinese-traditional,如果還是不行的話輸入sudo apt-get install