prev
Issue 75
9th September 2007
by Danny Allen
next


This Week...
Colour Picker and Welcome applets appear for Plasma. Many bugs fixed, especially through the merge of the Summer of Code project "KRDC Revamp". A KPart created, amongst other improvements in Marble. Support for XESAM UserLanguage queries in Strigi. More work, especially in playlist handling, for Amarok 2.0. Improved search interface in KSystemLog. A return to work on KRecipes. KVocTrain is renamed Parley. Restart of development on a successor to the Eigen math library, Eigen2. Start of a port of KMLDonkey, a file sharing frontend, to KDE 4. Parts of the Cokoon decorator infrastructure ported from Python to C++. Security fixes in KDM. Work on page effects in KPresenter. Kross bindings for the Falcon programming language. Import of PyKDE4, new Python bindings for KDE development. KDE SVN housekeeping sees the move of a variety of unmaintained applications to more relevant locations with regard to the KDE 4 release.

Simon Edwards introduces a new set of KDE bindings for Python, named PyKDE4:
PyKDE4 is a set of Python bindings for the KDE's libraries. It makes it possible to develop KDE programs using the Python programming language.

PyKDE4 builds on the Python bindings for Qt 4, oddly enough, called PyQt4. PyQt4 is developed by Phil Thompson at Riverbank computing and has been in production use for quite some time now, making it a very solid and mature base for PyKDE4. Jim Bublitz is the main man behind PyKDE4; doing most of the work such as keeping PyKDE up to date and working, and documentation. I help out with things like testing, extra tooling for i18n and installation etc, subversion wrangling and the occasional presentation programming Qt/KDE stuff with Python, not to mention the Python based projects I'm working on.

The goal for KDE 4.0 is to ship solid and complete Python bindings for the APIs in kdelibs along with the necessary supporting tools and documentation.  We want to deliver a development environment which is as complete as what you would expect when doing KDE development in C++.

The big step this last week was getting PyKDE4 into subversion so that people tracking KDE 4.0's development can also checkout, install, and start using a mostly functional set of bindings. Moving up to the release 4.0, we'll be busy tracking changes to the APIs in kdelibs, fixing bugs and filling in any other missing bits and pieces which application developers need, basically the things which you expect to find in a complete SDK.

We are interested in hearing reports about where the bugs are in PyKDE4 and also reports about where people haven't found bugs. ;-) In particular we would like contributions of example code which tests the bindings and the API or demonstrates how different classes can be used together in a Python program. Anyone with a little bit of programming skill can help out here. A good place to start would be by translating some of the unit tests in kdelibs into Python.

Benoît Jacob talks about the recent rewrite of the Eigen math library, Eigen2:
Eigen is a lightweight C++ library for linear algebra (matrices and vectors) written with the needs of KDE applications in mind. Eigen 2 is an attempt at making Eigen much more useful throughout KDE than Eigen 1 used to be.

Here is a short overview of what you can expect to find in Eigen 2, which is currently under very active development at /branches/work/eigen2. It is a rewrite from scratch (restarted last Sunday), although I am reusing ideas from Eigen 1 and TVMET.

Most importantly, Eigen 2 is built on expression templates. This C++ technique brings many benefits: it increases performance by removing temporaries and by enabling very lazy evaluation, and it allows for a very simple yet very powerful API.

Eigen 2 allows non-square matrices, contrary to Eigen 1. This should make it much more useful for some KDE applications, especially KSpread which explicitly requested that feature.

Like Eigen 1, Eigen 2 allows both fixed-size and dynamic-size objects and makes both share the same code without resorting to (slow) virtual methods, using a C++ technique known as the CRTP.

Eigen 2 reduces its source code size, and helps applications reduce their own binary size, by letting the vector and matrix classes share the same code. After all, a vector is just a matrix with one column.

Thanks to these techniques, Eigen 2 currently weighs only 1100 lines of code (according to sloccount), which is exceptionally small for a library with expression templates, which tends to take a lot of source code to implement. It is expected to grow to about 3000 lines in the final version. By comparison, the smallest other expression templates library that I know, TVMET, has 12000 lines of code.

Javier Goday and Urs Wolfer talk about the new KGet Plasmoid:
KGet has got its own Plasmoid! Javier Goday has worked the last weeks and it is now in KDE SVN. For making such a plasmoid possible, he has tweaked the D-Bus interface of KGet. The Plasmoid has at the moment tow different graphs which show the state of the active KGet downloads:
  • A list of barchart's with the percent of the downloads
  • A piegraph which shows the downloads represented by his size and completed percents
Download KGet Plasmoid video (3.4 MB, AVI)

