Mozilla Hispano

After the Webkit talk by Carlos Garcia Campos, Guillermo López talked about the Mozilla project in general and after talked about Mozilla Hispano, the community he belongs to…

He started his talk making a comparison between Webkit and Mozilla browsers using as a baseline some points discussed by Carlos:

  • Webkit is a web rendering itself but in Mozilla de rendering engine is Gecko and on top of that you have Firefox.
  • Most of the people contributing to Mozilla are volunteers and there just 250 people making all tasks which are few people compared to Webkit, Carlos said that currently in Webkit there are 350 just commiters, so we should add the translators, people from marketing etc etc… Also in Webkit there are many companies contributing like Apple, Google etc…
  • Another difference is related the architecture of Gecko and Webkit, Carlos already explained that Webkit is multithread but Gecko just provides multithreading for plugins runtime and not for the main process which is a still a single entity, for that reaosn the performances of browsers like Chromiun are really better than the performances of Firefox…
  • Also the repository code has differences and here Mozilla wins the comparison as they have successfully migrated to a distributed environment like Mercurial, Webkit is still using SVN…
  • The code release lifecycle is different ans recently in Mozilla adopted a new policy of “frequent releases” every six weeks to try to provide improvements to Firefox in the same way Chrome is growing but that has caused some unstability in the browser which is a tricky issue to solve…

But the projects have also many things in common like:

  • They are both Open Source projects which main target is to promote innovation and freedom in the web development by adopting standards like HTML5. The objectives of Mozilla are gathered in the “Mozilla Manifesto“…
  • In both cases new commiters must sign an agreement to be allow to access the repository, also in both projects the important figure of the reviewer exists.
  • Regarding QA, in Mozilla there are a set of rules for coding, code commiting, regression testing etc… which are very complete like in Webkit, this ensures good quality of the final code relased.
  • The organizational structure in both projects is based in leadership and meritocracy.

After the comparison, Guillermo gave an overview of the history of Mozilla project, how everyhting started in 1994 with Netscape trying to battle Internet Explorer until 1998 when Netscape project released its code in an attempt to survive (attempt that failed by the way due to the complexity of the code that made impossible new people to contribute efficiently) and finally when it was decided to write the browser from scratch and get rid of the ols spaguetti code, the biggest consequence of that important decision was the relase of Mozilla 1.0 in 2002 (4 years after the project became Open Source!!!)…

In 2003 another important step is taken, the Mozilla Foundation is created to manage marketing and investment issues within the project and later in 2005 the Foundation is “refactored” in the so-called Mozilla Corporation (aka MoCo) …

There are many products done by Mozilla people themselves (Firefox, Thunderbird, Seamonkey, Bugzilla…) or derived from Mozilla developments (Songbird, TomTom), also Mozilla supports several Open Source projects like SQLite, GTK, Qt, Mercurial, Github… and it is a huge supporter of web standards like HTML5, CSS3, SVG or WebGL…

The second part of the talk was about Mozilla Hispano, the Spanish branch of Mozilla that tries to join efforts of people from Spain and other countries like Argentina, Chile, Comlombia etc… Guillermo himself and Pedro (our teacher in this subject of the Master) are active members of this community and works mainly in the translation tasks…

Guillermo defined Mozilla Hispano like a “small Mozilla within Mozilla”, saying that even though they depend on the main Mozilla branch they have the freedom to organize themselves like the prefer (for example they have adopted Google Apps as a tool for improving collaboration) and propose their own initiatives like the “mentoring” program… They have their own web portal, forum, web planet, Facebook account etc…

At the end of the talk Guillermo said a few things that I consider quite important, he talked about what he has learnt being a member of Mozilla Hispano:

  • Let people participate.
  • Learnt to delegate and have confidence in other people, even though they are newcomers.
  • Organize yourself.
  • And the most curious one… take care of Spanish expressions! ;-)

I have to say that it is really great to see people so commited in Open Source like Guillermo, I worked as a volunteer for Amnistia Internacional España during a couple of years for developing the web portal that manages the Urgent Actions Network and it was great to be there and implement an Open Source solution that has been useful for many people …

