The return of Fraboni


Continuo la metafora di Star Wars per presentare la nuova applicazione iPhone e iPod Touch sviluppata da Roberto Fraboni: Tressette!

tressette_1.jpg

Tressette offre 3 differenti tipi di sfida: contro il computer, uno contro uno sullo stesso iPhone, uno contro uno in rete locale via Wi-Fi. A disposizione 7 diversi mazzi di carte, 3 livelli di difficoltà e 3 differenti punteggi (21, 31, 41), con una grafica piacevole e grande semplicità d’uso. Si ha anche la possibilità di ordinare a proprio piacimento le carte ricevute.

tressette_2.jpg

L’applicazione ha ricevuto grande successo nell’App Store (è stata per parecchi giorni TOP 2!) ed è tuttora tra le TOP 25 delle applicazioni a pagamento. Graditissimo tra gli appassionati di questo gioco, Tressette è stato sviluppato da Roberto (con il supporto del tester implacabile Simone Marinelli) e disegnato dalla mano eccellente di Maurizio Terzo.

Il mio piccolo contributo per questa applicazione è stato registrare i due brani musicali utilizzati durante la visualizzazione del menù e durante la partita. Il primo brano è stato scritto ad hoc e suonato su una meravigliosa Yamaha MO6 e registrato con un mixer USB Yamaha MW10C. Il secondo, invece, è un pezzo scritto molti anni fa, suonato su una Yamaha V50 e registrato in analogico su una piastra Teac. Collaborare con Rob con la musica anziché con il codice è stato molto divertente e… anomalo, soprattutto per la scrittura del brano del menù, che doveva rispettare precisi requisiti: moderno, non troppo invedente, della durata di un minuto, ritmato ma non troppo. E’ stata la prima volta che mi son messo a comporre un brano con l’iPhone in mano, per provare a “immaginare” quali suoni potessero star bene con il menù. Prima esperienza piacevole, speriamo di poter ripetere.

Grande Rob, avanti tutta!

Android: gestire diversi emulatori


In questi giorni si è susseguito in rete il tamtam (ad esempio: link1, link2, link3…) relativo al rilascio di una immagine dell’emulatore di Android basata sulla prossima release Cupcake.

android15_info.png

Tra le novità più interessanti dell’imminente nuova release ci sono dei miglioramenti al motore grafico (le finestre hanno transizioni pressoché identiche a quelle dell’iPhone, i pulsanti hanno un effetto lucido molto gradevole), i live folder, la presenza della tastiera software, la localizzazione italiana (e non soo, ovviamente!) e altre che ora mi sfuggono. 🙂

android15_keyboard.png

La procedura di configurazione della nuova build descritta sui vari siti prevede il recupero del file

http://nullwire.com/sites/default/files/android_images_sdk1.5.zip

il cui contenuto (ramdisk.img, system.img e userdata.img) va a sovrascrivere gli omonimi file della cartella tools/lib dell’SDK di Android.

Sovrascrivere, però, pone un problema: non si ha più a disposizione la configurazione di sistema dell’SDK ufficiale, di fatto ancora indispensabile per chi sviluppa software da distribuire sull’Android Market (per assicurarsi la compatibilità con la stable version corrente del sistema operativo). La preview della release Cupcake, infatti, non è ancora matura e finché non sarà rilasciata in versione definitiva con relativo SDK è da considerarsi utile sono per sperimentazione.

L’ideale sarebbe poter disporre di due immagini dell’emulatore, una con i file della distribuzione ufficiale (1.0 r2) e una (o più) con le release di sviluppo (attualmente a 1.5).

Predisporre un ambiente con emulatori multipli è piuttosto semplice, occorre infatti:

  1. Scaricare il file contenente le immagini dell’emulatore ed estrarne il contenuto in una directory temporanea
  2. Copiare la cartella tools/lib/images dentro una nuova cartella allo stesso livello (ad esempio, tools/lib/cupcake_images)
  3. Sovrascrivere i file ramdisk.img, system.img e userdata.img della nuova cartella con quelli estratti dal file zip scaricato al punto 1

A questo punto, per avviare l’emulatore utilizzando una build diversa da quella di default è sufficiente aggiungere l’opzione system di esecuzione nel pannello configurazioni del progetto Android su Eclipse, specificando la directory da cui leggere i file immagine di sistema (nel mio caso, l’SDK è installato su Mac OS X nella directory /Users/gerdavax/tools/android-sdk-mac_x86-1.0_r2):

-system /ROOT_ANDROID_SDK/tools/lib/cupcake_images

emulator1.png

emulator2.png

