prev
Issue 22
3rd September 2006
by Danny Allen
next


This Week...
Kickoff, the experimental application menu alternative developed by SUSE, is imported into KDE SVN. Import of the work to support SVG scalable tilesets in KMahjongg. KViewShell gets support for LZW compressed fax files. Strigi gets support for the D-Bus Inter-Process Communications (IPC) service, KBFX, a prospective element of Plasma, gets full support for Strigi. Kaffeine gets DVB plugin support. Amarok sees fundamental changes in a key statistics technology, along with a name change of the technology to "Amarok File Tracking (AFT)". Development of SafeSite, a network-aware "phishing" protection service proceeds. Interface changes in KTorrent.

Sebastian Trueg, lead developer of K3b, describes his path on the way to K3b 1.0:
It has been said a million times that I should release K3b 1.0, that K3b was stable enough and so on. But I did not want to listen. There were still many things I wanted to fix. One important part was the Video DVD ripping capability, which was very much outdated and unstable. It needed a rewrite. I finally did that. Now ripping Video DVD titles with K3b is, in my opinion, very easy and straight forward. K3b's Video DVD ripping feature, of course, does not provide as many settings and tweaks as DVD::Rip but I think it is usable by nearly everybody. If you know how to rip audio CDs in K3b, you also know how to rip Video DVD. It works just the same.

A second important issue was the data verification which never worked reliably due to charset conversion problems that I was not able to work around properly. Now I rewrote that one also letting K3b compare complete image checksums instead of comparing every single file. The advantages of this approach are the faster verification process and that it just works. The downside is that you don't know which files were not properly written in case verification fails. Well, maybe I can get to that for K3b 2.0. ;)

Anyway, K3b 1.0 is on its way and I am quite proud of what I accomplished so far. Sure, I still have a huge TODO list and big ideas for the future but that will always be the case. For now, the features K3b 1.0 will provide are a very good base.

Ok, I already mentioned it: K3b 2.0. What are my plans? For now there are two main topics: the complete redesign of the underlying K3b library including K3b's own CD/DVD image format (which is already working BTW) and Video DVD creation. For now there is an excellent wizard like tool for this but I always wanted to have Video DVD creation in K3b. But getting it right takes a lot of work. That's why it has been postponed to K3b 2.0.

Currently I am working on fixing bugs. As you may know, bugs.kde.org still contains hundreds of bugs related to K3b, most of which can simply be closed due to duplication or because they are already fixed or outdated. But I would love to get the list cleared for K3b 1.0 (hint, hint: help me!).

Emanuele Tamponi talks about the progress he has had with the Summer Of Code project, "Bezier and Scissors Tools for Krita":
The project born after a conversation with Bart Coppens on IRC: he asked me to develop a Framework for Curves in Krita and then two tools based on it: a "Bézier Tool" and a so-called "Intelligent Scissors Tool". The Summer Of Code was starting, so why not spend the summer gaining some money for university by coding something for KDE? It was a nice idea :)

So I started. At the beginning, I didn't know much about what I was going to do, but aided by Bart Coppens and all the other Krita/KOffice developers, I quickly got on track :)

The project consisted of 3 parts: a Framework, and two Tools. The Framework provides developers with the ability to quickly develop a tool that draws or selects "curves", that is, lists of points. It gives you the possibility to define "manageable" curves, that have control points for handling. Changing just a line, a tool can either draw a curve or select an area out of it. It is based on the idea of a function, calculateCurve, that converts the data that the user gives to Krita into a list of points, that then can be easily drawn with standard (still virtual if you want to change them) functions.

The second step was applying this framework to a "Bézier Curve Tool". Bézier are "smooth" curves obtained with a parametric function of up to four points. They are used to paint fonts, car design, and whatever else you want to be "smooth". I developed it relatively quickly, and it's split into a "Bézier Drawing Tool" and a "Bézier Selection Tool", just to let you draw/select bézier areas.

Third and last step was the most exciting one: develop the "Intelligent Scissors". This tool is like "Select Shapes" in the GIMP and "Magnetic Lasso" in Photoshop and combines the best features of the two. It uses 3 algorithms to get the work done: edge detection, non-maximum suppression to obtain a thin line out of the previous algorithm, and then A* algorithm to find the optimal path through the calculated edges.

