One year of Mesa


During the last year and something, my work at Igalia was focused on the Intel i965 driver for Mesa, the open source OpenGL implementation. Iago and Samuel were working for some time, then joined Edu and Antía, and then I joined myself, as the fifth igalian.

One of the reasons I will always remember working on this project is that I was also being a father for a year and something, so it will be always easy to relate one and the other. Changes! A project change plus a total life change.

In fact the parenthood affected a little how I joined the project. We (as Igalia) decided that I would be a good candidate to join the project around April. But as my leave of absence was estimated to be around the last weeks of May, and it would be strange to start a project and suddenly disappear, we decided to postpone the joining just after the parental leave. So I spent some time closing and transferring the stuff I was doing at Igalia at that moment, and starting to get into the specifics of Intel driver, and then at the end of May, my parental leave started. Pedro is here!


Pedro’s day zero

Mesa can be a challenging project, but nothing compared to how to parent. A lot of changes. In Spain the more usual parental leave for the father is 15 days, where the only  flexibility is that you need to take 2 just after the child has born, and chose when take the other 13. But those 13 needs to be taken in a row. So I decided to took 15 days in a row. Igalia gives you 15 extra days. In fact, the equivalent to 15 days, as they gives you flexibility of how to take them. So instead of took them as 15 full-day, I decided to take 30 part-time days. Additionally Pedro’s grandmother (maternal) came to live with us for a month. That allowed us to do a step by step go back to work. So it was something like:

  • Pedro was born, I am in full parental leave, plus grandmother living at our house helping.
  • I start to work part-time
  • Grandmother goes back to Brazil
  • I start to work full-time.
  • Pedro’s mother goes back to work part-time

And probably the more complicated moment was when Pedro’s mother went back to work. More or less at that time we switched the usual grandparents (paternal) weekend visits to in-week visits. So what it is my usual timetable? Three days per week I work 8:00-14:30 at my home, and I take care of Pedro on the afternoon, when his mother goes to work. Two days per week is 8:00-12:30 at my home, and 15:00-20:00 at my parents home. And that is more or less, as no day is the same that the other 😉 And now I go more to the parks!

Pedro playing on a park
Pedro playing on a park

There were other changes. For example switched from being one of the usual suspects at Igalia office to start to work mostly from home. In any case the experience is totally worthing, and it is incredible how fast the time passed. Pedro is one year old already!

Pedro destroying his birthday cake
Mesa tasks

I almost forgot that this blog post started to talk about my work on Mesa. So many photos! During this year, I have participated (although not alone, specially on spec implementations) in the following tasks (and except last one, in chronological order):

About which task I liked the most, I think that it was the work done on optimizing the NIR to vec4 pass. And not forget that the work done by Igalia to implement internalformat_query2 and vertex_attrib_64bit, plus the work done by Iago and Samuel with fp64, helped to get Mesa 12.0 exposing OpenGL 4.2 support on Broadwell and later.

What happens with accessibility?

Being working full time for the same project for a full year, plus learning how to parent, means that I didn’t have too much spare time for accessibility development. Having said so, I have been reviewing ATK patches, doing the ATK releases regularly and keeping an eye on the GNOME accessibility mailing lists, so I’m still around. And we have Joanmarie Diggs, also fellow igalian, still rocking on improving Orca, WebKitGTK and WAI-ARIA.


Finally, I’d like to thank both Intel and Igalia for supporting my work on Mesa and i965 all this time. Specially on allowing me so flexible timetable, where the important is what you deliver, and not when you do the work, allowing me to enjoy parenthood. I also want to thanks the igalian colleagues I has been working during this year, Iago, Samuel, Antía, Edu, Andrés, and Juan, and all those at Intel who have been helping and reviewing my work during all this year, like Jason Ekstrand, Kenneth Graunke, Matt Turner and Francisco Jerez.


GNOME 3.4: Finally Orca+GNOME3

GNOME 3.4 is here!

Well, this is not really something new, but GNOME 3.4 was released. And as the release notes explains and Mathias Clasen advanced on his blog, one of the things improved was the screen reader support. On some of my old posts, I already mentioned how some stuff were slowly being added (like here and here). Although that work was also required, was mostly low level ATK stuff, and not really impressive from the POV of the user. After that work the outcome was GNOME Shell exposing some info through the accessibility technologies and Orca knowing that GNOME Shell is there. But it was mostly babbling.

