A somehow late recap on 2013

First of all let me wish you a happy new year, dear reader! These kinds of posts are supposed to be published in the last days of the year, but I needed some holidays before being back at full-steam.

That’s because 2013 has been quite a ride from the professional point of view. I have never touched so many different technologies and frameworks in such a relatively short time period:

  • I started the year Introducing KiCad, one of the best free software EDA software suites. I have been contributing to KiCad for some months and even gave a talk to the students at the Facultade de Informática da Coruña.
  • PhpReport got a new release in the first months of 2013.
  • I was also Playing with HTML5 in my spare time to develop a full, albeit short, arcade game.
  • I have helped my fellow Igalian Juan A. Suárez to debug the XML meta-plugin for Grilo, which will allow the development of simpler Grilo plugins using an XML based language. We hope to release it (and blog about it!) in the months to come.
  • I also took some steps into Android application development.
  • And finally, I joined the LibreOffice community where I have been happily contributing to the support of OOXML standard and helping to detect and correct accessibility problems. I’ve already been granted commit permission on the main repo and invited to join ESC meetings. I feel really honored and grateful about that.


Another feat of 2013 is that Igalia has turned 12, and we celebrated it as a part of the last Igalia summit. We spent the weekend in a really beautiful location in Galicia where we were able to relax, eat, drink, compete in the first official Igalia gymkhana and we even had time to sit down together to discuss how to face the future, spread our values and keep enjoying what we do.

I am really happy to show how Igalia keeps going forward on its compromise with Free Software. In the last year we joined a number of consortia and associations and sponsored FLOSS-related events all around the world. I would like to highlight our membership to the W3C, with whom we will contribute shaping the Web of the future, our partnership with Adobe to implement new web standards, our sponsorship to multiple Linux Foundation events or our support to The Document Foundation.

2014 is ahead and it bring new challenges for sure; my only wish is having the energy to face them with passion!

KiCad nas XII Xornadas Libres

De novo visito a  Facultade de Informática da Coruña para participar na seguinte edición das Xornadas Libres que organiza o GPUL. Para esta ocasión preparo un pequeno taller sobre KiCad coa axuda do meu compañeiro Samuel. Trataremos de mostrar un ciclo completo do deseño dun proxecto hardware usando esta ferramenta.

Así que este xoves 25 ás 18:00 haberá KiCad na Facultade, pero non olvidedes botarlle un ollo ao resto de actividades, que abranguen diversos aspectos da cultura libre; sen ir máis lonxe, o meu compañeiro Chema tamén estará alí para convencer aos desenvolvedores noveis da importancia de licenciar o seu software.

Vémonos alí!

KiCad bug squashing, round 2

Here we are again with a new batch of fixes for KiCad, again with a focus on usability and UX. Those are the kind of things that make a piece of software outstand among its competitors 🙂

