8AN Homepage

E-mail: 8an@8an.cz, Jabber: 8an@praha12.net

Nejsem na Facebooku ani Twitteru a nepíšu blog, takže neexistuji. Ale díky tomu mám čas na smysluplné věci:

Projekty

Mapa sítě CZFree

Pracuji na nové mapě sítě CZFree, založené na Google Maps API. Zdrojový kód (v PHP a JavaScriptu) je v GIT repository git://praha12.net/home/www/git/. Motivace pro vytvoření nové mapy, popis návrhu a plány do budoucna nejdete v prezentaci mapy z valné hromady NFX.

CodEx

Podílel jsem se na vývoji projektu CodEx, který slouží k automatizovanému vyhodnocování zdrojových kódu. Profesoři zadají programátorskou úlohu, studenti pošlou řešení, a systém v reálném čase ověřuje, zda je řešení správné a jak rychle běží. CodEx je naprogramován především v PHP a využívá Zend Framework.

Ovladač zyd

Podílel jsem se na portování ovladače USB Wi-Fi karet s čipem ZD1211 z OpenBSD na Solaris. Původní verze nepodporovala WPA ani WEP, ale na vývoj navázali další a nyní je ovladač součástí operačního systému OpenSolaris.

Stránky

CZFree AP Javor

Spravuji jeden z přípojných bodů pražské bezdrátové sítě CZFree. Nachází se v Modřanech na křižovatce ulic Na Havránce a K Vltavě a pokrývá 180° směrem na severovýchod. Již připojuje více než 10 klientů.

WISP návod

WISP je minidistribuce Linuxu pro router. Standardní verzi lze rozšiřovat speciálními .lrp balíčky. Napsal jsem návod, jak v ní rozchodit FTP server, DC hub, WWW server a další. V některých případech jsem vytvořil .lrp balíček, který lze odtud stáhnout. Aktualizováno naposled roku 2004!

Linux na Asus M6V

Návod na zprovoznění Linuxu (Gentoo) na notebooku Asus M6V. Návod je z roku 2005, takže pro aktuální systém nemusí být relevatní. Nejspíš už bude všechno fungovat bez nastavování, v tomhle Linux hodně pokročil.

SIP VoIP

Text z příspěvku na Linuxovém semináři MFF UK. Zabývá se protokolem pro internetovou telefonii SIP a konfigurací serveru a klienta na Linuxu.

Zálohovací CD

Bootovací CD pro zálohování oddílu s Windows a obnově původního stavu po pádu systému. Je založeno na Linuxu, ale ovládá se přes menu v češtině, žádné zkušenosti s Linuxem nejsou potřeba. CD podporuje PATA i SATA disky, RAID i externí USB disky.

Programy

AVL strom

Implementace AVL stromu (jednoho z vyvážených binárních stromů) v C (obecném C, mělo by fungovat ve většině kompilátorů). Umí přidávání a odebírání prvků ze stromu (s vyvažováním rotacemi) a výpis stromu v částečně human-readable tvaru. Pomocí příkazového řádku v programu lze provádět operace se stromem.

Indent

Zápočtový projekt na zimní semestr 2003/2004. Museli jsme to psát v Pascalu, a podle toho to i vypadá. Přesto jsem se snažil psát stylem, na jaký jsem zvyklý z C. Program slouží k formátování zdrojáku v Pascalu. Můžete jej zadat třeba na jedné řádce bez jakéhokoli odsazování a on zaláme řádky, odsadí bloky a doplní mezery a prázdné řádky, aby to vypadalo lépe. Na původní formát nebere ohled.

Tetris

Zápočtový projekt na letní semestr 2003/2004. Nyní už v C. Lze hrát klasickou hru (s volitelnou rychlostí a zrychlováním). Vedle toho má program algoritmus, který vybírá, kam položit kostku. To umožňuje hru proti počítači, ale i výběr kostek, které se hráči hodí (nebo naopak nehodí - dle nastavení).

List

Úkol na cvičení z předmětu Objektově Orientované Programování (v C++). Implementace pole a spojového seznamu se stejným rozhraním. Používá iterátory, šablony a vyjímky, prostě to nejhorší co vás může v C++ potkat. Pouze pro odvážné.

Edmonds

Implementace Edmondsova algoritmu (hledání nejvetšího párování v grafu). Zdroják v Céčku a v Prologu. Už jsem za to dostal zápočet, takže mohu říct že verze v Prologu má 2 bugy, které lze opravit, ale už jsem na to neměl sílu: může teoreticky někdy běžet exponenciálně dlouho a nezvládá víc než 2 kontrakce kružnice. Navíc jsem se na zkoušce dozvěděl, že takhle se to dělat nemá. Takže verze v Prologu je na vlastní nebezpečí (všechno v Prologu je na vlastní nebezpečí), ale Céčková verze je docela čitelná.

