Tarin Gamberini

A software engineer and a passionate java programmer

Committee about the Italy's guidelines for the CAD's Art 68

Italian government on December 2012 changed the art. 68 of the eGovernment Code (Codice dell'Amministrazione Digitale (in Italian)) (CAD) indicating to public administrations (PA) the obligation to prefer Free Software assessing software acquisition.

The novelty aspect of the new art.68 (it) lies in comma 1-ter where is stated that “proprietary software acquisition with user license” (“l'acquisizione di programmi informatici di tipo proprietario mediante ricorso a licenza d'uso”) is permitted only if

it is motivationally impossible to get existing solutions yet available to public administrations, or to get Free Software or Open Source Software, appropriate for the current needs to be satisfied”.

risulti motivatamente l'impossibilità di accedere a soluzioni già disponibili all'interno della pubblica amministrazione, o a software liberi o a codici sorgente aperto, adeguati alle esigenze da soddisfare”.

The comma 1-ter, among other things, designates the Italian Digital Agency (Agenzia per l'Italia Digitale (AgID) to write modalities and criteria to perform the assessment. To do this the AgID published a news (in Italian) to form a committee (tavolo di lavoro (TdL)) to write guidelines about “Criteri per valutazioni comparative ai sensi dell'art. 68 del CAD”. I found the news curious because there were explicitely written:

“It will be a privileged title holding a role as […] open source software community’s representative”

“Costituirà titolo di preferenza rivestire un ruolo di […] referenti di community del software a codice sorgente aperto”

On December 2012 I sent my application as Java User Group Padua (in Italian)’s representative, on March 2013 I was selected, and in the middle of March I started working at the TdL.

TdL’s activities took place among March and July 2013, by 9 meeting e 5 hearings.

On 8 Jannuary 2014 AgID published (in Italian) AgID published (in Italian) the guidelines by Circolare n. 63/2013 (in Italian).

On the whole I’m almost satisfied. Certainly we might discuss about how these guidelines were or weren’t simple, but undoubtedly they help delineating the path stated by the art. 68. Moreover I’m proud to have participated in defining a national law which rules the country where I live in. I’m also grateful to had the opportunity to live an experience from which I learnt a lot.


Git in Practice book review

This spring I was selected from Manning as one of the technical reviewers of the book “Git in Practice” by Mike McQuaid.

I’ve been using Git for about a year now, and I studied it on the online documentation but I found the McQuaid’s book easier to read because lots of chapters have their title which may be considered as a FAQ and its four subsections Background, Problem, Solution, Discussion, offer a common way to understand the chapter’s main subject.

Commit Messages - Good Practices

Writing good commit messages is extremely important because:

  • good commit messages help the future (poor) maintainer
  • good commit messages speed up the peer reviewing process
  • good commit messages are used to generate a good release note

I hope the presentation “Commit messages - Good practices ” will help developers becoming more aware about how good commit messages could improve their work.

Gradle in Action book review

This autumn I was selected from Manning as one of the technical reviewers of the book “Gradle in Action” by Benjamin Muschko.

Gradle in Action starts with a beautiful introduction to Gradle with the classic “in action” approach.

How to generate DDL with Hibernate 4, Hibernate Tools and Maven

Hibernate Tools is a toolset for Hibernate3 implemented as an integrated suite of Eclipse plugins, together with a unified Ant task for integration into the build cycle.

Working with Maven you can use the hibernate3-maven-plugin. But this is (as the name states) only for Hibernate 3 and does not support Hibernate 4.

As reported by Thomas Letsch [1] the Hibernate tools for Hibernate 4.x is not yet finished, and the obvious solution is to just use the Maven ant-run plugin and execute the hibernate-tools Ant task. So following the Thomas Letsch’s article I have worked out a solution that suits me well.

Spring in Action Book Review

This summer I red “Spring in Action” by Craig Walls.

The book is well written, easy to read, with lots of code fragments which clarify textual descriptions, and with references to Design Pattern and JSR too.

How to validate DocBook 5.0 in Netbeans 7.0.1

This is the DocBook file I’d like to validate:

<?xml version='1.0' encoding='UTF-8'?>
<article version="5.0" xml:lang="en"
    http://docbook.org/ns/docbook http://docbook.org/xml/5.0/xsd/docbook.xsd">
    <title>Sample article</title>
    <para>This is a very short article.</para>

I’ve tried validating sample_article.xml In NetBeans:

unfortunately NetBeans logs:

XML validation started.
Checking file:/C:/sample_article.xml...
Referenced entity at "http://docbook.org/xml/5.0/xsd/docbook.xsd".
Referenced entity at "http://docbook.org/xml/5.0/xsd/xlink.xsd".
Referenced entity at "nbres:/org/netbeans/modules/j2ee/ddloaders/catalog/resources/XMLSchema.dtd".
Referenced entity at "nbres:/org/netbeans/modules/j2ee/ddloaders/catalog/resources/datatypes.dtd".
src-resolve: Cannot resolve the name 'xml:id' to a(n) 'attribute declaration' component. [6] http://docbook.org/xml/5.0/xsd/docbook.xsd
s4s-elt-must-match.1: The content of 'db.common.attributes' must match (annotation?, ((attribute | attributeGroup)*, anyAttribute?)). A problem was found starting at: attribute. [6] http://docbook.org/xml/5.0/xsd/docbook.xsd
cvc-complex-type.3.2.2: Attribute 'version' is not allowed to appear in element 'article'. [6]
cvc-complex-type.3.2.2: Attribute 'xml:lang' is not allowed to appear in element 'article'. [6]
XML validation finished.

complaining it Cannot resolve the name 'xml:id' as defined in the http://docbook.org/xml/5.0/xsd/docbook.xsd.

But wait a moment! Where does NetBeans get such http://docbook.org/xml/5.0/xsd/docbook.xsd?