lunedì 24 novembre 2008

Risparmiometro per BlackBerry

Un post flash per segnalarvi che ho completato lo sviluppo di Risparmiometro per BlackBerry, l'assistente personale per il risparmio. Anche questa applicazione, liberamente scaricabile e utilizzabile come IBANc, è stata realizzata grazie agli strumenti di sviluppo e alle librerie forniti da RIM, in particolare il plugin per Eclipse, di cui ho già parlato con un certo entusiasmo. Per le funzionalità e le indicazioni per l'installazione vi rimando alle pagine pubblicate sul sito di DataFox. Qui mi limito a sottolineare che lo sviluppo è stato molto semplificato dall'uso del GridLayoutManager e del FormScreen, che mi hanno permesso di creare molto rapidamente schermi complessi e con i componenti grafici collocati nel punto desiderato.

sabato 22 novembre 2008

Due suggerimenti per lo sviluppo con il plugin per BlackBerry

Ho quasi completato lo sviluppo di una nuova applicazione per BlackBerry, di cui vi parlerò in un prossimo post, e ho utilizzato l'ultima versione del plugin per Eclipse fornito da RIM. Anche se si tratta di una beta, ho trovato questo strumento molto stabile e funzionale e, grazie ad esso, sono riuscito a realizzare un software relativamente complesso in poco tempo. Il plugin permette di sfruttare le versioni 4.3, 4.5, 4.6 e 4.7 della libreria e tutti i simulatori dei vari dispositivi prodotti da RIM; ho installato e utilizzato gli 81xx, 83xx, 87xx, 8900, 9000 e 9530 (il nuovissimo Storm con touch screen).
Durante questa attività ho incontrato un paio di problemi, che sono riuscito a risolvere e le cui soluzioni sono l'argomento di questo post. Il primo problema riguarda la firma del codice tramite l'apposito strumento presente nel menù BlackBerry (Request Signatures...). Infatti inizialmente non risultavano più disponibili le chiavi che avevo richiesto a RIM e che avevo installato sul PC; pertanto non era possibile firmare il codice applicativo. Alla fine è stato sufficiente copiare due file (sigtool.db e sigtool.csk), presenti nella cartella del vecchio JDE, nella directory plugins\net.rim.eide.componentpack4.x.0_4.x.0.y\components\bin di Eclipse.
Il secondo problema riguarda l'uso di classi di supporto, che si trovano in progetti separati, all'interno del codice presente nel progetto principale. In pratica volevo sfruttare il GridLayoutManager (di cui ho scritto nel post precedente) all'interno della nuova applicazione, lasciandolo in un progetto a sé stante. Nessun problema di compilazione (impostando opportunamente il Build Path di Eclipse), ma nessuna voglia di funzionare a runtime dentro il simulatore di BlackBerry. Per risolvere anche questo problema è stato sufficiente impostare il tipo di progetto su Library, come si vede nella schermata seguente:Per concludere una novità interessante:
  • E' finalmente uscita la versione 6.5 di NetBeans, l'ambiente di sviluppo Open Source sponsorizzato da Sun. Le innovazioni introdotte con questo rilascio sono molte e tutte interessanti, a partire dal build automatico sul save del file (alla Eclipse), fino all'integrazione di plugin specifici per la realizzazione di applicazioni in PHP. Ho seguito il rilascio di questa nuova versione fin dalle prime fasi e, pur non essendo un fan di questo IDE (si era capito?), devo dire che i miglioramenti sono visibili e certi strumenti sono ottimi, come il Profiler, intuitivo e potente.

domenica 16 novembre 2008

GridLayout per BlackBerry