But the "magic" of this tool comes now: it follows your mouse while you are moving it, so it selects the edges that *you* follow. This way, it can be fast (because it automatically adds other "control points" when your mouse is too distant from the last control point added) and at the same time it is very precise, because you see the edge it has found and you can, if you want, correct it. This behaviour has been taken from Photoshop.

I've taken a behaviour from the GIMP too: you can modify the curve before making the final selection. So, while you use the tool, if you see that a section of the curve is wrong, you can hit the "Ctrl" key to switch to "Manual Mode": the tool stops following the mouse and lets you manually select, delete, add (in the middle of the curve too) control points. Then you hit "Ctrl" again, return to "Automatic Mode" and after a single click the tool starts to follow your mouse again. Easy, isn't it?

Some screenshots:
  • Bézier Curve Tool (1, 2)
  • Magnetic Outline Selection Tool (1, 2)
Luckly I finished the tool right around the 21th August deadline, so it's all OK for Summer Of Code :) The two months of development gave me the opportunity to enter the world of Open Source: I'm now amazed with how fast and good KOffice 2.0 is developing, so I'd like to participate in the development of the Flake graphical object library very much, but also on other parts of Krita, KOffice or even KDE! But I like also other open source projects, so, perhaps, I could participate as documenter/developer/patcher for them too :) It's an amazing world and I think that its fast growth will bring great advantages to all.

Staying with the KOffice theme, KOffice 1.6 saw a feature freeze on 1st September, which leads up to the release of KOffice 1.6 Beta 1 on Friday 8th September.

This week saw further developments in Strigi, the leading indexing and search contender for KDE 4. Jos van den Oever gives us a quick update on current progress:
Strigi now has full D-Bus support. It is now possible to query and steer Strigi through simple scripts in all languages that support D-Bus. Examples are in the SVN repository under playground/base/strigi/src/searchclient. Current examples are written in Python, one with Qt3 as the GUI, and the other using GTK. Nothing stands in the way of creative search integration in Plasma.

Compiling has been reported to be a bit difficult for some people, although the #kat IRC channel has people that can help. Also inotify support is a bit whimsical at the moment so that's best disabled until better scrutinized. But why let that get you down, it's no worse then setting up dbus in the first place :-)

Hail to all scripters out there: a call for imaginative queries!

So, what kind of queries are possible?

Examples include:
  • give me all mp3 files in my home directory
  • all emails that have "commit-digest" in them
One thing in development which will be awesome is numerical comparison, for the backends that support it, the last thing remaining being to extend the API to support this feature. Then, you can say "give me all email from last week that were larger than 1 MB". What we would like is for people to come up with crazy queries and then we can see if we can implement them, an example being "give me all email that has xls attachments" - the information is there, but the query language cannot yet handle that so we have to move quickly if we want to keep ahead of Beagle, their latest release has wildcard support, so we have to work hard!

This week saw an interesting effort to see how many UNCONFIRMED bugs in Konqueror could be processed, or "triaged", in one day, which became the inaugural Konqueror Bug Day on Wednesday 30th August.

About 150 bugs were dealt with kung-fu style, with the running count now past 250. To visualise the magnificance of this achievement, see this graph (with the sharp fall at the end).

To push this momentum into a continuous downward trend, a new IRC channel, #kde-bugs, has been created where people interested in bug triage can discuss the process. Just like writing documentation, bug triage is an ideal way for less-technically inclined people to contribute positively to KDE. Every weekend from now should see a bug effort targeting a different area of KDE. Beginners are welcome, so join #kde-bugs today to participate!


Statistics
Commits: 2687 by 212 developers, 5807 lines modified, 1216 new files.
Open Bugs: 12945
Open Wishes: 11492
Bugs Opened: 333 in the last 7 days.
Bugs Closed: 476 in the last 7 days.

