Mezi poměrně velkým množstvím balíčků, které jsou dostupné ve standardních repositářích Fedory, se nachází i jedna zajímavá a v některých situacích i docela užitečná aplikace, jež svým uživatelům nabízí funkce vzniklé jakousi symbiózou mezi běžným textovým editorem a chatovacím programem. Tato aplikace se jmenuje Gobby a jedná se o zástupce specializovaných textových editorů umožňujících spolupráci většího množství uživatelů na stejném textovém dokumentu v reálném čase.

To znamená, že všichni uživatelé mohou vybraný dokument editovat současně, přičemž díky neustálé vzájemné synchronizaci vidí i všechny editační operace prováděné ostatními uživateli. Synchronizace probíhá v reálném čase a je prováděna až na úroveň jednotlivých stlačení kláves, což je mnohdy důležité, zejména při konzultacích nad chybami ve zdrojových kódech. Každý uživatel si navíc může zvolit barvu pozadí, kterou jsou zvýrazňovány ty části textu, na kterých pracoval.

Logo aplikace Gobby

Obrázek 1: Logo aplikace Gobby
Autor: 0x539 dev group

Vzhledem k tomu, že aplikace Gobby umožňuje pouze práci s holým textem (plain text), nemohou být editované textové dokumenty formátovány takovým způsobem, jako je tomu v textových procesorech. Není například umožněno měnit styl písma, jeho velikost, zarovnání odstavců apod. Naproti tomu je možné u editovaných textových souborů barevně zvýraznit syntaxi, protože Gobby obsahuje syntaktická (či přesněji řečeno lexikální) pravidla pro mnoho typů programovacích jazyků, konfiguračních souborů, značkovacích jazyků apod. Bez problémů je taktéž možné pracovat s dokumenty obsahujícími znaky s akcenty. V tomto případě se předpokládá, že je použito kódování UTF-8. Při práci s větším množstvím dokumentů se používají dnes již obvyklé taby.

Editace souboru .bashrc se zapnutím zvýraznění syntaxe (pro shell)

Obrázek 2: Editace souboru .bashrc se zapnutím zvýraznění syntaxe (pro shell).

Program Gobby samozřejmě není jediným zástupcem tohoto typu aplikací, které bývají označovány zkratkou RTCE, neboli Real-time collaborative editor. Mezi další programy se stejnou či podobnou funkcionalitou patří například MoonEdit, SubEthaEdit (v obou případech jde o desktopové aplikace), ale taktéž mnohé nástroje přístupné přes webové rozhraní, například poměrně populární Etherpad nebo Google Wave. Program Gobby se od výše zmíněných aplikací odlišuje dobrou integrací do desktopového prostředí Gnome (včetně podpory drag&drop) a taktéž licencí GPL, pod níž je program šířen. Na rozdíl od Google Wave a Etherpadu je možné spolupracovat na textových dokumentech, aniž by se uživatelé museli registrovat a přihlašovat na nějaký server – veškerá komunikace probíhá přímo mezi jednotlivými programy Gobby, přičemž se při komunikaci využívá šifrované a tedy zabezpečené spojení.

Současná editace dokumentu třemi uživateli. Text napsaný každým uživatelem je zvýrazněn jím zvolenou barvou pozadí (tuto barvu je možné v průběhu práce měnit, Gobby však zajistí, aby si dva uživatelé nevybrali stejný barvový odstín).

Obrázek 3: Současná editace dokumentu třemi uživateli. Text napsaný každým uživatelem je zvýrazněn jím zvolenou barvou pozadí (tuto barvu je možné v průběhu práce měnit, Gobby však zajistí, aby si dva uživatelé nevybrali stejný barvový odstín).

Instalace programu Gobby do Fedory je velmi jednoduchá, protože se jedná o balíček umístěný ve standardních repositářích. V grafickém prostředí (Gnome, KDE, ...) tedy postačuje spustit grafický instalátor a v něm Gobby vyhledat podle jeho jména způsobem, jaký je ukázán na čtvrtém obrázku.

Instalace aplikace Gobby pomocí grafického instalačního programu (Fedora 15)

Obrázek 4: Instalace aplikace Gobby pomocí grafického instalačního programu (Fedora 15).

Pokud preferujete provádění instalací spíše z příkazové řádky, postačuje v konzoli či terminálu spustit následující příkaz:

sudo yum install gobby

Instalace aplikace Gobby z příkazového řádku (Fedora 15)

Obrázek 5: Instalace aplikace Gobby z příkazového řádku (Fedora 15).

Po úspěšné instalaci je již možné aplikaci Gobby ihned začít používat. Na rozdíl od běžných textových editorů je však po spuštění nutné zvolit, v jakém režimu bude Gobby pracovat. Volbu je možné provést mezi dvěma režimy. Po volbě prvního režimu, který se volí příkazem Create session, se Gobby začne chovat jako server, k němuž se mohou připojovat další uživatelé příkazem Join session. Před vytvořením nového sezení se Gobby v zobrazeném dialogu zeptá na číslo portu, na němž má být server dostupný (většinou není nutné změnit přednastavenou hodnotu 6522), dále na jméno uživatele, které se zobrazuje v chatovacím podokně (viz další text), na barvu pozadí, kterým je editovaný text zvýrazněn, a taktéž na heslo, které musí použít ostatní uživatelé při přihlášení k vytvořenému sezení. Heslo je volitelné – pokud však není zadáno, znamená to, že se může k sezení připojit i nevítaný návštěvník (nemůže se však nijak skrýt).

