Programátorské techniky nejen v C++

  • Entity Component System v C++20

    Zkouším navrhnout Entity Component System v využitím šablon v C++20.  Moje setkání s ECS Nejprve se musím přiznat, že jsem vůbec nevěděl, že něco takového existuje, takže tenhle článek nebude mít edukativní charakter, ale spíš půjde o moje pokusy-omyly. Můj zájem o vývoj v oblasti herního průmyslu skončil někdy v roce 2007, což tak nějak koresponduje s tím, že jsem opustil Bohemia Interactive Studio a nastoupil na práci vývojáře v Seznamu…
    15. 10. 2025 11:51 (aktualizováno)
  • Destructive Move v C++?

    Tento příspěvek navazuje na diskuzi u předchozího článku. Ta se týkala o tom, zda má či nemá C++ destructive move, jaké výhody a problémy to přináší. Upozorňuji dopředu, že lze  očekávat Rust vs C++ flamewar Základy k termínu destructive move Diskuzi pod původním článkem nehledejte, smazal jsem její větší část, protože mi přišla vyhrocená a kompletně mimo téma…
    6. 7. 2025 11:13 (aktualizováno)
  • Něco o callback funkcích v C++

    Díky potřebě portovat starší hru napsanou v C jsem měl možnost připomenout si některé techniky, které jsem v C používal a na které jsem zapomněl. Například callback funkce Callback v Céčku Pro odborníky v Céčku určitě nic bombastického. Ukážu na příkladu /---pre typedef int (*DirectoryEntryCallback)(const char *name, char type, size_t size, void *context); int listDirectory(const char *path, DirectoryEntryCallback cb, void *context) \---
    26. 6. 2025 17:00 (aktualizováno)
  • Portuji 27 let starou hru napsanou v C

    Dnešní příspěvek bude o portaci hry Brány Skeldalu, která vyšla v roce 1998. To že to nebyla snadná cesta už dokazuje to, že tento článek vznikl. Pokusím se vypíchnout hlavně různé nástrahy, které si vynutily speciální zacházení Kdo nezná Brány Skeldalu? Hra Brány Skeldalu byla poprvé vydána na podzim v 1998. Za produkcí stojí Napoleon Games, což je (nebo spíš byla) společnost založenou Jindřichem Rohlíkem (který si časem změnil příjmení na Skeldal)…
    30. 4. 2025 12:27
  • Zamyšlení se nad korutinami v C++20

    V tomto příspěvku se vrátím ke korutinám, shrnu v jakém stavu je C++  5 let po zavedení do normy a jaké osobní zkušenosti s korutinami mám. Korutiny v C++ – udělej si sám Stav korutin v době vydání do verze 20 krásně vystihuje tento obrázek Cörutin Jestli někdo doufal, že se v tomto směru něco změnilo od té doby, tak ne, nezměnilo. V C++23 přibyl synchronní generátor, který však spadá pod < ranges> a to je vše. 
    25. 4. 2025 23:10 (aktualizováno)
  • Nechte testovat překladač

    Dnešní příspěvek je o tom, jak namísto sofistikovaných testovacích nástrojů používat k testování samotný překladač. I když si testy náhodou nepíšete, s testy různých knihoven jste se určitě už setkali. Leckteré knihovny, které se nedají nainstalovat z balíčkových systémů, ale musí se instalovat ručně, mají často tento doporučený postup instalace do systému…
    11. 1. 2025 17:26 (aktualizováno)
  • Řízení kotle Arduinem

    Tento příspěvek vypráví o mé cestě k automatizaci kotelny s využitím staršího kotle a Arduina.  TL;DR - Protože je článek dlouhý, napsal jsem na úvod shrnutí tématu pro spěchajícího čtenáře: Rozhodl jsem se prodloužit životnost poloautomatického kotle III. emisní třídy Benekov Pelling 27 tím, že jsem postavil novou řídící jednotku použitím vývojové desky Arduino UNO R4 Wifi…
    31. 12. 2024 20:37 (aktualizováno)
  • Řízení diodové matice na Arduino UNO R4 Wifi (jinak)

    V tomto článku si ukážeme jiný způsob řízení LED diodové matice na oblíbeném vývojářském boardu Arduino UNO v revizi 4 Wifi Diodová matice na Arduino R4 Wifi (Dot Matrix) Bastlíři si jistě všimli, že minulý rok vyšla nová revize oblíbené vývojové desky s mikročipem Arduino UNO. Nová revize nese označení R4 a prodává se ve dvou variantách. Verze Arduino UNO R4 Minima, verze Arduino UNO R4 Wifi…
    3. 11. 2024 13:02 (aktualizováno)
  • Optimalizace async. parseru JSON v C++20

    Toto je dodatek k předchozímu článku o parsování JSON pomocí korutiny. Ačkoliv původním záměrem nebylo maximalizovat rychlost, ale spíš benefit asynchronního zpracování, tak diskutéři pod článkem mne donutili podívat se na možnosti optimalizace právě na rychlost. Co měřit? Posuzovat efektivitu algoritmu podle rychlosti je asi ta nejjednodušší metrika, ale k tomu jsem se původně nechtěl snižovat. Jedno číslo, které nemusí vyjadřovat skutečnou efektivitu…
    8. 5. 2024 14:32 (aktualizováno)
  • Asynchroní parsování JSONu v C++20

    Tento článek je ukázkou a malým cvičením na korutiny. Ukážeme si, jak napsat parser JSONu jako korutinu v C++20 Motivace Asynchronní parsování JSONu najde uplatnění zejména u programů, které komunikují po síťovém spojení nebo používají asynchronní vstupně výstupní operace. Jako příklad si můžeme uvést HTTP server, který přijme request od klienta ve formátu JSON. 
    4. 5. 2024 14:28 (aktualizováno)