2024-07-01 08:00:00
Linus Torvalds 曾寫了一本書提到,當初創造 Linux 只是因為好玩,卻意外掀起一場革命。Git 是 Linus 的第二代表作,同樣也是意外的革命,是現在軟體工程師的標配,但至少對 Linus 本人來說,它的起源可就沒這麼好玩了。 Linus 擴展不了 1998 年是 Linux 風光的一年,許多大公司,如昇陽、IBM 和甲骨文,都紛紛投入 Linux 的業務。那年春天,Linus 的二女兒出生,他們一家從芬蘭搬到美國加州也差不多一年,生活步入正軌。雖然 Linux 還尚未給 Linus 帶來什麼收益,但 Linus 也可算是事業家庭兩得意。 反觀 Linux Kernel 的開發者社群,隨著愈來愈多人加入開發,既有的合作方式開始力不從心。Linus 開始顯得沒辦法跟上開發者們修改程式碼的速度,逐漸成為瓶頸。 1998 年 9 月 28 日,Linus 和往常一樣,讀著 Linux Kernel 郵件列表上的信。 請不要浪費時間送修補了,這些在 vger 上早就修好了。 Linus 看到這句話不太高興。一直以來,Linux 程式碼的修改重度仰賴 Linus 本人,Linus 本人就是版本控管。如果你要修改程式碼,寄封信到郵件列表上,Linus 看到了並認可,就會將你的修補送進他自己的版本,然後不時在 FTP 上釋出新版本。Linus 喜歡這樣的合作方式,因為他可以掌控一切變更,大家也信任 Linus,覺得 Linux 本來就該由 Linus 掌控。 但自從 David Miller,一位 Linux Kernel 的資深開發者,架設了一個名為 vger 的 CVS 伺服器,有些人就以為可以繞過 Linus 本人,將變更送到 vger 就沒事了。這不是 Linus 第一次遇到同樣的問題,他在郵件列表上不悅的回應:
2023-07-11 08:00:00
如果 Facebook 創立的故事可以拍成《社群網戰》,好萊塢遲早會將 David Kushner 寫的《Masters of Doom》拍成電影。 實際上,在 2019 年真的有人想把《Masters of Doom》拍成電視劇。James Franco 和 Dave Franco 兄弟共同製作了首集,但最後 USA Network 決定不投資,使得這部劇無疾而終。然而有眼尖的網友找到幾張劇照,重現當年 Softdisk 辦公室的模樣。 Softdisk 正是兩個約翰:John Romero 與 John Carmack 初次相遇的地方。他們倆與另外二人,Tom Hall 和 Adrian Carmack,共同創辦了 id Software,開發了《毀滅戰士》(Doom)和《雷神之鎚》(Quake)等傳奇遊戲,開創了第一人稱射擊(first-person shooter)這種遊戲類型,從此顛覆了遊戲產業的樣貌。 Softdisk - Gamer’s Edge John Carmack 本來沒有打算加入 Softdisk 的。一直以來,他以接案為生,無拘無束,但是接案只能勉強養活自己,他需要一份正職工作。於是在 Jay Wilbur 和 Tom Hall 再三邀請下,19 歲的 Carmack 從他家堪薩斯城開車到路易斯安那州的雪薇波特(八小時車程),來到 Softdisk 辦公室的所在地。 當 Carmack 在 Softdisk 辦公室見到了 John Romero 等一群資深程式設計師時,他才決定要接下這份工作。在學校時,Carmack 是最聰明的小孩,老師根本沒什麼可以教他的了,他一直以來都是讀圖書館的書自學。然而在 Softdisk,他第一次見識到比他厲害的程式設計師,他覺得在這裡可以向前輩們學到書本上學不到的東西,所以他毅然決定搬到雪薇波特,加入 Softdisk、Romero 的團隊。
2023-05-09 08:00:00
This article has an English edition. 在資料庫的世界,Redis 獨具一格。其他多數資料庫的中心思想不是表格就是文件,但在 Redis 裡,你直接與鏈結串列(linked list)和雜湊表(hash table)等低階資料結構打交道。 這正是 Redis 作者 Salvatore Sanfilippo(網路名稱 antirez)的獨創設計。精通系統程式設計的 antirez,喜歡用串列、雜湊、集合(set)等資料結構來思考問題,表格或文件這種高階的資料表達方式不合他的味口。在創造 Redis 時,antirez 是資料庫的門外漢,但也許就是他沒經驗,才能為資料庫領域帶來新想法。 多年後的今天,Redis 已成為主流,幾乎所有網路服務背後都能見到它的蹤影。在 Stack Overflow 的調查報告上,Redis 更是蟬聯五年最受愛戴的資料庫。 antirez 早年生活 antirez 在義大利西西里長大,小時候,他的父親在一間石化公司工作,擔任電工,藉此接觸工業自動化的問題。80 年代,他父親開始使用可編程邏輯控制器(PLC),並對這些控制器產生興趣,於是他買了一塊 Z80 處理器的板子,開始在上面寫程式。 antirez 六歲時,家裡買了第一台個人電腦,TI-99/4A。那是一台商業上不成功,但很有趣的電腦。他父親會那上面寫了一些 BASIC 程式,antirez 有樣學樣,小學一年級時就會打鍵盤、複製 BASIC 程式等。 隨著年齡增長,antirez 繼續寫程式。到了 14 歲,青少年時期的興趣,像是摩托車、女孩子,接踵而至,寫程式這個興趣就被拋諸腦後。直到 18-19 歲時,antirez 才重拾對電腦的興趣,用電腦玩 3D 建模、遊戲,也寫一些簡單的程式。在巴勒摩大學建築學院就讀大學時,他會用 BASIC 來畫圖。BASIC 是他兒時學過的程式語言,也是他當時唯一會的語言。 資安公司 SECLAB 有一天,antirez 想買一張顯示卡,卻不小心買成了數據機,商家不肯退款,antirez 就順其自然:「數據機就數據機吧!」當時是 90 年代,網路逐漸平民化。他連上網路,安裝了 Linux,開始對資訊安全產生興趣。他買了一本 C 語言的書,開始學習 C 語言。不久之後,他發現 ping 程式有一個漏洞。 這個漏洞是這樣的:在 Unix 裡通常有一個限制,如果你不是 root,則無法快速在短時間內發送大量封包。但 antirez 發現透過 Unix 訊號,可以繞過這個限制。
2023-04-11 08:00:00
專門講軟體開發故事的 Podcast 節目 CoRecursive 最近訪問了 JSON 之父 — Douglas Crockford(以下簡稱 Doug),說他是怎麼想出 JSON 這個現在大家都在用的資料格式,以及他是怎麼推廣它的。 Doug 除了是 JSON 的發明人,也是 JSLint 和 JavaScript 經典名書 “JavaScript: The Good Parts” 的作者。 JavaScript 簡介 剛接觸 JavaScript 時,Doug 覺得它是他看過最蠢的東西。 JavaScript 最早的名字 Mocha,後來改名成 LiveScript。當時網景(Netscape)和昇陽(Sun)結盟以對抗微軟,他們把 Java 放進 Netscape 瀏覽器,創造了 Java Applet。昇陽便要求網景:「既然有了 Java,你們應該要拿掉 LiveScript,不然怎麼說服大家 Java 是大家最後需要的語言?」 網景不想服從,他們不想抹去多年的努力,於是某個人(傳說是 Marc Andreessen)半開玩笑建議:「我們把 LiveScript 改名成 JavaScript,告訴大家 JavaScript 只是 Java 的一部分,這樣不就好了?」昇陽同意。於是他們辦一場記者會向全世界撒謊,造就了 JavaScript 這個愚蠢又誤導人的的名字。 從 Java 到 JavaScript 1990 年代 Doug 在 Electric Communities 工作,EC 是當時的一間大公司,他們建造了一個 3D 虛擬世界,玩家可以在虛擬世界談話、走路、傳送,有點類似第二人生(Second Life)或現在的元宇宙。可惜這個虛擬世界是 Java 寫成的,Java 帶給 Doug 很多問題,其中一個問題是載入時間太長,載入整個環境要三分鐘。