Com\’è dura la professione!

9 dicembre 2007

Android: visualizzare voci in una ListView

Filed under: Android,Java,Programmazione — lbell @ 11:34
Tags:

Il modo più semplice in Android di visualizzare voci con un oggetto ListView è utilizzando l’oggetto ArrayAdapter<String>, che agisce da interfaccia tra una rappresentazione testuale dei dati e la ListView. Il suo costruttore accetta un id di risorsa di tipo Layout, contenente una TextView utilizzata ad ogni riga per la visualizzazione dei dati.
Se dovessimo avere l’esigenza di presentare in modo diverso le varie voci possiamo farlo in modo semplice, sfruttando l’ottima ingegnerizzazione della classe Adapter generica, parametrizzandola per i nostri scopi. Supponiamo di dover mostrare un’icona a fianco della descrizione di una voce nel caso che il testo di quest’ultima contenga una certa sequenza di caratteri; per fare un esempio semplice controlliamo solo che il testo inizi per ‘a’. (more…)

Annunci

3 maggio 2007

ApacheDS, server LDAP da Apache (e LDAP Studio)

Filed under: Java,Open Source,Programmazione — lbell @ 20:27

Qualche giorno fa è stato rilasciata una nuova versione (1.5) di ApacheDS, un server LDAP scritto interamente in Java. LDAP è ormai diventato centrale nel mondo IT per la gestione delle identità degli utenti in ambienti di una certa complessità. Microsoft vi ha decisamente puntato, mentre il mondo Open Source è un po’ più statico a questo riguardo.

ApacheDS, server nato da un progetto Apache, ha diverse caratteristiche interessanti: è scritto in Java, è embeddable, estensibile, supporta filtri, trigger (che possono implementare integrità referenziale) e stored procedure.

Sono previsti tool di configurazione per semplificare la vita agli utilizzatori ed esiste già uno strumento, LDAP Studio basato su Eclipse che, oltre a permettere la navigazione dei dati, può editare gli schemi (e presto modificare direttamente ads) e presto avrà altre funzionalità specifiche per ads.

Sul sito (http://directory.apache.org) ci sono guide e tutorial.

A dire la verità dopo alcune prove, ho riscontrato qualche problema con il consumo di memoria. La quantità di memoria consigliata e di default è di 384MB ( da settare nel file di gestione del servizio) ma sulla mia macchina con solo 512MB con tale valore ads non è riuscito a partire causa allocazioni fallite. Ho dovuto abbassare il limite ad un più ragionevole 128 MB per avere la soddisfazione di vederlo partire.

Oltre al sito del progetto si può trovare una presentazione sul sito della conferenza europea di Apache 2007 http://www.eu.apachecon.com/

LDAP Studio

17 gennaio 2007

Il padre di WebSphere alla Microsoft

Filed under: Java,Microsoft,Programmazione — lbell @ 20:23

In controtendenza rispetto agli ultimi movimenti ed annunciato da uno scarno comunicato del sito Microsoft, stavolta è stata la Microsoft ad aggiudicarsi un pezzo da 90 dello sviluppo ovvero il padre di WebSphere Donald Ferguson, figura importante di IBM, che ha lavorato in settori in cui ci sono molte parole magiche: Rational, Tivoli, Web Services SOA, DB2, patterns, Web 2.0. Per inciso all’IBM svolgeva il ruolo di Chief Architect. Ma allora chi lavora con J2EE non fa sempre le cose male!

29 novembre 2006

Web Services con J2SE6

Filed under: Java,Programmazione — lbell @ 22:33

Una delle cose che i programmatori Java invidiano ai loro colleghi che utilizzano .net sono le annotazioni, un modo per marcare classi o metodi per indicare funzionalità speciali. Con le nuove versioni di Java (1.6 in particolare) è possibile utilizzare le annotazioni anche in questo linguaggio e nel nostro caso le sfrutteremo per la creazione di un servizio web di esempio con J2SE6.

(more…)

12 settembre 2006

From Java to Ruby

Filed under: Java,Programmazione,RubyOnRails — lbell @ 20:13

Finalmente il libro di Bruce Tate è arrivato. Dalla prefazione leggo ‘Sapevo che Java non era la soluzione a tutti i problemi’ e fin qui nulla di strano. Ma prosegue con ‘vedevo che i visionari di Java lo stavano abbandonando man mano che riconoscevano problemi di produttività e di complessità’ e qui la cosa si fa interessante. Poi si parla di proliferazione di framework, di complessità crescente del mondo Java, mentre l’esplosione di Ruby sta conquistando gli sviluppatori con la sua rapidità di implementazione. La parola d’ordine di Ruby e Rails è semplicità e produttività.
Il libro sembra interessante e orientato alla valutazione della gestione di progetti software con i due linguaggi e rispettivi framework, proprio il tipo di cosa che può far finire una carriera lavorativa. Una lettura interessante, ma potrà cambiare il mio lavoro? Spero solo che non sia la solita agiografia; a questo mondo c’è certamente posto sia per Ruby che per Java. A Ruby però ora come ora mancano diverse funzionalità di tipo ‘enterprise’ come ad esempio le transazioni distribuite. Che il libro sia la chiave per una integrazione felice?

3 agosto 2006

J2EE, l’elefante

Filed under: Java,Programmazione — lbell @ 20:27

E’ da un po’ di tempo che J2EE viene citato come la pecora nera della programmazione web. Non stupisce che chi usa un framework come rails lo ritenga pesante, dalla configurazione farraginosa e complicata, che chi utilizza .net come piattaforma di riferimento ne veda soprattutto i difetti, che non vada giù a chi usa linguaggi di script come Perl, Php e Python, tanto che qualcuno lo chiama in causa scrivendo storielle. Il colmo è però arrivato con un post di de Icaza, il fondatore di Mono, sul suo blog, in cui si paragona il peggio di Avalon a J2EE.

18 maggio 2006

Tutti matti per Ajax, specialmente Google

Filed under: Java,Programmazione — lbell @ 21:02

Anche Google rilascia un toolkit basato su Java per Ajax e lo fa mentre Microsoft rilascia il suo Atlas (allora la concorrenza funziona!). Sara' possibile rilasciare componenti (Widgets) in librerie (file jar) per permetterne il riuso in vari progetti. Il codice Java sara' compilato in un Javascript funzionate su diversi browser. Una caratteristica notevole rispetto a tutti gli altri toolkit e' che nella versione hosted, in fase di debugging, il programma risultante funzionerà in una macchina virtuale permettendo un debug agevole. Il generatore di Javascript permetterà ai programmatori di utilizzare principalmente un solo linguaggio per lo sviluppo ed e' interessante come idea. La strada per le nuove applicazioni web sembra tracciata, ma il supporto dei browser ad Ajax e' ancora troppo scarso per costruire agevolmente applicazioni complesse, mentre la notizia vera e' che Google inizia timidamente a dare battaglia sul terreno su cui Microsoft prospera: gli sviluppatori.

Riferimento: http://code.google.com/webtoolkit/

11 maggio 2006

Java vs Ruby (J2EE vs RubyOnRails)

Filed under: Java,RubyOnRails — lbell @ 21:32

La filosofia di Ruby e Java e' opposta ed i loro framework più famosi (Rails e J2EE se e' corretto confrontarli dal punto di vista operativo) lo testimoniano. In Java ogni energia e' dedicata a gestire la vita degli oggetti di base di cui si occupa a partire dall'infrastruttura, alla sicurezza, all'autenticazione, al deployment. Java costruisce una architettura di tipo enterprise in cui si può pensare, rispettando una serie interminabile di specifiche, di rendere indipendenti e sostituibili gli ambienti di produzione di un componente da quello di installazione e di funzionamento tanto da lasciar utilizzare diversi compilatori e application server anche se la pratica dice che le cose non sono mai così semplici. Il prezzo di questo meccanismo e' la presenza di una quantità di files di configurazione che diventano un incubo da controllare e manutenere e l'uso obbligatorio di IDE o strumenti di automazione dei dettagli delle fasi di configurazione dei componenti. Con J2EE assume importanza la figura dell'integratore di sistemi il cui scopo e' di configurare e legare fra loro i vari componenti.

