prev
Issue 39
31st December 2006
by Danny Allen
next


This Week...
The KDE Commit-Digest 2006 retrospective. blinKen and KNetWalk become the latest applications to move to scalable graphics. KSquares further develops, with an AI player implemented. More maps and a more sophisticated divisions and capitals implementation in KGeography. Support for password-protected RAR archives in the kio_rar interface. Work to support drag-and-drop of transfers in KGet. Import of "koregressions" test suite for KOffice. Longstanding KWeather and KHTML bugs fixed. Major refactoring in the "sonnet" natural language checker. Version 1.0 of Eigen, the library for vector and matrix math, is released.

Here we are at the end of another exceptionally bright year for KDE. As always, one of the prime highlights of the year was the KDE World Conference, held in Dublin, Ireland. This year saw the welcome surprise of additional sponsored developer meetings, focused on pressing development issues: KDE Four Core in Trysil, Norway and the K3M session in the Netherlands, alongside several informal meetings of other groups. 2007 may see many more of these events organised as a high-bandwidth impetus toward KDE 4.

The KDE 3.5 series saw regular reinforcement through point releases in January, March, May and August, with KDE 3.5.5 released on October 11th 2006. Though hidden through seemingly-insignificant minor version numbers, the 3.5 series had a policy shift, allowing well-tested features to be added to the release - alongside the bugfixes-only allowed previously, this policy a recognition of the extended development cycle of the major KDE 4 desktop, which at the start of the year was a distant blur, now coming into ever-sharper focus at the year end. KDE 4 will be released in 2007.

More than any other year, 2006 registered the maturity of the base desktop, and became the year of the application. I asked the developers of some of the inspiring applications of the year to share their intimate experiences and successes of the year:

Mark Kretschmann, founder and maintainer of Amarok, recalls a 'rokking' year:
The past year has been a significant year for the Amarok project, I believe. A turning point in some ways. Let me try to summarize what made this year special for us.

Release of Amarok 1.4
In Spring 2006 we released the first "Fast Forward" titled version of Amarok. This series introduced a number of defining features:
  • Media Devices plugins, offering support for most portable players on the market (iPod, Generic USB, MTP, iRiver..)
  • Built-in support for Last.fm streams
  • Magnatune music store for online shopping
  • Music sharing via DAAP
  • Support for removable media in the collection
  • Shoutcast stream browser
  • Podcast support
  • Music can be rated with a score
Last but surely not least we also fixed an incredible amount of bugs. This is in some ways the most important "feature" of the Fast Forward series. It is my impression that people started to perceive Amarok as a mature product, instead of merely a "featureful" player. Now Amarok became software that can be relied on for everyday use.

KDE Multimedia Meeting
In Spring, our developer team had the unique chance to meet in person at the K3M multimedia meeting in the Netherlands. This meeting was incredibly inspiring and productive, and helped a lot to refresh our "team spirit", after we had gained several new developers. Additionally it was very interesting to learn about Phonon, KDE 4's all new multimedia framework, which is being created by Matthias Kretz. At this point I would again like to thank the people from KDE-NL for being fantastic hosts. You guys rock.

Overtaking XMMS
In May 2006 we finally overtook XMMS in popularity, according to Google Trends. For me personally this was a special moment, because Amarok was started as a XMMS replacement. Seeing that people appreciate our work is certainly satisfying, maybe it is the "payment" of the free software developer.

Next year?
2007 could become another very significant year for Amarok, perhaps even more so than the past year. In January we plan to start working on Amarok2, which will be based on Qt4/KDE 4. At the same time we want to achieve making the program work natively on Windows and OSX. The future will tell if Amarok will ever become popular on the vast Windows platform. I hope it will, but as Sebastian Kügler noted back at the multimedia meeting, this could mean radical changes for the way Amarok is being developed, should there be a huge influx of new developers from the Windows world. I hope we will never lose our great family-like "Amarok Team" spirit :)

KOffice had a year packed with milestones of increasing importance. Boudewijn Rempt, lead developer of Krita, and Thomas Zander, KOffice developer, talk about their project and work. Boudewijn Rempt:
2005 was the year Krita got its first release, but 2006 saw two main releases of Krita: 1.5 and 1.6. These releases added features that no other free software raster graphics application had offered before, like pluggable managed colorspaces in 8, 16 or 32 bits per channel, cmyk, L*a*b, yCbCr, adjustment layers, as well as a host of features needed to move Krita past the XPaint level of functionality: filter plugins, paint operation plugins, support for the CREATE standard, curve tools (thanks to the Google Summer of Code), OpenGL support, HDR, raw inmport, lots of file import and export filters - 30,000 lines of code added and nary a day without a commit.

