il (b)log da bere tutto in un sorso

Nell’ambito dello sviluppo di sistemi software mi è sembrato molto interessante il modello denominato eXtreme Programming (XP), un modello di sviluppo agile molto meno rigido rispetto ad altri metodi si sviluppo. Le parole chiave di questo questo approccio sono: semplicità, comunicazione e semplicità. In realtà, la prima volta che ho sentito parlare di eXtreme Programming mi sono immaginato a programmare con il portatile legato alla cintura mentre scalavo una parete…

Per capire di cosa stiamo parlando, vi elenco in breve alcune delle pratiche che caratterizzano XP.

XP pratices

  • Planning game: è la pratica che trasforma la classica analisi dei requisiti in un “gioco”. Si basa sulle user stories, descrizioni in linguaggio naturale di ciò che l’utente vuole che il software faccia.
    • Ad ogni user story gli utenti stessi assegnano una priorità, mentre gli sviluppatori un costo.
    • Ovviamente si tratta di una pianificazione informale
  • Small release: si sviluppa i vari moduli del sistema software in modo incrementale, ad ogni ciclo si fanno piccole release.
  • Whole team: tutto il team partecipa a ciascun aspetto dello sviluppo software in qualche modo.
  • Collettive ownership: deriva dalla pratica precedente; la proprietà intellettuale del codice appartiene a tutto il gruppo.
  • Metaphore: per descrivere una funzionalità del sistema software nel gruppo si usa una metafora. Ad esempio, per descrivere un gruppo di agenti software in azione “lo sciame di piccole api volano sui fiori e rientrano all’alveare solo una volta terminato il loro compito”. Aiuta a far sì che il team usi un sistema comune di nomi di entità, tale che sia immediato trovare, per uno sviluppatore, una certo modulo in base al nome, o sia chiaro dove inserire le nuove funzionalità appena sviluppate.
  • Test-Driven Development: si scrive il codice sulla base dei test stessi. In poche parole si scrivono prima i test, poi si sviluppa l’applicazione finché non supera positivamente il test.
    • Questo processo è sempre accompagnato da xUnit (jUnit, cUnit, …)
  • Refactoring del codice senza pietà! Uno dei motti del XP è “se un metodo necessita di un commento, riscrivilo!” (codice auto-esplicativo).
  • Pair programming: si programma in coppia, il driver scrive il codice mentre il navigatore controlla il lavoro del suo compagno in maniera attiva.
    • Statisticamente è risultato un ottimo approccio nello sviluppo software, nonostante possa sembrare uno spreco di risorse umane
  • Coding standard: a causa del Pair programming e Whole team si è reso necessario il raggiungimento di convenzioni di codifica fra gli sviluppatori.
  • Idealmente il cliente è sempre disponinibile, in ogni fase del processo di sviluppo. Se gli sviluppatori hanno un dubbio, si rivolgono direttamente a lui.

Follia o realtà?

Posso dire, per esperienza diretta, che alcune di queste pratiche (come Test-Driven Development e Coding standard) sono delle ottime linee guida per scrivere codice di qualità. Altre, invece, mi sembrano delle vere e proprie follie. Basti pensare al 13o principio: a inizio di ogni giornata si svolge una riunione di 15 minuti fra tutti i componenti del team di sviluppo, in cui ognuno espone cosa ha fatto il giorno prima, cosa pensa di fare quel giorno e le problematiche affrontate. Questa riunione si svolge rigorosamente in piedi, in modo tale che nessuno di dilunghi in inutili chiacchiere. Evidentemente questo sembra più una sorta di terapia di gruppo.

Negli USA questo modello di sviluppo software sta riscontrando grande successo, sopratutto nelle software house che dispongono di “carne fresca”. In Italia, invece, non credo esista un azienda che utilizzi questo modello, come sono pochissime le aziende che lo fanno in tutta Europa.

Vi lascio un paio di link sull’argomento:

- Warning: Divide by zero.

, , , , ,

Popularity: 42% [?] Condividi

