A[d]dict

Aktuální verze - A[d]dict v.0.3

[home : www.kotala.net]
 
Verze All-in-one:
Ke stáhnutí je zde verze Addict_031.zip (cca. 10MB). Verze obsahuje zdrojové kódy, binárky pro Windows i Linux (závislost na libpng.so.3), datové soubory starších verzí EN<->CZ, GE<->CZ, Hacker's dictionary, WordNet a slovníku Bohemik + nakonfigurovaný Addict.ini, takže jen nahrajete, rozbalíte a jedete...
 
Omluva :
Omlouvám se všem, kteří se mne neúspěšně pokoušeli kontaktovat na starém emailu. Je to již hodně douho, co adresu vkotala@mistral.cz nepoužívám. Prosím používejte nadále adresu uvedenou na konci stránky.
 

Co je to, co to umí, jak to vypadá ?

Addict je multiplatformní slovník, či přesněji program (engine) pro vyhledávání překladů či významu neznámých slov za použití slovníkových databází.

Vznik Addictu byl motivován přáním českých uživatelů Linuxu na stránkách webzínu ABC linuxu, jeho návrh získal v hlasování čtenářů první místo a tím i příslib finančního příspěvku 5000,-Kč. ABC linuxu tímto děkuji nejen za příspěvek, ale i dlouhodobou podporu Linuxu a open source v ČR.

Addict je napsán za použití multiplatformní knihovny wxWindows a šířen pod licencí GPL. Je primárně vyvinut pro GPL/FDL Česko-Anglický překladový slovník, ale používat ho lze i pro jiné slovníky, dokonce i pro výkladové.

 
Některé další klávesové zkratky ve verzi 0.2:
DELMaže vše jen je-li kurzor na konci řádku, jinak funguje jako obvykle.
ALT+<-,->Přepíná mezi používanými slovníky.
Šipky ^,vPosunuje slovník o slovíčko vzhůru/dolů
PGUP,PGDNPosunuje slovník o 10 slovíček vzhůru/dolů
ENTERVynutí vyhledání/návrat zadaného slovíčka
 

Jak to pracuje ?

