Strumenti per lo sviluppo software in comunità



Похожие документы
Box Backup. Backup criptato incrementale. Francesco Versaci. 15 novembre 2007 Montebelluna. Montebelluna Linux User Group

BackupPC Backup di rete con de-duplicazione

Programmazione Java Avanzata

Server Galileo.

Licenza di Utilizzo distribuire, comunicare al pubblico, rappresentare o esporre in pubblico la presente opera Attribuzione Condivisione

Architetture Applicative

Sistemi software di collaborazione in ambito open source

FORSETI BLOG. Readcast. Ottobre 2013 Speciale Linux Day.

Corso di Informatica

La firma digitale. Autore: Monica Mascia

Eclipse e Subversion

Oltre il diritto d autore: Creative Commons. Formazione Volontari SCN 2010 Mediateca Centro Linguistico di Ateneo - febbraio 2010

IL SOFTWARE E LA SUA TUTELA

Ambienti per lo sviluppo collaborativo del software (CDE)

Retail L organizzazione innovativa del tuo punto vendita

Pacchettizzazione e distribuzione del software

PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE

[Sistemi sw di collaborazione] in ambito open source

Software per Helpdesk

OpenPsy: OpenSource nella Psicologia. Presentazione del progetto in occasione dell edizione 2004 del Webbit (Padova)

LA FIRMA DIGITALE. Evoluzione della normativa italiana e componenti di base

Corso sul pacchetto R

Maria Aliberti, Sophia Danesino, Aurora Martina, Clotilde Moro, Mario Scovazzi e altri presentano la loro esperienza di DOCENTI COLLABORATIVI

Un CMS potente e versatile

Le licenze d uso. Le principali tipologie di licenze

Linux Day Perche' siamo qui???

LICENZE D'USO E TIPOLOGIE DI SOFTWARE

Giuseppe Capizzi. Ambienti di sviluppo Open Source

Linux e Open Source: Libero! Non "gratis"...

Progetto TIC Territori in comunicazione Applicazioni web

Introduzione al Software Libero

Scuola Digitale. Manuale utente. Copyright 2014, Axios Italia

Tecnologie Open Source. Subversion

Setup e installazione

Software Libero. Terra Futura - Firenze

Perchè usare sw open source nelle scuole

Appunti di Anatomia 1

Corso ForTIC C2 LEZIONE n. 1

29 Novembre 2012 Open Source: un opportunità per far evolvere l ICT nelle imprese

Luca Ottaviano. Everyday Git

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati

MagiCum S.r.l. Progetto Inno-School

Paolo Zatelli. Dipartimento di Ingegneria Civile e Ambientale Università di Trento. Open Source e Free Software. Open Source e Free Software

GIUSEPPE DI GRANDE CORSO DI FORMAZIONE SU BIBLOS

Wikipedia: un'introduzione

Gli strumenti Wiki per Inemar e gli inventari emissioni

Introduzione al Configura1on & Source Management. Ingegneria del So-ware e Lab. Università di Modena e Reggio Emilia Do<.

Java e solidarietà: il progetto Jug4Tenda

Alma Mater Studiorum Università di Bologna. Controllo di versione. S. Golovchenko (UNIBO) INGEGNERIA DEI SISTEMI SOFTWARE / 18

APPENDICE I Pratiche di tecnologie informatiche per la elaborazione della musica e del suono

WBT Authoring. Web Based Training STUDIO

Manuale di KSig. Richard A. Johnson Traduzione del documento: Daniele Micci

Introduzione a Dev-C++

EXPLOit Content Management Data Base per documenti SGML/XML

Introduzione a phpmyadmin

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

DRUPAL CONTINUOUS INTEGRATION. Parte I - Introduzione

Registratori di Cassa

Addition X DataNet S.r.l.

Il computer: primi elementi

Corso sul linguaggio Java

Introduzione a Quantum GIS (QGIS) - passaggio dal software ArcView 3.x a software GIS OpenSource

ARCHIVIA PLUS - ARCHITEL

Acronis License Server. Manuale utente

Tracciamento delle attività in Moodle

Gestione Risorse Umane Web. Gestione della foto in stampa unione. Versione V01

TEACHMOOD Laboratorio ICT Regione Piemonte l'ufficio Scolastico Regionale open source 30 corsi on-line la piattaforma moodle Teachmood,

DevC++ vers Manuale d uso

Guida di Installazione GCC

Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione

AnthericaSMS. SMS marketing personalizzato per la tua Azienda

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Modulo 4 Il pannello amministrativo dell'hosting e il database per Wordpress

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Strumenti per la gestione della configurazione del software

Транскрипт:

