Michale, znám tě z AbcLinuxu jako pravidelného návštěvníka, bloggera a také odborníka, který se kvalifikovaně vyjadřuje k mnoha tématům. Pověz našim čtenářům něco o sobě.
Narodil jsem se a žiju v Praze, kde jsem vystudoval ČVUT FEL. V současné době pracuji pro firmu SYSGO jako vývojář linuxové distribuce pro embedded zařízení.
Jsi taky "embedded" v Linuxu, nebo máš ještě i jiné zájmy?
No zájmy jsou pochopitelně nejenom počítače, třeba hodně rád jezdím na kole.
Můžeme někde produkt, na kterém se podílíš, vidět a vyzkoušet si ho?
Existuje Free Toolbox, který obsahuje základní funkcionalitu a je volně dostupný, více informací je na webu Sysgo.
Na tvé stránce jsou k nalezení mnohé programy a také balíčky pro Debian Linux. Nejprve otázka k těmto balíčkům. Které programy pro Debian připravuješ?
Jednak to jsou věci okolo Gammu, na jejichž vývoji se podílím a které si zatím nenašly cestu do oficiální distribuce. Pak jsem napsal pár skriptů, které generují balíčky pro GNU/FDL Anglicko-český slovník. Původně byly jenom pro dict server, nedávno jsem přidal i pro program StarDict. Poslední věc je pokus o Midnight Commander s utf-8 patchi, zatím bohužel nepříliš stabilní.
Vyvíjíš programy pro mobilní telefony. Můžeš je trochu představit?
Jedná se o projekt Gammu, který se před nějakým časem odštěpil od Gnokii. Hlavně šlo o osobní spory autorů, ale i některé faktické, jako třeba interní používání unicode. Nad Gammu jsem jako svoji diplomku napsal grafické rozhraní Wammu a protože neraději používám Python, tak je to napsáno v něm. Z toho vyplynula nutnost napsat python-gammu, které zpřístupní funkce Gammu z Pythonu. Abych něco prozradil i těm, kteří tento program neznají: Wammu je aplikace umožňující editovat data v telefonu. V současné době jsou podporovány SMS, kontakty, kalendář a todo. Je možné posílat i EMS s různými obrázky a melodiemi a časem by měly přibýt i "zbytečnosti" jako MMS, správa log a melodií v telefonu, ale na to prostě zatím nebyl čas, dobrovolníci, kteří pomohou s vývojem, jsou vítáni.
Předtím jsem ještě napsal program KAlcatel, který ale již přes dva roky nevyvíjím. To byl program určený jenom pro Alcately 50x a 70x, podle kterého jsem později napsal Wammu. Problém této aplikace bylo zaměření na jediný telefon a velmi špatný návrh vnitřní struktury. Ale chybami se člověk učí.
Nemyslíš, že by si programy vyvíjené českými programátory zasloužily více pozornosti?
Necítím nějak potřebu získávat více pozornosti. Proč nějak více podporovat české programátory? Mají stejnou šanci jako programátoři kdekoliv jinde na světě.
Přece jenom je mnoho lidí, kteří by chtěli pomoci, ale neví komu a s čím. Potřebuješ pomoci?
Další vývojáři se hodí vždycky, pokud člověk neumí programovat, je to trochu horší. Odezev na programy je v současné době více, než stíháme zpracovat, ale tím nechci lidi odrazovat, jen musí počítat s tím, že na odpověď můžou čekat třeba i měsíc. Ale s čím by určitě čtenáři mohli pomoci, je překlad Gammu do češtiny. To není natolik náročná věc a já na to prostě nemám čas.
Jakým způsobem probíhá vývoj aplikace pro mobilní telefon? Kde získáváš specifikace příkazů apod.? Je to časově náročné?
Specifikace se získávají těžko. Nejjednodušší jsou standardizované věci jako AT příkazy nebo Obex, kde existují oficiální specifikace, dále někteří výrobci (jako například Siemens a Sony Ericsson) alespoň částečně zveřejňují popisy komunikace, u ostatních (především Alcatel a Nokia) je to spíš otázka odposlouchávání komunikace originálních programů. Časově náročná je především prvotní analýza protokolu, přidávání dalších funkcí už je poměrně snadné.
To je reverse engineering, ne? Není to nelegální? Nebo firmy dělají mrtvého brouka?
Nelegální to není, minimálně v Evropě naštěstí ne. Jediná firma, se kterou mám osobní zkušenosti, je Alcatel - psal jsem jim o specifikace, dostal jsem jakousi obecnou odpověď, že o tom budou přemýšlet. Ovšem v okamžiku, kdy jsem vydal první verzi KAlcatelu, tak se o to firma začala intenzivně zajímat.
Jinak další vývojáři Gnokii dříve kontaktovali firmu Nokia, ale ke spolupráci nikdy nedošlo. Je zajímavé sledovat, jak najednou Nokia zaměstnává vývojáře (nejen) GNOME, aby měla funkční svoje zařízení postavené na platformě Maemo. Z toho je krásně vidět, že velkým firmám se vyplatí brát z open source - pokud se jim to hodí.
Dnes už víme, že máme s patenty snad pokoj, ale přesto se zeptám, "co by kdyby" - jak by tvou činnost ovlivnilo přijetí patentů?
O tom jsem raději nikdy nepřemýšlel a nezkoumal jsem to, většina protokolů je pravděpodobně patentovaných, takže by bylo nemožné je legálně podporovat (stejně tak jako tisíce dalších běžně používaných věcí).
Jaké nástroje a přístroje používáš pro programování, máš doma desítky mobilů? A používáš jako "správný kodér" vim?
Mám jediný mobil. Většinu věcí odladím na dálku s pomocí uživatelů. Pokud jsou dostatečně ochotní (což naštěstí dost často jsou). Občas mi někdo zapůjčí na testování mobil, jako například Linuxsoft.cz.
Jinak jako jediný editor používám vim a plně mi vyhovuje, přestože rozhodně nevyužívám většinu jeho možností. Dalším nástrojem je kromě kompilátoru a interpretru Pythonu víceméně jen GDB a GNU Arch pro správu verzí.
Co je podle tebe, člověka, který se v této oblasti vyzná, nutné ještě doprogramovat, aby byla podpora všech mobilů na vysoké úrovni? Aby uživatel prostě připojil mobil a "ono to jelo"?
Je nutná podpora pro nové telefony založené na platformě Symbian. V současné době má Gnokii částečnou podporu pomocí vlastního appletu, který se nahraje do mobilu, ale to nefunguje úplně dokonale. Gammu se vydalo cestou jako u ostatních mobilů - reverse engineering jejich protokolu, ovšem to je zatím běh na dlouhou trať, ale snad se to zlepší.
Další věc, která citelně chybí, je synchronizace s groupwarem (ať už takový software budeme nazývat jakkoliv, prostě to, co spravuje kontakty, kalendář a podobné věci). OpenSync bohužel ještě není ve stádiu, aby byl rozumně integrován a také nepodporuje moc zařízení, a jeho předchůdce MultiSync je na tom snad ještě hůře. Ale v této oblasti je v posledním roce znatelný pokrok, takže se snad dočkáme použitelného řešení.
Co se ti na open source a Linuxu nelíbí?
Nelíbí se mi roztříštěnost. Existuje mnoho projektů, které řeší totéž a z různých důvodů se nebyly schopné dohodnout na společném pokračování. Typickým příkladem je Gnokii a Gammu. Oba vznikly ze stejného kódu. V současné době má každý svoje výhody a bylo vy velmi těžké je sloučit, i kdyby nebylo osobních antipatií mezi autory. V okamžiku, kdy by vývojáři obou projektů pracovali na jednom z nich, byl by mnohem dál.
A vděčná otázka: jak vypadá tvoje pracovní prostředí (desktop, editor, přehrávač multimédií, prohlížeč apod.)?
Pracovní prostředí vypadá poměrně stroze. Window Maker s jedním sloupcem appletů na pravé straně. Zbytek plochy zabírá jeden z programů, které používám - editor (GVim), terminál (xterm), browser (Firefox), mailový klient (KMail) nebo IM klient (Gaim). Na přehrávání hudby používám MPD, na video Xine a obrázky prohlížím v GQview. A tím v podstatě výčet grafických programů, které používám, končí. No dobře, občas si ještě zahraji OpenTTD nebo Enemy Territory.
Díky za rozhovor a přeji hodně energie a času.