Time of Update: 2018-12-04
作為程式員,我們曾經聞聽很多“業界動態”,“技術革新”,曾經接觸很多“高手箴言”,“權威推薦”。這些正確與否,都已成過去!現在,讓我們迎接 Erlang盛宴!一、經曆2007年 11月在 koders.com搜尋代碼時,發現 *.erl格式的源檔案,感歎開發語言的花樣百出,此時,我覺得 erlang是一個醜陋的小傢伙,看名字就沒有對它提起多少興趣。2008年初的時候,公司的項目開發中,我有緣認識了 ejabberd,一個採用 Erlang開發的開源
Time of Update: 2018-12-04
文章目錄 Day 1Day 1, EveningDay 2 轉載:http://timyang.net/category/erlang/ 本文整理了Erlounge IV Erlang杭州開發人員大會現場的記錄的Tweets列表,建議先到 http://ecug.org/agenda/ 下載演講文檔,以便理解上下文。Twitter的優勢是小之美,整理成一篇大文章比較雜亂,僅希望能給不在現場的讀者在閱讀演講稿時提供一些參考的資訊。文中
Time of Update: 2018-12-04
轉載:http://hiadmin.com/?p=1452常常感覺系統資源不夠用,一台機子上跑了不下3個比較重要的服務,但是每天我們還要在上面進行個備份壓縮等處理,網路長時間傳輸,這在就很影響本就不夠用的系統資源;這個時候我們就可以把一些不太重要的比如copy/備份/同步等工作限定在一顆cpu上,或者是多核的cpu的一顆核心上進行處理,雖然這不一定是最有效方法,但可以最大程度上利用了有效資源,降低那些不太重要的進程佔用cpu資源;查看系統下cpu資訊:#cat
Time of Update: 2018-12-04
Erlang系統在我看來有3個特性: 1. 分布 2. 多核心支援 3. fp。 這3個特性中分布我認為是erlang最強大的,從第一個版本就支援到現在,相對非常成熟,而多核心支援是這幾年才加進去的。 erlang的分布系統做到了2點: 1.節點的位置無關性;2. 對使用者分布式透明的。具體體現就是node是靠名字識別的, 進程也是靠pid來識別。 分布系統就要實現節點間通訊,erlang也不列外。 erlang的節點通訊介質是可以替換的 目前官方版本支援tcp, ssl通訊。可以用
Time of Update: 2018-12-04
erts_debug:get_internal_state是用來擷取Erlang運行期內部資訊的主要手段. 但是這個功能是用來給開發人員或者說需要瞭解系統內部細節的場合, 比如說系統調優.在R13B04可以使用的選項有:1. reds_left2. node_and_dist_references3. monitoring_nodes4. next_pid5. next_port6. ‘DbTable_words’7. check_io_debug8. process_info_args9.
Time of Update: 2018-12-04
因為學習erlang,下載了傳說中的rabbitmq,這個是工業級,學習一下還是有必要的。看看大師們如何用erlang,:http://www.rabbitmq.com/server.html。解壓後工程很整齊:先分析啟動進入點,環境為win7,其實對程式進入點我一直不太瞭解,感覺erlang程式的進入點沒有固定的,雖然可以通過檔案中的一些東西來分析出來,感覺不方便。開啟ebin目錄下發現了一個rabbit_app.in檔案,這個就是rabbitmq的應用檔案了。 {mod, {rabbit,
Time of Update: 2018-12-04
receive子句的訊息匹配模式:如果訊息很簡單,使用atom就可以描述的話,沒必要使用tuple,tuple會消耗更多的記憶體,而且減慢了進程的處理速度。 i()列出當前進程的詳細資料,regs()列出所有註冊進程和連接埠的詳細資料。ets:i()列出所有ets表的詳細資料。 atom不會被記憶體回收,因此為所有進程都進行註冊有可能會耗盡記憶體。建議只對長生命週期的進程進行註冊。 給pid發送訊息不會有任何錯誤,哪怕該進程不存在;但是,當註冊的進程不存在時,通過註冊名給它發訊息會出錯。
Time of Update: 2018-12-04
轉載:http://hi.baidu.com/let163/blog/item/f4877311703faedbf7039ef6.html1。Erlang的保留字有:after and andalso band begin bnot bor bsl bsr bxor case catch cond div end fun if let not of or orelse query receive rem try when
Time of Update: 2018-12-04
主備切換是很多高可用性系統都必須解決的問題,方法有很多,象基於ZooKeeper的主備切換就是一個很好的選擇。在這裡提供一種更簡單但不完美的主備切換方法:1) 假設A和B是叢集中的主控(Master)節點2) 1~7是工作節點(如HDFS中的DataNode)3)
Time of Update: 2018-12-04
請參考這篇文章 http://ftp.sunet.se/pub/lang/erlang/workshop/2003/paper/p29-carlsson.pdf 我這裡講述的重點是如何?的。先看代碼: root@nd-desktop:~/test/m# cat main.erl % File: main.erl -module(main). -export([start/0]). start() -> M1 = print:new("Humpty"), M2 =
Time of Update: 2018-12-04
關鍵字: process dict get put 一直以來 erlang的幾本書的作者都建議不要用process dict,倒不是它的效能不好,而是因為process dict破壞了fp的變數不可變語義,所以引起了不好的印象。其實在很多場合,是很合用的。process dict 有幾個好處: 1. 無鎖,所以高速。 2. hash實現。 3. 內容參與gc。 4. 實現的很細緻。 5. 變數可變。 以下是實驗: root@nd-desktop:~# cat dicttest.erl
Time of Update: 2018-12-04
MOOON主要訊息結構如下,缺點是訊息本身佔用位元組數較多:// 為何要做IPV4和IPV6區分?// 是因為如果只需要支援IPV4,則一個IP地址只需要用一個4位元組表示,// 這樣源和目的IP地址共節省了24位元組;// 支援IPV6時,同時相容IPV4,但對於IPV4多浪費24位元組;// 源和目標IP,要麼都為IPV4,要麼都為IPV6,不允許交叉出現。#ifdef IPV6_SUPPORTED #define IP_BYTES (4*4) // IPV6的地址長度#else
Time of Update: 2018-12-04
erlang的trap機制在實現中用的很多,在費時的BIF操作中基本上都可以看到。它的實現需要erl vm的配合。它的作用基本上有3個: 1. 把費時操作分階段做。由於erlang是個軟即時系統,一個進程或者bif不能無限制的佔用cpu時間。所以erlang的每個進程執行的時候,最多隻能執行一定數量的指令.這個是設計方面的目標。實現上也要配套。所以比如md5,list_member尋找這種可能耗時的操作都是用trap機制來實現的,也就是說 當進程調度到的時候 執行一定數量的計算
Time of Update: 2018-12-04
轉載:http://forum.ubuntu.org.cn/viewtopic.php?t=339148想將ubunut 11.04 的預設運行層級改為命令列模式,按照下面的方法來做,"Ubuntu開機啟動到字元介面預設安裝的Ubuntu Linux會直接到圖形介面。不過很多時候我並不需要在圖形介面上做事,字元介面的命令列就足夠了。想起在RedHat裡可以通過修改/etc /inittab來把預設運行等級(run
Time of Update: 2018-12-04
您好!我今年42歲,從事公司採購,平時應酬比較多。上周做了全身檢查,查出幽門螺旋杆菌陽性,但平時自我感覺沒什麼不適癥狀,不知要緊嗎,到底是如何染上的,會不會傳染給家人?幽門螺旋杆菌感染率高達50%至60%幽門螺旋杆菌是目前人類感染最為普遍的細菌,全世界約有一半人口感染幽門螺旋杆菌。它是一種螺旋形微需氧的革蘭氏陰性杆菌,定植於人類胃黏膜,是人類慢性胃炎、消化性潰瘍的主要病因,大約67%至80%的胃潰瘍和95%的十二指腸潰瘍都是由幽門螺旋杆菌引起的,其感染還與胃癌、胃黏膜相關淋巴樣組織淋巴瘤的發生密
Time of Update: 2018-12-04
轉載:http://www.oschina.net/question/234345_42536?sort=time伺服器如果是叢集,不同伺服器返回的 Http Header 中的 Etag 參數不一樣。如果是圖片是程式產生的,我們可以用 no-cache 這些 header 來控制,但如果這些圖片是 apache 或 nginx 等呢? 下面開始介紹 Etag: Etag在HTTP1.1中有介紹,主要的作用就是在(css file, image, javascript
Time of Update: 2018-12-04
看到erlang-china.org上有個文章在問這個問題 引用一直不太明白iolist,跟list到底有什麼區別?請各位大俠指教。。我翻看了半天erlang的文檔也沒寫的太明白,所以就看看源碼: erts/emulator/beam/utils.c Java代碼 3015int io_list_len(Eterm obj) 3016{ 3017 Eterm* objp; 3018 Sint len = 0; 3019 DECLARE_ESTACK(s);
Time of Update: 2018-12-04
轉載:http://www.ppkj.net/tag/selinux/開了SELinux和防火牆,沒想到引出了vsftp的問題。FTP登入報錯:500 OOPS: cannot change directory。下面來看看產生這個問題的原因和對策。首先,分析一下衝突原因:1. 為鎖定使用者在自己的home目錄中,在vsftpd.conf開啟chroot_local_user。這樣FTP登入使用者的“/”,就是passwd中的home
Time of Update: 2018-12-04
吃完飯打個飽嗝,會給人帶來酒足飯飽的“幸福感”。一般來說,打嗝只是一種生理反應,但是經常打嗝可能提示你的胃不好。 人為什麼會打嗝 打嗝其實是人類進化的產物,也是身體的保護反應,在胸腔和腹腔之間,有一個像帽子似的厚厚的肌肉膜,稱為膈肌,將胸腔和腹腔分隔開。和身體其他器官一樣,膈肌也有神經分布和血液供應。一旦刺激膈肌,神經就會把刺激傳導給大腦,大腦就會發出指令,使膈肌出現陣發性和痙攣性收縮,於是就出現了打嗝。 這種刺激大多來自胃部脹大的壓力,因此生活中人們常常因為吃飯急或吃飯時說話吞入了較多的
Time of Update: 2018-12-04
轉載:http://wiki.ubuntu.org.cn/%E5%A6%82%E4%BD%95%E7%A6%81%E7%94%A8IPv6禁用 IPv6for ubuntu 1. 在終端下輸入 gksudo gedit /etc/modprobe.d/aliases 2. 注釋掉這一行 alias net-pf-10 ipv6 3. 存檔 4. 在終端下輸入 gksudo gedit /etc/modprobe.d/blacklist 5. 加入這一行