Skip to content
Archive of posts filed under the Misc category.

Livelli di logging e consigli per usarli

Non tutti sono soliti loggare cosa sta succedendo durante l’esecuzione di un’applicazione. E questo e’ il MALE, c’e’ poco da dire! Altri invece, pur loggando, non sanno mai quando loggare come trace, debug, info oppure warning, e spesso si ritrovano ad usare uno solo di questi valori, assieme al canonico error per segnalare l’accadimento di disastri.

Ho trovato su questo post una guida che puo’ aiutare a decidere “dove va cosa”:

ERROR: something terribly wrong had happened, that must be investigated immediately. No system can tolerate items logged on this level. Example: NPE, database unavailable, mission critical use case cannot be continued.

WARN: the process might be continued, but take extra caution. Actually I always wanted to have two levels here: one for obvious problems where work-around exists (for example: “Current data unavailable, using cached values”) and second (name it: ATTENTION) for potential problems and suggestions. Example: “Application running in development mode” or “Administration console is not secured with a password”. The application can tolerate warning messages, but they should always be justified and examined.

INFO: Important business process has finished. In ideal world, administrator or advanced user should be able to understand INFO messages and quickly find out what the application is doing. For example if an application is all about booking airplane tickets, there should be only one INFO statement per each ticket saying “[Who] booked ticket from [Where] to [Where]“. Other definition of INFO message: each action that changes the state of the application significantly (database update, external system request).
Continue reading ‘Livelli di logging e consigli per usarli’ »

Organizzare Hackathon in Italia, qualche considerazione