Dopo aver completato lo sviluppo di IBANc, l'applicazione per la gestione di codici IBAN per BlackBerry, ho iniziato a cercare nuove esigenze per cui varrebbe la pena realizzare un software da far girare sui telefonini di RIM. Durante questo studio, mi sono reso conto che un aspetto, su cui la libreria Java del BlackBerry è carente, è la gestione del posizionamento dei componenti grafici sullo schermo. I contenitori standard (VerticalFieldManager e HorizontalFieldManager), anche se combinati fra loro, non permettono di collocare i componenti con la precisione necessaria per la realizzazione di una maschera complessa e inoltre non consentono di incolonnare i vari campi. Quest'ultima caratteristica negativa porta a risultati che, per mio gusto personale, non sono particolarmente piacevoli da vedere, come mostra abbastanza chiaramente la figura seguente:Si può notare come i vari campi di immissione siano disallineati rispetto ad un ideale asse verticale. Infine è molto complesso, se non impossibile, affiancare orizzontalmente due o più campi.
Sono quindi arrivato alla conclusione che è necessario disporre di un nuovo contenitore, sottoclasse di net.rim.device.api.ui.Manager, che fornisca funzionalità analoghe, anche se più semplici, del GridBagLayout dell'AWT di Java.
Ho deciso di chiamarlo it.datafox.bb.ui.container.GridLayoutManager, in quanto permette di disporre i componenti visuali su una griglia (GridLayout), con un numero prefissato di righe e colonne, ciascuna delle quali ha una larghezza definita dall'utilizzatore, espressa come percentuale della larghezza totale dello schermo. Per garantire una maggiore flessibilità, ho reso possibile estendere ogni campo su un numero arbitrario di righe e colonne, utilizzando un meccanismo analogo a quello del colspan/rowspan dell'HTML. La schermata seguente mostra lo stesso gruppo di componenti disposti grazie al GridLayout, utilizzando una griglia con due colonne e diverse righe.Tutti i campi di immissione, che si trovano nella seconda colonna, sono allineati verticalmente e alcuni campi speciali, come il gauge (la barra con la percentuale) o la lista, hanno un colspan pari a due e quindi occupano tutto lo spazio orizzontale disponibile. Si può anche notare che i due radio button sono posizionati sulla stessa riga, come sembra logico aspettarsi, visto che sono mutuamente esclusivi. Ho preparato anche un'altra schermata, in cui le colonne sono tre e dove ho posizionato i vari componenti con allineamenti orizzontali diversi.Per poter sfruttare le funzionalità del GridLayoutManager nel modo più semplice, ho creato anche una sottoclasse astratta di net.rim.device.api.ui.container.FullScreen, che si chiama it.datafox.bb.ui.container.FormScreen, da utilizzare per implementare i propri schermi di tipo form (maschere di visualizzazione o gestione di dati complessi). I metodi salienti del FormScreen sono il costruttore e l'add. Il costruttore ha la seguente firma:
public FormScreen(int numRows, int numCols, float[] colWidthPercs, long style)
e i parametri forniscono le seguenti informazioni:
  • numRows - numero di righe della griglia
  • numCols - numero di colonne della griglia
  • colWidthPercs - larghezza percentuale di ciascuna colonna
Il metodo add permette di aggiungere un campo allo schermo e ha le seguente firma:
protected void add(Field field, int x, int y, int rowspan, int colspan)
I parametri forniscono le seguenti informazioni:
  • field - campo che si vuole aggiungere allo schermo
  • x - colonna della griglia in cui si vuole inserire il campo
  • y - riga della griglia in cui si vuole inserire il campo
  • rowspan - numero di righe occupate dal campo
  • colpan - numero di colonne occupate dal campo
