每週分享第 7 期

阮一峰發表於2018-06-01

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

(題圖:海底都是礦泉水瓶。)

我看到一篇《國家地理》雜誌的報導。地球最深的地方是太平洋的馬裡亞納海溝,深達海平面下11公里。2016年,一艘潛水艇到達那裡,拍了一批照片回來。最近,科學家研究了這批照片,發現裡面有一個透明的東西,不知道是什麼。最初以為那是某種未知的生物,後來確認了:那是一個塑料袋。

如果地球表面最難到達的地方都有垃圾,那麼不難想象,海洋裡面的垃圾有多少了!我常想,人類產生那麼多垃圾,將來怎麼辦?不要說別的,單單是快遞的包裝,就會產生多少垃圾。我的個人消費其實很少,但是每個月產生的垃圾,足以填滿一個0.5立方米的垃圾箱。

老實說吧,人類對垃圾無能為力。有機垃圾可以焚燒,其他垃圾目前只能填埋,由於我國目前沒有垃圾分類制度,80%以上的垃圾都是填埋的。你以為垃圾拉走了,就消失了嗎?錯,它們埋到了地裡,汙染了土壤和水源,最終受害的還是人類自己。全中國一天要產生多少垃圾,它們都埋在國土的各個角落,想想就覺得很恐怖。更恐怖的是,社會的主流觀念是消費主義(消費越多越幸福),那麼將來的垃圾只會增加,不會減少。We are doomed.

新聞

1、德國政府通過"自動駕駛演算法準則"

德國政府制定了《自動駕駛演算法要求》,對自動駕駛提出了一系列必須滿足的法律條件,下面是其中的幾條。

  • 發生事故時,人的生命安全高於財產安全或動物安全。
  • 發生事故時,任何基於年齡,性別,種族等方面的歧視都是不允許的。(這就是說,不能選擇避開孩子、撞向老人。)
  • 必須有儲存駕駛記錄的"黑匣子"。
  • 緊急情況時,人類可以重新獲得汽車的控制權。

2、未來的網站註冊流程

目前,W3C 正在設計一個基於金鑰的網站註冊流程。以後,註冊使用者時不需要密碼,也不用擔心破解。

簡單說,就是註冊的時候,瀏覽器自動生成公鑰和私鑰,然後把公鑰發給伺服器,私鑰保留在本地。以後登入的時候,使用者只需要輸入使用者名稱,瀏覽器用私鑰加密後發給伺服器,如果能被公鑰解開,就證明了使用者的身份。這裡有兩篇文章(12)討論了其中的細節,並提供了 Demo。

3、列印的卵巢

美國科學家使用3D印表機做出來的明膠卵巢,替換掉小白鼠的天然卵巢,結果居然有效。7只實驗老鼠有3只產下了健康的後代。

《未來簡史》描述的場景正在變成現實:未來的人們不再是純自然的產物,而是半自然、半人工的一種新人類。

4、AI 的發展速度

有研究稱,2012年開始, AI 的運算速度每過3.5個月翻一倍,至今已經增加了30多萬倍。相比之下,摩爾定律(每18個月翻一倍)簡直慢得不值一提。要是按照摩爾定律,AI 的運算速度只會增長12倍。

總之,AI 的進化速度遠遠快於人類的想象,在你不知不覺之間,機器的聰明已經超乎想象。

5、章魚可能是外星人

科學家稱,章魚(包括魷魚和烏賊)可能起源於地球以外的其他地方,因為章魚的基因組非常複雜,與其他動物很不相同。

科學家懷疑,到達地球的外星生物被冰凍在一顆冰冷的彗星中,它們的後代就變成了章魚。

"它的大腦和複雜的神經系統,相機般的眼睛,靈活的身體,通過切換顏色和形狀的能力進行即時偽裝,這些特徵都是突然出現在生物進化之中。"。

5、隨身咖啡機

很多程式設計師和辦公室人員都有喝咖啡的習慣。這導致咖啡機簡直成了辦公室必備品。現在看上去,那些不在辦公室工作的人們,也越來越多地喝咖啡。

一家日本的電鑽製造商 Makita 推出了隨身咖啡機,據說主要用來滿足建築工人在工地喝咖啡的需求。最大亮點在於,它的鋰電池就是手持電鑽的電池。鑽孔作業結束後,可以把電池拆下來,裝在咖啡機上。一塊電池可以煮約640毫升的咖啡,或約5.3杯。

6、GDPR 生效,Whois 查詢實質關閉

5月25日,歐盟《通用資料保護條例》生效,要求網站不得在沒有使用者同意的情況下,使用或洩漏使用者的個人資料。一個直接後果就是,Whois 域名查詢以前有使用者的姓名、地址、電話,現在都不再返回了,你只能查到註冊商的資訊。下面是阿里雲的公告。