Většina jiných slovníkových programů neuvádí, jak pracuje, případně přiznává použití grepu, dict nebo SQL databází. Obojí grep i SQL je pro slovníková data ne právě vhodné (grep je vhodný pouze pro fulltext vyhledávání, pomíjí hlavní výhodu slovníků = jsou seřazené, SQL (relační) databáze jsou zase nevhodné z důvodu neexistence jakýchkoli relací ve slovníkových datech a dále nutností spouštět ke klientskému programu ještě databázový server). Přestože dict má jistě své výhody, většinu potenciálních uživatelů odrazuje client-server přístup (tj. nutnost instalovat a spouštět před každým hledáním slovíčka server.

Addict funguje jinak. Po stáhnutí slovníkových dat z internetu či odjinud se provede oindexování slovníkových dat dle příslušného jazyka, soubor se seřadí a vytvoří se také speciální indexační soubor, který obsahuje "zkratky" na pozici v souboru, kde se nachází první výskyt klíče (kombinace prvních čtyř písmen). Všechny potřebné utility jsou v podadresáři utils.

Po spuštění Addict načte indexační soubor aktuálního slovníku do paměti. Při zadání vyhledávaného slova vždy prohledá indexační soubor jako binární strom a najde nejbližší zkratku do slovníkového souboru a sekvenčně dohledá patřičný výraz. Tento jednoduchý algoritmus má přitom složitost blížící se log(n)+C, a např. pro Webstrův výkladový slovník o velikosti cca 15MB vyhledávání zabere průměrně 15porovnání čísla long v registru s pamětí a 6xpráci s diskem (vždy přečtení jednoho řádku z disku, výpočet hash a porovnání), přičemž paměťová náročnost vyhledávacího algoritmu je necelých 200kB pro indexační soubor.

 

Jak se to nastavuje ?

Jediný způsob, jak TO nastavit, je editací konfiguračního souboru Addict.ini, který se nachází ve stejném adresáři jako binárka. Lze nastavovat barvy programu, jeho startovní pozici a velikost a také parametry jednotlivých slovníků.

Jak CS-EN GPL slovník, tak Webster i Hacker's dictionary jsou v konfiguračním souboru zapoznámkovány jako příklad.

V případě, že vaše PC neoplývá pamětí a jste ochotni obětovat malou část pohodlí, lze změnou posledního parametru slovníku (auto resize) na 0 snížit paměťovou náročnost a mírně zvýšit rychlost tím, že se neprovádí automatické nastavení výšky řádků slovníku.

 

Kolik to žere ?

Velikost programu v paměti po spuštění je kolem 4MB, při zapnutém AutoResize se postupně může vyšplhat až na cca. 7MB, což je srovnatelné s 1-2 instancemi xterm+bash. Místo na disku závisí především na velikosti slovníkových dat a dá se ušetřit na dual boot strojích například tím, že se používají stejná slovníková data ve Windows i Linuxu.
 

Verze v03 přidává následující fičury:

  • podpora kódování Utf-8 v Linuxu (pro uživatele RH 8 a 9 apod.) - nestahujte v takovém případě slovníková data odtud, použijte dávku getdict_utf
  • možnost vypnout v Addict.ini vyhledávání on-the-fly (pro uživatele slabších PC) - pokud vypnete, vyhledává se pouze po stisku klávesy Enter
  • připravené dávky pro stahování CZ <-> EN slovníku v zipované podobě (getdict_iso, resp. getdict_utf pro Linux ISO-8859-2, resp. Utf-8, getdict.bat pro Windows) - stačí spustit a jít...
  • opravený import Webster slovníku, včetně zde stáhnutelného addict-web.zip
 

Jiné využívané programy

Pro stahování aktuálních dat EN<->CZ GPL slovníku z webu je v adresáři utils vytvořena dávka upden2cs(resp. upden2cs.bat). Tato dávka využívá program cURL pro samotné stažení dat. Tento program (cURL) je běžný na *nixových strojích, proto není včleněn do linuxové binárky, naopak ve světě Windows je téměř neznámý, proto jeho obdobu naleznete v binárním balíčku pro Windows. cURL je taktéž licencován GPL, originál je na adrese curl.sourceforge.net.

Podobně pro samotné třídění je v určité fázi využíván program sort, který je opět součástí pouze Windows binárního balíčku. Licencován opět pomocí GPL, originál k nalezení jako součást balíčku fileutils for Windows.

Od verze v03 se pro šetření přenosovou kapacitou přenáší data pakovaná programem gzip. Gzip je opět běžnou součástí Linuxových OS, na Windows platformě je nutné ho distribuovat s balíčkem windows binárky. Gzip je opět licencován GPL, originál je na adrese www.gzip.org.

Žádný z těchto programů NENÍ pro běh programu Addict potřeba (pokud využíváte zde připravené balíčky slovní zásoby), všechny jsou potřeba POUZE pokud chcete sami updatovat CS<->EN slovník.

 

Download

Pro provoz potřebujete minimálně binárku pro vaši platformu a data alespoň jednoho slovníku.
Před prvním použitím odpoznámkujte v souboru Addict.ini vámi zvolené slovníky !
  • Zdrojové kódy. Pro kompilaci je nutno mít nainstalovány multiplatformní knihovny wxWindows v. 2.4.0+. Navíc je třeba patchovat/nahradit soubory /src/generic/grid.cpp a /include/generic/grid.h těmi, jež jsou v podadresáři /grid tohoto zipu (původní verze 02).
     
  • Linux binárky, kompilované na RH 7.3 (ldd hlásí závislosti pouze na knihovnách GTK 1.2, libpng, libjpeg, libpthread a standartních C/C++ knihovnách) (původní verze 02).
     
  • Windows binárky kompilované Borland FreeCommandLine C++ compiler 5.5 (původní verze 02).
     
  • Oindexovaná data CS-EN GPL/FDL slovníku k 6.8.2003 (cca. 1,7MB). Rozbalte do podadresáře /data, odpoznámkujte řádky začínající CS->EN a EN->CS v souboru Addict.ini a můžete vesele překládat.
     
  • Oindexovaná data Webster1913-v003 výkladového slovníku (cca. 5,3MB). Rozzipujte do podadresáře /data, odpoznámkujte řádek začínající Webster v souboru Addict.ini a můžete si nechat vesele vykládat.
     
  • Oindexovaná data slovníkové části knihy "The Hackers' Dictionary of Computer Jargon" v.4.22 (orginál je dostupný na stránkách Project Guttenberg. Rozzipujte do podadresáře /data, odpoznámkujte řádek začínající Hacker v souboru Addict.ini a můžete si nechat vesele vykládat (cca.0,5MB).
 

Jak upgradovat slovník ?

GNU/FDL Anglicko-Český slovník lze upgradovat libovolně často následujícím postupem:
  1. Stáhněte si ze stránek projektu aktuální data a uložte je do podadresáře /util nainstalovaného Addictu. Pro vaše pohodlí jsem v adresáři /util vytvořil dávku geten2cs(geten2cs.bat), která to s pomocí prográmku cURL udělá za vás.
  2. Spusťte v podadresáři /util skript runen2cs (v M$ Windows runen2cs.bat).
  3. Spusťte/restartujte Addict. Nastartuje již s novými daty.
Toto řešení je nicméně náročné pro dial-upisty, protože vždy je třeba stáhnout celý slovník.

Máte-li verzi v03 či vyšší, je výše popsaný postup připraven v dávce getdict_iso (resp. getdict_utf, getdict.bat). Přesněji řečeno je i vylepšen, protože stahuje slovníková data v Gzipované podobě (která v době vydání předchozích verzí nebyla k dispozici).

 

Kontakt

Připomínky, náměty, dotazy: .