Cyrillic text plotted as ??? when I plot dxf from eeschema (#1107767): sometimes we developers don’t realize about all the variety of use cases out there… and this is specially true when managing user text input. In this particular case, non-ASCII text was not correctly plotted to .dxf files. Our fix outputs non-ASCII text as lines because that’s the most compatible option. It’s waiting to be merged.

Launcher: create empty directory for new projects (#1108773): a good practice for KiCad projects is saving them in their own directory, because they are comprised by several different files (schematic, board, netlist, libraries…) and they must be kept together to backup or distribute the project. From now on, KiCad will check if you are creating a project in a new directory and will suggest to do it if that’s not the case.

Eeschema: title bar provides outdated information (#1110651): I was myself very confused the first times I used the application and realized that the title bar was not updated after saving the project for the first time or with a new name. That lack of feedback makes the user doubt about the reliability of the software, even when the save operations were working correctly. Fortunately the support was already there and the problem was fixed with a very simple patch.

Inconsistency between confirmation dialogs (#1116059): the different KiCad sub-apps showed different exit confirmation dialogs. It’s not actually a terrible problem because the user was still being warned about losing unsaved changes, but those different messages with different options (Yes/No, Save/Don’t save/Cancel) gave a somehow unprofessional look. Now the three-option exit confirmation dialog is used in all cases.

Eeschema: schematic files might be saved having a wrong file extension (#1122212): this was again a UI consistency problem. Some save dialogs forced the addition of the file extension even when not explicitly set, while others didn’t. At the same time, most open file dialogs expected the files to have the proper extensions and that could lead to strange situations like saving a file without extension and not being able to open it until manually renamed. Antía’s patch is ready and waiting to be integrated upstream.

PcbNew: Insert a footprint in the board, from the Library Browser, by double clicking on it (#1125047): we had already done the same improvement to the library browser in Eeschema. It was a simple change but it greatly improved the usability of that window. We’ve just realized that the same was happening in Pcbnew; although it was less noticeable because you usually import all the components from the netlist and don’t add them manually, Antía fixed it too and we expect to have it upstream soon.

Finally, I sent an amendment to my patches for bugs #1101718 and #1102381 because I wasn’t really satisfied with the solution and, as I suspected, there was a simpler way to do things.

I would like to thank the KiCad community members for being so welcoming in the last months. We are very proud here at Igalia for taking part in this process and help improving the state of the art of EDA open source software. And remember that we are ready and available if you need some consultancy work on KiCad.

KiCad bug squashing, round 1

We have taken over the project bug tracker to get some issues fixed. Bugfixing is sometimes an annoying task , but provides one of the most tangible sensations of contribution as you see how real problems that affect to your users disappear 🙂


Here is a list of our recent contributions:

Eeschema: actions disabled during move operation can be accessed via hotkeys (#1092837): some actions that were disabled from the menus while doing special operations (drag, move) were accessible using their corresponding hotkeys. The fix of this bug resulted on a review of the hotkeys code: some new ones were added, and we made sure that their actions were undoable.

Set focus on the exit confirmation dialog button (#1092873): there are some UI behaviours we all are used to; one of them is using tab + enter or space to manipulate options in modal dialogs. You couldn’t do that in some dialogs because focus was not being correctly set, but it seemed to happen only in version 2.8 of wxWidgets for GTK+. After some discussion and patches back and forth, Dick Hollenbeck commited a fix.

Empty plot filename (#1101718): after you first save a project, some internal structures were not refreshed correctly, which caused that output operations that use the file name didn’t work as expected. In particular, when plotting a schematic the output file got an empty name.

Eeschema: -cache.lib file not created the first time you save (#1102381): as another consequence of the previous bug, the library cache files were saved with an empty name too. Our patches for both are already merged.

Pcbnew: crash when deleting a track (#1108717): a blocking stdout operation was freezing the UI when the program was launched under certain conditions. It seems to be a problem happening only in debug builds and there’s no agreement about how to fix it, so we will live with it; after all, real users are not affected.

Eeschema: error message when opening a file with a long path from the command line (#1108838): this bug was a consequence of file paths not being correctly normalized (make absolute, remove .. and . directories) when creating the lock files. A patch is waiting to be pushed.

We detected and reported other bugs, some were already fixed by other community members and others are patiently waiting for the next bug squashing round, live from Igalia!

Introducing KiCad: because open hardware needs open tools

Lately you have had the chance to read some posts related to open hardware in Planet Igalia. It’s natural for a company with strong roots in the free software movement like ours to jump into this exciting new world.

While some igalians started working in the kernel support of some open hardware boards, others have noticed that there is a lack of specialized free software to work with schematic, PCB designs and so. That’s why we decided to start contributing to KiCad project.

While there are other alternatives, KiCad is in a really good position to become the reference software in this field. It already has a good number of features and a strong user base. It just needs some push to grow and catch up with the existing privative tools.

Our first patches focus on usability issues; it has allowed us to get to know the code base while generating useful contributions. You can already see some of them in the project repository or in the developers list, like:

  • Double click on the component name in the library browser will add it to the document, no need to click on the component and then press “insert component”  in the menu bar.
  • While performing a drag operation, now you can open the component edition dialog from the context menu or using the hotkey. By extension, you can do this also when you select a group and that group contains only one component.
  • Protect the application from opening the same document more than once.
  • Added an import feature in the schematic editor, so you can quickly copy the components from another sheet into yours. It’s useful if you periodically repeat some components among your sheets (for example, placing your logo and some information in a corner).
  • Added a log to KiCad launcher, informing the user about the applications that have been opened or closed.

You will be able to read about our next steps here, and if you need assistance on KiCad, now you can knock at our door!