每週分享第 30 期

阮一峰發表於2018-11-09

這裡記錄過去一週,我看到的值得分享的東西,每週五發布。

歡迎投稿,請前往 GitHub 的 ruanyf/weekly 提交 issue。

上個月谷歌宣佈,社交應用 G+ 將在10個月後關閉。

主要原因有兩個。一是缺乏使用者,90%的使用者會話短於5秒;二是有安全漏洞,近50萬使用者資料存在洩露風險,雖然沒有證據表明黑客發現了這個漏洞。

谷歌是世界最大的網際網路公司,資金和技術都不是問題,所有底層產品幾乎都是業內最強:人工智慧、搜尋、郵件、地圖、照片、雲盤、線上辦公......按理說,G+ 沒有理由失敗,谷歌只要把底層產品組合一下,就沒人打得過。可是,G+ 就是做不起來。谷歌做過四個社交產品,全部失敗了,這是為什麼?

幾年前,一度有傳言,Gmail 要併入 G+,提升後者的訪問量,結果也沒有實施。這多少反映了 G+ 不是谷歌的核心業務,公司並沒有不惜一切代價投入。谷歌這家公司的興趣,從來不在應用軟體,而是在基礎服務、底層演算法、作業系統上面。我猜想,谷歌內部多多少少把 G+ 看作玩具,"發動態,加好友,這種玩意有多少難度?",工程師和科學家更願意去研究高難度的產品。這才是 G+ 失敗的根本原因,谷歌從高管到基層,對社交產品都缺乏足夠興趣。不信你去看,谷歌沒有一個高管,喜歡玩社交媒體。甚至谷歌工程師裡面,很少有特別喜歡寫部落格的,Steve Yegge 算一個,但是他覺得谷歌不合適自己,辭職了。

這件事情告訴我們,公司跟人一樣,也有自己的興趣愛好。倘若硬要去做那些沒興趣的事情,不僅內心煎熬,而且投入大量時間和金錢之後,最終還是難逃認賠離場的結局。

新聞

1、太陽熱能發電

目前,太陽能發電主要是指光伏發電,將太陽光直接轉化為電流。它的問題是,太陽光有間歇性,導致電能儲存成了巨大問題。

但是,太陽能發電還有另一種方式,我們知道,聚焦太陽光會產生巨大的熱量。這意味著,我們可以建立工廠,將太陽能轉化為熱能,然後通過熱能發電。相比儲存電能,熱能的儲存容易得多,這樣就可以實現全天候發電。這在技術上已經可行,但是現階段,太陽能的熱能發電還是比光伏發電貴得多。上圖為位於以色列內蓋夫沙漠的110兆瓦太陽能發電廠。

2、感知觀眾的播放器

視訊播放器 Bitmovin 加入了觀眾感知功能。播放視訊的時候,它會開啟攝像頭,觀察正在看視訊的觀眾。如果發現觀眾距離比較遠,就降低了一些位元率(畫面質量),反之則提高位元率;如果發現觀眾起身走開了,自動暫定播放,等到發現觀眾回來,再恢復播放。

3、車對車通訊取代紅綠燈

交通控制都通過紅綠燈。但是,如果車輛之間可以互相通訊,我們是否還需要紅綠燈?

卡內基梅隆大學開發的一種演算法,允許汽車使用車載通訊功能進行協商,彼此約定誰先通過路口、誰後通過,而無需使用任何紅綠燈。通過模擬計算,這種演算法比起紅綠燈,可以將通勤時間減少三分之一。長遠來看,它如果與自動駕駛汽車相結合,就可以精確控制整個行程的時間。

4、SSPL 許可證

很多軟體採用 GPL 許可證。這種許可證規定,如果你修改了程式碼再進行"分發",就必須開放原始碼。但是,如果某家公司使用 GPL 軟體提供線上服務,不分發軟體本身,就可以不提供修改後的原始碼。很多人認為,這是 GPL 許可證的一個漏洞。

現在,MongoDB 宣佈,許可證從 GPL 改為 SSPL,明確要求使用 Mongo 提供線上服務的公司,也必須開放原始碼。舉例來說,如果亞馬遜公司在 AWS 裡面有一個 MongoDB 服務,那麼現在它就必須開源它的 MongoDB 原始碼修改。

