prev
Issue 55
22nd April 2007
by Danny Allen
next


This Week...
A week-long Phonon/Solid developer sprint redefines and strengthens their API's. The start of a command-line client for Strigi. Continued improvements in the Konsole refactoring work. More work on visual effects in the KWin window manager composite support branch. Experiments to utilise Solid for connection management in Mailody. Initial support for the Jamendo music service in Amarok. A KDE frontend for Marble is begun, to complement the Qt-based original interface. LSkat, KLines and KLettres get support for scalable graphics. SuperKaramba now supports widgets written in Python and Ruby using Kross - Kross is now the default scripting engine for SuperKaramba. Kiriki is moved from playground/games to the kdegames module. The Guidance utility suite is moved to the extragear module, becoming the first non-C++ application in KDE SVN.

Inge Wallin and Torsten Rahn discuss the future of the Marble desktop globe application:
Marble is a lightweight, easy to use piece of software that brings geographic information to the desktop of everyday users. Currently the part of the framework behind Marble that has received most love by our programmers is the Marble Widget, which is a simple Virtual Globe that can easily be embedded into other applications.

While the Marble Widget itself is based on pure Qt4 code it is now being embedded into a real KDE application with all that entails (KDEPrint support, GetHotNewStuff support, and so on). As such Marble will become a prominent application in its own right in the KDE-Edu module.

The idea is that the central Marble visualization widget will be for geodata what KHTML/Webkit is for HTML: a component that is used everywhere geographic data is displayed, like in KWeather, Kontact, Kopete, DigiKam, KControl, KStars, KGeography, and on and on.

Torsten writes in his Marble manifesto:
"'Where?' is a pretty basic question that computer users have got to ask and answer quite often - no matter what they are working on. [...] most people out there are not cartographers and don't  want to be. [...] So for casual users there is still missing a fast, flexible, visually pleasing and easy to use map component. For developers, marble offers a light-weight, fast, cross-platform map component..."
Also according to the manifesto, Marble should be: fast (right now it starts up fully within 2 seconds), visually appealing, easy to use, be able to fully work on all kinds of hardware wherever Qt compiles, usable online and offline and following free and open standards (like KML, for example). To follow these strict goals, Marble uses many advanced algorithms not commonly found in non-professional software.

It has also gained the interest of the outside world, and in this year's Google Summer of Code, it gained no less than 3 student projects:
  • vastly improved support for the KML markup language that is used by Google Earth (Murad Tagirov mentored by Torsten)
  • a 2D projection mode (Carlos Manuel Licea Vázquez mentored by Torsten)
  • support for GPS units (Andrew Manson mentored by Inge Wallin).
If time allows the latter will also include very basic support for gathering data from the OpenStreetMap Project.

At this time, the code is being cleaned up and adapted to the KDE coding standards by Torsten and Inge Wallin. Documentation is being updated to make it easier for the students who are starting to work on it. When this is done, the "Marble Universe" will contain:
  1. The Marble Desktop Globe, a KDE 4 application for KDE-Edu. This application will show off much of Marble's full potential and also act as an educational program.
  2. The Marble Widget, a KDE 4 widget usable everywhere that geographical visualization is needed.
  3. The Marble Framework, a framework for providing geographical services for the desktop. It will provide GPS support for KDE and other backends that will help to detect the user's position on our tiny little planet (via hostIP, mobile devices, etc). Part of this framework will also be the "Marble Almanac" which is planned to be developed in co-operation with the Wikipedia Offline Client and as such will contain a minimal set of information about prominent places on earth (like demographic data).
While we certainly intend to have support somewhere in the future to display data from commercial providers, our primary focus is on providing and promoting freely available geographic data.

If you are interested in helping out, you can check out /trunk/playground/base/marble, or wait until it is moved into the kdeedu module, which should happen soon.

Will Stephenson provides a report on the "Phonon/Solid Sprint" event of the past week:
Matthias Kretz, Kévin Ottens and Will Stephenson spent the week in Oslo as guests of Trolltech. The goal of the week was to apply Trolltech's expertise in API design to the Solid and Phonon APIs. Much of the week was spent in API review sessions, where the developers, together with Lars Knoll, Simon Hausmann, Brad Hughes and other Trolltech engineers pored over each class and method line by line to ensure that naming and semantics are as clear as possible. The APIs were simplified to weed out redundancy, hide implementation details and make them as easy to use as possible, and to make sure they follow the Qt and KDE naming style so that programmers will be able to use them intuitively.