Dopo aver partecipato a diversi hackathon in giro per l’Europa, aver preso parte all’HackItaly a Milano lo scorso Febbraio ed essermi messo in gioco in prima linea organizzando quello della WhyMCA Mobile Conference del 21 Maggio, ecco qualche mia personale considerazione.

  • In Italia gli hackathon non sono ancora cosi’ diffusi come in altri paesi d’Europa/America. E’ un format ancora sperimentale e sono pochi i “ricettivi” nei confronti di queste iniziative. Per fortuna i partecipanti sono tutti parecchie spanne avanti rispetto alla media, quindi la qualita’ dei presenti e’ gia’ di per se’ una buona garanzia della riuscita dell’evento.
  • In altri paesi e’ usuale fare hackathon che vanno dal tardo pomeriggio del venerdi’ alla mattina del giorno seguente, o addirittura durante tutto il weekend. In Italia non penso ci sia ancora la cultura per farlo. La data ideale per beccare anche programmatori senior e’ quella quindi del sabato, dalla mattina alla sera. Un’oretta per scaldare i motori e presentare le API, 9-10 ore per realizzare gli hack e 3 minuti ad ogni team per presentare quanto realizzato (consideratene almeno 6 reali tra cambi di scena, collegamento cavi, imprevisti vari)
  • Nella presentazione delle API, sopratutto se queste trattano temi d’avanguardia, e’ meglio fare qualche esempio di applicazione “entusiasmante” che sia da stimolo ai partecipanti. Il rischio e’ che non venga percepito il valore innovativo oppure non si riescano ad immaginare scenari d’uso da realizzare durante l’hackathon.
  • I premi messi in palio contano, eccome se contano. Possono essere di qualunque natura, non necessariamente legati al prodotto presentato, l’importante e’ che abbiano il loro appeal per i partecipanti. Ho sentito team che sceglievano alcune tecnologie piuttosto di altre solo perche’ i premi in palio erano piu’ interessanti, anche se sapevo di aver piu’ partecipanti a contendersi la vittoria. Buoni spesa di qualunque tipo, viaggi, oggetti utili. Evitiamo pero’ le nerdate: sono carine, ma un po’ fine a se stesse.
  • Il luogo geografico ha la sua importanza. Trovare hacker su Milano o Roma e’ piu’ facile che trovarli ad Ancona (lo dico perche’ un po’ conosco l’ambiente di tutte e 3 le citta’ indicate). All’HackItaly eravamo circa una dozzina di team, al WhyMCA sei hanno presentato le loro creazioni. Sotto i venticinque-trenta partecipanti si rischia di perdere un po’ il senso della competizione, non fondamentale per un hackathon, ma comunque ben accetta.
  • Si possono organizzare con successo hackathon verticali (su un certo tipo di dispositivo come i tablet, oppure su uno specifico sistema operativo), hackathon orizzontali (tutte le api che parlano di musica, oppure di social reading, oppure di open data), oppure trasversali (tecnologie + vincoli di piattaforma, come la musica sul mobile, oppure gli opendata con drupal ecc)
  • Gli hackathon sono una grande occasione di innovazione, anche per i fornitori di API che vi partecipano, soprattutto se sono startup con prodotti in evoluzione. Nuove idee possono venire sia dagli hacker stessi, sia guardando come si stanno muovendo altri attori dello stesso settore. Anche Nokia, nel mobile hackathon WhyMCA, ha detto di aver imparato qualcosa di nuovo ;)
  • Coinvolgimento massiccio. Evento dopo evento, si sta creando anche in Italia una base di partecipanti. Stuzzichiamoli, invitiamoli a portare un nuovo amico, facciamo che siano i nostri hub informativi. Non siamo ancora in quella fase dove le persone arrivano da sole, occorre invogliarle ed attirarle a se’. Poi magari, tra un paio d’anni, non ce ne sara’ piu’ bisogno.
  • Gli hackathon devono diventare (imperativo voluto) una grande occasione di raccolta e recluiting di persone e di idee.
  • Ci sarebbe da coinvolgere le universita’ nell’organizzazione di questi eventi. Sarebbe qualcosa a costo praticamente zero per gli organizzatori e sarebbe un ottimo modo di mettere in contatto talenti in erba con chi e’ interessato a loro. E sarebbe anche un modo per far avvicinare gli studenti al mondo reale, che ce n’e’ proprio bisogno. Sono stufo di vedere conferenze in Italia con pochissimi studenti e tanti lavoratori. Ragazzi, svegliatevi: sono punti in piu’ sul vostro CV, oltre che occasioni per capire veramente cosa c’e’ qui fuori e dove stiamo andando!
  • Filmare, fotografare, condividere e diffondere il piu’ possibile. C’e’ bisogno di far percepire l’entusiasmo e la qualita’ di questo tipo di “innovazione che viene dal basso”. Non lasciamola confinata e chiusa dentro una stanza. A meno di non essere dei veterani, le emozioni che si provano durante un hackathon sono uniche, non puoi capirle finche’ non partecipi.
  • Piccola postilla personale: facciamo in modo che non ci sia niente di male se anche gli organizzatori partecipano: vi garantisco che non e’ bello pensare un evento, raccontare il tuo entusiamo per l’iniziativa e contagiare chi di dovere, essere presente dal suo inizio alla fine e… e non poter scrivere codice da mettere in competizione con gli altri!

Felice di sentire critiche/integrazioni da parte vostra.

The future of Media

Un interessante video di Chris Brogan sull’evoluzione dei media e quello che ci aspettera’ nei prossimi anni.

Continue reading ‘The future of Media’ »

Nuovi contest Google, tutti banditi dall’Italia

Mi e’ capitato di notare che gli ultimi contest organizzati da Google includono l’Italia tra i paesi banditi dalla competizione.

Nexus S Challenge Official Rules
ELIGIBILITY: To be eligible to enter the Contest, you must be: (1) a legal resident of and physically located in either the 50 United States or the District of Columbia, Canada (excluding the province of Quebec) or the United Kingdom;
E vabbe’, qui non e’ un gran male dato che sono molti i paesi esclusi, ma il concorso e’ vecchio ormai.

Nexus S Challenge 2 Official Rules
To be eligible to enter the Contest, you must be: (1) a legal resident of and physically located in Australia, Austria, Belgium, Canada, Croatia, Czech Republic, France, Germany, Greece, Hong Kong, Ireland, Indonesia, Netherlands, Philippines, Russia, Singapore, Spain, South Korea, Switzerland, Taiwan, Thailand, the United Kingdom or the 50 United States and the District of Columbia.
Nuovo giro del precedente concorso, ancora tra gli esclusi, nonostante la lista delle nazioni si sia allargata parecchio!

Google Code Jam 2011
The Contest is void in Quebec, Italy, Saudi Arabia and where prohibited by law.
E gia’ qui la cosa si fa interessante: siamo a livello di Quebec e Arabia Saudita. Wow, che emozione!

