Riunione Essapici del 24 luglio
Wednesday, July 26th, 2006Summary: the Essap people met on July 24 for a Rails workshop and a pizza. Good fun.
Workshop
Riunione Essap del 24 luglio. Ci siamo incontrati alle 15 in un aula dell’Università dell’Insubria per un seminario/laboratorio su Rails. Appena arrivati abbiamo visto che l’aula non era attrezzata per quello che volevamo fare. Ma… si vede che alla Essap i ragazzi hanno imparato bene, perché hanno subito spostato tutte le sedie negli angoli, e portato un tavolone dal corridoio dentro all’aula. Così si fa!
L’obiettivo del seminario era introdurre Rails. La ragione dietro a Rails è che è troppo noioso sviluppare web app in Java, tanto che alla Essap (e anche al Milano XP-UG) ci siamo impantanati su questioni tecniche noiosissime.
Argomenti del seminario:
- Hello World. Tutti quanti devono vedere il famoso saluto alla url http://localhost:3000/hello
- Simple model. Vogliamo creare un entità di dominio User.
- script/generate model User
- crea i database, i permessi di accesso, aggiorna la configurazione di Rails
- dimostra i metodi di ActiveRecord::base in console, ovvero interagendo con l’applicazione dalla riga di comando di Ruby
- scrivi semplici unit test (in realtà learning tests) per le varianti di User.find
- aggiungi semplici validazioni, in TDD
- simple controller. Sviluppiamo in TDD un UserController che mostri la lista degli utenti.
Siamo arrivati fin qui. Il passo successivo sarebbe stato aggiungere al controller un’azione per inserire un nuovo utente, il che dimostra il funzionamento delle form. Sempre in TDD!
Retrospettiva
Come sempre abbiamo avuto alcuni problemi. Avere le macchine correttamente installate è sempre un problema. La soluzione è arrivare con i kit appositi per Linux (Rails Live), Mac (Locomotive + RadRails) e Windows (InstantRails + RadRails).
UPDATE: fornire agli studenti una procedura da eseguire per verificare che sul loro computer sia tutto installato correttamente. A volte sembra tutto a posto, ma non lo è.
Poi l’idea di avere un PC per due persone non va bene; nella prima fase gli esercizi sono semplicemente “fai come ti ho mostrato e fallo funzionare”, e non ha molto senso fare pair programming (il navigatore non fa nulla.) Magari in un corso di più ampio respiro, posso assegnare degli esercizi da fare in un oretta, e lì va bene fare pair.
Inizialmente avevo deciso di spiegare senza pomodoro. Però abbiamo notato tutti che la cosa funzionava peggio. Dopo un’ora ho iniziato a lavorare con il pomodoro, e la cosa ha funzionato molto meglio. Sono riuscito a fare coincidere con il pomodoro dei “capitoletti” di quello che volevo spiegare. Chissà mai che non sia una buona idea usare il pomodoro anche a lezione?
Renzo mi ha fatto notare che i test con cui ho sviluppato il controller testavano più la vista (con assert_tag) che il controller stesso. Ha ragione, infatti avrei potuto fare prima dei test più semplici con il controller solo.
Comunque credo di avere mostrato un infarinatura di quello che Rails può fare. Tutti i partecipanti (tranne quelli senza PC) hanno seguito il codice con me.
Banchetto :)
La sera ci siamo spostati al circolino per una pizza, dove ci ha raggiunti il Prof. Lanzarone. L’atmosfera di relax ha fatto nascere alcune idee.
La più carina riguarda il modo di fare proseguire XP all’Insubria. Federico ha proposto che gli studenti si organizzino per fare un “Open Team” in un giorno, un ora e un aula fissi ogni settimana. Io potrei sostenerli con una riunione al mese (ma altri XPer sarebbero benvenuti). L’idea è che l’open team sviluppi l’applicazione proposta durante l’Essap (un’app per gestire le prenotazioni delle date degli appelli). Chiunque si ritrovi di lì ed entri, incuriosito dal cartello “Open Team”, può provare a fare pair programming con i ragazzi. Lanzarone ha dato il suo appoggio all’iniziativa, anzi ha lamentato che di buone iniziative degli studenti non ce ne sono abbastanza!
Spero proprio che questa cosa si riesca a fare.
UPDATE: si è parlato di dove mettere il server svn per il team. Una possibilità è di acquistare un minipc da portare in giro, in modo da poter deployare il team in pochissimo tempo. Sul minipc installiamo la buildix, e lo usiamo anche per creare una rete locale wireless.
Si è parlato di fare degli altri seminari su Rails, ma mi pare pleonastico dato che a settembre inizia il mio corso di Applicazioni Web, che parla sempre di Rails.
Dopo la cena, abbiamo passeggiato per le vie della vecchia Varese fino a una remota gelateria. Torniamo a casa stanchi e contenti.