prev
Issue 36
10th December 2006
by Danny Allen
next


This Week...
The beginnings of Sega Genesis/Megadrive support in Gamefu. kdegames improvements continue with porting and gameplay work in KBackGammon. OpenDocument master page support in Okular. 'Idle time' detection comes to the 'powermanager' module of the Guidance system utilies. MIDI format support in KTabEdit. The new histogram graphing functionality of Strigi continues to be refined. Following Akonadi, NEPOMUK starts to utilise the power of Strigi. WHATWG audio objects supported in KHTML through Phonon. Appointment printing work in KOrganizer. Kross scripting infiltrates KWord.

John Tapsell, the lead developer of KSysGuard, talks about the suite of improvements in progress:
The KDE task manager, KSysGuard, has seen many improvements across the board, and these enhancements can be experienced in both KDE 3.5.6 and in KDE 4. Over a dozen filed bugs have been fixed, with several wishes fulfilled. Most notable are the "Disconnection to localhost" problems that should now be fixed in both the main KSysGuard application and in the System Guard kicker applet (in both 3.x and 4) along with numerous painting/rendering bug fixes.

The main new features already implemented for the version that will be shipped with KDE 4 are:
  • The graphs are anti-aliased, with beautifully-smooth bezier curves connecting the points.
  • SVG support for the graph plotter backgrounds.
  • Units are shown within graphs, with nicer tooltips showing a key along with the current values.
  • The list of processes is greatly simplified, with the default sorting being by user 'type' first (own user, other users, system), and then by CPU usage.
  • Subtle colors are used to enhance usability, using the Oxygen colors.
  • A more complex process list shows information such as the amount of X-Server memory a process uses, and the window title of the application.
  • A large amount of work has gone into performance, startup time and memory usage optimisation.
  • A beautiful, semi-transparent gradiented progress bar is shown for the CPU percentage and memory usage, again also using the Oxygen colors.
Here are some screenshots of the improvements:

Sebastian Trueg, a key architect of the NEPOMUK-KDE collaboration, explains the NEPOMUK concept and its relation to the future KDE desktop:
There has been quite some progress in the NEPOMUK-KDE project over recent weeks. But before I dive into that, it is probably a good idea to explain the purpose of the NEPOMUK-KDE project again. I won't explain the whole NEPOMUK project here since it is far too much for this text (and for me as well ;). Thus, let me just give a rough image of what I am working on right now.

As far as we can determine, there are three types of meta data:
  1. Meta data that is stored with the data itself and is available all the time. This includes id3 tags, the number of pages in a PDF document, or even the size of a file or the subject of an email.
  2. Meta data that is manually created by the user, like annotations or tags that are assigned to files, emails, or whatever resources.
  3. Meta data that can be gathered automatically such as the source of a downloaded file, the email an attachment was saved from or the original location of a file copied locally.
The first type of meta data is already widely handled. Desktop search engines like Strigi index this information and we can always look at the meta information in the nice KFile dialog. But what about the other two types? Type three can be found in some applications like photo managers but their extra meta data never leaves the scope of the application.

This is where the current work in the NEPOMUK-KDE project comes in. We store arbitrary meta data in a local RDF store and provide convenience wrappers around it to access this data. The simplest method being the D-Bus interface.

But now to the actual implementation progress: I just finished the inappropriately-named libKMetaData. KMetaData is a wrapper around the RDF services that allow very easy handling of the meta data of type two and type three. Part of the NEPOMUK project involves creating a desktop ontology that provides categories and classes of meta data and their relationships. KMetaData contains a code generator that creates convenience classes from this ontology which can then be used to read or write meta data.

Let me give an example: Say we have a file, /home/trueg/foo.bar and we want to add a comment (annotation) to it. We simply create an instance of Nepomuk::KMetaData::File and use its methods like so:

    Nepomuk::KMetaData::File f( "/home/trueg/foo.bar" );
    f.setAnnotation( "This is just some test file I use to present this feature");

and we are done! KMetaData takes care of syncing this information into the local RDF store. Now any other application can access this data the same way:

    Nepomuk::KMetaData::File f( "/home/trueg/foo.bar" );
    myDisplayLabel->setText( f.getAnnotation() );

Simple as that. I have created three tools that use KMetaData: the simple annotator, the simple tagger, and a Strigi plugin which allows to search this manually created meta data. Thus, tag your files and find them again with Strigi by using the tags.

