棋院那邊的紅標頭檔案剛批下來第三天。
白子良手裡的《發陽論》才翻了兩頁,桌上的座機就響了。
不是平時那種掛著加密頻道的悠哉語音。
是座機直撥。
電話接通,蒼鷹的聲音傳過來。
「出事了。」
就三個字。
白子良放下手裡的古譜,後背微微繃緊。
能讓那個黑進關田家族內網都跟玩一樣的頂尖駭客用這種語氣說話,事情絕對不小。
問題出在QGP平台的實時對弈模組上。
1998年的中國網際網路,是一片神奇的土地。
撥號上網是絕對的主流。
56K的調變解調器,也就是俗稱的「貓」,理論峰值每秒7KB。
注意,是理論。
實際情況是,你撥上號之後,得先像聽交響樂一樣聽三十秒的「滋——嘎——滋滋滋」電子噪音。
然後雙手合十,祈禱今天的電話線路別太擁堵,祈禱隔壁大媽別在這個時候拿起電話聽筒。
在這種惡劣的生態環境下搞實時對弈,簡直是地獄難度。
棋手每落一步棋,資料要先從客戶端出發。
順著老舊的電話線,艱難地爬過電信局的交換機。
一路上還得跟無數個正在下載圖片的網友搶奪那點可憐的頻寬。
最後擠進伺服器,處理完,再原路跋涉回來。
這一個來回,延遲高達3到5秒。
五秒鐘。
對普通網友來說,五秒鐘不算什麼,盯著螢幕上的沙漏發個呆就過去了。
但對職業棋手來說,五秒鐘足以讓一盤嚴肅的對局變成一場荒誕的鬧劇。
你落下一顆棋子,然後盯著螢幕發呆五秒,對面才慢吞吞地出現回應。
再落一子,再等五秒。
如果進入讀秒階段,這網速能直接把棋手逼瘋。
蒼鷹手下那支三人開發團隊,已經連續加班七天了。
他們像困獸一樣,嘗試了十二種最佳化方案。
全部宣告失敗。
最好的一次測試,延遲從4.2秒降到了3.8秒。
零點四秒的偉大進步。
對使用者端來說,毫無感知,依然卡得像幻燈片。
核心程式設計師老陳扛不住了。
這位清華計算機系98級畢業,蒼鷹花了三個月,連哄帶騙才從聯想研究院挖來的技術大牛。
在第七天的凌晨四點,默默把一封辭呈放在了蒼鷹滿是菸灰的鍵盤上。
辭呈寫得很簡短,字跡潦草。
「技術瓶頸無法突破,不想浪費彼此時間。」
沒有怨言,沒有牢騷。
老陳是那種最可怕的辭職者。
他不是因為錢少受了委屈要走,也不是在要挾老闆漲工資。
他是真的從邏輯上判定,這條路走不通。
蒼鷹在電話里把情況說完,沉默了兩秒。
那兩秒鐘里,白子良只聽見沉重的呼吸聲。
「老大,我撐不住了。」
蒼鷹的聲音透著深深的疲憊。
「不是體力的問題,是方向的問題。我不知道該往哪走了。」
白子良聽著電話那頭傳來的機箱風扇嗡嗡聲,腦子裡飛速運轉。
前世在華爾街高頻交易部門的記憶,像硬碟被啟用一樣嘩嘩翻頁。
1998年。撥號上網。頻寬瓶頸。實時互動。
這幾個片語合在一起,確實是個棘手的死結。
但對掌握著未來二十年技術演進路線的人來說,絕不是無解。
「別動。」白子良對著話筒說,「我今天到。」
他掛了電話,轉身去找陸鳴遠請了三天假。
理由很樸實:「回家看父親。」
陸鳴遠批假批得很痛快,還特意叮囑了一句:「記得給你爸帶點杭州的龍井,新茶。」
白子良應了一聲,轉身出了道場大門。
龍井沒買。
他揹著那個標誌性的奧特曼書包,直接去火車站買了一張去BJ的票。
身價幾千萬美金的QGP絕對控股人,在綠皮火車上晃蕩了一路。
蒼鷹的辦公室,在中關村西邊一條破敗小巷子的半地下室里。
門口堆著兩輛鏽跡斑斑的二八大槓,還有一個不知道誰扔的舊紙箱,散發著詭異的霉味。
台階上有一攤不明來源的水漬。
白子良踩著水漬走下去,推開那扇掉了漆的鐵門。
「吱呀——」
門一開,撲面而來的是一股極具衝擊力的生化武器。
混合著紅燒牛肉麵調料包、電路板輕微的焦糊味,以及三個成年男性高強度熬夜後的人體汗腺分泌物。
這味道,辣眼睛。
他差點本能地退回去。
辦公室不大,三十來平米。
擺了三張拼在一起的摺疊桌,上面堆滿了CRT顯示器、拆開的主機箱、像盤絲洞一樣散落的網線,還有數不清的泡麵桶。
三台主機的散熱風扇同時瘋狂運轉。
嗡嗡聲像一群不知疲倦的馬蜂,在腦袋周圍盤旋。
牆角有一張搖搖欲墜的摺疊行軍床。
被子揉成灰暗的一團,枕頭上還有一圈清晰的頭油印子。
那是蒼鷹這七天的棲息地。
白子良環顧四周,在心裡默默給這個創業環境打了個分。
滿分十分的話,大概負二。
蒼鷹坐在最裡面的角落,頂著兩個碩大的黑眼圈,頭髮像個鳥窩。
整個人看起來像一隻被徹底掏空了的浣熊。
旁邊的小張和老王也好不到哪去。
一個趴在黏糊糊的鍵盤上半睡半醒。
另一個正拿原子筆在草稿紙上神經質地畫著什麼。
白子良走近一看,畫的是個棺材。
程式設計師開始畫棺材,通常意味著專案已經進入了某種玄學求死階段。
老陳站在靠門的角落裡,正往一個黑色的雙肩包里塞幾本厚重的技術書。
白子良停下腳步,看著他。
老陳抬起頭,布滿血絲的眼睛裡閃過意外。
他見過白子良。
在電視新聞上。
那個在東京把日本天才下到當場吐血的八歲神童。
但此刻,這個神童就真真切切地站在他面前。
揹著一個略顯幼稚的奧特曼書包,校服袖口還沾了點綠皮火車上蹭的灰。
抬著頭看他的角度,大概是四十五度。
畫面有些滑稽,但老陳笑不出來。
「你是老陳?」稚嫩的童音在地下室里響起。
「嗯。」
「要走了?」
老陳拉上揹包拉煉的手停頓了一下。
骨節有些發白。
「……嗯。」
白子良沒有開口勸他。
沒有說什麼「再堅持一下」、「曙光就在前面」之類的職場廢話。
畫大餅這種事,在一個清華畢業的頂尖工程師面前,毫無意義。
工程師信的是嚴密的邏輯,不是廉價的雞湯。
白子良看著他的眼睛,只問了一個問題。
「老陳,如果這個平台建成了,全世界五千萬圍棋愛好者,都能坐在家裡,開啟電腦,跟九段高手下一盤沒有延遲的棋。」
「你覺得這件事,值不值得再試一次?」
地下室里的風扇聲忽然顯得很響。
老陳看著眼前這個還沒自己腿高的孩子,張了張嘴,又閉上。
他本來想說「技術上不可能」。
但他突然意識到,眼前這個說話的人,兩個月前在東京,剛剛做到了一件全世界都說「不可能」的事情。
三秒鐘。
老陳的手,從揹包拉煉上慢慢鬆開了。
揹包倒在旁邊的塑膠椅子上,發出一聲沉悶的聲響。
蒼鷹在後面長長地吐了一口氣,彷佛把肺里的濁氣都排空了。
老王放下了那支畫棺材的原子筆。
小張從鍵盤上猛地抬起臉,左臉頰上還印著一排清晰的「ASDF」鍵帽痕跡,茫然地看著這邊。
白子良從牆角拖了把紅色的塑膠凳子過來,大馬金刀地坐下。
奧特曼書包隨手擱在腳邊。
「行了。」他拍了拍桌子,「把你們試過的十二種方案,都拿給我看看。」
蒼鷹趕緊遞過來一疊厚厚的列印紙。
上面密密麻麻寫滿了技術方案的測試記錄。
每一種方案的結尾,都用紅筆畫了一個刺眼的大叉。
白子良接過來,翻了十分鐘。
翻得很快,幾乎是一目十行,但每一頁的核心邏輯都看進去了。
前世那些年在華爾街高頻交易部門裡,用真金白銀餵出來的技術直覺,像一根埋在地下的高壓光纜。
此刻,被猛然接通。
他放下那疊紙,抬頭看向蒼鷹和老陳。
「你們一直在走彎路。」
蒼鷹的黑眼圈猛地抖了一下。
「哪條彎路?」
「你們試圖透過不斷壓縮資料包來降低延遲。」
白子良的手指在桌面上敲了敲。
「方向沒錯,但在撥號時代,物理頻寬就是天花板。你把資料壓縮到只剩一個位元組也沒用。」
「因為瓶頸根本不在資料量,在管道。」
白子良伸出短小的食指,在面前渾濁的空氣中畫了一條線。
「打個比方,你用一根極細的吸管喝珍珠奶茶。不管你花多大代價把珍珠壓成多小,吸管就那麼粗,該堵還是得堵。」
老陳推了推鼻樑上厚重的眼鏡,眉頭緊鎖。
「那怎麼辦?換粗吸管?全國的寬頻基礎設施,最快也要到2001年才開始普及。我們等不起。」
蒼鷹在一旁接話,語氣里透著絕望。
「除非伺服器能未卜先知,預知棋手下一步落在哪裡。提前把資料送過來。」
他說這句話的時候,帶著一種深深的自嘲。
像是在開一個極其不好笑的科幻玩笑。
但白子良笑了。
嘴角勾起一個很輕的弧度。
「你說對了一半。」
蒼鷹愣住了,像看外星人一樣看著他。
老陳也愣住了。
「不是預知棋手。」
白子良站起身,走到靠牆的那塊小白板前。
白板上還殘留著之前方案的潦草筆跡,各種複雜的公式和流程圖。
他拿起板擦,用力一抹,露出大片乾淨的空白。
然後拿起一根黑色的馬克筆。
因為個子太矮,他只能在白板的下半部分寫字。
「是預知棋盤。」
馬克筆在白板上重重地點了一下,發出清脆的響聲。
這四個字,像一道閃電,劈進了地下室渾濁的空氣里。
「你說對了一半。」
蒼鷹愣了。
「不是預知棋手。」白子良站起來,走到靠牆的那塊小白板前。白板上還殘留著之前方案的潦草筆跡,他拿起板擦一抹,露出大片空白。
然後拿起一根黑色馬克筆。
因為個子矮,他只能在白板的下半部分寫字。
「是預知棋盤。」
白子良在白板上畫了一張架構圖。
三個程式設計師和蒼鷹同時湊了過來,像四棵被磁鐵吸住的鐵釘。
「核心思路是這樣的。」白子良一邊畫一邊說,馬克筆在白板上發出吱吱聲。
「客戶端在棋手落子之前,預先計算當前局面下所有高機率的落點——比如排名前二十的候選位置。然後在後台靜默載入這二十個落點對應的棋盤狀態資料,快取在本地。」
他畫了一個方框,標註「本地快取」。
「棋手落子的瞬間,客戶端不需要去伺服器取資料。它直接從本地快取里呼叫對應的棋盤狀態,先渲染給使用者看——'你的棋子已經落下了'。然後在後台非同步跟伺服器校驗,確認資料一致性。」
他在方框和伺服器之間畫了兩條線。一條實線標註「使用者感知」,一條虛線標註「後台校驗」。
「這樣一來,使用者感知到的延遲從3到5秒——」
他在白板上寫了一個數字。
「0.3秒以內。」
辦公室里安靜了。
風扇還在轉,但好像連風扇都安靜了一點。
蒼鷹盯著白板看了整整兩分鐘。
他的眼珠沒有動。
腦子在飛速轉。
白子良畫的這張圖,從電腦科學的角度來說,核心概念叫做「預測性快取」加「樂觀更新」。
前者需要一個機率模型來預判使用者行為。
後者需要一套完善的衝突解決機制來處理預測失誤的情況。
這兩個概念單獨拿出來,在1998年的學術界都有零星的討論。
但把它們結合在一起,應用到一個具體的產品場景中,形成一套完整的工程方案——
蒼鷹在全球所有能訪問到的學術資料庫里,從來沒見過。
他慢慢轉過頭。
看著白子良。
白子良還站在白板前,馬克筆的筆帽叼在嘴裡,一副八歲孩子寫完板書等老師打分的模樣。
「這個概念……」蒼鷹的聲音比剛才低了半個調,「至少領先行業五年。」
他的語氣不是讚嘆。
是審視。
「你從哪看來的?」
白子良把筆帽從嘴裡拿出來,套回馬克筆上。
動作很自然。
「翻牆看了幾篇MIT的論文。」
蒼鷹盯著他又看了三秒。
然後移開了視線。
「行。」他說,「我們試試。」