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 🙂

How open is Erlang?

I liked this post about how open is Erlang/OTP as a development project. Being open is not only about having a free software or open source license, it is also about the way of managing the development process and the interactions inside the community.

According to that post, Erlang lacks a public development repository, a public bug tracker, and internal library documentation in order to be completely open.

I agree and would add a new thing that is lacking: an Erlang Foundation (similar to, for example, the Gnome Foundation) acting as an umbrella for coordinating all the efforts (projects, conferences, hackfests, tools, regional communities, marketing) and the different actors (users, developers and companies) cooperating around Erlang.

In other words: converting the Erlang language and platform in the “Erlang free software project”.

Erlang at the MIT

In November 2002, Joe Armstrong, one of the Erlang fathers, gave an invited talk at the Lightweight Languages Workshop (LL2), organized by the MIT.

The talk was titled “Concurrency Oriented Programming in Erlang”, and the video is still available in .ram format. The slides can also be downloaded from the web page.

I think that watching the talk -which is still very fresh almost 4 years later- is a really interesting way of learning more about the Erlang approach for programming complex distributed control systems.

Some years ago, during my stay at the Ericsson CSLab, I learnt from Joe that the key feature of Erlang was not being a functional language but being a distributed one, meaning by distributed that the concurrency model was built-in as a basic part of the language. In the talk, this concept is developed with all the detail.

Igalia talks and the final Guadec schedule

As I had explained before, we had submitted three talks for the Guadec 2006. A couple of weeks ago we received an answer from the program committee saying that all were discarded for the Guadec Core (the main part of the conference, Monday to Wednesday). For the BoFs it was already what I expected, they fit better in the After Hours (Thursday and Friday), but as we did not receive any explanation about why the Fisterra talk was not considered interesting, we requested that information in the mailing lists:

Date: Fri, 5 May 2006 10:42:57 +0200
From: Juan José Sánchez Penas
Cc: guadec-papers@gnome.org, guadec-list
Subject: Re: [guadec-list] Acceptance mails sent

After receiving rejections for two BoFs, I have two questions:

a) Wouldn’t be a good idea to send together with the rejections an explanation of why the talk/bof/whatever got rejected? It is a bit frustrating to receive just the notification without knowing why it was not interesting for the selection committee. Knowing the reason would also help in order to propose better talks for future Gnome conferences.

We have not received any answer yet, and I am completely sure it is because of the lack of time, but I still think the authors would appreciate a lot some extra feedback from the committee.

Anyway, we decided to re-submit the Fisterra talk proposal for the Guadec Hispana in the WarmupWeekend (Saturday and Sunday) and the two BoFs for the AfterHours, and they all have been accepted and are now officially scheduled:

You can see the final schedule at the conference webpage.