第5章 閉關
白宇航下樓去趟小賣鋪,回宿舍時,就一個系的老大、老三、老五在,他手裡拎著一個塑膠袋子,裡面是十袋康師傅紅燒牛肉麵,和四盒哈爾濱捲菸廠的平民特產,握手牌香菸。
「豁,」老三摘下耳機,瞄了一眼,「這是要修仙?」
「閉關。他們四個有課?」白宇航把東西往桌上一扔,「接下來兩天,除了上廁所,我這屁股不離椅子,宿舍電腦這兩天我占了,完事請大夥吃小炒。誰喊吃飯都別理我,老五,幫我打兩壺開水。」
「得令。」老五劉景正愁沒事幹,屁顛屁顛去了。
白宇航打開電腦,屏幕幽藍的光映在臉上。他在D盤根目錄新建了一個工程文件夾,命名叫「QH_NetBar_Sys」,「啟航網吧管理系統」。
2000年的網吧管理軟體還處於蠻荒時代,大部分網吧老闆都用爛筆頭記帳,「幾號機開機」、「幾號機加一小時」,全靠網管和客人吼。
客人一多,網吧跟菜市場似的。
市面上僅有的幾款管理軟體,基本都是單機版,電腦開機後要手動打開軟體才能計時,重啟電腦,沒人發現就能免費玩。
最噁心的是,花錢買聯網的管理軟體也漏洞百出,稍微懂點技術的網管或顧客,改個本地時間或者註冊表就能免費上網。
白宇航沒打算寫多複雜,但軟體的架構必須得穩。他直接採用了後世成熟的C/S架構,也就是客戶端/服務端架構,服務端放在收銀台控制,客戶端裝在每台機器上,兩端之間的心跳包數據,每五秒驗證一次,一旦斷連或者數據對不上,直接鎖屏。
敲代碼的聲音在宿舍里響起,節奏相當快,像暴雨打在鐵皮瓦上。
下午四點多,白宇航正在泡麵,傳呼機響了。
白宇航掃了一眼,是蘇沐清。他放下手中的活,抓起外套快速跑到一樓走廊盡頭的電話亭。
「我要回去了。」聽筒里蘇沐清的聲音,不像往常的輕柔,有些失真,背景音嘈雜,像是在火車站,「調研提前結束了。」
「幾點的車?」
「五點半,T18次。」
白宇航看了看表,來不及送了。「那,一路順風。」
「嗯。」那邊沉默了兩秒,「錢省著點花,不夠……發郵件、打電話給我,或者給我OICQ留言,保持聯繫。」
「放心,餓不著。」
「祝你順利,別讓我賠本。」蘇沐清忽然莞爾,「我的白總。」
「是祝我們順利,儘量讓蘇總明年能分到紅。」
電話掛斷。
白宇航握著聽筒在冷風中站了一會兒,聽著裡面反覆的忙音,直到忙音結束,才微笑著,掛斷了電話。
那種屬於2000年的離別感,很濃,是一種無處著力的感覺。那時沒有微信,沒有視頻。人們之間的離別,就像突然斷了線的風箏。只能等下一封郵件,或者聊天軟體上的留言。
白宇航快步回到宿舍,無縫切回「無情碼農」模式。
老三張健在一旁打完兩局CS,實在忍不住好奇,端著大茶缸子,湊到白宇航身後看熱鬧。
張健在軟體工程系這一屆學生里是技術達人,學霸級別,動手能力公認很強,起初他滿臉還掛著那種「我看你都在瞎折騰點啥」的戲謔。
十分鐘,他只看了十分鐘,茶缸乾脆停在嘴邊,忘了喝。
屏幕上白宇航敲的代碼,結構清晰得嚇人。變量命名規範,注釋詳盡,準備模塊化封裝,跟他平時見到的那些亂七八糟的「麵條代碼」根本不是一個物種。
「哎,老六。」老三忍不住指著屏幕,「你這塊內存分配……怎麼寫的這麼繞?直接用malloc函數,動態內存分配,不就行了?」
「直接用不行,容易產生碎片,有的網吧機器配置低,太破,跑久了會卡。」白宇航頭也沒回,手指在鍵盤上飛舞,「你看這,我寫了個簡單的內存池。」
老三天天都關著的眼皮,瞬間睜開了一下。大一剛學C語言,很多人指針還沒搞利索,這貨已經開始手寫內存池了?
「還有這個。」老三指著屏幕上一段奇怪的進程保護代碼,「這又是幹啥的?防病毒的嗎?」
白宇航停下動作,回頭沖老三咧嘴一笑,那笑容里透著股老謀深算:「這個啊,這叫『守護進程』。防止有人手賤關掉計費軟體,順便……還得確保電腦瀏覽器主頁,永遠是我們的導航站。」
「只要檢測到主頁被改動,」白宇航比劃了一個手勢,憑空抓了一下,「它就會在後台靜默改回來,每分鐘檢查一次,刪不掉,關不了,除非重裝系統,不然誰也沒治。」
老三聽得目瞪口呆:「臥槽,那這不就是木馬流氓軟體嗎?」
「不不,可不是啊,這叫『用戶體驗保障』,你別瞎說。」白宇航糾正道,「防止惡意篡改,為了網吧安全。」
老三豎起大拇指:「你牛,我看以後啊,誰得罪你誰倒霉。」
雖然嘴上吐槽,但老三看白宇航的眼神變了。
都是學計算機的,行家一出手,就知有沒有。白宇航這水平,別說大一,就是大四那幫快畢業的師兄也未必趕得上他。
到了第二天深夜,宿舍樓早就熄燈了,寢室里其他六位哥們兄弟都睡得呼呼的,只有兩台電腦還亮著,白宇航和老三還在忙碌。
白宇航遇到了麻煩。
封裝好的程序在虛擬機上跑得好好的,但在和老三的電腦組區域網,做實機環境測試時,經常莫名其妙藍屏。
「怎麼回事?」白宇航皺眉,盯著滿屏的十六進位代碼。
「我看像是異常中斷衝突。」老三也沒睡,他在旁邊幫忙,「現在的舊主板IRQ資源不夠,你這心跳包數據發得太頻了吧,像是跟網卡驅動打架了。」
「有道理。」白宇航揉了揉發脹的太陽穴,「得降頻,或者換個異步IO模型。」
「你改代碼,我接著幫你測。」老三把椅子拉過來,「我這電腦上裝了三個不同版本的Windows 98和95,正好做兼容性測試。」
「謝了。」
「少廢話,事成之後分我錢、請吃飯就行。」
接下來的四個小時,宿舍里只剩下輕按的鍵盤聲和兩人偶爾的低語。
「這版怎麼樣?」
「還是崩,你看,0x0000000A錯誤。」
「那試試這個,我加了異常捕獲。」
「行,好像穩住了……哎,不對不對,我擦,內存泄露了,漲得飛快。」
「靠,怨我,忘了釋放句柄了我。」
那種默契很奇妙。
前世白宇航帶過上百人的項目團隊,但那種層級分明的協作,敏捷開發,遠不如現在這樣肩並肩作戰來得痛快。
老三雖然技術有些稚嫩,但直覺極准,動手能力確實強,一說就明白,總能第一時間抓到Bug的尾巴。
凌晨四點。
老三盯著屏幕上穩定運行了半小時的「啟航網吧管理系統 v1.0」,打了個巨大的哈欠:「穩了?」
「嗯,穩了。」
白宇航靠在椅背上,感覺脊椎都要斷了。
他摸出最後一包握手牌香菸,從僅剩的幾根里,扔給老三一根,自己抽出一根點上,深深吸了一口。
辛辣的煙霧,在肺里轉了一圈吐出來,帶走了一身的疲憊。
屏幕上,正運行著測試好的管理軟體的服務端,界面很簡單,左邊是網吧內全部機器的列表,每一個電腦樣式的小圖標代表一台網吧電腦,下面都有一個亮點,綠色代表空閒,紅色代表使用中;右邊是可以選擇電腦編號的計費詳情和控制按鈕。
雖然簡陋,但這是2000年時,絕無僅有的「雲端人機驗證」雛形,更是他攻占網吧桌面的名副其實的「特洛伊木馬」。
「老六,」老三趴在桌子上,眼皮打架,「這玩意兒要是真推廣開,咱們是不是就發了?」
「這才哪到哪。」白宇航看著屏幕上啟航網吧管理系統的藍色的帆船圖標,有點憧憬的說,「這頂天,也就是張門票。」
老三沒聽見,已經趴在桌上睡著了,發出輕微的鼾聲,耳朵上掛著剛扔給他的香菸。
白宇航起身推開窗戶,透了下氣。
凌晨四點的哈爾濱,寒氣逼人。路燈昏黃,街道空曠,遠處偶爾傳來幾聲狗叫。
軟體如期寫好了,有了與網吧老闆們進一步綁定,互惠互利的橋樑。
可光是趙建軍那三家網吧里,環境就挺複雜,機器配置更是千奇百怪,上網的人更是三教九流。
這套在宿舍里跑通的系統,到了那種烏煙瘴氣的實戰環境裡,能不能扛得住那幫「破壞分子」的折騰,還是個未知數。
白宇航把煙掐滅,關上窗,屋裡的暖氣瞬間籠罩全身,他回身把外套披在老三身上,爬上了自己的床。
睡覺。
醒了,就起身去道外。
「豁,」老三摘下耳機,瞄了一眼,「這是要修仙?」
「閉關。他們四個有課?」白宇航把東西往桌上一扔,「接下來兩天,除了上廁所,我這屁股不離椅子,宿舍電腦這兩天我占了,完事請大夥吃小炒。誰喊吃飯都別理我,老五,幫我打兩壺開水。」
「得令。」老五劉景正愁沒事幹,屁顛屁顛去了。
白宇航打開電腦,屏幕幽藍的光映在臉上。他在D盤根目錄新建了一個工程文件夾,命名叫「QH_NetBar_Sys」,「啟航網吧管理系統」。
2000年的網吧管理軟體還處於蠻荒時代,大部分網吧老闆都用爛筆頭記帳,「幾號機開機」、「幾號機加一小時」,全靠網管和客人吼。
客人一多,網吧跟菜市場似的。
市面上僅有的幾款管理軟體,基本都是單機版,電腦開機後要手動打開軟體才能計時,重啟電腦,沒人發現就能免費玩。
最噁心的是,花錢買聯網的管理軟體也漏洞百出,稍微懂點技術的網管或顧客,改個本地時間或者註冊表就能免費上網。
白宇航沒打算寫多複雜,但軟體的架構必須得穩。他直接採用了後世成熟的C/S架構,也就是客戶端/服務端架構,服務端放在收銀台控制,客戶端裝在每台機器上,兩端之間的心跳包數據,每五秒驗證一次,一旦斷連或者數據對不上,直接鎖屏。
敲代碼的聲音在宿舍里響起,節奏相當快,像暴雨打在鐵皮瓦上。
下午四點多,白宇航正在泡麵,傳呼機響了。
白宇航掃了一眼,是蘇沐清。他放下手中的活,抓起外套快速跑到一樓走廊盡頭的電話亭。
「我要回去了。」聽筒里蘇沐清的聲音,不像往常的輕柔,有些失真,背景音嘈雜,像是在火車站,「調研提前結束了。」
「幾點的車?」
「五點半,T18次。」
白宇航看了看表,來不及送了。「那,一路順風。」
「嗯。」那邊沉默了兩秒,「錢省著點花,不夠……發郵件、打電話給我,或者給我OICQ留言,保持聯繫。」
「放心,餓不著。」
「祝你順利,別讓我賠本。」蘇沐清忽然莞爾,「我的白總。」
「是祝我們順利,儘量讓蘇總明年能分到紅。」
電話掛斷。
白宇航握著聽筒在冷風中站了一會兒,聽著裡面反覆的忙音,直到忙音結束,才微笑著,掛斷了電話。
那種屬於2000年的離別感,很濃,是一種無處著力的感覺。那時沒有微信,沒有視頻。人們之間的離別,就像突然斷了線的風箏。只能等下一封郵件,或者聊天軟體上的留言。
白宇航快步回到宿舍,無縫切回「無情碼農」模式。
老三張健在一旁打完兩局CS,實在忍不住好奇,端著大茶缸子,湊到白宇航身後看熱鬧。
張健在軟體工程系這一屆學生里是技術達人,學霸級別,動手能力公認很強,起初他滿臉還掛著那種「我看你都在瞎折騰點啥」的戲謔。
十分鐘,他只看了十分鐘,茶缸乾脆停在嘴邊,忘了喝。
屏幕上白宇航敲的代碼,結構清晰得嚇人。變量命名規範,注釋詳盡,準備模塊化封裝,跟他平時見到的那些亂七八糟的「麵條代碼」根本不是一個物種。
「哎,老六。」老三忍不住指著屏幕,「你這塊內存分配……怎麼寫的這麼繞?直接用malloc函數,動態內存分配,不就行了?」
「直接用不行,容易產生碎片,有的網吧機器配置低,太破,跑久了會卡。」白宇航頭也沒回,手指在鍵盤上飛舞,「你看這,我寫了個簡單的內存池。」
老三天天都關著的眼皮,瞬間睜開了一下。大一剛學C語言,很多人指針還沒搞利索,這貨已經開始手寫內存池了?
「還有這個。」老三指著屏幕上一段奇怪的進程保護代碼,「這又是幹啥的?防病毒的嗎?」
白宇航停下動作,回頭沖老三咧嘴一笑,那笑容里透著股老謀深算:「這個啊,這叫『守護進程』。防止有人手賤關掉計費軟體,順便……還得確保電腦瀏覽器主頁,永遠是我們的導航站。」
「只要檢測到主頁被改動,」白宇航比劃了一個手勢,憑空抓了一下,「它就會在後台靜默改回來,每分鐘檢查一次,刪不掉,關不了,除非重裝系統,不然誰也沒治。」
老三聽得目瞪口呆:「臥槽,那這不就是木馬流氓軟體嗎?」
「不不,可不是啊,這叫『用戶體驗保障』,你別瞎說。」白宇航糾正道,「防止惡意篡改,為了網吧安全。」
老三豎起大拇指:「你牛,我看以後啊,誰得罪你誰倒霉。」
雖然嘴上吐槽,但老三看白宇航的眼神變了。
都是學計算機的,行家一出手,就知有沒有。白宇航這水平,別說大一,就是大四那幫快畢業的師兄也未必趕得上他。
到了第二天深夜,宿舍樓早就熄燈了,寢室里其他六位哥們兄弟都睡得呼呼的,只有兩台電腦還亮著,白宇航和老三還在忙碌。
白宇航遇到了麻煩。
封裝好的程序在虛擬機上跑得好好的,但在和老三的電腦組區域網,做實機環境測試時,經常莫名其妙藍屏。
「怎麼回事?」白宇航皺眉,盯著滿屏的十六進位代碼。
「我看像是異常中斷衝突。」老三也沒睡,他在旁邊幫忙,「現在的舊主板IRQ資源不夠,你這心跳包數據發得太頻了吧,像是跟網卡驅動打架了。」
「有道理。」白宇航揉了揉發脹的太陽穴,「得降頻,或者換個異步IO模型。」
「你改代碼,我接著幫你測。」老三把椅子拉過來,「我這電腦上裝了三個不同版本的Windows 98和95,正好做兼容性測試。」
「謝了。」
「少廢話,事成之後分我錢、請吃飯就行。」
接下來的四個小時,宿舍里只剩下輕按的鍵盤聲和兩人偶爾的低語。
「這版怎麼樣?」
「還是崩,你看,0x0000000A錯誤。」
「那試試這個,我加了異常捕獲。」
「行,好像穩住了……哎,不對不對,我擦,內存泄露了,漲得飛快。」
「靠,怨我,忘了釋放句柄了我。」
那種默契很奇妙。
前世白宇航帶過上百人的項目團隊,但那種層級分明的協作,敏捷開發,遠不如現在這樣肩並肩作戰來得痛快。
老三雖然技術有些稚嫩,但直覺極准,動手能力確實強,一說就明白,總能第一時間抓到Bug的尾巴。
凌晨四點。
老三盯著屏幕上穩定運行了半小時的「啟航網吧管理系統 v1.0」,打了個巨大的哈欠:「穩了?」
「嗯,穩了。」
白宇航靠在椅背上,感覺脊椎都要斷了。
他摸出最後一包握手牌香菸,從僅剩的幾根里,扔給老三一根,自己抽出一根點上,深深吸了一口。
辛辣的煙霧,在肺里轉了一圈吐出來,帶走了一身的疲憊。
屏幕上,正運行著測試好的管理軟體的服務端,界面很簡單,左邊是網吧內全部機器的列表,每一個電腦樣式的小圖標代表一台網吧電腦,下面都有一個亮點,綠色代表空閒,紅色代表使用中;右邊是可以選擇電腦編號的計費詳情和控制按鈕。
雖然簡陋,但這是2000年時,絕無僅有的「雲端人機驗證」雛形,更是他攻占網吧桌面的名副其實的「特洛伊木馬」。
「老六,」老三趴在桌子上,眼皮打架,「這玩意兒要是真推廣開,咱們是不是就發了?」
「這才哪到哪。」白宇航看著屏幕上啟航網吧管理系統的藍色的帆船圖標,有點憧憬的說,「這頂天,也就是張門票。」
老三沒聽見,已經趴在桌上睡著了,發出輕微的鼾聲,耳朵上掛著剛扔給他的香菸。
白宇航起身推開窗戶,透了下氣。
凌晨四點的哈爾濱,寒氣逼人。路燈昏黃,街道空曠,遠處偶爾傳來幾聲狗叫。
軟體如期寫好了,有了與網吧老闆們進一步綁定,互惠互利的橋樑。
可光是趙建軍那三家網吧里,環境就挺複雜,機器配置更是千奇百怪,上網的人更是三教九流。
這套在宿舍里跑通的系統,到了那種烏煙瘴氣的實戰環境裡,能不能扛得住那幫「破壞分子」的折騰,還是個未知數。
白宇航把煙掐滅,關上窗,屋裡的暖氣瞬間籠罩全身,他回身把外套披在老三身上,爬上了自己的床。
睡覺。
醒了,就起身去道外。