After I missed slangkamp at Berlin Hbf. due to my train being 40 minutes late on a 1 hour trip, I arrived at KDAB Berlin Office and started to look around a bit. After some minutes I got jaham and slangkamp interested into a special KOffice bug which only existed on windows: one of the color choosers simply was showing a black rectangle instead of painting the color gradient it should show. So we started to investigate this, first within KOffice (KoColorSlider) - it was no KOffice bug. Then in KDE (KSelector) and it was no KDE bug as well. But at least we could have worked around it in KSelector. But then again Jaham had the idea to look into the Qt sources - and there we found the bug. It was simple, 3 additional lines in qtgui4 and this was one of the points where you can definitely see why it is pretty important to have open source software: we could really fix the bug instead of working around it and hoping that the implementation will stay the same for future Qt versions...
The downtime was: 3-4 people were looking for this bug for roughly 3 hours - so much work for such a "small" issue.
Saturday, November 8, 2008
Tuesday, October 28, 2008
graphics week again
Just as a short note:
Today I fixed both a small bug in gwenview where the jpeg-thumbnails would crash gwenview on windows due to some strange issues and I build digikam and its kipi-plugins and made binary packages of it. So these can be used now (they reside in the 4.1.2 stable branch). Also in some days the 4.1.3 packages will have a whole lot of windows related bug fixes (I will blog about those later as all the people need to be mentioned). For now I just want you to point to digikam, find the bugs that are still within it (Gilles Caulier and I can try to fix the bugs, as he is brave enough to fight the demons of windows) and lets make it better and better.
Another thing I have to mention is that Torsten Rahn, Magnus Valle and Henry DeValence made some new quite awesome maps for Marble and none of them did blog about the results yet. This gives me the possibility to leak those pictures to all planetkde readers:
The Earth in Marble in 1689 (made by Magnus(wiscados) and Torsten(tackat)):

The moon of the earth (made by Torsten):

and "that's no moon!" (well it is the moon mimas of saturn done by Henry (hdevalence)):
Today I fixed both a small bug in gwenview where the jpeg-thumbnails would crash gwenview on windows due to some strange issues and I build digikam and its kipi-plugins and made binary packages of it. So these can be used now (they reside in the 4.1.2 stable branch). Also in some days the 4.1.3 packages will have a whole lot of windows related bug fixes (I will blog about those later as all the people need to be mentioned). For now I just want you to point to digikam, find the bugs that are still within it (Gilles Caulier and I can try to fix the bugs, as he is brave enough to fight the demons of windows) and lets make it better and better.
Another thing I have to mention is that Torsten Rahn, Magnus Valle and Henry DeValence made some new quite awesome maps for Marble and none of them did blog about the results yet. This gives me the possibility to leak those pictures to all planetkde readers:
The Earth in Marble in 1689 (made by Magnus(wiscados) and Torsten(tackat)):

The moon of the earth (made by Torsten):
and "that's no moon!" (well it is the moon mimas of saturn done by Henry (hdevalence)):
Monday, October 20, 2008
portability
This is a short rant about how portable code shouldn't look like:
Those C99 boolean operator keywords(not, or, and) break here on windows and are not worth the annoyance.
I already had discussions about that once and I am not keen on doing that again. Thus I beg you to use the standardized operators !,||,&& from now on, so that I will never have to complain about that again.
I will add another post about the second biggest annoyance (export macros) soon, but this requires a longer post.
.
else if (not defaultServerList.contains(server))
Those C99 boolean operator keywords(not, or, and) break here on windows and are not worth the annoyance.
I already had discussions about that once and I am not keen on doing that again. Thus I beg you to use the standardized operators !,||,&& from now on, so that I will never have to complain about that again.
I will add another post about the second biggest annoyance (export macros) soon, but this requires a longer post.
Saturday, October 4, 2008
graphics week
Recently I looked over our packages again and I just remembered that KDE on Windows still misses some good picture viewers (No, Marble is not yet good for that task ;-) ). So I decided to look at kdegraphics a bit more as gwenview was still not building. I just recently wiped out most errors out of my exiv2 cmake buildsystem patch and now I wanted to try that out. And so I did - the result is that along the windows 4.1.2 packages you will find gwenview.
If I find some time in the coming days, I will try to work on digikam; we won't be able to get the gphoto support on windows in the near future, but I hope I can get that part optional so that we can have at least a starting point.
p.s.: The packages won't be ready before sunday evening I guess.
p.p.s.: Here is the proof:



