原创 不要使用Windows的系統時間做數據排序

Windows系統時間並不準確。 除了機器本身的電池有問題之外,還有因爲其他原因導致系統時間變慢,甚至倒退。 我做了一個WindowsXP的實驗, 編寫了一個計時器,每個10微秒寫一次當前系統時間的log,打開計時器 然後在機器中尋找有大

原创 我是一個反覆無常的程序員

我非常喜歡老杜在CSDN Blog上的Title,永遠的IT Specialist。在我們公司沒有Programmer這個職位名稱,是個很遺憾的事,可能很多人都不願意“只”成爲Programmer。2001年從日本留學回國後進入研究生院,

原创 解讀Java Class文件格式

1.目的 大型軟件系統開發時,某些Java組件可能涉及到多種數據庫或中間件系統的連接和應用,例如一個數據傳遞組件需要從DB2中讀取數據,並將數據通過中間件WebSphere MQ發送到其他系統,這類組件功能單一,但卻需要連接多種第三方產品

原创 JNI之C++調用Java類 ——java.lang.String

JNI之C++調用Java類               ——java.lang.String               爲什麼要用C++調用Java類?很難回答,寫着文章只是覺得JNI很有意思。於是開始編寫一段使用VC++在Wind

原创 未來軟件開發模式

  1.傳統軟件開發模式   傳統(目前)軟件開發模式如圖1,分爲開發環境,測試環境,和客戶運行環境。開發客戶端(Deve Client)負責軟件編碼,並將代碼發佈到測試環境的開發測試機(Deve Test Env),該機可以被開發者訪問

原创 軟件職業的天與地

        我所說的軟件職業的“天”指的是應用程序上層領域,天越高越要總攬全局。而“地”指的是系統程序底層領域,地下越深越要掌握細小高深的技術。          人往天上做被看作使大多數公司軟件職業的發展路線。首先是應用程序的開發

原创 用JavaScript實現動態圖形

用JavaScript實現動態圖形 1.JavaScript與2D圖形  JavaScript的神奇之處遠遠超過一般程序員的想象。JavaScript可以實現所有的二維圖形。看到我的Blog左面,它就是使用JavaScript和Goog

原创 1個人開發操作系統-初篇

開發操作系統一直被認爲是高不可攀的事,的確,開發一個安全的,完整的,健全的OS是非常複雜的工作,不是一兩個人能完成的。但是一個簡易的操作系統是可以由一個人在很短的時間開發出來的。我將陸續發表開發簡易操作系統的全過程,盡力提供完整的源代碼

原创 1個人開發操作系統之數組與字符串的使用

《1個人開發操作系統之界面與字體》一文中有遺留一個困擾我3周的問題。既字符串和數組編譯後屬於.data section,使用objcopy,將obj文件轉換爲binary文件後,程序不能正確地找到這些.data section的地址。其實

原创 ActionScript 3的HTTPTunnel的實現

ActionScript 3是Adobe公司開發的用於編寫Flash的腳本語言。Adobe新推出的Adobe Flex的Rich Internet Application開發平臺同樣支持Action Script。ActionScript

原创 JVM之數據區結構

1.PC寄存器  每個線程有一個PC寄存器,如果不是Native,則PC寄存器包含當前正在執行的Java虛擬機指令的地址,如果是Native則不定義。   2.Stack   線程私有,與線程同時創建的Java Stack。一個JVM

原创 解讀PE/COFF文件格式

Windows平臺內開發操作系統,在用Cygwin版的GCC編譯源文件是遇到這樣一個問題,如果使用gcc –c bootpack.c會生成bootpack.o文件,使用HEX編輯器打開改文件你會看到這樣的代碼: 圖1 代碼中紅色框內的

原创 Compile Farm與Library管理

http://www.sourceforge.net,每個開源愛好者經常光顧的地方,已經成爲世界最大的開源軟件項目管理平臺。雖然她已久負盛名,我相信她的很多誘人的服務還不爲大多數中國程序員所知。Compile Farm,這個服務是Sour

原创 探索JVM運行狀態的利器—JVMPI,HPROF

1.什麼是JVMPI?Java Virtual Machine Profiler Interface。參考 http://java.sun.com/j2se/1.4.2/docs/guide/jvmpi/jvmpi.html#overvi

原创 JVM GC的Heap

JVM的一個關鍵特徵是它的GC Heap。Heap保存了Java運行期的所有對象,數組。GC可以動態釋放Heap中不再使用的空間。在Java程序裏,一個對象可以通過關鍵字new來創建,“創建”對於JVM來說就是在Heap裏分配一塊空間保存