prev
Issue 89
16th December 2007
by Danny Allen
next


This Week...
A Sonnet-based spellcheck runner, and icons on the desktop in Plasma. Continued work revamping KBugBuster, more work towards KDevelop 4. GetHotNewStuff support for downloading maps in Marble. Image and audio dockers in Parley. The start of Glimpse, a new scanning application based on libksane. The beginnings of a generic resource display framework for NEPOMUK. Various work in KHTML. Music Service configuration work, and the integration of last.fm code in Amarok 2.0. Printing work in KOffice. A Sybase database driver for Kexi, panorama work in Krita, and ODF work in KChart. Kompare becomes usable for KDE 4.0, and gets a new maintainer. The confusingly-named game KWin4 is renamed KFourInLine. Trolltech-supported Phonon backends for all major platforms (Quicktime 7, DirectShow 9 and GStreamer) are imported to KDE SVN.

Dmitry Suzdalev discusses his recent work on revamping KBugBuster:
I have had ideas about hacking on KBugBuster floating around for quite some time. I just didn't know when I have the time to put my hands on it.

Recently, I found the time.

At first, I just wanted to bring it into shape, with possibly some code restructuring and adding some features that will naturally emerge.

All my previous contacts with existing KDE apps (which were written by someone else) - namely KAtomic, KLines, KMines, KReversi - ended up being a major rewrite. I thought that I could do differently with KBugBuster.

Unfortunately, this wasn't the case! After two days of hacking I suddenly realised that I was dissatisfied with the existing API and code (to such a degree that I ended up with so much "restructuring" that I put a lot of "TODO - remove this, do another way" comments in the code. So I just started from the beginning. I didn’t throw away any old code, it has been kept for reference.

And this rewrite has had a great influence on my KDE/Qt learning curve - I started to learn the Qt model/view framework, and I learned how to use KIO (never tried it in action before - kudos to the developers, KIO rocks!).

My nearest goal is to make it generally work, which means introducing a basic GUI which permits the user to:
  • Work with bugs on several servers: I started to develop a so-called "sidebar", which is a tree view containing a server list. Each server can have child items which can have arbitrary Bugzilla queries attached to them (similar to the "saved queries" feature of Bugzilla).
  • Work with bugs: change their status, add comments, attachments, etc. - the usual Bugzilla activities.
Currently, the sidebar server tree is actually working. KBugBuster is able to fetch the product list from the server quite nicely, and I've attached an "Open Bugs" query item for each product, so that it is also able to fetch an open bug list for a selected product. "Open Bugs" is just an example query - any arbitrary one can be introducted.

Bug parsing works to some extent - I introduced a simple API for this, but didn't yet write the needed extraction routines, so it extracts only the bug ID and a short description (which is enough for me to do testing at the moment).

What doesn't work (and which I plan to address in the near future):
  • What I termed as "work with bugs" above.
    No comments viewing, adding, modification, etc. has yet been started.
  • Bugzilla login.
    Currently KBugBuster can perform only those operations that don't require the user to be logged in. I need to learn some KHTML & cookies wisdom to implement this I guess.
As for the future plans, I'm thinking of the following:
  • Make the user interface nicer and more robust
  • Make the bug parsing process asynchronous
  • Introduce some kind of bug caching, perhaps partial sync with Bugzilla to allow offline work and queuing actions on bugs
  • Matt Rogers suggested to make KBugBuster a KPart - might be useful for embedding (e.g. in KDevelop)
Perhaps some words about the design. Following with the pattern in the old code, I came up with two sets of classes - the backend ones and the GUI ones:
  • Backend classes are responsible for talking with Bugzilla servers, managing them, querying for bugs, processing received XML and so on.
  • GUI classes are... well, they are GUI classes - they communicate with backend classes, ask them for info and display it upon retrieval.
Currently both backend and GUI stuff is linked together as one executable - but I am thinking about putting the backend classes into a separate library.

And now it is time for... yes, screenshots! Since everybody loves them...
But be prepared - nothing outstanding :) Treeview and listview. Servers here, bugz there. Very simple so far. Actually, I'd say that the code is prettier than the screenshots!

KBugBuster and bugs.kde.org/KBugBuster and bugzilla.mozilla.org/


Carsten Niehaus writes a short update on the state of Kalzium (and Avogadro integration):
Kalzium will start to use Avogadro with KDE 4.0 in order to offer a 3D Molecular viewer (as reported before). In early 2008, Avogadro will release a new version (see debate) so that Kalzium will be able to make full use of it with KDE 4.1.

Not only did Avogadro add many spectecular features since the Google Summer of Code, but OpenBabel also gained new features (such as those demonstrated in the following video):

Download Hydrogen Bonds in Avogadro video (235 KB, AVI)

OpenBabel 2.2 will be able to use so-called force fields to calculate molecule-molecule interactions. Here you can see how Hydrogen bonds behave. This is all real time. The capturing process makes it look quite slow, it is really much faster than it appears!

