java

Pozor na nové X11

Bez občasného zádrhele by byl život s počítačem pořádná nuda, a tak se sem tam nějaký soft obětuje a postará se o trochu té zábavy. Tentokrát spojily své síly (příliš) nová verze X11 a knihovna SWT (azureus, eclipse, filezilla, ...). Pokud vám po posledním update systému přestaly nabíhat aplikace využívající tuto knihovnu a v logu nacházíte hlášky na způsob

The error was 'BadAlloc (insufficient resources for operation)'.
(Details: serial 261 error_code 11 request_code 149 minor_code 5)

tak už teď víte, kde hledat problém.

Řešení číslo jedna je poměrně přímočaré - downgrade X11ek. Pokud se vám toto řešení z nějakého důvodu nelíbí, nebo ho použít nemůžete, můžete zkusit další možnost - vyřadit rozšíření MIT-SHM. Ani to bohužel není dokonalé, může dojít ke snížení výkonu grafického systému a některé programy/window managery (např. enlightement) se bez něj neobejdou vůbec. Pokud chcete jít touto cestou, přidejte do xorg.conf pasáž (případně rozšiřte již existující)

Section "Extensions"
    Option "MIT-SHM" "no"
EndSection

a po restartu Xwindows by mělo být vše v pořádku.

OpenSUSE 10.3 a Java

Pokud jste si už nainstalovali výše zmíněnou verzi OpenSUSE (případně jinou distribuci postavenou na příliš nových knihovnách kolem X11), pravděpodobně dříve nebo později narazíte na malý problémeček - aplikace využívající AWT, jako třeba jconsole, okamžitě skončí s chybovou hláškou:

