Flexibee na Ubuntu – nastavení

http://forum.ubuntu.cz/index.php?topic=62253.msg484846

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 :D), 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):

Kód: [Vybrat]
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:
Kód: [Vybrat]
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á:
Kód: [Vybrat]
${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:
Kód: [Vybrat]
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:

Kód: [Vybrat]
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ř.:

Kód: [Vybrat]
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.

 

Flexibee na Ubuntu – nastavení