5、泥漿列印的房屋

一家義大利3D列印公司,發明用泥漿和稻草列印小屋。每間的成本只要1000歐元。上圖中,外牆的水平紋路就是一圈圈列印出來的。點選標題連結,就可以觀看小屋列印過程的視訊。

6、飲料瓶回收機

伊斯坦布林在地鐵站新增了飲料瓶回收機,乘客提交飲料瓶,可以折算成地鐵票積分。一個1.5升塑料瓶可以換6美分,一個易拉罐9美分,而單程地鐵票是40美分。

7、地球生物的分佈

美國科學家估算了,全世界生物體內的碳元素一共是550千兆噸(Gt C),其中植物佔了450GTC,細菌70GTC,真菌12GtC,原核生物7GtC,單細胞生物4GtC,所有動物只有2GtC。

動物之中,一半是節肢動物(昆蟲)佔1GtC,魚類0.7Gtc,人類0.06GtC,牲畜(以牛和豬為主)0.1GtC,野生哺乳動物0.007GtC。

8、最古老的沉船

考古學家在黑海底部發現一艘世界最古老的沉船,據稱這艘船有2700年的歷史,可以追溯到古希臘。這艘船長23米,桅杆、方向舵和划艇長凳都存在,沉沒在水下一英里的地方。考古學家說,那個深度缺氧,所以把它保留了下來。

以前人們只在大英博物館收藏的古希臘陶器上,見過那個時代的船隻。

9、歐洲禁止一次性塑料

歐洲議會支援禁止使用一次性塑料,以解決海洋,田野和水道的汙染問題。根據擬通過的法令,塑料吸管、棉籤、一次性塑料板、餐具等物品,都將在2021年禁止。

現在,大量的塑料廢物衝入海洋,在那裡可能需要幾個世紀才能完全降解。那些輕質的一次性塑料物品是最大的麻煩,它們可以輕鬆地在海洋里長途漂流,破壞海洋動植物。

10、一句話新聞

  • Youtube 是世界第二大搜尋引擎,它的每月搜尋次數比 Bing + Yahoo 加起來都多。

  • 一家美國製藥公司開發出愛滋病口服預防片,可以預防愛滋病。

教程

1、壓縮演算法的解釋(英文)

壓縮是最常用的功能之一,壓縮演算法一般分成兩大類:基於熵的壓縮和基於字典的壓縮。本文簡單解釋這兩類演算法的原理,以及將它們合在一起的 deflate 演算法。

2、Manjaro 發行版介紹(英文)

Manjaro 是一個新的 Linux 發行版,核心採用 Arch Linux,UI 採用 Deepin,集靈活性和易用的 UI 於一體。

3、密碼學簡明教程(英文)

本文回顧了加密發展的幾個階段,每個階段都給出了 Python 的小例子。

4、停止無限滾動(英文)

本文提出網頁的無限滾動並不是一個好的設計,應該限制使用或者停止使用。

5、WebAssembly 的未來(英文)

WebAssembly 目前只是 MVP(最小可行產品)階段,本文介紹了這種編譯語言未來可能具有的功能。

6、YAML 格式的問題(英文)

YAML 格式雖然比 JSON 格式易讀易寫,但也有很多問題。這種格式其實很複雜,並不是配置檔案的理想格式。

7、Pokemon Go 為什麼成功?(英文)

Pokemon GO 是一個在地圖上捕捉口袋妖怪的遊戲,初看起來相當無聊,不需要任何遊戲技能。但是該遊戲取得了驚人的成功,這是為什麼?

8、2018 最佳 Linux 桌面發行版(英文)

本文對三個層次的(初級、中級、高階)使用者,介紹最合適的 Linux 發行版,用於桌面系統。對新手有一定的參考價值。

9、Web Performance 101(英文)

網頁效能的基礎知識,針對初學者,內容比較全。

資源

1、IPv6 採用率

谷歌有一個公開網頁,展示使用 IPv6 訪問谷歌的比例。最近,這個比率來到歷史最高的25%。

2、進入純數學

