科技愛好者週刊(第 258 期):卡馬克的貓

阮一峰發表於2023-06-09

本雜誌開源,歡迎投稿。另有《誰在招人》服務,釋出程式設計師招聘資訊。合作請郵件聯絡[email protected])。

封面圖

世界首架載人飛碟,6月3日在深圳正式起飛。這架飛碟是電動的,最大飛行高度200米,續航時間15分鐘。(via

卡馬克的貓

推薦一本書《DOOM 啟世錄》(Masters of Doom),電子遊戲名著,2003年在美國出版,第二年就出了中譯本。

它詳細講述了電子遊戲《DOOM》(毀滅戰士)的故事,兩個懷揣夢想的青年,如何一步步創造出這個遊戲。

寫得非常好,翻譯得也好。透過它,可以瞭解遊戲行業的內幕,以及程式設計師的人生。

主人公之一,是一個叫做約翰·卡馬克(John D. Carmack,1970-)的程式設計師,他編寫了《DOOM》的主要程式碼。他原來只是一個輟學生,但是後來變得世界聞名。

書裡講了一個他的小故事,分享給大家。

卡馬克小時候痴迷電腦,跟家人和同學都很疏遠。陪伴他的只有一隻叫做"咪子"(Mitzi)的貓。他程式設計時,貓就趴在電腦上面。

19歲,他離開家,去另一個州創業,什麼都沒帶,唯一從家裡拿走的就是這隻貓。它一直陪著他,甚至公司的員工名單裡面,他也把這隻貓加了進去。

後來,DOOM 開發最緊張的那段時間,貓的脾氣變得暴躁了,經常亂撒尿,卡馬克新買的真皮沙發就被它毀了。

卡馬克不想忍了,儘管相陪多年,他還是把咪子送到了動物收容所,從此就不管它了。

卡馬克跟同事解釋這個決定:"咪子對我的生活產生了負面影響。" 其他人驚訝地說:"送到動物收容所,這隻貓可能會死掉。" 卡馬克不為所動,轉過身繼續去程式設計。

作者說,這個事件反映了卡馬克的性格。他只關心他要寫的程式,在他眼裡,其他都是小事,如果妨礙到他,就必須剔除。

他不僅這樣對待貓,也這樣對待朋友和自己。他從不儲存自己的照片、資料、早期作品,因為不關心這些東西。如果他覺得你對他的軟體沒有幫助,他就要你走。DOOM 的其他三個創始人,有兩個是卡馬克自己趕走的。

他這種冷漠無情的性格,很難跟別人相處。公司同事都覺得,有他在場,公司氣氛都變得壓抑了。

但是,《DOOM 啟世錄》的作者認為,恰恰是這種性格,造就了卡馬克。 正是因為他心無旁騖,無比關心程式的效能,才在並不強大的硬體上,第一個實現了 3D 效果。不提供價值的東西,就會被他剔除,才最終寫出了簡潔高效的程式碼。

舉例來說,那個年代的硬體很弱,不足以渲染 3D 場景。卡馬克想到,可以放棄天花板和地板,只渲染左右兩側的矩形,作為兩堵牆,從而創造出 3D 感(下圖)。這個解決方案跟他無所羈絆的性格大概是有關係的。

其他世界級的優秀程式設計師,很多也很難相處。比如,理查德·斯托曼對自由軟體宗教般的堅持,林納斯·託瓦茲對提交愚蠢程式碼的程式設計師會當眾諷刺。也許"親人"和"親程式碼"就是有點對立,性格特別和善可親的人,不容易成為優秀程式設計師。

活動訊息

1、位元組跳動雲原生沙龍(第二期)

上週提到的"雲原生沙龍",本週六將緊接著舉辦第二期。

雲時代如何開發軟體,如何完成自託管軟體(self-host)向雲原生軟體(cloud-native)的轉變?這就是這個系列活動的主題,位元組官方跟社群分享自己的實踐和探索。

上期是 Serverless,本期是基礎設施軟體的落地。活動時間是明天(6月10日)下午兩點,一共四個講座,都是位元組的負責工程師主講。

活動地點這次在上海,地址是徐彙區古美路1520號的漕河涇中心。熟悉的朋友應該看出來了,這是位元組的上海工區,線下參加的同學可以順便參觀一下,當然也可以線上觀看直播。

訪問這個連結,或者掃描上圖二維碼,瞭解活動詳情,免費報名線下/線上參加活動,當天的參加者還有豐富伴手禮。

科技動態

1、麵包板手錶

麵包板是電路實驗的基本工具。一位國外愛好者製作了一塊麵包板手錶,可以戴在手上。

他在麵包板上,整合了電池、電路、定時器和 LED 螢幕。他還把自己寫的韌體,放到了 GitHub

2、自動緊急剎車

美國交通部表示,正考慮讓美國所有的轎車,都安裝自動緊急剎車裝置。

一旦前車突然減速,或者前面突然出現行人,該裝置會發出警報,並啟動剎車。美國交通部的設想是,它以後會像安全帶和氣囊一樣,成為每輛車的標配。

這意味著,車輛前部必須加一個感測器,可能是雷達,也可能是攝像頭,用來檢測前方物體。根據研究,這樣每年可以防止24000起車禍,少死360個人。

3、無鏡頭照相機

一位荷蘭設計師發明了一個匪夷所思的裝置:無鏡頭照相機。

這個照相機的鏡頭是封死的,它將當前地點的 GPS 座標和取景器裡面的物體輪廓,發給 AI 模型。

AI 會根據這些資訊,生成當前場景的文字描述。

這些文字會再傳給"影像生成引擎",生成圖片。效果非常驚人。下面是實際的街景。

下面是這臺照相機生成的街景。

4、水稻工廠

安徽六安建立了一家智慧化水稻工廠,採用培養盤種植水稻。

由於是標準化的室內種植,可以保證最適宜的溫度和溼度,並進行精確施肥。

雖然非常節約土地和人力,但是它的種植成本高於傳統水稻,而且耗電大,如果無法保證獲利,還是很難推廣。(@shencn 投稿)

文章

1、一道物理高考真題(中文)

剛剛結束的全國1卷物理高考真題之一:"嫦娥五號著陸器質量 m,月表重力加速度 1/6g,著陸器四條支腿與垂直方向夾角為 θ,則一條腿對月面的壓力是多少?"

2、人工智慧發現計算機演算法(中文)

谷歌人工智慧部門 DeepMind 宣佈,使用 AI 發現了一種新的演算法 AlphaDev,把排序速度提高了 70%。

如果 AI 自己能發現並實現演算法,LeetCode 刷題的意義就少了很多。

3、蘇聯的電子工業為什麼輸了(中文)

在電子管時代,蘇聯的電子工業是很強的,本文探討為什麼它後來遠遠落後於西方。

4、安卓 Firefox 如何始終使用桌面檢視(英文)

手機瀏覽器預設開啟網頁的手機版,本文教你一種方法,使得它始終開啟桌面版。

5、CSS 獲取子專案數量的方法(英文)

利用:has:nth-last-child,可以在 CSS 獲得容器裡面子專案的數量(比如某個列表有多少項)。

6、理解 PostgreSQL 資料庫索引(英文)

本文是一篇科普文章,介紹 PostgreSQL 資料庫索引的相關知識。

7、Gmail 正在扼殺獨立電子郵件嗎?(英文)

如果你自己架設郵件伺服器,向 Gmail 地址發郵件,幾乎肯定會被它當作垃圾郵件或者延遲送達。

8、REST 和 gRPC 的詳細比較(英文)

REST 和 gRPC 是 API 的兩種最流行的實現方法,本文詳細比較它們的差異。

工具

1、Docker-OSX

一個執行 macOS 虛擬機器的 Docker 映象。

2、Tabby

GitHub Copilot 的開源替代品,AI 程式碼助手,可以自己架設,並且離線使用。它還提供 Web 介面,根據指令生成程式碼。

3、undb

一個無程式碼資料庫操作介面,資料儲存在一個檔案裡面。(@nichenqin 投稿)

4、jelBAN.js

一個 JS 庫,用來過濾 Email 地址,包括一次性地址和郵箱的地址別名。

5、Herowand Editor

一個網頁工具,可以將 JSON、XML、YAML、TOML 格式的資料視覺化展示。

6、sqlite-gui

一個 Windows 系統的輕量級 SQLite 編輯器。

7、val town

該網站是免費的雲函式執行環境。使用者在網頁輸入雲函式,該網站可以自動執行這個函式。

8、stable-diffusion-videos

使用者提供兩張圖片,這個工具使用開源的 Stable Diffusion 模型,生成一段影片,內容是圖片 A 逐漸變成圖片 B。

9、Helix

一個現代版 Vim 編輯器,完全用 Rust 語言重寫了。它跟 NeoVim 的主要不同是,它把一些主要的外掛都做進去了,不用安裝外掛。

10、Chitchatter

一個開源的點對點網頁聊天應用,聊天內容不經過伺服器,可以自己搭建,分享房間號給其他人。

11、Aether

一個點對點的桌面軟體,用來搭建私人社群,一組使用者可以用它交換內容,一個人發帖,其他人都可以看到,不需要伺服器。

資源

1、Posters

這個倉庫收集了作者原創的大量 IT 海報,比如上圖是 ASCII 碼的海報。

2、Passkeys.io

不需要密碼的 Passkey 登入演示網站,桌面電腦使用物理金鑰,手機使用指紋或臉部認證。

3、讓 ChatGPT 總結 Hacker News

這個網站每天抓取"駭客新聞"首頁的熱門文章,再使用 ChatGPT 總結出每篇文章的主要內容,用來節省瀏覽時間,參見介紹文章。(@polyrabbit 投稿)

4、學習生成式 AI

谷歌雲推出的生成式 AI 免費英文課程。

圖片

1、YBC7289

YBC7289 是一塊古代巴比倫的粘土板,製作時間大約是公元前1600年到公元前1800年。

YBC7289 是它的收藏編號。它是1909年由金融大王J·P·摩根捐獻的,不清楚具體的出土時間和地點。

它的珍貴之處是,證明了古代巴比倫人知道2的平方根√2,而且能夠準確計算,精確度高達99.9999%。

這塊板上刻了一個正方形,還畫了對角線,還在對角線上寫了數字。

這些數字是古代巴比倫的楔形文字,經過辨認是四個數字:1、24、51 和 10。

我們知道古代巴比倫人採用60進位制,這四個60進位制數字轉成十進位制,就是1.41421296296。

這 √2 匹配到小數點後第六位,準確率為 99.9999%!

2、美墨邊境牆

美國和墨西哥的邊境有一堵巨大的牆,用來阻擋拉美移民偷渡進入美國。

這堵牆超過1000公里,目前還在不斷延長,可能是美國建造的最大工程。美墨邊境一共是3,145公里。

文摘

1、布什內爾定律

布什內爾是早期遊戲公司 Atari 的創始人。

他設計的第一款電子遊戲,有四個外觀相同但功能不同的按鈕。玩家紛紛投訴,這種設計很讓人困惑。

他經過反思就提出,遊戲的操作應該簡單,一看就會,但是玩法應該保持挑戰性。後人總結為"易於學習,難以精通"。

這被認為是電子遊戲設計的"布什內爾定律",暴雪公司將它奉為遊戲設計的座右銘。

可以這樣理解,吸引大量玩家參與的東西,都應該很容易上手,但是取得進展很困難。

言論

1、

1977年上線的計算機系統中,只有兩個至今仍在可靠的執行,而且都不在地球。它們就是旅行者1號和2號飛行器,目前都離開了太陽系,飛向宇宙深處。

-- 《是否存在過於可靠的系統?》

2、

突然之間就沒有現實了,虛擬的世界如此逼真,這真的很令人擔憂。我不知道我們該如何看待這個世界,誰知道它是真是假。

-- 加州大學教授 Hany Farid,談 AI 使得深度偽造變得多麼容易

3、

如果你有原創性,就可以迴避競爭。基本上,如果你與別人發生競爭,那是因為你們在做同樣的事情。如果每個人做的事情都有所不同,就可以減少競爭,或者不存在競爭。所以,不要模仿他人。

-- Naval,美國著名風投家

4、

歸根結底,部落格、播客、短影片都是一個人表達自己的地方,是他們用數字形式說"這就是我"的方式。

-- 《人工智慧會扼殺部落格嗎?》

5、

沒有權威,證據就是一切。

-- 倫敦皇家學會,1660年成立時選擇的座右銘

歷史上的本週

虛擬商品可以拉動 GDP(2022 #211)

再見了,學術碩士(2021 #161)

智慧電視的誤區(2020 #111)

轉行前端越來越難(2019 #61)

鳴謝

週刊得到國內新一代知識管理與協作平臺 FlowUs 的幫助,深表感謝。

FlowUS = 文件 + 表格 + 網盤。你可以用它寫文件、做主頁、管理資料、儲存檔案等等。

每一期週刊同時釋出在 FlowUs 專欄,歡迎大家也去開通自己的專欄和主頁。

(完)

相關文章