Browsed by
Tag: programování

Pár poznámek k GraphQL

Pár poznámek k GraphQL

GraphQL je specifikace dotazovacího jazyka. GraphQL samotné neumí operace s daty ani jejich transformování, jde o jazyk, kterým se dotazujeme služeb implementujících jeho specifikaci. GraphQL je zaměřeno na tvorbu klientských aplikací, tak aby vývojáři mohli začít využívat data bez nutnosti strávit spoustu času studiem dokumentace API.

Programování Arduino a ATtiny pro MPPT měnič Siton v Linuxu

Programování Arduino a ATtiny pro MPPT měnič Siton v Linuxu

Siton 210 je stavebnice MPPT měniče určeného pro optimalizaci využití fotovoltaických panelů a jejich připojení k bojleru (kdy měnič převádí stejnosměrný proud na střídavý). Pro tuto stavebnici je potřeba jednodeskový počítač Arduino Nano a (volitelně) mikroprocesor ATtiny85, které je potřeba naprogramovat. V tomto článku ukážu, jak naprogramovat Arduino Nano Atmega328P a mikroprocesor ATtiny85 v Linuxu (konkrétně Fedora 38) právě pro tento měnič.

How to turn off a Linux system without root or sudo

How to turn off a Linux system without root or sudo

If you need to know how to turn off modern Linux systems, which run systemd, without root or sudo programmatically (Python or Bash shown here) or from a command line. Without using deprecated approaches like HAL and/or ConsoleKit. Then read this my blog post.

PyPinger – Pingací aplikace s GUI v Pythonu

PyPinger – Pingací aplikace s GUI v Pythonu

PyPinger je nástroj pro kontrolu dostupnosti síťových stanic pomocí ICMP (Internet Control Message Protocol) protokolu (PyPinger pracuje na stejném principu jako příkaz ping). PyPinger je naprogramován v jazyku Python, má grafické uživatelské rozhraní, je multiplatformní a je uvolněn jako open source pod GPLv3 licencí.

Python – Tipy & Triky

Python – Tipy & Triky

Dnes si ukážeme trošku Pythoní magie. Začneme s několika tipy ke vstupu/výstupu a výběru hodnot. Dále se zaměříme na řetězce, seznamy, n-ticemi a slovníky. Ukážeme si jak zapisovat slice konstrukce, generátory seznamů a další. Podíváme se i na lambda funkce, anonymní proměnné a nezapomeneme ani na třídní a statické metody. Na závěr si popíšeme pár užitečných vestavěných funkcí o kterých možná nemáte ani tušení.

Python – Výjimky

Python – Výjimky

Výjimka je mechanismus pro zachycení a ošetření chybových a neočekávaných stavů. Výjimka umožňuje zachytit, přeskočit, nebo jinak ošetřit nastalý chybový stav až za samotným algoritmem, který chybu vyvolal a zvýšit tím čitelnost programového kódu.
Takže pojďme se podívat na výjimky v Pythonu.

Identifikátor filmů Aky v Pythonu

Identifikátor filmů Aky v Pythonu

Nástroj pro automatické vyhledání, identifikaci a ohodnocení filmů.
Skript v Pythonu, který rekurzivně projde složku a její podložky, vyhledá všechny video soubory, pokusí se o jejich identifikaci a získání jejich hodnocení z filmových databází IMDb (International Movie Database) a ČSFD (Česko-slovenská Filmová Databáze). Výsledky své práce vytiskne na standardní výstup seřazené v sestupném pořadí podle průměrného hodnocení filmu.

Několik poznámek k XML

Několik poznámek k XML

XML je značkovací jazyk pro popis dat. Je to zkratka Extensible Markup Language. XML nemá předdefinovaná jména elementů, tak jako třeba HTML, ale umožňuje definovat vlastní. Pravidla pro zápis XML jsou definována v jeho specifikaci, vytvořené konsorciem W3C.

Datová struktura trie (prefixový strom) v Pythonu

Datová struktura trie (prefixový strom) v Pythonu

Trie neboli prefixový strom je datová struktura sloužící k uložení asociativního pole. K jeho prvkům se přistupuje pomocí klíče, který je ve většině případů tvořen textovým řetězcem. Díky své vnitřní struktuře umožňuje trie rychlé vyhledání s lineární časovou složitostí. Trie bývá často využívána pro uložení slovníků, kde se kromě rychlosti vyhledání využívá ještě relativně příznivých nároků na paměť v případě, že se ve slovníku nachází velké množství slov se stejným prefixem.
Oproti hashovací tabulce má trie výhodu v tom, že odpadá potřeba hledání optimální hashovací funkce a současně v případě rozdílných klíčů není třeba řešit kolize. Trie je ideální pro případy, kdy je třeba nad určitou množinou slov hledat všechna slova začínající určitým prefixem.

Konkurentní server v C++

Konkurentní server v C++

Konkurentní server dokáže obsloužit více klientů zároveň. V mém kódu je tohoto požadavku dosaženo použitím systémového volání fork, které slouží k vytvoření nového procesu. Stejné funkčnosti se dá docílit i pomocí jiných metod, mimo jiné použitím vláken, či funkcí select() a poll() z knihovny pro práci se sockety.