WebKit/Gtk

WebKit/Gtk

ChangeLog | 6
WebCore/ChangeLog | 11 +
WebCore/WebCore.pro | 27 +++
WebCore/platform/gdk/ScrollViewGdk.cpp | 4
WebKit.pri | 3
WebKit/ChangeLog | 26 +++
WebKit/gtk/Api/webkitgtkdefines.h | 48 ++++++
WebKit/gtk/Api/webkitgtkframe.cpp | 87 ++++++++++++
WebKit/gtk/Api/webkitgtkframe.h | 100 +++++++++++++
WebKit/gtk/Api/webkitgtkframedata.cpp | 29 ++++
WebKit/gtk/Api/webkitgtkframedata.h | 65 +++++++++
WebKit/gtk/Api/webkitgtkglobal.cpp | 39 +++++
WebKit/gtk/Api/webkitgtkglobal.h | 41 +++++
WebKit/gtk/Api/webkitgtknetworkrequest.cpp | 29 ++++
WebKit/gtk/Api/webkitgtknetworkrequest.h | 65 +++++++++
WebKit/gtk/Api/webkitgtkpage.cpp | 208 +++++++++++++++++++++++++++++
WebKit/gtk/Api/webkitgtkpage.h | 132 ++++++++++++++++++
WebKit/gtk/Api/webkitgtkprivate.cpp | 47 ++++++
WebKit/gtk/Api/webkitgtkprivate.h | 82 +++++++++++
WebKit/gtk/Api/webkitgtksettings.cpp | 69 +++++++++
WebKit/gtk/Api/webkitgtksettings.h | 117 ++++++++++++++++
WebKitTools/ChangeLog | 8 +
WebKitTools/GdkLauncher/main.cpp | 160 ++++——————

A lovely respond to Lorn Potter of Trolltech

A lovely respond to Lorn Potter of Trolltech

Dear Lorn,

in your recent blog entry you make a couple of claims I would like to analyse/respond to.

Lorn: “You can make phone calls, send SMS messages, AND easily add your own customized functionality, right now!. (they would too, had they used Qtopia) Heck you can even use it as your primary phone. I have been using mine for almost a year now.
You can hack on applications all you want, because Qtopia is GPL, and will always remain GPL. As an open source developer for more than 5 years now, I just don’t get the LGPL and why advocates of free, open source software keep using that license. Do you want more proprietary closed source or software that will always be free?”

I sincerly agree with your opinion on freedom, it is one of the greatest goods we have and should not sacrifice and let’s take a look at your claim. Imagine I write a killer application using SMS and Phone and I test it on my Greenphone. Now I want other people to use this excellent application. They have a Neo1973, a Dreambox, a couple of other HTC devices. So this is where the Freedom starts. I will just compile Qtopia for the Neo1973 (ARM OABI), Dreambox (MIPS and PPC), HTC Devices (ARM EABI) and let my application run and everybody is happy, right?
Wrong, a fundamental part for SMS and Phone the libqtopiahone library is not GPLed and this is where my Freedom is limited. I can not let my application run on any device not officially supported by Trolltech. This is what I normally refer to as binary crap as I’m not free to read the sourcecode, I’m not free to change the code, I’m not free to compile the code and I’m not free to distribute the code.

So Lorn please do yourself and your employee a favor and stop lying to the community by claiming everything is free as in GPL.

z.

PS: If libqtopiaphone is liberated/GPLed I will write another blog posting stating so and will do the Qt(opia)4 dance…
PPS: Use the Neo1973 emulator to adopt Qtopia, and send a image to your colleagues in munich to test it on real hardware.

Congratulation OpenMoko.com

Congratulation OpenMoko.com

Hija,

congratulation OpenMoko Inc. for launching OpenMoko.com and setting up the webshop. Let us create a kick-ass product/consumer device!

happy hacking.
z.

PS: You have to buy a Neo. Even if it is not green it is awesome!
PPS: It looks like I will have to try the webshop soon as well as the lovely DHL/Deutsche Post did a favor to me and lost a package…

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…]

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…