原创 epoll使用詳解[轉載]

epoll - I/O event notification facility在linux的網絡編程中,很長的時間都在使用select來做事件觸發。在linux新的內核中,有了一種替換它的機制,就是epoll。相比於select,epo

原创 從彙編角度看C++模板

1. 模板函數                  模板函數定義的就是一種函數。既然是函數,那麼就有輸入數據和輸出數據。和模板類的概念差不多,模板函數的初衷也是爲了在函數操作上抽取共同的特性,屏蔽的是類型的不同和差異。        

原创 物理IO與邏輯IO

IO性能對於一個系統的影響是至關重要的。一個系統經過多項優化以後,瓶頸往往落在數據庫;而數據庫經過多種優化以後,瓶頸最終會落到IO。而IO性能的發展,明顯落後於CPU的發展。Memchached也好,NoSql也好,這些流行技術的背

原创 最簡單的平衡樹(紅-黑樹)的實現

在二叉搜索樹(BST)的基礎上,要實現一顆平衡樹,可以使用2-3樹的方式,2-3樹的直接實現,相對比較複雜 ,因此算法的研究者們提出了紅-黑樹的實現方式。   package com.test; public class RedBla

原创 從c面向對象的實現理解c++的對象(二)

1. 類就可以看作一個struct,類的方法,可以理解爲通過函數指針的方式實現的,類對象分配內存時,只分配成員變量的,函數指針並不需要分配額外的內存保存地址。 2. c++中類的構造函數,就是進行內存分配(malloc),調用構造函數

原创 linux c時間操作相關函數

1. linux c的時間操作的函數關係圖如下:     2. strftime時間格式化的說明如下:   specifier Replaced by Example %a Abbreviated weekday name * Thu

原创 A tcpdump Tutorial and Primer[reproduced]

tcpdump is the premier network analysis tool for information security professionals. Having a solid grasp of this über

原创 使用 GNU Libtool 創建庫[轉載]

介紹 在不同的系統中建立動態鏈接庫的方法有很大的差別,這主要是因爲每個系統對動態鏈接庫的看法和實現並不相同,以及編譯器對動態鏈接庫支持的選項也不太一樣。對於開發人員,如果嘗試將使用動態庫的軟件在這些系統之間移植,需要參考枯澀難懂的系統手

原创 c內存操作感悟(2)

不從分配的地址開始訪問, 希望跳過一些字節, 怎麼處理?   如下一段代碼正確麼(假設文件名爲test.c)?   #include <stdio.h> #include <stdlib.h> int main(void) { vo

原创 聽吳軍博士的"機器智能與未來世界"講座的一點筆記

1. 摩爾定律(機器計算速度已經越來越快),  大數據(有了數據), 數學模型, 三者加在一起, 能起到質的變化   2. 大數據: 不僅僅是量大, 不僅僅是結構化與非結構化的區別, 需要多維度的數據(例如一個人的細胞, 數據量很大,

原创 字符集編碼與 C/C++ 源文件字符編譯亂彈[轉載]

最近在看國際化編程 (i18n: internationalization) 的東西,也弄清楚了點字符集有關的一些問題,其實網上的一些牛人已經將字符集、Unicode 等相關的問題說的很清楚了,我在這裏引用他們的總結並自己小結一下心得

原创 Spy on Yourself with tcpdump[轉載]

As a network administrator, you've got to cultivate a certain amount of professional paranoia. tcpdump indulges your n

原创 Keyspace中的paxos [轉載]

1. Keyspace Keyspace是一款基於Paxos的開源Key-Value的數據庫,底層存儲基於BerkelyDB,Keyspace的核心功能是在 BerkelyDB之上添加了一致層,保證每個節點的數據完全一致。Keyspac

原创 正確地組織python項目的結構 [轉載]

統一的項目結構 寫了不少python項目後, 越來越認識到Python項目結構重要性. 不管項目是否要開源, 是否要提交pypi, 項目結構的一致性帶來的好處還有很多: 多人合作開發大家都有個基本的guideline, 別人日後維護也

原创 c語言查詢mysql示例

1.安裝mysql-server,在Ubuntu 10.04下安裝mysql-server-5.1,會自動安裝mysql-client_5.1  sudo apt-get install mysql-server-5.1 2.C API