Notebook

Your awesome Tagline

3 notes

Introduction to Node.js

前幾天在Taipei GTUG與社群的朋友們分享Node.js的學習心得,雖然我學習Node.js的時間也不算長,但是對於其許多特性以及細緻的設計感到十分的有意思,希望可以呼朋引伴一同交流。

當天的主題主要包含Node.js的基本介紹,Event-loop的概念解釋和一些需要注意的地方,最後用了大家會比較有興趣的Comet Server作為範例來讓大家體會Node.js在實務上可能的使用方式。

以下是我當天所使用的投影片,在會後也有針對一些小錯誤進行修正:

 

另外當天現場也有錄影,有興趣的朋友也歡迎參考指教:

Filed under node.js presentation gtug

1 note

How Facebook Ships Code

許多有趣Facebook的內幕消息可以參考,幾點筆記摘要:

  • Facebook是個相當工程師文化導向的公司,PM扮演的角色相當薄弱
  • 工程師大多必須負責從前端一直到後端的所有細節,設計師和架構師不會主動參與專案
  • 後端的複雜架構專案較使用者端的產品受到工程師的歡迎
  • Mark Zuckerberg會針對核心功能(news feed)進行code review
  • 沒有QA,工程師要自己測試,自己發現bug、自己修bug
  • 也很少有unit testing,因為Facebook的工程師大多可以寫出bug很少的程式
  • 每週二會開始佈署新版的code,有commit codes的工程師必須on-site
  • 大約有60000台機器,佈署時分成九個層級,最小的層級只有六台機器
  • 照層級順序佈署,若是中間發現問題就重頭開始
  • 程式碼佈署時太常出問題,或者是經常無法準時完成專案就會被開除
  • 包含VP或是CXO在內,Facebook的每個人都必須有很好的生產力和能力才能夠留在公司

Filed under facebook operation

0 notes

Haskell on CUDA

最近Haskell界有一篇文章相當熱門,是Manuel ChakravartyAccelerating Haskell Array Codes with Multicore GPUs,談到了他們如何透過NVIDIA的CUDA GPU運算技術來加速Haskell中多維陣列的運算。

大體上來看,在他們的實作Accelerate中先建立了一套Embedded Domain-Specific Language來處理多維陣列的運算和操作,然後透過dynamic code generator將程式轉換為CUDA針對矩陣操作的skeletons,然後再經由backend engine交給CUDA執行。

相當的有意思。畢竟透過傳統的C/C++來撰寫CUDA的程式,在表達複雜的平行運算時會有表達能力的限制,但若是能透過Haskell這樣高階的functional language來設計,那麼很多有趣的點子或許就能因此加速實現了。

Filed under haskell cuda gpgpu parallel computing dsl

Notes

一年之後、終於修好了Mac的休眠問題

對於許多MacBook的使用者來說,使用Mac最愉快的事情之一,是可以直接把電腦螢幕蓋起來便進入休眠模式,雖然這樣做對硬碟有一定的風險,但就短距離的快速移動來說仍然是相當方便的。

然而,我的MacBook Pro 15”卻一直都有著待機的問題,當闔起螢幕時確實會進入休眠模式,但在幾秒鐘後便會自動被喚醒,當去檢查硬體訊息(在終端機下輸入sudo dmesg),會發現有類似:

Wake reason = RTC

這樣的訊息出現,也就是系統因為某個原因而被自動喚醒了。

即便是拿去送修、花了不少錢換了零件還是無法解決,顯然問題就是出在系統軟體上了,於是不知為何今天下午忽然對這件事情感到很困擾,在翻遍了Apple官方的討論區後終於得到解答。

大體而言,可能嘗試的解決方式包含:

  • 移除那些會在系統開機時自動執行的軟體,像是可以調整開機聲的StartupSound.prefPane便是一個例子。
  • PRAM和NVRAM需要reset,可以參考官方的教學
  • SMC需要reset,一樣可以參考官方的教學
  • 移除/Library/Preferences/SystemConfiguration/com.apple.AutoWake.plist

透過以上幾個步驟,我便修好了Mac的休眠功能了,在此留個記錄提供未來參考。

Filed under Mac tips