468x60

mercoledì 30 dicembre 2009

DialogBox di Conferma con Javascript

Un box di conferma è utilizzato quando è necessario ottenere una risposta di tipo SI/NO dall'utente. Con Javascript è possibile ottenere questo tipo di risposta con la funzione confirm(), nel seguente modo:

<script type="text/javascript">

var answer = confirm ("Sei sicuro?")

if (answer)

alert ("Si sono sicuro")

else

alert ("Non sono sicuro")


</script>

martedì 29 dicembre 2009

JSP e AJAX

Esempio di codice per interazione Client-Server utilizzando JSP e AJAX:

//ajaxTest.html
<html><body><script type="text/javascript">function ajaxFunction()
{var xmlHttp;
try
{ // Firefox, Opera 8.0+, Safari xmlHttp=new XMLHttpRequest(); }
catch (e)
{ // Internet Explorer try
{ xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); }
catch (e)
{ try
{ xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); }
catch (e)
{ alert("Your browser does not support AJAX!"); return false; } } }
xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4)
{
document.myForm.time.value=xmlHttp.responseText;
}
}
xmlHttp.open("GET","time.jsp",true);
xmlHttp.send(null); }</script><form name="myForm">
Name: <input type="text"
onkeyup="ajaxFunction();" name="username" />
Time: <input type="text" name="time" />
</form></body>
</html>

//time.jsp
<%
// This scriptlet declares and initializes "date"
java.util.Date date = new java.util.Date();
%>
<%=date%>

sabato 26 dicembre 2009

Wikitude - la realtà aumentata di Wikipedia

Anche Wikipedia si lancia nel campo della realtà aumentata con la sua applicazione Wikitude, disponibile da ieri in iTunes, su App Store. L’applicazione, per adesso solo in inglese e tedesco, mostra, a secondo dei monumenti o luoghi inquadrati, le informazioni relative ed in più anche le info sulle vicinanze e sui POI (punti di interesse). Ogni punto di interesse contiene un piccolo sommario di informazioni e un radar in basso a destra mostra la direzione e gli altri punti di interesse vicini. Wikipedia stessa però dice che ancora non ha la copertura di tutto il mondo per cui bisogna provare, dato che l’applicazione è gratuita. Si capisce che Wikitude funziona solo con l’iPhone 3GS e il sistema operativo iPhone OS 3.1.

mercoledì 23 dicembre 2009

La realtà aumentata

Cos'è
La realtà aumentata (in inglese augmented reality, abbreviato AR) è la sovrapposizione di livelli informativi ( elementi virtuali e multimediali, dati geolocalizzati etc) ad un flusso video che riprende la realtà di tutti i giorni. Gli elementi che "aumentano" la realtà possono essere visualizzati attraverso un device mobile, come un telefonino di ultima generazione, (es. l'iPhone 3GS o un telefono Android) o con l'uso di un pc dotato di webcam. Il sovrapporsi di elementii reali e virtuali crea una "Mixed Reality".

Tipologie di Realtà Aumentata
- La Realtà Aumentata su piattaforma mobile: Il telefonino o smartphone di ultima generazione deve essere dotato necessariamente di Gps per il posizionamento, di magnetometro (bussola) e deve poter permettere la visualizzazione di un flusso video in tempo reale, oltre che di un collegamento internet per ricevere i dati online. Il telefonino inquadra in tempo reale la realtà , alla quale vengono sovrapposti i livelli di contenuto, da dati da PDI Punti di Interesse geolocalizzati ad elementi 3d.

- La Realtà Aumentata su desktop computer è basata su l'uso di markers, o ARtags, dei disegni stilizzati in bianco e nero che vengono mostrati alla webcam, vengono riconosciuti dal pc, ed ai quali vengono sovrapposti in tempo reale i contenuti multimediali: video, audio, oggetti 3d etc. Normalmente le applicazioni di Realtà aumentata sono basati su tecnologia Adobe Flash e quindi fruibili da un qualsiasi browser Internet standard. Anche definita Augmented Advertising è esplosa nel 2009 per numerose campagne di comunicazione da da corporate brands come Toyota Lego, Mini, Kellogs, General Electrics, cantanti come Eminem Johm Mayer o riviste come Colors o Esquire Magazine.

Applicazioni di Realtà Aumentata
Già usata in ambiti molto specifici come nell'ambito militare e medicale o nella ricerca accademica, nel 2009 grazie al miglioramento della tecnologia la realtà aumentata è arrivata al grande pubblico sia come campagne di comunicazione augmented advertising pubblicate sui giornali o sulla rete, sia attraverso un numero sempre crescente di applicazioni per telefonini, in particolare per iPhone. È oggi infatti possibile con la realtà aumentata trovare informazioni rispetto al luogo in cui siamo - alberghi bar ristoranti, stazioni della metro etc - ma anche visualizzare e foto dai social network come Flickr o voci Wikipedia sovrapposte alla Realtà; trovare i Twitters vicino a noi; ritrovare la macchina parcheggiata; trovare le stazioni della metro più vicine; giocare a catturare fantasmi e fate invisibili usando una intera città come campo di gioco; taggare luoghi… inserire dei messaggini in Realtà Aumentata in un luogo specifico come fanno già i teenager giapponesi per incontrarsi...dei graffiti invisibili se non attravero il telefonino.

Alcuni links a bellissimi demo:

martedì 22 dicembre 2009

Scaricare files dal web con Java

Per scaricare files dal web con Java è sufficiente utilizzare un codice del tipo:
int size = 1024;
OutputStream os = null;
URLConnection URLConn = null;
InputStream is = null;
try {
URL fileUrl;
byte[] buf;
int ByteRead;
fileUrl = new URL(url);
os = new BufferedOutputStream(new FileOutputStream(dirPath + "\\" + filename));
URLConn = fileUrl.openConnection();
is = URLConn.getInputStream();
buf = new byte[size];
while ((ByteRead = is.read(buf)) != -1) {
os.write(buf, 0, ByteRead);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
is.close();
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}

ProgressBar e Tasks con Netbeans

Quando si crea una Java Desktop Application con Netbeans, vengono automaticamente generati il codice ed i componenti per l'utilizzo di una JProgressBar, di uno StatusPanel e di una AnimationLabel:

// status bar initialization - message timeout, idle icon and busy animation, etc
ResourceMap resourceMap = getResourceMap();
int messageTimeout = resourceMap.getInteger("StatusBar.messageTimeout");
messageTimer = new Timer(messageTimeout, new ActionListener() {

public void actionPerformed(ActionEvent e) {
statusMessageLabel.setText("");
}
});
messageTimer.setRepeats(false);
int busyAnimationRate = resourceMap.getInteger("StatusBar.busyAnimationRate");
for (int i = 0; i <>
busyIcons[i] = resourceMap.getIcon("StatusBar.busyIcons[" + i + "]");
}
busyIconTimer = new Timer(busyAnimationRate, new ActionListener() {

public void actionPerformed(ActionEvent e) {
busyIconIndex = (busyIconIndex + 1) % busyIcons.length;
statusAnimationLabel.setIcon(busyIcons[busyIconIndex]);
}
});
idleIcon = resourceMap.getIcon("StatusBar.idleIcon");
statusAnimationLabel.setIcon(idleIcon);
progressBar.setVisible(false);

// connecting action tasks to status bar via TaskMonitor
taskMonitor = new TaskMonitor(getApplication().getContext());
taskMonitor.addPropertyChangeListener(new java.beans.PropertyChangeListener() {

public void propertyChange(java.beans.PropertyChangeEvent evt) {
String propertyName = evt.getPropertyName();
if ("started".equals(propertyName)) {
if (!busyIconTimer.isRunning()) {
statusAnimationLabel.setIcon(busyIcons[0]);
busyIconIndex = 0;
busyIconTimer.start();
}
progressBar.setVisible(true);
progressBar.setIndeterminate(true);
} else if ("done".equals(propertyName)) {
busyIconTimer.stop();
statusAnimationLabel.setIcon(idleIcon);
progressBar.setVisible(false);
progressBar.setValue(0);
} else if ("message".equals(propertyName)) {
String text = (String) (evt.getNewValue());
statusMessageLabel.setText((text == null) ? "" : text);
messageTimer.restart();
} else if ("progress".equals(propertyName)) {
int value = (Integer) (evt.getNewValue());
progressBar.setVisible(true);
progressBar.setIndeterminate(false);
progressBar.setValue(value);
}
}
});

Se si desidera agganciare l'esecuzione di un proprio codice ai suddetti componenti, basta creare una classe che estenda la classe Task ed esegua in background il codice desiderato, nel seguente modo:

@Action
public Task avviaTask() {
return new MyTask(getApplication());
}

private class MyTask extends Task {

estrazioneTask(org.jdesktop.application.Application app) {
super(app);
}

@SuppressWarnings("unchecked")
@Override
protected Void doInBackground() {
setMessage("Working...");
//il codice va inserito qui

return null;
}

@Override
protected void finished() {
setMessage("Done.");
}
}

JFileChooser per selezionare directory e files

La classe java JFileChooser può essere utilizzata per navigare nel filesystem e selezionare i files, ma anche per selezionare una directory. Per farlo possiamo impostare la proprietà FileSelectionMode con il metodo
filechooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

lunedì 21 dicembre 2009

Insert dal risultato di una Select in MySQL

Per inserire in una tabella i record risultanti da una Select, bisogna seguire questa sintassi con MySQL:
INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name [(col_name,...)]
SELECT ...
[ ON DUPLICATE KEY UPDATE col_name=expr, ... ]

giovedì 17 dicembre 2009

ODBC Drivers su Windows x64

Su Windows x64 per visualizzare i drivers ODBC a 32 bit bisogna utilizzare odbcad32.exe, che si trova su %WINDIR%\SYSWOW64. Con questo programma verranno elencati tutti i drivers a 32 bit, altrimenti non visibili...

mercoledì 16 dicembre 2009

Stop Tomcat da Netbeans

Sviluppando applicazioni web con Netbeans + Tomcat mi è capitato di ricevere un errore durante lo shutdown di Tomcat, con conseguente mancato shutdown. L'errore è il seguente:
StandardServer.await: Invalid command 'SHUTD' received
Ho risolto il problema modificando le impostazioni del Server Apache Tomcat nella sezione Services di Netbeans, in particolare impostando:

Server Port: 8080
Shutdown Port: 8005

Tali impostazioni riflettono la configurazione presente sul file server.xml di Tomcat.

Inoltre, verificare che la porta 8005 sia libera e che il firewall e/o l'antivirus non la blocchino.

lunedì 14 dicembre 2009

Resize di un disco virtuale con VMware Player

Lavorando con le macchine virtuali capita spesso di voler incrementare le dimensioni del disco virtuale. Dopo aver fatto un pò di googleling... ecco a voi una semplice soluzione, testata e funzionante in pochi minuti, utilizzando solo software gratuito:
  1. Utilizzare VMware Player 3.0 o superiore
  2. Editare la configurazione della MV da VMware Player, selezionando il disco da espandere e scegliendo Expand dal menu Utility. Digitare poi la dimensione desiderata
  3. Scaricare ed installare sulla MV EASEUS Partition Master, un software free per uso personale
  4. Avviare il ridimensionamento della partizione desiderata dall'interfaccia user friendly di EASEUS Partition Master
Buon lavoro!

mercoledì 9 dicembre 2009

Sunbird - MinimizeToTray

Mozilla Sunbird 09 Ita WinXP.png Mozilla Sunbird è un'applicazione open source per la gestione di calendari, agenda, memo, contatti, gestione riunioni (analogamente a Microsoft Outlook, anche se per la posta deve integrarsi con Thunderbird), sviluppata da Mozilla Foundation e da una vasta comunità di contributori esterni. È espandibile con componenti aggiuntivi (estensioni e temi).

Nell'utilizzo di Sunbird potreste trovare molto utile minimizzarlo sulla System Tray. Per farlo potete utilizzare l'addon gratuito MinimizeToTray For FF

sabato 5 dicembre 2009

Apache Tomcat Native library

All'avvio di Apache Tomcat, controllando i messaggi della console, vi sarà capitato di leggere il seguente avviso:
'INFO: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path:...'
Questo è dovuto ad una libreria nativa compilata mancante (es. un file DLL su windows) che Tomcat non può trovare. Per maggiori informazioni leggere qui.
Per Windows la soluzione è abbastanza semplice, basta scaricare l'ultima versione della libreria da qui (l'ultima versione nel momento in cui è scritto questo articolo è qui), il file che bisogna scaricare è chiamato tcnative-1.dll. Copiarlo dentro la cartella bin di Tomcat e riavviare Tomcat. Adesso il problema dovrebbe essere risolto...

giovedì 3 dicembre 2009

Ultima parola di una frase in Java/JSP

Esempio applicativo in cui illustriamo come restituire l'ultima parola di una stringa, se presente, in Java/JSP.
word="WHERE";
mystring.substring(mystring.length()-word.length());
Alcune volte capita di dover creare per pagine web dinamiche delle query SQL la cui struttura viene definita "a cascata", a seconda che un campo debba essere o meno considerato all'interno della query. In questi casi è importante costruire la query posizionando in modo opportuno gli operatori logici.

Ad esempio, se dobbiamo considerare due campi di ricerca la nostra query sarà del tipo:
SELECT * FROM mytable WHERE
field1='val1' AND field2='val2'
Ma se dobbiamo considerare SOLO il secondo campo, l'operatore "AND" non dovrà comparire all'interno della query.. In tal caso possiamo utilizzare il suddetto codice Java per verificare che la query termini o meno con la parola "WHERE".
query = "SELECT * FROM mytable WHERE";
//se la frase NON termina con la parola "WHERE"
if(!query.substring(query.length()-5).equals("WHERE"))
query+=" AND";
query+="field2='val2'";
468x60

Cerca su Google

Cerca nel Blog con Google