Erik Horváth

Kód

Erik Horváth, DevOps inžinier, Nitra, na diaľku, kontrakt alebo B2B, plný úväzok od 2027

Väčšina mojich repozitárov je súkromná, preto tu ukazujem vybrané výňatky kódu, každý pripnutý na commit a s git blame po riadkoch.

Statická snímka z GitHub API, stav k 25. 9. 2026.46 Celý kód prejdeme na technickom hovore.

Repozitáre

Tabuľka 1. Repozitáre, ako vznikli a koľko výňatkov z nich ukazujem nižšie47
RepozitárAko vznikloJazykyObdobieCommityS AI traileromPripnutéVýňatky
Hlavné projekty
Otvoriť hyptcn3 v prehliadači kódu: hyptcn3Diplomová práca v3: introspekcia KVM hosťa bez agenta · súkromnýs pomocou AIPython, C, Shell09/202611 commitov0 s AI trailerom (0 %)97b0c435 výňatkov
Otvoriť Bally17/SIprojekt v prehliadači kódu: Bally17/SIprojektSystém na evidenciu odborných praxí · verejný · tím 3 ľudí0 commitov s AI spoluautoromPython, TypeScript, JavaScript10/2025 – 01/2026497 commitov0 s AI trailerom (0 %)2e96d445 výňatkov
Otvoriť sovereign-ai-poc v prehliadači kódu: sovereign-ai-pocSuverénny MLOps PoC pre EÚ (docker-compose) · súkromnýkód napísal AI agentShell, Python, Dockerfile06/20268 commitov8 s AI trailerom (100 %)e9ded404 výňatky
Otvoriť scanforeshop v prehliadači kódu: scanforeshopDetekcia skriptov vložených do e-shopu · súkromnýs pomocou AIPython, TypeScript01/202669 commitov0 s AI trailerom (0 %)23ba0ea4 výňatky
Otvoriť dolt-platform v prehliadači kódu: dolt-platformHodnotenie DevOps zručností zo stopy práce · súkromnýkód napísal AI agentGo, Python, Shell07/202616 commitov16 s AI trailerom (100 %)c65abb03 výňatky
Diplomovka: predchádzajúce verzie (v1 → v2 → v3)
Otvoriť hypTcn v prehliadači kódu: hypTcnDiplomová práca v1 (hypTcn) · súkromnýs pomocou AIPython, Go, C02/2026 – 03/202637 commitov5 s AI trailerom (14 %)9fa11b61 výňatok
Otvoriť avUnitfan/hypTcn002 v prehliadači kódu: avUnitfan/hypTcn002Diplomová práca v2 (hypTcn002) · súkromný · môj druhý GitHub účet (avUnitfan)kód napísal AI agentPython, Go, C03/2026 – 08/2026408 commitov332 s AI trailerom (81 %)0acd0943 výňatky
Ďalšie, len metadáta
scrapeitallLookr API – agregátor verejných registrov · súkromnýkód napísal AI agentPython, Shell, HTML04/2026 – 08/202625 commitov24 s AI trailerom (96 %)7df29f1len metadáta
booking-systemRezervačný SaaS pre viacerých klientov · súkromnýkód napísal AI agentPHP, TypeScript, CSS09/202620 commitov16 s AI trailerom (80 %)592e911len metadáta
digitwinDigitálne dvojča doručovania (demo) · súkromnýkód napísal AI agentTypeScript, Python09/20263 commity3 s AI trailerom (100 %)a8d1f04len metadáta
Čo znamenajú označenia a počty
kód napísal AI agent
väčšinu alebo všetok kód napísal AI agent; moje je zadanie, architektúra a vedenie, akceptačné testy a overenie tam, kde to uvádzam pri projekte.
s pomocou AI
AI sa na kóde podieľala, ale autorstvo je zmiešané alebo sa z gitu nedá presne určiť.
0 commitov s AI spoluautorom
žiadny commit v histórii nemá AI co-author trailer. Je to údaj o gite, nie tvrdenie o tom, ako sa kód písal.

Počty commitov sú zo snímky z 25. 9. 2026, po commit, na ktorý je snímka pripnutá, a zahŕňajú všetkých autorov. Trailer Co-Authored-By zachytí len časť použitia AI: v3 diplomovej práce a scanforeshop majú 0 trailerov, no vznikli s pomocou AI. Stĺpec „Ako vzniklo“ preto vychádza z celej histórie a z môjho vyhlásenia, nie iba z trailerov.2134

Výňatky

Poznámka nad kódom hovorí, prečo na ňom záleží, vrátane známych chýb. V strome súborov sú výňatky označené, ostatné súbory sú zamknuté.

