每週分享第 26 期

阮一峰發表於2018-10-12

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

Basecamp 是 IT 行業很有名的一家公司,提供團隊協作工具,同時也是 Rails on Ruby 框架的創造者。這家公司的特別之處在於,它不僅寫軟體,還寫暢銷書!

它的兩位老闆喜歡寫書,已經出版了三本----《Rework》、《Getting Real》和《Remote》----每一本都賣得很好。最近,他們又出版了第四本《工作何必瘋狂》(It Doesn't Have to Be Crazy at Work,見上圖)。

這本新書的主要觀點是,IT 行業的員工加班(或者說投入工作的程度),已經超過了合理標準,接近於瘋狂,應該得到遏制。很多軟體工程師每週的工作時間已經達到了60小時,甚至70、80小時。除了工作和睡眠,生活幾乎沒有其他內容。作者認為,這是錯誤的。

加班真的是 IT 行業的日常。國內有過一個《2016 年 IT 公司加班時間排行榜》,排名前三位的分別是華為、騰訊和阿里,平均每天的加班時間分別為3.96小時、3.92小時和3.89小時。

是不是一定要那麼多加班?這本書說,也不是。加班多的一個因素是,公司沒有好好珍惜員工的時間,打斷工作的事情特別多,最典型的舉措就是開放式辦公室,使得人們互相干擾。員工因此不得不加班,因為在正常時間內無法完成工作。作者認為,公司應該創造條件,讓員工全身心投入工作,不要拖到夜深人靜時才能沒有打擾。

許多公司似乎都很擅長浪費:浪費時間、注意力、金錢、精力。每週60、70、80的工作小時中,有多少是真正用於工作本身的?又有多少時間是在會議中浪費掉的,或被各種瑣事打斷的?大部分吧。

答案不是更多的時間投入,而是減少浪費,減少員工的注意力分散,減少那些引起焦慮和壓力的事情。

同時,這本書也指出,IT 公司的工作任務也確實過多:無休止的需求、不斷的營銷活動、精確到小時的排期,都給工程師帶來了焦慮和壓力。普通的行業,使用者一年增長一倍,絕對是值得慶祝的,但是 IT 行業不行。這個行業渴望的是一年增長十倍,甚至百倍,要的是從0變成獨角獸的那種速度。

作者說,我們要一定要這樣嗎?IT 行業對高速增長有一種不健康的痴迷。正是這種痴迷,使得人們產生不切實際的期望,導致從業者精疲力盡。

這本書的主張是,軟體行業也可以是一個平靜的行業,而不一定像現在這樣,是一個加速再加速的行業。平靜才是長期可持續發展的關鍵。(注意,這裡不是指公司,公司只要不斷僱傭新人,就可以讓工作永遠加速執行。但是員工不行,人的生理和心理都不是可以長期透支的。)

過去的18年裡,我們一直致力於讓 Basecamp 成為一家平靜的公司。我們不提出不可能的承諾,不追求高額的營業額,不設定最後期限,不人為製造繁忙的工作和系統性的焦慮。有些專案似乎永遠不會結束,我們覺得也 OK。

新聞

1、氫氣列車

德國開通全世界第一列氫氣列車,執行在一條100公里的線路上。氫氣列車通過氫氣和氧氣的化學反應產生能量,轉化為電力,唯一的排放物就是水。單個氫氣罐可以支援列車行駛1,000公里。

列車由法國的阿爾斯通公司製造。阿爾斯通表示,計劃到2021年向德國再提供14輛氫氣列車,而英國,荷蘭,丹麥,挪威,義大利和加拿大等國也有興趣。法國政府已經表示,要在2022年之前將第一批氫氣列車投入使用。

氫氣的最大問題,就是很難大量運輸。這就是為什麼氫氣汽車沒法推廣,因為氫氣加油站的網路建設不了。但是,火車就沒有這個問題,每個城市的火車站都可以建氫氣供應站。

2、日本的小行星探測器

9月21日,日本的隼鳥二號飛船(Hayabusa-2)到達了一個名叫 Ryugu 的小行星,釋放了兩輛探測車成功登陸。這是人類探測器第一次登陸小行星。

Ryugu 小行星其實是一塊一公里長的太空岩石。隼鳥二號是2014年12月3日發射的,足足飛了近四年,才達到那裡。由於小行星接近於沒有重力,探測車無法行駛,而是跳躍式前進,向前動一下就會跳起來。探測車已經發回了第一批照片。

探測車的下一步的任務是,10月下旬引爆一些炸藥,收集炸出來的岩石。(我的疑問:太空沒有空氣,為什麼能產生爆炸?)這些岩石沒有暴露在太空環境,所以是原始的。一年後的2019年12月,隼鳥二號飛船將返程,將小行星的岩石樣本送回地球。

3、最古老的動物化石

科學家最近在俄羅斯偏遠地區的一處懸崖,發現了一塊古老的海洋生物化石。經過鑑定,該化石距今大約5.58億年,是已知最古老的動物化石。下圖是發現化石的現場。

4、IPv6 的普及狀況

IPv6 誕生至今已經25年了,依然沒有得過普及。世界前1000位的網站,只有304個啟用了 IPv6。前100萬位的網站,總支援率是18.6%。

一個網站啟用 IPv6 有兩個條件:一是網站本身支援 IPv6(域名有 AAAA 記錄),二是網站的 DNS 主機支援IPv6。下面是排名最靠前的不支援 IPv6 的網站。

5、機器人皮膚

耶魯大學的科學家發明了一種可捲曲的"機器人皮膚",可以包裹在任何物體的外層,使得該物體變成可以控制的機器人。上圖是毛絨填充的小馬玩具穿上"機器人皮膚"以後,變成可以走動了。

科學家已經實現了,給氣球穿上"機器人皮膚",使得氣球變成可以程式設計控制。

6、無人機查稅

希臘的聖托裡尼島是世界著名的旅遊景點,每年有大量的遊客參加一日遊專案。但是,很多導遊公司為了逃稅,隱瞞遊客數量。

當地政府開始啟用無人機,觀察遊客數量,以及出海的遊船,用來評估當地業者應該交稅的數量。據稱,已經查到9艘沒有開票的遊船,涉及收入總計約25,000歐元,遊船主人現在面臨罰款。

7、南大西洋的海底電纜

最近,安哥拉到巴西的海底電纜鋪設完成,這是歷史上第一條南大西洋的海底電纜。南部非洲和南美洲以前從來沒有直連的海底電纜。

這條電纜也是南美洲第一條不經過美國的國際網際網路線路。2020年,巴西直達歐洲(葡萄牙)的海底電纜也將完成。

8、AI 藝術品

這個月,佳士得將首次拍賣人工智慧藝術品。一幅演算法生成的人物肖像,估價達到了1萬美元。

事實上,已經有很多繪畫機器人,通過大量畫作的訓練,會自動生成美術作品。下面六幅抽象畫,有五幅是人的作品,還有一幅軟體生成的,你能看出來是哪一幅嗎?

9、一句話新聞

  • 美國科學家發現,人體在禁食期間會產生一種分子,防止血管系統的衰老。也就是說,24小時不吃東西,有助於延長壽命和防止衰老。
  • Java 11 最近釋出了。但是,你不要用 Oracle 的官方 JDK 開發,因為那個 JDK 升級和用於生產環境是要錢的。你應該使用 OpenJDK,Redhat 公開承諾將持續維護 OpenJDK。
  • Facebook 宣佈,新建的新加坡資料中心,將百分百採用可再生能源,主要由安裝在近900個屋頂上的太陽能電池板供電。該專案預計將在2020年完成。
  • Firefox 推出 VR 裝置專用的網路瀏覽器。

教程

1、異常處理是錯誤的設計(英文)

許多主流語言都採用丟擲異常的方式處理錯誤,這篇文章認為,這種設計是錯誤的,傳統的返回值是更好的方式。丟擲異常的主要好處是,可以將業務程式碼與錯誤處理程式碼分開,缺點是它改變了控制流,有點像 goto 語言,可以隨意跳轉。

2、如何撰寫技術文件(英文)

技術文件(documents)分成四種:教程(tutorial)、指導(guide)、解釋(explanation)和參考(reference)。本文解釋了每一種文件的特點,並給出了寫作建議。

3、阿里巴巴的18位創始人(英文)

1999年,阿里巴巴集團成立,當時共有18位創始人,大部分是馬雲的同事、朋友和學生。這篇文章彙總了這18個人的公開資料。

4、使用 Qt 為 Python 指令碼新增圖形介面(英文)

Qt 是一個 C++ 寫的跨平臺控制元件庫,PyQt 將其移植到 Python,可以很方便地為 Python 指令碼新增圖形介面。

5、微服務入門示例(英文)

本文解釋了什麼是微服務架構,並且給出了一個簡單的示例,在 Docker 裡面使用 Flask 框架和 ZeroMQ 搭建一個簡單的微服務應用。

6、為什麼使用 i3 視窗管理器?(英文)

Linux 發行版一般都自帶桌面環境,如果你需要的只是一個好用的命令列,那麼你可以放棄桌面環境,改用視窗管理器。i3 就是一個很好用的平鋪式視窗管理器,本文給出了五個推薦理由。如果你有興趣的話,這裡還有一篇簡單教程

7、Pi-hole 攔截廣告(英文)

如果你還在用廣告攔截器,Pi-hole 是更好的選擇。它是樹莓派上的 DNS 伺服器,架設在區域網裡面,內建黑名單,攔截廣告域名的 DNS 請求。從此,區域網所有裝置都看不到廣告。

8、如何製作命令列動畫?(英文)

本文介紹如何使用 ncurses 這個 C 語言標準庫,寫一個簡單的命令列動畫。

9、如何將 Web 應用做成 Docker?(英文)

本文通過一個很簡單的單頁應用,演示如何將 Web 應用放到 Docker 裡面,然後通過 Docker 執行。

資源

1、Youtube 的教育視訊

如果你不知道 Youtube 上可以學什麼,就來看看這個帖子。當然,所有資源都是英語的。

2、計算機組織導論:以樹莓派和 ARM 組合語言為例

開源教材,介紹計算機的底層實現,寫得比較好懂。

3、從零開始寫一個作業系統

一個教程庫,每一步都有指導,教你怎麼寫出一個簡單的作業系統。

4、創業公司

一個網頁遊戲,玩家是創業公司的創始人,模擬經營這家公司,完成各種任務。

5、各種演算法的 Python 實現

這個倉庫收集 Python 語言實現的各種演算法程式碼。

工具

1、ReactXP

微軟基於 React Native 開發的框架,沿用了 React Native 的 API,可以用同一套程式碼編譯出 Web、手機 和 Windows 應用。

2、Bing 的影像搜尋

與谷歌一樣,Bing 也提供影像搜尋。但是,它還帶有裁剪功能,可以只搜尋影像的一部分。

3、富文字編輯器 Trix

Rails 框架的創造者 Basecamp 公司,開發了一個富文字編輯器 Trix,釋出1.0版了。

4、Cephes

Cephes 是 JavaScript (準確說是 WebAssembly)的數學函式庫,類似 Python 的 SciPy。

5、qutebrowser

一個 Qt 庫製作的最簡化瀏覽器,核心是 Chromium。最大特點就是它自帶命令列,可以完全用鍵盤操作。

6、DNS 1.1.1.1

該網站提供指導,如何將各種作業系統或裝置的 DNS 設為 1.1.1.1。

7、sqlfmt

SQL 語句格式化的線上工具。

8、Caddy

Caddy 是一個支援 HTTP/2,自帶 HTTPS 功能的跨平臺、易於使用的 Web 伺服器。

9、camelot

從 PDF 檔案(非掃描)裡面提取表格的 Python 庫。

文摘

1、Chrome 的恐龍遊戲

Chrome 瀏覽器由於網路中斷、無法上網時,會顯示一個恐龍遊戲。一頭霸王龍困在沙漠之中,必須不停地奔跑,且必須跳躍避開像仙人掌和翼手龍這樣的障礙物,隨著遊戲的進展,速度會越來越快。

該遊戲於2014年9月首次釋出。位址列鍵入 chrome://dino 就可以進入該遊戲。開始遊戲的方法是:PC 使用者按一下空格鍵,手機使用者點選恐龍。

遊戲的設計師塞巴斯蒂安·加布里爾(Sebastien Gabriel)說,斷網就好比回到網際網路之前的時代,因此我們設想出這個迴歸"史前時代"的遊戲,那時的計算機使用者好比恐龍,無網可上就像困在沙漠中。恐龍的形象採用畫素藝術的風格,恐龍的動作故意設計得很僵化。

只要不觸碰障礙,使用者可以一直遊戲下去。遊戲內部設定的最長遊戲時間是1700萬年,這大約是霸王龍在地球上存活的時間。

2、灣區就是新的礦場

19世紀時,美國社會有一個流行的現象。許多年輕人離鄉背井,為了得到高薪,去遙遠的西部礦場挖礦。在那裡工作幾年,就可以賺取足夠的錢,回家娶一個老婆。礦場的生活是非常艱苦的,條件很差,這也是礦主支付高薪的原因,否則沒人願意來。

20世紀時,這種現象變成了石油行業。石油鑽井平臺通常都在偏遠地區,有的還是在沙漠和海洋裡。石油工人可以得到高工資,代價是惡劣的生活條件,以及遠離家庭的孤獨。

現在,這種現象變成了 IT 行業。年輕人為了高薪,來到灣區當程式設計師,同樣過著艱苦的生活。我聽說,舊金山的一間臥室裡面,居然住了好幾個大學畢業生,因為舊金山雙居室公寓的租金是5500美元/月。有些谷歌的僱員也是合住,而且地理位置也不好,離交通幹線很遠。

很多人把灣區看成新時代的礦場。IT 行業的工資比其他行業高,那些外來的程式設計師,計劃是省錢,忍受一段時間的惡劣生活,然後在30多歲退休,再去低成本城市工作並在那裡開始家庭生活。

本週圖片

1、南極洲的冰川裂縫

上圖是充滿裂縫的冰川。由於氣溫上升,南極洲的冰川開始崩解,變成小塊落入海中,然後融化。

2、海市蜃樓

下面是2018年8月,有人在加拿大拍到的海市蜃樓照片。船的形狀一直在改變,整個過程持續了半個小時,然後就消失不見了。

3、珍道具

珍道具(Chindōgu)是一些富有創意,但並不實用的發明。它是今年71歲的 Kenji Kawakami 在上個世紀90年代發起的。當時,他負責編制一本針對日本家庭主婦的郵購商品目錄。有時候,商品目錄看起來很薄,他就會加入一些自己製作的產品,有點像惡作劇。

遮雨的鞋子。

脣膏狀的黃油棒。

帶有掃帚功能的拖鞋。

感冒患者專用的面紙架。

噴水的牙刷。

新奇

1、便攜打字機

美國一家公司推出一臺行動式裝置,只能用於打字,這是為了防止使用者分心。它包括一個全尺寸鍵盤和一個電子墨水屏,可以開啟多個文件,系統會自動儲存並同步到Dropbox等服務。該裝置的眾籌價是279美元。

本週金句

1、

七年前,風險投資家 Marc Andreessen 寫了一篇文章《軟體正在吞噬世界》。他提出,軟體公司將會贏得世界。

現在我們知道,他是對的。但是,他沒有提到,這個社會的大部分人不擁有軟體公司,而是生活在被軟體吃掉的世界裡。

-- John Battelle《被軟體吃掉的世界》

2、

我有時覺得,矽谷是一個遊戲,每個玩家有10年時間。在這10年裡面,如果你發財了,就贏得了遊戲,否則你就出局,必須離開矽谷。

-- Florent Crivello

歡迎訂閱

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

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

(完)