一本英文的純數學教材,免費下載,從簡單的自然數講起,包括代數、數論、集合運算、概率和微積分等章節。我覺得,至少對於瞭解數學的符號體系很有好處。

3、33 個 JS 程式設計師需要知道的概念

按照主題,收集 JS 學習資源的倉庫。

4、紙飛機

收集紙飛機摺紙方法的網站,目前有40種紙飛機。

5、微積分很容易(Calculus made easy)

有名的微積分教材,版權已經過期。雖然年代比較久了,但是內容很經典。

6、科幻介面

該網站收集科幻影視作品裡面出現的計算機介面設計。

7、ScriptOJ

國人開發的前端題庫,可以用作評測系統,帶有討論區。(@LeeChar 投稿)

工具

1、WebPerl

通過把 Perl 5 直譯器編譯成 WebAssembly,從而在網頁上執行 Perl 程式碼。

2、Thonny

一個針對初學者的 Python IDE(整合程式設計環境),介面清爽簡單,可用於兒童的程式設計教育。

3、svg-inject

這個 JS 庫可以將網頁上的外聯 SVG 影像,變為內嵌的 SVG 影像,從而使得全域性的 CSS 樣式檔案可以對這個影像生效。

4、arwes

一個質量不錯的科幻風格 React UI 元件庫。(@Anderson-Liu 投稿)

5、CommentBox.io

一個類似 Disqus 的網站評論服務。

6、gRPC-Web

gRPC-Web 是一個JavaScript客戶端庫,使 Web 應用程式能夠直接與後端gRPC服務通訊,不需要 HTTP 伺服器充當中介。這意味著可以構建真正的端到端 gRPC 應用程式體系結構。

7、irondb

irondb 是一個瀏覽器 key-value 儲存的封裝庫,把 Cookies、IndexedDB、LocalStorage、SessionStorage 統一成一個介面。它的最大特色就是資料冗餘機制,即使某種底層儲存機制失效,它可以從其他機制恢復資料。

8、Screen to GIF

一個可以錄製 GIF 圖片的開源工具,同時還具備編輯幀、呼叫攝像頭錄製、錄製畫板等功能。(@winshu 投稿)

9、Sketch 2 Code

微軟的線上工具,將手繪草圖轉成 HTML 程式碼。(@xiaohesong 投稿)

10、Process On

免費線上作圖,可以實時協作。ProcessOn 支援流程圖、思維導圖、原型圖、UML、網路拓撲圖、組織結構圖等。(@wuzhenda_ _投稿)

文摘

1、金星移民

美國國家航天局 NASA 正在討論金星移民的可能。

上圖左側是金星,右側是地球。

金星地面的照片。

初聽起來,金星根本不是一個可能的目標,它的表面溫度有460度,高於許多金屬的熔點。下雪的時候,金星落下的實際上是金屬滴。金星的大氣壓高達93個大氣壓,人類根本無法承受。金星大氣由97%的二氧化碳,3%的氮氣和微量的其他氣體組成,還有大量硫酸形成的緻密雲層,因此它的空氣具有腐蝕性。

NASA 討論的並不是地面移民,而是派出一艘飛艇,飛行在金星地面上方50公里~60公里的高空中,人類就生活在飛艇裡面。那個區域的大氣壓相當於地球海平面大氣壓的一半,跟乞力馬扎羅山頂差不多,溫度介於20°C和30°C之間。人類在那裡甚至不需要宇航服與外界隔離,只需要攜帶氧氣裝置,因為那裡的空氣絕大部分是二氧化碳。

高於此高度的大氣層也足夠密集,可以保護人員免受來自太空的電離輻射。太陽輻射提供了比地球更大的能量,可用於發電(是地球太陽能發電效率的大約1.4倍)。

飛艇漂浮在空中,使用正常的地球空氣填充就可獲得浮力,因為氧氣和氮氣的比重低於二氧化碳,所以飛艇可以飛起來。目前的技術完全可以實現這個方案。

2、程式碼所有權

Martin Fowler 提出,大多數軟體專案存在三類程式碼所有權。

(1)強程式碼所有權。

