Android

fonte: dal web

Un widget TextView è un oggetto Android che permette di visualizzare (e non solo!) un testo all’interno dei layout che implementiamo. Come tutti i widget nativi a disposizione dello sviluppatore, è un oggetto molto potente, completo di tutte le funzionalità necessarie per essere utilizzato efficacemente all’interno delle nostre interfacce Android.

In questo tutorial vediamo un piccolo accorgimento che ci permette di inserire codice HTML all’interno di un widget TextView, in modo da rendere più efficace e gradevole la visualizzazione del testo nei layout.

(continua…)



Android

fonte: dal web

Le promesse sono state mantenute, e nel modo migliore: la versione 2.2 di Android ha dedicato particolare attenzione al Tethering, ovvero la tecnica per cui è possibile collegare un computer a internet attraverso il nostro smartphone.

Qualche mese fa scrissi in questo articolo la procedura da seguire per condividere la connessione internet tra un computer  e il proprio smartphone Android con versione 2.1 : ne naque una discussione interessante, soprattutto perchè molti di noi speravano si esaudisse quella che allora era solo una voce e che invece oggi è realtà, ovvero avere nativamente il tethering sul proprio smartphone.

(continua…)



Android

Android

In questo articolo vedremo i passi necessari per impostare correttamente l’ambiente di sviluppo per applicativi Android, il nuovo sistema operativo mobile open source rilasciato da Google.

Prima di vedere nello specifico i passi necessari per impostare l’SDK di Android dobbiamo assicurarci che il nostro sistema abbia i requisiti per farlo “girare” .

(continua…)



Qualche tempo fa scrissi un articolo su come integrare l’application server Tomcat in Eclipse. Visto che risale a circa due anni fa ho deciso di aggiornare la procedura, anche perchè nel frattempo si è radicalmente semplificata e velocizzata.

Eclipse IDE
Eclipse IDE

La procedura per integrare Tomcat in Eclipse può essere fatta in diversi modi, a seconda delle necessità. Quella che vediamo in questo articolo è una delle procedure base per portare a compimento l’integrazione e iniziare così, dopo 10 minuti, lo sviluppo di applicazioni web con le tecnologie Java.

La prima cosa da fare è chiaramente aver installato e configurato correttamente il Java Developmente Kit, passo che diamo per eseguito e completato correttamente.

(continua…)



La selezione della VM (Virtual Machine) in uso durante lo sviluppo in Java dipende dal settaggio della variabile d’ambiente JAVA_HOME : ecco perchè è di vitale importanza capire come e dove settare tale variabile. Vediamo la configurazione della variabile d’ambiente JAVA_HOME all’interno di un sistema Linux, e in particolare per le distro Ubuntu e Fedora.

Per prima cosa, verifichiamo se nel nostro sistema è già installata una versione di Java eseguendo il comando

user@host:~$ java -version

In molte recenti distro Linux, è già presente l’enviroment java ma nel caso non ci fosse, lo possiamo installare senza troppi problemi.
Procediamo dunque all’installazione del JDK nei nostri sistemi Ubuntu e Fedora:

UBUNTU

user@host:~$ sudo apt-get install sun-java6-jdk
Password:
Reading package lists... Done
Building dependency tree
Reading state information... Done
[......................................]

FEDORA 

[user@host ~]$ sudo yum install java-1.6.0-openjdk.i586
Loaded plugins: refresh-packagekit
Setting up Install Process
[......................................]

In entrambi i casi, dopo l’installazione, procediamo nuovamente al controllo della versione installata con il comando

UBUNTU

user@host:~$ java -version
java version "1.6.0"
Java(TM) SE Runtime Environment (build 1.6.0-b105)
Java HotSpot(TM) Server VM (build 1.6.0-b105, mixed mode)
FEDORA 
[user@host ~]$ java -version
java version "1.6.0_0"
OpenJDK Runtime Environment (IcedTea6 1.6) (fedora-33.b16.fc12-i386)
OpenJDK Server VM (build 14.0-b16, mixed mode)

Se il JDK installato non è settato come default, allora possiamo procedere nel modo seguente:

UBUNTU
user@host:~$ sudo update-alternatives --config java

There are 2 alternatives which provide `java'.

Selection    Alternative
-----------------------------------------------
*         1    /usr/bin/gij-wrapper-4.1
+        2    /usr/lib/jvm/java-6-sun/jre/bin/java

Press enter to keep the default[*], or type selection number: 2
Using `/usr/lib/jvm/java-6-sun/jre/bin/java' to provide `java'.
FEDORA 
[user@host ~]$ sudo update-alternatives --config java

