Home

Produrre Software Open Source - Progettare un Software Libero di

image

Contents

1. Ci dovrebbe essere anche un file CHANGES a volte chiamato NEWS che spieghi ci che c di nuovo in quella release Il file CHANGES accumula le liste dei cambiamenti per tutte le releases in ordine cronologico inverso in modo che la lista per quella release appaia in cima al file A completare la lista c usualmente l ultima cosa fatta per stabilizzare il ramo di release alcuni progetti scrivono la lista un p alla volta mentre si sviluppano altri preferiscono salvarla alla fine di tutto e hanno una persona a scriverla che prende le informazioni setacciando i log del controllo di versione La lista appare come qualcosa del genere 127 Confezione Rilascio e Sviluppo Quotidiano Version 2 5 0 20 December 2004 da rami 2 5 x http svn scanley org repos svn tags 2 5 0 New features enhancements Added regular expression queries issue 53 Added support for UTF 8 and UTF 16 documents Documentation translated into Polish Russian Malagasy Bugfixes fixed reindexing bug issue 945 fixed some query bugs issues 815 1007 1008 L elenco pu facilmente essere tanto lungo quanto necessario ma non vi preoccupate di includere ogni piccola correzione di bug e accrescimento di funzionalit Il suo proposito solamente dare agli utilizzatori una visione d insieme di quale sarebbe il guadagno ad aggiornare alla nuova release Infatti la lista dei
2. Creative Commons Legal Code Attribution ShareAlike 3 0 Unported CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN ATTORNEY CLIENT RELATIONSHIP CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN AS IS BASIS CREATIVE COMMONS MAKES NO WARRANTI REGARDING THE INFORMATION PROVIDED AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS USE GI Cp License 191 Copyright THI CRI i Es T ATI WOR N AS DEFINED B CH VE COMMONS P PROTEC W PRO CT TED BY COPYRIG R CH EXI K OT HIBITED HI RCISING ANY RI REE TO BE BOUND BY ENS E MAY BE CONSI E RI RMS Def a ER THAN AS AUT ELOW UBLIC LIC IS PROVI ENSE CC HT GHTS AND OR OTH HORIZ Eal R APPLICABLE DED UND PL OR ER THE LICENS i TERMS OE E THE LAW ANY USE THIS WORK IS OF THI E E ED UNDER TO THI GI WORK THE TERMS OF TH DERE D TO BE GHTS CONTAINED HER E IN CONSID my E AND CONDITIONS initions nd ot erivative wor ncludes ci hat c
3. 182 Bug Tracker Liberi Mantis http www mantisbt org Mantis un sistema di bug tracker basato su web scritto in PHP che usa il database MySQL per la memorizzazione Ha le funzionalit che vi aspettereste Personalmente trovo l interfaccia web pulita intuitiva e gradevole agli occhi Flyspray http www flyspray org Flyspray un sistema di bug tracker basato su web scritto in PHP Le sue pagine web lo descrivono come non complicato e la lista di funzionalit include supporto a diversi database al momento MySQL e PGSQL progetti multipli attivit di monitoraggio con notifica di cambiamenti via email o Jabber storia completa delle attivit temi CSS allegati ai file funzionalit avanzate di ricerca anche facili da usare feed RSS Atom wiki o semplice testo come input votazioni grafi di dipendenza Scarab http scarab tigris org Scarab concepito per essere un bug tracker altamente personalizzabile completamente accessoriato che offre pi o meno la somma delle funzionalit offerte dagli altri bug tracker acquisizione dati interrogazioni rapporti notifiche alle parti interessate accumulo collaborativo dei commenti e tracciamento delle dipendenze E personalizzabile attraverso le pagine web di amministrazione Potete avere moduli progetti multipli attivi in una singola installazione di Scarab All interno di un dato modulo potete creare nuovi tipi di problemi difetti s
4. Fare del buon software libero un obiettivo valido gi di per s Spero quindi che il lettore desideroso di scoprire nuovi modi per raggiungere quest obiettivo si senta soddisfatto di ci che trover in questo libro Ma soprattutto spero di trasmettere parte del puro piacere che si prova a lavorare con una squadra motivata di sviluppatori open source e ad interagire con gli utenti nel modo meraviglioso I termini codice aperto e libero sono essenzialmente dei sinonimi in questo contesto saranno discussi con maggior dettaglio in sezione chiamata Free e open source a confronto nel Capitolo 1 Introduzione vi Prefazione che il software libero incoraggia Partecipare alla progettazione di un programma aperto di successo divertente ed in definitiva ci che consente all intero sistema di continuare ad esistere Chi dovrebbe leggere questo libro Questo libro pensato per gli sviluppatori di software e per i dirigenti che stanno pensando di far partire un progetto open source o che ne hanno gi avviato uno chiedendosi come andare avanti I concetti illustrati potrebbero anche tornare utili per coloro che desiderano partecipare ad un progetto open source ma non ne hanno mai avuto l occasione Il livello di difficolt non richiede che il lettore sia un programmatore ma dovrebbero essere noti i concetti di basi dell ingegneria del software come il codice sorgente il compilatore e le patch Una precedente e
5. Comunicazione il materiale che state evidenziando Non mi sarei mai aspettato di scrivere un consiglio come questo quando iniziai questo libro ma pi avanti su un gran numero di mailing list open source ho visto gente mischiare testo da diverse fonti senza rendere chiaro cosa fosse cosa L effetto molto frustrante Rende 1 loro post decisamente pi difficili da capire e sinceramente fa vedere queste persone come un po disordinate Quando citate una email di qualcun altro inserite le vostre risposte dove pi appropriato in molti posti diversi se necessario e tagliate via le parti della mail che non usate Se state scrivendo un breve commento che riguarda all intero messaggio va bene anticipare il commento cio mettere la vostra risposta al di sopra del testo citato della email altrimenti dovreste prima citare la porzione rilevante del testo originale seguita dalla vostra risposta Scegliete attentamente l oggetto delle vostre email E la riga pi importante della vostra email perch permette ad ogni altra persona nel progetto di decidere se leggerla o meno I moderni software di lettura email organizzano gruppi di messaggi correlati in thread che possono essere definiti non solo da un oggetto comune ma da vari altri header che a volte non sono mostrati Ne consegue che se un thread inizia ad andare verso un nuovo argomento potete e dovreste aggiustare di conseguenza l oggetto quando rispondete L integrit del
6. L Infrastruttura Sociale e Politica l accesso all invio Se c disaccordo ne deriva una discussione come per ogni altra questione con la possibilit che si arrivi a votare Perch questo procedimento sia aperto e franco il solo fatto che la discussione sta avendo luogo dovrebbe punto essere segreto Se la persona in considerazione sapesse che essa sta andando avanti e che quindi non gli offerto l accesso all invio potrebbe concludere che ha perso il voto e presumibilmente ne sarebbe dispiaciuto Certamente se qualcuno fa richiesta di accesso all invio allora non c scelta al di fuori di quella di prendere in considerazione la proposta e apertamente accettarla o respingerla Se la seconda allora la cosa dovrebbe essere fatta quanto pi educatamente possibile con una chiara spiegazione A noi piacciono le tue rettifiche ma non ne abbiamo viste a sufficienza o Noi apprezziamo tutte le tue rettifiche ma esse richiedevano considerevoli miglioramenti prima di poter essere applicate cos non ci sentiamo a nostro agio nel darti gi l accesso all invio Speriamo che ci cambier tuttavia col tempo Ricordate ci che state dicendo potrebbe riuscire come un colpo a seconda del livello e della confidenza con la persona Cercate di vederla dal loro punto di vista quando gli mandate l email Poich aggiungere una nuova persona che possa fare gli invii pi conseguenziale che la maggior parte delle decisioni di una volta al
7. Ma non una forma corrotta come potrebbe sembrare Una influenza di uno sviluppatore nel progetto e dovuta principalmente alla qualit del suo codice e alla sua interazione con gli altri sviluppatori Il fatto che egli abbia il contratto per fare certe cose non eleva il suo stato in alcun modo sebbene ci possa far si che la gente lo osservi con pi attenzione La maggior parte degli sviluppatori non rischiano la loro posizione a lungo termine sostenendo una funzionalit fuori luogo o che non piace a molti Infatti ci che conseguite o dovreste conseguire quando assumete tale persona a contratto il parere su quale sorta di cambiamento verosimilmente accettato dalla comunit Voi anche pervenite a un leggero cambiamento nelle priorit del progetto Poich l elenco delle priorit giusto una materia di chi ha tempo di lavorare a qualcosa quando pagate per il tempo di qualcuno voi fate s che il suo lavoro salga un poco nella coda delle priorit Questo un ben compreso fatto di vita fra gli sviluppatori esperti open source e almeno qualcuno di essi dedicher attenzione al lavoro del lavoratore a contratto semplicemente perch sembra che ci debba essere fatto in modo tale che che essi si adoperano a che sia fatto bene Forse essi non scriveranno nulla del codice ma tuttavia discuteranno del progetto e della revisione del codice ambedue delle quali cose possono essere molto utili Per tutte queste ragioni il lavoratore a co
8. Quindi l argomento del canale dovrebbe essere diretto a persone che cercano risposte tecniche sul software adesso piuttosto che a diciamo a persone che potrebbero essere coinvolte nel progetto nel lungo termine e per i quali le linee guida di interazione della comunit potrebbero essere pi appropriate Qui come un canale occupato gestisce ci comparate questo col precedente esempio in sezione chiamata IRC Sistemi di Chat in tempo reale in Capitolo 3 L Infrastruttura Tecnica State parlando su linuxhelp L argomento per linuxhelp Prego LEGGERE http www catb org esr fags smart questions html amp amp http www tldp org docs html howto PRIMA di fare domande Le regole del canale s 105 Comunicazione http kerneltrap org node view 799 prima di chiedere di aggiornare al kernel 2 6 aggiornare a 2 6 8 1 o 2 4 27 in certa misura disastro hash http tinyurl com reiser4 fuori Con le mailing list lo spazio pubblicitario una piccola un piccolo spazio in basso attaccato ad ogni messaggio La maggior parte dei progetti vi mettono l le istruzioni iscrizione deiscrizione e magari un puntatore alla homepage oppure alla pagina delle FAQ Voi potreste pensare che chi si iscritto alla mailing list saprebbe dove trovare queste cose ed essi probabilmente lo sanno ma molta pi gente di quelli che si sono iscritti vedono questi messaggi della mailing list Un post archiviato pu esser
9. che tale fardello ancora condiviso sia che l utente sia nel giusto o nel torto quando segnala il controllo del problema ancora pi o meno equamente distribuito tra gli sviluppatori cos che ogni problema sia in grado di ricevere una pronta risposta La seconda tecnica meno diffusa probabilmente perch pi difficile da automatizzare L idea fondamentale che ogni nuovo problema viene affiancata nel database Quando un utente pensa di aver trovato un problema gli richiesto di descriverlo su una delle mailing list o in un canale IRC e di ottenere una conferma da qualcuno che si tratti davvero di un bug Coinvolgere subito questo secondo paio di occhi pu prevenire molte segnalazioni non genuine A volte la seconda parte riesce a capire che 54 L Infrastruttura Tecnica non si tratta di un bug o che stato riparato in un rilascio recente O pu essere familiare con i sintomi di un problema precedente e pu prevenire una duplicazione di segnalazioni indicando all utente il vecchio problema A volte sufficiente solo chiedere all utente Hai cercato nel bug tracker per vedere se gi stato segnalato Molta gente semplicemente non ci pensa e comunque sono contenti di fare la ricerca una volta che sanno che qualcuno si aspetta che lo facciano Il sistema di affiancamento pu davvero tenere il database dei problemi pulito ma ha anche alcuni svantaggi Molto gente registrer da sola comunque o non guardan
10. il software alfa con bugs noti Esso gira e funziona almeno per qualche tempo ma lo usate a vostro rischio Un tale linguaggio non far fuggire per lo spavento il tipo di sviluppatori di cui voi avete bisogno in quello stadio Per quanto riguarda gli utilizzatori una delle peggiori cose che un progetto pu fare attrarre utilizzatori prima che sia finito Una reputazione per l instabilit o per gli errori difficile da scrollarsela di dosso una volta che se la si fatta La prudenza paga a lungo andare E sempre meglio che il software sia pi stabile di quanto gli utilizzatori si aspettino che meno stabile e le sorprese piacevoli producono il pi bel tipo di voci Alpha e Beta Il termine alfa usualmente vuol dire una prima release con la quale gli utilizzatori possono accedere al lavoro reale fatto e che ha tutte le funzionalit progettate ma che ha anche bugs conosciuti Il proposito principale del software alfa quello di generare una reazione cosicch gli sviluppatori conoscano ci su cui lavorare Il successivo stadio beta quello in cui in cui tutti i bugs seri sono stati corretti ma non stato testato abbastanza per certificarsi come release Il proposito di un software beta quello di diventare una release nell ipotesi che nessun bug sia stato trovato ma anche quello di dare una risposta dettagliata agli sviluppatori in modo che essi possano giungere velocemente alla release La differenza fra alfa e beta e mo
11. molto pi difficile da far funzionare da programma Un altro problema che la struttura della swite per il test di regressione pu spesso essere piuttosto complessa con una curva di apprendimento e un carico di manutenzione che le sono peculiari Ridurre questa complessit una della cose pi utili che possiate fare anche se pu richiedere un considerevole ammontare di tempo La cosa pi facile aggiungere nuovi tests alla suite pi gli sviluppatori faranno cos pi pochi bugs sopravviveranno nella release Ogni sforzo fatto per rendere i tests pi facili sar ripagato molte volte durante vita del progetto Molti progetti hanno una regola Non sfasciate l allestimento che significa non fare un invio che renda difficile la compilazione o l esecuzione del software Essere la persona che sfascia la costruzione di solito causa di leggero imbarazzo e di burla I progetti con una swite per i tests di regressione spesso hanno una regola corollario non inviare cambiamenti che fanno fallire i tests E molto facile osservare questi fallimenti se ci sono esecuzioni automatiche notturne dell intera suite di tests con i risultati inviati alle mailing lists dello sviluppo o a una mailing list dedicata di risultai del testing questo un altro esempio di automazione utile La maggior parte degli sviluppatori volontari sono disposti a spendere un tempo extra per scrivere tests di regressione quando il sistema di test comprens
12. perfettamente difendibile se fatto diplomaticamente Siate comunque attenti nel fermare prematuramente i thread Un po di chiacchiere possono essere produttive a seconda dell argomento e chiedere che sia risolto troppo velocemente soffocher il processo creativo cos come vi far sembrare impazienti Non aspettatevi che un thread si stoppi all istante Ci saranno comunque ancora alcuni messaggi dopo al vostro sia perch le mail si saranno incrociate nell instradamento o perch la gente vuole avere l ultima parola Questo non nulla di cui preoccuparsi e non avete bisogno di scrivere di nuovo Lasciate la gente calmarsi o non calmarsi a seconda dei casi Non potete avere completo controllo dall altro lato potete aspettarvi di avere statisticamente un effetto significativo su molti thread Pi semplice l argomento pi lungo il dibattito Anche se la discussione pu deviare su ogni argomento la probabilit di deviazione sale quando la difficolt tecnica di un argomento diminuisce Dopo tutto maggiore la difficolt tecnica meno partecipanti potranno veramente seguire cosa sta succedendo Quelli che possono essere gli sviluppatori pi esperti che hanno gi preso parte in queste discussioni migliaia di volte in precedenza e sanno che tipo di comportamento pu portarli ad ottenere quel consenso con cui ognuno pu andare avanti Quindi il consenso pi difficile da ottenere nelle questioni tecniche che sono semplici
13. sotto il controllo di versione la penalit per l aggiunta di uno che fa gli invii che voi non dovreste avere non tanto quanti problemi potrebbe causare al codice la revisione li individuerebbe ad ogni modo ma il fatto che potrebbe alla fine obbligare il progetto a revocare l accesso agli invii alla persona un atto che non mai piacevole e che potrebbe a volte dar luogo a polemiche Molti progetti insistono sul fatto che la persona che potenzialmente potrebbe fare gli invii dimostri un certo livello di esperienza tecnica e sia tenace inviando un certo numero di patch non secondarie cio non solo questi progetti vogliono sapere che la persona non procurer danni vogliono sapere se possibilmente brava nel codice base Ci bene ma siate attenti a che ci non incominci a cambiare l appartenenza a quelli che fanno gli invii in appartenenza ad un club esclusivo La domanda da tenere a mente dovrebbe essere Cosa porter i migliori risultati per il codice non Dobbiamo svalutare lo stato sociale associato alla facolt di fare gli invii ammettendo questa persona Il punto dell accesso agli invii non rafforzare l autostima della gente consentire che buoni cambiamenti entrino nel codice senza un minimo di agitazione Se voi avete 100 persone che fanno gli invii 10 dei quali fanno cambiamenti su base regolare e 90 dei quali correggono solo degli errori di stampa o dei piccoli bugs poche volte all anno questo
14. I destinatari che capiscono questo e rispondono di conseguenza guadagnano punti nell ottenere una visione ampia senza chiedere pressantemente Ma i destinatari che reagiscono male non devono essere neanche esclusi E solo uno scontro di culture non colpa di nessuno Spiegate amabilmente che le vostre domande o critiche non avevano significati nascosti erano solo tesi ad ottenere o trasmettere informazioni nel modo pi efficiente possibile nient altro Cos allora maleducato Per lo stesso principio per cui un dettagliato criticismo tecnico una forma di adulazione non fornire critica di qualit pu essere un insulto Non intendo semplicemente ignorare il lavoro di qualcuno sia esso una proposta un cambiamento al codice la segnalazione di un nuovo problema o altro A meno che non abbiate esplicitamente promesso in anticipo una risposta dettagliata va solitamente bene semplicemente non rispondere per niente La gente assumer che non avevate tempo di dire nulla Ma se rispondete non risparmiate prendete il tempo per analizzare davvero le cose fornire esempi concreti dove appropriato spulciare negli archivi per cercare post correlati nel passato eccetera O se non avete tempo di imbarcarvi in questo tipo di sforzo ma tuttavia avete bisogno di scrivere qualche tipo di risposta veloce allora scrivetelo apertamente nel messaggio Penso che ci sia un problema registrato per questo ma sfortunatamente non ho avuto il tempo di ce
15. anonime Se uno dei vostri sviluppatori non si sente sicuro riguardo alle sue capacit immaginate come questa cosa si inasprir quando i nuovi arrivati faranno notare gli errori nel codice che ha scritto e peggio lo faranno davanti ai suoi colleghi Amenoch voi non abbiate un team di perfetti svilippatori questo inevitabile infatti ci accadr probabilmente a tutti loro all inizio Ci non avviene perch essi siano dei cattivi programmatori avviene giusto che ogni programma al di sopra di una certa grandezza ha bugs ed ogni revisione alla 28 Partenza pari evidenzier alcuni di questi bugs vedere sezione chiamata Praticare una Visibile Revisione del Codice prima in questo capitolo Allo stesso tempo il nuovo arrivato stesso non sar soggetto a molte revisioni alla pari all inizio perch non pu contribuire al codice finch non familiarizza col progetto Ai vostri sviluppatori potr sembrare che tutto il criticismo sta arrivando e non andando via Cos c il pericolo che una mentalit di assedio assuma il controllo fra i vecchi sviluppatori Il miglior modo per prevenire ci mettere in guardia ciascuno su ci che sta venendo spiegarlo dire loro che lo sconforto iniziale perfettamente normale e rassicurarli che sta per andare meglio Alcuni di questi preavvisi dovrebbe aver luogo in privato prima che il progetto venga aperto Ma potete anche trovare utile ricordare alle persone sulle liste pubblic
16. che si vuol dire e quello di aiutare a trovare il modo giusto per dire una cosa Per me stato un onore lavorare con lui Un ringraziamento va anche a Chuck Toporek per aver girato subito la proposta di questo lavoro ad Andy Brian Fitzpatrick ha corretto quasi tutto il materiale mentre lo scrivevo il che non solo ha reso migliore la qualit del libro ma mi ha stimolato a continuare la stesura nei momenti in cui avrei desiderato essere da qualsiasi parte tranne che davanti ad un computer Ben Collins Sussman e Mike Pilato hanno dato una mano via via che il documento prendeva forma e sono sempre stati felici di discutere a volte a lungo l argomento che avrei trattato in un dato momento Pure loro si accorgevano dei momenti di rallentamento e con garbo mi stuzzicavano se necessario Grazie ragazzi Biella Coleman stava scrivendo la sua tesi nello stesso periodo in cui io scrivevo questo libro Lei sa cosa vuol dire star seduti a scrivere ogni santo giorno e mi stata d esempio oltre che offrirsi di ascoltare le mie discussioni Biella inoltre dotata di un affascinante punto di vista antropologico del movimento del software libero che ha messo a mia disposizione per darmi idee e riferimenti che potessero tornarmi utili in questo libro Alex Golub un altro antropologo con un piede nel mondo del software libero anche lui in procinto di finire la sua tesi in quel periodo stato un supporto prezioso sin dall inizio da
17. dire non penso che ci sia qualcosa di sbagliato in questo cambiamento ma non abbiamo avuto abbastanza tempo per provarlo per cui non deve entrare nelle release Ci aiuta molto se il proprietario della release ha larghe conoscenze tecniche del progetto e ha la capacit di rendere conto del perch il cambiamento potrebbe esser potenzialmente destabilizzante per esempio la sua interazione con altre parti del software o questioni di portabilit La gente potr a volte chiedere che tali decisioni siano giustificate o sostenere che il cambiamento non un rischio come sembra Queste conversazioni non devono essere provocatorie nella misura in cui il proprietario della release capace di prendere in considerazione tutte le argomentazioni obbiettivamente e non come un colpo alle sue gambe Notate che non necessario che il proprietario della release sia la stessa persona del leader del progetto nei casi in cui c un leader del progetto vedere sezione chiamata I Dittatori Benevoli in Capitolo 4 L Infrastruttura Sociale e Politica Infatti a volte bene assicurarsi che non siano la stessa persona Le capacit che fanno un buon leader di sviluppo non sono necessariamente le stesse che fanno un buon proprietario di release In una cosa cos importante come il processo di release pu essere saggio avere qualcuno che controbilanci il giudizio del leader di progetto Contrastate il ruolo del proprietario di release con un un ruolo
18. sono parole normali non gergo Ma la gente che installa software da release ha gi familiarit con quelle tre non c motivo per fare cose gratuitamente in modo differente dal modo in cui chiunque altro le fa Sebbene i punti nei numeri delle realases non siano punti decimali indicano un significato del valore della posizione Tutte le realeases 0 X Y precedono la 1 0 che equivalente alla 1 0 0 certo La 3 14 158 precede immediatamente la 3 14 159 e non immediatamente precede la 3 14 160 come la 3 15 qualcosa e cos via Una politica di numerazione delle releases rende capace l utilizzatore di di guardare ai numeri di rilascio per lo stesso pezzo di software e dire proprio dai numeri le importanti differenze fra queste due relaeases In un tripico sistema a tre componenti il primo componente il numero maggiore il secondo il il secondo il numero minore il terzo il micro numero FPer esempio la release 2 10 17 la diciassettesima micro relaese nella decima linea di release minore entro la seconda serie di release maggiore Le parole linea e serie sono usate informalmente qui ma significano ci che uno si aspetterebbe Una serie maggiore sono semplicemente tutte le releases che hanno in comune lo stesso numero maggiore e una serie minore o linea minore sono semplicemente tutte le releases che hanno in comune lo stesso numero maggiore e lo stesso numero minore Cio la 2 4 0 e la 3 4
19. un commento sui molti altri filtri open source per lo spam al di fuori di questi alcuni dei quali sono a prima vista abbastanza buoni Semplicemente mi capitato di usare questi due e ne sono rimasto soddisfatto 3 Moderazione Per le mail che non sono automaticamente autorizzate in virt del fatto che provengono da un iscritto alla mailing list e che passano attraverso il software di filtraggio spam se presente l ultimo passo la moderazione la mail viene mandata ad uno speciale indirizzo dove un essere umano la esamina e la conferma o la respinge Confermare un messaggio assume una tra due forme potete accettare il messaggio solo per questa volta o potete dire al software di ammettere questo e i prossimi messaggi dallo stesso mittente Dovreste quasi sempre fare cos per ridurre la futura mole di moderazione I dettagli su come fare ad accettare cambiano da sistema a sistema ma solitamente questione di rispondere ad uno speciale indirizzo con il comando accept che significa accettazione solo per questo messaggio o allow permetti questo e i messaggi futuri Si respinge solitamente ignorando la mail di moderazione Se il software di gestione non riceve mai conferme che qualcosa un messaggio valido allora non lo passer alla mailing list quindi semplicemente ignorando la mail di moderazione ottiene l effetto desiderato A volte avete anche l opzione di rispondere con un comando rejet o deny per disapprovare a
20. Anche se lo facessero la dittatura risultante sarebbe ancora condizionata Il gruppo consacr il BD chiaramente il gruppo potrebbe deporre il BD Perci una volta che il progetto ha abbandonato la leadership da parte di un individuo carismatico per un pi formale sistema basato sul gruppo raro che torni indietro I dettagli su come questo sistema funziona variano largamente ma ci sono due elementi comuni uno il gruppo lavora per consenso la maggior parte del tempo due c un formale meccanismo di voto con cui aiutarsi quando il consenso non pu essere raggiunto Consenso ha solamente il significato di un accordo con il quale ognuno vuol vivere Non uno stato ambiguo un gruppo ha raggiunto il consenso quando qualcuno propone che quel consenso stato raggiunto e nessuno contraddice questa affermazione La persona che propone il consenso dovrebbe certamente stabilire di quale consenso di tratta e quali azioni possono essere intraprese in conseguenza di esso se non sono scontate 64 L Infrastruttura Sociale e Politica La maggior parte delle conversazioni nel progetto sono su argomenti tecnici come il giusto modo per correggere un bug se o non aggiungere una funzionalit quanto particolareggiatamente documentare le interfacce ecc La conduzione basata sul consenso funziona bene perch si armonizza senza problemi con la discussione tecnica stessa Alla fine di una discussione c generalesse l accordo su che via
21. Come Stallman scrisse poi Noi non chiamavamo il nostro software software libero perch quel termine non esisteva ancora ma quello era Quando persone di un altra universit o compagnia volevano trasferire su un altra piattaforma e usare un programma noi eravamo contenti di permetterglielo Se voi aveste visto uno usare un programma non familiare ed interessante avreste potuto sempre chiedere di vedere il codice sorgente in modo da poterlo leggere cambiarlo o usare parti di esso per costruire un altro programma da http www gnu org gnu thegnuproject html Questa comunit da paradiso terrestre si esaur intorno a Stallmann bruscamente dopo il 1980 quando i cambiamenti che erano avvenuti nel resto dell industria raggiunsero alla fine anche l Artificial Intelligence Lab Una nuova compagnia impieg molti programmatori del Lab per farli lavorare a un sistema operativo simile a quello su cui avevano lavorato nel Lab ora solamente sotto una licenza esclusiva Contemporaneamente l l Artificial Intelligence Lab acquist una nuova apparecchiatura che mise a disposizione di un nuovo sistema operativo proprietario Stallman usa la parola hacker per indicare chi ama programmare ed abile nel farlo non nel relativamente nuovo significato di chi entra nei computers Introduzione Stallmann tracci un chiaro saggio di quello che stava accadendo I moderni computers dell epoca come il VAX o il 68020 avevano i loro sis
22. Le 122 Stabilizzafe Una Release nona ea rire 123 Dittatura Da Parte del Proprietario Della Release cece eeee ce eeeneee een eees 123 Votare Il Cambiamento ditta nine denne reina in Si iii cda tte 124 IMpacchettamento riale alari 126 I Formato rallo aaa RR I aa in 127 Nome E DISposizione sprs a ia a a a E EN a 127 Compilazione e Installazione mrene nea eee 129 Pacchetti Binary 553 cp II E IAA Sir os Al IRENE od Tira 130 Prove Rilascio rca e I N na 131 Le Releases Candidate pl lr anatra 132 Annunerare le RElCasEs rtiz iena CERA FORI aaa LEONI RIS ERA 132 Avere in Manutenzione pi di Una Linea di Release ceee cece eece teen seen eenee 133 L Releases di Sicurezza ronnie A RR 134 Le Releases e Lo Sviluppo Quotidiano eee 134 Pianificare le Releas smiionio satin non iraniani ai dort ira aonte 135 8 Gestire 1 Volontari ira 138 Ottenere il Massimo dai Volontari iii 139 La Delega fia deh Seed ve eae Sah as ed dica dna iii 139 Lode Crit Ca stiate RI cus am io wet han tene stent E Mee e 141 Prevenire la Territorialita erect ereseseceeeereseeresenereees 142 Il Rapportordi Automazione sese seuss c scoec gasp veradeseyecndecse era 144 Trattate Ogni Utilizzatore Come un Potenziale Volontario errereen 146 Suddividete i Compiti di Management e i Compiti Tecnici cece eeee en eeeeeeeee 1
23. Qui di nuovo il normale procedimento della discussione tecniche si unisce in modo benefico col procedimento del progetto di presa della decisioni Il tipo di questione che vengono al voto spesso comprendono complessi e sfaccettati problemi In ogni discussione cos complessa ci sono usualmente una o due persone che occupano il ruolo di onesti mediatori che postano sommari periodici dei vari argomenti e che tengono traccia di dove sono i punti di disaccordo e di accordo Questi sommari aiutano ciascuno a misurare quanto progresso stato fatto e quanti problemi rimangono da essere elencati Questi medesimi sommari possono servire come prototipo di scheda elettorale dovrebbe diventare necessario un voto Se gli onesti mediatori hanno fatto bene il loro lavoro saranno capaci di chiamare con credibilit per il voto quando viene il momento e il gruppo sar contento di usare una scheda elettorale basata sui loro sommari di problemi I mediatori stessi potranno esser partecipi al dibattito non necessario che essi rimangano superiori alla lite fino a quando essi possono capire e rappresentare in modo imparziale i punti di vista e non permettere che i propri sentimenti di parte gli impediscano di riassumere lo stato del dibattito in una maniera neutrale Il reale contenuto della scheda non oggetto di controversie Col tempo le materie vengono al voto i disaccordi vengono condensati in pochi problemi chiave con etichette riconoscibili e brevi
24. allora voi lasciate le persone libere di raffreddarsi e di mostrare il lato migliore col comportarsi meglio 26 Partenza la volta successiva ed essi lo faranno Uno dei segreti per fare ci con successo non trasformare la pseudo discussione nell argomento principale Ci dovrebbe essere sempre una breve prefazione a parte alla parte principale della vostra risposta Fate notare incidentalmente che non facciamo le cose in questo modo qui da noi ma poi andate al reale contenuto in modo tale da dare alle persone qualcosa in argomento su cui rispondere Se qualcuno obbietta che non merita il vostro rimprovero rifiutatevi semplicemente di essere condotti sull argomento O non rispondete se pensate che essi si stiano giusto sfogando e non richiedono una risposta oppure dite che vi dispiace se avete reagito in modo esagerato e che difficile distinguere le sfumature per email quindi ritornate all argomento principale Mai mai insistere su una ammissione pubblica o privata da parte di qualcuno che si comportato in modo scorretto Se essi da s scelgono di postare delle scuse ci una gran cosa ma pretendere che lo facciano causer solo risentimento L obiettivo primario far si che la buona etichetta sia visto come l unico comportamento in gruppo Ci aiuta il progetto perch gli sviluppatori possono essere allontanati anche da progetti che essi amano e vogliono sostenere da guerre di offese Voi potete
25. amplificato nella mente di ognuno le persone si sentono cos tanto pi annientate quando il loro codice non ce la fa ad entravi perch sanno quanto tempo ci vorr per il prossimo cambiamento A seconda della complessit del processo di rilascio e della natura del vostro progetto qualcosa come tre o sei mesi il giusto intervallo di solito fra le releases sebbene le linee di manutenzione possono far uscire micro releases un po pi spesso se c bisogno di esse 137 Capitolo 8 Gestire i Volontari Riuscire a far si che le persone aderiscano a ci di cui ha bisogno il progetto e lavorare insieme per raggiungerlo richiede pi che la sola atmosfera cordiale e una mancanza della ovvie disfunzioni Richiede qualcuno o pi di qualcuno che sappiano gestire tutte le persone coinvolte Gestire i volontari pu non essere un arte tecnica nello stesso senso della programmazione di un computer ma pu essere un arte che pu essere migliorata con studio e pratica Questo capitolo un afferrare e mettere in borsa tecniche specifiche per la gestione dei volontari Esso afferra forse pi fortemente che i precedenti capitoli con Subversion come caso di studio perch io ho lavorato a quel progetto per scrivere questo ed ho avuto tutte le fonti primarie a portata di mano e in parte perch pi accettabile lanciale pietre di critica nelle propria serra di vetro piuttosto che in quella di altri Ma ho visto anche in molti altri
26. conflitto Cosa succede quando due persone provano a fare modifiche diverse nello stesso punto del codice Tutti i sistemi di controllo di versione trovano automaticamente i conflitti e notificano ad almeno uno degli umani coinvolti che i suoi cambiamenti sono in conflitto con quelli di qualcun altro E quindi lasciato all umano risolvere il conflitto e comunicare la soluzione al sistema di controllo di versione Blocco Un modo di dichiarare un intenzione esclusiva di cambiare un certo file o directory Per esempio Non posso fare il commit di tutti i cambiamenti alle pagine web ora Sembra che Alfredo le abbia bloccate tutte mentre mette a posto le immagini di sfondo Non tutte le versioni di sistemi di controllo offrono anche questa possibilit di blocco e quelli che lo fanno non tutti richiedono di usare questa funzionalit Questo perch lo sviluppo parallelo simultaneo la norma e negare alla gente l accesso ai file solitamente contrario a questo ideale I sistemi di controllo di versione che richiedono il blocco per fare i commit sono detti usare il modello blocca modifica sblocca lock modify unlock Un ottima e profonda spiegazione e confronto dei due modelli pu essere trovata qui http svnbook red bean com svnbook 1 0 ch02s02 html In generale il modello copia modifica migliore per lo sviluppo open source e tutti 1 sistemi di controllo di versione discussi in questo libro supportano tale modello Scegliere un sist
27. descrizioni Occasionalmente lo sviluppatore far obiezione alla forma della scheda stessa A volte il suo interessamento legittimo per esempio che una scelta importante stata lasciata fuori o non stata descritta accuratamente Ma altre volte uno sviluppatore pu star cercando si evitare l inevitabile forse sapendo che il voto non andr come lui vuole Vedere sezione chiamata Gente Difficile in Capitolo 6 Comunicazione su come affrontare questo tipo do ostruzionismo Ricordatevi di specificare il sistema di voto se ci sono molti differenti modi e se la gente potrebbe potrebbe fare delle cattive supposizioni sulla procedura che viene usata Una buona scelta nella maggior parte dei casi il voto per approvazione dove ogni votante pu votare per quante scelte vuole nella scheda Il voto per approvazione semplice da spiegare a da contare e diversamente da altri metodi richiede un solo giro di voto Vedere http en wikipedia org wiki Voting_system List_of_systems per maggiori dettagli sul voto di approvazione ed altri sistemi di voto ma cercate si evitare di entrare in una lunga discussione su quale sistema usare perch certamente allora voi stessi vi troverete in una discussione su quale sistema di voto usare per decidere quale sistema di voto usare Una ragione per cui il voto di approvazione una buona scelta che molto difficile per ognuno farvi obiezione all incirca tanto giusto quanto un sistema di voto pu
28. e poi spendete quanto tempo sia necessario nel rimproverare e nel ricordare alla gente di usare appropriatamente i nuovi forum Il secondo passo pu durare settimane ma alla fine la gente si far l idea Voi dovete semplicemente considerare importante dirlo a chi invia che il post stato inviato alla destinazione sbagliata e farlo in modo visibile in modo che gli altri siano incoraggiati ad essere di aiuto nell instradamento E anche utile avere una pagina web che fornisca una guida a tutte le mailing list disponibili la vostra risposta pu far riferimento a quella pagina web e come premio il destinatario pu imparare qualcosa sul cercare nelle linee guida prima di postare La strategia 2 un processo continuo che dura il tempo di vita del progetto e coinvolge molti partecipanti Certo in parte questione di avere la documentazione aggiornata vedere sezione chiamata La documentazione in Capitolo 2 Partenza e assicurarsi di indirizzare la gente l Ma anche molto pi di questo le sezioni che seguono discuteranno questa strategia in dettaglio Uso Ben Visibile degli Archivi Tipicamente tutte le comunicazioni in un progetto open source eccetto talvolta le conversazioni IRC vengono archiviate Gli archivi sono pubblici e vi si possono fare ricerche e hanno una stabilit informativa cio una volta che un dato pezzo di informazione registrato in un particolare indirizzo rimane in quell indirizzo per sempre Usate
29. eccitata nell essere sostenuta dai dollari del marketing da perdere la propria obiettivit sulle vere solidit e debolezze del suo software E normale e anche previsto per una compagnia di sviluppatori esibire un certo distacco nei confronti delle leggi del marketing anche in forum pubblici Chiaramente essi non dovrebbero venir fuori e contraddire il messaggio di marketing direttamente a meno che esso non sia veramente sbagliato tuttavia uno spera che quel tipo di cosa dovrebbe essere scoperta prima Ma possono prendersi gioco di questo di volta in volta come modo per riportare il resto della comunit di sviluppo sulla terra 85 Capitolo 6 Comunicazione L abilit di scrivere chiaramente forse la pi importante capacit che uno possa avere in un ambiente open source Sulla lunga distanza importa pi del talento nella programmazione Un bravo programmatore con pessime capacit di comunicazione fare una sola cosa per volta e comunque avere dei problemi a convincere altri a prestargli attenzione Ma un pessimo programmatore con buone capacit comunicative pu coordinare e persuadere molte persone a fare molte cose diverse quindi avere un effetto significativo sulla direzione e sulla forza del progetto Non sembra esserci molta correlazione in nessuna direzione tra l abilit di scrivere buon codice e l abilit di comunicare con i propri simili C una qualche correlazione tra la buona programmazione e una buona de
30. ense with every copy of eac licly Perform II You may Adaptation that restrict t the ability of the recipient rights gran licable Lice nse III licenses mentioned in i ii or iii you must co generally and the following ort h Adap not offer or impose he terms of the Applicable License of t ted to that recipient You must keep intact all refer to the Applicable License and war Ada Dis imp tha You not If wit You ranties ptation tribute or ose any eff t restrict to exercise the rights gran ms of the Applicable License Adaptation as incorporated i require the Collection apart made subject to the terms of n C every copy of Publicly Perform tiv You Distribute or Publicly he Work Distribute or Publicly the Adap technological measures on the Adaptation he ability of a recipie ted to Thi Perfor na Collection from the Applicable Lice mply with the terms of provisions he URI for the Applicable tation You Distribute or any terms on he Adaptation to exercise under the terms of the notices that the disclaimer of as included in the Perform IV tation You LO when You may not nt of the Adaptation from t under the applies to this does n itself to nse that recipien Section 4 b but the Adaptatio S m the Work or any Adaptations or Collections made pursuant for the Work a are utili
31. esserlo Infine portate il voto in pubblico Non c bisogno di segretezza o anonimato nel voto su questioni che avete dibattuto pubblicamente comunque Ogni partecipante deve postare il suo voto nella mailing list in modo che ogni osservatore possa registrare e controllare il risultato per se stesso e in modo tale che ogni cosa sia registrata negli archivi Quando Votare La cosa pi difficile nel voto determinare quando farlo In generale passare al voto dovrebbe essere molto raro un ultimo ricorso quando tutte le altre opzioni sono fallite Non pensate che il voto sia un gran modo di risolvere i dibattiti Non lo Esso mette fine alle discussioni e quindi mette fine a un modo creativo di pesare ai problemi Nella misura in cui la discussione continua c la possibilit che qualcuno venga fuori con una nuova soluzione che piace a tutti Ci avviene sorprendentemente spesso Un dibattito acceso pu produrre un nuovo modo di pensare ai problemi e portare a proposte che possono soddisfare tutti Anche quando non vengono fuori nuove proposte usualmente ancora meglio venire a un compromesso che sostenere un voto Dopo un compromesso ognuno e un po scontento mentre dopo un voto alcuni sono scontenti mentre altri sono contenti Da un punto di vista politico 66 L Infrastruttura Sociale e Politica preferibile la prima situazione almeno ciascuno pu avvertire di aver ricavato una ricompensa per la sua scontentezza E
32. improbabile che i suoi sviluppatori vi prendano parte anche se segretamente lo vogliono Se tuttavia concludete che dovete fare la diramazione allineatevi privatamente col supporto prima quindi annunciate la diramazione in un modo non ostile Anche se siete arrabbiati o in disappunto con i proprietari correnti non dite questo nel messaggio Giusto spassionatamente dichiarate ci che vi ha portato alla decisione di una diramazione e che non volete significare nessuna intenzione malevola verso il progetto da cui vi diramate Dando per ipotesi che voi la considerate una diramazione come opposta a una conservazione di emergenza del progetto originale mettete l accento sul fatto che non state diramando il nome ma il codice e scegliete un nome che no vada in conflitto col nome del progetto Potete usare un nome che contiene o si riferisce al nome originale finch ci non apre la porta a una confusione di identit Certo bene spiegare in modo prominente sulla pagina web della diramazione che essa discende dal programma originale e anche che essa spera di soppiantarlo Solo non fate si che la vita degli utilizzatori sia pi difficile obbligandoli a sbrogliare una disputa di identit Infine potete ottenere che le cose partano con il piede giusto concedendo automaticamente a tutti coloro che avevano l invio nel progetto originale l accesso all invio nella diramazione inclusi quelli che erano apertamente in disaccordo con la necessit di u
33. in Capitolo 3 L Infrastruttura Tecnica cos io non entrer in essi qui La cosa importante dal punto di vista di una presentazione giusto avere un tracciamento dei bugs e assicurarsi del fatto che sia visibile nella pagina principale I Canali di Comunicazione I visitatori di solito vogliono sapere come raggiungere le persone coinvolte nel progetto Fornite gli indirizzi delle mailing lists delle chat dei canali IRC e dei forums dove le altre persone interessate al software possano essere raggiunte Rendete chiaro che voi e gli altri autori del progetto siete iscritti a queste mailing lists cosicch la gente possa vedere che c un modo per far sapere che raggiungeranno gli sviluppatori La vostra presenza nelle liste non implica un impegno a rispondere a tutte le domande o a implementare tutte le funzionalit future Alla fine molti utilizzatori probabilmente non si uniranno mai ai forum comunque ma saranno confortati dal fatto di sapere che potrebbero unirsi se caso mai ne avessero bisogno Nei primi stadi del progetto non c bisogno di avere forums separati per utilizzatori e sviluppatori E molto meglio che tutti siano spinti a parlare del software fra loro in un unica stanza Fra i primi arrivati la distinzione fra utilizzatori e sviluppatori spesso sfocata Nell ambito in cui la distinzione pu essere fatta il rapporto sviluppatori utilizzatori di solito molto pi alto nei primi giorni del progetto che non in segu
34. in una abbondante Normalmente tutti gli sviluppatori lavorano assieme nello stesso ambiente costruendo lo stesso castello Quando qualcuno vuole aggiungere un nuovo ponte levatoio ma non pu convincere tutti gli altri che sia un miglioramento fare un branch render possibile spostarsi in un angolo e provare Se lo sforzo ha successo pu invitare altri sviluppatori ad esaminare il risultato Se tutti sono d accordo che il risultato buono possono dire al sistema di controll di versione di spostare merge il ponte levatoio dal castello branch a quello principale E facile vedere come questa possibilit aiuti lo sviluppo collaborativo La gente ha bisogno della libert di provare nuove cose senza sentirsi come se stessero interferendo con il lavoro degli altri Altrettanto importante ci sono volte in cui il codice ha bisogno di essere isolato dalla solita pentola per fissare un bug o stabilizzare una release vedi sezione chiamata Stabilizzare una Release e sezione chiamata Avere in Manutenzione pi di Una Linea di Release in Capitolo 7 Confezione Rilascio e Sviluppo Quotidiano senza preoccuparvi del tracciamento di un bersaglio mobile Usate liberamente i branch e incoraggiate gli altri ad usarli Ma accertatevi anche che un dato branch sia solo attivo soltanto per il tempo necessario Ogni branch una piccola falla nell attenzione della comunit Anche coloro che non stanno lavorando in un branch mantengono comunque una visi
35. intraprendere Qualcuno pu usualmente fare un post che allo stesso tempo un sommario su quello che stato deciso e una implicita proposta di consenso Ci fornisce anche ad ognuno un ultima occasione per dire Aspettate io non sono d accordo su questo Dobbiamo sviscerare ci ancora per un po Per piccole non controverse decisioni la proposta di consenso implicita Per esempio quando uno sviluppatore invia spontaneamente un correzione di bug l invio stesso una proposta di consenso Io prendo per buono che tutti concordino sul fatto che questo bug debba essere corretto e che questo sia il modo di correggerlo Ovviamente lo sviluppatore non dice in realt ci egli semplicemente invia la correzione e gli altri nel progetto non si infastidiscono a dare il loro ok perch il silenzio consenso Se qualcuno invia un cambiamento che non riscuote il consenso il risultato semplicemente che il progetto discute il cambiamento come se non fosse stato ancora inviato Il motivo per cui ci funziona nell argomento della prossima sezione Controllo di Versione Significa Che Vi Potete Rilassare Il fatto che il codice sorgente tenuto sotto il controllo di versione significa che si pu tornare indietro dalla maggior parte delle decisioni Il pi comune modo in cui ci avviene che ognuno invia un cambiamento pensando erroneamente che ognuno sarebbe contento di esso solo che si trova di fronte a obiezioni dopo il fatto E ti
36. mentale stai usando la pi recente versione di SUbversion Magari il bug gi stato messo a posto dovresti testare di nuovo la tua ricetta versione pi recente di Subversion Oltre alla ricetta di riproduzione avremo anche bisogno di una completa descrizio dell ambiente in cui hai riprodotto il bug Questo significa il tuo sistema operativo il rilascio e o la revisione di Subversion il compilatore e le opzioni di configurazione con cui hai compilato Subversi ogni modifica privata che hai fatto al tuo Subversion la versione di Berkeley DB con cui stai facendo andare Subversion se c ogni altra cosa che potrebb ssere rilevante Sbaglia nel dare troppe infor Una volta che hai tutto questo sei pronto a scrivere il rapporto Inizia con una Cio di come di aspettavi che Subversion si comportasse e confrontalo con come s il bug ti sembra ovvio potrebbe non essere cos ovvio a qualcun altro cos meg A questo fai seguire la descrizione dell ambiente e la ricetta di riproduzione Se e persino la patch per mettere a posto il bug va benissimo vedi http subversion apache org docs community guide patches per le istruzioni su co Manda tutte queste informazioni a dev subversion tigris org o se sei gi stato l di segnalare un problema allora vai al Issue Tracker l segui le istruzioni Grazie Sappiamo che un gran lavoro fare una segnalazione di bug efficace ma un seg
37. molti vantaggi tangibili mentre invece ci sono vantaggi nell affidarsi al controllo umano Di sicuro niente di ci vuole dire che le limitazioni in s non sono importanti Sarebbe male per un progetto incoraggiare le persone a fare commit in aree in cui non sono qualificate Inoltre in molti progetti un accesso pieno non limitato ai commit ha uno stato speciale implica diritti di voto su questioni riguardanti il progetto intero Questo aspetto politico del commit discusso sezione chiamata Chi Vota in Capitolo 4 L Infrastruttura Sociale e Politica Tracciamento dei bug Il tracciamento dei bug un argomento ampio vari suoi aspetti sono discussi lungo questo libro Qui cercher di concentrarmi principalmente su setup e considerazioni tecniche ma per arrivarci dobbiamo iniziare con una domanda di politica esattamente quale tipo di informazione deve essere mantenuta in un tracciatore di bug Il termine tracciatore di bug bug tracker fuorviante Sistemi di tracciamento di bug sono anche usati frequentemente per tenere traccia delle richieste di nuove funzionalit one time task patch non sollecitate veramente ogni cosa che abbia stati di inizio e di fine distinti con stati di transizione opzionali nel mezzo e che accumuli informazioni durante il suo tempo di vita Per questa ragione i bug tracker sono anche chiamati tracciatori di problemi issue trackers tracciatori di difetti defect trackers artifact trackers tr
38. pronti a essere messi in evidenza nel momento di di qualche indicazione di diffuso malcontento nella comunit La Contrattazione Il lavoro a contratto necessita di essere trattato con cura nei progetti di software libero Idealmente voi volete che un lavoro di imprenditore sia accettato dalla comunit di sviluppo e impacchettato 77 I Soldi nella distribuzione pubblica In teoria non interesserebbe chi sia l imprenditore finch il suo lavoro buono ed fatto secondo le linee guida Teoria e pratica possono a volte coincidere anche Un perfetto sconosciuto che si metta in evidenza con una buona patch sar generalmente capace di metterla nel software Il problema molto difficile produrre una buona patch per una crescita non banale o una nuova funzionalit quando si veramente un perfetto sconosciuto uno deve prima discutere quella con il resto del progetto La durata della discussione non pu essere predetta con precisione Se il lavoratore a contratto pagato ad ore voi potete concludere pagando pi di quanto aveste previsto se lui pagato con una somma secca pu concludere facendo pi lavoro di quanto possa produrre Ci sono due modi per aggirare questo Quello preferito quello di fare una erudita congettura sulla lunghezza della durata del processo di discussione basata su passate a esperienze aggiungere qualche riempitivo per errori e basare il contratto su quello Ci aiuta anche a suddividere il
39. questo capitolo sono menzionate qui per ragioni di completezza La maggior parte di questi contratti non sono mutuamente esclusivi e alcune licenze ne includono diverse L argomento comune a esse che esse pongono richieste al destinatario in cambio del diritto del destinatario di usare e o distribuire il codice Per esempio alcuni progetti vogliono che il proprio nome e reputazione si trasmettano con il codice e questo ha il valore di imporre il carico extra di un riconoscimento o una clausola di marchio a seconda della sua onerosit questo carico pu far nascere nell utilizzatore un scelta di una licenza che chieda meno La GPLe la compatibilit di Licenza La linea divisoria di gran lunga pi netta in fatto di licenze quella fra proprietarie compatibili e proprietarie incompatibili cio fra la GNU General Public License e tutte le altre Poich il principale obiettivo dei creatori della GPL la promozione del software libero essi hanno deliberatamente creato la licenza per rendere impossibile mischiare il codice sotto licenza GPL con programmi proprietari Specificatamente fra i requisiti della GPL vedere http www fsf org licensing licenses gpl html per il suo testo completo ci sono questi due 1 Ogni lavoro derivato cio ogni lavoro che contenga una quantit di codice non facile sotto licenza GPL deve essere distribuito sotto licenza GPL 167 Licenze Diritti d Autore e Brevetti 2 Non ulteriori restri
40. stabil anche un pericoloso precedente che altre organizzazioni mettono simili clausole pubblicitarie nel loro software libero mettendo il nome della propria organizzazione al posto della l Universit della California Lawrence Berkeley Laboratory e i ridistributori di software furono investiti da un sempre crescente carico su quello che a loro era richiesto di esibire Fortunatamente molti dei progetti che usarono quella licenza diventarono consci del problema e semplicemente eliminarono la clausola pubblicitaria Nel 1999 anche l Universit della California fece lo stesso Il risultato fu una licenza BSD rivisitata che semplicemente una licenza originale BSD con la clausola pubblicitaria rimossa Comunque questa storia rende la frase licenza BSD un po ambigua si riferisce alla licenza revisionata o alla originale Questo il motivo per i quale io preferisco la licenza MIT X che essenzialmente equivalente e che non soffre di nessuna ambiguit Comunque c forse un motivo per preferire la licenza BSD alla MIT X ed quello che la licenza BSD include questa clausola N il nome dell lt ORGANIZZAZIONE gt n il nome dei suoi collaboratori pu essere usato per sottoscrivere o promuovere prodotti derivati da questo software senza precedente autorizzazione scritta Non chiaro il fatto che senza una tale clausola un destinatario avrebbe avuto i diritti di usare il nome del licenziatario in qualche modo ma la clauso
41. subversion tigris org faqg html diff cmd lt ayita gt Grazie Questo dice al bot che loggato nel canale come ayita di ricordare una certa URL come risposta alla domanda diff cmd Ora possiamo interpellare ayita chiedendogli di dire ad un altro utente di diff cmd lt kfogel gt ayita tell jrandom about diff cmd lt ayita gt jrandom http subversion tigris org fag html diff cmd La stessa cosa pu essere fatta usando una conveniente scorciatoia lt kfogel gt a jrandom diff cmd lt ayita gt jrandom http subversion tigris org fag html diff cmd L insieme di comandi e comportamenti pu cambiare da bot a bot L esempio sopra con ayita http hix nu svn public alexis trunk di cui un istanza di solito presente in svn su Freenode Altri bot sono Dancer http dancer sourceforge net e Supybot http supybot com Da notare che non c bisogno di particolari privilegi sul server per far andare un bot Un bot un programma client tutti possono impostarne uno e metterlo in ascolto su un particolare server o canale Se il vostro canale tende ad ospitare domande ripetute molte volte raccomando vivamente di impostare un bot Solo una piccola percentuale di utenti del canale avr la capacit di manipolare il bot ma questi utenti risponderanno ad una percentuale sproporzionatamente alta di domande perch il bot permette loro di rispondere in modo pi efficiente Archiviazione di IRC Anche se possibile ar
42. usare Le funzionalit elencate sul sito web di META CVS include versionamento della struttura delle directory gestione dei tipi di file migliorata fare merge e branch in modo pi facile per l utente supporto ai link simbolici liste di propriet attaccate ai dati versionati importazione di dati di terze parti migliorata e facile processo di upgrade da CVS OpenCM http www opencm org OpenCM progettato come un rimpiazzamento sicuro ad alta integrit per CVS Una lista di funzionalit chiave pu essere trovata sulla pagina delle funzionalit Pur non essendo ricco di 180 Sistemi di Controllo di Versione Liberi funzionalit come CVS supporta alcune utili cose che mancano in CVS In breve OpenCM fornisce un supporto di prima scelta per rinomine e configurazione autenticazione crittografica e controllo degli accessi e branch nativi Stellation http www eclipse org stellation Stellation un avanzato ed estensibile sistema di gestione di configurazione di software originariamente sviluppato alla IBM Research Mentre Stellation fornisce tutte le funzionalit standard disponibili in ogni sistema SCM Source Code Management gestione di codice sorgente ndt spicca per un numero di funzionalit avanzate come la gestione del cambiamento orientato all attivit task oriented versionamento di progetto consistente e branch facile inteso per facilitare lo sviluppo dei sistemi software da parte d
43. www apache org foundation voting html La ASF in realt un insieme di progetti di software legalmente organizzata come una organizzazione no profit cos i suoi documenti tendono a descrivere le procedure di organizzazione pi che le convenzioni di sviluppo Esse sono anche letture di pregio tuttavia perch rappresentano l esperienza accumulata di un gran numero di progetti open source 70 Capitolo 5 Soldi Questo capitolo esamina come dare i finanziamenti a una ambiente di software libero E rivolto non solo agli sviluppatori che sono pagati per lavorare a progetti di software libero ma anche ai loro managers che hanno bisogno di capire le dinamiche sociali dell ambiente di sviluppo Nelle sezioni che seguono il destinatario tu si presume che sia sia lo sviluppatore pagato sia chi lo dirige Il consiglio sar spesso lo stesso per ambedue quando non lo il pubblico a cui si dirige sar reso chiaro dal contesto Che le compagnie finanzino uno sviluppo di software libero non un fenomeno nuovo Una grande quantit di sviluppo stato spesso sovvenzionato informalmente Quando un amministratore di sistema scrive uno strumento di analisi del network per aiutare gli sviluppatori a fare il loro lavoro allora lo posta on line e raccoglie le correzioni dei bugs e i contributi alle funzionalit dagli altri amministratori ci che avvenuto che si formato un consorzio non ufficiale Il finanziamento del con
44. 1 non si trovano nella stessa serie minore anche se ambedue hanno 4 come numero minore d altra parte la 2 4 0 e la 2 4 2 si trovano nella stessa linea minore sebbene non siano adiacenti se la 2 4 1 stata rilasciata fra di esse Il significato di questi numeri esattamente ci che vi aspettereste un aumento del numero maggiore indica che il cambiamento maggiore avvenuto un cambiamento del numero minore indica che sono 118 Confezione Rilascio e Sviluppo Quotidiano avvenuti cambiamenti minori e un cambiamento del micro numero indica cambiamenti trascurabili Alcuni progetti aggiungono un quarto componente usualmente chiamato numero di patch specialmente per un un controllo pi fine sulle differenze fra le loro releases in maniera disorientante altri progetti usano patch come sinonimo di micro in un sistema Ci sono anche progetti che usano un sistema a tre componenti Ci sono anche progetti che usano l ultimo componente come numero di fabbricazione incrementato ogni volta che il software costruito e non rappresenta nessun cambiamento al di fuori dell allestimento Ci aiuta il progetto a mettere in relazione ogni rapporto di bugs con uno specifico allestimento ed forse molto utile quando i pacchetti binari sono il metodo di distribuzione di default Sebbene ci siano molte differenti convenzioni su quanti componenti usare e cosa significhino i componenti le differenze tendono a div
45. Er TEENE 31 Di cosa ha bisogno un progetto eee 32 Maino Lists reina iaia ie 33 Prevenire lo spam caino ilo DIAL Ln oil Iain 34 Identificazione e gestione degli header ee 36 Il grande dibattito sul Rispondi A e 38 Archiviazione pifi nai aaa 40 Software cale beige bobs Alu Adi alain alal 41 Controllo di versione lt tr pitone torri elia DELIA E E EE ES 42 Vocabolario del controllo di versione ee 42 Scegliere un sistema di controllo di versione 0 45 Usare un sistema di controllo di versione e 46 Tracciamento del DUS irritato nie iaia fra pila SI Interazione con le mailing list eee cee eee ce ee ce eeeaeeca seca eeae eeu eeneeeneeeenees 53 Pre Filtraggio del Bug Tracker sissioni Rena 54 Produrre Software Open Source IRC Sistemi di Chat in tempo reale eee 55 Bott nile ivi iaia aliena ibid 57 Archiviazione di IRC nata Ai e gates ene Peire nta 37 Wiki e aa a Qi flanella SLI usa sazia 57 WED SIE ritrae toria riale TE NE 59 Canned Hostunp orrr alla adelaide 59 4 L Infrastruttura Sociale e Politica a a R a E a E a 62 TDittatori Benevol einir ini EEE EE AE EE AE E EE S a 63 Chi Pu Essere un Dittatore Benevolo e 63 Democrazia Basata sul Consenso eee 64 Controllo di Versione Significa Che Vi Pot
46. In stanze non metaforicamente affollate la soluzione una procedura parlamentare linee guida formali su come avere discussioni in tempo reale in grandi gruppi come assicurarsi che importanti dissensi non si perdano nelle inondazioni dei commenti anch io come dar forma a sottocommissioni come riconoscere quando le decisioni vengono prese ecc Una parte importante della procedura parlamentare specificare come il gruppo interagisce con il suo sistema di gestione delle informazioni Alcuni rilievi vengono fatti per registrazione altri no La registrazione stessa soggetta a una manipolazione diretta ed scambiata per una trascrizione letterale di ci che avvenuto non per ci su cui il gruppo concorda che sia avvenuto La registrazione non monolitica ma assume forme differenti a seconda del fine Essa comprende i minuti degli incontri individuali l insieme di tutti i minuti di tutti gli incontri i sommari le agende e le loro annotazioni i rapporti della commissione i rapporti dei corrispondenti non presenti gli elenchi delle azioni ecc Poich Internet non una stanza reale noi non dobbiamo preoccuparci di riprodurre quelle parti della procedura parlamentare che mantengono le persone ferme mentre altre stanno parlando Invece quando fanno propria la tecnica dell organizzazione delle informazioni i progetti open source che vanno bene sono una forma molto amplificata di procedura parlamentare Poich quasi tutte le comu
47. Per le releases importanti contenenti molti cambiamenti molti progetti preferiscono metter fuori le release candidates prima cio scanley 2 5 0 betal prima della scanley 2 5 0 Lo scopo di una candidate quello di sottoporre a una estesa fase di testing prima di darle il benelacito di release ufficiale Se si trovano problemi essi vengono corretti un ramo di release ed viene esibita una nuova candidate release scanley 2 5 0 beta2 Il ciclo continua finch non sono rimasti pi bugs inaccettabili punto nel quale l ultima release candidate diventa la release ufficiale cio l unica differenza fra la release candidate e la release reale la rimozione del qualificatore dal numero di versione Sotto moltissimi aspetti una candidate release deve essere considerata allo stesso modo di una vera release Il qualificatore a pha beta o rc sufficiente a mettere in guardia gli utilizzatori conservatori dall aspettare fino alla vera release e certamente le email di annuncio delle candidate releases dovrebbero mettere in evidenza che il loro scopo quello di sollecitare reazioni Tranne questo date alle candidate release la stessa quantit di attenzione che date alle normali release Dopotutto voi volete che la gente usi le candidates a causa della esposizione migliore per scoprire bugs non scoperti e anche perch voi non sapete mai quale candidate si conclude dando inizio alla release ufficiale Annunciare le Releases Annunciare una releas
48. SPECIAL INCIDENTAL CONSEQUENTIAL PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES 7 Termination a This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License Individuals or entities who have received Adaptations or Collections from You under this License however will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses Sections 1 2 5 6 7 and 8 will survive any termination of this License b Subject to the above terms and conditions the license granted 197 Copyright here is perpetu n the Work N ny other licen nder the terms Miscellaneous al for the duration o f the applicable copyright otwithstanding the above Licensor reserves the ight to release the Work under different license terms or to top distributing the Work at any time provided however that se that has been or is required to be granted of this License and this License will continue 1 r s any such election will not serve to withdraw this License or a u i n full force and effect unless terminated as stated above a Each time You Distribute or Publicly Perform the Work or a to You under th b Each time You D on the same ter under this Lice f any provisio
49. You may D the Lice Crea lice Lice terms nse w tive nse v nse waived the Licensor waives the exclusive right to lect such royalties for any exercise by You of the hts granted under this License and untary License Schemes The Licensor waives the right collect royalties whether individually or in the nt that the Licensor is a member of a collecting iety that administers voluntary licensing schemes t society from any exercise by You of the rights nted under this License via hts may be exercised in all media and formats whether hereafter devised The above rights include the right modifications as are technically necessary to exercise n other media and formats Subject to Section 8 f all xpressly granted by Licensor are hereby reserved g granted in Section 3 above is expressly made subject to by the following restrictions istribute or Publicly Perform the Work only under the this License You must include a copy of or the source Identifier URI for this License with every he Work You Distribute or Publicly Perform You may not ms on the Work that restrict the terms of lity of the recipient of the Work to nted to that recipient under the terms of se You may not sublicense the Work You must keep l notices that refer to this License and to the r of warranties with every copy of the Work You e or Publicly Perform When You Distribute or Publicly he Work You may not any effective techn
50. aggiornarti dovrebbe sparire repository Un database in cui sono memorizzate le modifiche Alcuni sistemi di controllo di versione sono centralizzati c un solo repository principale che memorizza tutte le modifiche del progetto Altri sono decentralizzati ogni sviluppatore ha il proprio repository e le modifiche sono scambiate arbitrariamente avanti e indietro tra i repository Il sistema di controllo di versione mantiene traccia delle dipendenze tra le modifiche e quando il momento del rilascio un particolare insieme di modifiche viene approvato per il rilascio La domanda su quale sia migliore tra i sistemi centralizzati e decentralizzati una delle lunghe guerre sante dello sviluppo software cercate di non cadere nella trappola di discuterne sulle mailing list del vostro progetto checkout Il processo di ottenere una copia del progetto da un repository Un checkout solitamente produce un albero di directory chiamato copia di lavoro vedi sotto da cui le modifiche possono essere committate indietro al repository originale In alcune versioni di sistemi di controllo decentralizzati ogni copia di lavoro essa stessa un repository e i cambiamenti possono essere presi o richiesti da ogni repository che vuole accettarli 43 L Infrastruttura Tecnica copia di lavoro L albero di directory privato di uno sviluppatore contenente i file di codice sorgente del progetto e possibilmente le sue pagine web e altri documenti Una
51. aiutare gli sviluppatori a capire i potenziali problemi legali dei brevetti e del marchio La forma che questo aiuto pu prendere discussa in Capitolo 9 Licenze Diritti d Autore e Brevetti La cosa principale essere sicuri che le comunicazioni fra il dipartimento legale e la comunit degli sviluppatori se avviene punto avvenga con il reciproco riconoscimento dei molto diversi universi da cui le parti provengono Occasionalmente questi due gruppi parlano uno dopo l altro ogni parte dando per scontato una comprensione dello specifico campo che l altra non ha Una buona strategia avere un intermediario usualmente uno sviluppatore oppure un legale con esperienza tecnica che stia nel mezzo e medi finch sia necessario La Documentazione e l Usabilit La documentazione e l usabilit sono ambedue i punti delicati nei progetti open source sebbene io penso almeno nel caso della documentazione che la differenza fra il software libero e quello proprietario sia frequentemente esagerata Nondimeno nei fatti vero che molti software open source difettano di una documentazione di prima classe e di ricerca di usabilit Se la vostra organizzazione vuole contribuire a riempire questi vuoti probabilmente la cosa migliore che pu fare assumere le persone che non sono sviluppatori regolari nel progetto ma che saranno capaci di interagire produttivamente con gli sviluppatori Non assumere sviluppatori regolari un bene per due ragion
52. al punto in cui sono ora Qui come lo ho messo in una email a un tale che stava ricoprendo il ruolo di manager di release ma non era proprio portato per esso Se vuoi sostituire me con qualcun altro mi sar gradito passare al ruolo che viene dopo Ho una richiesta che spero non sia irragionevole Mi piacerebbe tentare con una nuova release nel tentativo di mettermi alla prova gt gt gt gt Io capisco completamente il desiderio sono stato l io stesso ma in quest Questa non la prima o la seconda release la sesta o la settima E per Nel peggiore dei casi il volontario pu essere in disaccordo apertamente Allora voi dovete prendere atto del fatto che le cose stanno per diventare scomode e andare avanti comunque Adesso il momento di dire alle altre persone ci che avete detto su questo ma non dite chi finch non avete il suo permesso perch queste conversazioni erano confidenziali e che voi non pensate che bene che il progetto continui cos Siate insistenti ma mai minacciosi Tenete in mente che con la maggior parte dei ruoli l avvicendamento avviene in realt nel momento in cui qualcuno incomincia a fare il nuovo lavoro non non nel momento in cui la vecchia persona smette di farlo Per esempio se il contenzioso sul ruolo diciamo del manager di problemi ad ogni momento voi e le altre influenti persone nel progetto potete far pressione per un nuovo manager di problemi In real
53. anche non sapere che essi si sono allontanati qualcuno potrebbe anche nascondersi nella mailing list vedere che si fa la pelle dura a partecipare al progetto e decidere invece di essere coinvolto del tutto Mantenere il forum confidenziale una strategia di sopravvivenza ed pi facile da attuarsi quando il progetto ancora giovane Una volta che ci parte della cultura voi non dovrete essere la sola persona a a promuoverlo Sar mantenuto da ciascuno Praticare una Visibile Revisione del Codice Uno dei migliori modi di allevare una comunit di sviluppo il fatto di ottenere che le persone guardino il codice uno dell altro E richiesta una qualche infrastruttura per consentire ci effettivamente in particolare devono essere abilitate email di invio vedere sezione chiamata Email di commit per maggiori dettagli L effetto delle email di invio che ogni volta che uno invia un cambiamento al codice sorgente viene emessa una email che mostra una messaggio di log e le differenze per il cambiamento vedere diff in sezione chiamata Vocabolario del controllo di versione La revisione del codice la pratica di revisionare le emails di invio cos come arrivano cercando per bugs e possibili miglioramenti La revisione del codice serve a diversi scopi simultaneamente E il pi chiaro esempio di revisione condivisa nel mondo dell open source e favorisce direttamente il mantenimento della qualit del software Og
54. ancora meglio che avere solo i 10 Revocare l Accesso all Invio La prima cosa da dire sulla revoca dell accesso all invio cercate di non essere in quella situazione in primo luogo A seconda delle persone il cui accesso all invio sta venendo revocato le discussioni su una tale azione possono essere molto divisive Anche quando non fossero divisive esse sarebbero causa di perdita di tempo ai danni del lavoro produttivo Comunque se dovete farlo la discussione dovrebbe tenersi privatamente fra le stesse persone che sarebbero nella posizione di votare per concedere a quella persona qualunque gusto dell accesso all invio che correntemente ha La persona stessa non dovrebbe essere inclusa Questo contraddice la solita ingiunzione contro la segretezza ma in questo caso necessario Primo nessuno sarebbe in grado di parlare liberamente altrimenti Secondo se la mozione non va a termine voi non necessariamente volete che la persona sappia che ci sia stato mai preso in considerazione perch ci potrebbe aprire domande Chi era dalla mia parte Chi contro di me che portano al peggior tipo di faziosit In certe rare circostanze il gruppo pu volere che qualcuno sappia che la revoca dell acceso all invio stata o sta venendo considerata come un avviso ma questa apertura dovrebbe essere una decisione che prende il gruppo Nessuno dovrebbe mai di sua iniziativa rivelare informazioni su una discussione e su un voto che gli altri pres
55. applicano differenti quantit di rigore nel raccogliere le assegnazioni Alcune si procurano una dichiarazione informale da parte di un collaboratore su una mailing list di liste pubbliche qualcosa dall effetto di Io in tal modo assegno il copyright in questo codice al progetto di essere rilasciato in licenza sotto gli stessi termini del restante codice Almeno un legale con cui ho parlato dice che ci in effetti sufficiente presumibilmente perch avviene in un contesto in cui la concessione del copyright normale prevista comunque e perch rappresenta un tentativo bona fide da parte del progetto di accertare le vere intenzioni dello sviluppatore D altra parte la Free Software Foundation va dalla parte opposta richiede ai collaboratori di sottoscrivere e mandare per posta un pezzo di carta contenente una formale dichiarazione a volte per un solo contributo a volte per il contributo corrente e futuro Se il collaboratore un impiegato la FSF richiede che anche il collaboratore lo sottoscriva La paranoia dell FSF incomprensibile Se qualcuno viola i termini della GPL incorporando qualcuno del loro software in un programma proprietario la FSF avr bisogno di litigare su questo davanti al tribunale e vuole che i suoi copyrights siano il pi inattaccabili possibile quando ci avviene Siccome la FSF la detentrice del copyright di una gran quantit di software popolari vede ci come una possibilit reale Se la vostra orga
56. cooperativo Vocabolario del controllo di versione Questo libro non pu insegnarvi come usare il controllo di versione se non l avete mai usato prima ma sarebbe impossibile discuterne senza alcune parole chiave Queste parole sono utili indipendentemente da ogni sistema di controllo di versione sono i nomi e i verbi di base della collaborazione in rete e saranno usati in modo generico lungo il resto di questo libro Anche se non ci fossero sistemi 42 L Infrastruttura Tecnica di controllo di versione il problema della gestione delle modifiche rimarrebbe e queste parole ci forniscono un linguaggio per parlare concisamente di questo problema Versione contro Revisione La parola versione a volte usata come un sinonimo di revisione ma non la user in questo libro perch troppo facilmente confusa con versione nel senso di una versione di un software cio il rilascio o numero di edizione come in Versione 1 0 Tuttavia dal momento che la frase controllo di versione gi standard continuer ad usarla come sinonimo di controllo di revisione e controllo delle modifiche commit Fare una modifica al progetto pi formalmente archiviare una modifica al progetto nel database del controllo di versione in modo che possa essere incluso nei futuri rilasci del progetto Commit pu essere usato come nome e come verbo Come nome essenzialmente un sinonimo di cambiamento Per esempio Ho appena
57. copia di lavoro contiene anche un po di metadati gestiti dal sistema di controllo di versione che dice alla copia di lavoro da quale repository viene quali revisioni vedi sotto dei file sono presenti eccetera Generalmente ogni sviluppatore ha la sua copia di lavoro in cui fa e prova modifiche e da cui fa commit revisione modifica insieme di modifiche Una revisione solitamente un incarnazione specifica di un particolare file o directory Per esempio se il progetto presenta la revisione 6 del file F e poi qualcuno fa il commit di una modifica mm mn mn a F ci crea la revisione 7 di F Alcuni sistemi usano anche revisione modifica insieme di modifiche per riferirsi ad un insieme di modifiche comittate insieme come una unit concettuale Questi termini hanno occasionalmente significati tecnici distinti in diversi sistemi di controllo di versione ma l idea generale sempre la stessa danno modo di parlare in modo preciso di punti esatti nella storia di un file o di un insieme di file per dire immediatamente prima e dopo la riparazione di un bug Per esempio Si ha fissato il bug nella versione 10 oppure ha fissato il bug nella versione 10 del file foo c Quando si parla di un file o di una collezione di file senza specificare la revisione generalmente si assume che si intenda la revisione pi recente disponibile diff Una rappresentazione testuale di una modifica Una diff mostra quali righe sono state cambiat
58. dare agli uomini modi convenienti di realizzare ci Di cosa ha bisogno un progetto La maggior parte dei progetti open source offrono almeno un minimo insieme standard di strumenti per la gestione dell informazione Sito Web Principalmente un canale di informazione centralizzato e a senso unico dal progetto verso il pubblico Il sito web pu anche servire come interfaccia di amministrazione di altri strumenti del progetto Mailing list Solitamente il forum di comunicazione pi attivo e il mezzo di memorizzazione mezzo di registrazione Controllo di versione Permette agli sviluppatori di gestire adeguatamente le modifiche nel codice compresi i passi indietro e il cambio di portabilit Permette a tutti di vedere cosa sta succedendo al codice Tracciamento dei bug Permette agli sviluppatori di tenere traccia di quello su cui stanno lavorando coordinarsi l uno con l altro e pianificare i rilasci Permette a tutti di fare interrogazioni sullo stato dei bug e di memorizzare informazioni per esempio istruzioni per la soluzione di certi tipi di problemi riguardanti particolari bug Pu essere usato non solo per i bug ma anche per attivit rilasci nuove funzionalit eccetera Chat in tempo reale Un posto per scambi di botta e risposta e discussioni veloci e leggere Non sempre completamente archiviata Ognuno di questi strumenti affronta un bisogno specifico ma le loro funzioni sono anche correlate e gli strumenti dev
59. degli hosting in scatola e per un elenco di siti che lo offrono Scegliere una Licenza e Applicarla Questa sezione vuol essere guida molto una veloce molto scarna alla scelta di una licenza Leggete Capitolo 9 Licenze Diritti d Autore e Brevetti per capire le implicazioni dettagliate di differenti licenze e come la licenza che scegliete possa avere ripercussioni sulla possibilit per la gente di mescolare il vostro software con altri software liberi C un gran numero di licenze fra cui scegliere Non avete da prendere in considerazione molte di esse ora dal momento che esse sono state scritte per soddisfare le esigenze legali di qualche grossa impresa o persona e non sarebbe adatta per il vostro progetto Restringeremo il campo solo alle pi comuni licenze nella maggior parte dei casi voi vorrete scegliere una di esse Le Licenze Fai Tutto Se vi fa comodo che il vostro progetto possa essere potenzialmente usato in programmi proprietari allora usate una licenza MIT X style E la pi semplice delle licenze minimali che fanno poco pi che affermare un diritto di copyright senza nei fatti limitare la copia e specifica che il codice arriva senza garanzia Vedere sezione chiamata La licenza MIT X Window System per i dettagli 22 Partenza La GPL Se non volete che il vostro codice sia usato in software proprietari usate la GNU General Public License http www gnu org licenses gpl htm La GPL probabilmen
60. dei problemi nel tracciatore di bug del progetto cresce in proporzione al numero di persone che usano il software Quindi anche se correggete i bug e sistemate un programma sempre pi robusto vi dovreste aspettare che tuttavia che il numero di problemi aperti cresca essenzialmente senza limiti La frequenza di problemi duplicati anche cresce come crescer la frequenza di problemi descritti in modo incompleto e con pochi particolari I manager dei problemi sono di aiuto nell alleviare questi problemi con l osservazione di ci che va nel database facendovi periodicamente la rivista per vedere se ci sono problemi specifici Il loro atto pi comune probabilmente correggere i problemi che arrivano o perch chi ha fatto il report non riemp correttamente alcuni campi del form o perch il problema un duplicato di uno esistente nel database Ovviamente pi un manager di problemi familiare con il database dei bug del progetto con pi efficienza sar capace di trovare i problemi duplicati Questo uno dei principali vantaggi di avere poche persone che si specializzino nel database dei bug invece che chiunque cerchi di farlo ad hoc Quando il gruppo cerca di farlo in maniera decentralizzata nessun singolo acquisisce una profonda esperienza nel contenuto del database I manager di problemi possono servire da mappa fra i problemi e i singoli sviluppatori Quando ci sono un sacco di reports di bug che arrivano non tutti gli sviluppator
61. del lavoro non chi sembrato agire come custode Pu avvenire che una stessa persona sembra fare la maggior parte del lavoro di revisione per una data area ma fino a quando egli non cerca di impedire a qualcun altro di fare anche lo stesso lavoro le cose stanno probabilmente a posto Per combattere un incipiente territorialismo o anche l apparenza di esso molto progetti hanno fatto il passo di bandire l introduzione nei file sorgenti dei nomi degli autori e quelli dei manutentori designati Io sono francamente d accordo con questa pratica noi la seguiamo nel progetto Subversion ed pi o 142 Gestire i Volontari meno la politica ufficiale nella Apache Software Foundation Il membro della ASF la presenta in questo modo All Apache Software Foundation noi scoraggiavamo l uso dei tag author nel codice sorgente C erano molte ragioni per questo oltre alle conseguenze legali Lo sviluppo collettivo consiste nel lavorare sui progetti come gruppo e aver cura del progetto come gruppo Dare riconoscimenti giusto e dovrebbe essere fatto ma in un modo che non permetta false attribuzioni anche per sottinteso Non c una linea chiara su quando aggiungere o rimuovere un tag author Aggiungete il vostro nome quando cambiate un commento Quando inserite una correzione in linea Rimuovete il tag di un altro autore quando cambiate un codice senza cambiare il risultato ed esso sembra al 95 differente Che fate con persone che vanno in
62. di intenti eee 14 Specificare che il Progetto Libero eee 15 Elenco dell Caratteristiche e dei Requisiti 0 15 Lo Stato dello Sviluppo eee 16 Downloads pisa lag ia ara ig a aaa ara 16 Controllo Versione e Accesso al Tracciamento Bug i 17 Canali di Comunicazione porri peg pai POET pa TA pa Ria 18 Linee Guida per lo Sviluppatore ee 18 L documentazione 33 25 os ccs eves mpun e RE Sansa Tea Ees EPT SRS oap EROE ener 19 Emissione di dati e screenshoots di esempio cee eeeeeeceeeeeeeeeeeeeeeeeeereeeneresenenes 21 E Hosting In SCatolaccsses ssatesesahstag sas lla nai 22 Scegliere una Licenza e Applicarla eee 22 Le Licenze Fai Tutto ica aaa 22 La GPE ach pablo nba iaia 23 Come Applicare Una Licenza Al Vostro Software eect eeee ees 23 Dare il TONO se citys Soviet esc ast gies ai ai are lira 24 Evitare disCussiOni private ieis aeeoe pa RUE EALA PERSE EEI RR 24 Stroncate sul Nascere la Scortesia eee 26 Praticare una Visibile Revisione del Codice eee cece eece teen seca sean eeaeees 27 Quando Aprite un Progetto che era Chiuso in Passato Fate Attenzione alla Grandezza del Cambiamento ssis a ae RIE aa RE PERES 28 L Amnuneio ieri iii a LE ene ENER 29 3 L Infrastruttura Tecnica rivisto et saidavhehatsa ges E E EE N E
63. di mailing list possono aggiungere e manipolare certi header standard per queste persone cos da guadagnare vantaggio da maggiori dettagli sotto Archiviazione Tutti i messaggi della mailing list sono memorizzati e resi disponibili sul web come alternativa alcuni software di gestione offrono speciali interfacce per l integrazione di strumenti di archiviazione esterni come MHonArc http www mhonarc 0rg Come sezione chiamata Uso Ben Visibile degli Archivi in Capitolo 6 Comunicazione sostiene l archiviazione cruciale Lo scopo di tutto questo semplicente mettere l accento sul il fatto che la gestione delle mailing list un problema complesso che ha dato molti problemi la maggior parte dei quali stata risolta Sicuramente non avrete bisogno di diventarne degli esperti Ma dovete essere consci del fatto che c sempre modo di imparare cose nuove e che la gestione della mailing list occuper la vostra attenzione di tanto in tanto durante la vita di un progetto open source Pi avanti esamineremo alcuni dei problemi di configurazione delle mailing list pi comuni Prevenire lo spam Tra quando questa frase stata scritta e quando stata pubblicata il problema dello spam grande quanto la Rete sar probabilmente raddoppiato nella sua gravit o almeno sembrer cos C era una volta non cos tanto tempo fa un tempo in cui uno poteva gestire una mailing list senza adottare assolutamente nessuna prevenzione per
64. diff grande come quando una gran quantit di nuovo codice stato aggiunto al repository allora ha senso omettere il diff e offrire solo la URL La maggior parte dei sistemi possono fare automaticamente questo tipo di limitazione Se il vostro non pu allora in ogni caso meglio includere i diff e vivere con l occasionale mail smisurata piuttosto che lasciare del tutto fuori i diff La revisione e il commento sono la pietra angolare dello sviluppo cooperativo troppo importante per farne a meno 2 Le email di commit devono avere l header Reply to impostato sulla normale mailing list di sviluppo non sulla mailing list dei commit Cio quando qualcuno esamina un commit e scrive una risposta tale risposta deve essere automaticamente diretta alla mailing list di sviluppo dove le questioni tecninche sono solitamente discusse Ci sono alcune ragioni per questo Primo vorrete tenere tutte le discussioni tecniche su una mailing list perch ci che la gente si aspetta e per mantenere un solo archivio di ricerca Secondo ci potrebbero essere parti interessate non iscritte alla mailing list di commit Terzo la mailing list di commit si presenta come un servizio per vedere i commit non per vedere commit e occasionali discussioni tecniche Chi ha sottoscritto la mailing list di commit l ha fatto per nient altro che le email di commit mandare loro altro materiale attraverso la mailing list violerebbe un contratto implicito Quarto la gente
65. differenza di cui stiamo parlando qui fra urgente e estremamente urgente Anche quando il report proviene da una fonte nota e amica ci potrebbe essere altra gente sulla rete che scopr il bug da tempo e che non lo ha giusto riportata La sola occasione in cui le cose non sono urgenti quando il bug in modo innato non compromette la sicurezza in modo serio L esempio anonimo14 globalhackerz net non faceto tra parentesi Voi potete ricevere realmente dei rapporti di bug da persone dall identit nascosta che con le loro parole e il loro comportamento non chiariscono del tutto se sono dalla vostra parte o no Non ha importanza se hanno fatto rapporto sul buco nella sicurezza a voi essi riterranno di avervi fatto un favore e voi potete rispondere a modo Ringraziateli per il report dategli una data nella o prima della quale progettate di rilasciare una correzione pubblica e teneteli nel giro A volte essi possono dare a voi una data cio una minaccia intrinseca di pubblicizzare il bug in una certa data siate pronti o no Questo pu essere 111 Comunicazione avvertito come un minaccioso gioco di potere ma pi probabilmente una azione preventiva risultante dalla passata delusione con produttori di software indifferenti che non presero i report di sicurezza abbastanza seriamente D altra parte voi non potete permettervi di irritare questa persona Dopotutto se ilo bug serio egli ha conoscenze che potrebbero causare
66. e WebSVN http websvn tigris org Il primo funziona sia con CVS che con Subversion il secondo con CVS soltanto e il terzo solo con Subversion Email di commit Ogni commit sul repository dovrebbe generare un email che mostra chi ha fatto le modifiche quando quali file e directory sono cambiati e come sono cambiate L email dovrebbere essere mandata su una speciale mailing list dedicata alle email di commit separata dalle altre mailing list a cui la gente scrive Gli sviluppatori e le altre parti interessate dovrebbero essere incoraggiati a sottoscrivere la mailing list dei commit dato che il modo pi efficace per stare dietro a cosa sta succedendo nel progetto al livello del codice Oltre dagli ovvi benefici tecnici della revisione di pari peer review see sezione chiamata Praticare una Visibile Revisione del Codice le email di commit aiutano a creare un senso di comunit perch stabiliscono un ambiente condiviso in cui la gente pu reagire agli eventi i commit che sanno essere visibili anche ad altri Le specifiche su come creare le email di commit cambieranno a seconda della vostra versione di sistema di controllo di versione ma solitamente c uno script o qualcosa di gi preparato per farlo Se state avendo problemi a trovarlo provate a guardare la documentazione sugli hooks uncini in particolare il post commit hook detto anche il hook loginfo in CVS Gli hook post commit sono strumenti generali per il lancio d
67. e certamente costava meno Mentre solo alcuni erano motivati a far girare sul computer il software libero per motivi strettamente filosofici una grande quantit di persone era contenta di farlo perch svolgeva meglio un compito E quelli che lo usavano erano spesso intenzionati a spendere tempo e mettere a disposizione capacit per rendersi utili a svolgere compiti di manutenzione e miglioramento del software Questa tendenza a produrre buon codice non era universale ma si stava affermando con crescente frequenza in progetti di software libero in giro per il mondo Imprese che trattavano principalmente software incominciarono gradualmente ad averne notizia Molte di esse scoprirono che stavano gi usando software libero nelle operazioni giornaliere solo che semplicemente non lo avevano saputo la parte superiore dell organizzazione spesso non a conoscenza di ci che il dipartimento IT fa Le grandi imprese incominciarono ad assumere un ruolo sempre pi attivo nei progetti di software libero contribuendo con tempo e mezzi e a volte persino finanziando lo sviluppo di programmi liberi Tali investimenti nel migliore degli scenari avrebbero potuto ripagarli molte volte di seguito Lo sponsor paga solo un piccolo numero di programmatori esperti affinch essi si dedichino al progetto a tempo pieno ma raccoglie i benefici del contributo di ognuno incluso il lavoro non pagato dei volontari e dei programmatori pagati da altre grandi imprese Free e
68. e che si possano scaricare Adattare un sito in modo che tale compilazione avvenga automaticamente ad ogni invio pu essere complicato e dispendioso come tempo impiegato ma ne vale la pena anche se vi costa un giorno o pi ad allestirlo Il beneficio complessivo di avere pagine aggiornate in ogni momento enorme anche se il costo di non non averlo potrebbe sembrare solo un piccolo incomodo in ogni singolo momento ad ogni singolo sviluppatore Fare tali passi non solo elimina tempo sprecato ma l oppressione e la frustrazione che ne deriva quando gli uomini fanno dei passi sbagliati come li faranno inevitabilmente nel cercare di portare a termine complicate procedure manualmente Le operazioni dai molteplici passi deterministiche sono ci per cui i computers sono stati inventati riservate agli uomini cose pi interessanti Testing automatizzato L esecuzione di tests automatizzati sono utili per ogni progetto di software perch il testing automatizzato specialmente il testing di regressione permette agli sviluppatori di sentirsi a proprio agio quando cambiano codice in aree con cui non hanno familiarizzato e cos incoraggiano lo sviluppo d esplorazione Poich la ricerca dei guasti difficile da fare a mano uno essenzialmente deve azzeccare dove potrebbe aver sbagliato qualcosa e tentare vari esperimenti per provare il contrario l avere modi 144 Gestire i Volontari automatizzati per individuare tali guasti risparm
69. eccetera incredibilmente facile perdere il vostro senso di posizione nella narrazione I messaggi che sono stati composti in maniera discontinua e non controllati prima di essere inviati sono spesso riconoscibili come tali soprattutto dallo smarrimento o cos si dovrebbe sperare dei loro autori Prendetevi del tempo per rivedere cosa mandate Pi i vostri messaggi stanno assieme strutturalmente pi saranno letti Dopo aver scritto migliaia di messaggi probabilmente noterete il vostro stile diventare conciso Questa sembra essere la norma nella maggior parte dei forum tecnici e non c nulla di sbagliato di per s Un grado di concisione che sarebbe inaccettabile nelle normali interazioni sociali semplicemente la normalit per chi ha a che fare con il free software Qui c una risposta che una volta presi da una mailing list su qualche CMS content management system ben in evidenza Puoi spiegare un po di pi esattamente qual il tuo problema eccetera Anche Che versione di Slash stai usando Non l ho capito dal tuo precedente messaggio Esattamente come hai fatto il build del codice apache mod_perl Hai provato la patch di Apache 2 0 di cui si parlato su slashcode com Shane Ora questo conciso Nessun saluto nessuna firma a parte il nome e il messaggio stesso solo un serie di domande poste nel modo pi compatto possibile La sua unica frase dichiarativa era una implicita critica al mio messag
70. esempio dato prima ma non hanno bisogno di esserlo Sebbene la documentazione sviluppatore possa essere molto utile non c motivo di tardare a rilasciare un permesso di farla Finch gli autori originari sono disponibili e vogliono rispondere alle domande sul codice questo sufficiente per partire Infatti il dover rispondere alle stesse domande pi e pi volte un motivo comune per scrivere la documentazione Ma anche prima che essa sia scritta determinati collaboratori si daranno da fare per trovare una loro via per quanto riguarda il codice La forza che guida la gente a spender tempo a imparare il codice base che il codice talvolta utile per se stessi Se la gente ha fiducia in esso si prender il tempo per capire le cose se non ha questa fiducia nessuna quantit di documentazione li attirer o li manterr Cos se avete tempo per scrivere la documentazione per un solo uditorio scrivetela per gli utilizzatori Tutta la documentazione utilizzatore in effetti anche una documentazione sviluppatore un programmatore che si sta accingendo a lavorare su una parte di software avr bisogno di familiarizzare con il suo utilizzo Pi in l quando vedrete programmatori che chiedono pi e pi volte le stesse cose prendetevi il tempo per scrivere documenti separati giusto per loro Alcuni progetti usano un sito web o comunque una collezione di documenti ipertestuali che pu essere modificato dai suoi utilizzatori e i
71. essa In generale quelli che preferiscono software libero molto verosimilmente sono per avere un atteggiamento morale verso il problema mentre coloro che preferiscono open source o non la vedono come una questione di libert o non sono interessati a metter in mostra il fatto che lo fanno Vedere sezione chiamata Free e open source a confronto in Capitolo 1 Introduzione per una storia pi dettagliata dello scisma La Free Software Foundation fa una eccellente assolutamente non oggettiva ma sottile e completamente corretta esegesi dei due termini a http www fsf org licensing essays free software for freedom html L iniziativa presa dall Open Source Initiative su questa 164 Licenze Diritti d Autore e Brevetti cosa o era nel 2002 divulgata in due pagine http www opensource org advocacy case_for_hackers php marketing and http www opensource org advocacy free notfree php FOSS F OSS FLOSS Dove ce ne sono due di ogni cosa li ce ne saranno presto tre e questo esattamente ci che sta avvenendo con i termini per il software libero Il mondo accademico forse volendo la precisione e la comprensione al di sopra dell eleganza sembra aver deciso per FOSS o talvolta per F OSS che sta per Free Open Source Software Un altra variante che sta guadagnando slancio FLOSS che sta per Free Libre Open Source Software libre familiare in molte lingue e non soffre dell ambiguit di free
72. essere causa di confusione vedere un numero di release a tre componenti la maggior parte delle volte con una release a quattro componenti inserita apparentemente a caso La maggior parte dei progetti che ho visto scelgono la coerenza e semplicemente e scelgono il numero successivo regolarmente programmato per le releases di sicurezza anche quando ci significa far slittare di uno le altre releases programmate Le Releases e Lo Sviluppo Quotidiano Il mantenimento di releases parallele simultaneamente ha ripercussioni su come vien fatto lo sviluppo quotidiano In particolare ci rende obbligatoria una disciplina che sarebbe raccomandata comunque ottenere che ogni invio sia un singolo cambiamento logico e non mescoli nello stesso invio cambiamenti non correlati Se un cambiamento troppo grande o troppo dirompente se fatto in un unico invio dividetelo in N invii dove ogni invio sia una ben ripartita sottosezione del cambiamento completo e non includa nulla di non correlato al cambiamento completo Qui c un esempio di invio mal concepito r6228 jrandom 2004 06 30 22 13 07 0500 Wed 30 Jun 2004 8 lines 134 Confezione Rilascio e Sviluppo Quotidiano Correzione del problema 1729 Rebdere l indicizzzazione gradevole avvisa l utente quando un file sta cambiando mentre viene indicizzato ui repl py ChangingFile Nuova classe di eccezione DoIndex Gestire la nuova eccezione indexer index py Foll
73. fermasse a quello sarei un Ma fatemi suggerire alcune finestre pop up che mi piacerebbe veder invia o implementat risponde ad email di mailing list a cui vorrebbero che mi iscrivessi La tua email sta per essere mandata a diverse migliaia di persone che dovranno usare almeno 10 secondi leggendola prima di decidere se interessante Almeno du settimane uomo saranno usate nel leggere la tua email Molti dei destinatari dovranno pagare per scaricare la tua email Sei assolutamente certo che la tua email di sufficiente importanza per disturbare tutte queste persone SI RIVEDI CANCELLA H Attenzione Non hai ancora letto tutte le email di questo thread Qualcun altro potrebbe gi aver detto cosa stai per dire nella tua risposta Per favore leggi l intero thread prima di rispondere ad una email ivi contenuta CANCELLA Attenzione Il tuo programma di posta non ti ha nemmeno ancora mostrato l intero messaggio Ne segue logicamente che non hai potuto leggerlo e capirolo tutto Non educato rispondere ad una email fino a quando l hai letta tutta e ci hai pensato Un timer di raffreddamento ti impedir di rispondere a tutte le email in questo thread per la prossima ora Cancella Hai scritto questa email ad un tasso di pi di N NN cps caratteri per secondo ndt Non in generale possibile pensare e sc
74. hanno scritto la documentazione di apportare successivi miglioramenti ma anche a coloro che si aggregano dopo al progetto e che vogliono lavorare alla documentazione Una maniera per assicurarsi che una documentazione di base iniziale sia portata a termine limitare la sua portata in precedenza In quel modo lo scriverla almeno non sembrer come un compito indeterminato Una buona regola pratica quella che soddisfer i seguenti criteri e Dire al lettore quanta esperienza tecnica ci si aspetta da lui e Dire chiaramente e in modo esauriente come configurare il software e in qualche posto vicino all inizio della documentazione dire all utilizzatore come attuare una sorta di test diagnostico o un semplice comando che confermi che ha configurato correttamente le cose Una documentazione sulla configurazione in una certa maniera pi importante della documentazione sul vero e proprio utilizzo Quanto maggiore sar lo sforzo che uno avr investito nell installare e far partire il software tanto maggiore sar la sua tenacia nello scoprire funzionalit avanzate che non sono ben documentate 19 Partenza Quando la gente abbandona abbandona all inizio perci sono i primissimi stadi come l installazione che hanno bisogno del maggior supporto e Date un esempio stile tutorial di come svolgere una operazione comune Ovviamente molti esempi per molte operazioni sarebbero sempre la cosa migliore ma se il tempo limitato prendet
75. illeggibile vedere http subversion tigris org security html e prendete visione del sorgente della pagina Html per un esempio Sviluppate la correzione silenziosamente E cos cosa fa la mailing list quando riceve un report Il primo compito quello di valutare la seriet e la urgenza del problema 1 Quanto seria la vulnerabilit Permette a chi fa l attacco di prendere la direzione del computer si qualcuno che usa ilo vostro software O si perdono semplicemente informazioni sulla grandezza di qualcuno dei suoi file 2 Quanto facile sfruttare la vulnerabilit Pu un attacco essere prestabilito o richiede una conoscenza profonda o un calcolo studiato e fortuna 3 Chi fece il report del problema a voi Lar risposta a questa domanda non cambiate la natura della vulnerabilit certo ma vi d un idea di quante altre persone potrebbero sapere di essa Se il report viene da una degli sviluppatori del progetto voi potete respirare un p pi facilmente ma solo un poco perch potete confidare sul fatto che egli non ha parlato a nessuno di esso D altro canto se il report viene con una email da anonimo14 globalhackerz net allora sarebbe meglio che che voi agiate quanto pi velocemente possibile La persona vi fece un favore informandovi del problema ma non avete idea di quante persone sono state informate da lui o di quanto abbia aspettato prima di sfruttare la vulnerabilit sulle installazione caricate Notate che la
76. investito in tutta la cosa ha bisogno di vedere alcuni risultati prima di mettervi dentro altri finanziamenti I progetti open source invece erano fino a tempi recenti in gran parte motivati da dilettantismo nel senso pi letterale erano scritti per amore di essi Nessuno sentiva il bisogno di inviare 135 Confezione Rilascio e Sviluppo Quotidiano prima che tutte le funzionalit fossero pronte e perch avrebbero dovuto Non era incredibile che il lavoro di ognuno fosse senza indugi Al giorno d oggi molti progetti open source sono finanziati dalle compagnie e sono di conseguenza influenzati dalla cultura della scadenza delle compagnie Questo sotto molti aspetti una buona cosa ma pu creare dei conflitti fra le priorit degli sviluppatori pagati e quelle di coloro che stanno offrendo volontariamente il loro tempo Questi conflitti avvengono spesso sul come e quando programmare le releases Gli sviluppatori salariati che sono sotto pressione vorranno naturalmente scegliere una data in cui avverr la release e ottenere che l attivit di ognuno ci si allinei Ma i volontari possono avere un altra agenda forse funzionalit che vogliono completare o qualche prova che vogliono fare a riguardo essi ritengono che la release dovrebbe aspettare Non c una soluzione che vada bene sempre a questo problema tranne la discussione e il compromesso certo Ma potete rendere minimi la frequenza e i grado di attrito che si verifica s
77. is License istribute or Publicly ms and conditions as t nse n of this License is i e law it shall not af nder applicabl nd without fur such provision ther action by the par shall be reformed to t Collection the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted Perform an Adaptation Licensor offers to the recipient a license to the original Work he license granted to You nvalid or unenforceable fect the validity or I u enforceability of the remainder of the terms of this License a ties to this agreement he minimum extent necessary to make such provision valid and enforceable d No term or prov no breach conse or consent e This License co ision of this License shall be deemed waived and nted to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver nstitutes th ntire agreement between th parties with respect to the Work licensed here There are no agreements or representations with respect to understandings the Work not sp cified here Licensor shall not be bound by any additional provisions that may appear in any communication from You This License may not be modified without the mutual written agreement of th f The rights gran e Licensor and You ted under and the sub ject matter referenced in this License w
78. la Free Software Foundation http www fsf org per promuoverne il concetto Sebbene il software libero copra quasi esattamente la stessa estensione dell open source la FSF fra gli altri preferisce il primo termine perch esso enfatizza l idea di libert e di software redistribuibile liberamente soprattutto come movimento sociale piuttosto che tecnico La FSF riconosce che il termine ambiguo esso significherebbe libero nel senso di a costo zero invece che libero nel senso di in libert ma ritiene che esso sia ancora il miglior termine tutto considerato e che le altre possibilit in inglese hanno le loro ambiguit In questo libro free usato nel senso di in libert non nel senso di a costo zero software open source Software libero sotto altro nome Ma il nome differente riflette una importante differenza filosofica open source fu coniato dall Open Source Initiative http www opensource org come una voluta alternativa al software libero per rendere tale software una scelta pi gradita per le grandi imprese presentandola come una metodologia di sviluppo piuttosto che un movimento politico Essi anche avevano voluto smontare un altro marchio quello che ogni cosa libera debba essere di bassa qualit Mentre una licenza che sia libera anche open source e viceversa con piccole trascurabili eccezioni la gente tende a raccogliere un termine e incollarlo ad
79. la gente vuol cercare una parola specifica o una frase nell intera documentazione In genere sanno gi ci che stanno cercando essi non sanno solo in quale sezione Per tali persone niente pi frustrante dell imbattersi in una pagina html per la tavola dei contenuti poi in una pagina differente per l istruzione poi un altra pagina per le istruzioni di installazione ecc Quando le pagine sono spezzate cos la funzione cerca del browser inutile Lo stile a pagine separate utile per quelli che gi sanno di quale sezione hanno bisogno o che vogliono leggere la documentazione dall inizio alla fine in sequenza Ma questo non il modo pi comune di accedere alla documentazione Molto pi spesso chi fondamentalmente familiare col software ritorna a cercare una specifica parola o frase Fallire nel venire in aiuto ad essi con un unico documento ove si possa fare una ricerca renderebbe loro solo la vita pi difficile La documentazione sviluppatore La documentazione sviluppatore viene scritta per aiutare gli sviluppatori a capire il codice cosicch essi possano correggerlo ed estenderlo Questa in qualche modo differente dalle linee guida sviluppatore discusse prima che sono pi sociali che tecniche Le linee guida sviluppatore dicono loro come andare d accordo con il codice vero e proprio Le due cose sono spesso impacchettate in un unico documento per convenienza come con l http subversion apache org docs community guide
80. licenza e indicante dove trovare il testo intero della licenza Ci sono molte varianti a questo percorso sicch voi vedrete giusto un esempio qui La GNU GPL dice di mettere una nota come questa in testa ad ogni file sorgente Copyright C lt anno gt lt nome dell autore gt Il programma un software libero potete redistribuirlo e o secondo i termini del dalla Free Software Foundation sia la versione 2 sia a vostra scelta ogni versione successiva Questo programma distribuito nella speranza che sia utile ma SENZA ALCUNA GARANZIA senza anche l implicita garanzia di POTER ESSERE VENDUTO o di IDONEITA A UN PROPOSITO PARTICOLARE Vedere la GNU General Public License per ulteriori dettagli GI Dovreste aver ricevuto una copia della GNU General Public License in questo programma se non l avete ricevuta scrivete alla Free Software Foundation Inc 59 Temple Place Suite 330 Boston MA 02111 1307 USA Non si dice specificatamente che la copia della licenza che avete ricevuto col programma nel file COPYING ma che messa usualmente li Potete cambiare la nota precedente per stabilire cid completamente Questo modello da anche un indirizzo geografico dal quale richiedere una copia della licenza Un altro sistema comune quello di dare il link alla pagina in cui si trova la licenza Usate il vostro giudizio e puntate dove voi credete sia aggiornata la copia pi sta
81. mailing list invece che solo a voi che non chiaro perch la maggioranza anche se rimane la maggioranza dovrebbe poter esporre la minoranza a tale rischio Non ho trattato tutti gli aspetti del problema qui solo quelli che sembravano di primaria importanza Per una discussione completa vedete questi due documenti canonici che sono quelli che la gente cita sempre quando affrontano questo dibattito e Lasciate Reply to solo by Chip Rosenthal 39 L Infrastruttura Tecnica http www unicom com pw reply to harmful html e Mettete Reply to alla mailing list di Simon Hill http www metasystema net essays reply to mhtml Nonostante la debole preferenza indicata sopra non penso che ci sia una risposta giusta a questo problema e participo felicemente a molte mailing list che configurano il Reply to La cosa pi importante che possiate fare di implementare un modo o l altro da subito cercando di non essere coinvolti in questo dibattito in seguito Due fantasie Un giorno qualcuno avr la brillante idea di implementare un tasto reply to list nel software di lettura posta Userebbe qualcuno degli header menzionati prima per capire l indirizzo della mailing list e quindi invierebbe la risposta direttamente alla mailing list soltanto lasciando fuori ogni altro indirizzo di destinatazione dato che la maggior parte dei quali comunque iscritto nella lista Infine altri software di email adotteranno tale funzionalit e tu
82. meno dittatoriale descritto in sezione chiamata Il manager di release pi avanti in questo capitolo Votare Il Cambiamento All estremo opposto della dittatura da parte del proprietario di release gli sviluppatori possono semplicemente votare su quali cambiamenti includere nella release Comunque poich la funzione pi importante per la stabilizzazione delle release escludere cambiamenti importante creare un sistema di voto in modo tale che fare cambiamenti alla release comporti una azione positiva da parte di pi di uno sviluppatore Per inserire un cambiamento ci dovrebbe essere bisogno pi di una semplice maggioranza vedere sezione chiamata Chi Vota in Capitolo 4 L Infrastruttura Sociale e Politica Diversamente un voto a favore e uno contro un dato cambiamento sarebbe sufficiente per inserirlo nella release e si creerebbe una sciagurata dinamica per cui ciascuno sviluppatore voterebbe per i propri cambiamenti mentre sarebbe riluttante a votare contro i cambiamenti degli altri per paura di possibili ritorsioni Per evitare ci il sistema dovrebbe essere congegnato in modo che sottogruppi di sviluppatori debbano agire in cooperazione per inserire cambiamenti nella release Ci significa non solo che pi persone revisionano ogni cambiamento ma rende uno sviluppatore individuale meno indeciso nel votare contro un cambiamento perch egli sa che nessuno in particolare fra quelli che votarono per esso pu prendere il suo
83. nea aio ira ita 86 Struttura e Formattazione iii 87 CONTENULO narra A ORE DIR A 88 TONO irreali eri 89 Riconoscer la maleducazZi Ones on ria aa ala anti 90 Facce aliena 91 Evitare le Trappole Comuni iatale parete 93 Non mandare messaggi senza MOTIVO eee 93 Thread Produttivi vs Thread Improduttivi eee eee cee ceeeeeeeea seca sean eeueeegs 94 Pi semplice l argomento pi lungo il dibattito ee 95 Evitare le Guerre Sante arno aria 96 L Effetto Minoranza Rumorosa ie 98 Gente Difficile isti A ia ae i 98 Gestire la Gente Difficile v lira iii 99 Caso di Sdin a enna ai rondo rain riot 99 Gestre la Crescita cine la aria aiar 101 Uso Ben Visibile degli Archivi eee 102 La Tradizione della Codifica ie 105 Nessuna Conversazione nel Tracciatore di Bug e 107 LarPubblicita csrl alal nai 108 ili Produrre Software Open Source Annunciare le Vulnerabilit della Sicurezza e 110 7 Confezione Rilascio e Sviluppo Quotidiano eee 116 Numerazione delle Rel asest triti rie i ei e EA aS 117 I Componenti del Numero di Rilascio eee 117 ba Sitate sia Semplice rr IA ao rn aisi 119 Ea Strategia pari dispari alga alal it 120 Rami Di Release anani teen ano ero lait 121 Il Meccanismo Dei Rami di Release
84. non riceveva una reazione faceva preoccupare chi lo aveva effettuato e lo induceva anche a chiedere alla lista se qualcuno tuttavia avesse avuto l occasione di revisionarlo Pi tardi Greg prese un lavoro che non gli lasci tanto tempo per Subversion e dovette finire di fare revisioni con regolarit Ma da allora l abito si radic a tal punto per il resto di noi che sembr che continuasse da tempo immemorabile Incominciate a fare revisioni sin dal primo invio Il tipo di problemi pi facili da incontrare nella revisione delle differenze sono le vulnerabilit nella sicurezza falle nella memoria i commenti insufficienti o l insufficiente documentazione gli errori logici in una iterazione la discordanza di disciplina chiamante chiamato e altri problemi che richiedono un minimo di contesto intorno da vedere Comunque anche problemi su larga scala come i fallimenti nell estrarre procedure ripetute in una locazione diventano osservabili dopo che una ha fatto la revisione regolarmente perch la memoria di passate differenze avverte sulle differenze presenti Non vi spaventate se non trovate niente da commentare o se non conoscete ogni area di codice Usualmente ci sar qualcosa da dire su quasi ognuno degli invii anche dove non trovate niente da chiedere potete trovare qualcosa da apprezzare L importante che sia chiaro a ogni persona che fa un invio che ogni cosa che fa visto e capito Certo la revisione del codice non libera i prog
85. non accade sempre Tendo moderatamente verso l attivazione dell occultamento degli indirizzi Alcune persone sono molto attente ad evitare di pubblicare i loro indirizzi email su pagine web o in qualunque altro posto in cui un raccoglitore di indirizzi potrebbe vederlo e sarebbero dispiaciute di vedere tutta la loro cura buttata via da un archivio di mailing list allo stesso tempo il disturbo che l occultamento di indirizzi crea agli utenti molto leggero dato che banale ritrasformare un indirizzo oscurato in uno valido se avete bisogno di contattare quella persona Ma tenete a mente che alla fine sempre una corsa alle armi nel tempo in cui avete letto questo i raccoglitori di indirizzi potrebbero essersi evoluti al punto in cui possono riconoscere i metodi pi comuni di occultamento e dovremo pensare a qualcos altro Identificazione e gestione degli header Gli iscritti spesso vogliono mettere le mail della mailing list in una cartella specifica per il progetto separata dalle altre mail Il loro software per la lettura di email pu fare ci automaticamente esaminando gli header delle email Gli header sono i campi in cima della mail che indicano mittente destinatario oggetto data e varie altre cose riguardo al messaggio Alcuni header sono noti e anche obbligatori FLOM aa DO i Subject Dates uu Altri sono opzionali anche se abbastanza standard Per esempio alle email non strettamente richiesto di avere il segu
86. o piuttosto il potenziale delle forchette sono la ragione per cui non vi sono veri dittatori nei progetti di software libero Questo pu sembrare una affermazione sorprendente considerato quanto comune ascoltare qualcuno chiamato dittatore o tiranno in un dato progetto open source Ma questo tipo di tirannia speciale completamente differente dall intendere convenzionale della parola Immaginate un re i cui sudditi potessero copiare il suo intero regnare in ogni momento e muoversi a copiarne il ruolo nella misura in cui lo vedano giusto Non governerebbe un tale re molto diversamente da uno i cui sudditi fossero soggetti a sottostare al suo dominio qualunque cosa facesse Questo il perch anche progetti non formalmente organizzati come democrazie in pratica sono democrazie quando ci si trova davanti a importanti decisioni La replicabilit suggerisce possibilit di diramazione la possibilit di diramazione suggerisce consenso Pu ben essere che ognuno voglia 62 L Infrastruttura Sociale e Politica far riferimento a un unico leader l esempio pi famoso Linus Torvalds nello sviluppo del kernel di Linux ma ci avviene perch essi scelgono di fare cos in un modo completamente non cinico e sinistro Il dittatore non ha un magico potere sul progetto Una propriet chiave di tutte le licenze open source che esse non danno a una parte un maggior potere che a qualche altra di decidere come il codice possa essere c
87. ogni altra cosa di cui avete bisogno per fare andare avanti un sito Hanno configurato gli strumenti e si prendono cura dei backup per tutti i dati memorizzati in tali strumenti Non avete bisogno di prendere alcuna decisione Tutto quello che dovete fare riempire un form schiacciare un bottone e improvvisamente avete un sito web del progetto Questi sono vantaggi abbastanza significativi Gli svantaggi certo sono il fatto di dover accettare le loro scelte e configurazioni anche se qualcosa di diverso sarebbe stato meglio per il vostro progetto Solitamente i siti preconfezionati sono personalizzabili in certi secondari parametri ma non avrete mai il controllo dettagliato che avreste se creaste il sito da voi e aveste un pieno controllo amministrativo sul server Un perfetto esempio di questo la gestione dei file generati Alcune pagine web del progetto potrebbero essere file generati per esempio ci sono sistemi per mantenere i dati delle FAQ in un formato facile da modificare da cui HTML PDF e altri formati di presentazione possono essere generati Come spiegato in sezione chiamata Tenere tutto sotto controllo di versione prima in questo capitolo non vorreste mettere sotto controllo di versione i formati generati solo il file di origine Ma quando il vostro sito web ospitato sul server di qualcun altro potrebbe essere impossibile generare un hook personalizzato per rigenerare la versione HTML onlinea delle FAQ in qualunque momen
88. open source a confronto Nella misura in cui le grosse imprese guardavano con sempre pi attenzione al software libero i programmatori erano messi di fronte ai nuovi problemi della presentazione Uno era la parola free in se stessa In un primo momento nell ascoltare la parola free molta gente pensava erroneamente che questa significava semplicemente software a costo zero E vero che tutto il software libero a costo zero ma non tutto il software a costo zero libero Per esempio durante la battaglia dei browsers negli anni 90 sia Microsoft che Netscape diedero via i propri browsers in competizione gratis nella zuffa per accaparrarsi un fetta di mercato Nessuno dei due browsers era libero nel senso di software libero Non si poteva ottenere il codice sorgente e anche si si fosse potuto ottenere non si aveva il diritto di modificarlo e redistribuirlo L unica cosa che si poteva fare era scaricare un eseguibile e farlo girare sul computer I browsers erano non pi liberi di un software incartato comprato in un negozio Essi avevano soltanto un prezzo abbastanza basso Questa confusione sulla parola free dovuta a una sfortunata ambiguit nella lingua inglese Molte altre lingue distinguono fra prezzi bassi e libert la distinzione fra gratis e libre chiara immediatamente a coloro che parlano una lingua neolatina per esempio Ma a causa della posizione della lingua inglese come lingua ponte di fatto di Intern
89. parla da s ecc Il fatto che alla domanda non facile rispondere La meritocrazia e il codice funzionante sono parte di esso ma essi fanno poco nello spiegare come gira il progetto sulla base del giorno per giorno e non dicono nulla su come i conflitti vengono risolti Questo capitolo cerca di mostrare i puntellamenti che progetti di successo hanno in comune Io intendo di successo non solo in termini di qualit tecniche ma anche di salute operativa e di capacit di sopravvivere La salute operativa la capacit di incorporare strada facendo nuovi contributi di codice e di sviluppatori e di essere reattivi ai rapporti di bugs che arrivano La capacit di sopravvivere in un progetto la capacit di esistere indipendentemente da un partecipante individuale o sponsor tpensate ad essa come alla probabilit che il progetto continuerebbe anche se tutti i suoi membri fondatori si spostassero su un altra cosa Il successo tecnico non difficile da conseguire ma senza una robusta base di sviluppo e un fondamento sociale un progetto pu essere incapace di gestire la crescita che il successo iniziale porta alla partenza di individualit carismatiche Ci sono molti modi per raggiungere questo tipo di successo Alcuni riguardano una struttura di amministrazione formale con la quale le discussioni sono risolte nuovi sviluppatori sono invitati o talvolta estromessi nuove funzionalit sono pianificate e cos via Altri riguardan
90. pensiero Prestando attenzione a piccoli indizi potete solitamente indovinare giusto la maggior parte delle volte e motivare la gente a rimanere coinvolta ad un livello maggiore di quello che altrimenti farebbero Certo non voglio dire che il vostro ruolo sia di essere un terapista di gruppo aiutanto costantemente tutti a rimanere in contatto con i loro sentimenti Ma facendo molta attenzione ai percorsi sul lungo periodo del comportamento umano inizierete ad avere un idea di loro come individui anche se non li avete mai incontrati faccia a faccia Ed essendo sensibile al tono del vostro scrivere potete avere una sorprendente influenza su come gli altri si sentono per il bene finale del progetto Riconoscere la maleducazione Una delle caratteristiche distintive della cultura open source la sua nozione di cosa costituisce maleducazione e cosa no Mentre le convenzioni descritte in seguito non sono peculiari dello sviluppo di software libero n del software in generale dovrebbero essere familiari a chiunque lavori in matematica scienze dure o discipline ingegneristiche il software libero con i suoi confini porosi e il costante afflusso di nuove leve un ambienete dove la gente non abituata a queste convenzioni si contri con loro Cominciamo con le cose che non sono maleducate Il criticismo tecnico anche quando diretto e non filtrato non maleducato Invece pu essere una forma di adulazione la critica sta dicendo per im
91. per congiungere gli sforzi Ma allora la codifica era gi partita Anche se Subversion era ancora molto ai primi stadi era gi una comunit di sviluppo con una serie di regole base 76 I Soldi L arrivo di Mike sollev una interessante questione Subversione aveva gi una politica su come un nuovo sviluppatore consegue l accesso all invio Primo egli invia alla mailing list alcune correzioni Dopo che un numero sufficiente di correzioni sono arrivate da parte di altri che hanno l accesso all invio per vedere se il nuovo collaboratore sa quello che sta facendo qualcuno propone che egli giusto invii direttamente questa proposta privata ed descritta in sezione chiamata Quelli Che Fanno gli Invii Dato per acquisito l accordo di quelli che avevano l accesso all invio uno di essi invia una email al nuovo sviluppatore e gli propone l accesso diretto all invio al deposito del progetto CollabNet aveva ingaggiato Mike per lavorare specificatamente a Subversion Fra quelli che gi lo conoscevano non c era dubbio sulle sue capacit nello scrivere codice e sulla sua sollecitudine nel lavorare al progetto Inoltre gli sviluppatori volontari avevano molto buone relazioni con gli impiegati di CollabNet e molto probabilmente non avrebbero obiettato se noi avessimo dato l acceso all invio a Mike il giorno che fu ingaggiato Ma noi sapevano che avremmo creato un precedente Se noi avessimo concesso a Mike l accesso all invio per decreto
92. per tutto il mondo non esclusiva gratuita che liber dal pagamento di qualsiasi copia irrevocabile eccetto quanto stabilito questa sezione a fare aver fatto usare offrire per vendita vendere e in altro modo trasferire il Lavoro dove tale licenza si applica solo a diritti di brevetto che danno facolt di concedere diritti da parte di ta Collaboratore e che sono necessariamente violati dal suo Contributo i da o in combinazione con il suo Contributo i al Lavoro al quale tale Contri fu inviato Se voi create una controversia con qualche entit incluso un reclamo contro la parte che sta al vostro fianco o un contro reclamo in u asserendo che il Lavoro o il Contributo incorporato nel Lavoro costituisc una violazione del brevetto diretta o derivante dal contributo allora og licenza brevetto concessa a Voi sotto questa Licenza per quel Lavoro sar terminata dalla data in cui tale controversia depositata Sebbene ci sia utile sia da un punto di vista legale che come politica per costruire la difesa dei brevetti nelle licenze di software libero a questo modo alla fine questi passi non saranno sufficienti a dissipare 176 Licenze Diritti d Autore e Brevetti l effetto scoraggiante che la minaccia di dibattimento in tribunale ha sul software libero Ci creer solo dei cambiamenti nella sostanza o nell interpersonale della legge sui brevetti Per apprendere sul problema e come sta venendo combattuto andare a htt
93. perfetto forse ogni nuovo progetto open source prenderebbe vita con una completa documentazione della fase di progettazione un manuale utente completo con speciali note su funzionalit pianificate ma non ancora implementate bel codice confezionato in modo che sia trasportabile capace di girare su ogni piattaforma di elaborazione e cos via In realt prendersi cura di tutti questi disparati fini sarebbe una proibitiva perdita di tempo e comunque lavoro in cui uno pu ragionevolmente sperare di essere aiutato da volontari una volta che il progetto sia avviato Ci che necessario comunque che un sufficiente impiego di energie venga attuato nella presentazione che i nuovi arrivati possono trovare dopo dopo la difficolt o la non familiarit iniziale Pensate a ci come ad un primo passo di un processo che si sta avviando per tenere il progetto a un specie di minima energia di attivazione Ho sentito che questa soglia veniva chiamata la hacktivation energy la quantit di energia che il nuovo arrivato deve immettere prima di incominciare ad entrare in possesso di qualcosa Pi piccola l energia di attivazione di un progetto tanto meglio Il vostro primo compito tenere l energia di attivazione bassa a un livello che incoraggi la gente a farsi coinvolgere Ciascuna delle sottosezioni seguenti descrive un aspetto importante nell avvio di un nuovo progetto Esse sono presentate approssimativamente nell ordine in cui un nu
94. pi ampi Una volta che la decisione fatta la persona deve solo iniziare a fare commit nella nuova area Secondo questo allargamento pu essere fatto in modo pi fine Generalmente uno che fa commit in area X che vuole allargarsi nell area Y inizier pubblicando patch su Y e chiedendone revisione Se qualcuno che gi ha l accesso per fare commit in Y vede la patch e la approva si pu semplicemente dire a chi l ha sottomessa di fare il commit della modifica direttamente menzionando il nome di chi l ha ricevuta approvata nel messaggio ovviamente In questo modo il commit verr dalla persona che ha fisicamente scritto la modifica il che preferibile sia dal punto di vista di gestione dell informazione che dal punto di vista del riconoscimento 50 L Infrastruttura Tecnica Infine e forse pi importante usare il sistema d onore incoraggia un atmosfera di fiducia e mutuo rispetto Dare a qualcuno l accesso per il commit in un sottodominio un affermazione sulla sua preparazione tecnica come dire Vediamo che hai le conoscenze per fare commit in un certo dominio quindi fallo Ma imporre uno stretto controllo di autorizzazione dice Non solo stabiliamo un limite alle tue capacit ma siamo anche un po sospettosi sulle tue intenzioni Questo non il tipo di affermazione che volete fare se potete evitarlo Portare qualcuno che fa commit nel progetto un opportunit per introdurli al circolo della fiducia reciproc
95. pi recenti funzionalit anche a rischio di una piuttosto grande instabilit Questa non l unica strategia delle releases ramo certo In alcune circostanze pu neanche essere la migliore sebbene abbia funzionato bene per i progetti in cui stata impiegata Usate una strategia che sembra funzionare ma ricordate i punti principali il proposito di una release ramo quello di isolare il lavoro di rilascio dalle fluttuazioni dello sviluppo giornaliero e dare al progetto una entit fisica intorno alla quale organizzare il processo di rilascio Il processo descritto in dettaglio nelle successiva sezione Stabilizzare una Release La stabilizzazione il processo mettere una ramo di release in uno stato in cui si pu rilasciare cio il processo di decidere quali cambiamenti ci saranno nelle release quali no e dar forma al contenuto del ramo di conseguenza Ci sono un sacco di di potenziali pene in quella parola decidere La corsa alla funzionalit dell ultimo minuto un fenomeno familiare nei progetti di software in collaborazione appena gli sviluppatori vedono che la release sta per avvenire si agitano a finire il loro correnti cambiamenti per non perdere il battello Questo certamente l esatto opposto di ci che volete al momento del rilascio Sarebbe molto meglio per la gente lavorare alle funzionalit in una confortevole ritmo e non preoccuparsi e non preoccuparsi tanto se i loro cambiamenti riusciranno a fa
96. pianificato Aggionamento incrementale degli indici pianificato Indicizzazione di siti remoti Requisiti Python 2 2 o superiore Spazio su disco sufficiente a supportare gli indici approssimativamente 2 Per maggiori informazioni venire su scanley org Grazie J Random Vedere sezione chiamata La Pubblicit in Capitolo 6 Comunicazione per avvisi o per annunci di ulteriori releases o di altri eventi del progetto C in corso un dibattito nel mondo del software libero se incominciare col far girare il codice o se il progetto pu beneficiare dall essere aperto anche durante la fase di progettazione discussione Io ero abituato a pensare che partire con il codice che gira fosse il fattore pi importante che esso fosse ci che separa i progetti di successo dai giochi e che gli sviluppatori seri sarebbero stati attratti da software che facesse gi qualcosa di concreto Questo si dimostr non essere il caso Nel progetto di Subversion noi partimmo con un documento di progetto un cuore di sviluppatori interessati e ben collegati un sacco di fanfara e un codice che non girava affatto Con mia totale sorpresa il progetto acquis principianti attivi giusto dall inizio e col tempo avemmo qualcosa che girava c erano parecchi sviluppatori profondamente coinvolti Subversion non il solo esempio il progetto Mozilla fu lanciato senza codice che girava ed ora un browser popolare e di successo Di fronte a un
97. prima di diventare persone con l invio essi stessi Ci certo non prova che l essere riconosciuto un fattore del loro coinvolgimento continuato ma ci almeno stabilisce una atmosfera in cui la gente pu contare sul fatto che i suoi contributi vengono riconosciuti Bisogna distinguere fra riconoscimenti di routine e ringraziamenti speciali Quando si discute un pezzo particolare di codice o qualche altro contributo che qualcuno ha dato bene riconoscere il suo lavoro Per esempio dicendo I recenti cambiamenti di Daniel al codice delta significano che ora noi possiamo implementare la funzionalit X contemporaneamente aiuta la gente a identificare di quali cambiamenti state parlando e riconosce il lavoro di Daniel D altra parte postare solamente per ringraziare Daniel per 1 cambiamenti al codice delta non serve ad uno scopo immediato Non aggiunge nessuna informazione perch il sistemi di controllo della versione e altri meccanismi hanno gi registrato il fatto che egli ha fatto dei cambiamenti Ringraziare ciascuno per ogni cosa pu distrarre e in ultimo pu essere senza informazione perch i ringraziamenti sono in gran parte effettivi nela misura in cui stanno fuori dal comune livello di base di un commento favorevole che avvenga tutte le volte Questo non significa certo che voi non dovreste ringraziare la gente Solo assicuratevi di farlo in modo che non tenda a portare ad una inflazione di riconoscimenti Seguire queste lin
98. progetti i benefici dell applicare e le conseguenze del non applicare le raccomandazioni che seguono quando sar politicamente fattibile dare esempi provenienti da alcuni altri progetti io lo far Parlando di politiche questo un buon momento come nessuno per dilungarsi con quella molto malfamata parola per uno sguardo pi da vicino A molti ingegneri piace pensare alla politica come a qualcosa in cui la gente si imbarca Jo sto solo sostenendo la causa di un miglior corso per il progetto ma quello sta sollevando obiezioni per ragioni politiche Io credo che questa antipatia per la politica o per quello che si immagina sia la politica sia particolarmente forte negli ingegneri perch gli ingegneri sono acquisiti all idea che alcune soluzioni siano oggettivamente superiori ad altre Cosi quando qualcuno agisce in modo da sembrare motivato da considerazioni esterne per esempio il mantenimento della sua posizione di influenza la riduzione dell influenza di qualche altro il commercio aperto dei voti o l evitare di ferire la sensibilit di qualcuno gli altri partecipanti al progetto possono annoiarsi Certamente questo raramente impedisce loro di comportarsi nello stesso modo quando i loro interessi vitali sono in gioco Se ritenete politica una parola sporca e sperate di mantenere il vostro progetto libero da essa arrendetevi proprio ora La politica inevitabile ogni volta che la gente deve gestire collettivamente un risorsa cond
99. qualcuno si sono imbrogliati Cercate negli archivi e vien fuori la vecchia risposta di sopra ma vi rendete conto che sono mancanti alcuni passi forse per errore o perch il software cambiato da quando quel post fu scritto Il modo classico di gestire ci postare un nuovo pi completo set di istruzioni e rendere obsoleto il vecchio post menzionandolo Pare che in vostri indici di Scanley si siano imbrogliati Vedemmo questo problema 1 Spegnete il server di Scanley 2 Diventate l utilizzatore col quale il server di Scanley gira 3 Come tale utilizzatore fate girare il programma sbroglia per gli indici 4 Fate girare Scanley a mano per vedere se gli indici funzionano ora 5 Riavviate il server In un mondo ideale sarebbe possibile attaccare una nota al vecchio post che dica che c una informazione pi fresca e che punti al nuovo post Comunque non so di un nuovo software per l archiviazione che offra una funzionalit obsoleto per forse perch sarebbe leggermente complessa da implementarsi in un modo che non violi l integrit dell archivio in quanto registrazione parola per parola Questa un altra ragione perch creare pagine dedicate con risposte alle domande comuni una buona idea Negli archivi probabilmente si ricerca di pi per risposte a domande tecniche ma la loro importanza per i progetto va ben al di l di questo Se le linee guida formali di un progetto sono la sua legge statutari
100. quando sia davvero gli date retrospettivamente una nuova forma in cui la gente pu rivedere la propria comprensione di cosa ne veniva fuori Gente Difficile Non pi facile avere a che fare con gente difficile nei forum elettronici di quanto lo sia di persona Per difficile non intendo maleducata La gente maleducata fastidiosa ma non necessariamente difficile In questo libro si gi discusso di come trattarli commentare la maleducazione la prima volta e da allora in poi o ignorarli o trattarli come chiunque altro Se continuano ad essere maleducati si renderanno di solito cos impopolari da non avere influenza su altri nel progetto quindi sono un problema che si circoscrive da s I casi veramente difficile sono persone che non sono apertamente maleducate ma che manipolano o abusano dei processi del progetto in un modo che finisce col costare tempo ed energia di altra gente pur non portando alcun beneficio al progetto Questa gente spesso cerca punti limite nelle procedure del progetto per darsi pi influenza di quella che altrimenti avrebbero Questo molto pi insidioso della mera maleducazione perch n il comportamento n il danno che causa evidente all osservatore casuale Un classico esempio il guerrigliero in cui qualcuno sempre sembrando il pi ragionevole possibile continua a sostenere che il problema in discussione non pronto per una soluzione e propone molte possibili soluzioni o nuovi pun
101. questi archivi quanto pi possibile e quanto pi in modo visibile possibile Anche quando sapete la risposta spontanea a qualche domanda se pensate che c un riferimento nell archivio che contiene la risposta spendete tempo a riportarla alla luce e fornitela Ogni volta che fate ci in modo visibile qualche persona imparer che ci sono gli archivi l e che cercare in essi pu produrre risposte Anche riferendovi agli archivi invece di riscrivere il consiglio rafforzate una norma sociale contro la duplicazione delle informazioni Perch avere la stessa risposta in due posti differenti Quando il numero di posti in cui essa pu essere trovata tenuto al minimo le persone che le hanno trovate prima molto probabile che ricordino cosa cercare per trovale di nuovo Riferimenti ben collocati possono anche contribuire alla qualit dei risultati della ricerca in generale perch essi rafforzano il ranking della risorsa obiettivo nei motori di ricerca di Internet Ci sono volte in cui la duplicazione delle informazioni ha senso comunque Per esempio supponete che ci sia gi una risposta negli archivi non vostra che dice Pare che in vostri indici di Scanley si siano imbrogliati Per ripararli fate ques 1 Spegnete il server di Scanley 102 Comunicazione 2 Fate girare il programma sbroglia che si carica con Scanley 3 Avviate il server Allora mesi dopo vedete un altro post che indica che gli indici di
102. qui A volte gli sviluppatori individuali sono tropo infagottati in lavori di basso livello per vedere il quadro grande e rendersi conto che ognuno sta sprecando un sacco di energie ad eseguire manualmente operazioni automatizzabili Anche quelli che se ne rendono conto possono non avere il tempo di risolvere il problema perch ogni esecuzione individuale dell operazione non percepita come un enorme carico nessuno si secca abbastanza di fare qualcosa che la riguarda Ci che rende convincente l automazione che quel piccolo carico moltiplicato per il numero di volte che ogni sviluppatore incorre in essa e quindi quel numero moltiplicato per il numero degli sviluppatori Qui sto usando il termine automazione in senso largo per indicare non solo le ripetute azioni nelle quali una o due variabili cambiano ogni volta ma ogni tipo di infrastruttura tecnica che assiste gli uomini Il minimo standard di automazione richiesta per far girare un progetto in questi giorni descritto in Capitolo 3 L Infrastruttura Tecnica ma ogni progetto pu avere i suoi particolari problemi anche Per esempio un gruppo che sta lavorando sulla documentazione potrebbe volere un sito che mostri le pi aggiornate versioni dei documenti in ogni momento Siccome la documentazione scritta in un linguaggio di markup come l XML ci pu essere un passo della compilazione spesso piuttosto intricato relativo alla creazione di documenti che si possano esporre
103. sacco di amministratori di sistema attualmente Se essi vedono richieste di aiuto be note documentate nel file ci istantaneamente genera in essi la credenza che il vostro progetto generalmente fuori dalle convenzioni e anche che sarebbe riuscito bene in altre cose Anche come discusso in sezione chiamata Downloads in Capitolo 2 Partenza avere una procedura standard di allestimento piace ai potenziali sviluppatori Su Windows gli standards per l allestimento e per l installazione sono un po meno fissi Per progetti che richiedono la compilazione la convenzione generale sembra essere inviare un albero che si pu sistemare in un modello di area di lavoro progetto dell ambiente di sviluppo standard di Microsoft Developer Studio Visual Studio VS NET MSVC ecc A seconda della natura del vostro software pu essere possibile offrire una opzione di allestimento su Windows via ambiente Cygwin http www cygwin com E certamente se state usando un linguaggio o un framework di programmazione che viene con le sue convenzioni di allestimento e installazione per esempio Phiton o Perl dovreste semplicemente usare quello che sia il metodo standard per quel framework su Windows Unix Mac OS X o ogni altro sistema operativo Siate disponibili a metterci un sacco di impegno extra per rendere il vostro progetto conforme agli standards di rilievo per l allestimento e l installazione L allestimento e l installazione sono una fase di ingre
104. scegliere Finestra singola o Schermo intero poi cliccate OK Ora il vostro prossimo click di mouse catturer la finestra o lo schermo clicckato in una immagine in The Gimp Tagliate e ridimensionate l immagine se necessario usando le istruzioni in http www gimp org tutorials Lite_Quickies crop Ci sono molte altre cose che potete mettere sul vostro sito se ne avete il tempo o se per una ragione o per l altra esse sono specialmente adatte una pagina di notizie una pagina della storia del progetto una pagina di links correlati un sistema di ricerca nel sito un link per le donazioni ecc Nessuna di queste cose una necessit all avvio ma tenetele in mente per il futuro L Hosting In Scatola Ci sono pochi siti che offrono un hosting gratis e una infrastruttura per i progetti open source un area web il controllo di versione un tracciatore di bugs un area di download un foro di dibattito backups regolari ecc I dettagli variano da sito a sito ma vengono forniti gli stessi servizi base da tutti questi Se usate uno di questi siti avete molto gratis ci che cedete ovviamente un controllo raffinato sull esperienza degli utilizzatori Il sevizio di hosting decide il software che gira sul sito pu controllare o almeno influenzare l aspetto e la percezione delle pagine web Vedere sezione chiamata Canned Hosting in Capitolo 3 L Infrastruttura Tecnica per una pi dettagliata discussione e per i vantaggi e svantaggi
105. scrivono dal lavoro e non hanno influenze sul dipartimento IT usare il Reply to potrebbe essere l unico modo che hanno per assicure che la 38 L Infrastruttura Tecnica risposta li raggiunga Quando una persona di questo genere scrive ad una mailing list a cui non iscritto la sua configurazione del Reply to diventa un informazione essenziale Se il software di gestione lo sovrascrive potrebbe non vedere mai la risposta al suo messaggio Il secondo svantaggio ha a che fare con le aspettative e secondo la mia opinione l argomento pi potente contro l occultamento del Reply to La maggior parte degli utenti esperti di email sono abituati a due modi basilari di risposta rispondi a tutti reply to all e rispondi all autore reply to author Tutti i moderni software di lettura mail hanno comandi separati per queste due azioni Gli utenti sanno che per rispondere a tutti quindi includendo la mailing list devono scegliere reply to all e che per rispondere privatamente all autore devono scegliere reply to author Anche se volete incoraggiare le persone a rispondere alla mailing list ogni volta sia possibile ci sono certe circostanze in cui una risposta privata prerogativa di chi risponde per esempio potrebbero volere dire qualcosa di confidenziale all autore del messaggio originale qualcosa che potrebbe essere non appropriato per la mailing list pubblica Considerate ora cosa succede quando la mailing list sovrascrive il Rep
106. segnalazioni di bug C era questo 1 C stata un po di interessante ricerca accademica su questo argomento per esempio vedi Group Awareness in Distributed Software Development di Gutwin Penner e Schneider Questo articolo stato online per un po poi non disponibile quindi online di nuovo a http www st cs uni sb de edu empirical se 2006 PDFs gutwin04 pdf Quindi provate l prima ma siate pronti ad usare un motore di ricerca se si di nuovo spostato 86 Comunicazione tizio ch nessuno di noi aveva mai incontrato di persona ma che faceva un gran lavoro le sue segnalazioni di bug erano sempre chiare e ci portavano dritti al problema e quando ci forniva un fix lui stesso era quasi sempre corretta Era incredibile Prima che la FSF possa usare codice scritto da qualcun altro dobbiamo fargli fare alcune pratiche legali per assegnare i diritti di copyright per quel codice alla FSF Solo prendere codice da perfetti sconosciuti e buttarlo l la ricetta per un disastro legale Ho mandato una email al tizio con le pratiche dicendo Qui ci sono alcune pratiche di cui abbiamo bisogno qui c cosa significa firmi questa fai firmare al tuo datore di lavoro quest altra e poi possiamo iniziare a integrare i tuoi fix Grazie mille Mi risponde dicendo Non ho un datore di lavoro Allora gli dico OK va bene fallo firmare dalla tua universit e mandacelo indietro Dopo un po mi risponde di nuovo e dice B veramen
107. sono favorevoli a qualunque corso si propone di prendere la diramazione di solito non c bisogno della diramazione il progetto pu andare per quella strada da s a meno che non diventi una dittatura con un dittatore particolarmente testardo D altra parte se meno della met degli sviluppatori sono favorevoli la diramazione proprio una ribellione di una minoranza e la cortesia e il senso comune indicano che essa dovrebbe ritenersi un ramo divergente piuttosto che la linea principale Gestire Una Diramazione Se qualcuno minaccia una diramazione nel vostro progetto mantenete la calma e ricordate gli obiettivi a lungo termine La sola esistenza di una diramazione non ci che fa male a un progetto piuttosto la perdita di sviluppatori e utilizzatori Il vostro vero scopo non schiacciare la diramazione ma minimizzare i suoi effetti dannosi Potete essere furiosi potete ritenere che la diramazione fu ingiusta e non necessaria ma esprimere questo pubblicamente pu solo alienare gli sviluppatori indecisi Invece non obbligate la gente a fare scelte esclusive e siate collaborativi e pratici con la diramazione Per iniziare non togliete l accesso all invio a qualcuno nel vostro progetto solo perch ha deciso di lavorare alla diramazione Lavorare sulla diramazione non significa che la persona ha improvvisamente perso la sua competenza a lavorare al progetto originale coloro che fanno gli invii prima dovrebbero rimanere quelli che fa
108. spesso meglio non avere che il sistema di controllo di versione faccia rispettare i domini dell invio parziale anche se lo pu Vedere sezione chiamata Autorizzazione in Capitolo 3 L Infrastruttura Tecnica le ragioni del perch Persone che Hanno l Accesso all Invio Dormienti Alcuni progetti rimuovono automaticamente le persone dall accesso all invio se essi per un certo tempo diciamo un anno non fanno invii Penso che questo non sia di aiuto e anche controproducente per due ragioni Primo ci pu tentare alcuni ad inviare cambiamenti accettabili ma non necessari solo per impedire che il loro accesso all invio si estingua Secondo non serve veramente a niente Se il criterio principale per la concessione dell accesso all invio il buon giudizio allora perch presumere che il giudizio di qualcuno si deteriorerebbe solo perch egli via dal progetto per un certo tempo Anche se egli svanisce completamente per anni non guardando il codice o non seguendo le discussioni dello sviluppo quando riappare sapr quanto ha perso il contatto ed agir di conseguenza Avete avuto fiducia nel suo giudizio prima allora perch non averla sempre Se i diplomi della scuola superiore non si estinguono allora l accesso all invio certamente non lo dovrebbe A volte colui che ha un accesso all invio pu chiedere di essere rimosso o di essere esplicitamente segnalato come dormiente nella liste di quelli che fanno gli invii vedere sezione ch
109. the Work by thout limitation by sound or visual he right of fixation and reproducing fixations ncluding storage of a protected performance or digital form or other electronic medium Fair Dealing Ri Nothing in t ghts his License is intended to reduce he Work to the public by any means or process and he communication to the public of the performances of the Work public digital performance the Work by any means including signs to broadcast and sounds or any means recordings and of the Work phonogram in limit or restrict any uses free from copyright or rights arising from limitations or exceptions t protection u License Grant Subject to t hereby gran perpetual exercise the ri to Reproduce Collec Collec tions tions to create Adapta an tion reasonable steps to clearly label identify example a nslated UT tra f indicate to Distribu to Distribu Non wa jurisd gh t a he Work d he terms and conditions of this License ts You a worldwide for the duration of the applicable copyright ts in the Work as stated below royalty free Reproduce Adaptations provided that a including any translation ina rom For the avoidance of doubt ivable Compulsory License Schemes ictions i through any sta cannot right to collec the rights gran Ty jurisd English to Spanis he original work has bee
110. thread sar preservata grazie a quegli altri header ma il nuovo oggetto aiuter la gente che cerca un idea del thread a sapere che il soggetto cambiato Similarmente se davvero volete iniziare un nuovo argomento fatelo mandando una nuova email e non rispondendo a email esistenti e cambiandone l oggetto Altrimenti la vostra email sarebbe ancora raggruppata con quelle dello stesso thread a cui state rispondendo e quindi confonderebbe la gente nel pensare che sia su qualcosa che non Di nuovo la pena non sarebbe solo lo spreco del loro tempo ma la piccola falla nella vostra credibilit come qualcuno spigliato nell uso dei mezzi di comunicazione Contenuto Email ben formattate attraggono i lettori ma il contenuto li mantiene Nessun insieme di regole fisse pu garantire un buon contenuto certo ma ci sono alcuni principi che lo rendono possibile Rendete le cose facili ai vostri lettori Ci sono tonnellate di informazioni in giro in ogni progetto open source attivo e non ci si pu aspettare che i lettori siano familiari con la maggior parte dell informazione infatti non ci si pu aspettare che sappiano come diventarne familiari Ovunque possibile i vostri messaggi dovrebbero fornire informazione nella forma pi appropriata per i lettori Se dovete usare due minuti in pi per cercare una URL di un particolare thread negli archivi della mailing list per risparmiare ai lettori di farlo ne vale la pena Se dovete spendere 5 o 10
111. un implementazione del protocollo GNU Arch manterr la compatibilit con il protocollo GNU Arch quando evolve e lavora con la comunit GNU Arch per ogni cambiamento di protocollo che potrebbe essere richiesto per la facilit dell utente Bazaar NG http bazaar ng org Bazaar NG or bzr al momento sotto sviluppo da parte di Canonical http canonical com Offre una scelta tra lavoro centralizzato o decentralizzato all interno di un singolo progetto Per esempio quando sei in ufficio puoi lavorare su di un branch centrale condiviso per cambiamenti sperimentali o lavoro offline puoi creare un branch sul tuo laptop e fare il merge pi avanti Darcs http abridgegame org darcs David s Advanced Revision Control System l ennesimo rimpiazzo di CVS E scritto in Haskell ed usato su Linux MacOS X FreeBSD OpenBSD and Microsoft Windows Darcs include uno script cgi che pu essere usato per vedere i contenuti del vostro repository Arch http www gnu org software gnu arch GNU Arch supporta lo sviluppo sia distribuito che centralizzato Gli sviluppatori committano le loro modifiche ad un archivio che pu essere locale e le modifiche possono essere mandate e prese da altri archivi quando i gestori di questi archivi vedono che vanno bene Cos come una tale metodologia implica Arch ha un supporto ai merge pi sofisticato di CVS Arch permette anche di creare facilmente branch di archivi a cui non si ha l
112. una procedura legale di infrazione contro la vostra organizzazione Questa non solo la cosa giusta da fare anche una buona pubblica relazione open source Per esempio RedHat ha promesso che i progetti open source sono al sicuro dai suoi brevetti vedere http www redhat com legal patent_policy html Sfortunatamente la raccolta dei brevetti a scopo difensivo un atto razionale Il corrente sistema dei brevetti almeno negli Stati Uniti per sua natura un confronto armato se i vostri concorrenti hanno acquistato un sacco di brevetti allora la vostra miglior difesa acquistare un sacco di brevetti a vostra volta cos se siete colpiti da una azione legale di infrazione di un brevetto potete rispondere con una minaccia simile allora le due parti si siedono ad un tavolo per un accordo commerciale di licenze incrociate in modo che nessuna di esse abbia da pagare qualcosa eccetto che i legali della loro propriet intellettuale ovviamente Il danno fatto al software libero dai brevetti pi insidioso che la minaccia diretta allo sviluppo del codice comunque I brevetti di software incoraggiano una atmosfera di segretezza fra i progettisti di firmware che giustamente temono che pubblicando i dettagli della loro interfaccia staranno dando un aiuto ai concorrenti che stanno cercando di dar loro uno schiaffo con azioni legali di infrazione dei brevetti Questo non un danno teorico avvenuto in modo evidente per lungo tempo nell indus
113. utile ma non mai la realt Politico semplicemente ci che avviene quando la gente in disaccordo e i progetti di successo sono quelli che sviluppano meccanismi politici per gestire costruttivamente i disaccordi 138 Gestire i Volontari Ottenere il Massimo dai Volontari Perch lavorano dei volontari in progetti di software libero Quando viene chiesto loro molti dichiarano che lo fanno perch vogliono produrre buon software o vogliono essere coinvolti personalmente nel correggere i bugs che a loro interessano Ma queste ragioni di solito non sono tutta la storia Dopotutto sapreste immaginarvi un volontario che sta in un progetto anche se nessuno ha detto una parola di apprezzamento sul suo lavoro o lo ha ascoltato nelle discussioni Certo no Chiaramente le persone spendono tempo sul software libero per ragioni che appunto vanno oltre il desiderio astratto di produrre buon codice Il capire le vere motivazioni dei volontari vi aiuter a mettere le cose in modo da attirarli e a mantenerli Il desiderio di produrre buon codice pu esserci fra queste motivazioni insieme con la sfida e il valore educativo del lavorare su problemi difficili Ma gli uomini hanno un innato desiderio di lavorare con altri uomini e di guadagnasi rispetto attraverso attivit di collaborazione I gruppi impegnati in attivit di collaborazione devono elaborare norme di comportamento in modo che quello stato sia acquisito e mantenuto attrav
114. vedere http en wikipedia org wiki FLOSS per sapere di pi Tutti questi termini significano essenzialmente la stessa cosa software che pu essere modificato e redistribuito da chiunque a volte ma non sempre col requisito che i lavori derivati siano liberamente redistribuibili sotto gli stessi termini DFSG compliant Conforme elle linee guida della Debian Free Software http www debian org social_contract guidelines Questo il testo largamente usato per indicare se una data licenza veramente open source free libre etc La missione del Progetto Debian quella di mantenere un sistema operativo completamente libero dimodoch non ci sia bisogno per uno che lo installa di avere il dubbio se abbia il diritto di modificare o redistribuire in parte o del tutto il sistema Le linee guida Debian Free Software sono il requisito che la licenza di un pacchetto di software deve avere per essere incluso in Debian Poich il progetto Debian spese una buona quantit di tempo a pensare come costruire questo testo le linee guida cui si pervenne si dimostrarono molto robuste vedere http en wikipedia org wiki DFSG e da quanto mi risulta nessuna seria obiezione stata sollevata su di esse sia dalla Free Software Foundation sia dalla Open Source Initiative Se sapete che una licenza DFSG conforme sapete che essa garantisce tutte le importanti libert come l autirizzazione a iniziare un nuovo progetto partendo dal progetto sorgente anc
115. viene fatto uno dei precedenti percorsi Se non c ancora risposta il manager di patch pu o non pu archiviare un problema per la patch a sua discrezione ma almeno chi originariamente ha fatto l invio ha ricevuto qualche reaction L avere un manager di patch ha salvato il team di sviluppo di Subversion un sacco di volte ed fatto risparmiare energie mentali Senza una persona designata che si prenda la responsabilit ogni sviluppatore avrebbe da preoccuparsi continuamente Se non ho il tempo di rispondere a questa patch subito posso contare sul fatto che qualche altro lo faccia Dovrei cercare di dargli un occhiata Ma se altre persone stanno anche tenendola d occhio per le stesse ragioni noi avremmo inutilmente duplicato lo sforzo Il manager di patch rimuove la seconda congettura dalla situazione Ciascuno sviluppatore pu prendere la decisione giusta per lui dal primo momento che vede la patch Se vuole dargli seguito con una revisione pu farlo il manager di patch adatter il suo comportamento di conseguenza Se vuole ignorare la patch completamente andr anche bene il manager di patch dovr assicurarsi che essa non sia dimenticata Siccome il sistema funziona solo se la gente pu far conto sul fatto che il manager di patch sia l senza errore il ruolo dovrebbe essere detenuto formalmente In Subversion noi facemmo richiesta per esso mediate annuncio pubblicitario sulla mailing list dello sviluppo e degli utilizzatori rac
116. vostro deposito e constatare che ci sono pochi o nessun cambiamento al codice provenienti dal di fuori della vostra organizzazione Non molto tempo fa vidi un annuncio da parte di una ben nota compagnia che affermava che la compagnia stava rilasciando un importante confezione di un software sotto una licenza open source Quando l annuncio iniziale usc diedi un occhiata al deposito del controllo della ora pubblica versione e vidi che conteneva solo tre revisioni In altre parole quelli avevano fatto una importazione iniziale del codice sorgente ma difficilmente qualcosa era avvenuta da allora Cosa che in se stessa non era quelli avevano fatto solo un annuncio dopotutto Non c era motivo di aspettarsi una grande attivit di sviluppo immediatamente Qualche tempo pi tardi quelli fecero un altro annuncio Questo quello che diceva con il nome e il numero di versione sostituiti da pseudonimi Abbiamo il piacere di annunciare che in seguito a rigorosi tests da parte della Singer Community Singer 5 per Linux e Windows sono pronti per scopi di produzione Curioso di sapere cosa la comunit avesse scoperto nei rigorosi tests ritornai al deposito a vedere la storia dei loro cambiamenti recenti Il progetto era ancora alla revisione 3 Apparentemente non avevano trovato una sola correzione di bug di pregio prima della release Pensando che il risultato dei tests della comunit potessero essere stati registrati altrove esaminai il trac
117. 48 ll Manager delle Patch iii iii 149 Il Manager delle Traduzioni riale 150 Il Manager della Documentazione Lee 151 Manager di Problemi sesioni have sects dieta aaa aretino age denied eE 152 Il Manager delle FAO iii reali 153 Gli avvicendamenti ocra delta Cee ee ete ho Ria a 154 Q elli Che Fanno gli INVIA iaia 156 Scegliere Coloro che Faranno gli Invii eee 156 Revocare l Accesso all INvio ie 157 A cesso all Invio Parziale upancapena gloria Gianini ne 158 Persone che Hanno l Accesso all Invio Dormienti cece eeeeeeeecnereeenereees 158 Evitare MISTETT simonie e ia ren Raiano 159 Riconoscimenti ionen ae a E A ire a 159 Le DIFaMaZzioni ices he on aa Ae E A cd de ead tech Sates E we ta aa gu eee eee A A VEENA 160 Gestire Una Diramazione 2 sicteses catcecaweve vedere sand cas ovede eck esdedae deve aa 161 Iniziare una Piramazione s piu alal tee ew A ENEE wed had egsyonwets 162 9 Licenze Diritti d Autore e Brevetti cece ec eceeneneneeneneeeneaeaeaeeeceeeeneeeeenenenenenenes 164 La Termmnologia ir Rode 164 Aspetti Delle Licenze bielle iaia eee ii 166 La GPL e la compatibilit di Licenza eee 167 Scegliere una Licenza aieo enen a e EE ia iau oi 168 La licenza MIT X Window System ee 168 La GNU General Public License e 169 iv Produrre Software Open Source Cosassulla Lic
118. AT amp T da programmatori dell Universit della California a Berkley Il gruppo del BSD non fece nessuna dichiarazione per unirsi e condividere ma pratic l idea con predisposizione ed entusiasmo col coordinamento di un massiccio impegno di sviluppo distribuito in cui le utility command line di Unix e le librerie di codice e lo stesso kernel del sistema operativo furono riscritti da un abbozzo per lo pi da volontari Il progetto BSD divenne un primo esempio di sviluppo di software libero non ideologico e serv anche come base di addestramento per molti sviluppatori che avrebbero voluto andare avanti per rimanere attivi nel mondo dell open source Un altra dura prova per lo sviluppo cooperativo fu il X Window System un ambiente grafico di calcolo condiviso in rete sviluppato al MIT nella met degli anni 80 in partnership coi venditori di hardware che avevano il comune interesse di poter offrire ai loro clienti un sistema a finestre Lontano dal contrastare il software proprietario la licenza X permetteva aggiunte proprietarie in cima a un corpo libero ogni membro del consorzio voleva la chance di aumentare la distribuzione X di default e quindi di trarre un vantaggio nella competizione con gli altri membri X Windows di per s era software libero ma principalmente per spianare il campo di gioco a interessi commerciali in concorrenza non senza un qualche desiderio di porre fine al dominio del software proprietario Ancora un altro esempio che a
119. CPL Creative Co of the trademark Crea mmo and makes no warranty ve Commons will not be iable to You or any party on any legal theory for any damages ng without limitation any general special connection to this sentences if Creative Licensor hereunder it sor o the public that the ns does not authorize tive Commons or any related trademark or logo of Creative Commons without the prior written consent of Crea compliance with Creativ guidelines as available upon this trademar request restrict K Creative Commons may be may be published on its tive Co e Commo mmons ns Any per then curre mi nt website from time to time For ion does not form par contacted at http cr it ted use will be in trademark usage or otherwise made the avoidance of doubt of the License eativecommons org 199
120. FAQ Frequently Asked Questions domande poste di frequente ndt 184 Appendice C Perch dovrebbe importarmi di che colore sia la rastrelliera Non dovrebbe davvero non importa e avete cose migliori su cui spendere il vostro tempo Il famoso messaggio della rastrelliera di Poul Henning Kamp di cui appare un estratto in Capitolo 6 Comunicazione una eloquente disquisizione su cosa tende ad andare male nelle discussioni di gruppo E riportato qui con il suo permesso La URL originale http www freebsd org cgi getmsg cgi fetch 506636 517178 usr local www db text 1999 freebsd hackers 19991003 freebsd hackers Subject Una rastrelliera per bici ogni colore andr bene su di un erba pi verd From Poul Henning Kamp lt phk freebsd org gt Date Sat 02 Oct 1999 16 14 10 0200 Message ID lt 18238 938873650 critter freebsd dk gt Sender phk critter freebsd dk Bcc Blind Distribution List MIME Version 1 0 bcc ed to committers hackers Il mio ultimo pamphlet era stato sufficientemente ben accolto che non ero preoccup e oggi ho il tempo e la predisposizione a farlo Ho avuto un piccolo problema nel decidere la giusta distribuzione di questo tipo d conoscenza nascosta ai contributori e agli hacker che probabilmente il meglio c iscritto agli hacker ma a dopo i dettagli La cosa che mi ha scatenato questa volta il thread sleep 1 dovrebbe durare fra le nostre vite per molti g
121. I membri del vecchio gruppo Alpha ora parte di Intel stanno continuando ad usare Vesta oggi in un progetto di microprocessore Aegis http aegis sourceforge net Aegis un sistema di gestione di configurazione software basato su transazione Fornisce un framework in cui un gruppo di sviluppatori pu lavorare su molte modifiche ad un programma in maniera indipendente ed Aegis coordina l integrazione di questi cambiamenti nel codice principale del programma con le minori discrepanze possibili CVSNT http cvsnt org CVSNT un avanzato sistema di controllo di versione multipiattaforma Compatibile con il protocollo standard industriale CSV ora supporta molte nuove funzionalit CVSNT Open Source software libero con licenza GNU General Public License La sua lista di funzionalit include autenticazione attraverso tutti i protocolli standard CVS pi gli specifici di Windows SSPI e Active Directory supporto al trasporto sicuro via sserver o SSPI criptato cross platform va in ambienti Windows e Unix la versione NT completamente integrata con il sistema Win32 il processamento MergePoint significa mai pi tag di cui fare il merge sotto sviluppo attivo META CVS http users footprints net kaz mcvs html Meta CVS un sistema di controllo di versione costruito attorno a CVS Anche se mantiene molte delle funzionalit di CVS incluso l intero supporto alla reta pi capiente di CVS e pi facile da
122. K Vedi il sito per i dettagli Mercurial http www selenic com mercurial Mercurial un sistema di controllo di versione distribuito che offre tra le altre cose completo cross_indexing di file e modifiche protocolli di sincronizzazione HTTP e SSH efficienti per CPU e larghezza di banda unione di branch arbitraria interfaccia web stand alone integrata portabilit verso UNIX MacOs X and Windows e altro la precedente lista di funzionalit stata parafrasata dal sito web di Mercurial GIT http git or cz GIT un progetto iniziato da Linus Torvalds per gestire l albero del codice del kernel di Linux All inizio GIT era piuttosto strettamente focalizzato sui bisogni dello sviluppo kernel ma si espanso oltre ed ora usato da progetti diversi dal kernel Linux La sua home page dice che disegnato per 178 Sistemi di Controllo di Versione Liberi gestire progetti molto vasti con velocit ed efficienza usato principalmente per vari progetti open source tra cui si nota il kernel Linux Git cade nella categoria degli strumenti di gestione distribuita del codice sorgente simile ad esempio a GNU Arch o Monotone 0 BitKeeper nel mondo proprietario Ogni directory di lavoro di Git un repository completo con tutte le funzionalit di tracciamento di revisione non dipendente dall accesso alla rete o ad un server centrale Bazaar http bazaar canonical com Bazaar ancora in sviluppo Sar
123. La release cio la precisa entit riferita a quando qualcuno dice Scanley 2 5 0 l albero creato estraendo un file zip o tar Cos il progetto potrebbe offrire tutti questi per il download scanley 2 5 0 tar bz2 scanley 2 5 0 tar gz scanley 2 5 0 zip ma l albero sorgente estraendoli deve essere lo stesso Quell albero sorgente la distribuzione la forma in cui scaricato un pura questione di convenienza Certe differenze secondarie fra i pacchetti sorgente sono ammissibili per esempio nel pacchetto Windows i file di testo devono avere un fine linea con CRLF Carriage Return and Line Feed mentre il pacchetto Unix deve usare giusto LF Gli alberi possono essere sistemati in maniera poco differente fra i pacchetti destinati a sistemi operativi differenti anche se questi sistemi operativi richiedono diversi tipi sistemazione per la compilazione Comunque queste sono di base le tutte le trasformazioni secondarie I file sorgenti di base devono essere gli stessi nell impacchettamento di una data release Mettere le maiuscole o non metterle Quando ci si riferisce a un progetto col nome la gente generalmente lo nomina con la maiuscola come un nome proprio E mette le maiuscola agli acronimi se ce ne sono ecc Se la maiuscola debba essere usata nel pacchetto tocca al progetto Scanley 2 5 0 tar gzo scanley 2 5 0 tar gz sarebbero ottimi per esempio io preferisco personalmente la seconda perch non mi piace che la gente pigi i
124. Ma esattamente dove nel processo andata sbagliata qualcosa Fu quando la persona d origine aggiunse la sua soluzione al problema dovrebbe aver postato nella mailing list invece O fu quando la seconda persona rispose nel problema invece che sulla mailing list 107 Comunicazione Non esiste una risposta giusta ma c un principio generale se state appunto aggiungendo dati a un problema allora fatelo nel tracciatore ma se state incominciando una conversazione allora fatelo nella mailing list Potete non essere sempre in grado di dire quale il caso ma usate appunto il miglior giudizio Per esempio quando state aggiungendo una patch con una soluzione potenzialmente controversa potreste essere in grado di anticipare che la gente sta per avere una domanda su di essa Cos anche se normalmente aggiungereste la patch al problema ipotizzando che non volete o non potete fare l invio del cambiamento direttamente in questo caso potreste invece scegliere di postarla alla mailing list In ogni caso alla fine l verr il momento nello scambio in cui una parte o l altra pu dire che sul punto di passare dalla sola aggiunta di dati a una reale conversazione nell esempio che incominci questa sezione che sarebbe la seconda persona che risponde colui che si rendeva conto che c erano problemi con la patch pot predire che stava per seguire una conversazione reale e che quindi avrebbe dovuto essere tenuta sul mezzo appropriato Pe
125. Produrre Software Open Source Progettare un Software Libero di successo Karl Fogel Gerlando Termini Giovanni Giorgio Luca Quaglia Produrre Software Open Source Progettare un Software Libero di successo di Karl Fogel Gerlando Termini Giovanni Giorgio e Luca Quaglia Diritto d autore 2005 2006 2007 2008 2009 Karl Fogel sotto licenza CreativeCommons Attribution ShareAlike 3 0 Dedica Questo libro dedicato a due cari amici senza i quali la realizzazione sarebbe stata impossibile Karen Underhill e Jim Blandy Indice Prefazione icctiiierla Liar lata alia ear vi Perch ho scritto questo libro ie vi Chi dovrebbe leggere questo libro siiiniorie riad vii Fonti e mferimenti lt pila AURA RI IL aL aoe cesta Lise eli vii Ringraziamenti vpi Pr RA RITRAE CERTA DOVA EE Vili Esclusione di responsabilit s cccconcnssonenevoncnsrouccevencussonensveneseronssevensseronsseveenesenes x Ls INIFOCRUZIONE svss occcc sacle sh aee OLA se ERE ERRO Pn RE EEN ERI ARR Ri 1 Storace usi lg Li Loria bile 3 L ascesa del software proprietario e del software libero i 4 Free e open source a CONfronto eee 7 La Situazione OG BI sirio ia nia arri 9 2 Partenza Clero nega Quencul E desea Suenos lupa ligabue 11 Partire Da G10 Che S1 Ha crti sazetes sla eil A Riina 12 Scegliere Un Buon Nome c ie 13 Avere una chiara dichiarazione
126. Release Dal punto di vista dello sviluppatore un progetto di software libero in continuo stato di release sviluppatori eseguono sempre l ultimo codice disponibile perch vogliono scoprire i bugs e perch seguono il progetto abbastanza da vicino da essere capaci di tirarsi indietro da aree instabili per quanto riguarda le funzionalit Essi spesso aggiornano la loro copia del software ogni giorno a volte pi di una volta al giorno e quando registrano un cambiamento essi possono ragionevolmente aspettarsi che ogni altro sviluppatore lo ricever entro ventiquattro ore Come allora un progetto dovrebbe creare una release formale Dovrebbe ricevere una istantanea dell albero in un momento in tempo farne il pacchetto e passarlo al mondo come diciamo la versione 3 5 0 Il senso comune dice di no Primo ci pu non essere un momento nel tempo in cui l intero albero di sviluppo pulito e pronto per il rilascio Le funzionalit gi cominciate potrebbero trovarsi in vari stadi di completamento Qualcuno potrebbe aver cercato in un cambiamento pi importante dei bug ma il cambiamento potrebbe essere controverso e sotto dibattito al momento in cui la foto stata fatta Se cos non funzionerebbe ritardare la fotografia fino a quando il dibattito non termini perch un altro dibattito non collegato potrebbe iniziare nel frattempo e allora voi dovreste attendere che anche quello termini Non garantito che questo processo termini In
127. Reply to Rispondi A di ogni messaggio in modo da ridirigere le risposte sulla mailing list Cio nonostante cosa il mittente originale ha messo nell header Reply to o anche se non stato incluso del tutto al momento in cui gli iscritti vedono il messaggio l header conterr l indirizzo della mailing list Reply to discuss lists example org A prima vista sembra essere una buona cosa Dato che virtualmente ogni software di lettura mail presta attenzione all header Reply to quando chiunque risponde ad un messaggio la risposta sar automaticamente mandata all intera mailing list non solo al mittente del messaggio a cui si risposto Sicuramente chi risponde pu ancora cambiare a mano il destinatario ma la cosa importante che per default le risposte siano mandate alla mailing list E un esempio perfetto dell uso della tecnologia per incoraggiare la collaborazione Sfortunatamente ci sono alcuni svantaggi Il primo noto come il problema del Non Riesco a Trovare la Strada di Casa a volte il mittente originale potr mettere il proprio vero indirizzo email nel campo Reply to perch per una qualche ragione manda la mail da un indirizzo diverso da quello dove lo riceve La gente che legge e manda sempre dallo stesso indirizzo non ha questo problema e potrebbe essere sorpresa della sua esistenza Ma per chi ha configurazioni email particolari o chi non pu controllare come il suo indirizzo mittente sar composto magari perch
128. S del vostro progetto pu ancora vedere l annuncio attraverso quelli di Freshmet 5 Mandate una email alla mailing list degli annunci del progetto Il nome di questa mailing list dovrebbe essere veramente annuncia cid annuncia yourprojectdomain org perch questa una convenzione piuttosto standard ora e lo statuto della mailing list dovrebbe render chiaro che a traffico molto lento riservata agli annunci principali del progetto La maggior parte di questi annunci saranno sulle release del software ma occasionalmente su altri eventi come una iniziativa di raccolta fondi la scoperta di una vulnerabilit nella sicurezza vedere sezione chiamata Annunciare le Vulnerabilit della Sicurezza pi avanti in questo capitolo o un cambiamento nel progetto pu essere postato anche l Poich essa a basso traffico e usata solo per cose importanti la mailing list annuncia ha tipicamente la pi alta quantit di iscritti di ogni mailing list nel progetto certo ci significa che voi non dovete abusare con essa riflettete prima di postare Per evitare che gente a caso faccia annunci 0 peggio spam di passaggio la mailing list annuncia deve sempre essere moderata Cercate di fare gli annunci in tutti i posti in modo simultaneo quanto pi possibile La gente potrebbe confondersi vedendo un annuncio sulla mailing list ma poi non vedendolo nella pagina principale del sito del progetto o nell area dei comunicati stampa Se rice
129. Volontari Ma meglio evitare tali compromessi se possibile e molti autori si stanno persuadendo perch sono felici del fatto che si sta facendo del loro contributo una parte pi integrale del progetto La cosa importante ricordare che c una continuit fra il cuore e la periferia di ogni progetto I principali files di codice sorgente del software sono chiaramente parte del cuore e dovrebbero essere essere considerati in manutenzione da parte della comunit D altra parte strumenti di accompagnamento o pezzi di documentazione possono essere il lavoro di singoli individui che li hanno in manutenzione essenzialmente da soli anche se i lavori possono essere associati o anche distribuiti dal progetto Non c bisogno di applicare una regola di taglia unica a ogni file finch vale il principio che non permesso che le risorse in manutenzione alla comunit diventino territori personali Il Rapporto di Automazione Cercare di non consentire agli uomini ci che invece potrebbero fare le macchine Come regola pratica automatizzare una operazione comune vale dieci volte almeno lo sforzo che uno sviluppatore dovrebbe impiegare a fare manualmente quella operazione una volta Per operazioni molto frequenti o molto complesse il rapporto potrebbe arrivare facilmente a venti o anche di pi Il pensare a voi stessi come gestori di progetto piuttosto che solo come ad un altro sviluppatore potrebbe essere un utile atteggiamento
130. a Stroncate sul nascere la scortesia Dall inizio dell esistenza del vostro progetto dovreste mantenere una politica di tolleranza zero verso comportamenti scortesi o offensivi nei suoi forums Tolleranza zero non significa forzatura tecnica di per se Non dovete rimuovere le persone dalla mailing list quando offendono un altro iscritto o impedire loro la possibilit di inserire messaggi perch hanno fatto commenti sprezzanti In teoria potreste alla fine far ricorso a tale azione ma solo dopo che le altre vie hanno fallito cosa che per definizione non il caso dell avvio del progetto Tolleranza zero semplicemente significa non permettere che cattivi comportamenti passino inosservati Per esempio quando qualcuno posta un commento tecnico insieme ad un attacco personale a qualche altro sviluppatore nel progetto imperativo che voi rispondiate a questo attacco personale prima come problema separato in se stesso e solo dopo passiate al contenuto tecnico Sfortunatamente molto facile e troppo tipico che discussioni costruttive scadano in distruttive guerre offensive Le persone diranno cose per email che non avrebbero mai detto faccia a faccia L argomento della discussione per amplifica questo effetto nei problemi tecnici le persone spesso pensano che ci sia una sola risposta giusta a molte domande e che il disaccordo con quella risposta possa essere spiegato come ignoranza o stupidit Il tratto breve fra il chiamare la propos
131. a gli archivi sono la sua legge comune una registrazione di tutte le decisioni prese e di come sono arrivate l In ogni discussione ricorrente quasi obbligatorio oggigiorno partire con una ricerca nell archivio Questo ti permette di incominciare una discussione con un sommario dello stato corrente delle cose di anticipare obiezioni di preparare i rifiuti e possibilmente di scoprire degli angoli a cui non avevate pensato Anche gli altri partecipanti si aspetteranno che abbiate fatto una ricerca nell archivio Anche se le discussioni precedenti non andarono da nessuna parte voi dovreste includere dei puntatori ad esse quando balza si di nuovo l argomento cos la gente pu guardare da s che non a andarono da nessuna parte e probabilmente diranno ora ci che non stato detto prima b che voi avete fatto i vostri compiti e quindi state probabilmente dicendo cose che non sono state dette prima Trattate Tutte le Risorse Come un Archivio Tutti i precedenti consigli si applicano a pi che ai soli archivi delle mailing lists L avere particolari pezzi di informazione in stabili indirizzi che si possono trovare convenientemente dovrebbe essere un principio organizzativo di tutte le informazioni del progetto Lasciatemi portare le FAQ del progetto come caso di studio Come la gente usa le FAQ 1 Essi vogliono cercare in esse per parola e frase 2 Essi vogliono guardarle per assorbire informazioni senza necessariamente guardare per ri
132. a Un buon modo per fare ci e dare loro pi potere di quello che dovrebbero usare e poi informarli che sta a loro rimanere nei limiti accordati Il progetto Subversion ha lavorato con il sistema d onore per pi di quattro anni con 33 persone che potevano fare commit ovunque e 43 limitatamente L unica distinzione che il sistema applicava tra chi fa commit e chi no ulteriori sottodivisioni sono mantenute solo dagli umani Comunque non abbiamo mai avuto un problema con qualcuno che deliberatamente faceva commit fuori dal proprio dominio Una o due volte ci sono stati degli innocenti equivoci riguardo ai limiti dei privilegi di commit ma sono sempre stati risolti velocemente e amichevolmente Ovviamente in situazioni in cui l autoregolamentazione non possibile dovete affidarvi a severi controlli di autorizzazione Ma tali situazioni sono rare Anche quando ci sono milioni di righe di codice e centinaia o migliaia di sviluppatori un commit su qualunque modulo del codice dovrebbe comunque verificato da chi lavora su quel modulo e possono riconoscere se qualcuno ha fatto il commit senza esserne autorizzato Se la regolare revisione dei commit non funziona allora il progetto ha problemi pi grandi da affrontare piuttosto che il sistema di autorizzazione Riassumendo non spendete troppo tempo armeggiando con il sistema di autorizzazione del controllo di versione a meno che non abbiate delle specifiche ragioni per farlo Solitamente non poter
133. a Tecnica La navigabilit importante perch un portale leggero verso i dati del progetto Se il repository non pu essere visto attraverso un browser web allora qualcuno che vuole esaminare un file particolare per esempio per vedere se una certa fix stata fatta in quel codice dovrebbe prima installare localmente il software del client del controllo di versione il che muterebbe la semplice richiesta da un attivit di due minuti in una da mezz ora o pi La navigabilit implica anche URL canoniche per vedere le specifiche revisioni dei file e per vedere le ultime revisioni in ogni momento Questo pu essere molto utile nelle discussioni tecniche o quando si rimanda la gente alla documentazione Per esempio invece di dire Per suggerimenti sul debugging del server vedi il file www hacking html nella tua copia di lavoro uno pu dire Per suggerimenti sul debugging del server vedi http subversion apache org docs community guide dando una URL che punti sempre all ultima revisione del file hacking html L URL meglio perch totalmente non ambigua ed evita la questione sul fatto che il destinatario abbia o meno una copia di lavoro aggiornata Alcuni sistemi di controllo di versione includono meccanismi precostitutiti di navigazione del repository mentre altri si affidano a strumeti di terze parti Tre di tali strumenti sono ViewCVS http viewcvs sourceforge net CVSWeb http www freebsd org projects cvsweb html
134. a eccetera Per compensare a questo provate ad usare un nome immagine consistente ovunque Potrebbe essere la parte iniziale del vostro indirizzo email la parte prima del simbolo il vostro username IRC il nome che usate nei commit lo username del tracciamento dei problemi eccetera Questo nome la vostra faccia online una breve stringa identificativa che provvede ad alcuni degli stessi usi della vostra vera faccia anche se sfortunatamente non stimola lo stesso hardware integrato nel cervello 91 Comunicazione Il nome immagine dovrebbe essere qualche permutazione intuitiva del vostro nome reale il mio per esempio kfogel In alcune situazioni sar comunque accompagnato dal vostro nome completo per esempio nelle testate delle email From Karl Fogel lt kfogel whateverdomain com gt In realt ci sono due cose in questo esemio Come menzionato prima il nome immagine rimanda al nome reale in modo intuitivo Inoltre il nome reale reale cio non qualche appellativo costruito come From Fantastico Hacker lt fantasticohacker undominio com gt C un famosto fumetto di Paul Steiner del 5 luglio 1993 uscito sul The New Yorker che mostra un cane loggato ad un computer guardare in basso e dire ad un altro in modo cospirativo In Internet nessuno sa che sei un cane Questo tipo di pensiero risiede probabilmente dietro a molte delle identit da fighi auto esaltanti che la gente si d in rete co
135. a gente potr contribuire con domande e risposte una volta che il progetto ha preso avvio A questo punto la pi importante qualit non la completezza ma la convenienza se la sezione FAQ facile da crescere la gente la far crescere Una corretta manutenzione delle FAQ una questione non banale e avvincente ed discussa ulteriormente in sezione chiamata Il Manager delle FAQ in Capitolo 8 Gestire i Volontari Disponibilit della documentazione La documentazione dovrebbe essere disponibile in due posti online direttamente dal sito e e nella distribuzione scaricabile del software vedere sezione chiamata Impacchettamento in Capitolo 7 20 Partenza Confezione Rilascio e Sviluppo Quotidiano C bisogno che sia online accessibile via browser perch spesso la gente legge la documentazione prima di scaricare il software per la prima volta come aiuto a decidere se scaricare punto Ma essa dovrebbe accompagnare il software sulla base del principio che il download dovrebbe fornire cio rendere accessibile localmente ogni cosa di cui uno ha bisogno per usare il pacchetto Per la documentazione online assicuratevi che ci sia un link che porti all intera documentazione in una pagina html mettete una nota tipo monolitica o tutto in uno o singola grande pagina vicino al link affinch la gente sappia che potrebbe impiegare un periodo di tempo a caricarsi Ci utile perch spesso
136. a le patches Quando ebbi modo di lavorare a CVS talvolta vidi la gente iniziare e anche completare le loro patches al proprio codice di CVS ma arrendersi quando quando si diceva loro del requisito dell aggiunta di un nuovo test a sanity sh E normale impiegare pi tempo a scrivere un nuovo test di regressione che a correggere il bug originale Ma CVS port questo fenomeno all estremo uno poteva impiegare ore nel cercare di scrivere il suo test in modo appropriato e ancora trovarsi in errore perch ci sono appunto troppo imprevedibili complessit relative al cambiamento di uno script della shell di Bourne di 35 000 linee Anche gli sviluppatori anziani di CVS si lamentavano quando dovevano aggiungere un nuovo test Questa situazione era dovuta a un nostro fallimento su tutta la linea nel considerare il rapporto di automazione Sebbene il passare a una struttura di test reale sia costruita personalmente sia dal di fuori avrebbe richiesto uno sforzo maggiore Ma il non fare cos costato al progetto molto pi nel corso degli anni Quante correzioni di bugs non ci sono in CVS oggi a causa dell ostacolo di una cattiva suite di test Non non ne possiamo sapere l esatto numero ma sicuramente molte volte pi grande del numero di correzioni o di nuove funzionalit a cui gli sviluppatori potrebbero dover rinunciare per sviluppare un nuovo sistema di test o integrare un sistema esterno Quella operazione richiederebbe solo un finito
137. a posto Dovete anche iniziarla con contenuti ben scritti cos che le persone abbiano esempi da seguire L esempio splendente di una run ben gestita Wikipedia anche se questo in parte perch il contenuto voci di enciclopedia naturalmente adatto per il formato wiki Ma se esaminate Wikipedia da vicino vedrete che i suoi amministratori hanno costruito una fondazione per la cooperazione molto efficente C una vasta documentazione su come scrivere nuove voci come conservare un adeguato punto di vista che tipo di modifiche fare quali evitare un processo di risoluzione per le dispute su voci contestate che comprende molti stati includendo un giudizio finale e cos via Hanno anche controlli di autorizzazione cos che se una pagina bersaglio di ripetute modifiche non appropriate possono bloccarla fino a quando il problema risolto In altre parole non hanno solo buttato qualche template su un sito web e sperato in bene Wikipedia funziona perch i suoi fondatori hanno pensato accuratamente su come migliaia di estranei adeguino la loro scrittura ad una visione comune Anche se potreste non avere bisogno dello stesso livello di preparazione per far andare un wiki per un progetto di software libero vale la pena emularne lo spirito Per maggiori informazioni sulle wiki vedi http en wikipedia org wiki Wiki Inoltre la prima wiki rimane viva e vegeta e contiene molte discussioni su come far andare le wiki vedi http www c2 c
138. a scoperto il problema entra nel cosiddetto stato aperto Dato che nessuna azione ancora stata intrapresa alcuni tracker lo marcano come non verificato unverified e o non iniziato unstarted Non assegnato a nessuno 0 in alcuni sistemi assegnato ad un qualche utente fittizio che rappresenta la mancanza di una vera assegnazione A questo punto in un area controllata il problema stato memorizzato ma non ancora integrato nella coscienza del progetto 2 Altri leggono il problema ci aggiungono commenti e magari chiedono chiarimenti su alcuni punti allo scopritore 3 Il bug viene reprodotto Questo potrebbe essere il momento pi importante nel suo ciclo di vita Anche se il bug non stato riparato il fatto che qualcuno diverso dallo scopritore stato in grado di riprodurlo prova che genuino e non meno importante conferma al primo scopritore che ha contribuito al progetto riportando un vero bug 4 Il bug viene diagnosticato la sua causa viene identificata e se possibile viene estimato lo sforzo per ripararlo Siate certi che queste cose vengano registrate nel problema se la persona che l ha diagnosticato deve improvvisamente uscire dal progetto per un po come spesso accade con sviluppatori volontari qualcun altro dovrebbe essere in grado di considerare il problema quando se ne va In questo stato o in qualche momento prima uno sviluppatore pu prendere possesso del problema e assegnare tale problema a se
139. a sono differenti Essi possono compromettere i dati degli utenti e magari l intero computer dell utente Per discutere apertamente un tale problema si dovrebbe avvisare della sua esistenza il mondo intero incluse tutte le parti che potrebbero fare un uso maligno del bug Anche solo facendo l invio della correzione in effetti d l annuncio dell esistenza del bug ci sono persone potenziali che sferrano gli attacchi che guardano i log degli invii dei progetti pubblici sistematicamente alla ricerca di cambiamenti che indicano problemi di sicurezza nel codice di pre cambiamento Molti progetti open source hanno fissato lo stesso gruppo di passi per gestire questo conflitto fra l essere aperti e la segretezza basati su queste linee guida 1 Non parlate del bug pubblicamente finch non sia disponibile un correzione quindi fornite la correzione all esatto stesso momento in cui annunciate il bug 2 Arrivate con quella correzione quando pi velocemente potete specialmente se qualcuno al di fuori del progetto riport il bug perch allora voi sapete che c almeno una persona al di fuori del progetto che in grado di sfruttare la vulnerabilit In pratica questi principi portano a una serie di passi molto standardizzati che sono descritti nella sezione sotto 110 Comunicazione Ricevere il report Ovviamente il progetto ha bisogno di ricevere i bug nella sicurezza da ognuno Ma gli indirizzi dei rapporti dei bug non ne hanno bi
140. a superficie di cosa dicono ma per dirla semplicemente i sentimenti condizionano la produttivit I sentimenti sono importanti anche per altre ragioni ma anche limitandoci a livelli puramente utilitaristici possiamo notare che persone infelici scrivono software peggiore e meno Data la natura ristretta della maggior parte dei media elettronici comunque non ci sar spesso alcuna indicazione di come una persona si sente Dovrete farvi una educata idea basata su a come la maggior parte della gente si sentirebbe in quella situazione e b cosa sapete di questa particolare persona da passate interazioni Alcune persone preferiscono un atteggiamento diretto e trattare semplicemente con chiunque come fossero faccia a faccia con l idea che se un partecipante non tira fuori che si sente in un particolare modo allora uno non ha modo di trattare con lui come dovrebbe Non seguo questo approccio per alcune ragioni Uno la gente non si comporta cos nella vita reale quindi perch dovrebbero online Due dato che la maggior parte delle interazioni avviene in forum pubblici la gente tende ad essere ancora pi riservata nell esprimere emozioni che se fosse in privato Per essere pi precisi spesso vogliono esprimere emozioni dirette agli altri come gratitudine o rabbia ma non emozioni dirette verso se stessi come insicurezza o orgoglio Comunque la maggior parte degli umani lavora meglio quando sanno che gli altri sono al corrente del loro stato di
141. a tale evidenza dovetti fare marcia indietro sull affermazione che far girare il codice fosse assolutamente necessario per lanciare un progetto Far girare il codice ancora la migliore premessa per il successo e una buona regola empirica approssimativa sarebbe aspettare di farlo girare prima di annunciare il vostro progetto Comunque ci sono circostanze in cui fare l annuncio presto ha un senso Penso che almeno un documento di progetto ben sviluppato o diversamente una sorta di struttura di codice sia necessaria certamente pu essere rivista basandosi su una pubblica risposta ma ci deve essere qualcosa di concreto qualcosa di pi tangibile oltre a delle sole buone intenzioni affinch le persone possano affondarvi i denti In qualsiasi momento facciate l annuncio non aspettatevi che un orda di volontari si aggiungano al progetto Usualmente il risultato dell annuncio che voi ricevete poche domande casuali e inoltre poche persone si aggiungono alle vostre mailing lists e a parte questo ogni cosa continua ad andare abbastanza come prima Ma col tempo noterete un graduale aumento nella partecipazione sia di collaboratori al nuovo codice sia di utilizzatori L annuncio solo un piantare il seme Ci pu essere bisogno di molto tempo perch la notizia si diffonda Se il progetto coerentemente ricompensa coloro che sono coinvolti le notizie si diffonderanno comunque perch le persone vogliono condividere quando hanno trovato qualcosa d
142. a un nuovo sviluppatore per lavorare a Subversion noi ci sediamo intorno a un tavolo e scegliamo qualche bug aperto per la nuova persona perch lui ci affondi i denti Noi discuteremo le linee bozza delle soluzioni e poi assegneremo almeno uno sviluppatore esperto per pubblicamente revisionare le correzioni che il nuovo arrivato poster Tipicamente non guarderemo la correzione prima che la lista degli sviluppatori la veda sebbene lo potremmo se vi fosse qualche ragione La cosa importante che il nuovo sviluppatore passi attraverso il processo della pubblica revisione imparando il codice base e simultaneamente e abituandosi a ricevere critiche da parte di perfetti sconosciuti Ma noi cerchiamo di coordinare i tempi in modo che la nostra revisione venga immediatamente dopo che la patch stata postata Cos la prima revisione che la lista vede la nostra cosa che pu essere utile e impostare il tono delle altre revisioni Ci contribuisce anche all idea che la nuova persona deve essere presa seriamente se gli altri vedono che noi stiamo impiegando il tempo a fare dettagliate revisioni con esaurienti spiegazioni e riferimenti negli archivi dove appropriato apprezzeranno ci come una forma di training che sta andando avanti e ci probabilmente significa investimento a lungo termine Questo li render pi ben disposti verso lo sviluppatore almeno nella misura di spendere un tempo extra nel rispondere alle domande e nel revisionare le cor
143. accesso al commit Questo solo un breve riassunto vedi le pagine web di Arch per i dettagli monotone http www venge net monotone monotone un sistema di controllo di versione libero fornisce un deposito di versione semplice e transazionale sul file singolo con un protocollo di operazione completamente disconnesso e di efficiente sincronizzazione peer to peer capisce i merge sensibili alla storicizzazione branch leggeri revisione del codice integrata e test di terze parti usa una nominazione di versione crittografica e certificati RSA lato client ha un buon supporto per l internazionalizzazione non ha dipendenze esterne va su linux solaris osx e windows ed ha la licenza GNU GPL Codeville http codeville org Perch l ennesimo sistema di controllo di versione Tutti gli altri sistemi di controllo di versione richiedono che teniate con attenzione traccia delle relazioni tra i branch cos da non dover ripetutamente fare il merge degli stessi conflitti Codeville molto pi anarchico Vi permette di aggiornare dal vostro commit ad ogni repository in ogni momento senza inutili nuovi merge Codeville funziona creando un identificativo per ogni cambiamento che viene fatto e ricordando la lista di tutti i cambiamenti che sono stati applicati ad ogni file e l ultimo cambiamento che ha modificato 179 Sistemi di Controllo di Versione Liberi ogni riga in ogni file Quando c un conflitto controlla per v
144. acciatori di richieste request trackers sistemi di segnalazione di problemi trouble ticket systems eccetera Vedi Appendice B Bug Tracker Liberi per un elenco di software In questo libro continuer ad usare bug tracker per il software che fa il tracciamento perch come la maggior parte della gente lo chiama ma user problema issue per riferirmi ad un singolo elemento nel database del bug tracker Questo ci permette di distinguere tra l aspetto anche sbagliato che l utente ha riscontrato cio il bug stesso e gli elementi record del tracker della scoperta del bug della diagnosi e dell eventuale soluzione Ricordate che anche sono la maggior parte dei problemi sono veramente bug possono essere usati per tracciare anche altri tipi di attivit SI L Infrastruttura Tecnica Il tipico ciclo di vita di un problema tipo 1 Qualcuno identifica il problema Fornisce un introduzione una descrizione iniziale includendo se possibile una descrizione di come riprodurlo vedi sezione chiamata Trattate Ogni Utilizzatore Come un Potenziale Volontario in Capitolo 8 Gestire i Volontari per come incoraggiare delle buone segnalazioni di bug e qualsiasi altra informazione il tracker richieda La persona che scopre il bug potrebbe essere completamente sconosciuta al progetto le segnalazioni di bug e le richieste di funzionalit plausibilmente arrivano dalla comunit degli utenti cos come dagli sviluppatori Una volt
145. ags org rfcs rfc2369 html Va notato che questi header implicano che se avete una mailing list che si chiama list allora avete anche gli indirizzi amministrativi list help e list unsubscribe a disposizione Oltre a questi 37 L Infrastruttura Tecnica normale avere list subscribe per iscriversi e list owner per contattare gli amministratori della mailing list A seconda del software di gestione che usate questi e o vari altri indirizzi amministrativi possono essere creati la documentazione conterr dettagli su questo Solitamente una spiegazione completa di tutti questi indirizzi speciali inviata ad ogni nuovo utente come parte di una email automatica di benvenuto quando si iscrive Voi stessi probabilmente avrete una copia di questa mail di benvenuto Se non l avete allora chiedetene una copia a qualcun altro cos saprete cosa gli utenti vedono quando si iscrivono alla mailing list Tenete questa copia a portata di mano cos da poter rispondere alle domande riguardo alle funzionalit della mailing list o ancora meglio mettetela su una pagina web da qualche parte In questo modo quando la gente perde la loro copia delle istruzioni e scrive per chiedere Come mi disiscrivo dalla mailing list possiate semplicemente passar loro l URL Alcuni software di gestione offrono come opzione l appendere le istruzioni per la disiscrizione al fondo di ogni messaggio Se tale opzione disponibile usatela Provoca solo qualch
146. ale volontario nei primi momenti in cui si fanno le conoscenze Se un progetto non d una buona prima impressione raramente i nuovi arrivati danno una seconda chance La precariet o piuttosto la potenziale precariet delle relazioni forse la pi scoraggiante incombenza nel portare avanti un progetto Cosa persuader tutta questa gente a tenersi unita abbastanza a lungo da poter produrre qualcosa di utile La risposta a questa domanda complessa abbastanza da occupare il resto di questo libro ma se dovesse essere espressa in un modo di dire essa sarebbe questa La gente dovrebbe sentire che il suo legame col progetto e la sua influenza su di esso direttamente proporzionale a suo contributo Nessuna classe di sviluppatori o potenziali sviluppatori si sentirebbe svenduta o discriminata per ragioni non tecniche Chiaramente i progetti con la sponsorizzazione delle grandi compagnie e o gli sviluppatori salariati hanno bisogno di essere particolarmente attenti a riguardo come Capitolo 5 Soldi discute in dettaglio Certamente ci non significa che se non si ha la sponsorizzazione non c da preoccuparsi I soldi sono solo uno dei fattori che possono influire sul successo di un progetto Ci sono anche domande su quale linguaggio scegliere quale licenza quale procedimento di sviluppo quale tipo di infrastruttura metter su come pubblicizzare l inizio di un progetto nei fatti e molto altro Partire con un progetto col piede giusto l arg
147. almente non sanno che quel cambiamento l ultimo Non facile stabilire quando il progetto si esaurito Quando non stato lavorato per sei mesi Quando la base di utilizzatori ha smesso di crescere senza aver superato la base di sviluppatori E se gli sviluppatori di un progetto lo abbandonano perch si rendono conto che stanno duplicando il lavoro di un altro e se essi si uniscono a quell altro progetto dunque lo espandono per immettervi molto del loro sforzo primitivo Il progetto precedente finito o ha semplicemente cambiato casa A causa di una tale complessit impossibile stabilire il numero dei fallimenti Ma una evidenza annedotica da pi di un decennio di open source qualche ricerca su SourceForge net e un piccolo googling tutti puntano alla stessa conclusione il numero estremamente alto probabilmente dell ordine del 90 95 Il numero sale se includete i progetti che sopravvivono ma son disfunzionali quelli che stanno producendo codice che gira ma che non hanno motivo di esistere o che non stanno progredendo cos velocemente o cos affidabilmente come dovrebbero Questo libro parla di come evitare i fallimenti Esso esamina non solo come fare le cose bene ma come farle sbagliate in modo che voi possiate riconoscere e correggere gli errori piuttosto in anticipo La mia speranza che dopo averlo letto voi abbiate un repertorio di tecniche non tanto per evitare 1 trabocchetti dello sviluppo open source quanto per oper
148. ambiato o usato Se il dittatore stesse improvvisamente incominciando a prendere cattive decisioni ci sarebbe un agitazione seguita probabilmente da una rivolta e da una scissione A meno che indubbiamente le cose raramente vanno cos lontano il dittatore venga prima a un compromesso Ma appunto perch la possibilit di diramazione mette un limite superiore al potere che uno pu esercitare su un progetto non significa che non ci siano importanti differenze su come il progetto viene condotto Voi non avete bisogno del fatto che ogni decisione venga presa alla richiesta di ultima spiaggia di chi sta prendendo in considerazione una forchetta Cosa che seccherebbe molto rapidamente e toglierebbe energia al lavoro reale Le prossime due sezioni esaminano differenti modi di organizzare un progetto in modo tale che la maggior parte delle decisioni vadano per il verso giusto Questi due esempi sono in qualche modo idealizzati come casi limite Molti progetti cadono con una certa continuit fra di essi I Dittatori Benevoli Il modello di dittatore benevolo esattamente ci che suona come l autorit delle decisioni finali di pende da un unica persona che in virt della personalit e dell esperienza si prevede che la usi saggiamente Sebbene dittatore benevolo o BD sia il termine standard per questo ruolo bene pensare ad esso come arbitro approvato dalla comunit o giudice Generalmente i dittatori benevoli in realt non pren
149. amente Siccome chiunque usa il software scoprir le manchevolezze da s molto meglio che sia psicologicamente preparato allora sembrer come se il progetto abbia una solida consapevolezza di come sta andando Manutenzione di una sezione FAQ Una FAQ Un documento Domande fatte di frequente pu essere uno dei migliori investimenti che il progetto fa in termini di ritorno didattico Le FAQs sono molto in sintonia con le domande che gli utilizzatori e gli sviluppatori in realt fanno invece delle domande che voi avreste potuto attendervi da loro e quindi una sezione di FAQs ben mantenuta tende a dare a coloro che la consultano esattamente quello che essi stanno cercando La sezione FAQ la prima cosa che guardano quando incontrano un problema spasso anche preferendola al manuale ufficiale ed probabilmente il documento nel vostro progetto che viene linkato dagli altri siti Sfortunatamente non potete fare le FAQ alla partenza del progetto Della buone FAQs non sono scritte esse vengono cresciute Per definizione sono documenti di reazione che si evolvono nel tempo in riposta all uso che la gente fa del software giorno dopo giorno Siccome impossibile anticipare con successo le domande che la gente fa impossibile sedersi e scrivere delle utili FAQs dall inizio Quindi non perdete tempo nel cercare di scriverle Potete comunque trovare utile metter su un modello generalmente vuoto di modo che quello sar un posto dove l
150. ammontare di tempo mentre la penalizzazione dell uso della suite di test corrente continuer per sempre se non si fa niente Il punto non quello che avere avere requisiti stringenti per scrivere tests male n che scrivere il vostro sistema di test come lo script della shell di Bourne necessariamente male Il punto semplicemente che quando il sistema di test diventa una significativo impedimento per lo sviluppo qualcosa deve essere fatto Lo stesso vale per ogni processo di routine che diventa una strettoia o una barriera Trattate Ogni Utilizzatore Come un Potenziale Volontario Ogni interazione con un utilizzatore un opportunit per procurarsi un nuovo volontario Quando un utilizzatore si concede il tempo di scrivere ad una delle mailing lists del progetto o di mettere un archivio un rapporto di bug ha gi indicato se stesso come possessore di un maggiore potenziale per un coinvolgimento rispetto alla maggior parte degli utilizzatori dai quali il progetto non avr mai notizie Seguite questo potenziale se egli ha descritto un bug ringraziatelo per il report e chiedetegli de vuole correggerlo Se egli ha scritto per dire che che una domanda importante manca nelle FAQ o che la documentazione del programma insufficiente in qualche modo allora ammettete apertamente l esistenza del problema ammesso che esso esista realmente e chiedetegli se interessato a scrivere il materiale mancante Naturalmente molte volte l utili
151. anche alcuni buoni argomenti nell altra fazione del dibattito Qualunque modo sceglierete ogni tanto troverete persone che scrivono sulla mailing list chiedendo perch non abbiate scelto l altro modo Dato che questo non qualcosa che desiderate avere come argomento principale di discussione potrebbe essere conveniente avere una risposta pronta preconfezionata del tipo che sia incline a fermare la discussione piuttosto che incoraggiarla Cercate di non insistere sul fatto che la vostra decisione qualunque sia ovviamente l unica giusta e sensata anche se pensate che sia cos Cercate invece di precisare che un vecchio dibattito che ci sono buone argomentazioni a favore di entrambe le fazioni che nessuna scelta soddisfer tutti gli utenti e quindi avete solo preso la miglior decisione che potevate Educatamente chiedete che l argomento non sia ripreso a meno che qualcuno abbia qualcosa di davvero nuovo da dire quindi stare fuori dalla discussione e sperate che muoia di morte naturale Qualcuno potrebbe suggerire una votazione per scegliere un modo piuttosto che un altro Potete farlo se volete ma personalmente non penso che votare sia una soluzione soddisfacente in questo caso La penalit per qualcuno che sorpreso da questo comportamento cos grande mandare accidentalmente una email privata ad una mailing list pubblica e l inconveniente per gli altri talmente leggero doversi ricordare qualche volta di rispondere a tutta la
152. ando a contribuire alla buona riuscita del progetto e anche se la sua prima segnalazione di bug non di grande aiuto volete comunque ancora incorraggiare il coinvolgimento e la segnalazione di problemi migliori in futuro Nel frattempo comunque il progetto ha bisogno di tenere il database dei problemi il pi possibile libero da spazzatura Le due cose che faranno il massimo per prevenire questo problema sono essere certi che ci sia gente a guardare il bug tracker che abbia abbastanza competenze per chiudere i problemi perch invalidi o duplicati al momento in cui arrivano e richiedendo o incoraggiando fortemente agli utenti di confrontare i loro bug con altra gente prima di aggiungerli al tracker La prima tecnica pare essere universalmente impiegata Anche progetti con database di problemi enormi per dire il bug tracker di Debian a http bugs debian org che conteneva 315 929 problemi nel momento di questa scrittura ancora fa in modo che qualcuni veda ogni problema che arriva Potrebbe essere una persona differente a seconda della categoria del problema Per esempio il progetto Debian una collezione di pacchetti di software quindi Debian instrada automaticamente ogni problema ai manutentori del pacchetto appropriato Certo gli utenti possono a volte identificare male la categoria di un problema con il risultato che il problema inizialmente inviato alla persona sbagliata che deve poi reinstradarla Comunque la cosa importante
153. ando quel ruolo comporta fatiche temporanee intense di volta in volta L esempio canonico il manager di release che va a velocit pi elevata per quanto riguarda il tempo di ciascuna release ma altrimenti rimane dormiente dormiente come manager di release in ogni caso egli pu essere anche un attivo sviluppatore ma questa un altra questione e Come per il criticismo e per i riconoscimenti la gratitudine dovrebbe essere specifica Non ringraziate la gente solo perch grande anche se lo Ringraziatela per qualcosa che ha fatto che era fuori dell ordinario e per il buon punteggio dite esattamente perch ci che fecero era cos grande n generale c sempre una tensione fra l assicurarsi che i contributi individuali della gente siano riconosciuti e l assicurarsi che che il progetto sia una fatica pubblica invece che un insieme di glorie individuali Giusto rimanete al corrente di questa tensione e cercate di sbagliare dalla parte del gruppo e le cose non vi scapperanno di mano Le Diramazioni In sezione chiamata La Possibilit di Diramazione in Capitolo 4 L Infrastruttura Sociale e Politica noi vedemmo come la possibilit di una diramazione abbia un effetto importante su come il progetto viene amministrato Ma cosa accede quando una diramazione si verifica veramente Come dovreste 160 Gestire i Volontari gestire la cosa E quali effetti dovete aspettarvi che la cosa abbia All inverso quando dovreste inizi
154. ando sono riconosciuti piccoli contributi la gente ritorna per fare di pi Una delle pi importanti caratteristiche dello sviluppo in collaborazione vedere Capitolo 3 L Infrastruttura Tecnica quella che esso tiene accurate registrazioni di chi fece cosa quando Dovunque possibile usate questi meccanismi esistenti per assicurarvi che i riconoscimenti siano distribuiti accuratamente e siano specifici sulla natura del contributo Non scrivete solo Grazie a J Random lt jrandom example com gt se invece potete scrivere Grazie a J Casuale lt jrandom example com gt per il rapporto di bug e per la ricetta per la riproduzione in un messaggio di log In Subversion noi abbiamo la informale ma costante politica di riconoscere a chi fa un rapporto di bug o nel problema archiviato se ce n uno o nel messaggio di log dell invio che corregge il bug se no Un rapido controllo dei logs di invio fino all invio 14525 mostra che circa il 10 degli invii d il riconoscimento a qualcuno per nome ed email di solito la persona che ha analizzato e ha riportato il bug corretto da quell invio Notate che questa persona differente dallo sviluppatore che in realt 159 Gestire i Volontari fece l invio il cui nome registrato automaticamente dal sistema di controllo della versione Delle 80 e rotte persone che hanno il pieno o parziale invio in Subversion 50 avevano i riconoscimenti nei log di invio di solito molte volte
155. anonico oggetto annuncio a cui altri siti possano linkare in modo da assicurarsi che esso sia strutturato di conseguenza sia come pagina web per le release sia come nuova entrata nel blog sia come altro tipo di entit che possa essere linkata pur essendo tuttavia tenuta distinta da altri comunicati stampa nella stessa area 3 Se il vostro progetto ha un feed RSS assicuratevi che l annuncio vada anche l Ci pu avvenire automaticamente quando create il comunicato stampa a seconda di come le cose sono messe sul vostro sito RSS un meccanismo per distribuire sommari di meta dati ricchi agli iscritti cio gente che ha indicato un interesse nel ricevere questi sommari Vedere per maggiori informazioni sugli RSS Se l annuncio riguarda una nuova release del software allora aggiornate la voce del vostro progetto su vedere http www xml com pub a 2002 12 18 dive into xml html per maggiori informazioni sugli RSS 4 Se l annuncio riguarda una nuova release del software allora aggiornate la voce del vostro progetto su http freshmeat net vedere su come creare la voce in primo luogo Ogni volta che aggiornate una voce di Freshmet quella voce va sulla change list per il giorno La change list non aggiornata solo sullo stesso Freshmet ma sui vari portali incluso http slashdot org che sono osservati ansiosamente da orde di gente Freshmet offre gli stessi dati via feed RSS cos la gente che non iscritta al suo feed RS
156. anorama del software libero Essa formalizz la dicotomia che era stata non nominata a lungo e nel fare ci forz il movimento a prendere atto del fatto che essa aveva un politica sia interna che esterna L effetto oggi che ambedue le parti hanno dovuto cercare un comune terreno dato che molti progetti includono programmatori di ambedue i campi e anche partecipanti che non si inseriscono in nessuna categoria Ci non significa che la gente non parla mai di motivazioni morali gli errori nell etica tradizionale di coloro che volevano abbattere certi limiti furono nominati ad alta voce per esempio Ma era raro per uno sviluppatore di software libero opensource farsi domande sulle motivazione degli altri in un progetto Il contributo vince su chi contribuisce Se uno scrive del buon codice tu non gli chiedi se lo fa per ragioni morali o perch il suo datore di lavoro lo paga o perch si sta costruendo un curriculum vitae o per qualcos altro Tu valuti il software su basi tecniche e su basi tecniche dai il responso Anche organizzazioni esplicitamente politiche come il progetto Debian il cui obiettivo era quello di offrire un ambiente di calcolo libero al 100 cio libero nel senso di in libert era abbastanza permissivo nell integrarsi con codice non libero e nel cooperare con programmatori che non condividevano esattamente gli stessi obiettivi La Situazione Oggi Quando fate girare un progetto di software libero avete bisogno di non par
157. arata budgets dettagliati per la costruzione e per l operativit un programma di studi proposto e i nomi delle specifiche facolt che voleva importare dell Europa Nessun altro nella sala era cos preparato anche lontanamente e finalmente l Universit fu fondata pi o meno in accordo con i suoi piani Il fatto che la costruzione and di molto oltre il budget e molte delle sue idee invece no per molte ragioni si risolse alla fine in cui Jefferson conosceva perfettamente le cose che sarebbero accadute Il suo proposito fu strategico mettersi in mostra nel meeting con qualcosa di cos concreto che chiunque altro avrebbe fallito nella parte di proporre semplicemente modifiche ad esso cosicch il disegno complessivo e quindi il programma sarebbe stato in modo grezzo quello che voleva Nel caso di un progetto di software libero non c un singolo meeting ma invece una serie di piccole proposte fatte per la maggior parte per mezzo del tracciatore di problemi Ma se avete un certa credibilit nel progetto per incominciare e partite con l assegnare varie funzionalit accrescimenti e bugs alla release obiettivo nel tracciatore di problemi in accordo con quelche piano complessivo annunciato la gente per la maggior parte andr insieme a voi Una volta che avete ottenuto che le cose siano sistemate pi o meno come volete la conversazione sulle date delle releases andr avanti in modo pi regolare E cruciale certo non presen
158. are una diramazione La risposta dipende da che tipo di diramazione Alcune diramazioni si hanno per un amichevole e inconciliabile disaccordo sulla direzione del progetto forse la maggior parte sono dovute a disaccordi tecnici e a conflitti interpersonali Certo non sempre possibile dire le differenza fra le due cose in quanto elementi tecnici possono coinvolgere elementi personali La cosa che tutte le diramazioni hanno in comune che un gruppo di sviluppatori o talvolta anche uno solo degli sviluppatori ha deciso che i costi del lavorare con qualcuno o tutti gli altri ora non prevalgono sui benefici Una volta che il progetto si biforca non c una risposta definitiva alla domanda su quale diramazione il vero o originale progetto La gente parler in modo colloquiale della diramazione F che viene dal progetto P come se P sta continuando per la sua normale traiettoria senza una marcia inferiore mentre F diverge in nuovo territorio ma questa in effetti una dichiarazione di come quel particolare osservatore avverte la cosa E fondamentalmente una questione di percezione quando una larga percentuale di osservatori d accordo l affermazione incomincia a diventare vera Non il caso che ci sia una verit oggettiva sin dall inizio una che noi siamo solo imperfettamente capaci di percepire all inizio Piuttosto le percezioni sono la verit oggettiva poich in ultima analisi una diramazione o un progetto s
159. are per la crescita e la manutenzione di un progetto di successo Successo non un gioco senza perdite e questo libro non parla di come vincere o farsi strada nella competizione Indubbiamente una importante parte dei progetti open source che girano sta funzionando regolarmente con altri progetti simili Nel lungo periodo ogni progetto che ha successo contribuisce allo stato di benessere dell insieme complessivo del software libero nel web Si sarebbe tentati di dire che i progetti di software libero falliscono per lo stesso tipo di motivi del software proprietario Certamente il software libero non non il solo a trovarsi di fronte a presupposti non realistici specifiche vage non buona amministrazione di risorse non adeguata fase di progetto o alcuni degli altri spauracchi ben noti all industria del software C una enorme quantit di cose scritte su questi argomenti e non tenter di ripeterle in questo libro Invece tenter di descrivere i problemi peculiari del software libero Quando i progetti di software libero vanno in secca ci avviene perch gli sviluppatori o gli organizzatori non si sono resi conto dei problemi peculiari dello sviluppo open source anche se essi possono essere ben consci delle meglio note difficolt dello sviluppo closed source Uno dei pi comuni errori l aspettativa circa i benefici dell open source stesso Una licenza open source non garantisce il fatto che orde di sviluppatori mettano subito a disposizion
160. aria per un costo aggiuntivo se i termini della GNU GPL stabiliscono che il codice deve essere disponibile sotto termini meno restrittivi La risposta che i termini della GPL sono qualcosa che il detentore del copyright impone a ogni altro il proprietario quindi libero di decidere di non applicare quei termini a se stesso Un buon modo di pensare a ci immaginare che che il possessore proprietario abbia un numero infinito di copie ammucchiate in un secchio Ogni volta che lui prende una copia dal secchio per inviarle nel mondo pu decider quale licenza mietervi dentro GPL proprietaria o qualche altra Il suo diritto di fare ci non intaccato dalla GPL o da qualche altra licenza open source semplicemente un potere garantito dalla legge sul copyright L attrattiva della licenza doppia sta nel fatto che al meglio delle sue possibilit fornisce a un progetto di software libero un modo per ottenere una fonte di profitto sicuro Sfortunatamente ci pu anche interferire con le dinamiche normali di un progetto open source Il problema che ogni volontario che d un contributo sta collaborando con due distinte entit la versione libera del codice e quella proprietaria Mentre il collaboratore sar soddisfatto di collaborare alla versione free dacch quella la norma nei progetti open source egli pu sentirsi buffo nel collaborare al flusso di entrata semi proprietario dei qualche altro L imbarazzo esacerbato dal fatto che
161. arte perch difficile trovare lavoro volontario per un lavoro non affascinante come il testing in parte perch la gente tende a dare per scontato che l avere una vasta comunit di utilizzatori d al progetto una buona copertura di testing e nel caso del testing delle prestazioni e della scalabilit in parte perch i volontari spesso non hanno l accesso alle risorse hardware in qualche modo La convinzione che avere molti utilizzatori equivalente ad avere molti che testano non completamente senza fondamento Certamente non ha senso assegnare persone che testano funzionalit base in una ambiente comune i bugs saranno rapidamente trovati dagli utilizzatori nel naturale corso delle cose Ma poich gli utilizzatori stanno giusto cercando di di finire il lavoro inconsciamente non partono con l intenzione di esplorare casi sconosciuti di funzionamento ai limiti nelle funzionalit dei programmi e sono propensi a lasciare certi tipi di bugs non trovati Inoltre quando scoprono un bug con un facile stratagemma spesso implementano in silenzio lo stratagemma senza darsi noia di riportare il bug Ancora pi insidiosamente il modo d uso dei vostri clienti le persone che guidano il vostro interesse nel software pu differire in in modo statisticamente significativo dal modo d uso dell Utilizzatore Medio Della Strada Un gruppo professionale do testing pu scoprire questo tipo di bugs e pu farlo facilmente sia con il software libero
162. articolare in modo che possa inviare per email l URL di una risposta delle FAQ a un amico per esempio Per aiutarlo a fare questo aggiungete un attributo title allo stesso elemento i a cui aggiungeste il nome e o l attributo id per esempio lt a name miast enet ta eiele miaeti asia sa Quando il puntatore del mouse viene mantenuto sopra il testo all interno dell elemento con l attributo id la maggior parte dei browsers esporranno un piccolo box di popup che mostra il titolo Io di solito includo il segno hash a ricordare all utilizzatore che ci quello che metterebbe alla fine dell URL per saltare dritto a q uesta locazione la prossima volta Formattare cos le FAQ solo un esempio di come rendere presentabile una risorsa La stesse qualit la ricerca diretta la disponibilit nei principali motori di ricerca di Internet la facilit di consultazione 104 Comunicazione la stabilit referenziale a e dove applicabile l editabilit si applicano si applicano ad altre pagine web all albero del codice sorgente al tracciatore di bug ecc Appunto avviene che la maggior parte delle mailing list che archiviavano il software molto tempo fa si resero conto dell importanza di queste qualit che il motivo per cui le mailing list tendono ad avere queste funzionalit alla nascita mentre altri formati possono richiedere qualche sforzo extra da parte di quelli che hanno la manutenzione Capitolo 8 Gestire i Volonta
163. as prominen ther contributing authors th Eton for E nless a request has been ntact all copyright notices medium or means You or and or if the Original ty or parties e g tribution terms of such party or iii to the or at that Licensor RI does ng information for in the case the Work in Wor tion k by 4 c however m such uthors of these redits for You he purpose exercising may that nimu ng a of he c You may not implicitly or sponsorship or 196 Copyright endorsement by the Original Author Licensor and or Attribution Parties as appropriate of You or Your use of the Work without the separate express prior written permission of the Original Author Licensor and or Attribution Parties d Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law if You Reproduce Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections You must not distort muti
164. aspetter che possa imparare La gestione delle informazioni non ha una soluzione dal taglio secco Ci sono molte variabili Potete aver configurato definitivamente ogni cosa giusto nel modo che voi volevate ed avere la maggior parte della comunit che partecipa ma la crescita del progetto render alcune di quelle pratiche non accessibili O la crescita del progetto si pu stabilizzare e le comunit degli sviluppatori e degli utilizzatori si possono comporre in una comoda relazione con l infrastruttura ma allora qualcuno si muover e inventer un servizio di gestione delle informazioni completamente nuovo e ben presto i nuovo arrivati si chiederanno perch voi non lo usiate per esempio ci sta avvenendo per un sacco di progetti di software libero che anticipano l invenzione del wiki vedere http en wikipedia org wiki Wiki Molte questioni sono materia di giudizio riguardando un compromesso tra la convenienza di quelli che producono informazione e la convenienza di quelli che la utilizzano o fra il tempo richiesto per configurare il software per la gestione l informazione e i vantaggi che porta al progetto Guardarsi dalla tentazione di una super automazione cio automatizzare cose che richiedono attenzione umana L infrastruttura tecnica importante ma ci che fa si che il progetto di software libero funzioni la cura e l intelligente manifestazione di quella cura immessavi dagli uomini L infrastruttura tecnica consiste nel
165. atari una URL di archiviazione del messaggio o almeno una porzione della URL specifica per il messaggio In questo modo la gente che ha una copia del messaggio possa essere in grado di sapere la sua collocazione nell archivio senza dovere veramente visitare l archivio il che sarebbe d aiuto dato che ogni operazione che coinvolge il proprio web browser automaticamente occupa del tempo Non so se ogni software di gestione include tale funzionalit sfortunatamente quelli che ho usato no Comunque qualcosa da cercare 0 se scrivete software per mailing list una funzionalit la cui implementazione per favore da considerare Backup Dovrebbe essere ragionevolmente ovvio come fare il backup degli archivi e il modo di ristabilirli non dovrebbe essere troppo difficile In altre parole non trattate il vostro archiviatore come una scatola nera black box Voi o qualcuno nel vostro progetto deve sapere dove i messaggi sono memorizzati e come rigenerare l archivio corrente dal backup se dovesse essere necessario Questi archivi sono dati preziosi un progetto che li perde perde una buona parte della sua memoria collettiva Supporto ai thread Dovrebbe essere possibile andare da ogni singolo messaggio al thread gruppo di messaggi correlati di cui il messaggio originale fa parte Ogni thread dovrebbe avere anche la propria URL diversa dalle URL dei messaggi singoli che lo compongono Ricercabilit Un archiviatore che non supporta la
166. atori un facile modo per venire coinvolti nei progetti CVS tiene le versioni solo dei file non delle directory offre la possibilit di fare branch mettere tag e una buona prestazione sul lato client ma non gestisce molto bene file grandi o binari Non supporto commit atomici Disclaimer sono stato attivo nello sviluppo di CVS per circa cinque anni prima di aiutare ad iniziare il progetto Subversion per rimpiazzarlo Subversion http subversion tigris org Subversion fu scritto inizialmente e principalmente per essere un rimpiazzo per CVS cio per affrontare il controllo di versione circa allo stesso modo in cui CVS lo fa ma senza i problemi e la mancanza di feature che la maggior parte delle volte annoiavano gli utenti di CVS Uno degli obbiettivi di CVS far percepire indolore la transizione a Subversion alla gente gi abituata a CVS Non c spazio qui per andare nel dettaglio delle funzionalit di Subversion vedi il suo sito per maggiori informazioni Disclaimer sono coinvolto nello sviluppo di Subversion ed l unico di questi sistemi che uso regolarmente SVK http svk elixus org Anche se costruito basandosi su Subversion SVK probabilmente assomiglia a qualcuno dei sistemi decentralizzati sotto pi di quanto lo faccia Subversion SVK supporta lo sviluppo distribuito commit locali una sofisticata fusione dei cambiamenti e l abilit di rispecchiare alberi da altri sisetmi di controllo di versione non SV
167. atura Un software libero pu certamente essere avviato ed il suo sviluppo pu subire l influenza di collaboratori interessati anche in maniera forte Ma le sue fondamenta non possono essere propriet di un singolo e finch ci sono persone in giro ovunque interessate nel suo sviluppo non esiste modo unilaterale per cessarne la diffusione Ognuno coinvolto ha un potere infinito ed allo stesso tempo non ha nessun potere specifico Dando vita ad una dinamica interessante Ecco il motivo per cui ho deciso di scrivere questo libro I progetti che sviluppano software libero hanno fatto nascere una cultura differente un etica nella quale la libert di creare programmi che facciano qualsiasi cosa si abbia in mente al centro di tutto e dove il risultato di questa libert non sono individui sparpagliati che decidono separatamente come far evolvere il codice ma una collaborazione piena di entusiasmo Proprio il saper collaborare diventa quindi una delle competenze di maggior valore nel software libero Gestire questi progetti vuol dire entrare a far parte di una specie di cooperazione ipertrofica in cui l abilit del singolo di scoprire nuove metodologie per lavorare insieme al fine di fornire tangibili benefici al software stesso Questo libro vuol provare a descrivere le tecniche attraverso le quali tale processo pu essere portato avanti Non ha la pretesa di trattare l argomento in maniera esaustiva ma pur sempre un inizio
168. autenticazione Ci a cui arrivammo era molto semplice gli Stati Uniti avevano esportato controlli su un codice crittografico all epoca cos cch il cliente cap che noi non potevamo implementare una efficace autenticazione ma mentre non avevamo esperienza di progettazione di simili protocolli tuttavia facemmo poche gaffes che sarebbero state ovvie per un esperto Se ci fossimo preso il tempo per metter gi una proposta e mostrarla agli altri sviluppatori per la revisione avremmo intercettato questi errori in anticipo Ma noi non facemmo mai cos perch non ci serviva pensare alla mailing list di sviluppo come una risorsa da usare Noi sapevamo che la gente avrebbe probabilmente accettato qualunque cosa avessimo inviato e poich e e poich noi non cooscevamo ci che non sapevamo non ci infastidimmo a fare il lavoro in un modo visibile per esempio postando patches frequentemente facendo piccoli digeribili invii a una sezione speciale ecc Il risultante protocollo di autenticazione non fu molto buono certamente una volta che divent stabile era difficile da migliorare a causa di questioni di compatibilit La radice del problema non era una mancanza di esperienza noi avremmo potuto facilmente aver imparato ci che era necessario Il problema era il nostro atteggiamento nei confronti della comunit di sviluppo dei volontari Noi guardavamo all accettazione dei cambiamenti come a una barriera da saltare piuttosto che a un
169. avremmo detto che CollabNet aveva il diritto di ignorare le linee guida del progetto semplicemente perch era il finanziatore principale Mentre il danno di ci non era necessariamente immediatamente evidente avrebbe avuto il risultato che i non salariati si sarebbero sentiti privati del diritto di voto Altre persone hanno da guadagnarsi il loro accesso all invio CollabNet giusto lo compra Cos Mike accett di di iniziare il suo impiego a CollabNet come qualsiasi altro volontario senza l accesso all invio Egli mandava correzioni alla mailing list dove esse potevano essere revisionate e lo erano da chiunque Noi anche dicemmo che stavamo facendo cos deliberatamente nella mailing list in modo che non si sarebbe potuta perdere la puntualizzazione Dopo un paio di giorni di concreta attivit di Mike qualcuno non ricordo se era un collaboratore di CollabNet o no lo propose per l accesso all invio e lui fu accettato come sapevamo che sarebbe stato Questo tipo di coerenza vi d una credibilit che il denaro non pu mai comprare E la credibilit una moneta da avere nelle discussioni tecniche una immunizzazione contro il fatto di avere i propri motivi messi in discussione in un secondo momento A caldo sembrer che la gente vinca la battaglia con argomenti non tecnici Il finanziatore principale del progetto a causa del suo profondo coinvolgimento e dell ovvio interesse alle direzioni che i progetto prende presenta un obiet
170. babilmente avrebbe fin dall inizio usato un criterio adeguato Ma accett di smettere di scrivere e la mailing list torn ad essere utilizzabile Parte del motivo per cui questa strategia ha funzionato magari stata l implicita minaccia che avremmo potuto iniziare a limitare i suoi messaggi usando il software di moderazione solitamente usato per prevenire lo spam vedi sezione chiamata Prevenire lo spam in Capitolo 3 L Infrastruttura Tecnica Ma la ragione per cui eravamo in grado di avere questa opzione di riserva stata il fatto che Fitz ha in primo luogo trovato il necessario supporto nelle persone importanti Gestire la Crescita Il prezzo della crescita pesante nel mondo dell open source Come il vostro software diventa pi popolare il numero di persone che compaiono alla ricerca di informazioni cresce in modo sensazionale mentre il numero delle persone in grado di dare le informazioni cresce molto meno lentamente Inoltre anche se il rapporto fosse uniformemente bilanciato ci sarebbe tuttavia un problema fondamentale di scalabilit col modo in cui la maggior parte dei progetti open source gestiscono le comunicazioni Considerate le mailing list per esempio La maggior parte dei progetti hanno una mailing list per le domande degli utilizzatori generici a volte il nome delle mailing list utilizzatori discutere aiuto o qualcos altro Qualunque sia il nome il proposito della mailing list sempre lo s
171. bblico Tale trasferimento non facile spesso le due non sono una copia identica e le differenze possono solo essere superate con l intervento umano Per esempio la compagnia pu usare un tracciatore di bugs differente da quello del progetto pubblico Anche se esse usano un software di tracciamento identico i dati immagazzinati in essi saranno molto differenti perch un tracciamento di bugs richiesto da una compagnia molto differente da quello di un comunit pubblica di software Un pezzo di informazione che si mette a fare il tracciatore pu aver bisogno di essere riflesso nell altro con porzioni riservate rimosse o in altra direzione aggiunte Le sezioni che seguono riguardano la costituzione e il mantenimento dei ponti per superare le differenze Il risultato finale dovrebbe essere quello che il progetto open source funziona meglio la comunit riconosce l investimento di risorse della compagnia e anche non si avverte che la compagnia sta dirigendo in modo improprio le cose verso i sui obiettivi 80 I Soldi La Garanzia Della Qualit cio Eseguire Prove Professionali Nello sviluppo di software proprietario normale avere gente unicamente destinata alla garanzia della qualit ricerca dei bug tests di prestazioni e scalabilit controllo dell interfaccia e della documentazione Come regola queste attivit non sono inseguite tanto vigorosamente dalla comunit di volontari nel progetto di software libero In p
172. bile sarebbe l ammissione non solo di aver sbagliato ma di essere stati certi e comunque aver sbagliato Il modo in cui potete rendere questa ammissione accettabile per l altro schieramento di esprimere voi stessi qualche dubbio precisamente mostrando che capite gli argomenti che stanno facendo e trovarli almeno interessanti se non alla fine convincenti Fate un gesto che dia spazio per un gesto reciproco e solitamente la situazione migliorer Non sar pi facile n difficile raggiungere il risultato tecnico che volevate ma almeno potete evitare inutili danni morali al morale del progetto Quando una guerra santa non pu essere evitata decidete presto quanto ci tenete e poi vogliate pubblicamente lasciarla perdere Quando fate cos potete dire che vi tirate indietro perch non ne vale la pena ma non esprimete amarezza e non usate l occasione per un ultimo colpo agli argomenti dello schieramento opposto Lasciare perdere efficace solo quando fatto con grazia Le guerre sante sui linguaggi di programmazione sono un po un caso speciale perch spesso sono altamente tecnici e comunque molte persone si sentono qualificate a prenderne parte e la posta molto alta dato che il risultato pu determinare in quale linguaggio una buona parte del codice del progetto sar scritta La soluzione migliore scegliere presto il linguaggio con l appoggio degli influenti sviluppatori iniziali e poi difenderlo per il fatto che quello per
173. bile della licenza Che potrebbe essere semplicemente da qualche parte del sito del progetto In generale la nota che mettete in ogni file sorgente non deve apparire esattamente come quella di sopra a condizione che inizi con la nota 23 Partenza del detentore del copyright e della data stabilisca il nome della licenza e chiarisca dove poter vedere l intera licenza Dare il Tono Fin qui abbiamo esaminato il compiti che non ripetuti che voi assolvete durante l organizzazione di un progetto scegliere una licenza mettere e posto il sito iniziale ecc Ma gli aspetti pi importanti dell avvio di un nuovo progetto sono dinamici Scegliere l indirizzo della mailing list facile assicurarsi che le conversazioni nelle lista rimangano in argomento e siano produttive completamente un altra cosa Se il progetto sta per essere aperto dopo anni di chiusura di sviluppo in casa il suo processo di sviluppo cambier e voi dovrete preparare gli sviluppatori per questo cambiamento I primi passi sono i pi difficili perch i diritti comuni e le aspettative per una condotta futura non sono stati ancora stabiliti La stabilit per un progetto non viene da linee di condotta formali ma da una saggezza condivisa difficile da definire che si sviluppa nel corso del tempo Ci sono spesso regole scritte ma esse tendono ad essere essenzialmente un distillato degli intangibile sempre evolventisi accordi che veramente guidano il progetto Le linee d
174. bili da CVS Comunque con i pi recenti sistemi di controllo della versione i dati che si usavano tenere nel Changelog possono essere richiesti al deposito del controllo della versione in ogni momento rendendo inutile per il progetto tenere un file statico contenente quei dati nei fatti peggiore che l inutilit poich il Changelog duplicherebbe i messaggi di log gi immagazzinati nel deposito Usualmente ci sono poche differenze per esempio perch il pacchetto contiene alcuni file generati necessari per la compilazione e la configurazione vedere sezione chiamata Compilazione e Installazione pi avanti in questo capitolo o perch contiene un software di terze parti di cui il progetto non fa manutenzione ma ci richiesto e ci probabile che gli utilizzatori non abbiano Ma anche se l albero distribuito corrispondesse esattamente ad alcuni alberi di sviluppo nel deposito del controllo di versione la distribuzione stessa non sarebbe un copia funzionante vedere copia di lavoro Si suppone che la release un punto di riferimento statico una particolare immutabile configurazione dei files sorgenti Se essa fosse una copia funzionante il danno sarebbe che gli utilizzatori potrebbero aggiornarla e successivamente pensare di avere ancora la release quando nei fatti egli ha qualcosa di differente 128 Confezione Rilascio e Sviluppo Quotidiano Ricordate che il pacchetto lo stesso indipendentemente dalla confezione
175. blema da s e pi tempo a metterlo nelle mani della persona giusta Il Manager delle FAQ La manutenzione delle FAQ sorprendentemente un problema difficile Diversamente dalla maggior parte dei documenti in un progetto il cui contenuto pianificato in anticipo dagli autori una FAQ un documento del tutto reattivo vedere Manutenzione di una sezione FAQ Non importa quanto grosso diventi voi tuttavia non sapete quale sar la nuova aggiunta E poich esso e costruito pezzo per pezzo molto facile che il documento nella sua interezza diventi incoerente e disorganizzato e contenente anche voci duplicate o semi duplicate Anche quando non ha nessun ovvio problema come questi ci sono spesso interdipendenze non notate fra le voci link che dovrebbero essere creati e non lo sono perch la relativa voce fu inserita un anno lontano Il ruolo del manager delle FAQ duplice Primo egli mantiene la qualit complessiva delle FAQ in quanto rimanere familiare con almeno gli argomenti di tutte le domande in esse in modo che quando la gente aggiunge nuove voci che sono un duplicato o sono correlate alle voci esistenti possa essere fatto l appropriato adattamento Secondo egli osserva la mailing list del progetto e gli altri forum per altri problemi o domande e per scrivere nuove voci delle FAQ basate su queste informazioni Questo secondo compito pu essere piuttosto complesso uno deve essere capace di seguire un argomento riconoscere le doma
176. bugs e di piccole correzioni Ma non ci sar un largo contributo o una partecipazione esterna alle discussioni sul progetto La gente sente ci che ci si aspetta da loro e sta al di sopra o al di sotto di queste aspettative Anche se i soldi bisogna usarli con cura ci non significa che non possano acquistare influenza Nella maggior parte dei casi certamente lo possono Il trucco che non possono acquistarla direttamente In una diretta transazione commerciale voi cambiate moneta per ci che volete Se avete il bisogno che una funzionalit venga aggiunta sottoscrivete una contratto pagate per esso e ci viene fatto In un 71 I Soldi progetto open source non cos facile Voi potete sottoscrivere un contratto con alcuni sviluppatori ma essi avranno ingannato se stessi e voi se essi hanno garantito che il lavoro per cui avete pagato sarebbe accettato dalla comunit di sviluppo perch avete pagato per esso Il lavoro pu essere accettato solo per i suoi meriti e per come si inserisce nella visione della comunit in relazione al software Potete avere qualche voce in quella visione ma non sarete l unica voce Cos i soldi non pu comprare l influenza ma possono comprare cose che portano all influenza L esempio pi ovvio sono i programmatori Se i programmatori sono noleggiati e restano intorno al progetto abbastanza per acquisire esperienza e credibilit nella comunit allora possono influenzare il progetto
177. cade perch una centrale atomica cos vasta cos costosa e cos complicata che la gente non pu percepirla e piuttosto che provarci ricadono nell assunzione che qualcun altro abbia controllato tutti i dettagli prima di andare cos avanti Richard P Feynmann da alcuni esempi interessanti e molto pertinenti riguardanti Los Alamos nei suoi libri Dall altro lato una rastrelliera per bici Chiunque pu costruirne una in un fine settimana e ancora avere il tempo di guardare la partita in TV Quindi non importa quanto ben preparato quanto ragionevole con la vostra proposta qualcuno coglier la possibilit di mostrare che sta facendo il suo lavoro che sta prestando attenzione che qui In Danimarca lo chiamiamo lasciare l impronta Riguarda l orgoglio personale e il prestigio si tratta di essere in grado di indicare da qualche parte e dire Qui io l ho fatto E un importante tratto nei politici ma presente in molta gente se viene data l occasione Pensate ai passi nel cemento fresco Vale anche la pena leggere il suo messaggio completo Vedete Appendice C Perch dovrebbe importarmi di che colore sia la rastrelliera o anche http bikeshed com Chiunque abbia mai preso regolarmente parte in qualche gruppo di decision riconoscer di cosa Kamp sta parlando Comunque solitamente impossibile persuadere tutti di evitare di disegnare rastrelliere La cosa migliore che possiate fare precisare che il fenomeno esiste quand
178. cambiamenti abitualmente inclusa nelle email di annuncio vedere sezione chiamata Prove e Rilascio pi avanti in questo capitolo in modo che la scriviate con il pubblico nella mente CHANGES A Confronto Con il Changelog Tradizionalmente un file chiamato Changelog elenca ogni cambiamento apportato a un progetto cio ogni revisione inviata al sistema di controllo di versione Ci sono vari formati per il file Cahngelog i dettagli dei formati non sono importanti qui in quanto essi contengono tutti la stessa informazione la data del cambiamento il suo autore e un breve sommario o giusto un messaggio di log per quel cambiamento Un file CHANGES differente Anch esso una lista dei cambiamenti ma solo quelli ritenuti importanti da vedere da parte di un certo pubblico e con metadati come la data esatta e l autore spogli Per evitare confusioni non usate termini in modo scambievole Alcuni progetti usano NEWS invece di CHANGES sebbene ci evita la possibilit di di una confusione con Changelog un po un termine improprio poich un file CHANGES conserva un sacco di informazioni sui cambiamenti per tutte le releases e quindi un sacco di vecchie notizie in aggiunta alle nuove notizie in cima I files Changelog possono lentamente scomparire comunque Essi erano utili nei giorni in cui in cui il CVS era l unica scelta per un sistema di controllo di versione perch i dati sui cambiamenti non erano facilmente estrai
179. caso i meccanismi con cui son realizzati non sono terribilmente importanti 156 Gestire i Volontari uno che fa gi gli invii di solito propone quella persona per l accesso all invio Se almeno tre persone dicono si e nessuno obietta allora viene fatta la proposta Giusto voi non potreste avere l evidenza che capace di risolvere problemi complessi in tutte le aree del codice base ma questo non ha importanza la persona ha reso chiaro che almeno capace di giudicare le sue abilit Le capacit tecniche possono essere imparate e insegnate ma il giudizio per la maggior parte no Quindi la sola cosa che volete assicurarvi la persona abbia prima di dargli l accesso all invio Quando la proposta di un nuovo accesso all invio provoca discussioni non riguardo alle capacit tecniche ma riguardo al comportamento della persona nella mailing list o in IRC A volte qualcuno mostra abilit tecniche e capacit di lavorare all interno delle linee guida formali del progetto eppure sostanzialmente bellicoso e non collaborativo nei forum pubblici Questa una faccenda seria se la persona non sembra darsi da fare col tempo anche in risposata ai consigli allora noi non lo aggiungeremo come persona che fa gli invii non importa quanto capace sia In un gruppo di volontari capacit di socializzazione o l abilit di giocare bene in un ambiente di prova sono importanti quanto le pure abilit tecniche Siccome ogni cosa
180. cata avete due imperativi Uno ovviamente capire di cosa avete bisogno di seguire e cosa potete ignorare L altro di comportarvi in modo da evitare di causare rumore non solo volete che i vostri messaggi abbiano un alto tasso segnale rumore volete anche che siano quel tipo di messaggio che stimola altra gente a scrivere con un simile tasso segnale rumore o non scrivere per niente Per vedere come fare ci considerate il contesto in cui avviene Quali sono alcuni dei segnali di un thread improduttivo e Argomenti che hanno gi iniziato ad essere ripetuti dato che chi ha scritto pensa che nessuno li abbia sentiti la prima volta e Aumento dei livelli di iperbole e coinvolgimento dato che i limiti si fanno sempre pi stretti e Una preponderanza di commenti di persone che fanno poco o niente mentre le persone che tendono a fare le cose sono in silenzio e Molte idee discusse senza che una chiara proposta sia stata fatta Certo ogni idea interessante nasce da una visione imprecisa la domanda importante in quale direzione si va da l Il thread sembra voler cambiare la visione in qualcosa di pi concreto o stanno nascendo sotto visioni visioni laterali e dispute ontologiche Solo perch un thread non produttivo non basta per stabilire che sia una perdita di tempo Potrebbe trattare un argomento importante nel qual caso il fatto che non si stia risolvendo rende tutto pi problematico Guidare un thread verso l util
181. cenza fare il punto sullo stato dello sviluppo questi sono compiti relativamente piccoli che possono essere completati definitivamente e in genere non c bisogno di ritornarci su La documentazione invece non mai realmente finita il che pu essere un motivo per cui la gente a volte tarda proprio a iniziarla La cosa pi insidiosa che l utilit della documentazione per quelli che la scrivono inversamente proporzionale a quella di coloro che la leggeranno La pi importante documentazione per gli utilizzatori iniziali sono le basi come installare velocemente il software una panoramica su come funziona magari qualche guida per eseguire alcune operazioni Queste sono esattamente le cose che coloro che scrivono la documentazione conoscono troppo bene cos bene che pu essere difficile per loro vedere le cose dal punto di vista del lettore e parlare con impegno dei passi che a coloro che la scrivono sembrano ovvi e non meritevoli di menzione Non esiste una soluzione magica a questo problema Qualcuno giusto ha bisogno di sedersi e scrivere la materia e poi farla funzionare da parte degli utilizzatori tipici per verificare la sua qualit Usate un formato facile per le modifiche come l html il testo semplice il Textinfo o qualche variante dell XML qualcosa che sia adatto per facilit veloci miglioramenti a botta calda Questo solo per rimuovere una qualsiasi cosa all inizio che potrebbe impedire a coloro che originariamente
182. cere qualcuno che conosce qualcuno Ci non folle come potrebbe suonare Affinch il Consiglio Editoriale del CVE eviti di essere travolto con candidature spurie o scritte in modo deficitario prende candidature solo da fonti gi note o fidate Per ottenere che la vostra vulnerabilit sia elencata quindi avete bisogno di un percorso di conoscenze dal vostro progetto al Consiglio Editoriale del CVE Chiedete fra i vostri sviluppatori uno di essi o probabilmente conosce qualcun altro che ha percorso il procedimento CAN prima o qualcuno che lo ha ecc Il vantaggio di fare ci in questo modo anche quello che in qualche punto lungo la catena qualcuno pu sapere abbastanza da dire a che essa non conterebbe come vulnerabilit o come esposizione in accordo con i criteri del MITRE per cui non il caso di inviarla o b la vulnerabilit ha gi un numero CAN o CVE La seconda cosa pu presentarsi se il bug stato appena pubblicato su un altra mailing list consultiva di sicurezza per esempio su http www cert org o sulla mailing list BugTraq a http www securityfocus com Se ci avvenuto senza che il vostro progetto ne abbia sentito parlare allora vi dovreste preoccupare di cos altro potrebbe andare avanti di cui voi non avete conoscenza Se ottenete un numero CAN CVE voi volete ottenerlo nei primi stadi dell investigazione sul bug in modo che tutte le ulteriori comunicazioni possano far riferimento a quel numero Le voci CAN
183. cetera Sottoscrizione sia in modalit aggregata che in modalit messaggio per messaggio Nella modalit aggregata il sottoscrittore riceve una mail al giorno contenente tutta l attivit di quel giorno Per le persone che stanno seguendo la mailing list senza parteciparvi attivamente la modalit aggregata spesso preferibile perch permette loro di vedere tutti gli argomenti in una volta sola e di evitare la distrazione causata da email in arrivo ad ogni momento Funzionalit di moderazione Moderare l attivit di controllare i messaggi per assicurarsi che siano a non spam e b sull argomento prima che vengano mandati a tutta la mailing list L attivit di moderazione necessariamente impiega gli esseri umani ma il software pu fare molto per semplificarla Pi avanti verr detto altro riguardo alla moderazione Interfaccia di amministrazione Tra le altre cose permette ad un amministratore di entrare e rimuovere facilmente indirizzi obsoleti Questo pu diventare urgente quando un indirizzo destinatario inizia a mandare indietro risposte automatiche Non sono pi a questo indirizzo alla mailing list in risposta ad ogni messaggio 33 L Infrastruttura Tecnica Alcuni software per mailing list possono perfino capirlo da soli e rimuovere la persona in maniera automatica Manipolazione degli header Molta gente definisce nei propri programmi di posta sofisticate regole di filtro e risposta I software di gestione
184. che nelle licenze doppie il detentore del copyright ha veramente bisogno di raccogliere copyright formali sottoscritti da tutti 1 collaboratori per potersi proteggere da un collaboratore scontento che in un secondo momento reclami una percentuale dei diritti d autore dalle entrate proprietarie Il processo di raccolte di queste assegnazioni con un pezzo si carta significa che i collaboratori si confrontano duramente col fatto che essi stanno facendo un lavoro che crea soldi per qualcun altro Non tutti i volontari saranno seccati da ci dopotutto il loro contributo va all edizione open source e in ci pu essere che stia il loro interesse Tuttavia la licenza doppia una richiesta da parte del detentore del copyright di assegnare a se stesso uno speciale diritto che gli altri non hanno Ed cos che spinge al sorgere di tensioni a un certo punto almeno fra alcuni volontari Ci che sembra avvenire nella pratica che le compagnie che si basano sul software a licenza doppia non hanno comunit di sviluppo veramente egualitario Esse conseguono una correzione dei bugs su piccola scala e patch di ripulita da fonti esterne ma finiscono col fare una gran parte di duro lavoro con le risorse interne Per esempio Zack Urlocker vice presidente del marketing alla MySQL mi disse che la compagnia finisce col prendere in affitto i pi attivi volontari comunque Cos anche se il prorotto di per se stesso open source sotto licenza GPL il suo sv
185. chiviare tutto ci che succede in un canale IRC non necessariamente atteso Le conversazioni IRC possono essere nominalmente pubbliche ma molte persone le considerano informali semi private Gli utenti possono essere incuranti della grammatica e a volte esprimere opinioni per esempio su altro software o altri programmatori che non vorrebbero salvati in un archivio online Certo ci saranno a volte estratti che dovrebbero essere preservati e va bene La maggior parte dei client IRC pu fare il log di una conversazione su file su richiesta dell utente o non potendo si pu sempre fare semplice copia e incolla della conversazione da IRC in un forum pi permanente molto spesso il bug tracker Ma tenere traccia indiscriminata di tutto pu mettere a disagio alcuni utenti Se archiviate tutto fate in modo di dirlo chiaramente nell argomento del canale e fornite la URL dell archivio Una wiki un sito web che permette ad ogni visitatore di cambiare o estendere il suo contenuto il termine wiki da una parola hawaiana che significa pronto o veloce anche usato per riferirsi al software che permette tali modifiche Le wiki sono state inventate nel 1995 ma la loro popolarit davvero iniziata a decollare dal 2000 o 2001 spinta in parte dal successo di Wikipedia http 57 L Infrastruttura Tecnica www wikipedia org una enciclopedia basata su wiki dal contenuto gratutito Pensate ad una wiki come qualcosa tra IRC e l
186. ciatore di bugs Li c erano esattamente aperti 6 problemi 4 dei quali erano stati aperti ormai per diversi mesi Questo incredibile certamente Quando i collaudatori controllano su un grande e complesso pezzo di software per un certo tempo troveranno bugs Anche se le correzioni di questi bugs non lo trasformano nella prossima release uno tuttavia si aspetterebbe qualche attivit di controllo della versione come risultato del processo di prova o almeno qualche nuovo problema Eppure a tutta apparenza niente era avvenuto tra l annuncio della licenza open source e le prima release open source Il punto non che la compagnia stava mentendo sull attivit di prova della comunit Non ho idea se lo stesse facendo o no Ma essi erano ignari di quanto sembrava verosimile che essi stavano mentendo Siccome n il controllo di versione n il deposito di controllo n il tracciatore di problemi davano indicazione che le asserite prove erano avvenute non avrebbero dovuto fare l affermazione in primo luogo o avrebbero dovuto fornire un link a qualche tangibile risultato di quelle prove Abbiamo trovato 287 bugs cliccare qui per i dettagli La seconda cosa avrebbe permesso a chiunque di capire il livello dell attivit della comunit molto velocemente Cos com era mi ci vollero pochi minuti per determinare che qualunque cosa fosse questa comunit di prova non aveva lasciato tracce in nessuno dei posti usuali Quello non fu un grande sforzo
187. cificate che d il riconoscimento agli autori o ai detentori del copyright Queste licenze sono tuttavia proprietario compatibili esse non richiedono che il lavoro derivato sia libero solamente che sia dato il riconoscimento al codice libero Protezione del marchio Una variante dell obbligo del riconoscimento Le licenze a protezione del marchio specificano che il nome del software originale il suo detentore di copyright o la loro istituzione ecc pu non essere usata dai lavori derivati senza previa autorizzazione scritta Sebbene l obbligo del riconoscimento insista sul fatto che siano usati certi nomi e la protezione del marchio sul fatto che non siano usati essi sono ambedue espressione dello stesso desiderio che la reputazione del codice originale sia tutelata e trasmessa senza essere offuscata dall associazione oom Protezione dell integrita artistica Certe licenze La Licenza Artistica usata nella maggior parte dell implementazione del linguaggio Perl e la licenza TeX di Donald Knut per esempio richiedono che la modifica e la redistribuzione siano fatte in modo da distinguere chiaramente fra la versione originaria del codice e qualunque modificazione Esse permettono essenzialmente alcune libert ma impongono certi requisiti che permettono facilmente di verificare l integrit del codice originale Queste licenze non si sono diffuse molto oltre gli specifici programmi per i quali erano state create e non saranno trattate in
188. cile Su qualche sistema il comando tar pu produrre un archivio compresso da s in altri usata un programma di compressione a parte Nome E Disposizione Il nome del pacchetto dovrebbe consistere nel nome del software pi il numero di release pi il suffisso di formato per il tipo di archivio Per esempio Scanley 2 5 0 impacchettato per Unix che usa la compressione GNU Zip gzip apparirebbe come questo scanley 2 5 0 tar gz o per Windows che usa la compressione zip scanley 2 5 0 zip Ciascuno di questi archivi quando estratto dovrebbe creare un unico albero di directory chiamato scanley 2 5 0 nella directory corrente Sotto la nuova directory il codice sorgente dovrebbe essere sistemato in una disposizione pronta per la compilazione se c bisogno di compilazione e per l installazione Nel livello pi alto dell albero delle directory ci dovrebbe essere un file di testo piano README che spieghi ci che il software fa e quale release e che d le indicazioni per altre risorse come il sito del progetto altri file di interesse ecc Fra questi altri files ci dovrebbe essere un file fratello INSTALL del file README che dia istruzione su come costruire e installare il software per tutti i sistemi operativi che supporta Come menzionato in sezione chiamata Come Applicare Una Licenza Al Vostro Software in Capitolo 2 Partenza ci dovrebbe essere anche un file COPYING or LICENSE che fornisca i termini di distribuzione
189. cit della correzione In un unico comprensivo annuncio dovreste descrivere il problema dare il numero CAN 114 Comunicazione CVE se esiste descrivere come risolvere il problema e come correggerlo permanentemente Di solito fix significa aggiornare alla nuova versione del software sebbene a volte significa applicare una patch particolarmente se il software fatto girare normalmente in una forma sorgente in qualche modo Se create una nuova release essa dovrebbe differire dalla release esistente esattamente per la patch sulla sicurezza In questo modo gli admin prudenti possono aggiornare senza preoccuparsi su quale altra cosa essa stia avendo effetto essi non dovrebbero nemmeno preoccuparsi dei futuri aggiornamenti perch la correzione della sicurezza ci sar in tutte le release future come cosa naturale Dettagli sulle procedure della release sono discussi in sezione chiamata Le Releases di Sicurezza in Capitolo 7 Confezione Rilascio e Sviluppo Quotidiano Se o meno la correzione pubblica comporta una nuova release fate l annuncio con circa la stessa priorit che in una nuova release mandate una email alle mailing list annuncia del progetto fate un nuovo comunicato stampa aggiornate la voce di Freshmet ecc Mentre non dovreste mai minimizzare l esistenza di un bug di sicurezza al di fuori della relazione con la reputazione del progetto potete impostare certamente il tono e la prominenza di un annuncio di
190. cogliemmo molti volontari e prendemmo il primo che ci rispose Quando quella persona dovette ritirarsi vedere sezione chiamata Gli avvicendamenti pi avanti in questo capitolo facemmo di nuovo la stessa cosa Non cercammo mai di avere pi persone ad detenere in comune il ruolo a causa delle informazioni addizionali che sarebbero state richiesta fra loro ma forse a un volume molto alto di invii di patch potrebbe aver senso un manager di patch a pi teste Il Manager delle Traduzioni Nei progetti di software traduzione pu riferirsi a due cose molto differenti Pu significare tradurre la documentazione del software in altre lingue o pu significare tradurre il software stesso cio ottenere le segnalazioni dei errore o dei messaggi di aiuto in altre lingue preferite dall utente Ambedue sono complesse operazioni ma una volta che la giusta infrastruttura allestita esse sono largamente separabili dall altro sviluppo Poich le operazioni sono simili in qualche modo ha senso a seconda del vostro progetto avere un solo manager delle traduzioni che le gestisca ambedue o pu essere meglio avere due differenti manager Nel progetto di Subversion noi avevamo un manager di traduzione che gestiva ambedue le cose Egli non deve scrivere le traduzioni egli stesso certo egli pu dare una mano a uno o due ma mentre questo scrive egli dovrebbe aver bisogno di parlare dieci lingue venti contando i dialetti per lavorare a tutte
191. come tecnica estremistica di una discussione Fate le cose come dico io o io biforcher il progetto poich chiunque al corrente che un diramazione ch non riesce ad attrarre sviluppatori dal progetto originale improbabile che viva a lungo Tutti gli osservatori non solo gli sviluppatori ma utilizzatori e impacchettatori del sistema operativo anche si faranno la loro idea su che parte scegliere Voi dunque dovreste apparire estremamente riluttanti a un diramazione cos se alla fine la fate possiate reclamare che era l ultima via rimasta Non trascurate di tenere in conto tutti i fattori nel valutare il potenziale successo della vostra diramazione Per esempio se molti degli sviluppatori in un progetto hanno lo stesso datore di lavoro allora anche se sono scontenti e privatamente favorevoli alla diramazione improbabile che lo dicano cos a voce alta se il loro datore di lavoro contro di essa Molti programmatori di software libero amano pensare che avere una licenza libera sul codice significa che nessuna compagnia pu dominare lo sviluppo E vero che la licenza in un senso definitivo un garante di libert se gli altri vogliono abbastanza fortemente biforcare il progetto ed hanno le risorse per farlo essi possono Ma in pratica alcuni team di progetti furono in gran parte finanziati da una entit e non c motivo di pretendere che non interessi quel supporto dell entit Se essa si oppone alla diramazione
192. commitato una fiz per il crollo del server che gli addetti ai bug hanno segnalato su Mac OS X Jay potresti per favore rivedere il commit e controllare che l non stia usando male l allocatore messaggio di log Un po di commento allegato ad ogni commit descrivendo la natura e lo scopo del commit I messaggi di log sono tra i documenti pi importanti di ogni progetto sono il ponte tra il linguaggio altamente tecnico dei cambiamenti individuali di codice e il linguaggio pi orientato all utente delle funzionalit del fissaggio di bug e del progresso del progetto Pi avanti in questa sezione vedremo modi di distribuire messaggi di log alla audience adeguataa inoltre sezione chiamata La Tradizione della Codifica in Capitolo 6 Comunicazione discute i modi per incoraggiare i contributori a scrivere messaggi di log concisi e utili update Richiedere che le modifiche commit degli altri siano inclusi nella vostra copia locale del progetto cio rendere la vostra copia aggiornata Questa operazione molto comune la maggior parte degli sviluppatori aggiornano il loro codice diverse volte al giorno cos da sapere che stanno usando all incirca la stessa cosa degli altri sviluppatori e cos che se vedono un bug possano essere abbastanza sicuri che non sia stato gi fissato Per esempio Hey ho notato che il codice di indicizzazione scarta sempre l ultimo byte Questo un bug Si ma stato fissato la scorsa settimana prova ad
193. compatibili Questi sviluppatori aiutano a tenere aperte le linee di comunicazione dopo la diramazione Essi permettono al vostro progetto di beneficiare di nuove interessanti funzionalit della diramazione si la diramazione pu avere cose che volete e anche accrescere le possibilit di una fusione per strada A volte una diramazione ha cos successo che anche se era considerata dai suoi stessi istigatori come diramazione dall inizio diventa la versione che ognuno preferisce e alla fine soppianta l originale per richiesta popolare Un esempio famoso di ci fu la diramazione GCC EGCS La GNU Compiler Collection GCC prima la GNU C Compiler il codice nativo di compiler open source pi popolare e anche uno dei pi portabili compilatori del mondo Dovuto al disaccordo fra i manutentori ufficiali del GCC e la Cygnus Software uno dei gruppi di sviluppatori pi attivi Cygnus cre una diramazione di GCC chiamata EGCS La diramazione era deliberatamente non antagonistica gli sviluppatori EGCS in qualunque momento non cercavano di descrivere la loro versione di GCC come una nuova versione Invece si concentrarono sul fatto di rendere EGCS quanto migliore possibile incorporando patch ad un ritmo superiore a quello dei manutentori dello GCC ufficiale EGCS guadagn in popolarit e alla fine alcuni principali distributori di sistemi operativi decisero di impacchettare EGCS come loro compilatore di default invece di GCC A questo punto
194. computers i costruttori vedevano che risultati positivi nella competizione si erano avuti principalmente nell innovazione dell hardware e quindi non dedicarono attenzione al software come risorsa commerciale Molti dei primi clienti che usavano queste macchine erano scienziati o tecnici che avevano l abilit di modificare e ampliare il software inviato con la macchina I clienti a volte distribuirono le modifiche non solo ai costruttori ma anche agli altri possessori di macchine simili I costruttori spesso tollerarono e incoraggiarono ci ai loro occhi miglioramenti al software di qualunque origine rendevano la macchina pi allettante per gli altri potenziali acquirenti Anche se questo periodo iniziale somigliava all attuale cultura del software libero per diverse ragioni differiva per due principali aspetti Uno c era gi una certa standardizzazione dell hardware era il tempo di una fiorente innovazione nel progetto dei computers ma la diversit nelle architetture di calcolo voleva dire che ogni cosa era diversa da ogni altra Cosicch il software scritto per una macchina non avrebbe funzionato con un altra I programmatori si orientarono ad acquisire abilit con una certa architettura o famiglia di architettura laddove oggi essi sarebbero pi propensi ad acquistare esperienza in un linguaggio di programmazione o famiglia di linguaggio confidando nel fatto che la propria esperienza sarebbe trasferibile a qualsiasi hardware di calcolo a cui a l
195. con gli stessi mezzi degli altri membri Essi avranno un voto 0 se ce ne sono molti di essi avranno un blocco votante Se esso sono rispettati nel progetto avranno influenza oltre il loro stesso voto Non c bisogno per gli sviluppatori pagati disquisire sulle loro ragioni nemmeno Dopotutto chiunque vuole che in cambiamento sia apportato al software lo vuole per una ragione Ed giusto che il peso dato agli obiettivi della vostra compagnia sia determinato dallo stato delle sue rappresentanze nel progetto non dalla grandezza della compagnia dal suo budget o dal piano di affari Tipi di Coinvolgimento Ci sono molte ragioni per cui un progetto open source viene finanziato Le voci di questa lista non sono mutuamente esclusive spesso il ritorno finanziario di un progetto risulter da molte o anche tutti questi motivi Suddividere il Carico Separate organizzazioni con software imparentato si trovano a dover duplicare gli sforzi sia per il fatto di scrivere codice ridondante in casa sia per il fatto di comprare prodotti simili dai venditori proprietari Quando si accorgono di quello che sta avvenendo le organizzazioni possono unire le loro risorse e creare o unire un progetto tagliato sulle loro necessit I vantaggi sono ovvi i costi dello sviluppo si dividono ma i benefici si accumulano Anche se lo scenario sembra intuitivo per i nonprofit esso pu dare un senso di strategico anche per i concorrenti for profit Esempi http w
196. cui contenuti sono sviluppati in collaborazione da tutti coloro che ne hanno accesso come in un forum wiki Nella mia esperienza ci funziona se attivamente aggiornato da poche persone che convengono su come la documentazione deve essere organizzata e che voce deve avere Vedere in sezione chiamata Wiki in Capitolo 3 L Infrastruttura Tecnica per maggiori ragguagli Emissione di dati e screenshoots di esempio Se il progetto comporta una interfaccia utente grafica o se produce uscite grafiche o diversamente risultati particolari mettetene qualche esempio sul sito Nel caso dell interfaccia ci significa 21 Partenza screenshoots nel caso di un risultato potrebbero essere screenshoots oppure veri e propri files Ambedue le soluzioni fornirebbero alla gente una gratificazione istantanea un singolo screenshoot pu essere pi convincente che paragrafi di testo descrittivo e di chiacchiere in mailing lists perch uno screenshot una prova inconfutabile che il software funzionaPu essere pazzo pu essere difficile da montare pu essere documentato in modo incompleto ma questo screenshot tuttavia una prova che se uno ci mette impegno pu ottenere che il software funzioni Screenshots Dal momento che gli screenshoots possono scoraggiare finch voi avete fatto in realt poco qui ci sono delle istruzioni di base per farli Usando The Gimp http www gimp org aprire File gt Acquisisci gt Screenshot
197. cui siete a vostro agio ad usarlo non sul fatto che meglio di qualche altro linguaggio che avrebbe invece potuto essere usato Non lasciate mai degenerare la conversazione in un confronto accademico sui linguaggi di programmazione che sembra accadere in particolare spesso quando qualcuno tira fuori Perl per qualche ragione l argomento mortale in cui dovete semplicemente rifiutarvi di farvi trascinare Per una maggiore conoscenza delle guerre sante vedi http catb org esr jargon html H holy wars html e l articolo di Danny Cohen che rese popolare il termine http www ietf org rfc ien ien137 txt 97 Comunicazione L Effetto Minoranza Rumorosa In ogni discussione su mailing list facile per una piccola minoranza dare l impressione che ci sia un grande problema di dissenso inondando la mailing list con numerose lunghe email E un po come una guerriglia tranne il fatto che l illusione di dissenso diffuso persino pi potente perch divisa in un arbitrario numero di messaggi discreti e la maggior parte della gente non si preoccuper di tenere traccia di chi ha detto cosa quando Avranno la vaga impressione che l argomento molto controverso aspetteranno che la confusione finisca Il modo migliore per contrastare questo effetto puntualizzare chiaramente e fornire prove a supporto di quanto piccolo sia il vero numero dei dissidenti rispetto a quelli che sono d accordo Per incrementare la disparit potr
198. cui vorrei che sia l ambiente del pro Poul Henning 188 Appendice D Istruzioni di Esempio per Segnalare un Bug Questa una versione alleggerita delle istruzioni online del progetto Subversion per i nuovi utenti su come segnalare bug Vedi sezione chiamata Trattate Ogni Utilizzatore Come un Potenziale Volontario in Capitolo 8 Gestire i Volontari sul perch importante che un progetto abbia tali istruzioni Il documento originale qui http svn collab net repos svn trunk www bugs html Segnalare Bug in Subversion Questo documento dici come e dove segnalare i bug Non na lista dei bug mportan Dove Segnalare un Bug Se il bug di Subversion stesso manda una mail a users subversion tigris org Una volta che stato confermato come bug qualcuno possibilmente tu pu entrare nel tracciatore dei problemi 0 se sei abbastanza sicuro del bug vai avanti e scrivi direttamente alla mail list di sviluppo dev subversion tigris org Ma se non sei sicuro meglio a users l qualcuno pu dirti se il comportamento che hai riscontrato a Se il bug nelle libreria APR library per favore segnalalo ad entrambe que mailing lists dev apr apache org dev subversion tigris org Se il bug nella libreria Neon HTTP per favore segnalalo a neon webdav org dev subversion tigris org Se il bug in Apache HTTPD 2 0 per favore segnalalo ad entrambe queste mailing lists dev httpd apache org dev s
199. cuni progetti hanno speciali requisiti per il voto Per esempio essi possono richiedere che la proposta riceva almeno n voti positivi e nessun voto negativo che una super maggioranza voti a favore Il parametro esatto non importante l idea base far si che il gruppo sia cauto nell aggiungere nuove persone che possono fare l invio Simili o pi stringenti requisiti possono applicarsi ai voti per rimuovere uno che pu fare gli invii sebbene si speri che ci non sar mai necessario Vedere sezione chiamata Quelli Che Fanno gli Invii in Capitolo 8 Gestire i Volontari di pi sugli aspetti del non voto per aggiungere o rimuovere le persone che possono fare gli invii Sondaggi Contro Voti I Veti Per certi tipi di voto pu essere utile espandere l elettorato Per esempio se gli sviluppatori semplicemente non possono capire se la scelta di una data interfaccia si adatta al modo in cui la gente in realt usa il software un modo chiedere a tutti gli iscritti alla mailig list del progetto di votare Questi sono in realt sondaggi piuttosto che voti ma gli sviluppatori possono scegliere di trattare il risultato come vincolante Come con ogni sondaggio assicuratevi che sia chiaro ai partecipanti che c una opzione inclusa se qualcuno pensa che non sia offerta una migliore scelta nelle domande del sondaggio la sua risposta pu riuscire come il pi importante risultato del sondaggio Alcuni progetti permettono una specie di voto cono
200. da capire ed facile farsi un opinione ed in argomenti leggeri come l organizzazione la pubblicit i fondi eccetera La gente pu partecipare a queste discussioni sempre poich non sono necessarie qualifiche per farlo nessun modo chiaro per decidere anche dopo se una decisione sia stata giusta o sbagliata e perch aspettare pi a lungo degli altri partecipanti alla discussione a volte una tattica vincente Il principio che la quantit di discussione inversamente proporzionale alla complessit dell argomento ha circolato per molto tempo ed noto informalmente come l Effetto Bikeshed Segue la spiegazione di Poul Henning Kamp da un messaggio ora famoso fatto agli sviluppatori BSD E una lunga storia o meglio una vecchia storia ma in realt abbastanza breve C Northcote Parkinson scrisse un libro nei primi anni 60 chiamato Parkinson s Law Legge di Parkinson che contiene molti aspetti delle dinamiche della gestione Gal 95 Comunicazione Nello specifico esempio che coinvolge la rastrelliera delle biciclette l altro componente vitale una centrale atomica penso che questo illustri l et del libro Parkinson mostra come puoi andare nell ufficio del direttore e ottenere l approvazione per costruire una centrale atomica da milioni o persino miliardi di dollari ma se volete costruire una rastrelliera per le biciclette sarete bloccati in discussioni senza fine Parkinson spiega che questo ac
201. definito Dato che la maggioranza o tutti i post sono pubblicamente accessibili il progetto non ha il controllo pieno sull impressione che ne ha il mondo Qualcuno diciamo un editor slashdot org http slashdot org 108 Comunicazione pu attrarre l attenzione dei lettori verso un post che nessuno si sarebbe mai aspettato che sarebbe stato visto dall esterno del progetto Questo un fatto concreto con la quale convivono tutti i progetti open source ma in pratica il rischio piccolo In generale gli annunci che pi il progetto vuole che siano pubblicizzati sono quelli che saranno pi pubblicizzati nell ipotesi che usiate i meccanismi giusti per indicare la rilevanza di una notizia al mondo esterno Per gli annunci principali tendono ad esserci quattro o cinque principali canali di distribuzione sui quali gli annunci dovrebbero essere fatti quanto pi simultaneamente possibile 1 La pagina principale del vostro progetto vista probabilmente da pi gente che qualsiasi altra parte del progetto Se avete annunci veramente importanti mettete l una breve inserzione La breve inserzione dovrebbe essere un piccolo specchietto che linki al comunicato stampa vedere sotto per maggiori informazioni 2 Allo stesso tempo voi dovreste avere una area Notizie o Comunicati stampa sul sito dove un annuncio possa essere scritto nei dettagli Parte del proposito di un comunicato stampa e quella di fornire un solo c
202. del codice Il Meccanismo Dei Rami di Release L esatto meccanismo della creazione di un ramo di release dipende dal vostro sistema di controllo della versione certo ma i concetti generali sono gli stessi nella maggior parte dei sistemi Un ramo usualmente vien fuori da un altro ramo o dal tronco Tradizionalmente il tronco dove si ha la linea principale dello sviluppo libera dai vincoli della release Il primo ramo della release quello che porta alla release 1 0 vien fuori dal tronco Nel CVS il comando di ramo sarebbe qualcosa come cd trunk working copy cvs tag b RELEASE_1_0_X o in Subversion come questo svn copy http repos trunk http repos branches 1 0 x Tutti questi esempi accettano il sistema di numerazione a tre componenti Mentre non posso mostrare i comandi per ogni sistema di controllo della versione far degli esempi in CVS e Subversion e spero che 1 corrispondenti comandi in altri sistemi possano essere dedotti da questi due Notare che noi creammo il ramo 1 0 x con una lettera x invece di 1 0 0 Questo perch la stessa linea minore cio lo stesso ramo sarebbe stato usato per le micro releases in quella linea Il reale processo di stabilizzazione dei rami trattato sezione chiamata Stabilizzare una Release pi avanti in questo capitolo Qui noi ci occupiamo appunto dell interazione fra il sistema di controllo della versione con il processo di release Quando
203. delle vecchie opzioni pu essere stato cambiato di poco Le procedure di installazione anche possono essere cambiate sin dalla ultima release sebbene uno speri di no e Possono essere stati introdotti cambiamenti incompatibili sicch alcuni formati di dati usati dalle versioni pi vecchie non sono pi utilizzabile senza sopportare qualche sorta di possibilmente manuale passo a senso unico Come potete vedere non tutte queste cose sono buone Questo il motivo per cui utilizzatori di esperienza si avvicinano alle nuove releases con qualche apprensione specialmente quando il software maturo e stavano gi per la maggior parte facendo quello che volevano o pensavano quello che volevano Anche l arrivo di nuove funzionalit una benedizione di diversa specie in quanto pu significare che il software si comporter ora in maniera imprevista Lo scopo della numerazione delle versioni quindi duplice ovviamente dovrebbero comunicare senza ambiguit l orine delle releases cio guardando a una di due releases uno pu sapere quella che viene dopo ma anche dovrebbe indicare in modo quanto pi compatto possibile il grado e la natura dei cambiamenti nella release Tutto questo in un numero Si pi o meno si La strategia della numerazione delle releases una delle pi vecchie superflue discussioni qua e l vedere sezione chiamata Pi semplice l argomento pi lungo il dibattito in Capitolo 6 Comunicazione ed i
204. design di SourceForge c senza dubbio una buona ragione buona dal punto di vista di SourceForge come le pubblicit Ma dal punto di vista di un progetto individuale il risultato pu essere una pagina web meno che ideale Non intendo bacchettare SourceForge gli stessi problemi si trovano in molti dei siti di canned hosting Il punto che c un compromesso Voi guadagnate il sollievo dal fardello tecnico di far andare il sito del progetto ma solo al prezzo di accettare il modo di farlo di qualcun altro Solo voi potete decidere se il canned hosting la scelta migliore per il vostro progetto Se scegliete un sito preconfezionato lasciate aperta l opzione di trasferirvi su un vostro server pi avanti usando un nome di dominio personale per l indirizzo di casa Potete fare il forward della URL al sito preconfezionato o avere un home page completamente personalizzata alla URL pubblica e mandare gli utenti al sito preconfezionato per le funzionalit sofisticato Fate solo in modo di arrangiare le cose in modo che se pi avanti decidiate di usare una diversa soluzione di hosting l indirizzo del progetto non abbia bisogno di cambiare Scegliere un sito di canned hosting Il pi grande e conosciuto sito di hosting SourceForge http www sourceforge net Altri due siti che forniscono un servizio uguale o simile sono savannah gnu org http savannah gnu org e BerliOS de http www berlios de Alcune organizzazioni come la Apach
205. di leggerlo in entrambi i casi se vi piace Dilbert Qualcuno di recente mi ha detto che lo ha letto e ha trovato che solo circa il 50 questi tempi Questo dannatamente buono direi molti dei moderni libri di gestio molto pi bassi di cos questo vecchio di pi di 35 anni Nello specifico esempio che coinvolge la rastrelliera delle biciclette l altro componente vitale una centrale atomica penso che questo illustri l et Parkinson mostra come puoi andare nell ufficio del direttor ottener l approvazione per costruire una centrale atomica da milioni o persino miliardi di ma se volete costruire una rastrelliera per le biciclette sarete bloccati in discu senza fine Parkinson spiega che questo accade perch una centrale atomica cos vasta cos costosa e cos complicata che la gente non pu percepirla e piuttosto che pr ricadono nell assunzione che qualcun altro abbia controllato tutti i dettagli prim cos avanti Richard P Feynmann da alcuni esempi interessanti e molto pertinent Los Alamos nei suoi libri Dall altro lato una rastrelliera per bici Chiunque pu costruirne una in un fine e ancora avere il tempo di guardare la partita in TV Quindi non importa quanto be ragionevole con la vostra proposta qualcuno coglier la possibilit di mostrare c lavoro che sta prestando attenzione che qui In Danimarca lo chiamiamo lasciare l impronta Riguarda l orgoglio persona
206. dice tardi ulteriormente ad essere pronto perch scoraggiano gli sviluppatori che altrimenti avrebbero contribuito al codice Molto insidiosamente essi non sanno che stanno perdendo tutti quegli sviluppatori perch il processo accumulazione di non eventi qualcuno visita il sito scarica il software cerca di svilupparlo fallisce abbandona e va via Chi mai sapr che ci accaduto al di fuori delle stesse persone Nessuno di quelli che lavorano al progetto si render conto che che l interesse e la buona volont di qualcuno stata dissipata Un lavoro noioso con un alta ricompensa dovrebbe essere fatto all inizio e abbassando significativamente l ostacolo di presentare un progetto con una buona confezione porta una ricompensa molto alta Quando rilasciate un pacchetto scaricabile di vitale importanza che voi diate un numero univoco di versione alla release cos la gente pu confrontare due release e sapere quale sostituisce l altra Una trattazione dettagliata sulla numerazione delle versioni pu essere trovata in sezione chiamata Numerazione delle Releases e i dettagli sulle procedure di standardizzazione della costruzione e dell installazione sono contemplate in sezione chiamata Impacchettamento e anche in Capitolo 7 Confezione Rilascio e Sviluppo Quotidiano Controllo Versione e Accesso al Tracciamento Bug Lo scaricamento dei pacchetti sorgente piacevole per coloro che vogliono giusto installare e usare
207. dici e pianificata Indicizzazione dei siti web Requisiti e Python 2 2 o superiore e Sufficiente spazio su disco da contenere gli indici approssimativamente 2x dimensione dei dati Con queste informazioni i lettori possono velocemente farsi un idea di quanto questo software abbia speranza di funzionare per loro e possono pensare di farsi coinvolgere anche come sviluppatori Lo Stato dello Sviluppo La gente vuole sempre sapere quanto il progetto sta facendo Per i nuovi progetti essi vogliono sapere il ritardo fra le promesse del progetto e la corrente realt Per i progetti maturi vogliono sapere quanto attiva la sua manutenzione quanto spesso escono le nuove releases come probabilmente si reagisce ai rapporti dei bugs ecc Per rispondere a queste domande dovreste metter su una pagina dello stato dello sviluppo con l elenco degli obiettivi a breve termine del progetto e delle sue necessit per esempio si potrebbe essere alla ricerca di sviluppatori con una particolare esperienza La pagina pu anche fornire una storia della passate releases con gli elenchi delle caratteristiche cosicch i visitatori possano farsi un idea di come il progetto definisce l avanzamento e di quanto velocemente avanza in accordo con tale definizione Non vi spaventate se vi vedete impreparati e non siate tentati di esagerare sullo stato di sviluppo Chiunque sa che il software si evolve per stadi non c da vergognarsi a dire Questo
208. discussione Anche se importante mantenere una presenza umana nel bug tracker non fondamentalmente fatto per le discussioni in tempo reale Pensatelo piuttosto come un archiviatore un modo per organizzare fatti e riferimenti ad altre discussioni principalmente quelli che avvengono sulle mailing list Ci sono due motivi per fare questa distinzione Primo il bug tracker pi difficoltoso da usare rispetto alla mailing list o rispetto ai forum di chat in tempo reale per questo ambito Questo non solo perch 1 bug tracker hanno un cattivo design dell interfaccia grafica solo che le loro interfacce sono state 53 L Infrastruttura Tecnica disegnate per catturare e presentare stati discreti non discussioni in libera espansione Secondo non tutti quelli che dovrebbero essere coinvolti nella discussione su un particolare problema sta necessariamente guardando il bug tracker Parte di una buona gestione del problema vedi sezione chiamata Suddividete 1 Compiti di Management e i Compiti Tecnici in Capitolo 8 Gestire i Volontari fare in modo che ogni problema sia portato all attenzione delle giuste persone piuttosto che richiedere ad ogni sviluppatore di controllare tutti i problemi In sezione chiamata Nessuna Conversazione nel Tracciatore di Bug in Capitolo 6 Comunicazione vedremo i modi per fare in modo che le persone non incappino accidentalmente in discussioni al di fuori degli appropriati forum e nel bug track
209. dispiacer troppo non importa quale sia il risultato Anche allora il voto non dovrebbe essere affretto La discussione che porta al voto ci che educa l elettorato cosicch fermare quella discussione pu prematuramente abbassare la qualit del risultato Notate che questo avvertimento a non chiamare il voto non si applica al voto di cambio inclusione descritto in sezione chiamata Stabilizzare una Release in Capitolo 7 Confezione Rilascio e Sviluppo Quotidiano L il voto pi di un meccanismo di comunicazioni un mezzo per registrare il coinvolgimento di uno nel processo di revisione del cambiamento cos che ognuno pu dire quanta revisione ha avuto un dato cambiamento Chi Vota Avere un sistema di voto solleva la questione dell elettorato chi accede al voto Ci ha la potenzialit di essere un problema sensibile perch obbliga il progetto a riconoscere alcune persone come pi coinvolte o come aventi pi giudizio di altre La miglior soluzione assumere una distinzione esistente l accesso all invio e annettere il privilegio di votare ad esso In progetti che offrono sia il pieno che il parziale accesso all invio la questione se coloro che hanno l invio parziale possano votare dipende largamente dal procedimento col quale concesso l accesso all invio Se il progetto lo distribuisce liberalmente per esempio come un modo di mantenere molti mezzi conferiti da terze parti nel deposito allora dovrebbe essere chiar
210. divent chiaro ai manutentori di GCC che insistendo sulla denominazione GCC mentre ognuno passava alla diramazione EGCS avrebbe caricato ognuno con un inutile cambiamento di nome ma non avrebbe fatto niente per impedire la migrazione Cos GCC adott il codice base di EGCS e c ancora un solo GCC ma grandemente migliorato con la diramazione Questo esempio mostra perch non potete sempre considerare una diramazione come una assoluta cosa brutta Una diramazione pu essere dolorosa e non benvenuta al momento ma voi non potete sapere se avr successo Quindi voi e il resto del progetto dovete tenerci un occhio su ed essere preparati non solo ad assorbirne il codice e le funzionalit quando possibile ma nei casi pi estremi anche ad unirvi alla diramazione se essa raggiunge le dimensioni di popolarit del progetto Certo sarete spesso in grado di predire la probabilit di successo di una diramazione guardando chi si unisce ad essa Se la diramazione partita dai pi grandi lamentosi del progetto e ad essa si aggiunta una manciata di sviluppatori scontenti che non si stavano comportando costruttivamente comunque essi hanno sostanzialmente risolto il problema con voi con la diramazione e voi probabilmente non dovete preoccuparvi della diramazione portando via slancio al progetto originale Ma se vedete sviluppatori influenti ed rispettati che sostengono la diramazione ve ne dovrete chiedere il perch Magari il progetto stava essen
211. do assistenza servizi e certificazione Ci sono compagnie miliardarie in dollari costruite sul software libero oggi cosicch esso non n in modo innato anti commerciale n anti compagnia D altra parte esso anti proprietario per natura e questa la chiave per cui differisce dai modelli di licenza per copia di pubblico dominio Non avente un intestatario di copyright nel senso che non c nessuno che abbia i diritto di limitare la copia dell opera Essere di pubblico dominio non la stessa cosa di non avere un autore e anche se l autore o gli autori dell opera hanno deciso di metterla in pubblico dominio questo non cambia il fatto che essi la hanno scritta Quando un opera di pubblico dominio del materiale facente parte di essa pu essere incorporato in un opera protetta da diritto d autore e quindi quella copia di materiale coperta da diritto d autore come l intera opera Ma ci non cambia la disponibilit del lavoro originale che rimane di pubblico dominio Quindi il rilasciare qualcosa come di pubblico dominio tecnicamente un modo per renderla libera in accordo con la maggior parte delle organizzazioni che certificano software libero Comunque usualmente ci sono buone ragioni per usare una licenza invece di rendere di pubblico dominio anche con il software libero certe limitazioni possono essere utili non solo all intestatario del copyright ma anche ai destinatari come chiarisce la prossima sezione copyle
212. do eccessivamente restrittivo e la migliore soluzione adottare nella linea principale del progetto alcuni o tutti gli atti contemplati dalla diramazione in sostanza evitare che la diramazione diventi tale Iniziare una Diramazione Tutto il consiglio qui nell ipotesi che stiate facendo una diramazione come ultima risorsa Esaurite tutte le altre possibilit prima di iniziare una diramazione Fare una diramazione significa quasi sempre 3Adesso parte di RedHat http www redhat com 162 Gestire i Volontari perdere sviluppatori con solo una incerta promessa di acquisirne di nuovi dopo Essa significa anche iniziare una competizione per l attenzione degli utilizzatori chiunque stia per scaricare ha da chiedere a se stesso Hmm voglio questo o l altro Qualunque dei due voi siate la situazione sporca perch stata introdotta una domanda che non c era prima Alcune persone sostengono che la diramazione salutare per l ecosistema del software nella sua interezza per il classico argomento della selezione naturale sopravviver il pi adatto che significa che alla fine ognuno ottiene il software migliore Questo pu essere vero dal punto di vista degli ecosistemi ma non vero dal punto di vista di un singolo progetto La maggior parte delle diramazioni non riescono e la maggior parte dei progetti non sono contenti di essere biforcati Un corollario che non dovreste usare la minaccia di una diramazione
213. do o infrangendo le istruzioni per trovare un compagno per il nuovo problema Quindi comunque necessario per i volontari guardare il database dei problemi Inoltre siccome la maggior parte dei nuovi segnalatori non capisce quanto sia difficile il compito di mantenere il database dei problemi non giusto rimproverarli troppo duramente per avere ignorato le linee guida Quindi i volontari devono essere vigili e comunque praticare influenza su come rimbalzano indietro i problemi non affiancati ai loro segnalatori Lo scopo di educare ogni segnalatore ad usare il sistema di affiancamento nel futuro cos che ci sia un insieme sempre in crescita di persone che capiscono il sistema di filtraggio dei problemi Vedendo un problema non affiancato i passi ideali sono 1 Rispondere immediatamente al problema ringraziando educatamente l utente per la segnalazione ma rimandandolo alle linee guida per l affiancamento che devono certamente essere visibilmente messe sul sito web 2 Se il problema chiaramente valido e non un duplicato approvatelo comunque e iniziatene il normale ciclo di vita Dopo tutto il segnalatore stato ora informato dell affiancamento quindi non c motivo nello sprecare il lavoro fatto finora chiudendo un problema valido 3 Altrimenti se il problema non chiaramente valido chiudetelo ma chiedete al segnalatore di riaprirlo se riceve conferma da chi lo affianca Quando ci accade deve mettere un riferimento a
214. dono tutte le decisioni e nemmeno la maggioranza delle decisioni Non verosimile che un unica persona potrebbe avere la necessaria esperienza per prendere costantemente buone decisioni lungo tutta l area del progetto e comunque gli sviluppatori di qualit non starebbero intorno se non avessero qualche influenza sull orientamento del progetto Quindi i dittatori benevoli non dettano molto Invece essi lasciano che le cose vadano avanti da sole attraverso discussioni ed esperimenti ogni volta che sia possibile Essi partecipano a tutte le discussioni di persona ma coma regolari sviluppatori ma facendo riferimento a un reggente di area che ha pi esperienza Solo quando chiaro che non pu essere raggiunto il consenso e che la maggior parte del gruppo vuole che qualcuno guidi le decisione in modo che lo sviluppo vada avanti puntano i pedi e dicono questo il modo in cui deve andare La riluttanza a prendere decisioni per decreto una prerogativa condivisa virtualmente da tutti i dittatori benevoli di successo una delle ragioni per cui essi riescono a mantenere il ruolo Chi Pu Essere un Dittatore Benevolo Essere un BD richiede una combinazione di caratteristiche C bisogno prima di tutto di una sensibilit ben affilata per quanto riguarda la propria influenza nel progetto che di volta in volta porta a un auto controllo Nei primi stadi di una discussione un singolo non esprimerebbe opinioni e conclusioni con cos tanta certe
215. e Soprattutto per le email gli sviluppatori esperti di open source hanno stabilito alcune convenzioni Mandare solo email di puro testo no HTML RichText o altri formati che potrebbero essere opachi ad alcuni lettori di email di solo testo Impostate le vostre righe per essere lunghe circa 72 colonne Non andate oltre le 80 colonne che sono diventate lo standard de facto della lunghezza di terminale cio alcuni usano terminali pi larghi ma nessuno ne usa di pi stretti Facendo le vostre righe un po meno di 80 colonne lasciate spazio per alcuni livelli di caratteri di citazione aggiunti nelle risposte di altri senza costringere alla riformattazione del vostro testo Usate vere interruzioni di linea Alcuni programmi di mail fanno una specie di falsa delimitazione di riga quindi quando state scrivendo una mail il display mostra delle interruzioni di linea che in realt non ci sono Quando la email viene spedita potrebbe non avere le interruzioni di linea voi pensiate che abbia e si disporr in maniera orrenda sugli schermi di un po di gente Se il vostro programma pu usare false interruzioni di linea cercate una qualche impostazione che possiate attivare per fare in modo di mostrare le vere interruzioni di linea quando scrivete Quando si includono output video stralci di codice o altro testo preformattato delimitatelo chiaramente cos che anche un occhio pigro possa facilmente vedere i confini tra le vostre parole e 87
216. e come annunciare ogni altro evento e dovrebbe usare le procedure descritte in sezione chiamata La Pubblicit in Capitolo 6 Comunicazione Ci sono tuttavia poche nuove cose specifiche da fare 132 Confezione Rilascio e Sviluppo Quotidiano Ogni volta che date l URL al tar scaricabile della release assicuratevi di dare anche la somma di controllo MDS SHAI e i puntatori al file delle firma digitali Poich gli annunci avvengono in molte tribune mailing lists pagine di news ecc ci significa che gli utilizzatori possono prendere le somme di controllo da molte fonti il che d ai titubanti sulla sicurezza una assicurazione extra che le somme di controllo stesse non sono state corrotte Dare il link al file delle firme digitali molte volte non rende queste firme digitali pi sicure ma rassicura la gente specialmente quelli che non seguono il progetto da vicino che il progetto prende la sicurezza seriamente Nelle email di annuncio e sulle pagine di news che contengono pi che una semplice fascetta pubblicitaria sulla release assicuratevi di inserire la porzione rilevante del file CAMBIAMENTI cos la gente pu vedere perch dovrebbe essere loro interesse aggiornare Ci importante sia con le candidate releases sia con le releases finali la presenza di correzioni di bug e di nuove funzionalit importante nel tentare la gente a provare una candidate release Infine non dimenticate di ringraziare il team di
217. e il processo di rilascio lo sviluppo regolare dovrebbe continuare ininterrotto nel tronco principale del repository nel frattempo nel ramo del rilascio nessuna modifica permessa tranne quelle approvate dal manager del rilascio In questo modo fare un rilascio non ha bisogno di interferire con lo sviluppo in corso Vedi See sezione chiamata Use branch per evitare colli di bottiglia pi avanti in quesot capitolo per una discussione pi dettagliata della ramificazione Unire merge Spostare una modifica da un ramo ad un altro Ci include l unione merging tra il tronco principale e qualche altro ramo o viceversa Infatti questi sono i tipi pi comuni di union raro portare una modifica tra due rami non principali Vedi sezione chiamata Singolarit dell informazione per pi dettagli su questo tipo di unione 44 L Infrastruttura Tecnica Unire ha altro significato correlato ci che il sistema di controllo di versione fa quando vede che due persone hanno cambiato lo stesso file ma in modo non contrastante Dato che le due modifiche non interferiscono l una con l altra quando una delle persone aggiorna la propria copia del file che gi contiene le proprie modifiche le modifiche dell altra persona saranno unite automaticamente Questo molto comune specialmente in progetti dove molte persone lavorano sullo stesso codice Quando due modifiche diverse contrastano il risultato un conflitto vedere sotto
218. e Tali bugs possono essere difficili da riprodurre inoltre possono essere dovuti a interazioni non previste in cambiamenti isolati introdotti da successivi sviluppi quindi causano cattivi comportamenti di cui gli sviluppatori del progetto non dovrebbero essere incolpati Ho visto una sconcertante gran quantit di tempo sprecata perch un bug era absent quando avrebbe dovuto essere presente qualcuno stava facendo girare una versione leggermente modificata basata ma non identica su una release ufficiale e quando i bug predetto non si verificava ognuno doveva scavare un fossato per capire il perch Tuttavia quelle erano circostanze in cui chi faceva il pacchetto insisteva sul fatto che quelle modifiche alla release originale erano necessarie Chi faceva i pacchetti avrebbe dovuto essere incoraggiato a tirar fuori questo con gli sviluppatori del progetto e a spiegare i suoi piani Essi possono trovare consenso ma mancando questo almeno avranno notificato al progetto le loro intenzioni cos che il progetto pu stare attento a insoliti rapporti di bugs Gli sviluppatori possono rispondere mettendo un disclaimer sul sito del progetto e possono chiedere a chi fa i pacchetti di fare la stessa cosa nel posto appropriato di modo che gli utilizzatori di quel pacchetto binario sappiano che ci che stanno prendendo non esattamente la stessa cosa di ci che il progetto ha rilasciato Non ci deve essere animosita in questa situazione sebbene purtrop
219. e in particolare venir fuori con modi di dire no che non abbiano molto come risultato dare la sensazione di una ferita o creare il disappunto degli sviluppatori e che anche non impediscano che cambiamenti validi entrino nella release Ci sono molti modi per fare ci E piuttosto facile inventare sistemi che soddisfino questi criteri una volta che il team si focalizzato su di essi come criteri importanti Qui descriver due dei pi popolari sistemi agli estremi dello spettro ma non permetto che questo scoraggi il vostro progetto dall essere creativo Una abbondanza di altri espedienti possibile questi sono giusto due che ho visto funzionare in pratica Dittatura Da Parte del Proprietario Della Release Il gruppo conviene di permettere a una persona di essere proprietario della release Questo proprietario ha la parola finale sui cambiamenti che devono entrare nella release Certo ci si aspetterebbe ed 123 Confezione Rilascio e Sviluppo Quotidiano normale che ci siano discussioni e argomentazioni ma alla fine il gruppo deve assegnare al proprietario la sufficiente autorit per prendere le decisioni finali Affinch questo sistema funzioni necessario scegliere una persona con la competenza tecnica per comprendere tutti i cambiamenti e la posizione sociale e le capacit di navigare fra le discussioni puntando alla release senza causare tanti sensi di risentimento Un comportamento comune del proprietario
220. e noi abbiamo meccanismi per dare voto consultivo essenzialmente colui che fa gli invii scrive 0 o 1 non impegnativo invece che solo 1 sulla scheda Non c motivo di silenziare completamente la gente solo perch il loro voto non formalmente impegnativo Coloro che hanno il pieno invio possono votare su ogni cosa e solo coloro che hanno il pieno invio possono votare sull ammissione di nuove persone con diritto di voto di ogni specie Nella pratica tuttavia la competenza ad ammettere nuove persone con l invio parziale di solito delegata ogni persona con invio pieno pu sponsorizzare una nuova persona con invio parziale e quest ultimo in un dominio pu in affetti scegliere nuove persone con diritto di invio per quello stesso dominio questo particolarmente utile nel far si che il lavoro di traduzione funzioni regolarmente Il vostro progetto pu aver bisogno di piccoli differenti aggiustamenti a seconda della natura del lavoro ma a ogni progetto si applicano gli stessi principi generali Ogni persona che ha l invio dovrebbe poter votare su questioni che cadono entro la portata del suo accesso all invio e non su questioni all infuori di esso e i voti su questioni procedurali dovrebbero essere concessi solo a quelli che hanno il pieno invio a meno che non ci sia qualche ragione come deciso da coloro che hanno il pieno invio di allargare l elettorato Riguardo all applicazione dell accesso parziale all invio
221. e Software Foundation http www apache org e Tigris org http www tigris org forniscono hosting gratuito a progetti open source che ben si adattano al loro ambito e ai progetti esistenti della loro comunita Haggen So ha fatto una esauriente valutazione di vari siti di canned hosting come parte della ricerca per la sua tesi di dottorato Construction of an Evaluation Model for Free Open Source Project Hosting FOSPHost sites Costruzione di un modello di valutazione per l hosting di progetti free o open source I risultati sono in http www ibiblio org fosphost e in particolare vedete il leggibilissimo grafico di paragone a http www ibiblio org fosphost exhost htm Anonimit e coinvolgimento Un problema che non strettamente limitato ai siti preconfezionati ma che vi si trova pi di frequente l abuso della funzionalit del login utente La funzionalit in s abbastanza semplice il sito permette ad ogni visitatore di registrarsi con username e password Da l in poi mantiene un profilo per tale utente gli amministratori del progetto possono assegnare all utente certi permessi per esempio il diritto di fare commit sul repository Questo pu essere estremamente utile e infatti one dei primi vantaggi del canned hosting Il problema che a volte il login dell utente finisce per essere richiesto per compiti che dovrebbero essere permessse ai visitatori non registrati in particolare la possibilit di registrare p
222. e ad essere pi tipico della topologia di una rete peer to peer che della struttura di un comando stile militare A volte i ruoli del management sono formalizzati e a volte si verificano spontaneamente Nel progetto di Subversion noi avevamo un manager delle patch un manager delle traduzioni un manager della documentazione un manager dei problemi sebbene non ufficiale e un manager di release Per dare avvio ad alcuni di questi ruoli non prendemmo una decisione consapevole per altri avvenne che i ruoli avessero inizio da s nella misura in cui il progetto cresce mi aspetto che si aggiungeranno altri ruoli Qui di seguito esamineremo alcuni questi ruoli e una coppia di altri in dettaglio eccetto il manager di release che stato trattato gi in sezione chiamata Il manager di release e sezione chiamata Dittatura Da Parte del Proprietario Della Release precedentemente in questo capitolo Quando leggete la descrizione del ruolo notate che nessuno di essi richiede il controllo esclusivo sul dominio in questione Il manager dei problemi non impedisce ad altre persone di fare cambiamenti nel database dei problemi il manager delle FAQ non insiste sul fatto di essere la sola persona che redige le FAQ e cos via Questi ruoli consistono tutti nella responsabilit senza il monopolio Una parte 148 Gestire i Volontari importante del lavoro del manager di ciascun dominio quella di prender nota quando altre persone stanno la
223. e e come pi alcune righe del contesto attorno on entrambi i lati Uno sviluppatore che gi familiare con un po di codice pu solitamente leggere una diff rispetto a quel codice e capire cosa ha fatto la modifica e persino scoprire bug tag Un etichetta per un particolare insieme di file ad una specifica revisione I tag sono solitamente usati per preservare istantanee interessanti del progetto Per esempio un tag solitamente fatto per ogni pubblico rilascio cos che one possa ottenere direttamente dal sistema di controllo di versione l insieme esatto dei file revisioni compresi in quel rilascio Nomi di tag comuni sono cose del tipo Release_1_0 Delivery_00456 eccetera Ramo branch Una copia del progetto sotto controllo di versione ma isolata cosi che i cambiamenti fatti nel ramo non interferiscono con il resto del progetto e viceversa tranne quando i cambiamenti sono deliberatamente uniti da un lato all altro vedi sotto I rami sono anche noti come linee di sviluppo Anche se un progetto non ha rami specifici lo sviluppo comunque considerato accadere nel ramo principale detto anche linea principale o tronco trunk i rami offrono un modo per isolare le diverse linee di sviluppo l una dall altra Per esempio un ramo pu essere usato per sviluppo sperimentale che sarebbe troppo destabilizzante sul tronco principale O al contrario un ramo pu essere usato come luogo per stabilizzare un nuovo rilascio Durant
224. e ho finito per impegnarmi su di esso pi di quanto originariamente avessi previsto In parte stata una questione di praticit ogni volta che avevo bisogno di un esempio di una situazione particolare potevo richiamarne di solito uno relativo a Subversion dalla memoria Ma stata anche una questione di verifica Bench io sia impegnato in altri progetti di software libero a vari livelli e parli con amici e conoscenti coinvolti in molti altri ho scoperto ben presto che scrivendo articoli era necessario accompagnare la teoria con la pratica Non volevo fare affermazioni su eventi di altri progetti basandomi solo su ci che mi era capitato di leggere nelle liste di discussione Con Subversion ad esempio un approccio del genere fornirebbe soltanto la met delle risposte giuste Cos quando raccolgo ispirazioni o esempi su un progetto del quale non ho una particolare esperienza diretta ho imparato a parlare prima con qualcuno che possa chiarirmi i dubbi per acquisire confidenza sull argomento ed essere in grado di spiegare come vanno le cose Subversion stato il mio lavoro per gli ultimi 5 anni ma mi occupo di software libero da 12 Tra gli altri progetti che mi hanno ispirato per la stesura di questo libro mi piace ricordare e L editor di testo GNU Emacs ed il relativo progetto della Free Software Foundation all interno del quale ho gestito alcuni piccoli pacchetti e Il Concurrent Versions System CVS al quale ho lavorato inten
225. e i loro tempo per il vostro progetto n l open sourcing cura automaticamente i mali di un progetto che d problemi Di fatto proprio l opposto l aprire un progetto pu aggiungere una serie di complessit e costa nel breve periodo pi che non mantenendolo chiuso Aprirlo significa adattare il codice per renderlo comprensibile a persone completamente nuove metter su un sito di sviluppo e liste email e spesso scrivere documentazione per la prima volta Tutto ci costa molto lavoro E certamente se alcuni sviluppatori interessati lo aprono c il carico aggiuntivo di rispondere alle domande dei nuovi arrivati SourceForge net sito popolare solo di hosting aveva 79 225 progetti registrati a meta Aprile 2004 Questo non neanche lontanamente il numero dei progetti in Internet certamente solo il numero di quelli che scelgono di usare SourceForge Introduzione per un certo tempo prima di vedere i benefici della loro presenza Come sviluppatore Jamie Zawinski sui primi giorni del progetto Mozilla disse L open source funziona ma non del tutto certo che sia una panacea Se c una diceria che mette in guardia qui che tu non puoi prendere un progetto che sta morendo cospargerlo con la magica polvere dell open source e ottenere che ogni cosa funzioni Il software difficile I problemi non sono cos semplici da http www jwz org gruntle nomo html Un errore correlato quello di essere avari nella presentazione e n
226. e l inglese Nomi che sono dipendenti da giochi di parole della pronuncia nativa per esempio saranno poco chiari a molti lettori non nativi di inglese l fuori Se il gioco di parole suscita particolare interesse ed particolarmente memorizzabile pu ancora valere la pena di usarlo solo mettetevi in testa che molta gente vedendo il nome non lo sente nella testa allo stesso modo di chi parla l inglese come nativo e Non come con altri nomi di progetti e non viola il marchio Questa solo una buona maniera e buona anche in senso legale Voi non volete creare confusione di identit E abbastanza difficile tener traccia di ci che disponibile in rete gi ora senza cose differenti che hanno lo stesso nome L risorse menzionate prima in sezione chiamata Ma Prima Guardiamoci Intorno Sono utili a scoprire se progetto ha lo stesso nome a cui state pensando voi Libere ricerche di marchi liberi sono disponibili a http www nameprotect org e http www uspto gov e Se possibile sia disponibile come nome del dominio com net e org domini di primo livello Voi dovreste sceglierne uno forse org da annunciare come sito ufficiale del progetto gli altri due doverebbero condurre l e sono un modo semplice per impedire a terze parti di creare confusione sul nome del progetto Anche se volete hostare il progetto su un altro sito vedere sezione chiamata L Hosting In Scatola potete ugualmente registrare domini specifici per
227. e linkato da molti posti alcuni post diventano cosi largamente noti che alla fine hanno molti pi lettori al di fuori della mailing list che dentro La formattazione pu fare molta differenza Per esempio nel progetto di Subversion noi stavamo avendo un limitato esito favorevole nell usare il filtro dei bug descritto in sezione chiamata Pre Filtraggio del Bug Tracker in Capitolo 3 L Infrastruttura Tecnica Molti rapporti di bug fasulli stavano venendo archiviati da gente inesperta e ogni volta che ci avveniva l archiviatore doveva essere educato esattamente nello stesso modo di 500 persone prima di lui Un giorno dopo che uno dei nostri sviluppatori era finalmente arrivato alla fine della sua cordata e aveva inveito contro qualche utilizzatore deficitario che non leggeva le linee guida del tracciatore di problemi abbastanza con cura un altro sviluppatore decise che questo comportamento era andato avanti a lungo abbastanza Egli sugger che noi formattassimo la pagina frontale del tracciatore di bug in modo che la parte pi importante la ingiunzione a discutere il bug sulla mailing list o sul canale IRC prima di archiviarlo si distinguesse per l enormit lettere in grassetto rosso su uno sfondo giallo brillante centrato in prominenza sopra ogni altra cosa nella pagina Noi facemmo cos potete vederne i risultati a http subversion tigris org project_issues html e il risultato fu un salto notevole nella velocit dei problemi fa
228. e non fa quello che si suppone faccia l organizzazione o la persona che lo produce sentir una insoddisfazione nel suo lavoro giornaliero Per esempio il progetto OpenAdapte http www openadapter org che fu avviato dalla banca di investimenti Dresdner Kleinwort Wasserstein come base open source per integrare disparati sistemi di informazione finanziaria pu a mala pena dirsi un progetto che gratta il prurito di un programmatore solitario Esso gratta un prurito istituzionale Ma quel prurito vien fuori dall esperienza dell istituzione e dei suoi partners e quindi se il progetto fallisce nell alleviare il loro prurito essi lo sapranno Questo congegno produce buon software perch il giro di ritorno va nella giusta direzione Il programma non viene scritto per essere venduto a qualche altro in modo che questi possa risolvere il suo problema Esso viene scritto per risolvere il proprio problema di qualcuno quindi viene condiviso con chiunque pi o meno come se il problema fosse una malattia e il software una medicina la cui distribuzione intende sradicare completamente l epidemia Questo capitolo tratta di come mettere al mondo un nuovo software ma molte delle sue raccomandazioni suoneranno familiari a una organizzazione della sanit distributrice di medicine Gli obiettivi sono molto simili voi volete chiarire ciA che la medicina fa la mettete nelle mani delle persone giuste e vi assicurate che quelli che la ricevono sappiano usarla ma col
229. e non pu pi portare avanti gli obblighi del ruolo Invece il resto del progetto non sente proprio nulla da lui per qualche tempo Allora ci pu essere una ventata di attivit improvvisa mentre egli si sente colpevole per aver ignorato il progetto per cos lungo tempo e si mette da parte una notte per recuperare Allora voi non sentirete di lui ancora per una altro tempo e allora ci potrebbe o non potrebbe essere un altra ventata Ma c raramente una dimissione formalmente non sollecitata Il volontario stava facendo il suo lavoro nel tempo libero cos le dimissioni significherebbero rendere noto apertamente a se stesso che il suo tempo libero si permanentemente ridotto Le persone sono spesso riluttanti a fare ci Quindi tocca voi e agli altri nel progetto notare quello che sta avvenendo o piuttosto non avvenendo e chiedere al volontario cosa stia succedendo L indagine dovrebbe essere amichevole e al 100 priva di senso di colpevolezza Il vostro proposito trovare un pezzo di informazione non far sentir male la persona Generalmente l indagine dovrebbe essere visibile al resto del progetto ma se voi conoscete un motivo specifico per cui dovrebbe essere meglio che sia privata questo va anche bene La principale ragione per farla pubblicamente che se in volontario risponde dicendo che non sar pi in grado di fare il lavoro in futuro ci sia un contesto stabilito per il vostro prossimo post pubblico la richiesta di un nuov
230. e pagine web le wiki non sono in tempo reale cos le persone hanno la possibilit di pensare e rifinire le loro contribuzioni ma sono anche molto facili da ampliare coinvolgendo meno sforzo di interfaccia che il cambiamento di una pagina web regolare Le wiki non sono ancora un equipaggiamento standard per i progetti open source ma probabilmente lo saranno presto Dato che sono una tecnologia relativamente nuova e la gente sta ancora sperimentando i diversi modi per usarle qui user poche parole di cautela a questo punto pi facile analizzare le debolezze delle wiki che analizzarne i successi Se decidete di avere una wiki mettete molto impegno nell avere una organizzazione di pagina pulita e di presentazione piacevole cos che i visitatori cio i potenziali editori sapranno istintivamente come fare le loro contribuzioni Ugualmente importante pubblicate questi standard sulla wiki stessa cos la gente ha un posto per consultare come guida Troppo spesso gli amministratori della wiki sono vittime della fantasia che dal momento che orde di visitatori stanno individualmente aggiungendo contenuto di alta qualit al sito la somma di tutte queste contribuzioni deve quindi anche essere di alta qualit Non cos che un sito web funziona Ogni singola pagina o paragrafo deve essere buono quando considerato in s ma non sar buono se incluso in un insieme disordinato o confuso Troppo spesso le wiki soffrono di e Mancanza di
231. e qualcuno perdesse tempo nel continuare a fare un lavoro a cui nessuno prestasse attenzione Il fattore pi importante nel chiedere a qualcuno di dimettersi la privacy dargli lo spazio per prendere una decisione senza che si senta come se gli altri lo stiano osservando e aspettando Io una volta feci l errore un chiaro errore in retrospettiva di scrivere a tutte le tre parti in un sola volta per chiedere che il manager di release di Subversion si facesse da parte in favore di altri due volontari Avevo gi parlato alle altre due persone privatamente e sapevo che essi volevano assumersene la responsabilit Cos pensai na sul velluto e in qualche modo intensamente che avevo risparmiato tempo e rottura inviando una email a tutti loro per iniziare l avvicendamento Davo per acquisito che il manager di release attuale fosse pienamente al corrente dei problemi e avrebbe visto immediatamente la ragionevolezza del mio punto di vista Mi sbagliavo L attuale release manager fu molto offeso e anche giustamente Una cosa che ti venga chiesto di passare la palla Un altra cosa che te lo si venga chiesto d avanti alla persona a cui passerai la palla Quando mi resi conto del perch si era offeso mi scusai Egli alla fine si fece da parte con grazia e continua ad essere coinvolto nel progetto oggi Ma i suoi sentimenti furono feriti e inutile a dirsi questo non fu il pi favorevole degli inizi per nuovi i volontari per di pi Quelli Che Fan
232. e riga in pi ad ogni messaggio in un posto che non d problemi e pu risparmiarvi molto tempo riducendo il numero di persone che scrivono o peggio scrivono alla mailing list chiedendo come disiscriversi Il grande dibattito sul Rispondi A Prima in sezione chiamata Evitare discussioni private ho sottolineato l importanza di fare in modo che le discussioni avvengano sui forum pubblici e ho parlato di come misure sono a volte necessarie per prevenire che le conversazioni finiscano in flussi di email private inoltre questo capitolo tratta di come configurare il software di comunicazione del progetto per fargli fare al vostro posto la maggior parte di lavoro possibile Quindi se il software di gestione offre un modo di far rimanere in modo automatico le discussioni nella mailing list potreste pensare che abilitare questa funzionalit sia la scelta pi ovvia Be non proprio Questa funzionalit esiste ma ha alcuni importanti svantaggi La domanda riguardante il suo uso o meno uno dei dibattiti pi accesi nella gestione di mailing list magari non la notizia che compare sui giornali della sera ma pu comparire di tanto in tanto nei progetti di free software Pi avanti descriver questa funzionalit dar le argomentazioni a sostegno di entrambe le fazioni e dar il miglior consiglio che posso La funzionalit in s molto semplice il software di gestione pu se volete configurare automaticamente l header
233. e sono sicuro che non sono il solo che si prese il disturbo La trasparenza e la possibilit di verifica sono anche una parte importante della credibilit certo Vedere sezione chiamata Riconoscimenti in Capitolo 8 Gestire i Volontari per maggiori informazioni su questo 84 I Soldi Non Colpite Il Prodotto Open Source Concorrente Astenetevi dal dare cattive opinioni sul software open source concorrente E perfettamente giusto fornire fatti negativi cio affermazioni facilmente confermabili del tipo spesso visto in buoni quadri comparativi Ma caratterizzazioni di natura meno rigorosa meglio evitarle per due ragioni Primo esse possono portare a guerre di ingiurie che distolgono da discussioni produttive Secondo e pi importante alcuni dei vostri sviluppatori volontari nel vostro progetto possono anche allontanarsi per lavorare al progetto concorrente Ci pi probabile di quando potrebbe sembrare in un primo momento i progetti sono gi nello stesso dominio che il motivo per cuoi sono in competizione e sviluppatori con esperienza in quel dominio possono dare contributi dovunque la loro esperienza applicabile Anche quando non c una diretta sovrapposizione di sviluppatori probabile che gli sviluppatori del vostro progetto abbiano familiarizzato con gli sviluppatori del progetto affine La loro capacit di mantenere rapporti costruttivi personali potrebbe essere intralciata da messaggi negativi di marke
234. e una sola operazione e spiegatela fino in fondo Una volta che uno vede che il software pu essere usato per una cosa partir ad esplorare cos altro pu fare per s stesso e se siete fortunati incomincer a coinvolgersi nella documentazione La qual cosa ci porta al prossimo punto e Segnatevi le aree in cui noto che la documentazione incompleta Mostrando ai lettori che siete al corrente delle sue manchevolezze vi allineerete al loro punto di vista La vostra capacit di comprenderli li rassicura che essi non sono di fronte al grande sforzo di convincere il progetto di quello che importante Non c bisogno che questi appunti rappresentino promesse di riempire i vuoti a partire da una data particolare ugualmente legittimo trattarli come aperte richieste di un aiuto di tipo volontario L ultimo punto di grande importanza davvero pu essere applicato all intero progetto non esattamente alla documentazione Un accurato rendere conto delle manchevolezze note la norma nel mondo dell open source Non dovete amplificare le manchevolezze del progetto giusto identificatele scrupolosamente e spassionatamente quando il contesto lo richiede nella documentazione nel database del tracciamento dei bugs o nelle discussioni nelle mailing lists Nessuno prender ci per disfattismo sulla parte di progetto n come un ordine di risolvere i problemi entro una determinata data a meno che il progetto dia questo ordine esplicit
235. ecie di formale miglior pratica di cui nell entusiasmo di una scadenza maggiore se ne pu fare a meno mentre ognuno nel team si affanna a stabilizzare l albero principale I rami di release sono quasi richiesti nel software open source comunque Io ho visto progetti fare una release senza di essi ma il risultato stato sempre che alcuni sviluppatori stessero oziosi mentre altri usualmente una minoranza lavoravano a fare uscire la release fuori della porta Il risultato usualmente cattivo per molti versi Primo la velocit dello sviluppo principale diminuita Secondo La qualit erea peggiore di quanto sarebbe stato necessario perch c erano solo poche persone a lavorare ad essa ed essi si affrettavano a finire in modo che ogni altro potesse tornare a lavorare Terzo esso divide il team di sviluppo psicologicamente dando luogo a una situazione in cui differenti tipi di lavoro interferiscono con ogni altro tipo senza necessit Gli sviluppatori che restano oziosi sarebbero 121 Confezione Rilascio e Sviluppo Quotidiano probabilmente felici di collaborare con una certa attenzione al ramo di release nella misura in cui quella sarebbe una scelta che potrebbero fare in accordo con i loro programmi e interessi Ma senza il ramo la loro scelta diventa Devo partecipare al progetto o no invece di Devo partecipare alla release oggi o lavorare a quella funzionalit che stavo sviluppando nella linea principale
236. edere in una manipolazione formale delle procedure del progetto per farsi prendereseriamente in considerazione da tutti gli altri In casi estremi la persona pu persino pensare che sta combattendo una battaglia solitaria per salvare il progetto da se stesso E la natura di questo tipo di attacco dall interno che non tutti lo noteranno nello stesso momemento e certa gente potrebbe non vederlo del tutto a meno che presentato con forte evidenza Questo significa che neutralizzarlo potrebbe essere un bel po di lavoro Non abbastanza persuadere voi stessi che sta succedendo dovete trovare abbastanza prove anche per persuadere gli altri e poi dovete far conoscere queste prove in modo intelligente Dato che cos tanto lavoro combattere spesso meglio tollerarlo giusto un po Pensatelo come una malattia da parassiti ma leggera se non troppo debilitante il progetto pu permettersi di rimanere infetto e le medicine avrebbero dolorosi effetti collaterali Comunque se tollerarla diventa troppo dannoso allora il momento di agire Iniziate a prendere appunti sulle modalit che vedete Fate in modo di includere riferimenti agli archivi pubblici questa una delle ragioni per cui il progetto registra le cose cos potete anche usarle Una volta che avete costruito un buon caso iniziate ad avere conversazioni private con altri partecipanti al progetto Non dite loro cosa avete osservato piuttosto chiedete prima a loro cosa hanno os
237. edere se uno dei due gi stato applicato all altro e se cos fa vincere l altro automaticamente Quando c un conflitto di versione non risolvibile automaticamente Codeville si comporta praticamente nello stesso modo di CVS Vesta http www vestasys org Vesta un sistema SCM Software Configuration Management portabile orientato al supporto di sviluppo di sistemi software di praticamente ogni peso da abbastanza piccoli meno di 10 000 righe di codice a molto grandi 10 000 000 righe di codice Vesta un sistema maturo E il risultato di oltre 10 anni di ricerca e sviluppo al Compaq Digital Systems Research Center ed stato usato in produzione dal gruppo di microprocessori Compag s Alpha per oltre due anni e mezzo Il gruppo Alpha ha avuto oltre 150 sviluppatori attivi in due siti distanti migliaia di miglia sulle coste est e ovest degli Stati Uniti Il gruppo ha usato Vesta per gestire i build con 130 MB di codice ognuno generante 1 5 GB di dati derivati I build fatti al sito ad est in un giorno medio producevano circa 10 15 GB di dati derivati tutti gestiti da Vesta Anche se Vesta stato progettato con in mente lo sviluppo software il gruppo Alpha dimostr la flessibilit del sistema usandolo per lo sviluppo di hardware controllando i loro file di linguaggio di descrizione hardware nella funzionalit di controllo di codice sorgente di Vesta e costruendo simulatori e altri oggetti derivati nel builder di Vesta
238. ee guida aiuter Pi effimero il forum pi vi sentirete liberi di esprimere i ringraziamenti l Per esempio ringraziando qualcuno per la correzione di un bug incidentalmente durante una conversazione in IRC cosa buona come lo una divagazione in una email dedicata principalmente ad altri argomenti Ma non postate una email solo per ringraziare qualcuno a meno che ci non sia per una impresa eroica non solita Nello stesso modo non intasate le pagine web del progetto con espressioni di gratitudine Una volta che iniziate a farlo non sar mai chiaro quando e dove fermarsi E non mettete mai ingraziamenti nei commenti al codice ci sarebbe solo una distrazione dal proposito principale dei commenti che aiutare il lettore a capire il codice e Meno qualcuno coinvolto nel progetto pi appropriato ringrazialo per qualcosa che ha fatto Ci potrebbe suonare contrario all intuito ma in linea con l opinione che l esprimere ringraziamenti qualcosa che voi fate quando qualcuno contribuisce ancora di pi di quanto voi pensavate che facesse Cos ringraziare costantemente i collaboratori regolari perch fanno ci che regolarmente fanno significherebbe esprimere una minore aspettativa su di loro di quanto essi la hanno di se stessi Se mai voi volete puntare all effetto opposto Ci sono eccezioni occasionali a questa regola E accettabile ringraziare qualcuno perch occupa soddisfacentemente il suo ruolo previsto qu
239. el confezionamento della relativa applicazione La presentazione e il confezionamento dell applicazione relativa richiedono una larga serie di compiti che girano tutti intorno al tema di ridurre la difficolt di chi entra nel progetto Rendere il progetto invitante per i non iniziati significa scrivere un documentazione per l utente e per lo sviluppatore metter su un sito che sia di informazione per i nuovi arrivati automatizzare la compilazione e l installazione quanto pi sia possibile ecc Molti programmatori purtroppo trattano questo compito come se fosse secondario rispetto alla scrittura del codice C una duplice ragione perch questo avviene in primo luogo questo pu essere percepito come un lavoro di poco conto perch 1 suoi benefici sono pi visibili a coloro che hanno meno familiarit col progetto e viceversa Dopotutto coloro che sviluppano il progetto non hanno bisogno dell applicazione relativa Essi sanno gi come installare gestire e usare il software perch lo hanno scritto In secondo luogo le abilit richieste per fare una presentazione e confezionare la relativa applicazione sono spesso completamente differenti da quelle richieste per scrivere codice Le persone tendono a focalizzarsi su ci in cui essi sono brave anche se potrebbe servire di pi al progetto spendere tempo su ci a cui esse sono meno adatte Capitolo 2 Partenza discute in dettaglio sulla presentazione e sul confezionamento dell applicazione e spiega p
240. el vostro progetto In questi tempi chiunque si aspetter che almeno il codice sorgente del vostro progetto sia sotto controllo di versione e probabilmente non prender il progetto seriamente se questo non usa il controllo di versione con almeno le minime competenze La ragione per cui il controllo di versione cos universale che aiuta potenzialmente ogni aspetto della gestione di un progetto comunicazioni tra sviluppatori gestione dei rilasci gestione dei bug stabilit del codice e tentativi di sviluppo sperimentali e attribuzione e autorizzazione di cambiamenti da parte di alcuni sviluppatori Il controllo di versione mette a disposizione un centro di coordinamento per tutte queste aree Il cuore del controllo di versione la a central coordinating force among all of these areas The core of gestione dei cambiamenti change management che identifica ogni cambiamento apportato ai file del progetto annotando ogni cambiamento con metadati quali la data di modifica e l autore e quindi replicando questi fatti a chiunque chieda in qualunque modo sia chiesto E un meccanismo di comunicazione dove un cambiamento l unit base di informazione Questa sezione non discute tutti gli aspetti dell uso del controllo di versione E una cosa cos pervasiva che deve essere trattata per argomento lungo tutto il libro Qui ci concentreremo sulla scelta e sulla configurazione di un sistema di controllo di versione in modo da incoraggiare lo sviluppo
241. ema di controllo di versione I due sistemi di controllo di versione pi popolari nel mondo del free software sono Concurrent Versions System CVS http www cvshome org e Subversion SVN http subversion tigris org CVS c da molto tempo La maggior parte degli sviluppatori esperti ne hanno gi familiarit fa pi o meno cosa di cui avete bisogno e dal momento che stato popolare per molto tempo probabilmente non finirete in nessun lungo dibattito sul fatto che sia la scelta giusta o meno Comunque CVS ha alcuni svantaggi Non fornisce un modo semplice per riferirsi a modifiche che coinvolgono diversi file non vi permette di rinominare o copiare file sotto il controllo di versione quindi se avete bisogno di riorganizzare il vostro albero del codice dopo l inizio del progetto pu essere una vera sofferenza ha un mediocre supporto al merging unione non maneggia molto bene grossi file o file binari e alcune operazioni sono lente quando un gran numero di file coinvolto Nessuna delle crepe di CVS fatale ed tuttora abbastanza popolare Ad ogni modo negli ultimi anni il pi recente Subversion ha guadagnato terreno soprattutto nei progetti pi nuovi Se state iniziando un nuovo progetto raccomando Subversion Dall altro lato dato che sono coinvolto nel progetto Subversion la mia oggettivit pu essere giustamente messa in discussione E negli ultimi anni alcuni nuovi sistemi di controllo open source hanno fatto
242. email distru Non si pu garantire che le comunicazioni email siano sicure e senza errori dato che le informazioni possono essere intercettate corrotte stralciate perse distrutte in ritardo o incomplete o contenenti virus Non ci assumiamo la responsabilit di nessuno di questi fatti o delle loro conseguenze con noi via email accetta il rischio di farlo Chiunque co Quando inviate ai nostri clienti tutti le opinioni o i consigli contenuti in ques email ed ogni allegato sono soggetti ai termini e alle condizioni espresse nella 1 di ingaggio del cliente in uso a Deloitte amp Touche LLP Opinioni conclusioni e altre informazioni in questa email e tutti gli allegati ch riguardano gli affari ufficiali della ditta non sono da lei forniti n Per qualcuno che si mostra appena per chiedere qualcosa ogni tanto questo enorme disclaimer sembra un po strano ma probabilmente non fa male Comunque se questa persona volesse partecipare attivamente al progetto questa sbrodolata legale inizierebbe ad avere effetti pi insidiosi Manderebbe almeno due segnali potenzialmente distruttivi primo che questa persona non ha pieno controllo dei suoi strumenti intrappolato in qualche programma di posta aziendale che appioppa un noioso messaggio alla fine di ogni email e non ha avuto modo di evitarlo e secondo che ha poco o nessun supporto organizzativo per le sue attivit di software libero Si c
243. en scritto e che sia improbabile che causi nuovi bugs ma vota contro la sua inclusione nella micro release semplicemente perch troppo grossa magari apporta nuove funzionalit o in qualche modo sottile non riesce a seguire completamente le linee guida di compatibilit Io occasionalmente ho visto anche sviluppatori porre il veto a qualcosa semplicemente perch avevano una sensazione viscerale che il cambiamento avesse bisogno di ulteriori prove anche se essi non potevano individuare bugs in esse con un esame interno Le persone si lagnavano un poco ma il veto resisteva e il cambiamento non veniva incluso nella release non ricordo se qualche bug veniva trovato o no in una ulteriore prova comunque Portare avanti una stabilizzazione di release in collaborazione Se il vostro progetto opta per un sistema di voto per il cambiamento imperativo che i meccanismi di organizzazione delle schede di voto e di votare sia il pi adatto possibile Anche se c una pletora di software open source disponibile in pratica la cosa pi facile da fare giusto preparare nel ramo di release un file di testo chiamato STATO or VOTI o qualcosa di simile Questo file elenca ogni cambiamento proposto per l inclusione insieme a tutti i voti a favore e contro pi eventuali note o commenti Proporre un cambiamento non significa necessariamente votarlo strada facendo sebbene le due cose vadano insieme Una voce in un tale file appare cos r2401 iss
244. eno di avere un obiettivo sviluppo o ultimo per le pi recenti fonti di sviluppo poich alcune persone non solo sviluppatori attivi rimangano avanti rispetto alla release ufficiale 133 Confezione Rilascio e Sviluppo Quotidiano Le Releases di Sicurezza La maggior parte dei dettagli sulla gestione dei bug sulla sicurezza era trattata in sezione chiamata Annunciare le Vulnerabilit della Sicurezza in Capitolo 6 Comunicazione ma l ci sono dettagli specifici per creare releases di sicurezza Una release di sicurezza una release fatta solo per chiudere falle nella sicurezza Il codice che corregge 1 bugs non pu essere reso pubblico finch la release non disponibile il che significa non solo che i bugs non possono essere inviati al deposito fino al giorno della release ma anche che la release non pu essere testata pubblicamente prima che esca Ovviamente gli sviluppatori possono esaminare i bugs fra di loro e testare la release in privato ma la diffusione nel mondo del testing reale non possibile A causa di questa mancanza di testing una release sulla sicurezza dovrebbe sempre essere fatta di alcune releases esistenti pi le correzioni dei bugs di sicurezza con nessun altro cambiamento Questo perch pi cambiamenti inviate senza testing pi probabilmente quell unico fra essi causer un nuovo bug forse un nuovo bug di sicurezza La prudenza anche di famiglia per gli amministratori che posso
245. entare piccole voi tenete una piccola tolleranza ma non troppo Le prossime sue sezioni parlano delle due convenzioni pi largamente usate La Strategia Semplice La maggior parte dei progetti ha delle regole su che tipo di cambiamenti sono permessi nella release se uno sta incrementando solo il micro numero differenti regole per il numero minore e ancora differenti regole per il numero maggiore Non c uno standard stabilito per queste regole ancora ma qui io descriver una politica che stata usata con successo da pi di un progetto Voi potete giusto adottare questa politica nei vostri porgetti ma anche se non lo volete questo tuttavia un buon esempio del tipo di informazione che i numeri di release dovrebbero portare con s Questa politica adattata dal sistema di numerazione usato dal progetto APR vedere http apr apache org versioning html 1 I cambiamenti dei micro numeri cio i cambiamenti alla stessa linea minore devono essere sia in avanti compatibili che indietro compatibili Cio i cambiamenti dovrebbero essere solo le correzioni di bugs o accrescimenti molto piccoli delle funzionalit esistenti Nuove funzionalit non dovrebbero essere introdotte in una micro release 2 Cambiamenti del numero minore cio entro la linea maggiore devono essere compatibili all indietro ma non necessariamente in avanti E normale aggiungere nuove funzionalit ad una release minore ma non troppe in un sola volta 3 Icamb
246. ente header 36 L Infrastruttura Tecnica Reply to sender email address here ma molti ce l hanno perch d ai destinatari un modo per raggiungere l autore assolutamente sicuro specialmente utile quando l autore ha dovuto inviare da un indirizzo diverso da quello a cui le risposte andrebbero inviate Alcuni software per la lettura delle email offrono semplici interfacce per riempire le email basandosi sul modello dell header dell oggetto della mail Questo porta la gente a richiedere che la mailing list aggiunga automaticamente un prefisso a tutti gli oggetti delle email cos che loro possano configurare i loro software per cercare tale prefisso e mettere le email nelle giusta cartella in modo automatico L idea che l autore scriva Oggetto fare la release 2 5 ma l email inviata nella mailing list sar del tipo Oggetto discuss lists example org fare la release 2 5 Anche se la maggior parte dei software di gestione offre l opzione di farlo raccomando fortemente di non abilitare questa opzione Il problema che risolve pu essere facilmente affrontato in altri modi meno intrusivi e il costo dello spazio sprecato nell header dell oggetto davvero troppo alto Gli utenti esperti di mailing list scorrono gli oggetti delle email in arrivo per decidere cosa leggere e o a cosa rispondere Aggiungere il nome della mailing list all inizio dell oggetto delle email pu spingere la parte destra dell oggetto fuori dall
247. enza BSD iii EA ieri Aa OAAS EESE EE 171 L Assegnazione del Copyright e la Propriet e 171 Non far Nulla siii aaa lalla Retna sian 172 Gli Accordi di Licenza per i Collaboratori ee 172 Trasfenmento del Copynght farro nana 173 Gli Schemi a Doppia Licenza iiinis e a alal 173 T B vett monen i nari E R daa idee le ali E R a ES 174 Ulteriori Risorse lille alii 177 A Sistemi di Controllo di Versione Liberi eee 178 B B s Tracker Liber tits held bel tie ease abe eb carte ela aa 182 C Perch dovrebbe importarmi di che colore sia la rastrelliera ce eeee ence eeeeeeeeeees 185 D Istruzioni di Esempio per Segnalare un Bug eee 189 Ee Copyright sapri otra Re O aa 191 Prefazione Perch ho scritto questo libro A volte partecipando ad una festa mi capita di pronunciare la frase Io scrivo software libero I primi tempi la gente mi guardava con aria perplessa adesso rispondono Ah si a codice aperto come Linux Annuisco compiaciuto S esattamente Ecco cosa faccio Provo una piacevole sensazione nel non essere pi considerato un alieno In passato la domanda successiva era generalmente scontata Come fai a guadagnare in questo modo Per rispondere mi toccava riassumere l economia dello sviluppo a codice aperto meglio noto come open source spiegavo che ci sono organizzazioni il cui interesse di risolvere un problema a
248. eparando la vita che ci si ripropone per una data release dalla data in cui deve uscire Cio cercare di indirizzare la discussione verso l argomento di quali releases il progetto sta creando nel futuro a medio termine e su quali funzionalit ci saranno in esse senza prima fare nessuna menzione delle date eccetto che approssimative congetture con largo margine di errore Fissando prima gli insiemi di funzionalit riducete la complessit delle discussione incentrata su una singola release e quindi ne migliorate la prevedibilit Questo crea anche una tendenza inerziale contro chiunque proponga di espandere la definizione della release aggiungendo nuove funzionalit e altre complicazioni Se i contenuti della release sono del tutto ben definiti onere di chi propone giustificarne l espansione anche se la data della release non pu essere ancora fissata Nella biografia multi volume di Thomas Jefferson efferson e il suo Tempo Dumas Malone racconta la storia di come Jefferson gest il primo meeting tenutosi per decidere l organizzazione della futura Universit della Virginia L Universit aveva avuto l idea di Jefferson al primo posto ma come nel caso di ogni luogo non solo nei progetti open source molti altri gruppi erano saliti sul palco rapidamente ognuno coi propri interessi e agende Quando essi si adunarono in quel primo meeting per parlare delle cose Jefferson si assicur con i disegni di una meticolosa architettura prep
249. er Alcuni bug tracker possono controllare le mailing list e fare il log automatico di tutte le email che riguardano un problema noto Tipicamente lo fanno riconoscendo il numero identificativo del problema nell oggetto della email da che parte di una stringa particolare gli sviluppatori imparano ad includere queste stringhe nelle loro email per attrarre l attenzione del bug tracker Il bug tracker pu o salvare la email per intero o ancora meglio solo registrare un riferimento alla mail nel normale archivio della mailing list In entrambi i modi questa una funzionalit molto utile se il vostro tracker ce l ha fate in modo sia di attivarla e sia di ricordare alla gente di sfruttarla Pre Filtraggio del Bug Tracker La maggior parte dei database dei problemi alla fine soffre dello stesso problema un distruttivo carico di problemi duplicati o non validi registrati da ben intenzionati ma inesperti o malinformati utenti Il primo passo nel combattere questa tendenza solitamente mettere un messaggio in evidenza sulla pagina iniziale del bug tracker spiegando come dire se un bug davvero tale come fare ricerche per vedere se gi stato registrato e infine come effettivamente riportarlo se si ancora convinti che sia un nuovo bug Questo abbasser il livello del rumore per un po ma non appena il numero di utenti crescer il problema infine ritorner Nessun singolo utente pu essere incolpato di questo Ognuno sta solo prov
250. era persino migliore come se fosse stato suo compito introdurre un sacco di altra gente studenti nel sistema in modo che egli un l esperienza di tanta gente che qualcosa che fu una felice avvenimento e che probabilmente difficile da raggiungere nella maggior parte dei casi Procurare l Hosting Banda Per un progetto che non stia usando un hosting confezionato gratuito vedere sezione chiamata Canned Hosting in Capitolo 3 L Infrastruttura Tecnica procurare un server e una connessione a un netwoork e in modo molto rilevante un sistema di aiuto all amministrazione pu essere di significativa assistenza Anche se questo tutto quello che la vostra organizzazione fa per il progetto pu essere moderatamente un modo efficace per ottenere una buona atmosfera di pubbliche relazioni sebbene ci non porter ad una influenza sulla direzione del progetto a che fare con la vostra compagnia anche se voi non contribuite per nulla allo sviluppo Il problema gli sviluppatori sono al corrente di questa tendenza associativa eccessiva e possono non essere contenti di avere il loro progetto sul vostro dominio a meno che voi non immettiate pi risorse che non la sola banda Dopotutto ci sono un sacco di posti che danno hosting di questi tempi La comunit pu eventualmente essere del parere che la relativa cattiva assegnazione del riconoscimento non equivale alla convenienza ottenuta con l hosting e trasferire il progetto altro
251. erch cruciale che essi abbiano la priorit in una una corretta partenza del progetto Poi viene la credenza errata che in un progetto open source occorra un una piccola o nessuna organizzazione o al contrario che funzioner la stessa organizzazione di un progetto non aperto L organizzazione in un progetto open source non sempre visibile eccetto che nei progetti di successo usualmente avviene dietro le quinte in una forma o nell altra Un esperimento in apparenza insignificante sufficiente a mostrare come Un progetto open source fatto di un numero casuale di programmatori una gi nota categoria di liberi pensatori che molto verosimilmente non si sono mai incontrati e che possono avere differenti obbiettivi nel lavorare al progetto L esperimento pensato consiste nell immaginare cosa succederebbe ad un simile gruppo senza una organizzazione A meno di un miracolo fallirebbe o scomparirebbe dalla vista molto rapidamente Le cose semplicemente non girerebbero da se per quanto noi vorremmo altrimenti Ma l organizzazione malgrado possa essere alquanto attiva spesso irregolare scarsa riservata La sola cosa che tiene unito un gruppo di sviluppatori il pensiero condiviso che si possa fare di pi in concerto che non individualmente Cos l obiettivo dell organizzazione sopratutto assicurarsi che essi continuino a pensare questo stabilendo standards di comunicazione rendendo sicuramente utile che gli sviluppatori non siano ema
252. ere al suo team di sviluppo di focalizzarsi sula prossima release mettendo da parte lo sviluppo di nuove funzionalit e la correzione di bugs non critici fino a che il rilascio non avvenuto I gruppi di volontari no sono cos monolitici La gente lavora al progetto per tutti i tipi di motivazioni e quelli non interessati a favorire una data release vogliono continuare il lavoro di sviluppo mentre la release sta andando avanti Poich lo sviluppo non si ferma i processi di rilascio tendono a impiegare pi tempo ma sono meno distruttivi dei processi di rilascio commerciali Questo in po come ritrovare la strada maestra Ci sono due modi di riparare una strada potete chiuderla completamente cos che il gruppo che sta riparando la strada maestra pu sciamare su di essa alla piena capacit finch il problema risolto o potete lavorare su una coppia di corsie alla volta lasciando le altre aperte al traffico Il primo modo molto efficace per il gruppo di riparazione but not for anyone else ma non per gli altri la strada chiusa completamente fino a che il lavoro non completato Il secondo modo richiede molto pi tempo comporta pi problemi per il gruppo di riparazione ora essi devono lavorare con meno gente e meno equipaggiamento in condizioni pi ristrette con bandiere per rallentare e dirigere il traffico ecc ma almeno la strada rimane utilizzabile sebbene non con la sua piena capacit I progetti open source tend
253. ere drafted utilizing the terminology of the Berne Convention for amended on Sept WIPO Copyright Phonograms Trea as revised on take effect in terms are sough provisions of t the applicable the relevant jurisdict the Protection of Literary and Artistic Works as ember 28 1979 the Rome Convention of 1961 the Treaty of 1996 the WIPO Performances and ty of 1996 and the Universal Copyright Convention July 24 1971 These rights and subject matter ion in which the License granted under applicable copyright rights not gran t to be enforced according to the corresponding he implementation of those treaty provisions in national law If the standard suite of rights law includes additional ted under this License such additional rights 198 Copyright are deemed to be included in the License this License is not intended to restrict the license of any rights under applicable law Creative Commons Notice Creative Commons is not a party to this License hatsoever in connectio hatsoever includi ncidental or consequen icense Notwithstandin ommons has expressly i n with the Work Creati tial damages arising in g the foregoing two 2 dentified itself as the w 1 w i 1 C S hall have all rights a Except for the limi Work is licensed under ted purpose of indicating nd obligations of Licen th by either party us the C
254. ero bisogno di essere esaminate e coordinate ma il nascente successo del software libero nel mondo del business rese il problema ineludibile Nel 1998 il termine open source fu creato in alternativa a libero da una colizione si programmatori che alla fine diventarono l Open Source Initiative OSD L OSI si convinse non solo che il software libero era potenzialmente portatore di confusione ma che la parola libero era appunto un sintomo di un problema generale che il movimento aveva bisogno di un programma di marketing per agganciarsi al mondo delle grandi imprese e che il discorso della morale e di benefici sociali non avrebbe mai preso il volo al tavolo dei consigli di amministrazione Nelle loro parole La Open Source Initiative un programma di marketing per il software libero Esso un montare per il software libero su basi pragmatiche piuttosto che su una barca ideologica che fa rumore La sostanza prevalente non cambiata la tendenza a perdere e il simbolismo si L involucro che deve essere fatto per molte tecniche non il concetto di open source ma il nome Perch non chiamarlo come facevamo software libero Una ragione diretta che il termine software libero facilmente mal compreso in modi che portano al conflitto Ma la vera ragione del cambiamento di etichetta e di tipo commerciale Stiamo cercando di agganciare la nostra concezione a quella del mondo delle grosse imprese Noi abbiamo un pr
255. ersi alla mailing list solo per pubblicare un solo messaggio Secondo anche gli iscritti possono a volte pubblicare da un indirizzo diverso da quello con cui si sono iscritti Gli indirizzi email non sono un metodo affidabile per identificare le persone e non dovrebbero essere trattati come tali 2 Filtrare i messaggi attraverso software che filtrano spam 34 L Infrastruttura Tecnica Se il software di gestione lo rende possibile molti lo fanno potete avere i messaggi filtrati da un apposito software Il filtro automatico per lo spam non perfetto e non lo sar mai dato che ci sar una corsa alle armi senza fine tra spammer e creatori di filtri Comunque pu considerevolmente ridurre la quantit di spam che passa attraverso la coda di moderazione e dato che pi lunga la coda e pi tempo gli esseri umani ci mettono a controllarla ogni quantit di filtro automatico vantaggiosa Non c spazio qui per le istruzioni dettagliate su come configurare i filtri per lo spam Dovrete consultare la documentazione del vostro software di gestione mailing list per questo vedi sezione chiamata Software pi avanti in questo capitolo Tali software a volte arrivano con alcune funzionalit precostruite di prevenzione spam ma potreste voler aggiungere alcuni filtri di terze parti Ho avuto buone esperienze con questi due SpamAssassin http spamassassin apache org e SpamProbe http spamprobe sourceforge net Questo non
256. erso azioni che giovano agli obiettivi del gruppo Queste norme non nasceranno da se stesse Per esempio in qualche progetto alcuni sviluppatori esperti sanno probabilmente farne il nome su due piedi le persone a quanto pare ritengono che lo status si acquisti postando frequentemente e con ricchezza di parole Essi non sono pervenuti a questa conclusione per caso Ci sono arrivati perch sono gratificati dal dal fare intricate lunghe trattazioni indipendentemente dal fatto che ci aiuti o meno il progetto Poi ci sono alcune tecniche per creare un atmosfera in cui le azioni per acquisire uno status sono azioni costruttive La Delega DLa delega non solo un modo per suddividere il carico di lavoro esso anche uno strumento politico e sociale Considerate tutte le conseguenze di quando chiedete a qualcuno di fare qualcosa Il pi ovvio effetto che se accetta lui fa il lavoro e voi no Ma un altra conseguenza che egli fa sapere che voi avete avuto fiducia in lui nell affidargli il compito Inoltre se avete fatto la richiesta in un forum pubblico allora egli sa che gli altri nel gruppo sono anche al corrente di quella fiducia Egli pu aver la sensazione di una certa pressione ad accettare il che significa che dovete chiedere in un modo che gli permetta di declinare gentilmente se non vuole realmente il lavoro Se il compito richiede coordinazione con gli altri nel progetto voi in realt state chiedendo che egli diventi pi co
257. essa serie di problemi ai quali stavamo pensando con difficolt per molti mesi e francamente dubitavamo che ognuno sulla mailing list da poco creata potesse dare un contributo effettivo alla discussione Cos prendemmo pigramente la via e incominciammo a battere su idee tecniche avanti e indietro in emails private finch uno che osservava il progetto ebbe il sentore di quello che stava avvenendo e chiese che la discussione fosse spostata su una mailing list pubblica Roteando un poco gli occhi lo facemmo e fummo stupiti dai commenti perspicaci e dai suggerimenti che presto ne vennero In molti casi le persone fornirono idee che non ci erano mai venute in mente Ci dimostr che c erano persone molto acute nella mailing list Esse stavano solo aspettando si essere correttamente allettate E vero che le discussioni che ne vennero fuori furono pi lunghe di quanto lo sarebbero state se la conversazione fosse stata tenuta privata ma esse furono talmente molto pi costruttive che fu un valore il tempo in pi Senza scendere in generalizzazioni tipo il gruppo sempre pi acuto dell individuo agitando le mani noi tutti abbiamo incontrato abbastanza i gruppi per saperlo piuttosto bene deve darsi per acquisito che ci sono certe attivit in cui il gruppo eccelle La valutazione professionale del lavoro dei colleghi una di queste la produzione veloce di un gran numero di idee un altra La qualit delle idee dipende dalla Non siamo anco
258. essere ovvio nel guardare ai links che portano alla documentazione utente che essi portano alla documentazione utente e non per esempio alla documentazione sviluppatore Il mandare avanti un progetto consiste in parte nel fornire informazioni ma anche nel dare comodit La sola presenza di certe offerte standard in luoghi determinati riassicura gli utilizzatori e gli sviluppatori che stanno decidendo se essere coinvolti Ci vuol dire che questo progetto ha la caratteristica di procedere insieme anticipa le domande che la gente far e ha fatto lo sforzo di rispondere loro in modo che richiesto un minimo sforzo da parte di chi fa le domande Creando questa atmosfera di preparazione il progetto d questo messaggio Il vostro tempo non sar sprecato se sarete coinvolti che esattamente la cosa che la gente vuole sentirsi dire Ma Prima Guardiamoci Intorno Prima di partire con un nuovo progetto c un importante avvertimento Sempre guardarci intorno per vedere se c un progetto esistente che fa ci che noi vogliamo Sono molto buone le possibilit che un problema che volete risolvere ora qualcun altro lo ha voluto risolvere prima di voi Se lo hanno risolto e hanno rilasciato il loro codice sotto una licenza libera allora non c motivo per voi di reinventare la ruota oggi Ci sono eccezioni certamente se volete avviare un progetto per una esigenza educativa un codice preesistente non vi aiuterebbe oppure pu essere che
259. esso state progettando di rilasciare la versione 2 0 di Scanley a met Agosto 2005 Potete sempre controllare http www scanley org status html per aggiornamenti La principale funzionalit sar la ricerca con le espressioni regolari Le altre nuove funzionalit includono Ci saranno anche varie correzioni di bug incluso Il primo paragrafo breve d i due pi importanti pezzi di informazione la data del rilascio e la principale nuova funzionalit e un URL da visitare per ulteriori notizie Se quel paragrafo la sola notizia che attraversa lo schermo di qualcuno state ancora facendo molto bene Il resto della email potrebbe andar perso senza aver effetto sulla sostanza del contenuto Certo a volte le persone vorranno linkare all intera email comunque ma appunto come spesso essi ne citeranno solo una piccola parte Dato che l ultima ipotesi una possibilit potete anche renderla facile per loro e nel patteggiare avere qualche influenza su ci che viene citato Annunciare le Vulnerabilit della Sicurezza Gestire le vulnerabilit della sicurezza differente dal gestire ogni altro tipo di report di bug Nel software libero fare le cose apertamente e con trasparenza normale quasi come un credo religioso Ogni passo della gestione standard dei bug visibile a tutti quelli che hanno la cura di di guardare l arrivo del report iniziale la conseguente discussione e l eventuale correzione I bug della sicurezz
260. este voler chiedere privatamente alla gente che stata quasi sempre zitta ma che sospettate che sarebbe d accordo con la maggioranza Non dite nulla che suggerisca che i dissidenti volessero deliberatamente provare ad accrescere l impressione che stavano dando Ci sono possibilit che non lo facessero e se anche lo avessero fatto non c nessun vantaggio strategico nel puntualizzarlo Tutto ci di cui avete bisogno mostrare i veri numeri in un confronto faccia a faccia e la gente capir che la loro percezione della situazione non corrisponde alla realt Questo consiglio non vale solo per problemi con chiare posizioni pro e contro Vale in ogni discussione dove c confusione ma non chiaro che la maggior parte della gente consideri il problema in discussione un vero problema Dopo un po se siete d accordo che il problema non vale l azione potete vedere che ha fallito nell ottenere seguito anche se ha generato molte email potete semplicemente osservare pubblicamente che non c seguito Se l effetto minoranza rumorosa ha lavorato il vostro messaggio sembrer come un respiro di aria fresca L impressione della maggior parte della gente della disussione fino a quel momento sar stata in qualche modo confusa Huh di sicuro sembra che ci sia qualche grosso problema qui perch ci sono molti messaggi ma non riesco a vedere succedere nessun progresso Spiegando come la forma della discussione la faccia apparire pi turbolenta di
261. et un problema con la lingua inglese in una certa misura un problema per chiunque L incomprensione sulla parola free era cos prevalente che i programmatori di software libero alla fine elaborarono una formula standard nella risposta E Uno pu imporre un costo alle copie di software libero distribuite ma dal momento che non pu impedire al destinatario di offrire il software a costo zero dopo il prezzo forzato a scendere completamente a zero TI codice sorgente di Netscape Navigator fu alla fine rilasciato come licenza open source nel 1998 e divent il fondamento di Mozilla Vedere http www mozilla org Introduzione libero nel senso di in in regime di liberta il pensiero libert di parola non il pensiero birra gratis Comunque doverlo spiegare ancora e ancora stancante Molti programmatori ebbero la sensazione non ingiustificata che l ambiguit della parola free stava ostacolando la comprensione di questo software Ma il problema divent pi profondo di cos La parola free port con s una inevitabile connotazione morale Se in effetti la libert era un fine non era importante il fatto che che potesse succedere che il software libero fosse migliore oppure pi profittevole per certi affari in certe circostanze Quelli erano graditi effetti secondari di una causa che non era in fondo n tecnica n mercantile ma morale Inoltre la collocazione di libero nel senso di in libert ev
262. ete Rilassare i 65 Quando Il Consenso Non Pu Essere Raggiunto Votate eee cree ee eeee eee 66 Quando Votare ariani iodio ariana 66 Chi Vota AIR I et 67 Sondaggi Contro Voti i ciunstia intel alain data 68 TEN GUI i certosino deli dorso iso fol oe li due ie ro 68 Metter Gi Tutto Per Iscritto porno n aria 69 Ds I Soldi incanalare 71 Tipid Coinvolgimento sazia Lentiai Rei ie arri REST dase adeeb ade dawn geebedenedaseeey dacs ASit 72 Pagate Peril Eunpo Termin i iena E E R O A E TE a pR R 73 Apparite Come Molti Non Come Uno Solo ii 74 Siate Aperti Verso Le Vostre Motivazioni e 75 Il Danaro Non Pu Comprare Ci Che Amate eee 76 La Contrattazione ARTO I ni 77 Revisione e Approvazione Dei Cambiamenti eee 79 Finanziare Attivit di Non Programmazione e 80 La Garanzia Della Qualit cio Eseguire Prove Professionali 81 La Consulenza Legale e la Difesa i 82 La Documentazione e l Usabilit ie 82 Procurare Hosting Banda 1 ccsivice tes teste iaia leali 83 Te Market osre geek een oriali alan iaia cli 83 Ricordate Che Siete Osservati ie 83 Non Colpite Il Prodotto Open Source Concorrente sees eeeeeeeeeeeeees 85 0 Comunicazione i crac ao 86 Del Quello Che scrivi eienen
263. fferenza fra le licenze si riassume in due spesso ricorrenti questioni compatibilit con licenze proprietarie Alcune licenze libere permettono al codice da esse coperto di essere usato in programmi proprietari Ci non intacca i termini della licenza del software proprietario sempre proprietaria succede solo 166 Licenze Diritti d Autore e Brevetti che contiene del software non proprietario La licenza Apache la licenza X Consortium la licenza stile BSD e la licenza stile MIT sono tutte licenze proprietarie compatibili compatibilit con altre licenze libere La maggior parte delle licenze libere sono compatibili l una con l altra nel senso che il codice sotto una licenza pu essere combinato con il codice sotto un altra licenza e il risultato distribuito sotto un altra licenza senza violare i termini delle altre La principale eccezione a queste la GNU General Public License che richiede che ogni opera che usa un codice rilasciato sotto la GPL sia distribuito sotto la GPL e senza che si aggiunga ulteriore restrizione oltre quello che la GPL richiede La GPL compatibile con alcune licenze libere ma non con altre Ci discusso con maggiori dettagli in sezione chiamata La GPL e la compatibilit di Licenza pi avanti in questo capitolo imposizione del riconoscimento Alcune licenze libere stabiliscono che un uso del codice protetto sia accompagnato da una nota la cui posizione e presentazione sono usualmente spe
264. ft Una licenza che usa la legge sul copyright per ottenere un risultato opposto al copyright tradizionale A seconda di quello che chiedete questo significa sia licenze che permettono le libert in discussione qui sia pi strettamente licenze che non solo permettono quelle libert ma che le obbligano con lo stipulare che le libert devono viaggiare con l opera La Free Software Foundation usa esclusivamente la seconda definizione altrove uguale la maggior parte delle persone usano il termine allo stesso modo della Free Software Foundation ma altre inclusi coloro ohe scrivono per i media prevalenti tendono ad usare la prima definizione Non chiaro che chiunque usi il termine sia cosciente che bisogna fare la distinzione L esempio canonico di pi stretta e decisa definizione la GNU General Public License che stabilisce che ogni lavoro derivato deve essere rilasciato sotto la GPL vedere sezione chiamata La GPL e la compatibilit di Licenza pi avanti in questo capitolo per maggiori ragguagli Aspetti Delle Licenze Sebbene ci siano molte licenze di software libero disponibili nei punti pi importati esse dicono la stessa cosa che chiunque pu modificare il codice che chiunque pu redistribuirlo sia nella forma originale che in quella modificata e che i detentori del copyright non forniscono alcuna garanzia evitare responsabilit dato che le persone potrebbero far girare versioni modificate senza conoscerle La di
265. g me nature hic n wi without words works expressed by a process a of drawing painting architec lithography a photographic work expressed by a process analogous to photography a work of applied art an illustration map plan sketch or three dimensional work relative to geography topography architecture or science a performance a broadcast a phonogram a compilation of da to the extent it is protected as a copyrightable work or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work La You means an individual or entity exercising rights under this License who has License with res permission from Licens not previously violated the terms of this pect to the Work or who has received express the Licensor to exercise rights under this despit Publicly Perfor a previous violation m means to perform public recitations of the Work and to communicate to the public those public recitations by any means or public digital p Works in such a Works from a pla process including by wire or wireless means or erformances to make available to the public way that members of the public may access these ce and at a place individually chosen by them 193 Copyright to perform t t including by rebroadcast images x Reproduce 12 a ncluding wi means to make copies of
266. getto di Subversion noi stabilimmo che r12908 significasse revisione 12908 nel deposito del controllo di versione Il prefisso minuscolo r facile da battere e poich la met dell altezza delle cifre esso rende un blocco di testo facilmente riconoscibile quando combinato con le cifre Certo quando una email di invio arriva con un messaggio di log come questo r12908 qsimon 2005 02 02 14 15 06 0600 Mer 02 Feb 2005 4 righe Patch dal collaboratore J Casuale lt jrcontrib gmail com gt 106 Comunicazione trunk contrib client side psvn psvn el Corretti alcuni errori di stampa dalla revisione 12828 parte della revisione di questo invio per dire Strada facendo prego usate r12828 non revisione 12828 quando vi riferite al cambiamento passato Questa non pedanteria altrettanto importante per l analisi sintattica automatica quanto per i lettori umani Seguendo il principio generale che ci dovrebbero essere dei metodi di riferimento canonico e che questi metodi di riferimento dovrebbero essere usati coerentemente ovunque il progetto in effetti esporta certi standards Questi standards mettono la gente in grado di scrivere strumenti che presentino le comunicazioni del progetto in modi pi usabili per esempio un revisione formattata come r12828 potrebbe essere trasformata in un link vivo al sistema di osservazione del deposito Ci sarebbe piuttosto difficile se la revi
267. ghe Prima di tutto lasciatemi dire che Subversion fantastico e io apprezzo veramente l impegno di chiunque vi sia coinvolto quindi ritorn a redarguire il progetto di nuovo perch non forniva i binari mentre non ancora si offriva volontario per fare qualcosa a proposito Dopodich circa 50 persone gli saltarono addosso e non so dire se veramente ci feci caso La politica di zero tolleranza verso la maleducazione sostenuta in sezione chiamata Stroncate sul Nascere la Scortesia in Capitolo 2 Partenza si applica a persone con cui il progetto ha una prolungata interazione o vorrebbe averla Ma quando qualcuno rende chiaro dall inizio che sta diventando una fontana di bile non vale la pena di farlo sentire il benvenuto Tali situazioni sono fortunatamente piuttosto rare e sono notevolmente rare in progetti e che fanno uno sforzo per ingaggiare utilizzatori con cortesia e costruttivamente sin dalla loro prima interazione Suddividete i Compiti di Management e i Compiti Tecnici Suddividete i Compiti di Management e i Compiti Tecnici Suddividere il carico del management cos come il carico tecnico del mandare avanti il progetto Nella misura in cui il progetto diventa pi complesso sempre pi il lavoro quello di amministrare la gente e il flusso delle informazioni Non c motivo per non suddividere quel carico e la suddivisione non richiede una gerarchia dall alto in basso ci che avviene in pratica tend
268. gio originale Eppure fui felice di vedere la email di Shane e non presi la sua concisione come segno di nient altro se non essere una persona occupata Il mero fatto che stava chiedendo domande invece di ignorare il mio messaggio significava che voleva spendere del tempo sul mio problema Tutti i lettori reagiranno positivamente al suo stile Non necessariamente dipende dalla persona e dal contesto Per esempio se qualcuno ha appena scritto riconoscendo di aver fatto un errore magari aveva segnalato un bug e sapete dalla vostra esperienza passata che questa persona tende ad essere un po 89 Comunicazione insicura allora mentre potreste scrivere una risposta compatta dovreste fare in modo di completarlo con un qualche tipo di presa di coscienza dei suoi sentimenti Il grosso della vostra risposta pu essere una precisa ingegneristica analisi della situazione concisa quanto volete Ma alla fine scrivete qualcosa che indichi che la vostra concisione non deve essere presa per freddezza Per esempio se avete appena dato una gran quantit di consigli esattamente su come la persona deve riparare il bug poi concludete con Buona fortuna lt il vostro nome gt per indicare che gli augurate del bene e che non pazzo Uno smiley strategicamente piazzato o altro genere di emoticon pu a volte essere anche abbastanza per rassicurare un interlocutore Pu sembrare strano focalizzarsi tanto sui sentimenti dei partecipanti quanto sull
269. giro a toccare ogni file a cambiare quanto basta per creare una quantit effettiva di tag in modo che il loro nome appaia dappertutto Ci sono modo migliori di dare riconoscimenti e la nostra preferenza di usare questi Da un punto di vista tecnico i tag author non sono necessari se volete trovare chi ha scritto un pezzo particolare di codice pu essere consultato il sistema del controllo di versione per capirlo I tags author tendono anche ad essere antiquati Volete veramente essere contattati in privato su un pezzo di codice che avete scritto cinque anni fa ed essere felici di averlo dimenticato I files sorgente di codice di un progetto sono il cuore della sua identit Essi dovrebbero rispecchiare il fatto che la comunit degli sviluppatori nel complesso responsabile per essi e non divisa in piccoli feudi La gente talvolta parla in favore dei tags author o mantainer nei files sorgente sulla base del fatto che essi danno un riconoscimento visibile a quelli che hanno fatto la maggior parte del lavoro l Ci sono due problemi su questo argomento Primo i tags inevitabilmente sollevano la imbarazzante questione di quanto lavoro uno debba fare per vedere il suo nome elencato l pure Secondo essi aggiungono il problema del riconoscimento a quello della paternit aver fatto il lavoro in passato non implica la paternit dell aerea in cui il lavoro fu fatto ma difficile se non impossibile una tale conclusione quando 1 no
270. gli pu essere insoddisfatto ma cos anche per gli altri Il principale vantaggio del voto che finalmente sistema una questione in modo che ognuno possa andare avanti ma esso la sistema con un conto delle teste invece che con un dialogo razionale che porti tutti alla medesima conclusione Pi le persone hanno esperienza con i progetti open source meno desiderose le trovo di sistemare le cose col voto Invece essi cercheranno di esplorare soluzione non precedentemente considerate o arrivare a un compromesso pi forte di quanto avessero precedentemente pianificato Sono disponibili varie tecniche per impedire di arrivare ad un voto prematuro La pi ovvia semplicemente dire Io penso che non siete ancora pronti per il voto e spiegare perch no Un altra chiedere una informale non vincolante alzata di mano Se il responso tende chiaramente da una parte o dall altra ci spinger alcuni a volere subito un compromesso ovviando al bisogno di voto Ma il modo pi efficace semplicemente offrire una nuova soluzione o un nuovo punto di vista su una vecchia proposta in modo che le persone si occupino nuovamente dei problemi invece di ripetere solamente i vecchi argomenti In certi rari casi ognuno pu convenire che tutte le soluzioni di compromesso sono peggiori di quelle di non compromesso Quando ci avviene votare meno spiacevole sia perch pi probabile arrivare a una soluzione migliore sia perch la gente non si
271. grossi problemi ai vostri utenti Trattate bene queste persone che fanno i report e sperate che trattino bene voi Un altra persona che fa frequenti report di sicurezza il professionista della sicurezza uno che controlla il codice per campare e si mantiene con le ultime notizie sulle vulnerabilit della sicurezza Queste persone hanno di solito esperienza su tutti e due i lati della staccionata essi hanno ricevuto e mandato report magari pi della maggioranza degli sviluppatori nel vostro progetto Essi anche di solito danno anche una scadenza sulla correzione di una vulnerabilit prima che diventi pubblica Questa scadenza pu essere in un certo modo negoziabile ma questo tocca a chi manda il report le scadenze sono diventate riconosciute fra i professionisti della sicurezza in qualche grado come l unica via affidabile per ottenere che le organizzazioni affrontino i problemi di sicurezza tempestivamente Cos non trattate le scadenze da maleducati una tradizione che gode di buona reputazione e ci sono buone ragioni per questo Una volta che ne conoscete la seriet e l urgenza potete partire col lavoro della correzione A volte c un compromesso fra il fare una correzione elegantemente e il farla velocemente questo il perch dovete accordarvi sull urgenza prima di partire Mantenete la discussione ristretta ai membri della mailing list pi chi fece il report originariamente se lui vuole essere coinvolto a qualche sviluppat
272. gruppo QA pu rimediare a questo trovando bugs significativi e mettendo in archivio rapporti comprensibili d altra parte se i loro rapporti non sono almeno buoni quanto quelli provenienti dalla comunit degli utilizzatori regolari allora inutile averli in relazione direttamente con il team di sviluppo In un modo o nell altro una volta che esiste un pubblico problema il problema originale dovrebbe far riferimento al problema pubblico per il contenuto tecnico L organizzazione e gli sviluppatori pagati possono continuare ad annotare i problemi interni con commenti specifici della compagnia quanto necessario ma usare il problema pubblico per una informazione che dovrebbe essere disponibile per tutti Dovreste entrare in questo processo aspettandovi spese extra Mantenere due problemi per un bug naturalmente un lavoro maggiore che mantenerne uno Il beneficio che molti codificatori vedranno il rapporto e saranno capaci di contribuire a una soluzione La Consulenza Legale e la Difesa Le compagnie per profitto o noprofit sono quasi le uniche entit che pongono l attenzione sui complessi aspetti legali del software libero Gli sviluppatori individuali spesso capiscono le sottigliezze delle varie licenze open source ma non hanno il tempo o le risorse per seguire in dettaglio la legge sul copyright sul marchi o sul brevetto Se la vostra compagnia ha un dipartimento legale pu aiutare il progetto nel curare l aspetto legale del codice e
273. hat people can view the bug database through the lens of release scheduling These targets rarely remain static however As new bugs come in priorities sometimes get shifted around and issues must be moved from one milestone to another so that each release remains manageable This again is best done by people who have an overall sense of what s in the database and how various issues relate to each other Un altra cosa che i manager di problemi fanno segnalare quando i problemi diventano obsoleti A volte un bug corretto accidentalmente come parte di in cambiamento al software non correlato o a volte il progetto cambia la sua mentalit su fatto che un certo comportamento sia un errore Trovare i problemi obsoleti non facile il solo modo di farlo sistematicamente di fare una spazzata a tutti i problemi nel database Intere spazzate diventano sempre meno fattibili col tempo nella misura in cui cresce il numero dei problemi Dopo un certo limite il solo modo di mantenere in salute il database quello di usare un approccio dividi e conquista classificare immediatamente i problemi all arrivo e dirigerli all attenzione dello sviluppatore o del team Il destinatario allora si prende carico del problema per il resto della sua vita custodendolo verso la risoluzione o verso l oblio se necessario Quando il database cos grande il manager dei problemi diventa pi che un coordinatore complessivo spedendo meno tempo a guardare ad ogni pro
274. he che questo un nuovo modo di sviluppare nel progetto e che ci vorr un p di tempo per adattarsi La miglior cosa che voi possiate fare guidare con l esempio Se vedete che i vostri sviluppatori non rispondono a sufficienza alle domande dei novizi allora il dire loro di rispondere meglio non utile Pu darsi che essi non abbiano ancora una buona idea di ci che garantisce una reazione e di ci che non lo fa o potrebbe darsi che essi non abbiano idea di quanto privilegiare il codice nei confronti del nuovo carico della comunicazione esterna Il miglior modo di farli partecipare partecipare voi stessi Essere sulle mailing lists e accertarsi di rispondere ad alcune domande l Quando non avete l esperienza per rispondere abilmente a una domanda allora passate in maniera visibile la palla a uno sviluppatore che lo faccia e assicuratevi che egli dia una risposta o almeno che abbia una reazione Ci sar naturalmente la tentazione per lungo tempo di abbandonarsi a discussioni private poich quello era ci a cui erano abituati Assicuratevi di essere iscritti alle mailing lists interne in cui ci pu avvenire dimodoch possiate chiedere che tali discussioni siano spostate sulle liste pubbliche immediatamente Ci sono altre attivit a lungo termine relative all apertura di un progetto precedentemente chiuso Capitolo 4 L Infrastruttura Sociale e Politica esamina tecniche per mettere insieme con successo sviluppatori pagati e non
275. he contro i desideri dell autore originale richiesta per sostenere le dinamiche di un progetto open source Tutte le licenze discusse in questo capitolo sono DFSG conformi OSI approved Approvata dall Open Source Initiative Questo un altro testo largamente usato per dire se una liacenza permette tutte le necessarie libert La definizione di software open source si basa sulle linee guida del Debian Free Software e una licenza che ha una definizione quasi sempre ha l altra Ci sono state poche eccezioni negli anni ma riguardanti solo particolari licenze e nessuna di qualche rilevanza qui Diversamente dal progetto Debian l OSI conserva un elenco di tutte le licenze che ha approvato a http www opensource org licenses cosicch approvata OSI uno stato non ambiguo una licenza c o non c nella lista Anche la Free Software Foundation tiene aggiornata una lista delle licenza a La FSF classifica le licenza a http www fsf org licensing licenses license list html La FSF classifica le licenza non solo in base al fatto se sono libere ma se sono compatibili con la GNU General Public License La compatibilita GPL un importante argomento trattato in sezione chiamata La GPL e la compatibilita di Licenza pit avanti in questo capitolo proprietario closed source L opposto di free e open source Ci significa distribuito sotto i termini delle licenze tradizionali basate sul costo dove gli utilizzatori pagano per una c
276. he l organizzazione chiaramente non gli ha impedito di lasciare messaggi sulle mailing list ma ha fatto sembrare i suoi messaggi nettamente ostili come se il rischio di far uscire informazioni confidenziali debba smorzare tutte le altre priorit Se lavorate in un azienda che insiste nell aggiungere tali blocchi di firma a tutte le email in uscita allora cercate di avere un account email gratis come per esempio gmail google com www hotmail com o www yahoo com e usare questo come indirizzo per il progetto Evitare le Trappole Comuni Non mandare messaggi senza motivo Una trappola comune nella partecipazione a progetti in rete pensare che dobbiate rispondere a tutto Non dovete Prima di tutto solitamente ci saranno pi thread che vanno avanti di quelli a cui potete star dietro almeno dopo che il progetto ha passato i primi suoi mesi Secondo anche nei thread a cui avete deciso di partecipare la maggior parte delle cose che la gente dice non avr bisogno di risposta I forum di sviluppo in particolare tendono ad essere dominati da tre tipi di messaggi 1 Messaggi che propongono qualcosa di non banale 2 Messaggi che esprimono supporto od opposizione a qualcosa che qualcun altro ha detto 3 Messaggi di ricapitolazione Nessuno di questi richiede inerentemente di risposta in particolare se potete essere sicuri basandovi sull esperienza accumulata nei thread che qualcun altro probabilmente dir comunque cosa avreste detto Se sie
277. he la GNU AGPLv3 venga usata per ogni software che sar fatto girare su un network Notate che la AGPLv3 non direttamente compatibile con la GPLv2 mentre compatibile con la GPLv3 certo Comunque la maggior parte dei software sotto licenza GPLv2 contengono la clausola o ogni altra versione successiva cos voi potete tramutarla nella GPLv3 se e quando avete bisogno di mescolarli con codice AGPLv3 Comunque se avete bisogno di mescolarli con programmi strettamente sotto licenza GPLv2 cio senza la clausola o ogni altra versione successiva allora la AGPLv3 non funzioner Sebbene la storia della AGPLV3 sia un po complicata la licenza in se stessa semplice giusto la GPLv3 con una clausola extra sulla interazione col network L articolo della Wikipedia sulla AGPLVv3 eccellente http en wikipedia org wiki Affero_General_Public_License La GPL libera o non libera Una conseguenza della scelta della GPL la possibilita piccola ma non infinitamente piccola che voi stessi siate invischiati nella disputa se la GPL sia libera o meno dato che essa pone delle restrizioni su ci che potete fare con il codice cio la restrizione che il codice non pu essere redistribuito sotto ogni altra licenza Per qualcuno l esistenza di questa restrizione significa che la GPL meno libera di licenze pi permissive come la licenza MIT X Dove questo argomento funziona certamente che poich pi
278. i solo pochi progetti insistono su di esso Notare che anche anche sotto la propriet centralizzata del copyright il codice rimane libero perch le licenze open source non danno al detentore del copyright il diritto di rendere retroattivamente proprietarie tutte le copie del codice Cos anche se il progetto come entit legale facesse improvvisamente il dietro front e partisse con il distribuire tutto il codice sotto una licenza restrittiva ci non causerebbe un problema per la comunit pubblica Gli altri sviluppatori partirebbero con una diramazione basata sull ultima copia libera di codice e continuerebbe come se nulla fosse successo Poich essi sanno che possono farlo la maggior parte dei collaboratori cooperano quando loro viene chiesto di sottoscrivere un CLA o una assegnazione di copyright Non far Nulla La maggior parte dei progetti non raccolgono CLA o assegnazione di copyright dai loro collaboratori Invece accettano codice ogni qualvolta sembra ragionevolmente chiaro che il collaboratore abbia inteso che esso incorporato nel progetto In circostanze normali ci regolare Ma ogni tanto qualcuno pu decidere per la citazione in giudizio per infrazione di copyright adducendo il fatto che essi sono veri proprietari del codice in questione e che non hanno mai convenuto che esso fosse distribuito dal progetto sotto una licenza open source Per esempio il gruppo SCO fece qualcosa di simile per il progetto Linux vedere h
279. i uno in quel modo non portate via tempo dal progetto due quelli vicini al software sono usualmente le persone sbagliate per scrivere la documentazione o studiare l usabilit perch non hanno la il pensiero di vedere il software dal punto di vista di un estraneo Comunque sar necessario per chiunque lavori a questi problemi comunicare con gli sviluppatori Trovate persone che siano abbastanza tecniche per parlare col team dei codificatori ma non cos esperti nel software da non potersi ancora immedesimare nei normali utilizzatori Un utilizzatore di medio livello la persona giusta per scrivere una buona documentazione Infatti dopo che la prima edizione di questo libro fu pubblicata ricevetti la seguente email da uno sviluppatore open source chiamato Dirk Reiners 82 I Soldi Un commento sui Soldi La documentazione e l Usabilit quando avevamo qualche soldo da spendere e concludemmo che una guida per quelli che cominciavano era la parte pi critica assumemmo un utilizzatore di medio livello per scriverla Egli era andato per induzione al sistema abbastanza recentemente per ricordare i problemi ma era passato attraverso di essi per sapere come descriverli Ci gli permise di scrivere qualcosa che serviva solo per le correzioni minori da parte di sviluppatori di base per le cose che non aveva capito bene ma che tuttavia trattava le ovvie cose che gli sviluppatori avrebbero tralasciato Il suo caso
280. i ampi gruppi di sviluppatori scarsamente coordinati PRCS hitp prcs sourceforge net PRCS Project Revision Control System sistema di controllo di revisione di progetto la facciata di un insieme di strumenti che come CVS forniscono un modo per gestire insiemi di file e directory come un entit preservando le versioni coerenti dell intero insieme Il suo proposito simile a quello di SCCS RCS e CVS ma secondo i suoi autori perlomeno molto pi semplice di ognuno di questi sistemi ArX http www nongnu org arx ArX un sistema di controllo di versione che offre funzionalit di branche e merge verifica crittografica dell integrit dei dati e la possibilit di pubblicare gli archivi facilmente su ogni server HTTP SourceJammer http sourcejammer org SourceJammer sistema di controllo del codice e versionamento scritto in Java Consiste in una componente lato server che mantiene i file e la storia delle versioni e tratta i check in e i check out eccetera e altri comandi e una componente lato client che fa le richieste al servere e gestisce i file sul lato client del file system FastCST http www zedshaw com projects fastcst index html Un sistema moderno che usa insiemi di modifiche invece delle revisioni dei file e operazioni distribuite piuttosto che controllo centralizzato Finch avete un account di mail potete usare FastCST Per grandi distribuzioni avete solo bisogno di un
281. i attivit automatiche in risposta ai commit L hook lanciato da un commit individuale viene fornito di tutta l informazione sul commit ed poi libero di usare questa informazione per fare qualcosa per esempio mandare un email Con sistemi di email di commit pre confezionata potreste volere modificare qualcuno dei loro comportamenti di defult 1 Alcuni sistemi non includono i diff nella mail ma invece forniscono una URL per vedere le modifiche sul web usando il sistema di navigazione del repository Mentre bene fornire la URL cos che si possa fare riferimento alle modifiche anche in seguito anche molto importante che le email di commit includano i diff stessi Leggere le email gi parte delle abitudini della gente quindi se il contenuto della modifica visibile proprio l nella email di commit gli sviluppatori esamineranno il commit al volo senza lasciare il loro programma di lettura di posta Se devono cliccare su di una URL per esaminare le modifiche la maggior parte non lo far perch richiede una nuova azione invece di continuare quella che stanno gi facendo Inoltre se il revisore vuole chiedere qualcosa riguardo alla modifica molto pi semplice premere il tasto di risposta con testo e annotare il diff in questione rispetto alla visita di una pagina web e laboriosamente fare copia e incolla di parti del diff dal browser web al programma di email 47 L Infrastruttura Tecnica Ovviamente se il
282. i bugs col risultato di una maggiore efficienza per il progetto nella sua interezza Si offenderanno alcuni sviluppatori perch altri sono pagati per lavorare al progetto In generale no specialmente quando quelli che sono pagati sono stabilizzati rispettati membri della comunit comunque Nessuno si aspetta che il lavoro a contratto sia distribuito in modo uniforme fra tutti coloro che fanno gli invii La gente capisce l importanza di una relazione a lungo termine le incertezze connesse col contratto sono tali che una volta che hai trovato uno con cui poter pu lavorare affidabilmente sareste riluttanti a passare ad un altra persona giusto a scopo di egualitarismo Pensate a ci cos la prima volta che ingaggiate non ci saranno lamentele perch chiaramente dovete scegliere qualcuno non una vostra mancanza il fatto che non potete prendere tutti Pi tardi quando ingaggiate qualcuno per la seconda volta questo giusto il sentire comune gi lo conoscete l ultima volta con successo cos perch correre rischi non necessari Cos perfettamente naturale avere una o due persone cui rivolgersi nel progetto invece di distribuire il lavoro uniformemente Revisione e Approvazione Dei Cambiamenti La comunit tuttavia importante per il successo del lavoro a contratto Il suo coinvolgimento nel processo di progettazione e revisione per cambiamenti su misura non pu essere un pentimento Deve essere considerato parte del lav
283. i buono Se tutto va bene le dinamiche di reti di comunicazione esponenziali trasformeranno lentamente il progetto in una complessa comunit in cui non dovete conoscere necessariamente il nome di ciascuno e non potete seguire ogni singola conversazione I prossimi capitoli parlano del lavoro in questo ambiente 30 Capitolo 3 L Infrastruttura Tecnica I progetti di software libero poggiano su tecnologie che supportano la cattura e l integrazione dell informazione Pi esperti sarete nell usare queste tecnologie e nel persuadere gli altri a usarle pi il vostro progetto avr successo Ci diventa vero quando il progetto cresce La buona gestione dell informazione ci che previene dal collasso del progetto sotto il peso della legge di Brooks A che stabilisce che aggiungere forza lavoro a un progetto avanzato lo rende pi avanzato Fred Brooks osserv che la complessit di un progetto cresce con il quadrato del numero dei partecipanti Quando sono coinvolte solo poche persone ognuno pu parlare facilmente all altro ma quando sono coinvolte centinaia di persone non ulteriormente possibile per una persona essere messa al corrente di ci che ciascun altro sta facendo Se una buona gestione di software libero sta facendo in modo che ognuno si senta al lavoro con gli altri nella medesima stanza la domanda ovvia cosa avviene quando ognuno in una stanza affollata cerca di parlare simultaneamente Questo problema non nuovo
284. i comunque Ma con le attivit open source c una insolita gran quantit di gente con l esperienza per verificare 83 I Soldi le affermazioni le persone che trovano conveniente anche avere un accesso a internet a larga banda e i giusti contatti sociali per pubblicizzare le sue conclusioni in un modo da danneggiare dovrebbero sceglierlo loro Quando la Global Megacorp Chemical Industries inquina un corso d acqua questo verificabile ma solo da parte di scienziati esperti lanciando alla gente di grattarsi la testa e di chiedersi cosa pensare Invece il vostro comportamento nel mondo dell open source non solo visibile e registrato anche possibile per molta gente verificarlo indipendentemente pervenire alle proprie conclusioni e propagare quelle conclusioni per via orale Queste reti di comunicazioni sono gi in piedi esse sono l essenza di come l open source opera e possono essere usate per trasmettere ogni sorta di informazione La confutazione usualmente difficile se non impossibile specialmente quando ci che la gente sta dicendo la verit Per esempio giusto riferire alla vostra organizzazione di aver fondato il progetto X se realmente lo avete fatto Ma non fate riferimento a voi stessi come i costruttori di X se la maggior parte del codice stato scritto da estranei Al contrario non proclamate di aver profondamente coinvolto una comunit di sviluppatori volontari se chiunque pu vedere nel
285. i condotta scritte non definiscono la cultura del progetto finch lo descrivono e anche allora lo fanno solo approssimativamente Ci sono poche ragioni per le quali le cose trovano una soluzione in questo modo La crescita e il grande cambiamento non sono cos dannosi per l accumulazione di norme sociali come uno potrebbe pensare Finch i cambiamenti non avvengono troppo rapidamente c tempo per in nuovi arrivati di imparare come vanno fatte le cose e dopo che hanno imparato contribuiranno a rafforzare quei modi stessi Considerate come le canzoni dei bambini sopravvivono nei secoli Ci sono bambini oggi che cantano le stesse rime che i bambini cantavano centinaia di anni fa anche se ora non ci sono bambini vivi che erano vivi allora I bambini pi giovani sentono le canzoni dai pi vecchi e quando sono pi vecchi a loro volta le canteranno davanti ai pi giovani I bambini non si impegnano in un consapevole programma di trasmissione certamente ma il motivo per cui le canzoni sopravvivono tuttavia il fatto che esse vengono trasmesse regolarmente e ripetutamente La scala di tempo dei progetti di software libero non pu essere misurata in secoli non lo sappiamo ancora ma le dinamiche della trasmissione sono le stesse La velocit del cambiamento molto alta comunque e pu essere compensata da uno impegno nella trasmissione pi attivo e intenzionale Questo impegno favorito dal fatto che la gente generalmente evidenzia aspet
286. i debug perch incollare troppe righe di output nel canale interromperebbe le altre conversazioni La soluzione usare un sito di Paste detto anche pastebin o pastebot Quando viene richiesto da qualcuno una grande mole di dati chiedetegli di non fare il paste nel canale ma di andare invece per esempio http pastebin ca incollare i loro dati nel form e comunicare la nuova URL risultante al canale IRC Chiunque pu quindi visitare la URL e vedere i dati Ci sono molti siti di paste gratuiti troppi per farne una lista comprensiva ma qui ci sono alcuni di quelli che ho usato http www nomorepasting com http pastebin ca http nopaste php cd http rafb net paste http sourcepost sytes net http extraball sunsite dk notepad php e http www pastebin com Per settare l argomento di un canale usate il comando t opic argomento Tutti i comandi su IRC iniziano con Vedi http www irchelp org se non siete famigliari con l uso e l amministrazione di IRC in particolare http www irchelp org irchelp irctutorial html un ottimo tutorial 56 L Infrastruttura Tecnica Bot Molti canali IRC tecnici hanno un membro non umano cosiddetto bot che capace di archiviare e rigurgitare informazioni in risposta a specifici comandi Tipicamente il bot interpellato come ogni altro membro del canale cio i comandi sono inviati parlando al bot Per esempio lt kfogel gt ayita learn diff cmd http
287. i permette che un commento sia associato con l assegnazione di un problema In quel commento potete dire qualcosa del genere Sto assegnando questo a te perch tu hai la massima familiarit con questo codice Sentiti libero di respingerlo se non hai il tempo di dargli un occhiata tuttavia E fammi sapere se non vorresti ricevere tali richieste in futuro Ci fa distinzione fra richiesta di assegnazione e accettazione da parte di chi la riceve di quella assegnazione Il pubblico qui non solo chi fa l assegnazione ognuno l intero gruppo assiste a una pubblica conferma dell esperienza di chi riceve l assegnazione ma il messaggio rende anche chiaro che chi riceve l assegnazione libero di accettare o declinare la responsabilit Seguite dopo aver delegato Quando chiedete a qualcuno di fare qualcosa ricordatevi di averlo fatto e seguitelo non importa in cosa La maggior parte delle richieste vengono fatte in forums pubblici e sono all incirca della forma Puoi prenderti cura di X Facci sapere in ogni caso non c problema se non puoi solo abbiamo bisogno di saperlo Potete o non potete ricevere risposta Se la ricevete e la risposta negativa il cerchio chiuso non avete bisogno di altra strategia per trattare con X Se c una risposta positiva controllate i progressi nel problema e commentate sul progresso che vedete o no chiunque lavora meglio se sa che qualcuno sta apprezzando il suo lavoro Se non c una rispos
288. i possono leggere le mailing lists di notifica dei problemi con uguale attenzione Comunque se qualcuno che conosce il team degli sviluppatori sta tenendo d occhio tutti i problemi che arrivano allora pu con discrezione dirigere l attenzione di certi sviluppatori verso specifici bugs quando opportuno Certo questo deve essere fatto con sensibilit verso chiunque altro vada avanti nello sviluppo e ai desideri e al temperamento del destinatario Quindi spesso la miglior cosa che il manager di problemi sia uno sviluppatore egli stesso A seconda di come il vostro progetto usa il tracciatore di bug il manager di problemi pu anche modellare il database in modo da riflettere le priorit del progetto Per esempio in Subversion noi programmavamo i problemi in relaeses future specifiche in modo che quando qualcuno chiedeva Quando sar corretto il bug X noi eravamo in grado si rispondere Fra due releases anche se non gli potevamo dare la data esatta Le releases sono rappresentate nel tracciatore di problemi come pietre miliari obiettivo un campo disponibile in IssueZilla As a rule every Subversion release has one major 3IssueZilla il tracciatore di bug che usiamo noi esso un discendente di BugZilla 152 Gestire i Volontari new feature and a list of specific bug fixes We assign the appropriate target milestone to all the issues planned for that release including the new feature it gets an issue too so t
289. i quali volevano semplicemente vedere una gran quantit di software libero il progetto GNU incominci a rilasciare molti ricambi dei componenti pi critici di un sistema operativo A causa della ora assai diffusa standardizzazione nell hardware e nel software dei computers fu possibile usare i ricambi GNU su sistemi per il resto non liberi E molti lo fecero L editor di testi GNU Emacs e il compilatore C GCC ebbero particolare successo guadagnando seguaci numerosi e fedeli non per le loro origini ideologiche ma semplicemente per il loro meriti tecnici Dal 1990 circa GNU ha prodotto molti sistemi operativi eccetto il kernel la parte che attualmente avvia la macchina e che responsabile della memoria operativa dei dischi e di altre risorse di sistema Sfortunatamente il progetto GNU aveva scelto un progetto di kernel che si dimostr essere pi difficile da implementare di quanto ci si fosse aspettato Il ritardo che ne risult imped alla Free Software Foundation di creare la prima release di un intero sistema operativo libero Il pezzo finale fu invece messo a punto da uno studente finlandese della scienza dei computers che con l aiuto di volontari per il mondo aveva completato un kernel libero usando un progetto pi tradizionale Lo chiam Linux 3Esso sta per GNU s Not Unix e il GNU in quella espansione sta per la stessa cosa Introduzione e quando questo fu combinato con i programmi GNU esistenti il risultato f
290. i sono funzionari per elezione allora la procedura di elezione e di nomina che stata usata per sceglierli in primo luogo dovrebbe essere descritta nel documento 69 L Infrastruttura Sociale e Politica Se non c era nessuna procedura all origine allora ottenete il consenso sulla procedura nella mailing list prima di scriverla La gente a volte pu essere permalosa con le strutture gerarchiche cos il soggetto bisogna prenderlo con tatto Forse la cosa pi importante chiarire che i ruoli possono essere riconsiderati Se le convenzioni descritte nel documento incominciano ad ostacolare il progetto ricordate a tutti che si suppone che ci sia una viva riflessione delle intenzioni del gruppo non un sorta di frustrazione o di blocco Se qualcuno ha il vizio di chiedere inappropriatamente che le regole vengano riconsiderate ogni volta che le regole vanno a suo modo voi non dovete discutere ci con lui a volte il silenzio la miglior tattica Se altre persone si aggiungono alla protesta suoneranno insieme e sar ovvio che qualcosa bisogna cambiarla Se nessuna altro si aggiunge allora la persona non raccoglier molto consenso e le cose resteranno cos come sono Due buoni esempi di linee guida di un progetto sono il Subversion hacking html file a http subversion apache org docs community guide a e i documenti dell amministrazione dell Apache Software Foundation a http www apache org foundation how it works html e http
291. ia al progetto un sacco di tempo Ci anche fa si che la gente sia pi rilassata nel migliorare la leggibilit di larghe falciate di codice e quindi contribuisce alla capacit di tenere in manutenzione il software nel lungo periodo Testing di Regressione Testing di regressione significa fare delle prove per il riapparire di bug gi corretti Il proposito del testing di regressione quello di ridurre le possibilit che i cambiamenti al codice rovinino il software in modo inatteso Nella misura in cui il software diventa pi grande e complesso le possibilit di questi effetti collaterali aumentano regolarmente Una buona progettazione pu ridurre la velocit con la quale le possibilit crescono ma ci non pu eliminare il problema completamente Come risultato molti progetti hanno una suite di test un programma a parte che interroga il software del progetto nei modi che si sono conosciuti in passato per provocare determinati bugs Se la suite di test ha successo nel far si che uno di questi bugs si verifichi questo noto come regression col significato che i cambiamenti di qualcuno ha tolto la correzione a un bug precedentemente corretto Vedere anche http en wikipedia org wiki Regression_testing Il testing di regressione non una panacea Tanto per dirne una esso funziona molto bene con programmi con una interfaccia con comandi eseguiti in serie Il software che fatto funzionare con una interfaccia utente grafica
292. iamata Evitare 158 Gestire i Volontari Misteri sotto per maggiori dettagli su questa lista In quei casi il progetto dovrebbe acconsentire ai desideri della persona certamente Evitare Misteri Anche se la discussioni sull ammissione di un nuova particolare persona all invio deve essere confidenziale i ruoli e le stesse procedure non c bisogno che siano segreti Infatti meglio renderli pubblici cos la gente si rende conto che quelli che fanno gli invii non sono delle Camere da Star chiuse ai solo mortali ma che chiunque pu raggiungerli semplicemente postando delle buone patch e conoscendo come comportarsi nella comunit Nel progetto di Subversion noi mettiamo questa informazione giusto nel documento delle linee guida dal momento la gente pi adatta ad essere interessata a come l accesso agli invii viene concesso quella che pensa di contribuire codice al progetto Oltre a pubblicare le procedure pubblicate a lista attuale di coloro che hanno accesso all invio Il posto tradizionale per fare questo un file chiamato MAINTAINERS o COMMITTERS in cima all albero del codice sorgente del progetto Esso dovrebbe elencare prima tutti coloro che hanno l invio pieno seguiti dai vari domini con accesso parziale e dai membri di ciascun dominio Ogni persona dovrebbe essere elencata col nome e con l indirizzo email sebbene l email potrebbe essere codificata per evitare spam vedere sezione chiamata Nascondere gli ind
293. iamenti al numero maggiore segnano i limiti della compatibilit Una nuova release maggiore pu essere incompatibile sia in avanti che all indietro Ci si aspetta che una release maggiore abbia nuove funzionalit e pu avere interi nuovi d set di funzionalit Che significhi compatibile in avanti e compatibile all indietro esattamente dipende da ci che il vostro software fa ma nel contesto non sono aperte a tante interpretazioni Per esempio se il vostro software una applicazione client server allora compatibile all indietro significa che l aggiornamento del server alla 2 6 0 non dovrebbe causare per i clients la perdita di funzionalit o comportamenti differenti da quelli di prima eccetto per i bugs che sono stati corretti certo D altra parte l aggiornamento di uno di quei clients alla 2 6 0 insieme al server potrebbe rendere disponibili nuove funzionalit per quel client funzionalit di cui i client 2 5 4 non sanno come avvantaggiarsi Se ci avviene l aggiornamento non compatibile in avanti chiaramente non potete ora tornare indietro con quel client alla 2 5 4 e mantenere tutte le funzionalit che aveva nella 2 6 0 perch alcune di quelle funzionalit erano nuove nella 2 6 0 Questo il motivo per cui le micro releases sono essenzialmente per le correzioni dei bugs Esse devono rimanere compatibili in entrambe le direzioni se voi aggiornate dalla 2 5 3 alla 2 5 4 poi cambiate idea e tornate indietr
294. iata in dettaglio con interessanti risultati in uno scritto di Karim Lakhani e Robert G Wolf dal titolo Perch gli Hackers Fanno Ci che Fanno Comprendere Lo Sforzo e le Motivazioni nei Progetti Liberi Open Source Vedere http freesoftware mit edu papers lakhaniwolf pdf 139 Gestire i Volontari Distinguere chiaramente fra richiesta e assegnazione A volte giusto aspettarsi che una persona accetter un particolare compito Per esempio se qualcuno scrive un bug nel codice o invia codice che non si conforma alle linee guida del progetto in qualche modo evidente allora sufficiente richiamare l attenzione sul problema e quindi comportarsi come se diate per scontato che la persona vi far attenzione Ma ci sono altre situazioni in cui non in nessun modo chiaro che che voi avete il diritto di aspettarvi l effetto La persona potrebbe fare come chiedete oppure no Poich non c nessuno a cui piace essere preso senza argomenti c bisogno che stiate attenti a questi due tipi di situazioni e fare su misura le vostre richieste di conseguenza Una cosa che quasi tutte le volte provoca una istantanea irritazione nella gente il fatto che gli venga richiesto di fare qualcosa in un modo che presuppone che voi pensate che chiaramente sua responsabilit farlo quando essi la pensano diversamente Per esempio l assegnazione di un problema in arrivo un terreno particolarmente fertile per questo tipo di irritazione I parteci
295. ibile ed facile lavorare con esso Accompagnare i cambiamenti con tests intesa come cosa responsabile da fare ed una facile opportunit di collaborazione spesso due sviluppatori si divideranno il lavoro per la correzione di un bug con uno che scrive la correzione stessa e uno che scrive il test Il secondo sviluppatore pu spesso beccarsi il maggior lavoro e poich scrivere un test gi meno soddisfacente che correggere realmente il bug imperativo che la suite di test non renda l esperienza pi stressante di quanto debba essere Alcuni progetti vanno anche oltre richiedendo che un test accompagni ogni correzione di bug o ogni nuova funzionalit Se questa sia una buona idea o no dipende da molti fattori la natura del software la composizione del team di sviluppo e la difficolt di scrivere nuovi tests Il progetto CVS http www cvshome org ha a lungo avuto questa regola E una buona politica in teoria poich CVS un sistema di controllo di versione e quindi molto avverso al rischio di rovinare o maltrattare i dati dell utilizzatore Il problema in pratica che la suite di test di regressione di CVS un enorme script 145 Gestire i Volontari di shell in modo divertente chiamato sanity sh difficile da leggere e difficile da modificare o estendere La difficolt di aggiungere nuovi tests combinata col requisito che le patches siano accompagnate da nuovi tests significa che CVS in effetti scoraggi
296. ibution ShareAlike Vv nse Licensor means the individual individuals entity or entities that offer s the Work under the terms of this License Original Author means in the case of a literary or artistic work the individual individuals entity or entities who created the Work or if no individual or entity can be identified the publisher and in addition i in the case of a performance the actors singers musicians dancers and other persons who act sing deliver declaim play in interpret or otherwise perform literary or artistic works or expressions of folklore ii in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds and iii in the case of broadcasts the organization that transmits the broadcast Work means the literary and or artistic work offered under th terms of this License including without limitation any production in the literary scientific and ar tic domain whatever may be the mode or form of its expression including digital form such as a book pamphlet and other a lecture address sermon or other work of the sa a dramatic or dramatico musical work a choreograp work or entertainment in dumb show a musical compositio th or a cinematographic work to which are assimilated nalogous to cinematography a work ture sculpture engraving or to which are assimilated works tis writin
297. ica conoscenza Pre notifica significa semplicemente inviare email a quegli amministratori prima della data dell uscita per dire loro della vulnerabilit e come correggerla Dovreste mandare la pre notifica solo a persone che voi confidate siano discrete con le informazioni Cio la qualifica per ricevere la pre notifica duplice il destinatario deve far girare un grosso importante server l essere in pericolo sarebbe una questione seria e e il destinatario dovrebbe essere noto per non essere uno che chiacchiera sul problema di sicurezza prima della data dell uscita Mandate le email di prenotifica individualmente una alla volta ad ogni destinatario Non mandate la lista intera dei destinatari subito perch essi vedrebbero i nomi gli uni degli altri nel senso che voi stareste avvisando ogni destinatario del fatto che ogni altro destinatario pu avere una buca nella sicurezza nel suo server Mandando a tutti loro l email via CC non visibile BCC non una buona soluzione nemmeno perch alcuni admin proteggono la loro casella di posta con filtri antispam che o bloccano o riducono la priorit delle email BCC dal momento che cos tanto spam inviato via BCC di questi tempi 113 Comunicazione Qui c un esempio di email di pre notifica DA Qui il Vostro Nome To admin large famous server com Risposta a Qui in Vosto Nome non l indirizzo della mailing list sulla sicurezza Oggetto Notifica confidenziale della vu
298. idenzi una chiara incoerenza delle grosse imprese che da un lato dei propri affari volevano supportare particolari programmi liberi mentre dall altro continuavano a commerciare software proprietario Sopraggiunsero questi dilemmi per una comunit che si trovava gi in sospeso per una crisi di identit I programmatori che realmente scrivevano software libero non erano stati mai unanimi su tutti gli obiettivi se ce n erano del movimento del software libero Persino dire che che le opinioni vanno da un estremo all altro sarebbe fuorviante giacch ci farebbe erroneamente pensare che esso sia in una zona lineare invece che in una dispersione multidimensionale Comunque si possono distinguere due categorie di pensiero se vogliamo ignorare le sottigliezze per il momento Un gruppo fa proprie le vedute di Stallman che la libert di condividere e modificare la cosa pi importante e che quindi se si finisce di parlare di libert si perde il cuore della questione Altri sentono che il software l argomento pi importante in favore del software stesso e trovano scomodo proclamare che il software proprietario cattivo per il fatto di essere software proprietario Alcuni ma non tutti i programmatori pensano che l autore e chi lo impiega nel caso di lavoro pagato dovrebbe avere il diritto di controllare termini della distribuzione e che non c bisogno di dare nessun giudizio morale sulla scelta dei particolari termini Per lungo tempo non ebb
299. ignifica che quando insorgono problemi la situazione pu rapidamente deteriorarsi giacch i partecipanti non hanno quell insieme di riflessi culturali per aiutarsi a risolvere i dissensi Questo libro una guida pratica non uno studio antropologico o una storia In tutti i casi una valida conoscenza dell odierna cultura del software libero un fondamento essenziale per ogni consiglio pratico Una persona che comprende la cultura pu viaggiare in lungo e in largo per il mondo dell open source incontrando molte varianti in abitudini e linguaggi sar sempre capace di partecipare effettivamente e con agio ovunque Invece una persona che non comprende la cultura trover il processo dell organizzazione e della partecipazione difficile e pieno di sorprese Siccome il numero di persone che sviluppano software libero sempre in crescita a balzi e rimbalzi c sempre gente in questa seconda categoria questa in maniera preponderante la cultura dei nuovi arrivati e le cose continueranno ad essere tali per qualche tempo Se voi pensate di poter essere fra questi la prossima sezione d le basi per discutere cose che incontrerete pi tardi sia in questo libro sia in Internet Se invece avete lavorato con l open source per un certo tempo forse conoscete molto della sua storia e di conseguenza vi sentirete liberi di saltare questa sezione Storia La condivisione del software esistita da quando esistito il software Nei primi giorni dei
300. il programma ma non abbastanza per coloro che vogliono correggerne i bug e aggiungere nuove qualit Istantanee notturne del sorgente possono aiutare ma non c ancora una struttura sufficientemente a grani piccoli per una comunit che sta crescendo La gente vuole un accesso in tempo reale agli ultimi codici sorgente e il modo per darglielo usare un sistema di controllo versione La presenza di versione dei sorgenti anonimamente controllate di un segno a utilizzatori e sviluppatori cio questo progetto sta facendo uno sforzo per dare alla gente quello di cui ha bisogno per partecipare Se voi non potete dare un controllo di versione subito allora date un segno che intendete darlo presto Della infrastruttura del controllo di versione si parla in dettaglio in sezione chiamata Controllo di versione in Capitolo 3 L Infrastruttura Tecnica La stessa cosa per il tracciamento bug del progetto L importanza di un sistema di tracciamento bug sta non solo nella sua utilit per gli sviluppatori ma in quello che significa per chi osserva il progetto Per molta gente una database accessibile dei bug un fortissimo segnale che il progetto dovrebbe essere preso seriamente Inoltre pi alto il numero di bugs nel database pi il progetto sembra migliore Ci potrebbe sembrare contrario alla logica ma ricordate che il numero dei bugs registrati in realt dipende da tre cose il numero in assoluto presente nel software il numero di utili
301. il canale in cui parlare come sapranno quali sono le convenzioni locali La risposta dire loro di settare l argomento del canale L argomento del canale un breve messaggio che l utente vede quando entra per la prima volta nel canale Forinisce una guida rapida per i nuovi arrivati e riferimenti ad altre informazioni Per esempio Stai parlando su svn L argomento per svn Forum per le domande degli utenti di Subversion vedi anche http subversion tigris org La discussione sullo sviluppo avviene in svn dev Per favore non incollate qui lunghe trascrizioni usate invece un sito come http pastebin ca NEWS Subversion 1 1 0 stata rilasciata vedi http svn110 notlong com per dettagli E scarno ma dice ai nuovi arrivati cosa hanno bisogno di sapere Dice esattamente per cosa esiste il canale nel caso qualcuno vaghi nel canale senza essere prima stato sul sito del progetto menziona un canale correlato e da alcune direttive sulla funzionalit di incolla paste Siti di Paste Un canale IRC uno spazion condiviso tutti possono vedere ci che tutti gli altri stanno dicendo Normalmente questa una buona cosa dato che permette alle persone di entrare in una conversazione quando pensano di poter contribuire permettendo alla gente di imparare guardando Ma diventa problematico quando qualcuno deve fornire una grossa quantit di informazione in una volta per esempio la trascrizione di una sessione d
302. il progetto che avete i mente cos specializzato che voi sapete che non c alcuna possibilit che qualcuno lo abbia fatto Ma generalmente non c nessun motivo per non guardare e la ricompensa pu essere enorme Se la ricerca sui motori di ricerca di Internet non d risultato cercate su http freshmeat net un sito di notizie sui progetti open source di cui si parler molto pi in l su http www sourceforge net nella Free Software Foundation s directory a http directory fsf org Anche se non trovate esattamente ci che state cercando potreste trovare qualcosa cos vicina che avrebbe pi senso unirsi a quel progetto e aggiungervi funzionalit che partire da un vostro abbozzo Partire Da Ci Che Si Ha Vi siete guardati intorno trovato che niente fuori soddisfa veramente i vostri bisogni e avete deciso di partire con un nuovo progetto Cosa viene ora 12 Partenza La parte pi difficile nel lanciare un nuovo progetto trasformare una visione privata in una visione pubblica Voi nella vostra organizzazione potete conoscere alla perfezione ci che volete ma esprimere chiaramente al mondo l obiettivo una chiara quantit di lavoro E essenziale comunque che vi prendiate il tempo per farlo Voi e gli altri fondatori dovete decidere su che cosa sar in realt il progetto cio stabilire i suoi limiti ci che non far allo stesso modo di ci che far e scrivere una dichiarazione delle vost
303. il progetto e redirigerli al sito ospitante Ci aiuta molto gli utilizzatori ad avere un URL facile da ricordare Avere una chiara dichiarazione di intenti Una volta che avete trovato il sito web del progetto la cosa successiva che la gente cercher una breve ma veloce descrizione una dichiarazione di intenti in modo da poter decidere in 30 secondi se interessata a saperne di pi Questa deve essere messa in evidenza in prima pagina preferibilmente sotto al nome del progetto La dichiarazione di intenti deve essere concreta limitativa e soprattutto breve Qui c n un esempio di una buona da http www openoffice org Per creare come comunit la swite leader a livello internazionale per ufficio che gira su tutte le principali piattaforme e che fornisce accesso a tutte le funzionalit e ai dati grazie a un componente basato sulle API e a un formato di file basato sull XML Giusto in poche parole essi hanno centrato tutti i punti principali prendendo largamente ispirazione dalla conoscenza precedente dei lettori Dicendo come comunit essi segnalano che nessuna grossa impresa dominer lo sviluppo internazionale significa che il software permetter alla gente di lavorare in molti lingue e luoghi Tutte le principali piattaforme significa che esso sar trasportabile su Unix Macintosh e Windows Il resto segnala che le interfacce aperte e i formati facilmente comprensibili sono una parte importante dell obietti
304. il ramo di release stabilizzato e pronto il momento di tracciare una fotografia del ramo cd RELEASE_1_0 ca X working copy cvs tag RELEAS _1_0_0 CH or svn copy http repos branches 1 0 x http repos tags 1 0 0 Questa traccia ora rappresenta lo stato esatto dell albero origine nella release 1 0 0 ci utile nel caso che qualcuno abbia bisogno di prelevare una vecchia versione dopo che distribuzioni confezionate e i binari siano stati dismessi La successiva micro release nella stessa linea preparata nello steso modo nel ramo 1 0 x e quando pronta una traccia fatta per la 1 0 1 Pi avanti risciacquatura si ripete con la 1 0 2 e cos via Quando il tempo di partire pensando alla release 1 1 x create un nuovo ramo dal tronco cd trunk working copy cvs tag b RELEASE_1_1_X or svn copy http repos trunk http repos branches 1 1 x 122 Confezione Rilascio e Sviluppo Quotidiano Il mantenimento pu continuare in parallelo lungo la 1 0 x e la 1 1 x e un rilascio pu essere fatto indipendentemente da ambedue le differenti linee La vecchia serie raccomandata per gli amministratori di sito pi conservatori che possono non voler fare il grosso salto alla diciamo 1 1 senza una attenta preparazione Intanto persone pi avventurose prendono la pi recente release sulla linea pi alta per essere sicuri di fare proprie le
305. ilasci una variante della GPL chiamata GNU Affero GPL http www fsf org licensing licenses agpl html Il suo proposito era imporre la condivisione di clausole tipo GNU al crescente numero di compagnie che offrivano servizi hostati software che girava su loro servers con cui gli utilizzatori interagiscono solo sul network e che quindi non era mai distribuito come eseguibile o codice sorgente Molti di tali servizi avevano usato software sotto GPL spesso con modifiche ma non avevano da mettere in comune i loro cambiamenti col mondo perch non distribuivano nessun codice La soluzione GNU AGPLv3 s a ci era prendere la normale GPL e aggiungervi la clausola Interazione del Network Remoto che stabiliva se modificate il programma la vostra versione modificata deve in modo preminente offrire a tutti gli utilizzatori l interazione con esso da remoto attraverso una rete di computers una opportunit di ricevere il Corrispondente Sorgente della vostra versione gratuitamente attraverso qualche mezzo standard o personalizzato per facilitare la copia del software This expanded the GPL s enforcement powers into the new world of application service providers The Free Software Foundation recommends that the GNU AGPLv3 be used for any software that will commonly be run over a network Ci allarg il potere di impegnare da parte della GPL nel nuovo mondo dei provider di servizi applicazione La Free Software Foundation raccomanda c
306. iluppo pi o meno controllato dalla compagnia sebbene con la estremamente improbabile possibilit che qualcuno veramente insoddisfatto dell uso del software da parte della compagnia potrebbe fare una diramazione dal progetto In quale grado questo minacci in modo pre stimolante le politiche della compagnia non so ma ad ogni modo MySQL non sembra avere problemi di consenso sia nel mondo dell open source sia oltre Brevetti I brevetti sono il rilascio parafulmine del momento nel software libero Perch pongono la sola minaccia reale contro la quale la comunit del software libero non pu difendersi I problemi di copyright e di marchio ci si pu sempre fare l esperienza Se parte del vostro codice sembra poter usurpare il copyright di qualche altro voi potete riscrivere quella parte Se vien fuori che qualcuno che ha il marchio sul nome del vostro progetto nel peggior caso potete cambiar nome al vostro progetto Sebbene il cambiamento del nome potrebbe essere un inconveniente temporaneo non sarebbe un problema nei tempi lunghi poich il codice stesso farebbe ancora ci che ha sempre fatto Ma una partente una completa ingiunzione contro l implementazione di una certa idea Non importa chi scrive il codice n quale linguaggio di programmazione usato Una volta che uno ha accusato un 174 Licenze Diritti d Autore e Brevetti progetto di software libero di infrangere un brevetto il progetto o deve smettere di imple
307. imissima cosa di cui un visitatore viena a conoscenza circa un progetto l aparenza del suo sito web Questa informazione assorbita prima di quello che realmente vi contenuto di ogni testo sia stato letto o dei links cliccati Per quanto ingiusto possa essere ci la gente non pu astenersi dal formarsi una prima impressione L apparenza di un sito web d un segno di quanta cura stata messa nell organizzare la presentazione di un progetto Gli uomini hanno hanno antenne molto sensibili nel captare l impiego di attenzione Molti di noi possono dire a un prima occhiata se un sito stato messo insieme disordinatamente o se stato pensato seriamente Questo il primo pezzo di informazione che il vostro progetto d e l impressione che esso crea si trasferir al resto del progetto per associazione Cos mentre molta parte di questo capitolo parla del contenuto con cui il vostro progetto potrebbe partire ricordatevi della questione del look e anche delle impressioni Siccome il sito del progetto ha a che fare con due tipi di visitatori utilizzatori e sviluppatori una attenzione speciale si deve fare alla chiarezza e a chi diretto Sebbene questo non sia il luogo per una trattazione generale del web design un principio meritevole di menzione specialmente quando il sito serve a molti tipi di pubblico anche se e una sovrapposizione la gente deve avere una grezza idea di dove il link va prima di cliccarlo Per esempio dovrebbe
308. interessanti problemi ma che non aveva cura di quando la 1 0 sarebbe uscita Nessuna di queste posizioni migliore o peggiore dell altra essi sono solo due differenti tipi di sviluppatori e tutti e due fanno una gran quantit di lavori nel progetto Ma noi imparammo velocemente il fatto di non dare per scontato che la loro eccitazione per quanto riguarda la guida della 1 0 fosse condivisa da tutti I media elettronici possono essere molto ingannevoli potete avere la sensazione di una finalit condivisa quando in effetti essa condivisa solo dalle persone con cui vi successo di dover parlare mentre altri hanno priorit completamente differenti Pi siete al corrente di che tipo di persone vuole uscire dal progetto tanto pi efficacemente potete far richiesta di loro Perfino solo il dimostrare una comprensione di cosa vogliono senza fare nessuna richiesta associata utile per il fatto che conferma a una persona che non solo una particella in una massa indifferenziata Lode e Critica Lode e critica non sono opposti sotto molti aspetti essi sono simili Sono sia una forma primaria cdi attenzione e sono tantissimo efficaci quando sono specifici piuttosto che generici Sia dovrebbero essere espressi con obiettivi concreti in mente Sia possono essere sminuiti per inflazione lodate troppo o troppo spesso e svaluterete la vostra lode lo stesso vale per la critica sebbene in pratica la critica provochi una reazione e quindi
309. involto obblighi di forma che non avrebbero potuto esserci in altre circostanze e che forse diventano una forma di autorit in qualche sotto dominio del progetto Il coinvolgimento aggiuntivo potrebbe spaventarlo o potrebbe portarlo anche ad impegnarsi in altri modi per un aumentato senso di impegno complessivo A causa di tutte queste conseguenze spesso ha un senso chiedere a qualche altro di fare qualcosa anche quando sapete che potreste farlo pi facilmente e velocemente voi stessi Certo c talvolta uno stringente argomento di efficienza economica relativamente a questa cosa comunque forse il costo economico di farlo voi stessi sarebbe troppo alto ci potrebbe essere qualcosa di pi importante che potreste fare in quel lasso di tempo Ma anche quando non si applica l argomento del costo economico voi potete ancora voler chiedere a qualche altro di intraprendere il lavoro perch a lungo andare voi volete tirarlo pi in profondit nel progetto anche se ci significhi spendere un tempo extra per aver cura di lui all inizio Si applica anche le tecnica inversa se voi occasionalmente vi offrite volontari per fare qualcosa che qualche altro non vuole o non ha il tempo di fare vi guadagnerete la sua buona volont e il rispetto La delega e la sostituzione non esistono solo per ottenere che un compito individuale sia portato a termine esse esistono anche per coinvolgere pi strettamente la gente nel progetto Questa questione fu stud
310. io segreto Inoltre le discussioni pubbliche hanno il benefico effetto secondario che sopravviveranno per quanto effimera fosse la la questione tecnica in discussione e La discussione favorir l addestramento e l educazione dei nuovi sviluppatori Voi non sapete mai quanti occhi sono attenti alla conversazione anche se la maggioranza della gente non parteciper molti seguiranno in silenzio racimolando informazioni sul software e nell arte di spiegare le questioni a persone che non hanno familiarit con le questioni tecniche come l avete voi Questa una capacit che richiede pratica e voi non potete acquisire questa pratica parlando a gente che gi sa quello che sapete voi e La discussione e le sue conclusioni saranno disponibili nel pubblico archivio per sempre dopo dando la possibilit alle future discussioni di evitare di rifare gli stessi passi Vedere sezione chiamata Uso Ben Visibile degli Archivi in Capitolo 6 Comunicazione Infine c la possibilit che qualcuno nella lista possa dare un reale contributo alla conversazione col far sorgere un idea che voi non vi sareste mai aspettati E difficile dire quanto questo sia possibile Dipende dalla difficolt del codice e dal grado specializzazione richiesta Ma se permessa una evidenza annedotica io azzarderei che questo pi probabile di quanto uno si aspetterebbe intuitivamente Nel progetto di Subversion noi i fondatori eravamo di fronte a una profonda e compl
311. ion of the Work in timed relation will be considered an this License n of literary or artistic works or performances ther works or subject matter other below which by reason of the heir contents constitute ch the Work included its is in ng separate and independent works which together ar titutes n as d cons tatio tible L assembled into a collective a Collection will not be efined below for the purposes of icens means a license that is listed at http crea been approved by Crea equivalent to this Lice that license i con meaning and effect as ii explicitly permi made available under Elements as this Lice Distribute means to and copies of the Wor tivecommo tive Commons nse tains ter th mS Lic including as bei a ng essentially t a minimum t Elemen ns that lice nse k or Adaptat ts the relice nse Creative Commons jurisdiction lice make available to under nse wi th th ion as appropriate ns org compatiblelicenses that has because hat have the same purpose ts of this License nsing of adaptations of works this License or a same Licens and the public the original through 192 Copyright sale or other transfer of ownership License Elements means the following high 1 1 licens attributes as selected by Licensor and indicated in the title of this Lice Attr
312. ione qualunque sia la sua origine E comune che il dittatore benevolo sia il fondatore del progetto Ma questa pi una correlazione che una causa Il tipo di qualit che rende uno capace di avviare un progetto con successo competenza tecnica capacit di persuadere altri ad unirsi ad esso ecc sono esattamente le qualita di cui ogni BD avrebbe bisogno E certamente i fondatori incominciano con una sorta di anzianit automatica che pu spesso essere sufficiente a far si che la dittatura benevola appaia il percorso di minor difficolt per tutti gli interessati Ricordate che la possibilit per la forchetta esiste in entrambi i casi Un BD pu fare una diramazione dal progetto appunto facilmente come ciascun altro e alcuni hanno occasionalmente fatto cos quando hanno visto che la direzione che essi volevano che prendesse il progetto era diversa da quella che gli altri sviluppatori volevano A causa della possibilit di diramazione non ha importanza se il dittatore benevolo ha la radice i privilegi di amministratore del sistema sui principali servers del progetto La gente a volte parla del controllo del server come se essa fosse la fonte principale del potere in un progetto ma nei fatti ci irrilevante Il fatto di aggiungere o rimuovere le password di invio su un particolare server riguarda solo la copia del progetto che sul server Un prolungato abuso di questo potere da parte del BD o di qualche altro spingerebbe s
313. iorni ora probabilmente gi alcune settimane non poss Per coloro che hanno perso questo particolare thread Congratulazioni Era una proposta di rendere sleep 1 DTRT Do The Right Thing fai la cosa giusta un argomento non di tipo intero che spegnesse questo particolare fuoco di paglia nient altro di questo perch un argomento molto pi piccolo di quanto ci si asp del thread e ha gi ricevuto molta pi attenzione di alcuni dei problemi che ab La saga del sleep 1 il pi splendente esempio di una discussione della rastrell mai avuto in FreeBSD La proposta era ben pensata avremmo guadagnato compatibilit e ancora essere completamente compatibili con ogni programma che qualcuno abbia ma Comunque sono state create e lanciate cos tante obiezioni proposte e cambiamenti il cambiamento avrebbe chiuso tutti i buchi del formaggio svizzero o cambiato il g o qualcosa di altrettanto serio Cosa c entra questa rastrelliera da bici Qualcuno di voi me lo ha chiesto 185 Perch dovrebbe importarmi di che colore sia la rastrelliera E una lunga storia o meglio una vecchia storia ma in realt abbastanza breve C Northcote Parkinson scrisse un libro nei primi anni 60 chi Parkinson s Law Legge di Parkinson che contiene molti aspetti delle dinamic gestione Potete trovarlo su Amazon e magari anche nell libreri dei vostri genitori vale il suo prezzo e il tempo
314. irizzi presenti negli archivi in Capitolo 3 L Infrastruttura Tecnica se la persona preferisce cos Poich la distinzione fra accesso all invio pieno e all invio parziale chiara e ben definita proprio dell elenco fare la distinzione anche Oltre a ci l elenco non dovrebbe cercare di indicare le distinzioni non formali che inevitabilmente si presentano in un progetto come chi influente e come E una registrazione pubblica non un file di riconoscimenti Elencate quelli che hanno accesso all invio in ordine alfabetico o nell ordine in cui sono arrivati Riconoscimenti I riconoscimenti sono la moneta principale nel mondo del software libero Qualunque cosa una persona possa dire sulle sue motivazioni della partecipazione a un progetto non conosco sviluppatori che sarebbero felici di fare tutto il loro lavoro anonimamente o sotto il nome di qualcun altro Ci sono ragioni tangibili per questo la reputazione di uno nel progetto approssimativamente determina quanta influenza ha e la partecipazione a un progetto open source pu anche avere indirettamente un valore monetario perch alcuni datori di lavoro guardano a questo nel curriculum Ci sono anche ragioni non tangibili magari anche pi forti la gente semplicemente vuole essere apprezzata e istintivamente guarda a segni che il loro lavoro stato riconosciuto dagli altri La promessa di riconoscimenti quindi una delle migliori motivazioni che il progetto abbia Qu
315. istemare difficili questioni con comunicazioni private in un ambiente pi ristretto Ci specialmente 24 Partenza vero nei primi giorni del progetto quando ci sono tante decisioni da prendere e usualmente pochi volontari qualificati per prenderle Tutti gli ovvi svantaggi delle discussioni in liste pubbliche appariranno palpabili davanti a voi Il ritardo connesso con le conversazioni per email il bisogno di avere sufficiente tempo perch si formi il consenso il fastidio della negoziazione con volontari sprovveduti che ritengono di capire tutti i problemi ma in realt non lo fanno ogni progetto li ha a volte essi sono collaboratori protagonisti dell anno prossimo a volte restano sprovveduti per sempre le persone che non riescono a capire che voi volete solo risolvere il problema X anche se questo ovviamente un aspetto del problema pi generale E cos via La tentazione di prendere decisioni a porte chiuse e di presentarle a loro come a fatti compiuti o almeno come i fermi consigli di un blocco votante unito e influente sar grande indubbiamente Non fatelo Per quanto lente e scomode possano essere le discussioni pubbliche esse sono quasi sempre preferibili a lungo andare Rendere private importanti discussioni come dipingere il collaboratore come repellente per il vostro progetto Nessun serio volontario resterebbe a lungo nei paraggi di un ambiente in cui tutte le grosse decisioni vengono prese in un consigl
316. it senza essere pressanti un arte Non funzioner semplicemente consigliando alla gente di smettere di perdere il loro tempo o chiedendo loro di non scrivere a meno di avere qualcosa di costruttivo da dire Potreste certo pensare queste cose privatamente ma se lo dite ad alta voce allora sarete offensivi Invece dovete suggerire le condizioni per ulteriori progressi dare alla gente una strada un sentiero da seguire che porta ai risultati che volete pur senza sembrare di stare dettando la strada La distinzione principalmente di tono Per esempio questo non va bene Questa discussione non sta andando da nessuna parte Possiamo per favore abbandonare questo argomento finch qualcuno ha una patch per implementare una di queste proposte Non c ragione per continuare a girarci attorno dicendo le stesse cose Il codice parla pi forte delle parole gente Mentre questo buono Molte proposte sono passate in questo thread ma nessuna ha avuto tutti i dettagli definiti almeno non abbastanza per un voto simo Comunque non stiamo dicendo nulla di nuovo ora stiamo solo ripetendo cosa stato detto prima Quindi la cosa 94 Comunicazione migliore sarebbe probabilmente che i prossimi messaggi contengano o una completa specifica delle funzionalit proposte o una patch Quindi almeno avremmo una azione definita da compiere cio avere consenso sulla specifica o applicare e testare la patch Confrontate il secondo appr
317. ito Mentre si pu supporre che ognuno dei primi che aderiscono sia un programmatore che vuole cimentarsi col software allo stesso tempo si pu supporre che egli sia almeno interessato alle successive discussioni sullo sviluppo e a cogliere il senso degli indirizzi del progetto Sebbene questo capitolo parli solo della partenza di un progetto solo sufficiente dire che c bisogno questi forums di comunicazione esistano Pi in l in sezione chiamata Gestire la Crescita in Capitolo 6 Comunicazione esamineremo come e dove metter su tali forums i modi in cui essi potrebbero aver bisogno di moderazione o di altra amministrazione e come separare i forums per utilizzatori dai forums per sviluppatori quando viene il momento senza creare un abisso insuperabile Linee Guida per lo Sviluppatore Se qualcuno sta pensando di contribuire al progetto egli cercher le linee guida per gli sviluppatori Le linee non sono tanto tecniche quanto sociali esse spiegano come gli sviluppatori interagiscono fra di loro e con gli utilizzatori e infine come si portano a termine le cose Questo argomento trattato in dettaglio in sezione chiamata Metter Gi Tutto Per Iscritto in Capitolo 4 L Infrastruttura Sociale e Politica ma gli elemento base delle linee guida sono e gli indici dei forums per l interazione con gli altri sviluppatori 18 Partenza e istruzioni su come riportare i bugs e inviare la patches e alcune istruzioni su co
318. iva la gente si cancella l iscrizione dalle mailing lists o lascia il canale IRC o in ogni caso smette di infastidire facendo domande perch possono vedere che non saranno ascoltati in tutto il rumore Nella misura in cui sempre pi la gente fa questa scelta altamente razionale l attivit dei forum sembra restare in un livello manovrabile Ma esso rimane in un livello manovrabile precisamente perch la gente razionale o almeno con esperienza ha incominciato a guardare altrove per le informazioni mentre la gente inesperta rimane dentro e posta continuamente In altre parole l effetto a senso unico di continuare a usare modelli di comunicazioni non ampliabili quando il progetto cresce quello che la qualit delle domande e delle risposte tende a scendere il che fa sembrare che i nuovi utilizzatori sono pi muti di quanto erano soliti essere mentre nei fatti probabilmente non lo sono E solo che il rapporto beneficio costo dell usare questi forums ad alta popolazione scende cos naturalmente quelli con esperienza incominciano per primi a guardare altrove per le risposte Adattare il meccanismo delle comunicazioni in modo che faccia fronte alla crescita del progetto quindi comporta due strategie 1 Riconoscere quando parti particolari di un forum non stanno soffrendo la crescita illimitata anche se il forum nella sua interezza la sta soffrendo e separare quelle parti per creare dei nuove forum specializzati cio non permettete che il b
319. iva lontano lontano da ogni ormeggio nella reale esperienza dell utente Senza una forza controbilanciante il risultato finale molto verosimilmente non viene determinato da una persona che era la pi chiara o la pi tenace o la pi anziana Come organizzazione con abbondanti dati disponibili sui clienti avete la opportunit di fornire giusto questa forza bilanciante Voi potete essere come una condotta per le informazione che potrebbero avere diversamente nessun mezzo per raggiungere la comunit di sviluppo Il fatto che quella informazione pu supportare i vostri desideri non costituisce nulla di imbarazzante La maggior parte degli sviluppatori individualmente non ha una larga esperienza su come il codice che essi hanno scritto viene usato Ogni sviluppatore usa il suo software nel suo modo caratteristico Fin dove i modelli degli altri vanno lui fa affidamento sull intuizione e sulle ipotesi e nel profondo del suo cuore lui sa questo Ma fornendo dati credibili su un gran numero di utenti voi date alla comunit di sviluppo pubblico qualcosa di simile all ossigeno Finch presenterete ci nel modo giusto essi gradiranno ci entusiasticamente e muoveranno le cose nella direzione che voi volete La chiave certamente presentare la cosa ne modo giusto Non lo fate mai insistendo che semplicemente per il fatto che avete a che fare con un gran numero di utenti e poich essi hanno bisogno 19 I Soldi di una data funziona
320. ivecommons org La Creative Commons che promuove una larga estensione di copyrights pi flessibili e liberali di quanto la pratica del copyright incoraggi Essa non offre copyright per il software ma per il testo l arte e la musica tutte accessibili con un selezionatore di di licenze di facile uso alcune licenze sono copyleft alcune non copyleft ma tuttavia libere altre sono tradizionali copyrights ma rilasciate con qualche restrizione Il sito della Creative Commons d spiegazioni estremamente chiare su ci cui si riferisce Se io avessi da scegliere un sito per dimostrare le pi larghe implicazioni filosofiche del movimento del software libero esso sarebbe questo 177 Appendice A Sistemi di Controllo di Versione Liberi Questi sono tutti i sistemi di controllo di versione di cui ero a conoscenza alla met del 2007 L unico che uso regolarmente Subversion Ho poca o nessuna esperienza con la maggior parte di questi sistemi tranne Subversion e CVS le informazioni qui sono prese dai loro siti web Vedi anche http en wikipedia org wiki List_of_revision_control_software CVS hittp www nongnu org cvs CVS in giro da molto tempo ed gi familiare a molti sviluppatori Nei suoi giorni fu rivoluzionario fu il primo sistema di controllo di versione open source con accesso da Internet per gli sviluppatori per quanto ne so e il primo ad offrire checkout anonimi di sola lettura il che diede ai nuovi svilupp
321. ivisa E assolutamente razionale che una delle considerazioni che entra nel processo del prendere decisioni da parte di ognuno la domanda su come una data azione pu incidere sulla propria futura influenza nel progetto Dopotutto se avete fiducia nel vostro giudizio e nelle vostre capacit come molti programmatori fanno allora la possibile perdita di influenza di futura influenza deve essere considerato un risultato tecnico in un certo senso Simili ragionamenti si applicano ad altri comportamenti che potrebbero sembrare nel loro aspetto come pura politica In effetti non c cosa pura politica come questa precisamente perch le azioni hanno conseguenze sul mondo reale che la gente diventa politicamente consapevole in primo luogo La politica in fin dei conti semplicemente una presa di coscienza che devono essere tenute in conto tutte le conseguenze delle decisioni Se una particolare decisione porta al risultato che molti partecipanti trovano tecnicamente soddisfacente ma comporta un cambiamento nei rapporti di potere che lascia che persone chiave si sentano isolate il secondo un risultato importante proprio come il primo Ignorarlo sarebbe di nobili sentimenti ma miope Cos quando leggete il consiglio che segue e quando lavorate con il vostro progetto personale ricordate che non c nessuno al di sopra della politica Apparire al di sopra della politica solamente una particolare strategia politica e a volte molto
322. ivo produttore di messaggi sulla mailing list From Brian W Fitzpatrick lt fitz collab net gt To lista dei destinatari omessa per riservatezza Subject Il Lavandino dell energia di Subversion Date Wed 12 Nov 2003 23 37 47 0600 Negli ultimi 25 giorni i sei maggiori produttori di messaggi sulla mailing list s sviluppatori utenti 294 236 220 176 130 126 sono stati kfogel collab net C Michael Pilato lt cmpilato collab J Random lt jrandom problematic pos Branko ibej lt brane xbc nu gt Philip Martin lt philip codematters co Ben Collins Sussman lt sussman collab Vorrei dire che cinque di queste persone stan raggiunger 1 0 nel prossimo futuro Vorrei anche dire che una di queste persone s e l energia degli quindi fatto un analisi net gt ter com gt uk gt net gt no contribuendo a Subversion che ta consumando in maniera consistente altri 5 per non dire della mailing list intera magari non intenzionalmente rallentando lo sviluppo di Subversion Non ho di tutti i thread ma facendo il vgrep delle mie mail di Subversi che ogni mail di persona ha ricevuto risposta almeno una volta da almeno 2 delle a della lista sopra anche se faremo Penso che qui sia necessario qualche tipo di intervento radicale via la persona sopracitata Carineri gentilezze si sono gi dimostrate senza ef dev subversion una mailing li
323. l thread di conferma ad esempio la URL nell archivio della mailing list Ricordate che anche se questo sistema migliorer il rapporto tra segnale e rumore nel database dei problemi nel tempo non fermer completamente le segnalazioni non corrette L unico modo per prevenirle del tutto di limitare l accesso al bug tracker ai soli programmatori una cura che quasi sempre peggio della malattia E meglio accettare che la pulizia di problemi non validi sar sempre parte della periodica manutenzione del progetto cercare di avere il maggior numero possibile di persone che diano una mano Vedi anche sezione chiamata Il Manager di Problemi in Capitolo 8 Gestire i Volontari IRC Sistemi di Chat in tempo reale Molti progetti offrono chat in tempo reale usando Internet Relay Chat IRC forum dove utenti e sviluppatori possono farsi reciprocamente domande e avere risposte istantanee Anche se potreste fornire un server IRC dal vostro sito web non generalemnte il caso Fate invece ci che tutti gli altri fanno fate andare il vostro canale IRC su Freenode http freenode net Freenode vi da il controllo di cui avete bisogno per amministrare i canali IRC del vostro progetto liberandovi dal non insignificante problema di mantenervi da voi un server IRC La prima cosa da fare scegliere un nome per il canale La scelta pi ovvia il nome del vostro progetto se disponibile su Freenode allora usatelo Altrimenti cercate di
324. l aiuto di molti piccoli esempi l attitudine complessiva che che meglio incoragger la buona gestione dell informazione nei vostri progetti Questa attitudine coinvolger una combinazione di capacit tecniche e capacit umane Le capacit tecniche sono perch la gestione delle informazioni spesso richiede la configurazione pi una certa quantit di manutenzione in corso e di nuove regolate nelle misura in cui nuovi bisogni sorgono come esempio vedere la discussione su come trattare un progetto cresciuto in sezione chiamata Pre Filtraggio del Bug Tracker pi in l in questo capitolo Dal suo libro mitico mese dell uomo 1975 vedere http en wikipedia org wiki The_Mythical Man Month and http en wikipedia org wiki Brooks_Law 31 L Infrastruttura Tecnica Le abilit delle persone sono necessarie perch la comunit umana anche richiede manutenzione non sempre immediatamente ovvio come usare questi strumenti con profitto e in alcuni casi i progetti hanno delle convenzioni in conflitto per esempio vedere la discussione sul predisporre le intestazione Rispondere a nei posts in uscita in sezione chiamata Mailing Lists Chiunque sar coinvolto nel progetto avr bisogno di essere incoraggiato al momento giusto e nella giusta maniera per fare la sua parte nel mantenere l informazione del progetto ben organizzata Pi sar coinvolto il collaboratore pi saranno complesse e specializzate le tecniche che ci si
325. l messaggio di log originale della modifica per puntualizzare che stata annullata Tutto ci di cui sopra implicca che dovreste usare una sintassi consistente per fare riferimento alle revisioni Ci utile non solo nei messaggi di log ma anche nelle email nel tracciatore di bug e da ogni altra parte Se state usando CVS suggerisco path to file in project tree REV dove REV il numero di revisione CVS tipo 1 76 Se state usando Subversion la sintassi standard per la revisione 1729 r1729 i path dei file non sono necessari perch Subversion usa numeri di revisione globali In altri sistemi c solitamente una sintassi standard per esprimere il nome degli insiemi di modifiche Qualunque sia la sintassi appropriata per il vostro sistema incoraggiate la gente ad usarla quando fa riferimento alle modifiche Espressioni consistenti di nomi delle modifiche rende la gestione del progetto molto pi facile come vedremo in Capitolo 6 Comunicazione e Capitolo 7 Confezione Rilascio e Sviluppo Quotidiano e dato che buona parte della gestione sar svolta da volontari deve essere il pi semplice possibile Vedi anche sezione chiamata Le Releases e Lo Sviluppo Quotidiano in Capitolo 7 Confezione Rilascio e Sviluppo Quotidiano Autorizzazione La maggior parte dei sistemi di controllo di versione offre una funzionalit dove a certe persone pu essere permesso o vietato fare il commit in specifiche sotto aree del reposi
326. l mettere appunto la correzione del bug nella 1 1 0 e a dire a tutti i vecchi utilizzatori della 1 0 x che dovrebbero aggiornare Perch non rilasciare sia la 1 1 0 che la 1 0 4 in modo che ognuno sia felice Dopo che la linea 1 1 x in cammino potete dichiarare che la 1 0 x alla fine della vita Questo dovrebbe essere annunciato ufficialmente L annuncio dovrebbe essere unico o dovrebbe essere menzionato come parte dell annuncio della release 1 1 x comunque fatelo gli utilizzatori hanno bisogno di sapere che la vecchia linea sta venendo gradualmente eliminata cos che di conseguenza possano prendere la decisione di aggiornare Alcuni progetti stabiliscono un intervallo di tempo durante il quale si impegnano a supportare la linea di release precedente In un contesto open source supportare significa accettare i reports di bugs su quella linea e creare release di manutenzione quando vengono trovati bugs significativi Altri progetti non vi dedicano una quantit di tempo definita ma tengono d occhio i reports di bugs che arrivano per misurare quanta gente sta usando la vecchia linea Quando la percentuale scende sotto un certo livello essi dichiarano la fine della vita per quella linea e smettono di supportarla Per ogni release assicuratevi di avere una versione obiettivo o una pietra miliare obiettivo nel tracciatore di bug cos la gente che archivia i bugs sapr fare cos nei confronti della propria release Non dimenticate nemm
327. l tasto shift ma un gran numero di progetti inviano pacchetti con la maiuscola La cosa importante che le directory che si creano estraendo il pacchetto tar usino anche la maiuscola Non si dovrebbero essere sorprese l utilizzatore dovrebbe essere di predire con perfetta accuratezza il nome della directory che so creer quando estrarr una distribuzione Pre releases Quando inviate una pre release o una candidate release il qualificatore con esattezza una parte del numero di release cos includetelo nel nome del pacchetto Per esempio la sequenza ordinata di releases alfa e beta date prima in sezione chiamata I Componenti del Numero di Rilascio dovrebbero apparire nel nome del pacchetto come scanley 2 3 0 alphal tar gz scanley 2 3 0 alpha2 tar gz scanley 2 3 0 betal tar gz scanley 2 3 0 beta2 tar gz scanley 2 3 0 beta3 tar gz scanley 2 3 0 tar gz La prima si estrarrebbe in una directory chiamata scanley 2 3 0 alphal1 la seconda nella scanley 2 3 0 alpha2 e cos via Compilazione e Installazione Per software che richiede compilazione e installazione dal sorgente si sono usualmente delle procedure standard che si presume gli utilizzatoti esperti siano capaci di seguire Per esempio per programmi scritti in C C o certi altri linguaggi compilati lo standard per sistemi tipo Unix e che l utilizzatore batta configure make 129 Confezione Rilascio e Sviluppo Quotidiano make install Il prim
328. la gente non si aspetter ci Tutte le organizzazioni hanno segreti forse quelle con fini di profitto ne hanno di pi ma quelle noprofit ne hanno pure Se dovete difendere un certo corso ma non rivelate nulla sul perch allora semplicemente offrite i migliori argomenti che potete impediti da quello svantaggio e accettate il fatto che non potete avere l influenza che volete in quella discussione Questo uno dei compromessi che dovete fare per non avere la comunit di sviluppo sul vostro libro paga Il Danaro Non Pu Comprare Ci Che Amate Se avete uno sviluppatore pagato nel progetto allora stabilite delle linee guida su ci che il denaro pu comprare e ci che non pu comprare Ci non significa che dovete postare due volte al giorno nella mailing list ripetendo la vostra nobile e incorruttibile natura Significa solo che dovreste essere in guardia nel caso doveste disinnescare le tensioni che potrebbero crearsi per i soldi Non il caso di di partire assumendo che le tensioni sono l dovete dimostrare una consapevolezza che esse hanno la potenzialit di nascere Un perfetto esempio di questo ci viene dal progetto Subversion Subversion fu avviato nel 2000 da CollabNet http www collab net che era stata la principale finanziatrice sin dal suo inizio pagando i salari di molti sviluppatori esclusioni di garanzia io sono uno di essi Poco dopo che il progetto incominci noi ingaggiammo un altro sviluppatore Mike Pilato
329. la loro comparsa Appendice A Sistemi di Controllo di Versione Liberi elenca tutti quelli di cui sono a conoscenza in un ordine approssimativo di popolarit Come la lista mostra decidere su un sistema di controllo di versione pu facilmente diventare un progetto di ricerca lungo una vita Magari Vedi http cia ve stats ves e http subversion tigris org svn dav securityspace survey html per prove di questa crescita 45 L Infrastruttura Tecnica vi risparmierete la decisione perch sar presa per voi dal sito che vi ospita Ma se dovete scegliere consultatevi con gli altri sviluppatori chiedete in giro per vedere con quale la gente ha esperienza infine prendetene uno e andate avanti con quello Ogni sistema di controllo di versione stabile e pronto alla produzione andr bene non dovete preoccuparvi troppo di fare una scelta totalmente sbagliata Se proprio non riuscite a farvi un idea allora usate Subversion E abbastanza facile da imparare e probabilmente rimmarr standard per almeno un po di anni Usare un sistema di controllo di versione I consigli di questa sezione non sono indirizzati a particolari versioni di sistemi di controllo di versione e dovrebbero essere facili da implementare in ognuno di loro Consultate la documentazione specifica del vostro sistema di versione per i dettagli Tenere tutto sotto controllo di versione Tenere non solo il codice sorgente del vostro progetto sotto controllo di versione ma a
330. la rimuove ogni possibile dubbio Per organizzazioni preoccupate del controllo del marchio quindi la licenza BSD pu essere di poco preferibile alla MIT X In generale comunque una licenza liberale di copyright non implica che il destinatario abbia il diritto di usare o indebolire il vostro marchio la legge sul copyright e quella sul marchio sono due bestie differenti Se volete usare un licenza BSD revisionata un modello disponibile a http www opensource org licenses bsd license php L Assegnazione del Copyright e la Propriet Ci sono tre modi per maneggiare la propriet del copyright per il codice libero e la documentazione che sono stati forniti da molta gente Il primo ignorare la questione del copyright completamente io non lo raccomando Il secondo raccogliere un contratto legale di collaborazione CLA da ogni persona 171 Licenze Diritti d Autore e Brevetti che lavora al progetto che garantisce esplicitamente al progetto il diritto di usare quel contributo della persona Questo e usualmente sufficiente per la maggior parte dei progetti e la cosa simpatica che in qualche giurisdizione i CLA possono essere inviati per email Il terzo acquisire le vere cessioni dei diritti dai collaboratori di modo che il progetto cio qualche entit legale nonprofit sia il possessore legale del copyright per ogni cosa Questo il modo legalmente pi inattaccabile ma anche il pi gravoso per i collaborator
331. lare di questioni filosofiche su una base giornaliera I programmatori non insistono sul fatto che ogni altro nel progetto sia Introduzione concorde con le proprie vedute su tutte le cose quelli che insistono su questo si trovano rapidamente incapaci a partecipare a qualunque progetto Ma voi avete bisogno di essere a conoscenza del fatto che la questione del software libero contro l open source esiste in parte per evitare di dire cose che potrebbero essere ostili a qualche partecipante e in parte perch capire le motivazioni dei programmatori il miglior modo in un certo senso il solo di portare avanti un progetto Il software libero una cultura per scelta Per operare con successo in esso dovete capire in primo luogo perch la gente sceglie di stare in esso Tecniche coercitive non funzionano Se la gente non contenta in un progetto andr verso un altro progetto Il software libero degno di attenzione anche fra le comunit di volontari per la sua chiarezza di impiego Molta della gente coinvolta non ha mai incontrato gli altri partecipanti faccia a faccia e dona ritagli di tempo quando gli va a genio Il passaggio normale attraverso il quale gli uomini si uniscono gli uni agli altri si restringe a un sottile canale le parole scritte che viaggiano sui fili elettrici A causa di ci pu passare molto tempo prima che si formi un gruppo coeso e specializzato Viceversa molto facile che si perda un potenzi
332. late modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author s honor or reputation Licensor agrees that in those jurisdictions e g Japan in which any exercise of the right granted in Section 3 b of this License the right to make Adaptations would be deemed to be a distortion mutilation modification or other derogatory action prejudicial to the Original Author s honor and reputation the Licensor will waive or not assert as appropriate this Section to the fullest extent permitted by the applicable national law to enable You to reasonably exercise Your right under Section 3 b of this License right to make Adaptations but not otherwise 5 Representations Warranties and Disclaimer UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING LICENSOR OFFERS THE WORK AS IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK EXPRESS IMPLIED STATUTORY OR OTHERWISE INCLUDING WITHOUT LIMITATION WARRANTIES OF TITLE MERCHANTIBILITY FITNESS FOR A PARTICULAR PURPOSE NONINFRINGEMENT OR THE ABSENCE OF LATENT OR OTHER DEFECTS ACCURACY OR THE PRESENCE OF ABSENCE OF ERRORS WHETHER OR NOT DISCOVERABLE SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES SO SUCH EXCLUSION MAY NOT APPLY TO YOU 6 Limitation on Liability EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY
333. le Sarebbe un incubo mantenerlo rispetto alla proposta di J Random 88 Comunicazione Tono Lo stesso sentimento in realt diventa pi forte quando espresso in maniera meno netta Funziona ma non ideale in termini di leggibilit e mantenibilit io penso La proposta di J Random evita questi problemi perch Non sarete in grado di liberarvi completamente dalle iperboli e in generale non necessario Rispetto ad altre forme di cattiva comunicazione l iperbole non globalmente dannosa danneggia principalmente chi la fa I destinatari possono compensarla soltanto il mittente perde un po pi credibilit ogni volta Quindi per l amore della vostra stessa influenza nel progetto provate a stare nel lato della moderazione In questo modo quando voi avete bisogno di fare un affermazione forte la gente vi prender seriamente Controllate due volte Per ogni messaggio pi lungo di un paragrafo di media grandezza rileggetelo dall inizio alla fine prima di mandarlo ma dopo che pensate di averlo finito una prima volta Questo un consiglio noto a chiunque abbia seguito lezioni di composizione ma soprattutto importante nelle discussioni online Dato che il processo di comporre online tende ad essere altamente discontinuo durante la scrittura di un messaggio potreste aver bisogno di andare indietro e controllare altre email visitare alcune pagine web usare un comando per catturare il suo output di debug
334. le e i si tratta di essere in grado di indicare da qualche part dire Qui io l ho f E un importante tratto nei politici ma presente in molta gente se viene data l o nel cemento fresco Piego la testa in rispetto al proponitore originale perch rimasto attaccato all pulizia delle noccioline dal tappeto e il cambiamento ora nel nostro albero Av andato via dopo meno di una manciata di messaggi in quel thread E questo mi porta come promesso prima al perch mi sono tolto da hackers i sono tolto da hackers molti anni fa perch non potevo stare dietro al carico altre mailing list per lo stesso identico motivo E ancora ricevo tante email Molte vengono instradate su dev null dai filtri Gen cos come commit a documenti in lingue che non capisco commit su porte come quest lo sappia Ma nonostante questi denti affilati sotto la casella di posta ancora ricevo tropp Questo dove l erba pi verde entra nell immagine Spero che potremmo ridurre la quantit di rumore nelle nostre mailing list e spero 186 Perch dovrebbe importarmi di che colore sia la rastrelliera che la gente costruisca rastrelliere per biciclette cos spesso Il primo di questi desideri riguarda l essere civili sensibili intelligenti n e non mi interess Se potessi definire in maniera concisa e precisa un insieme di criteri per quando ad una email cosi che chiunque sarebbe d accordo si
335. le migliori e La familiarit Se usate una delle tre o quattro licenze pi popolari la gente non avr la sensazione di leggere roba giuridica per usare il vostro codice perch lo ha gi fatto per quella licenza da tempo e La qualit A meno che non abbiate un team di legali a disposizione improbabile che voi spuntiate con una licenza legalmente solida Le licenze menzionate sono il frutto di tanto pensare e di tanta esperienza a meno che il vostro progetto non abbia bisogno di cose speciali improbabile che voi fareste di meglio Per applicare una di queste licenze al vostro progetto vedete sezione chiamata Come Applicare Una Licenza Al Vostro Software in Capitolo 2 Partenza La licenza MIT X Window System Se il vostro obiettivo quello che il vostro codice sia accessibile dal pi grande numero di sviluppatori e di lavori derivati e non date importanza al fatto che sia usato in programmi proprietari scegliete la 168 Licenze Diritti d Autore e Brevetti licenza MIT X Window System cos chiamata perch la licenza sotto la quale il Massachusetts Institute of Technology rilasci il codice del sistema X Window Il messaggio fondamentale di questa licenza Siete liberi di usare questo codice in qualunque modo vogliate Essa compatibile con la GNU GPL ed breve semplice e facile da capire Copyright c lt anno gt lt detentori del copyright gt Il permesso cos garantito grat
336. le per distinguere un merge da un modifica il messaggio di log Nel messaggio di log di un merge non ripetete il messaggio log della modifica originale Invece indicate solo che questo un merge e fornite la revisione che identifica la modifica originale con al massimo un sommario di una frase sul suo effetto Se qualcuno vuole vedere il messaggio di log intero dovr consultare la revisione originale La ragione per cui importante evitare la ripetizione dei messaggi di log che questi messaggi sono spesso modificati dopo che il commit stato fatto Se il messaggio di log di una modifica ripetuto ad ogni destinazione di un merge allora anche se qualcuno modificato il messaggio originale lascier tutte le ripetizioni non corrette il che causerebbe solo confusione strada facendo 49 L Infrastruttura Tecnica Lo stesso principio vale per il disfacimento di una modifica Se una modifica viene tolta dal codice allora il messaggio di log per la revisiona deve solo dire che qualche specifica revisione stata disfatta non descrivere i cambi nel codice che risultano dalla revisione dato che la semantica della modifica pu essere ottenuta leggendo il messaggio di log e la modifica originali Di certo il messaggio di log della revisione deve anche spiegare la ragione per cui la modifica stata annullta ma non deve riprendere nulla del messaggio di log originale della modifica Se possibile tornate indietro e modificate i
337. le traduzioni Invece egli gestisce dei team di traduttori volontari egli li aiuta a coordinarsi fra loro e coordina i team fra loro e il resto del progetto Una parte delle ragioni per cui il manager delle traduzioni necessario che i traduttori sono una entit demografica differente da quella degli sviluppatori Essi a volte hanno qualche o nessuna esperienza nel lavorare con deposito del controllo di versione o certamente proprio nel lavorare come parte del team di volontari distribuito Ma sotto altri aspetti essi sono spesso la miglior specie di volontari persone proprio con una specifica conoscenza del dominio che videro una necessit e scelsero di essere coinvolti Essi di solito sono desiderosi di imparare ed entusiasti di mettersi al lavoro Tutto ci di cui hanno bisogno uno che gli dica come Il manager delle traduzioni assicura che la traduzione avvenga in modo da non interferire senza necessit col regolare sviluppo Egli anche funziona come come sorta di rappresentanza dei traduttori come corpo unificato ogni volta che gli sviluppatori devono essere informati di cambiamenti tecnici richiesti per supportare lo sforzo di traduzione Cos le abilit pi importanti della posizione sono diplomatiche non tecniche Per esempio in Subversion noi avevamo la politica che tutte le traduzioni dovevano avere almeno due persone a lavorarvi perch altrimenti non c modo di revisionare il testo Quando un nuovo volontario si off
338. le uniche che cambiano al massimo grado nella misura in cui il progetto cresce in grandezza e complessit Primo prestate attenzione ai motivi per i quali la gente si confonde Se vedete la stessa situazione presentarsi ancora e ancora specialmente con i nuovi partecipanti La possibilit che c una linea guida che necessita di di essere documentata e non lo Secondo non vi stancate di dire la stessa cosa ancora e ancora e non suonate come se siete stanchi di dirle Voi e i veterani di altri progetti dovete ripeterlo a voi stessi questo un effetto inevitabile dell arrivo di nuovi arrivati Ogni pagina web ogni messaggio della mailing list ed ogni canale IRC dovrebbe essere considerato uno spazio per i consigli non per pubblicit eccetto che per pubblicit delle risorse del vostro progetto Ci che mettete in quello spazio dipende dalla demografia di quelli che lo leggono Un canale IRC per le domande degli utilizzatori per esempio adatto a portare gente che che non ha mai interagito col progetto prima spesso qualcuno che ha appena installato il software e ha una domanda a cui vorrebbe venga risposto immediatamente dopotutto se potesse aspettare l avrebbe mandata alla mailing list che probabilmente meno meno del suo tempo totale sebbene ci vorrebbe di pi perch ne venga indietrouna risposta La gente di solito non fa un investimento permanente nel canale IRC essi si presentano fanno la loro domanda e vanno via
339. li ma vaghi report di bug Questo uno dei miei fastidi ricorrenti vedo farlo su varie mailing lists open source il male che fa palpabile Alcuni sventurati principianti scriveranno un inuutile report non mi riesce di prendere una Scanley da far girare Ogni volta che parte mi d errore Sta qualcun altro riscontrando lo stesso problema che hanno visto questo tipo di report centinaia di volte e che non si sono trattenuti dal pensare che il principiante non li hanno visti centinaia di volte risponderanno all incirca cos Cosa avete supposto di fare con cos poca informazione E frustrante Dateci almeno qualche dettaglio come la versione di Scanley il vostro sistema operativo e l errore Lo sviluppatore ha mancato di vedere le cose dal punto di vista dell utilizzatore ed ha mancato anche di considerare l effetto che una tale reazione potrebbe avere sul tutte le altre altre persone che stanno osservando lo scambio Naturalmente un utilizzatore che non ha una esperienza di report di bugs non sapr come scrivere un report di bug Quale il modo giusto di trattare questa persona Educatelo E fatelo in modo che egli ritorni per maggiori ragguagli Mi dispiace che state avendo problemi Abbiamo bisogno di maggiori informazioni per renderci conto di ci che sta succedendo qui Prego diteci la versione di Scanley il vostro sistema operativo e il testo esatto dell errore La miglior cosa che possiate fare quella di inviare un
340. libero meglio che meno libero dopotutto chi non a favore della libert conseguentemente queste licenze sono migliori della GPL Questo dibattito un altra popolare guerra santa vedere sezione chiamata Evitare le Guerre Sante in Capitolo 6 Comunicazione Evitate di parteciparvi almeno nei forum di progetto Non tentate di provare che la GPL meno libera altrettanto libera o pi libera di altre licenze Piuttosto mettete l accento sulle ragioni per cui il vostro progetto ha scelto la GPL Se il fatto di essere riconosciuta per una licenza una ragione ditelo Se l obbligo di una licenza libera per lavori derivati anche un ragione dite anche questo ma rifiutatevi di essere coinvolti sulla discussione se ci rende il codice pi o meno La storia della licenza e del suo nome un po complicata La prima versione della licenza fu rilasciata da Affero Inc che la bas sulla GNU GPL versione 2 A questa si fece comunemente riferimento come AGPL Pi tardi la Free Software Foundation decise di adottarne l idea ma fino ad allora essa aveva rilasciato la versione 3 della sua GNU GPL cos bas la sua nuova licenza Afferoizzata su quella e la chiam GNU AGPL La vecchia licenza Affero pi o meno deprecata adesso Se volete clausole tipo Affero dovreste usare la versione GNU Per evitare ambiguit chiamatela AGPLv3 GNU AGPL o con la massima precisione GNU AGPLv3 170 Licenze Diritti d A
341. lio dire che i contributi della persona non dovrebbero essere riconosciuti certo Ma ricordate che se il progetto messo su bene ogni cosa che quello persona fa gi visibile comunque e cos il gruppo sapr e la persona sapr che che il resto del gruppo sa ogni cosa che fa Ci sono anche modi per dare un riconoscimento al lavoro che uno fa per mezzo di altro al posto di lodi dirette Potete menzionare di passaggio mentre discutete un argomento correlato che egli ha fatto un sacco di lavoro in un dato campo ed l esperto locale l potete pubblicamente consultarlo circa qualche questione sul codice o magari pi efficacemente potete fare un massiccio uso ulteriore del lavoro che ha fatto in modo che veda che gli altri sono a proprio agio nel contare sul risultato del suo lavoro Probabilmente non necessario fare queste cose in modo calcolato Qualcuno che regolarmente d ampi contributi in un progetto lo sapr e occuper una funzione influente senza che faccia nulla di proposito Di solito non c bisogno di fare passi espliciti per assicurare ci a meno che voi non abbiate la sensazione per una qualsiasi ragione che un collaboratore sottostimato Prevenire la Territorialit Fate attenzione a che i partecipanti non cerchino di esercitare una propriet esclusiva su certe aree del progetto e a coloro che sembrano voler fare tutto il lavoro in quelle aree fino al punto di assumere la direzione del lavoro che altri incomi
342. lit o cos voi credete allora la vostra soluzione dovrebbe essere implementata Invece voi dovreste focalizzare i vostri post iniziali sul problema piuttosto che su una particolare soluzione Descrivete in gran dettaglio l esperienza che i vostri clienti stanno facendo offrite quanta pi analisi vi possibile e quante soluzioni voi potete pensare Quando la gente incomincia a far congetture sull efficacia delle varie soluzioni voi potete continuare ad utilizzare i vostri dati per sostenere o rifiutare quello che dicono Voi potete avere una soluzione in mente per tutto il tempo ma non sceglietela per speciali considerazioni all inizio Questo non inganno questo il comportamento standard dell onesto mediatore Dopotutto il vostro vero obiettivo risolvere il problema una soluzione solo un mezzo per quel fine Se la soluzione che voi preferite veramente la migliore gli altri sviluppatori lo riconosceranno dal loro canto alla fine e allora vi andranno dietro di loro spontanea volont che molto meglio che se voi li minacciaste a implementarla C anche la possibilit che essi abbiano in mente un soluzione migliore Con questo non si vuole dire che non potete mai dichiararvi a favore di una specifica soluzione Ma dovete avere la pazienza di vedere l analisi che avete gi fatto internamente ripetuta nella mailing list dello sviluppo pubblico Non postate Noi abbiamo discusso ogni aspetto di questo problema ma non fu
343. lnerabilit di Scanley Questa email una una notifica confidenziale di una allarme nel server di Scanley Prego non inoltrare nessuna parte di questa email ad alcuno Non c annuncio fi State ricevendo questa email perch noi pensiamo che voi facciate girare un serv Riferimenti CAN 2004 1771 Sovraccarico dello stack di Scanley nelle query Vulnerabilit Il server pu essere messo nelle condizioni di eseguire comandi arbitrari se il lo Seriet Molto seria Pu comportare l arbitraria esecuzioni di codice sul server Soluzioni Il mettere l opzione del processo del linguaggio naturale a off in scanley La patch di sotto si applica a Scanley 3 0 3 1 e 3 2 Una nuova release la Scanley 3 2 1 verr creata il o appena prima del 19 Maggio la patch va qui Se avete un numero CAN includetelo nella pre notifica come mostrato sopra anche le informazioni a sono ancora bloccate e quindi la pagina del MITRE non mostra nulla L inclusione del numero CAN mette il destinatario in grado di sapere con certezza che il bug del quale stato pre notificato lo stesso di cui ha sentito parlare attraverso i canali pubblici cos egli non ha a preoccuparsi se necessaria qualche azione ulteriore o no che precisamente lo scopo dei numeri CAN CVE Distribuite la correzione pubblicamente L ultimo passo nella gestione di un bug di sicurezza quello di di distribuire la pubbli
344. lo spam Gli occasionali messaggi non pertinenti sarebbero comunque comparsi ma abbastanza infrequentemente ed essere solo una piccola noia Quell era andata per sempre Oggi una mailing list che non adotta misure di prevenzione dello spam sar velocemente sommersa di email spazzatura fino al punto di diventare inservibile La prevenzione dello spam imperativa Dividiamo la prevenzione dello spam in due categorie prevenire il comparire di messaggi di spam sulla mailing list e prevenire che la vostra mailing list diventi una fonte di nuovi indirizzi email per gli spammer La prima pi importante quindi la esaminiamo per prima Filtrare i messaggi Ci sono tre tecniche di base per prevenire i messaggi di spam e la maggior parte dei software di gestione di mailing list li offre tutti E meglio usarli tutti insieme 1 Permettere la pubblicazione automatica di messagggi solo da parte degli iscritti della mailing list Questo efficace finch funziona e comporta un piccolissimo sforzo amministrativo dato che solitamente si tratta di cambiare una configurazione nel software di gestione di mailing list Ma bisogna notare che i messaggi che non sono approvati automaticamente non devono essere semplicemente scartati Invece dovrebbero essere passati alla moderazione per due ragioni Primo potete voler permettere ai non inscritti di pubblicare messaggi Una persona con una domanda o un consiglio non dovrebbe avere bisogno di iscriv
345. lto una questione di giudizio Downloads Il software dovrebbe essere scaricabile come codice sorgente in formato standard Quando il progetto sta inizialmente prendendo avvio il pacchetto binario eseguibile non necessario amenoch il software 16 Partenza abbia i requisiti di costruzione o aspetti annessi talmente complicati che il semplice prelevarlo per farlo girare sarebbe un gran lavoro per molta gente Ma in questo caso il progetto in un brutto periodo per attrarre sviluppatori comunque Il meccanismo di distribuzione dovrebbe essere agevole standardizzato e il meno astratto possibile Se steste cercando di sradicare un male non distribuireste la medicina in modo tale che essa richieda una grandezza della siringa non standard per somministrarla Allo stesso modo il software doverebbe conformarsi a metodi standard di costruzione e di installazione pi esso devia dagli standards pi i potenziali utilizzatori e sviluppatori abbandoneranno e andranno via confusi Il che suona ovvio ma molti progetti non si infastidiscono a standardizzare le loro procedure di installazione prima che sia molto tardi nel gioco dicendo che possono farlo in qualsiasi momento Sistemeremo tutte quelle cose quando il codice sar pi vicino ad essere pronto Ci di cui non si rendono conto che rimandando il lavoro noioso di portare a termine le procedure di costruzione e di installazione in realt stanno facendo in modo che il co
346. ludessero altre attivit il risultato sarebbe un sacco di sviluppatori seduti a oziare per un sacco di tempo la qualcosa sarebbe non solo inefficiente ma tediosa e quindi dannosa in quanto uno sviluppatore annoiato equivalente presto a un ex sviluppatore Il lavoro di release usualmente la pi notevole operazione che avviene in parallelo con lo sviluppo cos i metodi descritti nella prossima sezione sono per lo pi attrezzati a rendere possibili le releases Comunque notate che essi si applicano anche ad altre operazione eseguibili in parallelo come la traduzione e l internazionalizzazione grandi cambiamenti alle API fatti generalmente lungo tutto il codice base ecc 116 Confezione Rilascio e Sviluppo Quotidiano Numerazione delle Releases Prima di parlare di come fare una release vediamo come chiamare una release che vuol dire sapere veramente cosa significa per un utilizzatore Una release significa che e I vecchi bugs sono stati corretti Questa probabilmente l unica cosa sulla cui verit gli utilizzatori possono contare e Nuovi bugs si sono aggiunti Questa anche una cosa su cui si pu contare tranne a volte nel caso di releases di sicurezza o di altre cose che avvengono una sola volta vedere sezione chiamata Le Releases di Sicurezza pi avanti in questo capitolo e Nuove funzionalit possono essere state aggiunte e Nuove opzioni di configurazione possono essere state aggiunte o il fine
347. ly to del mittente originale Chi risponde schiaccia il tasto reply to author aspettandosi di rispondere con un messaggio privato all autore originale Dato che questo il comportamento atteso potrebbe non preoccuparsi di guardare con attenzione all indirizzo di destinazione nel nuovo messaggio Scrive il suo messaggio privato e confidenziale uno in cui magari dice cose imbarazzanti riguardo a qualcuno della mailing list e schiaccia il tasto di invio Inaspettatamente pochi minuti dopo il suo messaggio appare sulla mailing list D accordo in teoria dovrebbe avere controllato al campo destinatario e non dovrebbe aver presunto nulla riguardo all header Reply to Ma gli autori praticamente sempre mettono nel Reply to il loro indirizzo personale o meglio il software di posta lo fa per loro e molti utilizzatori di email di lunga data se lo aspettano Infatti quando una persona mette deliberatamente nel Reply to qualche altro indirizzo come la mailing list solitamente lo scrive nel corpo del messaggio cos che la gente non sar sorpresa per cosa succede quando rispondono A causa delle conseguenze anche serie di questo comportamento inaspettato la mia personale preferenza la configurazione del software di gestione della mailing list in modo che non tocchi mai l header Reply to Questo un caso in cui usare la tecnologia per incoraggiare la collaborazione ha mi sembra effetti collaterali potenzialmente pericolosi In ogni caso ci sono
348. marmi sulla situazione del libro mi ha sempre ascoltato ed a volte ha reso i problemi pi piccoli di quello che sembravano prima di parlarle Anche questo mi stato di grande aiuto grazie Grazie ancora a Noel Taylor che si sar sicuramente chiesto perch io volessi scrivere un altro libro visto quanto mi sono lamentato la volta precedente ma la cua amicizia e appartenenza a Golosa mi ha aiutato ad avere un po di buona musica e fratellanza nella mia vita anche nei giorni pi impegnati Grazie anche a Matthew Dean e Dorothea Samtleben amici e compagni sofferti di musica che hanno saputo comprendermi man mano che le scuse per le assenze durante la pratica si accumulavano Megan Jennings stata un supporto costante ed interessata in maniera spontanea all argomento sebbene le risultasse poco familiare un vero tonico per uno scrittore insicuro Grazie cara Ho avuto quattro revisori competenti e precisi per questo libro Yoav Shapira Andrew Stellman Davanum Srinivas e Ben Hyde Se fossi stato in grado di integrare tutti i loro eccellenti suggerimenti questo sarebbe un libro migliore Ma come capita sempre i vincoli temporali mi hanno costretto a scegliere sebbene i miglioramenti siano comunque significativi Qualsiasi refuso rimasto imputabile esclusivamente a me I miei genitori Frances ed Henry sono stati un supporto meraviglioso come sempre a visto che questo libro meno tecnico del precedente spero che lo tr
349. me e gli attributi id Una ancora con nome appunto un normale elemento Html lt a gt lt a gt ma con un attributo 13 99 name lt un name miaetichetta gt lt a gt Versioni pi recenti di Html supportano un attributo id generico che pu essere attaccato ad un elemento Html non solo lt a gt Per esempio lt p id miaetichetta gt lt p gt Ambedue gli attributi id e le ancore con nome sono usati nello stesso modo Uno aggiunge un segno hash e l etichetta a un URL per far si che il browser salti dritto a quel punto nella pagina http myproject example com fag html miaetichetta Virtualmente tutti i browsers supportano le ancore con nome la maggior parte dei browsersa moderni supportano l attributo id Per farlo funzionare con sicurezza io raccomanderei di usare sia le ancore con nome da sole sia gli attributi id insieme con la stessa etichetta per ambedue in una data coppia certo Le ancore con nome non possono essere a chiusura automatica anche se non c testo dentro l elemento voi lo potete scrivere in una forma di due tipi lt a name mia etichetta gt lt a gt sebbene normalmente ci sarebbe li qualche testo come il titolo di una sezione Se usate l ancora con nome o l attributo id o ambedue ricordate che l etichetta non sar visibile a qualcuno che osserva verso quella locazione senza usare l etichetta Ma una tale persona potrebbe voler scoprire l etichetta di una locazione p
350. me lo sviluppo viene generalmente fatto il progetto una benevola dittatura una democrazia o qualcos altro Il termine dittatura non inteso in senso peggiorativo per inciso E un perfetto okay al realizzarsi di una tirannia dove un particolare sviluppatore ha il potere di veto su tutti i cambiamenti Molti progetti di successo funzionano in questo modo L importante che il progetto venga fuori e si fa per dire cos Una tirannia che pretenda di essere una democrazia disguster la gente Una tirannia che dice di essere una tirannia andr bene finch il tiranno competente e fidato Vedere http subversion apache org docs community guide per un esempio completo di linee guida o http www openoffice org dev_docs guidelines html per linee guida che mettono a fuoco pi l amministrazione e lo spirito di partecipazione e meno le questioni tecniche Il problema separato di fornire al programmatore una introduzione al software trattato in sezione chiamata La documentazione sviluppatore pi in l in questo capitolo La documentazione La documentazione fondamentale Bisogna che la gente abbia qualcosa da leggere anche se questo qualcosa rudimentale incompleto Ci cade in pieno nella categoria sgobbata cui si fatto riferimento prima ed spesso la prima zona dove un nuovo progetto open source fallisce Venir fuori con una dichiarazione di intenti e con un elenco delle caratteristiche scegliere una li
351. me se chiamarsi Fantastico Hacker far davvero credere alla gente di esserlo Ma il fatto rimane anche se nessuno sa che sei un cane sei ancora un cane Una fantastica identit online non impressiona mai i lettori Invece li fa pensare che sei pi forma che sostanza o semplicemente che sei insicuro Usate il vostro vero nome per tutte le interazioni o se per qualche ragione avete bisogno di anonimato allora costruite un nome che sembri come un nome perfettamente reale ed usatelo consistentemente Oltre a tenere il vostro nome immagine consistente ci sono alcune cose che potete fare per renderlo pi attraente Se avete un titolo ufficiale per esempio dottore professore direttore non ostentatelo n menzionatelo tranne quando direttamente rilevante nella conversazione Il mondo hacker in generale e la cultura del software libero in particolare tende a vedere l esposizione del titolo come esclusiva e segno di insicurezza Va bene se il vostro titolo appare come parte del blocco di firma standard alla fine di ogni email solo non usatelo mai come mezzo per rinforzare la vostra posizione in una discussione il tentativo garantisce fuoco di risposta Volete la gente che rispetta voi non il titolo Parlando dei blocchi di firma manteneteli brevi e gradevoli o meglio ancora inesistenti Evitate ingombranti disclaimer legali alla fine di ogni email specialmente quando esprimono sentimenti incompatibili con la partecipazione ad
352. mentare una data funzionalit o trovarsi di fronte a una causa dispendiosa e che assorbe tempo Poich gli istigatori di tali cause sono usualmente compagnie con tasche profonde cio quelle che hanno le risorse e l inclinazione ad acquistare i brevetti all inizio la maggior parte dei progetti di software libero non pu permettersi l ultima possibilit e deve capitolare immediatamente anche se si pensa che molto verosimile che il brevetto sarebbe non sacettibile di tutela giudiziaria nella corte Per evitare di trovarsi in una tale situazione in primo luogo i progetti di software libero stanno incominciando a scrivere codice in modo difensivo evitando in anticipo algoritmi patentati anche quando essi sono la migliore o l unica soluzione disponibile per i problemi di programmazione Osservazione ed evidenze aneddotiche mostrano che non solo la vasta maggioranza del programmatori open source ma una maggioranza di tutti i programmatori pensano che i brevetti dovrebbero esser abolite completamente I programmatori open source tendono rendersi conto in maniera particolarmente forte di ci e possono rifiutarsi di lavorare a progetti che siano molto associati alla raccolta o all imposizione dei brevetti Se la vostra organizzazione raccoglie brevetti di software allora chiarite in modo pubblico irrevocabile che i brevetti non sarebbero mai applicate ai progetti open source e che sono solo da usare come difesa nel caso che altre parti inizino
353. mente riduce il numero di domande che essi hanno bisogno di di fare Il carico di avere milioni di lettori non pi grande di quello di averne uno i problemi di scalabilit cominciano a sorgere quando un a certe percentuale di di quei lettori fa domande Nella misura in cui il progetto cresce esso deve ridurre quella percentuale aumentando la densit e l accessibilit dell informazione in modo che la persona in grado di trovare ci di cui ha bisogno senza dover chiedere Nessuna Conversazione nel Tracciatore di Bug In un progetto che sta facendo un uso attivo del tracciatore di bug c sempre un pericolo che il tracciatore si trasformi esso stesso in un forum di discussione anche se la mailing list sarebbe in realt migliore Di solito si incomincia abbastanza innocentemente qualcuno annota un problema con una diciamo soluzione proposta e fa seguire un altra annotazione che indica problemi La prima persona risponde ancora aggiungendosi al problema e va cos Il problema con questo primo che il tracciatore di bug un luogo piuttosto ingombrante per tenervi una discussione e secondo che altre persone possono non farvi attenzione dopotutto essi si aspettano che che la discussione dello sviluppo avvengano sulla mailing list dello sviluppo cos l che guardano per essa Essi possono non essere per nulla iscritti alla mailing list dei cambiamenti dei problemi e anche se lo sono possono non seguirla molto da vicino
354. mente parziali perch ogni singola soluzione alla fine resa obsoleta dalla crescita del progetto o dai cambiamenti nella struttura del progetto Sono anche spessoad hoc perch sono improvvisato risposte a situazioni dinamiche Tutti i partecipanti possono diventare consci di quando e come la comunicazione pu crollare ed essere coinvolti nelle soluzioni Aiutare la gente a fare questo una grossa parte della gestione di un progetto open source Le sezioni che seguono trattano sia di come portare avanti la propria comunicazione e di come rendere una priorit la cura dei meccanismi di comunicazione per tutti nel progetto Sei quello che scrivi Considerate questo la sola cosa che ognuna sa di voi su Internet viene da quello che scrivete o cosa altri scrivono di voi Potrete essere brillanti attenti e carismatici di persona ma se le vostre email sono confusionarie e non strutturate la gente assumer che siate cos O magari siete davvero confusionari e disordinati di persona ma nessuno ha bisogno di saperlo se i vostri messaggi sono lucidi e informativi Dedicare un po di cura alla vostra scrittura vi ripagher enormemente Lo smanettone di lunga data di free software Jim Blandy racconta la seguente storiella Nel 1993 stavo lavorando per la Free Software Foundation e stavamo facendo il beta testing della versione 19 di GNU Emacs Facevamo un rilascio della beta all incirca ogni settimana e la gente la provava e ci mandava le
355. menti Una volta che un messaggio memorizzato ad una particolare URL dovrebbe rimanere accessibile a quella stessa URL per sempre o per il maggior tempo possibile Anche se gli archivi saranno ricostituiti ristabiliti da backup o messi a posto in qualche altro modo tutte le URL che sono gi state rese pubblicamente disponibili dovrebbero rimanere invariate Riferimenti stabili rendono possibile per i motori di ricerca Internet di indicizzare gli archivi che una manna per gli utenti in cerca di risposte Referimenti stabili sono anche importanti perch il bug tracker spesso fa riferimento ai messaggi della mailing list vedi sezione chiamata Tracciamento dei bug pi avanti in questo capitolo o in documenti da altri progetti Poco dopo la pubblicazione di questo libro Michael Bernstein http www michaelbernstein com mi scrisse per dirmi Ci sono altri software di mail che implementano la funzionalit reply to list oltre a Mutt Per esempio Evolution ha questa funzionalit come scorciatoia da tastiera ma non come pulsanti Ctrl L 3Da quando ho scritto ci ho saputo che c almeno un sistema di gestione che offre tale funzionalit Siesta http siesta unixbeard net Vedete anche questo articolo a riguardo http www perl com pub a 2004 02 05 siesta html 40 L Infrastruttura Tecnica Idealmente il software di gestione della mailing list dovrebbe includere in un header quando distribuisce il messaggio ai destin
356. mi individuali sono elencati in cima ai files sorgenti In ogni caso l informazione dei riconoscimenti pu essere ottenuta dai logs del controllo di versione e per mezzo di altri meccanismi messi al di fuori della banda come gli archivi delle mailing lists in modo tale che non si perda nessuna informazione bandendola dai files sorgente stessi Se il vostro progetto decide di bandire i nomi individuali dai file sorgenti cercate di non debordare Per esempio molti progetti hanno un area contrib in cui sono tenuti piccoli strumenti e scripts di aiuto spesso scritti da gente che non per altra via associata al progetto E bene che quei files contengano i i nomi degli autori perch essi non sono effettivamente in manutenzione al progetto nel suo intero D altra parte se uno strumento dato come contributo incomincia ad essere modificato da altre persone nel progetto alla fine voi potete volerlo spostare in un una locazione meno isolata e facendo il caso che l autore originale approvi rimuovere il nome dell autore di modo che il codice appaia come ogni altra risorsa in manutenzione da parte dalla comunit Se l autore permaloso su questo sono accettabili soluzioni di compromesso per esempio indexclean py Rimuoveere i vecchi dati da un indice Scanley Autore originale K Maru lt kobayashi yetanotheremailservice com gt Ora mantenuto da The Scanley Project lt http www scanley org gt and K Maru 143 Gestire i
357. minuti riassumendo le conclusioni fino a questo punto di un thread complesso cos da dare alla gente un contesto in cui capire il messaggio allora fate cos Pensatela in questo modo pi un progetto ha successo pi alto sar il rapporto lettori per scrittore in ogni dato forum Se ogni messaggio che pubblicate visto da n persone allora quando n cresce la convenienza di fare uno sforzo extra per risparmiare tempo a questa gente sale con lui E quando la gente vi vede imporre a voi stessi questo standard lavorer per fare altrettanto nelle loro comunicazioni Il risultato idealmente un aumento dell efficienza globale del progetto quando c una scelta tra che n persone facciano uno sforzo e una persona farlo il progetto preferisce la seconda ipotesi Non perdetevi in iperboli Esagerare nei messaggi in linea una tipica corsa alle armi Per esempio una persona che segnala un bug potrebbe preoccuparsi che gli sviluppatori non gli presteranno sufficente attenzione quindi lo descriver come un problema serio e bloccante che sta impedendo a lui e a tutti i suoi amici colleghi cugini di usare il software in maniera produttiva quando soltanto una piccola noia Ma l esagerazione non limitata agli utenti i programmatori a volte fanno lo stesso durante dibattiti tecnici in particolare quando il disaccordo su di una questione di gusto piuttosto che di correttezza Fare in questo modo renderebbe il codice totalmente illegibi
358. mprobabile che il mondo pattuisca un unico completo standard molto presto Comunque poche buone strategie sono emerse insieme a un principio su cui si universalmente d accordo essere in armonia Scegliete uno schema di numerazione documentatelo e seguitelo I vostri utilizzatori vi ringrazieranno I Componenti del Numero di Rilascio Questa sezione descrive le convenzioni formali della numerazione delle releases e presuppone una piccola precedente conoscenza Se gi avete familiarit con queste convenzioni potete saltare questa sezione I numeri delle releases son gruppi di cifre separate da punti Scanley 2 3 Singer 5 11 4 Cosi via I punti non ono punti decimali essi sono solamente separatori 5 3 9 sarebbe seguito da 5 3 10 Pochi progetti hanno fatto intendere diversamente il pi famoso il kernel Linux con la sua sequenza 0 95 0 96 0 99 leading up to Linux 1 0 ma la convenzione che i punti non sono decimali fermamente stabilita e deve essere considerato uno standard Non c un limite al numero dei 117 Confezione Rilascio e Sviluppo Quotidiano componenti parti di cifre non contenenti il punto ma la maggior parte dei progetti non va oltre tre o quattro La ragione diventer chiara avanti In aggiunta a componenti numerici i progetti a volte aggiungono un etichetta descrittiva tipo Alpha o Beta vedere Alpha e Beta per esempio Scanley 2 3 0 Alpha Singer 5 11 4 Be
359. n archiviatore e ha la possibilit di aggiungerne di esterni e SmartList http www procmail org Fatto per essere usato con il sistema di elaborazione email Procmail e Ecartis http www ecartis org 41 L Infrastruttura Tecnica e ListProc http listproc sourceforge net e Ezmlm http cr yp to ezmlm html Progettato per lavorare con il sistema di consegna mail Qmail http cr yp to qmail htm Dada http mojo skazat com Nonostante i bizzarri tentativi di nasconderlo questo free software rilasciato sotto la licenza GNU General Public License Contiene anche un archiviatore Software di archiviazione mailing list e MHonArc http www mhonarc org e Hypermail http www hypermail org e Lurker http sourceforge net projects lurker e Procmail http www procmail org Software complementare a SmartList questo un sistema generale di processamento email che pu apparentemente essere configurato con archiviatore Controllo di versione Un sistema di controllo di versione version control system 0 sistema di controllo di revisione una combinazione di tecnologie e procedure per tenere traccia e controllare i cambiamenti dei file di un progetto in particolare del codice sorgente della documentazione e delle pagine web Se non avete mai usato il controllo di versione prima la prima cosa che dovreste fare cercare qualcuno che l abbia usato e coinvolgerlo n
360. n modified demarca that changes were made to the original Work translation could be marked Th hat are provided for in connection with the copyright nder copyright law or other applicable laws Licensor non exclusive license to to incorporate the Work into one or more nd to Reproduce the Work as incorpora ted in the ny such ny medium takes te or otherwise For h ora te and Publicly Perform the Wor incorporated in Collections and te and Publicly Perform Adaptat original work was modification could k including as ions In those n which the right to collect royalties tutory or compulsory licensing scheme be waived th ictions Licensor reser Waivable Compulsory License Schemes ves th xclusive t such royalties for any exercise by You of ted under this License In those in which the right to collect royalties 194 Copyright thr b ough any statutory or compulsory licensing scheme can col rig Vol to eve soc tha gra IT The above ri now known or to make such the rights i rights not e Restrictions The license and limited a You may D terms of U copy of t offer or this Lice niform R exercise the Licen ntact al disclaime Distribu Perform measures the Work recipient applies does not made subj Collectio extent pr required Adaptatio extent pr i n n required by
361. n risposta a ai tipi pericolari di omissioni e di cattivi report che l utilizzatore tende a a fare per il vostro progetto Le istruzioni sui report di Subversion sono un esempio standard alla lettera della forma vedere Appendice D Istruzioni di Esempio per Segnalare un Bug Notate come essi rispondono ad un invito a fornire una patch per correggere il bug Ci non avviene perch un tale invito porter a un rapporto patch report pi grande la maggior parte degli utilizzatori sono in grado di correggere bugs di cui gi sanno che una patch sarebbe la benvenuta e non hanno bisogno che gli venga detto Il reale proposito di un invito quello di porre l accento per tutti gli utilizzatori specialmente quelli nuovi nel progetto o nuovi al software libero in generale sul fatto che che il progetto va avanti con contributi di volontari In un certo senso gli attuali sviluppatori del progetto non sono pi responsabili della correzione dei bugs di quanto non lo siano quelli che li hanno segnalati nei report Questo un punto importante con il quale molti nuovi utilizzatori non avranno familiarit Una volta che se ne rendono conto essi probabilmente contribuiranno a fa si che la correzione al bug avvenga se non contribuendo col codice allora fornendo un pi completa ricetta per la riproduzione o offrendosi per tests di bugs che le altre persone postano L obiettivo far si che ogni utilizzatore si renda conto che non c una innata differenza fra
362. na diramazione Anche se essi non usano mai l accesso all invio il vostro messaggio chiaro ci sono disaccordi qui ma non nemici e date il benvenuto ai contributi di codice provenienti da ogni origine competente 163 Capitolo 9 Licenze Diritti d Autore e Brevetti La licenza che scegliete probabilmente non avr grande impatto sull adozione del vostro progetto finch open source Gli utilizzatori scelgono generalmente software basato su qualit e funzionalit non sui dettagli della licenza Nondimeno avete bisogno di una comprensione dei problemi delle licenze del software libero compresa l assicurazione che la licenza sia compatibile con i suoi obiettivi e che siate capaci di discutere le decisioni sulla licenza con altre persone Prego notate che io non sono un legale e che niente in questo capitolo dovrebbe essere costituito come un consiglio legale Per quello avrete bisogno di impiegare un un legale o di essere un legale La Terminologia In una discussione su licenze open source la prima cosa che balza all evidenza che sembrano esserci varie parole per la medesima cosa software libero open source FOSS F OSS and FLOSS Partite con l ordinarle insieme ad altri pochi termini software libero Il software pu essere liberamente condiviso e modificato includendolo in qualche forma di codice Il termine fu coniato per prima da Richard Stallman che lo codific nella GNU General Public License GPL e fond
363. nalazione pu far risparmiare ore del tempo di uno sviluppatore e rendere pi che il bug venga messo a posto 190 Appendice E Copyright This work is licensed under the Creative Commons Attribution ShareAlike License To view a copy of this license visit http creativecommons org licenses by sa 3 0 or send a letter to Creative Commons 559 Nathan Abbott Way Stanford California 94305 USA A summary of the license is given below followed by the full legal text If you wish to distribute some or all of this work under different terms please contact the author Karl Fogel lt kfogel red bean com gt You are free to Share to copy distribute and transmit the work to Remix to adapt the work Under the following conditions Attribution You must attribute the work in the manner specified by the author or licensor but not in any way that suggests that they endorse you or your use of the work Share Alike If you alter transform or build upon this work you may distribute the resulting work only under the same similar or a compatible license For any reuse or distribution you must make clear to others the license terms of this work The best way to do this is with a link to this web page Any of the above conditions can be waived if you get permission from the copyright holder Nothing in this license impairs or restricts the author s moral rights
364. nche le sue pagine web la documentazione FAQ note di progetto e qualsiasi altra cosa che la gente potrebbe voler modificare Teneteli vicino al codice sorgente nello stesso albero di repository Ogni brandello di informazione che valga la pena scrivere vale la pena mettere sotto controllo cio ogni brandello di informazione che potrebbe cambiare Cose che non cambiano dovrebbero essere archiviate e non messe sotto controllo di versione Per esempio le email quando pubblicate non cambiano a meno che diventino parte di un documento pi grande e in evoluzione La ragione per cui importante mettere tutto insieme cio che sotto controllo di versione che in questo modo la gente deve imparare solo un meccanismo per inviare le modifiche Qualche volta un contributore inizier con l apportare modifiche a pagine web o alla documentazione spostandosi su piccoli contributi di codice in un secondo momento per esempio Quando il progetto usa lo stesso sistema per ogni tipo di contribuzione la gente deve imparare solo una volta Inoltre le nuove funzionalit possono essere contribuite insieme con le modifiche alla documentazione fare il branching del codice far fare il branch anche alla documentazione eccetera Non tenete i file generati generated files sotto controllo di versione Non sono dati veramente editabili dato che sono generati programmaticamente da altri file Per esempio alcuni sistemi di build creano dei configure basati
365. nciano Tale comportamento pu sembrare anche sano all inizio Dopotutto in superficie egli sembra una persona che si prede pi responsabilit e mostra una attivit maggiore un una data area Ma a lungo andare ci distruttivo Quando la gente ha la percezione di un segnale di non sconfinamento si astiene Il risultato una ridotta revisione in quell area e di una maggiore fragilit perch lo sviluppatore solitario diventa un punto di fallimento che provoca il fallimento dell intero progetto Peggio ci infrange la collaborazione lo spirito egualitario del progetto La teoria dovrebbe essere sempre quella che ogni sviluppatore deve essere il benvenuto nell essere di aiuto in ogni operazione in ogni momento Certo in pratica le cose vanno un po diversamente le persona hanno aree in cui sono pi o meno influenti e i non esperti rinviano agli esperti in certi domini del progetto Ma la chiave che ci sia tutto volontario l autorit informale data per scontata se basata sulla competenza e sul giudizio dimostrato ma non dovrebbe mai essere acquisita volontariamente Anche se la persona che desidera l autorit e effettivamente competente cruciale che eserciti quell autorit informalmente attraverso il consenso del gruppo e che non sia la causa dell escussione di altri dal lavoro in quel gruppo Respingere o modificare il lavoro di qualcuno una roba completamente differente Li il fattore decisivo il contenuto
366. nde base sollevate in esso postare una voce nuova nelle FAQ incorporarvi i commenti da parte di altri poich impossibile che il manager delle FAQ essere un esperto in ogni argomento trattato nelle FAQ e avvertire quando il processo finito in modo che la voce sia alla fine aggiunta Il manager delle FAQ diventa anche l esperto naturale nel formattare le FAQ Ci sono un sacco di piccoli dettagli coinvolti nel tenere una FAQ nella forma giusta vedere sezione chiamata Trattate Tutte le Risorse Come un Archivio in Capitolo 6 Comunicazione quando gente a caso modifica le FAQ a volte dimentica alcuni di questi dettagli Questo va bene finch il manager delle FAQ li a pulire dopo di loro Sono disponibili vari software per essere di aiuto nella manutenzione delle FAQ E bene fare uso di essi finch non compromettono la qualit delle FAQ ma guardatevi dal sovra automazione Alcuni progetti cercano di automatizzare completamente il processo di manutenzione delle FAQ permettendo a chiunque di contribuire e modificare le voci delle FAQ in modo simile alle wiki vedere sezione chiamata Wiki in Capitolo 3 L Infrastruttura Tecnica Ho visto che questo accade particolarmente con le Faq O Matic http faqomatic sourceforge net sebbene pu essere che che i casi che ho visto fossero semplici abusi che andavano oltre ci per cui le Faq O Matic erano state concepite In ogni caso mentre la decentralizzazione completa della manutenzio
367. ndirizzi di spam spesso funzionano elaborando le pagine web compresi gli archivi onlime della vostra mailing list e cercando sequenze di caratteri contententi codificare gli indirizzi un modo di rendere gli indirizzi email della gente invisibili o inutili per gli spammer Questo non evita che dello spam sia inviato alla mailing list stessa certo ma evita che la quantit di spam inviata direttamente agli indirizzi personali degli utenti aumenti Nascondere gli indirizzi pu essere controverso Alcune persone lo apprezzano molto e saranno sorpresi se i vostri archivi non lo fanno automaticamente Altri pensano che sia un disturbo perch gli esseri umani devono anche ritradurre gli indirizzi prima di usarli A volte la gente afferma che inutile perch un raccoglitore di indirizzi potrebbe in teoria supplire ogni modo coerente di codifica Comunque va notato che c una prova empirica del fatto che nascondere gli indirizzi efficace vedi http www cdt org speech spam 0303 19spamreport shtml Idealmente il software di gestione dovrebbe lasciare la scelta ad ogni iscritto individualmente o attraverso uno speciale header si no oppure una configurazione nelle preferenze del proprio account Comunque non sono a conoscenza di alcun software che offre una scelta per iscritto o per messaggio quindi per ora il gestore della mailing list deve prendere una decisione per tutti assumendo che l archiviazione abbia tale funzionalit il che
368. ndo un grande aiuto Micah Anderson non si mai mostrato particolarmente sopraffatto dal suo compagno di viaggio che l ha ispirato con una specie di comportamento invidioso ma stato sempre pronto con la sua amicizia con le sue conversazioni e con il suo supporto tecnico almeno in un occasione Grazie Micah Jon Trowbridge e Sander Striker mi hanno entrambi incoraggiato con aiuti concreti la loro vasta esperienza nel software libero mi ha dato accesso a materiale che non avrei mai potuto ottenere in altro modo Grazie a Greg Stein non solo per l amicizia e gli incoraggiamenti al momento giusto ma anche per aver mostrato agli sviluppatori del progetto Subversion quanto sia importante la revisione periodica del codice nel costruire una comunit di sviluppatori Grazie anche a Brian Behlendorf che ha inculcato vili Prefazione sapientemente nelle nostre teste l importanza di discutere pubblicamente un problema spero che questo principio venga riportato lungo la trattazione di questo libro Grazie a Benjamin Mako Hill e Seth Schoen per le belle chiacchierate sul software libero e le sue politiche a Zack Urlocker e Louis Suarez Potts per avermi concesso un intervista durante il loro tempo libero a Shane sulla lista di discussione Slashcode per avermi fatto riportare il suo intervento e ad Haggen So per il suo enorme contributo di confronto tra vari servizi di hosting pronti all uso Grazie a Alla Dekhtyar Polina e S
369. ne delle FAQ riduce il carico di lavoro 153 Gestire i Volontari per il progetto ha come risultato delle FAQ pi trasandate Non c una persona con una larga vedute di tutte le FAQ nessuno che avvisa quando certe voci necessitano di aggiornamento o diventano obsolete completamente e nessuno che osservi le interdipendenze tra le voci Il risultato sono delle FAQ che spesso non riescono a fornire agli utilizzatori quello che stanno cercando e nei casi peggiori li ingannano Usate qualunque strumento di cui avete bisogno per fare la manutenzione alle vostre FAQ ma non permettete mai alla convenienza degli strumenti di sedurvi a compromettere la qualit delle FAQ Vedere l articolo di Sean Michael Kerner Le FAQ sule FAQ a http osdir com Article1722 phtml per la descrizione e la valutazione degli strumenti di manutenzione delle FAQ Gli avvicendamenti Di volta in volta un volontario la cui responsabilit cresce per es il manager delle patch il manager delle traduzioni ecc diventeranno incapaci di portare a termine gli obblighi della posizione Ci pu avvenire perch il lavoro diventato pi pesante di quanto egli si fosse prefigurato o pu essere dovuto a fattori completamente esterni il matrimonio un nuovo figlio un nuovo datore di lavoro o qualunque altra cosa Quando un volontario sommerso cos di solito non lo nota subito Avviene per lenti gradi e non c un punto nel quale egli si rende conto ch
370. ne di guardare dentro alla release per cercare ovvi errori idealmente gli sviluppatori scaricano il tar lo allestiscono e lo installano in un sistema pulito fanno girare la suite di prova di regressione vedere sezione chiamata Testing automatizzato in Capitolo 8 Gestire i Volontari e fanno qualche prova manuale Supponendo che il tar passi i tests cos come ogni altra lista di criteri che pu avere 131 Confezione Rilascio e Sviluppo Quotidiano il progetto gli sviluppatori firmano il tar che fa uso di GnuPG http www gnupg org PGP http www pgpi org o di qualche altro programma capace di produrre firme PGP compatibile Nella maggior parte dei progetti gli sviluppatori appunto usano le loro personali firme digitali al posto di chiavi di progetto condivise e possono firmare quanti sviluppatori si vuole cio c un numero minimo ma non un massimo Pi sviluppatori firmano pi tests subisce la release e anche pi grande la probabilit che un utilizzatore impacciato con la sicurezza possa trovare da s una percorso di fiducia digitale nei confronti del tar Una volta approvata la release cio tutti i tar i files zip e tutti gli altri formati con cui viene fatta la distribuzione dovrebbe essere collocata nell area di download del progetto accompagnata dalle firme digitali e dalle somme di controllo MDS SHAI vedere http en wikipedia org wiki Cryptographic_hash_function Ci sono vari standa
371. ne intrapresa Lasciare il soggetto sarebbe peggio per tutti di quanto lo sarebbe per qualcuno lasciare perdere Ma dato che il dilemma si applica ugualmente a tutti comunque possibile finire a discutere per sempre su cosa fare So how should you handle holy wars Allora come dovreste trattare le guerre sante La prima risposta fate in modo che non succedano Non una cosa cos senza speranza come sembra Potete anticipare alcune guerre sante standard tendono a venire fuori sui linguaggi di programmazione licenze vedi sezione chiamata La GPL e la compatibilit di Licenza in Capitolo 9 Licenze Diritti d Autore e Brevetti blocco dei reply to vedi sezione chiamata Il grande dibattito sul Rispondi A in Capitolo 3 L Infrastruttura Tecnica e alcuni altri argomenti Ogni progetto solitamente ha una sua guerra santa o due con cui gli sviluppatori di lunga data diventeranno presto familiari Le tecniche per fermare le guerre sante o almeno limitarne i danni sono sempre le stesse ovunque Anche se siete convinti che il vostro schieramento abbia ragione cercate di trovare qualche modo di esprimere simpatia e comprensione per gli argomenti che l altro schieramento propone Spesso il problema in una guerra santa che poich ogni schieramento ha costruito le proprie mura le pi alte possibile e reso chiero che ogni altra opinione pura follia l atto di arrendersi o cambiare la propria idea diventa psicologicamente intollera
372. ni bug che si imbarca in un pezzo di software preso l per essere stato inviato e non individuato quindi pi sono gli occhi e meno bugs si imbarcheranno Ma la revisione del codice serve anche ad uno scopo indiretto esso conferma alle persone che ci che essi fanno importante perch uno non impiegherebbe il tempo a revisionare un invio amenoch non gli interessasse il suo effetto Le persone fanno il loro migliore lavoro quando sanno che gli altri impiegheranno del tempo per analizzarlo Le revisioni dovrebbero essere pubbliche Anche in occasioni in cui sono stato a sedere in una stanza fisica con sviluppatori e uno di noi aveva fatto un invio facevamo attenzione a non fare la revisione verbalmente nella stanza ma invece la mandavamo alla mailing list dello sviluppo Le persone seguono i commenti trovano difetti in essi ed anche se non li trovano ci ricorda loro che la revisione una attivit prevista regolare come lavare i piatti o tosare il prato Nel progetto di Subversion noi all inizio non avevamo la buona pratica della revisione del codice Non c era la garanzia che ogni invio sarebbe stato revisionato sebbene uno potesse dare un occhiata a un cambiamento se era interessato a una particolare area di codice I bugs in essa potevano e dovevano essere trovati Uno sviluppatore chiamato Greg Stein che conosceva il valore della revisione del codice Questo il modo in cui vene realizzata la revisione del codice nei progetti o
373. nicazioni nei progetti open source avvengono scrivendo i sistemi elaborati si sono evoluti per l instradamento e l etichettatura dei dati per evitare ripetizioni come per evitare divergenze spurie per immagazzinare e recuperare dati per correggere informazioni cattive ed obsolete e per associare pezzi di informazione con ogni altra nella misura un cui vengono rilevate nuove connessioni I partecipanti attivi nei progetti open source fanno proprie molte di queste tecniche e metteranno a punto complesse operazioni manuali per assicurare all informazione di essere instradata correttamente Ma l intero sforzo spesso dipende da un sofisticato supporto di software Quanto pi possibile i mezzi di comunicazione non realizzano l instradamento la classificazione e la registrazione e dovrebbero rendere disponibile l informazione agli uomini nella maniera pi pratica In pratica gli uomini avranno ancora bisogno di intervenire in molti punti del processo ed importante che il software renda tali interventi anche pratici Ma in generale se gli uomini hanno cura di classificare e di instradare l informazione al suo primo ingresso nel sistema il software sar configurato in modo da fare uso di gruppi di dati il pi possibile Il consiglio in questo capitolo intensamente pratico basato su sull esperienza con software specifici e su esempi d uso Ma il punto non solo insegnare un particolare insieme di tecniche E anche quello di dimostrare con
374. nizzazione ha la necessit di essere scrupolosa un fatto che solo voi potete decidere consultandovi con dei legali In generale a meno che non ci sia un motivo specifico per cui il vostro progetto abbia bisogno di una piena assegnazione del copyright andate avanti con i CLA essi sono pi facili per tutti Gli Schemi a Doppia Licenza alcuni progetti tentano di fondare se stessi usando uno schema a doppia licenza nel quale i lavori derivati proprietari possono pagare il detentore del copyright per i diritti di usare il codice ma il codice rimane ancora libero per l uso da parte dei progetti open source Ci tende a finanziare bene sia per le librerie di codice sia per applicazioni per computer indipendenti dalla rete naturalmente I termini esatti differiscono da caso a caso Spesso la licenza per i lato libero la GNU GPL poich essa impedisce ad altri di incorporare il codice coperto nobel loro prodotto proprietario senza il permesso del detentore del copyright ma a volte essa una licenza personalizzata che ha lo steso effetto Un esempio della prima la licenza MySQL descritta a http www mysql com company legal licensing un esempio 173 Licenze Diritti d Autore e Brevetti della seconda la strategia di licenza della Sleepycat Software descritta a http www sleepycat com download licensinginfo shtml Potreste starvi domandando come pu un detentore del copyright offrire una concessione di licenza propriet
375. nno gli invii dopo Oltre a ci voi dovreste esprimere il desiderio di restare quanto pi compatibili possibile con la diramazione e dire che sperate che gli sviluppatori trasferiranno i cambiamenti fra il progetto e la diramazione quando opportuno Se avete l accesso amministrativo ai 161 Gestire i Volontari servers offrite a quelli della diramazione l aiuto delle sovrastrutture al momento dell avvio Per esempio offrite loro una copia completa con la storia profonda del deposito del controllo di versione se essi non hanno altro modo di ottenerla cosicch essi non abbiano a partire senza dati storici ci pu essere non necessario a seconda del sistema di controllo della versione Chiedete loro se c qualcos altro di cui abbiano bisogno e fornitelo se potete Chinatevi all indietro per mostrare che non state fra i piedi e per mostrare che la diramazione avr successo o fallir per i suoi meriti e nient altro Il motivo per fare tutto ci e farlo pubblicamente non in verit quello di aiutare la diramazione ma convincere gli sviluppatori che la vostra parte una scommessa sul sicuro apparendo quanto meno vendicativi possibile In guerra talvolta ha senso senso strategico non umano costringere la gente a scegliere una parte ma nel software libero quasi sempre non lo ha Infatti dopo una diramazione alcuni sviluppatori spesso lavorano apertamente ad ambedue i progetti e fanno del loro meglio per tenere le due cose
376. no aver bisogno di aprire le correzioni sulla sicurezza ma la cui politica di aggiornamento preferisce di non aprire nessun altro cambiamento nello stesso tempo Il creare una release di sicurezza a volte comporta qualche inganno minore Per esempio il progetto pu aver lavorato alla release 1 1 3 con certe correzioni di bugs gi pubblicamente dichiarate quando arriva un report di bugs Naturalmente gli sviluppatori non possono parlare di problemi si sicurezza fino a quando non rendono disponibile la correzione Fino ad allora essi devono continuare a parlare pubblicamente come se la 1 1 3 sar ci che si sempre pianificato che sia Ma quando la 1 1 3 finalmente esce differir dalla 1 1 2 solo per le correzioni dei bugs sulla sicurezza e tutte le altre correzioni saranno state rinviate alla 1 1 4 che certamente ora conterr anche le correzioni sulla sicurezza come le conterranno tutte le releases future Potreste aggiungere un componente extra in una release esistente per indicare che essa contiene solo cambiamenti sulla sicurezza Per esempio la gente dovrebbe saper dire giusto dai numeri che la 1 1 2 1 una release di sicurezza nei confronti della 1 1 2 e dovrebbero sapere che ogni release pi alta di quella per esempio 1 1 3 1 2 0 ecc contiene le stesse correzioni sula sicurezza Per quelli ben informati questo sistema porta un sacco di informazioni D altra parte per quelli che non seguono il progetto da vicino pu
377. no gli Invii Come sola classe formalmente distinta che si trova nei progetti open source quelli che fanno gli invii meritano una attenzione speciale qui Quelli che fanno gli invii sono una concessione inevitabile alla discriminazione in un sistema che diversamente quanto meno discriminatorio possibile Ma la discriminazione qui non intesa come dispregiativo La funzione che quelli che fanno gli invii svolgono assolutamente necessaria e io non penso che un progetto avrebbe successo senza di essa Il controllo della qualit richiede giusto il controllo Ci sono sempre molte persone che si ritengono competenti nel fare cambiamenti a un programma e un qualche numero minore che effettivamente lo sono Il progetto non pu contare sul personale giudizio della gente esso deve imporre gli standard e deve concedere l invio solo a quelli che li soddisfano D altro canto avere persone che possano inviare cambiamenti che funzionino direttamente fianco a fianco con persone che non lo possono introduce una ovvia dinamica di potere La dinamica deve essere gestita in modo da non danneggiare il progetto In sezione chiamata Chi Vota in Capitolo 4 L Infrastruttura Sociale e Politica noi gi discutemmo i meccanismi del considerare i nuovi ammessi all invio Qui noi daremo un occhiata agli standard con 1 quali i potenziali ammessi all invio dovrebbero essere giudicati e come questo procedimento debba essere presentato alla comunit alla
378. nticip il GNU project di alcuni anni fu TeX sistema libero di tipocomposizione della qualit di pubblicazione di Donald Knuth Egli la rilasci sotto una licenza che permetteva a chiunque di modificare e distribuire il codice ma non sotto il nome di TeX a meno che non avesse superato una molto rigorosa serie di tests di compatibilit questo un esempio della classe di licenze a protezione del marchio di cui si parla ancora in Capitolo 9 Licenze Diritti d Autore e Brevetti Knut non stava prendendo una posizione o l altra sul problema software libero o software proprietario egli voleva solo un sistema di tipocomposizione per completare il suo reale compito un libro sulla programmazione e non vide nessuna ragione per non rilasciare il suo sistema a cose finite Senza enumerare ogni progetto e ogni licenza si pu dire di sicuro che dagli ultimi 80 ci fu molto software libero disponibile sotto una grande variet di licenze La diversit delle licenze rifletteva la diversit delle motivazioni Anche alcuni dei programmatori che avevano scelto la GNU GPL erano molto meno spinti da motivi ideologici di quanto lo fosse il GNU project Anche se erano contenti Tecnicamente Linux non era il primo Un sistema operativo libero per computers IBM compatibili chiamato 386BSD era venuto fuori poco prima di Linux Comunque sarebbe stato molto pi difficile rifinire 386BSD e farlo girare Linux cos fece tale colpo non solo perch era libe
379. ntratto dipinto al meglio dai ranghi di quelli gi coinvolti nel progetto Ci solleva immediatamente due questioni i lavoratori a contratto devono essere sempre privati E quando no lo sono dovete preoccuparvi per il fatto che potreste creare delle tensioni nella comunit per il fatto che avete fatto contratti con alcuni e non con altri La cosa migliore essere aperti sui contratti quando potete Diversamente il comportamento del lavoratore a contratto pu sembrare strano agli altri nella comunit pu darsi il suo dare improvvisamente e inspiegabilmente priorit a funzionalit per le quali non aveva mai avuto interesse in passato Quando le persone gli chiedono perch le vuole ora come pu egli rispondere in modo convincente se non pu parlare del fatto che stato assunto per scriverle Allo stesso tempo n voi n il lavoratore a contratto dovreste agire come se gli altri dovrebbero considerare il vostro aggiustamento come un buon affare Troppo spesso io ho visto lavoratori a 78 I Soldi contratto ballare il valzer nella mailig list dello sviluppo con l atteggiamento che i loro posts dovrebbero essere presi pi seriamente solamente perch pagati Questo tipo di atteggiamento da il segnale al resto del progetto che il lavoratore a contratto guarda al fatto del contratto come opposto al codice risultato del contratto essere la cosa pi importante Ma dal punto di vista degli altri sviluppatori solo il codice c
380. nvio originale non potrebbe essere seccato a suddividere le cose in gruppi logici In realt quell invio avrebbe dovuto essere quattro separati invii uno per correggere il problema 1729 un altro per rimuovere i commenti obsoleti e riformattare il codice nella Bui ldDir un altro per correggere la ricerca degli errori nella Bui ldDir e infine uno per modificare l index html Il terzo di questi invii sarebbe l unico proposto per il ramo di mantenimento della release Certo la stabilizzazione della release non l unica ragione per cui desiderabile avere che ogni invio sia l unico cambiamento logico Psicologicamente un invio semanticamente unificato pi facile da revisionare e pi facile da riportare al punto di partenza se necessario in alcuni sistemi di controllo della versione riportare al punto di partenza effettivamente una speciale forma di unione comunque Un piccolo addestramento aperto sulla parte di ognuno pu evitare al progetto un sacco di mal di testa pi tardi Pianificare le Releases Un campo in cui i progetti open source si sono differenziati dai progetti proprietari la pianificazione delle releases I progetti proprietari di solito hanno scadenze pi decise A volte ci avviene perch 1 clienti sono stati avvisati che un aggiornamento sarebbe disponibile per una certa data perch c bisogno che la nuova release sia coordinata con altri impegni di marketing o perch il capitalista che rischia che ha
381. nziona per il motivo A B e C Una volta che pensate realmente al problema l unico modo per risolverlo Il problema non tanto che ci suona arrogante tanto da dare l impressione che avete gi edicato alcune sconosciute me la gente presumer grandi quantit di risorse analitiche al problema a porte chiuse Esso fa sembrare ci come se comunque gli sforzi sono stati fatti forse le decisioni sono state prese che il pubblico non informato e che una ricetta per il risentimento Naturalmente voi sapete quanto sforzo avete internamente dedicato al problema e quella consapevolezza in un cero modo uno svantaggio Ci mette i vostri sviluppatori un uno spazio un pochino differente rispetto ad ogni altro nella mailing list riducendo la loro abilit a vedere le cose dal punto di vista che non hanno ancora tanto pensato al problema Prima potete indurre ogni altro a pensare alle cose negli stesi termini in cui lo fate voi pi piccolo sar l effetto di questa distanza Questa logica non si applica solo a individuali situazioni tecniche ma al pi largo mandato di rendere i vostri obiettivi pi chiari che potete L ignoto sempre pi destabilizzante del noto E la gente capisce perch volete ci che volete essi si sentiranno a loro agio parlandovi anche quando sono in disaccordo Se essi non possono capire ci che vi fa fare tic presupporranno il peggio almeno alcune volte Non sarete capaci di pubblicare ogni cosa e
382. o la parola problema orig issue ndt usata per riferirsi a cosa trova il tracker Ma ricordate che ogni sistema pu avere la sua peculiare terminologia in cui il corrispondente termine potrebbe essere artefatto artifact o baco bug o qualcos altro Bugzilla http www bugzilla org Bugzilla molto conosciuto attivamente mantenuto e sembra rendere gli utenti abbastanza felici Ne ho usato una variante modificata nel mio lavoro per quattro anni ormai e mi piace Non altamente personalizzabile ma in un modo strano che pu essere una delle sue funzionalit le installazioni di Bugzilla tendono a sembrare abbanstanza simili ovunque le si trovi il che significa che molti sviluppatori sono gi abituati alla sua interfaccia e si sentiranno di essere in territorio familiare GNATS http www gnu org software gnats GNU GNATS uno dei pi vecchi bug tracker open source ed ampiamente usato I suoi punti di forza sono la diversit di interfaccia pu essere usato non solo attraverso un browser ma anche in strumenti email e linea di comando e memorizzazione dei problemi come plaintext Il fatto che tutti i dati dei problemi sono memorizzati in file di testo su disk rende pi facile scrivere strumenti personalizzati per pescare e gestire i dati per esempio per generare rapporti statistici GNATS pu anche assorbire le email in modo automatico in vari modi e pu aggiungerle ai problemi appropriati basand
383. o alla 2 5 3 nessuna funzionalit dovrebbe andar perduta Certo i bugs corretti riapparirebbero dopo il ritorno alla precedente versione ma voi non perdereste nessuna funzionalit eccetto per il fatto che i bugs reintrodotti impediscono l uso di alcune funzionalit esistenti I protocolli client server sono giusto uno dei campi dalle molte possibili compatibilit Un altra la formattazione dei dati il software scrive i dati in uno spazio permanente Se cos i formati che legge 119 Confezione Rilascio e Sviluppo Quotidiano devono seguire le leggi di compatibilit promesse dalla politica dei numeri di rilascio La versione 2 6 0 deve poter leggere files scritti nella 2 5 4 ma pu in silenzio aggiornare il formato a qualcosa che la 2 5 4 non pu leggere perch la possibilit di ritornare indietro non un requisito della 2 6 0 per via delle delimitazioni riguardanti un numero minore Se il vostro progetto distribuisce librerie di codice per l impiego in altri programmi allora le API sono anche un dominio di compatibilit dovete essere sicuri che le regole di compatibilit per il sorgente e il binario siano dette in maniera tale che l utilizzatore informato non debba mai chiedersi se sicuro e opportuno aggiornare o no Egli deve essere capace di guardare i numeri e saperlo istantaneamente In questo sistema voi non avete una chance per una fresca partenza finch non incrementate il numero maggiore Questo pu es
384. o capitolo e le questioni sulle licenze sono discusse in dettaglio in Capitolo 9 Licenze Diritti d Autore e Brevetti A questo punto i nostri ipotetici visitatori hanno deciso probabilmente in un minuto o meno che sono interessati a spendere per esempio almeno cinque ulteriori minuti nell esaminare questo progetto Le prossime sezioni descrivono ci che essi potrebbero incontrare in quei cinque minuti Elenco dell Caratteristiche e dei Requisiti Ci potrebbe essere una lista delle funzionalit del software se qualcosa non ancora completa potete ugualmente metterla in lista ma mettete pianificato o in corso vicino ad essa e il tipo di ambiente di elaborazione richiesto dal software Pensate alla lista di funzionalit requisiti come a qualcosa che dareste a uno che chiedesse un sommario veloce del software E spesso giusto una logica espansione della dichiarazione di intenti Per esempio la dichiarazione di intenti potrebbe dire Per creare un indice full text e un motore di ricerca con una ricca API ad uso dei programmatori nel fornire servizi di ricerca per grosse quantit di files di testo L elenco delle caratteristiche e dei requisiti darebbe i dettagli chiarendo la portata della dichiarazione di intenti Caratteristiche e Testo di ricerca non formattato HTML e XML e Ricerca di una parola o di una frase e pianificata Ricerca diffusa 15 Partenza e pianificata Aggiornamento incrementale degli in
385. o che l accesso all invio parziale in realt solo per l invio non per il voto Naturalmente permane la implicazione inversa poich i possessori del pieno invio avranno privilegi di voto essi devono essere scelti non solo nella qualit di programmatori ma anche in quella di membri dell elettorato Se qualcuno mostra tendenze distruttive o ostruzioniste nella mailing list il gruppo dovrebbe esser molto prudente sul fatto di renderlo uno che pu fare gli invii anche se la persona tecnicamente competente Lo stesso sistema di voto dovrebbe essere usato per scegliere nuove persone che possono fare l invio sia pieno che parziale Ma qui c uno dei rari casi in cui la segretezza appropriata Non potete ricevere voti sulle potenziali persone con diritto di voto postati in una pubblica mailing list perch la sensibilit e la reputazione dei candidati potrebbero essere ferite Invece il modo usuale che uno con diritto di invio posti su una mailing list privata costituita solo da altri con diritto di invio che propongono che a qualcuno sia concesso l accesso all invio Gli altri con diritto di invio parlano di quello che pensano liberamente sapendo che la discussione privata Spesso non ci sar disaccordo e quindi non ci sar necessit del voto Dopo aver aspettato pochi giorni per essere sicuri che tutti quelli con diritto di voto abbiano avuto modo di rispondere il proponente manda una email al candidato e gli offre 67
386. o comando individua come sa l ambiente e prepara il processo di allestimento ma non installa e il secondo comando installa sul sistema I primi due comandi sono impartiti come utente normale il terzo come radice Per maggiori dettagli su come settare il sistema vedere l eccellente libro GNU Autoconf Automake and Libtool di Vaughan Elliston Tromey e Taylor Esso pubblicato su carta da New Riders e il suo contenuto anche disponibile in forma freeware online a http sources redhat com autobook Questo non il solo standard sebbene sia uno dei pi diffusi Il sistema di allestimento Ant http ant apache org sta guadagnando popolarit specialmente con progetti scritti in Java ed ha le sue proprie procedure standard per l allestimento e l installazione Inoltre certi linguaggi di programmazione come Per e Pathos raccomandano che per la maggioranza del programmi scritti in quel linguaggio sia usato lo stesso metodo per esempio moduli Perl usano il comando perl Makefile PL Se non ovvio per voi quale debba essere lo standard applicabile per il vostro progetto chiedete a uno sviluppatore esperto potete con sicurezza accettare che qualche standard si applica anche se non sapete quale venga prima Quale che sia lo standard adatto per il vostro progetto non deviate da esso a meno che non dobbiate certamente farlo Le procedure standard per l installazione sono in pratica dei responsi automatici a stimoli specifici per un
387. o conoscer sul perch volete ci che volete tanto pi essa sar accomodante su qualunque cosa stiate proponendo Ci va contro l istinto cos facile ad acquisire cos facile a scrollarsi di dosso che la conoscenza potere e quanto pi gli altri conoscono dei vostri obiettivi tanto pi controllo hanno su di voi Sostenendo pubblicamente la funzionalit una correzione di un bug o qualcos altro voi avete gi gettato la carte sul tavolo La sola questione ora se avrete successo nel guidare la vostra comunit nel condividere il vostro obiettivo Se voi semplicemente stabilite ci che volete ma non fornite esempi concreti sul perch il vostro argomento fiacco e la gente comincer a sospettare una agenda nascosta Ma se voi fornite uno scenario di poche parole che mostri perch la nuova funzionalit importante allora potete avere un sensazionale effetto sul dibattito Per vedere perch la cosa sta cos considerate l alternativa Troppo frequentemente il dibattito sulle nuove funzionalit lungo e noioso Gli argomenti che le persone avanzano spesso si riducono a To personalmente voglio X o il sempre popolare Nei miei anni di esperienza come progettista di software X estremamente importate per gli utenti un inutile fronzolo che non piacer a nessuno Prevedibilmente l assenza di informazione nelle parole reali n accorciano n moderano tali dibattiti ma invece permettono che essi vadano ala der
388. o da approvarsi ecc Se essi hanno l impressione che cambiamenti importanti non stanno avendo sufficiente attenzione e potrebbero essere lasciati fuori per una manciata di voti essi potrebbero brontolare con gli altri sviluppatori per ottenere una revisione o un voto Quando un gruppo di cambiamenti viene approvato queste persone possono prendersi il compito di unirle al ramo di release cosa buona se gli altri lasciano questo compito a loro fintanto che ognuno ritiene che essi non sono obbligati a fare tutto il lavoro a meno che non siano esplicitamente incaricati di farlo Quando viene il tempo di far uscire la release vedere sezione chiamata Prove e Rilascio pi avanti in questo capitolo i managers di release si prendono anche la cura della logistica della creazione dei pacchetti della release finale raccogliendo le firme digitali uploadando i pacchetti e facendo gli annunci pubblici Impacchettamento La forma canonica per la distribuzione del software libero il codice sorgente Questo vero indipendentemente dal fatto se il codice gira nella forma di sorgente cio pu essere interpretato come Perl Python PHP ecc o prima ha bisogno di esser compilato come C C Java ecc Con il software compilato gli utilizzatori probabilmente non compileranno da s i sorgenti ma invece installeranno da pacchetti binari per costruiti vedere sezione chiamata Pacchetti Binari pi avanti in questo capitolo Comunque que
389. o di votare su di esso Se il vostro sistema di controllo della versione non ha una chiara sintassi per far riferimento a un singolo cambiamento allora il progetto dovrebbe crearne una Affinch il votare sia pratico ciascun cambiamento in considerazione dovrebbe essere identificato senza ambiguit Queste proposte o voti per un cambiamento sono affidabili per essere sicuri che si applichino in modo pulito al ramo di release cio si applichino senza conflitti vedere conflitto Se ci sono conflitti allora la nuova voce dovrebbe puntare o a una patch apposita che si applica in modo pulito o a un ramo temporaneo che sostiene una apposita versione del cambiamento per esempio 125 Confezione Rilascio e Sviluppo Quotidiano x onl 32225 1132237 13232 Riscrive libsvn_fs_fs s auto merge algorithm Giustificazione unacceptable performance gt 50 minutes for a small commit in a repository with 300 000 revisions Ramo 1 1 x r13222 13517 Voti 1 epg ghudson Questo esempio preso dalla vita reale esso proviene dal file STATO per il processo di rilascio Subversion 1 1 4 Notare che esso usa le revisioni originali come gradi del cambiamento anche se c un ramo con una versione del cambiamento con un conflitto superato il ramo combina anche tre revisioni di tronco in una la r13517 per rendere pi facile l unione dei cambiamenti nella release dovrebbe essere approvato Sono fornite la revisioni originali perch es
390. o schermo invisibile Ci nasconde l informazione di cui la gente ha bisogno per decidere quali email aprire riducendo quindi per tutti la funzionalit complessiva della mailing list Invece di usare l header dell oggetto insegnate ai vostri utenti ad usare a loro vantaggio gli altri header standard a cominciare dall header del destinatario To che dovrebbe dire il nome della mailing list To lt discuss lists example org gt Ogni software di lettura mail che pu applicare filtri sull oggetto dovrebbe essere in grado di filtrare altrettanto facilmente l header del destinatario Ci sono alcuni altri header opzionali ma standard che sono previsti nelle mailing list Applicare filtri su questi persino pi affidabile che usare gli header To o Cc Carbon copy Copia carbone dato che questi header sono aggiunti dal software di gestione ad ogni nuovo messaggio pubblicato alcuni utenti potrebbero contare sulla loro presenza list help lt mailto discuss help lists example org gt list unsubscribe lt mailto discuss unsubscribe lists example org gt list post lt mailto discuss lists example org gt Delivered To mailing list discuss lists example org Mailing List contact discuss help lists example org run by ezmlm Per la maggior parte sono auto esplicativi Vedi http www nisto com listspec list manager intro html per ulteriori spiegazioni o se avete bisogno della specifica formale e veramente dettagliata http www f
391. o scritto che mostri gli esatti comandi che avete dato e l uscita che hanno prodotto Vedere http www scanley org how_to_report_a_bug html per maggiori ragguagli Questo modo di rispondere molto pi efficace per ottenere le necessarie informazione dagli utilizzatori perch sono scritte dal punto di vista dell utilizzatore Primo esso esprime simpatia Voi avevate un problema non sentivamo il vostro disappunto Ci non necessario in ogni risposta a ogni rapporto di bug dipende dalla seriet del problema e da quanto sembrato sconvolto l utilizzatore Secondo invece di disprezzarlo perch no sa come riportare un bug gli dice come e abbastanza in dettaglio per essere veramente utile per esempio molti utilizzatori non si rendono conto che mostraci l errore significa mostraci l esatto testo dell errore senza omissioni o riassunti La prima volta che lavorate con tale utilizzatore bisogna che siate precisi su questo Alla fine ci offre un puntatore a molte pi dettagliate e complete istruzioni per l invio dei rapporti sui bugs Se avete stabilito con successo un contatto con l utilizzatore egli si prender spesso il tempo di leggere quel documento e fare ci che dice Ci vuol dire che voi certamente dovete aver preparato quel documento in anticipo Esso dovrebbe dare chiare istruzioni su che tipo di informazioni vuole vedere in ogni rapporto il vostro team di sviluppo Idealmente esso dovrebbe evolversi nel tempo i
392. o strutture meno formali ma un pi conscio auto contenimento per produrre un atmosfera essere piacevole cosa su cui la gente pu contare come una forma di amministrazione de facto Tutte e due le vie portano allo stesso risultato un senso di stabilit istituzionale supportata da comportamenti e procedure che possono essere ben compresi da chiunque partecipi Queste caratteristiche sono anche pi importanti in sistemi di auto organizzazione che in sistemi controllati dal centro perch in sistemi di auto organizzazione ognuno conscio che poche mele marce possono rovinare l intero canestro almeno per un certo tempo La Possibilit di Diramazione L ingrediente indispensabile che tiene legati gli sviluppatori in un progetto di software libero e li rende desiderosi di arrivare a un compromesso quando necessario la possibilit di una diramazione del codice l abilit di ciascuno di prendere una copia del codice sorgente e partire con un progetto concorrente cosa nota come forchetta La cosa paradossale che la eventualit di forchette nei progetti di software libero usualmente una forza molto pi grande che le forchette reali che sono molto rare Poich una forchetta un male per chiunque per le ragioni esaminate in dettaglio in sezione chiamata Le Diramazioni in Capitolo 8 Gestire i Volontari pi seria diventa la minaccia di una forchetta pi le persone sono desiderose di un compromesso per evitarla Le forchette
393. o vedete che sta succedendo e persuadere gli sviluppatori anziani le persone i cui messaggi hanno maggior peso di posare i loro pennelli presto cos almeno loro non contribuiscono al rumore Dipingere rastrelliere non scomparir mai del tutto ma potete renderlo pi breve e meno frequente diffondendo la coscienza del fenomeno nella cultura del progetto Evitare le Guerre Sante Una Guerra Santa una disputa spesso ma non sempre riguardo ad un problema relativamente secondario in cui la gente si sente abbastanza appassionata da continuare a discutere in ogni caso nella speranza che la loro parte prevalga Le guerre sante non sono come dipingere rastrelliere La gente che dipinge rastrelliere solitamente rapida nel saltare su con un opinione perch loro possono ma non se ne sentiranno necessariamente convinti infatti potranno a volte esprimere altre opinioni incompatibili per mostrare che capiscono tutti i versi del problema In una guerra santa d altro canto capire le altre posizioni un segno di debolezza In una guerra santa tutti sanno che c Una Risposta Giusta solo non sono d accordo su quale sia Una volta che una guerra santa iniziata in genere non pu essere risolta accontentando tutti Non fa bene puntualizzare nella mischia di una guerra santa che una guerra santa in corso Tutti lo sanno gi Purtroppo un tratto comune delle guerre sante il disaccordo sulla domanda se la disputa risolvibile contin
394. o volontario che ricopra tale ruolo A volte un volontario non capace di fare il lavoro che ha intrapreso ma o inconsapevole o non vuole ammettere il fatto Certo chiunque pi avere problemi all inizio specialmente se la responsabilit complessa Comunque se qualcuno non sta proprio lavorando al suo compito che ha intrapreso anche se tutti gli altri gli hanno dato tutto l aiuto e i suggerimenti che potevano allora la sola soluzione che si faccia da parte e permetta a qualcun altro di provare E se la persona non vede questo da s c bisogno che glielo si dica Queste sono le uniche vie di base di gestire questa cosa ma un processo dai molti passi e ogni passo importante n primo luogo assicuratevi di non essere pazzi Privatamente parlate agli altri nel progetto per vedere se gli altri sono d accordo che il problema sia serio come credete Anche se siete gi del parere che lo sia ci serve allo scopo di permettere agli altri di sapere che voi state pensando di chiedere alla persona di mettersi da parte Di solito nessuno fa obiezione a ci essi saranno solo felici del fatto che voi stiate intraprendendo un compito scomodo di modo che essi non abbiano a farlo Poi privately privatamente contattate il volontario in questione e parlategli gentilmente ma direttamente del problema che vedete Siate specifici dando quanti pi esempi potete Assicuratevi di 154 Gestire i Volontari evidenziare come la gen
395. occio con il primo Il secondo modo non traccia una linea tra voi e gli altri n li accusa di procedere in una discussione a spirale Parlo di noi che importante sia che abbiate o meno partecipato veramente nel thread in precedenza perch ricorda a tutti che anche quelli che sono stati in silenzio fino ad ora possono ancora contribuire al risultato del thread Descrive perch il thread non sta andando da nessuna parte ma lo fa senza peggiorazioni o giudizi spassionatamente preciso solo alcuni fatti Pi importante offre un corso positivo di azioni cos che invece di sentirsi come se la discussione sia stata troncata una restrizione verso cui potrebbero solo tentare di ribellarsi la gente si sentir come se fosse stata loro offerto un modo di portare la conversazione ad un livello pi costruttivo Questo uno standard che la gente vorr naturalmente raggiungere Non vorrete sempre portare un thread al prossimo livello di costruttivita a volte vorrete solo farlo finire Il proposito del vostro messaggio allora fare uno o l altro Se potete dire dal modo in cui il thread andato fino ad allora che nessuno da veramente facendo i passi che suggerite allora il vostro messaggio effettivamente chiude il thread senza sembrare di farlo Di certo non c nessun modo a prova di idiota per chiudere un thread e anche se ci fosse non vorreste usarlo Ma chiedere ai partecipanti o di mostrare progressi visibili o di smettere di scrivere
396. odotto vincente ma il nostro posizionarsi in passato stato spaventoso Il termine software libero stato mal interpretato dagli uomini d affari che scambiarono il desiderio di scambiare con anti commercialismo o peggio con imbroglio Le principali corporazioni CEOs e CTOs non compreranno mai il software libero Ma se noi facciamo nostra proprio la stessa tradizione la stessa gente e e le stesse La web home dell OSI http www opensource org Introduzione licenze di software libero e ne cambiamo l etichetta a open source Cos essi lo compreranno cuni esperti di computer troveranno questo difficile da credere ma ci accade Al tid ter t to difficile d d d perch essi sono tecnici che pensano in concreto in termini di sostanza e non capiscono quanto sia importante l immagine quando si vende qualcosa Nel marketing l apparenza realt L apparenza che noi vogliamo togliere le barricate e che stiamo volendo lavorare con il mondo delle grosse imprese conta quanto la realt del nostro comportamento delle nostre convinzioni e del nostro software da http www opensource org O piuttosto in passato da quel sito l OSI ha chiaramente preso le pagine sin d allora sebbene esse possano essere viste ancora a http web archive org web 20021204155057 http www opensource org advocacy faq php and http web archive org web 20021204155022 http www opensource org advocacy case_for_hackers php marke
397. ogni caso usare fotografie dell intero albero per le releases interferirebbe con il lavoro di sviluppo in corso anche se l albero potrebbe essere messo in uno stato di rilascio Per esempio questa fotografia potrebbe andare per la 3 5 0 presumibilmente la successiva fotografia sarebbe la 3 5 1 e conterrebbe per lo pi correzioni dei bugs trovati nella 3 5 0 Ma se ambedue sono fotografie dello stesso albero cosa si suppone che gli sviluppatori facciano nel tempo fra le due releases Essi non possono aggiungere nuove funzionalit le linee guida di compatibilit non lo permettono Ma non tutti saranno entusiasti di correggere i bugs nel codice 3 5 0 Alcuni possono avere alcune funzionalit che stanno cercando di completare e si arrabbieranno se saranno obbligati a scegliere fra il sedere oziosi e lavorare a cose alle quali non sono interessati giusto perch i processi di rilascio del progetto chiedono che l albero di sviluppo rimanga fermo in maniera non naturale La soluzione a questi problemi usare sempre una release ramo Una release ramo appunto un ramo nel sistema di controllo della versione vedere Ramo branch sul quale il codice destinato a questa release pu essere isolato dalla linea principale dello sviluppo Il concetto di rami di release non certamente originale del software libero molti sviluppi commerciali lo usano anche Comunque in ambienti commerciali i rami di release sono a volte considerati un lusso una sp
398. ogno di essere monitorato in modo che la documentazione sia aggiornata ha senso avere una persona o un piccolo team dedicato al compito Essi possono tenere una registrazione di come e dove esattamente la documentazione resta indietro al software ed possono avere delle procedure collaudate per gestire grandi quantit di patch in un modo integrato Certo questo non preclude ad altra gente nel progetto di applicare patch di documentazione al volo specialmente quelle piccole quando il tempo lo permette E lo stesso manager di patch vedere sezione chiamata Il Manager delle Patch prima in questo capitolo pu tener traccia sia di patch del codice si di patch di documentazione archiviandole dove i team della documentazione e il team di sviluppo rispettivamente vogliono Se la quantit totale di patch supera la capacit di una persona di tenerne traccia tuttavia passare a separati manager di codice e documentazione probabilmente un buon primo passo Il punto del team della documentazione avere persone che si ritengano responsabili del mantenere la documentazione organizzata aggiornata e coerente In pratica ci significa conoscere la documentazione profondamente con l osservare in codice base osservare i cambiamenti che gli altri inviano alla documentazione osservare le patch di documentazione che arrivano e usare tutte queste sorgenti di informazioni per mantenere in salute la documentazione Il Manager di Problemi Il numero
399. olamente lo sviluppo a spostarsi su un altro server Se il progetto dovrebbe avere un dittatore benevolo o se andrebbe meglio con qualche sistema meno centralizzato dipende largamente da chi disponibile a ricoprire il ruolo Come regola generale se semplicemente ovvio per ognuno chi dovrebbe essere il BD allora quella la strada da prendere Ma se non c un candidato per il BD immediatamente scontato allora il progetto dovrebbe usare un processo di di presa delle decisioni decentralizzato come descritto nella prossima sezione Democrazia Basata sul Consenso Quando un progetto diventa pi vecchio tende a spostarsi altrove rispetto alla benevola dittatura Questa non necessariamente insoddisfazione nei riguardi di un particolare BD E semplicemente che il comando basato sul gruppo pi stabile dal punto di vista dell evoluzione per prendere in prestito una metafora dalla biologia Ogni volta che un dittatore benevolo si ritira un sistema non dittatoriale stabilisce una costituzione per cos dire TIl gruppo pu non cogliere questa occasione la prima volta o la seconda ma alla fine lo far una volta fatto la decisione improbabile che sia mai revocata Il senso comune spiega il perch se un gruppo di N persone fosse per l investire una persona di un potere speciale ci significherebbe che N 1 persone stessero accettando una diminuzione della loro personale influenza Le persone usualmente non vogliono fare ci
400. ological on the Work that res the ability of a recipient of from You to exercise the hts granted to that nder the terms of the License This Section 4 a he Work as incorporated in a Collection but this the Collection apart from the Work itself to be to the terms of this License If You create a upon notice from any Licensor You must to the icable remove from the Collection any credit as Section 4 c as requested If You create an upon notice from any Licensor You must to the ticable remove from the Adaptation any credit as Section 4 c as requested impose any ter nse or the abi the rights gra impos EXLGE rig u O 1a qu ect ir n ac by n ac istribute or Publicly Perform an Adaptation only under of i this License ii a later version of this ith the same License Elements as this License iii Commons jurisdiction license either this or a later ersion that contains the same License Elements as this e g Attribution ShareAlike 3 0 US a Creative a iv 195 Copyright Commons Compatible License one ter ter th the I Lic Pub the or the App of th ms of that license If you lice licenses mentioned in iv If you license t nse the Adaptation under you must comply with the he Adaptation under the ms of any of th e Applicable License Applicable Licens You must include a copy of
401. oluzioni attivit richieste di supporto eccetera e aggiungere attributi arbitrari per regolare il tracker alle specifiche necessit del vostro progetto Nel tardo 2004 Scarab stava arrivando vicino alla sua release 1 0 Debian Bug Tracking System DBTS http www chiark greenend org uk ian debbugs Il sistema di tracciamento di bug di Debian inusuale nel fatto che tutti gli input e le manipolazioni dei problemi sono fatti via email ogni problema ha il suo indirizzo email dedicato Il DBTS scala molto bene http bugs debian org ha 277 741 problemi per esempio Dato che l interazione avviene attraverso normali client email un ambiente che familiare e facilmente accessibile alla maggior parte della gente il DBTS va bene per trattare grandi volumi di segnalazioni in arrivo che hanno bisogno di una veloce classificazione e risposta Ci sono anche degli svantaggi certo Gli sviluppatori devono investire il tempo necessario ad imparare il sistema di comandi email e gli utenti devono scrivere le loro segnalazioni di bug senza un modello web a guidarli nella scelta dell informazione da scrivere Sono disponibili strumenti per aiutare gli utenti a mandare segnalazioni di bug migliori come il programma da riga di comando reportbug o il pacchetto per Emacs debbugs el Ma la maggior parte delle persone non useranno questi strumenti semplicemente scriveranno le email a mano e potranno seguire o meno le linee guida per la segnalazi
402. om 58 L Infrastruttura Tecnica Web cgi wiki WelcomeVisitors http www c2 com cgi wiki WhyWikiWorks e http www c2 com cgi wiki WhyWikiWorksNot per vari punti di vista Site Non c molto da dire sulla costituzione del sito web del progetto da un punto di vista tecnico tirare su un server web e scrivere pagine web sono attivit abbastanza semplici e la maggior parte delle cose importanti da dire sulla presentazione e organizzazione sono stati trattati nel precedente capitolo La funzione principale del un sito web presentare un introduzione al progetto chiara e invitante e di integrare gli altri strumenti il sistema di controllo di versione il bug tracker eccetera Se non avete le conoscenze per tirare su il web server di solito non difficile trovare qualcuno che le ha e che vuole darvi una mano Ciononostante per risparmiare tempo e sforzo la gente spesso preferisce usare uno dei siti di canned hosting Canned Hosting Ci sono due grandi vantaggi nell uso di siti preconfezionati canned site Il primo la capacit dei server e la larghezza di banda i loro server sono grosse scatole sedute su tubi davvero capienti Non importa quanto il vostr progetto diventer di successo non farete finire lo spazio su disco n sovraccaricare la connessione di rete Il secondo vantaggio la semplicit Hanno gi scelto un bug tracker un sistema di controllo di versione un gestore di mailing list un archiviatore e
403. omento del prossimo capitolo 10 Capitolo 2 Partenza Il modello classico di avvio di un progetto di software libero fu fornito da Eric Raymond su un saggio oggi famoso sui metodi dell open source intitolato La Cattedrale e il Bazaar Egli scriveva Ogni buon lavoro di software nasce dall atto dello sviluppatore di grattarsi un prurito personale da http www catb org esr writings cathedral bazaar Da notare che Raymond non stava dicendo che l open source si ha quando qualche individuo ha prurito Piuttosto stava dicendo che il buon software nasce quando il programmatore ha interesse a vedere risolti 1 problemi La rilevanza di ci per il software libero era che il prurito personale si rivelava essere la pi frequente motivazione nel far partire un progetto di software libero Questo ancora oggi il modo in cui i progetti liberi partono ma meno oggi che nel 1997 quando Raymond scriveva queste parole Oggi abbiamo il fenomeno di organizzazioni incluse quelle che lo fanno per profitto che danno il via a grossi progetti open source centralizzati organizzativamente Il programmatore solitario che batte del codice per risolvere un problema locale e che poi si rende conto che il risultato ha una larga applicabilit ancora la sorgente di molto nuovo software libero ma non la sola storia La condizione essenziale che i produttori abbiano un interesse diretto al suo successo perch lo usano essi stessi Se il softwar
404. ompito senza fine Anche nuove funzionalit o miglioramenti che entrano nel codice hanno la possibilit di causare un cambiamento nella documentazione Anche una volta che la documentazione del progetto raggiunge un certo livello di completezza voi troverete che un sacco di patch che la gente manda sono per la documentazione non per il codice Questo perch ci sono molte pi persone competenti a correggere i bug nella prosa pi che nel codice tutti gli utilizzatori sono lettori ma solo pochi sono programmatori Le patch sulla documentazione sono di solito molto pi facili da revisionare e da applicare che le patch sul codice C poco testing o nessun testing da fare e la qualit dal cambiamento pu essere valutata rapidamente giusto con una revisione Poich la quantit alta ma il carico di revisione abbastanza basso il rapporto informazioni addizionali amministrative lavoro produttivo pi grande per le patch di documentazione di quello delle patch di codice Inoltre la maggior parte delle patch avranno probabilmente la necessit di qualche ritocco per mantenere una coerenza di voce d autore nella 151 Gestire i Volontari documentazione In molti casi le patch si sovrapporranno o intaccheranno altre patch e necessiteranno di essere ritoccate una rispetto all altra prima di essere inviate alla mailing list a e al deposito Date le esigenze di gestire le patch sulla documentazione e il fatto che il codice base ha bis
405. one periferica di cosa stia succedendo Tale visione sicuramente desiderabile e le email di commit dovrebbero essere mandate per i commit del branch come per ogni altro commit Ma i branch non devono diventare un meccanismo per dividere la comunit di sviluppo Con rare eccezioni il fine di molti branch dovrebbe essere qiello di fare il merge delle modifiche con il tronco principale e scomparire Singolarit dell informazione Fare merge ha un importante corollario non bisogna mai fare commit della stessa modifica due vole Cio una certa modifica deve entrare nel sistema di controllo di versione esattamente una volta sola La revisione o insieme di revisioni in cui la modifica entrata a fare parte il suo unico identificatore da ora in poi Se ha bisogno di essere applicata a branch diversi da quello in cui entrata allora dovrebbe essere unita merge dal suo punto originale di ingresso a queste altre destinazioni in maniera opposta al commit di una modifica testualmente identica che avrebbe lo stesso effetto sul codice ma renderebbe l archiviazione e la gestione dei rilasci impossibili Gli effetti pratici di questo consiglio cambiano da un sistema di controllo di versione all altro In alcuni sistemi i merge sono eventi speciali fondamentalmente diversi dai commit e portano con loro particolari metadati In altri i risultati del merge sono committati allo stesso modo delle altre modifiche tanto che lo strumento principa
406. one di bug pubblicate dal vostro progetto The DBTS ha una interfaccia web di sola lettura per vedere e interrogare i problemi Tracker di problemi e segnalazioni Questi sono pi orientati verso il tracciamento di segnalazioni di help desk piuttosto che al tracciamento di bug nel software Probabilmente farete di meglio con un normale bug tracker ma questi sono elencati 183 Bug Tracker Liberi per completezza e perch ci potrebbero essere progetti inusuali per cui un sistema di tracciamento di problemi e segnalazioni potrebbe essere pi adeguato che un bug tracker tradizionale e WebCall http myrapid com webcall e Teacup http www altara org teacup html Teacup non sembra essere pi sotto attivo svilupo ma i download sono tuttora disponibili Da notare che ha interfaccia sia web che email Bluetail Ticket Tracker BTT http btt sourceforge net BTT qualcosa tra un tracker standard di problemi e un bug tracker Offre funzionalit di privacy che sono qualcosa di inusuale tra i bug tracker open source gli utenti del sistema sono classificati come Staff Amico Cliente Anonimo e pi o meno dati sono disponibili a seconda della propria categoria Offre un po di integrazione email una interfaccia a riga di comando e meccanismi per convertire email in segnalazioni Ha anche funzionalit per mantenere informazione non associata con nessuna segnalazione specifica come la documentazione interna o le
407. ono a funzionare nel secondo modo Infatti per un pezzo di software maturo con diverse linee di rilascio mantenute simultaneamente il progetto un genere di stato di permanente riparazione di una strada C sempre una coppia di corsie chiuse ma un basso livello di inconveniente di fondo vien sempre tollerato dal gruppo di sviluppo nel complesso cosicch le release vengono effettuate con una programmazione regolare Il modello che rende ci possibile si estende a pi che una sola release E il principio di mettere in parallelo operazioni che non sono mutualmente interdipendenti un principio che non in nessun modo unico dello sviluppo open source certamente ma un principio che i progetti open source implementano fra propri in particolar modo Essi non possono permettersi di infastidire molto sia il gruppo di lavoro sulla strada sia il regolare traffico ma non possono permettersi anche di avere gente dedita a fare affidamento sui coni arancione e a fare segnalazioni lungo il traffico Cos essi sono attratti da processi che hanno piatti costanti livelli di spese generali amministrative piuttosto che picchi e valli I volontari vogliono generalmente lavorare con piccoli ma consistenti quantit di incomodo La prevedibilit permette loro di venire e andare senza senza preoccuparsi se il loro programma contraster con ci che sta avvenendo nel progetto Ma se il progetto fosse soggetto a un importante programma in cui alcune attivit esc
408. ono essere fatti per lavorare insieme Pi avanti esamineremo come possono farlo e ancora 32 L Infrastruttura Tecnica pi importante come fare in modo che la gente li usi Il sito web non sar discusso fino alla fine dato che funziona pi come collante per le altre componenti che come uno strumento in s Dovreste essere in grado di evitare molti mal di testa scegliendo e configurando questi strumenti usando un sito di cossiddetto canned hosting un server che offre aree web preconfezionate con stile coerente e con tutti gli strumenti necessari a portare avanti un progetto di software libero Vedi sezione chiamata Canned Hosting pi avanti in questo capitolo per una discussione su vantaggi e svantaggi del canned hosting Mailing Lists Le mailing list sono il sale delle comunicazioni all interno di un progetto Se un utente fa parte di un forum che non siano pagine web molto probabile questo che sia la mailing list Ma prima che gli utenti provino la mailing list devono provare l interfaccia della mailing list cio il meccanismo con cui si aggiungono subscribe to alla mailing list Questo ci porta alla Regola numero 1 della mailing list Non provate a gestire le mailing lista mano usate un software di gestione Si pu essere tentati di farne a meno Configuare un software di gestione di mailing list pu sembrare un massacro di primo acchito Gestire liste piccole e con poco traffico a mano sembrer sedu
409. ono una entit che esiste solo nella mente della gente comunque Se quelli che stanno iniziando una diramazione ritengono di star facendo crescere un nuovo ramo fuori dal progetto principale la questione della percezione risolta immediatamente e facilmente Ognuno sviluppatori e utilizzatori tratter la diramazione come un nuovo progetto con un nome magari basato sul vecchio nome ma facilmente distinguibile da esso un sito separato e una filosofia separata per quanto riguarda gli obbiettivi Le cose riusciranno disordinate comunque quando ambedue le parti riterranno di essere i guardiani legittimi del progetto originale e quindi di avere il diritto di continuare ad usare in nome originale Se c qualche organizzazione con diritto di marchio sul nome o con un controllo legale sulle pagine web o sul dominio ci di solito risolve il problema per decreto quella organizzazione decide chi nel progetto e chi nella diramazione perch detiene tutte le carte in una guerra di pubbliche relazioni Naturalmente raramente le cose arrivano fino a questo punto dal momento che ciascuno conosce quali sono le dinamiche del potere eviter di combattere una battaglia il cui esito noto in partenza e giusto salta dritto alla fine Fortunatamente nella maggior parte dei casi c un piccolo dubbio su quale sia il progetto e quale la diramazione perch una diramazione in essenza un voto di fiducia Se pi della met degli sviluppatori
410. onsti oubt honogram with a movi k literary or artistic work ng image Adaptation means a work based upon the Work her pre existing works arrangement of music or other al or phonogram or perfor nematographic adaptations or any other he Work may be recast transf tutes a Collection will A CONTRACT THIS LICENSE OR COPYRIGHT LAW IS PROVI ES dl DED HERE ENSE TO THE THE LICENSO RATION OF YOUR ACCE YO PT AND RANTS YOU PTANCE OF SUCH n the Wor adaptatio terations of mance and form in whic or adapted including ina original except that a wor not be considered an or upo such as a translation n a ormed ny daptation for the purpose of this a d 1 i t form recognizably derived from the t A d where the Work is a musical p synching Adaptation for the purpose of Collection han works lis election and ontributions n themselves hole A work onsidered an p t s a e W c this License Creative Commons Compa ted arra ntellectual creations ntirety in unmodified form along with one or more other eac that Adap means a collectio such as encyclopedias and anthologies honograms or broadcasts or o in Section 1 ngement of t in whi h constituti License For the avoidance of work performance or the synchronizat
411. onta Sempre il fuoco dell attenzione dovrebbe essere mantenuto sugli aspetti tecnici non sui dettagli di chi ha pagato chi Per esempio uno degli sviluppatori nella comunit di Subversion tratta il contratto in una particolare graziosa maniera Mentre discute i suoi cambiamenti in IRC egli vuol far menzione a parte spesso in una privata osservazione un privmsg su IRC ad uno degli altri con accesso all invio che lui stato pagato per il suo lavoro su questo particolare bug o funzionalit Ma egli da anche tangibilmente l impressione che avrebbe accettato di lavorare a quel cambiamento comunque e che felice che il denaro stia rendendogli possibile fare ci Egli pu o non pu rivelare la sua identit individuale ma in ogni caso non si sofferma sul contratto Le sue osservazioni su questo sono giusto un ornamento per una discussione diversamente tecnica su come fare qualcosa Questo esempio mostra un altra ragione per cui bene essere aperti sui contratti Ci possono essere molte organizzazioni che sponsorizzano i contratti su un progetto open source e se una conosce ci che le altre stanno cercando di fare esse possono essere in grado di mettere insieme le loro risorse Nel caso sopra il pi grande finanziatore CollabNet non coinvolto in ogni modo con questi contratti di lavoro a cottimo ma la conoscenza che qualche altro sta sponsorizzando alcune correzioni di bugs permette a CollabNet di reindirizzare le sue risorse verso altr
412. onya per il loro incoraggiamento paziente ed instancabile Sono ben felice di non dover pi finire presto la giornata a volte senza aver concluso qualcosa ed andare a casa a lavorare sul Libro Grazie a Jack Repenning per l amicizia le chiacchierate e l ostinato rifiuto di accettare un analisi semplicistica quando ne intravedeva una pi corretta ma anche pi difficile da spiegare Spero che una parte della sua esperienza sia nel campo dello sviluppo software che in quello dell industria del software abbia dato maggior lustro a questo libro CollabNet si mostrata eccezionalmente generosa nel concedermi un orario di lavoro flessibile per scrivere e non ha avuto da ridire quando il lavoro si protratto pi a lungo del previsto Non conosco le vie intricate attraverso le quali i dirigenti arrivano a prendere tali decisioni ma ho il sospetto che Sandhya Klute e pi tardi Mahesh Murthy ne sappiano qualcosa il mio ringraziamento va ad entrambi L intero gruppo di sviluppatori di Subversion stato fonte di ispirazione negli ultimi cinque anni e molto di quello che ho messo in questo libro proviene dalla mia esperienza lavorativa insieme a loro Non posso ringraziarli uno per uno perch ci vorrebbe quasi un capitolo solo per i loro nomi ma prego ogni lettore che incontrasse uno sviluppatore di Subversione di offrirgli immediatamente qualcosa al bar come far sicuramente io Tante volte ho scocciato Rachel Scollon per infor
413. opia o sotto altri termini restrittivi sufficienti per impedire alle dinamiche open source di operare Anche il software distribuito gratis pu essere proprietario se la sua licenza non permette la libera redistribuzione e modifica Generalmente proprietario e closed source sono sinonimi Comunque in pi closed source implica che il codice sorgente non pu persino essere visto poich il codice sorgente non pu 165 Licenze Diritti d Autore e Brevetti essere visto nella maggior parte dei software proprietari questa normalmente una differenza senza distinzioni Comunque a volte qualcuno rilascia del software proprietario sotto una licenza che permette ad altri di vedere il codice sorgente Con confusione essi lo chiamano open source o quasi open source ecc ma ci ingannevole La visibilit del codice sorgente non il problema la domanda importante cosa potete fare con esso Cos la differenza fra proprietario e closed source in gran parte irrilevante e i due termini possono essere trattati come sinonimi A volte commerciale usato come sinonimo di proprietario ma parlando appropriatamente i due termini non sono la stessa cosa Il software libero pu essere software commerciale Dopotutto il software libero pu essere venduto fin tanto che agli acquirenti non impedito di dar via copie essi stessi Esso pu essere commercializzato in altre maniere per esempio venden
414. ore che necessario tirare dentro per ragioni tecniche Non inviate la correzione al deposito Mantenetela in forma di patch fino alla data di andare in pubblico Nel caso doveste inviarla anche con un log innocente a vedersi qualcuno potrebbe notarla e capire il cambiamento Voi non sapete mai chi sta guardando nel deposito e perch sarebbe interessato Cessare le email di invio non aiuterebbe prima di tutto l interruzione nella sequenza dell invio delle email potrebbe sembrare il se stessa sospetta e comunque i dati sarebbero tuttavia nel deposito Appunto fate tutto lo sviluppo in una patch e tenete la patch in qualche posto privato magari un deposito privato separato conosciuto solo alle persone al corrente del bug Se usate un sistema di controllo della versione decentrato come Arch o SVK potete fare il lavoro sotto il pieno controllo della versione e giusto tenete quel deposito inaccessibile agli esterni I numeri CAN CVE Potete aver visto un numero CAN o un numero CVE associati con i problemi di sicurezza Questi numeri di solito appaiono come CAN 2004 0397 o CVE 2002 0092 per esempio Ambedue i tipi di numeri rappresentano lo stesso tipo di entit una voce nella lista di Vulnerabilit comuni ed Esposizioni curata in http cve mitre org Il proposito della lista quello di fornire nomi standardizzati per tutti i problemi conosciuti di sicurezza in modo che chiunque deve usare un unico nome canonico quando ne di
415. oro capiti di lavorare Poich l esperienza di una persona tendeva a essere specifica di un tipo di computer la loro accumulazione di esperienza fece s che fosse preferibile a s e ai suoi colleghi quel computer Ci fu quindi da parte dei costruttori l interesse a che si estendesse quanto pi possibile il codice e la conoscenza della macchina Due non c era Internet Sebbene ci fossero minori restrizioni legali sulla condivisione rispetto ad oggi 1 limiti erano pi di carattere tecnico I mezzi per spostare dati da un posto all altro erano sconvenienti e scomodi relativamente parlando C era qualche piccolo network buono per scambiare informazione fra coloro che erano impiegati in una stessa ricerca o compagnia Ma rimanevano barriere da superare si si voleva scambiare con chiunque ovunque fosse Queste barriere furono superate in molti casi A volte differenti gruppi stabilirono reciproci contatti autonomamente inviando dischi o nastri tramite posta terrestre e a volte i costruttori stessi servirono come centrali di scambio per le modifiche Fu di aiuto anche il fatto che molti dei primi sviluppatori lavoravano alle universit dove era previsto che uno pubblicasse le sue conoscenze Ma la realt fisica della trasmissione dati diceva che c era sempre un impedimento alla condivisione un impedimento proporzionale al tratto fisico o organizzativo che il software doveva percorrere Una condivisione larga e priva di attriti come la conosciamo oggi e
416. oro e pienamente compreso dal lavoratore a contratto Non pensate all esame accurato della comunit come a un ostacolo da superare pensate ad esso come a un libero tavolo di progetto e a un dipartimento di QA E un beneficio essere inseguiti come in una caccia non solamente sopportatati Studio analitico il protocollo di autenticazione di password CSV Nel 1995 io ero una met della partenership che forn il supporto e la crescita del CSV il Concurrent Versions System vedere http www cvshome org Il mio partner Jim ed io eravamo informalmente i sostenitori di CSV a quel punto ma non avevamo mai pensato con attenzione a come dovevamo metterci in relazione alla comunit di sviluppo di CSV in maggioranza costituita da sviluppatori volontari Noi avevamo giusto accettato che che essi mandassero le patches e noi le avevamo applicate e questo era praticamente come funzionava A quei tempi un CSV in rete poteva essere realizzato soltanto su un remoto programma di login come rsh L uso la stessa password per l accesso al CSV e al login era un ovvio rischio di sicurezza e 79 I Soldi diverse organizzazione furono rimandate nel tempo per questo Una banca importante di investimenti ci ingaggi per aggiungervi un ulteriore meccanismo di autenticazione cos che esse potessero usare il CSV in rete con sicurezza per il loro uffici Jim e io accettammo il contratto e ci sedemmo attorno a un tavolo per progettare il nuovo sistema di
417. osi su pattern nell intestazione della email che rende la memorizzazione delle conversazioni utente sviluppatore molto facile RequestTracker RT http www bestpractical com rt Il sito web di RT dice RT un sistema di segnalazione di livello enterprise che permette ad un gruppo di persone di gestire compiti problemi e richieste sottomesse da una comunit di utenti in modo intelligente ed efficiente e questo riassume abbastanza RT ha una interfaccia web abbastanza pulita e sembra avere un base di installazione abbastanza vasta L interfaccia un po troppo visualmente complessa ma diventa meno distraente quando vi ci abituate RT ha licenza GNU GPL per qualche ragione il loro sito web non lo dice chiaramente Trac http trac edgewall com Trac un po di pi di un bug tracker veramente un sistema con wiki integrata e bug tracker Usa 1 collegamenti tra wiki per mettere in relazione problemi file insiemi di modifiche di controllo di versione e pagine wiki normali E abbastanza semplici da tirare su e si integra con Subversion vedi Appendice A Sistemi di Controllo di Versione Liberi Roundup http roundup sourceforge net Roundup molto facile da installare richiesto solo Python 2 1 o superiore e facile da usare Ha interfacce web email e linea di comando I template dei dati dei problemi e l interfaccia web sono personalizzabili cos come una parte della sua logica di transizione di stati
418. osto permissive principalmente perch la gente capisce che forti costrizioni di compatibilit intralcerebbero molto il primo sviluppo e anche perch i primi che le adottano tendono ad essere indulgenti comunque Ricordate che tutte queste ingiunzioni si applicano a questo sistema a tre componenti Il vostro progetto potrebbe venir su con un differente sistema a tre componenti oppure potrebbe decidere di non avere bisogno di un cos fine granulosit e usare invece un sistema a due componenti La cosa importante deciderlo per tempo rendere pubblico ci che i componenti significano e aderire ad essi La Strategia pari dispari Alcuni progetti usano la parit del componente numero minore per indicare la stabilit del software Pari significa stabile dispari significa instabile Ci si applica solo al numero minore non al numero maggiore a al micro numero Incrementi nel micro numero ancora significano correzioni di bug non nuove funzionalit e incrementi nel numero maggiore ancora indicano grossi cambiamenti nuovi set di funzionalit ecc Il vantaggio del sistema pari dispari che stato usato dal progetto kernel di Linux fra gli altri che offre una via per rilasciare nuove funzionalit per la fase di prova senza costringere gli utilizzatori della produzione a un codice potenzialmente instabile Le persone possono vedere dai numeri che la 2 4 21 va bene per l installazione sul loro attivo web server ma che la 2 5 1 d
419. osystems e l IBM hanno almeno fatto un gesto nei confronti del problema dall altra direzione liberando un gran numero di brevetti 1600 e 500 rispettivamente per l uso da parte delle comunit di software libero Non sono un legale e perci non posso valutare la reale utilit di queste concessioni ma anche se esse sono dei brevetti importanti e i termini delle concessioni le rendono realmente libere per l uso da parte dei progetti open source ci sarebbe tuttavia solo una goccia nel secchio 4 Vedere http groups csail mit edu mac projects lpf Whatsnew survey html per un tale esame 175 Licenze Diritti d Autore e Brevetti 7 Se in conseguenza di un giudizio della corte o di una dichiarazione di violazione di un brevetto o per qualche altra ragione non limitata al problema dei brevetti sono imposte a voi condizioni per decisione della corte accordo o altro che vadano contro le condizioni di questa licenza esse non vi esonerano dalle condizioni di questa licenza Se voi non potete distribuire in modo da soddisfare contemporaneamente i vostri obblighi con questa licenza e ogni altro obbligo pertinente quindi di conseguenza non potete distribuire punto il Programma Per esempio se una licenza brevetto non permettesse la redistribuzione senza compenso del Programma da parte di tutti quelli che ne ricevono copie direttament o indirettamente tramite voi allora l unico modo per voi di soddisfare s es
420. overanno un tantino pi comprensibile In conclusione vorrei ringraziare i destinatari della dedica Karen Underhill e Jim Blandy L amicizia di Karen e la sua comprensione sono stati tutto per me non solo durante la scrittura del libro bens negli ultimi sette anni Semplicemente non sarei stato in grado di finire senza il suo aiuto Analogamente per Jim vero amico ed hacker di tutto rispetto che mi ha introdotto al software libero un po come un uccellino che insegna ad un aereo a volare ix Prefazione Esclusione di responsabilit I pensieri e le opinioni espresse in questo libro sono del tutto personali Non rappresentano necessariamente la visione di CollabNet o quella del progetto Subversion Capitolo 1 Introduzione La maggioranza dei progetti di software libero fallisce Noi tendiamo a non dare molto ascolto alla notizia di questi fallimenti Solo i progetti che hanno successo attraggono l attenzione e ci sono tanti progetti di software libero in totale che anche se solo una piccola percentuale di essi ha successo il risultato che a noi appare essere tuttavia una gran quantit Inoltre noi non abbiamo notizia dei fallimenti perch i fallimenti non fanno notizia Non c un particolare momento in cui il progetto cessa di essere praticabile La gente semplicemente sceglie di allontanarsene Ci pu essere un momento in cui un cambiamento finale viene fatto nel progetto ma quelli che lo hanno fatto gener
421. ovo visitatore le incontrerebbe sebbene certamente l ordine in cui voi in realt le implementate potrebbe essere diverso Voi potete trattarle come una lista da spuntare Quando avviate un progetto andate fino in fondo alla lista e vi assicurate di aver incluso tutti le voci o almeno che siate sereni sulle potenziali conseguenze di averne lasciata fuori una Scegliere Un Buon Nome Mettetevi nei panni di qualcuno che ha appena saputo del vostro progetto forse per essersi imbattuto in esso alla ricerca di un software che risolvesse il suo problema La prima cosa che egli incontra il nome del progetto Un bel nome non render il vostro progetto un progetto di successo e un brutto nome non lo roviner beh un nome veramente brutto potrebbe farlo ma noi partiamo dall ipotesi che nessuno stia cercando di far fallire il proprio progetto Comunque un brutto nome pu rallentare l adozione di un progetto sia perch la gente non lo prende seriamente sia perch semplicemente ha difficolt a ricordarlo 13 Partenza Un nome bello e d un idea di ci che il progetto fa o almeno vi correlato un modo chiaro cosicch se uno conosce il nome e conosce quello che il progetto fa il nome verr subito in mente dopo e E facile da ricordare Qui ecco non c da girare intorno al fatto che l inglese la lingua predefinita di Internet facile da ricordare significa facile da ricordare per qualcuno che sa legger
422. ovrebbe essere usata solamente per esperimenti sulle work station Il team di sviluppo gestisce i report di bugs che arrivano dalla serie minore numerata dispari e quando le cose incominciano a sistemarsi dopo un certo numero di micro releases in quella serie incrementano il numero minore cos facendolo diventare pari riportano il micro numero a 0 e rilasciano il pacchetto presumibilmente stabile Questo sistema conserva o almeno non va in conflitto con le linee guida date prima Esso semplicemente carica ulteriormente il numero minore di qualche extra informazione Questo costringe d altronde il numero minore ad essere incrementato di circa due volte tanto spesso quanto sarebbe 120 Confezione Rilascio e Sviluppo Quotidiano necessario ma non c un gran male in ci Il sistema pari dispari probabilmente il migliore per 1 progetti che hanno cicli di release molto lunghi e che per loro natura hanno una grande fetta di utilizzatori conservatori che valutano la stabilit al di sopra delle nuove funzionalit Questo comunque non il solo modo di fare il test di nuove funzionalit allo stato selvaggio comunque sezione chiamata Stabilizzare una Release Pi avanti in questo capitolo si descrive un altro forse pi comune metodo di rilasciare al pubblico codice potenzialmente instabile contrassegnato in modo che le persona abbiano un idea del compromesso rischio beneficio vedendo il nome della release Rami Di
423. owStream Far comparire la nuova eccezione se il file sta cambiando durente l indicizzazione BuildDir Senza correlazione rimuovere i commenti obsoleti riformattare del codice correggere la ricerca degli errori mentre si crea una directory Altre pulizie non correlate www index html Corregge alcuni refusi fissa la data della nuova release Il problema con esso diventa evidente non appena qualcuno ha bisogno di fare il port della Bui ldDir ricerca e correzione degli errori su un ramo per una release di manutenzione in arrivo Chi fa il port non vuole nessuno degli altri cambiamenti per esempio la correzione al problema 1729 non stata approvata affatto per il ramo di manutenzione e le modifiche del index html sarebbero semplicemente irrilevanti qui Ma egli non riesce ad afferrare il cambiamento alla Bui ldDir attraverso la funzionalit di unione dello strumento del controllo di versione perch al sistema di controllo di versione era stato detto che il cambiamento logicamente raggruppato con tutte quelle altre cose non correlate Infatti il problema dovrebbe diventare evidente anche prima dell unione Il semplice elencare i cambiamenti per il voto diventerebbe problematico invece di dare solo il numero di revisione il proponente dovrebbe fare una speciale patch o cambiare ramo per isolare la porzione di invio che viene proposta Il che sarebbe un sacco di lavoro da sopportare per gli altri e tutto perch chi fa l i
424. p www nosoftwarepatents com L articolo della Wikipedia http en wikipedia org wiki Software_patent ha anche un sacco di utili informazioni sui brevetti di software Io ho scritto anche un post in un blog che sintetizza gli argomenti contro i brevetti sul software a Questo capitolo stato solo una introduzione ai problemi di licenza sul software libero a http www rants org 2007 05 0 1 how to tell that software patents are a bad idea Ulteriori Risorse Questo capitolo stato solo una ontroduzione ai problemi delle licenze di software libero Sebbene io penso che esso abbia sufficienti informazioni per permettervi di partire col vostro progetto ogni seria ricerca sui problemi delle licenze sviscerer rapidamente ci che questo libro pu fornire Qui c una ulteriore lista di risorse sulle licenze open source e Comprendere l Open Source e le Licenze del Software Libero di Andrew M St Laurent Edito da O Reilly Media prima edizione Agosto 2004 ISBN 0 596 00581 4 Questo un libro completo sulle licenze open source in tutta la loro complessit che include molto argomenti omessi in questo capitolo Vedere http www oreilly com catalog osfreesoft per i dettagli e Rendete il Vostro Software Open Source GPL Compatibile Oppure di David A Wheeler a http www dwheeler com essays gpl compatible html Questo capitolo tocca anche altre numerose questioni di licenza e ha una alta densit di links ecellenti e http creat
425. pagati Capitolo 9 Licenze Diritti d Autore e Brevetti e tratta della necessit di una osservanza del termini legali quando si apre un codice base privato che pu essere stato scritto o posseduto da altre parti L Annuncio Una volta che il progetto presentabile non perfetto giusto presentabile siete proti per annunciarlo al mondo Questo in realt un procedimento molto semplice andate a http freshmeat net cliccate su Invio in cima alla barra di navigazione e riempite un form che annuncia il vostro nuovo progetto Freshmeat il posto in cui chiunque guarda per annunci di nuovi progetti Dovete solo prendere alcune opinioni l sul vostro progetto da diffondere a voce Se conoscete mailing lists o newsgroups dove un annuncio del vostro progetto sarebbe in argomento e di interesse allora postate l ma con l attenzione di inserire esattamente un solo post per forum e di indirizzare le persone ai forums del vostro progetto come seguito della discussione impostando l intestazione Risposta a I post dovranno esse brevi e andare giusto al punto A discuss lists example org Soggetto ANN Progetto Scanley di indicizzatore full text Risposta a dev scanley org Questo il post di una volta che annunciava la creazione del progetto Scanl Home page http www scanley org Funzionalit Ricerche testo normale HTML e XML Ricerca di parole o frasi 29 Partenza pianificato Ricerca diffusa
426. panti a un progetto di solito sanno chi esperto in quei campi cos quando arriva un rapporto di bug ci saranno spesso una o due persone di cui ognuno sa che sono capaci di correggerli In ogni caso se voi assegnate il problema a una di queste due persone senza il loro previo assenso egli potr pensare di essere stato messo in una condizione scomoda Egli sente la pressione di una aspettativa ma pu anche pensare che stato punito per la sua esperienza Dopotutto il modo in cui uno acquisisce esperienza correggendo i bugs cos qualche altro porrebbe prendersi questo compito Notate che il tracciatore di bugs che assegna automaticamente i problemi a persone particolari basandosi sull informazione esistente nel rapporto di bugs meno probabile che faccia male perch ognuno sa che le assegnazioni furono fatte da un processo automatico e non indice di aspettative umane Mentre sarebbe simpatico suddividere il carico quanto pi possibile in modo regolare ci sono certe occasioni in cui voi volete giusto incoraggiare le persone che possono correggere un bug nella maniera pi veloce possibile Dato che non potete affrontare una ristrutturazione delle comunicazioni per ogni tale assegnazione Vorresti dare un occhiata questo bug Si Okay ti sto per assegnare questo problema Okay dovreste fare l assegnazione nella forma di una richiesta non comunicando nessuna pressione Virtualmente ogni tracciatore di problem
427. pecificare che il Progetto Libero Quelli che restano interessati dopo aver letto la dichiarazione di intenti vorranno poi vedere pi dettagli forse qualche documentazione utente o sviluppatore e eventualmente vorranno scaricare qualcosa Ma prima di ognuna di queste cose essi vorranno essere sicuri che open source La pagina principale deve rendere inequivocabilmente chiaro che quel progetto open source Ci pu sembrare ovvio ma sareste sorpresi dal fatto di quanti progetti dimenticano di farlo Ho visto tanti siti di progetti di software libero dove la pagina principale non solo non diceva sotto quale licenza particolare il software era distribuito ma nemmeno specificava chiaramente che il software era libero A volte il dato fondamentale informativo era relegato nella pagina dei downloads o nella pagina degli sviluppatori o in qualche altro posto che richiedeva un ulteriore clic del mouse per arrivarvi In casi estremi la licenza non era inserita affatto nel sito web e l unico modo per vederla era quello di scaricare il software e di guardarvi dentro Non fate questo errore Tale omissione pu far perdere molti potenziali sviluppatori e utilizzatori Specificate in modo aperto giusto sotto la dichiarazione di intenti che il progetto e software libero e open source e fornite la licenza esatta Una guida rapida alla scelta della licenza data in sezione chiamata Scegliere una Licenza e Applicarla pi in l in quest
428. pen source in ogni caso In progetti pi centralizzati revisione del codice pu anche significare pi persone che si siedono insieme per esaminare accuratamente una stampa del codice per cercare specifici problemi e modelli 27 Partenza per passati lavori decise di andare a fare un esempio revisionando ogni linea di ogni singolo invio che andava nel deposito degli invii Ogni invio che ognuno faceva veniva immediatamente seguito da un email alla lista degli sviluppatori da Greg che parlava dell invio analizzava i possibili problemi e occasionalmente esprimeva lode su un pezzo intelligente di codice Subito egli trovava bugs o pratiche non ottimali di scrivere il codice che diversamente sarebbero passate inosservate Apparentemente egli non si lamentava di essere l unica persona che revisionava ogni invio anche se impieg una gran parte del suo tempo ma cant le lodi delle revisione del codice ogni volta che ne ebbe l occasione Molto presto altre persone me incluso incominciarono a revisionare gli invii con regolarit Quale era la nostra motivazione Non era che Greg consapevolmente ci avesse rimproverati per farlo Ma egli aveva provato che la revisione del codice era un modo prezioso di spendere il tempo e che uno avrebbe contribuito tanto al progetto sia revisionando i cambiamenti degli altri sia scrivendo nuovo codice Dopo che egli dimostr ci questo divent il comportamento scontato al punto che ogni invio che
429. per sempre La The GNU General Public License GPL un pezzo geniale di judo legale essa dice che il codice pu essere copiato e modificato senza restrizioni e che le copie e i lavori derivati cio le versioni modificate devono essere distribuite sotto la stessa licenza originale senza nessuna restrizione aggiuntiva Nei fatti essa usa la legge sul copyright per raggiungere l effetto opposto di quello del copyright tradizionale invece di limitare la distribuzione del software faceva in modo che nessuno compreso l autore potesse limitarla Per Stallman questo era meglio che porre semplicemente il suo codice sotto pubblico dominio Se esso fosse stato di pubblico dominio una copia particolare avrebbe potuto essere incorporata in un software proprietario come si era anche appreso avvenire sotto licenze di copyright permissive Mentre tale incorporazione non avrebbe potuto compromettere in nessun modo la continua disponibilit del codice avrebbe potuto avere il significato che gli sforzi di Stallman avrebbero potuto beneficiare il nemico software proprietario La GPL pu essere pensata come una forma di protezionismo per il software libero perch impedisce al software proprietario di trarre pieno vantaggio dal codice GPL La GPL e le sue relazioni con le altre licenze libere discussa in dettaglio in Capitolo 9 Licenze Diritti d Autore e Brevetti Con l aiuto di molti programmatori molti dei quali condividevano le idee di Stallman e alcuni de
430. pi avanti in questo capitolo per gli esempi Questa una occorrenza rara comunque La maggior parte della gente risponde molto bene alla critica che sia specifica e che contenga una chiara anche se non detta aspettativa di miglioramento 141 Gestire i Volontari La lode non dovrebbe offendere i sentimenti di nessuno certo ma questo non significa che dovrebbe essere usata per nulla meno con attenzione della critica La lode uno strumento prima di usarla chiedetevi perch volete usarla Come regola non una buona idea lodare la gente per cose che usualmente fa o per azioni che sono una parte normale e prevista della partecipazione al gruppo Se voi doveste farlo sarebbe difficile sapere quando smettere dovreste lodare ognuno perch fa le cose normali Dopotutto se lasciate fuori qualcuno egli si chieder perch E molto meglio esprimere lode e gratitudine con parsimonia in risposta a inattesi e insoliti sforzi con l intento di incoraggiare pi sforzi di questi Quando un partecipante sembra essesi mosso permanentemente in uno stato di alta produttivit adattate la vostra soglia di lode per quella persona in modo consono Lodi ripetute per comportamenti normali diventano senza senso comunque Invece quella persona dovrebbe avvertire che il suo alto livello di produttivit ora considerato come normale e naturale e solo il lavoro che vada oltre quel livello dovrebbe essere notato particolarmente Con questo non vog
431. pico che tali obiezioni incomincino con un obbligatorio encomio per aver evitato una precedente discussione anche se questo si pu evitare se chi fa l obiezione non ricorda di una tale discussione negli archivi della mailing list In un modo o nell altro non c ragione per la quale il tono della discussione debba essere differente se l invio del cambiamento avvenuto prima o dopo Ogni modifica pu essere annullata almeno fino a quando modifiche dipendenti da essa siano introdotte cio la nuova codifica cos verrebbe fermata se la modifica originaria fosse subito rimossa Il sistema del controllo di versione d al progetto il modo di annullare gli effetti di giudizi cattivi o frettolosi Questo a sua volta libera la gente dall affidarsi al proprio istinto su quante conferme siano necessarie prima di fare qualcosa Ci significa anche che il processo dello stabilire il consenso non ha bisogno di essere molto formale La maggior parte dei progetti con esso si comportano a sensazione Le modifiche minori possono andare avanti confidenzialmente senza discussione o con un minimo di discussione seguito da pochi cenni di accordo Per le modifiche pi significative specialmente quelle che possono destabilizzare una gran quantit di codice le persone dovrebbero aspettare un giorno o due prima di dare per acquisito che c il consenso essendo razionale che nessuno dovrebbe essere marginalizzato in una importante conversazione semplicemente pe
432. plicazione che vale la pensa prendere seriamente in considerazione il suo bersaglio e vale la pena spenderci un po di tempo Vale a dire pi sarebbe stato facile ignorare il post di qualcuno pi diventa un complimento prendere del tempo per criticarlo ovviamente a meno che la critica diventi un attacco ad hominem o qualche altra farma di palese maleducazione Anche domande grezze e spoglie come quelle di Shane a me nella mail prima citata non sono maleducate Domanede che in altri contesti sembrano fredde retoriche o persino ironiche sono 90 Comunicazione spesso intese come serie e non hanno nessun obbiettivo nascosto tranne ottenere informazioni il pi velocemente possibile La famosa domanda del supporto tecnico Il tuo computer attaccato alla corrente un classico esempio di questo La persona di supporto davvero ha bisogno di sapere se il tuo computer attaccato alla corrente e dopo i primi giorni di lavoro si stancato di premettere alla domanda qualche educato preambolo Chiedo scusa vorrei soltanto farle alcune semplici domande per escludere alcune possibilit Alcune di queste sono molto elementari ma mi aiuti A questo punto non gli interessano pi i preamboli chiede direttamente attaccato o no Domande simili sono fatte di continuo nelle mailing list di software libero L intento non insultare il destinatario ma per escludere velocemente le spiegazioni pi ovvie e magari le pi comuni
433. po spesso ce ne sia E solo che chi fa i pacchetti ha degli obiettivi leggermente differenti da quelli degli sviluppatori Coloro che fanno i pacchetti vogliono che i loro utilizzatori incontrino le migliori funzionalit Gli sviluppatori vogliono anche questo certo ma hanno anche bisogno di essere sicuri di conoscere quali versioni del software ci sono in giro in modo da poter ricevere rapporti di bugs intellegibili e garantire compatibilit A volte i loro obiettivi sono in conflitto Quando ci avviene bene avere in mente il fatto che il progetto non ha nessun controllo su coloro che fanno i pacchetti e che i vincoli degli obblighi funzionano in entrambe le direzioni E vero che il progetto sta facendo un favore a chi fa i pacchetti semplicemente producendo il software Ma anche quelli che fanno i pacchetti stanno facendo un favore al progetto e si stanno accollando un lavoro non eccitante per rendere il software pi largamente disponibile spesso per ordine di rilievo E bene non essere d accordo con gli impacchettatori ma non bene offenderli Giusto cercate una soluzione alle cose meglio che potete Prove e Rilascio Dopo che il tar originale stato prodotto dal ramo stabilizzato di release incomincia la parte pubblica del processo di rilascio Ma prima che il tar sia reso disponibile al mondo diffusamente dovrebbe essere approvato da un numero minimo di sviluppatori di solito tre o pi L approvazione non una semplice questio
434. ponibile al problema originale e viceversa Una terza variazione per gli sviluppatori di chiudere il problema pensando di averlo riparato solo per fare in modo che il segnalatore originale rifiuti la riparazione e lo riapra Questo accade solitamente perch gli sviluppatori semplicemente non hanno accesso all ambiente necessario per riprodurre il bug o perch non hanno testato la riparazione usando esattamente la stessa procedura di generazione del bug del segnalatore Oltre a queste variazioni ci possono essere altri piccoli dettagli di ciclo di vita che cambiano a seconda del software di tracking Ma la forma di base la stessa e mentre il ciclo di vita in s non specifica al software open source ha implicazioni su come i progetti open source usano i loro bug tracker Come il primo stato implica il tracker un aspetto pubblico del progetto tanto quanto le mailing list o le pagine web Chiunque pu registrare un problema ognuno pu guardare un problema e chiunque pu esaminare la lista dei problemi aperti al momento Ne consegue che non potete mai sapere quanta gente sta aspettando di vedere il progresso di un certo problema Mentre la grandezza e la capacit della comunit di sviluppo limita la velocit a cui i problemi sono risolti il progetto deve almeno prendere coscienza del problema nel momento in cui compare Anche se il problema sta fermo per un po una risposta incoraggia chi l ha segnalato a rimanere coinvolto pe
435. posta sempre pi brevi Non fa bene a nessuno dato che il singolo utente in ogni caso non responsabile per tutti i falsi problemi precedenti l andamento statistico visibile solo dal punto di vista degli sviluppatori non da quello degli utenti In sezione chiamata Pre Filtraggio del Bug Tracker pi avanti in questo capitolo affronteremo le tecniche per ridurre il numero dei falsi problemi Inoltre se utenti diversi sperimentano continuamente lo stesso equivoco potrebbe voler dire che tale aspetto del software ha bisogno di essere ridisegnato Questo tipo di tendenza pi facile da notare quando c un manager dei problemi che tiene d occhio il database dei bug vedi sezione chiamata Il Manager di Problemi in Capitolo 8 Gestire i Volontari 52 L Infrastruttura Tecnica Un altra tipica variazione la chiusura di un problema perch duplicato subito dopo il primo stato Un duplicato quando qualcuno registra un problema che gi noto al progetto I duplicati non sono confinati nei problemi aperti possibile per un bug ritornare dopo essere stato riparato ci noto con il nome di regressione nel qual caso la soluzione preferita solitamente riaprire il problema originale e chiudere ogni nuova segnalazione come duplicato di quello originale Il sistema di tracciamento di bug deve tenere traccia di questa relazione in modo bidirezionale cos che l informazione della rifattorizzazione nei duplicati dis
436. prese esso non la fonte di accordi esso solamente la loro descrizione Certamente se ha successo la gente incomincer a citarlo come una fonte di autorit in se stesso ma ci significa appunto che esso riflette la volont generale del gruppo accuratamente Questo il documento a cui si allude in sezione chiamata Linee Guida per lo Sviluppatore in Capitolo 2 Partenza Naturalmente quando il progetto molto giovane avrete da mettere gi linee guida senza il beneficio di una lunga storia del progetto da cui trarre ispirazione Ma appena la comunit di sviluppo matura potete adattare il linguaggio per rispecchiare le cose che via via vengono fuori Non cercate di essere completi Nessun documento pu contenere ogni cosa che la gente ha bisogno di sapere sulla partecipazione al progetto Molte delle convenzioni che il progetto elabora rimangono per sempre non dette mai menzionate esplicitamente eppure accolte da tutti Altre cose sono semplicemente troppo ovvie per essere menzionate e solamente distrarrebbero dall importante ma non ovvio materiale Per esempio non ha senso scrivere linee guida come Siate puliti e rispettosi verso gli altri nella mailing list e non incominciate guerre di offese o scrivete un codice chiaro leggibile e libero da bugs Certamente queste cose sono desiderabili ma poich non c universo concepibile in cui esse potrebbero non essere desiderabili non vale la pena menzionarle Se la gente
437. principi di navigazione Un sito web ben organizzato fa sentire i visitatori come se sapessere dove sono in qualunque momento Per esempio se le pagine sono ben disegnate le persone possono intuitivamente dire la differenza tra una parte di introduzione da una di contenuto Anche i contributori di una wiki rispetteranno tale differenze ma solo se le differenze sono presenti per cominciarci e Duplicazione dell informazione Le wiki spesso arrivano ad avere pagine diverse che dicono cose simili perch i contributori singoli non hanno notato le duplicazioni Questo pu in parte essere conseguenza della mancanza di principi di navigazione indicata sopra nel caso le persone non trovino il contenuto duplicato se non dove si aspettano che sia e Gruppo non consistente di destinatari In qualche modo questo problema inevitabile quando ci sono cos tanti autori ma pu essere limitato se ci sono linee guida scritte su come creare nuovi contenuti Aiuta all inizio anche modificare in modo aggressivo le contribuzioni come un esemio cos da iniziare a restringere gli standard La soluzione comune a tutti questi problemi lo stesso avere standard editoriali e dimostrarli non solo pubblicandoli ma modificando le pagine per renderle conformi In generale le wiki amplificheranno ogni errore nel loro materiale originale dato che i contributori imitano qualunque esempio vedono davanti a loro Non impostate soltanto la wiki sperando che tutto vada
438. problema in due pezzi quanto pi piccoli possibile per aumentare la possibilit di predire ogni pezzo L altro modo contrattare solamente per il rilascio di una patch e trattare l accettazione delle patches nel pubblico progetto come una questione separata Allora diventa molto pi facile scrivere un contratto ma siete inceppati con il il carico di mantenere una patch privata tanto a lungo quanto dipendete dal software o almeno tanto a lungo quanto ci vuole a inserire la patch o l equivalente funzionalit nella linea principale Certamente anche con il modo preferito il contratto stesso non pu esigere che la patch sia accettata nel codice perch ci comporterebbe vendere qualcosa che non in vendita Cosa accadrebbe se il resto del progetto decidesse di non supportare quella funzionalit Comunque il contratto pu richiedere un sforzo bona fide a far si che il cambiamento sia accettato dalla comunit e che esso sia inviato al deposito se la comunit lo accetta Per esempio se il progetto aveva scritto standards riguardo ai cambiamenti al software il contratto pu far riferimento a quegli standards e specificare che il lavoro deve adattarsi ad essi In pratica ci si risolve nella maniera in cui uno spera La migliore tattica per contrattare con successo ingaggiare uno degli sviluppatori del progetto preferibilmente uno con l accesso all invio come contraente Ci potr sembrare una modo di comprare influenza ebbene lo
439. processo col quale la qualit dei cambiamenti poteva esser migliorata Poich confidavamo che ogni cosa che avessimo fatto sarebbe stata accettata come lo era facemmo uno sforzo piccolo per coinvolgere gli altri Certamente quando state scegliendo un imprenditore volete qualcuno con le giuste capacit tecniche ed esperienza per il lavoro Ma anche importante scegliere qualcuno con una traccia dei precedenti comportamenti e realizzazioni di una costruttiva interazione con gli altri sviluppatori nella comunit In questo modo voi state prendendo pi di una singola persona voi state prendendo un agente che sar capace di disegnare una rete di esperienze in modo da essere sicuri che il lavoro sia fatto in modo solido e mantenibile Finanziare Attivit di Non Programmazione La programmazione solo un parte di ci che entra in un progetto open source Dal punto di vista dei volontari del progetto la parte pi visibile e affascinante Questo sfortunatamente significa che altre attivit come la documentazione le prove formali ecc possono talvolta essere ignorate almeno in confronto alla quantit di attenzione che spesso riceve il software proprietario Le compagnie sono spesso capaci di inventare questo dedicando una parte della loro struttura interna di sviluppo di software a progetti open source La chiave per fare ci con successo trasferire tra i processi interni delle compagnie e quelli delle comunit di sviluppo pu
440. quello che producono rappresenti il software in modo pulito e accurato La cosa principale che gli impacchettatori hanno bisogno di sapere che essi dovrebbero basare sempre 1 loro pacchetti binari su una release ufficiale originale Talvolta gli impacchettatori son tentati di tirar fuori una recente incarnazione del codice dal deposito o di includervi cambiamenti selezionati che furono inviati dopo che la release fu fatta per fornirli agli utilizzatori con certe correzioni di bugs o altri miglioramenti Chi fa i pacchetti pensa di star facendo un favore ai suoi utilizzatori nel dare loro codice pi recente ma in realt questa pratica causa una gran quantit di confusione I progetti sono preparati a ricevere rapporti di bugs trovati nelle versioni rilasciate e di bugs trovati nel recente tronco e nel codice del ramo maggiore cio trovati da gente l apposta per far girare codice a rischio di stabilit e produttivit Quando un bug proviene da queste fonti il risponditore sar spesso capace di confermare che noto che quel bug presente in quell istantanea e forse che da allora stato corretto e che l utente dovrebbe aggiornare o aspettare la successiva release Se esso un precedente bug non noto l avere l esatta release fa si che sia pi facile riprodurlo e pi facile classificarlo nel tracciatore progetti non sono preparati comunque a ricevere rapporti di bugs basati su un mezzo intermedio non specifico o su versioni ibrid
441. r usato il danaro prima che arrivi e pubblicate il piano sul sito web Le discussioni su come destinare il danaro tendono ad andare molto meno regolarmente si tengono prima che ci sia reale danaro da spendere e in ogni modo se ci sono dei rilevanti disaccordi meglio scoprire che esso il danaro fuori fintanto che ancora accademico Un modello di fondazione per affari non il solo fattore su come si mette in relazione alla comunit di sviluppatori Interessa anche la relazione storica fra i due la compagnia avvi il progetto o si sta associando a uno sforzo esistente In ambedue i casi il fondatore deve guadagnarsi credibilit ma non in modo sorprendente c tanto in pi guadagno da fare nel secondo caso L organizzazione deve avere chiari obiettivi rispetto al progetto La compagnia sta cercando di avere una posizione di leadership o soltanto di essere una voce nella comunit per guidare e non necessariamente governare le direzione del progetto O vuole giusto avere a disposizione una coppia di persone raccomandate capaci di correggere 1 bugs dei clienti e introdurre i cambiamenti nella distribuzione pubblica senza affanni Tenete queste questioni in mente quando leggete le linee guida che seguono Si intende che esse siano applicate a una sorta di coinvolgimento organizzativo in un progetto di software libero ma ogni progetto un ambiente umano e quindi non ve ne sono due esattamente simili In qualche grado voi avre
442. r esempio nel fare una proposta avere molte persone che siano d accordo in anticipo pu essere utile ad essa nel percorso dando l impressione di un consenso crescente Gli altri avranno l impressione che la proposta abbia forza e che se facessero obiezione fermerebbero quella slancio Cos la gente obietter solo se avr una buona ragione per farlo Non c niente di sbagliato nell orchestrare un accordo come questo fin quando le obiezioni sono prese seriamente Le manifestazioni pubbliche di un accordo privato non sono meno genuine per essere state coordinate in anticipo e non sono dannose finch non son usate pregiudizialmente per spegnere gli argomenti dell opposizione Il loro scopo unicamente quello di ostacolare quel tipo di persone che amano obiettare giusto per stare nella scia vedere sezione chiamata Pi semplice l argomento pi lungo il dibattito in Capitolo 6 Comunicazione per maggiori ragguagli su di essi Siate Aperti Verso Le Vostre Motivazioni Siate aperti verso gli obiettivi della vostra organizzazione quanto potete senza compromettere i segreti del business Se volete che il vostro progetto acquisisca una certa funzionalit perch per esempio i vostri clienti la hanno chiesta a gran voce ditelo apertamente sulla maliling list Se i clienti vogliono restare anonimi come a volte il caso allora chiedete loro se vogliono essere usati come esempi non nominati Quanto pi pubblicamente la comunit di svilupp
443. r la ripulita Ci di solito porta a un processo iterativo tutto visibile sulla mailing list in cui l autore originario posta le versioni revisionate della patch fino a quando il revisore non ha nient altro da criticare Non sempre facile dire quando il processo terminato se il revisore fa l invio della patch allora chiaramente il ciclo completo Ma se non lo fa potrebbe essere semplicemente perch non ha tempo o perch non ha l accesso all invio e non potrebbe unirsi alla cordata degli altri sviluppatori nel farlo Un altra frequente risposta a una patch una discussione a ruota libera non necessariamente sulla patch stessa ma sul fatto se il concetto che sta dietro la patch buono Per esempio la patch pu correggere un bug ma il progetto preferisce correggere quel bug in un altro modo come parte della risoluzione di una classe pi generale di problemi Spesso questa non nota in anticipo ed la patch che ne stimola la scoperta Occasionalmente una patch postata accolta con assoluto silenzio Ci di solito dovuto al fatto che al momento nessuno sviluppatore ha il tempo di revisionare la patch Poich non c un limite particolare per quanto riguarda il tempo che ogni persona aspetta che qualcun altro raccolga la palla e nel frattempo altre priorit stanno arrivando molto facile che una patch sfugga tra le crepe senza che una singola persona abbia intenzione che avvenga Il progetto potrebbe perdere una u
444. r usare una analogia matematica se sembra che l informazione sar rapidamente convergente allora mettetela direttamente nel tracciatore di bug se sembra che sar divergente allora una mailing list o un canale IRC pu essere un posto migliore Ci non significa che non ci dovrebbe mai essere scambio nel tracciatore di bug Chiedere maggiori dettagli per la ricetta di riproduzione da chi ha fatto il report all origine tende ad essere un processo altamente convergente per esempio E improbabile che la risposta della persona sollevi nuovi problemi semplicemente fornire maggiori dettagli sull informazione gi archiviata Non c bisogno di distrarre la mailing list con quel procedimento Abbiate cura con ogni mezzo di ci con una serie di commenti nel tracciatore Allo stesso modo se siete abbastanza sicuri che il bug stato riportato male cio non un bug allora potete semplicemente dirlo cos bene nel problema Anche indicare un problema minore con una soluzione proposta bene nell ipotesi che il problema non sia un pezzo di una rappresentazione che suscita applausi per la risoluzione completa D altra parte se state sollevando dei problemi filosofici sulla portata del bug o sull appropriato comportamento del software potete essere abbastanza sicuri che gli altri sviluppatori vorranno essere coinvolti Sembra che la discussione diverga per un momento prima di convergere cos tenetela nella mailing list Linkate sempre all a
445. ra impossibile Introduzione L ascesa del software proprietario e del software libero Come conseguenza del fatto che l industria maturava avvennero molti cambiamenti La grande variet del software prodotto diede strada ai pochi chiari vincitori vincitori per la tecnologia superiore per una organizzazione commerciale superiore o una combinazione delle due cose Allo stesso tempo e non completamente in simultaneit lo sviluppo dei cosiddetti linguaggi di alto livello volle dire che uno avrebbe potuto scrivere un programma una volta sola in un unico linguaggio e ottenere che esso fosse tradotto compilato in modo da poter girare su differenti tipi di computer Le implicazioni di ci non furono perse dai costruttori di hardware Il cliente cos poteva dedicarsi a un impegno maggiore nello sviluppo del software senza necessariamente limitarsi a farlo in relazione a una specifica architettura Quando ci si combin con una graduale diminuzione delle differenze di prestazione dei vari computers man mano che i progetti meno efficienti furono fatti fuori un costruttore che considerasse il suo hardware come sua unica risorsa poteva prevedere un futuro di margini di guadagno in diminuzione Da sola la potenza di calcolo stava diventando un bene commerciale e il software faceva la differenza Vendere software o almeno trattarlo come parte della vendita di hardware cominci a sembrare una buona strategia Ci signific che i co
446. ra arrivati alla sezione dei crediti ma giusto alla pratica che io sosterr pi tardi il nome dell osservatore era Brian Behlendorf e fu lui che richiam l attenzione sull importanza di mantenere le discussioni pubbliche amenoch non ci fosse uno specifico bisogno di privatezza 25 Partenza quantit del pensare che entrato in esse certo ma voi non saprete che genere di pensatori sbocciato l finch non li stimolerete con un problema impegnativo Naturalmente ci sono discussioni che devono avvenire in privato In questo libro ne vedrete esempi Ma la guida dovrebbe essere sempre Se non c ragione perch esse siano essere private dovrebbero essere pubbliche Far si che questo accada richiede un azione Non c solo da assicurarsi che i vostri posts vadano nella lista pubblica Dovete anche richiamare l attenzione della altre persone sul fatto che inutili conversazione private vadano anche sulla lista Se qualcuno tenta di avviare una conversazione privata e non c ragione perch essa sia privata allora il vostro compito quello di aprire immediatamente la relativa discussione pubblica appropriata E anche non commentate sull argomento originale finch o avete condotto la conversazione in un alveo pubblico o avete accertato che la privacy era necessaria Se fate ci con coerenza le persone afferreranno abbastanza velocemente e incominceranno ad usare i forums per abitudine Stroncate sul Nascere la Scortesi
447. rammatori dalla responsabilit di rivedere il proprio codice prima di inviarlo Nessuno dovrebbe dipendere dalla revisione del codice per individuare cose che dovrebbe individuare da s Quando Aprite un Progetto che era Chiuso in Passato Fate Attenzione alla Grandezza del Cambiamento Se state aprendo un progetto esistente un progetto che ha gi sviluppatori attivi abituati a lavorare in un ambiente closed source assicuratevi che ognuno capisca che sta venendo un grosso cambiamento e assicuratevi di capire come ci sta venendo percepito dal loro punto di vista Cercate di capire come la situazione appare loro in passato tutte le decisioni riguardanti il codice e la progettazione venivano prese in un gruppo di programmatori che conoscevano il software pi o meno bene in modo uguale in cui tutti ricevevano le stesse pressioni dalla stessa organizzazione e in cui tutti conoscevano la forza e le debolezze degli altri Adesso voi state chiedendo loro di esporre il loro codice allo sguardo indagatore di casuali estranei che si formeranno un giudizio solo sul codice con nessuna consapevolezza di quante pressioni mercantili possono aver forzato certe decisioni Questi estranei faranno un sacco di domande domande che turberanno gli sviluppatori preesistenti fino al punto che essi si renderanno conto che la documentazione sulla quale hanno sgobbato tuttavia inadeguata questo inevitabile E per giunta i nuovi arrivati sono sconosciuti entit
448. rcarlo mi dispiace La cosa principale riconoscere l esistenza della norma culturale o assecondandola o riconoscendo apertamente di non aver avuto tempo In entrambi i modi la norma rispettata Ma non rispettarla allo stesso tempo non spiegando perch non l avete fatto come dire che la discussione e coloro che vi partecipano non valeva il vostro tempo E meglio mostrare che il vostro tempo prezioso essendo chiari che essendo pigri Ci sono certamente molte altre forme di maleducazione ma la maggior parte di queste non sono peculiari del software libero e il senso comune una sufficiente guida per evitarle Vedete anche sezione chiamata Stroncate sul Nascere la Scortesia in Capitolo 2 Partenza se non l avete ancora fatto Facce C una regione nel cervello umano che dedicata in maniera specifica al riconoscimento delle facce E informalmente nota come area fusiforme della faccia e le sue capacit sono nella maggior parte innate non imparate Ne consegue che riconoscere gli individui talmente una capacit cruciale per la sopravvivenza che abbiamo sviluppato hardware specializzato per farlo La collaborazione basata su Internet quindi psicologicamente strana perch implica una stretta collaborazione tra esseri umani che non riescono praticamente mai ad identificarsi l un l altro con i metodi pi naturali ed intuitivi il riconoscimento facciale innanzitutto ma anche il suono della voce la postur
449. rcela per questa release o per la prossima Pi uno cerca di imbottire i cambiamenti nella release all ultimo minuto pi il codice destabilizzato e usualmente pi bugs si creano La maggior parte degli ingegneri di software convengono in teoria su abbozzi di criteri circa quali cambiamenti debbano essere consentiti in una linea di rilascio durante il suo periodo di stabilizzazione Ovviamente correzioni per importanti bugs dovrebbero entrarci specialmente per bugs senza correzioni che non risolvono il problema Gli aggiornamenti della documentazione vanno bene cos come le correzioni ai messaggi di errore eccetto quando sono considerati parte dell interfaccia e devono rimanere stabili Molti progetti anche consentono certi cambiamenti non rischiosi e non di base di entrare durante la stabilizzazione e si possono avere formali linee guida per la misurazione del rischio Ma nessun ammontare di formalizzazione pu ovviare al bisogno del giudizio umano Ci saranno casi in cui il progetto deve semplicemente prendere una decisione se un dato cambiamento deve entrare in una release Il pericolo che siccome ognuno vuol vedere il suo cambiamento preferito ammesso nella release ci sar una gran quantit di gente motivata a consentire cambiamenti e gente non abbastanza motivata a impedirli Cos il processo di stabilizzazione di una release consiste per lo pi nel creare un meccanismo per dire no Il trucco per un progetto open sourc
450. rch non ha controllato la posta abbastanza frequentemente Cos quando qualcuno confida di sapere quello che deve essere fatto dovrebbe procedere e farlo Questo non si applica solo alla correzione del software ma all aggiornamento del sito alle modifiche della documentazione e a ogni altra cosa a meno che la cosa non sia controversa Usualmente ci saranno solo poche occasioni in cui una azione avr bisogno di essere annullata e queste saranno trattate sulla base del caso per caso Certamente uno non dovrebbe incoraggiare la gente ad essere testarda C ancora una differenza psicologica fra una decisione sotto discussione e una che ha gi avuto effetto anche se questa tecnicamente reversibile La gente pensa sempre che la velocit alleata dell azione e sar leggermente pi riluttante ad annullare un cambiamento che a prevenirlo innanzitutto Se uno sviluppatore abusa di questo fatto inviando modifiche potenzialmente controverse troppo velocemente comunque la gente pu e dovrebbe protestare e costringere quello sviluppatore a uno standard pi stringente finch le cose migliorino 65 L Infrastruttura Sociale e Politica Quando Il Consenso Non Pu Essere Raggiunto Votate Inevitabilmente alcuni dibattiti potranno arrivare al consenso Quando tutte le altre vie per venir fuori da un punto morto falliscono la soluzione votare Ma prima che sia raccolto il voto ci deve essere una chiara serie di scelte sulla scheda
451. rch sente che un qualche umano ha preso nota di quello che ha fatto ricordate che registrare un problema solitamente comporta maggiore sforzo di per esempio mandare una mail Inoltre una volta che il problema visto da uno sviluppatore entra nella coscienza del progetto nel senso che lo sviluppatore pu essere all erta per altre istanze del problema parlarne con altri sviluppatori eccetera Il bisogno di pronte risposte implica due cose e Il tracker deve essere collegato con una mailing list in modo che ogni cambiamento di un problema includendo la sua registrazione iniziale causa la spedizione di una email che descrive cosa successo Questa mailing list solitamente diversa rispetto a quella normale di sviluppo dato che non tutti gli sviluppatori potrebbero voler ricevere email automatiche di bug ma proprio come con le email di commit l header di Reply to deve essere impostato alla mailing list di sviluppo Il form per la registrazione dei problemi deve poter captare l indirizzo email di chi fa la segnalazione cos che possa essere contattato per maggiori informazioni Comunque non deve richiedere l indirizzo dato che alcune persone preferiscono segnalare i problemi in maniera anonima Vedi sezione chiamata Anonimit e coinvolgimento pi avanti in questo capitolo per maggiori informazioni sull importanza dell anonimato Interazione con le mailing list Fate in modo che il bug tracker non diventi un forum di
452. rds per fare ci Un modo accompagnare ciascun pacchetto di release con un file che dia le corrispondenti firme digitali e uno che dia le somme di controllo Per esempio se una delle releases impacchettate la scanley 2 5 0 tar gz sistemate nella stessa directory un file scanley 2 5 0 tar gz asc contenente le firme digitali per il tar un altro file contenente le sue somme di controllo MDS e opzionalmente un altro file scanley 2 5 0 tar gz md5 e opzionalmente un altro file scanley 2 5 0 tar gz shal contenente la somma di controllo SHA1 Un altro modo di fornire il controllo quello di riunire tutte le firma digitali per tutti i pacchetti rilasciati in un singolo file lo scanley 2 5 0 sigs lo stesso pu essere fatto per le somme di controllo In realt non importa in modo in cui lo facciate Solo tenetene un semplice schema descrivetelo chiaramente e siate coerenti da release in release Lo scopo di tutto questo firmare digitalmente e di far tutte queste somme di controllo quello di fornire agli utilizzatori un modo per verificare che la copia che ricevono non sia stata corrotta in modo doloso Gli utilizzatori sono sul punto di di far girare questo codice sul loro computer se il codice stato corrotto uno che vuol fare un attacco pu presto avere una posta aperta a tutti i loro dati Vedere sezione chiamata Le Releases di Sicurezza pi avanti in questo capitolo per maggiori dettagli sulla paranoia Le Releases Candidate
453. re intenzioni Questa parte non usualmente troppo difficile sebbene essa pu rivelare supposizioni non dette e anche disaccordi sulla natura del progetto che cosa buona meglio risolvere queste cose ora che pi tardi Il passo successivo confezionare il progetto per il pubblico consumo e questa fondamentalmente una vera e propria sgobbata Ci che lo rende cos laborioso che esso consiste principalmente nell organizzare e documentare cose che ognuno conosce gi ognuno cio coloro che sono stati finora coinvolti nel progetto Cosicch per coloro che fanno il lavoro non c un immediato beneficio Essi non hanno bisogno di un file README che dia una panoramica n di un documento di progetto o di un manuale utente Essi non hanno bisogno di un albero del codice messo in ordine con cura conforme agli informali ma assai diffusi standards delle distribuzioni di codice sorgente Ad ogni modo il codice sorgente messo a punto buono per loro perch vi sono avvezzi comunque e se il codice non gira affatto essi sanno come usarlo E non ha importanza per essi se i presupposti fondamentali dell architettura del progetto rimangono non documentati essi invece sono familiari con esso I nuovi arrivati d altra parte hanno bisogno di queste cose Fortunatamente essi non ne hanno bisogno tutti in una volta Non necessario per voi fornire ogni possibile risorsa prima di rendere pubblico un progetto In un mondo
454. re per tradurre Subversion in diciamo Malgascio il manager delle traduzioni deve agganciargli qualcuno che 150 Gestire i Volontari post sei mesi prima esprimendo interesse a tradurre in Malgascio o anche politicamente chiedere al volontario di andare a trovare un altro traduttore in Malgascio per lavorare come suo partner Una volta che abbastanza persone sono disponibili il manager li sistema per un proprio tipo di accesso all invio li informa delle convenzioni del progetto come per esempio scrivere i messaggi di log e quindi tiene un occhio ad assicurarsi che essi aderiscano a queste convenzioni Le conversazioni fra il manager delle traduzioni e gli sviluppatori o fra il manager delle traduzioni e 1 team delle traduzioni sono di solito tenute nel linguaggio originale del progetto cio la lingua da cui tutte le traduzioni sono fatte Per molti progetti di software libero questa l inglese ma non importa quale sia fino a quando il progetto d accordo su ci L inglese comunque probabilmente il meglio per progetti che vogliono attrarre una larga comunit internazionale di sviluppatori Le conversazioni all interno di un particolare team di traduzione avvengono nella loro lingua comune comunque uno dei compiti del manager delle traduzioni quello di mettere su una mailing list dedicata per ogni team In questo modo i traduttori possono discutere il loro lavoro liberamente senza distrarre la gente su altre liste p
455. rezioni Apparite Come Molti Non Come Uno Solo I vostri sviluppatori dovrebbero adoperarsi per apparire nei forums pubblici del progetto come partecipanti individuali piuttosto che come una presenza monolitica collettiva Ci non perch ci sia un connotato negativo inerente a una presenza monolitica collettiva bene forse c ma ci non il motivo per cui esiste questo libro Piuttosto perch gli individui sono una sorta di identit per cui i progetti open source sono equipaggiati per fare affari Un collaboratore individuale pu avere discussioni inviare correzioni acquistare credibilit votare e cos via Una compagnia no Inoltre con l avere un modo decentralizzato voi evitate di stimolare una opposizione centralizzata Lasciate che i vostri sviluppatori non siano d accordo fra di loro nelle mailing lists Incoraggiateli a revisionare il codice l uno dell altro tanto spesso quanto pubblicamente quanto farebbero ciascuno dell altro Scoraggiateli dal votare sempre in blocco perch se lo facessero altri potrebbero percepire che ci giusto in linea generale sarebbe un sforzo organizzato per tenerli frenati 74 I Soldi C una differenza fra l essere realmente centralizzati e semplicemente adoperarsi di apparire tali In certe circostanze l avere che i vostri sviluppatori si comportino in concerto pu essere molto utile ed essi dovrebbero essere preparati a coordinarsi dietro le quinte quando necessario Pe
456. rgata Scegliere Coloro che Faranno gli Invii Nel progetto di Subversion noi sceglievamo coloro che dovevano far gli invio sulla base del principio Ippocratico primo non fare danni Il nostro criterio principale non l abilit tecnica oppure la conoscenza del codice ma soltanto il fatto che chi fa gli invii mostri buon giudizio Giudizio pu significare semplicemente sapere cosa non intraprendere Una persona potrebbe postare solo piccole patch risolvendo onestamente piccoli problemi nel codice ma se le patch si applicano un modo pulito non contengono bug e sono prevalentemente in accordo con i messaggi di log del progetto e col codice con le convenzioni e ci sono sufficienti patch a mostrare una chiara linea di comportamento allora Notate che l accesso all invio significa qualcosa di differente in un sistema di versione decentralizzato in cui ognuno pu allestire un deposito che collegato nel progetto e d a se stesso l accesso all invio a quel deposito Nondimeno ancora si applica il concetto dell accesso all invio L accesso all invio stenograficamente sta per il diritto di fare cambiamenti al codice che saranno inoltrati alla prossima release del software del gruppo In un sistema di controllo di versione centralizzato questo significa avere l accesso diretto all invio in un sistema decentralizzato significa avere che i cambiamenti di uno sono tirati dentro alla distribuzione automaticamente E la stessa idea in ogni
457. rginati a causa di peculiarit di comportamento e in generale facendo in modo che per gli sviluppatori il progetto sia un luogo dove ritornare Tecniche specifiche per far ci sono discusse per il resto di questo libro Infine c una categoria generica di problemi che pu essere chiamata fallimenti della navigazione culturale Dieci anni fa anche cinque sarebbe stato prematuro parlare di cultura globale del software libero ma ora non pi Una cultura riconoscibile lentamente emersa e mentre essa certamente non monolitica per lo meno soggetta al dissenso alla faziosit come una cultura geograficamente chiusa essa ha un consistente nocciolo di base Molti progetti di successo mostrano alcune o tutte le caratteristiche di questo nocciolo Essi premiano certi tipi di comportamento e ne puniscono altri essi creano un atmosfera che incoraggia una partecipazione non pianificata a volte a spese di un coordinamento centrale essi hanno concetti di rudezza e garbo che possono differire sostanzialmente da quelli che prevalgono altrove Ci che molto importante il fatto che partecipanti veterani hanno fatto propri questi comportamenti dimodoch hanno in comune un forte consenso sul comportamento Introduzione previsto I progetti che falliscono deviano in modo significativo da questo nocciolo sebbene senza intenzione e spesso non hanno l unanimit su ci che costituisce un comportamento ragionevole non predefinito Ci s
458. rgomento della mailing list dal problema quando scegliete di postare alla mailing list E anche importante per qualcuno che sta seguendo il problema essere capace di raggiungere la discussione La persona che inizia il thread pu trovare ci laborioso ma l open source fondamentalmente una responsabilit di chi scrive E molto pi importante rendere facili le cose per le decine di centinaia di persone che possono leggere il bug che per le tre o cinque persone che scrivono intorno ad esso E bene trarre importanti conclusioni o sommari dalla discussione sulla mailing list e incollarle nel problema se ci render le cose convenienti per i lettori Deve iniziare una discussione sulla mailing list un comune idioma mettete un link al thread nel problema e poi quando la discussione finisce incollate il sommario finale nel problema insieme con un link al messaggio contenente il sommario cos chi osserva il problema possa vedere quale conclusione sia stata raggiunta senza dover cliccare da qualche altra parte Notate che di solito il problema della duplicazione dei dati da due capi non esiste qui perch ambedue gli archivi e i commenti al problema di solito sono statici dati che non possibile cambiare in nessun modo La Pubblicit Nel software libero c una discreta regolare continuit tra le discussioni puramente interne e le regole delle pubbliche relazioni Ci avviene in parte perch il pubblico di destinazione mal
459. ri discute come suddividere il carico della manutenzione fra molti volontari La Tradizione della Codifica Nella misura in cui un progetto acquista anzianit e complessit la quantit di dati che ogni partecipante che arriva deve assorbire cresce Coloro che sono stati col progetto per lungo tempo saranno in grado di imparare e inventare le convenzioni del progetto nella misura in cui andarono avanti Essi spesso non saranno consapevolmente al corrente di quale enorme corpo di tradizione hanno accumulato e possono essere sorpresi di fronte a quanti passi falsi sembrano fare i nuovi arrivati Certo il fatto non che i nuovi arrivati siano di qualche qualit inferiore di prima che essi sono di fronte a un pi grande carico di acculturazione rispetto ai nuovi arrivati del passato L anzianit che il progetto accumula tanta nel comunicare e nel preservare le informazioni quanta essi ne hanno negli standard del codice e altre minuterie tecniche Noi abbiamo dato un occhiata a tutti e due i tipi di standard in sezione chiamata La documentazione sviluppatore in Capitolo 2 Partenza e sezione chiamata Metter Gi Tutto Per Iscritto in Capitolo 4 L Infrastruttura Sociale e Politica rispettivamente e gli esempi sono dati l Ci di cui tratta questa sezione come mantenere le linee guida aggiornate nella misura in cui il progetto si evolve specialmente le linee guida su come sono trattate le comunicazioni perch queste sono
460. ricerca sui contenuti dei messaggi cos come sugli autori e oggetti praticamente inutile Va notato che alcuni archiviatori supportano la ricerca semplicemente appoggiandosi per l elaborazione su di un motore di ricerca esterno come Google http www google com Questo accettabile ma il supporto alla ricerca diretta solitamente meglio rifinito perch permette a chi cerca per esempio di specificare che la chiave di ricerca appaio nell oggetto piuttosto che nel corpo del messaggio Cosa scritto sopra solo una lista di punti tecnici per aiutarvi a valutare e configurare un archiviatore Fare in modo che la gente davvero usi l archiviatore per il bene del progetto discusso nei prossimi capitoli in particolare sezione chiamata Uso Ben Visibile degli Archivi Software Qui di seguito ci sono alcuni strumenti open source per gestire mailing list e archiviazione Se il sito dove ospitato il vostro progetto ha gi una configurazione di default allora potreste non avere mai bisogno di decidere sull uso di nessun strumento Ma se dovete installarne uno da voi ci sono alcune possibilit Quelli che ho effettivamente usato sono Mailman Ezmlm MHonArc e Hypermail ma questo non vuol dire che altri non siano pure buoni e di sicuro ci saranno altri strumenti l fuori che non ho trovato quindi non prendete questa come una lista completa Software di gestione di mailing list e Mailman http www list org contiene u
461. rincipali la maggior parte delle quali non sarebbero in grado di capire il linguaggio di traduzione comunque Internazionalizzazione Verso Localizzazione Internazionalizzazione I18N and localizzazione LION si riferiscono ambedue all adattare il programma in modo che funzioni in ambienti linguistici e culturali diversi da quello in cui il programma fu originariamente scritto I termini sono spesso trattati come interscambiabili ma in realt essi non sono per nulla la stessa cosa As http en wikipedia org wiki G11n writes La distinzione fra di esse sottile ma importante L internazionalizzazione l adattamento per il suo possibile uso virtualmente ovunque mentre la localizzazione l aggiunta di funzionalit per l uso in un ambiente specifico Per esempio cambiare il vostro software in un sistema di compressione senza perdite di codifica testo Unicode http en wikipedia org wiki Unicode uno spostamento di internazionalizzazione perch non riguarda una particolare lingua ma piuttosto l accettazione di testo da un qualsiasi numero di lingue D altra parte facendo si che il vostro software stampi tutti i messaggi d errore in Sloveno quando esso accerta che sta girando in ambiente sloveno la sua localizzazione si sposta Cos il compito del manager delle traduzioni riguarda principalmente la localizzazione non l internazionalizzazione Il Manager della Documentazione Il tenere aggiornata la documentazione un c
462. rio generalmente ben accetto dalle comunit open source Esso pu diminuire la vulnerabilit di un progetto alla Forza del Caso la quale pu spazzar via tanti progetti prima che decollino quindi pu rendere la gente pi desiderosa di dare al software una chance essi avvertono di star investendo il proprio tempo in qualcosa che sar ancora in vita sei mesi da ora Dopotutto la credibilit contagiosa a un certo punto Quando per esempio L IBM sostiene un progetto open source la gente in un certa misura sente che al progetto non sar permesso di fallire e la loro risultante buona volont a impegnarsi devotamente ad esso pu rendere ci una profezia auto appagante In ogni caso il finanziamento porta anche una percezione di controllo Se non gestiti con cura i soldi possono dividere gli sviluppatori in gruppi ristretti e un gruppi non ristretti Se i volontari non pagati si fanno l idea che le decisioni della progettazione o l aggiunta di funzionalit sono solo una prerogativa del miglior offerente allora essi volteranno le spalle a un progetto che sembra pi simile a una meritocrazia e meno simile a un lavoro non pagato a beneficio di qualcun altro Essi non possono mai lagnarsi apertamente nella mailing list Invece ci sar sempre meno e meno rumore da parte di fonti esterne quando i volontari smetteranno di cercare di essere presi seriamente Il mormorio dell attivit di piccola scala continuer nella forma di rapporti di
463. rivere ad un tasso maggiore di A AA cps e quindi possibile che la tua risposta sia incoerente mal pensata e o emotiva 187 n Perch dovrebbe importarmi di che colore sia la rastrelliera Un timer di raffreddamento ti impedir di mandare ogni email per la prossima ora Cancella La seconda parte del mio desiderio pi emotiva Ovviamente le capacit che abbiamo avuto nell alimentare il fuoco non amichevole nel thread sleep 1 nonosta i loro numerosi anni nel progetto non si preoccuparono mai abbastanza per fare qu farsi scaldare cos tanto da qualcun altro che lo facesse Vorrei saperlo So che il ragionamento non avr il potere di fermare questo conservativismo reazi Potrebb ssere che queste persone siano frustrate dalla loro tangibile mancanza d o potrebbe essere un brutto caso di siamo vecchi e scontrosi NOI sappiamo come i In entrambi i casi molto improduttivo per il progetto ma non ho suggerimenti su che possa suggerire di evitare di nutrire i mostri in agguato nella mailing list dimenticate siano l Spero che possiamo avere una base pi forte e larga di contributori in FreeBSD e possiamo evitare che i vecchi uomini scontrosi e gli omissis del mondo li sbrani prima che possano appoggiare un piede a terra Per la gente che spiava qua fuori intimorita a partecipare dai gargoule posso so di provare comunque non questo il modo in
464. ro ma perch aveva realmente una grande possibilit di avviare il vostro computer quando lo aveste installato SEssi preferiscono essere chiamati X Window System ma in pratica la gente usualmente li chiama X Window perch tre parole sono proprio troppo scomode Introduzione di lavorare al software libero molti sviluppatori non consideravano il software proprietario un male sociale Ci fu gente che sent l impulso morale di liberare il mondo del software hoarding termine di Stallman per software non libero ma altri erano motivati pi da sollecitazioni tecniche o dal piacere di lavorare con collaboratori della stessa opinione o persino da un un semplice umano desiderio di gloria Eppure tutto sommato queste disparate motivazioni non interagirono in modo distruttivo Ci dovuto in parte al fatto che il software a differenza della altre forme creative come la prosa o le arti visive deve superare dei tests per met oggettivi per essere considerato di successo Ci d a tutti i partecipanti a un progetto una specie di automatica base comune una ragione e una struttura per lavorare insieme senza tanta preoccupazione di qualificazioni oltre quella tecnica Gli sviluppatori ebbero un altra ragione per unirsi Risult che il mondo del software libero stava producendo qualche codice di alta qualit In alcuni casi esso era in modo dimostrabile tecnicamente superiore all alternativa non libera In altri esso era almeno comparabile
465. roblemi nel bug tracker e di commentare problemi esistenti Richiedendo uno username valido per tali azioni il progetto alza l indicatore di coinvolgimento per cosa dovrebbero essere attivit veloci e facili Di sicuro si vorrebbe essere in grado di contattare qualcuno che ha immesso dei dati nel bug tracker ma avere un campo dove volendo si pu inserire l indirizzo email sufficiente Se un nuovo utente trova un bug e vuole riportarlo sar soloannoiato dal dovere completare una creazione di account prima che possa immettere il bug nel tracker Potrebbe semplicemente decidere di non segnalare del tutto il bug I vantaggi della gestione degli utente solitamente sovrastano gli svantaggi Ma se potete scegliere quali azioni possono essere fatte in modo anonimo siate certo non solo che tutte le azioni di sola lettura siano 8Disclaimer sono dipendente di CollabNet http www collab net che sostiene Tigris org e uso Tigris regolarmente 60 L Infrastruttura Tecnica permesse a visitatori non loggati ma anche alcune azioni di immissione dati in particolare nel bug tracker e se le avete nelle pagine wiki 61 Capitolo 4 L Infrastruttura Sociale e Politica Le prime domande che la gente fa sul software libero sono Come funziona Cosa mantiene il progetto in funzione Chi prende le decisioni Io sono sempre insoddisfatto dalle risposte blande sulla meritocrazia sullo spirito di collaborazione sul fatto che il codice
466. ruvida nella mailing list o scrivere codice con bugs essi non si fermeranno perch lo hanno detto le linee guida del progetto C bisogno che queste situazioni siano affrontate quando nascono non con ammonizioni generali ad essere buoni D altra parte se il progetto ha delle linee guida specifiche su come scrivere buon codice come le regole per documentare le API in un certo formato allora queste linee guida devono essere messe gi nella maniera pi completa possibile Una buona maniera per individuare cosa includervi basare il documento sulle domande che i nuovi arrivati fanno pi spesso e sulle lamentele pi frequenti degli sviluppatori Questo non significa necessariamente che ci dovrebbe finire nel foglio delle FAQ probabilmente ci ha bisogno di una struttura pi narrativa di quanto le FAQ possano offrire ma essa dovrebbe seguire lo stesso principio basato sul reale di dare un indirizzo ai problemi che realmente sorgono piuttosto che quelli che voi anticipate possano sorgere Se il progetto una benevola dittatura o ha funzionari investiti di speciali poteri presidente poltrona qualcos altro allora il documento una buona opportunit di codificare le procedure di successione A volte questo pu essere semplice come nominare specifiche persone come sostituti nel caso che il BD lasci il improvvisamente il progetto per qualche ragione Generalmente se c un BD solo il BD pu andarsene nominando un successore Se c
467. sa che questa licenza sarebbe astenersi del tutto dalla distribuzione d Lats Non proposito di questa sezione indurvi a violare alcun brevetto o altri giusti diritti di propriet o a contestare la validit di alcuni di questi diritti questa sezione ha il solo proposito di protegger il sistema di distribuzione del software libero che implementato dalla prassi delle licenze pubbliche Molte persone hanno dato generosi contributi alla larga estensione di software distribuito con questo sistema confidando nella applicazione coerente di quel sistema dipende dall autore donatore decidere se vuol distribuire il software con altri sistemi e la licenza non pu imporre quella scelta anche La Licenza Apache Versione 2 0 http www apache org licenses LICENSE 2 0 ontiene requisiti anti brevetto Primo stabilisce che chiunque distribuisca codice sotto la licenza debba implicitamente includervi un brevetto che liberi dal pagamento di qualsiasi copia per ogni brevetto che potrebbe contenere ci che potrebbe applicarsi al codice Secondo e con moltissimo ingegno essa punisce chiunque inizi un reclamo di violazione del brevetto sul lavoro coperto ponendo termine automaticamente alla sua licenza brevetto nel momento in cui tale reclamo fatto 3 Concessione di Licenza Brevetto Soggetto ai termini e alle condizioni di questa Licenza ogni collaboratore concede con questo mezzo a Voi una 1l brevetto perpetua
468. sa pi importante per i nostri propositi che la compatibilit GPL un importante problema quando si sceglie una licenza La GPL di gran lunga la pi importante licenza open source a http freshmeat net stats license al 68 e la successiva licenza pi importante al 6 Se volete che il vostro codice sia mescolato liberamete con codice sotto GPL e c una gran quantit di codice sotto GPL l allora potete scegliere una licenza GPL compatibile La gran parte delle licenze GPL compatibili sono anche proprietarie compatibili cio codice sotto una tale licenza pu pu essere usato sotto una licenza GPL e pu essere usata in un programma proprietario Certamente il risultato di questo mixing non sarebbe compatibile con qualsiasi altra licenza poich uno sarebbe sotto la GPL e un altro sarebbe sotto una licenza closed source Ma quello che interessa che si applica solo ai lavori derivati e non al codice che voi che distribuite per cominciare Fortunatamente la Free Software Foundation tiene aggiornata una lista delle licenze compatibili con la GPL e di quelle non compatibili a http www gnu org licenses license list html Tutte le licenze discusse in questo capitolo sono in quella lista da una parte o dall altra Scegliere una Licenza Quando scegliete una licenza per il vostro progetto per quanto possibile usate una licenza esistente invece di crearne un altra Ci sono due ragioni per cui le licenze esistenti sono
469. samente nel 1994 1995 con Jim Blandy continuando ad essere sporadicamente coinvolto da allora Vil Prefazione e La collezione di progetti open source nota come Apache Software Foundation in particolare l Ambiente Portabile di Apache APR ed il server HTTP Apache e OpenOffice org il sistema di basi di dati della Berkeley il sistema MySQL non sono stato coinvolto in questi progetti personalmente ma li ho osservati e in alcuni casi ho avuto l occasione di parlare direttamente con gli sviluppatori e Il debugger GNU GDB in generale e Il progetto Debian in generale Quest elenco non certo completo Un po come la maggior parte dei programmatori open source mantengo dei legami deboli con molti progetti differenti giusto per avere un senso dello stato generale delle cose Di sicuro non potrei elencarli qui tutti ma non trascurer di citarli ove opportuno durante la trattazione Ringraziamenti Per scrivere questo libro stato necessario un tempo quattro volte maggiore di quello che avevo preventivato e per la maggior parte di quel tempo sentivo come un grande pianoforte sospeso sulla mia testa ovunque andassi Senza l aiuto di molte persone non sarei stato in grado di completarlo evitando di impazzire Andy Oram il mio editore alla O Reilly si rivelato ci che ogni scrittore sogna Oltre a conoscere il tema in maniera approfondita ha suggerito lui molti dei temi ha il dono prezioso di sapere ci
470. scegliere qualcosa di simile al nome del progetto e il pi facile da ricordare possibile Pubblicizzate la disponibilit del canale sul sito web del progetto cos che un visitatore con una domanda veloce lo veda subito Per esempio questo appare in modo visibile alla cima della pagina principale di Subversion Non c nessun obbligo n aspettativa che facciate una donazione a Freenode ma se voi o il vostro progetto potete permettervelo per favore considerate questa possibilit Sono donazioni esentasse USA e loro forniscono un importante servizio 55 L Infrastruttura Tecnica Se state usando Subversion vi consigliamo di unirvi alla mailing list users subversion tigris org e di leggere il libro di Subversion http svnbook red bean com e FAQ http subversion tigris org faq html Potete anche fare domande su IRC a irc freenode net canale svn Alcuni progetti hanno molti canali uno per sottoargomento Per esempio un canale per i problemi di installazione un altro per le domande sull uso un altro per la chat dello sviluppo eccetera sezione chiamata Gestire la Crescita in Capitolo 6 Comunicazione discute su come suddividere i vari canali Quando il vostro progetto agli inizi ci dovrebbe essere un solo canale con tutti quanti a parlare insieme Poi quando il rapporto di utenti per sviluppatore cresce canali separati pu diventare necessario Come far la gente a sapere tutti i canali disponibili a scegliere
471. sciuto come veto Un veto un modo per lo sviluppatore per mettere un alt a un frettoloso o mal considerato cambiamento Pensate a un veto come a qualcosa fra una forte obiezione e una ostruzione Il suo esatto significato varia da un progetto all altro Alcuni progetti rendono molto difficile ignorare un veto altri consento loro di essere ignorati da un regolare voto della maggioranza magari dopo un rallentamento forzato per una ulteriore discussione Ogni veto dovrebbe essere accompagnato da una accurata spiegazione un veto senza una tale spiegazione dovrebbe essere considerato invalido o una comparsa Con il veto viene l abuso del veto A volte gli sviluppatori sono troppo desiderosi di sollevare steccati per sbarazzarsi di un veto quando in realt quello per cui erano stati chiamati era un maggior discussione Potete prevenire un abuso di veto con l essere molto riluttanti verso il veto voi stessi e richiedendolo quando qualcun altro usa il suo veto troppo spesso Se necessario potete ricordare al gruppo che i veti sono vincolanti solo finch il gruppo d accordo che lo siano dopotutto se una chiara maggioranza di sviluppatori vuole X allora X sta per succedere in un modo o nell altro O gli sviluppatori che pongono i veti fanno marcia indietro o il gruppo decider di sminuire il significato di un veto Potete vedere gente scrivere 1 per esprimere un veto Questo uso proviene dall Apache Software Foundation che ha estremamente strutt
472. scrizione dei problemi tecnici ma descrivere problemi tecnici solo una piccola parte della comunicazione in un progetto Molto pi importante l abilit di identificarsi con la audience di qualuno di vedere i propri post e commenti come altri li vedono e di fare in modo che altri vedano i loro post con simile oggettivit Altrettanto importante notare quando un certo mezzo di comunicazione non sta pi lavorando bene magari perch non scala al crescere del numero di utenti e prendere tempo per farci qualcosa Tutto questo in teoria ovvio cosa lo rende difficile in pratica che gli ambienti di software libero sono practice is that free software development environments are incoerentemente diversi sia nelle audience che nei meccanismi di comunicazione Un certo pensiero deve esserre espresso in un messaggio sulla mailing list come annotazione nel bug tracker o come commento nel codice Quando rispondere ad una domanda in forum pubblico quanta conoscenza si pu assumere esistere dal lato di chi legge dato che chi legge non sempre solo chi ha posto la domanda all inizio ma tutti quelli che potrebbero vedere la risposta Come possono gli sviluppatori stare in contatto costruttivo con gli utenti senza essere sommersi dalle richieste di funzionalit scarne segnalazioni di bug e chiacchiera generale Come dire quando un canale ha raggiunto i limiti della sua capacit e cosa farci Le soluzioni a questi problemi sono solita
473. scute uno e un posto centralizzato dove andare per trovare maggiori informazioni La sola differenza tra il numero CAN e CVE che il primo rappresentata una voce candidata non ancora approvata per l inserimento nella lista della dal Consiglio editoriale della CVE e il secondo rappresenta una voce approvata Comunque tutti e due i tipi di voce sono visibili al pubblico e il numero di una voce non cambia quando approvato il prefisso CAN solo sostituito da CVE Una voce CAN CVE non contiene di per se stessa una descrizione completa del bug non dice come proteggersi da essa Invece contiene un breve sommario e un elenco di riferimenti a risorse esterne come archivi di mailing lista dove la gente possa andare per prende maggiori informazioni Il vero proposito di quello di fornire uno spazio ben organizzato in cui in cui ogni vulnerabilit possa avere un nome e una chiara rotta verso dati ulteriori Vedere http cve mitre org cgi bin cvename cgi name 2002 0092 per un esempio di voce Notate che i riferimenti possono essere molto succinti con le sorgenti che appaiono abbreviazioni criptate Una chiave per queste abbreviazione si trova a http cve mitre org cve refs refkey html 112 Comunicazione Se la vostra vulnerabilit soddisfa i criteri CVE potete voler acquisire ad esso un numero CAN Il procedimento per fare ci e deliberatamente impedito fondamentalmente voi dovete conoscere qualcuno o conos
474. se sono le entit pi facili da revisionare perch hanno i messaggi di log originali Il ramo temporaneo non dovrebbe avere questi messaggi di log per evitare duplicazione di informazioni vedere sezione chiamata Singolarit dell informazione in Capitolo 3 L Infrastruttura Tecnica 1 messaggio di log del ramo per la r13517 dovrebbe dire semplicemente Adatta la r13222 r13223 e 13232 per il backport al ramo 1 1 x Tutte le altre informazioni sui cambiamenti possono essere inviate alle loro revisioni originali Il manager di release Il processo reale di unire vedere Unire merge cambiamenti approvati nel ramo di release pu essere effettuato da un qualunque sviluppatore Non c bisogno che sia una persona il cui compito sia quello di unire i cambiamenti se c una gran quantit di cambiamenti la cosa migliore pu essere quella di suddividere il carico Comunque sebbene l unione dei cambiamenti e il voto avvengono in un modo di fare decentrato nella pratica c una o due persone che guidano il processo di release Il ruolo benedetto talvolta come manager di release ma completamente differente da un proprietario di release vedere sezione chiamata Dittatura Da Parte del Proprietario Della Release precedentemente in questo capitolo che ha la parola finale sui cambiamenti I managers di release tengono traccia di quanti cambiamenti sono al momento sotto considerazione quanti sono stati approvati quanti sembran
475. se stessi e la gente che lavora al progetto una questione di quanto tempo uno ci mette dentro non di chi uno sia 147 Gestire i Volontari L ammonizione a non rispondere in modo irritato non vale per gli utilizzatori sgarbati Occasionalmente gli utilizzatori postano reports o rimostranze che indipendentemente dal loro contenuto di informazione mostrano un disprezzo con derisione nei confronti di alcune manchevolezze del progetto Spesso tali persone alternativamente insultano e fanno complimenti come la persona che post alla mailing list di Subversion Com che sono quasi 6 giorni che non ci sono ancora binari postati per la piattaforma di windows E la stessa storia ogni volta ed molto frustrante Perch queste cose non sono automatizzate in modo che possano essere disponibili immediatamente Quando voi postate un allestimento RC io penso che l idea sia quella ch volete che gli utilizzatori testino l allestimento ma tuttavia non provvedete in nessun modo a fare cos Perch anche avete un lungo periodo testing se non fornite i mezzi per testare La risposta iniziale a questa infiammatorio post fu sorprendentemente contenuta la gente fece notare che il progetto aveva un politica esplicita di non fornire binari e disse con vari gradi di irritazione che sarebbe stato compito dei volontari di produrli essi stessi se erano tanto importanti per loro Ci credete o no il suo post successivo partiva con queste ri
476. sere spesso un reale inconveniente ci possono essere funzionalit che voi volete aggiungere o protocolli che volete ridisegnare cose che non possono essere semplicemente fatte mentre mantenete la compatibilit Non c una soluzione magica a questo eccetto che cercare di disegnare le cose in modo estensibile in primo luogo una argomento che facilmente merita il proprio libro ma certamente fuori tema in questo Ma pubblicare una politica di compatibilit delle releases e aderirvi una parte delle distribuzione del software a cui non si pu sfuggire Una sgradevole sorpresa pu allontanare un sacco di utilizzatori La politica appunto descritta buona in parte perch gi abbastanza diffusa ma anche perch facile da spiegare e da ricordare anche per coloro che non hanno ancora familiarit con essa E generalmente convenuto che queste regole non si applicano alle release pre 1 0 sebbene la vostra politica di release lo stabilisca esplicitamente giusto per essere chiari Un progetto che sia ancora allo sviluppo iniziale pu rilasciare la 0 1 0 2 0 3 e cos via in sequenza finch non sia pronto per la 1 0 e le differenze fra queste releases possono essere arbitrariamente grandi I micro numeri nelle releases pre 1 0 sono opzionali A seconda della natura del vostro progetto e delle differenze fra le releases potreste trovare utile avere la 0 1 0 la 0 1 1 ecc oppure no Le convenzioni per le releases pre 1 0 sono piutt
477. servato Questa potrebbe essere la vostra ultima possibilit di avere un riscontro non filtrato di come gli altri vedono il comportamento di chi crea problemi una volta che iniziate a parlarne apertamente l opinione diventer polarizzata e nessuno sar in grado di ricordare cosa avesse pensato in precedenza riguardo al problema Se le discussioni private indicano che almeno anche qualcun altro vede il problema allora il momento di fare qualcosa Questo quando dovete diventare veramente cauti perch molto facile per questo tipo di gente cercare di far sembrare come se li steste criticando ingiustamente Qualunque cosa facciate non accusateli mai di abusare in modo malizioso delle procedure del progetto di essere paranoici o in generale di tutte le altre cose che sospettate siano probabilmente vere La vostra strategia deve essere di sembrare sia pi ragionevole e pi concentrato con la salute generale del progetto con l obiettivo di o riformare il comportamento della persona o farlo andare via in maniera definitiva A seconda degli altri sviluppatori e della vostra relazione con loro potrebbe essere vantaggioso prima cercare alleati privatamente O potrebbe non esserlo potrebbe solo creare malumori dietro le quinte se la gente pensa che stiate intraprendendo una impropria campagna silenziosa Ricordate che anche se l altra persona potrebbe essere uno che si comporta in maniera distruttiva voi sarete quelli che appaiono distru
478. server FTP e o un server HTTP o usare il comando precostruito serve per fornire direttamente il vostro materiale Tutti gli insiemi di modifiche sono universalmente unici e hanno tonnellate di meta data cos potete rifiutare tutto ci che non volete prima di provarlo Il merge fatto confrontando l insieme di cambiamenti con i contenuti della directory corrente piuttosto di provare a farne il merge con altro insieme di cambiamenti Superversion http www superversion org Superversion un sistema di controllo di versione distritibuito multi utente basato su insiemi di modifiche Vuole essere un alternativa di robustezza industriale open source alle soluzioni commerciali che sia facile da usare o anche pi facile e similmente potente Infatti una usabilit intuitiva ed efficiente stata una delle principali priorit nello sviluppo di Superversion fin all inizio 181 Appendice B Bug Tracker Liberi Non importa quale bug tracker il progetto usi ad alcuni sviluppatori piace sempre lamentarsene Questo sembra essere pi vero nei bug tracker che in ogni altro strumento di sviluppo standard Pensa che sia perch i bug tracker sono cos visuali e cos interattivi che facile immaginare i miglioramenti che uno farebbe se solo ne avesse il tempo e di descrivere ad alta voce i miglioramenti Prendete le inevitabili lamentele cum grano salis molti dei bug tracker in seguito sono abbastanza buoni Lungo questo elenc
479. sia con il software proprietario La sfida di riportare al pubblico il risultati del gruppo di testing in una forma utile I gruppi di testing in azienda usualmente hanno un loro modo di riportare questi risultati impiegando un linguaggio specifico della compagnia o una conoscenza di particolari clienti e del loro gruppo di dati Tali rapporti sarebbero inadatti per il tracciatore di bug pubblico sia a causa della loro forma e a causa della confidenzialit Anche se il software tracciatore di bugs interno della vostra compagnia fosse lo stesso di quello usato nei progetti pubblici l amministrazione poterebbe aver bisogno di commenti specifici della compagnia e di cambiamento dei meta dati per esempio sollevare una priorit interna dei problemi o programmare la sua risoluzione per un particolare cliente Usualmente tali note sono confidenziali talvolta non sono nemmeno mostrate al cliente Ma anche quando esse non sono confidenziali esse non riguardano il progetto pubblico e quindi il pubblico non dovrebbe essere distratto da essi Tuttavia il cuore stesso del rapporto dei bugs importante per il pubblico Infatti un rapporto del vostro dipartimento di testing pi prezioso di un rapporto dagli utilizzatori in libert poich il dipartimento di testing indaga su cose su cui altri non indagherebbero Dato che improbabile che voi otteniate quel rapporto di bugs da altra fonte volete di sicuro preservarlo e renderlo disponibile per il proge
480. sicurezza perch sia adatto alla severit del problema Se il buco nella sicurezza solo una rischiosit secondaria relativa alle informazioni non un metodo di attacco che consente all intero computer dell utente di essere rilevato allora esso non pu giustificare tanta agitazione Potete anche decidere di non distrarre la mailing list annuncia con esso Dopotutto se il progetto guarda al lupo ogni volta gli utenti potrebbero finire col pensare che il software sia meno sicuro di quanto in realt lo sia e potrebbero anche non credervi quando avete da annunciare veramente un grosso problema Vedere http cve mitre org about terminology html per una buona introduzione al problema del giudizio sulla severit In generale se siete incerti su come trattare un problema di sicurezza trovate qualcuno esperto e parlategli di esso Valutare e gestire le vulnerabilit molto una abilit acquisita ed facile fare dei passi falsi le prime volte 115 Capitolo 7 Confezione Rilascio e Sviluppo Quotidiano Questo capitolo parla di come i progetti di software libero confezionano e rilasciano i loro software e di come si organizzano le procedure generali di sviluppo su questi obiettivi Una differenza principale fra i progetti open source e quelli proprietari il difetto di un controllo centralizzato sul team di sviluppo Quando sta venendo preparata una nuova release questa differenza specialmente forte una compagnia pu richied
481. sione fosse scritta revisione 12828 sia perch quella forma potrebbe essere divisa da una interruzione di linea sia perch meno distinta la parola revisione apparir spesso da sola e il gruppo dei numeri apparir spesso da solo mentre la combinazione r12828 pu significare solo un numeri di revisione Simili preoccupazioni si applicano ai numeri di problema voci di FAQ suggerimento usate un URL con un ancora con nome come descritto in Ancore con nome e attributi ID ecc Anche per le entit dove non c una ovvia breve forma canonica la gente tuttavia dovrebbe essere incoraggiata a fornire pezzi chiave di informazione coerentemente Per esempio quando ci si riferisce ad un messaggio della mailing list non date solo il mittente e i soggetto date anche l URL dell archivio e e la testata Message ID L ultimo permette alla gente che ha la sua copia della mailing list le gente a volte tiene copie offline per esempio da usare su un laptop in viaggio per identificare senza ambiguit 1 messaggio giusto anche se non ha l accesso agli archivi Il mittente e il soggetto non sarebbero sufficienti per che la stessa persona potrebbe fare parecchi post nello stesso trhead anche nello stesso giorno Pi il progetto cresce pi importante diventa questo tipo di coerenza Coerenza significa che qualunque persona guardi essa vede seguiti gli stessi comportamenti cos essi sanno seguire i comportamenti stessi Questo successiva
482. software voi volete attirare alcuni dei destinatari a unirsi al tentativo di migliorare la medicina Il software ha bisogno di acquisire utilizzatori e di acquisire sviluppatori Queste due necessit non sono necessariamente in conflitto ma aggiungono complessit alla presentazione iniziale del progetto Qualche informazione utile per ambedue le categorie qualcuna utile solo per l una o solo per l altra Tutti e due i tipi di informazione dovrebbero dare un contributo al principio di una informazione adattata Cio il grado di dettaglio fornito ad ogni stadio dovrebbe corrispondere direttamente alla quantit di tempo e di sforzo immessovi dal lettore Maggiore sforzo dovrebbe essere sempre uguale a maggior ricompensa Quando le due cose non sono correlate fermamente la gente pu velocemente perdere la fiducia e abbandonare il tentativo Il corollario a ci cos la questione dell apparenza Ai programmatore spesso non piace pensare a ci Il loro amore per la sostanza pi che per la forma quasi un punto di vanto professionale Non un caso che cos tanti programmatori mostrino una antipatia per il lavoro di marketing e di pubbliche relazioni 11 Partenza n che i creatori di grafica professionale siano inorriditi di fronte a quello che i programmatori fanno pensare per conto proprio Questo un peccato perch ci sono situazioni in cui la forma sostanza e la presentazione una di quelle Per esempio la pr
483. sogno perch anche essi sono visti da chiunque Quindi abbiate un mailing list separata per ricevere i rapporti dei bug nella sicurezza Questa mailing list non deve avere archivi leggibili pubblicamente e i loro iscritti devono essere strettamente controllati solo sviluppatori di lungo periodo fidati possono stare sulla mailing list Se avete bisogno di una definizione formale di fidati dovete usare chiunque abbia avuto l accesso all invio da due anni o pi o qualcosa di simile per evitare favoritismi Questo il gruppo che deve gestire i bug nella sicurezza Idealmente la mailing list sulla sicurezza non dovrebbe essere protetta da spam o moderata perch non potete volere che un importante report sia filtrato o ritardato giusto perch avvenuto che nessun moderatore fosse online quel weekend Se usate programmi di protezione da spm automatici cercate di configurarli con settaggi di alta tolleranza meglio consentire pochi spam che perdere un report Affinch la mailing list sia efficiente dovete pubblicizzare il suo indirizzo certo ma dato che non sar moderata o al massimo leggermente protetta da spam non cercate mai di postare il suo indirizzo senza una qualche sorta di trasformazione di nascondimento come descritto in sezione chiamata Nascondere gli indirizzi presenti negli archivi in Capitolo 3 L Infrastruttura Tecnica Fortunatamente per nascondere dell indirizzo non c bisogno che l indirizzo sia
484. sorzio proviene dai salari dei sysadmins e lo spazio per gli uffici e la banda per il network sono donati sebbene in modo inconsapevole dalle organizzazioni per le quali essi lavorano Queste organizzazione traggono beneficio dall investimento ovviamente anche non ne sono al corrente inizialmente La differenza oggi che molti di questi sforzi stanno venendo formalizzati Le compagnie sono divenute consapevoli dei benefici del software open source e hanno incominciato a coinvolgersi di prima persona nello sviluppo Anche gli sviluppatori hanno incominciato ad aspettarsi che i progetti veramente importanti attrarranno almeno donazioni e possibilmente anche sponsors a lungo termine Mentre la presenza dei soldi non ha cambiato le dinamiche base dello sviluppo di software libero ha largamente cambiato la scala in cui ci avviene sia in termini di numero degli sviluppatori che in termini di tempo per sviluppatore Ci ha anche avuto effetto su quanti progetti sono organizzati e su come le parti coinvolte interagiscono I problemi non sono solamente quanti soldi si spendono o come viene valutato il ritorno dell investimento Essi riguardano anche l amministrazione e il processo come possono la struttura gerarchica di comando delle compagnie e le semi decentralizzate comunit di volontari dei progetti di software libero lavorare produttivamente insieme Saranno sempre d accordo su ci che significa produttivamente Il sostegno finanzia
485. sperienza sull open source sia come utente che come sviluppatore non necessaria Coloro che hanno invece lavorato in progetti relativi al software libero troveranno probabilmente alcune parti del libro un tantino noiose e scontate e potranno decidere di saltarle senza alcun problema per la comprensione dei concetti seguenti Proprio a tal proposito ho posto particolare attenzione nell attribuzione dei titoli alle sezioni in maniera chiara indicando quando qualcosa pu essere saltata da chi ha gi dimestichezza con l argomento trattato Fonti e riferimenti Buona parte del materiale grezzo che ha dato vita a questo libro proviene da cinque anni di lavoro al progetto Subversion http subversion tigris org Subversion un sistema open source per il versionamento di un insieme di cartelle e documenti scritto da zero al fine di sostituire CVS come standard de facto tra i prodotti della categoria nella comunit degli sviluppatori open source Il progetto fu avviato dal mio datore di lavoro CollabNet http www collab net all inizio del 2000 Grazie al cielo CollabNet cap sin dall inizio come portarlo avanti in maniera veramente collaborativa come l unione di tanti contributi distribuiti Si presentarono molti volontari sin da subito oggi siamo arrivati a circa 50 sviluppatori attivi sul progetto dei quali solo una minoranza sono impiegati di CollabNet Subversion per molti versi un classico esempio di un progetto open source
486. spesso scrive programmi che leggono le email di commit e processano 1 risultati per esempio per mostrarli su una pagina web Questi programmi sono fatti per gestire email di commit formattate in maniera consistente non email scritte senza formattazione da umani Notate che questo consiglio di impostare il Reply to non contraddice le raccomandazioni fatte in sezione chiamata Il grande dibattito sul Rispondi A precedentemente in questo capitolo Va sempre bene per il mittente di un messaggio impostare il Reply to In questo caso il mittente il sistema stesso di controllo di versione e imposta il Reply to per indicare che il posto adeguato per rispondere la mailing list di sviluppo e non quella di commit CIA un altro meccanismo di pubblicazione delle modifiche Le email di commit non sono il solo modo di propagare le notizie di modifica Recentemente stato sviluppato un altro meccanismo chiamato CIA http cia navi cx CIA un aggregatore e distributore di statistiche di commit in tempo reale L uso pi diffuso di CIA l invio di notifiche di commit ai canali IRC cos che la gente loggata in questi canali vede succedere i commit in tempo reale Anche se una utility in qualche modo meno tecnica delle email di commit dato che gli osservatori possono o meno essere li quando una notifica compare in IRC questa tecnica una grandissima social utility La gente ha la sensazione di essere parte di qualcosa di vivo e attivo e sen
487. sposte a domande specifiche 3 Essi si aspettano dei motori di ricerca come Google per conoscere il contenuto delle FAQ cos le ricerche possono dar luogo a nuove voci nelle FAQ 4 Essi vogliono essere in grado condurre altre persone direttamente a specifiche voci nelle FAQ 103 Comunicazione 5 Essi vogliono essere capaci di aggiungere materiale nuovo alle FAQ ma notate che questo avviene molto meno spesso di quanto siano cercate le risposte Le FAQ sono molto spesso pi lette che scritte Il punto 1 implica che le FAQ dovrebbero essere disponibili in una sorta di formato testuale I punti 2 e 3 implicano che le FAQ dovrebbero essere disponibili in una pagina Html con il punto 2 che indica addizionalmente che l Html dovrebbe essere creato per la leggibilit cio vorrete qualche controllo sul loro aspetto e percezione e dovrebbero avere una tavola dei contenuti Il punto 4 significa che ad ogni nuova voce delle FAQ dovrebbe essere assegnata una ancora con nome un tag che permette alla gente di raggiungere una particolare locazione nella pagina Il punto 5 significa che i file sorgenti delle FAQ dovrebbero essere disponibili in un modo adatto vedere sezione chiamata Tenere tutto sotto controllo di versione in Capitolo 3 L Infrastruttura Tecnica in un formato che sia facile da editare Ancore con nome e attributi ID Ci sono due modi per ottenere che il browser salti ad un determinata locazione le ancore con no
488. sso giusto che le cose diventino pi difficili dopo di essi se fuori discussione che lo siano ma sarebbe un disonore nei confronti degli utilizzatori o degli sviluppatori se la prima interazione col software richiedesse passi imprevisti Pacchetti Binari Sebbene la release formale sia un pacchetto di codice sorgente la maggior parte degli utilizzatori installeranno da pacchetti binari sia che siano forniti dal meccanismo di distribuzione del software del sistema operativo sia che siano ottenuti manualmente dal sito del progetto o da terze parti Qui binario non significa necessariamente compilato significa giusto una forma pre configurata del pacchetto che permette a un utilizzatore di installarla sul proprio computer senza passare attraverso le solite procedure di allestimento e installazione Su RedHat GNU Linux il sistema RPM su Debian GNU Linux il sistema APT deb su Windows di solito i files MSI il file autoistallante exe Se il file binario sia assemblato da gente strettamente associate al progetto o da distanti terze parti gli utilizzatori tendono a considerarli equivalenti alle releases ufficiali del progetto e depositeranno 1 problemi nel tracciatore di bug apposito per il comportamento dei pacchetti binari Quindi 130 Confezione Rilascio e Sviluppo Quotidiano nell interesse del progetto fornire pacchetti con chiare linee guida e lavorare moltissimo con esse per assicurarsi che
489. st per facilitare lo sviluppo di un sistema di controllo di versione non una sessione di terapia di gruppo P Pz che prova a guadare attraverso tre giorni di email svn che ha lasciato accu Anche se potrebbe non sembrare cos a prima vista il comportamento di J Random era un classico esempio di abuso delle procedure di progetto Non stava facendo nulla di ovvio come provare a sabotare un voto ma stava abusando della politica della mailing list di affidarsi sulla auto moderazione dei suoi membri Abbiamo lasciato al giudizio di ogni individuo quando scrivere messaggi e su quali argomenti Quindi non avevamo procedure di ricorso per gestire qualcuno che o non aveva o non usava tale giudizio Non c era alcuna regola a cui riferirsi e dire che il tizio la stava violando eppur tutti sapevano che il suo frequente scrivere messaggi stava diventando un problema serio La strategia di Fitz era in retrospettiva da maestro Ha trovato un esempio dannatamente fondato ma poi l ha distribuito discretamente mandandolo prima alle poche person il cui supporto sarebbe stato la chiave per ogni azione drastica Si sono trovati d accordo che qualche tipo di azione era necessaria 100 Comunicazione e alla fine abbiamo chiamato J Random al telefono descritto il problema a lui direttamente e gli abbiamo chiesto semplicemente di smetterla di scrivere messaggi Lui non ha mai veramente capito il perch se fosse stato in grado di capire pro
490. stesso sezione chiamata Distinguere chiaramente fra richiesta e assegnazione in Capitolo 8 Gestire i Volontari esamina il processo di assegnamento in maggior dettaglio La priorit del problema pu anche essere impostata a questo punto Per esempio se cos grave che potrebbe ritardare il prossimo rilascio questo fatto ha bisogno di essere identificato presto e il tracker deve avere qualche modo di notarlo 5 Viene pianificata la soluzione del problema Pianificare non significa necessariamente menzionare una data entro cui sar risolto A volte significa solo decidere in quale futuro rilascio non necessariamente il prossimo il bug deve essere risolto o decidere che non ha bisogno di bloccare nessuna release particolare Ci si pu risparmiare la pianificazione se il bug veloce da riparare 6 Il bug viene riparato o il task completato o la patch applicata o qualsiasi altra cosa La modifica o l insieme di modifiche che l hanno riparato devono essere registrate in un commento nel problema dopo di che il problema chiuso closed e o marcato come risolto resolved Ci sono alcune comuni variazioni a questo ciclo di vita A volte un problema chiuso molto presto dopo essere stato scoperto perch viene fuori che non per niente un bug ma piuttosto un equivoco dalla parte dell utente Quando un progetto acquista pi utenti falsi problemi arriveranno sempre in maggior numero e gli sviluppatori li chiuderanno con tempi di ris
491. sti pacchetti binari sono tuttavia derivati da una distribuzione principale del sorgente L importanza del pacchetto sorgente sta nel definire senza ambiguit la release Quando 126 Confezione Rilascio e Sviluppo Quotidiano il progetto distribuisce la quello che vuol dire specificatamente I tre files del codice sorgente che quando compilati se necessario e installati producono la Scanley 2 5 0 C uno standard ragionevolmente rigido su come devono presentarsi le release sorgenti Si potrebbero vedere occasionalmente delle deviazioni da questo standard me sono l eccezione non la regola A meno che non ci sia una convincente ragione per fare diversamente anche il vostro progetto dovrebbe seguire questo standard Il Formato Il codice sorgente dovrebbe essere inviato in formati standard per trasportare alberi di directory Per i sistemi operativi Unix e pseudo Unix la convenzione usare il formato TAR compresso da compress gzip bzip o bzip2 che sembra fare la compressione anche bene in modo che non c bisogno di comprimere l archivio dopo averlo creato TAR Files TAR stands for Archivio per nastro perch il formato TAR rappresenta l albero di directory come un flusso di dati lineari che lo rende ideale per salvare l albero di directory su nastro La stessa propriet lo rende anche lo standard per distribuire gli alberi di directory come un singolo file Produrre files tar o tarballs molto fa
492. struttori dovettero incominciare a rafforzare i diritti d autore sul loro codice in maniera pi rigorosa Se gli utilizzatori avessero continuato a scambiarsi il codice e a condividene i cambiamenti liberamente essi avrebbero potuto reimplementare alcuni dei miglioramenti ora venduti come valore aggiunto dal fornitore Peggio il codice condiviso avrebbe potuto finire nella mani dei concorrenti L ironia che questo stava succedendo nel tempo che Internet stava emergendo Proprio quando il software veramente non impedito stava finalmente diventando tecnicamente possibile i cambiamenti nell affare dei computers lo rendeva indesiderabile almeno dal punto di vista di ogni singola compagnia I fornitori misero un freno sia negando l accesso agli utilizzatori al codice che girava sulle proprie macchine sia insistendo su un accordo di non apertura che rende il codice condivisibile Deliberata resistenza Mentre il mondo del codice libero perdeva colore lentamente una reazione prendeva forma nella mente di almeno un programmatore Richard Stallman aveva lavorato nell Artificial Intelligence Lab al Massachusetts Institute of Technology negli anni 70 e nei primi anni 80 periodo che si rivel essere un periodo d oro e il luogo un luogo d oro per la condivisione del codice L Artificial Intelligence Lab aveva una forte etica hacker e la gente non solo era incoraggiata ma voleva fortemente condividere ogni miglioramento avesse apportato al sistema
493. sul template configure in Per fare un cambiamento al configure bisognerebbe cambiare il configure in e poi rigenerare quindi solo il template configure in un file editabile Mettete sotto controllo di versione solo i template se lo fate anche con i file generati la gente si dimenticher inevitabilmente di rigenerare quando fanno il commit di una modifica al template e le inconsistenze risultanti causeranno confusione a non finire La regola che tutti i dati editabili vadano tenuti sotto controllo di versione ha una sfortunata eccezione il tracciatore dei bug I database di bug contengono una gran quantit di dati editabili ma per ragioni tecniche generalmente non possono memorizzare questi dati nel sistema di controllo principale Comunque alcuni tracciatori hanno funzionalit di versionamento primitive indipendenti dal repository principale del progetto Navigabilit Il repository del progetto dovrebbe essere navigabile sul web Questo non significa solo la possibilit di vedere le ultime revisioni dei file del progetto ma di andare indietro nel tempo e vedere le versioni precedenti vedere le differenze tra le revisioni leggere i messaggi di log per le modifiche selezionate eccetera gt Per una differente opinione sulla questione dei file configure vedete il post di Alexey Makhotkin configure in and version control qui http versioncontrolblog com 2007 01 08 configurein and version control 46 L Infrastruttur
494. sulli archiviati Ancora li prendiamo certo noi li prenderemo sempre ma la velocit diminuita considerevolmente anche se il numero degli utilizzatori cresce La conclusione non solo che il database contiene meno spazzatura ma che quelli che rispondono alla archiviazione dei problemi rimangono di umore migliore e sono pi propensi a restare amichevoli quando rispondono ad una archiviazione di una delle adesso rare archiviazioni fasulle Questo migliora sia l immagine del progetto sia la salute mentale dei suoi volontari La lezione per noi fu che scrivere solamente le linee guida non era abbastanza Noi dovevamo metterle dove sarebbero state viste da coloro che pi di tutti avevano bisogno di esse e formattarle in modo tale che il loro stato come materiale di introduzione sarebbe stato immediatamente chiaro alle persone non familiari col progetto Le pagine statiche non sono il solo luogo per far pubblicit ai clienti del progetto E anche richiesta una certa quantit di politica interattiva nel senso di ricordare amichevolmente non nel senso di ammanettare e mettere in prigione Tutta la revisione paritaria anche le revisioni degli invii descritte in sezione chiamata Praticare una Visibile Revisione del Codice in Capitolo 2 Partenza dovrebbe includere la revisione della conformit o non conformit della gente alle norme del progetto specialmente riguardo alle convenzioni delle comunicazioni Un altro esempio dal pro
495. sviluppo quelli che hanno fatto i tests e tutti quelli che hanno dedicato tempo ad archiviare buoni report di bugs Non distinguerteli per nome comunque a meno che non ci sia qualcuno responsabile di una grossa parte del lavoro il valore del quale sia riconosciuto da ognuno nel progetto Giusto stiate attenti a non scivolar gi con la tendenza scivolosa all inflazione dei riconoscimenti vedere sezione chiamata Riconoscimenti in Capitolo 8 Gestire i Volontari Avere in Manutenzione pi di Una Linea di Release La maggior parte dei progetti maturi fanno la manutenzione a pi di una linea di release in parallelo Per esempio dopo che vien fuori la 1 0 0 quella linea dovrebbe continuare con le micro releases di correzione bugs 1 0 1 1 0 2 ecc Notare che il solo rilascio della 1 1 0 non una ragione sufficiente per terminare la linea 1 0 x Per esempio alcuni utilizzatori hanno l abitudine di non aggiornare mai alla prima release in una serie minore o maggiore lasciano gli altri a rimuovere i bugs per esempio dalla 1 1 0 e aspettano fino alla 1 1 1 Ci non necessariamente egoista ricordate che essi stanno rinunciando alle correzioni di bugs e anche a nuove funzionalit solo che per una qualsiasi ragione hanno deciso di essere molto prudenti con gli aggiornamenti Di conseguenza se il progetto viene a conoscenza di un bug importante nella 1 0 3 giusto prima che stia rilasciando la 1 0 3 dovrebbe essere un p rigido ne
496. t non necessario che la persona che prima lo stava facendo smetta di farlo purch non saboti deliberatamente o per altro lo fatica del nuovo volontario Il che porta a un pensiero tentatore Invece di chiedere alla persona di dimettersi perch non incorniciarlo nel dargli qualche aiuto Perch non avere due manager di problemi o qualunque sia il ruolo Sebbene ci sembri simpatico in teoria non generalmente una buona idea Ci che fa s che il ruolo di manager funzioni ci che lo rende utile nei fatti la sua centralizzazione Quelle cose che possono essere fatte in uno stile decentralizzato sono gi fatte in quel modo L avere due persone a ricoprire un ruolo manageriale introduce un sovraccarico di comunicazioni fra queste due persone come altrettanto la possibilit di uno scivoloso spostamento delle responsabilit Io pensavo che avresti portato il kit di primo aiuto To no io pensavo che tu tu averesti portato il kit di primo aiuto Certo ci sono eccezioni A volte due persone lavorano estremamente bene insieme o la natura del ruolo tale che pu essere allargato a pi persone Ma questi probabilmente non possono essere di molto aiuto quando voi vedete qualcuno che si dimena in un ruolo per cui non portato Se egli in primo luogo si fosse 155 Gestire i Volontari reso conto del problema avremmo cercato tale aiuto prima di adesso In ogni caso sarebbe stato irrispettoso permettere ch
497. ta Un qualificatore Alpha o Beta significa che quella release precedeuna futura release che avr lo stesso numero senza il qualificatore Cos 2 3 0 Alpha porta alla fine a 2 3 0 Per far entrare queste release candidate in una riga gli stessi qualificatori posso avere dei meta qualificatori Per esempio qui c una serie di releases che sarebbero rese disponibili al pubblico Scanley 2 3 0 Alpha 1 Scanley 2 3 0 Alpha 2 Scanley 2 3 0 Beta 1 Scanley 2 3 0 Beta 2 Scanley 2 3 0 Beta 3 Scanley 2 3 0 Notate che quando essa ha il qualificatore Alpha Scanley 2 3 si scrive 2 3 0 I due numeri sono equivalenti tutti i componenti 0 seguenti possono sempre essere eliminati per brevit ma quando un qualificatore presente la brevit smette di esistere comunque come pure uno potrebbe scegliere la completezza invece Altri qualificatori semi regolari usano includere Stabile Instabile Sviluppo e RC per Release Candidate Le pi largamente usate sono comunque Alpha e Beta con RC che concorre da vicino per il terzo posto ma notate che RC include sempre un meta qualificatore numerico Cio non rilasciate Scanley 2 3 0 RC voi rilasciate Scanley 2 3 0 RC 1 seguita dalla RC2 etc Queste tre etichette Alpha Beta e RC sono piuttosto largamente conosciute ora e raccomando di non usare le altre anche se a prima vista sembrano scelte migliori perch
498. ta di qualcuno stupida e il chiamare la persona stessa stupida Infatti spesso difficile dire dove si lascia il dibattito e incomincia l attacco al carattere che una ragione per cui reazioni drastiche o punizioni non sono una buona idea Invece quando pensate di vedere che questo sta succedendo inserite un post che metta l accento sull importanza di mantenere la discussione amichevole senza accusare nessuno di essere deliberatamente velenoso Tali posts di Politica Simpatica hanno una sfortunata tendenza a suonare come una ramanzina a una classe di bambini sul buon comportamento Prima prego limitiamoci ai potenziali commenti sulla persona per esempio il definire il progetto di J sul livello di sicurezza ingenuo e ignorante dei principi base della sicurezza del computer Ci pu essere vero o no ma in ogni caso non un modo con il quale si ha la discussione J ha fatto la sua proposta in buona fede Se questa ha delle manchevolezze facciamole notare e noi le correggeremo o troveremo un altro abbozzo Io sono sicuro che M non volesse insultare personalmente J ma il modo di parlare non ha avuto fortuna e cerchiamo di mantenere le cose costruttive qui da noi Ora sulla proposta Penso che M avesse ragione quando diceva Per quanto artificiose suonino queste reazioni esse hanno un notevole effetto Se voi costantemente gridate i cattivi comportamenti ma non chiedete le scuse o una ammissione da parte di chi offende
499. ta dopo pochi giorni chiedete ancora o postate dicendo che non avete ricevuto nessuna risposta e siete alla ricerca di qualcun altro che lo faccia O fatelo proprio voi stessi ma tuttavia assicuratevi di dire che non avete avuto risposta alla vostra richiesta 140 Gestire i Volontari Lo scopo del rendere noto il ritardo nella risposta non quello di mortificare la persona e la vostra osservazione dovrebbe essere messa nella forma tale da non avere quell effetto Lo scopo semplicemente quello di far sapere che voi tenete traccia di quello che avete chiesto e che rendete note le reazioni che ricevete Questo fa si che le persone pi probabilmente dicano si la prossima volta perch essi osserveranno anche se solo inconsciamente che voi state probabilmente rendendo noto ogni lavoro che fanno dato che avete reso noto il molto meno visibile evento che qualcuno ha mancato di rispondere Rendete noto ci a cui la gente interessata Un altra cosa che rende felice la gente il fatto che vengano resi noti i loro interessi in generale pi renderete noti e ricorderete gli aspetti della personalit di qualcuno pi egli si sentir a suo agio pi vorr lavorare con un gruppo di cui voi fate parte Per esempio c era una accentuata differenza nel progetto Subversion fra quelli che volevano raggiungere una release definitiva 1 0 cosa che alla fine fecero e chi voleva principalmente aggiungervi nuove funzionalit su
500. tare mai una decisione individuale come scritta nella pietra Nei commenti associati all assegnamento di un problema a una specifica futura release provocate una discussione e siate genuinamente desiderosi di essere persuasi ogni volta che possibile Non esercitate mai il controllo con lo scopo di esercitare solamente il controllo pi a fondo gli altri parteciperanno Per un approccio alternativo potreste voler leggere la tesi di Martin Michlmayr s Ph D Quality Il Miglioramento Della Qualit Nei Progetti Volontari di Software Open Source Esplorazione dell Impatto della Gestione Delle Releases http www cyrius com publications michlmayr phd html Si tratta dell uso dei processi di rilascio basati sul tempo in opposizione a quelli basati sulle funzionalit Michlmayr fece anche un discorso presso Google sull argomento disponibile su Google video a http video google com videoplay docid 5503858974016723264 136 Confezione Rilascio e Sviluppo Quotidiano al processo di pianificazione delle releases vedere sezione chiamata Suddividete i Compiti di Management e i Compiti Tecnici in Capitolo 8 Gestire i Volontari pi facile sar il persuaderli a condividere le vostre priorit sui problemi che contano veramente per voi L altro modo in cui il progetto pu smorzare le tensioni sulla pianificazione delle release fare releases molto spesso Quando c molto tempo fra le releases l importanza di ogni singola releases
501. tativa e ricerca di norme sociali Ed e proprio cos che la gente fatta In un gruppo unificato dall impegno comune la gente che si unisce istintivamente ricerca comportamenti che li segnaler come parte del gruppo L obiettivo di stabilire diritti comuni prima quello di fare in modo che questi comportamenti in gruppo siano gli unici utili al progetto Una volta stabiliti essi si auto perpetueranno in gran parte Seguono alcuni esempi di cose specifiche che voi potete fare per stabilire buoni diritti comuni Essi non sono interpretati come un elenco esaustivo giusto come illustrazioni dell idea che stabilire un modo collaborativo in principio favorisce un progetto moltissimo Fisicamente ogni sviluppatore pu essere al lavoro da solo in una stanza ma voi potete fare molto perch egli si senta come se stesse lavorando insieme agli altri in una sola stanza Pi essi avvertiranno ci pi vorranno spendere tempo per il progetto Scelgo questi particolari esempi perch essi si presentarono nel progetto di Subversion http subversion tigris org al quale io partecipai e osservai in esso all inizio Ma essi non sono singolari della Subversion situazioni come queste si presentano in molti progetti open source e dovrebbero essere viste come opportunit per iniziare a fare le cose col piede giusto Evitare discussioni private Anche dopo che avrete reso pubblico il progetto voi e gli altri fondatori vi troverete spesso desiderosi di s
502. te ho tredici anni e vivo con i miei genitori Dato che il ragazzino non scriveva come un tredicenne nessuno sapeva che lo fosse In seguito ci sono alcuni modi per far fare una buona impressione anche alla vostra scrittura Struttura e Formattazione Non cadete nella trappola di scrivere tutto come se fosse un messaggio di testo per il telefono cellulare Scrivete frasi complete mettendo la maiuscola alla prima parola di ogni frase e usate interruzione di paragrafo dove necessario Ci fondamentale nelle email e in altri scritti strutturati In IRC o forum similarmente effimeri va generalmente bene lasciare perdere le maiuscole usare abbreviazioni di espressioni comuni eccetera Soltanto non portate queste abitudini in forum pi formali persistenti Email documentazione segnalazioni di bug e altre forme di scrittura pensate per persistere dovrebbero essere scritte usando la grammatica e la sintassi standard e avere una struttura narrativa coerente Questo non perch c qualcosa di interiormente buono nel seguire regole arbitrarie ma piuttosto queste regole non sono arbitrarie sono evolute nella forme attuali perch rendono il testo pi leggibile e dovreste seguirle per questa ragione La leggibilit desiderabile non solo perch significa che pi persone capiranno cosa scrivete ma perch vi fa apparire come il tipo di persona che usa del tempo per comunicare chiaramente cio qualcuno a cui valga la pena dare attenzion
503. te abbia cercato di essere di aiuto ma che il problema ha continuato ad esistere senza miglioramento Vi dovreste aspettare di metterci molto tempo a scrivere questa email ma con questo tipo di messaggio se non tornate indietro su ci che state dicendo non dovreste dirlo punto e basta Dite che vorreste trovare un nuovo volontario per ricoprire il ruolo ma puntualizzare che ci sono molti altri modi per collaborare col progetto A questo punto non dite che avete parlato cogli altri di questo nessuno vuole che si dica che la gente sta cospirando a sua insaputa Ci sono pochi modi differenti in cui le cose possano andare dopo questo La pi probabile reazione che egli sia d accordo con voi o in ogni caso non voglia discutere e voglia dimettersi In tal caso suggerite che faccia l annuncio lui stesso e poi voi potete dar seguito con un post di ricerca di un sostituto Oppure egli pu essere d accordo che ci sono stati dei problemi ma chiede ancora un po di tempo o un altra chance nel caso di compito non continuativi in ruoli tipo manager di release Come reagire alla cosa una chiamata in giudizio ma comunque facciate non siate d accordo su questo solo perch vi sentite come se non potete rifiutare una tale ragionevole richiesta Ci prolungherebbe l agonia non la diminuirebbe C spesso una ragione molto buona per rifiutare la richiesta vale a dire che c stata una abbondanza di chance e che cos che le cose sono arrivate
504. te che possono vedere fare il progresso proprio di fronte ai loro occhi Il modo in cui funziona l invocazione di CIA dal vostro hook di post commit Il notificatore formatta le informazioni di commit in un messaggio XML e invia ad un server centrale tipicamente cia navi cx Questo server quindi distribuisce le informazioni di commit agli altri forum CIA pu anche essere configurato per mandare feed RSS http www xml com pub a 2002 12 18 dive into xml html Vedete la documentazione qui http cia navi cx per dettagli Per vedere un esempio di CIA in azione impostate il vostro client IRC a irc freenode net canale commits Use branch per evitare colli di bottiglia Gli utenti non esperti del controllo di versione sono a volte un po spaventati da branch e merge Questo probabilmente uno degli effetti secondari della popolarit di CVS la sua interfaccia per branch e 48 L Infrastruttura Tecnica merge in qualche modo controintuitiva cos molta gente ha imparato ad evitare totalmente queste operazioni Se siete tra queste persone decidetevi ora a sconfiggere ogni paura che possiate avere e prendetevi tempo per imparare come fare branch e merge Non sono operazioni difficili una volta che vi siete abituati e diventano sempre pi importanti man mano che il progetto acquista pi sviluppatori I branch sono preziosi perch fanno diventare una risorsa scarsa una stanza di lavoro nel codice del progetto
505. te da giocare ad orecchio ma seguendo questi principi accrescerete la probabilit che le cose vadano per il verso che volete Pagate Per il Lungo Termine Se state dirigendo programmatori in un progetto open source teneteli abbastanza affinch essi acquisiscano esperienza tecnica e politica un paio di anni come minimo Certamente nessuno progetto n open n closed source trae beneficio dall uscita e dall ingresso troppo frequente Il bisogno di un nuovo arrivato di imparare le cordate dovrebbe essere un deterrente in ogni ambiente Ma la penalizzazione anche pi forte nei progetti open source perch i programmatori che escono portano con s non solo la loro conoscenza del codice ma anche il loro status nella comunit e le relazioni umane che hanno stabilito l 73 I Soldi La credibilit che uno sviluppatore ha accumulato non pu essere trasferita Per fare il pi ovvio esempio uno sviluppatore che arriva non pu ereditare l accesso all invio da uno che se ne va vedere sezione chiamata Il Danaro Non Pu Comprare Ci Che Amate pi avanti in questo capitolo cos se il nuovo sviluppatore non ha gi l accesso all invio avr da inviare correzioni fin quando lo avr Ma l accesso all invio solo la pi misurabile manifestazione di perduta influenza Uno sviluppatore di lungo termine conosce anche tutti i vecchi argomenti che sono stati triti e ritriti nelle liste di discussione Un nuovo sviluppatore non a
506. te la pi largamente apprezzata licenza nel modo oggi Questo gi in se stesso un grosso vantaggio perch molti utilizzatori e collaboratori saranno gi familiari con essa e quindi non avranno a spendere un tempo extra per comprendere la vostra licenza Vedere sezione chiamata La GNU General Public License in Capitolo 9 Licenze Diritti d Autore e Brevetti per i dettagli Se gli utilizzatori interagiscono col vostro codice principalmente su un network cio se il software usualmente parte di un servizio su hosting allora considerate la possibilit di usare invece la GNU Affero GPL Vedere La GNU affero GPL Una Versione della GNU GPL per codice Lato Server in Capitolo 9 Licenze Diritti d Autore e Brevetti per maggiori dettagli Come Applicare Una Licenza Al Vostro Software Dopo aver scelto una licenza dovreste dichiararla nel pagina principale del progetto Non c bisogno che includiate il vero testo della licenza li date solo il nome della licenza e create un link che porti al testo intero della licenza in un altra pagina Questo dice al pubblico sotto quale licenza volete che il software sia rilasciato ma non sufficiente ai fini legali Per questo il software stesso deve contenere la licenza Il classico modo di fare ci quello di mettere la intera licenza in un file chiamato COPYING o LICENSE e poi mettere una piccola nota in testa ad ogni file sorgente indicante la data del copyright il proprietario e la
507. te preoccupati di essere presi in un ciclo di attesa attesa perch anche tutti gli altri stanno usando la stessa tattica non siatelo c praticamente sempre qualcuno l fuori che si sentir di saltare nel mucchio Una risposta dovrebbe essere motivata da un proposito definito Innanzitutto chiedetevi sapete cosa volete raggiungere E poi non sar raggiunto a meno che voi diciate qualcosa 93 supportati Comunicazione Due buone ragioni per aggiungere la vostra voce ad un thread sono a quando vedete un difetto in una proposta e sospettate di essere l unico a vederlo e b quando vedete che sta succedendo qualche equivoco tra altri e sapete che potete appianarlo con un messaggio chiarificatore Va solitamente bene fare un messaggio per ringraziare qualcuno per aver fatto qualcosa o per dire Anche io affinch un lettore possa capire facilmente che tale messaggio non ha bisogno di nessuna risposta o ulteriore azione e quindi lo sforzo mentale richiesto dal messaggio finisce nettamente quando il lettore arriva all ultima riga delle email Ma anche allora pensateci due volte prima di dire qualcosa sempre meglio lasciare la gente desiderare che voi postiate di pi invece che di meno Vedete la seconda met di Appendice C Perch dovrebbe importarmi di che colore sia la rastrelliera per ulteriori pensieri su come comportarsi su mailing list trafficate Thread Produttivi vs Thread Improduttivi Su una mailing list traffi
508. temi operativi ma nessuno dei due era software libero tu dovevi firmare un accordo di non rivelazione persino per prendere una copia dell eseguibile Ci significava che la prima cosa nell usare un computer era quella di non aiutare il tuo vicino Una comunit operativa era proibita La regola stabilita dai proprietari del software era Se tu condividi col vicino sei un pirata Se tu vuoi un cambiamento chiedi umilmente a noi Per qualche bizzarria nel carattere lui decise di resistere alla tendenza Invece di continuare a lavorare presso l ora decimato Lab o di prendere lavoro come scrittore di codice presso una delle nuove compagnie dove i risultati di questo lavoro sarebbero stati tenuti chiusi in una scatola si licenzi dal Lab e inizi il progetto GNU dando il via alla Free Software Foundation FSF Lo scopo del GNU 3 era quello di sviluppare un sistema operativo completamente libero e parte principale di software applicativo al quale a coloro che lo usavano non sarebbe stato impedito di accedere e di condividerne le modifiche Egli stava in sostanza rimettendo in piedi ci che era stato distrutto dall Artificial Intelligence Lab ma in una scala mondiale e senza quella vulnerabilit che aveva reso la cultura dell Artificial Intelligence Lab suscettibile di disintegrazione Oltre a lavorare al nuovo sistema operativo Stallman lasci in eredit una licenza di copyright i cui termini garantivano che il suo codice sarebbe stato libero
509. tesso fornire un posto dove la gente possa ricevere risposta alle sue domande dove gli altri osservano e presumibilmente assorbono conoscenze dall osservazione di questi scambi Queste mailing list funzionano molto bene fino a poche migliaia di utilizzatori e o fino a un paio di centinaia di post al giorno Ma circa dopo di ci il sistema incomincia a collassare perch ogni iscritto vede ogni post Se il numero dei post alla mailing list incomincia a superare quello che ogni singolo lettore pu elaborare in un giorno la mailing list diventa un carico per i suoi membri Immaginate per esempio che Microsoft abbia una tale mailing list per Windows XP Windows XP ha centinaia di milioni di utenti se anche un decimo dell 1 ha domande in un periodo di ventiquattrore allora questa ipotetica mailing list riceverebbe centinaia di migliaia di post al giorno Una tale mailing list non potrebbe mai esistere perch nessuno vorrebbe rimanere iscritto ad essa Questo problema non limitato alle mailing list la stessa logica si applica ai canali IRC ai forum di discussioni online indubbiamente ad ogni sistema in cui un gruppo ascolta domande dagli individui Le implicazione sono sinistre l usuale modello open source di supporto in parallelo di massa non si adegua ai livelli necessari per la dominazione del mondo Non ci sar nessuna esplosione quando il forum raggiunger il punto di rottura Ci sar solo un silenzioso effetto di reazione negat
510. tevi di puntualizzare che non state richiedendo una assegnazione di copyright In effetti molti CLA partono col ricordare a chi legge questo Questo solo un contratto di licenza non trasferisce la propriet del copyright e non cambia i vostri diritti di usare i vostri Contributi per ogni altro proposito Qui ci sono alcuni esempi User codice per riferirmi sia al codice che alla documentazione d ora in avanti 172 Licenze Diritti d Autore e Brevetti e CLA per collaboratori individuali e http apache org licenses icla txt e http code google com legal individual cla v1 0 html e CLA per collaboratori associati e http apache org licenses cla corporate txt e http code google com legal corporate cla v1 0 html Trasferimento del Copyright Trasferimento del copyright significa che il collaboratore d al progetto la propriet del copyright sul suo contributo Idealmente ci viene fatto su carta e anche mediante fax o con invio per posta normale al progetto Alcuni progetti insistono sulla piena assegnazione perch avendo una unica entit legale propria il copyright sull intero codice base pu essere utile se i termini della licenza open source hanno bisogno di essere fatti valere in una corte Se nessuna unica entit ha il diritto di farlo tutti i collaboratori potrebbero dover collaborare ma qualcuno potrebbe non aver tempo o essere rintracciabile quando nasca il problema Differenti organizzazioni
511. ti di vista su vecchie soluzioni quando cosa sta davvero succedendo che capisce che un consenso o uno scontro sta per formarsi e non gli piace dove il problema andato a finire Un altro esempio quando c un dibattito che non converger ad un consenso ma il gruppo cerca almeno di chiarificare i punti di disaccordo e produrre un riassunto per chiunque si aggiunga da quel momento in poi L ostruzionista che sa che il riassunto potrebbe portare ad un risultato che non gli piace spesso prover a ritardare il sommario complicando sempre di pi le domande di cosa dovrebbe esserci o obbiettando a consigli ragionevoli o introducendo nuovi e inaspettati punti 98 Comunicazione Gestire la Gente Difficile Per contrastare tale comportamento aiuta capire la mentalit di coloro che lo adottano Solitamente la gente non lo fa di proposito Nessuno si sveglia al mattino e dice a se stesso Oggi cinicamente manipoler i form procedurali per essere un irritante ostruzionista Piuttosto tali azioni sono spesso precedute da una sensazione semi paranoica di essere tagliato fuori dalle interazioni e decisioni del gruppo La persona sente che non sar presa in considerazione seriamente o nei casi pi gravi che c quasi una cospirazione contro di lui che gli altri membri del gruppo hanno deciso di formare un club esclusivo di cui lui non membro Questo allora giustifica nella sua mente il prendere le regole alla lettera e proc
512. tile patch in questo modo e ci sono anche altri dannosi effetti collaterali anche ci scoraggiante per l autore che ha impiegato lavoro per la patch e fa apparire il progetto nell insieme come se abbia perso i contatti specialmente agli altri che stanno prendendo in considerazione la scrittura di patch Il lavoro del manager di patch quello di assicurare che le patch non scivolino fra le crepe Ci si ottiene seguendo ogni patch attraverso una sorta di stato stabile Il manager di patch esamina ogni discussione della mailing list che consegua ad un post di patch Se essa finisce con un invio egli non fa niente Se essa va in un iterazione revisione correzione che termina con una versione finale della patch senza che ci sia l invio egli archivia un problema che punti alla versione finale e alla mailing lista che tratta di esso di modo che ci sia una registrazione permanente che gli sviluppatori possono seguire in seguito Se la patch si indirizza ad un problema esistente egli annota il problema con ricche informazioni invece di aprire un nuovo problema Quando una patch non riscuote per niente una reazione il manager di patch aspetta pochi giorni quindi d seguito alla cosa chiedendo se qualcuno sta per revisionarla Questo di solito riceve una reazione uno sviluppatore pu spiegare che non pensa che la patch debba essere applicata e ne d le ragioni 149 Gestire i Volontari o pu revisionarla nel qual caso
513. ting Le punte dei molti icebergs della controversia sono visibili in questo testo Esso si riferisce alle nostre convinzioni ma evita abilmente di parlare di cosa esattamente siano le nostre convinzioni Per qualcuno potrebbe essere la convinzione che il codice sviluppato in accordo con un processo aperto sar un codice migliore per altri potrebbe essere la convinzione che tutte le informazioni debbano essere condivise C l uso della parola furto per riferirsi presumibilmente alla copia illegale Uso su cui molti hanno da ridire sulla base del fatto che non furto se tuttavia il possessore ne ha la notizia dopo C il fatto che allettante lasciar credere che il movimento del software libero potrebbe erroneamente essere accusato di anti comercialismo ma si lascia non attentamente esaminata la questione se una tale accusa abbia di fatto una base Nessuna delle quali cose voleva dire che il sito dell OSI era incoerente o ingannevole Piuttosto era un esempio di quello che esattamente l OSI dichiarava essere stato perso dal movimento del software libero il buon marketing dove buon sta per attuabile ne mondo degli affari L Open Source Initiative diade a tanta gente esattamente quello di cui erano andati in cerca un vocabolario per parlare del software libero come metodologia di sviluppo del software e di strategia di affari non come una crociata morale La comparsa della Open Source Initiative cambi il p
514. ting Primo esse possono portare a guerre di ingiurie che distolgono da discussioni produttive Secondo e pi importante alcuni dei vostri sviluppatori volontari nel vostro progetto possono anche allontanarsi per lavorare al progetto concorrente Ci pi probabile di quando potrebbe sembrare in un primo momento i progetti sono gi nello stesso dominio che il motivo per cuoi sono in competizione e sviluppatori con esperienza in quel dominio possono dare contributi dovunque la loro esperienza applicabile Anche quando non c una diretta sovrapposizione di sviluppatori probabile che gli sviluppatori del vostro progetto abbiano familiarizzato con gli sviluppatori del progetto affine La loro capacit di mantenere rapporti costruttivi personali potrebbe essere intralciata da messaggi negativi di marketing Colpire prodotti closed source concorrenti sembra essere largamente accettato nel mondo open source specialmente quando questi prodotti sono creati dalla Microsoft Personalmente io deploro questa tendenza sebbene d altra parte non ci sia nulla di sbagliato nella chiara comparazione dei fatti non solo perch rozzo ma anche perch dannoso per un progetto partire credendo che ci sia una propria pubblicit e quindi ignorare i modi in cui la competizione pu essere veramente migliore In generale guardatevi dagli effetti che le leggi del marketing possono avere sulla vostra comunit di sviluppo La gente pu venire cos
515. tivo pi grande degli altri Essendo scrupolosi nell osservare le linee guida del progetto sin dalla partenza il finanziatore si fa grande quanto gli altri Vedere anche il blog di Denise Cooper a http blogs sun com roller page DaneseCooper 200409 16 per una storia simile sull accesso all invio Cooper era allora una Diva Open Source ricordo che era il suo titolo ufficiale e all entrata del blog lei racconta come la comunit di sviluppo di Tomcat spinse Sun a mantenere i propri sviluppatori allo stesso standard di accesso all invio degli sviluppatori non Sun Il bisogno che i fondatori stiano alle stesse regole di chiunque altro significa anche che il modello di amministrazione della Benevola Dittatura vedere sezione chiamata I Dittatori Benevoli in Capitolo 4 L Infrastruttura Sociale e Politica leggermente pi difficile da far cadere in presenza di un finanziamento specialmente se il dittatore lavora per il finanziatore principale Siccome una dittatura ha poche regole difficile per il finanziatore provare che essa sta venendo governata secondo gli standard della comunit anche quando lo E certamente non impossibile essa richiede appunto un leader del progetto che sia capace di vedere le cose dal punto di vista degli sviluppatori esterni allo stesso modo di quelli del finanziatore e agisca in accordo con essi Anche allora probabilmente una buona idea avere propositi non dittatoriali sedendo al vostro posto
516. to il file di origine sia modificato L unico modo di aggirare questo di mettere sotto controllo di versione anche i formati generati cos come appaiono sul sito web Ci possono anche essere conseguenze pi importanti Potreste non avere abbastanza controllo sulla presentazione quanto vorreste Alcuni siti di canned hosting vi permettono di personalizzare le vostre pagine web ma il layout di default del sito solitamente finisce per uscir fuori nei modi peggiori Per esempio alcuni progetti che ospitano se stessi su SourceForge hanno completamente personalizzato le pagine principali ma rimandano ancora gli sviluppatori alle loro pagine SourceForge per maggiori informazioni La pagina SourceForge cosa sarebbe la pagina principale del progetto se questo non avesse usato la pagina personalizzata La pagina SourceForge ha link al bug tracker al repository CVS download eccetera Sfortunatamente la pagina ourceForge contiene anche una grande quantit di rumore estraneo La cima un banner di pubblicit spesso un immagine animata Il lato sinistro un insieme verticale di link di scarsa rilevanza per qualcuno interessato al progetto Il lato destro spesso un altra pubblicit Solo il centro della pagina dedicato al vero materiale specifico del progetto e anche 59 L Infrastruttura Tecnica questo organizzato in un modo confusionario che spesso rende i visitatori insicuri su cosa cliccare dopo Dietro ogni aspetto del
517. to o no in programmi proprietari scegliete la GNU General Public License http www fsf org licensing licenses gpl html La GPL probabilmente la licenza pi largamente usata nel mondo oggi Questo fatto di essere riconosciuta all istante di per se stesso uno dei pi importanti vantaggi della GPL Quando scrivete una libreria con l intendimento che sia usata come parte di altri programmi considerate attentamente se le restrizioni imposte dalla GPL siano in linea con gli obiettivi del vostro progetto In alcuni casi per esempio quando state cercando di sostituire una libreria proprietaria concorrente che fa le stesse cose pu essere molto pi strategico licenziare il vostro codice in modo che possa essere mescolato con programmi proprietari anche se invece non vorreste ci La Free Software Foundation ha anche foggiato una alternativa alla GPL in queste circostanze la GNU GPL per librerie pi avanti rinominata GNU GPL Minore la maggior parte della gente usa l acronimo LGPL in ogni caso La LGPL ha meno stringenti restrizioni della GPL e pu essere mescolata facilmente con codice non libero Comunque un po pi complessa e ha bisogno di qualche tempo per essere compresa cosicch se vi state orientando per usare la GPL vi consiglio di usare la licenza tipo MIT X 169 Licenze Diritti d Autore e Brevetti La GNU affero GPL Una Versione della GNU GPL per codice Lato Server Nel 2007 la Free Software Foundation r
518. tory Seguendo il principio che quando la gente quando ha un martello in mano si guarda attorno per cercare i chiodi molti progetti usano questa opzione senza remore prudentemente lasciando accesso alla gente solo alle aree in cui un loro commit approvato e cercando di essere sicuri che non facciano commit da nessun altra parte Vedi sezione chiamata Quelli Che Fanno gli Invii in Capitolo 8 Gestire i Volontari per come i progetti decidono chi pu fare commit dove E probabilmente un po doloroso esercitare un cos stretto controllo ma una potica pi rilassata va anche bene Alcuni progetti semplicemente usano un sistema d onore quando ad una persona viene riconosciuto l accesso per il commit anche per sotto aree del repository cosa questa veramente riceve una password che permette di fare commit ovunque nel progetto Gli solamente rischiesto di limitare i commit a quell area Ricordate che non c nessun rischio qui in un progetto attivo tutti i commit sono esaminati in ogni caso Se qualcuno fa un commit che non deve gli altri lo vedranno e diranno qualcosa Se una modifica deve essere disfatta abbastanza semplice tutto comunque sotto controllo di versione quindi basta invertire Ci sono diversi vantaggi nell approccio rilassato Primo dato che gli sviluppatori si allargono in altre aree cosa che solitamente succede se rimangono nel progetto non c nessuno sforzo amministrativo per garantire loro privilegi
519. tria delle schede video per esempio Molti costruttori di schede video sono riluttanti a rilasciare le specifiche di programmazione necessarie per produrre drivers open source ad alte prestazioni per le loro schede rendendo cos impossibile ai sistemi operativi liberi di supportare quelle schede al pieno delle loro potenzialit Perch i costruttori farebbero ci Non ha senso per loro lavorare contro il supporto al software dopotutto la compatibilit con pi sistemi operativi pu significare solo pi vendita di schede Ma vien fuori che dietro le porte della stanze di progettazione questi negozi stanno tutti violando i brevetti l uno degli altri a volte con cognizione di fatto e altre inconsapevolmente I brevetti sono cos imprevedibili e cos potenzialmente di larga portata che nessun costruttore di schede pu mai essere certo do essere al sicuro anche dopo avere fatto una ricerca del brevetto Cos i costruttori non osano pubblicare le specifiche delle loro interfacce perch ci renderebbe molto pi facile per i concorrenti capire se un brevetto stata violato Certamente la natura di questa situazione tale che non troverete una ammissione scritta da parte di una fonte primaria che ci sta avvenendo io lo ho appreso da una personale informazione Alcune licenze di software hanno delle clausole per combattere o almeno scoraggiare i brevetti di software La GNU GPL per esempio contiene questa espressione 3La Sun Micr
520. tta questa discussione scomparir Veramente il sofware di posta Mutt http www mutt org offre questa funzionalit Una soluzione persino migliore per l occultamento del Reply to sarebbe una preferenza dell iscritto Coloro che vogliono la mailing list con il Reply to nascosto potrebbero chiederlo e coloro che non lo vogliono potrebbero chiedere di lasciare il Reply to com Comunque non sono a conoscenza di nessun software di gestione di mailing list che offra questa opzione per l iscritto Per ora pare di essere fermi ad un impostazione di tipo globale 3 Archiviazione I dettagli tecnici della configurazione della mailing list sono specifici rispetto al software che in uso e sono fuori dall ambito di questo libro Al momento della scelta o della configurazione dell archiviatore considerate queste caratteristiche Aggiornamento veloce La gente a volte vuole far riferimento ad un messaggio in archivio inviato nell ultima ora o due Se possibile l archiviatore dovrebbe archiviare ogni messaggio istantaneamente cos che per il momento in cui il messaggio compare nella mailing list gi presente negli archivi Se questa opzione non disponibile cercate almeno di provare a fare in modo che l archiviatore si aggiorni all incirca ogni ora per default alcuni archiviatori compiono i loro processi di aggiornamento una volta ogni notte ma in pratica un tempo troppo grande per una mailing list attiva Stabilit dei riferi
521. ttivamente facile si crea un indirizzo di sottoscrizione che fa il forward delle mail su di voi e quando qualcuno ci scrive aggiungete o togliete gli indirizzi email in qualche file di testo che contiene tutti gli indirizzi della lista Cosa c di pi facile Il trucco sta nel fatto che una buona gestione di mailing list che cosa le persone sono arrivate ad aspettarsi non per niente facile Non solo questione di aggiungere o rimuovere utenti quando essi lo richiedono E anche moderare per prevenire lo spam offrire la mailing list come compendio piuttosto che messaggio per messaggio fornire una lista standard e informazioni sul progetto come le risposte automatiche e varie altre cose Un essere umano che controlla gli indirizzi di sottoscrizione pu fornire appena un minimo di funzionalit e neppure in modo affidabile e pronto come lo farebbe un software I moderni software di gestione di mailing list solitamente offrono almeno le seguenti funzionalit Iscrizione sia via email che da sito web Quando un utente si iscrive alla mailing list dovrebbe velocemente ricevere un messaggio automatico di benvenuto in risposta che spieghi cosa ha sottoscritto come interagire ulteriormente con il software di mailing list e soprattutto come disiscriversi Questa risposta automatica pu essere personalizzata in modo da contentere informazioni specifiche del progetto di sicuro come il sito web del progetto dove si trovano le FAQ ec
522. ttivi se fate una pubblica accusa da cui non potete tornare indietro Siate sicuri di avere molti esempi per dimostrare quello che state dicendo e ditelo il pi gentilmente possibile pur essendo diretti Magari non persuaderete la persona in questione ma va bene fino a quando persuadete tutti gli altri Caso di Studio Ricordo solo una situazione in pi di 10 anni di lavoro nel software libero dove le cose si fecero cos cattiva che dovemmo chiedere tutti insieme a qualcuno di smettere di scrivere Come spesso accade non era maleducato e sinceramente voleva solo essere d aiuto Solo non sapeva quando scrivere e quando non scrivere Le nostre mailing list sono aperte al pubblico e lui stava scrivendo cos spesso e 99 Comunicazione chiedendo domande su cos tanti argomenti diversi che stava diventando un problema di rumore per la comunit Avevamo gi provato a chiedergli gentilmente di fare un po pi di ricerca di risposte prima di scrivere ma non aveva avuto effetto La strategia che alla fine funzion un perfetto esempio di come costruire un caso robusto su dati neutrali e in quantit Uno dei nostri sviluppatori fece un po di scavi negli archivi e poi mand il seguente messaggio privatamente a pochi sviluppatori L imputato il terzo nome nella lista sotto mostrato qui come J Random aveva una storia molto breve nel progetto e non aveva contribuito codice n documentazione E comunque era il terzo pi att
523. tto pubblico Per fare questo o un dipartimento QA pu archiviare i problemi nel tracciatore di problemi pubblico se lo trova comodo o un intermediario usualmente uno degli sviluppatori pu trasportare i rapporti del dipartimento interno di testing in nuovi problemi nel tracciatore pubblico Trasporto significa semplicemente descrivere i bugs in un modo tale che non faccia riferimento all informazione specifica del cliente il sistema della ripetizione pu usare dati del cliente assumendo che egli lo approvi certamente E alquanto preferibile che il dipartimento QA archivi i problemi direttamente nel tracciatore pubblico Ci d al pubblico una stima del coinvolgimento nel progetto della vostra compagnia un utile riporto dei bugs conferisce alla vostra compagnia credibilit giusto come lo farebbe un contributo tecnico Ci anche d agli sviluppatori una linea di comunicazione col gruppo di testing Per esempio se il gruppo interno di QA sta monitorando il tracciatore pubblico di problemi uno sviluppatore pu inviare una 81 I Soldi correzione per un bug di scalabilit per il quale lo sviluppatore pu non avere le risorse per testarlo da se e quindi aggiungere una nota al problema chiedendo al QA di vedere se la correzione ha avuto l effetto desiderato Aspettatevi un po di resistenza da parte di qualche sviluppatore i programmatori hanno la tendenza a guardare al QA come nel migliore dei casi al diavolo Il
524. ttp en wikipedia org wiki SCO Linux_controversies per i dettagli Quando ci avvenisse il progetto non avr la documentazione che mostri che il collaboratore ha formalmente dato il diritto di usare il codice cosa che potrebbe rendere pi difficile una difesa legale Gli Accordi di Licenza per i Collaboratori I CLA probabilmente offrono il miglior compromesso fra sicurezza e convenienza Un CLA un modulo elettronico che il collaboratore compila e invia al progetto In molte giurisdizioni l invio di una email sufficiente Una firma digitale sicura pu o non pu essere richiesta consultate un legale per trovare quale metodo sarebbe migliore per il vostro progetto La maggior parte dei progetti usano due tipi di CLA leggermente differenti uno per collaboratori individuali e uno per collaboratori associati Ma in ambedue 1 tipi il linguaggio base lo stesso il collaboratore concede al progetto una licenza di copyright perpetua per tutto il mondo non esclusiva a costo zero senza l onere di pagare un compenso al titolare del copyright l irrevocabile licenza di copyright a riprodurre preparare lavori derivati mostrare pubblicamente eseguire pubblicamente creare una sotto licenza e distribuirne i Contributi come lavori derivati In pi potreste ottenere che un legale ratifichi ogni CLA ma se voi metteste tutti questi aggettivi in essi potreste probabilmente far bene Quando richiedete i CLA dai collaboratori assicura
525. ttraverso un dato software ma alle quali non serve venderne nemmeno una copia basta che il programma sia disponibile e aggiornato pi come strumento che come merce Ultimamente tuttavia questa domanda successiva non sempre stata legata al denaro Il modello di business dei programmi a codice aperto non pi cos misterioso ed un numero sempre maggiore di non addetti ai lavori gi comprende o per lo meno non rimane sconvolto che alcune persone vi lavorano a tempo pieno Invece la domanda che iniziano a pormi con maggior frequenza Interessante ma come funziona In principio non avevo una risposta soddisfacente a portata di mano e pi mi sforzavo di trovarne una pi mi rendevo conto quanto fosse difficile l argomento Dar vita ad un software libero non esattamente come dirigere un impresa immagina di dover costantemente negoziare la natura del tuo prodotto con un gruppo di volontari la maggior parte dei quali non li hai mai neppure visti in faccia Tantomeno si pu paragonare per varie ragioni ad organizzare e gestire un associazione senza fini di lucro di tipo tradizionale oppure governativa Ci sono similitudini con tutte ma alla fine sono lentamente giunto alla conclusione che il software libero una cosa sui generis I settori ai quali paragonarlo sono tanti ma nessuno di questi perfettamente uguale A dirla tutta persino l assunzione che il software libero pu essere diretto una specie di forz
526. u un sistema operativo completamente libero Per la prima volta si sarebbe potuto avviare un computer e lavorare senza alcuno dei software proprietari Molto software su questo sistema operativo non fu prodotto dal progetto GNU Infatti GNU non era nemmeno l unico gruppo che lavorava ad un sistema operativo libero per esempio il codice che alla fine divent NetBSD e FreeBSD era gi in sviluppo in questo periodo L importanza della Free Software Foundation stava non solo nel codice che essi scrivevano ma nella loro retorica politica Col parlare del software libero come un ideale anzich come una convenienza essi resero difficile per i programmatori non avere una consapevolezza di ci Persino quelli che si dissociarono dalla Free Software Foundation ebbero da affrontare il problema se prendere esclusivamente una posizione differente L efficacia della propaganda della Free Software Foundation poggi sull associare il suo codice a un messaggio per mezzo della GPL e di altri testi Il suo messaggio si diffuse alla stessa maniera in cui si diffuse il suo codice Imprevista resistenza C erano molte altre cose che stavano succedendo sulla scena del software libero e poche erano tanto esplicitamente ideologiche quanto il progetto GNU di Stallman Una delle pi importanti era la la Berkeley Software Distribution BSD una reimplementazione graduale del sistema operativo Unix che fino agli ultimi anni 70 era stato un vago progetto di ricerca all
527. uando la discussione Visto da fuori chiaro che nessuno schieramento sta cambiando le idee dell altro Visto da dentro l altro schieramento ottuso e non sta pensando in modo chiaro ma ci potrebbero arrivare se pressati abbastanza Ora non sto dicendo che non ci sia mai uno schieramento giusto in una guerra santa A volte c nelle guerre sante a cui ho partecipato sempre stato il mio ovviamente Ma non importa perch non c un algoritmo per dimostrare in modo convincente che uno schieramento o l altro abbia ragione 96 Comunicazione Un modo comune ma non soddisfacente con cui la gente prova a risolvere le guerre sante dire Abbiamo gi speso pi tempo ed energia discutendo ci di quanto ne valga la pena Possiamo per favore semplicemente lasciare stare Ci sono due problemi in questo Primo questo tempo e questa energia sono gi stati spesi e non potranno mai essere recuperati l unica domanda quanto altro sforzo rimane Se certa gente pensa che solo ancora un poco di discussione porter il problema alla fine allora ha ancora senso dal loro punto di vista continuare L altro problema nel chiedere di lasciare perdere il problema che questo spesso equivalente a permettere ad uno schieramento lo status quo di dichiarare la vittoria per mancanza di azioni E in alcuni casi lo status quo comunque noto per essere inaccettabile tutti sono d accordo che qualche decisione deve essere presa qualche azio
528. ubversion tigris org La mailing list di sviluppo di Apache httpd mol quindi il tuo messaggio di segnalazione di bug pu essere sovrastato Puoi a http httpd apache org bug_report html Se il bug nel tuo orticello per favore dagli un abbraccio e tienilo stret Come Segnalare un Bug Primo verificate che sia un bug Se Subversion non si comporta nel modo atteso g e negli archivi di mailing list per una prova che si debba comportare nel modo che di buon senso tipo Subversion ha appena distrutto i tuoi dati e fatto uscire del fidarti del tuo giudizio Ma se non sei sicuro vai avanti e chiedi agli utenti de users subversion tigris org o chiedi in IRC irc freenode net channel svn Una volta che hai stabilito che un bug la cosa pi importante che puoi fare tirare fuori una semplice descrizione e istruzioni di riproduzione Pe avevi trovato all inizio coinvolge cinque file su dieci commit cerca di farlo su un commit Pi facili le istruzioni di riproduzione pi facilmente uno sviluppato 189 Istruzioni di Esempio per Segnalare un Bug Quando scrivi le istruzioni di riproduzione non scrivere solo una descrizione in il bug Dai invece una trascrizione letterale dell esatta serie di comandi che hai dei file anche il loro contenuto se pensi che possa essere rilevante La cosa v la ricetta di riproduzione come uno script il che ci aiuta molto Veloce test di sanit
529. ue 49 Prevent client server handshake from happening twice Justification Avoids extra network turnaround small change and easy to review Note Ci fu discusso in http mailing lists message 7777 html e altrimessaggi in quel thread Voti 1 jsmith kimf 1 tmartin breaks compatibility with some pre 1 0 servers admittedly those servers are buggy but why be incompatible if we don t have to In questo caso il cambiamento ottenne due voti a favore ma ad esso fu messo il veto da tmartin che diede ragione del veto in una nota scritta fra parentesi Non ha importanza l esatto formato della annotazione qualunque cosa il vostro progetto corregga ben fatto forse la spiegazione di tmartin per il veto dovrebbe andare in Note la sezione o magari la descrizione del cambiamento dovrebbe comprendere una intestazione Descrizione per adattarsi alle altre sezioni La cosa importante che tutte le altre informazioni necessarie per valutare il cambiamento devono essere raggiungibili e che il meccanismo per dare il voto siano quanto pi leggero possibile Il cambiamento proposto individuato dal suo numero di revisione nel deposito in questo caso una singola revisione la r2401 sebbene un cambiamento proposto potrebbe appunto facilmente consistere in revisioni multiple Si conviene che la revisione si riferisca a un cambiamento fatto sul tronco se il cambiamento fosse gi nel ramo di release non ci sarebbe bisogn
530. uito a qualunque persona che ottenga una copia di questo software e i file associati di documentazione il Software per commerciare col Software senza restrizioni inclusi i diritti illimitati all uso alla copia alla modifica all unione alla alle sotto licenze e o a vendere copie del Software e a permettere a persone alle quali il Software fornito a fare lo stesso soggetto alle seguenti condizioni L avviso di copyright summenzionato e questo avviso di permesso devono ess in tutte le copie o porzioni del Software sottostante IL SOFTWARE E FORNITO COSI COM E SENZA GARANZIA DI ALCUN GENERE ESPRESSA O IMPLICITA INCLUDENDO ENZA ESSERE LIMITATO ALLE GARANZI DI POTER ESSERE VENDUTO L IDONEITA A UN PARTICOLARE FINE E LA NON VIOLAZIONE DEI DIRITTI ALTRUI IN NESSUN CASO GLI AUTORI O I DETENT RESPONSABILI PER QUALSIASI RECLAMO DANNO O ALTRA RESPONSABILITA EL CONTRATTO IN SITUAZIONE NON CONTEMPLATE NEL CONTRATTO O ALTRO CHE NA ERIMENTO AL SOFTWARE O ALL USO O AD ALTRE QUESTIONI RIGUARDANTI IL Gis T Cp Presa da http www opensource org licenses mit license php La GNU General Public License Se preferite che il codice del vostro progetto non sia usato in programmi proprietari o se almeno non vi interessa se venga usa
531. umono che siano segreti Once someone s access is revoked that fact is unavoidably public see sezione chiamata Evitare Misteri later in this chapter so try to be as tactful as you can in how it is presented to the outside world 157 Gestire i Volontari Accesso all Invio Parziale Alcuni progetti presentano gradazioni dell accesso all invio Per esempio ci possono essere collaboratori il cui accesso all invio d loro libere redini nella documentazione ma essi non possono fare gli invii per quanto riguarda il codice stesso Aree comuni di invio parziale sono la documentazione le traduzioni l adattare il codice ad altri linguaggi di programmazione i file di specificazione per i pacchetti per es i file di specificazione per RedHat RPM ed altre aree in cui un errore non d luogo a un problema per la base del progetto Poich l accesso all invio non solo accesso all invio ma significa anche far parte di un elettorato vedere sezione chiamata Chi Vota in Capitolo 4 L Infrastruttura Sociale e Politica nasce naturalmente la domanda su cosa possono votare quelli che hanno l invio parziale Qui non c una singola risposta giusta dipende da che tipo di dominio di invio parziale ha il vostro progetto In Subversion noi abbiamo mantenuto le cose abbastanza semplici uno che ha l accesso all invio parziale pu votare solo su questioni confinate al dominio di colui che fa gli invii e non su ogni altro dominio Important
532. un po pi resistente alla svalutazione Una importante caratteristica della cultura tecnica che la critica dettagliata spassionata spesso presa come una specie di lode come discusso in sezione chiamata Riconoscere la maleducazione in Capitolo 6 Comunicazione a causa della conseguenza che il lavoro di chi la riceve apprezzato per il tempo richiesto per analizzarlo Comunque ambedue le condizioni dettagliato e spassionato devono per questa persona risultare veri Per esempio se qualcuno fa un cambiamento trasandato al codice inutile e in realt dannoso fargli seguire una semplice frase del tipo Questo era trasandato La trascuratezza in fin dei conti una caratteristica della persona non del suo lavoro ed importante mantenere le vostre reazioni focalizzate sul lavoro E molto pi efficace descrivere tutte le cose sbagliate in quel cambiamento tatticamente e senza malizia Se questo il terzo o il quarto cambio trasandato in una riga da parte delle stessa persona opportuno dirlo di nuovo senza rabbia alla fine della vostra critica per rendere chiaro che il comportamento stato notato Se qualcuno non si migliora in risposta alla critica la soluzione non pi critica o pi forte critica La soluzione per il gruppo rimuovere quella persona dalla posizione di non competenza in un modo tale da le sensazioni di risentimento quanto pi possibile vedere sezione chiamata Gli avvicendamenti
533. un progetto di software libero Per esempio il seguente classico appare alla fine di ogni messaggio che un particolare utente manda su una pubblica mailing list di cui faccio parte OSSERVAZIONE IMPORTANT GI Se avete ricevuto questa email per errore o volete leggere il nostro disclaimer per 1 mail la politica di monitoraggio per favore fate riferimento sotto o co il mittente Questa comunicazione proviene da Deloitte amp Touche LLP Deloitte amp Touche LLP una societ a responsabilit limitata registrata in Inghilterra e Gal il numero registrato 0C303675 Una lista dei nomi dei membri disponibile per ispezioni a Stonecutter Court 1 Stonecutter Street London EC4A 4TR United Kingdom la sede principale dell attivit ed uffic Deloitte amp Touche LLP autorizzato e regolato dalla Financial Services Authority Questa comunicazione e tutti gli allegati contengono informazioni che sono confidenziali e possono essere legalmente protette Sono per l uso esclusivo dei destinatari Se non siete il destinatario per favore 92 Comunicazione notate che ogni forma di comunicazione pubblicazione copia o uso di questa comun o delle informazioni contenute o degli allegati strettamente proibita e pu esse Se avete ricevuto questa comunicazione per errore per favore rimandatela con ric come oggetto a to IT SECURITY UK deloitte co uk e poi cancellate la
534. uono sia trascinato in basso dal cattivo 101 Comunicazione 2 Assicurarsi che ci siano fonti di informazione automatizzate disponibili e che siano mantenute organizzate aggiornate e facili da trovare La strategia 1 non difficile di solito La maggior parte dei progetti partono con un solo forum principale una mailing list di discussioni generali nella quale possono essere discussi idee di funzionalit questioni di progettazione e problemi di codice Chiunque sia coinvolto nel progetto nella mailing list Dopo un po di solito diventa chiaro che la mailing list si evoluta in varie sotto mailing list distinte basate sull argomento Per esempio alcune discussioni sono chiaramente sulla progettazione e sullo sviluppo altre sono domande degli utilizzatori della variet Come faccio X pu darsi che ci sia una terza famiglia di argomenti centrati sull elaborazione dei report di bug e su richieste di accrescimento e cos via Un dato individuo certo potrebbe partecipare a molti differenti tipi di discussioni ma la cosa importante che non ci sia una grande quantit di sovrapposizioni fra i tipi stessi Essi potrebbero essere suddivisi in mailing list separate senza causare una pericolosa balcanizzazione perch le discussioni raramente attraversano i limiti dell argomento In realt fare queste divisioni un processo in due tempi Voi create la nuova mailing list o il canale IRC o qualunque altra cosa sia
535. urato il procedimento di voto e di veto descritto a http 68 L Infrastruttura Sociale e Politica www apache org foundation voting html Gli standard Apache si sono diffusi agli altri progetti e voi vedrete le loro convenzioni usate con varie sfumature in molti posti nel mondo dell open source Tecnicamente 1 non indica sempre un veto formale anche in accordo con lo standard Apache ma in modo informale ci viene preso a significare un veto o almeno una obiezione molto forte Come i voti i veti possono applicarsi retroattivamente Non sta bene per obiettare a un veto sulla base del fatto che il cambiamento in questione stato gi inviato o che l iniziativa stata presa a meno che non sia qualcosa di irrevocabile come l emissione un comunicato stampa D altra parte un veto che arrivi con un ritardo di settimane o di mesi verosimilmente non da prendere molto sul serio n dovrebbe esserlo Metter Gi Tutto Per Iscritto A un certo punto il numero degli accordi e delle convenzioni che girano nel vostro progetto diventa talmente grande che avete bisogno di registrarli da qualche parte Per dare una tale legittimazione documentale chiarite che essa basata sulle discussioni della mailing list e sugli accordi gi effettivi Quando componete il documento fate riferimento alle discussioni rilevanti negli archivi della mailing list e dove c un punto di cui non siete sicuri chiedete Il documento non deve contenere sor
536. urce pu essere un affare di buon marchio Doppia licenza Doppia licenza la pratica di offrire software sotto una tradizionale licenza proprietaria a clienti che lo vogliono come parte di una applicazione proprietaria per se stessi e simultaneamente sotto una licenza libera per coloro che vogliono usarlo sotto i termini della licenza open source vedere sezione chiamata Gli Schemi a Doppia Licenza in Capitolo 9 Licenze Diritti d Autore e Brevetti Se la comunit di sviluppatori open source attiva il software gode di una larga area di debugging e di sviluppo e la compagnia pure ricava un flusso di denaro per sostenere sviluppatori a tempo pieno Due ben noti esempi sono MySQL http www mysql com costruttori di software per database dello stesso nome e Sleepycat http www sleepycat com che offre distribuzione e supporto per Non una coincidenza che esse siano entrambe compagnie di database Il database tende ad essere integrato nelle applicazioni piuttosto che essere venduto direttamente agli utenti cosicch molto pi adatto al modello di doppia licenza Le donazioni Un progetto largamente usato pu ricevere a volte significativi contributi da individui e organizzazioni giusto per il fatto di avere un pulsante di donazioni on line o per vendere merce col marchio come tazze di caff T shirts cuscinetti per il mouse ecc Una parola di attenzione se il vostro progetto accetta donazioni pianificate come ver
537. utomaticamente le future mail dallo stesso mittente senza neppure farle passare attraverso la moderazione Raramente c motivo di fare cos dato che la moderazione si occupa soprattutto di spam e gli spammer tendono a non usare lo stesso indirizzo due volte Cercate di usare la moderazione solo per scartare spam e messaggi palesemente non attinenti come quando qualcuno uno manda un messaggio alla mailing list sbagliata Il sistema di moderazione solitamente vi fornir un modo per rispondere direttamente al mittente ma non usate questo metodo per rispondere a domande che in realt appartengono alla stessa mailing list anche se sapete al volo la risposta Fare cos priver la comunit del progetto dell immagine accurata dei tipi di domande che la gente pone e negher un opportunit di rispondere alle domande e o di vedere le risposte di altri La moderazione di mailing list riguarda soltanto l evitare i messaggi spazzatura e email non pertinenti nient altro Nascondere gli indirizzi presenti negli archivi Per prevenire che la vostra mailing list diventi una fonte di indirizzi per gli spammer una tecnica comune nascondere gli indirizzi delle email delle persone presenti negli archivi ad esempio sostituendo jrandom somedomain com 35 L Infrastruttura Tecnica con jrandom_AT_somedomain com oppure jrandomNOSPAM somedomain com o qualche altra simile evidente per gli esseri umani codifica Dato che i raccoglitori di i
538. utore e Brevetti libero La libert un argomento complesso e serve a poco parlare di esso se la terminologia sta per essere usata come pretesto al posto della sostanza Poich questo un libro e non argomento di mailing list comunque ammetter di non aver mai capito l argomento La GPL non libera La sola restrizione che essa impone che la gente non imponga ulteriori restrizioni Dire che ci d luogo a minore libert a me sempre sembrato come dire che bandire la schiavit riduce la libert perch impedisce a certa gente di possedere schiavi Oh se siete coinvolti in un a discussione su questo non rilanciate facendo analogie incendiarie Cosa sulla Licenza BSD Una discreta quantit di software open source distribuito sotto la licenza BSD o a volte una licenza stile BSD La licenza originale BSD fu usata dalla Berkeley Software Distribution con essa l Universit della California rilasci importanti parti dell implementazione Unix La licenza il testo esatto pu essere visto nella sezione 2 2 2 di http www xfree86 0rg 3 3 6 COPYRIGHT2 html 6 era simile nello spirito alla licenza MIT X eccetto che in una clausola Tutti i materiali pubblicitari devono mostrare il seguente riconoscimento Questo prodotto include software sviluppato dall Universit della California Laboratorio Lawrence Berkeley La presenza di quella clausola non solo rese la licenza originale BSD incompatibile con la GPL ma
539. ve Cos se volete fornire l hosting fatelo ma o pianificate di essere coinvolti di pi presto o state attenti a quanto coinvolgimento reclamate Il Marketing Sebbene la maggior parte degli sviluppatori non gradirebbero ammetterlo il marketing funziona Una buona campagna di marketing pu creare un ronzio intorno a un prodotto open source anche al punto che avveduti codificatori si trovano che essi stessi ad avere pensieri vagamente positivi sul software anche per ragioni sulle quali non possono assolutamente mettervi le dita Non spetta a me dissertare la dinamica della corsa agli armamenti del marketing in generale Ogni compagnia coinvolta in software libero si trover alla fine a considerare come mettere in commercio se stessa il software e le sue relazioni col software Il consiglio di sotto riguarda come evitare trabocchetti in tale impegno vedere anche sezione chiamata La Pubblicit in Capitolo 6 Comunicazione Ricordate Che Siete Osservati Nell intento di mantenere dalla vostra parte la comunit degli sviluppatori volontari molto importante non dire ci non sia in modo dimostrabile vero Verificate tutte le affermazioni con cura prima di farle e date al pubblico i mezzi per verificare le vostre affermazioni da se La verifica indipendente dei fatti una parte importante dell open source e si applica a molto pi che al solo codice Naturalmente nessuno consiglierebbe alle compagnie di fare affermazioni non verificabil
540. vendo memoria di quelle discussioni pu cercare di riportare a galla gli argomenti portando a una perdita di credibilit per la vostra organizzazione Gli altri potrebbero meravigliarsi Non possono ricordarsi di ogni cosa Un nuovo sviluppatore non avr nemmeno un senso politico delle personalit del progetto e non saranno capaci di influenzare gli orientamenti del progetto cos rapidamente o cos regolarmente come lo fa uno che vi rimasto per lungo tempo Preparate i nuovi arrivati con un programma di ingaggio controllato Il nuovo sviluppatore deve essere in contatto la comunit di pubblico sviluppo sin dal primo giorno partendo con la correzione di bugs e le operazioni di ripulita in modo che possano imparare il codice base e acquistare una reputazione nella comunit e non accendere lunghe e complesse discussioni di progetto In tutto questo tempo uno o pi sviluppatori dovrebbero essere a disposizione per domande e risposte e dovrebbero leggere ogni post che i nuovi arrivati facciano nella mailing list degli sviluppatori anche se in essa ci sono threads a cui gli sviluppatori non rivolgerebbero l attenzione Ci aiuterebbe il gruppo a scorgere le potenziali rocce prima che i nuovi arrivati vi rimangano incagliati Incoraggiamenti privati dietro le scene e consigli possono anche aiutare molto specialmente se il nuovo arrivato non abituato ad una massiccia parallela revisione fra pari del suo codice Quando CollabNet ingaggi
541. vengono impedite fino alla data della pubblicazione la voce consister in un simbolo vuoto cos voi non perdete il nome ma ci non riveler nessuna informazione sulla vulnerabilit fino alla data in cui voi annunciate il bug e la correzione Maggiori informazioni sul processo CAN CVE possono essere trovate a http cve mitre org about candidates html e una esposizione particolarmente chiara dell uso da parte di un progetto open source dei numeri CAN CVE si trova a http www debian org security cve compatibility Pre notifica Una volta che il team delle risposte sulla sicurezza cio quegli sviluppatori che stanno sulla mailing list della sicurezza o che sono stati tirati dentro l affare della sicurezza con un particolare rapporto ha una correzione pronta dovete decidere come distribuirla Se inviate semplicemente la correzione al deposito o diversamente la annunciate al mondo voi in effetti costringete chiunque usi il vostro software ad aggiornare immediatamente o rischiare di essere bucato Talvolta appropriato quindi fare una pre notifica per certi utenti importanti Ci particolarmente vero per il software client server dove ci possono essere ben noti server che sono degli allettanti obiettivi per chi fa gli attacchi Gli amministratori di questi server apprezzerebbero il fatto di avere qualche giorno in pi o due per fare l aggiornamento in modo da essere protetti nel frattempo che il metodo di attacco diventa di pubbl
542. vete i vari cambiamenti emails scrittura delle pagine web ecc in un fila di attesa e le mandate tutte in un riga potete mantenere molto piccola la finestra di incoerenza 109 Comunicazione Per un evento meno importante potete eliminare una o tutte le uscite di cui sopra L evento sar ugualmente notato dal mondo di fuori in proporzione alla susa importanza Per esempio se una nuova release del software un evento importante il fissare solamente la data della nuova release mentre tuttavia in qualche modo fa notizia non quasi cos impostate quanto la release stessa Il fissare una data ha il valore di una email alle mailing list giornaliere non alla maling list annuncia e di un aggiornamento della linea del tempo del progetto e della pagina web dello stato ma niente di pi Comunque potreste vedere quella data apparire nella discussione da qualche altra parte in Internet ovunque ci sia gente interessata al progetto Persone che stanno in disparte sulle vostre mailing list solo per ascoltare e mai dire qualcosa non stanno necessariamente zitte altrove L orale d una distribuzione molto ampia dovreste contare su essa e costruire anche annunci minori in modo da incoraggiare una trasmissione informale accurata Nello specifico post che vi aspettate siano quotati dovrebbero avere una parte finalizzata ad essere quotata giusto come se steste scrivendo un comunicato stampa Per esempio Giusto un aggiornamento nel progr
543. vo Essi non vengono direttamente allo scoperto e dicono che stanno cercando di essere una alternativa libera all Office della Microsoft ma molta gente pu verosimilmente leggere tra le righe Sebbene questa dichiarazione di intenti sembri ampia ad una prima occhiata nei fatti piuttosto circoscritta le parole swite per ufficio hanno il significato di qualcosa di molto concreto a quelli che sono familiari con questo software Inoltre la presunta precedente conoscenza del lettore in questo caso probabilmente di Office della Microsoft usata per mantenere concisa la dichiarazione di intenti La natura di una dichiarazione di intenti dipende in parte da chi la sta scrivendo non dal software che descrive Per esempio per Openoffice org ha senso usare le parole come una comunit perch 14 Partenza il progetto fu avviato ed ancora sponsorizzato da Sun Microsystems Includendo quelle parole Sun manifesta la sua sensibilit alle preoccupazioni circa il fatto che essa potrebbe dominare il processo di sviluppo Con una cosa di questo tipo dimostrando unicamente la consapevolezza del potenziale per un problema va lontano nell evitare del tutto il problema D altra parte i progetti che non sono sponsorizzati da una singola grande impresa non hanno bisogno probabilmente di un simile linguaggio dopotutto lo sviluppo da parte di una comunit la norma sicch non ci sarebbe ragione di metterlo in lista come parte degli intenti S
544. vorando in quel dominio e trascinare loro a fare le cose nel modo in cui le fa il manager in modo che gli sforzi multipli si rafforzino piuttosto che andare in conflitto I managers di dominio dovrebbero anche documentare i processi con i quali essi fanno il loro lavoro cos che quando uno lascia qualcun altro possa colmare la mancanza subito A volte c un conflitto due o pi persone vogliono lo stesso ruolo Non c una via giusta per gestire questa cosa Potreste suggerire ad ogni volontario di postare una proposta una applicazione e ottenere che ogni persona che fa l invio voti su chi il migliore Ma ci scomodo e potenzialmente pericoloso Io trovo che una tecnica migliore sia quella di chiedere ai vari candidati di sistemare la cosa fra loro stessi Essi di solito saranno pi soddisfatti del risultato che se la decisione fosse stata imposta dal di fuori Il Manager delle Patch In un progetto si software libero che riceve un sacco di patch tener traccia di quali patch sono arrivate e cosa si deciso su esse pu essere un incubo specialmente se lo si fa un modo decentralizzato La maggior parte delle patch arrivano come posts alla mailing list di sviluppo sebbene alcune possano apparire nel tracciatore di bug o su siti esterni e quindi ci sono un numero di differenti itinerari che la patch pu percorrere dopo l arrivo A volte qualcuno revisiona le patch trova i problemi e li rimanda all autore originario pe
545. voto contro come un affronto personale Pi grande il numero di persone coinvolte pi numerose diventano le discussioni sui cambiamenti e meno numerose quelle sugli individui Il sistema che noi usiamo nel progetto Subversion sembra aver centrato un buon bilanciamento per cui io lo raccomando qui Affinch un cambiamento sia apportato a un ramo di release almeno tre sviluppatori devono votare a favore di esso e nessuno contro Un singolo voto no sufficiente a impedire che il cambiamento sia incluso cio un voto no in un contesto di release equivalente a un veto vedere sezione chiamata I Veti Naturalmente ogni voto di questo tipo deve essere accompagnato da una giustificazione e in teoria si potrebbe non tener conto del veto se abbastanza gente ritenesse che esso non ragionevole e obbliga a un voto speciale su di esso In pratica ci non mai successo e prevedo che non succeder mai Le persone sono conservatrici nei confronti delle release in ogni modo e quando qualcuno si sente abbastanza fortemente a favore del veto nei confronti dell inclusione di una cambiamento c usualmente una buona ragione per ci 124 Confezione Rilascio e Sviluppo Quotidiano Poich la procedura di rilascio deliberatamente orientata verso il conservatorismo le giustificazioni portate per il veto sono talvolta procedurali piuttosto che tecniche Per esempio una persona pu ritenere che un cambiamento sia b
546. ww openadapter org http www koha org Aumentare i Servizi Quando una compagnia mette in vendita i servizi dai quali dipende o per i quali diviene pi attrattiva particolari programmi open source naturale l interesse di quella compagnia ad assicurare che siano attivamente conservati Esempio CollabNet s http www collab net supporto di http subversion tigris org esclusioni di garanzia cio il lavoro della mia giornata ma anche un perfetto esempio di questo modello Supportare la vendita di hardware Il valore dei computers e dei componenti direttamente correlato al software disponibile per essi I venditori di hardware non solo i venditori dell intera macchina ma anche i costruttori di periferiche e di microchips hanno trovato che l avere software libero da far girare sul loro hardware importante per i clienti Scalzare un concorrente A volte le compagnie sostengono un progetto open source come mezzo per scalzare un prodotto concorrente che a sua volta potrebbe o non potrebbe essere open source Distruggere poco a poco una quota del mercato concorrente usualmente non la sola ragione per coinvolgersi in un progetto open source ma pu essere un fattore Esempio http www openoffice org no questa non la sola ragione per cui esiste Openoffice ma il software almeno in parte una risposta a Microsoft Office 72 I Soldi Il marketing Avere la vostra compagnia associata a un progetto open so
547. zing pseudonym n if applicable o Section 4 a d provide i the name of Author and or a sponsor institute Attribution service or by other reasonable means the title of parties ii p arties extent reasonably practicable specifies not refer the Work of an Adap the Adap nal Original be impleme in the credi the Adap credi the o COT and tation Origi La tation Author Author nted in case of a Adaptation will appear iv consis e g Th You reaso must keep nable the O if supplied Licensor designate another par publishing entity the Work if supplied the URI to be associated with the Wor he copyright i to the riginal Author journal f in Licensor s copyright notice the name of if any Ky n 3 b the use of may o of at nly us provided sE a mi then as part as t For the avoidance of doubt credit required by this Sec tribution in the manner set out above a Your rights under this License explicitly assert or imply any connection wi nd by th unless such U notice or licensi tent with Ssectio a credit identifying French translation of the Work by or Screenplay based on original credit required by this Sec any reasonable manner or Collection if a credit for all contributi tion or Collection appears ts and in a manner at least
548. zioni devono essere poste sulla redistribuzione sia del codice originale sia di quello derivato L espressione esatta Non potete imporre ulteriori restrizioni sull eserciziodei diritti concessi o affermati sotto questa Licenza Con queste condizioni la GPL riesce a rendere la libert contagiosa Una volta che il programma sia protetto dalla GPL i suoi termini di redistribuzione sono virali essi passano avanti a ogni altra cosa in cui il codice incorporato rendendo praticamente impossibile usare il codice sotto GPL in programmi closed source Comunque le stesse clausole rendono la GPL incompatibile con altre licenze libere Il modo solito in cui ci avviene quello in cui altre licenze impongono un requisito per esempio una clausola di riconoscimento che richiede che l autore originale sia menzionato in qualche modo che incompatibile con il Non potete imporre interiori restrizioni della GPL Dal punto di vista della Free Software Fondativo queste conseguenze di second ordine son auspicabili o almeno non spiacevoli La GPL non solo mantiene il suo software libero ma in pratica fa in modo che il vostro software sia un agente che spinge altri software a far valere la libert La domanda se sia questo un buon modo di promuovere il software libero una delle pi continue guerre sante in Internet vedere sezione chiamata Evitare le Guerre Sante in Capitolo 6 Comunicazione non vogliamo andare a fondo su questo La co
549. zza che altri potrebbero percepire come inutile il dissentire La gente deve esprimere pubblicamente e liberamente le idee anche sciocche idee E inevitabile che il BD anche esprimer una idea sciocca di volta in volta certamente e quindi il ruolo richiede anche una abilit a rendersi conto e a riconoscere quando uno ha preso una cattiva decisione sebbene questo sia un caratteristica che ogni buon sviluppatore dovrebbe avere specialmente se rimane col progetto per un lungo tempo Ma la differenza che i BD pu permettersi un lapsus di volta in volta senza preoccuparsi per sua credibilit a lungo termine Gli sviluppatori con minore anzianit possono non sentirsi cos sicuri cos il BD dovrebbe esprimere critiche o decisione contrarie con una certa sensibilit per quanto riguarda il peso che hanno le sue parole sia tecnicamente che psicologicamente Il BD non deve aver bisogno di avere la pi evidente esperienza di tutti nel progetto Egli deve aver sufficiente esperienza sul suo codice e capire e commentare ogni cambiamento in considerazione ma 63 L Infrastruttura Sociale e Politica questo tutto La posizione di BD n acquisita n mantenuta per virt di una abilit nello scrivere codice che intimidisce Quello che importante l esperienza e il senso dell insieme nella progettazione non necessariamente la capacit di produrre una buona progettazione su richiesta ma la capacit di riconoscere la buona progettaz
550. zzatore far obiezione Ma non costa molto chiedere e ogni volta che lo fate ci ricorda agli altri ascoltatori in quel forum che essere coinvolti nel progetto qualcosa che ognuno pu fare Non limitate i vostri obiettivi ad acquisire nuovi sviluppatori e gente che scriva la documentazione Per esempio anche l addestramento della gente a scrivere buoni rapporti di bugs d buoni risultati a lungo andare se non impiegate troppo tempo per persona e se essi procedono ad inviare pi report di bugs in futuro cosa a cui sono molto propensi se ottengono una costruttiva reazione al loro primo rapporto Una costruttiva reazione non necessario che sia una correzione del bug sebbene questo sia sempre l ideale essa pu essere anche un sollecitazione per maggiori informazioni o solamente la conferma che quel comportamento un bug La gente vuole essere ascoltata Secondariamente essi vogliono che il loro bug sia corretto Voi potrete non essere in grado di dare loro la seconda cosa in modo opportuno ma o il progetto intero potete dare loro la prima cosa Notare che l non ci sarebbe bisogno di convertire tutti i tests esistenti alla nuova struttura le due cose potevano esistere felicemente una a fianco a l altra con i vecchi tests convertiti solo se c era bisogno che fossero cambiati 146 Gestire i Volontari Un corollario di questo che gli sviluppatori non dovrebbero esprimere collera a persone che archiviano ben comprensibi
551. zzatori che usano quel software e la comodit con cui questi utilizzatori possono registrare nuovi bugs Di questi tre fattori gli ultimi due sono pi significativi del primo Un software di sufficiente complessit e grandezza ha 17 Partenza essenzialmente un numero arbitrario di bugs che devono essere scoperti La vera domanda quanto il progetto fa per registrare e elencare in ordine di priorit questi bugs Un progetto con un grosso e ben mantenuto database dei bugs i bugs significativi ricevono una risposta prontamente i bugs duplicati vengono unificati ecc quindi d una impressione migliore di un progetto senza una database dei bugs o di un database quasi vuoto Certo se il vostro progetto sta giusto partendo il database dei bugs conterr assai pochi bugs e non c molto che voi possiate fare su questo Ma se la pagina dello stato mette in evidenza la giovinezza del progetto e se la gente guardando il database pu vedere che molte archiviazioni sono avvenute di recente pu dedurre da ci che il progetto ha ancora una salutare velocit di archiviazioni e non sar ingiustamente allarmata dal basso numero di bugs registrati Notare che i tracciatori di bug sono spesso usati per tracciare non solo i bug di software ma anche richieste di crescita cambiamenti di documentazione di operazioni pendenti e altro I dettagli di un tracciatore di bugs in funzione sono visibili in sezione chiamata Tracciamento dei bug

Download Pdf Manuals

image

Related Search

Related Contents

Manual de Instruções (preliminar)  Code of Practice  Manual de Usuario Spa Obra R1.0 Generic  JUNO Di Bedienungsanleitung  MAX 4G - Energy Sistem  Supermicro Xeon 2.8GHz  Safety Application Guide for Multilayer Ceramic Chip  Page 1 Page 2 このルームエアコンは、 一般家庭の人を対象とした空調  User Manual - Johnson Systems Inc.  

Copyright © All rights reserved.
Failed to retrieve file