第二十四章
完)
第25章
車庫裡的工作台
手機花了八十塊。
是二手市場最老的款式,諾基亞的直板機,黑色外殼磨得發亮,按鍵上的數字都快看不清了。隻能打電話、發短信,連上網功能都沒有。
但對秋袖禾來說,夠了。
她是在一個路邊攤買的,攤主是個老頭,信誓旦旦保證“能用三個月”。她試了試,能開機,能撥號,鈴聲刺耳但響亮。
“就這個。”她掏出八十塊錢——是昨天修主板掙的。
老頭接過錢,看了她一眼:“要辦卡嗎?我這有,五十塊一張,含三十話費。”
秋袖禾猶豫了。她需要手機卡才能聯係周硯,但五十塊……夠買一罐奶粉了。
“最便宜的卡多少錢?”
“三十,含十塊話費。”老頭從抽屜裡翻出一張,“這種是預付費的,不用身份證。”
秋袖禾又掏出三十塊。最後一百一十塊,換來一個舊手機和一張匿名電話卡。
她把卡插進手機,開機,屏幕亮起藍光。很簡陋的界麵,但這是她逃亡以來,第一個真正屬於她的、能與外界聯係的工具。
她按照周硯給的號碼,發了條短信:“我是秋,手機號是這個。”
幾分鐘後,回複來了:“收到。明天下午兩點,我去找你。地址?”
秋袖禾盯著屏幕,手指懸在按鍵上。給地址嗎?讓一個陌生男人來車庫?
但如果不給,這單活就沒了。五百塊就沒了。
她咬了咬牙,回複了車庫的地址。
第二天下午兩點,周硯準時到了。
他背著雙肩包,站在車庫門口,打量著這個破舊的地方。卷簾門半開著,裡麵光線昏暗,隱約能看見草席、竹籃,和一堆電子零件。
“秋姐?”他試探著喊了一聲。
秋袖禾從裡麵出來,手裡還拿著奶瓶。她剛給女兒們喂完奶。
“進來吧。”她側過身。
周硯走進車庫,目光掃了一圈,在四個嬰兒身上停留片刻,又看向角落那兩台舊筆記本——屏幕都亮著,一台顯示著Python編輯器,一台是剛關掉的電子書。
“你這……”周硯不知道該說什麼。
“地方小,將就一下吧。”秋袖禾搬來一個破木箱當凳子,“坐。”
周硯坐下,從包裡掏出筆記本電腦。是台ThinkPad,雖然舊,但保養得很好。他開機,打開一個文檔。
“這是需求。”他把電腦轉向秋袖禾,“超市老板要的很簡單:入庫、出庫、庫存查詢、生成報表。我用Python+SQLite做,前端用Tkinter,簡單。”
秋袖禾湊過去看。文檔寫得很詳細,功能列表,界麵草圖,甚至有些偽代碼。
“我昨晚想了想,”周硯繼續說,“你負責寫界麵部分吧。Tkinter你會嗎?”
“學過一點。”秋袖禾說。她在硬盤教程裡看過。
“那行,我先搭框架,你把界麵做出來。”周硯打開代碼編輯器,開始寫起來。
車庫裡安靜下來,隻有鍵盤的敲擊聲。周硯寫代碼很快,手指在鍵盤上飛舞,屏幕上字符一行行跳出來。
秋袖禾在旁邊看著,努力跟上他的思路。有些地方她不懂,就記下來,等周硯停下來時問。
女兒們今天出奇地安靜。晨曦在玩自己的小手,曉月盯著電腦屏幕,星晚在看光斑,暮雲睡著了。隻有偶爾的咿呀聲,沒有哭鬨。
仿佛知道媽媽在工作,不能打擾。
下午四點,周硯搭好了框架,把界麵部分交給秋袖禾。
“你試試,按這個草圖做。”他指著文檔裡的界麵設計,“按鈕、輸入框、表格,Tkinter都有現成控件,調用就行。”
秋袖禾接過電腦,手有些抖。這是她第一次在真正的項目上寫代碼,雖然隻是界麵。
她深吸一口氣,開始寫。
第一個按鈕,花了二十分鐘。位置不對,大小不對,事件綁定錯了。她一遍遍改,周硯在旁邊看著,偶爾指點兩句。
“這裡用grid布局更好。”
“這個回調函數要傳參數。”
“字體調大點,老板年紀大了,眼神不好。”
秋袖禾一一照做。她學得很快,很多概念一點就通。到傍晚時,她已經做出了主界麵:幾個按鈕,一個表格,看起來有模有樣。
“不錯啊。”周硯有些驚訝,“第一次做項目,能做成這樣很好了。”
秋袖禾鬆了口氣,這才發現後背都汗濕了。
“今天就到這吧。”周硯看了看表,“明天我繼續來,你把剩下的界麵做完,然後我們聯調。”
“好。”秋袖禾點頭。
周硯收拾東西準備走,突然想起什麼:“對了,你吃飯了嗎?”
秋袖禾愣了一下:“還沒。”
“我也沒。”周硯說,“要不……一起吃點?我請客。”
秋袖禾下意識想拒絕,但肚子不爭氣地叫了一聲。她臉一紅。
周硯笑了:“走吧,我知道附近有家麵館,便宜,量大。”
麵館就在老家屬院門口,很小,隻有四張桌子。老板娘認識秋袖禾,看見她帶著個陌生男人來,眼神有點好奇。
“兩碗牛肉麵。”周硯說。
“一碗就行。”秋袖禾趕緊說,“我……我不餓。”
“兩碗。”周硯堅持,“吃不完打包。”
麵很快上來,熱氣騰騰,牛肉很大塊。秋袖禾小口小口地吃,吃得很慢,很珍惜。這是她幾個月來第一次在外麵吃飯,第一次不用啃冷饅頭。
周硯吃得很快,一邊吃一邊還在想代碼的事:“那個報表生成模塊,我覺得可以優化一下算法,現在這樣效率太低……”
秋袖禾聽著,偶爾點頭。她其實不太懂,但努力理解。
吃完麵,周硯付了錢,二十塊。秋袖禾想AA,被他攔住了。
“明天還要乾活呢,吃飽了才有力氣。”他說。
回到車庫,天已經黑了。秋袖禾給女兒們喂奶、換尿布,然後繼續看代碼。她打開那台破筆記本,複習今天學的Tkinter控件用法。
夜深了,她還在看。
接下來三天,周硯每天下午都來車庫。
兩人合作越來越默契。周硯寫核心邏輯,秋袖禾做界麵和測試。女兒們依然安靜,隻有餓了、尿了才會哼唧幾聲。
第三天下午,項目接近尾聲。
“就剩最後一個模塊了,”周硯敲著鍵盤,“庫存預警。庫存低於設定值就報警。”
秋袖禾在旁邊測試之前的模塊。她模擬入庫、出庫,檢查數據對不對,界麵有沒有bug。
正忙著,曉月突然哭起來。
不是餓的哭,是那種煩躁的哭,小手小腳亂蹬。秋袖禾趕緊抱起她,輕輕搖晃。
“怎麼了寶貝?哪裡不舒服?”
曉月還是哭,小手亂揮。秋袖禾抱著她,一隻手還在操作電腦,想保存一下測試數據。
就在這時,曉月的手“啪”地拍在鍵盤上。
不是一下,是連續好幾下,小手在鍵盤上一陣亂拍。
“哎——”秋袖禾趕緊去抓她的手,但已經晚了。屏幕上,剛才的代碼編輯區裡,多出一串亂七八糟的字符:
"for i in range(len(inventory)): if inventory[i] < threshold: alert(i)"
這是周硯剛寫的預警邏輯,本來有七八行,被曉月一拍,變成了一行——而且語法錯了,根本運行不了。
“對不起對不起,”秋袖禾趕緊道歉,“孩子亂拍……”
她正要刪掉那行亂碼,周硯突然說:“等等。”
他湊過來,盯著屏幕,眼睛慢慢睜大。
”……法寫這“,道喃喃他”……這“
。說禾袖秋”……掉刪上馬我“
。看細仔,裡件文新到製複碼亂行那把,標鼠過搶硯周”。刪別,不“
")i(trela :dlohserht < ]i[yrotnevni fi :))yrotnevni(nel(egnar ni i rof"
……上輯邏但,了並合然雖,碼亂行這而。存庫斷判再,品商曆遍先,環循層兩用是版原的寫硯周。別特很……構結但,了錯法語然雖
”……麵前放件條fi後然“,說然突硯周”,)yrotnevni(etaremune成改)yrotnevni(nel把“
:了現出碼代的新行一,後鐘秒幾,改修速快他
"]dlohserht < ytq fi )yrotnevni(etaremune ni ytq ,i rof )i(trela["
。定搞行一。式導推表列
。潔簡更,高更率效且而
。過通,試測行運硯周
。鬼了見像情表,月曉的哭不經已裡懷她向看又,禾袖秋向看頭轉他
。問他”?的拍子孩是這……這“
?常異的月曉出看?了來出看被道難。慌點有裡心,頭點禾袖秋
”。碼代行六五了省我,錯不真還法寫這過不。合巧是定一,合巧“:了笑,頭撓撓他。想麵方那往沒硯周但
”。了功立你,夥家小“:袋腦小的月曉拍拍他
。盤鍵拍去想又手小,了笑咯咯月曉
。湧洶濤波卻裡心,些遠抱她把緊趕禾袖秋
?嗎合巧
……又在現,感敏的字數對出現表就前之月曉?呢次兩,合巧是次一
。去下想敢不她
”。板老市超找去天明我。了付交以可就題問沒,遍一試測體整“,碼代存保硯周”。吧這到就天今“
。頭點禾袖秋”。好“
。禾袖秋給遞,錢塊百五出掏他,前之走。開離西東拾收硯周
”。成分的好說是這“
。塊百五的在在實實,塊百五。遝一厚厚,錢過接禾袖秋
。說她”。謝謝“
”。強員序程多很比,心細,快得學你。你找還我,話的活有還……後以,了對“,包起背硯周”。的得應你,謝用不“
。說禾袖秋”。好“
。來下靜安新重庫車。了走硯周
。錢塊百五那裡手著看,上席草在坐,月曉著抱禾袖秋
。”錢大“筆一第的來掙正正堂堂,術技的己自靠她是這
。碼代寫是,件零賣是不,品廢撿是不
。頭額的月曉親了親,頭低她
”。忙大媽媽了幫你,貝寶“
。明清的齡月越超種有,裡睛眼的溜溜黑,她著看月曉
。臨降幕夜,外窗
。光微著泛中暗黑在碼代,著亮還幕屏的本記筆台兩,裡庫車
。塔燈像
。向方著引指
(