Work started on Krita 2.0 too, with integration with the new KOffice flake shape architecture, dynamic brushes, a Chinese ink brush and true resolution for images. For the 1.6.2 release in January or February 2007 we've got bugfixes, a truly wet watercolor colormodel and a smudge paintop.

Krita was represented at the Libre Graphics Meeting, Fosdem and in the picture in general, but the big news for me was the Akademy Award for Best Application! And even while writing this, coding continues - plenty done, plenty still to do!

Thomas Zander:
For most of the year I've been working on replacing some core parts of KWord. The text engine is replaced with Qt-scribe. The frames implementation has been replaced with Flake and we have ported all of this to the much cleaned up kdelibs4/Qt4.

This hard work is starting to show dividends; adding new functionality gets easier and features added to other KOffice applications are directly reusable in KWord. Though I try to minimize adding new functionality until we are on par with the feature set of KWord 1.6 we now already have various features that have been in our bugzilla for years, like page-spreads (ideal for having a big image over 2 pages), and better text-runaround for those that want more graphics in their documents. Also much better support for having lines, borders and other visual markers which, frankly, is a bit of a hack in the current KWord release. And most important, our fonts just look and print great now.



A winning strategy for many big software tools are plugins. I chose to have various types of plugins which will make it easier to add new functionality in future versions. A quick example of possible plugins specific to text; run a code-formatter on selected text in any KOffice application. For those colored source-code snippets. Or have perfect integration with a bibliographic engine.

Alexander Dymo reports from the KDevelop camp:
2006 was a very productive year for the KDevelop team. Since 2004, when we did our widely-regarded releases (3.0.2 and 3.1), we hadn't achieved anything near those impressive project milestones.

This all changed in 2006.

We spent the whole year working on two things: KDevelop 3.4 - our greatest 3.x release ever - and concurrently building what will eventually become 4.0. KDevelop 3.4 (started back in October 2005) is now almost ready (RC2 went public a week ago). A large number of impressive radical changes have gone into 4.0 already. New developers joined our team and new users followed.

Here are some impressive statistics that illustrate our success story (click to enlarge):



The first notable thing is constantly growing commit count. The highest number of commits in 2005 was 95, which is only 42 commits more than the lowest number in 2006. The highest number - 329 (August 2006) remains unprecedented in KDevelop history!

During 3.4 development we've fixed 403 bugs and wishes (this number is still growing so it might be even bigger by the time you read this!). Now, KDevelop 3.4 is ready to be released with only 292 outstanding bugs. We are also proud that we moved down to the middle of the list of top 20 KDE modules with the most bugs! Hopefully even more bugs will be fixed up to the 3.4 release date.

In 2006, our developer community was unusually lively! Three newcommers of 2006 - Andreas Pakulat, David Nolden and Megan Webb - occupied the list of top 10 KDevelop committers. Two affilitates of year 2005, Jakob Petsovits and Vladimir Prus still have an itch for committing. And our seasoned KDE contributors Matt Rogers and Hamish Rodda are driving 4.0 development.

We are looking forward to see what the next year brings KDevelop and have the realistic expectation that 2007 will be even more successful for KDevelop team than 2006 was!

The KDevelop Team reminds you to try the latest 3.4 version and wishes you Happy New Year!

Back to the here and now, Friedrich W. H. Kossebau talks about his recent work in the KDE PIM contacts framework:
The Contacts framework, which is currently developed in playground/pim/ for KDE 3.5, has signalled the beginning of the end for hardcoded support for contacts. No more will the framework be restricted only to merely emailing someone, but instead functionality will be limited only by the installed plugins.

The concept behind all this is that an entry in the addressbook, known as a "contact", is a collection of different properties, mostly addresses in different systems (email, phone, postal, chat). Some properties can have different items, like the phone numbers, others only one (birthday). For every property, certain services are possible.

I see three types of services: action services, action services for some given data, and status services. As an example, the contact property "email" is linked to services such as:
  • "Email to..." (a regular action service)
  • "Email file/url to..." (a data action service)
  • "Number of unread emails..." (a status service)
Available adapters to properties and services are all given by plugins. Code using the framework simply queries the property/service trader and the operates on the results in a general way, without really needing to know what the service offers. Those needing more fine-grained control over the data can use property and service ID's to filter.

The framework is still a work in progress, with emphasis on the concept up until recently. However, the code is relatively stable, with people reporting using it successfully in their daily work :)

I welcome everybody to try the framework and the two programs currently using it (the Contacts Kicker applet and the Contacts card server). I am especially looking for someone to help enhance the service plugins for making phone calls.

