Ondřej Caletka: Raspberry Pi v domácí automatizaci
Raspberry Pi je v poslední době velkým hitem a díky své cenové atraktivitě se dostává do mnoha domácností. Jde o miniaturní počítač postavený na SoC procesoru s architekturou ARMv6. Při srovnání s běžným x86 počítačem jde o poměrně málo výkonné řešení. Procesor má za úkol jen přepínat programy, určitě nebylo plánováno, aby něco počítal. RPi má ale různé výhody, zejména cenové, takže uživatelé v praxi naopak využívají především jeho CPU.
Ondřej Caletka popsal všechny součásti Raspberry Pi včetně některých periferií, které je možné k němu připojit. Zmíněna byla zejména kamera, kterou je možné připojit ke specializovanému portu. Stojí asi 800 Kč a vy si možná řeknete, proč si raději nekoupit běžnou USB kameru. Tahle kamera je ale přímo připojená na GPU a dodává mu velmi kvalitní obraz.
Obraz putuje ze snímacího čipu až do grafického procesoru po zvláštní sběrnici a zcela bez předzpracování. Počítač dostává ‚víc RAW‘ obraz, než jaký nabízí klasický RAW.
Celý proces zpracování fotografie je tak v rukou počítače a je značně ovlivnitelný.
Pro přednášku byl podstatný GPIO konektor, na kterém je dostupná sériová linka, I2C, SPI a osm GPIO linek. Celá deska je postavena na moderních součástkách, které vyžadují 3,3 V úrovně napětí. Ondřej Caletka upozornil, že celá deska je velmi citlivá na dobré napájení, protože kvůli ceně neobsahuje žádný další stabilizátor. Raspberry Pi předpokládá stabilizované napětí 5 V a velmi tvrdý zdroj. To většina nabíječek na mobily nesplňuje, protože u mobilu se předpokládá, že se nabíjí baterie, která funguje jako velký kondenzátor. Řada nabíječek je tak spíše měkkým zdrojem 9 V, které po zatížení klesnou přibližně k 5 V,
varoval.
GPIO konektor je pro domácí automatizaci tím nejzajímavějším, co na RPi je. Je možné díky tomu například ovládat jednoduchý hardware jako LED nebo využít tlačítka. Nelze ovšem dosáhnout přesného časování ani generování přesných signálů.
Různé programovací jazyky mají pro ovládání podobných zařízení své knihovny, které vše z hlediska vývojáře zjednodušují. Pokud máte například připojené tlačítko, můžete díky tomu nasadit polling využívající přerušení a nemusíte se padesátkrát za sekundu dotazovat, zda je tlačítko stisknuté.
Užitečná je také I2C sběrnice, ke které je možné připojit mnoho standardních zařízení. Dostupný je například modul s hodinami reálného času. Stačí je zapojit do konektoru a máte k dispozici hodiny zálohované baterií.
Alternativou je pak sběrnice 1-Wire, která je sice pomalejší, ale funguje na větší vzdálenosti a stačí jí jen dva dráty. Bohužel je výrazně složitější na implementaci. Je výhodné si pořídit hardwarový řadič, který připojíme na I2C a on pro nás řízení 1-Wire zařídí.
Ondřej Caletka předvedl i vlastní řešení PoEpi, které obsahuje step-down měnič z 12–40 V na 5 V, 1-Wire řadič a hodiny reálného času PCF8583. Potřeboval jsem RPi napájet na velkou vzdálenost a tam není možné přivést 5 V, musel jsem tedy vyrobit vlastní zdroj a přivádět k němu napájení po ethernetovém kabelu.
Deska dnes slouží k exteriérovému měření teploty jezírka pomocí několika čidel.
Raspberry Pi je schopné nad takto získanými daty z teplotních čidel vytvářet statistiky, ukládat je do databáze a posílat je po internetu. Výkonu na to má dost, je možné generovat PNG grafy a servírovat je pomocí Lighttpd.
Zároveň je RPi schopno pořizovat fotografie ve vysokém rozlišení a streamovat do internetu živé video.
Bohužel praktické provozní zkušenosti nejsou úplně dobré. Zhruba dvakrát měsíčně selže komunikace s kamerou a celé zařízení se zasekne. Bylo by dobré dodělat ještě watchdog.
Stejně tak se zhruba jednou měsíčně stává, že se samovolně odpojí SD karta. Spolehlivost je tedy relativně nízká, takže se RPi nehodí na kritické nasazení.
David Kolibáč: Markdown, pandoc, gitit
Svou první přednášku zahájil David Kolibáč vlastními zkušenostmi s tvorbou poznámek. Během studií jsem nechtěl používat papírové sešity, ale potřeboval jsem si dělat poznámky. Postupně jsem prošel různými nástroji, které mi ale všechny po čase přestaly vyhovovat.
Většina lidí na začátku sáhne po nějakém kancelářském balíku, například Writeru z LibreOffice. Na tom mi vždycky vadilo rozbité formátování a problematické vkládání vzorců, které se ne vždycky chovalo tak, jak jsem čekal.
Poté David Kolibáč zkoušel ručně psát HTML nebo kód v LaTeXu. Obojí je ale poměrně nepřehledné a člověk tam musí řešit různé zbytečnosti při escapování různých znaků, jako je třeba dolar.
Další variantou byla wiki, ale prakticky každá implementace používá jinou syntaxi. I takové základní věci, jako je zvýraznění textu, se v každé wiki dělají jinak.
Začal se proto rozhlížet po tom, zda existuje nějaký „univerzální wiki jazyk“, který funguje napříč různými implementacemi. Objevil jsem Markdown, který je prakticky všude.
Markdown vypadá hezky, používá se na mnoha webech a v nova aplikací a bez problémů se konvertuje do mnoha různých jiných formátů, včetně zmíněného LaTeXu. Také existuje řada různých editorů, které mají speciální podporu: Emacs, Vim, ReText a další.
Tyto editory výrazně zjednodušují práci se složitějším formátováním, například Emacs umožňuje automaticky vytvářet tabulky. To je důvod, proč používat Emacs i v roce 2013.
Implementací Markdownu je celá řada, původní implementace je napsaná v Perlu, prakticky se nemění a je velmi rozšířená. Bohužel ale nemá implementovanou řadu vlastností a navíc umí jen výstup do HTML.
Existuje proto několik rozšíření, z nichž nejrozšířenější jsou Markdown Extra a pandoc. První jmenovaný je napsaný v PHP, proto se často používá na webu. Pandoc je univerzální konvertor, který umí výstup do několika desítek formátů.
Je tak možné stále používat jednotný formát pro tvoření HTML, jazyka pro MediaWiki, manuálových stránek, ale třeba i elektronických knih nebo třeba prezentace v HTML s různými šablonami.
Robert Šebek: Nasazení Linuxu ve velké síti
Robert Šebek pracuje ve společnosti ha-vel, která se snaží ve svých sítích preferovat Linux všude, kde je to možné. Dnes provozuje 1100 km optických tras a 848 mikrovlnných spojů a 4200 aktivních prvků. Na 1500 z nich používáme Linux. Používáme ho vlastně úplně na všechno, na co se používat dá.
Z hlediska linuxových distribucí je ve společnosti nejčastěji nasazován Slackware. Používáme ho z historických důvodů už od roku 1997, dnes už je to hodně upravené řešení, které si připravujeme sami.
Druhou nejvíce používanou distribucí je pak Debian. Ten nasazujeme na páteř a na místa, kde nabízíme nějaké služby.
Společnost nasazuje Linux prakticky na všechny úlohy kromě přepínačů. Na L2 switche se Linux ještě nasadit nedá, ale všude jinde ho máme.
Jde o routery, firewally, servery, ústředny, media gatewaye i na pracovní stanice. Konkrétní distribuce na pracovních stanicích je ponechána na uživateli. Nejvíce se u nás používá Ubuntu, Mint nebo CentOS.
Zajímavým řešením je 40Gbps router postavený na dvou kartách Mellanox, který běží na osmijádrovém serveru Intel Xeon na 3,1 GHz. Odladit celé zařízení, aby mělo dostatečný výkon, ale nebylo triviální. Je to poměrně zajímavý problém, který závisí například na hardware nebo na tom, jak jsou napsané ovladače.
Překvapivě je i dnes potřeba takto robustní zařízení postavit na jednoprocesorovém počítači. Na víceprocesorových řešeních je problém s nedostatečnou propustností sběrnic mezi procesory. Zase jsme se vrátili k jednoprocesorovému systému.
V praxi má ha-vel ve své síti v současné době nasazené dva tyto velké linuxové routery.
David Kolibáč: GNU/Linux jako herní platforma
David Kolibáč začal svou přednášku pohledem do historie před deseti lety, kdy ještě nebylo běžně dostupné dobré připojení k internetu, pořádaly se LAN párty a vládly papírové časopisy. Člověku tenkrát stačilo, že měl počítač a nějakou hru. Už to byla poměrně vysoká investice.
Dnes je situace vlastně úplně jiná, do prostředí her vstoupil internet, nové distribuční platformy jako Steam a finále velkých herních soutěžích přenášejí televize. Z her se stává mainstream, průměrný hráčský věk je okolo 35 let. Musel se úplně změnit přístup tvůrců her.
Otázka zůstává, kdy nastane ten mnoho let proklamovaný „rok Linuxu“. Podle Kolibáče to bude ve chvíli, kdy budou pro Linux hry. Už dnes ale linuxové hry existují: svobodné, porty AAA titulů i distribuční platforma Steam a hrát se dá i ve Wine. Dnes už ale nejde jen o hry, ale i o zbytek herní kultury. Například sledování herních videí na YouTube, streaming hraní, turnaje nebo i vstup nového hardware na trh.
Vznikají specializované periferie jako Kinect nebo herní myši a klávesnice.
Problém je ale s chybějící podporou v Linuxu a dodatečnými uživatelskými nástroji. Například pro herní streaming neexistuje žádný „velký software“, uživatelé musí používat ručně napsané skripty na každou činnost. Většina z nich používá ffmpeg s parametry na několik řádků. Je to funkční, ale nic uživatelsky příjemného.
Podobně je problém i s podporou webových kamer, aby hráči mohli komunikovat při streamingu se svými uživateli.
Další problémy způsobuje zvukový subsystém, který je roztříštěný a často nedokonalý. Zvuk v Linuxu je jeden velký chaos. Abyste získali zvuk z některé hry, musíte často třeba zabít PulseAudio.
Řada zvukových karet pak nemá oficiální podporu a nejsou k dispozici všechny efekty nebo jednoduché uživatelské rozhraní. Ono to většinou ‚nějak‘ funguje, ale k dokonalosti to má daleko.
Spousta zařízení je navíc podporována velmi problematicky. Zařízení jako klávesnice, myši, ale i grafické čipy, mají spoustu věcí nedotažených a chybí k nim řada nástrojů. Je s tím hodně práce, opravdu hodně. Pokud máte zájem o téma na zajímavou bakalářku, určitě je možné v tomhle směru hodně udělat,
uzavřel svou přednášku Kolibáč.
Jiří Eischmann: Gnome 3 – evoluce v revoluci
Jiří Eischmann se na začátku své přednášky věnoval tomu, proč se vývojáři Gnome v roce 2008 rozhodli k velké změně. Jednak už bylo prostředí plné zastaralých knihoven, zároveň se zostřila konkurence ze strany Qt a také klesal zájem firem. Například Nokia byla dříve velkým investorem do GTK, později z něj odešla a teď… prostě odešla.
To zároveň znamenalo demotivaci pro vývojáře, kteří začali projekt hromadně opouštět. Bylo proto třeba změnit koncept a celé Gnome zmodernizovat.
Změna trvala přibližně dva roky, což je doba, kterou měli vývojáři třetích stran čas upravit své aplikace. Ve verzi Gnome 2.24 se označily zastaralé funkce a zastaralé knihovny, které se pak začaly postupně odstraňovat. Ve verzi 2.28 byla odstraněny knihovny esound, libgnomevfs, libgnomeprint a libgnomeprintui. Pak přišla zásadní změna, když byla v roce 2011 vydána verze 3.0.
To znamenalo definitivní odstranění zastaralých funkcí. Pokud se tedy nějaká aplikace nestihla přizpůsobit, stala se s novým Gnome nekompatibilní. Takových aplikací je stále spousta, včetně některých velkých projektů. Gimp třeba stále závisí na GTK 2. Takhle velký projekt není možné předělat za den.
Dále proběhl přechod z Gconf na GSettings a dconf, proběhlo vylepšení GObject Introspection a XInput2 přinesl lepší podporu dotykových zařízení. Zajímavé také je, že GTK témata začala být nově definována v CSS namísto vlastního jazyka. To opět znamenalo předělat všechna stará témata, která byla s novým formátem nekompatibilní.
Zároveň vzniklo nové prostředí Gnome Shell, které je napsané jako plugin do správce oken. Správce oken a prostředí tak bylo sloučeno do jednoho procesu.
Dříve jsme vedle sebe měli Gnome Panel, který se staral o panely a Metacity, které se staralo o okna. Shell nabízí velmi široké možnosti rozšíření. Problém je, že když rozšíření obsahuje nějakou zásadní chybu, může ohrozit stabilitu celého prostředí.
Rozšíření umístěná na extensions.gnome.org jsou ale prověřována a podle Eischmana by měla být bezpečná.
Nový Gnome pak přinesl samozřejmě řadu uživatelských novinek jako je podpora webových aplikací, nové jednoúčelové aplikace a také tmavé téma GTK+. Výchozí správce oken ovšem už nefunguje na grafických kartách, které nepodporují OpenGL. Našlo se na to částečné řešení, kterým je softwarové renderování. Tyto operace se tak mohou přesunout na CPU.
To má samozřejmě dopad na výkon, ale umožňuje to používat Gnome na všech počítačích.
Byl také zlepšen notifikační systém, začalo se přecházet na WebKit, proběhl redesign Nautilu a poměrně nedávno vznikl taky Classic Mode. Jde o vstřícný krok k uživatelům, kterým nevyhovuje nové ovládání Gnome. Je tak možné si nastavit klasickou podobu desktopu.
Jiří Eischmann také prozradil, že v RHEL 7 bude Gnome Classic výchozím prostředím.
Do budoucna připravují vývojáři vlastní SDK, ve kterém se bude vyvíjet v C a GUI bude vznikat v JavaScriptu. Plánují se také aplikační sandboxy, které dovolí vytvořit stálé prostředí pro aplikace. Ukázalo se, že to ale vůbec nebude tak jednoduché, jak to na začátku vypadalo.
Aplikace by ale pak měla deklarovat, kam potřebuje přístup a systém by ji jinam nepustil. Dnes může každá aplikace dělat vše, co může dělat uživatelský účet.
V budoucnu se aplikace budou uživatele na oprávnění ptát, podobně jako dnes třeba v Androidu.
Dalším zajímavým počinem by měl být Gnome Software, tedy jakýsi app store pro Gnome. Tohle už ale není budoucnost, je to spíš přítomnost. Katalog aplikací je už ve vývoji.
Uživatelé tak budou odstíněni od balíčků, instalací a aktualizací. Bude to něco takového, co už dnes známe z Androidu.
Jiří Eischmann ale zdůraznil, že nevzniká nic jako Gnome OS. Stále půjde jen o pokročilé desktopové prostředí.