Posted in FLOSS | Tagged , | Leave a comment

Webkit Open Source Project

Carlos Garcia Campos came to talk about Webkit, the Open Source project he is currently working at Igalia, I have to say that I had heard about the project but had not a clear idea of its objectives and I guess the rest of my class colleagues were the same,maybe for that reason Carlos started his talk defining what Webkit is:

“A web content engine used to render HTML”

Webkit project started within Apple in 2001 as a fork of the KHTML project and it was released Open Source in 2005, since then a huge community of contributors have caused this to be the most popular web rendering engine and one of the first implementations to fully support HTML5 standards.

Carlos detailed the objectives of the project that includes:

  • Focusing in web content support with CSS, SVG, Javascript and other related technologies…
  • Open Source, code is relased under permissive licenses BSD-like or LGPL, this allows to include Webkit in closed developments like Apple’s Safari web browser…
  • Stability and good performances, which is something mandatory when talking about web engines…
  • Security, another crucial point…
  • Portability to different environments (desktop, mobile etc…) without losing functionality…
  • Usability, allowing web borwsers built on top of Webkit to provide the necessary user-friendly navigation experience…
  • Hackability, well this one was the most curious one but it is a very useful feature, the idea is that all code must be easily readable to allow people to take it for other developments or for improving it, also Webkit provides several utility tools for that purpose…

Webkit is the baseline implementation of many other applciations which are common to us (even we do not know that is there) like Chromiun and Android web browsers, mail clients, chat apps like iChat or Adium, RSS Readers, media players like Banshee or Real Player etc etc… Well, I have used Webkit as an embedded web browser within Eclipse to run web applications developed using RAP API inside the IDE and it was quite easy to integrate and run although there were some portability problems with the SWT wrapper plugin that contained Webkit :-/

Regarding its architecture, Carlos said that the most powerful point of Webkit is that it is a generic purpose tool so you can take it as baseline for your customized web browsers, for that reason it is present in many platforms such as Gnome/KDE desktops, Android/iPhone smartphones, tables, Amazon Kindle etc…

This flexibility is possible due to the layered architecture of Webkit that splits the “core” features from the customized ones in what Carlos called “ports”, he explained this ind etail taking as an example the Webkit GTK project where we can find the following layers:

  • Core Layer: Composed by the Javascript Core API, the Web Core and the baseline pakacges of Webkit.
  • Ports Layer: Composed by the GTK specific port with all customized features for the GTK platform.

This architecture had some performance issues because there was a single process controlling the full flow of events, for that reason the Webkit2 project emerged as an improvement with support for multi-thread runtime that increases performances and avoid the frequent problem of a given plugin that once is loaded crashes the whole web browser, this has been already implemented in apps like Chromium and recently in Firefox…

Carlos finished his talk showing some graphs he generated using sloccount over the Webkit repo, there we could see that the project has more than 350 different companies contributing, he explained the process to become a commiter and the QA tools they have implemented to help developer to ensure that what they commit is really backwards compatible and passes regressions tests… as a summary a great talk, very technical and interesting for people like me that works in the development of web client-side apps :-)

Posted in FLOSS | Tagged , | Leave a comment

Wikipedia: Pasado, presente y futuro.

After the talk on Wikipedia by Miquel Vidal, Felipe Ortega (another teacher of the MSWL) talked also about Wikipedia but from a different point of view, his talk was about the relevance of Wikipedia nowadays and how it has grown in the latest years…

First he showed us some statistics about the usage of Wikipedia and the increase in the number of articles written and how in a recent study shown in TVE it was said that Wikipedia was among the top-ten web pages visited by Spanish people in the Internet, which is really a huge amount!

Felipe prepared some questions about the current status of Wikipedia and there we could discover incredible numbers like that Wikipedia is translated to 278 different languages, the number of total editions in the English Wikipedia until now which is more than 418 million editions or the number of contributions of the most active editor (Justin Anthony Knapp) which are more than 819000 contributions!

