Archive for October, 2006

Aaaaargh!

Tuesday, October 31st, 2006

Scusarte il titolo… ma non ho parole:

http://uk.news.yahoo.com/28102006/356/cruise-set-star-trek.html

Non mi rovinate Spok!

ciao Piero

Live @ Linuxday 2006

Monday, October 30th, 2006

Bella esperienza, non c’è che dire.

Sabato sono stato uno dei relatori al LinuxDay di Sesto Calende. L’argomento del mio seminario è stato Ruby on Rails.

Sebbene non conosca da molto questo framework, mi ha talmente entusiasmato che ho voluto tenere una demo pubblica.
Ho diviso il seminario in due pomodori, un primo teorico di 25 minuti seguito da 5 di pausa, e un secondo pratico, dove ho mostrato come sia veramente possibile sviluppare più velocemente applicazioni Web con Rails. L’idea è stata quella di sviluppare un blog (sulla traccia della demo di DHH presente sul sito di rails), chiedendo al pubblico quali features desideravano (es. “Modifichiamo la grafica o diamo la possibilità di inserire commenti?”).

Il momento più entusiasmante è stato al termine quando mi è venuto in mente di dimostrare quanto Rails sia intuitivo:
volevo contare i commenti presenti all’interno di un post del blog, non sapevo bene come fare, ma mi sono fidato di Rails.
Dissi che non sapevo se quello che stavo per scrivere avrebbe funzionato, così scrissi:
<%= post.comments.count %>

la cosa più logica che mi venne in mente… e funzionò!

Ho approfittato dell’occasione per parlare di alcune buone abitudini di eXtreme Programming, e di come queste siano ben utilizzabili in Rails. Mi pento di non aver mostrato come fare Tdd (Test Driven Development), il problema è che forse non era la presentazione adatta e che non sono ancora padrone di questa tecnica sotto Rails.

Sono stato molto contento del feedback, oltre alle domande, ho ricevuto anche un paio di mail di ringraziamento e di richiesta di maggiori informazioni su Rails e sul varese-xpug!

Ora non mi rimane che imparare veramente bene rails!

Ciao Piero

-

Ps: Peccato che una slide conteneva dei bug…

Ubuntu Linux an Easy way to use Linux

Monday, October 30th, 2006

Chi ha detto che linux è ancora complesso da usare?

Da circa una settimana è stata rilasciata la nuova release di Ubuntu Gnu/Linux, la 6.10. Ho aggiornato il mio pc dalla versione precedente, e il processo di installazione è stato semplicissimo e molto veloce (tralasciando il fatto che ho eseguito l’upgrade via internet, percui ho scaricato circa 1.5 Gb di pacchetti).

Gnome 2.16 fa la sua bella figura, è stabile, veloce e potente. La tempo di avvio è stato dimezzato grazie alla sostituzione del vesueto SysVInit con UpStart, un demone di avvio sviluppato da Ubuntu basato su eventi.

Nell’installazione è compresa di default l’ultima release di OpenOffice la 2.0.4 che supporta finalemente un buon sistema di plugin (speriamo che porti a una evoluzione più rapida del progetto OOo).

Utilizzando prelink è possibile incrementare ancora la velocità finale del sistema.

Per quanto riguarda Internet viene incluso Firefox 2, che con le sue nuove funzionalità (come il restore dei tab) semplifica maggiormente la navigazione. Gaim è stato aggiornato alla versione 2 beta 3, e comprende diverse migliorie, sia sotto l’aspetto della Gui (è più ordinato) che delle funzionalità.

Non c’è più nessuna scusa! Passare a linux oggi non è mai stato così facile!

Ciao Piero

Linux e il Beppe nazionale….

Friday, October 27th, 2006

Per chi non leggesse il blog di Beppe Grillo, ieri è stato pubblicato un interessante articolo dal titolo “Adotta un pinguino”.

Vale la pena di leggerlo…
ciao

P

-

Update (30/10/2006): Putroppo non posso concordare con tutto ciò che dice Beppe. Non sarà molto semplice passare a Gnu/Linux in una PA. Provate a dare un’occhiata ai blog di Federico e di Moreno (link a fianco)

Bigino per Rails

Thursday, October 19th, 2006

Ecco un piccolo bigino per Ruby on Rails, da tenere a portata di mano sulla scrivania…

Ruby on Rails bigino

Java multi-threading in four steps

Wednesday, October 18th, 2006

Ecco un breve appunto per creare un’applicazione multi-threading in Java:

1) Definire una nuova classe che implementi l’interfaccia Runnable

public void Slave implements Runnable {

}

2) Inserisci un metodo run() in questa classe e inseriscici all’interno il codice che deve essere eseguito in parallelo

public void Slave implements Runnable {

public void run(){

MyApp.executeSomethingStatic();

}

}

3) Nella classe principale, che andrà eseguita parallelamente, inserisci il codice per avviare un nuovo thread della classe Slave:

Thread peasant = new Thread(new Slave()); /* Istanzio un nuovo oggetto di tipo thread */

t.start(); /* Lancio il thread*/

/* il codice presente qui sotto sarà eseguito subito dopo insieme al nuovo thread*/

4) OOOPPs! Chi mi garantisce che la classe principale non acceda alle stesse risorse dell’istanza di slave? (es MyApp)

/* Utilizziamo i metodi sincronizzati */

