Archivio mensile:Febbraio 2009

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…