Browsed by
Tag: programování

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.

Python – Konvence pro psaní kódu

Python – Konvence pro psaní kódu

V tomto článku jsou sepsány nejdůležitější pravidla pro psaní zdrojového kódu programů v Pythonu. Článek vychází z informací uvedených v dokumentu PEP (Python Enhancement Proposals) 8 – Style Guide for Python Code. Nejde o překlad tohoto dokumentu, pouze o výpis těch nejdůležitějších věcí, které by měl každý kdo programuje v Pythonu znát a pokud možno se jimi i řídit. Originální dokument v angličtině naleznete na adrese: http://www.python.org/dev/peps/pep-0008/

Facebook puzzles

Facebook puzzles

Máte rádi hádanky? Baví vás programování? Řešíte rádi problémy, které nejsou tak úplně triviální? Dokážete se nad problémem zamyslet, pochopit ho, rozložit si ho na menší celky, zanalyzovat a navrhnout nejoptimálnější řešení. Chápete, že pro řazení pole s miliónem prvků pomocí buble sortu je bláznovství a naopak, že pro pětiprvkové pole je quicksort overkill? Pak tu pro vás něco mám…

Vlákna vs. procesy

Vlákna vs. procesy

Potřebujete paralelizovat část programu? Nevíte, jestli k tomu využít nové vlákno nebo nový proces? V tomto článku jsem shrnul základní rozdíly mezi procesy a vlákny.