# ./jconsole
jconsole: xcb_xlib.c:52: xcb_xlib_unlock: Assertion `c->xlib.lock' failed.
Neúspěšně ukončen (SIGABRT)

Chybka se naštěstí dá poměrně snadno obejít nastavením magické proměnné prostředí

LIBXCB_ALLOW_SLOPPY_LOCK=1

JConsole nám běží a můžeme se těšit na další radovánky kolem upgrade...

Eclipse 3.3

Uživatele Eclipse určitě potěší uvolnění finální verze 3.3. Těšit se můžete například na vylepšený refaktoring (konečně bez nutnosti ukládání), doplňování kódu (i u zatím neimportovaných tříd), formátování kódu a jeho "očistění" při ukládání (pro lenochy neschopné používat aspoň automatický formátovač jak dělané...), využití novinek z JDK6 a další a další.

Odkazy

Download
Přehled novinek

JSR 3000: Annotation Closures

Closures dnes hýbou světem a tak se nemůžeme divit, že se objevil i návrh na jejich přidání do JML (Java Metadata Language). Lídři IT průmyslu jsou podle všech informací návrhem nadšeni, takže se nejspíš dočkáme jeho brzké implementace.

Bližší informace i s příklady použití najdete na M Easterově blogu.

JDK 6 Update 1

Na světě je první update verze JDK 6 a spolu s ní řada oprav a vylepšení. Pokud jste s nasazením čerstvě uvařené Javy 6 čekali, až trošku vychladne, stahujte a vychutnávejte:).

Odkazy

Změny oproti předchozí verzi
Ke stažení

Minikvíz - ListIterator

Třídu java.util.ListIterator asi není nutné nikomu představovat, každý ji určitě zná, pravidelně používa a nikomu nebude dělat probém říct, co na výstup vypíše následující kousek kódu. Samozřejmě bez pročítání javadocu:).

ListIterator<Integer> li = Arrays.asList(1, 2, 3).listIterator();

System.out.print(li.next());
System.out.print(li.next());
System.out.print(li.previous());
System.out.print(li.next());
System.out.print(li.previous());
System.out.print(li.next());
System.out.print(li.next());

NET2Java

Máte kus kódu v C# a musíte ho pracně překlepat do Javy? Nebo nějakou oblíbenou dotnetí aplikaci a rádi byste jí spouštěli na čistě javím prostředí? Pak pro vás mám skvělou zprávu - je tu NET2Java!

Kam se podělo BaseQuery?

Vypadá to, že pravidelné uvolňování vývojových verzí a jejich předčasné použití může přinést i nemilá překvapení. Na jedno narazil člověk prezentující se na fórech pod nickem bruehlicke. Jako spousta dalších se dočetl o nové feature přidané do JDK6 - možnosti specifikovat query pomocí anotací a jejich snadného provádění (bližší popis najdete třeba na Dablogu) a pravděpodobně ji i využil ve svém kódu. Pokud ano, dovedu si poměrně dobře představit jeho pocity po upgrade na build b104 a zjištění, že zmiňované interface kamsi zmizelo... I neváhal a svěřil se se svým problémem kolegům na fóru, kde se mu dostalo této odpovědi:

Balast

Každému jednou za čas prospěje, když se začte do cizích zdrojáků. Z dobrých se poučíme, jak to dělat, ze špatných naopak jak nedělat. Občas dojde k nějakému tomu 'a jooo, ono to jde i takhle' plácnutí do čela, případně člověk nevyjde nějaký čas z údivu. A přesně to se mi stalo, když jsem se naposledy zahrabal do zdrojových kódů k JDK7.

Lži, větší lži a mikrobenchmarky:)

Spousta z vás už jistě četla příspěvky Romana Pichlíka, které zapsal na Dablogu koncem minulého roku. Pěkně a dopodrobna tam rozebírá některé novinky přidané do JDK6 stojící za jeho vyšším výkonem, vřele doporučuji k přečtení každému, kdo tak ještě neučinil. V posledním příspěvku pak na malém mikrobenchmarku ukazuje, jaký vliv nové fíčury mají. A tomuto mikrobenchmarku se podíváme na zoubek, zajímavá otázka totiž je, co on nám vlastně měří a co to vypovídá o schopnostech JVM.

JDK 5.0 Update 10

SUN vydal další, už desátý, update své implementace JDK 5 obsahující řadu oprav. Vzhledem k jejich objemu se asi vyplatí zamyslet nad upgradem.

Svobodná Java

Tak to vypadá, že dlouho oznamované a očekávané se stane skutečností. Podle serveru javalobby by měl dnes SUN uvolnit klíčové části Javy pod GPLv2. Zatím se můžeme těšit na HotSpot, javac, JavaHelp a implementace Java ME. Na další části si budeme muset počkat do příštího roku. Osobně jsem zvědavý, jakých vylepšení se teď HotSpot dočká od vyčkávající komunity a jak rychle bude využit v jiných free implementacích.

No a aby toho nebylo na pondělí málo, o výkendu vyšla Release Candidat verze JDK 6. K dispozici jsou, stejně jako u předchozích buildů, i zdrojové kódy a JavaDoc.

Update: Malá třešnička na dortu - uvolnění se má dočkat také starý dobrý Duke, takže pokud to poslední, co vám chybí ke štěstí, je tričko nebo hrnek s ním, hurá do toho!;)

Classpath s hvězdičkou

Eyal Lupu na svém blogu rozebírá novou feature přidanou do JDK6 - možnost použití hvězdičky v definici classpath. Novou vlastnost ocení asi každý, kdo z nás někdy nelepil dlouhou příkazovou řádku plnou jarů, ať už ručně nebo skriptem, že? Takže nyní už pěkně jednoduše:

JDK7 je tu!

Hrajete si také rádi s novinkami a Mustang, teda, nově JDK6, už vám připadá nudně stabilní? Na stránkách java.net se rozjíždí projekt JDK7. Stejně jako u JDK6 jsou kromě binárek a dokumentace dispozici i kompletní zdrojové kódy. Pokud si chcete vyzkoušet zcela nový a čerstvě upečený Build 001 (pozor, má povolení zabíjet:), máte příležitost.

Po nainstalování a spuštění uvidíte něco takového:

java -version

java version "1.7.0-ea"
Java(TM) SE Runtime Environment (build 1.7.0-ea-b01)
Java HotSpot(TM) Client VM (build 1.7.0-ea-b01, mixed mode)

Ještě poznámka k pojmenování - vzhledem k plánovanému uvolnění Javy SUN opouští familiární pojmenování verzí, takže nadále už žádný Mustang a Delfín ale jen suché JDK6 a JDK7. Budiž jim datasféra lehká...

Odkazy

Stránky projektu JDK7
Nové stránky projektu JDK6

JDK 5.0 Update 8

A máme tu další update Tigra. Opět přináší řadu bugfixů, mimo jiné bylo vyřešeno nekolik problémů způsobujících snížení výkonu aplikací. Měl by se například zlepšit výkon Garbage Collectoru v případě, že aplikace používá velká pole, zastánce "čistého" programování určitě potěší zrychlení polymorfních volání a tím pádem rychlejší volání metod objektů typovaných na interface.

Syndikovat obsah