每週分享第 43 期

阮一峰發表於2019-02-15

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

歡迎投稿,或推薦你自己的專案,請前往 GitHub 的 ruanyf/weekly 提交 issue。

上圖是一架小飛機停在草地,一個人從上面跳下來。

這張圖取自一篇2018年12月發表的正式論文,作者單位是哈佛大學醫學院,論文題目叫做《從飛機跳下時,降落傘防止傷亡的作用研究》

研究小組讓一組人帶著降落傘,另一組人不帶(就像上圖),都從停在草坪上的小飛機跳下來。可想而知,所有人都平安無事,因此論文經過模型分析,一本正經地得出結論:降落傘沒有明顯作用。

這篇論文不是惡搞。它想用一個諷刺的實證研究來證明,醫學界傳統的雙盲測試有重大弊端。醫生當中流傳著一句名言沒有降落傘,誰願意從飛機跳出來?意思是隻有那些有降落傘的病人(即知道自己死不了的人),才會參加雙盲測試。

這是因為,如果不考慮那些無藥可救的絕症,一般來說,風險比較小的病人,更可能參加雙盲測試,因為就算被抽到對照組,天天吃安慰劑,也不怕被耽誤。但是,如果測試物件都是風險小的病人,試驗結果很可能就是新藥無效,因為病人本來就會康復。

這篇論文就是用實驗證明:如果你想讓沒有降落傘的人,參加雙盲測試,他們只會願意從停著的小飛機上跳下來,因此你會得到降落傘(新發明)沒用的結論。這是我看過的最好玩的論文之一,推薦大家看看,它完全採用最嚴謹的學術語言和論證過程,寫得一絲不苟,最後得出了一個荒謬的結論。

新聞

1、亞馬遜的自動送貨車

美國電商亞馬遜在華盛頓州(該公司總部所在地),開始試驗自動送貨車。該車是電動的,跟小冰箱差不多大,能沿著人行道快速前進。它配備了感測器和 GPS,可以自動規劃行進路線,避免跟行人、寵物或其他障礙發生碰撞。

測試期間,每輛車送貨的時候,會有一個員工跟在後面,處理各種可能的問題。如果測試順利,亞馬遜將擴大試驗範圍,並考慮將其投入實用。

2、飛行汽車

1月22日,波音公司在弗吉尼亞州第一次試飛了它開發的飛行汽車。這其實不能算汽車,因為它不能在地面上行駛,只能在大樓之間飛行,從一幢樓頂飛到另一幢樓頂。

該產品是電動飛機,一次可以飛行80公里,比直升飛機成本更低,可控性更高。它是優步公司的定製車型,如果順利的話,優步將採用它,在2023年推出空中計程車服務。此外,空中客車公司設計的空中汽車(見下圖)也將在幾周內試飛,目標也是2023年供優步公司使用。

3、逃跑不要使用共享滑板車

2018年12月18日,19歲的 Luca Mangiarano 走進美國德州首府奧斯汀的一家銀行,遞給銀行櫃員一張紙條,上面寫著:"這是一起搶劫案。請把櫃檯所有的錢給我。"櫃員不知道他會做出什麼舉動,就順從地把錢給了他,共計18000美元。

然後,Mangiarano 就在銀行門口,騎上一輛共享滑板車逃跑了。這對警方來說,就很簡單了。警察找到提供滑板車服務的優步公司,調出哪個帳號在這個時間地點,使用了滑板車,然後順利逮捕了 Mangiarano。

4、無車城市

挪威首都奧斯陸市政府決定,拆除市區700多個停車位,用自行車道、小公園和長椅取代,為最終實現市中心無車做準備。政府的規劃是,第一步取消停車位,第二步在一些街道禁止自駕車,第三步則是整個市中心無車,交通需求完全依靠公共交通或自行車。

5、泊車機器人

英國蓋特威克機場推出了代客泊車機器人,車主在下車區下車以後,使用手機 App 召喚泊車機器人,該機器人會自動把車拉到停車位。這樣不僅可以節省時間,還可以將車緊湊地停滿整個空間。

這個機器人實際上是一個自動的小型叉車,使用 GPS 定位,整個泊車過程之中都不需要使用車鑰匙。該系統去年已經在巴黎戴高樂機場進行了5個月試用。