In the course of the week, Phonon was redesigned once, Solid Hardware discovery twice and Solid NetworkManager required three rounds of redesign until everyone agreed the APIs were as good as they could be.

The rest of the time the developers were at work carrying out the previous review's changes and ensuring that the previous decisions worked in practice. Given the scope of the changes, this involved some very late nights.

The resulting API is a lot slimmer than it was at the start of the week. Any functions which would only have been of use to a single application have been moved to new -experimental libraries, where they will form the base of platform libraries that exist outside of kdelibs. They will still be available but will not clutter the kdelibs API.

Martin Heni talks about the latest target of the kdegames scalable graphics drive, LSkat:
LSkat is now converted to full usage of SVG.

However, I made the SVG graphics only as a first draft as I am not very good at this. It would be good if an artist could improve them. Fortunately, it uses only a small amount of easy elements (mainly boxes and arrows).

For the artist: The input device icons can be the same as in KWin4. The trump icon #4 is meant to be the face of a "jack" card. The other trump icons can keep the card symbols and only need the background improved.

When an old PNG card set is choosen LSkat can use these old pixmap cardsets and scale them accordingly. Actually this looks not so bad! Probably we should keep the old cardsets for KDE 4.0 as there are some nice ones and I don't think we will be able to move them over to SVG in time.

When a new SVG cardset is chosen it uses the full SVG capabilties. Unfortunately, using so much SVG rendering is not exceedingly fast. KPat uses threading and pixmap caches to speed this up: Maybe it would be useful to have something like this in the kdegames libraries.