Felipe showed us some of the most common tools that Wikipedia offers you when browsing or editing an article, I knew most of them but he talked about some nice features which have been relased recently like the WikiTrust Plugin that can be used to check the credibility of a given article or the Book Creator feature that allows you to create a customized PDF book taking excerpts or full articles from Wikipedia, really amazing!

Also it was quite interesting the collaborative initiatives offered by Wikiprojects, so you do not have to participate isolated when creating a new article but can join a group that shares your favourite hobby and then start working altogether to improve the articles related to that subject, for example I am very fond of Astronomy and found in its wikiproject lots of information and opportunities to collaborate…

Finally, Felipe talked a bit about the role of the Wikipedia Foundation and its importance, this organism is in charge of ensuring the  sustainability of Wikipedia creating worldwide or local initiatives to improve the participation of volunteers.

In the round of questions my colleague Sergio asked Felipe about the polemic Doctoral Thesis he wrote about Wikipedia a couple of years ago where he suggested that the number of editors was decreasing from year to year in the English Wikipedia, I found some information about this paper in the Wikipedia page itself, there it is cited the paper (“Wikipedia: A quatitative analysis”) and how the Wall Street Journal echoed the new sayin that:

“unprecedented numbers of the millions of online volunteers who write, edit and police [Wikipedia] are quitting. The array of rules applied to editing and disputes related to such content are among the reasons for this trend that are cited in the article”

Jimbo Wales reacted to this quickly and denied the decrease of contributions from the editors and questioned the methodology of the study, you can find in Felipe’s site the full trace of the issue and links to the different media that reported the incident…

I asked Felipe how he could get the necessary data for his study, during the Master we have learnt to use several data mining tools such as CVSAnaly or Bicho implemented by the people at Libresoft to be able to analyze the data repositories accessed by FLOSSMetrics, so my idea is that maybe he had to do some implementations by himself to be able to retrieve and sort that data coming from Wikipedia.

Felipe explained me that although he had to implement himself some scripts in R, there was already a REST API provided by Wikipedia he could use, I have found that the API is available in the following location and here there is an explanation on how the API works and which kind of capabilities it provides. it is a simple HTTP-GET API that receives a set of query parameters in the input url and returns filtered responses in XML format that can be easily parsed with your favourite library such as Xerces, libxml2 etc…

As a summary, it has been very interesting to be able to attend to these two talks about Wikipedia having our teachers who are also active Wikipedia members, some years ago I was active too in Wikipedia but since some time and due to lack of time I have not contributed at all, maybe after these talks I feel again the “gusanillo” of collaborating!

Posted in FLOSS | Tagged , | Leave a comment

Del Caos al Orden. Cómo se organiza Wikipedia

Miquel Vidal, our teacher of the Legal Aspects subject in the MSWL came to give us a talk about how Wikipedia is organised and how it works internally, he is a wikipedista since 2005 and editor since 2007, he has edited more than 11500 articles, contributed to other 2500 articles and has created 158 new entries including one highlighted entry about Josep Pla, he explained that most of his articles are about his hobbies and not related to FLOSS or IT fields.

In his talk Miquel explained different aspects of Wikipedia itself, like for example the fact that Wikipedia is an online encyclopedy and not a dictionary, the articles included there should not be just a definition of a given concept but a full reference that described that item and provides also context information about it.

Another mistake that often happens when someone writes a new article is that it is not objective enough and tends to put some subjective value in it, saying for example in an article about an actor that “he is really a great actor” without giving any link of information to support that… About the way articles should be written, Miquel said that there is not formal guidelines for that but whenever it is possible we should not use “blogging jargon” there but try to be more formal.

Wikipedia should not be taken as a primary source of information, Miquel explained the three types of information sources that currently exists:

  • Primary sources. These are the original sources like for example standards definitions (RFC’s), books that some has written, paintings that someone painted etc…
  • Secondary sources. These are works that are build around primary sources like a thesis, a paper etc…
  • Tertiary source. These are works that put together several primary and secondary sources, like for example an encyclopaedia.

Wikipedia would be in the third category, for that reason we should not use it as a reference to be cited in our works or papers, we should cite always the original sources!

