WebKitGTK+ hackfest wrap up

After more than 5 days of hacking, discussions and some social activities, the 3rd edition of the WebKitGTK+ hackfest, which took place at the Igalia office in A Coruña, is coming to its end. We are about to go for dinner and most people are leaving tomorrow early in the morning, so it is time  for wrapping up.

WebKitGTK+ 2011 Hackfest

In my opinion the hackfest has been a success both in terms of technical progress and consolidating a common vision within the team about the way forward both for WebKitGTK+ and Epiphany. The intense work we have been doing during the past 2 years has given its results, and unlike the previous two editions in 2009 and 2010, the topics defined in the agenda this time were not mainly about fixing critical and blocker bugs and implementing basic missing features, but about more ambitious and challenging goals, aiming to make WebKitGTK+ and Epiphany rock.

Examples of this are the progress achieved this week in several areas, including the Epiphany improvements & new design, a consolidated WebKit2 API (which will improve the performance and stability once used by the browsers and embedders), accelerated compositing support, improved HTML5 video support, better accessibility support, JSC improvements, HTML5 notifications, HTML5 history, better networking, new and more updated bots for the continuous integration, or developer documentation.

Besides taking care of many of the organizational bits, my contributions were focused on participating in the discussions about the new Epiphany UI and mainly on the integration of open web apps and HTML5 technologies within GNOME. I will be blogging very soon about how we see this integration happening and the initial proofs of concept that we have already started to implement.

WebKitGTK+ 2011 Hackfest

Finally, I would like to thank our sponsors (Collabora, Motorola and Igalia) and mainly the GNOME Foundation for their contributions. Without this support, getting together 20 hackers in the same room, taking care of them, and enabling all the progress we have had during the week would have been impossible.

Open web apps and device APIs

During the past couple of weeks I have been (together with some other colleagues at Igalia) checking the different solutions that the main actors in the ‘open web’ are proposing to enable the local installation of web apps and the interaction with the underlying platform or device, in some cases going beyond the standard HTML5 interfaces.

I will try to give here a high level overview of the alternatives and also provide a few links that can be useful for those interested in the topic.

  • W3C

In 2006, the W3C started to work in the definition of W3C Widgets. Despite what the name may suggest, those ‘widgets’ are actually complete apps developed using HTML5 technologies (HTML/CSS/JavaScript), packaged as compressed files, which include an XML manifest with metainformation. You can read a more detailed explanation about what ‘widgets’ are and what they are not in this series of blog posts published recently in the W3C community pages.

Three years later, in 2009, the W3C started to work on another complementary standard called DAP (Device API), an extension of the HTML5 APIs that would allow a more complete access from DAP enabled apps to the system where they are running, including interactions with battery, camera, contacts, basic messaging, network, vibrator, sensor and calendar.

These two standards were used by some third parties, sometimes partially modifying them, and in other cases taking them as inspiration for pretty different and incompatible solutions (leading to a well known situation). We will see now the main alternatives that have appeared during the past couple of years.

  • WAC

At Mobile World Congress 2010, in Barcelona, 24 major operators announced WAC (Wholesale Applications Community), an industry consortium to create an open platform for developing and distributing HTML5-based mobile apps.

WAC defines APIs for interaction with the device’s camera, contacts, calendar, tasks, messaging (basic), accelerometer, device status, filesystem, device interaction (lights, vibration), orientation, geolocation. They are similar but not totally compatible with W3C APIs. There is a multiplatform SDK based on Eclipse and the Android emulator which automates the process of creating the package with the XML manifest and the  HTML/JS/CSS files, and testing it.

The consortium is currently working on the 3.0 release of the WAC API spec, which according to the (lack of) information available in their webpage is being defined privately, making participation of those external to the consortium extremely difficult. Also, the channel for application distribution is proprietary, so although WAC is based on open standards, the solution is quite closed and seems not attractive for open source projects.

  • Chrome

A bit later, still in 2010, at the same time they announced the Chrome web store, Google defined two possibilities in order to install web apps in the browser: hosted apps and packaged apps.

Hosted apps are a classical webpage which provides a JSON manifest (similar to the one that had been defined for the W3C widgets) including the launch URL, basic data, autoupdate settings, permission for accessing each of the standard HTML5, and a few other bits. Providing the manifest enables easier installation and
simplifies and speeds up a bit the opening of the webpage, but that’s all.