Javier works still on the Plasmoid. He is going to fix some small issues (e.g only transfers of the main group are displayed...) and he has already plans to improve the Plasmoid with features like a so called "Speed history graph".

KGet has won with Javier Goday a new really active developer. He has already done awesome work on KGet, notably a good D-Bus interface and usabililty review fixes.

The usability team (Florian Graessle and Tina Trillitzsch) has reviewed the whole KGet for usablity issues. We have already fixed most of the reported issues. You will notice them when you start up the new KGet.

Manolo Valdes has improved the multi threaded transfer plugin. At the moment he is working on a new feature: Speed limitation.

Frederik Gladhorn writes a quick note concerning the current development state of KVocTrain, which has been renamed Parley:
After a week of juggling with names on and offline, it has been decided that KVocTrain shall no longer be a 'Train. Citing Wikipedia:
"Parley (Parli or Parlei) is a discussion or conference, especially one between enemies over terms of truce or other matters. The root of the word Parley is Parlée, which is from the French verb Parler, "to speak".

Parley has undergone a huge GUI facelift, enabling a feature which has been ready for three months at least, but was simply not accesible in the GUI. From now on, any language in the document can be practiced with any other. This has been on the wishlist for three years.


Statistics
Commits: 2589 by 231 developers, 6650 lines modified, 1658 new files.
Open Bugs: 14308
Open Wishes: 12998
Bugs Opened: 167 in the last 7 days.
Bugs Closed: 129 in the last 7 days.

Commit Summary
Module Commits
/trunk/KDE
915
/trunk/l10n-kde4
411
/trunk/extragear
264
/trunk/playground
161
/branches/work
161
/trunk/koffice
101
/branches/extragear
97
/branches/stable
94
/trunk/www
87
/trunk/kdesupport
64
Lines Developer Commits
337
Gilles Caulier
127
197
Pino Toscano
91
127
Frederik Gladhorn
89
138
Arto Hytönen
71
68
Tobias Koenig
50
434
Volker Krause
49
72
Mathias Soeken
46
45
Nikolaj Hald Nielsen
43
118
Sebastian Trueg
41
72
Andreas Pakulat
38

Internationalisation (i18n) Status
Language Percentage Complete
Portuguese
99.92%
Swedish
99.41%
Japanese
94.11%
Greek
93.13%
Spanish
87.69%
Chinese Traditional
87.47%
German
83.20%
Dutch
78.42%
Farsi/Persian
74.14%
Brazilian Portuguese
72.69%

Bug Killers and Buzz
Bug Killer Number Of Bugs Closed
Maximilian Kossick
27
Thomas McGuire
16
Bram Schoenmakers
14
Gilles Caulier
13
Pino Toscano
10
Frederik Gladhorn
8
Dawit Alemayehu
7
Mark Kretschmann
6
Andreas Pakulat
6
Sebastian Pipping
6

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
97 %       Male
2.30 %       (unknown)
0.586 %       Female
Motivation
48.07 %       Volunteer
43.0 %       (unknown)
8.93 %       Commercial
 
Ages
68.9 %       (unknown)
21.4 %       25 to 34
13.1 %       18 to 24
1.39 %       45 to 54
1.26 %       35 to 44
0.225 %       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
Josef Weidendorfer committed a change to /trunk/KDE/kdesdk/kcachegrind/kcachegrind/treemap.cpp:
kcachegrind: fix draw bug detected by valgrind

Almost invisible, there was a 3D-frame drawn around function rectangles in the call graph quite randomly, because a flag was not initialized. Now is drawn every time (exactly inside the black border).

To be backported...
Diff Revision 709622

Educational
Torsten Rahn committed changes in /trunk/KDE/kdeedu/marble:
- "Fixed" last "jump" issue in the flat projection.
- Tidied up the naming of the euler angles a but
- "Fixed" issue in the plain map which made the ocean water not being in sync with the rest.

Well, all this needs to be tidied up, still.
Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 2 more) Revision 707975

Graphics
Troy Unrau committed a change to /trunk/KDE/kdegraphics/okular/ui/pageview.cpp:
Fixed zoom factor issue. When zooming out at 100%, you would end up at 80%, but zooming in from 80% would give you 90%. Zoom levels are now symmetrical when using toolbar zoom or CTRL+scrollmouse.

Thanks to pinotree to pointing out the appropriate code for me to fix.
Diff Revision 708122

Albert Astals Cid committed changes in /branches/KDE/3.5/kdegraphics/kpdf:
Sesame Street Class #1: Left is left, Right is right
Sesame Street Class #2: If you want to print parameters 0 and 1, use 0 and 1, not 0 and 0

This fixes some printing problems with margins
Bug 149560: