FOSS.IN and the need for more events

FOSS.IN and the need for more events

I have sadly missed this years FOSS.in. The goal of this conference is to turn India into a nation of FOSS contributors. There are plenty of people, awesome food!, there is a huge software industry, companies like Tata Consulting are even on Level 5 five of the CMMI model. This means there is a huge potential! But when I get my daily mail on webkit-dev I recognize that it is still a long way from simply consuming, to try to attempt to think, to contributing. And that many more events like FOSS.in need to occur until there is a noticeable difference.

On the other hand with people like Girish, Prashant, pradeepto, Shreyas I have high hopes that the goal will be reached.

Making your own dumplings

Making your own dumplings

If I would be in Taipei I could ask Tick, Jeremy, Erin, Olv, Julian, John to have lunch with me and eat dumplings at one of the restaurants pretty close to the office and lie that it is my first time eating with chop sticks and that my skills are not bad for the first time…. But I’m currently not in Taipei, I have no place to get dumplings. So today was the day to make vegetarian dumplings myself. The process is really simple, you don’t even need a fancy bamboo steamer, just don’t put too much sugar into it… working with tofu and vegetables is also fun. See you soon in Taipei…

The result:
CIMG1493.JPG
CIMG1486.JPG
The filling: Carrots, Pepper, Tofu, Ginger, some Chilli, Garlic, a bit of onions..
CIMG1479.JPG

API Reference Manual for WebKit/Gtk+

API Reference Manual for WebKit/Gtk+

As of two days ago the Gtk+ buildbot is finally running the test suite after every build. And today we even have the first regressions that we need to address/understand. The short-, mid- and long term goal is now to get as many tests running as possible and keep them running. There are quite some bugs to be fixed in WebKit/Gtk+, our base libraries, our testing tools so there is plenty of fun left for everyone.

In the webkit IRC channel we sometimes get questions regarding the API of the WebKit/Gtk+ port and if there are examples. On the one hand we are pretty strong. We have the GtkLauncher, some early adopters, when adding API many people made sure that we have API documentation. On the other hand we are weak as there is no introduction, no generated reference manual, no downloadable samples. So I got a bit sidetracked from the regression work and started to integrate gtk-doc and to cut a long story short: You can find an initial version here.

On to the gory details. Integrating gtk-doc requires recursive make due the way the gtk-doc.make rules are written. This file is copied in from gtkdocize. When dealing with documentation you can not have srcdir != builddir. The html result will be put in the source directory and if you try to squeeze in the @VERSION@ you will need srcdir == builddir. Starting from GtkDoc in live.gnome.org and Florian’s GPE guide one finds pretty much everything one needs to find. Some things needed some look at the tool sourcecode (perl, eeek!) but are clear now.

WEBKIT_API type
function_name (function*…);

To make gtkdoc-scan parse the above as a function you will need to pass –ignore-decorators=”WEBKIT_API” to the tool. Magically plenty of symbols turned up in the -unused.txt file and I was able to copy them into the -sections.txt. Now the tool refused to find any documentation. So remember WebKit/Gtk+ is mostly written in C++ and gtkdoc-mkdb simply does not know about the “.cpp” file extension. So pass –source-suffixes=c,cpp to gtkdoc-mkdb and it will find the sourcecode. Ah functions and their documentation, almost perfect. The last undocumented bit is for -sections.txt. E.g. you have the various _get_type(void) methods and there is little benefit of having them pop up in the API. Inside your “<SECTION>” you can put them into a “<SUBSECTION Private>” and they will be ignored.

The next thing is to get it actually merged into WebKit and integrate having uptodate API reference in the release process.

Link WebKit/Gtk+ faster

Link WebKit/Gtk+ faster

Last year in India Simon showed me an ancient and well hidden qmake feature. With this hidden feature you can easily move some files to a new library.

Why is this good? Well, the new library only contains the files you are currently working on. In most of the cases this will be only a hand full. You will get blazing fast linking and round trip times if you do so.

So today I worked on a issue with SVGFont.cpp and my roundtrip time was way too slow. So I decided to apply this hack to our superb autotools based buildsystem!