And this works beyond merely files and annotations. Although at the moment the NEPOMUK ontology does not yet fully exist - with only a placeholder that defines annotations and tags - libKMetaData is already very powerful and extensible: all classes like File are based on the generic Resource class and only use its setProperty and getProperty method to change values. Therefore, one can even create and read data of unknown resources (although in the future I hope to cover almost everything with our ontology).

I hope that in the future this technology can be integrated into KDE in order for each application to create meta data for arbitrary resources. We then have all the information we need in order to help the user as much as possible in their daily work.


Statistics
Commits: 1931 by 177 developers, 4113 lines modified, 812 new files.
Open Bugs: 13083
Open Wishes: 12067
Bugs Opened: 270 in the last 7 days.
Bugs Closed: 215 in the last 7 days.

Commit Summary
Module Commits
/branches/stable
340
/trunk/KDE
325
/trunk/l10n
281
/trunk/playground
199
/trunk/extragear
195
/trunk/koffice
166
/branches/work
160
/branches/KDE
95
/trunk/www
63
/branches/koffice
38
Lines Developer Commits
131
Laurent Montel
59
169
Sebastian Trueg
50
94
Sebastian Sauer
45
132
Stefan Nikolaus
43
77
Gilles Caulier
39
33
Burkhard Lück
30
29
Jos van den Oever
29
58
Dirk Mueller
27
55
David Faure
27
54
Simon Hausmann
27

Internationalisation (i18n) Status
Language Percentage Complete
Swedish
99.95%
Portuguese
99.94%
Danish
99.90%
Dutch
97.24%
Spanish
97.12%
Greek
95.75%
German
94.86%
Estonian
93.91%
Italian
93.72%
French
92.94%

Bug Killers and Buzz
Bug Killer Number Of Bugs Closed
Megan Webb
23
Sebastian Trueg
20
Martin Koller
18
Tommi Tervo
16
Mark Kretschmann
15
Stefan Monov
14
Philip Rodrigues
13
Bram Schoenmakers
13
Gilles Caulier
9
Stephan Kulow
7

Program Buzz
Amarok
  4310
Kate
  2610
K3B
  2500
KMail
  2415
KDevelop
  2410
Kopete
  2378
Kat
  2110
Kaffeine
  1406
Kontact
  1376
Kicker
  1308


Person Buzz
David Faure
  912
Adriaan de Groot
  771
Stephan Kulow
  744
Zack Rusin
  642
Waldo Bastian
  512
George Staikos
  330
Aaron J. Seigo
  330
Boudewijn Rempt
  306
Stephan Binner
  252
Thomas Zander
  244
Commit Countries

Commit Demographics
Sex
86.5 %       Male
11.3 %       (unknown)
2.55 %       Female
Motivation
48.5 %       (unknown)
39.6 %       Volunteer
12.1 %       Commercial
 
Ages
75.2 %       (unknown)
13.9 %       25 to 34
12.3 %       35 to 44
3.98 %       18 to 24
3.66 %       45 to 54
0.065 %       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
Development Tools
Megan Webb committed changes in /branches/kdevelop/3.4/parts/astyle:
Include the project level formating options.
Corrected bug with formatting options being lost.
Bug 67448: Indentation should be project option, not global option
Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 610150
View Visual Changes (to 1 file)

Nickolai Shaforostoff committed changes in /trunk/KDE/kdesdk/kbabel:
fix some more bugs. now it saves correctly!
Diffs: 1, 2 Revision 610281

Megan Webb committed changes in /branches/kdevelop/3.4/parts/astyle:
Fix applying all the options. Added more sample code to the style
examples. Updated some tool tips.
Bug 137913: astyle not reacting an all settings (Tab & Brackets -> Bre...
Bug 105396: keep one-line blocks option does nothing
Diffs: 1, 2, 3, 4 Revision 610450
View Visual Changes (to 1 file)

Megan Webb committed changes in /branches/kdevelop/3.4/buildtools/autotools:
Thanks to Thomas McQuire for his detailed bug report.
Fixes for executing the selected target on RMB in automanager window.
Fixes for running configure scripts twice.
Bug 76012: bogus report that it fails to find makefile
Diffs: 1, 2 Revision 611280

Megan Webb committed changes in /branches/kdevelop/3.4/parts/astyle:
Option to set the file type to enable the Edit/Format menu. (RMB context menu continues to ignore this setting)

Option in formatter settings to format a selection of files.
Bug 106379: Support for extensionless filenames for source
Bug 102705: Automatic reformat-source when opening file
Diffs: