martedì 30 giugno 2009
#
In questo periodo elettorale abbiamo lavorato con il Comune di Brescia (città in cui viviamo) per la realizzazione di un progetto che aveva come obbiettivo una prima informatizzazione del processo elettorale, non quello di front end (ossia elettori e scrutatori) ma quello di backend (raccolta delle affluenze e scrutini).
Il sistema si compone di vari moduli e noi ci siamo occupati della parte in uso nella centrale operativa per la raccolta e visualizzazione dei dati. Ma partiamo dall’inizio.
Durante i giorni delle elezioni uno dei compiti dei messi comunali è quello di girare nelle sezioni per raccogliere ad orari prestabiliti le affluenze e i risultati degli scrutini, una volta raccolti i dati questi devono essere comunicati agli addetti della centrale operativa che provvedono ad inserirli nei database e a comunicarli agli organi di competenza (prefettura, giornali, ecc…).
Quando il comune è piccolo l’operazione è abbastanza veloce e di solito i numeri tornarno, ma quando inzia ad avere alcune centinaia di sezioni il processo diventa molto lungo e soprattutto prono ad errori.
Quest’anno per semplificare queste fasi del processo il Comune di Brescia, insieme a Telecom e a noi ha sviluppato un sistema che mette a disposizione dei messi comunali delle speciali penne ottiche che riconoscono la scrittura e inviano i dati direttamente ai server del comune.
Naturalmente il sistema non è perfetto, le penne non sempre riconoscono quello che il messo ha scritto (il riconsocimento si basa su un sistema di OCR ed ha una accuratezza del 98% circa) e qui entra in gioco la nostra applicazione (conosciuta con il nome di Sampei).
Sampei è un’applicazione che mostra una console con l’elenco delle sezioni e il relativo stato (non pervenuta, corretta, errata) nelle relative fasce orarie mettendo in evidenza gli eventuali errori e permettendone la correzione. I responsabili del centro raccolta dati riescono cosi in tempo reale a visualizzare lo stato dei dati pervenuti, a correggerli qualora ci fossero errori di riconoscimento e verificare tramite una serie di controlli la congruenza dei dati pervenuti-
L’applicazione è sviluppata utilizzando il Fx 3.5, basata su WPF e su SQL Server 2005. L’abbiamo sviluppata in tempi da record (circa un mese).
Il processo è partito da un test che ci ha portato verde dopo verde ad un’architettura molto semplice (basata sul MVVM e su uno strato di servizi) ma efficace e ben mantenibile che ha supportato le elezioni Provinciali, Europoee e il referendum (nei 15 giorni tra il primo turno e il secondo turno abbiamo fatto un pesante refactoring per gestire i 3 referendum che funzionano molto diversamente rispetto agli altri tipi di elezioni).
Questo è il risultato:

