Openfisca Managing Tool: a tool to manage fiscal sistemsLorenzo Stacchio
This article, written in italian, describes my thesis work focused on the creation of Openfisca managing tool (https://github.com/LorenzoStacchioDev/Openfisca-Managing-Tool). The main goal of this software is to manage different Openfisca country systems.
Publish/Subscribe EDI with Content-Based RoutingNicola Mezzetti
"Progettazione e sviluppo di un sistema di comunicazione Publish/Subscribe con routing content-based di contenuti XML" - tesi di laurea di Roberto Santi, correlatore dr. Nicola Mezzetti, relatore prof. Fabio Panzieri
Openfisca Managing Tool: a tool to manage fiscal sistemsLorenzo Stacchio
This article, written in italian, describes my thesis work focused on the creation of Openfisca managing tool (https://github.com/LorenzoStacchioDev/Openfisca-Managing-Tool). The main goal of this software is to manage different Openfisca country systems.
Publish/Subscribe EDI with Content-Based RoutingNicola Mezzetti
"Progettazione e sviluppo di un sistema di comunicazione Publish/Subscribe con routing content-based di contenuti XML" - tesi di laurea di Roberto Santi, correlatore dr. Nicola Mezzetti, relatore prof. Fabio Panzieri
Uno studio sull'efficacia di checker automatici per la modernizzazione di cod...Idriss Riouak
La continua evoluzione dei linguaggi di programmazione ha reso difficile mantenere i software aggiornati con le ultime convenzioni dettate dagli standard. Come ogni processo aziendale, la modernizzazione del software rappresenta un costo. Nasce così l’esigenza d’avere strumenti che automatizzino tale processo.
Clang Tidy è uno software scritto in C++. Il suo scopo è quello di mettere a disposizione degli sviluppatori, un framework flessibile per diagnosticare e correggere i più comuni errori di programmazione e l’utilizzo obsoleto
dei costrutti del linguaggio.
Python è un linguaggio di programmazione potente e di facile apprendimento. Utilizza efficienti strutture dati di alto livello e un semplice ma efficace approccio alla programmazione orientata agli oggetti. L’elegante sintassi di Python e la tipizzazione dinamica, unite alla sua natura di linguaggio interpretato, lo rendono ideale per lo scripting e lo sviluppo rapido di applicazioni in molte aree diverse e sulla maggior parte delle piattaforme.
L’interprete Python e l’ampia libreria standard sono liberamente disponibili, in file sorgenti o binari, per tutte le principali piattaforme sul sito web di Python, http://www.python.org/, e possono essere liberamente distribuiti. Lo stesso sito contiene anche, oltre alle distribuzioni, puntatori a molti moduli Python liberi e gratuiti di terzi, interi programmi, strumenti di sviluppo e documentazione addizionale.
L’interprete Python è facilmente estendibile con nuove funzioni o tipi di dato implementati in C o C++ (o altri linguaggi richiamabili dal C). Python è anche adatto come linguaggio di estensione per applicazioni personalizzabili.
Questo tutorial introduce informalmente il lettore ai concetti e alle caratteristiche base del linguaggio e del sistema Python. È di aiuto avere un interprete Python a portata di mano per fare esperienza diretta, ma tutti gli esempi sono autoesplicativi, quindi il tutorial può essere letto anche a elaboratore spento.
Per una descrizione degli oggetti e dei moduli standard, si veda il documento La libreria di riferimento di Python. Il manuale di riferimento di Python fornisce una definizione più formale del linguaggio. Se s’intendono scrivere estensioni in C o C++, si legga Extending and Embedding the Python Interpreter e Python/C API Reference. Ci sono anche numerosi libri che si occupano in modo approfondito di Python.
Questo tutorial non si propone di essere onnicomprensivo e di coprire ogni singola funzionalità o anche solo quelle più comunemente usate. Vuole essere piuttosto un’introduzione alle caratteristiche più notevoli di Python e fornire un’idea precisa dello stile del linguaggio. Dopo averlo letto si sarà capaci di leggere e scrivere moduli e programmi in Python, e quindi pronti ad imparare di più sui vari moduli della libreria Python descritta nel documento La libreria di riferimento di Python.
Uno studio sull'efficacia di checker automatici per la modernizzazione di cod...Idriss Riouak
La continua evoluzione dei linguaggi di programmazione ha reso difficile mantenere i software aggiornati con le ultime convenzioni dettate dagli standard. Come ogni processo aziendale, la modernizzazione del software rappresenta un costo. Nasce così l’esigenza d’avere strumenti che automatizzino tale processo.
Clang Tidy è uno software scritto in C++. Il suo scopo è quello di mettere a disposizione degli sviluppatori, un framework flessibile per diagnosticare e correggere i più comuni errori di programmazione e l’utilizzo obsoleto
dei costrutti del linguaggio.
Python è un linguaggio di programmazione potente e di facile apprendimento. Utilizza efficienti strutture dati di alto livello e un semplice ma efficace approccio alla programmazione orientata agli oggetti. L’elegante sintassi di Python e la tipizzazione dinamica, unite alla sua natura di linguaggio interpretato, lo rendono ideale per lo scripting e lo sviluppo rapido di applicazioni in molte aree diverse e sulla maggior parte delle piattaforme.
L’interprete Python e l’ampia libreria standard sono liberamente disponibili, in file sorgenti o binari, per tutte le principali piattaforme sul sito web di Python, http://www.python.org/, e possono essere liberamente distribuiti. Lo stesso sito contiene anche, oltre alle distribuzioni, puntatori a molti moduli Python liberi e gratuiti di terzi, interi programmi, strumenti di sviluppo e documentazione addizionale.
L’interprete Python è facilmente estendibile con nuove funzioni o tipi di dato implementati in C o C++ (o altri linguaggi richiamabili dal C). Python è anche adatto come linguaggio di estensione per applicazioni personalizzabili.
Questo tutorial introduce informalmente il lettore ai concetti e alle caratteristiche base del linguaggio e del sistema Python. È di aiuto avere un interprete Python a portata di mano per fare esperienza diretta, ma tutti gli esempi sono autoesplicativi, quindi il tutorial può essere letto anche a elaboratore spento.
Per una descrizione degli oggetti e dei moduli standard, si veda il documento La libreria di riferimento di Python. Il manuale di riferimento di Python fornisce una definizione più formale del linguaggio. Se s’intendono scrivere estensioni in C o C++, si legga Extending and Embedding the Python Interpreter e Python/C API Reference. Ci sono anche numerosi libri che si occupano in modo approfondito di Python.
Questo tutorial non si propone di essere onnicomprensivo e di coprire ogni singola funzionalità o anche solo quelle più comunemente usate. Vuole essere piuttosto un’introduzione alle caratteristiche più notevoli di Python e fornire un’idea precisa dello stile del linguaggio. Dopo averlo letto si sarà capaci di leggere e scrivere moduli e programmi in Python, e quindi pronti ad imparare di più sui vari moduli della libreria Python descritta nel documento La libreria di riferimento di Python.
1. Relazione
Studio di un progetto open source per il corso di Tecnologie Open
Source
20 Giugno 2011
Sommario
Presentazione del progetto Firebird SQL.
Informazioni documento
Nome file Firebird.pdf
Versione 1.0
Distribuzione Prof. Bellio Luigi
Nesello Lorenzo
1/17
4. 1 Introduzione
Firebird SQL ` un RDBMS (Relational DataBase Management System) open-
e
source. Viene distribuito sotto licenza IPL o IDPL. Nasce da Interbase e suppor-
ta numerosi sistemi operativi. Tra i principali si trovano GNU/Linux, Windows,
FreeBSD, Mac OS X e alcuni Unix. Fra i punti di forza del progetto ci sono un
grande grado di aderenza agli standard SQL e una buona integrazione con molti
linguaggi di programmazione. Inoltre ` facilmente installabile e manutenibile
e
e nelle ultime versioni sono stati fatti molti miglioramenti sul versante della
resistenza ai crash esterni, la velocit` di esecuzione e di accesso ai dati.
a
2 Obiettivi
Gli obiettivi, portati avanti tramite le Firebird Foundation, sono quelli di sup-
portare e far avanzare lo sviluppo del progetto open source Firebird relational
database management system. La fondazione gestisce un infrastruttura non
commericale e meccanismi richiesti per accettare e gestire finanziamenti, sotto-
scrizioni, donazioni e sponsorizzazioni.
3 Mercato
Il prodotto Firebird si rivolge a singoli utenti e ad aziende che intendono utiliz-
zare il servizio di RDBMS. La stessa fondazione che gestisce le donazioni per il
sostentamento del progetto ` aperta a singoli utenti e ad aziende, come illustrato
e
nel punto 6.1. Il seguente elenco illustra alcuni nomi delle societ` utilizzatrici del
a
software Firebird che essendo gratuito ed open source trova molti utilizzatori.
L’elenco ` in inglese preso direttamente dall’url http://www.firebirdsql.org/
e
file/documentation/papers_presentations/html/who-uses.html
• Broadview Software Ltd, Toronto, Canada, vendor of information and
control systems and online services for broadcasters worldwide
• Morfik P/L, Hobart, Tas., developers and vendors of WebOS development
suite for construction and maintenance of interactive websites, stores web
objects in a Firebird meta-layer (system database) as well as Firebird user
data.
• Communicare Systems Pty Ltd, Perth, WA, vendor of patient manage-
ment and medical records software for hospitals, clinics, medical practices
and mobile health units across Australia.
4/17
5. • “The Examiner” newspaper, Launceston, Tas., high availability(24/7) busi-
ness, information, production and news systems.
• U.S. Navy, broad range of management and logistical systems
• Frontrange Solutions USA Inc., Colorado Springs, U.S.A, as the back-end
of the highly scalable, award-winning integrated CRM, service manage-
ment and business systems “Goldmine” software suite.
• British Rail, U.K., timetabling, bookings, accounting and information
systems for national railway passenger network.
• Deutsche Presse-Agentur GmbH, HQ in Hamburg, Germany, largest press
agency in Germany, provides a worldwide service to newspapers, maga-
zines, TV and radio news networks.
• KIMData, Munich, Germany, business intelligence systems and data ware-
housing for German hospitals.
Il sostentamento del progetto avviene tramite donazioni effettuate da privati e
da aziende e tramite le quote di iscrizione alla fondazione. Fra le aziende pi`
a
famose che vengono citate fra gli sponsor troviamo SAS, Mandriva, IBPhoenix,
Broadview Software. Le aziende citate (per donazioni in denaro o in risorse)
sono parecchie e questo aiuta il progetto a non essere abbandonato e continuare
il suo percorso di evoluzione.
4 Storia
Prima di parlare di Firebird ` necessario raccontare quello che ` stato il suo pre-
e e
decessore, Interbase. Interbase era un prodotto commerciale e chiuso. Vantava
numerosi utilizzatori fra cui la NASA, la Banca Nazionale di Chicago, Ericsson,
Boeing Nokia e altri. Fra le principali caratteristiche che lo rendevano un buon
prodotto c’erano la semplicit` di installazione, l’utilizzo di poche risorse (4Mb di
a
RAM e meno di 10 MB di spazio su disco) e la buona gestione e il facile utilizzo
anche paragonandolo con altri RDBMS. Interbase inizialmente fu progettato per
un utilizzo professionale ed aziendale pagante. Nell’ultima fase della sua vita
Interbase fu sviluppato da una grossa azienda mondiale, la Borland Internation-
al. Dopo il rilascio del codice sorgente di Interbase 6.0 avvenuto nel 2000, reso
quindi opensource dalla Borland, nacque la prima versione di Firebird. Questa
versione era un InterBase riveduto e migliorato. Firebird 1.0 risolveva alcuni
problemi di sicurezza e qualche bug, inoltre aggiungeva qualche piccola miglio-
ria. La versione 1.5, sebbene sia stata solamente una versione di treansizione
verso la versione 2.0 rappresent` una piccola rivoluzione con un grande passo
o
5/17
6. avanti rispetto alla versione precedente. L’intero motore del database server
viene riscritto in C++, ottenendo cos` un codice pi` chiaro e leggibile rispetto
ı u
alla versione precedente, scritta in C. Con questa scelta le versioni successive
risulteranno pi` semplici da estendere e da gestire. La versione 2.0 conferma
u
tutte le funzionalit` presenti in precedenza con le stesse qualit` e ne aggiunge di
a a
nuove. Tra le pi` interessanti ci sono lo sviluppo delle estensioni del linguaggio
u
SQL derivate dall’SQL 200X. Queste nuove funzionalit` aiuteranno lo sviluppo
a
di Vulcano, il Firebird della prossima generazione.
4.1 Tappe del progetto
• 1984 Jim Starkey progetta Interbase per la Groton Database System
(.gdb)
• 25/07/2000 Borland rilascia sotto licenza open Initial Developer’s Public
License (IDPL) Interbase 6.0.
• 31/07/2000 Nasce il Progetto Firebird
• 22/11/2000 Primo kit d’installazione per Firebird
• 14/11/2001 Firebird 1.0.
• 23/02/2004 Firebird 1.5 scritto in C++
• 13/02/2004 Firebird 1.5.1
• 10/11/2004 Firebird 2.0 Alpha
• 19/05/2006 Firebird 2.0 Release Candidate 2
• 17/04/2008 Firebird 2.1
• 10/09/2008 Firebird 2.5 Alpha
• 04/10/2008 Firebird 2.5
• maggio-agosto 2011 Firebird 3.0 Alpha 1.Giornalmente ` disponibile il
e
build attuale (non release ufficiale)
5 Licenza
I moduli Firebird vengono rilasciati sotto licenza Initial Developer’s Public Li-
cense, mentre InterBase viene rilasciato da Inprise sotto licenza InterBase Pub-
lic License. La licenza InterBase Public License si applica anche a Firebird 1.0.
Tale licenza ` quella con cui ` stato distribuito da Boreland il codice sorgente
e e
6/17
7. di InterBase 6 da cui ` partito il progetto Firebird. Entrambe le licenze sono
e
delle varianti della Mozilla Public License V.1.1 (MPL). La documentazione del
progetto Firebird ` rilasciata sotto licenza Public Documentation License salvo
e
diversamente indicato. La licenza Public Documentation License definisce le
regole come la Mozilla Public Licese, solo che si occupa di documentazione e
non di codifica.
6 Modello di Business
Lo sviluppo del progetto Firebird avviene tramite un team ristretto di sviluppa-
tori coadiuvati da una comunit` molto sviluppata. Il sostentamento del progetto
a
avviene tramite donazioni e sponsorizzazioni gestite dalla fondazione (vedi para-
grafo 6.1). Il software viene distribuito gratuitamente a tutti gli utenti (e alle
aziende). Se si necessita di supporto di tipo professionale si pu` far affidamento
o
ad alcune aziende che coprono aree diverse del mondo e che sono sponsor del-
la fondazione Firebird. Inoltre ogni utente se vuole apportare delle modifiche
o delle migliorie pu` farlo sottoponendo poi il lavoro effettuato e ovviamente
o
rispettando le regole di codifica e test previste dal progetto.
6.1 Firebird Foundation
La fondazione Firebird ha il compito di gestire le risorse per l’avanzamento del
progetto. Il comitato di gestione viene eletto nell’assemblea generale annuale e
per l’anno in corso gli eletti sono:
• Presidente : Philippe Makowski (FR)
• Vice Presidente : Steve Summers (US)
• Tesoriere : Raymond Cl´roux
e
• Segretario : Helen Borrie (AU)
• Comitato : Paul Beach (FR), Pavel Cisar (CZ), Fabio Codebue (IT), Ste-
fan Heymann (DE), Alexey Kovyazin (RU), Olivier Mascia (BE), Thomas
Steinmaurer (AT)
La fondazione ` composta da svilupparoti, utenti e compagnie di varie dimen-
e
sioni. Tutte le componenti lavorano insieme come parte integrante di una or-
ganizzazione non-profit e questo garantisce che lo sviluppo del software open
source Firebird sia continuo. Le quote che vengono pagate dai membri hanno
un ruolo importante nel finanziamento dello sviluppo del motore di Firebird. Al-
la fondazione si pu` contribuire tramite membership, sponsorship o altre forme
o
di contributo minori. La membership prevede due differenti quote:
7/17
8. • Voting members : paga $300 all’anno
• Associate members : paga $50 all’anno
Per la sponsorship si guadagna un posto nella pagina degli sponsor. Ci sono
diverse modalit` di sponsorship elencate in seguito:
a
• Platinum : pi` di $1000 al mese o una donazione dai $12000 in su
u
• Gold : dai $500 ai $1000 al mese o una donazione da $6000 a $11999
• Silver : dai $175 ai $499 al mese o una donazione da $2000 a $5999
• Bronze : dai $75 ai $174 al mese o una sonazione dai $900 ai $1999
• Percentuale delle vendite : Per ogni prodotto venduto una percentuale
viene donata
Il terzo modo per contribuire al progetto ` quello di effettuare donazioni che
e
possono essere in denaro ma anche in risorse. Alcuni casi di donazioni effet-
tuate riguardano server di hosting, mackbook per lo sviluppo e il test per la
piattaforma MacOS X, accesso a risorse aziendali per migliorare lo sviluppo di
Firebird.
7 Processo di sviluppo
La realizzazione del sistema Firebird avviene attraverso lo sviluppo di un certo
numero di sottoprogetti, analizzati in seguito. Per seguire lo sviluppo dei proget-
ti ` sufficiente aprire il link http://firebird-checkins.123651.n3.nabble.
e
com/ che rappresenta un archivio della mailing list.
7.1 Firebird Server
Lo sviluppo di questa parte si pu` seguire al sito http://www.firebirdsql.
o
org/en/server/ dove vengono date le istruzioni per seguire gli aggiornamenti
delle versioni stabili, cio` le serie 2.0.x, 2.1.x e 2.5.x. Inoltre ` presente una
e e
sezione per lo sviluppo della versione 3.0 che viene annunciata come una versione
ricca di caratteristiche annunciate da tempo che miglioreranno ulteriormente il
lavoro fin qua svolto.
7.2 Quality Assurance
Questa sezione riporta indicazioni e metodologie per il controllo della qualit`.
a
Le informazioni presenti sono:
8/17
9. • Metodologie e Tool utilizzati in Firebird QA
• Come segnalare un bug
• Come utilizzare la Firebird Test Suite
• Come progettare nuovi test per Firebird
• Come implementare nuovi test per Firebird
• Lista dei Test
• Ultimi report dagli sviluppatori
7.3 Documentazione
Anche per la stesura della documentazione ci sono delle regole predefinite da
rispettare. Sono presenti le direttive impartite dalla conferenza di Firebird e gli
HowTo in quattro lingue (inglese, spagnolo, italiano e portoghese brasiliano).
Vengono anche fornite le guide per la stesura delle guide in italiano e portogh-
ese brasiliano. Inoltre vengono illustrate le parti della documentazione che in
sviluppo e quelle che saranno sviluppate.
7.4 JDBC, ODBC, Python Driver
Vengono fornite le direttive e lo stato dei lavori dello sviluppo dei driver per
JDBC, ODBC e Python.
7.5 .NET Provider
IL data provider .NET ` scritto in C# e provvede all’implementazione delle
e
funzionalit` GDS32/API. Le componenti del progetto (dal sito web http://
a
www.firebirdsql.org/en/development-net-provider/ sono:
• ADO.NET Data Provider
– ADO.NET Standard classes implementation
– Firebird GDS implementations for the Super Server, Classic Server,
Embedded Server and Fyracle External Procedure Engine
– Firebird Services API implementation
– Firebird Events implementation
– ISQL script support
• Entity Framework support
9/17
10. – Support for ADO.NET Entity Framework
• ASP.NET Web Providers
– Membership Provider
– Profile Provider
– Role Provider
– Session State Store Provider
• Data Designer Extensibility (DDEX) Provider.
– Provides integration inside Microsoft Visual Studio 2005
• Fyracle External Engine implementation for the .NET CLR
8 Community
8.1 Team di Firebird
Il team di sviluppo (principale) ` composto da 5 persone:
e
• Dmitry Yemanov : responsabile ricerca e sviluppo, ottimizzazione e statis-
tiche, path per accesso dati e algoritmi
• Alex Peshkov : mantenimento del build Linux, POSIX, Sicurezza e ar-
chitettura OSRI
• Vladyslav Khorsun : page cache manager, Dynamic SQL, Ricerca Full
Text
• Adriano dos Santos Fernandes : Internazionalizzazione, estensioni DDL
e DML, built-in delle funzioni SQL, routine esterne, integrazione Java e
controllo del codice
• Claudio Valderrama : Sviluppo Misc, ricerca bug, utilit` da linea di
a
comando e controllo del codice
Quello elencato ` il team principale, poi ci possono essere contributi da parte
e
della comunit` e di singoli sviluppatori, l’importante ` che vengano seguite le
a e
regole poste ed esposte nella sezione 10
10/17
11. 8.2 Portali News
Di seguito vengono riportati i siti internet dove reperire notizie e novit` relative
a
al progetto Firebird. Quelli elencati sono i siti riconosciuti (e noti) dal progetto
Firebird.
• FirebirdSQL newsline ufficiale http://www.firebirdsql.org/en/news/
• Firebird News http://www.firebirdnews.org/
• Newsline alla IBPhoenix.com http://www.ibphoenix.com
• FirebirdSQL Twitter http://twitter.com/firebirdsql
• FirebirdSQL Pagina Facebook http://www.facebook.com/pages/FirebirdSQL/
46546452369
• Campagna MindTheBird e News http://www.mindthebird.com
• IRC Chat — Canale IRC #firebird su freenode.net http://freenode.
net/
• Gruppo Firebird su identi.ca http://identi.ca/group/firebird
• Gruppo Firebird su LinkedIn http://www.linkedin.com/groups?gid=
1467097
8.3 Siti Nazionali
Sono presenti alcune comunit` nazionali (o linguistiche) per gli utilizzatori di
a
Firebird, riportate di seguito.
• Firebird Messico Community Site http://www.firebird.com.mx/
• Firebird Giappone Community http://tech.firebird.gr.jp/firebird/
index.php?firebird_xsite=0
• Firebird Italia http://firebirdsql.it/
• Firebird Romania Community http://firebirdsql.ro/
• Firebird Cina Community http://firebird.net.cn/
• iBase.ru (sito Firebird e InterBase) http://www.ibase.ru
• Firebird Brasile http://www.firebase.com.br/
• Repubblica Ceca IBPhoenix www.ibphoenix.cz
• Firebird Francia http://firebird.developpez.com/
11/17
12. • Comunit` Firebird di lingua portoghese http://www.comunidade-firebird.
a
org/
8.4 Mailing list
Come per i siti nazionali anche nelle mailing list sono presenti gruppi di diverse
nazionalit` e ambiti applicativi. Di seguito un elenco completo delle mailing list
a
disponibili divise per localit` e tematiche di interesse, cos` come ` strutturato il
a ı e
progetto Firebird.
• Firebird support (in inglese)
• Firebird per lingua Ceka
• Firebase Brasile (in portoghese)
• Firebird Russia
• Firebird support (in francese)
• Delphi Forum Turchia
• Firebird support (in spagnolo)
• Firebird Python
• Firebird Java
• IBObjects
• Firebird PHP
• Firebird Docs
• Firebird Checkins
• Firebird Architet
• Firebird Test
• Firebird Website
• Sviluppatori FlameRobin
• Firebird General
• Firebird Tools
• Firebird Applications
12/17
13. 9 Strumenti di gestione dell’informazione
Per seguire gli sviluppi del progetto e per utilizzare il prodotto finale Fire-
bird mette a disposizione una serie di servizi per l’utente e per le aziende,
sia in maniera gratuita (quasi tutti i servizi) che a pagamento (il supporto
professionale). Di seguito verranno analizzati i vari metodi di supporto degli
utenti.
9.1 Documentazione
La documentazione del progetto ricopre la parte principale dell’informazione
a favore degli utenti del prodotto. La documentazione ` divisa per livelli di
e
difficolt` ed interesse, si va infatti dalla guida Quick Start fino ad articoli
a
per esperti, ricoprendo tutti gli aspetti di Firebird.Tutta la documentazione
pu` essere reperita online partendo dal sito http://www.firebirdsql.org/
o
en/documentation/. Di seguito verranno esposte le sezioni rilevanti che vanno
a comporre la documentazione finale.
9.1.1 Release Notes
Ogni release di Firebird ` accompagnata dalle Release Note, un documento che
e
contiene la descrizione di nuove funzionalit` e dei bug risolti.
a
9.1.2 Reference Manuals
Il Reference Manual ` il documento che contiene la guida Quick Start per i nuovi
e
utenti e alcune guide per specifici argomenti.
9.1.3 White papers e presentazioni
Esiste una raccolta di white papers e presentazioni che riguardano argomenti
correlati con Firebird. Sono presenti in questa sezione anche le presentazioni
delle conferenze Firebird svolte in tutto il mondo.
9.1.4 FAQ
La sezione delle FAQ contiene risposte a domande frequenti della comunit` in
a
Inglese, Russo, Portoghese ed altre lingue.
9.1.5 Libri
Sono presenti anche alcuni libri che parlano di Firebird e dei suoi aspetti, nella
sezione viene indicato il tema e come acquistarli.
13/17
14. 9.1.6 Documentazione Driver
Questa sezione contiene documenti e link a documentazione relativa ai driver
per Firebird.
9.1.7 Documentazione esterna
Questa sezione raccoglie una collezione di articoli vari che trattano l’argomento
Firebird.
9.2 Supporto alla community
Il supporto dato dalla comunit` avviene in maniera gratuita attraverso le mail-
a
ing list (vedi paragrafo 8.4). Le mailing list non vengono moderate ma viene
applicata la regola three strikes and you’re out. Quindi si viene cacciati dopo tre
infrazioni al regolamento. Viene vietato il flaming, lo spam, la monopolizzazione
della discussione e l’eccessivo requoting. Viene richiesto di firmarsi con il pro-
prio nome, e non con un nickname. Si incorre in ban se si pubblicano nickname
con offese o con indirizzi email. Viene inoltre punita la pubblicit` di qualsiasi
a
tipo con il ban immediato. Viene inoltre richiesto agli utenti, per migliorare il
compito di chi risponder`, di fare domande intelligenti, quindi che ad esempio,
a
come oggetto non abbiano bug oppure problema, che sia riportata la versione e il
modello di Firebird e il sistema operativo ed inoltre che linguaggi si stanno uti-
lizzando o che interfacce di accesso dati sono usate dall’applicativo client. Viene
fornita una pagina web dove si spiega cosa si intende per domanda intelligente
a questo url http://www.catb.org/~esr/faqs/smart-questions.html
9.3 Supporto professionale
Il supporto professionale ` eseguito da cinque aziende che operano in diversi
e
stati.
• IBPhoenix
• IBSurgeon
• iBase
• P-Soft
• FireBase
Ogni azienda che da supporto professionale sull’utilizzo di Firebird fa parte delle
aziende sponsor che rispettano i requisiti della sezione 6.1.
14/17
15. 10 Strumenti di gestione dello sviluppo
Per poter sviluppare un progetto bisogna dotarsi di regole condivise e rispet-
tate e di strumenti facilmente reperibili. Vengono quindi definite delle regole
per la stesura del codice, della documentazione, dei test e dei report. Il codice
sorgente risiede in un repository SVN ospitato su SourceForge.net all’indiriz-
zo http://sourceforge.net/scm/?type=svn&group_id=9028. Nel repository
sono presenti tre cartelle, branches, tags e trunk. Branches contiene il codice
delle release ufficiali della serie, tags di tutte le release pubblicate, trunk invece
contiene il codice delle versioni future che si stanno sviluppando.
10.1 Coding Style
Le regole di codifica del progetto sono quelle definite dal C++ Programming
Style Guideness (http://geosoft.no/development/cppstyle.html) con al-
cune modifiche riportate comunque nel sito principale. Sono state scelte queste
regole perch` sono quelle riconosciute dalla comunit` di sviluppatori in C++.
e a
10.2 Compilazione Codice
Per compilare il codice sulle piattaforme Windows e Posix sono presenti le
istruzioni dettagliate e l’elenco di software dettagliato. Nel repository sono
presenti degli script per determinate piattaforme che servono alla corretta com-
pilazione del software nel proprio ambiente.
10.3 Issue Tracker
L’issue tracker ` un applicativo che gli utenti e gli sviluppatori utilizzano per
e
rimanere aggiornati sui bug, sulle varie richieste di miglioramenti su cui i membri
del progetto lavoreranno per risolverli. Il progetto Firebird utilizza JIRA issue
tracking sofwtare per questo proposito. Il Firebird tracker si trova all’indirizzo
http://tracker.firebirdsql.org/
10.4 Contributing Patches
Affinch` un contributo da parte di un utente venga accettato deve seguire alcune
e
regole.
• Preparazione : per prima cosa bisogna verificare l’ambito in cui si vuole
apportare una modifica, sia essa una novit` o soluzione a un bug. Bisogna
a
quindi cercare nel project issue tracker l’argomento scelto e contattare la
persona di riferimento, in modo da essere aggiornati sullo stato dell’arte.
15/17
16. • Sviluppo : per lo sviluppo bisogna cercare il metodo migliore di im-
plementare l’argomento scelto, senza esitare a contattare la mailing list
appropriata. Per sviluppi importanti ` raccomandato condividere i propri
e
progetti prima di iniziare l’implementazione. Ogni soluzione dev’essere
sviluppata seguendo le regole di codifica e la struttura architetturale. In-
oltre bisogna prevedere i possibili comportamenti con piattaforme diverse
o interazione con altre funzionalit`.
a
• Test : il primo test deve riguardare la corretta compilazione su tutte le
piattaforme che si hanno disponibili. Inoltre i test possono essere svolti
tramite la suite QA ufficiale.
• Pubblicazione : una volta effettuati i passaggi precedenti bisogna postare
nella mailing list corrispondente una descrizione dettagliata di quello che
si ` fatto ed allegare anche la patch sviluppata. In seguito bisogna parteci-
e
pare alla discussione rispondendo alle annotazioni fatte dagli utenti. Una
volta approvata la soluzione la versione finale va allegata al tracker ticket
appropriato.
10.5 Test
Per i test, come detto, viene messa a disposizione la QA suite. Le regole per
assicurare la qualit` vengono esposte nel paragrafo 7.2 mentre di seguito vengono
a
illustrati alcuni strumenti per ottenere i risultati.
10.5.1 Firebird Test Suite
La Firebird Test Suite utilizza due sistemi di test. Il primo detto TCS, ri-
lasicato dalla Boreland insieme a InterBase ` composto da 390 test di vario
e
tipo. Attualmente ` poco utilizzato perch` deprecato. Il secondo metodo `
e e e
detto QMTest. Tale tipologia di test ` open source e general-purpose, inoltre `
e e
cross-platfotm. Sono state scritte delle estesioni per semplificare lo sviluppo di
test. All’url http://www.firebirdsql.org/en/firebird-test-suite/ sono
presenti le istruzioni dettagliate per effettuare un test completo e di vario tipo.
10.5.2 Come progettare un nuovo test
La prima cosa da fare quando si vuole progettare un nuovo test ` identificare
e
per bene cosa si vuole testare. Risulta quindi importante controllare la lista
di test disponibili per vedere se qualcuno non abbia gi` creato il test. In caso
a
non sia presente bisogna contattare la mailing list Firebird-test e comunicare
la propria intenzione di sviluppare un test. Le linee guida che vengono dettate
riguardano la semplicit` del test, con alcuni esempi pratici di come mantenere
a
16/17
17. semplice la prova. Infatti con una prova semplice si riesce pi` facilmente a
u
risolvere il problema. Una volta progettato il test si pu` implementare con
o
QMTest oppure sottomettere al gruppo di sviluppo seguendo alcune regole di
redazione, per semplificare la comprensione da parte del ricevente.
11 Riferimenti
• http://www.firebirdsql.org/
• http://www.firebirdnews.org/
• http://firebirdsql.it/
• http://it.wikipedia.org/wiki/Firebird_SQL
• http://en.wikipedia.org/wiki/Firebird_(database_server)
17/17