For GNOME 3.4 we finally made a whole review of the GNOME Shell UI. Now most of those UI elements expose the proper combination of name, role (if the element is a button or not) and state (if a toggle button is checked or not). Adding the improvement on the stability and performance of the accessibility technologies (both at-spi2 and Orca), we have now something that we can ask Orca users to test. You can take a look to the result on this video:

[Video in Vimeo] [Full quality video in Ogv]

And now?

This is the first release of GNOME 3.4 with a proper Orca support, so the first one that we can proudly show to our users, so for sure we will get some feedback and some additional stuff to improve. But after all, GNOME has a bugzilla for a reason. During this cycle some users reported some issues with gdm, so we would require to review that part. For sure GNOME 3.6 will have a better accessibility support.

In the same way, don’t forget that GNOME Shell has other accessibility related features. Since GNOME 3.2 has a built-in magnifier, and now, with GNOME 3.4 it is fully configurable on the Universal Access Settings dialog. And for 3.6 it will have brightness and contrast functionality (something that Joseph Scheuhammer finished just after the code freeze) and hopefully focus-tracking.

Acknowledges and conclusions

This release shows how having people with some time to work on the accessibility stack can make things improve. Gtk accessibility is in a better shape thanks to Benjamin Otte. at-spi2 thanks to Mike Gorse. GNOME Shell magnifier thanks to Joseph Scheuhammer. Orca thanks to Joanmarie. Although GNOME 3.2 was an step over GNOME 3.0, the fact is it is more noticeable on GNOME 3.4, and it is mostly due the fact that for GNOME 3.2 (and perhaps 3.0) people were more busy on other stuff. Lesson learned: we need to find a way to keep people working on accessibility and getting more people.

Finally, I would like to mention that this is the first GNOME release since Joanmarie Diggs joined Igalia. Having her on Igalia and getting a release with a noticeable improvement on the accessibility support for GNOME Shell, and the performance and stability of Orca, is not a mere coincidence. Her experience, energy and motivation was a push to the work that Igalia has being doing.

ATK/AT-SPI2 Hackfest 2012: Day 1


Today the ATK/AT-SPI2 Hackfest 2012 started. This time there are fewer people than last year, but we have the addition of Benjamin Otte. During the morning the main topic was global events versus per-object events. Although being simplistic the idea would be just listening to the focused object, things get complex when you start to add some practical examples, like searching. On a web page, or in GNOME Shell overview, the focus is on the text entry. But when you start to search, the content of the search result changes, and you also want to expose that. This could be solved with global-events and filtering, or with direct per-object connection to “relevant” objects. If per-object is used, it is required to decide how and with which objects, to avoid missing notifications. In any case, if we decide to keep global events, the current implementation of the global event listening in ATK seems to not be the most appropriate (as it is based on g_signal add_emission_hook, that has some problems and could be considered overkill).

During the afternoon the main topic was the removal of key grabbing in GTK, or going into more detail, deprecating gtk_key_snooper_install. The controversial part was that the code using that on the accessibility support for GTK was removed. The reason is basically that key event emission shouldn’t be done there for a lot of reasons (as we already concluded during the previous hackfest), so that removal could be justified. *But* at this moment there isn’t any alternative implemented, so several things were broken. So in the end, the conclusion was reverse that change until there is an alternative. Probably this is a good task for this hackfest (anyway, any X expert over here?).

Going to dinner can be hard

Since today was the first day, we decided to keep it simple, and try to have dinner near the hotel where most of the people are staying. So after finding that our first option was closed, and wandering around for a while, we entered a place that seemed ok. Well, typical tascas in Galicia are in general not really vegetarian friendly, and although you can find really nice places (like “Taberna Gaia”), some people can still surprise yourself. Note: it doesn’t matter if macaroni are a kind of pasta. If the sauce includes meat, it is not vegetarian. Additionally, it was a bar with TV. And although it was not too loud at the beginning, it became totally noisy when the soccer match started. Yes, we forgot about the Real Madrid-Barcelona match.

Day 2 is coming

And tomorrow there will be more. We have plenty of things to discuss and bugs to solve, so for sure it will be a busy day. Finally I want to thank Igalia, GNOME Foundation and Mozilla Foundation for sponsoring this event.

GNOME FoundationMozilla Foundation