After explaining what is NOT wikipedia, Miquel gave us the definition of what Wikipedia is:

“Wikipedia is a free collaborative encyclopaedia that uses a wiki system”

Just that… quite simple right? :-)

In this context “free” means something quite similar to the freedoms we have seen in Open Source code:

  • Libertad 0: Usarla como quieras, donde quieras.
  • Libertad 1: Copiarla las veces que quieras.
  • Libertad 2: Redistribuirla a quien quiera por los medios que quiera.
  • Libertad 3: Modificarla (mejorarla, estudiarla, adaptarla. . . )

Wikipedia is provided in many languages and all its materials are released under CC-By-SA license which is a copyleft license that allows to copy, redistribute and update its contents for non-comercial or commercial purposes, it is based in the following five statements:

After discussing about the five pillars, Miquel warned us that event though Wikipedia is free it has also some rules that we must follow to avoid vandalism and talked about how the edition of a new or exsiting article works, well I already knew that part because I have written myself some articles like for example the one about Segura de la Sierra, my mother’s village in Jaén or another about Dehesa de Campoamor which is the place where I spend my summer holidays :-)

Finally we discussed a bit among us about which are the motivations that leads someone to create a new article or to collaborate and improve an existing one, for Miquel, the motivation is not only just to be a hobby but also that we tend to create relationships with the other and Wikipedia is a powerful tool for that, we enjoy participating as a volunteer in different projects to share our knowledge and also learn from other’s knowledge…

I have to say that for me it is very clear that this is just a hobby, for example I wrote my first article about my mother’s village because it is really a beautiful place and I wanted other people to be able to find some information about it and go there and know it and with the rest of the articles is the same :-)

Posted in FLOSS | Tagged , | Leave a comment

OSOR Forge: Roberto Andradas

In the second part of the 27th of January Cases of Study II class Roberto Andradas came to talk about OSOR forge (the Open Source Observatory and Repository), sponsored by the European Comission and dedicated to hosting FLOSS project for public administrations.

OSOR is an European platform for exchange of:

  • FLOSS software
  • Good practices in FLOSS
  • Information and news
  • Aimed at public administrations

It is based in 10 principles which can be summarized in:

  • Projects must be Open Source
  • Software and projects that are publicly financed
  • Software and documentation on Osor.eu must be made
    available under a recognised Open Source license
  • Federation allows european visibility to national projects within the OSOR umbrella

Regarding infrastructure, Roberto explained that OSOR is based in Gforge (one of the most popular FLOSS solutions for creating forges) and include important improvements that were done in the context of an FP7 project within Libresoft people, offering for example:

  • High availability cluster (97% SLA)
  • 7 physical servers
  • 10 virtual machines
  • Backups and monitorization
  • Possibility of having virtual and federated forges like in Morfeo project

The old web site of the project was based in Plone, but since December 2011 Roberto told us that there is a new platform called “JoinUp” which is a new development from scratch sponsored by the European Comission.

Well, for me it seems to be a very good initiative that can bring visibility for small projects that do not have money for setting up themselves such a complete platform for their developments, maybe the best example of a successful project hosted in OSOR is gvSIG an initiative for the development of Free Geomatics tools, by the way, I have just checked that gvSIG people has decided that after so many years hosted in OSOR, the new Joinup platform does not fulfill their requirements and they have migrated at the end of January their code to their own platform, it is explained in this blog entry

But also there are aspects of the OSOR initiative that I am do not fully agree, for example the usage of the EUPL license, which is an Open Source OSI-certified license but that from my point of view has no sense and just contributes to increase FLOSS licenses proliferation…

A couple of weeks ago someone in my company talked me about an Open Source project sponsored by the European Space Agency called the Space Trajectory Analysis Project (defined as a “Suite of Open Source astrodynamics software for reasearch”) and send me this paper where they present the objectives of the project etc… I was surprised to see that the project has been hosted in OSOR since 2009 but when I tried to search the project in Joinup it was not there!