Packaged apps go a step beyond. They are webapps that are bundled into a .crx file (a Zip file, same format used for Chrome extensions), they can use most of the Chrome extension API (only the creation of page actions and browser actions are not allowed), and are limited to 10MB of total size. Packaged apps include the same kind of manifest than hosted apps (this time describing also permissions for accessing the Chrome extension API modules), so they are similar to (but incompatible with) the W3C Widgets. There are various reasons why this kind of apps make more sense than a hosted app for some use cases.

It is worth noticing, for those less familiar with the terms, that packaged apps, although they use the Chrome extension API, are something totally different. Extensions don’t have their own UI and are complementing the behaviour of the browser, typically for all the webpages, while packaged apps are actual web apps with their own UI, that are designed to run locally. There are  instructions available which clarify when hosted apps, extensions and packaged apps are typically used.

Although Google’s proposals are well documented, they seem to be clearly targeting their own app store, and not the open web. There is not a description of how somebody could install Chrome web applications from their own webpage.

As far as I know, Google hasn’t defined a solution similar to DAP’s or WAC’s device APIs so far, so their proposal for device interaction would be to use just standard HTML5 interfaces.

  • Mozilla

More recently, in February 2011, Mozilla announced that they were working on what they call Open Web Apps. The idea is pretty similar to W3C’s Widgets and Chrome’s hosted apps: ordinary web apps plus a JSON manifest with very similar but yet again slightly incompatible fields. The main two additions are a ‘widget’ field where you can point to an HTML file that would be a simplified version of your standard UI, and a few well documented hooks in order to enable the creation of app stores not controlled by Mozilla (e.g. navigator.mozApps.install, navigator.mozApps.amInstalled JavaScript functions).

Even more recently, in August 2011, they announced WebAPI, an extended HTML5 API specially designed for phones, similar to W3C’s DAP and WAC, but again not compatible. WebAPI includes APIs for telephony&messaging, contacts, battery, contacts, camera, filesystem, device status, settings, accelerometer, mouse lock, vibrator, and more. Although the work has just started,  there are already some examples of applications working on Android using some bits of WebAPI.

This comment in Mozilla’s bugzilla is relevant if you are trying to understand why they are not considering using WAC’s APIs directly. And this email to one W3C mailing list is relevant to understand why they didn’t use W3C’s DAP either.

As far as I know, Mozilla doesn’t have the equivalent to Chrome’s packaged apps, or ‘W3C Widgets’, and they are focusing the work more on open web apps and the extended device APIs.

  • Summary

The W3C, Google, Mozilla, WAC and others have been working for the past three years on defining proposals for the installation of web apps and the interaction with the underlying system/device from them. Although unfortunately the situation is quite fragmented, given that the solutions are quite similar, it is possible to imagine a convergence in the near future, that would benefit (almost) everybody. There have been already positive statements by some of the key players.

Announcing the WebKitGTK+ hackfest 2011

For the third year in a row, by the end of this month (29th of November – 5th of December) we will be hosting at the igalia office in A Coruña a new edition of the WebKitGTK+ hackfest.

WebKitGTK+ 2010 Hackfest

About 20 GNOME and WebKit hackers will be working in the same place for a week on topics related to WebKitGTK+, Epiphany, JavaScriptCore, accelerated compositing, networking, accessibility, multimedia, GNOME Shell browser integration, web technologies for GNOME apps, and more.

The event is possible thanks to the invaluable support of the GNOME Foundation, being both Collabora and Igalia official sponsors.

The hackfest was a total success in previous years, and we have even higher expectations for this edition. We will blog during the week about the plans and achievements, so stay tuned.

10 years of igalia

As you probably have noticed via other sources, this month we are celebrating something very significant for us at igalia: we, the company, the project, the collective, are becoming 10 years old.

It has been an amazingly intense experience. 10 years is a lot of time, and for those of us who have been here since the very beginning, born close to the end of the 70s, it means that about 1/3 of our life, and therefore almost all our adulthood, was professionally devoted to contribute to the construction and evolution of igalia.

Although many things were discussed along several meetings during the first half of 2001, when we started defining our founding principles, two were clearly identified as the pillars of the project:

  • We wanted to develop free software, to participate in the amazing, international network of cooperation where people were then starting to explore new paths towards open innovation. Using and supporting free software, the most common business models back then (and arguably still now) was nice, but we wanted to go further and to humbly devote most of our energy to build new -and to contribute to already existent- software.
  • We wanted to bring direct democracy to the working place, embracing a cooperative internal structure, sharing ownership and making all the members of the project participate in the discussions and decisions that define the future of the company.

Looking back, I honestly think that we did a good job respecting those founding principles. Both us (individually and collectively) and our environment have changed a lot over the years, we have gone from a small local team of people to a much bigger and international team composed by colleagues with many nationalities working from many different locations; we have gone from small and local customers to working internationally with most of the relevant actors which are using or contributing to the different open source platforms/projects; we have gone from being relatively inexperienced but passionate and willing to learn to equally passionate but with already some experiences to learn from; and all this time, without exceptions, the essence has remained untouched: the spirit was the same all the time, and we still do free software, and we still believe in people and keep the flat internal structure.

It is quite difficult for me to write this post. Many memories and feelings cross my head, many good moments and also some more complicated ones, mainly in the first period, when a huge percentage of companies disappear and we managed to resist, learn and grow. If I wanted to be fair I would need to thank here a lot of people, a very big list, all those who in one way or another were part of this project, for all the help and support along the years, but they already know who they are and how grateful I am, so I will keep it private, and just say that I am very proud of what we have achieved:  10 years participating in the free (software) world.

Watching the GUADEC WebM live streams with Epiphany

Although it is being recommended to use Opera or the latest Firefox 4 beta to watch the GUADEC live video streams, there is another option: Epiphany. Here you can see a screenshot of what is being shown right now in one of the conference rooms, using GNOME 2.28 in Fedora 12:

The support for the HTML5 video tag in WebKitGTK+ was implemented by Philippe Normand as part of his work at Igalia during the last months. The video is reproduced using gstreamer as backend, so if you have the proper support for WebM installed in gstreamer, you can follow GUADEC using Epiphany.

Igalia at GUADEC 2010

Together with a big group of igalians, I am spending the week at Den Haag, international city of peace and justice, to attend GUADEC.

Igalia is sponsoring at Silver level again, and several of us will be giving talks during the core days; among them, I would like to highlight 4 projects we have been pushing forward quite actively this year:

  • WebKitGTK+: as Luis said during his keynote, GNOME must embrace the web and its technologies and standards (Javascript/HTML). Aligned with that thinking, during the past year we have been working hard in bringing the GNOME port of WebKit forward, improving performance and stability, and implementing relevant new features such as the awesome DOM bindings, the HTML5 video tag support using gstreamer as backend, and an increasingly complete a11y support. There are already many GNOME apps using WebKit and I bet more will do that soon. The talk by Xan and Gustavo on Friday afternoon is a must for those of you interested in these topics.
  • Cally: although born as an external library implementing a11y support for clutter, has been recently merged very recently as official part of clutter. Our plans now are to start integrating and extending it so that all the functionality of clutter-based projects like the GNOME Shell can be used by people with disabilities, in a similar way to how can use now the rest of the desktop nowadays. Alejandro Piñeiro covered all this in his nice talk today’s morning.
  • Grilo: a solution to avoid reinventing the wheel when trying to access different media providers (both locally and over the internet) in multimedia applications. There are already plugins for banshee and rhythmbox working as a proof of concept, and the GNOME’s MediaServer dbus API is implemented too. Iago will give a talk about this tomorrow early in the morning, an ideal timing for those who want to wake up early after today’s party 🙂
  • Modest: a lightweight, simple alternative to Evolution for all kind of devices, from handhelds to powerful desktop machines. Modest was born for the Fremantle release of Maemo, but has now a nice GNOME version. It has some limitations still, but the UI is clean and fast, and it could be a good complement as part of GNOME to Evolution or derived projects like Anjal, which don’t have exactly the same goals and advantages. José Dapena will talk about Modest tomorrow afternoon during his talk.

And as a warm up for all this, I spent the whole day yesterday at the GNOME Foundation’s advisory board meeting, which was long but quite productive, I think.  It is always good to get an update about what each of the member companies have been doing and are planning to do, and have some discussion about opportunities for cooperation.

By the way, we have some new Igalia t-shirts left. If you want one, just approach any of us and ask!

Everything ready for the WebKitGTK+ Hackfest

