FLO este un proiect pe care l-am început împreună cu Gia, Micvs, Zucre, Roxănica, Florin, Miky şi Alina pentru CN2, în anul 3. A fost atunci o chestie mare şi dificilă de înghiţit, dar într-un final am avut un proiect funcţional.
Pe scurt, FLO îşi propune să ofere acces remote la un set de plăcuţe FPGA de teste (Digilent 2-SB se numesc, bazate pe chipuri Spartan2E, compatibile Xilinx), printr-o interfaţă prietenoasă, ca parte din laboratorul virtual pe care colectivul de la EF001 încearcă să îl implementeze.
Ideea e ca proiectul, la sfârşitul anului universitar trecut a rămas într-o fază de … proof of concept mai mult decât un produs final, gata să între în faza de producţie, aşa că au fost necesari mai mulţi paşi pentru implementarea proiectului pentru un număr mai mare de plăcuţe, şi pentru un set de clienţi reali.
Săptămâna trecută am făcut cu Micvs şi cu Gia nişte teste iniţiale, am montat partea hardware (switch, făcut cabluri, instalat plăcuţe), am trecut peste problemele de reţea locală şi configurare de server Windows (care nu erau parte din proiectul nostru, dar perfect necesare pentru ce făceam noi) şi am ajuns rapid la concluzia că partea de server avea un set de bug-uri, dar mai mult de-atât, era foarte greu de debug-uit (expresia cel mai des folosită în jurul erorilor sau lipsei de erori a fost „vodoo shit”).
Luni seara era programată prezentarea sistemului funcţional colectivului de la EF001, în special domnului Decebal Popescu, care este coordonatorul nostru de proiect, şi, evident, totul mergea smooth în anumite condiţii, deşi vodoo shit era încă comun pentru situaţii care nu erau neapărat ne-comune.
Luni seara am decis cu Micvs să rescriem deci partea de server, şi am început, pornind de la ceva ce o zis Miky în una din discuţiile din ziua aia, să rescriem toată partea de server în Python. A fost o zi lungă, dar de dimineaţă scheletul codului era cu totul gata, ne-am oprit pe la 7AM pentru că nu ştiam cum se potfolosi byte-şii dintr-un string ca şi int (pentru cine s-o mai lovit de problema asta, se foloseşte struct.unpack() şi struct.pack())
Marţi, de la 19 la 20 erau programate 2 prezentări live pentru studenţii de an 2, care urmează să folosească sistemul nostru, aşa că după câteva ore de somn şi ceva mâncare din scurt, ne-am întors la lab, cu idei noi, şi după un debug care a durat un pic cam mult, serverul nostru în Python mergea uns. Proiectul iniţial de la CN2 se termina într-un premiu, 500 de euro pentru echipa câştigătoare, premiu pe care l-am primit de la d-nul Popescu chiar înainte de prezentări. La 7 am susţinut prezentările (la anul 2 CB şi CC), şi după aia, conform înţelegerii din anul 3 (banii de premiu erau destinaţi iniţial unei mese în oraş cu colegii de echipă), am mers să mâncăm în oraş, să sărbătorim o reuşită puternică.
La 10 am mai avut o prezentare, la seria CA. Ca şi ceilalţi, s-au arătat interesaţi de sistem, mai ales că sunt obligaţi să-l folosească pentru a-şi testa temele.
Evident, am mai prins nişte bug-uri şi miercuri, şi am mai lucrat la ele. Joi Micvs şi cu Gia s-au chinuit un pic la partea de serviciu şi de instalarea lui pe Windows, cumva în idea ca timpul dedicat pentru proiectul ăsta trebuie să se termine cât mai iute, şi să „tie up loose ends”.
Joi, dl. prof. Petrescu ne-a propus să prezentăm proiectul nostru şi la PVSLI, care e curs de anul 4 şi neîntâmplător şi cursul nostru, şi a fost o experienţă interesantă, pentru că a trebuit să fim acolo la 8, vineri. Concluzia a fost însă una fericită, pentru că, la ora de proiect de după curs, dl. profesor ne-a propus să continuăm FLO, şi să-l îmbunătăţim, ca proiectul nostru de PVSLI.
So, here comes … FLO V3.