這裡記錄過去一週,我看到的值得分享的東西,每週五發布。
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年之前將第一批氫氣列車投入使用。
氫氣的最大問題,就是很難大量運輸。這就是為什麼氫氣汽車沒法推廣,因為氫氣加油站的網路建設不了。但是,火車就沒有這個問題,每個城市的火車站都可以建氫氣供應站。
9月21日,日本的隼鳥二號飛船(Hayabusa-2)到達了一個名叫 Ryugu 的小行星,釋放了兩輛探測車成功登陸。這是人類探測器第一次登陸小行星。
Ryugu 小行星其實是一塊一公里長的太空岩石。隼鳥二號是2014年12月3日發射的,足足飛了近四年,才達到那裡。由於小行星接近於沒有重力,探測車無法行駛,而是跳躍式前進,向前動一下就會跳起來。探測車已經發回了第一批照片。
探測車的下一步的任務是,10月下旬引爆一些炸藥,收集炸出來的岩石。(我的疑問:太空沒有空氣,為什麼能產生爆炸?)這些岩石沒有暴露在太空環境,所以是原始的。一年後的2019年12月,隼鳥二號飛船將返程,將小行星的岩石樣本送回地球。
3、最古老的動物化石
科學家最近在俄羅斯偏遠地區的一處懸崖,發現了一塊古老的海洋生物化石。經過鑑定,該化石距今大約5.58億年,是已知最古老的動物化石。下圖是發現化石的現場。
IPv6 誕生至今已經25年了,依然沒有得過普及。世界前1000位的網站,只有304個啟用了 IPv6。前100萬位的網站,總支援率是18.6%。
一個網站啟用 IPv6 有兩個條件:一是網站本身支援 IPv6(域名有 AAAA 記錄),二是網站的 DNS 主機支援IPv6。下面是排名最靠前的不支援 IPv6 的網站。
5、機器人皮膚
耶魯大學的科學家發明了一種可捲曲的"機器人皮膚",可以包裹在任何物體的外層,使得該物體變成可以控制的機器人。上圖是毛絨填充的小馬玩具穿上"機器人皮膚"以後,變成可以走動了。
科學家已經實現了,給氣球穿上"機器人皮膚",使得氣球變成可以程式設計控制。
6、無人機查稅
希臘的聖托裡尼島是世界著名的旅遊景點,每年有大量的遊客參加一日遊專案。但是,很多導遊公司為了逃稅,隱瞞遊客數量。
當地政府開始啟用無人機,觀察遊客數量,以及出海的遊船,用來評估當地業者應該交稅的數量。據稱,已經查到9艘沒有開票的遊船,涉及收入總計約25,000歐元,遊船主人現在面臨罰款。
最近,安哥拉到巴西的海底電纜鋪設完成,這是歷史上第一條南大西洋的海底電纜。南部非洲和南美洲以前從來沒有直連的海底電纜。
這條電纜也是南美洲第一條不經過美國的國際網際網路線路。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 執行。
資源
如果你不知道 Youtube 上可以學什麼,就來看看這個帖子。當然,所有資源都是英語的。
開源教材,介紹計算機的底層實現,寫得比較好懂。
一個教程庫,每一步都有指導,教你怎麼寫出一個簡單的作業系統。
4、創業公司
一個網頁遊戲,玩家是創業公司的創始人,模擬經營這家公司,完成各種任務。
這個倉庫收集 Python 語言實現的各種演算法程式碼。
工具
1、ReactXP
微軟基於 React Native 開發的框架,沿用了 React Native 的 API,可以用同一套程式碼編譯出 Web、手機 和 Windows 應用。
與谷歌一樣,Bing 也提供影像搜尋。但是,它還帶有裁剪功能,可以只搜尋影像的一部分。
Rails 框架的創造者 Basecamp 公司,開發了一個富文字編輯器 Trix,釋出1.0版了。
4、Cephes
Cephes 是 JavaScript (準確說是 WebAssembly)的數學函式庫,類似 Python 的 SciPy。
一個 Qt 庫製作的最簡化瀏覽器,核心是 Chromium。最大特點就是它自帶命令列,可以完全用鍵盤操作。
該網站提供指導,如何將各種作業系統或裝置的 DNS 設為 1.1.1.1。
7、sqlfmt
SQL 語句格式化的線上工具。
8、Caddy
Caddy 是一個支援 HTTP/2,自帶 HTTPS 功能的跨平臺、易於使用的 Web 伺服器。
9、camelot
從 PDF 檔案(非掃描)裡面提取表格的 Python 庫。
文摘
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年裡面,如果你發財了,就贏得了遊戲,否則你就出局,必須離開矽谷。
歡迎訂閱
這個專欄每週五發布,同步更新在我的個人網站、微信公眾號和語雀。
微信搜尋"阮一峰的網路日誌"或者掃描二維碼,即可訂閱。
(完)