Blog

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…

Scrollování prostředním tlačítkem v Kubuntu 9.10 na notebooku Lenovo

Scrollování prostředním tlačítkem v Kubuntu 9.10 na notebooku Lenovo

Prostřední tlačítko na noteboocích Lenovo Thinkpad slouží ke scrollování (Posouvání stránek, například kolečkem nebo posuvníky po stranách dokumentu) pomocí polohovacího zařízení zvaného trackpoint (takový malý joystick, na noteboocích Lenova a HP, mezi klávesami G H B nahrazující myš a touchpad). Celé to funguje tak, že palcem stisknete zmíněné prostřední tlačítko a ukazováčkem na trackpointu scrollujete stránky. Je to podobné, jako kdyby jste točili kolečkem až na to, že trackpint je všesměrový a když si člověk zvykne tak je to i pohodlnější a rychlejší než scrollování myší. S funkcí tohoto tlačítka je pod Linuxem občas trochu problém, a proto nyní popíšu jak ho rychle a snadno vyřešit.