6、維基百科的編輯

Steven Pruitt 是維基百科最忙碌的編輯,他在13年的時候裡面,一共完成了近300萬次編輯,並撰寫了35,000篇原創條目。維基百科英文版現在有570萬條目,其中三分之一都被他編輯過。《時代》雜誌將他評為網際網路上最有影響力的25個人之一。他的維基使用者名稱是 Ser Amantio Di Nicolao。

他沒有從這些工作裡面賺到一分錢, 他說:"知識自由的想法讓我著迷。我的母親在蘇聯長大......所以我非常清楚,知識自由意味著什麼。"

7、月球岩石

1971年阿波羅14號登月期間,採集了一塊月球岩石送回了地球。現在,這塊岩石裡面發現了一些微量礦物質,跟地球的岩石成份很像。這意味著,這塊石頭原本來自地球。

這塊岩石大約形成於40億年前,裡面含有鋯石的成分,與地球上發現的鋯石非常相似。由於鋯石需要在水和氧化條件下形成,因此這塊石頭很大可能來自地球。這有可能是40億年前,一顆小行星撞擊地球,將這塊石頭帶到了月球,也有可能整個月球是因為撞擊,而從地球分裂出來的。

8、老賴地圖

《河北日報》1月28日報導,河北省法院自主研發微信小程式"老賴地圖",可掃描出方圓500米以內的"老賴"(長期拒絕償還債務的人員)數量,並可點選顯示"老賴"的身份證和家庭住址。

河北省法院的一名工作人員稱,可將失信人資訊頁面分享到朋友圈,這是使用網際網路技術對"老賴"進行"精準曝光",利用社會壓力和熟人圈子對"老賴"進行"精準圍剿"。

9、極端氣候

澳大利亞今年一月份的平均氣溫,創了歷史新高,很多地方都超過攝氏40度,最高攝氏49.5度。與此同時,美國遭遇北極寒流,超過或接近歷史最低溫,有些地方達到零下60度,比南極還冷。地球的氣候正變得越來越極端化。

上圖為芝加哥旁邊的密西根湖已經完全結冰。

10、一句話新聞

  • 統計發現,目前共有1.37億個 .com 域名,其中大約1/3(4300萬個域名)正在使用。

  • 美國最大 DNA 測試網站將自己的資料庫共享給聯邦調查局 FBI,這將大大擴充套件警方 DNA 搜尋的範圍。以後,只要能夠拿到嫌疑人的 DNA,可能就會快速確定嫌疑人是誰,或者他是誰的親戚。

  • 谷歌宣佈,安卓內建 Live Transcribe 功能,運用 Youtube 的自動字幕技術,實時將語音轉換成字幕,幫助聾啞人交流。

  • Instagram 最受歡迎的照片是一隻雞蛋,1月5日上傳,截至2月4日,已經收到了5200萬個贊。

教程

1、Java 語言如何實現執行緒間通訊(英文)

一篇簡單的教程,Java 語言如何實現多執行緒程式設計。

2、谷歌搜尋的運算子(英文)

本文詳細介紹谷歌搜尋的運算子,用來定製搜尋結果。

3、函數語言程式設計的好處(英文)

著名程式設計師 John Carmack 談了函數語言程式設計對 C++ 語言的好處。不涉及程式碼,只是概念上的講解。

4、取消 C++ 的前處理器(英文)

本文作者建議,不要使用前處理器定義巨集(Macro),甚至不要使用(自定義的)巨集。

5、Fossil 與 Git 的對比(英文)

Fossil 是專為 SQLite 開發的版本管理系統,與 Git 採用不一樣的模型,總體上來說,比 Git 更簡單。

6、超越 DRY(英文)

DRY 原則指的是"不要重複自己",意思是如果程式碼有重複,就應該把它提煉出來。本文提出,這條原則不應過分嚴格地使用,有時候程式碼冗餘對軟體是有利的。

7、Deno 執行時介紹(英文)

Deno 是一個 JS/TypeScript 執行時,用來取代 Node。它的最大特點就是不支援 CommonJS,只支援 ES6 模組。

8、MIT 許可證逐句解釋(英文)

MIT 是常見的開源許可證,但是很多人並沒有看過它的條文。本文逐句解釋該許可證的每一句話。