[image]ubuntu per tutti by ViKCon questa guida vi accompagno passo passo nella creazione di un PC virtuale in Ubuntu. La domanda che sorge spontanea è: perché dovrei installare un pc virtuale? Possono esserci vari motivi, ad esempio:

  1. Nel mio caso volevo provare un altro Sistema Operativo, ovvero Xubuntu. Quindi, invece di installarlo sul mio PC lo faccio su un PC virtuale e quando non mi serve più cancello la macchina virtuale.
  2. Avete Ubuntu ma non potete fare a meno di un certo programmino che esiste solo per i sistemi Microsoft. Bene: o continuate con il Dual-Boot oppure lanciate Windows da Ubuntu solo quando vi serve!
  3. Volete installare un altro S.O. ma sul vostro hard disk sono presenti già 4 partizioni primarie: non potete farne altre. Bene, sappiate che Virtualbox non crea nessuna nuova partizione…

Per chi avesse Ubuntu 7.04 (Feisty Fawn) può usare quest’altra guida, per Gutsy Gibbon rimanete qui! :)

Fase 1/2: installare il PC virtuale

Passo 1: installare Virtualbox

Assicuriamoci di aver attivato tutte le sorgenti software: Sistema > Amministrazione > Sorgenti software a spuntiamo tutte le voci.

[image] Attivare tutte le sorgenti software
Clicca sull’immagine per ingrandire

Infine priamo il terminale (Applicazioni > Accessori > Terminale) e digitiamo:

sudo apt-get install virtualbox

Passo 2: configurare i permessi

Per il suo funzionamento Virtualbox crea una periferica in posizione /dev/vbox. Perché la macchina virtuale possa funzionare il nostro utente deve aver i diritti di scrittura sulla perfirerica appena citata. Lanciamo Sistema > Amministrazione > Utenti e gruppi, quindi clicchiamo su Gestione gruppi. Cerchiamo nella lista il gruppo vboxusers e clicchiamo su Proprietà, da qui spuntiamo il campo accanto al nostro utente (non root!) e confermiamo.

[image] Configurazione utenti

Passo 3: creiamo la macchina

Lanciamo Virtualbox da Applicazioni > Strumenti di sistema. Come si può vedere Virtualbox ha un interfaccia gradevole e intutiva. Clicchiamo su Nuova.

[image]Il primo lancio di Virtualbox
Clicca sull’immagine per ingrandire

Passo 4: scegliere nome e tipo

Scegliamo il nome della macchina virtuale e il tipo di Sistema Operativo. La possibili scelte comprendono tutte le versioni di Windows, Linux dal kernel 2.2 all’attuale 2.6, DOS (storico!), Free e OpenBSD, Solaris e altri ancora.

[image] Scegliere il nome e il tipo
Clicca sull’immagine per ingrandire

Passo 3: ram virtuale

Ora dobbiamo scegliere quanta RAM dedicare alla macchina virtuale. È sconsigliato dedicare alla VM più della metà del totale della memoria della nostra macchina (reale).

[image] Scegliere la dimensione della RAM
Clicca sull’immagine per ingrandire

Passo 4: hard disk virtuale

Creiamo un hard disk dedicato alla VM: se è la prima volta che usiamo Virtualbox clicchiamo su Nuovo.

[image] Crere un HD virtuale
Clicca sull’immagine per ingrandire

Passo 5: selezionare il tipo di hard disk

A questo punto dobbiamo scegliere se l’hd virtuale debba avere una dimensione fissa oppure ad espansione dinamica. Nel secondo caso l’hd occuperà pochissimo spazio, all’inizio, che andrà a crescere con l’uso fino a raggiungere una soglia massima da noi impostata (al prossimo passo). Comunque sia, io ho scelto una dimensione fissa.

[image] Scegliere il tipo dell’HD
Clicca sull’immagine per ingrandire

Passo 6: impostare la dimensione dell’hard disk

Scegliamo la dimensione dell’hard disk virtuale. La scelta varia in base al Sistema Operativo che pensate di installare: Windows XP ha bisogno di almeno 4 GB, 6 sono consigliabili. Per Ubuntu/Kubutnu sono sufficienti sempre 4, per Xubuntu ne bastano 2.

