Software Engineering Code of Ethics and Professional Practice

I discovered today this essential document any software engineer should always keep in mind. It was written in 1999 by the ACM/IEEE-CS Joint Task Force on Software Engineering Ethics and Professional Practices and approved as the standard for teaching and practicing software engineering. The full version is a must read.

In my very personal opinion, a lot of the ideas expressed through the preamble and the eight principles in the document, motivate and support the free software movement and go directly against (not only software) patents.

Back from Guadec 2006

Long time no blog. My work load during the last three weeks, since we came back from Vilanova, has prevented me from writing anything about what happened there. So 20 days late, here is my summary.

0:181

About te BoFs I coordinated:

  • BoF on continuous integration for Gnome. It was a clear success. More than 30 people attending (and interested). We managed to get the participation of Thomas Vander Stichele, who has experience using BuildBot for Gstreamer, Frederic Peters, developer of jhAutoBuild, and our José Dapena, who has adapted jhbuild and tinderbox to Gnome. Luis Villa, who had been the continuous integration man for Gnome during the last years, was also there. Thus, as we had the right ingredients, the BuildBrigade (a working group -with already more than 10 members- inside Gnome, in charge of the creation and promotion of an automatic build environment for the project) was created. The general requirements and ideas were agreed during the BoF, and the same afternoon we got together again for deciding about the technical details and the first steps to carry out. I have to say I am very happy with the results of the BoF. Stay tuned! [The slides I used are available here]
  • BoF on the development of business applications with/in Gnome. Quite successful. About 20 people attending. We spent 1 hour talking about how the development of business (ERP-like) applications (using Gnome technologies) relate to the development of the Gnome platform. Lorenzo Gil, creator of Gazpacho, Fernando San Martín, developer of PyGestor and a bunch of Fisterra developers were there. Unfortunately other people interested like Johan Dahlin from the projects Kiwi and Stoq, or Murray Cumming from Glom could not make it for the BoF. There are different approaches for the development of that kind of applications, but in general the feeling was that we have things that could -and should- be shared (knowledge, patterns, marketing, widgets, libraries, and so on); also, the feeling was that they could and should be shared probably inside Gnome. The goal now is to create permanent channels for continuing the discussion and finding out what and how we should share results among projects. [The slides I used are available here]

In general I liked the conference very much. My five favorite talks were:

And I should not forgot to mention that we (the marine blue team) won The Other WorldCup with a very effective mix of catenaccio and total football 😉

Therefore, a lot of new experiences, people, projects and opportunities. I am looking forward to Guadec 2006 in Birmingham (and also to the Guadec Hispana, which will take place a few days before in Granada).

Guadec 2006: ideas for the Business software with Gnome BoF

Yesterday I talked about the BoF on continuous integration. Also on Thursday 29th I will be coordinating another BoF on developing software for enterprises with Gnome (10:00-11:00 in the Sala d’Actes).

By “software for enterprises” here we refer to ERP-like software.

From Wikipedia: Enterprise Resource Planning systems (ERPs) integrate (or attempt to integrate) all data and processes of an organization into a single unified system. A typical ERP system will use multiple components of computer software and hardware to achieve the integration. A key ingredient of most ERP systems is the use of a single, unified database to store data for the various system modules.

This vertical software can be more or less complex, but it has normally quite a lot of diferences with most of the horizontal desktop applications. It is database-oriented and sometimes needs complex three-tier architectures and is deployed using several machines.

There are some projects related to Gnome (and using Gnome core technologies) that in some way have the business management software as one of their targets:

  • Glom: fast development of database oriented applications with a simple architecture.
  • Gazpacho: was born to make the development of business applications GUI easier.
  • Kiwi / Stoq: framework for creating GUI applications and example business oriented software using it.
  • Fisterra: a development framework for creating complex three tier business software using Gnome without needing to reinvent the wheel.
  • Other proprietary or non published developments of business software using Gnome.

They follow different approaches but all of them try to make easier the development of business applications using Gnome technologies.

In the BoF, some of the main discussion topics could be:

  • Is there anything in GNOME that could be improved in order to make it more friendly for the development of this kind of applications?
  • Which are the different approaches for solving the need of that kind of software, and which are the advantages or disadvantages of each of them?
  • Should GNOME as a project provide the third party developers with recommendations on how to use the development framework for data oriented applications?
  • Should the business management software projects be part of the GNOME project itself or they should be better outside it and leave it as a very desktop oriented project?
  • Would it make sense to have a Gnome-BusinessManagementSoftware kind of working group with the usual mailing list, web page,and working agenda?
  • And any other topic that the people attending could find interesting.