There are 2 programs which provide 'java'.

Selection    Command
-----------------------------------------------
*+ 1           /usr/lib/jvm/jre-1.6.0-openjdk/bin/java
2           /usr/lib/jvm/jre-1.5.0-gcj/bin/java

Enter to keep the current selection[+], or type selection number:

A questo punto è arrivato il momento di settare la variabile JAVA_HOME : editiamo dunque il file ~/.bash_profile che si trova tra i file nascosti della cartella principale di ogni utenza Linux (nel caso in cui volessimo configurare tale variabile di sistema per tutti gli utenti è sufficiente eseguire i passi che vedremo tra poco nel file /etc/profile).

~/.bash_profile è uno script di startuo che generalmente viene eseguito una volta sola: questo file viene utilizzato per tutti quei comandi che vengono eseguiti quando l’utente esegue il login nel sistema Linux. E’ pratica comune dunque utilizzare questo file per settare le variabilil d’ambiente, per creare alias a comandi via shell, ecc.
Editiamo quindi il file con il comando

$ vi ~/.bash_profile

e, usando la sintassi export JAVA_HOME=<percorso-installazione-java> procediamo alla modifica del file

export JAVA_HOME=/usr/java/jdk1.6.0_0

e modifichiamo la variabile PATH come segue

export PATH=$PATH:/usr/java/jdk1.6.0_0/bin

Salviamo il file, chiudiamo tutto ed eseguiamo il logout e successivamente il login nel nostro sistema. Per controllare che tutto sia andato a buon fine, è sufficiente eseguire la stampa di tali variabili come segue:

$ echo $JAVA_HOME
$ echo $PATH

Se tutto ha funzionato correttamente, vedremo nel nostro terminale la stampa del percorso che abbiamo precedentemente impostato, altrimenti una riga vuota. Questa procedura si può ripetere per tutti quei framework o applicativi che richiedono il settaggio di variabili d’ambiente (come la variabile UIMA_HOME per l’utilizzo del framework UIMA).

Tip: Possiamo usare il comando seguente per trovare il path dell’eseguibile java in UNIX / Linux:
$ which java



Linux, in ogni sua distribuzione, ha fatto davvero passi da gigante per quanto riguarda il layout grafico e la gradevolezza visiva. Ma tra i nuovi utenti non molti sanno che la grafica iniziale di praticamente ogni distribuzione può essere praticamente sconvolta e modifica a piacimento, con l’utilizzo di template, icone e temi personalizzati disponibili ovviamente in modalità open source….il solito regalo dalla comunità Linux! ;)

Per chi utilizza GNOME, può visitare questo sito , ricchissimo di temi, icone, e qualsiasi sorta di componente grafica per il vostro sistema Linux GNOME….davvero un universo di materiale!!

Ovviamente esiste il sito fratello per sistemi che utilizzano KDE, raggiungibile a questo indirizzo. Ragazzi fateci un salto, ne vale davvero la pena, ma mettete in conto di perderci almeno almeno due orette!! ;)

Un’altra risorsa che non deve mancare di essere visitata è raggiungibile al seguente indirizzo. E’ sicuramente meno ricco del precedente, ma merita ugualmente almeno uno sguardo. Un’altra ricca risorsa per sistemi GNOME è qui : ragazzi, questo è un altro sito pericolo….troppo bello per non farvi perdere almeno mezza giornata! :)



Ogni qualvolta ci troviamo di fronte a dover implementare un inserimento di dati, è sicuramente buona regola effettuare tutti i dovuti controlli. Nel caso di inserimento di una mail, è necessario, oltre a controllare l’eventuale inserimento, anche è soprattutto il come è stata inserita. Abbiamo scritto un articolo qualche tempo fa su come controllare la mail con le espressioni regolari in Javascript: oggi lo vediamo con Java.

Il codice da utilizzare è il seguente:

import java.util.regex.*;

class regexSample
{
public static void main(String args[])
{
//Questa è la stringa – mail che vogliamo validare
String email = “mail@mail.com”;

//Settiamo il pattern per il confronto
Pattern p = Pattern.compile(“.+@.+\\.[a-z]+”);

//Eseguiamo il match della stringa data con il pattern
Matcher m = p.matcher(email);

//Salviamo il risultato del match
boolean matchFound = m.matches();

if (matchFound)
System.out.println(“EMAIL VALIDA”);
else
System.out.println(“EMAIL NON VALIDA”);
}
}

La classe Pattern rappresenta una versione compilata dell’espressione regolare passata come parametro. Attraverso il “matcher“andiamo ad effettuare il match tra la stringa data e l’espressione regolare. E’ sufficiente controllare tale risultato per sapere se la mail è stata inserita correttamente oppure no.



Per chi volesse scrivere semplici applicativi Java che si appoggiano su un database MySql può utilizzare quanto scritto in queste poche righe.

Ovviamente un ambiente professionale andrebbe configurato in altro modo, ma per alcune semplici applicazioni ci possiamo accontentare di quanto segue:

- chiaramente la prima cosa da fare è installare MySql sulla propria macchina ( potete seguire questo link ) e avere installato correttamente Eclipse (sull’utilizzo di Eclipse scrivere una guida a breve).

- è necessario scaricare il mysql connector  da qui

- nel caso in cui si utilizzasse un JDK, prelevare il file mysql-connector-java-5.0.8-bin.jar e metterlo nella directory C:\Programmi\Java\jdk1.6.0_06\jre\lib\ext oppure nel classpatch

Ovviamente questi semplici passi funzionano per sistemi Windows-based. Per sistemi Linux i passi sono molto simili, semplicemente cambiano i percorsi e l’utilizzo delle variabili d’ambiente.



Nonostante la crescita esponenziali di linguaggi di programmazioni come PHP o Ruby, Java continua a mantenere un posto di primo ordine nel cuore degli sviluppatori. Oltre all’essere un linguaggio sicuro e divertente, permette di integrarsi in ogni piattaforma, grazie alla Java Virtual Machine, e come se non bastasse, permette l’integrazione di piattaforme stand-alone con piattaforme web-side, lasciando praticamente assoluta libertà di creazione e fantasia allo sviluppatore.

Ci sono molti pacchetti, soprattutto per chi utilizza Windows, che auto-installano Java e che forniscono strumenti per iniziare a sviluppare piccoli applicativi con questa meravigliosa tecnologia. Ovviamente i professionisti si avvalgono di strumenti ben diversi, già a partire dall’installazione, che ovviamente fanno a mano.

In questa mini guida, tuttavia, non ci dedichiamo alla installazione di Java su sistemi Windows o Linux, ma concentriamo la nostra attenzione a come gestire gli eseguibili Java, ovvero i file che permettono alla nostra applicazione di “girare” .

Quando ci troviamo di fronte ad una applicazione stad-alone scritta in java, quasi sicuramente incontriamo file con un’estenzione particolare: .jar . Questa è proprio l’estenzione che caratterizza gli eseguibili in Java, almeno quelli “regolari” (vedramo più avanti che ci sono metodi che permettono la manipolazione di tali file, per estendere il loro utilizzo).

Di fronte ad un file .jar, possiamo utilizzare il seguente comando per lanciare l’applicazione Java:

java -jar nome_file.jar

Qeusto comando è utile per lanciare l’applicazione quando abbiamo a disposizione solo la linea di comando o quando non riusciamo a lanciare l’applicazione direttamente cliccando sul file .jar (probabilmente perchè sul proprio sistema operativo non si è configurato bene l’ambiente, o la variabile CLASSPATH non è stata settata correttamente).

Abbiamo quindi visto il comando per lanciare eseguibili Java: ma se, una volta conclusa la fase di sviluppo della nostra piccola applicazione, volessimo creare un eseguibile? Ecco come fare.

Esistono diversi tool freeware che permettono non solo la compilazione e la creazione di file .jar, ma addirittura di creare eseguibili .exe per l’ambiente Windows. Uno esempio di tale applicativo è scaricabile qui. Java Launcher è veramente un ottimo prodotto: semplice e veloce, leggero e utile per chi, lavorando in ambiente Windows, ha incontrato difficoltà con gli eseguibili Java.

Un altro tool davvero interessante è Jelude: anche questo tool permette di passare da eseguibili .jar a eseguibili .exe . E’ sufficiente seguire questo link per leggere tutta le documentazione e scaricare il necessario.

Ovviamente questi tool sono utili per l’ambiente Windows, in particolare lì dove non è stato installato il Java Runtime Environment (JRE) o il JRE non viene riconosciuto sul proprio sistema Windows (probabilmente in questo caso ci sono problemi di configurazione). Per gli utenti Linux, ovviamente, i file .exe non servono a nulla o quasi, ma non si dovrebbero incontrare grossi problemi, visto che in praticamente tutte le distruzioni JRE è praticamente fornito con il sistema operativo stesso.



Ci è capitato più volte di sviluppare applicazioni web-based, collegate ad altre applicazioni web-based con le quali devono dialogare per lo scambio di dati ed informazioni. In Internet è oramai pieno di guide e articoli che spiegano, a volte chiaramente e a volte un pò meno, il funzionamento di semplici script PHP, ASP o .NET per aiutare chi è alle prime armi o per facilitare il compito degli sviluppatori che possono così contare su risorse già parzialmente scritte.

Ciò che più raramente si trova in Internet è una guida che spieghi come collegare un’applicazione che “gira” in locale con una web-base, e che quindi vive nel mondo Internet. E allora….ecco ciò che stavate cercando!

Supponiamo che, in locale, vi siate sviluppati una piccola applicazione Java che gestisce l’archivio dei film che vi siete comprati negli anni. Avete però la necessità di memorizzare i dati in un database che sia disponibile in rete, perchè volete che l’archivio sia visibile anche sul vostro sito. Come fare? Ovviamente duplicare il database remoto in locale non è una soluzione ottimale.

In poche parole, quello che vi interessa ottenere, è di far dialogare la vostra applicazione locale scritta in Java con, supponiamo, il vostro sito Joomla, e quindi scritto in PHP e basato su database MYSQL.

Supponendo che la vostra applicazione Java sia scritta correttamente, il pezzo di codice che ci interessa analizzare è il seguente:

……
try {
String driver = “com.mysql.jdbc.Driver”;
Class.forName(driver);
//stringa di connessione al database server
String url = “jdbc:mysql://ip_tuo_server:3306/”;

//esempio: connessione local server
//String url = “jdbc:mysql://”;
//Equivale a: “jdbc:mysql://127.0.0.1:3306/”

//Otteniamo una connessione con username e password
con = DriverManager.getConnection (url, “tuo_username”, “tua_password”);
System.out.println(“<Connessione riuscita>\n”);
con.setCatalog(“tuo_database”);
//Creiamo un oggetto Statement per poter interrogare il db
cmd = con.createStatement ();

//Query
String qry = “SELECT * FROM tua_tabella”;
res = cmd.executeQuery(qry);

//Stampiamone i risultati riga per riga
while (res.next()) {
//System.out.print(res.getString(“id”)+” “);
System.out.println(res.getString(“titolo_film”));
}
} catch {…}

……

I commenti presenti all’interno del codice dovrebbero già chiarire le istruzioni scritte in Java. Possiamo tuttavia aggiungere qualche riga di spiegazione:

  • String driver = “com.mysql.jdbc.Driver”;
    Class.forName(driver);

    Queste due righe di codice servono per stabilire il tipo di driver che intendiamo usare: in questo caso, abbiamo supposto che il database remoto sia un db MYSQL, e dunque dobbiamo utilizzare il driver MYSQL per connetterci al database remoto.
  • String url = “jdbc:mysql://ip_tuo_server:3306/”;

    Con questa riga di codice assegnamo alla variabile url la stringa di connessione: tutto ciò che dobbiamo fare è sostituire la dicitura ip_tuo_server con l’IP o il nome del server sul quale “gira” il database remoto. Se la connessione con il database server va a buon fine, verrà stampata la stringa “<Connessione riuscita>“;

  • con.setCatalog(“tuo_database”);

    Questa riga di codice ci permette di dichiarare il nome del database remoto che vogliamo interrogare e che ovviamente “gira” sull’IP dichiarato precedentemente; tutto ciò che dobbiamo fare è sostituire la dicitura tuo_database con il nome del database in questione.

  • String qry = “SELECT * FROM tua_tabella”;

    Nella variabile qry salviamo la query che interrogherà il database; supponendo che il databatabase remoto sia già popolato, è possibile utilizzare la query di esempio, sostituendo tua_tabella con il nome della tabella da cui ci interessa prendere i dati.

  • while (res.next())…

    Iteriamo sull’oggeto res, che possiamo vederlo come l’insieme degli elementi risultanti dall’interrogazione al database server; per ogni elemento, stampiamo il titolo ( System.out.println(res.getString(“titolo_film”)); ) supponendo che esista nella tabella interrogata il campo ‘titolo’.