If I find some time in the coming days, I will try to work on digikam; we won't be able to get the gphoto support on windows in the near future, but I hope I can get that part optional so that we can have at least a starting point.
p.s.: The packages won't be ready before sunday evening I guess.
p.p.s.: Here is the proof:



Thursday, September 18, 2008
Dependencies
You might have heard me complaining about that issue already, but it is still an issue.
Every once in a while I come around checking the dependencies of a KDE package and then I find out that they are 1) either available, 2) available but not buildable (a lot of foss software on windows is hacked together, a.k.a. patched heavily) or 3) not even available. Availability means available for both of our compiler flavors (we currently use mingw 3.4.5 and Microsoft Visual Studio 2003/2005/2008). If the library builds and if it is not to much messed up we normally fix this case by finding a CMake patch for it. The latest library that took this way is exiv2 and I am glad to say that this patch will go upstreams for version 0.18. This is the good side.
Another dependency I have come across was mysql. It is used in several places throughout KDE, on of its use cases is as an embedded database for amarok. As a nice packager I made myself on the way to find this stuff. If you look at the MySQL page and you search for embedded, you will find "Thinking about using MySQL as an Embedded Database? Contact us online." with a link to the sales department. Ok, no money for that over here, so maybe they provide it somewhere else. Searching through the download section I found the rpms for red hat for the embedded db but the windows packages don't contain anything resembling the embedded library. And after searching a bit more I found the confirmation: Mysql doesn't provide the embedded library.
Hm, since it would benefit multiple packages, I thought, why not try to compile it myself. Ok, I downloaded the package and on the Build Instructions page they spoke about cmake which made me happy at that point. Even though I need to build the stuff myself, I just need to run
Before running cmake you need to run a javascript configure file.
Then you get a batch script which copies the CMakeCache.txt and then runs cmake for you - nothing more.
Then you have a Visual Studio project file.
Going through all available targets I couldn't find libmysqld.
There was no libmysqld. Ok, searching through CMakeLists.txt files gave me - nothing.
Their CMake build system doesn't contain that library. Only the autotools stuff as I found out - so autotools for Linux, a crippled CMake for Windows.
Is it really so hard to find somebody which knows enough cmake (or can read enough to understand the cmake help) to get a decent CMake buildsystem for mysql? Or is this simply a way to sell even if mysql is GPL?
I am pretty sure I will fix this in the future, but this is the point where I definitely will not contribute to GPL licensed code without a paycheck.
What this means:
- Gwenview will be hopefully enabled in the next windows packages for trunk and 4.1
- Amarok's mysql collection plugin will have to wait.
- All other users of mysql embedded will simply have to use the client with a server.
Every once in a while I come around checking the dependencies of a KDE package and then I find out that they are 1) either available, 2) available but not buildable (a lot of foss software on windows is hacked together, a.k.a. patched heavily) or 3) not even available. Availability means available for both of our compiler flavors (we currently use mingw 3.4.5 and Microsoft Visual Studio 2003/2005/2008). If the library builds and if it is not to much messed up we normally fix this case by finding a CMake patch for it. The latest library that took this way is exiv2 and I am glad to say that this patch will go upstreams for version 0.18. This is the good side.
Another dependency I have come across was mysql. It is used in several places throughout KDE, on of its use cases is as an embedded database for amarok. As a nice packager I made myself on the way to find this stuff. If you look at the MySQL page and you search for embedded, you will find "Thinking about using MySQL as an Embedded Database? Contact us online." with a link to the sales department. Ok, no money for that over here, so maybe they provide it somewhere else. Searching through the download section I found the rpms for red hat for the embedded db but the windows packages don't contain anything resembling the embedded library. And after searching a bit more I found the confirmation: Mysql doesn't provide the embedded library.
Hm, since it would benefit multiple packages, I thought, why not try to compile it myself. Ok, I downloaded the package and on the Build Instructions page they spoke about cmake which made me happy at that point. Even though I need to build the stuff myself, I just need to run
cmake && nmake && nmake installand then I have my library. But it should get even more painful:
Before running cmake you need to run a javascript configure file.
Then you get a batch script which copies the CMakeCache.txt and then runs cmake for you - nothing more.
Then you have a Visual Studio project file.
Going through all available targets I couldn't find libmysqld.
There was no libmysqld. Ok, searching through CMakeLists.txt files gave me - nothing.
Their CMake build system doesn't contain that library. Only the autotools stuff as I found out - so autotools for Linux, a crippled CMake for Windows.
Is it really so hard to find somebody which knows enough cmake (or can read enough to understand the cmake help) to get a decent CMake buildsystem for mysql? Or is this simply a way to sell even if mysql is GPL?
I am pretty sure I will fix this in the future, but this is the point where I definitely will not contribute to GPL licensed code without a paycheck.
What this means:
- Gwenview will be hopefully enabled in the next windows packages for trunk and 4.1
- Amarok's mysql collection plugin will have to wait.
- All other users of mysql embedded will simply have to use the client with a server.
Monday, September 8, 2008
MarbleTalk: The result of my summer of code
I have never really written about my Google Summer of Code project, but now that I got the first really cool and visible feature in, I can't wait anymore.
As you might know Marble is not only a Qt/KDE application but also a widget that you can use in your application to provide the user with geographical data.
You can simply generate a KML document with QDomDocument and then use the addPlaceMarkData to load this file into the widget. You can check the implementation of digikam which has been the first application using this.
This part is not new, it was possible to load and display Placemarks (simple Points which contain a name and a location) before. But in my Summer of Code I reworked the KML parsing so that any KML file could be parsed and saved in an internal data structure and at the very end I made a model and a view for that. This view now went into a plugin (the geodata plugin), the model is now integrated into the structure and thus if you go within Marble to File->Open Map and you choose kdeedu/marble/src/plugins/marble/geodata/Marble writing.kml it will show you this now:

You can of course do a lot more with this, I am pretty sure. Here is a small draft of how to use the marbleWidget:
But, you might ask, what has this todo with Vector Tiles for Marble? The basic idea of vector tiles is to render the data at the client rather than at the server side as it is done now. With the above said, we are ready to do this - rendering basically works and we now need to generate the data, implement some caching algorithms, etc. So you might not see this for 4.2's version of marble, but there is a good chance that this will be ready for 4.3.
p.s.: This all wouldn't have been possible without my mentor Torsten Rahn (tackat), so I want to thank him for this too at this point.
As you might know Marble is not only a Qt/KDE application but also a widget that you can use in your application to provide the user with geographical data.
You can simply generate a KML document with QDomDocument and then use the addPlaceMarkData to load this file into the widget. You can check the implementation of digikam which has been the first application using this.
This part is not new, it was possible to load and display Placemarks (simple Points which contain a name and a location) before. But in my Summer of Code I reworked the KML parsing so that any KML file could be parsed and saved in an internal data structure and at the very end I made a model and a view for that. This view now went into a plugin (the geodata plugin), the model is now integrated into the structure and thus if you go within Marble to File->Open Map and you choose kdeedu/marble/src/plugins/marble/geodata/Marble writing.kml it will show you this now:

You can of course do a lot more with this, I am pretty sure. Here is a small draft of how to use the marbleWidget:
#include "marble/MarbleWidget.h"
using namespace Marble;
...
MarbleWidget *marble = new MarbleWidget( parent );
QString yourKmlData;
...
marble->addPlaceMarkData( yourKmlData );
...
delete marble;
But, you might ask, what has this todo with Vector Tiles for Marble? The basic idea of vector tiles is to render the data at the client rather than at the server side as it is done now. With the above said, we are ready to do this - rendering basically works and we now need to generate the data, implement some caching algorithms, etc. So you might not see this for 4.2's version of marble, but there is a good chance that this will be ready for 4.3.
p.s.: This all wouldn't have been possible without my mentor Torsten Rahn (tackat), so I want to thank him for this too at this point.
Saturday, August 9, 2008
Lubos made it true:
For all people not in Belgium here is a picture of Seli with blue hair:
(Seli with blue hair).
(Seli with blue hair).
Subscribe to:
Posts (Atom)