[image] Dimensione dell’HD
Clicca sull’immagine per ingrandire

A questo punto la macchina virtuale è pronta, ma come ogni PC ha bisogno di un Sistema Operativo per funzionare!

Fase 2/2: installare il Sistema Operativo

Passo 7: il tasto Host

Questo passaggio è importantissimo! Prima di far partire la macchina bisogna sapere che, una volta partita, la tastiera viene “rubata” dalla VM: tutte le combinazioni di tasti che premiamo non avranno effetto sul nostro desktop ma all’interno della VM. Il mouse, invece, sarà libero finché non clicchiamo per la prima volta all’interno della finestra della VM in esecuzione. Per poter “liberare” mouse e tastiera bisogna premere il tasto Host, di default il tasto Ctrl destro della tastiera (reale). Dato che la maggior parte dei portatili compatti non hanno questo tasto andiamo a selezionarne un altro, stando attenti a non selezionare un tasto che ci serva nella VM. Andiamo su File > Impostazioni > Input e scegliamo il tasto Host che più ci aggrada. Ecco alcune scorciatoie da tastiera importanti: Host libera mouse e tastiera (insisto!), Host+P mette in pausa la VM, Host+R riavvia la VM, Host+Canc funziona come se avessimo premuto Ctrl+Alt+Canc dalla tastiera virtuale.

[image] Scegliere il tasto Host
Clicca sull’imagine per ingrandire

Passo 8: la rete

Andiamo sul menù Macchina > Impostazioni > Rete. Assicuriamoci che una o più reti virtuali siano attive e con la spunta accanto a Cavo connesso.

Passo 9: cartelle condivise

Per condividere file fra il nostro sistema virtuale e quello reale scegliamo la voce Cartelle condivise e selezionamo quale cartella la VM possa utilizzare (in sola lettura nel 90% dei casi).

Passo 10: la fonte dell’installazione

Manca solo da segnaliare a Virtualbox la fonte per installare il Sistema Operativo. Andiamo alla voce CD/DVD-ROM e scegliamo “Monta lettre CD/DVD-ROM”. Possiamo scegliere se consegnare alla VM il nostro vero lettore o utilizzare una ISO, come nel mio caso.

[image] Fonte dell’installazione
Clicca sull’immagine per ingrandire

Fine

Bene non manca nulla… Ah, già bisogna avviare la macchina :) Allora, buon divertimento!

Sono rimasto stupito dalle prestazioni di Virtualbox, installare Xubuntu ha richiesto poco più di 15 minuti. Ecco un ultimo screenshot: Virtualbox in azione!

[image] Xubuntu in istallazione nella Virtualbox
Clicca sull’immagine per ingrandire

- Warning: Divide by zero.

Technorati tag: , , , , , , , , , ,

Popularity: 80% [?] Condividi

Oggi mia cugina tenta di mandarmi una foto via MSN (io uso Pidgin). A parte il fatto che chattare con lei è come fare un rebus di livello avanzato…

Chat Rebus
(clicca sull’immagine per ingrandire)

Mi arriva il file IMG-021.zip. Immediatamente mi insospettisco: un file compresso? Apro il file in questione e dentro trovo un file eseguibile.

Io: Mary, che antivirus usi?
Cugina: Norton , perché?
Io: Ah, ok. Ora si spiega tutto…

No comment.

- Warning: Divide by zero.

Popularity: 11% [?] Condividi

Questo blog nasce dalla mia passione per l'informatica, nonché la mia materia di studio. Troverete anche articoli riguardanti altri argomenti: cinema (con alcuni miei amici teniamo un cineforum), fotografia, fatti universitari...
Aggiungi viklog a del.icio.us StumbleUpon Altro...

Io ne ho viste cose che voi umani non potreste immaginarvi. Navi da combattimento in fiamme al largo dei bastioni di Orione… e ho visto i raggi B balenare nel buio vicino alle porte di Tannhäuser. E tutti quei momenti andranno perduti nel tempo come lacrime nella pioggia. È tempo di morire. — Blade Runner