L’emulatore ora partirà con i nuovi file immagine. Passando da una versione all’altra del sistema operativo può capitare che l’emulatore non parta più (alcune nuove impostazioni sono incompatibili con la versione precedente), per cui può rendersi necessaria la cancellazione dei dati utente (memorizzati nel file .android/SDK-1.0/userdata-qemu.img).

Per ora è sufficiente per sperimentare la nuova build, in attesa di avere il nuovo SDK ufficiale…

Libro: Spring 2.5 Aspect Oriented Programming


Segnalare un libro è sempre un piacere, specie se il libro in questione è scritto da un amico. È dunque con grande piacere che vi presento il libro di Massimiliano Dessì intitolato Spring 2.5 Aspect Oriented Programming e edito da Packt Publishing:

spring_aop.jpg

Il libro di Massimiliano, disponibile da questo mese sul sito dell’editore (in formato cartaceo e PDF), spiega in dettaglio come la programmazione orientata agli aspetti possa migliorare la qualità del codice di applicativi Spring in termini di manutenibilità e robustezza. Dalla descrizione del libro:

Developing powerful web applications with clean, manageable code makes the maintenance process much easier. Aspect-Oriented Programming (AOP) is the easiest and quickest way to achieve such results. Spring is the only Java framework to offer AOP features. The combined power of Spring and AOP gives a powerful and flexible platform to develop and maintain feature-rich web applications quickly.

This book will help you to write clean, manageable code for your Java applications quickly, utilizing the combined power of Spring and AOP. You will master the concepts of AOP by developing several real-life AOP-based applications with the Spring Framework, implementing the basic components of Spring AOP: Advice, Joinpoint, Pointcut, and Advisor.

This book will teach you everything you need to know to use AOP with Spring. It starts by explaining the AOP features of Spring and then moves ahead with configuring Spring AOP and using its core classes, with lot of examples. It moves on to explain the AspectJ support in Spring. Then you will develop a three-layered example web application designed with Domain-Driven Design (DDD) and built with Test-Driven Development methodology using the full potential of AOP for security, concurrency, caching, and transactions.

Learn how Aspect-Oriented Programming can support Object-Oriented Programming to solve problems in the implementation phase

Write clean and concise code by implementing concurrency control in cross-cutting functionalities to manage code easily and create applications quickly

Realize a dynamic proxy with JDK, by implementing an interface that manages invocations

Realize the structural behavior of the pattern proxy design pattern by applying the crosscutting concerns of security, logging, and transactionality to specific Joinpoints

Simplify applying Advices through using AspectJ annotations

Develop better applications by handling important functionalities such as transaction management, application logging, exception management, and layout

Learn how the AOP enabled by the Spring Framework and Inversion of Control (IoC), can help you to remove the implementation compromises in applications

Ho avuto l’onore di fare da copy-editor per questo libro, dando una mano a Max nella revisione dei capitoli. È stato un lavoro faticoso (per lui!), ma il risultato è di grande livello. Consiglio a tutti coloro che lavorano su Spring (e non solo) di acquistarlo, sarà sicuramente un valido aiuto nella progettazione e nello sviluppo.

Bravo Max, continua così! Complimenti!

Malloreddus alla bolognese?


Quando Davide nominava ricette improbabili quali cous-cous alla valdostana, cinghiale allo scoglio e cozze alla boscaiola, non pensavo che un giorno avrei potuto trovare una ricetta reale e altrettanto improbabile: gnocchetti sardi alla bolognese.

malloreddus_small.jpg

Cio�? Con il rag�? Ma scusate, i malloreddus alla campidanese non sono con pomodoro e salsiccia (ovvero, non troppo distanti dalla bolognese)? Vabb�, non so se sentirmi pi� umiliato io nella mia sardit� o gli amici campani, che devono leggere l’invito all’assaggio di un ignoto hamburger alla sorrentina… Pu� parlarsi di mash-up gastronomico? � l’effetto globalizzazione? Ora manca solo di trovare sushi alla norma e il gioco � fatto…

WideNoise

openspime.png

OpenSpime è un progetto che non ha bisogno di presentazioni: ideato dal team di WideTag (Leandro Agrò, Roberto Ostinelli e David Orbam, tra le menti più vivaci e dinamiche che abbia mai avuto il piacere di conoscere), ha come obiettivo la realizzazione di una infrastruttura aperta per la "Internet of Things". Nelle sue prime applicazioni, OpenSpime ha posto l’accento sulle problematiche ambientali, con scenari che potremmo definire di social sensor network, in cui cioè la social network di utenti equipaggiati di sensori raccoglie grandi quantità di dati che concorrono al monitoraggio massivo dell’ambiente.