Doing new things: releasing and some Jazz

Last week+weekend was really busy for this tired igalian.


Monday 13th started with my first ATK release (announcement here). Just some weeks ago I became ATK co-maintainer. Again, thanks to Li Yuan.

And then GNOME 3.1.2 release. Somewhat messy. And delayed more than one day. Announcement here. Thanks to all the release members that helped me doing the release, especially Kjartan Maraas, who was something like my tutor here.

More of that Jazz

This Saturday I made a visit to Vigo, in order to participate on the “7º Festival de Jazz de Vigo Imaxinasons” (7th Imaxinasons Vigo Jazz Festival). This is the fifth time that the Jazz band at “Escuela Municipal de Música de A Coruña” (Coruña Municipal Music School) participates on this festival.

I’m a student on this school and I joined the jazz group the last year, so I’m somehow the rookie here. This is the first time that I go to this festival. We were part of the group of bands that played on the street (as most of the concerts were the typical “in-house” concerts). So we had 4 concerts this Saturday. Hey, but we only played all the repertoire in the last one 😉 So almost 4 hours playing music. Then you add the time setting up all the stuff and then cleaning up … well it was a really busy Saturday 😛

ATK/AT-SPI2 Hackfest 2011: Day 5

Well, I planned to make more posts about the ATK/AT-SPI2 hackfest that we are organizing here at Igalia offices, but I was really busy attending it. So we are right now on the wrap up day.

In general most of the time used on the hackfest was in order to make a full review of the agenda that we created on day 1. This hackfest was somewhat different to other hackfest I attended before. While most of those were mostly focused on coding, with some discussion and analysis, this ATK/AT-SPI2 hackfest was more discussion and analysis, with some coding. But the good new is that right now we have a better understanding of the current situation, and the next steps in the future in relation to improve ATK/AT-SPI2, and summarized on the page that originally was our agenda.

Some other things happened these days. For example, some of us (native spanish speakers) gave some accessibility talks at FIC (Coruña Computer Science Faculty). Good way to promote accessibility among computer science students. Although it is true that we didn’t have a really big amount of students on those talks. Collateral effects of doing those talks on the last month of the academic course.

Although he was not on the offices, during the hackfest Benjamin Otte started a interesting thread about the relation between GTK and ATK. In summary he thinks that the best solution to improve the current accessibility support on GTK should be the removal of ATK, merging his functionality with GTK. And AFAIK, he has also some doubts about the existence of AT-SPI2. This is similar to current Qt approach, as they don’t use ATK, although they don’t have any problem with AT-SPI2 (in summary they had an qt-bridge instead of an atk-bridge). In fact, Frederik Gladhorn, a Qt developer, was here in this hackfest, and he provided a lot of valuable proposals.

Although it is true that adding intermediate abstract layers have their cons and pros, I’m still one of the ones that thinks than the benefits are more than the drawbacks. Specifically taking into account that ATK is implemented not only by GTK+ (also Clutter, Mozilla, LibreOffice, Unity, etc). Anyway, it is an interesting thread. Lets see what we can extract from it.

Finally, you can find a group photo here (the photographer was Mario Sanchez).

Again thanks to all the sponsors, Igalia, GNOME Foundation, GPUL, Xunta de Galicia and Mozilla Foundation Inc.

ATK/AT-SPI2 Hackfest 2011: Day 1

ATK/AT-SPI2 hackfest has started today at Igalia offices.

The first task of the morning was organize the bugs that we detected that we need to discuss on the hackfest. That was not easy, as currently our “Towards ATK 2.0” metabug is including about 40 bugs, and we also included some items that doesn’t have an explicit bug.

In summary we mostly did a quick review of each bug, seeing how that affect different components, and trying to prioritize them. Finally we were able to get a proper Agenda.

After the lunch, and now with all the hackfest people, we started the discussion of each specific item detected on the agenda, starting with Table implementation (like stated in this bug and this other one).

In the previous picture you can see some of the people on this discussion. Left-right you can find Fernando Herrera (Firefox), Frederik Gladhorn (Qt), Alexander Surkov (Firefox), Mario (WebkitGTK) and Joanmarie Diggs (Orca). A good amount of different projects inside those brackets.

Again thanks to all the sponsors, Igalia, GNOME Foundation, GPUL, Xunta de Galicia and Mozilla Foundation Inc.