每個模組指定一個負責人。開發者只能更改自己擁有的模組,如果需要更改其他人的模組,就必須與模組所有者聯絡,讓後者更改。你可以為其他模組寫補丁,將其傳送給模組所有者來加速此過程。

(2)弱程式碼所有權。

每個模組指定一個負責人,但是開發者可以更改其他人的模組。模組所有者應對其擁有的模組負責,密切關注其他人所做的更改。禮貌的做法是,更改其他人的模組之前,首先與模組所有者進行討論。

(3)集體程式碼所有權。

模組不指定負責人,程式碼庫由整個團隊擁有,任何人都可以在任何地方進行更改。這種做法可以視為程式碼沒有個人所有權,只有團隊所有權。

現在大多數公司都要求所有人都可以修改原始碼,也就是集體程式碼所有權的模式。這樣的政策,很可能導致軟體質量和員工敬業度的下降。如果你的目標是工程師既高效又以工作為榮的企業文化,那麼強程式碼所有權模式是最佳選擇。

3、沒有中產階級的加利福尼亞

加州的國內生產總值超過2.7萬億美元,約佔美國的13.9%。它的經濟規模超過英國,是世界第五大經濟體。該州極其富有,但令人難以置信的是,加州也是美國最貧窮的州之一。

貧困線以下的美國人口平均是13%,但是加利福尼亞州為19%,遠高於阿拉巴馬州的14%。加州窮人多的部分原因是房價快速上漲,這對富人有利,而對中產階級來說,生活成本過高,於是成群結隊地離開。隨著中產階級的離開,加利福尼亞的社會主要由富豪和窮人組成。

加州租房者每月平均支付1,447美元,而全國平均水平為1,012美元。29%的人將超過一半的收入用於住房。房屋中位數價值為529,000美元,是全國中位數239,800美元的兩倍多。

加州的流浪者多得驚人。2016年到2017年,該州無家可歸者人數增加了近14%,超過130,000人。2016 年,132名流浪者死在街頭。舊金山有幾百億美元的富豪,但也遍地是流浪漢的糞便。

本週圖片

1、前蘇聯的紀念碑

前蘇聯建造了大量令人歎為觀止的雄偉紀念碑,大部分都是為了紀念戰勝納粹。

四隻巨手拿著四把槍,Novorossiysk,1978。

蘇聯-波蘭友誼紀念碑,1983。

烈士紀念碑,摩爾多瓦,1972。

北極士兵紀念碑,摩爾曼斯克,1974。

空間征服者紀念碑,莫斯科,1972。

2、事故展覽館

日本鐵路公司 JR 有一個事故展覽館,專門展示該公司發生的事故。"我們希望我們的員工永遠不會忘記過去的事故。"不過,該展覽館只允許員工參觀,不對公眾開放。

新奇

1、人工智慧音樂

一家創業公司正在開發 AI 音樂引擎。該引擎學習了無數旋律以後,已經能夠自己生成音樂,主要用來為電影和遊戲生成音軌。

大家可以去該公司的網站,收聽機器生成的音樂,那些音樂非常動聽。

本週金句

1、

由於重力只有地球的六分之一,月球很合適人類養老。在本世紀末之前,我們將在月球上為老年人設立醫院,使他們能夠長壽。他們的心臟在六分之一的重力下,可以跳得更輕快;他們脆弱的骨頭,也將承擔輕得多的負荷。

-- 科幻小說家海因萊因在1969年7月20日(阿波羅11號登月日)接受採訪,談登月對人類的影響

2、

JavaScript 的優點是可以寫任何東西,缺點是你真的會用它去寫這些東西。

-- Reg Braithwaite

3、

據估計,2009年全球有500萬 PHP 開發人員。

-- terrychay

4、

房價不斷上漲的前提是不斷有新人加入,他們願意並且能夠支付越來越高的房價。房價上漲的本質是,年輕人願意把自己的財富轉移給老年人,當這些年輕人變老時,再有新的年輕人願意給他們更多的錢。

-- 《住房不是一項好的投資》

歡迎訂閱

這個專欄每週五發布,同步更新在我的個人網站微信公眾號語雀

微信搜尋"阮一峰的網路日誌"或者掃描二維碼,即可訂閱。

(完)