I went to check in FLOSSMetrics if there was any trace of this project and found that there are no updates since 2009, so unfortunately it seems the project funding was cut off a couple of years ago :-(

Posted in FLOSS | Tagged , | Leave a comment

Rodrigo Moya (O Como ganarse la vida con el SL)

Last 27th of January we had what I consider one of the best talks of the Master since I am studying it together with the talk that last year Santiago Gala from Apache did @Madrid on Rails.

Rodrigo Moya did not prepare any slide or video presentation he just stood there and talked… a lot by the way :-)

In the first part of his talk, Rodrigo talked about his professional experience working in the FLOOS jungle, he has worked in some of the most important FLOSS companies such as Ximian, Novell or Canonical and is an active contributor of the Gnome Project since several years.

At the beginning of this year he left Canonical and signed for Collabora Ltd a company of FLOSS developers which is very close to the Gnome project, he explained the reason why he left Canonical is related to the fact that Ubuntu is getting rid of Gnome as default desktop and instead using Unity which is really a step back in the usability of Ubuntu (I have tried Unity and Gnome Shell and I fully agree with Rodrigo).

For me as a developer that uses a lot Open Source solutions and contributes to some Open Source projects the most interesting aspects of Rodrigo’s experience is his point of view about what should be the life of a FLOSS developer and in general of any developer, he gave very clear lessons about many aspects that at some point all developers must face like for example:

  • The freedom of working for a company that develops Open Source solutions, it is true that at the end you work for a company that pays you but the fact that you are implementing open solutions give you more freedom to take your own decisions and be creative.
  • Generally the working environment is more flexible and open to working remotely, for example Rodrigo lives in a small village in Navarra and works remotely for his company which is located in the UK/USA! This point was quite interesting for me as I have also the idea of moving to a more “relaxed” place closer to the sea instead of living in the crazy Madrid and work remotely for my company but still it is just an idea and I will have to see if my company is ready for that also :-)
  • He also gave some tricks for people that works remotely, simply things like that you must dress up in the morning as if you were really going to work, try working from other places different from home to make the daily work not so isolated, have your own space at home just dedicated to work etc… He suggested that we take a look at Teo Romera’s blog for getting more advices on this issue as he is now working remotely for Igalia…

I have lots of questions to make to Rodrigo but due to lack of time I just could make a couple, the most important one for me was related to the way developers work in Spanish companies, I asked him if after his experience working in several foreign companies he thought that here in Spain the work is more messy, the manager are worst and the business developers and people of marketing are a bit “gitanillos”…

I asked this because now with the crisis I have many friends who have left Spain and are working in Germany, UK, Holland etc… and really happy with the way things are done in their companies, all of them say that managers are really prepared people that take care of the developers and do their management job and not just “throw the brownies” against the other people, also that developers are really well-qalified and valorated within their company and at the end software development is considered a high-quality IT activity and not something that any granted buddy can do in a few hours…

Rodrigo said that he thinks it is very easy to find a job in FLOSS development but some people in the class doubted that, I had also the idea that people like Rodrigo were exceptional rare cases and not the normal thing but it seems there are many opportunities in the FLOSS world for developers like us which is something really good, specially if you are studying in the MSWL

As a summary, it was a pleasure to have Rodrigo there giving us lesson for developers, for FLOSS contributors and in general for living! :-)

Posted in FLOSS | Tagged , | Leave a comment

Gnome vs KDE

In the Case Studies II class we had more less one week ago our teacher Pedro organized a kind of “friendly combat” between one developer representative of the KDE community and another representative of the Gnome community, it was really interesting to be able to see the differences between both communities.

From KDE side we had Albert Astals, who is currently the coordinator of KDE Translations working group and work as a developer of the Okular package and from Gnome side we had Carlos Garcia a Gnome developer of several projects such as Evince or WebKitGTK+ that also collaborates in Okular project, he is also one of the teachers in our MSWL!

Albert gave the first talk, he briefly explained the history of KDE project, how KDE was founded in 1996 by Matthias Ettrich with the idea of creating a full desktop environment in which users could expect things to look, feel, and work consistently, he also wanted to make this desktop easy to use.