Commit Summary
Module Commits
/trunk/KDE
620
/trunk/www
347
/branches/stable
314
/trunk/l10n
302
/trunk/extragear
301
/trunk/playground
213
/branches/work
175
/branches/KDE
138
/trunk/koffice
83
/branches/koffice
78
Lines Developer Commits
320
Hamish Rodda
81
204
Laurent Montel
78
169
Stephan Kulow
77
135
Dirk Mueller
63
89
Gilles Caulier
49
123
Eike Hein
44
91
David Faure
42
47
Jos van den Oever
39
86
Sebastian Kügler
36
70
Marcus Furlong
35

Internationalisation (i18n) Status
Language Percentage Complete
Portuguese
100.00%
Swedish
99.45%
Danish
98.80%
Spanish
96.85%
Dutch
96.86%
Estonian
94.20%
Italian
93.54%
French
92.78%
German
92.34%
Greek
92.57%

Bug Killers and Buzz
Bug Killer Number Of Bugs Closed
Andreas Kling
103
Robert Moore
50
Philip Rodrigues
45
Tommi Tervo
30
Seb Ruiz
26
Andras Mantia
25
Danny Allen
22
Eric Kjeldergaard
19
Luboš Luňák
14
Mark A. Taff
14

Program Buzz
Amarok
  3237
Kopete
  751
Kontact
  698
Kate
  694
KMail
  689
SuperKaramba
  686
K3B
  686
KDevelop
  682
Kicker
  561
aKregator
  455


Person Buzz
David Faure
  286
Waldo Bastian
  257
George Staikos
  242
Tom Chance
  233
Kurt Pfeifle
  230
Aaron Seigo
  223
Jonathan Riddell
  221
Boudewijn Rempt
  221
Scott Wheeler
  220
Carsten Niehaus
  205
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
Andras Mantia committed changes in /branches/KDE/3.5/kdewebdev/quanta:
Fix a long-standing bug that I could finally somewhat reproduce, which caused growing of quantarc until it was too large to handle, caused by the automatic backup system.

Fix also other bugs in the auto-backup.
Change symlink handling, so paths are resolved after reading from config files. Hopefully it doesn't introduce new bugs.
Bug 111049: Quantarc grows large until quanta crashes - it writes teh same li...
Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 7 more) Revision 579846

Andras Mantia committed changes in /branches/KDE/3.5/kdewebdev/quanta:
Save As asked for confirmation of "save before close" for modified files due to the setEncoding() call. This was confusing and could result in data loss as well. For now, remove the possibility to change the encoding in the save dialog (users should change the encoding and save later or save and change later).

Possiby fixes #131728 (I cannot reproduce it with this version).
Bug 131728: using 'save as' on an existing open file causes file difference m...
Diffs: 1, 2 Revision 579876

Andras Mantia committed changes in /branches/KDE/3.5/kdewebdev/quanta:
Don't crash when closing a document in VPL mode.
Should fix the following bugs:
Bug 133082: Closing window with ctrl-W crashes Quanta -- Backtrace included
Bug 126585: quanta crashes with seg foult when closing all tabs
Bug 125153: crashes when starting a xhtml strict page
Diffs: 1, 2, 3 Revision 579903

KDE-Base
Stephan Kulow committed a change to /trunk/KDE/kdebase/workspace/kdm/backend/ctrl.c:
avoid crash if some religion celebrates easter in december
Diff Revision 577613
Discussion

Will Entriken committed a change to /trunk/KDE/kdelibs/khtml/khtml_ext.cpp:
my first bugfix commit

fixes JJ: Right mouse click - search at google - ampersand issue.
Bug 132678: JJ: Right mouse click - search at google - ampersand issue.
Diff Revision 577829

Multimedia
Allan Sandfeld Jensen committed changes in /branches/work/avkode/avkode:
Improvements and bug-fixes. Now phonon/mediaplayer works
Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 577877

Networking Tools
Percy Leonhardt committed changes in /trunk/extragear/network/knemo/knemod:
Fixed calculation of transfer speed. The former method was meant to be more accurate but obvioulsy wasn't. Maybe I should add a history to avoid 'jumping' of the transfer speed.
Diffs: 1, 2, 3, 4, 5 Revision 577639

Diego Iastrubni committed a change to /trunk/extragear/network/konversation/src/konversationmainwindow.c:
fix the tab movement on RTL desktops