Per noi è stata un’esperienza divertente (non tanto durante le notti di presidio :-D) e un’occasione per contribuire all’informatizzazione di almeno una parte del processo elettorale. Per l’anno prossimo (ci saranno le elezioni Regionali) ci sono già alcune idee per spiengere oltre il livello di informatizzazione, quindi vedremo.
martedì 9 giugno 2009
#
Si avvicina la data della conference di Bologna, manca poco al 27 giugno, sembra tutto già pronto quando esce una nuova opportunità.
Abbiamo scoperto di avere due sale a disposizione e pensavamo di utilizzare la seconda sala per organizzare degli OpenSpace estemporanei.
L’idea è questa: tutti coloro che parteciperanno avranno la possibilità di tenere una sessione. Durante la prima ora raccoglieremo le proposte estemporanee e se necessario voteremo quelle che più interessano che verranno erogate nella sala secondaria.
Questo vuol dire che tutte le sessioni non votate potranno essere comunque proposte e rivotate e se qualcuno ha avuto un’idea e non è riuscito a proporla in tempo lo puà fare direttamente alla conference.
La sala può essere anche utilizzata per continuare discussioni, scambiarsi opinioni ecc…quindi uno spazio in più per confrontarsi!
lunedì 18 maggio 2009
#
A ottobre io e Alessandro saremo agli Agile Testing Days a Berlino, la cosa più divertente è che non saremo la solo per partecipare ma anche per tenere una sessione sulla Continuous Integration.
Se desiderate avere maggiori informazioni sulla conferenza trovate tutto qui:
http://www.agiletestingdays.com/index.html
Altri dettagli sulla nostra sessione li leggerete su questo blog nelle prossime settimane.
venerdì 15 maggio 2009
#
In questo periodo stiamo lavorando ad un grosso progetto e iterazione dopo iterazione ci avviciniamo alla realease finale.
Dai vari incontri è emerso che l’interfaccia ideale per il cliente è questa:
Technorati Tags:
User Interface
lunedì 20 aprile 2009
#
Ne ho già parlato in passato ma è un tema a cui tengo e quindi insisto perchè alla base della mia carriera come molti dei professionisti che conosco, ho sempre dato molta importanza alla formazione.
Vorrei raccontare un aneddoto.
Come ogni anno a Natale io e altri colleghi prepariamo un biglietto di auguri da mandare a clienti ed amici. Di solito ci si limita agli auguri. Quest’anno facendo una riflessione sulla crisi ci è venuta l’idea di regalare ad alcuni clienti una giornata di corso gratuita (nel senso gratis come l’aria). L’idea è partita dal fatto che nei periodi di crisi in genere le aziende dovrebbero investire in formazione, hanno più tempo disponibile (visto il calo degli ordini) e saranno più preparati nel momento in cui il mercato riparte. Quindi pensavamo che l’idea di una giornata di corso gratuita fosse molto gradita.
Ebbene, dei 6 bligietti con l’offerta solo un cliente mi ha chiamato per consumare la sua giornata!
C’è un filo di amarezza in tutto questo, possibile che un’azienda che ha la possibilità di organizzare per tutto il team un corso di formazione non è mimimante interessata? Possibile che tutti i nostri imprenditori illuminati non vogliano cogliere l’occasione?
Mi sono permesso di chiedere ad uno dei destinatari del regalo per quale motivo non mi avesse ancora chiamato la risposta è stata “se faccio una giornata di corso devo tenere tutte le persone ferme per un giorno”. Non ho saputo cosa rispondere: Possibile che la formazione sia vista solo come una “perdita” di tempo?
Technorati Tags:
Formazione,
Rant
sabato 18 aprile 2009
#
Quando dobbiamo scrivere nel log le informazioni di un errore è comodo specificare oltre al classico messaggio e momento dell’esecuzione, il nome della classe e del metodo che hanno generato l’errore.
Di fronte a questa esigenza e evidenziata la mia pigrizia che mi spingeva a non ripetere ad ogni chiamata la scrittura della stringa “classe.metodo” mi sono messo alla ricerca di un modo più semplice per gestire il meccanismo.
La risposta l’ho trovata nella classe StackFrame che permette di estrarre informazioni dallo stack, risalendo n livelli fino a quello del chiamante:
1: public void Error(Exception ex)
2: {
3: StackFrame sf = new StackFrame(1);
4: _log.Error(
5: String.Concat(sf.GetMethod().DeclaringType.FullName, ".", sf.GetMethod().Name),
6: ex.Message);
7: }
Dal metodo di log risalgo lo stack di un livello per arrivare al chiamante e da questo recupero il metodo e il nome della classe.
La classe StackFrame mi da molto di più, mi permette ad esempio di sapere anche quale riga di codice ha effettuato la chiamata e qual’è il nome del file che contiene la definizione della classe.
Forse per molti questa non è una grossa novità, ma cercando tra le classi del Fx si scopre sempre qualcosa di nuovo anche se la classe StackFrame è presente già dalla versione 1.0.
Technorati Tags:
StackFrame,
Logging
mercoledì 15 aprile 2009
#
Avevo un problema con Blend3 preview che non mi permetteva di editare in modalità visuale le finestre e gli user control. Quando aprivo una window vedevo il codice XAML ma i pulsanti per passare alla “Design View” erano disabilitati.
Dopo un post sul forum di Blend e uno scambio di email con Unni Ravindranathan abbiamo trovato la soluzione.
Basta aprire il file di progetto (.csprj) e aggiungere questo elemento nella sezione PropertyGroup:
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
Probabilmente il problema era dovuto al fatto che il progetto, piuttosto datato, era stato creato con VS2008 senza SP1.
lunedì 13 aprile 2009
#
Dopo un paio di mesi di raccolta delle proposte oggi abbiamo pubblicato l’elenco e abbiamo dato inizio alla seconda fase: quella delle votazioni delle sessioni.
Abbiamo raccolto 18 sessioni tutte di altissimo livello e su svariate tematiche molto interessanti.
Siamo tutti molto soddisfatti della riuscita fino a questo momento, per noi è una conferenza delle “prime volte”: è la prima volta che tra le communiciy si fa una call for paper per dare spazio a tutti e tante proposte sono arrivate questo fa capire qunto sia fertile il terreno dei dev italiani, per molti candidati è la prima volta ma sono tutti dei grandi professionisti competenti nelle loro tematiche e soprattutto è la prima volta che organizziamo sessioni dedicate a Mono, a XNA, alla Continuous Integration, a Rhino ETL, al design delle interfacce grafiche, alle metriche del codice, ecc…ecc…
Maggiori dettagli sulle sessioni li trovate qui.
A questo punto non vi resta che esprimere le vostre 5 preferenze andando a votare qui.
sabato 4 aprile 2009
#
Dopo le date di Bologna il 21 e 22 Aprile terrò a Milano un’altra edizione del corso sul Test Driven Development in C#.
Riferimenti e informazioni si possono trovare qui, qui e qui.
Ricordo che per tutti gli iscritti allo user group UgiALT.net c’è uno sconto del 10%. Per ottenere il codice contattatemi.
Technorati Tags:
TDD,
Corsi
venerdì 13 marzo 2009
#
In questi giorni stanno arrivando parecchie proposte davvero (ma davvero) interessanti per la conferenza di fine Giugno che si terrà a Bologna.
Questa volta, a differenza del passato, stiamo raccogliendo proposte da tutto il mondo (la volta scorsa ci eravamo limitati al Belgio, questa volta una arriva nientepopodimeno che dalle Isole Bermuda!!). L’obbiettivo è di dare spazio a tutti coloro che hanno qualcosa da raccontare su argomenti legati al mondo dello sviluppo di software con particolare attenzione alle tematiche “ALT.NET”.
Sarà una conferenza innovativa e ne uscirà sicuramente una giornata interessantissima, con argomenti mai trattati prima in Italia e con nuovissimi speaker di notevole spessore. Come sempre coloro che verranno sono invitati a partecipare attivamente a tutte le sessioni a riportare la loro esperienza e a trasformarsi in speaker a loro volta: questo è il bello dell’open space!
Se c’è qualche timido che non ha ancora avuto il coraggio di inviare la propria proposta lo faccia subito all’indirizzo cfp@ugialt.net Tutte le proposte verranno votate dai partecipanti tramite un poll pubblico e le più votate entreranno nell’agenda della giornata.
Maggiori info qui: http://ugialt.net/Call%20For%20Papers.ashx