根據 ICANN 政策要求,自2018年5月25日起,阿里雲所提供的 WHOIS 查詢服務的公開資訊中將不再顯示域名註冊人、管理聯絡人和技術聯絡人的個人資料。對於阿里雲管理的域名,如需聯絡相應域名持有人、管理聯絡人或技術聯絡人,可通過填寫域名資訊查詢頁面的線上表單傳送資訊。

FrontJS

本期《每週分享》很高興得到了前端錯誤監控平臺 FrontJSwww.frontjs.com)的贊助。

FrontJS 是蒲公英開發者服務平臺旗下產品,蒲公英成立於2014年,旗下產品還有有蒲公英移動應用內測分發平臺和Bug 管理平臺 Tracup 。其中,內測分發平臺在全球有160萬註冊開發者,共計上傳了超過800萬款 APP。

蒲公英 - 高效安全的內測應用釋出、管理平臺.png

FrontJS 是一個前端錯誤的監控平臺,可以監控 Web 和小程式頁面的效能,以及收集異常資訊。千萬級訪問量的數字貨幣交易平臺火幣網,就使用 FrontJS 監控前端錯誤。下面就是它的 JS 異常監控頁面,收集 console 中的 log / warn / error 的資訊。

它的一些主要特點:(1)提供API,可以對上報行為進行定製化的調整;(2)網路請求監控,收集 XHR 耗時、錯誤、超時、跨域等資訊;(3)資源監控,收集載入失敗的資源以及跨域資源的 URL;(4)堆疊追蹤技術,精確獲取更多異常上下文資訊;(5)頁面效能監控,包含 DNS 時間, DOM 渲染時間等資訊,可以組合計算出首屏時間以及白屏時間; (6)事件流,可以瞭解異常發生時的上下文環境,幫助測試部門快速復現錯誤;(7)資料視覺化工具,所有資料均可以重新組織並生成圖表。

歡迎大家使用 FrontJS。向頁面右下方客服說明來自阮一峰部落格,可以獲得50元代金券或延長10天的體驗期。

教程

1、[網站] DiscoverDev.io(英文)

該網站每天列出5~10篇當天值得閱讀的軟體文章。

2、[視訊] Facebook 的機器學習視訊教程(英文)

《Facebook 機器學習指南》是由 Facebook 廣告機器學習團隊開發的六部分的視訊系列。該系列分享了最好的現實世界實踐,並提供瞭如何將機器學習功能應用於實際問題的實用技巧。

3、[文章] 氣壓的知識(英文)

氣壓就是大氣的壓力,一個標準大氣壓等於760毫米汞柱。有的地方氣壓高,有的地方氣壓低,這是風形成的根本原因,颱風就是巨大的熱帶低氣壓。地球上,赤道由於高溫蒸發是低壓區,極地由於冷空氣下降是高壓區,這就形成了地球的風帶。

4、[教程] Flask 教程的中文版(中文)

Flask 是 Python 的 Web 開發框架。這個教程教你如何用 Python 和 Flask 來建立 Web 應用。

5、[資料] arl

各種語言最受歡迎的專案,按照 GitHub Star 的數量排行。

6、[資料] 谷歌官方的 Bash 指令碼風格要求(英文)

Bash 指令碼的語法遠比程式語言寬鬆,你很容易寫出難以閱讀、風格混亂的指令碼,可以參考谷歌如何寫 Bash 指令碼。

7、[文章] 不必要的 HTTP 頭資訊(英文)

本文統計了30個最常見的 HTTP 頭資訊,逐個討論哪些是必要的,哪些是沒必要的。

8、[文章] 響應式表格的兩種解法(英文)

手機怎麼顯示錶格?常見的方法是將表格轉為鍵值對。Lea Verou 給出了兩種純 CSS 的解法,不需要任何多餘的 HTML 標籤。

一種是使用 text-shadow 屬性複製表頭,另一個使用 element 方法複製表頭。但是,這兩種方法都有侷限,前者是單元格里不能有換行,後者是隻有 Firefox 支援。

工具

1、DocHub

個人寫的百度文庫的開源仿製品。

2、ShellCheck

Bash 指令碼的開源語法檢查器。

3、Crunch

一個效果非常好的 PNG 圖片壓縮工具。

4、nomulus

谷歌開源自家的頂級域名註冊管理系統,也就是 https://registry.google 背後的系統。如果你是域名註冊商,可能用得到這個東西。

5、Termux

安卓裝置的終端模擬器,用來在安卓裝置上模擬 Linux 環境。

6、Material-UI