Dialog zobrazený při vytváření nového sezení (session)

Obrázek 6: Dialog zobrazený při vytváření nového sezení (session).

Ostatní uživatelé se mohou k vytvořenému sezení připojit příkazem Join session. Formulář pro připojení k existujícímu sezení je poněkud odlišný od formuláře pro vytvoření sezení, protože se kromě portu musí zadat i celá adresa počítače, na němž běží Gobby pracující ve funkci serveru. Pro zjednodušení vyhledání serveru jsou v dolní části formuláře zobrazeny všechny počítače na lokální síti s otevřeným portem 6522. Zadání jména uživatele a barvy pozadí je shodné jako v předchozím dialogu. Gobby ještě před připojením nového uživatele k sezení zkontroluje jeho jméno a zvolenou barvu pozadí, aby nedocházelo ke kolizím. Navíc se může zeptat i na heslo, ovšem pouze v tom případě, že heslo bylo skutečně zadáno při vytvoření sezení.

Dialog zobrazený při připojování se k již vytvořenému sezení (session)

Obrázek 7: Dialog zobrazený při připojování se k již vytvořenému sezení (session).

Pokud se úspěšně podařilo navázat spojení, zobrazí se ve spodní části hlavního okna aplikace Gobby všem již připojeným uživatelům hlášení o novém uživateli. Navíc se upraví i seznam uživatelů, který lze zobrazit volbou User list:

Okno se seznamem aktivních i neaktivních uživatelů

Obrázek 8: Okno se seznamem aktivních i neaktivních uživatelů.

V dolní části hlavního okna aplikace Gobby je zobrazena oblast chatu, jehož základní funkce se příliš neliší od funkcí nabízených například chatovacími programy pracujícími s protokolem IRC (Xchat apod.). Ovšem nejdůležitější funkce Gobby spočívá v synchronizované editaci textových dokumentů. Ta je celkem snadná – dokument se nejdříve musí buď vytvořit, popř. je možné otevřít již existující dokument na lokálním souborovém systému. Tento dokument se ihned stane dostupným i dalším připojeným uživatelům, kterým se buď zobrazí zcela automaticky (volba Preferences→Behaviour→Open new remotely-created document automatically.) nebo si ho mohou otevřít ze seznamu dokumentů. Dokument vytvořený či otevřený některým z dalších uživatelů je samozřejmě možné uložit na lokální souborový systém.

Seznam dokumentů vytvořených či otevřených některým z uživatelů

Obrázek 9: Seznam dokumentů vytvořených či otevřených některým z uživatelů.

Souběžná práce většího množství uživatelů nad jedním dokumentem je prakticky bezproblémová. Změna provedená každým uživatelem je zvýrazněna jím zvolenou barvou pozadí a díky tomu, že se synchronizace všech editačních operací provádí ihned po stisku klávesy, nedochází v naprosté většině případů k žádným kolizím, a to ani tehdy, pokud více uživatelů edituje stejný řádek. Samotný textový editor nabízí základní editační funkce, práci se schránkou (clipboard) a výběrem (selection), funkci pro vyhledání a nahrazení textu a taktéž skok na určený řádek. Chování editoru lze globálně nastavit volbou Edit→Preferences, popř. pouze pro aktivní dokument volbou Edit→Document Preferences (mezi pravděpodobně nejdůležitější parametry patří volba automatického zalamování textu a taktéž výběr režimu práce s tabulátory). V případě, že je špatně rozpoznán typ dokumentu (a tím pádem se špatně zvýrazňuje syntaxe), lze provést nápravu přes volbu Edit→Syntax.

Souběžná práce dvou uživatelů nad textovým souborem obsahujícím záplatu (patch). Každý uživatel změnil jeden řádek patche, což se projevilo odlišnou barvou pozadí.

Obrázek 10: Souběžná práce dvou uživatelů nad textovým souborem obsahujícím záplatu (patch). Každý uživatel změnil jeden řádek patche, což se projevilo odlišnou barvou pozadí.

Závěrem je možné říct, že aplikace Gobby je i přes svoji zdánlivou jednoduchost velmi užitečným nástrojem, zejména v případech, kdy je nutné, aby větší množství uživatelů pracovalo nad stejným dokumentem. V těchto případech je komunikace založená na posílání jednotlivých textových řádků přes chatovací program nebo používání „síťových schránek“ typu http://fpaste.org mnohdy zbytečně krkolomné a využití webových editorů zase většinou vyžaduje registraci (a navíc bývá pomalejší). K výhodám Gobby navíc musíme přidat dobrou integraci do Gnome desktopu, systémovou nezávislost a bezpečnost zaručenou použitím šifrovaného spojení.

Díky tomu, že se protokol používaný aplikací Gobby za poslední roky nezměnil, je možné komunikovat i se staršími verzemi Gobby, mezi něž patří například tato verze spuštěná ve Fedoře 10.

Obrázek 11: Díky tomu, že se protokol používaný aplikací Gobby za poslední roky nezměnil, je možné komunikovat i se staršími verzemi Gobby, mezi něž patří například tato verze spuštěná ve Fedoře 10.