Posted on 2009-11-08 00:12
dennis 閱讀(1108)
評論(1) 編輯 收藏 所屬分類:
涂鴉
今天和同事一起去參加了
CN-Erlounge IV大會,大會的精彩程度超過我的預期,每個Topic都是精心準備并且非常實在,并且見到了很多只聞其名未見其人的大牛,比如傳說中的T1、許老大、莊表偉、周愛民老師等。我們3個太早去了,8點半到了會場,發現大多數還沒來,阿寶同學和鋒爺他們更是9點多才出的門,因此整個會議進程都相應推遲了。
首先是校內網的成立濤做了《Erlang開發實踐》的演講,主題是一個典型的Erlang項目的開發流程、目錄結構、單元測試、集成測試、常見問題解決等的概括性介紹,并且他還特意寫了一個工程作為Sample,就是放在google code上的
erlips,非常佩服這樣的專業精神。交流提到校內網已經部署了30個以上的Erlang節點做廣告推送系統。Topic本身非常實在,并且有實際的代碼和工程文件提供,可以作為了解Erlang開發基本過程的骨架工程。接下來是鋒爺的重頭戲《Erlang系統調優》,鋒爺的Topic其實超出了Erlang的范疇,對所有系統的性能調優都有借鑒的意義,主題本身將Erlang平臺和unix操作系統做了比較,認為Erlang本身也是個OS平臺,并且介紹了Erlang提供的方方面面的工具,包括調試、診斷、性能剖析、監控、語言級別的優化、系統的優化選項、協議的選型、應該避免的陷阱、最佳實踐等等,你不得不承認Erlang實在是太牛x了,這樣的平臺難怪能做到7個9的可靠性。這個Topic非常精彩,從ppt本身能看到的只是局部信息,等有視頻的時候準備重新看看。
中午組委會提供了午餐,還是很方便,會議的地點吃飯地方不好找,不過晚飯沒提供,我們跑了不遠的路找了家小飯館解決晚飯問題。下午的Topic一開始是
餓狼戰役的創建者老范的介紹 ,餓狼戰役是一個Erlang編寫的棋牌型的游戲,玩家可以編寫自己的指揮進程參與競賽,實際上是作為一個Erlang學習的良好環境,類似過去非常流行的robot code游戲一樣。我因為跟阿寶他們去閑逛,錯過了大部分介紹,源碼已經讀過,不過我對AI一點也不了解,寫個程序干掉英格蘭衛兵還是沒問題的,哈哈。后來是python社區的大媽介紹了
erlbattle社區的養成問題,談到了一個社區的生命周期問題,如何去建設一個技術社區,我沒有多少感受,不多扯了。餓狼戰役推薦去看看,如果你對AI或者erlang有興趣的話,可以去試試。接下來是T1做的《CUDA編程》的Topic,這個Topic我在提前看ppt的時候就覺的估計自己完全聽不懂,最后果然如此,這是一個關于現在很熱門GPU編程的Topic,講述了如何在10ms內完成jpeg的壓縮的優化手段和編程技巧,最終的結果是2毫秒多一點就搞定了這個需求,T1介紹的非常詳細關于算法和技巧方面的細節,完全跟做工程的是兩個世界。T1大大是火星人,咱就不多說了,景仰就行了。
晚上的兩個Topic都是關于如何在C++中借鑒Erlang來實現消息傳遞風格的編程,51.com的qiezi和崔博介紹了他們的actor框架,他們是基于協程和線程池調度來實現偽同步調用,可以實現類似Erlang的進程風格的消息傳遞,但是要做一個工作就是將類似socket讀寫、文件讀寫、sleep這樣的阻塞調用封裝一下,有異步io可以利用的就利用異步IO,沒有的就使用線程池調度,事實上他們做的事情正是Erlang已經幫你做了,現場有很多爭議,認為這樣還不如使用Erlang,因為你這樣做無法避免兩個問題:協程的異常處理和阻塞調用可能導致整個進程內的協程不可用,畢竟協程是非搶占式的,并且無法充分利用多CPU的優勢。但是許老大提到,從工程實踐角度,Erlang畢竟還是小眾語言,維護和招人上都不容易,而系統的高可靠性可以從更高層次上去解決,而我們可以從Erlang借鑒這些做法來改進我們的傳統語言編程模型。許老大還提到他認為的Erlang編程模型的兩個缺點:一個是同步調用的死鎖問題,一個是資源進程的獨占性問題,這兩個問題最終還是要回歸到異步模型。這兩個問題,我認為其實是一個問題,還是由于資源的有限和獨占性引起的,像IO這樣的資源就是,你可以將請求并行化設置回調函數不阻塞調用本身,但是實際的IO讀寫本身仍然是串行的,只不過將這部分工作交給誰來做的問題,我覺的這個問題對于任何編程語言都是一樣的無法解決的。對于同步模型和異步模型本身,我更偏向于同步模型,這從xmc的API就可以看出來,同步模型更符合人類直覺,也易于使用,而異步模型容易將業務碎片化,不直觀并且使用上也不便利。
以上是今天的流水賬,有興趣看到這的估計沒幾個,哇咔咔。
補充,遺漏了一個香港老外作的topic演講,是關于erlang實現的restms,restms是一種restful的message協議,現在想來他主要介紹了restms協議以及一個erlang實現,也就是fireflymq,其中特別介紹了riak這樣一個key-value store,它類似amazon dynamo,同樣采用consistent hash,多節點備份,vector clock同步等等,比較特殊的地方是他可以將數據組織成類似web超鏈接形成的網狀結構并存儲和查詢。