hyptcn3 305 súborov pri 97b0c43

guestparse25 súborov
__init__.py
__main__.py
checks.pyvýňatok
cli.py
image.py
profile.py
README.md
validate.py
view.py2 výňatky
204–252 Prechod 4-úrovňových tabuliek stránok x86-64
76–112 Nájdenie posunu jadra (KASLR) v snímke
vmicollect31 súborov
bpf2 súbory
vmic_bpf_abi.h
vmic_kvm.bpf.cvýňatok
src22 súborov
backend.c
backend_ebpf.c
backend_file.c
collector.c
config.c
hooks.c
internal.h
log.c
log.h
main.c
meta.c
perbin.c
perbin.h
retention.c
sched.c
sha256.cvýňatok
sha256.h
util.c
util.h
writer.c
writer_delta.c
writer_raw.c
Makefile
README.md
vmicollect.example.conf
.gitignore
HONESTY.md
README.md

Strom je filtrovaný: 90 z 305 súborov sa nezobrazuje.

zamknuté: súkromný kód, prejdeme ho na technickom pohovore výňatok: čitateľná časť súboru

Prechod 4-úrovňových tabuliek stránok x86-64

hyptcn3/guestparse/view.py

riadky 204–252pripnuté na 97b0c43snapshot vygenerovaný 25. 9. 2026bez driftu: main je stále na tomto commite

Prečo na tom záleží

Vlastný preklad (bez libvmi) virtuálnej adresy jadra hosťa na fyzickú priamo nad snímkou RAM, vrátane veľkých stránok 2 MiB / 1 GiB (bit PSE). Namiesto holého None vracia úroveň a kód dôvodu zlyhania, takže odlíši „tabuľka nebola zozbieraná“ od „jadro túto adresu nemapuje“ – na tom stojí diagnostika profilu. Známa chyba: pri veľkej stránke maska ponecháva v adrese bit 12 (PAT), takže ak je PAT nastavený, fyzická adresa vyjde zle.

Git blame:b574b8d 19. 9. 2026, commit z môjho účtu, 34 riadkov18d4eaf 18. 9. 2026, commit z môjho účtu, 15 riadkovzvýraznené riadky

204    def walk_pa_detail(self, va):205        """206        Preklad virtualnej adresy hosta prechodom tabuliek stranok207        (4 urovne, x86_64). Pokryva aj oblasti, ktore linearne mapovane nie su -208        moduly a vmalloc.209210        Vracia {'pa', 'level', 'index', 'reason', 'reason_code'}; 'pa' je None,211        ked sa prechod nedokoncil. Velke stranky (1 GiB, 2 MiB) sa rozpoznaju212        podla bitu PSE.213214        Kody dovodov (na nich stoji diagnoza, nie na samotnom None):215          bez_korena     - nepozname posun jadra alebo init_top_pgt216          chyba_tabulka  - tabulku na tej urovni snimka neobsahuje (nic to217                           nehovori o profile, iba o tom, co sa zozbieralo)218          chyba_polozka  - tabulka V SNIMKE JE, ale polozka pre tuto adresu219                           v nej nie je pritomna, teda jadro tuto virtualnu220                           adresu nemapuje221        """222        out = {"pa": None, "level": None, "index": None,223               "reason": None, "reason_code": None}224        table = self._pgt_root()225        if table is None:226            out["reason_code"] = "bez_korena"227            out["reason"] = ("neznamy posun jadra alebo profil nema "228                             "init_top_pgt")229            return out230        # bity 47:39 / 38:30 / 29:21 / 20:12231        for level, shift in enumerate((39, 30, 21, 12)):232            idx = (va >> shift) & 0x1FF233            name = self.PGT_LEVELS[level]234            ent = self.u64(table + idx * 8) if self._page_present(table) else None235            if ent is None:236                out.update(level=name, index=idx, reason_code="chyba_tabulka",237                           reason="tabulka %s na 0x%x nie je v snimke"238                                  % (name, table))239                return out240            if not (ent & self.PTE_PRESENT):241                out.update(level=name, index=idx, reason_code="chyba_polozka",242                           reason="polozka %s[%d] nie je pritomna"243                                  % (name, idx))244                return out245            phys = ent & 0x000FFFFFFFFFF000246            if level in (1, 2) and (ent & self.PTE_PSE):247                size = 1 << shift248                out["pa"] = phys + (va & (size - 1))249                return out250            table = phys251        out["pa"] = table + (va & 0xFFF)252        return out

„Z môjho účtu“ znamená, že autorom commitu je jeden z mojich GitHub účtov. Commit bez traileru ešte neznamená kód bez AI; ako repozitár vznikol, hovorí jeho štítok.4844