Card deck backsides are not yet available as SVG (or actually they are part of the SVG cardsets. We should discuss whether they should be available independently in decks/*. Currently the player can choose card set (cards-*) and deck backside (deck/*) to his/her liking. Using them both from one SVG file would probably bind them together (unless we render two files - which we currently don't...).

By the way, you need to update libkdegames to use this latest update!

Sebastian Trueg reports the inevitable: the first bugfix release of the K3b 1.0 series:
Hi folks,

We all know how it works: I release something, you use it and find all the bugs I never see because, let's face it, I am using (and testing) K3b in the same way as I develop it. The result is that I don't find those bugs. Praise the gods of open-source for this concept.

Well, then, K3b 1.0 was not perfect but I am working on it. So here comes the first bugfix release. But before I get into the changes in detail (see how I always list all small changes in bugfix releases but never remember what I did for a major release) I'd like to mention two users that helped tracking down one rather serious threading issue and one really stupid bug. Both Manoj and Antoon Tolboom patched and compiled K3b over and over again until we had tracked down the problems even though both of them do not compile anything on a daily basis. This again shows the power of the open-source approach.

Ok, on with the serious stuff: The ChangeLog:
  • Fixed crash when using the Device menu without a selected device.
  • Fixed DVD copy when reading from a DVD+RW.
  • Fixed --without-alsa configure check
  • Fixed a crash in Video DVD ripping when the title does not contain an audio stream
  • Only use the mkisofs parameters -biblio, -copyright, and -abstract if they have been set. Using them with invalid values (empty) seems to sometimes result in broken iso images.
  • Better compatibility with recent transcode development branch
  • Fixed Multisession import size handling.
  • Fixed Lame quality preset handling.
  • Made libk3bdevice really thread-safe. This fixes the disabled DMA bug!
  • New configure check --without-cdrecord-suid-root to disable K3b's check for cdrecord permissions. Although not recommended it is requested by many distributors.
  • Changed the order of the buttons in the tool dialogs to match the default KDE order.
  • Added handling of the newly introduced genisoimage parameter -allow-limited-size
  • Make the K3b Sox audio encoder plugin work with newer sox versions (Thanks, Stephan Binner).
Go ahead and grab the sources from http://www.k3b.org. Binary packages will probably surface soon.

Cheers,
Sebastian


Statistics
Commits: 2600 by 223 developers, 5557 lines modified, 1203 new files.
Open Bugs: 13356
Open Wishes: 12483
Bugs Opened: 211 in the last 7 days.
Bugs Closed: 164 in the last 7 days.

Commit Summary
Module Commits
/trunk/KDE
783
/trunk/l10n
292
/branches/stable
285
/branches/work
261
/trunk/extragear
225
/trunk/playground
158
/branches/KDE
149
/trunk/www
104
/trunk/koffice
100
/trunk/kdesupport
100
Lines Developer Commits
255
Laurent Montel
113
229
Matthias Kretz
94
118
Gilles Caulier
57
131
Pino Toscano
55
129
Kévin Ottens
51
151
Allen Winter
43
105
Sebastian Trueg
43
53
Christian Ehrlicher
41
143
Luboš Luňák
41
41
Thanomsub Noppaburana
40

Internationalisation (i18n) Status
Language Percentage Complete
Portuguese
100.00%
Dutch
96.49%
Estonian
93.75%
French
93.18%
British English
86.16%
Polish
86.51%
Turkish
83.75%
Galician
85.57%
Russian
81.99%
Catalan
78.34%

Bug Killers and Buzz
Bug Killer Number Of Bugs Closed
Pino Toscano
27
Mark Kretschmann
16
Tommi Tervo
12
Martin Koller
10
Thomas McGuire
10
Sebastian Trueg
9
Christoph Cullmann
8
Gilles Caulier
8
Oliver Kellogg
6
Luboš Luňák
6

Program Buzz
Amarok
  4875
K3B
  3501
KMail
  3000
Kate
  2799
KDevelop
  2561
Kopete
  2508
Kaffeine
  1600
Kicker
  1537
digiKam
  1487
Kontact
  1468


Person Buzz
David Faure
  854
Stephan Kulow
  572
Adriaan de Groot
  536
Jonathan Riddell
  467
Allen Winter
  430
Waldo Bastian
  420
Thomas Zander
  340
Aaron J. Seigo
  318
George Staikos
  304
Stephan Binner
  258
Commit Countries

Commit Demographics
Sex
91.2 %       Male
7.13 %       (unknown)
1.87 %       Female
Motivation
48.2 %       (unknown)
35.9 %       Volunteer
16.0 %       Commercial
 
Ages
77.1 %       (unknown)
11.3 %       25 to 34
5.39 %       18 to 24
4.61 %       35 to 44
1.56 %       45 to 54
0.086 %       Under 18


Contents
  Bug Fixes Features Optimise Security Other
Accessibility
Development Tools [*] [*] [*]
Educational [*]
Graphics [*] [*] [*]
KDE-Base [*] [*]
KDE-PIM [*] [*] [*]
Office [*] [*]
Konqueror
Multimedia [*] [*] [*]
Networking Tools [*] [*] [*]
User Interface [*] [*]
Utilities [*] [*] [*]
Games [*] [*] [*] [*]
Other [*] [*]


Bug Fixes
Games
Nicolas Roffet committed a change to /trunk/KDE/kdegames/libksirtet/lib/types.cpp:
Fixed a big bug:
- Now "pause" is working again: you can pause and unpause the game.
- Tiles in KSirtet and KFoulEggs are now falling again at the start of the game! (There is still a bug there: they stop to fall after a while... but you can still continue to play and to place the tiles where you want...)
- No crash anymore in KSirtet while playing against the computer ("Human VS. Computer" mode) even if it's still not playable because of other problems...
So... -> still a lot to do!
Diff Revision 654266

Graphics
Colin Guthrie committed changes in /trunk/extragear/libs/kipi-plugins/galleryexport:
Fix login to Gallery 2.2.

This was a very annoying bug to track down but it essentially relates to a bug in the generation of Cookies in Gallery 2.2.

Gallery actually generates 3 Set-Cookie headers in it's response which seems excessive. The first one is a GALLERYSID=<blank> and the other two set it to the correct value. The routine that parses cookies is somewhat dumb and just passes any cookies it receives back to the server on the next request. By passing the blank GALLERYSID, Gallery ensured that it did not connect to your logged in session.

The cookie parsing code should be make more intellegent, but in the mean time I've put in a very simple fix.

Testing and feedback appreciated.

This also applies the patch by Martin Kaufmann - thanks.
Bug 142259: Export to Gallery 2.2-RC-1 fails
Diffs: 1, 2 Revision 655231

KDE-PIM
Martin Koller committed changes in /branches/KDE/3.5/kdepim/kmail:
I dare to close this bug report with this commit.

It basically automatically recreates the index whenever a "should never happen" situation occurs in getting data from the index and retries to get the requested information.

I hope it works as advertised ;-)
Bug 50462: mail is permanently lost if disk is full
Diffs: 1, 2, 3 Revision 654636