During the past weeks, Xan and myself have been busy putting together everything for the WebKitGTK+ Hackfest, which will take place next week at Igalia‘s offices in the beautiful city of Corunna.

The original idea for this event arose a few months ago. We have a team of Igalians working full-time, together with other members of the community, in completing and improving GNOME’s WebKit port, and we thought that it would be a good idea to propose ourselves to host a hackfest, which should turn out to be very productive for the project. After talking to the Foundation and all the core developers, we got such a positive feedback, that we decided to push it forward.

So we will have here all the most active WebKitGTK+ hackers, working together, in the same place, during 1 week (15th-21st of December), to make one of the (imho) most important components of our platform rock even more.

The hackfest is sponsored by Collabora and Igalia, and has the support of the GNOME Foundation, which covers about half of the total cost. Igalia will also take care of food&drinks for all the days, and will organize a nice dinner before the end of the event, so that people don’t leave the place without enjoying the famous local food. Of course, any last minute extra sponsor would be very welcome. So if your company cares about WebKit in GNOME, it is the right time to join and contribute.

Stay tunned, I will try to blog and tweet about the event as much as possible.

Igalia will have a stand at OSiM 2009

This week, from Monday to Thursday, I will go together with Alex and Xan to Amsterdam for the Open Source in Mobile 2009, an interesting conference where all the main companies using and producing open source in the mobile industry will meet to present and discuss their plans, and find collaboration opportunities.

After successfully attending the previous editions, we thought that it would be nice to go a step further and have our own stand there, in order to be able to share more easily our projects and solutions with the attendants. The organization has also kindly invited us to do a short public presentation about Igalia and to participate in a panel about the best ways to share code.

If you are interested in discussing cooperation around projects/technologies like Linux, Freedesktop.org, GNOME and WebKit, or around platforms like GNOME Mobile, Maemo, Moblin or LiMo, among others, please drop us a line or just come by our stand.

GNOME party sponsored by Igalia @ GCDS

We are pleased to announce that Igalia will be sponsoring the GNOME party during Gran Canaria Desktop Summit, tomorrow Monday, at a nice terrace close to the leisure harbour of Las Palmas.

Some useful tips:

  • Starting time: Monday, 6th of July, 21:30
  • Location: Club Sotavento, Terraza Budweiser, Muelle Deportivo (close to the place where Nokia’s party will take place today). Google map: http://tinyurl.com/my6d4w
  • How to get there: either walking (~25-30 minutes from Las Canteras) or by taxi (~4 Euros)
  • Drinks and some food will be served

The popular Ice cream Death Match will take place there, and we are trying to see if we can arrange some music instruments to improvise a jam session. Stay tuned.

GNOME Igalia party

Please, share this information with the rest of the GNOME lovers/users/developers/supporters.

We hope to see you there!

Carlos Guerreiro and Richard Stallman at the Free Software Master

As part of the academic activities at the master on free software that we organize together with URJC and Caixanova, which this year is taking place in the city of Vigo, we try to invite every year key members of the community, so that they can transmit their motivations, knowledge and experience face to face to the students. Back in early April, Carlos Guerreiro, who had a relevant role inside Maemo since the very first moments in the history of the Internet Tablets, came to visit us for the second year in a row. Carlos gave two very interesting lectures to the students, one about the challenges in the complex relationship between big for-profit corporations and the free software community, and the other one about the differences between the status of the free software technologies for creating commercial embedded devices back in 2002, when Nokia started to look into this world, and now, trying to describe the current technology trends and foresee what will happen in the near future. In both talks, a lot of examples and anecdotes of the history of Maemo were used to illustrate Carlos’ theories and opinions, and the result was a great day where we all learned a lot.

And today, after many months trying to find a suitable date in his obviously complicated agenda, we are going to have Richard Stalllman giving two lectures as part of the Master academic activities. He will talk about the history of the movement and about the risks of software patents. The access to the talks is free as in freedom and as in beer, and we expect about 500 people attending, including the students of this year and the past year (first edition of the master). Making optimal use of our invitation to come to our country, Stallman was giving yesterday another two talks in different cities close to Vigo, arranged by local GLUGs. In total, hopefully, about 1000 people will listen the message of one of the key protagonists of the Free Software history. I’d like to thank Obra Social Caixanova for making all this possible.