public class MyApp {

public synchronized void executeSomethingStatic(){

/* Risorsa per un solo thread alla volta */

}

}

Abbiamo implementato un piccolo esempio di thread in Java, utilizzando il metodo classico per questo genere di applicazione in Java.

Esistono però alcune librerie Java SE che permettono di giocherellare con i thread in maniera più simpatica: gli Executors.

Tramite gli executors, per esempio, posso creare un pool di thread facilmente:

public class SwimmingPool{

private int poolSize = 20;

private SwimmingPool(){

ExecutorsService pool = newFixedThreadPool(poolSize); /*Creo 20 thread differenti, che saranno utilizzati all’occorrenza, e non saranno terminati fino alla chiusura della vm*/

Future threadResult = pool.submit(MyApp); /* Restituisce il valore di ritorno di MyApp quando verrà terminata*/

}

}

Ora rifattorizziamo la classe MyApp… è molto semplice, basta cambiare l’interfaccia implementata: da “runnable” a “callable” e sostuire il metodo run() con call() e il gioco è fatto.

Utilità? Potrebbero essere molto utili per lo sviluppo di un server web, personalmente li ho usati per scrivere un piccolo schedulatore di processi.

Fatemi sapere se ho scritto qualche errore, capita ai migliori… figuriamoci ai peggiori :)

Ciao Piero

Varese Xp User Group 2nd meeting

Wednesday, October 18th, 2006

Martedì ci siamo riuniti per la seconda riunione dell’Xp User Group di Varese: presenti 9, un buon risultato!

Abbiamo iniziato con uno Stand-Up meeting: ognuno di noi ha parlato delle sue aspettative per la riunione e devo dire che abbiamo tirato a segno! Le storie sono state scritte con successo, e grazie a Federico che ci ha fatto da “Cliente” ne abbiamo preparate undici. Per la prossima riunione, fissata per il primo di novembre (aule premettendo), ci siamo proposti di iniziare la prima iterazione con la codifica di tre storie per un totale di otto punti (un buon punteggio per una iterazione delle nostre, dato che abbiamo al massimo 4 pomodori ogni due settimane).

Il gruppo al lavoro sulle storieil Gruppo al lavoro sulle storie

Speriamo di superare presto le difficoltà inerenti a questioni relative al nuovo team: alcuni di noi si conoscono e hanno sviluppato in pair all’essap o in altre occasioni, altri invece no. Oltretutto c’è un problema di know-how: abbiamo sceto Ruby on Rails per sviluppare il nostro progetto, un framework nuovo per molti, che ci rallenterà un po’ all’inizio, ma che nel lungo periodo ci divertirà (dato che il nostro scopo è divertirsi programmando…) e ci darà la velocità giusta. Allo scopo di migliorare questa carenza esiste la possibilità di assistere al corso di Applicazioni Web dell’Università dove il principale argomento di insegnamento è proprio RoR.
Due persone nuove (entrambi studenti) hanno assistito al meeting, e devo dire che ho ricevuto un buon feedback, credo che torneranno…
Creare un gruppo di eXtreme programming all’interno della facoltà (anche se aperto anche al pubblico) è stata una buona idea: per gli studenti è molto più semplice imparare ora xp piuttosto che un domani dopo anni di programmazione non meglio organizzata. Oltretutto è un modo per approfondire e apprendere le tecniche agili tramite osmosi (e non) da chi le ha glà applicate in ambito lavorativo.

Spero che questo gruppo continui a crescere (chissà che un domani non venga avviato un insegnamento di XP all’Università?)

Ciao Piero

Sito varese-xpug

Easter egg in OpenOffice 2.0

Monday, October 9th, 2006

Un amico mi ha inviato le istruzioni per un easter egg in OpenOffice2.0

1) Aprire OpenOffice Calc

2) digitare su una cella vuota “=GAME(“StarWars”)”

3) premere invio

Salta fuori un bel giochino stile Space Invaders…

Ciao Piero

Jazz

Sunday, October 8th, 2006

Grazie al blog di Federico (dovreste trovare il link a dx) ho scoperto swissjazz, una radio svizzera che trasmette… jazz!

Ottimo nei momenti di relax e non solo!

Grazie SwissJazz e Federico!

-

Ciao Piero

Anomalie…

Sunday, October 8th, 2006

Oggi a mezzogiorno me ne stavo tranquillo tra la veranda e il giardino a leggere un libro… (Harry Harrison – JimDiGriz (l’implacabile) ) quando ad un tratto sento grugnire da un cespuglio… pochi secodi dopo mi vedo passare davanti un qualcosa che assomiglia ad un cinghiale…  (Tweety nel mio cervello: “Oh oh mi è semblato di vedele un cinghiale…”)
Come in un cartone animato, rimango stupito,  ma penso “Impossibile…. sarà il cane del vicino…”, quindi ritorno a leggere… risento grugnire… e passa un’altro Cighiale davanti a me… (Tweety nel mio cervello: “l’ho visto, l’ho visto! E’ proprio un cinghiale…!”)

Mi sono ritrovato con due cinghialetti in giardino… troppo forti! Alla fine erano scappati dalla fattoria di Inarzo, il paese sotto Bodio (dove abito)…

Se ne sono andati da dove erano venuti, ovvero dal bosco vicino casa…

Cose che succedono vivendo in collina… Domani cosa mi devo aspettare? La mucca Clarabella?

Ciao Piero