Discussion has started to prepare for the integration of the framework into KAddressBook for the KDE 3.5.7 release. So, go to trunk/playground/pim/contact{s,sapplet,cards} and take a look :)

More information is available at the kde-apps.org entry and in my blog.

It may be due to the holiday, but this week was an even better week than most for bug killing, with Alexandre Pereira de Oliveira taking care of 86 Amarok bugs, and Martin Koller crushing 76 KWeather, KHTML and more issues - not to mention the other operatives, not only this week but throughout the year. This is often silent, barely-noticed and yet such vital work, and together with translators, artists and documention people comprises an equal effort in the KDE partnership.

To all contributors, users and readers, have a great 2007!


Statistics
Commits: 1897 by 174 developers, 4065 lines modified, 1074 new files.
Open Bugs: 12948
Open Wishes: 12029
Bugs Opened: 195 in the last 7 days.
Bugs Closed: 300 in the last 7 days.

Commit Summary
Module Commits
/branches/stable
371
/trunk/KDE
349
/trunk/l10n
221
/trunk/koffice
218
/trunk/playground
173
/branches/work
165
/trunk/extragear
154
/branches/KDE
80
/trunk/www
60
/branches/kdevelop
60
Lines Developer Commits
194
Laurent Montel
87
56
Adriaan de Groot
47
70
Ludovic Grossard
41
6
Achim Bohnet
39
91
Simon Hausmann
38
81
Alfredo Beaumont Sainz
38
81
Thomas Zander
35
80
Aaron J. Seigo
35
60
Jens Dagerbo
34
140
Martin Koller
30

Internationalisation (i18n) Status
Language Percentage Complete
Portuguese
99.99%
Danish
99.98%
Swedish
99.96%
Spanish
98.08%
Dutch
97.52%
Estonian
95.70%
Greek
95.73%
German
95.17%
Italian
94.35%
French
92.78%

Bug Killers and Buzz
Bug Killer Number Of Bugs Closed
Alexandre Pereira de Oliveira
86
Martin Koller
76
Jens Dagerbo
48
Bram Schoenmakers
35
Martin Aumüller
25
Andreas Pakulat
21
Julian Seward
12
Angelo Naselli
7
Sebastian Trueg
6
Albert Astals Cid
6

Program Buzz
Amarok
  4570
K3B
  2872
Kate
  2850
KMail
  2845
Kopete
  2558
KDevelop
  2099
digiKam
  1756
Kontact
  1571
Kicker
  1405
Kaffeine
  1266


Person Buzz
David Faure
  1162
Adriaan de Groot
  1070
George Staikos
  874
Stephan Kulow
  780
Waldo Bastian
  556
Aaron J. Seigo
  458
Stephan Binner
  262
Boudewijn Rempt
  258
Thomas Zander
  248
Thiago Macieira
  240
Commit Countries

Commit Demographics
Sex
92.5 %       Male
8.64 %       (unknown)
0.455 %       Female
Motivation
46.9 %       (unknown)
42.1 %       Volunteer
12.6 %       Commercial
 
Ages
76.2 %       (unknown)
13.1 %       35 to 44
13.1 %       25 to 34
8.45 %       18 to 24
0.650 %       Under 18
0.455 %       45 to 54


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
Alexander Dymo committed changes in /branches/kdevelop/3.4/parts/appwizard:
This is rather hackish solution to the project creation appwizard used to open files before opening project (opening project was delayed using QTimer::singleShot). Therefore several things (code completion, switch header/impl., etc.) in C++ support didn't work because they were activated only on activePartChanged signal.

And that signal was emitted long before C++ support part was loaded.

I believe this could cause problems not with c++ support only but with other project-wide plugins.

So the fix is to catch projectOpened signal in appwizard and open files afterwards.
Diffs: 1, 2, 3, 4 Revision 616498

Jens Dagerbo committed changes in /branches/kdevelop/3.4/languages/cpp:
This patch does a few related things:
#removes a lot of unused and weird stuff from problemreporter
#all parser activation decisions are moved back into cppsupport where it belongs, problemreporter is just UI
#fixes flickering problem tabs
#fixes a case where already open documents don't get a problem icon marker
#fixes sorting so it happens numerically, no lexographically
#afaik fixes repeated entries. if this still happens, I don't think problem reporter is responsible
#afaik fixes the remaining cases where the parser could be invoked against non-c/c++ files
Bug 111341: c++ parser runs on the active file, even if it isn't a c++ file
Bug 117621: all //xxx fixme is printed twice
Bug 131716: Line numbers should be sorted numerically instead of lexographica...
Bug 135958: Flickering in Problems Tab
Diffs: 1, 2,