„A minőségi munkát csak a személyes elégedettség, az elkötelezettség és a jó érzés segítségével érhetjük el. A mi szakmánkban a precizitás és tökéletesség nem felesleges luxus, hanem egyszerűen szükséges.” (Niklaus Wirth)
Sok éves tapasztalattal rendelkezem különféle programozási nyelvekben írt szoftverek tervezésében és fejlesztésében, néhány munkámmal kapcsolatban további (angol nyelvű) információt kaphatsz a blog oldalaimon. Számos kisebb-nagyobb projektben vettem részt fejlesztőként, a legtöbb esetben tervezési és irányítási feladatom is volt. Az alábbiakban pár reprezentatív példát olvashatsz az elmúlt években elért, szoftverfejlesztéssel kapcsolatos eredményeimről.
Ezt a JADE és Linux alapokra épített beágyazott rendszert elosztott működésre, automatikus, vagy legalábbis automatikus módszerekkel támogatott konfigurációra és nagy rendelkezésre-állásra kellett felkészíteni. Az ágens alapú architektúra számos fejlesztési előnyt adott más technológiákkal szemben. Az egyes szoftveregységeket állapotgépekkel lehet leírni, mely alapján a keretrendszer automatikus migrációs, üzenettovábbító, döntési, párhuzamosítási, tagsági és egyéb szolgáltatásokat nyújt, akár egy mobil MIDP platform erőforráskorlátai mellett is.
Az elképzelések szerint a rendszer prototípusa Ethernet hálózaton, VIA EPIA hardveren futott volna, melyet saját, illetve külső fejlesztésű egyedi mikrokontrolleres hardveren, CAN buszos érzékelő- és beavatkozó hálózat egészített volna ki.
Fél éves tervezési és fejlesztési munka után a projekt sajnos kifogyott a pénzből, ezért nem jutottunk el a prototípus rendszerig, mely egy új, modern technológiára épülő lakásautomatizálási rendszer alapjául szolgálhatott volna. A projektben vezető tervező és fejlesztő feladatkört töltöttem be a hardverfüggetlen elemek tekintetében.
Java programozási nyelven, objektum-orientált fejlesztési és programozási technikával, gyakran UML eszközökkel támogatva - többek között - készítettem még:
Gyakorlatilag két független projektről van szó, melyet két külön megbízónak készítettem, azonban mégis egybe tartoznak, mert sok alapvető PHP technika kidolgozására nyílt lehetőségem a két fejlesztési fázis alatt. Mivel abban az időben még nem jelent meg a PHP 5, nem lehetett a fejlesztői környezet objektum-orientált szolgáltatásait megfelelően használni, így - fejlesztőtársammal - teljesen saját keretrendszer kialakításába fogtunk, melynek (tőlem már független) második verziója a mai napig üzemel.
A webes munkáim nem maradtak ennyiben, több egyéb projektben is fejlesztettem illetve terveztem PHP alapú keretrendszereket és modulokat. Ismerem többek közt a template kezelés, gyorsítótárazás, sessionkövetés, adatbázis-alapú kép- és dokumentumkezelés, többnyelvűség, különböző autentikációs mechanizmusok, HTTP fejlécek, URL átírás és keresőszerver-barát oldalak készítésének módjait.
PHP nyelven készítettem még:
Egy kevéssé publikus projektben lehetőségem nyílt az alacsony szintű TCP/IP hálózati ismereteim elmélyítésére, melyet egybe kellett kötnöm egy nagy áteresztő képességű, mégis bonyolult műveleteket végző, a hálózatot lehallgató üzemmódban ellenőrző szenzor megtervezésével. A szenzor az ISO OSI rétegmodell második (adatkapcsolati) szintjétől egészen a hetedik (alkalmazási) szintjéig nyomon követi a megfigyelt hálózat forgalmát, vagyis lehetőséget ad az ARP kérdés-válaszoktól egészen pl. az email forgalom értelmezésére és elemzésére.
A szoftvernek fel kellett készülnie, hogy több szálon üzemelve sem lesz képes a mindenkori aktuális hálózati forgalom teljes feldolgozására, ezért egy moduláris szerkezetű, C programnyelven írt szoftvert fejlesztettünk ki, mely képes a rendszer terheltségétől függően bizonyos funkcióit korlátozottan ellátni, azaz egyes moduljai futásidőben automatikusan ki- és bekapcsolódnak. A rendszer belsejében egy üzenettovábbító és ütemező egység üzemelt, melyet több más technikai modul is kiegészített, felhasználtuk többek közt a Ragel állapotgép-fordító eszközt, a libnids hálózati függvénykönyvtár egy általam továbbfejlesztett változatát és a libpcap függvénykönyvtárat is.