9、未來的 JavaScript 語言(英文)

本文介紹 TC39 委員會正在考慮的、加入 JavaScript 語言的一些新功能。

10、30年的夢想失敗是什麼感覺?(英文)

一個發明家受鴕鳥奔跑姿勢的啟發,發明了一種彈簧鞋。他為這個夢想投入了30年,依然沒有成功。現在專利即將到期,30年可能就是白忙一場。

資源

1、SimpleKernel

一個作業系統核心的簡單實現,提供了各個階段完成度不同的核心,可以用來練手和學習。(@MRNIU 投稿)

2、FlatIcon

一個圖示搜尋引擎。(@LanjianNUll 投稿)

3、TravelAdapter.xyz

該網站收集各國的電壓、插頭和插座資料。

4、如果保留後臺程式

手機為了節省電力,會主動殺死後臺程式,有時這種行為不是使用者希望的。該網站收集各品牌安卓手機的做法,如何關閉主動殺死後臺程式這個功能。

5、《組合程式》(Composing Programs)

加州大學伯克萊分校以 SICP 為範本,使用 Python 3 語言解釋程式設計原理的教程。

6、SQLi Hall of of Shame

該網站收集 SQL 注入的各種真實案例。

7、資料視覺化基礎

O'Reilly 新書《資料視覺化基礎》一書的線上預覽版。

8、Apache Guacamole

瀏覽器裡面的遠端桌面聯結器,可以在網頁上登入遠端桌面,支援 VNC、RDP、SSH。(@barrer 投稿)

9、週刊資源整理

讀者對這個週刊提到的內容進行了分類整理。(@wanmaoor 投稿)

工具

1、trilium

一個開源的筆記軟體,可以安裝桌面版,也可以自己架設伺服器,使用它提供 Web 介面。

2、Tox

Tox 是一個開源的實時通訊協議,不需要中央伺服器,提供多種跨平臺的客戶端。

3、CopyTranslator

PDF 檔案即時翻譯工具。只要選中 PDF 檔案裡面的文字,就自動呼叫谷歌翻譯的 API,將其翻譯成中文,貼上出來就是中文。(@chempeng 投稿)

4、MyPerf4J

Java 應用的效能監控工具。(@LinShunKang 投稿)

5、Asciidoctor

AsciiDoc 的渲染引擎,還提供 AsciiDoc 格式的教程。

6、python-uncompyle6

Python 反編譯工具,可以將 Python 位元組碼 pyc 檔案反編譯回原始碼 py 檔案。

7、frp

一個反向代理伺服器,可以讓公網訪問架設在內網的服務。(@Seven-Steven 投稿)

8、wee-slack

一個 Slack 的命令列客戶端。

9、Nginx Office Hours

一個 Nginx 模組,使得網站只能在工作時間訪問,一到下午五點,網站就自動下線。

10、Puffer

史丹佛大學的一個視訊演算法實驗專案,可以免費觀看美國的電視直播,畫質1080P。

11、Image Inpainting

nvidia 官方的線上影像修復,自動生成影像缺失的部分。

文摘

1、無人機擊落客機只是時間問題

2018年12月,英國第二大機場蓋特威克機場,發現有一架無人機飛過機場,不得不關閉一天,幾十萬旅客受到影響。目前還不知道這架無人機是誰操作,為什麼要飛入機場。

這個事件表明,無人機對商業航空已經構成威脅。更嚴重的是,"反無人機"技術起不了多大作用。無人機已經變得太便宜,太強大,客機將不可避免地受到影響。無論是開槍、無線電干擾、或者其他措施,都無法可靠地保護客機。這可能聽起來危言聳聽,但我們對無人機真的缺乏辦法。

現在,消費者可以買到的最便宜無人機,只需要25美元。這些產品接受遙控器的無線訊號,相對容易防範,只要干擾它們的無線電訊號,就可以了。稍微昂貴的無人機有 GPS 晶片,這種無人機可以程式設計設定一個"地理圍欄",防止它們飛入指定的地理座標範圍內。

但是,上面的這些措施,只能防住普通消費者從正規渠道買到的無人機。對於具有中等技術水平的人來說,製造一架無人機很容易,自制無人機也不需要 GPS 晶片。它們也不一定需要與操作員通訊,才能保持飛行,這使得無線電干擾無效。而且,強度太大的干擾訊號,反而可能會影響到本來要保護的客機。