So I have a hacky patch which is turning noinst libraries to normal libraries to avoid the running of ar/ranlib. I have created a libWebCoreHack.la, GtkLauncher and DumpRenderTree link to that library now. And you have to move the sources you work on from webcore_sources to webcorehack_sources. With this hack I have almost instant turn around times again.

How to use it: Whenever you work on a area move the usual suspects to the webcorehack_sources, relink once and then you can benefit from the fast link times.

*happy*

How to create a support nightmare?

How to create a support nightmare?

Question: How to create a support nightmare?
Answer: Ask users to overwrite files regardless of what version they have installed with the package manager.

We have a package manager. This means that every installed binary is versioned. This means that with opkg list_installed people can find out what you have installed. Now if you leave the package manager path and randomly ask our friends to overwrite their system libraries with other things found on the net you ask for chaos, fire flames and a lot of breakage. You will create the myth that the latest packaged version is not good enough and even two years from now they will replace the library because the all mighty internet says so. Please let us not go that path.

Instead do something that benefits everyone, do not post binaries (besides the difficulty with the GPL compliance), file a bug report, set HasPatch in the keywords. Within a day new packages should arrive in testing. If this is not the case you have all rights to kick me or anyone else doing work for Openmoko but please do not post binaries! With opkg you can install a _single_ package by giving it the http path to. So one can upgrade only the Qtopia Phone Vendor plugin for the Freerunner if one wants to.

So please file bug reports, attach the patch, upgraded packages will be available shortly afterwards. Everyone is interested in making fixes available as soon as possible (as package though) this is what is unique with Openmoko, everything is publicly avaiable (bugtracker, testing packages…).

Personally Eris is one of my gods but for a phone and being able to support people I prefer sanity over chaos. sorry.

What does rhyme on eek?

What does rhyme on eek?

There is one thing I wanted to do for almost a year. Ever since noha started with toying with seaside I wanted to bring squeak into OpenEmbedded and last week I finally started with compiling the vm. Surprisingly it was more difficult than I thought it was and the result is not as pretty as I would like but the result is this:

The recipe is inside org.openmoko.dev, I have some packages,sources and diff on my people account.

License eek!

License eek!

So we do have our location/diversity/splinter mapping application. Some of the maps (all?) we provide use data coming from OpenStreetMap. The OpenStreetMap data is licensed under the Creative Commons Attribution-Share Alike 2.0 Generic (CC-by-SA). And it was highlighted that we most likely fail on the attribution part. I hope we will resolve this issue soon but it is not really clear how one should properly attribute the OpenStreetMap Project and or its individual contributors.

Flying back to Taipei

Flying back to Taipei

Yesterday I spend most my day with watching videos that featured Alan Kay. These included videos about Squeak, Seaside, Croquet, demos of old (1977!) 3d, fully anti-aliased, zooming interfaces of the MIT. This was concluded with reading about self and PEP. When watching these kind of things I wonder why the computing world as it is today and why all these things have not made it into mainstream computing yet.

I will soon enter a train to Frankfurt, will arrive early at the airport, board an airplane and will be back in Taipei for a couple of days. Anyone interested in talking about WebKit, Smalltalk or other things please go ahead and give me a call.

Happy

Happy

Our Taipei developers work hard, apply patches, create patches, triage bugs.

Our developer/customer base starts scratching itches and provide their fixes.

Things move forward.

Pushing things forward

Pushing things forward

There is one thing of Tiny SVG1.2 that I really like. It is the possibility to embed audio and video. For video you can do transformations, filters and the usual stuff of SVG. TinySVG1.2 is popping up in more specs and recently I began to read DIMS again and well and thanks to the support of GMIT I had a go at it.

This shows parts of the TinySVG spec and the video was replaced with Code Rush. It is dog slow and needs some refactoring to SVGSMILElement and parts of the SVG RenderObjects to be merge able. The code should popup in my holger/dims branch soon.

Hacking on the WebKit codebase is so much fun that I seriously wonder if I want more of that…

svg12_video