Poi mi sono ricordato che questo problema ha radici gia’ nel lontano 2007,  in occasione del primo Android Developer Challenge

The Android Developer Challenge is open to individuals, teams of individuals, and business entities. While we seek to make the Challenge open worldwide, we cannot open the Challenge to residents of Cuba, Iran, Syria, North Korea, Sudan, and Myanmar (Burma) because of U.S. laws. In addition, the Challenge is not open to residents of Italy or Quebec because of local restrictions.

Continue reading ‘Nuovi contest Google, tutti banditi dall’Italia’ »

Cosa domandare all’azienda durante un colloquio di lavoro

Job InterviewArriva sempre, in un colloquio di lavoro, il momento in cui l’esaminatore chiede al candidato se ha qualche domanda da fare a proposito dell’azienda. Un momento fondamentale per approfondirne la conoscenza dato che, a meno di avere amici che gia’ ci lavorano, e’ difficile reperire in giro queste utilissime informazioni da “internals”, da cui potrebbe anche dipendere la vostra scelta finale.

Se si e’ alle prime esperienze, spesso questo momento e’ accompagnato da un completo vuoto mentale. Pessimo, questa inversione dei ruoli e’ troppo importante per permettersi di sprecarla. Se volete lavorare nel campo dello sviluppo software, ecco alcuni spunti per non rimanere a bocca chiusa.

Un esempio semplice e rapido per iniziare a farsi un’idea puo’ essera dato da una lista di domande pensate precedentemente, che definiscono alcune pratiche aziendali per noi importanti. La risposta non deve essere descrittiva, ma di tipo si/no. Ad ogni risposta affermativa si guadagna un punto, nessun nessun punto per quelle negative. Terminate le domande si sommano i punti ottenuti. Piu’ questo totale sara’ alto e piu’ l’azienda sara’ per noi desiderabile. Dodici utili punti con i quali partire sono contenuti in The Joel Test: 12 Steps to Better Code:

1. Do you use source control?
2. Can you make a build in one step?
3. Do you make daily builds?
4. Do you have a bug database?
5. Do you fix bugs before writing new code?
6. Do you have an up-to-date schedule?
7. Do you have a spec?
8. Do programmers have quiet working conditions?
9. Do you use the best tools money can buy?
10. Do you have testers?
11. Do new candidates write code during their interview?
12. Do you do hallway usability testing?

Piu’ il punteggio e’ alto, piu’ indichera’ una propensione dell’azienda alla strutturazione del metodo di lavoro, un’attenzione alla qualita’ del codice prodotto e all’adozione di un processo di gestione del ciclo di vita delle applicazioni articolato e completo sotto ogni aspetto. Se i punti ottenuti sono pochi, non passera’ molto tempo prima di trovarsi a picchiare la testa per cercare di capire chi ha fatto una modifica che ha rotto l’applicazione, quando e’ stata fatta, come mai non se ne e’ mai accorto nessuno e perche’ ora siete voi che dovete metterci una pezza. O a dovervi inventare strani e artigianali strumenti per mettere un po’ di ordine delle miriade di release, backup, componenti da collegare tra loro senza sapere con precisione come fare, ma tentando, tentando, tentando… Ne vale la pena, soprattutto se gli straodinari non sono pagati?

Continue reading ‘Cosa domandare all’azienda durante un colloquio di lavoro’ »

Piccoli problemi quotidiani con Eclipse

Open Type (Ctrl-Shift-T) non riesce a trovare nessuna classe

Capita che il task di indicizzazione di Eclipse si corrompa di tanto in tanto, quindi Open Type e altre funzioni non riescono piu’ a tirare fuori i risultati aspettati. Per risolvere il problema, cancellare tutti i file nella directory <Workspace>/.metadata/.plugins/org.eclipse.jdt.core. Maggiori dettagli qui.

 

L’autocomplete di Eclipse 3.6 Elios e’ lento con il plugin Android ADT (freezing code assist)