If you are interested in Gnome not only as a desktop but also as a way of making better (potentially complex) data-oriented applications, you should participate in this BoF 🙂
I will be flying to Barcelona in a few hours, see you at Guadec!

Guadec 2006: ideas for the continuous integration BoF

On Thursday 29th, during the first day of the Guadec 2006 AfterHours, I will be coordinating a BoF on continuous integration for Gnome (12:00-13:00 in the Sala de Juntes).

Wikipedia defines Continuous Integration as:

Continuous integration is a software engineering term describing a process that completely rebuilds and tests an application frequently.

The contents I propose for the BoF are the following:

  • What is continuous integration? Brief definition and explanation of the domain.
  • History of CI inside the GNOME project: what has been done historically inside the Gnome project related to CI (e.g. Luis Villa’s MicroTinder).
  • Present of CI inside the GNOME project: jhAutoBuild and approaches with Tinderbox2 and Tinderbox3 (we can talk here about what other free software projects do for CI).
  • Goals of the continuous integration (Luis has included some ideas on this in the wiki)
  • Discussion about the available tools:
    • C.I. tools: jhbuild reports, tinderbox, buildbot,…
    • Value added tools: check, gcov,…
  • Creation of the continuous integration team. Discussion on how the team should be organized and how it relates to other teams (release team, packaging, …).
  • Definition of the roadmap for the next year
  • Further discussion and hacking

We will have only one hour for all that, but the idea is at least to propose the main topics there and then continue the discussion over lunch and later in the mailing list.

These days I am contacting people that I think could be interested in the BoF. If you know someone that could contribute, please send him a link to this post 🙂

And consider yourself invited to come and share your view on how continuous integration for Gnome should be!

Embedding license info inside a PDF with LaTeX

In our way to create the semantic web, one interesting thing to do is to increase the amount of metadata contained in the online documents. A good use-case for this is licensing information. Would not be nice to search the web for a given material specifying that you only want to look into free(dom) documents? Currently that is not easy, mainly because most of the people only include licensing information inside the document text, making very hard to parse it.

Following these thoughts, a couple of days ago I learned about how to include metadata about a Creative Commons license in a PDF file generated using LaTeX. The PDF format supports the addition of XMP metadata, and so does LaTeX, so the process is very simple.

From the Creative Commons website:

Many Adobe applications support embedding XMP metadata in files, most notably PDF documents. The Creative Commons licensing process offers an XMP template which may be used to mark documents with Creative Commons license information.

Note that a licensed PDF document should include a visible copyright notice as described in how to tag works in addition to embedded metadata.

After choosing the rigth license, it is possible to save all the license information in a XMP data file. In order to add that metadata to a PDF generated with LaTeX, it is enough to add two lines before the beginning of the document:

usepackage{xmpincl}
includexmp{xmpdatafilename}

The license information is included as XML data at the beginning of the PDF file as can be easily checked with any text editor.

The xmpincl module for LaTeX is only available in a experimental Debian package, but it can be manually installed from here.

Unfortunately, most of the GNU/Linux applications -including Evince– do not seem to be able to visualize that kind of metadata yet.

My first programming book

B

Yesterday, while looking for other things in my partent’s place, I found a book I had not seen for a very long time: “Basic para niños” (Basic for children) written in Spanish by Sofía Watt and Miguel Mangada. I was 8 when I got it as the text book for an optional complementary course at primary school, two hours per week, where I was the only one under 12. I was too small and did not manage to learn more than the simple concepts at that time, but it was a lot of fun.

More than two decades have gone away, I have not programmed in Basic for a long time now, but when I saw it again, I realized that probably that small and simple book had quite a lot of influence in what I decided to do during the last decade… study computer science at the university, try to be part of the free software moviment, do my Ph.D. in software engineering, create Igalia with a group of colleagues from UDC… and it will probably have in what it is still to come 🙂

Describing Igalia from the Gnome perspective

Here is the text describing Igalia that we have just sent to the Guadec organization for the sponsors section of the conference webpage:

Igalia is a company from the south-west of Europe (Galicia, Spain), specialized in the development of innovative free software technologies and solutions.

Igalia has been increasing its involvement in the Gnome community since its creation five years ago, contributing with code and documentation to several components and applications, and sponsoring and organizing different Gnome events, from local hackfests to international conferences.

In May 2003, the first version of the Fisterra project was published by Igalia. Fisterra is a sophisticated framework for making the development of business management software easier with Gnome technologies. Since then, several companies have adopted solutions based on Fisterra.

Igalia developers have a deep knowledge of the Gnome technologies and during the last years, the company has carried out projects for evolving, adapting or modifying different parts of Gnome, including subcontracts for relevant international companies.