原创 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