sobota 29. listopadu 2008

GtkSpell a čeština - fungovalo to vůbec někdy?

S novou linuxovou distribucí Fedora 10 (Cambridge), která vyšla 25.11.2008, jsem chtěl vyzkoušet některé novinky. Do oka mi také padl program Tomboy, který se spustí hned na začátku sezení a jeho žlutá ikona na nás svítí z panelu. Slouží pro psaní poznámek. Taková obdoba žlutých lepicích lístečků. V minulé distribuci jsem jej zavrhl a odinstaloval hned na začátku. Nefungovala kontrola pravopisu a jazyk pro kontrolu  se nedal vůbec nikde nastavit. Jakákoliv zapsaná poznámka se potom většinou skládala z červeně podtržených slov. Jediný přepínač v nastavení programu Tomboy umožňoval pouze kontrolu pravopisu úplně vypnout. V nové distribuci však ke zlepšení chování programu v tomto směru nedošlo.

Začal jsem pátrat po příčinách této chyby. Zjistil jsem, že stejným způsobem se chová i program Pidgin (dříve Gaim). Tady existuje možnost, jak kontrolu pravopisu uschopnit. Jde to pomocí zásuvného modulu (pluginu) switch spell, který je pro distribuci Fedora obsažen v rpm balíčku purple-plugin_pack-pidgin. Tento plugin je primárně určený pro přepínání jazyka kontroly pravopisu při komunikaci v jiném jazyku než je nastaven v systému.

Oba tyto programy, Tomboy i Pidgin, využívají pro kontrolu pravopisu knihovnu GtkSpell. Tato knihovna umožňuje provádět kontrolu pravopisu v GtkTextView widgetu. Ve zdroji gtkspell.c v poslední revizi 1.26 jsem našel část (řádky 496-504) týkající se rozpoznání jazyka podle environment proměnné LANG. Příkaz na řádku 499 způsobí, že nedojde ke správnému rozpoznání všech jazyků začínajících písmenem 'c' nebo 'C'. Mezi nimi je i cs_CZ - čeština. Uvedený příkaz byl původně zamýšlen jako pojistka proti špatně zadané hodnotě proměnné LANG a její následné změně v GTK-knihovnách na implicitní hodnotu 'C' (viz. hlášení při chybné hodnotě proměnné LANG: Gtk-WARNING **: Locale not supported by C library. Using the fallback 'C' locale.). Bohužel takovýto chybný zápis způsobí nesprávnou identifikaci všech jazyků začínajících písmenem 'c' a nastavení jazyka pro kontrolu pravopisu na angličtinu.

if (lang == NULL) {
    lang = g_getenv("LANG");
    if (lang) {
        if (g_strncasecmp(lang, "C", 1) == 0)
            lang = NULL;
        else if (lang[0] == 0)
            lang = NULL;
    }
}

Kontrolou ostatních revizí zdrojového kódu gtkspell.c jsem zjistil, že toto chybné rozpoznání jazyka se táhne všemi revizemi od počátku uvedení kódu. Znamená to tedy, že se při použití knihovny GtkSpell nikdy správně nerozpoznala čeština. Pokud tedy někdy diakritika v programech Tomboy nebo Pidgin, či ostatních programech založených na Gtk a kontrole pravopisu pomocí knihovny GtKSpell, fungovala, muselo to být tím, že pro kontrolu pravopisu byl použitý jiný způsob než knihovna GtkSpell.

Oprava tohoto problému je možná úpravou zdrojového kódu gtkspell.c a následným přeložením knihovny GtkSpell. Vzhledem k závislosti na balíčcích GTK+ 2 a Enchant jsem se rozhodl pro jednoduchou opravu přímého patche knihovny /usr/lib/libgtkspell.so.0.0.0 v jejím binárním formátu. Nahradil jsem znak 'C' na adrese 0x3c68 (lepší identifikaci místa najdete v článku Nefunguje kontrola pravopisu v Pidgin, Tomboy - knihovna GtkSpell) znakem 'X' pomocí vynikajícího binárního editoru Bless.

Update - 15.5.2009: Oprava již existuje od 18.2.2009, ale dosud se neprojevila mezi aktualizacemi.

čtvrtek 20. listopadu 2008

AOL končí se službou Xdrive

AOL rozeslala uživatelům služby Xdrive (5 GB on-line úložiště dat v bezplatné verzi) e-mail, kde stávající uživatele informuje o ukončení této své služby ke dni 12.1.2009. Stejná informace se objevuje i na úvodní stránce služby Xdrive. Uživatelé mají možnost si všechna svá data do 12.1. stáhnout na svůj lokální počítač, po tomto datu budou všechny uložené soubory smazány. Pro jednoduší manipulaci s daty během stahování byla přidána možnost komprimace všech souborů do jednoho zip archivu.

