原创 可恢復的安全rm

我們經常使用rm去刪除一些文件,如果不小手一抖,那麼就悲劇了,你們都懂的。。。 在經歷過一次這樣的慘劇後,決定永遠杜絕這種情況,重寫寫了shell函數,執行安全的rm。這個函數會把要刪除的文件按日期備份到指定的目錄,同時根據刪除時間的不

原创 基於vim搭建Go開發環境

Go作爲一門新興語言,發展的如火如荼啊。不過,目前還沒有一個成熟的IDE。本文介紹基於vim搭建Go的開發環境,保證在具有vim的快感的同時,又支持Go的特性。1. Go環境 首先,是安裝Go。下載安裝包,解壓,然後設置環境變量 GOR

原创 redis源碼分析(1)——初始化

最近一直在看redis的源碼,準備把對源碼的理解以及閱讀心得記錄下來,避免忘記並可以和大家分享、談論。看代碼的思路很簡單,直接從main函數走起,先看看初始化過程。 redis中一個最重要的數據結構是redis_server,會創建一個

原创 LevelDB源碼閱讀(1)—— SSTable的生成

leveldb會按照不同版本組織數據(level-0 -> level-n,從新到舊),這些數據以SSTable格式存儲於磁盤上。一個SSTable文件可以看成一個基於磁盤、只讀的map,支持順序掃描,同時可以查找某個key。本文就來探

原创 redis源碼分析(3)——請求處理

前兩篇介紹了redis的初始化過程,以及事件循環。本篇來看一下客戶端的連接建立與請求處理。(1)連接建立 在初始化一篇中提到過,redis在將監聽socket初始化完畢之後,會將他們添加到事件循環中: for (j = 0; j

原创 MAC下thrift安裝

按照thrift官網上的文檔進行安裝,步驟如下: 1. 安裝boost ./bootstrap.sh —prefix=PATH_TO_BOOST sudo ./b2 threading=multi address-model=64 va

原创 程序的前世今生——編譯、鏈接和加載簡介

        本篇文章是組內分享的小結,主要介紹源代碼 -> 可執行程序 -> 執行這一過程。也就是源代碼是如何轉化爲可執行程序,然後可執行程序又是如何執行的。在用java或python時,只需要java ClsName或者python

原创 Linux性能監控(1)

        linux性能監控,就是要監控系統的各個子系統是否正常。linux主要的子系統包括:CPU、Memory、IO和Network,它們之間相互依賴,一個出問題可能會影響其他的。比如:網卡流量很大會導致更多的CPU開銷,因爲頻

原创 Linux下進程的文件訪問權限

對進程校驗文件訪問權限包括兩個部分,一是確定進程的角色(屬於哪個用戶或者組),二是確定對應的角色是否具有該操作的權限。 首先看第一部分。默認情況下,進程的有效角色就是當前執行這個進程的用戶及其所在組。但是,文件具有設置用戶ID位和設置組

原创 C語言字符串分割——strtok

        之前遇到字符串分割的需求時,都是自己去實現,最近發現其實c標準庫已經提供了這個功能。對標準庫還是不熟悉啊,導致重複造車輪了,有必要把標準庫看一下。。。         先看一下之前自己實現的字符串分割函數: void st

原创 Mac下/usr/include缺失

Mac升級到Yosemite後,突然發現vim的YouCompleteMe查件的代碼提示不好使了,排查了一下,原來是/usr/include文件夾不見了,所有的C/C++的頭文件都沒了。。。 第一次發現這個問題,不知道是不是每次Mac升

原创 構造文法時表達式中算符優先級的問題

        文法用於描述一種語言,語言中包含多個句子,句子又是由表達式組成的。多個原子表達式(不可再分的表達式,比如:a+b,c*d,-a等)和

原创 BigTable讀書筆記

一、概述     BigTable是一個分佈式的結構化的存儲系統,是一個分佈式的NoSQL數據庫,本質上就是一個分佈式的B+樹索引。適於存儲結構化、半結構化的海量數據(通常是分佈在數千臺服務器上的PB級數據)。二、數據模型     Big

原创 mod_wsgi + pymssql訪問SQL Server阻塞

在通過pymssql訪問SQL Server時,直接在python中運行沒有問題,在通過mod_wsgi和Apache進行部署時,發現所有請求都hang再數據庫查詢。 通過google查到了答案,感謝google,詳細描述請見:http

原创 Java和C++中多態的實現方式

多態是面向對象的最主要的特性之一,是一種方法的動態綁定,實現運行時的類型決定對象的行爲。多態的表現形式是父類指針或引用指向子類對象,在這個指針上調用的方法使用子類的實現版本。多態是IOC、模板模式實現的關鍵。 在C++中通過虛函數表的方