Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Guida intergalattica per contributori Open Source

Guida intergalattica per contributori Open Source

Talk divulgativo, Linux Day 2012, Bergamo.

Federico Ravasio

October 27, 2012
Tweet

More Decks by Federico Ravasio

Other Decks in Programming

Transcript

  1. GUIDA INTERGALATTICA PER CONTRIBUTORI OPENSOURCE Federico ravasio - Dario Ghilardi

    Linux day 2012 1 Saluti, presentazione personale, domande (c’è qualcuno che ha già contribuito o contribuisce ad un progetto FOSS? codice, traduzioni, documentazione)
  2. OBIETTIVI 2 come contribuire all’opensource Come funziona In questa presentazione

    vogliamo farvi capire come contribuire ad un progetto FOSS, sfatare i miti principali ed abbattere le difficoltà iniziali.
  3. 3 WEBRAIN open source Usiamo e investiamo tutto il nostro

    tempo in strumenti opensource Tutto lo stack di sviluppo è open
  4. MITI SFATATI 4 con l’opensource non si campa dare non

    significa perdere Con l’opensource si campa direttamente ed indirettamente: Direttamente: - Si può offrire supporto a pagamento su un software opensource - Si possono usare strumenti opensource per comporne un altro non opensource (e quindi vendibile) Indirettamente: - Le conoscenze acquisite vengono rispese in altri progetti “Donare” il proprio tempo sottoforma di codice prodotto non significa avvantaggiare la concorrenza. “Se tu hai una mela e io ho una mela e ce le scambiamo, allora tu e io abbiamo sempre una mela per uno. Ma se tu hai un’idea e io ho un’idea e ce le scambiamo, allora abbiamo entrambi due idee”. Le idee possono essere codice, progetti, ecc.
  5. CLOSED SOURCE 5 Sviluppatori Consumatori Sviluppatori - Azienda - Il

    software è distribuito come una scatola nera con manuale di istruzioni - Supporto in generale a pagamento - Nessun accesso diretto alle persone o ai sorgenti Consumatori (gli usufritori del progetto o della libreria) - Paganti o meno
  6. OPEN SOURCE 6 Sviluppatori Consumatori CONTRIBUITORI Sviluppatori - Individui pagati

    da aziende o meno - Accessibili tramite mail diretta, mailing list, forum, chat Consumatori Contribuitori - Ibrido tra sviluppatore e contribuitore - Consumano, ma allo stesso tempo partecipano nello sviluppo
  7. VANTAGGI DELL’OPEN SOURCE 7 Pratica Lavoro Felicità Pratica - Si

    lavora su problemi esistenti - Si lavora spesso con altre persone, quindi si impara a comunicare le proprie idee/dubbi ecc. Lavoro - Se mentre state usando una tale libreria o progetto incappate in un problema, avendo accesso ai codici originali potete sistemare il problema una volta per tutte. La cosa è molto più complicata con codice closed Felicità - Mail di ringraziamento, donazioni, ringraziamenti di persona, ecc. <3 <3 <3 <3 <3
  8. COME INIZIARE??? 8 Scegliere un progetto Per progetto si intende

    un programma intero, tipo open office o firefox Si intede anche una libreria che è un frammento di programma che risolve un problema specifico, ad esempio aprire e modificare musica mp3
  9. SCELTA PROGETTO 9 Divertente risolve un problema esistente Divertente ->

    Motivante Risolve un problema esistente -> Più soddisfazione
  10. SCELTA PROGETTO 10 Per lavoro qualcosa che usate con frequenza

    Per lavoro: - Se conosco bene e contribuisco ad una libreria che poi uso per i progetti del cliente, il risultato sarà molto più migliore con le conoscenze acquisite Qualcosa che usate con frequenza: - Ricollegandosi alla cosa di prima, più usate un programma e più vi rendete conto di quali sono i problemi/i punti deboli
  11. FEEDBACK / SEGNALAZIONE 12 quando faccio X succede Y mi

    aspettavo Z Questa cosa è vera nell’opensource come è ancora più vera nel lavoro. *Storiella del cliente*
  12. CONTRIBUIRE 14 può capitare che le modifiche non vengano accettate

    Non fa niente: Innescherete comunque una discussione tra le persone coinvolte. Probabilmente vi diranno perchè le modifiche vengono rifiutate e come sistemare per farle accettare. In qualunque caso imparerete qualcosa di nuovo e costruirete una relazione con le altre persone. Perchè alcune modifiche non vengono accettate? - Modifiche non consone agli stili guida del progetto - Non sono state fornite sufficienti prove - Le modifiche rompono il funzionamento di altre parti del progetto
  13. UN PO’ DI STORIA 15 19xx: patch + email Patch

    = un file con la serie di modifiche al progetto Problemi: Devo cercare dove ottenere il codice sorgente e come inviare le modifiche (spesso tramite email) “Sto mandando le modifiche alla persona giusta?” Il destinatario potrebbe non essere più il responsabile del progetto e potrebbe aver passato il testimone a qualcun altro. Strumenti per gestire il codice inadatti a separare nettamente il progetto online dalle modifiche fatte offline
  14. COSA MI SERVE PER CONTRIBUIRE 16 (o altrI) GIT Cos’è

    Git: - Paragone codice <=> vg - Cosa abilita
  15. CICLO DI VITA DI UNA CONTRIBUZIONE 17 progetto originale istantanea

    del progetto progetto con vostre modifiche progetto originale con vostre modifiche Forking! merging! Merging = Aggiungi salvataggi al progetto iniziale
  16. DOVE STANNO I PROGETTI 18 il PROGETTO HA il suo

    sito IL progetto è ospitato su github (o altri)
  17. GITHUB 19 interfaccia web per git social coding Github è

    riuscito a smussare tutti quegli angoli nel processo di contribuizione ad un progetto. Ha abbassato tutte le barriere iniziali: chiunque può forkare un progetto, aggiungere le proprie modifiche e rimandarle al progetto originale. I gestori del progetto riceveranno le modifiche e dopo averle valutate