本雜誌開源(GitHub: ruanyf/weekly),歡迎提交 issue,投稿或推薦你的專案。
週刊討論區的帖子《誰在招人?》,提供大量就業資訊,歡迎訪問或釋出工作/實習崗位。
封面圖片
美國猶他州國家公園的工作人員,進入山洞為一隻冬眠的熊安裝追蹤項圈。不料,這頭熊沒有睡著,瞪大眼鏡看著他們。好在它沒有攻擊工作人員,麻藥也很快發生了作用。(出處)
本週話題:資訊的半衰期
半衰期是一個物理學概念,指的是放射性物質減少一半質量(輻射衰弱)所需的時間。
這個概念其實很好理解。根據愛因斯坦最著名的質能公式 E=mc²,能量即質量,任何釋放能量的物體都必然會減輕質量。
最近,我看到有人提出了一個新的概念,他說資訊也有半衰期。 資訊的半衰期指的是,一半的資訊量變得無關緊要或者徹底過時所需的時間。
以報紙為例,出版當天的價值最大,第二天再看,價值至少減半,所以報紙的半衰期是一天到幾天。微信和微博的半衰期也類似,早上發的朋友圈,晚上就不太有人看了。至於即時訊息或聊天的半衰期就更短了,只有幾個小時。
當代社會的趨勢是,資訊的半衰期越來越短,有一個詞叫做"快餐文化"。以前,一本新書可以在書店裡賣幾年,現在賣幾個月就下架了,被新的出版物取代。大部分書籍的半衰期就是幾個月到一年。
如果你寫過軟體文件,就會對半衰期有切身的體會。一旦軟體版本升級,以前文件的價值立刻大減。我為 React 0.14 版寫過教程,短短几年中,它的 API 至少變了三次,每變一次,原始教程的價值就降低一半。一算就知道,經過三輪半衰期,文件的價值只剩下八分之一。
我的建議是,不管你寫什麼,儘量寫一些半衰期比較長的內容 ,這樣有利於提高內容的使用價值(也是提高你的勞動的價值)。有些朋友喜歡發朋友圈和社交媒體,花了很多時間,但是內容馬上就過時了,也沒法重複使用。
順便說一句,這個週刊的半衰期就很短,過了一週就很少有人看了。我也在想,怎樣才能延長週刊的半衰期,使得它有更多被用到的機會。
前端必備資料和演算法結構
前端工程師需要懂多少演算法知識?
以前,前端工程師被戲稱為"切圖工程師",所有的工作就是忠實地還原視覺稿,那時確實不太需要演算法。
但是,自從單頁應用 SPA 和全棧開發出現以後,一切都變了。今天如果你不懂演算法,就只能停留在視覺還原這個層次,沒法承擔一些高階的開發任務。比如,虛擬 DOM 渲染的效能最佳化,或者 Node.js 快取管理。事實上,現在大廠的前端面試,演算法的內容也佔了不小的比重。
這裡有一份 開課吧 特別提供的免費影片資料《前端必備演算法和資料結構》。重點講述了演算法思想的分類學習,包括遞迴、回溯、貪心、動態規劃等。
感興趣的小夥伴,長按下方二維碼兩次,現在就能 免費領取 這些影片教程。
溫馨提示:資料數量有限,僅提供 259份。
資訊
1、貓頭鷹無聲飛行之謎
貓頭鷹是一種大型鳥類,張開翅膀後,翼展可以達到一兩米。但是,它的飛行非常安靜,飛到離你三米遠的地方,你會毫無察覺。這是因為貓頭鷹飛行引起的空氣振動,頻率很低,低於人類的聽覺閾值。長久以來,生物學家和工程師都想解決貓頭鷹無聲飛行的奧秘,設計出更安靜的風扇、渦輪葉片和飛機機翼。
早先有人提出,貓頭鷹的翅膀有三個特殊之處:上緣羽毛像梳子一樣向前伸出,翅膀完全覆蓋著一層柔軟的天鵝絨般的羽毛,下緣羽毛形成了參差不齊的流蘇(上圖)。最近,美國科學家發表論文,提出借鑑貓頭鷹翅膀,降低飛機機翼的後緣硬度,並且採用多孔結構,同時使其更具柔韌性。經過他們測試,可以降低噪音約10分貝。
2、模組化房屋
美國一家創業公司推出了模組化房屋。工廠做好各種房屋模組,直接用卡車拉到現場,進行安裝,能夠快速入住。價格從幾千美元,一直到幾十萬美元。
它提供多種能源介面,可以接外部電源,也可以接發電機或者太陽能板。如果安裝的是住宅,現場還要接入排水排汙的管道。因為是模組化房屋,它的拆除和更換元件非常方便。不過,這種房屋不能建高層,所以只適用於鄉下。
3、無人測溫車
北京理工大學在校門口部署了一輛無人測溫車,對進入校園人員進行測溫。一旦發現誰體溫偏高,就會發出警報聲。
該車的原始功能是無人配送車,可以將包裹運往目的地。收件人到達現場後,該車頂部的攝像頭會對收件人進行人臉識別。只有識別成功後,收件人才能開啟車上的儲物門取出包裹。
4、地熱發電
最近石油價格暴跌,意想不到的一個結果是,這為美國的地熱發電帶來了發展機遇。因為石油價格太低,石油公司不得不停產,閒置的挖掘機械正好為地熱發電進行鑽探。
越靠近地心,溫度就越高,因此可以利用地下高溫帶來的能量進行發電。地熱發電有很多優點,非常可靠,不會間斷,沒有任何汙染。唯一的缺點是建設成本高,比太陽能發電廠貴得多。大部分成本發生在鑽探,需要向地下鑽探1000米以上,才能獲得150度的高溫,因此鑽探價格下降,對它是最大的利好。
5、藍芽追蹤
蘋果宣佈與谷歌聯手,為手機提供藍芽追蹤 API,用來追蹤病毒感染者的密切接觸者。這大概是 iOS 與安卓的第一次合作吧。
這個 API 的原理是,手機的藍芽向外部廣播一個唯一識別符號,其他手機接收到這個識別符號,就會記錄下來,有效期兩週。如果你發現自己感染了病毒,就把自己的唯一識別符號上傳雲端。其他手機會同步這個名單,一旦發現名單裡面的識別符號,曾經出現在日誌裡面,那個人就應該自我隔離了。詳細的介紹可以參見這裡。
6、一句話訊息
- 有人做了 WebGL 版本的"百萬美元格子主頁",永久出售頁面的虛擬樓宇廣告。我覺得挺有創意的。
- GitHub 宣佈,團隊的私庫也免費了。這就是說,它基本上是一個免費網站了,核心功能幾乎都不要錢,只剩下企業版收費了。
- 芬蘭政府批准數字文化 Demoskene 成為人類文化遺產,這可能是世界第一例軟體相關的文化遺產。Demoskene 最常見的形式,就是愛好者的聚會,展示音樂、圖形、影片等等。
- Instagram 2019年的銷售收入是200億美元。相比之下,Youtube 的銷售收入是150億美元,並且其中很大一部分還必須分給影片創作者。
- 日本將在未來五年內,新建多達22個燃煤發電廠。這是近十年前福島核災難迫使日本關閉幾乎所有核電廠的計劃的後果。
- 統計發現,在過去的14年中,標準普爾500強公司 CEO 的上任年齡增長了14歲。這表明,美國大公司最近喜歡任命年齡大的 CEO。
文章
1、瞭解 JavaScript 依賴地獄(英文)
安裝 Gatsby.js 時,會下載19000個依賴模組。本文講解如何分析 Node.js 的依賴關係。
2、GitHub 的10個使用小技巧
官方介紹10個 GitHub 使用小技巧,很實用,推薦閱讀。
3、我家如何安裝太陽能發電(中文)
臺灣網友的一個論壇帖子,有大量圖片,介紹他在自家屋頂安裝太陽能板,很簡單就達到了1000瓦的功率。
4、停止用 Eclipse 教 Java(英文)
本文提出初學者的 Java 教學,不應該透過 IDE (比如 Eclipse)進行教學。應該這樣一來,教學的重點就會變成 IDE 的用法,而不是語言本身。
6、mv 命令無需兩次鍵入檔名(英文)
mv
命令用於為檔案改名,需要輸入兩次檔名(舊名字和新名字)。要是你只改動一個字母,而檔名又特別長,這就很煩人。這裡有一個 Bash 技巧,可以讓你輸入最小化。
7、我選擇 NextDNS(英文)
DNS 是上網必需的一個協議。現在很多服務商提供 DNS 級別的防廣告和防追蹤功能,本文作者介紹為什麼選擇 NextDNS。
8、分散式雜湊表 (DHT) 和 P2P 技術(中文)
分散式的 P2P 網路通常使用分散式雜湊表(DHT)進行路由,查詢周圍的節點。本文介紹 DHT 的基本知識,以及演算法的實現原理。(@luyuhuang 投稿)
9、Docker 映象構建教程:減小映象體積(中文)
自己製作的 Docker 映象檔案,往往體積很大。本文介紹如何一步步壓縮映象檔案的體積,將 C 語言的 hello world 從最初的 1 GB 壓縮到 94 KB。(@lupus721 投稿)
10、CTO 幹什麼?(英文)
作者原本是一個6人小公司的工程師,後來因為公司業務快速擴張,他被提拔成工程總監(CTO)。他花了三年時間,才搞明白什麼是 CTO 的職責,分成產品、流程、人員三部分。
工具
1、markmap-lib
一個將 Markdown 轉為思維導圖的開源工具。
2、codefence
一個可以嵌入網頁的互動式程式碼編輯器,使用者能夠直接在網頁上輸入程式碼並執行,得到結果。服務端是 Docker 容器,目前支援十幾種主流的計算機語言。
3、droppy
一個可以自己架設的網盤服務,適合搭建在內網,從 Web 介面上傳和下載檔案。
4、aind
一個裝在 Docker 容器裡面的安卓模擬器。
5、jott.live
一個輕量級 Markdown 筆記網站,不需要註冊,只需要為文件指定密碼,適合隨手寫一點東西分享出去。
6、Tablist
Chrome 瀏覽器外掛,可以一次性列出所有 Tab 的網頁 URL,方便複製。
7、iKeep
一個開源的時間規劃微信小程式。(@brenner8023 投稿)
8、Feeds Pub
一個社會化的 RSS 閱讀器,除了常規的 RSS 聚合功能外, 還加入了一些社會化的屬性。(@timqian 投稿)
9、JSON Generator
一個生成虛擬 JSON 資料的線上工具,可以根據給定的模式,自動生成 JSON 資料。
10、Branca
一種安全令牌的資料格式,比 JWT 更安全,同類專案還有 Paseto。
資源
1、 NYC Cams
實時檢視紐約街道上的攝像頭。
2、Haskell 語言入門
英文的免費電子書。
3、Godot 101 -遊戲引擎基礎
遊戲引擎 Godot 的免費教程。
4、RFC1180: TCP / IP教程
一個早期的 TCP/IP 協議的英文教程,作為 RFC 1180 提交了。
5、《斯諾登自傳》
斯諾登自傳《永久記錄》,未刪節的簡體中文版 PDF 下載,作者本人授權。
6、x64 彙編的學習資源(英文)
這是 Hacker News 的討論帖,列出了網上免費的 x86 組合語言的學習資源。
圖片
1、蓋德隆城堡
蓋德隆城堡是法國的一個實驗性考古專案,採用中世紀的材料和方法,從頭修建一座城堡。
1997年開始動工,由於不採用現代機械,所以修得很慢,預計2023年完工。
2000年。
2006年。
2009年。
2015年。
2019年。
2、生物插圖下載
生物多樣性圖書館(Biodiversity Heritage Library,BHL)提供15000多張生物插圖,可以免費下載,都來自歷史上的各種資料。
文摘
1、天基動能武器
天基動能武器是一種處於概念階段的大規模毀滅性武器,所有技術都已經實現了。
最早的構想來自將核導彈佈署於太空衛星上,戰時直接落在敵人國土上方,這樣將極大縮減對方反應時間。然而,不久後就有人提出任何有質量的物體從衛星高度墜落,其殺傷力與隕石撞地球無異,不需要核武也能達成核武類似效果。
這種概念日漸流行,因為核武器的輻射汙染和政治敏感性,使得首先用核武器的正當性在國際社會很難立足,核彈頭在太空的維持費用也高得驚人。而這種新型天基武器反應速度快、命中精度高,且沒有輻射,也不違反任何目前國際核武條約,威力大小透過彈體質量容易調整。
理論上,一塊寬30釐米、長6.1米、重量達數噸的鎢、鈦或鈾金屬棒狀彈體可穿過大氣層燃燒階段,從距離地面1000千米的太空落下的時速可達15000千米以上,相當於11.5噸 TNT 炸藥,產生的動能撞擊可以比擬小型戰術核武器。
2、阿波羅13號事故
50年前的本週,1970年4月13日,美國阿波羅13號登月飛船發生事故。但是,三名宇航員成功返回地球,成為宇航史的傳奇。
當時,一個氧氣罐的感測器發生故障,宇航員檢查開關時,發生了爆炸,飛船受到了一定的損毀。最要命的是,兩個氧氣罐的氧氣全部丟失,需要氧氣維持運作的燃料電池,只剩下10個小時的電力。
為了省電,宇航員只能關閉了取暖系統,並且放棄主飛船,乘坐登月艙返回地球。登月艙原本的設計是,供兩名宇航員使用兩天,如今卻擠進了三名宇航員。二氧化碳的濃度急劇上升,地面指揮中心想出了一個辦法,指導宇航員用僅存的物資,拼裝出了一個過濾器,成功降低了登月艙的二氧化碳濃度。
飛船的主推進系統已經不再可靠,他們只好在繞過月球背面以後,發射了一枚火箭進行加速,然後向地球自由墜落。返回途中,三位宇航員被告知不可將尿液或其他液體排出艙外,因為這會影響登月艙的墜落軌道。
整個過程持續了四天,三位宇航員最終安全返回了地球。為了分析事故起因,指揮中心要求宇航員為飛船拍攝照片,成為了事後珍貴的歷史資料。下面就是在進入地球大氣層之前,他們自拍的三人合影。
事後分析,整個事故最幸運的一點是,飛船是在去月球途中出現問題,而非回程。如果在登月後發生事故,由於剩餘資源會大大減少,宇航員將不太可能生還。若正常完成登月任務,登月艙會被拋棄,三位宇航員就沒有了救生艙。
言論與數字
1、
501程式設計師指的是,一到 5:01 就離開辦公室下班回家的程式設計師。
-- 《501 程式設計師宣言》
2、
軟體行業最大的問題之一就是必須不斷招聘新人。因為軟體持續不斷地損毀,總是需要拆除並完全重建。
-- 《軟體行業最大的問題》
3、
他太熱愛數學,以至於無法想象,為什麼學生會在他的班上關心自己的成績。
-- 《數學家約翰·康威去世了》
4、
已知對人類有致病性的微生物,大約有1400種,其中約500種細菌,約200種病毒,其他為各種真菌、蠕蟲和原生動物。
-- 《病原體和人類世》
5、
如果要長期儲存一樣東西,就不要用不能持久的東西作為它的基礎。
有一些技術,就不適合用來建立長期的網站。你能想象連續25年執行一個 WordPress 網站嗎?它依賴的 PHP 版本將在很早之前就不能執行了。
-- HN 讀者,評論一個 FrontPage 做的網站,18年後仍在更新。
6、
幾年前,我開設了一個社群網站,經常有人來搗亂,加黑名單、封 IP 地址都沒用,他們會更換使用者名稱和 IP 地址。
最終,我想了一個辦法,把每頁的渲染時間增加為5到25秒,讓網站體驗不好。過了幾天,這些人就不再出現了。
-- HN 讀者
回顧
去年的本週:《週刊第 52 期》
訂閱
這個週刊每週五發布,同步更新在阮一峰的網路日誌和微信公眾號。
微信搜尋"阮一峰的網路日誌"或者掃描二維碼,即可訂閱。
(完)