Kraken

Program na bezeztrátové operace s MP3 soubory. Umí spojení, ořezání, jednoduchou detekci ticha, změnu hlasitosti a kontrolu poškození. Umožňuje také nastavit ID3 tag ve výstupním souboru. Vyžaduje knihovnu Taglib. Program se ovládá prozatím jen parametry příkazové řádky.

CursedTetris

Opět Tetris, tentokrát pro Linux/Unix pracující v textovém režimu (knihovna ncurses). Podporuje hru proti počítači a přes síť (pomocí protokolu UDP v režimu klient-server).

Dokumenty

Bezpečnost bezdrátových sítí

Práce porovnává bezpečnost jednotlivých bezdrátových technologií a podrobně se zabývá možnostmi zabezpečení sítí na základě standardu IEEE 802.11. Metody zabezpečení jsou posuzovány z hlediska odolnosti proti odposlechu, neoprávněnému přístupu do sítě, útokům typu DoS i útokům zevnitř sítě. Jsou ukázány příklady konfigurace zabezpečení a v některých případech i postup provedení útoku. Práce se též zabývá související problematikou volby bezpečných hesel a ochranou přihlašovacích údajů uložených v počítači. V závěru je navrženo zabezpečení domácí sítě, firemní sítě a sítě poskytovatele připojení k Internetu.

Řízení toku v přístupových bodech bezdrátové sítě IEEE 802.11

Bezdrátové sítě založené na standardu IEEE 802.11 (Wi-Fi) se dnes často používají jako první míle pro připojení k Internetu. Standard však pro toto použití nebyl navržen a proto se tento způsob nasazení potýká s problémy. Jedním z nich je vzrůstající latence při velkém zatížení sítě, způsobená absencí řízení toku. Předložená práce ukazuje, proč algoritmy řízení toku dostupné v operačních systémech nemohou ve Wi-Fi sítích efektivně pracovat a proč ani doplněk 802.11e není řešení. Následně navrhuje algoritmus určený speciálně pro Wi-Fi sítě, který dělí přenosové pásmo rovnoměrně mezi klienty, minimalizuje latenci a přitom nesnižuje propustnost sítě. Funkce algoritmu je ověřena simulací v prostředí OMNeT++ a následně je algoritmus implementován v operačních systémech Linux a FreeBSD.

Přednášky

ACPI a Software Suspend

Slidy z příspěvku na semináři Linux Kernel na MFF UK. ACPI je rozhraní pro komunikaci mezi operačním systémem a hardwarem, používané mimo jiné pro správu napájení. Dozvíte se jak bylo ACPI navrženo a jak funguje implementace v Linuxu a také něco o suspend to RAM a implementacích suspend to disk neboli hibernace - swsusp, suspend2, µswsusp.

Programování pro KDE

Slidy ze stručné přednášky o programování pro uživatelské prostředí KDE, které je postaveno na knihovně Qt. Na příkladech je předvedeno programování od nejjednodušší aplikace po použití KParts. Příklady jsou zaměřeny na KDE3, ale přednáška se zmiňuje i o novinkách v připravovaném KDE4.

802.11n

Slidy z příspěvku na semináři Moderní síťová řešení na MFF UK. 802.11n je připravovaná revize standardu 802.11, známého spíše pod jménem Wi-Fi. Hlavním cílem je dosažení vyšší přenosové rychlosti (efektivně přes 100Mbit). V přednášce jsem se zabýval především metodami, jak bylo zrychlení dosaženo, včetně technologie MIMO.

Wi-Fi

Slidy z přednášky pro Praha12.Net. Přednáška se zabývá bezdrátovou technologií 802.11 hlavně při použití v metropolitních sítích. Popisuje fyzickou a linkovou vrstvu 802.11, porovnává 802.11b a 802.11g a ukazuje některé problémy návrhu 802.11 (velká režie, nemožnost bridge v režimu klient).

MAC vrstva 802.11

Slidy z přednášky na workshopu sdružení NFX. Přednáška se zabývá se vrstvou přístupu k médiu ve Wi-Fi sítích (802.11 a/b/g/n), tedy tím, jak je (nebo spíš není) u Wi-Fi zajištěno, aby vysílala vždy nejvýše jedna stanice. Je uveden výpočet režie linkové vrstvy MAC a metody, jak tuto režii snížit.

Řízení toku v přístupových bodech

Slidy z přednášky na workshopu sdružení NFX. V přednášce je vysvětleno, proč klasické algoritmy pro traffic shaping na Wi-Fi selhávají a následně popsán algoritmus řízení toku určený speciálně pro Wi-Fi a implementovaný na linkové vrstvě přímo v ovladači hardwaru, který uvedené problémy dokáže vyřešit.