La configurazione e' quanto più possibile separata dagli oggetti su cui deve operare e cio' ha una sua importanza in termini di complessità. RoR al contrario sembra fatto apposta per costruire programmi in modo veloce. E' pieno di convenzioni di tutti i tipi e la configurazione viene posta quanto più vicino possibile agli oggetti.

Le relazioni fra i models vengono vengono inserite non in un file di configurazione in balia dell'integratore, ma nei models stessi. Ogni aspetto del framework e' pienamente configurabile ma e' tutto studiato per intervenire il meno possibile, utilizzando generatori di codice e convenzioni basate su corrispondenze tra nomi delle classi e degli oggetti su database e files.

Le due filosofie di base sono cosi' diverse da far ritenere i due ambienti come complementari. A Ruby probabilmente manca un ambiente di tipo enterprise, con tutto quello che comporta (transazioni distribuite ecc. ) con varie funzionalità che Java e .Net hanno acquisito con il tempo e con uno sforzo di design non indifferente. Un ambiente di questo tipo tuttavia spesso non e' indispensabile nel caso di siti di dimensioni medio-piccoli in cui quello che conta e' minimizzare il tempo di sviluppo e di consegna. Un punto a favore di Ruby e' che la sua concisione aiuta il programmatore a fare meno sforzi mnemonici nel ricordare i dettagli degli oggetti su cui lavora, di contro le trappole tese dalle numerose convenzioni utilizzate, sono insidiose.

10 maggio 2006

Java i CSS e le stampe

Filed under: Java — lbell @ 18:17

Per un programma stampare e' una delle sfide piu' difficili, visto che le esigenze dei clienti sono le piu' svariate. Con il recente rilascio dell' ennesima versione di birt (www.eclipse.org/birt) si aprono prospettive interessanti per la reportistica Java. Per chi vuole fornire ai propri clienti anche il designer (integrato in Eclipse) esistono comunque difetti importanti. In particolare, tralasciando varie scomodità, la filosofia di implementazione ricalca lo schema dei CSS. Occorre quindi definire il layout in base a tabelle, cosa poco intuitiva per un non programmatore, ma soprattutto non e' possibile stampare formulari a formato fisso come quello della busta paga, senza ricorrere a trucchi poco eleganti, ( se e' possibile spero che qualcuno me lo spieghi ). Ai CSS secondo me e' sempre storicamente mancato un buon sistema di gestione colonne. Per un uso di reportistica generico invece sembra piu' che adatto, una delle perle che si trovano navigando nei progetti Open Source.

Crea un sito o un blog gratuitamente presso WordPress.com.