Capita che in alcune installazioni di Eclipse con il plugin per sviluppare con Android, l’autocomplete si blocchi per diversi secondi (anche 30) per poi riprendersi, e solo sugli oggetti che fanno parte del package Android. Problema fastidioso, e la soluzione proposta e’ alquanto bizzarra, ma sembra funzioni a diversi. Per la cronaca, a me magiamente e’ apparso, magicamente e’ scomparso (e dopo qualche aggiornamento dell’ADT). Comunque sembra sia stata risolta dalla versione 3.6 SP2 di Eclipse.

 

Inoltre, un utile post su alcune delle shortcut per Eclipse piu’ usate.

Hackitaly, Beintoo e le OVI Maps Rendering API di Nokia

5 Febbraio, Milano: Stefano Bernardi e Massimo Ciociola hanno organizzato davvero una bella iniziativa: l’Hackitaly, una competizione dove sviluppatori di tutti i generi si trovano per una full-immersion di 10 ore di programmazione, alla ricerca del mashup tra le tante API presentate da diverse aziende e startup.

Assieme a Antonio e Sam, improvvisati compagni di team trovati la mattina stessa, abbiamo creato Contestr, un’idea che ho buttato giu’ su un foglio di carta paglia la sera prima al pub: qualcosa per organizzare delle gare, dei contesti appunto, ognuno dei quali composta da diverse prove da superare: originariamente pensato per lo snowboard, queste contemplavano gare di velocita’, gare di distanza percorsa, gare di trick eseguiti (180, 360 ed altro), tutti controllati e trasmessi automaticamente per mezzo di uno smartphone dotato di gps e accelerometro. Nel corso della mattinata poi, sono diventati task di checkin (trovarsi in un certo punto data una foto del luogo), task di velocita’ e task di record (registrare un dato suono). Ognuno di questi task, se eseguiti, fanno guadagnare dei punti che si possono controllare nella classicia del contest. Oltre al divertimento, i migliori partecipanti guadagnano punti sul sistema di gamification di Beintoo, con la possibilita’ di ricevere regali, coupon e altri benefit.

Mentre Magnum si e’ occupato del sito e Sam dell’interfacciamento del nostro sistema con Beintoo, io ho realizzato il client per Android. Scopo del client visualizzare i contest presenti, sceglierne uno e poi risolvere i task di cui e’ composto. 10 serratissime ore di programmazione, idee ed adrinalina.

Continue reading ‘Hackitaly, Beintoo e le OVI Maps Rendering API di Nokia’ »

Eventi ed incontri per sviluppatori, prevedo mesi di fuoco!

Da qui a Giugno ci aspettano un bel po’ di eventi interessanti, tutti dedicati allo sviluppo: ad alcuni partecipero’ di sicuro, altri cerchero’ di seguirli da lontano.

  • 5 Febbraio, Milano – HackItaly: date un po’ di API, libero sfogo per realizzare qualunque applicazioni che le usa, da presentare in un contest finale ricco di premi. Presente.
  • 19 Febbraio, Milano – UGIALT.net Conf: dedicata principalmente al mondo .Net, ci sara’ modo di dare uno sguardo a diverse tecnologie, anche complementari, per chi lavora ogni giorno nel mondo Microsoft.
  • 5 Marzo, Roma – Codemotion: dalle ceneri del Javaday, nasce un nuovo evento, aperto a tutti i linguaggi di sviluppo. Presente.
  • 18 Marzo, Bologna – MeeGo Italian Day: sviluppatori italiani per MeeGo a raccolta.
  • 25 Marzo, Brescia: NoSQL: MongoDB, RavedDB, CouchDB vi dicono qualcosa? Positiva o negativa che sia la vostra risposta, non potete perdervi questo evento sui database non relazionali.
  • 26 Marzo, Roma – DotNetCampus: ASP.Net MVC, Azure, Windows Phone 7 e design: un evento tutto incentrato sul mondo Microsoft.
  • 9 Aprile, Milano – DotNetCampus: Idem come sopra, ma a Milano. Potrei anche esserci.
  • 11-12 Maggio, Verona – jsday: esordio per questa nuova conferenza tutta dedicata allo sviluppo JavaScript. Dagli stessi organizzatori dell’evento successivo. A pagamento.
  • 12-14 Maggio, Verona – phpDay: l’annuale e ormai consueta conferenza sul mondo php. Non ha bisogno di ulteriori presentazioni. A pagamento
  • 21-22 Maggio, Milano: WhyMCA: l’evento italiano dedicato alla programmazione per il mobile, multipiattaforma e multiveduta. Quest’anno, oltre ai 2 giorni di conferenze su tutte le piattaforme, cercheremo di fare un hackaton notturno, modello OverTheAir, con presentazioni e premiazione delle app piu’ particolari il 22. Presente, e organizzatore ;)
  • 10 Giugno, Milano: RubyDay: una giornata dedicata interamente ad un linguaggio molto in voga al momento. Presente!
  • 18-19 Giugno, Milano – Arduino Camp Italia: un evento dedicato alla piattaforma Arduino e alle sue molteplici applicazioni: presentazioni, progetti fatti realizzati dalla comunità italiana, gruppi di discussione, mini workshops e un hackday. Se riesco, anche un solo giorno, vado!
  • 20-26 Giugno, Firenze – EuroPython: la conferenza europea dedicata a Phyton. I primi 5 giorni di convegni, gli ultimi 2 di hacking con questo linguaggio. A pagamento
  • 27-28 Giugno, Firenze - BetterSoftware: non e’ proprio la conferenza piu’ tecnica tra quelle citate, ma e’ comunque piena di spunti interessanti sulle metodoligie agili e XP, un bagagli che ogni programmatore dovrebbe avere. A pagamento. Se mi vorranno come blogger anche quest’anno, ci saro’!

