martedì, agosto 26, 2008

Ubuntu 64 bit, JVM Sun 64 bit: Eclipse crash continui

Anche con sun jdk 1.6 update 07 64 bit, l'ide Eclipse, in versione Linux 64 bit, su Ubuntu x86 64 bit, continua a crashare (o meglio, e' la jvm ad esplodere).
Sembra proprio che sia un bug della jvm di sun a 64 bit (non presente sulle ultimissime versioni di OpenJDK) gia' individuato e corretto, ma non ancora rilasciato.
Momentaneamente, il bug e' aggirabile inserendo la seguente vmarg nel file di configurazione eclipse.ini:

-XX:CompileCommand=exclude,org/eclipse/core/internal/dtree/DataTreeNode,forwardDeltaWith

Maggiori dettagli sono disponibili a questi link:

https://bugs.launchpad.net/gentoo/+source/eclipse/+bug/174759
http://groups.google.com/group/javaposse/browse_thread/thread/0b3a32231b683d25/9681c7cdd0ae8794
https://bugs.eclipse.org/bugs/show_bug.cgi?id=214092
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6614100

lunedì, luglio 28, 2008

Java networking properties: UrlConnection timeout

La stabilita' di un sistema non deve dipendere dalle performance dei servizi invocati.
E' buona norma tutelarsi affinche' un servizio, invocato in modo sincrono, che risponde lentamente, non blocchi per un tempo indefinito le nostre applicazioni.
Per mezzo delle api del package java.net e' possibile impostare in modo programmatico il timeout sull'apertura e sulla lettura da una socket, per mezzo dei metodi setConnectTimeout(int timeout) e setReadTimeout(int timeout) della classe java.net.URLConnection, dove timeout e' il numero di millisecondi dopo il quale, se l'operazione non si e' conclusa, verra' lanciata un'eccezione.
Quando non e' possibile intervenire sul codice, o quando si vuole intervenire a livello di jvm per alterarne il comportamento di default (non escludendo poi l'intervento programmatico), e' possibile specificare, nel caso la jvm utilizzata sia quella di Sun, le seguenti system properties:

sun.net.client.defaultConnectTimeout
sun.net.client.defaultReadTimeout

La documentazione e' ovviamente disponibile sul sito di Sun.

mercoledì, luglio 02, 2008

Ajax img slideshow

Questo plugin per mootools mi ha davvero colpito!
Da vedere assolutamente:

http://www.electricprism.com/aeron/slideshow/

mercoledì, giugno 25, 2008

javascript download

L'inclusione di file javascript per mezzo del tag 'script' all'interno del tag 'head' di una pagina html scatena da parte dei browser Firefox ed Internet Explorer una serie di download (tanti quanti sono i file da includere) di tipo sequenziale.
Infatti ogni download di un singolo file blocca il download successivo.
Questo, per pagine html che fanno uso di framework come JQuery e dei relativi plugin puo' essere un problema per le performance di un'applicazione 'Web 2.0'.
Qualche ottimo consiglio viene dato da Kristoffer Henriksson sul suo blog.

venerdì, marzo 21, 2008

UML sequence diagrams

Microsoft Visio?
No grazie.
Non sempre, come unix insegna, la strada piu' veloce e comoda passa per le GUI ed il mouse; spesso un lavoro ripetitivo lo si sbriga meglio pigiando un po' di lettere sulla tastiera.
Questo e' un generatore web di sequence diagrams, davvero spettacolare, che esprime molto bene il concetto sopra riportato: www.websequencediagrams.com.

mercoledì, marzo 12, 2008

Client side charts - part IV

Finalmente ho trovato la libreria (Flash) 'definitiva' per renderizzare grafici:

Open Flash Chart.

Ed e' anche opensource ;)

sabato, febbraio 23, 2008

Glassfish PreparedStatement Caching

Glassfish 2 delega al driver JDBC la cache del PreparedStatement.
Se quindi il database e' Oracle, e' possibile settare due property nella configurazione del relativo driver JDBC:

ImplicitCachingEnabled=true
MaxStatements=xxx

Maggiori informazioni a questo link.

sabato, febbraio 16, 2008

XML Web Utilities

Ho trovato un comodissimo tool online per creare un xml schema partendo da un file xml.

martedì, febbraio 05, 2008

Java Garbage Collector tuning

Scegliere l'algoritmo di garbage collection piu' adatto per la propria applicazione non e' sempre facile.
Devo dire che questi due link aiutano molto:

Memory Management
JVM Options