原创 SGI STL安裝

SGI STL安裝 STL的版本有很多個,其中的SGI版本的使用非常廣,linux下的GCC用的就是這個。現在有個sport組織致力於把SGI版本的移植到其他平臺上。 下面以安裝到vc6爲例: 侯捷的《STL源碼剖析》那本書的附錄裏有孟巖

原创 2010,又發現騰訊QQ的一個Bug

2010,新的一年,新的開始,換個QQ簽名。一換居然發現了QQ2009的一個bug。   bug描述: 發現日期:2010年1月4日20:22:12 重現步驟: 1.鼠標點擊QQ2009主界面的簽名區域(在頭像的右邊,天氣預報的左邊);

原创 初始化零:ZeroMemory、memset、{0x00}的區別

C++中,結構,數組,類對象等初始化,一般情況下是需要初始化爲零,初始化爲零又有好幾種情況,下面結合自己編程經驗,淺談一下。   1.memset函數是C庫提供的,把某個對象初始化爲某值,如:memset(this, 0, sizeof(

原创 深度探索C++對象模型學習筆記——Data語意學

例子: class X{};class Y: public virtual X {};class Z: public virtual X {};class A: public Y, public Z {};   對象大小由下述原因決定1.

原创 內存池(MemPool)

話說內存池貌似是一個比較深刻的話題,每當想去嘗試一下,然而深感自己積累不足;今天終於有積累,有時間會會內存池了。之前看過STL中Alloc,即空間配置器的設計思想以及實現;後續看過ACE的Block,都是關於內存池的不同見解。   今天有

原创 快速搭建SVN服務器

以往下載 Setup-Subversion , 下載Apache安裝,svn服務配置,權限配置,麻煩之極了,其實在window下沒有必要這麼麻煩。   捷徑步驟: 1. 直接下載VisualSVN Server即可了,下載它的免費版本已經

原创 Lua源碼閱讀三——lua字符串緩存

本篇文章,主要探討一下lua中的字符串緩存管理(涉及到的文件 lstring.c )。   在lua的9種數據類型中,字符串是屬於可以被GC回收的類型。在lua中,操作字符串實際上是在操作字符串引用,當字符串不在被使用的時候,GC會通過一

原创 erlide下的erlang調試

erlang近幾年躥的很快,看下windows下的調式方法吧,一般使用官方的debugger,或者eride調試模式,本人使用了eclipse+erlide模式: 1.安裝eclipse環境,java6+eclipse4.2,安裝erl

原创 漫談sscanf高級特性

格式化輸出API, printf, sprintf, vsprintf等等早已被大家知悉,使用規則也是瞭如指掌: 比如 %d, %s, %p, %-02d等等;   sscanf 相當使用的略少,它的用法除了常用的 %d, %s, %c等

原创 讓GAE再飛一會

GAE不能訪問,很是悲慘。再加個host搞定  #coding=utf8 import os def add_gae_access(): host_file_path = os.path.join(os.getenv('win

原创 Lua源碼閱讀四——lua虛擬機指令系統

本篇文章,主要探討一下lua中的指令系統(涉及到的文件 lopcodes.c )。   在lua中,用32位的unsigned int類型來表示一條指令操作碼,32位值包含了6位的操作碼和26位的指令字段兩部分內容。   All inst

原创 網上流傳的一面試題目

先來看一副圖吧:   題目的意思給一個初始值6,打印如上圖形,先仔細分析分析看: 1.圖形是6行6列; 2.從第一行第一列的位置開始,轉圈,數值依次增加; 3.第一列第一行的初始值是1;   進一步分析: 1:起始值:x=0,y=0,d

原创 DX步步爲營(二)——繪製流水線(T&L)

繪製流水線(Transforming & Lighting),聽起來很像是一道工序一樣,沒錯,它就是將建立了3D場景和虛擬攝像機的幾何描述,在顯示器中2D表示的一個過程。      繪製流水線一般步驟: 局部座標系(自己的座標系)——>世

原创 哪些需要重構?

近期再度《重構》,有感而記:   Bad smells in Code(不好的代碼):1.Duplicated Code(重複的代碼),同一份代碼出現在一次以上;2.Long Method(過長代碼),一個函數太長,功能包羅萬象;3.La

原创 DX步步爲營(一)——D3D初始化步驟

在下列步驟之前,需要: #include<d3dx9.h>   #pragma comment(lib,"d3d9.lib")#pragma comment(lib,"d3dx9.lib")   1.通過接口 Direct3DCreate