Pensieri sparsi sul JavaDay
Quest’anno sono stato per la prima volta al javaday di Roma.
Lo sbattimento e la levataccia mattutina sono stati più che ripagati; è stata un’esperienza molto bella e mi ha dato la possibilità di seguire alcuni talk decisamente interessanti. Tra i vari che ho seguito, quelli che mi hanno incuriosito di più sono quelli incentrati sull’architettura REST e i relativi usi e implementazioni; soprattutto mi ha incuriosito notare come il progresso nell’ambido dello sviluppo web oriented procede con un’occhio rivolto al passato: alle architetture client-server, pure o quasi, e a un utilizzo del protocollo HTTP che va ben oltre il semplice trasporto di informazioni. Molto interessanti anche il talk su OpenID, che conoscevo solo per superficialmente, e quello su ROO tenuto da Massimiliano Dessì del JugSardegna. Cavolo, roo è portentoso, in dieci minuti contati si riesce a creare una semplice web application senza scrivere praticamente nemmeno una riga di codice!! Ho qualche perplessità in merito a un utilizzo di roo in applicazioni complesse, ma mi riprometto di approfondire quanto prima!
Per chi fosse interessato o incuriosito da questi argomenti, può trovare le slide dei talk nel sito del javaday roma, oppure direttamente nella pagina del programma.
Javaday IV a Roma
Anche quest’anno, è il quarto, si terrà a roma il javaday. Forse andrò o forse no, chi lo sa, in ogni caso ecco il comunicato stampa ufficiale di presentazione.
Javaday Roma, a day in a different universe
A day in a differtent universe è quello che si vivrà partecipando alla quarta edizione del Javaday Roma, sabato 30 gennaio 2010.
Una full immersion di sei ore ad altissima velocità verso nuovi universi di conoscenza. Un evento che permetterà a studenti, utenti esperti ed a semplici appassionati sia di approfondire la tecnologia sia di conoscere le ultime novità del mondo Java.
La manifestazione, organizzata direttamente dai membri della community Java romana in maniera volontaria, ha coinvolto nelle scorse edizioni migliaia di professionisti.
Durante l’evento si potrà consegnare alle aziende Sponsor il proprio curriculum vitae per avere nuove opportunità professionali.
E’ possibile partecipare anche come relatori dei seminari sottoponendo la propria proposta al comitato tecnico tramite la Call for paper pubblica.
L’ingresso al Javaday Roma è come sempre gratuito.
Per ogni informazione: http://roma.javaday.it/
Per chi fosse interessato a partecipare presentando un talk, è stata aperta la call for paper. Maggiori informazioni qui.
Rilasciato Paradigma su Sourceforge
Oggi è stata pubblicata la prima release di Paradigma, un software di supporto alle decisioni per chiunque si trovi a dover stabilire dei turni di lavoro. Paradigma è stato realizzato e pensato in ambito sanitario, quindi è perlopiù rivolto a capi reparto di ospedali e cliniche private, ma è facilmente adattabile ad altre realtà lavorative.
Paradigma è stato realizzato totalmente in Java ed è basato tutto su Struts 2, Hibernate e Velocity. In fase di sviluppo è stato usato come rdbms di riferimento PostgreSQL, ma funziona pure con HSQL e con qualche minima modifica ai file di script per ANT anche con MSSQL.
Per chiunque fosse curioso di provarlo, può trovare i sorgenti su Sourceforge.net e può ovviamente scaricarli e modificarli secondo la licenza GPL/2. Nativamente il progetto nasce come progetto Eclipse, ma credo non ci siano problemi a importarlo su Netbeans, anzi, se qualcuno lo facesse, mi farebbe piacere saperlo
A breve sarà pure disponibile il codice su svn, in modo che si possa effettivamente collaborare e, si spera, creare una community. E’ anche presente una versione standalone da utilizzare senza doversi settare l’ambiente di sviluppo, ma per il momento è utilizzabile solo su Windows, sarà presto disponibile una versione os independent, così come tutta l’applicazione.
A presto per nuove notizie!
Audio e aggiornamento del kernel di ubuntu sul MacBook pro
L’altro giorno, tra gli aggiornamenti proposti da karmic c’era quello del kernel alla versione 2.6.31-15; lancio gli aggiornamenti e fila tutto via liscio, riavvio per provare il nuovo kernel e PANICO!! Andato via l’audio dal mio macbook pro 5.5, come un novello Salvatore Zedda di Ortacesus, o anche un novello Lubrano, mi è sorta spontanea una domanda: “Come fare?!” Fortuna che san Google è venuto in aiuto alla mia mente bacata e ho trovato la soluzione a questo che, a dir la verità è un problema noto. Come ho fatto? Semplice, ho dovuto ricompilare i driver alsa con questi semplici comandi:
cd alsa-driver # cd to the right directory of course
./configure --enable-dynamic-minors --without-oss --with-cards="hda-intel"
make
sudo make install
Ovviamente la cartella alsa-driver è quella dove sono stati scompattati i sorgenti dei driver. Una volta fatto ciò, riavviate e il gioco è fatto!
Google?! Go!
Google, da poco ha annunciato la nascita di Go! il loro nuovo linguaggio di programmazione opensource. Dalla home del sito, pare che sia facile, veloce sicuro etc etc. Il mio pensiero è: “Ce n’era veramente bisogno?” ai posteri l’ardua sentenza, io intanto appena avrò un po’ di tempo lo proverò.
Eclipse Galileo e Ubuntu 9.10
Ieri ho installato eclipse galileo in Ubuntu Karmic Koala, la 9.10. Per prima cosa ho provato a creare un progetto di prova, ma mi sono reso conto che nella finestra di creazione, cliccando su finish, non riuscivo a completare la creazione. Google, ovviamente mi è giunto in aiuto e ho scoperto che è un bug noto e che è già stato risolto nella versione 3.6 di eclipse. Per chi volesse usare la 3.5 basta scrivere un piccolo script e tutto funziona liscio. Per fare ciò bisogna creare un file con estensione .sh che conterrà il seguente codice:
#!/bin/bash
export GDK_NATIVE_WINDOWS=true
/opt/eclipse/eclipse
Ovviamente /opt/eclipse/ è il percorso in cui io ho installato eclipse, percui bisognerà modificare quella riga qualora l’ide non fosse installato in quella posizione. A questo punto si rende il file eseguibile con chmod e per lanciare eclipse, non ci resta altro che eseguire lo script.
Un modo alternativo a questo, invece può essere aggiungere il comando
export GDK_NATIVE_WINDOWS=true
direttamente nel file ~/.bashrc e poi riavviare eclipse. A voi la scelta!
Maven Workshop
Vorrei segnalare a tutti che il 27 Novembre a Cagliari al DIEE si svolgerà un workshop su MAVEN di cui riporto il programma:
Maven Workshop, hands on code.
Sempre interessato a maven ma mai visto funzionare correttamente?
Problemi a gestire progetti grossi con Maven ?Porgramma workshop:
- Primi 30/40 minuti maven-calm, un set di maven best-practices che aiutano a configurare un progetto in maven in poco tempo, ma con tutte le configurazioni necessarie per avere un set completo di processi per gestire il ciclo di vita della tua applicazione (http://code.google.com/p/maven-calm/); Daremo anche un’occhiata a Nexus repository manager; Nexus ci aiutera anche nella configurazione dell’ambiente (settings.xml)
- Successivi 20/30 minuti discussione su Maven: belle/brutte esperienze, diffidenze, alternative.
- Successivi 60 minuti hands on code: un progetto semplice (gia pronto) e ognuno sui propri portatili prova a farre un deploy, una release, creare della documentazione e uploadarla su un repository, cambiare la versione di un plugin, configurare/estendere calm.
Speaker:
Maurizio is a good fella born in the north of Italy in 1980. After spending his youth in Tuscany and Rome, he started to discover Europe living two years in Valencia(Spain) -
finishing studies with some bits of work; now he’s settling down in the Netherlands with his girlfriend.Working wise, after a 5 years long rising through the ranks as a freelancer in
Italy he moved to the rainy Amsterdam due to general e-government excitement around the Open Source hype.He’s now finding his professional path in the Agile mentoring and coaching, as it resembles the most important goals of his job: being in contact with people, let them communicate and improve
processes in terms of quality and productivity, create a healthy working environment, work with happy and satisfied people, make the daily work an always stimulating and formative experienceAs a rule of thumb, he likes to open rather than close, to share rather than protect, trying to extend this approach to every bit of daily life with a smiley and positive attitude
Struts 2: Passare i messaggi della action attraverso un redirectAction
Tra i tipi di risultato messi a disposizione da Struts 2, uno tra i più usati è sicuramente “redirectAction”. Questo permette di reindirizzare l’esecuzione della nostra applicazione web verso una action subito dopo averne eseguito un’altra. Ad esempio, la configurazione:
<action name="saveOperatore" action="OperatoreAction" method="save">
<interceptor-ref name="defaultStack">
<result name="input" type="redirectAction">
<param name="actionName">addOperatore</param>
<param name="namespace">/operatore</param>
</result>
<result type="velocity">addMoreInfo.vm</result>
</action>
<action name="addOperatore" action="OperatoreAction" method="add">
<interceptor-ref name="defaultStack">
<result type="velocity">addOperatore.vm</result>
</action>
permette, qualora l’esecuzione del metodo save della classe “OperatoreAction” restituisse “input”, di richiamare il metodo della action mappato come “addOperatore”. Tipicamente il risultato “input” viene restituito in caso di validazione fallita da parte di Struts 2; con una configurazione simile gli eventuali messaggi di field error/message del ValidationAware, verrebbero persi. Per ovviare a questo problema si può usare l’interceptor MessageStoreInterceptor. Questo, se opportunamente configurato permette di preservare e propagare i messaggi del ValidationAware. Partendo dal codice precedente, il risultato sperato si ottiene utilizzando la configurazione:
<action name="saveOperatore" action="OperatoreAction" method="save">
<interceptor-ref name="store">
<param name="operationMode">STORE</param>
</interceptor-ref>
<interceptor-ref name="defaultStack">
<result name="input" type="redirectAction">
<param name="actionName">addOperatore</param>
<param name="namespace">/operatore</param>
</result>
<result type=<velocity">addMoreInfo.vm</result>
</action>
<action name="addOperatore" action="OperatoreAction" method="add">
<interceptor-ref name="store">
<param name="operationMode">RETRIEVE</param>
</interceptor-ref>
<interceptor-ref name="defaultStack">
<result type="velocity">addOperatore.vm</result>
</action>
La differenza tra i due metodi definiti, sta nell’ “operationMode” dell’interceptor “store”. Il modo STORE fa in modo che i messaggi/errori vengano messi nella sessione http, mentre il modo RETRIEVE permette di recuperarli dalla sessione e li mette nel ValidationAware. Qualora non si specificasse l’ “operationMode” il valore di default è NONE che, come si può intuire, non compie alcuna operazione.
Mac nuovo + Ubuntu 9.10 = MacBuntu
Avete da poco comprato un macbook pro, ma non volete limitarvi all’utilizzo di snow leopard? Allora fate come me, scaricate l’ultima iso di ubuntu, la 9.10 per la precisione, e seguite questa guida. Io l’ho fatto e devo dire che ha funzionato tutto come descritto; l’unica cosa che non funziona automaticamente è la retro illuminazione della tastiera, ma vabbè dai, non ci si può lamentare sempre, no?