Blog

Search by tag: j2me

December 23, 2007 20:11 - 1 comment

Qualche giorno fa avevo rivelato che stavo lavorando ad un programmino per cellulari. Bene, ho finito! :)

screenshot1
screenshot2
qualche screen dall’emulatore :)

First of all, finalmente ho realizzato qualcosa di serio in Java 2 Microedition (J2ME), cosa che fino a poco tempo fa mi sembrava inutile a causa delle sue limitazioni. Poi mi sono reso conto che in effetti sarebbe stato comodo poter dire in ogni momento “Guarda che bello! Aspetta che lo bloggo!”… e questa cosa si può fare solo se si ha sempre con se l’occorrente (grazie al cellulare) :)
Avevo iniziato il progetto mesi e mesi fa, ma a quei tempi avevo ancora il sito in PHP e modificarlo sarebbe stato un po’ troppo laborioso… diciamo che mi passava la voglia :P Adesso invece, con Ruby on Rails, mi è bastato creare una migrazione, aggiungere un controller e utilizzare le funzioni e i modelli già scritti per il blog. Una goduria! :D

E’ stato un po’ complicato, ripeto, avere a che fare con le limitazioni imposte dai produttori dei cellulari.. ne avevo già parlato… il fatto è che, per questioni di sicurezza, alcune funzioni dei cellulari basati sul sistema MIDP2 sono utilizzabili soltanto da chi acquista un certificato a caro prezzo. La cosa strana è che il tutto funziona perfettamente sui cellulari Symbian (l’ho provato sul Nokia N73), previa autorizzazione da parte dell’utilizzatore (viene semplicemente visualizzata una richiesta tipo “consentire all’applicazione di accedere ai file?”)… non è un po’ un controsenso?
Beh, pazienza… non ho intenzione di fare arricchire i sostenitori del DRM! Non mi va di dover acquistare un altro Nokia per colpa della stessa Nokia… preferisco aspettare l’uscita dei cellulari equipaggiati con Android.

Andiamo al dunque :) Potrà capitare che presto vedrete spuntare sul blog dei post inviati dal mio bastardissimo cellulare… avranno anche un aspetto diverso… c’ho messo un po’ per trovare la soluzione grafica giusta!

See you later! ;)



PS: mi sa che attiverò l’opzione “Naviga 3” sulla mia SIM… per fare le prove di invio ho speso un patrimonio!


Ricordare quando scoppiò la bufera sul DRM, sul TCPA, sul cosiddetto “”http://it.wikipedia.org/wiki/Palladium">Palladium", il chip Fritz e (soprattutto) l’adozione di queste tecnologie sui sistemi operativi proprietari?
Al giorno d’oggi Microsoft continua per la sua strada (fallimentare), Apple è tornata saggiamente sui suoi passi, ma… è tutto qui? Non direi!

Oggi ho assaporato con i miei stessi polpastrelli le limitazioni di un sistema di Trusted Computing, quello che abbiamo tutti installato sui nostri cellulari (o almeno tutti quelli con SO basati su Java). Lo sapevate?
E cosa comporta la presenza di questo “sistema di sicurezza”?
Vi racconto la mia esperienza.

Ho sviluppato un programmino in Java 2 Micro Edition (J2ME), da far girare sul mio Nokia 6280, che ha un sistema operativo Nokia Series 40 (S40).
Ho implementato molte feature, tra cui connessione TCP/IP e Bluetooth, RecordStore per registrare le impostazioni come su un normale database, parsing di feed RSS, parsing di dati GPS provenienti da un ricevitore collegato, cattura delle immagini dalla fotocamera, accesso al filesystem per importare immagini nel programma.

Cosa vengo a scoprire?? Che quando tento di utilizzare alcune funzioni, come l’accesso ai file o la connessione tramite socket, l’applicazione si blocca dicendo “You are not authorized to access the restricted API!
L’ambiente MIDP2, sotto cui girano le MIDlet, è come un recinto da cui si riesce a vedere perfettamente ciò che sta all’esterno, ma qualcosa ti blocca quando tenti di raggiungerlo.

OK, ho pensato che se hanno deciso di vietare anche soltanto la lettura dei file, ci sarà un buon motivo che riguarda ALMENO la sicurezza dell’universo!
Ma che!!!! Ho letto sul forum degli sviluppatori Nokia che, per usare quelle ed altre funzioni, è necessario COMPRARE un certificato dalle authority internazionali e “firmare” la MIDlet con questo certificato!! (in pratica, basta pagare per allargare il recinto!)
E quanto costano questi certificati, presso le varie authority?? Verisign offre un certificato con validità di 1 anno al modico prezzo di 499 dollari, mentre Thawte ci fa il favore di proporre lo stesso articolo per 299 dollari.
Dopo questa banalissima operazione, la nostra applicazione avrà finalmente accesso alle preziose funzioni riservate che ci erano state negate.

Wow! Grazie! Ma io volevo soltanto realizzare un programmino cretino e avere il piacere di farlo girare sul mio cellulare!! E’ veramente frustrante! :’-(

A questo punto aspetto con ansia gli sviluppi di Android… free, open source e, SPERO, senza problemi con i certificati!


Chi ha intenzione di sviluppare MIDlet per cellulari utilizzando il WTK 2.5.2 della Sun su una macchina a 64 bit, si troverà nella situazione di non poter avviare l’emulatore, poichè esso si rifiuterà di partire sostenendo che:

java.lang.UnsatisfiedLinkError:
	/home/user/netbeans-6.0/mobility8/WTK2.5.2/bin/sublime.so:
	/home/user/netbeans-6.0/mobility8/WTK2.5.2/bin/sublime.so:
	wrong ELF class: ELFCLASS32 (Possible cause: architecture word width mismatch)

Insomma… problemi di compatibilità tra binari a 32 e a 64 bit!

Per risolvere il problema, cominciamo con lo scaricare una JDK a 32 bit;
poi andiamo nella directory dove abbiamo installato WTK (nel mio caso è quello compreso nell’installazione di NetBeans 6) e decomprimiamo il pacchetto:

$ cd ~/netbeans-6.0/mobility8/WTK2.5.2
$ sh /path/to/jdk-6u3-linux-i586.bin
$ ln -s jdk1.6.0_03 jdk32

In seguito, dovremo editare lo script di avvio dell’emulatore WTK:

$ cd ~/netbeans-6.0/mobility8/WTK2.5.2
$ vim bin/emulator

(ovviamente potete utilizzare il vostro editor preferito al posto di vim)

e modificare la prima riga del codice in questo modo:

javapathtowtk=/home/user/netbeans-6.0/mobility8/WTK2.5.2/jdk32/bin/

Adesso potrete finalmente testare le vostre applicazioni J2ME sull’emulatore! :)