Posts tagged ‘java’

Connettere una APP Android ad un database mysql remoto

Una delle soluzioni più semplici ed utilizzate e quelle di costruire un "service in the middle". In pratica un servizio che si ponga nel mezzo e si occupi di serializzare/deserializzare i dati sa caricare/scaricare.

Ipotizziamo di avere sul server MYSQL remoto la seguente tabella:


CREATE TABLE `people` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`name` VARCHAR( 100 ) NOT NULL ,
`sex` BOOL NOT NULL DEFAULT '1',
`birthyear` INT NOT NULL
)

In PHP potremmo serializzare i risultati di una query nel formato JSON in questo modo:


  1. <?php
  2. mysql_connect("host","username","password");
  3. mysql_select_db("PeopleData");

  4. $q=mysql_query("SELECT * FROM people WHERE birthyear>'".$_REQUEST['year']."'");
  5. while($e=mysql_fetch_assoc($q))
  6.         $output[]=$e;

  7. print(json_encode($output));

  8. mysql_close();
  9. ?>

Maggiori informazioni sul formato JSON qui: http://it.wikipedia.org/wiki/JSON

Il passo successivo sarà quello di lavorare ( ad esempio ) con i dati "serializzati" JSON nel modo seguente:

  1. String result = "";
  2. //the year data to send
  3. ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
  4. nameValuePairs.add(new BasicNameValuePair("year","1980"));

  5. //http post
  6. try{
  7.         HttpClient httpclient = new DefaultHttpClient();
  8.         HttpPost httppost = new HttpPost("http://example.com/getAllPeopleBornAfter.php");
  9.         httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
  10.         HttpResponse response = httpclient.execute(httppost);
  11.         HttpEntity entity = response.getEntity();
  12.         InputStream is = entity.getContent();
  13. }catch(Exception e){
  14.         Log.e("log_tag""Error in http connection "+e.toString());
  15. }
  16. //convert response to string
  17. try{
  18.         BufferedReader reader = new BufferedReader(newInputStreamReader(is,"iso-8859-1"),8);
  19.         StringBuilder sb = new StringBuilder();
  20.         String line = null;
  21.         while ((line = reader.readLine()) != null) {
  22.                 sb.append(line + "\n");
  23.         }
  24.         is.close();

  25.         result=sb.toString();
  26. }catch(Exception e){
  27.         Log.e("log_tag""Error converting result "+e.toString());
  28. }

  29. //parse json data
  30. try{
  31.         JSONArray jArray = new JSONArray(result);
  32.         for(int i=0;i<jArray.length();i++){
  33.                 JSONObject json_data = jArray.getJSONObject(i);
  34.                 Log.i("log_tag","id: "+json_data.getInt("id")+
  35.                         ", name: "+json_data.getString("name")+
  36.                         ", sex: "+json_data.getInt("sex")+
  37.                         ", birthyear: "+json_data.getInt("birthyear")
  38.                 );
  39.         }
  40. }
  41. }catch(JSONException e){
  42.         Log.e("log_tag""Error parsing data "+e.toString());
  43. }


Ovviamente se si vuole gestire la connessione in HTTPS la cosa è fattibile.

 

 

Java verrà rimosso dai repository Ubuntu entro il 16 febbraio

A causa delle nuove policy di distribuzione che Oracle ha stabilito per Java, dal 24 agosto del 2011 non è più possibile distribuire nuove versioni Java su macchine Ubuntu.

Per questo motivo il 16 febbraio di quest’anno verranno rimosse dal repository “partner” tutte le versioni di Java JDK.

Su Ubuntu 10.04, 10.10 e 11.04  il pacchetto Sun Java JDK (sun-java6) non sarà più disponibile e successivamente rimosso del tutto al fine di evitare problemi.

A quanto pare sui sistemi Ubuntu già in uso non verranno neanche più resi disponibili aggiornamenti di sicurezza sui pacchetti Java già installati, mentre su questa pagina del Wiki Ubuntu è spiegato come migrare a soluzioni alternative per continuare ad usare piattaforme simili a quella Java. Maggiori informazioni sul messaggio mandato da Marc Deslauriers sulla mailing list “ubuntu-security”.

Tutte le informazioni presenti su questo articolo sono protette dalla licenza CC Attribution-ShareAlike . 

Fonte: TuxJournal.net

Hosting Tomcat Low Cost

Oggi volevo segnalarvi un'interessantissima offerta da parte di www.hostingdreams.it: l'offerta di Hosting Java Tomcat Low Cost.

Ritengo che l'offerta sia una delle più competitive sul mercato, anche in base alle caratteristiche che offre ( oltre che al prezzo ).

A seguire un sunto:

Piani JAVA Apache Tomcat   Low Budget
Spazio su disco   500 Mb
Bandwidth Mensile   Illimitata
Ram JVM   64 Mb
Database Mysql 5   1
Capienza Database   500 Mb
Email   1
Capienza Email   500 Mb
Sottodomini   0
Domini Alias  
Possibilità Upgrade  
Canone Annuo   € 60.00
 
Tutti i prezzi sono iva inclusa
 



     
Qualità del Servizio    
Supporto Tecnico 7×7 ( Ticket, Email e Telefonico per Rivenditori )  
Connettività Italiana  
99.9% Uptime  
WebMail ( Antivirus + Antispam )   Antivirus
Backup Database   Giornaliero
Backup Istanze   Giornaliero
     
Pannelli di controllo    
Start / Stop / Reload proprio contesto  
Tomcat Manager ( gestione propria istanza )  
Start / Stop della propria instanza  
PhpMyAdmin  
Controllo Stato Porte  
Pannello di Controllo Utente  
Webmail  
Gestione Email  
Supporto Online  
     
Tecnologie supportate    
JSP ( tutte le ultime versioni )  
Servlet ( tutte le ultime versioni )  
Account FTP   1
Contesti Inclusi ( non è possibile aggiungere contesti oltre il primo )   1
Database MySQL 5  
Log di ogni contesto ( custom mediante java.util.logging )  
Utilizzo di Tutte le Librerie Compatibili con Tomcat  
Instanza Tomcat Privata  
Accesso veloce al file catalina.out da pannello  
Accesso Completo al filesystem dell'istanza ( ad eccezione della cartella bin e del file server.xml )  
     
Piani JAVA Apache Tomcat   Low Budget
Canone Annuo   € 60.00
 
Tutti i prezzi sono iva inclusa
 

 

Per i più scettici è prevista la possibilità di testare il piano prima dell'acquisto. Direi che è un'occasione da non perdere.

Ormai l'hosting Java è diventato davvero abbordabile.

Cosa sono i metodi statici in java?

Finora abbiamo mostrato segmenti di codice dando per scontato che siano parte di un processo attivo: in tutto questo c’è una falla. Per tapparla dobbiamo fare alcune considerazioni: primo, ogni metodo deve essere definito all’interno di una classe (questo incoraggia ad utilizzare il paradigma object oriented). Secondo, i metodi devono essere invocati utilizzando una variabile reference inizializzata in modo che tenga traccia della istanza di un oggetto.

Questo meccanismo rende possibile l’auto referenziazione inquanto se un metodo viene chiamato senza che l’oggetto di cui è membro sia attivo, this non sarebbe inizializzato. Il problema quindi è che in questo scenario un metodo per essere eseguito richiede un oggetto attivo, ma fino a che non c’è qualcosa in esecuzione un oggetto non può essere istanziato.

L’unica possibile soluzione è quindi quella di creare metodi speciali che non richiedano l’attività da parte dell’oggetto di cui sono membro così che possano essere utilizzati in qualsiasi momento.

La risposta è nei metodi statici, ossia metodi che appartengono a classi, ma non richiedono oggetti attivi. Questi metodi possono essere creati utilizzando la parola chiave static a sinistra della dichiarazione di un metodo come mostrato nella dichiarazione di static_method() nell’esempio che segue:

1 class esempio
2 {
3 static int static_method()
4 {
5 … … .
6 }
7 int non_static_method()
8 {
9 return static_method();
10 }
11 }
12 class altra_classe
13 {
14 void un_metodo_qualunque()
15 {
16 int i = esempio. static_method();
17 }
18 }

Un metodo statico esiste sempre a prescindere dallo stato dell’oggetto; tuttavia la locazione o classe incapsulante del metodo deve sempre essere ben qualificata.

Questa tecnica è chiamata “scope resolution” e può essere realizzata in svariati modi. Uno di questi consiste nell’utilizzare il nome della classe come se fosse una variabile reference:

esempio.static_metod();

Oppure si può utilizzare una variabile reference nel modo che conosciamo:

esempio _ese = new esempio();
_ese.static_metod();

Se il metodo statico viene chiamato da un altro membro della stessa classe non è necessario alcun accorgimento. E’ importante tener bene a mente che un metodo statico non inizializza l’oggetto “this”; di conseguenza un oggetto statico non può utilizzare membri non statici della classe di appartenenza.

Cos’e’ l’oggetto null in java?

Il linguaggio Java prevede un valore speciale per le variabili reference che non referenzia nessuna istanza di un oggetto. Il valore speciale null rappresenta un oggetto inesistente, e viene assegnato di default ad ogni variabile reference.
Se la applicazione esegue una chiamata ad un oggetto tramite una variabile reference non inizializzato, il compilatore Java produrrà un messaggio di errore di tipo NullPointerException5.

Quando ad una variabile reference viene assegnato il valore null, l’oggetto referenziato verrà rilasciato e, se non utilizzato verrà dato in pasto alla garbage collection che si occuperà di rilasciare la memoria allocata per la entità.
Altro uso che può essere fatto dell’oggetto null riguarda le operazioni di comparazione come visibile nell’esempio seguente. Le poche righe di codice dichiarano un array di interi chiamato numbers. Mediante l’istruzione per il controllo di flusso if controlla se l’oggetto array sia stato creato o no.

Stack s = null;
int numbers[];
if (numbers == null)
{
… … ..
}

Facciano attenzione i programmatori C, C++. Il valore null nel nostro caso non
equivale al valore 0, ma rappresenta un oggetto nullo.

Installare Java su Ubuntu 11.04 Natty

Installare Java sull'ultima versione di Ubuntu e' un'operazione  davvero semplice.

Java rappresenta ovviamente una componente fondamentale da installare su ogni sistema operativo ed anche Ubuntu necessita delle librerie necessarie per il corretto funzionamento di applet e programmi che vedono sfruttare le pontezialità del linguaggio di Oracle.

Per installare questo indispensabile componente, i passi da seguire sono i seguenti:

sudo add-apt-repository "deb http://archive.canonical.com/ natty partner"

sudo apt-get update

sudo apt-get install sun-java6-jre sun-java6-jdk sun-java6-plugin sun-java6-fonts

Finito!

Per controllare la versione di java installata è possibile lanciare il seguente comando:

java -version

DroidDraw: UI editor per programmare applicazioni Android

Avete una buona conoscenza di Java e volete iniziare a sviluppare qualche applicazione per Android ma non volete perdere troppo tempo per lacreazione dell’User Interface? Fatevi aiutare da un ottimo tool chiamatoDroidDraw.

DroidDraw è pensato appositamente per guadagnare tempo nella creazione del layout, dell’aspetto grafico ed esterno di un applicazione grazie all’uso del comodo Drag&Drop e naturalmente il codice XML relarivo verrà generato in modo automatico.

Una sorta di Netbeans insomma, infatti dopo potrete copiare il codice corrispondente ed importarlo magari in Eclipse o nell’IDE che utilizzate per sviluppare. Purtroppo non posso darvi informazioni molto dettagliate perché non posseggo ancora un cellulare con sistema Android ma sarà il mio prossimo passo e sicuramente qualche apps andrò a crearla!

Chi ha già avuto modo di provarlo e testarlo e vuole dare la sua opinione, faccia pure ;) Ah quasi dimenticavo, grazie ad ultimoprofeta per la segnalazione!

Fonte: http://www.chimerarevo.com/2010/07/13/droiddraw-ui-editor-programmare-applicazioni-android/

Sviluppare applicazioni e giochi iPhone senza Objective C

E' da un pò che sono in cerca di buoni tool di sviluppo multipiattaforma per Android ed iPhone. Ultimamente credo che la scelta migliore sia quella di realizzare webapp, di per se già nativamente multipiattaforma seppur sicuramente più limitate non potendo infatti sfruttare appieno le features del dispositivo ospitante.

Ma buoni tool di sviluppo alternativi per le normali app ( a parte eclipse per android ed xcode per iPhone ) ne esistono?

A seguire riporto un articolo che ho trovato su internet che potrebbe davvero aiutare i novelli programmatori a farsi largo con le proprie applicazioni tra le altre che già affollano i market dei rispettivi produttori.

A voi i commenti!

Fonte: http://www.iphoneland.it/applicazioni-iphone/7-strumenti-per-sviluppare-applicazioni-e-giochi-iphone-senza-objective-c/#more-8816

 

GAMESALAD (WWW.ANSCAMOBILE.COM)

GameSalad è essenzialmente servizio web che tramite punta e clicca, trascina e rilascia(drag and drop) permette finalmente di creare giochi per l’iPhone e iPod Touch senza alcuna programmazione .  Completo di modelli e template per vari tipi di giochi.

Per la pubblicazione su App store, è necessario acquistare un abbonamento a Gamesalad.com che costa 99 dollari annuali a cui dove aggiungere le spese per iscriversi al programma developer di Apple.


ANSCA CORONA SDK (WWW.ANSCAMOBILE.COM)

Con l’SDK Corona, uno sviluppatore può creare applicazioni graficamente ricchi e giochi per l’iPhone. 

Invece di utilizzare Apple Objective-C, si utilizza Lua (Loo-ah), un potente linguaggio veloce, leggero di scripting  (www.lua.org).

Anche qui come per Gamesalad dovete spendere 99 dollari come abbonamento annuale.


QUICKCONNECT (QUICKCONNECT.SOURCEFORGE.NET)

Si tratta di un framework per  per la creazione di applicazioni mobili. QuickConnect essenzialmente ti permette di creare applicazioni per iPhone utilizzando HTML, JavaScript, CSS . Il framework fornisce astrazioni per le funzioni di iPhone, come il GPS, audio, database SQLite, le informazioni accelerometro, ecc …

E’ completamente gratuito. Meno funzioni disponibili rispetto a Gamesalad o Corona ma per una semplice applicazione potrebbe essere quello che fa per voi.   Ancora una volta, Xcode e un Apple Developer Program per la licenza sono necessari per costruire e distribuire le applicazioni.


PHONEGAP (PHONEGAP.COM)

PhoneGap è simile a QuickConnect : si utilizzano javascript e html per sviluppare le apps o. È necessario conoscere abbastanza bene javascript. 

E’ completamente open source . La base di utenti sembra abbastanza significativa.


NIMBLEKIT (WWW.NIMBLEKIT.COM)

Ancora una volta, questo è un altro framework che consente di sviluppare applicazioni per iPhone con competenze di sviluppo web.  NimbleKit non è libero o open source. Per costruire applicazioni per la distribuzione dovete pagare 99 dollari  .  

Fornisce un numero maggiore di funzioni rispetto a PhoneGap però, tra cui la possibilità per le applicazioni di riprodurre video e audio.


MONOTOUCH (MONOTOUCH.NET)

MonoTouch consente agli sviluppatori di creare applicazioni C #. NET che vengono eseguite su iPhone e iPod Touch. 

Il costo per la distribuzione di applicazioni e’ $ 399 per l’edizione Professional.


APPCELERATOR TITANIUM DEVELOPER (WWW.APPCELERATOR.COM)

Appcelerator Titanium Developer è un altro prodotto che consente agli sviluppatori di codificare le applicazioni iPhone o Android con il buon vecchio HTML e Javascript. Ha recentemente annunciato il supporto iPad.

Titanium Developer è disponibile per Windows, Mac e Linux (anche se per lo sviluppo di iPhone, Xcode è ovviamente necessario anche un Mac). Pur avendo un grande insieme funzionalità e una enorme base di sviluppatori,  per gli sviluppatori è free.

L’inventore di Java, James Gosling, lavorerà per Google

Direi che l'acquisizione della Sun da parte di Oracle non ha certo portato a pochi sconvolgimenti.
Era il mese di Aprile del 2010 e ricordo perfettamente che 
la notiziona arrivò un pò inaspettata: James Gosling, praticamente l’ inventore di Java, aveva lasciato quella che era la Sun immediatamente prima della sua fusione con Oracle per non specificati motivi ( sui quali preferì tacere, come specificato sul suo blog ).
Ricordiamo anche un altro singolare episodio riguardante Oracle, quello che vede l’azienda attaccare Google per via di infrazioni sul copyright nell’utilizzo di Java. 

Al momento fonti ufficiali riportano che Gosling lavorerà per Google, e lo dimostra un post proprio sul blog del papà di Java.
«Nonostante l’ultimo anno abbia avuto una svolta piuttosto inattesa [...] mi ritrovo ad avere il mio primo incarico in Google. [...] Una delle cose più difficili della vita è fare delle scelte. E’ stato difficile dire di “no”  a tante altre eccellenti offerte. [...] Non so a cosa lavorerò, ma mi aspetto di essere un po’ di tutto [...]»
Queste le parole più significative del post di Gosling: dopo un anno passato a lavorare in proprio il papà di Java si ritrova a lavorare per conto di chi, secondo i più, ha tentato di infrangerne la licenza. La vita è proprio strana.

Chissà che Google, non potendo avere Java, non abbia deciso di proposito di far leva sul suo inventore?
Che stia per nascere un nuovo e fondamentale fork del linguaggio?

Come sviluppare applicazioni Android con Eclipse

Uno dei miglior ambienti di sviluppo per Android è senza ombra di dubbio Eclipse3.5 Galileo ( anche NetBeans comunque si difende davvero bene ).
Non a caso infatti google ha realizzato un apposito plugin che permette di agevolare di moltissimo la creazione di applicazioni utilizzando proprio l'IDE di cui stiamo parlando.

La guida che segue è orientata agli utenti ubuntu, ma in ogni caso anche gli utenti di sistemi operativi diversi potranno seguire a grandi linee i passi trattati:

Prerequisiti:

Eclipse 3.5
JavaDevelopmentKit (JDK e JRE)
AndroidSDK
Mac, Windows o Linux

Per prima cosa ci serve Eclipse3.5
Essendo quest'ultimo presente nei repository di Ubuntu è sufficiente aprire un terminale e digitare:

sudo apt-get install eclipse ( in alternativa è possibile visitare il sito ufficiale, scaricaterselo ed installarselo ).

Diamo per scontato che abbiate già installato java e il suo DevelopmentKit, in caso contrario fatelo.

Adesso scaricate l’SDK di android e scompattate l’archivio, la cartella estratta sarà proprio l’sdk di sviluppo, non serve installazione, è quindi necessario mettetela in una cartella che siete sicuri che non andrete a cancellare.

Ora non dovete far altro che aggiungere l’sdk android al vostro PATH, su linux:

sudo gedit .bashrc

e aggiungiamo alla fine del file:

#AndroidDev PATH
PATH=$PATH:$HOME/android-sdk-linux_x86/tools
export PATH

fatto questo salviamo il file e ricarichiamolo

source .bashrc
adesso siamo quasi pronti ad iniziare.

Apriamo quindi Eclipse e andiamo nel menu "Help" e scegliete la voce "Install new software".
Nella schermata che apparira alla voce "Work with" incollate il seguente link:


https://dl-ssl.google.com/android/eclipse/
e installate i software che vi verranno elencati (sono solo 2).

Riavviate Eclipse.

A questo punto l'IDE è ben configurato per sviluppare su Android!
Non vi resta che avviare un nuovo progetto Android e scrivere la vostra app.