If you need to ADD OR CHANGE the metatag for charset, on the fly in your web page, you can use the function below, by passing the charset you want as parameter:
For example: setCharset('UTF-8'); or setCharset('ISO-8859-1');
How to change Charset on the fly, via javascript
Pubblicato da
Etha
on giovedì 7 ottobre 2010
/
Etichette:
change,
charset,
html,
javascript
/
Comments: (0)
java.sql.Date.valueOf() : comparing Sun vs BEA jRockit JVM
I've noticed two different behaviour of the static method java.sql.Date.valueOf() using Sun JVM instead of BEA jRockit JVM. I share with you this experience.
If you have the following string:
and apply the above method to get a java.sql.Date from it, as follows:
java.sql.Date date = java.sql.Date.valueOf(myStringDate);
on both Sun and BEA jRockit JVM, the method works fine and return a date.
BUT, if the string date is formatted like this
and apply the above method to get a java.sql.Date from it, as follows:
on Sun JVM (i've tried with 1.6 version) , you get the following exception
while, using jRockit still works fine. So, pay attention in get date from string using this method, if you don't know on which JVM your code will be run.
Hope this can be helpful.
If you have the following string:
String myStringDate = "2010-01-010";
and apply the above method to get a java.sql.Date from it, as follows:
java.sql.Date date = java.sql.Date.valueOf(myStringDate);
on both Sun and BEA jRockit JVM, the method works fine and return a date.
BUT, if the string date is formatted like this
String myStringDate = "2010-1-10"; //note the month without zero.
and apply the above method to get a java.sql.Date from it, as follows:
java.sql.Date date = java.sql.Date.valueOf(myStringDate);
on Sun JVM (i've tried with 1.6 version) , you get the following exception
Exception in thread "main" java.lang.IllegalArgumentException
at java.sql.Date.valueOf(Unknown Source)
at java.sql.Date.valueOf(Unknown Source)
while, using jRockit still works fine. So, pay attention in get date from string using this method, if you don't know on which JVM your code will be run.
Hope this can be helpful.
Delete monxga32.exe from your PC (removal process)
Pubblicato da
Etha
on giovedì 22 aprile 2010
/
Etichette:
malware,
monxga32.exe,
windows
/
Comments: (1)
Today, Avira Antivir notified me a potential malware. Then i made some research and found something strange on my PC.
1. The CPU running permanently over 50%-80%.
2. A "notepad.exe" process active but there weren't related and visible windows.
3. msconfig shows a unusual process at Startup: monxga32.exe. The path of this program was C:\Documents and Settings\user-account-name\Start Menu\Programs\Startup\ but searching this file with Explorer does not produce any results! Seems like this file does not exists, since it's not even hidden.
1. Start Windows in Safe Mode.
2. Search the file monxga32.exe. The given results are two:
- C:\Documents and Settings\user-account-name\Start Menu\Programs\Startup\monxga32.exe
- C:\WINDOWS\Prefetch\monxga32-"SOME CHARS".pf
Delete both of them.
3. Open regedit and click on Edit > Find. Digit monxga32.exe and delete all occurrences. Then search again to be sure each entry has been deleted. Close regedit.
4. Open msconfig, click on tab Start and uncheck the entry monxga32.exe and close msconfig.
5. It will ask you to restart your PC, then restart Windows normally.
6. To be sure everything has done well, re-open msconfig, on tab Start. No process monxga32.exe should appear in the list.
Hope this can be helpful.
For italian people - per gli italiani (e per chi si scoccia a leggere in inglese) una versione più divertente (e verbosa ) di questo mini-help per distruggere monxga32.exe :
http://toshidex.netsons.org/2010/04/22/win-io-ti-odio-part-iv-delete-monxga32-exe/
Thanks to lightuono ;)
1. The CPU running permanently over 50%-80%.
2. A "notepad.exe" process active but there weren't related and visible windows.
3. msconfig shows a unusual process at Startup: monxga32.exe. The path of this program was C:\Documents and Settings\user-account-name\Start Menu\Programs\Startup\ but searching this file with Explorer does not produce any results! Seems like this file does not exists, since it's not even hidden.
SOLUTION:
1. Start Windows in Safe Mode.
2. Search the file monxga32.exe. The given results are two:
- C:\Documents and Settings\user-account-name\Start Menu\Programs\Startup\monxga32.exe
- C:\WINDOWS\Prefetch\monxga32-"SOME CHARS".pf
Delete both of them.
3. Open regedit and click on Edit > Find. Digit monxga32.exe and delete all occurrences. Then search again to be sure each entry has been deleted. Close regedit.
4. Open msconfig, click on tab Start and uncheck the entry monxga32.exe and close msconfig.
5. It will ask you to restart your PC, then restart Windows normally.
6. To be sure everything has done well, re-open msconfig, on tab Start. No process monxga32.exe should appear in the list.
Hope this can be helpful.
For italian people - per gli italiani (e per chi si scoccia a leggere in inglese) una versione più divertente (e verbosa ) di questo mini-help per distruggere monxga32.exe :
http://toshidex.netsons.org/2010/04/22/win-io-ti-odio-part-iv-delete-monxga32-exe/
Thanks to lightuono ;)
Prepariamoci a sviluppare con Android
Android è uno stack software per dispositivi mobili che include un sistema operativo, middleware e applicazioni chiave. L'SDK di Android fornisce gli strumenti e le API necessarie per iniziare a sviluppare applicazioni per la piattaforma Android utilizzando il linguaggio di programmazione Java.
Per avere un'idea dell'architettura di Android possiamo dare uno sguardo al seguente diagramma:
Il sito di riferimento per gli sviluppatori è http://developer.android.com/index.html
In questo mini-tutorial, prepareremo l'ambiente per la crezione del nostro "Hello World" con Android.
1. Scarichiamo la SDK seguendo le istruzioni riportate qui: http://developer.android.com/sdk/index.htm
2. Scarichiamo ed installiamo Eclipse (consiglio la versione Galileo): http://www.eclipse.org/downloads/
3. Installiamo il plugin dall'url: https://dl-ssl.google.com/android/eclipse/
4. Riavviamo Eclipse
5. Per configurare la piattaforma in Eclipse, nella toolbar di Eclipse dovrebbe apparire un'iconcina come questa
oppure cliccate su Window > Android SDK and AVD Manager (dove AVD sta per Android Virtual Device, ovvero l'emulatore per il test delle nostre applicazioni)
6. Nel pannello di sinistra della finestra aperta al passo 5, selezionate la voce "Available packages" e cliccate sul checkbox dell'url mostrato sulla destra, per visualizzare i componenti disponibili per l'installazione.
7. Selezionate almeno una piattaforma da installare, e fare clic su Installa selezionati. Se non siete sicuri che la piattaforma da installare, utilizzare l'ultima versione. Ad esempio:
Il download potrebbe durare diversi minuti
8. Per creare un AVD, in Eclipse, scegliete Finestra> Android SDK e AVD Manager e selezionate la voce "dispositivi virtuali" nel pannello di sinistra, quindi cliccare su "Nuovo".
9. Digitate il nome dell' AVD, ad esempio "AVDTest"
10. Selezionate la versione la versione del SDK di Android che desiderate eseguire su l'emulatore e confermate la creazione con "Crea AVD".
Ora siamo pronti per creare la nostra prima applicazione su piattaforma Android.
Per avere un'idea dell'architettura di Android possiamo dare uno sguardo al seguente diagramma:
Il sito di riferimento per gli sviluppatori è http://developer.android.com/index.html
In questo mini-tutorial, prepareremo l'ambiente per la crezione del nostro "Hello World" con Android.
1. Scarichiamo la SDK seguendo le istruzioni riportate qui: http://developer.android.com/sdk/index.htm
2. Scarichiamo ed installiamo Eclipse (consiglio la versione Galileo): http://www.eclipse.org/downloads/
3. Installiamo il plugin dall'url: https://dl-ssl.google.com/android/eclipse/
4. Riavviamo Eclipse
5. Per configurare la piattaforma in Eclipse, nella toolbar di Eclipse dovrebbe apparire un'iconcina come questa

6. Nel pannello di sinistra della finestra aperta al passo 5, selezionate la voce "Available packages" e cliccate sul checkbox dell'url mostrato sulla destra, per visualizzare i componenti disponibili per l'installazione.
7. Selezionate almeno una piattaforma da installare, e fare clic su Installa selezionati. Se non siete sicuri che la piattaforma da installare, utilizzare l'ultima versione. Ad esempio:
Il download potrebbe durare diversi minuti
8. Per creare un AVD, in Eclipse, scegliete Finestra> Android SDK e AVD Manager e selezionate la voce "dispositivi virtuali" nel pannello di sinistra, quindi cliccare su "Nuovo".
9. Digitate il nome dell' AVD, ad esempio "AVDTest"
10. Selezionate la versione la versione del SDK di Android che desiderate eseguire su l'emulatore e confermate la creazione con "Crea AVD".
Ora siamo pronti per creare la nostra prima applicazione su piattaforma Android.
Session Timeout in JBOSS
Pubblicato da
Etha
on venerdì 26 marzo 2010
/
Etichette:
jboss,
session,
session-timeout,
timeout
/
Comments: (0)
Ci sono due modi per definire la durata massima di una sessione (il suo timeout) per un'applicazione deployata su JBoss.
PER TUTTE LE APPLICAZIONI:
Il session timeout può essere definito per tutte le applicazioni dell'AS nel file web.xml che si trova nella directory {serverdir}\default\deploy\jbossweb-tomcat55.sar\conf, modificando il tag (il valore è espresso in minuti).
Ad esempio:
<session-config>
<session-timeout<30</session-timeout>
</session-config>
PER UNA SINGOLA APPLICAZIONE:
Potrebbe essere necessario definire un session timeout diverso da quello settato a livello di AS, per una singola applicazione. Nel file web.xml all'interno dell'archivio da deployare, faremo l'"override" del session-timeout definito su JBoss.
Ad esempio:
<session-config>
<session-timeout>10</session-timeout>
</session-config>
Le web application per cui non è definito il tag session-timeout nel proprio file web.xml, assumeranno il comportamento standard, pertanto il loro session timeout, sarà di 30 minuti.
PER TUTTE LE APPLICAZIONI:
Il session timeout può essere definito per tutte le applicazioni dell'AS nel file web.xml che si trova nella directory {serverdir}\default\deploy\jbossweb-tomcat55.sar\conf, modificando il tag
Ad esempio:
<session-config>
<session-timeout<30</session-timeout>
</session-config>
PER UNA SINGOLA APPLICAZIONE:
Potrebbe essere necessario definire un session timeout diverso da quello settato a livello di AS, per una singola applicazione. Nel file web.xml all'interno dell'archivio da deployare, faremo l'"override" del session-timeout definito su JBoss.
Ad esempio:
<session-config>
<session-timeout>10</session-timeout>
</session-config>
Le web application per cui non è definito il tag session-timeout nel proprio file web.xml, assumeranno il comportamento standard, pertanto il loro session timeout, sarà di 30 minuti.
Hardware o design?
Driiin driin, scendo giù, il mio spacciatore di hardware Apple (k) mi consegna a domicilio il gioiellino (in tutti i sensi): il topo magico! Mouse wireless/touch pad/che altro? Delux!
Scarico il "Wireless Mouse Software", installo, riavvio, apro System Preferences ed eccolo:
Poi, dò un'occhiata alla mia scrivania e ditemi voi se questa non è classe! Grazie Aerandir!
Scarico il "Wireless Mouse Software", installo, riavvio, apro System Preferences ed eccolo:
Poi, dò un'occhiata alla mia scrivania e ditemi voi se questa non è classe! Grazie Aerandir!

Java Performance: occhio alla concatenazione delle stringhe.
Pubblicato da
Etha
/
Etichette:
concat,
improving,
java performace,
string,
stringbuffer,
stringbuilder
/
Comments: (0)
E' utile prestare l'attenzione alle performance del nostro codice, dato che la concatenazione delle stringhe è una delle operazioni più comuni e frequenti.
Oggi ho letto quest'articolo molto interessante
StringBuilder vs StringBuffer vs String.concat - done right e ne riassumo il contenuto qui di seguito.
Il dilemma è :
Innanzitutto è importante sottolineare che gli oggetti String in Java sono immutabili, ovvero una volta creati non possono essere più modificati. Pertanto "modificare" una stringa significa creare un nuovo oggetto e rendere il nuovo oggetto la referenza alla variabile che stiamo modificando. Quindi, quando si concatenano stringhe, non si fa altro che creare un nuovo oggetto con il contenuto delle stringhe concatenate.
Una volta detto questo le deduzioni sono semplici. Se si utilizza:
Se dobbiamo costruire delle stringhe molto lunghe, o all'interno di loop o ancora modificarne frequentemente il contenuto, è senz'altro indispensabile utilizzare StringBuilder. Per semplici concatenazioni di piccole stringhe, utilizziamo il "+" che riduce notevolmente la quantità di codice da scrivere.
Oggi ho letto quest'articolo molto interessante
StringBuilder vs StringBuffer vs String.concat - done right e ne riassumo il contenuto qui di seguito.
Il dilemma è :
operatore "+", StringBuffer o StringBuilder?
Innanzitutto è importante sottolineare che gli oggetti String in Java sono immutabili, ovvero una volta creati non possono essere più modificati. Pertanto "modificare" una stringa significa creare un nuovo oggetto e rendere il nuovo oggetto la referenza alla variabile che stiamo modificando. Quindi, quando si concatenano stringhe, non si fa altro che creare un nuovo oggetto con il contenuto delle stringhe concatenate.
Una volta detto questo le deduzioni sono semplici. Se si utilizza:
- l'operatore "+" ( o String.concat() ): viene creata una nuova stringa, il valore della vecchia viene copiato nel nuovo oggetto e viene accodata l'altra stringa. Più lunga è la stringa, più lento è il processo (che coinvolge anche il Garbage Collector per la rimozione degli non più utilizzati). Evitate di utilizzare "+" in un loop! Va benissimo per System.out.println("x:"+x+" y:"+y);
- la classe StringBuffer: è una sequenza di caratteri "thread-safe" (synchronized) e modificabile. In qualsiasi punto ed in ogni momento, il contenuto può essere può essere modificato utilizzando gli appositi metodi ( append, insert ... ).
- la classe StringBuilder (a partire da Java 1.5): il funzionamento è pressocchè uguale ma è più veloce di StringBuffer, poichè non è synchronized.
Se dobbiamo costruire delle stringhe molto lunghe, o all'interno di loop o ancora modificarne frequentemente il contenuto, è senz'altro indispensabile utilizzare StringBuilder. Per semplici concatenazioni di piccole stringhe, utilizziamo il "+" che riduce notevolmente la quantità di codice da scrivere.