The current stable version of the platform is KDE 4.8.0 and Albert told us that they are still thinking about releasing KDE 5 in a different way not as a huge bundled solution but as a set of tools versioned under their own software lifecycle so the product does not get so monolitic as in past releases.

Carlos explained us that Gnome was founded in 1997 by Miguel de Icaza and Federico Mena in Mexico as an effort of developing a fully Open Source desktop solution because at that time KDE Qt’s API was under a comercial license belonging to TrollTech, for that reason they decided to build Gnome on top of the Gimp Toolkit API (GTK+).

The current stable version of Gnome is 3.2.2 which includes the amazing Gnome 3 Shell that is possible the best desktop solution implemented ever for UNIX-like desktops, it is just a matter of time that I start installing Gnome 3 in my laptop and get rid of Ubuntu’s crappy Unity :-)

The KDE vs Gnome is possibly one of the biggest flame-wars that you can find in the FLOSS world, for that reason I found very interesting coincidences in both projects that made me think they are not so different at the end:

  • Both desktop solutions are built around other GUI toolkits, KDE is based in Qt and Gnome is based in GTK+ and this is not a trivial issue because a new release in one of these baseline APIs automatically generates the need of a new release in the Desktop solution.
  • Both projects suffered a disruption phase that boosted their development and market presence, in KDE that happened during the transition from KDE 3 to KDE 4 and in Gnome that was during transition from Gnome 1.4 to Gnome 2.
  • There is no “benevolent dictator” in KDE nor in Gnome both projects are managed using democracy and meritocracy rules.

But there are also big differences that makes both platforms go in a different direction within the FLOSS environment:

  • The fact that KDE was started in Germany has been decisive as its community is mostly gathered around that country and most of the Linux distributions that uses KDE as default desktop are German ones like OpenSUSE.
  • In the other side Gnome was born near USA and its community has a bigger presence in that country and other Anglo-influenced places extending its usage to may other Linux solutions such as Fedora or the first versions of Ubuntu.
  • Current versions of KDE and Gnome are licensed under FLOSS GPL/LGPL-like licenses but in the past KDE had issues because of Trolltech’s copyright over Qt, as Albert pointed still nowadays there are people saying that KDE is not Open Source :-) .
  • In KDE there is no QA process as such, nor QA dedicated team, in Gnome they have a QA team dedicated to testing and they have clear procedures for validating products before releasing them to the public.
  • In KDE Albert explained that is quite easy to become regular committer while in Gnome Carlos said that it is not so difficult but you have to follow some steps before and there is a pre-defined process for accessing the repository.
  • In Gnome Carlos said they successfully migrated their code from SVN to Git, in KDE Albert recognised that they have not been able to migrate all their code to Git.
  • Carlos explained that the design of Gnome 3/Gnome Shell was driven by designers and not developers (for the first time in the project) and they did huge usability and accessibility tests to the tools before releasing them, this is something missing in KDE, their desktop solution is still oriented mainly to developers and not to public in general, for that reason is not so competitive and attractive in terms of look&feel and is not so easy to use as Gnome.

To get a better overview on both solutions we can use Ohloh engine and perform a simple comparison where we can see at a first glance:

  • The estimated cost of Gnome give us an idea of how big the project is compared to KDE, $118,479,388.00 vs $34,819,350.00!!
  • 1327 developers that did 222,435 commits in KDE against
    4339 developers that did 447,473 commits in Gnome.
  • 310 active developers in the last 12 months in KDE (and decreasing!) vs 1166 active developers (stable) in Gnome in the same period.

In the figure below we can see a graph I have generated with Ohloh in which it is compared the number of commits in both projects in the last three years:

I have to say that from the very beginning using Linux I started playing with Gnome because my first distros were all Fedora flavours and just used KDE for running specific applications such as KDevelop or KStars, so in the Gnome vs KDE battle I am on the Gnome side and believe in what Carlos stated at the end of his talk:

“Para mi KDE es para hackers porque incluso hoy en día es complicado de usar y no es tan intuitivo como Gnome”

