Debugging urban
Ploaia măruntă din noiembrie acoperise străzile Bucureștiului cu o peliculă fină, reflectorizantă. Pe terasa acoperită a unei cafenele de pe Calea Victoriei, Victor sorbea dintr-un espresso dublu, cu ochii pironiți în ecranul tabletei. Pe masă, lângă laptop, zăceau o mână de mici senzori magnetici, un cablu USB-C roșu și o fișă tehnică șifonată.
Daria s-a așezat vizavi de el, trântindu-și ghiozdanul ud pe scaun. A privit senzorii, apoi ecranul lui plin de linii de cod și hărți termice în nuanțe de verde și violet.
— Tot cu bug-ul de pe Magheru? a întrebat ea, trăgând spre ea ceașca de ceai fierbinte pe care i-o comandase el deja.
— E mai rău decât credeam, a oftat Victor, fără să-și ia ochii de la ecran. Nu e o simplă defecțiune de soft. E un race condition urban. Universul fizic și cel digital au intrat în buclă.
Daria a zâmbit, ridicând din sprânceană. Ea era arhitect pe date urbane, iar Victor era specializat în ceea ce Primăria numea neoficial System Health & Physical Debugging.
— Explică-mi ca și cum n-aș fi trecut prin trei verificări de cod săptămâna asta, a zis ea. Ce face mai exact semaforul ăla de la Garofita?
— Deci, a început Victor, rotind tableta spre ea. În fiecare zi, la ora 17:15, traficul pietonal pe bulevardul Magheru se blochează complet. Semaforul de pietoni rămâne roșu timp de opt minute consecutive. Oamenii se adună pe trotuar, încep să treacă pe roșu de frustrare, iar mașinile blochează intersecția. Până aici, pare o simplă problemă de calibrare a temporizatorului, corect?
— Corect, a încuviințat Daria. Un simplu
delay() prost setat în serverul central de trafic.— Așa am crezut și eu. Am trimis o comandă de override de la distanță. Am rescris algoritmul de undă verde. Sistemul arată că execuția
Script_Trafic_v4.2 s-a făcut cu succes, 200 OK. Dar pe teren? Semaforul continuă să rămână roșu.Daria s-a aplecat peste masă, intrigată.
— Stai puțin. Adică codul din cloud spune că e verde, dar pe stradă becul e roșu?
— Exact. Discrepanță pură între Expected Output și Actual Output. Un bug urban în toată regula. Hard-ul nu mai ascultă de soft.
Daria a luat unul dintre senzorii mici de pe masă și l-a învârtit între degete.
— Ai verificat nodurile de bordură? Senzorii haptici din trotuar?
— I-am verificat pe toți, a spus Victor, deschizând o nouă fereastră de terminal pe ecran. Senzorii de presiune citesc că sunt 40 de oameni pe trotuar. Trimit datele spre nodul de cartier. Nodul procesează cererea. Dar undeva între serverul local și fizica străzii, ceva rescrie instrucțiunea.
— Ai pus breakpoints pe traseu?
Victor a rânjit ușor, deschizând un fișier de log-uri.
— Am făcut mai mult decât atât. M-am dus fizic acolo la 17:00. Am pus un sniffer de date pe stâlp și am privit strada ca pe un procesor. Și ghici ce am descoperit?
— Ce?
— La ora 17:12, o dubă de livrări oprește exact pe colț, deasupra casetei de derivație a fibrei optice. Șoferul lasă motorul pornit. Alternatorul mașinii lui – un model vechi, neecranat – creează o interferență electromagnetică uriașă exact pe cablul neizolat al senzorului de bordură.
Daria a izbucnit în râs, lăsându-se pe spătarul scaunului.
— Nu te cred. Un bug de infrastructură digitală cauzat de un alternator ruginit?
— Punctual! a spus Victor, punctând cu degetul în aer. Interferența trimite un semnal de overflow în placa de control a semaforului. Sistemul local intră în modul de siguranță, adică blochează totul pe roșu. În timp ce în tabloul nostru central de bord, totul apare ca fiind „verde și funcțional”, pentru că serverul din cloud primește doar date sintetice simulate.
— Un veritabil memory leak în viața reală, a murmat Daria. Și cum ai de gând să aplici patch-ul? Rescrii algoritmul?
Victor a luat senzorul din mâna ei și l-a aruncat ușor în aer, prinzându-l cu o singură mână.
— Am încercat mai întâi varianta elegantă, din software. Am scris o rutină de filtrat zgomotul electromagnetic pe cipul local. N-a mers, semnalul parazit e prea puternic. Așa că trecem la hardware patching.
— Adică?
— Adică am vorbit cu băieții de la spații verzi. Mutăm ghiveciul uriaș cu beton și copăcel cu doi metri mai la stânga. Duba nu va mai putea parca fizic deasupra casetei de derivație.
Daria a privit lung la el, apoi a izbucnit din nou în râs, ridicând ceașca de ceai în semn de noroc.
— Refactorizare urbană prin mutat de ghivece de beton. Superb. Iată-ne în secolul XXI, debugging de oraș inteligent cu mutări de peisagistică.
— E cea mai curată linie de cod pe care am scris-o săptămâna asta, a spus Victor zâmbind, închizând laptopul. Fără erori de compilare, fără efecte secundare. Doar un mutat de gard și orașul începe din nou să ruleze lin.

Comentarii