Dopo i primi prototipi dedicati alla rilevazione di gas inquinanti (CO2 in primis), ecco che il progetto prosegue con una rilevazione meno scontata ma di grandissimo impatto per la qualità della vita: l’inquinamento acustico.

WideNoise è una bella applicazione per iPhone che consente l’acquisizione del livello sonoro dell’ambiente in cui si trova l’utente e la “pubblicazione” del dato opportunamente georeferenziato sulla rete OpenSpime. Il risultato è una mappatura delle aree con evidenziato il livello di inquinamento acustico. L’applicazione ha un feeling piacevolmente retrò ed è di utilizzo semplice ed immediato:

widenoise.png

Essendo il campionamento di frammenti audio disponibile su qualsiasi device mobile programmabile (da Java ME a Symbian, da Windows Mobile ad Android) è auspicabile che il team di WideTag realizzi i porting dell’applicazione per un largo numero di device, consentendo così una rapida diffusione di questo tipo di servizi al più vasto numero possibile di utenti.

Bravi ragazzi, continuate così!

Seminario @ Java Day 2009 Roma


Ieri si è svolta la terza edizione del Java Day di Roma, organizzata da JUG Roma, Java Italian Association e Java Italian Portal. È stata una bellissima giornata, ricca di seminari interessanti e premiata da una vasta partecipazione di pubblico (credo oltre 1400 persone!).

javaday_300_250.gif

Aule stracolme, con tante persone costrette a stare in piedi:

in_piedi.jpg

È stata anche una bella occasione per ricevere gli amici javaroli: Max, Nino, Simone, Matteo, Demis, Antonio, Alessandro, Daniela, Emanuela…

Massimiliano Dessì ha annunciato il suo libro Spring 2.5 Aspect Oriented Programming, pubblicato da Packt Publishing e disponibile da febbraio.

slide_libro_max.jpg

Ho avuto il piacere di presentare a quattro mani (anzi, a due voci) un seminario introduttivo su Android insieme a Riccardo Solimena. Non è stato facile parlare di una belva qual’è Android in 35 minuti, ma speriamo almeno di aver stuzzicato la curiosità dei partecipanti. Le slide sono già disponibili su slideshare per la consultazione online e nella sezione seminari per la lettura offline.

Android

View more presentations or upload your own. (tags: javaday java)

A fine giornata, immancabile il pranzo al Biondo Tevere:

staff.jpg

matteo_e_max.jpg

Il piatto sa segnalare è sicuramente il primo: tagliatelle al ragù in cui era sepolto un cannellone DELIZIOSO!

cannellone.jpg

Un ringraziamento speciale va a Mara Marzocchi, Daniela Ruggeri e Ugo Landini, che hanno coordinato brillantemente la realizzazione di questo evento che, credo, sia ormai il più importante dedicato alla tecnologia Java in Italia. Sei tracce parallele, i nomi più conosciuti in Italia su Java e tecnologie correlate, sponsor di primissimo livello: questi sono risultati importanti che meritano ammirazione e gratitudine. Grazie, cari amici, per questo vostro contributo alla nostra community e grazie anche a tutti coloro (taaaaaaaaaaaaanti!) che hanno aiutato a rendere possibile tutto questo.

Al prossimo Java Day!

Parlano di noi:

  • mrblue

    Dopo questa sconcertante notizia e un caffè siamo pronti per affrontare le meraviglie di Android illustrate dal simapticissimo duo Stefano Sanna e Riccardo Solimena. Android (con cui ho gia fatto amicizia) è la piattaforma aperta di mobile computing sviluppata dalla Open Handset Alliance e sostenuta da Google, basata su Linux e dotato di un ambiente Java ottimizzato e una ricca libreria di classi.
    I due ci mostrano come hanno sviluppato una semplice (??) applicazione con il programma dei talk e la mappa per arrivare al javaday, avendo gia sviluppato qualcosina con le API di Google (su windows mobile) sono rimasto sorpreso da quanto sia più facile fare qualunque cosa con l’sdk per Android.
    Dunque è vero se iPhone OS è pensato per l’utente finale, Android è fatto per facilitare la vita agli sviluppatori.
    Stupore e Meraviglia quando è comparso un G1 connesso via UMTS con una non precisata sim italiana!!

  • caccio’s blog

    Android: lo sbarco di Google nel pianeta Mobile Internet: uno dei talk più attesi (e più affollati) non ha deluso le aspettative, combinando tanto codice con un’analisi acuta delle potenzialità e delle prospettive di mercato per il sistema targato Google.