Na letošní GUADEC jsem vyrazil ze zajímavosti, protože jsem byl jedním z hlavních pořadatelů minulého ročníku, který se uskutečnil v Brně. Do Štrasburku, kde se GUADEC letos konal, jsem cestoval společně s dalšími zhruba deseti desktopovými vývojáři z brněnské pobočky Red Hatu.
Poznámka šéfredaktora: Přestože od konference uběhla již poměrně dlouhá doba (zhruba dva měsíce), stojí za to si o ní přečíst i nyní. Hodnotné informace, které konference přinesla, rozhodně neztratily na aktuálnosti.
Konference působila menším dojmem než vloni. Částečně to bylo tím, že pořadatelům na poslední chvíli vypadlo plánované místo konání a museli ho nahradit jiným, menším, které nebylo zcela ideální. Částečně to pak bylo tím, že prostě dorazilo méně lidí. Přes online formulář, který byl spuštěn teprve pár dní před konferencí, se registrovalo jen 120 lidí, dalších pár desítek se registrovalo přímo na místě, ale oproti zhruba 250 účastníkům v Brně to byl znatelný úbytek.
Wayland a GTK+
Loňský ročník byl ve znamení Waylandu. Přijel jeho zakladatel a další hlavní vývojáři a diskutovalo se, jak dostat GNOME na Wayland. Od té doby se udělalo velké množství práce, GNOME Shell už umí běžet na Waylandu od verze 3.10 a v 3.12 se k němu přidaly i aplikace. GNOME je tak ze všech prostředí nejdále. Nicméně jak ukázala přednáška Jaspera St. Pierra, který v Red Hatu na podpoře Waylandu v GNOME už rok pracuje, cesta je ještě dlouhá.
Na začátku Jasper mluvil o tom, proč se vůbec X.org nahrazuje Waylandem. Věnoval se především bezpečnosti. Bezpečnostní problémy X serveru demonstroval na jednoduchém keyloggeru, který vtipně pojmenoval „RealPlayer 10.4 Special Deluxe Freemium Edition“, a ukázal, jak jednoduché je přes X server odposlouchávat ostatní aplikace.
A podle něj je sandboxing desktopových aplikací na úrovni souborového systému neúčinný, pokud mohou přistupovat ke zdrojům ostatních skrze X server. Má sice prý také správu přístupu, která by tomu teoreticky mohla zamezit, ale jedná se o tak složitý kód, že tuto vlastnost nechce nikdo používat a s největší pravděpodobností obsahuje celou řadu bezpečnostních děr.
Wayland počítá s izolací aplikací přímo ve svém návrhu. Toto výrazné zvýšení bezpečnosti ovšem přináší i určité uživatelské nepohodlí, protože neumožňuje funkce, na které byli uživatelé doposud zvyklí: např. v GIMPu nebudete mít možnost vybrat barvu odkudkoliv na obrazovce, nebo běžná aplikace nebude mít možnost udělat snímek celé obrazovky, pokud se jí to neumožní přes API, které zprostředkuje přístup ke zdrojům mimo aplikaci.
Hodně lidí si od Waylandu slibuje vyšší výkon než na X serveru, Jasper ale tato očekávání trochu zchladil tím, že Wayland má sice, co se týče výkonu, velký potenciál, ale dosud na výkonu nikdo nepracoval a tak je to velmi srovnatelné s X serverem. Jediná věc, kde lze vidět zlepšení na první pohled, je změna velikosti okna, která na X serveru nikdy plynulá nebyla a na Waylandu je už nyní.
Jasper se na závěr rozpovídal také o dekoracích oken. GNOME postupně přechází na vykreslování dekorací klientem, kdy dekorace jsou přímo součástí aplikace. To je také řešení, které podporuje i Kristian Høgsberg, zakladatel Waylandu. Nicméně vykreslování dekorací serverem (okenním manažerem) lze nad Waylandem implementovat také a hlavní vývojář KWinu Martin Gräßlin je velkým obhájcem tohoto řešení, takže se nedá čekat, že by KDE v dohledné době přešlo na dekorace vykreslované klientem. Jasper říká, že bude potřeba dialog mezi vývojáři GNOME a KDE, aby se vytvořil nějaký „handshaking“ protokol, který zajistí, aby aplikace GNOME neměly v KDE dvojí dekorace a aplikace KDE v GNOME žádné.
O aktuálním dění ve frameworku GTK+ měl přednášku Matthias Clasen, jeden z jeho hlavních vývojářů. Zajímavá byla jeho prezentace, která byla napsaná přímo v GTK+ a všechny ukázky byly zakomponované přímo do slajdů. Matthias ukázal nové widgety v GTK+ a jak jednoduché je je psát. Demonstroval také, jak se aplikace napsané v GTK+ přizpůsobují prostředí, v kterém běží. Z tohoto důvodu přepínal do Xfce.
Vývojáři GTK+ 3 byli obviňováni, že myslí pouze na GNOME a v jiných prostředích se chovají aplikace napsané v tomto frameworku špatně. Jak Matthias ukázal, v posledním roce udělali hodně práce na tom, aby tomu tak nebylo. Pokud nyní aplikace běží v jiném prostředí, vykreslí kromě zavíracího tlačítka také tlačítka pro maximalizaci a minimalizaci a nabídka aplikace se přesune z horního panelu, kde se nachází v GNOME, do okna aplikace.
Poslední přednášku, která se věnovala GTK+, měl Benjamin Ott, hlavní vývojář tohoto frameworku. Věnoval se především kaskádovým stylům, které jsou používány pro definování vzhledu rozhraní v GTK+. Benjamin je na toto téma nejpovolanějším přednášejícím, protože většinu z 50 tisíc řádů vykreslovače CSS v GTK+ napsal on.
Velkou část přednášky věnoval GTK+ Inspectoru, který umožňuje kompletně analyzovat aplikaci a odhalit chyby. Původně se projekt jmenoval GTK+ Parasite a vznikl mimo GTK+, ale vývojáři tohoto frameworku ho považovali za tak užitečný, že ho začlenili do svého projektu.
Hardware
Několik přednášek na GUADECu bylo věnováno hardwaru a jeho integraci s desktopem. Zajímavou přednášku měl Bastian Nocera, který působil v celé řadě projektů, které souvisely s hardwarem: nautilus-cd-burner, podpora LIRC, bluetooth, podpora k přístupu k iOS, čtečky otisků prstů, podpora tabletů Wacom…
Posluchačům sdělil několik rad pro integraci desktopu s hardwarem a také se rozpovídal o tom, kam bude celá oblast směřovat. Podle něj už GNOME dobře podporuje obrazovky, dotykové obrazovky, úložná zařízení, rotaci obrazovky, zobrazování/skrývání kurzoru, ale čím dál více notebooků obsahuje také akcelerometr, senzory světla nebo kompas. Pro to vše bude potřeba podporu napsat.
I druhá přednáška byla velmi zajímavá. Owen Taylor přednášel o pravidelném výkonnostním testování GNOME. Cílem je odhalit výkonnostní regrese co nejdříve, aby bylo možné co nejrychleji identifikovat problematický kód. Vytvořil si speciální ovládací zařízení, které stahuje nové sestavení GNOME Continuous po každém commitu a instaluje je na připojené počítače. Případnou regresi tak lze přiřadit konkrétnímu commitu.
Testování lze ovládat aplikací GNOME Hardware Testing, kterou Owen napsal. A co se testuje? Čas nabootování do desktopu, čas překreslení celého desktopu, čas pro zobrazení přehledu Činnosti, čas pro překreslení Činností s pěti okny atd. Výsledky lze najít na perf.gnome.org. Do budoucna by chtěl Owen testovat také aplikace a mít mezi testovacími zařízeními větší pestrost, třeba přidat zařízení s procesory ARM.
Testování uživatelské přívětivosti
Velmi zajímavou keynote měl Jim Hall, ředitel IT na univerzitě v Minnesotě. Tam totiž v poslední době prováděli testování GNOME „na lidech“. Jim na začátku mluvil o tom, jak takový test vůbec dělat, protože to není tak jednoduché, že někoho posadíte před počítač, řeknete mu, co dělat a pozorujete ho.
Ve zbytku přednášky procházel výsledky jednotlivých testů, z nichž byly některé velmi zajímavé. Např. v úkolu, kde měli uživatelé nainstalovat hru Roboti, se rozdělili na dvě poloviny. Jedna hru nainstalovala naprosto bez problémů a druhá to nedokázala. V čem byl rozdíl? Úspěšná polovina použila v GNOME Software vyhledávání, které v seznamu výsledků nabídlo u jednotlivých aplikací i tlačítko Nainstalovat.
Druhá skupina se rozhodla najít hru brouzdáním v kategoriích, tam ale už v seznamu tlačítko Nainstalovat není a oni se museli prokliknout do profilu hry. V něm si ale nikdo z nich nevšiml tlačítka Nainstalovat v pravém horním rohu, protože všechny zaujalo tlačítko Webové stránky. Klikli tedy na něj a instalační soubor hledali na stránkách hry a přišlo jim to naprosto v pořádku, protože je to místo, kde jsou zvyklí hledat instalační soubory pro systémy, které používají (všichni byli uživatelé buď OS X nebo Windows).
Něco takového by uživatele Linuxu nenapadlo, takže není divu, že na tento problém nepřišli ani designéři ani komunita a jedná se tak o typ problému, který odhalí asi opravdu jen cílené testování na uživatelích, kteří GNOME jinak nepoužívají.
Fleet Commander
Zajímavý projekt představil Alberto Ruiz z Red Hatu. Fleet Commander má za cíl vytvořit nástroj pro hromadnou správu desktopových počítačů. Něco takového Linuxu chybí a ve velkých nasazeních, kde musí administrátor spravovat třeba tisíce stanic, je to nepostradatelné. Celý projekt je teprve v začátcích, ale Alberto už byl schopný ukázat funkční prototyp.
Ukázal, jak jednoduše lze vytvořit desktopový profil, který lze potom aplikovat na vybrané stanice. Přímo ve webovém prohlížeči se mu spustil virtuální stroj, jehož desktop byl zobrazovaný přes SPICE do HTML 5. Profil může administrátor vytvářet zcela intuitivně, jakoby upravoval svůj vlastní desktop. V sezení virtualizovaného systému běží démon, který všechny změny v nastavení zaznamenává a rozdíl oproti výchozímu nastavení uloží jako profil, který lze potom aplikovat na libovolný počet stanic.
Fleet Commander zatím podporuje pouze GSettings, tedy aplikace GNOME, ale do budoucna se počítá s LibreOffice, Firefoxem, KDE a dalšími. Plánuje se také přednastavení emailu, GNOME Online Accounts, předinstalace balíčků, které jsou mimo repozitáře distribuce apod.
Sandboxované aplikace
Sandboxované aplikace jsou něco, co vývojáři GNOME dlouhodobě plánují. Takové aplikace by si (téměř) vše, co potřebují ke svému běhu, nesly s sebou v sandboxovaném kontejneru, kde by měly jasně určené, na které zdroje mimo kontejner mohou přistupovat. Výhodou je to, že takové aplikace by běžely prakticky na jakékoliv distribuci a ještě k tomu řadu vydání po sobě. Pro tvůrce aplikací by tak bylo výrazně jednodušší distribuovat své výtvory linuxovým uživatelům.
David King na přednášce mluvil o tom, jak už si nějakou dobu hraje s architekturou aplikace Cheese, která slouží k práci s webkamerou. David se snaží upravit architekturu tak, aby mohla běžet právě v sandboxovaném kontejneru. Cheese je pro tento účel obzvláště zajímavý, protože potřebuje přístup k hardwaru (webkameře). Přístup aplikace k hardwaru by neměl být přímý, ale přes API D-Busu, aby mohl být tento přístup kontrolovaný.
David ukázal fungující prototyp, ale současná implementace D-Busu není stavěná na streamování videa. Čeká se tedy na implementaci přímo v jádře – kdbus. Další výzvou podle Davida bude navržení API, které musí zpřístupňovat pokud možno všechny funkce hardwaru a přitom zůstat dostatečně obecné.
Builder: nové IDE pro GNOME
Poslední přednášku konference měl Christian Hergert, který mluvil o plánech na specializované IDE pro vývoj GNOME a jeho aplikací. Builder by neměl být obecným IDE, takových už máme na výběr docela dost. Architektura by se měla skládat z jednotlivých služeb, které by měly běžet v samostatných podprocesech.
Builder by měl také pokud možno co nejvíce používat již existující komponenty. Např. editor zdrojového kódu bude používat GtkSourceView, návrhář rozhraní bude používat Glade a GTK+ Inspector apod. Builder by tak měl být spíše takovou skládačkou, která propojí dosud příliš nespolupracující nástroje do jednoho IDE, které bude kompletně pokrývat potřeby vývojáře GNOME.
Plány vypadaly velmi velkoryse a člověku se do mysli automaticky vkrádalo, kdo to všechno udělá. A pak přišel Christian s hodně odvážným prohlášením: v září přestane pracovat ve společnosti MongoDB a rok bude žít z úspor a věnovat se Builderu na plný úvazek. Takových obětí ve světě open source zase tolik nevidíme. Na druhou stranu takové rozhodnutí se dělá poněkud jednodušeji, pokud pracujete jako vývojář v Silicon Valley a nemáte rodinu.
Na konci konference bylo také oznámeno, v kterém městě se bude konat GUADEC 2015. Bude jím Göteborg ve Švédsku.
Autorem fotografií je Jakub Steiner, CC-BY-SA 2.0