可以肯定的是,一架無人機攻擊一架客機,成功機會不大。這是因為在起飛和著陸時(最容易遭遇無人機的階段),客機的移動速度非常快,通常在每小時150到200英里之間,很少有無人機能夠以50~70英里/小時的速度飛行,所以客機應該可以避開無人機。此外,飛機的設計可以承受鳥撞,如果一架無人機意外撞到客機,客機可能只會受到輕微損壞,很可能還是能夠安全降落。

但是,如果無人機成群飛行,事情就會發生變化。雖然單個無人機很難攻擊飛機,但是在客機的飛行路徑上放置30架無人機,就可能會發生變化。考慮到無人機的價格,多架無人機群體攻擊是很容易的。如果通過程式設計,找出客機的引擎(通過紅外感測或通過影像),然後無人機攜帶少量爆炸物,撞擊可能會致命。

總之,對於那些蓄意攻擊客機的半自動或全自動無人機叢集,根本就沒有好的技術對策。

2、Loon 專案

Loon 是谷歌的母公司 Alphabet 發起的一個實驗專案。它為那些沒有 4G 網路的地區發射氣球,訊號基站就設定在氣球上,因此人們就可以使用 4G 服務了。比起地面基站,氣球基站的覆蓋範圍更大,而且沒有障礙物阻擋訊號。

氣球會飛到距離地面18公里~25公里的平流層,那裡沒有上下氣流,所以氣球會停留在同一個高度上。但是,橫向的風是很大的問題。為了防止氣球被吹走,Loon 帶有風向觀察功能,一旦發現有風吹來,它會自動上升或下降,避開風,儘量停留在同一個地點。

每個 Loon 氣球實際上包含了兩個氣球。外層是一個充滿氦氣的氣球,為整個產品提供所需的升力;內層是一個充滿空氣的內部氣球,可以抽空或進氣。當內層氣球膨脹時,外層氣球的氦被擠壓到密度更高,從而降低升力,開始下降,反之開始上升。通過這種方式,Loon 的工程師可以控制氣球的高度,也可以利用不同高度的風,使氣球向需要的方向前進。

利用這種導航方式,氣球已經可以長距離發射。工程師在紐西蘭發射氣球,然後操縱它飄到阿根廷和澳大利亞的目標地區。該專案計劃2019年在肯亞提供 4G 通訊服務,氣球就將在波多黎各發射,然後飄過大西洋,到達肯亞。

氣球通過自帶的太陽能板獲取電力,每隻氣球可以使用幾百天。2017年,波多黎各颶風時期,地面通訊都被摧毀了,Loon 氣球成功地為災區提供了手機訊號。

本週圖片

1、公共汽車的候車亭

奧地利一個沒有名氣的小鎮,希望發展旅遊業。他們邀請世界最著名的設計師,為他們設計公共汽車的候車亭,報酬是可以來小鎮免費度假。現在,這樣的候車亭已經有了近10座。

2、聲波反射器

第一次世界大戰是第一場有飛機參與的戰爭。當時還沒有雷達,為了提早發現敵機的飛行路線,英國在海岸邊的懸崖上架設了很多聲音反射器,將飛機發動機的音波反射到地面上,以便提早發現。

3、曼哈頓的航拍照片

本週金句

1、

不要刻意去記住某件事,而要去尋找使其顯而易見的解釋。

-- 理查德·費曼

2、

"X公司使用的是什麼語言",這種話毫無意義,程式語言與公司的成功關係不大。某個公司使用哪種語言,主要是早期創始人的偏好。

-- 《論程式語言的選擇》

3、

學習函數語言程式設計對我產生的影響是,讓我更加關注哪些概念自然地被視為"物件",哪些概念是不可變的"值"。

我還會更加註意,我的程式碼是否包含副作用,從而更謹慎地隔離這些地方,使程式碼更多是"純的",這大大提高了我的物件導向程式碼的可測試性。

-- 《函數語言程式設計對物件導向的程式設計師有什麼用?》

4、

招聘高階工程師時,不是公司選擇候選人,而是候選人選擇公司。

-- 《招聘人才不是買,而是賣》

歡迎訂閱

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

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

(完)