大家知道,谷歌的材質化元件(Material Design)是 Angular 專用的。社群維護的 React 移植版Material-UI,今天釋出 1.0 版,已經完全可用了。以後,React 專案照樣可以有官方安卓 UI 的那種材質化效果。

7、tlsh-js

一個生成字串雜湊的 JavaScript 庫。它的特點是,字串越相似,或者重複同樣的模式,生成的雜湊也越相似,可以用來計算兩個字串的相似程度。

8、libui

一個使用 C 語言寫的 UI 元件庫,具有很好的跨平臺性,可以在不同的平臺上獲得相同的圖形介面。

文摘

1、魯迅的平面設計

一提起魯迅,很多人第一反應都是,一位奮筆疾書、憂國憂民的文學巨匠。但你可能不知道,魯迅其實不只是個碼字工,還是當之無愧的民國第一設計師。

在那個沒有PS的年代,迅哥兒憑著自己的才華和審美,幾乎包攬了自己的作品以及各大雜誌的封面和裝幀設計。對於書籍封面,魯迅最擅長的就是把各種字型玩出新花樣,每一種在今天都足以讓各大字型檔膜拜。

上圖是《藝術論》的封面,書名用雙線描字型,嵌入抽象幾何圖案的缺口,對應著本書"從藝術規律中"的用意。

上圖是《而已集》的封面,由印刷體美術字再次突破,轉變為自由美術體,更加靈動且古雅。

2、30字短文《什麼是機器學習》

人:11×11? 計算機:65 人:胡扯,明明是121。到底等於什麼 11x11? 計算機:121

3、Git 的主要維護者濱野純訪談

最近,谷歌宣佈釋出 Git 協議2.0版。我很奇怪,為什麼是谷歌釋出 Git 呢?一查才知道,Linus 早就不管了,現在是一個日本人濱野純(Junio C Hamano)在維護 Git。他是谷歌員工,所以谷歌其實是 Git 背後的公司。

下面摘自濱野純的訪談。

因為 Linus 只寫 C 和 Shell,而 merge 的邏輯實在太複雜,所以他多次發郵件到郵件列表,說要是有人能夠用指令碼語言實現一個就好了。不過誰也沒有上鉤。

就這麼過了一個星期,一直關注郵件列表的我用 Perl 把 Linus 過去多次提到的 merge 演算法實現並投到了郵件列表裡。這是我第一次有一定規模地向開源專案貢獻程式碼。然而,儘管我詳細地寫了將近30個測試用例以及各種分支條件下應該怎麼處理的表格,6個小時以後 Linus 提交到 master 分支的卻是個截然不同的東西。據本人說是想到了更好的辦法所以就這麼著了。

我看了一下,足以讓我那些依照Linus以前的邏輯所寫的程式碼毫無價值,就是優雅到這種程度。不過之前為什麼你還說什麼"誰來幫忙做一下啊",我做了結果你又不要(笑),然而當時並沒有這麼想,因為新的處理方法確實很漂亮。

4、解析度術語的含義

購買顯示裝置或拍攝視訊的時候,經常會遇到解析度的術語,它們是什麼意思呢?

  • 720p: 1280 x 720, 稱為 HD(中文譯為"高清")
  • 1080p: 1920 x 1080, 稱為 FULL HD(中文稱為全高清)
  • 1440p: 2560 x 1440, 稱為 QHD 或 Quad HD,即4倍的HD
  • 2160p: 3840 x 2160, 稱為 4K
  • 4320p: 7680 x 4320, 稱為 8K

新奇

1、倫敦心跳

《倫敦心跳》是一個很有意思的資料視覺化作品。倫敦地鐵的客流量用粗細表示,人流越多,線就越粗。

第一張圖是凌晨,第二張是上班高峰。預設自動播放,就像城市的心跳一樣。

本週圖片

1、Dribble 的按鈕

有人回顧了過去八年,設計網站 Dribbble 主頁按鈕的變化。圖一是2009年的按鈕,圖二是2017年的按鈕。八年的圖片放在一起,可以看到設計的趨勢變得越來越簡單和平面化。

2、npm install

@brad_frost 在推特說,上圖的名字叫 npm install。意思就是說,如果你執行 npm install 命令,硬碟上就會多了一堆這樣的東西。

3、@aichongk

推特使用者"愛寵客"(@aichongk)是晚期癌症病人,最近去世了。

大家可以看看她的推特,非常熱愛生活的一個人。她談自己的病情,但不渲染,整個內容還是光明的。看著她不長的人生,我覺得,生活就是一個過程,應該要過得快樂一點,做一些有意義的事情,如果隨隨便便、渾渾噩噩的過日子,那就太可惜了。

本週金句

讀再多的書都不如內生動力給人帶來的變化大。(網友)

歡迎訂閱

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

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

image | left

(完)