封面圖
12月16日清晨,柏林水族館的世界最大的圓柱體水族箱(高達14米)突然爆裂,原因據說是夜間低溫造成了玻璃裂痕,1000噸水和1500條熱帶魚傾瀉而出,淹了一條街。(via)
本週話題:中國的陽光地帶
入冬以後,上海都是冷颼颼的陰沉天氣。偶爾有幾天,太陽露一下臉。
每年的這個時候,我就想換一個城市過冬,去那種陽光充足的地方。
今年真的打算成行,我就想確定一下,中國陽光最多的是哪些城市。
氣象學真的有這個統計,叫做"全年日照時數"(sunshine duration)。維基百科還明確列出了,影響這個指標的三個因素。
(2)高海拔地區,空氣稀薄,雲不多,所以日照多。
(3)高緯度地區 的太陽在地平線附近的時間比較長,因而太陽低於地平線時、還能看到陽光的時間也比較長。
每個城市的氣象局都有這個統計,全國主要城市的資料可以在《中國統計年鑑》查到。最新線上版是2021版,《表8-8》就是前一年的資料。
我做了資料排名,先看看日照最少的10個城市。
不出所料,四川盆地是陽光最少的地方。意外的是華中、華東、華南都屬於陽光偏少的地區。
日照最多的10個城市如下。
上圖的排名非常令人驚訝。高原地區(青藏高原、雲貴高原)排名靠前,這是能想到的,沒想到的是東北、華北、西北都是陽光偏多的地方。
這說明中國北方其實是一個陽光地帶,原因可能是緯度高,也可能是乾旱少雨。如果能夠好好地改善和維護環境,再加上陽光充足,北方城市肯定是宜居的。
科技動態
1、躺平使用的頭盔
一家日本公司宣佈,取消早前宣佈的躺著使用的頭盔專案,原因是財務困難,以及難以達到設計目標。
這個專案看上去很不錯,使用者只要戴上頭盔,就能躺在床上使用網際網路和 VR。
它有專屬的眼罩和耳機,並且因為在床上不能使用滑鼠,它特別設計了一對腳底感測器,戴在腳上,透過調整腳的傾斜度,控制操作。
2、建築業採用遊戲引擎
大型建築專案往往需要 3D 建模,向客戶展示建成後的效果。以前,建模都採用建築專業軟體,現在開始轉向用遊戲引擎建模。
這主要因為,遊戲引擎的渲染效果遠超其他軟體。另外,遊戲引擎有資源包,可以方便地引入各種物體模型。
並且,遊戲引擎有漫遊的效果,允許客戶在模型中隨意漫遊,還支援 3D 遊覽。遊戲引擎的建模可能會成為一個大產業。
3、藻類水泥
水泥是地球上使用最廣泛的建築材料,但是它的生產汙染很大。焚燒石灰石會釋放大量二氧化碳,還嚴重影響空氣質量。
一位美國教授突發奇想,既然石灰石(主要成分碳酸鈣)是自然生長出來的(碳酸與水中的鈣相互作用而生成),那麼有沒有辦法人工種植水泥呢,這樣就可以避免汙染?
他使用一種叫做球石藻的微藻,透過光合作用吸收二氧化碳,成功生產出來了生物石灰石。他認為只要大規模培養這種藻類,讓它生產我們所需的建築材料,水泥行業就會變成綠色行業。
4、滾筒印表機
普通印表機通常只能列印固定大小的紙張,哪怕只列印一行字,也需要完整的一張紙。
一個韓國設計師因此發明了滾筒印表機,它使用滾筒紙列印。
它可以列印出任意長度的內容,特別適合短內容的列印,比如發票、便條、通知等等,不會浪費紙張。
它採用熱敏列印,不需要碳粉和墨盒。如果有公司願意量產,可以改造成噴墨印表機或鐳射印表機。
5、奶油色球衣
NBA 的密爾沃基雄鹿隊的球衣,傳統上是奶油色。但是,他們最近放棄了這個球衣顏色。
原因是現在的電視臺轉播 NBA 比賽,採用軟體新增球場廣告和比賽統計。
在球場的白色燈光下,奶油色球衣跟地板顏色有時很接近,廣告會直接打在球衣上,導致奇怪的畫面。下圖左下角,雄鹿球員的短褲就消失了。
冰球轉播也有類似的情況,下圖球員的上半身也消失了。
文章
1、三分鐘讀懂核聚變(中文)
美國能源部最近宣佈,實現了可控核聚變的"淨能量增益"。本文通俗解釋了這是什麼意思。(@marmul2 投稿)
2、美國的地理優勢(英文)
這篇英語長文詳細介紹了美國的地理優勢:兩邊都是海洋,周圍沒有強敵;中部有巨大的平原,保證了糧食生產;內河水運距離超過其他國家的總和,運輸成本極便宜。
文中有一張圖片,很震撼:鄭和下西洋的寶船(上方)與哥倫布環球航行的船隻(下方)的大小對比。不過,鄭和的寶船大小是後人根據古文獻推算的,並沒有足夠的實物證據。
3、Mastodon 介紹(英文)
Mastodon 是一個類似推特的社交媒體,但是採用分散式結構,任何人都可以架設例項。本文詳細地介紹它的運作機制。
4、動態生成頭像的最簡單方法(英文)
CDN 服務商 Bunny.net 讓 AI 繪圖引擎自動生成使用者頭像,每個使用者都有一個不一樣的兔子頭像。
5、如何使用 HTML <picture>
標籤(英文)
本文是一篇初級教程,介紹網頁<picture>
標籤的使用方法。
6、如何關閉 favicon 請求(英文)
作者想製作一個體積儘量小的網頁,文章裡面介紹了一個技巧,如何讓瀏覽器不發出 favicon 請求。
7、關係型資料庫的優缺點(英文)
本文討論跟 NoSQL 資料庫相比,關係型資料庫的優勢在哪裡。
8、分散式系統的8個錯誤觀念(英文)
初學者對於分散式系統,往往有一些錯誤觀念,忽視了這種系統的複雜性。本文總結了8個常見的錯誤觀念,比如網路是可靠的、延遲為零、系統間通訊沒有成本等等,看完你就會了解分散式系統的難度在哪裡。
工具
1、tremor
一個專門製作控制皮膚的 React 元件庫。
2、GPTAnywhere
一個瀏覽器外掛,只要點選工具欄,就可以跟 ChatGPT 對話。它需要 OpenAI 賬號。
3、Obsidian Canvas
開源筆記軟體 Obsidian 本週釋出新功能,可以在畫布上畫出思維圖。
4、Enhance Speech
Adobe 公司推出的一個工具,用來增強語音效果,使得普通的錄音變得像在專業錄音室錄製的。
5、One Tab Group
一個瀏覽器外掛,有效地管理瀏覽器標籤頁,支援雲同步。(@xiaoluoboding 投稿)
6、Forgejo
著名 Git 託管軟體 Gitea 最近成立了商業公司,導致社群分裂。一部分開發者出走,創立了 Forgejo 這個專案。
7、Satori
這個 JS 庫可以把 HTML 和 CSS 程式碼轉為 SVG 圖形,很適合為元件生成縮圖。
8、Agreper
一個最簡化的論壇程式,號稱不需要 JS,使用 Python 寫的。
9、Rmt.rs
一個命令列程式,可以用作rm
命令的替代,用來刪除檔案。特點是有回收箱,刪掉的檔案可以恢復。
資源
1、紙製日晷
日晷是古代的計時工具,這個網站教大家怎麼做一個紙製日晷。
2、The Ruby Reference
一本 Ruby 語言參考教程,免費線上閱讀。
3、MacOS 預設桌布下載
這個網址提供 MacOS 所有版本的預設桌布的 6K 清晰度下載。
4、The Algorithms
這個網站收集 GitHub 上面的各種演算法實現,按照種類和語言進行分類。
圖片
1、 俄羅斯礦機
俄羅斯生產一種叫做 1ГПКС 的礦機,專門用於煤礦和鉀礦。它的外形非常奇特,具有濃重的科幻色彩。
2、ET 模型
1982年的經典電影《外星人》轟動一時,裡面的外星人 ET 採用機械模型製作。
這個模型最近要拍賣了,估價達到250萬美元。
如果是現在拍這部電影,肯定不會用機械道具,成本高、操作難,而是改用綠幕和表情捕捉,再用計算機圖形生成。
3、勝利女神
法國盧浮宮有一個勝利女神的古希臘雕塑,是世界最著名的雕塑之一。
它是從海底找到的,缺少頭部。
它表現了勝利女神展開翅膀,降落在船頭。歷史學家猜測,這是為了一場海軍戰役的勝利,而樹立的。
文摘
1、冪等性導致的一次重大事故
大概三年前,外賣平臺 Uber Eats 在印度發生了一次重大事故,使得使用者可以免費獲得食品。
一天早上,有人試圖透過印度的 Uber Eats 訂購食物,並使用印度的支付平臺 Paytm 付款。但是,他的賬戶裡面沒有足夠的餘額,沒有下單成功。
但是,這個人不死心,繼續訂購,這一次居然成功了!讓他在沒有付款的情況下,可以訂購食物。
訊息傳開以後,人們瘋狂地下單。Uber Eats 短時間湧入大量訂單,餐館無法接單,不得不下線。平臺發現了以後,立刻停止使用 Paytm 作為付款方式。
事後調查發現,這個事故與 Paytm 團隊前一天上線的一個看似無害的程式碼變更有關。他們把付款失敗的 API 從冪等改為非冪等。
所謂冪等性,指的是如果你重複請求同一個 API,每次都得到相同的響應。
以前,如果餘額不夠,API 總是返回相同的錯誤物件,就像下面這樣:
- "嘗試在沒有資金的情況下向 X 錢包充值"-> 返回 Error1
- "嘗試再次在沒有資金的情況下向 X 錢包充值"-> 返回 Error1
現在變成了:
- "嘗試在沒有資金的情況下向 X 錢包充值"-> 返回 Error1
- "嘗試再次在沒有資金的情況下向 X 錢包充值"-> 返回 Error2
這看起來只是一個很小的變化,偏偏 Uber Eats 的程式碼有問題。他們假設這個 API 是冪等的,只比較了再次請求失敗返回的結果,跟上一次失敗的結果是否相同。如果不相同,就認為第二次支付成功了。
事後,餐館得到了報酬,濫用這個 bug 的使用者也沒被追究,免費享用了食物。外界並不知道,誰支付了這些食物的費用,到底哪一方應該對這件事負責呢?
只能說兩方都有責任。Paytm 在未告知合作伙伴的情況下,API 返回了一個全新的響應。而 Uber Eats 程式碼不嚴謹,沒有做足夠的檢查。正是因為雙方都有過錯,所以責任劃分很困難。
言論
1、
我面試應聘者有一個竅門,就是看他說話是否具體。那些合適的應聘者會告訴你大量的細節,而那些只會誇誇其談術語和概念的人,幾乎總是不合適的。
-- David Perell
2、
我原以為,進入太空會感到歡欣鼓舞。但是實際上,看到的宇宙是一片寒冷、黑暗的空虛。
我們唯一的家園----地球----顯得那麼渺小,而我正在遠離它。我感到了強烈的悲傷。
-- 威廉·沙特納談2021年乘坐"藍色起源"觀光飛船進入太空的感受
3、
我們生活在軟體如此豐富的年代,無數免費程式碼就像一艘小舟,載著我們穿越"PyPI 海"或者"npm 洋"。海上有驚濤駭浪,小舟還會突然漏水,我們必須儘快用膠帶和木板修補漏洞,一不小心就會葬身大海。
-- 《我們正在沉沒》
4、
好幾次,我都被工作搞得精疲力盡,了無生趣,覺得這輩子再也不能程式設計了。不過每一次,都是因為又接觸到新東西,讓我慢慢恢復,能夠重新開始工作。
-- Hacker News 讀者
5、
當你跳上飛機、使用汽車的輔助駕駛系統、或者在重症監護病房與病魔作鬥爭,那麼你就是把生命託付給計算機。
-- 《走向知識驅動的系統管理》
歷史上的本週
2021年(第188期):音樂是反社交
2020年(第138期):失業難以避免,重構人生規劃
2019年(第86期):千萬不要當完美主義者
2018年(第35期):"一人份"的服務越來越多
說明
週刊每週五發布在我的個人網站和微信公眾號《阮一峰的網路日誌》,歡迎訂閱。
週刊是開源的,自由使用,倉庫在 GitHub: ruanyf/weekly,投稿請到倉庫提交 issue。我們還開設了《誰在招人?》服務,歡迎釋出或檢視程式設計師招聘資訊。
商業合作和產品推廣,請郵件聯絡我(Email: [email protected] )。
鳴謝
文件和筆記服務 FlowUs 對週刊提供支援,非常感謝。
FlowUS 是新一代知識管理與協作平臺,整合了"文件+表格+網盤",具有寫文件、製作主頁、管理資料、儲存檔案等多種用途。
週刊開設了 FlowUs 專欄,歡迎大家也去開設自己的專欄和頁面。
(完)