De Facto - Szoftverfelügyelet
Két barátommal egyetemben mindig is elég aktívak voltunk az IT területén. Ugyan mindenki járta a saját útját, de rendszeresen cseréltünk tapasztalatot és tudtuk, hogy a másik min ügyködik éppen.
Ekkor ismerkedtünk meg a szülővárosunkban egy vállalkozó kedvű idegennel, aki azt tűzte ki célul, hogy Oroszlányt bevezeti a 21. századba, ha már az állami intézmények ezt nem igazán karolják fel. Bérelt egy irodát/üzletet, ahova saját pénzén vett számítógépeket és óra-alapon lehetett nála internetezni, stb.
Ő állt elő egy szoftver-ötlettel, amit igazából tőle kértek: írjunk egy windows-os szoftverellenőrző programot, ami végigballag a fájlrendszeren, összegyűjti a licenckötelesnek tűnő elemeket (programok, .exe fájlok alapvetően) és összeveti a saját adatbázisával. Ezt hívják manapság úgy, hogy SAM, azaz Software Asset Management és jellemzően cégek házon belül futtatják saját eszközeiken, hogy megtudják, minden(ki) legálisan használja-e a telepített programokat.
Ha jól emlékszem, mi konkrétan valami BSA szerű szervezetnek segítettünk volna ezzel az eszközzel, tehát akik azért ellenőriznek, hogy jogsértés esetén - némi bírság kiszabása után - azt megszűntettessék.
A feladat elég elnagyolt volt (vagy az emlékeim fakulnak), de lényegében kaptunk egy adatbázist, azt hiszem talán Accessben, ami tele volt licencköteles szoftverek listájával, fájlnevekkel és méretekkel, amikkel mondjuk a helyi fájlrendszer tartalmát össze kellett vetni - ez volt a "De Facto" adatbázis.
A munkát felosztottuk elemekre, ki mit tud csinálni, mivel tudna a legjobban haladni.
Az első nagy falat az adatbázis volt, ami tárolja majd a de facto adatokat, amikkel a fájlrendszert hasonlítani kell. Egyikük neki is állt freepascalban implementálni egy meglehetősen kötött, de tulajdonképpen egy alapszintű adatbázis-kezelőt (tábla, index, lockok, stb.). A lényeg az volt, hogy gyors legyen, hiszen minden talált programot az adatbázissal összehasonlítani a két készlet descartes-szorzatányi keresés és ellenőrzés szükséges. Olyan dolgokra készült 2001-ben, hogy az adatbázis-méret mondjuk lehessen 2GB is akár (lakossági kategóriában kb. ez volt az általános winchester-méret akkoriban).
A második komoly elem egy speciális komponens fejlesztése volt, amin a keresés eredményét meg lehetett jeleníteni: végülis ez egy elég bonyolult táblázat volt olyan szűrési, rendezési és testreszabási lehetőségekkel, amikre akkoriban legfeljebb 1-2 megoldás volt a világon, az is 300-500 dolláros áron. Másikuk ennek esett neki.
Nekem az a feladat maradt, hogy a kettő közé építsek egy hidat, a keretalkalmazást, ami megszólítja az adatbázist valamint a kiértékelt eredményt megjeleníti ebben a nagyon bonyolult táblázat-komponensben.
El is kezdtük a "munkát" (három középiskolásról beszélünk), heteken (vagy hónapokon?) keresztül fejlesztettünk - egyeztettünk - próbálgattunk. Láttuk magunk előtt, hogy ki mennyire halad a saját dolgával, az adatbázis-kezelőt feltöltöttük adatokkal, brutálisan gyorsan tudott már keresni; a komponenst különféle igények szerint alakítottuk illetve kalapáltuk az egész integrált egységét, a leendő alkalmazást.
Ma már világos, hogy mennyire "tévúton" jártunk: nem a célt tartottuk szem előtt, hanem a megoldandó apró elemekben rejlő kihívásokat (teszteljük még úgy is - tegyünk még bele ilyen rendezést - mindent tegyünk konfigfájlba - stb). Ez így sajnos csak nekünk volt hasznos, a projektnek kevésbé. Később az ötletgazda beavatott minket, hogy végülis nem vállalta be a szoftver leszállítását és jó okkal: velünk nem lehetett volna időben megtenni.
Helyette viszont tanított nekünk egy nagyon hasznos leckét, amit a lehető legjobbkor, karrierünk kezdetén jó mélyen az agyunkba vésett, amiért én hálás vagyok neki.
A forráskód egy része megvan, viszont nem rendelkezem a közzétételhez szükséges jogokkal, így ez csak egy mesélős projekt marad.