Well, maybe in the future we have other FLOSS desktop solutions as strong as KDE or Gnome… or maybe we just have one because they finally join efforts and merge in a single tool! Time will say… :-)

Posted in FLOSS | Tagged , | Leave a comment

Quality Assurance in Thundebird and Mozilla

Last Friday we had the first session of the Case Studies II subject with our new teacher Pedro García, in this session Ludovic Hirliman talked about general QA guidelines followed in Mozilla projects and in particular in Thunderbird, the project he is responsible of.

I have to say that this session was perfect because the last subject we had before Xmas was “Project Evaluation” and there we learnt several methodologies for measuring quality in software projects so now with the talk we have been able to see a practical example on how quality assurance is applied to FLOSS massive project such as Firefox or Thunderbird.

Ludovic described the overall QA process in Mozilla projects with the following steps:

1. Writting test cases:

Once a set of features are implemented a set of unitary tests cases are written to check the validity of small encapsulated pieces of code, together with those specific tests some integration tests shall be implemented too to test the features working as a whole.

Ludovic stated the importance of writing good quality tests that can be easily reused in the following versions of the product so every time we implement a new feature we can run regression tests in a straightforward way, this is one of the main problems we face when a new bug appears in a already released version of a given product, when we finally detect what was causing the bug and we fix it it is necessary to ensure that our updates had no side effects in the code, that is we have not broken any other feature ;-)

At work I am currently working with Eclipse IDE and we do an extensive use of JUnit plugin for writing and running unitary tests, for integration and regression testing we are currently using Jenkins, a very complete framework for tests automation and continuous integration implementation.

Apart from these types of tests, Ludovic introduced a new type that I had never heard about “Ad-hoc tests” which means simply the tests that developers perform themselves with the aim of putting their code to the limit and have some fun also! The interesting thing is that from these messy random tests you can sometime discover other bugs that are not covered by the formal unitary tests!

2. Maintaining test cases:

The second step once tests are written is to keep track of those tests because every time we do a release we should re-run them to ensure the product is still valid, here Ludovic explained that in Thunderbird they have the problem of having thousand of tests and many of them are old and are not useful for validation, he said that for them currently it was a problem to know which tests should be run for validating certain functionalities.

There are several ways of doing this, one would be to use complex tools like IBM Clear Case or as I suggested to Ludovic use simply a compliance matrix that associates tests cases with functionalities to be tested.

3. Testing:

Regarding testing, it was very interesting to see how volunteers are very welcome in Mozilla, as we have seen in other subjects of the MSWL it is important to try to involve not only new developers to your FLOSS project but also end-users that help with bug reporting and testing.

Ludovic explained that the most complicated part of testing was to be able to reproduce the reported bugs (STR=Steps To Reproduce) sometimes because the reported of the bug did not provided enough information or sometimes because it is very difficult to reproduce the bug because is a random failure or the runtime environment is complicated to replicate.

4. Managing bug (bug triaging):

When a new bug arrives to any Mozilla project the “first aid” review is started to evaluate the type of bug, reproducibility, severity etc… of the failure, this is what is called “Bug Triaging” a new concept that we already saw in the Project Evaluation subject last year.

There is an interesting entry in Ubuntu Wiki that explains what means this term and what they do in the triaging process, there are also dedicated developers in the project called “Bug triagers” for performing these tasks.

5. Signing off:

The final step in this QA process is the release of a stable product that has passed all necessary tests, that is called “Signing Off”, Ludovic explained that they usually generate a nightly build (unstable version) every day, from that build a more stable version called “Aurora” is frozen and after that a “Beta” release is done that finally gets officially released as “Stable”…

The following tools are used in Mozilla to cover the steps explained above:

  • Bugzilla as bug tracker.
  • Buildbot + tbpl + tinderbox for code build automation.
  • Litmus for test case management.
  • Mozilla Wikis + mailing lists + IRC channel for communication between developers, testers, users etc…
  • Selenium, Cucumber and Mozmill for creating and running automated tests.