Strumenti per lo sviluppo software in comunità Francesco Agnolazza e Luca Mezzalira Montebelluna Linux User Group 27 ottobre 2012 Castelfranco Veneto Agno && Syslac (MontelLUG) Linux Day 2012 27 ott 2012 1 / 22

Licenza d utilizzo Copyright c 2012, Francesco Agnolazza e Luca Mezzalira. Questo documento viene rilasciato secondo i termini della licenza Creative Commons (http://creativecommons.org). L utente è libero di: distribuire, comunicare al pubblico, rappresentare o esporre in pubblico la presente opera alle seguenti condizioni: Attribuzione Deve riconoscere la paternità dell opera all autore originario. Non commerciale Non può utilizzare quest opera per scopi commerciali. No opere derivate Non può alterare, trasformare o sviluppare quest opera. In occasione di ogni atto di riutilizzazione o distribuzione, deve chiarire agli altri i termini della licenza di quest opera. Se ottiene il permesso dal titolare del diritto d autore, è possibile rinunciare a ciascuna di queste condizioni. Le utilizzazioni libere e gli altri diritti non sono in nessun modo limitati da quanto sopra. Questo è un riassunto in lingua corrente dei concetti chiave della licenza completa (codice legale), reperibile sul sito Internet http://creativecommons.org/licenses/by-nc-nd/2.0/legalcode Agno && Syslac (MontelLUG) Linux Day 2012 27 ott 2012 2 / 22

Sommario 1 Project management Introduzione Applicativi 2 Version control Introduzione 3 Internazionalizzazione Idea Tecnica Agno && Syslac (MontelLUG) Linux Day 2012 27 ott 2012 3 / 22

Qual è uno dei maggiori punti di forza del software libero? Agno && Syslac (MontelLUG) Linux Day 2012 27 ott 2012 4 / 22

Comunità Il software libero (ma non solo) si sviluppa in comunità e spesso perché il processo non sfugga di mano è necessario l uso di alcuni tra questi strumenti: Mailing lists Wiki Controllo versioni (svn, git, mercurial,... ) Punta ad essere usato da tutti, e ascolta i suoi utenti: Bug tracking Internazionalizzazione Agno && Syslac (MontelLUG) Linux Day 2012 27 ott 2012 5 / 22

Mailing lists Cos è e come funziona É un sistema semplice per mandare mail a più persone evitando Cc: e Ccn: Scopi Utili per gruppi tematici, e non solo legati all informatica! Privacy Può essere in modalità pubblica o privata Cosa non è É diversa da una newsletter: qui possono scrivere tutti. Agno && Syslac (MontelLUG) Linux Day 2012 27 ott 2012 6 / 22

Wiki Cos è e come funziona É uno strumento efficace per l editing collaborativo Scopi Ottimo per howto e documentazione. Wikipedia Wikipedia è un esempio di wiki general purpose, ma si possono anche creare wiki ad hoc. Agno && Syslac (MontelLUG) Linux Day 2012 27 ott 2012 7 / 22

Bug tracker Cos è e come funziona Per il software libero è importante che siano gli utenti stessi a riportare i problemi del programma che usano. I bug tracker permettono di farlo in modo facile. Esempi Bugzilla Launchpad... Agno && Syslac (MontelLUG) Linux Day 2012 27 ott 2012 8 / 22

Version Control: Cosa e perché L idea di base è quella di gestire in modo intelligente i cambiamenti al codice sorgente dei programmi. Possibilità Backup Sincronizzazione Ripristino mirato a breve e lungo termine Tracciamento delle modifiche Branching & merging Agno && Syslac (MontelLUG) Linux Day 2012 27 ott 2012 9 / 22

Concetti di base Attori Repository Trunk Azioni locali Checkout Commit Revert Sync Diff Azioni sul repo Branch Merge Locking Agno && Syslac (MontelLUG) Linux Day 2012 27 ott 2012 10 / 22

Concetti di base Attori Repository Trunk Azioni locali Checkout Commit Revert Sync Diff Azioni sul repo Branch Merge Locking Agno && Syslac (MontelLUG) Linux Day 2012 27 ott 2012 10 / 22

Concetti di base Attori Repository Trunk Azioni locali Checkout Commit Revert Sync Diff Azioni sul repo Branch Merge Locking Agno && Syslac (MontelLUG) Linux Day 2012 27 ott 2012 10 / 22

Software e servizi Software Subversion Git Mercurial Servizi GitHub Gitorious Google Code Sourceforge Installazione personale Agno && Syslac (MontelLUG) Linux Day 2012 27 ott 2012 11 / 22

Prova pratica! Agno && Syslac (MontelLUG) Linux Day 2012 27 ott 2012 12 / 22

Internazionalizzazione: Cosa L internazionalizzazione è il processo di adattare il software a lingue diverse e differenze tecniche tra le varie regioni del mondo. Agno && Syslac (MontelLUG) Linux Day 2012 27 ott 2012 13 / 22

Vantaggi I vantaggi sono molti ed evidenti: Per lo sviluppatore maggiore diffusione del software Per l utente finale maggiore comodità d utilizzo Per tutti quanti ideale per approcciarsi al software libero Agno && Syslac (MontelLUG) Linux Day 2012 27 ott 2012 14 / 22

Contribuire La traduzione di progetti open è un attività fondamentale, ma alla portata di tutti: Non sono necessarie competenze tecniche particolari Non è necessario sapere come funziona il codice Sviluppatore e traduttore sono figure separate C è sempre bisogno di buoni traduttori Dà soddisfazione Agno && Syslac (MontelLUG) Linux Day 2012 27 ott 2012 15 / 22

Esempio: Ubuntu 12.10 Agno && Syslac (MontelLUG) Linux Day 2012 27 ott 2012 16 / 22

Gettext La soluzione universalmente diffusa è costituita dagli strumenti di GNU gettext Idea di base Tenere separati stringhe e codice. stringhe traduttore codice sviluppatore Agno && Syslac (MontelLUG) Linux Day 2012 27 ott 2012 17 / 22

Workflow 1. Estrazione Codice template (.pot) 2. Localizzazione Template file di lingua (.po) 3. Traduzione Traduzione file di lingua 4. Compilazione File di lingua file binario (.mo) Agno && Syslac (MontelLUG) Linux Day 2012 27 ott 2012 18 / 22

In pratica... 1. Estrazione : xgettext xgettext --language=python --keyword=_ --output=_i18n/project.pot *.py 2. Localizzazione : msginit msginit --input=_i18n/project.pot --output=_i18n/project.it_it.po --locale=it_it 3. Traduzione : editor di testo vi _i18n/project.it_it.po (tradurre manualmente :D) 4. Compilazione : msgfmt msgfmt --output-file=it_it/lc_messages/project.mo _i18n/project.it_it.po Agno && Syslac (MontelLUG) Linux Day 2012 27 ott 2012 19 / 22

In pratica... 1. Estrazione : xgettext xgettext --language=python --keyword=_ --output=_i18n/project.pot *.py 2. Localizzazione : msginit msginit --input=_i18n/project.pot --output=_i18n/project.it_it.po --locale=it_it 3. Traduzione : editor di testo vi _i18n/project.it_it.po (tradurre manualmente :D) 4. Compilazione : msgfmt msgfmt --output-file=it_it/lc_messages/project.mo _i18n/project.it_it.po Agno && Syslac (MontelLUG) Linux Day 2012 27 ott 2012 19 / 22

In pratica... 1. Estrazione : xgettext xgettext --language=python --keyword=_ --output=_i18n/project.pot *.py 2. Localizzazione : msginit msginit --input=_i18n/project.pot --output=_i18n/project.it_it.po --locale=it_it 3. Traduzione : editor di testo vi _i18n/project.it_it.po (tradurre manualmente :D) 4. Compilazione : msgfmt msgfmt --output-file=it_it/lc_messages/project.mo _i18n/project.it_it.po Agno && Syslac (MontelLUG) Linux Day 2012 27 ott 2012 19 / 22

In pratica... 1. Estrazione : xgettext xgettext --language=python --keyword=_ --output=_i18n/project.pot *.py 2. Localizzazione : msginit msginit --input=_i18n/project.pot --output=_i18n/project.it_it.po --locale=it_it 3. Traduzione : editor di testo vi _i18n/project.it_it.po (tradurre manualmente :D) 4. Compilazione : msgfmt msgfmt --output-file=it_it/lc_messages/project.mo _i18n/project.it_it.po Agno && Syslac (MontelLUG) Linux Day 2012 27 ott 2012 19 / 22

Traduzione in Python Prova pratica! Agno && Syslac (MontelLUG) Linux Day 2012 27 ott 2012 20 / 22

Bibliografia: i18n in altri linguaggi Esempi di tutorial per vari linguaggi: Python http://www.learningpython.com/2006/12/03/ translating-your-pythonpygtk-application/ Perl http://justatheory.com/computers/ programming/perl/modules/ dist-zilla-localetextdomain.html C/C++ http://oriya.sarovar.org/ docs/gettext_single.html Java http://docs.oracle.com/javase/ tutorial/i18n/index.html Agno && Syslac (MontelLUG) Linux Day 2012 27 ott 2012 21 / 22

Bibliografia: Version control Launchpad http://launchpad.net Github http://github.com Gitorious http://gitorious.org Sourceforge http://sourceforge.net Agno && Syslac (MontelLUG) Linux Day 2012 27 ott 2012 22 / 22