程序人生之圖窮匕見:第二彈

歡迎來到第二周的podcast,程序人生之圖窮匕見。以後這個一周綜述的名字就叫圖窮匕見。

本周的podcast精彩不多,還是講講TED吧。上周末TED radio hour的一個話題:infinite很有意思,談論一個很值得重視的一個問題:在我們的世界裡,哪些資源是有限的,且逐漸消失的?說到這個問題,大家首先想到的是消失的雨淋,不復存在的耕地,漸漸枯竭的油氣,和不斷減少的可飲用水。在節目大概第26分鐘時,我聽到了一個新的視角:儘管我們能隨意製造抗生素,但抗生素也是一種有限的資源 —— 濫用抗生素使得致病微生物和細菌不斷進化以抵禦抗生素的威脅,一些本被攻克的疾病死灰復燃,越發強大。所以在 "How Did A Medical Miracle Turn Into A Global Threat?" 里,Ramanan提出:抗生素這種資源,但他們的可利用價值,和地下的石油一樣,都是有限的,不斷減少的。

但即便是我們意識到了這一點,我們的醫療體系卻與之矛盾。醫生對於病人的疾病,傾向於使用更多劑量的藥物,因為她要保護病人,而非整個系統。在這一點上,其實我們目前束手無策。

不過,人類之所以成為人類,是因為面對有限資源的時候,面對生存危機的時候,總能通過創新而化險為夷。

接下來我們說說hackernews。本周hackernews重磅消息可謂是應接不暇:先是前兩日有個創業者在家離奇死亡,排除了吸毒,自殺和他殺後,如果警方再排除了毒殺的可能性,那基本就是猝死了。創業者和程序猿們要注意了,天天繃緊神經,還沒事熬夜絕對不是什麼好習慣,雄心萬丈是好事,但什麼事都不能一蹴而就,要準備好跑馬拉松的心態和身體:吃喝玩樂,健身鍛煉,聊天約會,一個都不能少!

接下來這則消息則令人震驚:著名的連線網站爆料,黑客現在可以通過車載的wifi系統,遠程侵入一台正在運行的2014款Jeep切諾基。在網站的視頻和文章里,我們看到一台在高速路上以110公里時速行駛的汽車,突然間空調開始製冷,中控像變魔術一樣意外顯示出未知來源的圖片,音樂驟然想起,雨刷器胡亂工作,最後發動機熄火。當實驗者驚魂未定地回到安全的地方後,黑客又演示了遠程控制控制方向盤轉向,剎車,加油等一系列更加危險的動作。

其實有潛在風險的不光是Jeep,任何有車載互聯網,能通過互聯網更新內容的汽車都有這樣的風險,比如說寶馬。黑客們會在8月初的defcon大會揭露完整細節。

另一個重大的消息是:YC終於在他們對創業者的條款里加入了pro rata,就是所謂的反稀釋條款。pro rata是說,我這輪投了你,拿了10%股份,下輪你融錢,我的股份就被稀釋了,我可以以新一輪同等的價格把稀釋的股份補回來。YC的新政策是,除了種子輪以外,他們不會領投,但只要被投公司投後估值不超過2.5億美金都會行使pro rata。pro rata是個比較中性的投資條款,一般用以保證投資人的利益。

做創業的同學應該還聽過super pro rata,這是個比較流氓的條款。投資人不但可以防止自己的股份被稀釋,還可以以同等價錢擠兌走下一輪的投資人。好比你是小紅,A輪投資人是小明,B輪小強要投你,你們已經眉來眼去多時,小強看上了你的人,你看上了小強的資源,小強準備好了嫁妝,就登門求親;本來不打算繼續包養你的小明一看,呦,原來俺的童養媳小紅現在出落成人見人愛的大美人了。不成,我的展示我的存在感。於是小明就把大家召集在一起,把裝滿了錢的皮箱往桌上一拍,環視四周,霸氣地說:朋友,小紅是我的!

最後說說github。本周github值得關注的repo是postgrest,就是著名資料庫postgres名字後面加個t。這個repo是haskell寫的,以postgres資料庫為基礎,替你自動生成REST API。你只需要定義好資料庫的table,schema,view以及role,postgrest就能生成全尺寸REST API,包括authentication。整個項目就2000行haskell代碼哦 —— 最重要的是,你不用懂haskell代碼,只要會寫sql,定義資料庫,postgrest替你搞定剩下的一切,配合API Gateway使用,可以滿足大部分小型應用。postgrest效率非常高,在AWS tiny RDS instance,heroku tiny dyno下,可以達到每秒2000API請求哦。它的設計理念也很有意思:盡量把一切都放在postgrest里完成,連json的render,API的authentication都在postgres里。估計用postgres的同學沒幾個知道它能夠輸出json吧,光這一項,就比解釋型語言處理json快幾倍,大的json數據那就幾十倍上百倍的速度優勢。我們這一代在ORM陰影下生存的開發者,光記著ORM可以資料庫無關,隨意切換資料庫的好處,殊不知這犧牲了多少資料庫原生的能力。大家想想,有多少人做的web項目,沒事從mysql切到postgres,再切到oracle呢?postgres/mysql都要哭了:我們發展了十幾年了,各種高級功能夠一個工程師學一輩子了,卻被當成了一個data store,存儲過程,ACID,transaction在web開發者面前都能了累贅,連乳臭未乾的mongodb都騎在俺們頭上。可悲,可嘆啊!

當然,postgrest這麼深度地壓榨資料庫能力,scaling/sharding怎麼做?讓我們拭目以待後續發展。

這個項目還利用了一些最新的http RFC來處理數據,比如說使用RANGE頭來做分頁(對,RANGE就是用來做分塊下載,斷點續傳的那個頭),乾淨,漂亮!大家可以仔細研究一下。程序君按照教程完了一下,把做出來的repo放在了github上:tyrchen/goodfilm · GitHub, 歡迎嘗鮮。

本期就講這麼多,題圖是Kepler-452b,想必已經刷了你的屏。

如果您覺得這篇文章不錯,請點贊。多謝!

歡迎訂閱公眾號『程序人生』(搜索微信號 programmer_life)。每篇文章都力求原汁原味,北京時間中午12點左右,美西時間下午8點左右與您相會。

推薦閱讀:

TAG:迷思 | tyrchengoodfilm·GitHub |