原创 從erlang時間函數說到時間校正機制

很多人會注意到這個問題,erlang提供了2個時間函數,erlang:now() 和 os:timestamp()。用法一樣,都是返回當前的時間。具體時間是從1970年1月1日零時算起,到現在經過的時間,結果爲{MegaSecs, Sec

原创 Linux下編譯安裝Apache及模塊

Apache是時下最流行的Web服務器軟件之一,支持多平臺,可快速搭建web服務,而且穩定可靠,並可通過簡單的API擴充,就可以集成PHP/Python等語言解釋器。文章這裏講解如何在linux下編譯 Apache,以及如何編譯Apach

原创 C++ stderr/stdout 重定向到文件

通常,stderr和stdout被用來輸出內容顯示到屏幕,但是,有時候我們需要把這些信息寫到指定的文件,方便隨時查閱。最簡單的實現方式就是,把 stderr/stdout 的輸出重定向到文件。stderr/stdout 重定向到文件這裏以

原创 erlang進程監控的實現原理

Erlang支持Monitor和Link兩種監控進程的方式,使得所有進程可以連成一個整體。當某個進程出錯退出時,監控進程會收到該進程退出的消息通知。有了這些特點,使用Erlang建立一個簡單,並且健壯的系統就不是什麼難事。前面有文章分析了

原创 erlang catch的內部實現(初稿)

最近項目組有同事做了erlang內部數據(Eterm)的分享。Eterm 是Erlang Term的簡寫,用來表示erlang中任意類型的數據,也就是說,erlang可以用到的任意數據,都能 Eterm表示。比如常見的atom、數字、列表

原创 討論SQLite數據庫損壞與修復

昨晚,朋友和我反饋SQLite數據庫發生損壞有沒有辦法恢復。大致的情況是這樣的,當數據庫在使用時不小心用了新的文件覆蓋數據庫,導致了SQLite數據庫出現了損壞,打開的時候出現要輸入密碼,而且不能把SQL語句dump下來。所以,文章這裏整

原创 Git版本控制與github使用

Git是一個開源的分佈式版本控制系統,用於敏捷高效地管理項目。相較svn,git最大的特點就是分佈式,每個人都擁有一個克隆的版本庫,所以提交代碼、查看日誌、創建分支、合併分支、回退等等操作都直接在本地完成而不需要網絡。當然,本地版本庫需要

原创 Sublime Text3修復函數快速查找

Sublime Text 是一個很優秀的代碼編輯器,支持多達70種開發語言。不管是主流的開發語言如C, C++, Java等,還是稍冷門的Erlang, Go, Lisp等,都支持語法高亮,還可以手動擴充。優點是輕巧,體積小,運行速度快。

原创 linux獲取後臺進程的控制檯數據

linux提供了一個daemon函數,使得進程可以脫離控制檯運行,實現了後臺運行的效果。但是進程後臺運行後,原本在終端控制檯輸出的數據就看不到了。那麼,怎樣才能找回這些數據?這裏,文章主題就圍繞着 如何獲得後臺進程的控制檯數據,其中的原理

原创 erlang 接入遠程shell控制檯

erlang shell是用戶與 erlang 運行時系統交互的界面程序。事實上,erlang VM的運行不依賴任何shell,只要在啓動的時候添加參數detached就可以脫離終端。-detachedStarts the Erlang

原创 探討erlang消息選擇性接收特性

從 rabbitMQ 代碼中找到 gen_server2 , 對gen_server進行了一些優化。看到前輩寫的博文也提到這個,引發了我的思考。見 gen_server2 - OTP gen_server優化版 。gen_server2

原创 linux安裝skynet問題總結

skynet是爲在線遊戲服務器打造的輕量級框架,使用c+lua實現,支持linux 。使用這套框架能獲得很大收益,其中一個就是,基本只需要用lua開發,很少用到c,提高了開發效率。但是,skynet本身對系統有很大依賴性,安裝說明過於簡單

原创 使用IntelliJ IDEA開發erlang項目

最近erlang版本換到了R17,爲了很好支持中文,項目所有模塊文件第一行加了文件格式聲明:%% coding: latin-1 。但是,erlide會識別這個語句,導致中文顯示亂碼,這個暫時沒有選項可以解決這個問題。所以,我換了新的ID

原创 erlang虛擬機代碼執行原理

erlang是開源的,很多人都研究過源代碼。但是,從erlang代碼到c代碼,這是個不小的跨度,而且代碼也比較複雜。所以這裏,我利用一些時間,整理下erlang代碼的執行過程,從erlang代碼編譯過程,到代碼執行過程做講解,然後重點講下

原创 VMware局域網訪問遠程虛擬機

有時候在VMware虛擬機中的安裝了一些服務端程序,然後需要在局域網或公網中訪問它。此時,VMware爲我們提供了很好的解決方案,目前有兩種可行的方案:橋接模式,和NAT模式。橋接模式在橋接模式下,VMware虛擬出來的系統就像是局域網中