原创 golang 與 duck typing

原文:http://floss.zoomquiet.io/data/20120904000006/index.html 追加: http://blog.zhaojie.me/2013/04/why-i-dont-like-go-styl

原创 Unix域協議簡介

前言 已經不記得什麼時候第一次接觸Unix Domain Socket(下文簡稱UDS),在我印象中,所謂UDS基本等同於本地環回接口(lo)上的TCP或者UDP,而事實上UDS所用的API也確實是套接字API。也許正因爲這些先入爲主

原创 Cached VS Buffers

What is the difference between Buffers and Cached columns in /proc/meminfo output? cat /proc/meminfo MemTotal: 

原创 tcpdump丟包問題解決方法

補充: tcpdump -B buffer_size -B Set the operating system capture buffer size to buffer_size /************************

原创 利用RawSocket篡改UDP源地址

補充交流: 私下交流的時候,寶哥哥提到爲何不考慮TGW或者LVS作爲解決方案? 經過一番調研,無論是TGW還是LVS的DR模式,所謂的session保持功能主要還是基於TCP長連接而言(TGW支持基於客戶端IP的保持功能),其實

原创 當C/C++後臺開發遇上Coroutine

說來有點無厘頭,Coroutine最近在公司的C/C++後臺開發界,莫名其妙就火起來了,話說這貨Melvin Conway在1963年的paper就已經提出來了,半個世紀過去了,咋突然冒出那麼多粉絲出來,個人猜測與微信後臺近期的Coro

原创 Raft一致性算法

Why Not Paxos Paxos算法是萊斯利·蘭伯特(LeslieLamport,就是 LaTeX 中的”La”,此人現在在微軟研究院)於1990年提出的一種基於消息傳遞的一致性算法。由於算法難以理解起初並沒有引起人們的重視,使La

原创 Web 安全編程實戰

Web 安全編程實戰 Web 安全問題,很多時候會被程序員所忽略,因爲他們相信會有專業的運維人員或者安全服務團隊幫助他們尋找漏洞,並且指導他們修改這些漏洞。而對於小公司,沒有這樣專業的人員又怎麼辦呢?安全漏洞造成了很多不必

原创 漫談C++11多線程內存模型

寫在前面         “C++11 feels like a new language” - Bjarne Stroustrup         的確,C++11核心已經發生了巨大的變化,它現在支持Lambda表達式、對象類型自動推斷

原创 C++中的exit&&abort

void exit(int status); Terminate calling process Terminates the process normally, performing the regular cleanup for te

原创 STL Support Tools for GDB

STL Support Tools When you try to use GDB's "print" command to display the contents of a vector, a stack, or any othe

原创 Inheritance vs Composition

最近在學習golang的過程中,發現golang拋棄了inheritance,僅支持composition。爲了弄清楚兩者的優缺點,翻閱了很多材料,發現下面兩篇文章寫得不錯,有興趣的tx可以讀一讀: http://www.javawo

原创 “向前兼容”&&“向後兼容”

“向前兼容”——Forward compatibility A standard supports forward compatibility if older product versions can receive, read, v

原创 Golang後臺開發初體驗

補充反饋 slice 既然聊到slice,就不得不提它的近親array,這裏不太想提值類型和引用類型的概念(個人覺得其實都是值類型),golang的array其實可以假想爲C的struct類型,只是struct通過變量名來訪問成員(如

原创 基於Boost.MultiIndex實現的Session管理器

#ifndef SESSION_MANAGER_ #define SESSION_MANAGER_ #include <boost/multi_index_container.hpp> #include <boost/multi_ind