Jako alternativa k této zrušené službě jsou nabízeny následující možnosti:
Box.net
Carbonite
Elephant Drive
Microsoft Live SkyDrive
Mozy
Spare Backup

Vzhledem k inzerovanému brzkému zvětšení prostoru k bezplatnému uložení dat na 25 GB s nástupem Microsoft Live Wave 3 se jeví služba Microsoft Live SkyDrive jako dobrá náhrada Xdrive. Zároveň má dojít i k dalším změnám v poskytování služby, takže na konečné hodnocení si raději počkejme až po konečné aktualizaci této služby.

úterý 21. října 2008

OpenOffice.org 3.0

Vyšla nová verze kancelářského balíku OpenOffice.org 3.0. Stáhnout si jí můžete přímo z českého portálu věnovaného OpenOffice.org. Pro instalaci do Windows můžete použít přímý odkaz. Na tomto serveru najdete také pěkný návod pro instalaci samotného kancelářského balíku a současně i návod pro instalaci českých slovníků pro kontrolu pravopisu, dělení slov a tezaurus.

V této verzi došlo ke změně při instalaci doplňujících slovníků. Instalují se nyní zvlášť jako rozšíření. Pro instalaci si stáhněte české slovníky (popřípadě slovenské slovníky) a soubor uložte třeba na plochu. Pak spusťte program OpenOffice.org a do jeho okna přetáhněte soubor dict-cs-2.0.oxt, který jste si předtím uložili. Potvrďte zahájení instalace a licenční ujednání rozšiřujícího balíku. Po ukončení instalace musíte program OpenOffice.org ukončit včetně jeho rychlého spouštění. Po opětovném spuštění programu bude již funkční česká jazyková kontrola.

Při výskytu problémů s instalací samotného kancelářského balíku nebo slovníků pro kontrolu pravopisu jako rozšíření je možné hledat pomoc v diskuzi pod článkem odkazovaným již výše, případně na fóru. Různé zdroje pro stažení včetně torrentu najdete na stránkách wiki.

úterý 7. října 2008

Google Chrome - nepublikovaná nastavení

Prohlížeč Google Chrome nabízí pouze základní nastavení, která ve většině případů dostačují. Občas by se ale hodila zapnout či vypnout nějaká funkce nebo vlastnost prohlížeče, která v dialogu pro nastavení chybí. Google Chrome obsahuje mnoho přepínačů, které jdou použít při spuštění z příkazové řádky a o kterých se dosud nikde moc nepsalo. Dají se najít ve zdrojových textech prohlížeče base_switches.cc a chrome_switches.cc. Jako příklad uvedu pár možností:

-disable-javascript
Vypne JavaScript. Prohlížeč nebude interpretovat žádný kód jazyka JavaScript a začne zobrazovat obsah značek noscript.
-disable-java
Vypne spouštění veškerých pluginů
-start-maximized
Spustí prohlížeč s oknem maximalizovaným na celou obrazovku. Pokud tento parametr nepoužijeme, má okno prohlížeče stejné rozměry, jaké mělo, když byl prohlížeč naposledy ukončen.

Další možnosti lze snadno vyčíst ze zdrojových textů na něž byly uvedeny odkazy výše.

sobota 27. září 2008

Ztráta hesel v Mozilla Firefox 3.0.2

Ve verzi 3.0.2 prohlížeče Mozilla Firefox vydaného dne 23.9.2008 se vyskytla chyba v kódování uloženého souboru s hesly. Prohlížeč si nedokáže poradit s takovými hesly, v jejichž položce se vyskytla diakritika. Chyba se projeví zmizením hesel v této verzi prohlížeče. Také nešla uložit nová hesla. Je možná náprava návratem ke starší verzi prohlížeče Mozilla Firefox 3.0.1. Pokud se nevyskytla diakritika přímo v heslu je možné soubor s uloženými hesly signons3.txt načíst do textového editoru (např. PSPad) a uložit jej v kódování UTF-8. Tento soubor najdete v adresáři C:\Documents and Settings\[JMÉNO_ÚČTU]\Data aplikací\Mozilla\Firefox\Profiles\[XXX].default\ pro Windows XP nebo v adresáři C:\Users\[JMÉNO_ÚČTU]\AppData\Roaming\Mozilla\Firefox\Profiles\[XXX].default\ pro Windows Vista. Více o problému s hesly ve Firefox 3.0.2 se můžete dozvědět na fóru CZilla.

K dnešnímu dni je již vydaná plně lokalizovaná verze prohlížeče Mozilla Firefox 3.0.3, která opravuje chybu při práci s uloženými hesly. Nejnovější verzi prohlížeče najdete na adrese http://www.mozilla.com.