With the import of Phonon backends for all major platforms into the KDE code repository this week, an interesting experiment in developer community relations has begun - not quite the dawn of a new era, but interesting nethertheless. This furthers not only the noted, mutual relationship between the KDE project and Trolltech (the commercial company behind Qt, the libraries that KDE is based upon) - a relationship which has only been growing stronger throughout the history of the KDE project - but also highlights more recent trends of adoption by Trolltech of significant external projects (Phonon and WebKit being the two most prominent examples). If managed properly, this relationship will continue to be only beneficial to the interests of the KDE project.

This week, the bug fixing binge ramps up, with large contributions from new bug fixers - Thomas Friedrichsmeier extends his two-weekly total to 100, whilst four other people make their debut on the weekly top 20 bug killers list. Tom Albers continues to pro-actively contact KDE contributors with significant portions of code in KDE SVN to get permission for the code relicensing effort.


Statistics
Commits: 2527 by 229 developers, 5383 lines modified, 1317 new files.
Open Bugs: 15223
Open Wishes: 13319
Bugs Opened: 404 in the last 7 days.
Bugs Closed: 393 in the last 7 days.

Commit Summary
Module Commits
/trunk/KDE
830
/trunk/l10n-kde4
630
/branches/work
218
/trunk/extragear
159
/trunk/koffice
138
/trunk/www
104
/branches/stable
97
/trunk/playground
89
/trunk/l10n-kde3
63
/trunk/kdesupport
52
Lines Developer Commits
176
Pino Toscano
79
141
Frederik Gladhorn
72
61
Kevin Patrick Scannell
61
57
Leang Chum
57
110
Frank Osterfeld
55
153
Allen Winter
52
122
Boudewijn Rempt
47
102
Laurent Montel
47
50
Adriaan de Groot
40
132
Volker Krause
39

Internationalisation (i18n) Status
Language Percentage Complete
Swedish
99.99%
Portuguese
99.97%
Greek
99.91%
Japanese
94.94%
German
89.99%
Estonian
89.70%
Spanish
87.15%
Chinese Traditional
85.88%
Polish
84.30%
Dutch
84.03%

Bug Killers and Buzz
Bug Killer Number Of Bugs Closed
Thomas Friedrichsmeier
60
Leonardo Finetti
44
Bram Schoenmakers
39
Robert Knight
22
Pino Toscano
20
Tommi Tervo
16
Lex Hider
15
Peter Penz
13
Diego Iastrubni
13
Dmitry Suzdalev
12

Program Buzz
Amarok
  6305
K3B
  5640
KMail
  5120
Kopete
  4330
Kontact
  3948
Kate
  3880
KDevelop
  3205
digiKam
  2798
Kicker
  2436
SuperKaramba
  2154


Person Buzz
David Faure
  856
Sebastian Kügler
  854
Stephan Kulow
  771
Matthias Kretz
  654
Adriaan de Groot
  630
Allen Winter
  629
Waldo Bastian
  440
Aaron J. Seigo
  364
Boudewijn Rempt
  340
George Staikos
  322
Commit Countries

Commit Demographics
Sex
88.8 %       Male
5.91 %       Female
4.83 %       (unknown)
Motivation
46.6 %       (unknown)
42.3 %       Volunteer
10.5 %       Commercial
 
Ages
63.8 %       (unknown)
18.4 %       25 to 34
8.22 %       18 to 24
4.74 %       35 to 44
3.84 %       45 to 54
0.451 %       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
Educational
Albert Astals Cid committed changes in /trunk/KDE/kdeedu/ktouch:
Make lesson keyboard names translatable
Bug 135570: lesson names not translatable
Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 43 more) Revision 747725

Anne-Marie Mahfouf committed a change to /branches/KDE/3.5/kdeedu/ktouch/training/english.ktouch.xml:
backport of fix for 142118 that closes 149620 and makes the fix avalaible for the next 3.5 release if any!
Bug 149620: incorrect default english lesson level 2
Diff Revision 747985

Jason Harris committed changes in /trunk/KDE/kdeedu/kstars/kstars:
It's amazing how long it can take to notice terrible design.

fromScreen() is supposed to convert a position given in pixel coordinates to sky coordinates ( (RA,Dec) or (Az,Alt) ). Somehow, all this time, it's been taking dX, dY arguments, which are the *angular* offset from the focus position, in radians. In other words, before calling fromScreen(), you first had to do half the work of conversion!
Wow.

Anyway, it's fixed now. fromScreen() now takes a QPointF: the screen position to be converted.

Also fixed bizarre behavior of Equirectangular projection.

Still to do:
get all parts of the sky to be drawn in that projection system
Diffs: 1, 2, 3 Revision 748622

Graphics
Albert Astals Cid committed a change to /branches/KDE/3.5/kdegraphics/kpdf/xpdf/xpdf/SplashOutputDev.cc:
Yet another gmallocn to gmallocn_checkoverflow, fixes ugly exit produced by page 61 of http://nlp.stanford.edu/IR-book/pdf/irbookonlinereading.pdf
Bug 153949: kpdf closes unexpectedly without saying anything
Diff Revision 748237