I want a pony!

I want a pony!

mallum_pony

Wow learning for math exams make me do such things. I have been trying to study math today but kept thinking of parsing HTTP headers and how to make GdkWindow really invalidate the content on moves.

WebKit progress

WebKit progress

Today and most of the previous night was spent hacking on WebKit. The result is GdkLauncher can load google.com without valgrind complaining. It needed a couple of hours to finally get the relation between FontCache, FontData and FontPlatformData, fixing values that get stuffed into a hash function to make thousands of valgrind errors go away Fixing a couple of other minor uninitialized variables. A fraction of time was spent to make RenderThemeGdk (read this d as t) use native controls. I think I follow the same approach as mozilla, I had a quick look at their source. As I have copied no code I think it is okay not to copy the moz license header to the file. The result can be seen below.

Now CURL is high on the todolist and going back to fixing GtkLayout for staticbackground and API is on the todolist. For CURL it is a matter of improving throughput, parsing the HTTP header and setting the HTTP Header (Cookies, POST). Also redirects, etc. are to be implemented for curl. For GtkLayout I need to somehow invalidate the region before gdk_window_move is called in the Closure connected to the adjustment_changed signal to avoid the visual appearance of flickering. Well and the API is a complete other topic as this will force us to think about clipping, sharing one cairo_t* between Frames, recreating the FrameView on demand… there is a lot of todo but the port is promosing and in good shape.
Alp Tolker has battled cairo, we have clipping issues fixed, we can render SVG, the canvas element is going to be implemented as well.

webkit_gdk_native

Pythong Bindings, where is the source

Pythong Bindings, where is the source

In contrast to some other people posting screenshots of OpenGL applications and not showing the code because it is not clean enough all the code I intend to release is developed publically. Oh and I hate people having this attitude of not showing the code. If this is a proto-type, learning process or whatever it doesn’t really matter how clean the code is, for a prototype the result and gained experience counts and you should be happy to share this. The other question is why these guys don’t write clean code from the beginning?

Anyway to answer a comment from the blog here is a small list of pointers

Creating Python Examples

Creating Python Examples

I have used the boring movies during yesterday and today to create some python examples. Today during the movie on RTL I have created a python example modeling the RSS Reader and other applications.
I have slightly improved, polished some parts of the bindings during this process, I have noticed some constructs that are not easily wrappable. A patch for libmokojournal was sent to mickey and I hope to have some time to chat about it. Then there are a couple of declared but not defined (or did I mix that up once again?) mehods in mokoui and mokogsmd.
Below is a screenshot of the example, it is a Futurama Charachter Browser and consists out of ~200 lines. This is inspired by a recent gift…

reader-example

PS: Feel free to contribute facts, etc.
PPS: Thank you for the previous comment. I will follow the PEP and the final bindings will be in OpenMoko.Ui.

State of the Bindings

State of the Bindings

So yesterday evening and today afternoon was an unscheduled OpenMoko hacking day. To confirm that I can commit to the repository of the OpenMoko bindings project I checked in the rather old version of the bindings. Then I started to make them compile again, decided to remove cruft from OpenMoko libraries, fixed all warnings to make openmokoui compile with -Wall and -Werror and refactored libmokojournal to make it more easily bindable. I hope mickey will be able to review this patch or at least forward it to the o-hand guys.

I updated the Python bindings to include libmokogsmd and libmokoui and to be rather complete but untested. Today I tested that the modules can at least be imported which leads to fun stuff like.
import openmokogsmd
gsm = openmokogsmd.GsmdConnection()
gsm.voice_call(“some number”)

and stuff like
import openmokoui
banner = openmokoui.moko_banner_get_instance()
banner.show_text(“Bla”, 5)

The next step will be to write examples/tests to make sure that what is there can be used, add some overrides to map … parameters of C to Python and improve the API. Another thing that sounds like fun would be to write a OpenMoko API fuzzer in Python that calls methods with invalid parameter (e.g. None) where a GtkWidget is expected and record crashes.

Call for Participation

Call for Participation

Hello fellow hackers,

as part of our course at the Software Engineering class at the Freie University of Berlin/Germany we are holding a survey and looking for developers to participate.

Our research context is Free and Open Source Software with a focus on (Distributed) Pair Programming[1]. We try to explore how familiar you are with Pair Programming in itself, if you have tried to use Pair Programming in one of your projects, which tools you are familiar with for communication and (Distributed) Pair Programming and how well they worked.

Please visit this site to particpate in the survey. It will roughly take 10 minutes to complete it. The survey will be online for the next two weeks and be closed on the 25th of June. By participating you will be able to receive the raw data and the result of our survey.

[1] On Pair Programming two people constantly interact with each other. One developer is playing the role of the driver who is repsonsible for typing and the other developery is the observer responsible for obersving the driver, spotting issues and looking ahead. The two roles can and should be changed. On Distributed Pair Programming the two mates don’t sit at the same work place but have technical means to collaborate.

Thank you Google

Thank you Google

I’m still trying to understand why I ended up with a signed copy of a book from Karl Fogel sent from Mountain View without a letter inside the envelope. Anyway I have started to read this book and with any book I’m trying to extract knowledge and will try to apply it. The obvious target is OpenEmbedded and future projects I might end up starting.
So Google it would be nice to understand why I deserve to receive a book or if every Google Summer of Code student is receiving an autographed book? I’m certainly missing something…

[Update: Every student will end up with a signed copy of this book. What a poor author signing so many books…]

VNC and Transformed driver at the same time

VNC and Transformed driver at the same time

In the good old QtE days you were not able to use remote X11 but you can compile VNC into QtEmbedded. This VNC Graphics plugin allowed to be stacked on top of a virtual screen or a real screen driver. In Qt/E the name of the underlying driver was hardcoded. Normally it was either LinuxFB or Transformed but it was definable at compilation time.

The two magic environment flags were QWS_SIZE=240×320 and QWS_DISPLAY=VNC:Transformed:Rot270. Yesterday after a small discussion with Robert I had a look at Qtopia4’s VNC implementation. There is one issue and one improvement and they are tighlty coupled. The documentation is still pointing to the define of QtE2 and QtE3 but in contrast to QtE QtopiaCore is capable of getting stacked on top of any other graphics driver at runtime.

This should allow Trolltech to ditch the webcam approach to get a picture off the greenphone and use VNC (assuming that it actually works) instead.

WebKit/Gdk Google Gears

WebKit/Gdk Google Gears

Due the LinuxTag I didn’t do any work on WebKit this week. In the last week I have implemented ScrollBars using GtkLayout. I have found my first WebKit bug/issue which I will hopefully resolve soon. mitzpettel helped me to understand the issue and laid down a possible solution I’m going to implement. To support websites with static background I’m going to need to reimplement parts of GtkLayout. I’m not certain inheritance will work in the worst case I’m going to fork GtkLayout and make it work in the situations it currently doesn’t.

Now google is providing something similiar to Adobe’s Apollo but cross-browser and cross-platform. Google Gears allows you to have an offline cache and to synchronize once you are online again. E.g. this can be used by Google Reader to store items for offline reading. The sourcecode is available and I had a look at the code. The WebKit plugin is written in Objective-C++ so one can’t use Google Gears on OpenMoko directly but needs to create an OpenMoko port. I will add this to the bottom of my todolist but it would be awesome if someone of you could have a look at it as well.

So happy hacking folks…

A busy week, LinuxTag review

A busy week, LinuxTag review

This week started with a national and I probably was busy studying for my upcoming math exams. Tuesday was just a normal day and the evening was mostly spent communicating and finishing our assignment which consisted out of reviewing questions of a survey.

On wednesday the LinuxTag started and Doku and me met Knut and went out to have a dinner. Trolltech shared a booth with KDAB and my old friends from ROAD. Their device looks promising and the chasing and the software improved even more and I hope this device will finally hit the market.
On Friday I was glad to meet tronical, woglinde, björn, doku, mickey, stefan, jan, daniel, an old friend from school, ph5, harald welte, uli, robert, ellen, florian, rob taylor. Looking at this rather large list I’m somehow impressed how many people I know nowadays and what a privilege it is to get to know well known ones like harald and ellen.

At the evening we were invited by Trolltech to have a dinner, the talk and the food was awesome but I had to leave early to combat the fuses in this house to gain electricity. I’m sad I have missed the oppurtunity to talk with tronical and ellen in-depth but both of them won’t run away.

This day was started early with waking up mickeyl too early (I’m sorry), handing over my greenphone to florian to have a look at the serial line, hacking on standards of the OpenMobileAlliance. In the evening Mickey, Stefan, Jan and Harald came to visit us and we caught some mexican food and went off to a bar. We had to walk less this time (I enjoy walking…) and I think the bar we ended up was quite nice and I hope you have enjoyed it.

And I have been thinking and ordering thoughts for the last two days and I wonder what I will respond…. Bye visitors and hope you will crash in Berlin again soon!