Tron Legacy in IMAX 3D: mai avuta un’esperienza immersiva simile!

Approfittando della mia permanenza a Seattle, ho voluto sperimentare che cosa significasse vedere un film in IMAX 3D, e ho comprato un biglietto per Tron Legacy nel Boeing Imax Cinema dello Space Center di Seattle (si, proprio quello dello Space Needle, la famosa torre simbolo della citta’), al prezzo di 13 dollari.

Per chi non lo sapesse, l’IMAX e’ una modalita’ di ripresa e proiezione di film adatta a schermi molto grandi (si parla di 22×16 metri come minimo) che, abbinata con un’impianto audio che garantisce la spazialita’ del suono a 360 gradi, da un effetto di visione davvero “ad alta definizione” del film. Ma questa modalita’, almeno agli inizi, non aveva niente a che fare con il 3D.

Beh, vedere il risultato della combinazione di queste due tecnologie mi ha fatto rimanere stupefatto e senza fiato a partire dal primo spot promozionali delle future proiezioni fino all’ultima fotogramma del film, titoli compresi. E’ indescrivibile l’effetto immersivo totale che una proiezione del genere e’ riuscita a darmi. Sembrava davvero di essere assieme agli attori, dentro la scena. Non e’ il primo film in 3D che vedo, ma nessuno, prima d’ora, mi aveva dato questa sensazione cosi’ completa. Neanche Avatar, che pure ho visto in una nuovissima sala italiana e che avevo reputato davvero un pezzo avanti nell’evoluzione della tecnica cinematografica. Almeno per me, l’IMAX 3D e’ davvero quanto di piu’ avanti ci possa essere ora nel mondo accedibile a noi semplici utenti di tutti i giorni.

Sono quindi andato a cercare subito se esistono sale IMAX in Italia: sembra che ce ne sia solo una a Riccione, mentre e’ prevista la seconda a Milano per Maggio 2011. Voglio essera alla sua inaugurazione. E consiglio a tutti quelli che possono, di andare a provare almeno per una volta un’effetto del genere.

Continue reading ‘Tron Legacy in IMAX 3D: mai avuta un’esperienza immersiva simile!’ »

Data visualization e la salute del genere umano

La sostanza non e’ tutto, conta anche la forma… O per dirla con le parole di Hans Rosling, “Having the data is not enough, I have to show it in ways people both enjoy and understand”… Per questo mi appassiono sempre ai suoi interventi su TED, dove con la semplicita’ di un’occhiata, riesce a spiegare complessi fenomeni lungo i classici due assi, piu’ quello importantissimo del tempo, su argomenti spesso collegati alla qualita’ della vita nel mondo “civilizzato” e in quello “emergente”.

Qui lo vediamo smentire diversi luoghi comuni in Let my dataset change your mindset:

Qui invece in global population growth:

Continue reading ‘Data visualization e la salute del genere umano’ »