推薦系統的課程...

推薦系統已經是顯學了,如果不要太暴力的演算法 (太學術而導致相依性太高) 也都有現成的 Map-Reduce 類演算法可以處理大量資料。但如果要知從頭學起的話,資料反而不太好找?

然後... 也是上個禮拜看到的,現在在 Coursera 上有這樣一門課程:「Introduction to Recommender Systems」,在今年 (2013 年) 九月開課。有興趣慢慢學的當然可以去報名,不過我想說的是,這門課程的 Course Syllabus 列出了很多關鍵字,如果不想等九月開課的人,拿這些關鍵字搜尋資料也可以馬上學到不少東西。

另外一個入口是 Wikipedia:「Recommender system」,也算是導讀性質。

各種 credential 儲存的方式 (像是連到資料庫的密碼)

John Resig (現在在 Khan Academy) 在月初的時候發表了「Keeping Passwords in Source Control」討論要怎麼儲存 credential。

這不只是開發者的問題而已,這跟 code deploy 機制也很有關。目前沒有完美的方案,不同的解法都是在不同的環境與限制下而誕生出的產物。

分散式系統的建言...

「分散式系統」(Distributed System) 是個老詞彙,但跟最近當紅詞彙「雲」、「NoSQL」常常相關。也因此「雲」與「NoSQL」常常遇到的都是分散式系統遇到 (並且討論過) 的問題...

而「Notes on Distributed Systems for Young Bloods」這篇寫的好血淚 XDDD 除了講理論面的東西以外,也把實務面會遇到的問題拿出來講...

首先要先知道「Fallacies of Distributed Computing」,在分散式系統裡,能假設的事情實在太少,要處理的事情太多。而「CAP theorem」也是個必讀的主題,從 Amazon 丟出「Dynamo: Amazon's Highly Available Key-value Store」這篇經典的 paper 後讓更多人知道這個理論。

熟悉上面兩個主題後,接下來就是血淚史... XD

garbage collection pauses make masters “disappear”

啊,GC 讓 master 不見... (NameNode... XDDD)

Writing robust distributed systems costs more than writing robust single-machine systems.

Robust, open source distributed systems are much less common than robust, single-machine systems.

這兩條... XD

Oh, and Paxos really is very hard to implement

Paxos... XD

If you can fit your problem in memory, it’s probably trivial.

(噴飯)

“It’s slow” is the hardest problem you’ll ever debug.

連問題都找不到嗎... XD

撇開這些碎碎念的部份,就算對 distributed system 沒那麼熟,這篇文章也提到了很多「解決的方向」以及「關鍵字」讓你找資料,對於實際操作時會有很大的幫助。

在 Passion Bean 分享:System Operations for Startup

Passion Bean 的 Sting 與 ihower 邀請,到內湖用了兩個小時分享對於 Startup 公司在系統操作上的一些想法:

另外可以在 Facebook 上的活動頁 找到錄影。

一些關鍵字:

  • us-east-1:AWS 美東區的代號,位於維吉尼亞州。
  • 「萬事屋」指的是「新杰資訊科技股份有限公司」的老闆 Alex Wen。
  • Invalidation 與 Nameing Naming 是 CS 兩大難題:「TwoHardThings」。
  • 「未熟調教是一切邪惡的根源」出自劉燈「重新學C++」文章中 slzzp 的 comment