Flexibee je český účetní systém bežící na Javě a v cloudu (i když vám nikdo nebrání si server udělat doma). Bohužel, ač výrobce nabízí .deb Ubuntu balíček, který dokonce přidá i firemní repo, nefunguje vše tak jak by mělo. Jelikož ve firmě používáme Ubuntu 11.10 (Unity má docela úspěch
), bylo potřeba najít řešení následujících problémů:
(Vše se vztahuje na nastavení klienta, o serveru nemám moc ponětí, stará se nám o něj samotné FlexiBee. Někde na ABCLinuxu je článek o jeho nastavení.)
- Dekorace oken překrývá písmo.
- Výchozí GTKL&F je neuvěřitelně pomalý.
- Při rychlém posunu ze strany na stranu se písmo rozsype a je k nepřečtení.
- Jak zapnout OpenGL akceleraci Javy.
- Jak zvolit správnou Javu.
Všechny úpravy provádíme ve scriptu Flexibee v oblíbeném editoru (v mém případě gedit):
gksudo gedit /usr/bin/flexibee
- Oprava dekorace oken a GTKL&F
pokud vím tak jediný použitelný vzhled je Metal. V otevřeném konfiguračním souboru si tedy zadáme:
FLEXIBEE_ARGS="--no-laf"
FLEXIBEE_JAVA_ARGS="-Xmx512m -client -XX:MaxPermSize=128m -XX:MinHeapFreeRatio=10 -XX:MaxHeapFreeRatio=20 -XX:-OmitStackTraceInFastThrow -Dswing.defaultlaf=javax.swing.plaf.metal.MetalLookAndFeel -Dswing.boldMetal=false"
Tím jsme vyřešili i problém s rychlostí GTKL&F, který se mi zdál mnohem pomalejší. Bohužel jako protiváhu jsme ztratili hezkou grafickou integraci do systému. Podle všeho se jedná o chybu programátorů FlexiBee, nahlášení tohoto bugu ale vesele ignorují se slovy "nám to na Debianu funguje"
.
- Rozsypání písma a OpenGL akcelerace
Nevím jestli to bylo jenom u mě, ale problém s rozsypáváním textu při rychlém horizontálním scroolování se mi povedlo vyřešit zapnutím OpenGL akcelerace která FlexiBee i znatelně zrychlila. U Javy se OpenGL akcelerace (funguje jak pod normální Javou tak pod OpenJDK) zapíná pomocí -Dsun.java2d.opengl=true (-Dsun.java2d.opengl=True pokud chcete vidět debug v terminálu). Přidáme tedy na úplný konec scriptu, těsně před $FLEXIBEE_JAVA_ARGS, -Dsun.java2d.opengl=True -Dsun.java2d.d3d=false . Výsledek tedy vypadá:
${JAVACMD} -cp $CLASSPATH -Dwinstromdir=${winstromdir}/lib -splash:${winstromdir}/winstrom-splash.png -Dclassworlds.conf=${winstromdir}/lib/launcher.txt -Dsun.java2d.opengl=True -Dsun.java2d.d3d=false $FLEXIBEE_JAVA_ARGS org.codehaus.classworlds.Launcher $FLEXIBEE_ARGS $@
- Samozřejmě by bylo vhodné vybrat i správnou Javu. Flexibee běží bez problémů na OpenJDK-6, OpenJDK-7 a OracleJDK-7. OpenJDK-6 a OpenJDK7 můžeme nainstalovat bez problémů z hlavního repa Ubuntu. Pokud mohu doporučit tak OpenJDK7 je znatelně rychlejší. Problém ale nastane ve chvíli kdy chcete použít originální OracleJDK-7, není totiž kvůli změně licence v repu Ubuntu. Nejjednodušší možnost je nainstalovat Javu pomocí PPA, které nainstaluje script a zbytek stáhne z webu Oracle. Nezapomeňte, že nainstalováním tohoto balíčku souhlasíte s jejich licencí! Do terminálu tedy zadejte:
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer
Pak by bylo dobré nastavit výchozí Javu, to buď můžete udělat zadáním příkazu do terminálu:
sudo update-alternatives --config java
a vybráním čísla korespondujícího s verzí Javy kterou chcete použít. A nebo můžete znovu upravit script FlexiBee, pod FLEXIBEE_CACHE_DIR=”$HOME/.winstrom/cache/” přidejte např.:
FLEXIBEE_JAVA="/usr/lib/jvm/jdk1.7.0_01/jre/bin/java"
a výsledek zkontrolujte v "Nápověda" > "O aplikaci FlexiBee"
Snad vám tenhle můj malý postřeh alespoň trochu pomůže. Linux (a zvláště Ubuntu) ve firmě řeší mnoho problémů a neuvěřitelně šetří náklady na HW. Například FlexiBee s výše zmíněným upraveným configem jede naprosto v pořádku na konfiguraci s AMD C-60 a 4GB RAM. Zvolená konfigurace si vezme max. cca. 30W a je naprosto dostačující pro základní použití (FireFox, ThunderBird, LibreOffice, FlexiBee, Evince). S FlexiBee máme dobré zkušenosti a můžeme ho bez problémů doporučit, jediné v co do budoucna doufám je opravení GTKL&F a celkové zrychlení aplikace.
Ještě uvedu zdroje ze kterých jsem čerpal.
- Úprava vzhledu na Metal: ZROJ
- Zapnutí OpenGL akcelerace: ZDROJ
- OracleJAVA repo: ZDROJ
Pokud by někdo měl ještě nějaký nápad na zrychlení FlexiBee, prosím podělte se o něj
.
UPDATE
Dnes jsem updatoval na verzi 10.16.2 a zkusil jsem použít OpenJDK-7. A jak se tak dívám tak problém s GTK L&F (uřezávání písma) v Ubuntu je skoro pryč. Vypadá to že věci se konečně dávají do pořádku
UPDATE
Podle mailu z Flexibee je prý vše již opraveno a víc už to prý ani opravit nejde. Pravda je ale trochu jiná...
Pokud se vám po zapnutí GPU akcelerace Flexibee občas na chvíli zasekne, tak jí zase vypněte.