Quindi per creare un nuovo schermo con quattro righe e tre colonne e una dimensione relativa di 30, 40, 30 si può usare il seguente codice:
new TestScreen2(4, 3, new float[] { 30, 40, 30 },...)
e per aggiungere un'etichetta nella terza riga, in modo che la occupi tutta (colspan = 3) e che sia allineata al centro, si può scrivere in questo modo:
add(new LabelField("Label3", Field.FIELD_HCENTER), 0, 2, 1, 3)
Il codice sorgente del GridLayoutManager, del FormScreen e degli schermi di esempio riportati nelle schermate precedenti è scaricabile dal sito Web di DataFox. Ho testato questi componenti con tutti i simulatori dei dispositivi più recenti (dall'8100 al 9500) e il risultato è sempre stato positivo.

Restando in tema di sviluppo software per BlackBerry, vi segnalo un'interessante novità, cioè la nuova versione beta del plugin per Eclipse fornito da RIM. Questo rilascio è compatibile con Eclipse 3.4 e mette a disposizione tutti gli strumenti presenti nel JDE, come la firma del codice e la possibilità di scegliere la versione della libreria e del simulatore da utilizzare, integrandoli nel ben più potente ambiente di sviluppo Open Source. Da quando l'ho installato non ho riscontrato problemi e il suo utilizzo è veramente piacevole e produttivo, quindi lo consiglio a tutti quelli che realizzano software per BlackBerry.

lunedì 10 novembre 2008

Estensioni per Joomla! 1.5 - Seconda parte

Proseguo con la rassegna di estensioni per Joomla! 1.5 che ho potuto provare e che ho trovato interessanti. Quelle di cui parlo in questo post e nei prossimi sono state utilizzate nel sito dimostrativo Monitor Investimenti, di cui potete trovare una descrizione sulla pagina dedicata alla realizzazione di siti Web con Joomla!, pubblicata sul sito di DataFox. Potete trovare anche un'immagine di alcune di queste estensioni nella pagina dedicata alle schermate di Monitor Investimenti.
  • MorfeoShow - è un componente aggiuntivo che permette di creare gallerie di immagini e di visualizzarle all'interno di pagine con diversi effetti speciali, ottenuti sia tramite Javascript, che in Flash. Grazie al potente strumento di amministrazione è possibile caricare le immagini, associandole alle varie gallerie, e arricchirle con informazioni che vengono visualizzate in popup sulla pagina. Le gallerie possono essere associate ad una voce di menù oppure incorporate all'interno di una pagina grazie ad un apposito plugin.
  • JoomlaFCK Editor - è un plugin che rimpiazza l'editor WYSIWYG di pagine HTML standard fornito con Joomla!. Oltre a fornire nuove funzionalità e migliorie, ha il vantaggio di poter essere ridimensionato a piacere e quindi si adatta facilmente anche a quei template grafici che hanno una larghezza limitata.
  • QContacts - è un'estensione che migliora e potenzia il componente Contatti presente nell'installazione base di Joomla!. Permette di creare form per la richiesta di informazioni, compilabili dai visitatori della parte pubblica del sito. Si possono visualizzare varie informazioni relative al contatto (nome, cognome, indirizzo email, sito Web, telefono, ecc.) e si può richiedere che il visitatore inserisca alcuni dati, selezionalibili fra quelli standard e fra quelli personalizzabili. Permette anche di rendere obbligatoria l'immissione di un captcha (immagine di controllo) per bloccare richieste automatiche e spam.
Per la serie ultime notizie da Internet, riporto queste news relative a due strumenti di sviluppo prodotti da Oracle:
  • JDeveloper - è finalmente uscita la versione 11g dell'IDE Java alternativo del grande produttore di database. L'ho sempre ritenuto uno strumento molto interessante e potente, soprattutto per la sua integrazione con il database omonimo e per la ricchezza di funzionalità della libreria ADF. Resta da capire quale può essere il suo destino, considerando anche il fatto che Oracle, dopo l'acquisizione di BEA, dispone di un altro IDE basato su Eclipse, Workshop for WebLogic.
  • SQL Developer Data Modeling - è la versione, ancora in fase di sviluppo, rivolta ai progettisti e ai disegnatori di database del consolidato SQL Developer, lo strumento per la gestione e l'accesso ai database, essenzialmente un'interfaccia molto evoluta per la scrittura di codice SQL. Spero di riuscire a provare questo nuovo tool e di fornirne una piccola guida/recensione in un prossimo post.

Indicizzazione su Google

Un post un po' diverso da solito, questo che state leggendo, e che si ricollega a quello di ieri sul cambio di indirizzo della pagina principale sullo sviluppo di software per BlackBerry. Diverso soprattutto perché, invece di proporre risposte e soluzioni a problemi più o meno comuni, lascia aperti diversi interrogativi sul comportamento del motore di indicizzazione di Google, che non sono proprio riuscito a spiegarmi. Anzi, spero che qualche SEO più esperto di me possa darmi qualche delucidazione su quello che è successo.
Dopo aver pubblicato sul sito Web di DataFox cinque pagine relative ai nostri progetti per nuove applicazioni per la piattaforma BlackBerry, precisamente:
sono rimasto sorpreso del fatto che per certe ricerche (ad esempio: "sviluppo software blackberry") alcune di queste pagine finivano in prima pagina o addirittura prime su Google. Poi, in modo abbstanza misterioso, la pagina principale (quella sullo sviluppo di applicazioni per BlackBerry) è sparita dall'indice di Google e di conseguenza dai risultati della ricerca. Mi sono spiegato questo comportamento con il fatto che, in un eccesso di zelo, avevo copiato il contenuto della pagina in questione su un sito di directory aziendali e quindi ho pensato che Google, trovando un contenuto duplicato, avesse eliminato la pagina del sito di DataFox. Quindi mi sono affrettato a cancellare il testo dal sito altrui e ad aggiornare indirizzo e contenuto del nostro, nella speranza di rivedere la pagina nell'indice del motore di ricerca. Effettivamente è riapparsa, peccato che siano scomparse le altre e che non sia più in cima alla classifica! Vorrei capire esattamente che cosa è successo e quindi cercherò in Rete, in mezzo a tutto il materiale per SEO che si trova in giro, qualche spiegazione.

domenica 9 novembre 2008

Aggiornamento pagina e link su sviluppo software per BlackBerry

Per problemi di indicizzazione da parte di Google, ho dovuto aggiornare il contenuto e il link della pagina principale con le informazioni sullo sviluppo di software e realizzazione di applicazioni per BlackBerry, pubblicata pochi giorni fa sul sito di DataFox. Mi scuso per l'inconveniente e chiedo a tutti di modificare i propri favoriti per puntare al nuovo indirizzo.

venerdì 7 novembre 2008

L'ultima versione di RoundedVerticalFieldManager

Ho copiato sul server Web di DataFox l'ultima versione del codice sorgente del componente per BlackBerry che ho sviluppato, cioè il RoundedVerticalFieldManager. Durante la realizzazione dell'applicazione IBANc, questo contenitore con bordi stondati è stato utilizzato e testato molto più approfonditamente. Quindi sono emerse diverse problematiche nel ridisegno di alcune zone dopo la visualizzazione di dialoghi di grosse dimensioni. È stato necessario inserire diverso codice di debug per capire esattamente i rettangoli interessati e di conseguenza le operazioni da compiere per ottenere i giusti riempimenti. Per sicurezza (e un po' di scaramanzia ;-)) ho lasciato commentate le varie righe con la stampa su console dei messaggi con le informazioni che mi servivano. Adesso, dopo diverse prove, il risultato mi sembra soddisfacente e piacevole da vedere, come potete osservare nell'immagine seguente, che ho ripreso dalla pagina con le schermate di IBANc.
Lo schermo è stato diviso in tre sezioni verticali, ciscuna delle quali contiene un RoundedVerticalFieldManager. Il primo serve per mostrare il codice IBAN risultante dall'elaborazione dei dati inseriti dall'utente. Il secondo contiene i singoli campi che costituiscono il codice IBAN e le informazioni di supporto (come la descrizione del record su cui si sta lavorando). Il terzo contiene il pulsante Verifica, con cui si richiede il controllo dei dati inseriti e la creazione del codice IBAN. Per osservare il contenitore all'opera, oltre a scaricare e installare sul proprio BlackBerry l'applicazione IBANc, è anche possibile visionare la dimostrazione video di IBANc.

A partire da questo post, prima di salutarvi, pubblicherò alcune notizie su strumenti e tecnologie che utilizzo o che mi sembrano interessanti e per i quali c'è qualche novità di rilievo:
  • È uscita la nuova e attesa versione 8 di IntelliJ IDEA. Le novità e le modifiche sembrano numerose e importanti e riguardano tutti gli aspetti dello sviluppo di applicazioni su piattaforma Java. Ho scaricato e installato la versione trial, spero di riuscire a provarla e di poter raccontare le prime impressini di utilizzo di questo strumento.
  • È disponibile la versione 0.9 di ZK Studio, il plugin per Eclipse rivolto agli utilizzatori del framework ZK. Anche per questo software sono molte le migliorie rispetto alle versioni precedenti, in particolare l'editor visuale di codice ZUL, che permette di avere un'anteprima del'aspetto grafico della pagina. Ritengo che la piattaforma ZK sia molto interessante e sto aspettando l'occasione giusta per metterla alla prova su un progetto reale.

giovedì 6 novembre 2008

Rieccomi!

È quasi passato un mese dall'ultimo post e forse qualcuno ha cominciato a pensare che fossi partito o avessi cambiato mestiere. Per fortuna (o purtroppo, dipende dai punti di vista) sono ancora qui e finalmente riesco di nuovo a farmi sentire. A dire la verità non sono stato con le mani in mano: oltre a seguire i soliti progetti, mi sono impegnato molto per completare, con annessi e connessi, due nuove sezioni del sito di DataFox, cioè la realizzazione di siti con Joomla! e lo sviluppo di software per BlackBerry.
Nella prima, oltre ad esaminare le caratteristiche del nostro CMS favorito (appunto Joomla!) e le possibilità di realizzazione di nuovi siti o di migrazione di siti esistenti, viene presentato anche Monitor Investimenti, un sito dimostrativo interamente sviluppato con Joomla! e arricchito con molte estensioni, utili per rendendere la navigazione più piacevole e fornire l'accesso anche a contenuti multimediali (audio, video, documenti, ecc.). Di seguito una schermata del sito e un invito a visitarlo e a lasciare qualche commento.Nella seconda, dopo aver esaminato alcune delle caratteristiche più interessati della piattaforma BlackBerry dal punto di vista di chi sviluppa software, viene presentata la nostra prima applicazione, cioè IBANc, una rubrica specializzata per la gestione di codici IBAN, cioè quei codici impossibili da ricordare che identificano univocamente i conti correnti e che hanno sostituito le coordinate bancarie. Questo software per BlackBerry, pur essendo semplice, è completo e funzionante (è anche firmato con un certificato digitale rilasciato da RIM, in quanto usa funzioni "riservate") ed è possibile scaricarlo gratuitamente e installarlo seguendo la procedura indicata sul sito Web. Vi lascio una schermata come assaggio, sperando che qualcuno abbia voglia di provarlo.
Per adesso termino qui, ma vi anticipo alcuni degli argomenti di cui parlerò nei prossimi post, che penso di scrivere a brevissimo, uno dietro l'altro.
  • Nuova versione del RoundedVerticalFieldManager - durante lo sviluppo di IBANc ho trovato alcuni problemi, che sono stati risolti con un certo impegno, e questo dovrebbe essere il rilascio definitivo;
  • Nuove estensioni per Joomla! - prosegue la panoramica sulle estensioni per Joomla! che ritengo più valide e che ho utilizzato in qualche sito Web;
  • Trucchi per Eclipse - soluzioni a problemi inspiegabili che a volte si verificano con l'ambiente di sviluppo per Java;
  • Sviluppo di applicazioni per FaceBook - ho iniziato a lavorare con le API messe a disposizione dal sito di Social Networking e ci sono diverse scoperte da condividere.
Ricerca personalizzata