In the second part of the class Ludovic talked about QA in Thunderbird (a Seamonkey fork), he is the leader of this team (I was surprised to see that such an important project has only one QA manager!), the team is also composed of dedicated volunteers and he is in charge of distributing the tests cases among the volunteers when a new testing campaign is started, usually he organises “Testing Weeks” for this purpose, instead of the “Testing Days” organized in Firefox.

Another difference between Thunderbird and Firefox is that it is mandatory to implement an unitary test for each piece of code that is going to be commited in the repository, therefore when someone commits something in that very moment a build of the code is run and the unitary test is executed, if the build or the test fails the commit is rejected.

At the end of the session we had time for more questions (some of them a bit tricky!) and there was some discussion about Firefox vs. Chrome and the “Rapid Release” process that was setup to try to make Firefox competitive against Chrome but that is also causing that users are constantly fired with pop-up windows requiring updates that sometimes make the browser unstable or some of the already installed add-ons unusable for the future…

For me the conclusion to that discussion is that currently Chrome is clearly better than Firefox but it is in our hands (as FLOSS supporters) to change that and start contributing in Firefox to boost its development, it is not enough to just complain about how slow and unstable it is :-)

Posted in FLOSS | Tagged , | Leave a comment

[Paper] Developer Belief vs. Reality: The Case of the Commit Size Distribution

Via the @jgbarah twitter I have discovered the paper “Developer Belief vs. Reality: The Case of the Commit Size Distribution” by Dirk Riehle, Carsten Kolassa, Michel A. Salim where they talk about the difference of what tool developers think is true about the size of code contributions and the reality, with this study their idea is to help improving software development tools by aligning underlying design assumptions closer with reality.

For those students of the MWSL who have attended the “Project Evaluation” subject this year like me I recommend reading the paper as it uses Oholoh (one of the resources we have analysed in the class) as main data source for their study, stating that they have choosen this source because:

“Unlike data sources like SourceForge.net the Ohloh data has no apparent bias towards any particular category of open source project. The only bias we could see is a focus on active projects with engaged user communities, as the Ohloh service requires community participation to have a project listed (self-reporting bias), as well as an English-language bias, given that the Ohloh website is written in English.”

This is one of the biggest advantages we have seen in the Master about using Oholoh, the fact that it does not provide quality assesments, it just retrieves the necessary metadata from different FLOSS repositories/forges and presents the data to the user, letting you the work of analysing that data with a set of graphical tools that they also provide, also users can actively participate by registering themselves as users of a given FLOSS tool so the popularity of the tool is increased in Ohloh’s site, these characteristics make Oholoh a very “community oriented” tool…

To compare the developers belief and the reality they got an snapshot of Oholoh in March 2008 that contained 11,143 open source projects and took as representative the 5,117 active ones within that snapshot, the other data source they used in the paper were the surveys they performed to a group of developers, with data from both resources they performed their comparison.

Also they selected a set of closed projects and did the same work, finding some differences in the developer estimations because the commit size distribution has its maximum at around 20 LoC (lines of code) in FLOSS and 50 LoC Closed projects.

The main conclusion of the paper is that they found that 1-3 lines of code are the most common commit size while developers predict it would be much higher, therefore they state that software development tools may have suboptimal designs that can be improved and as a possible solution they strongly suggests revisiting the design of code-centric development tools…

Posted in FLOSS | Tagged , | Leave a comment

Eclipse – Support for new emerging languages

En un post en su blog sobre marketing Eclipse, Ian Skerrett nos habla sobre nuevos lenguajes de programación que están surgiendo tales como Dart, Ceylon o Xtend, todos han sido impulsados por algunos de los grandes “mecenas” del mundillo FLOSS como Google o la Eclipse Foundation…
De los que menciona Ian, solamente conozco un poco Dart, ya que lo están empezando a usar en mi empresa en la implementación de un prototipo de centro de control de tráfico ferroviario para Renfe y de momento por lo que me comentan aunque la plataforma está muy “verde” el desarrollo con este lenguaje es muy ágil y fácilmente adaptable a metodologías XP, Scrum etc…

Posted in Daily Bytes, FLOSS | Tagged | Leave a comment