Issue 35
3rd December 2006 by Danny AllenThis Week...
Behind the scenes, the code has been reorganised to make the indexing of data highly configurable. This reorganisation has allowed one of the programs that comes with Strigi to receive a significant increase in speed. The program 'deepfind' is a program that lets you find files within emails, ZIP files, DEB and RPM packages, and a wide variety of other formats. It uses the streaming classes of Strigi to handle these formats. Users of deepfind quickly find that they become dependent on it and cannot live without it anymore! The new configurability of Strigi allows deepfind to be significantly sped up, because Strigi's indexing code will no longer extract all possible information, as it does while indexing, but will recurse into nested files and only extract filenames.
Even though using D-Bus makes it easy to call Strigi from any program, so far, uptake in KDE applications is not what I had hoped it would be. So I have written convenience classes for integrating Strigi into external applications. Developers that want to make calls to Strigi from their application can simply link to a small library that takes care of communication and provides a nice queue which makes querying fast and ensures it does not block the GUI. What is required now is for KDE developers to start playing with Strigi and incorporate it into all programs where they deem it useful. Currently efforts are underway in enhancing Akonadi, KHelpCenter and Kerry in this way. Strategically, the most important application to enhance is Konqueror and I hope someone will pick up this gauntlet soon.
The next few months should be an exciting realisation of maturity, functionality and integration.
Statistics
Commits | 2127 by 183 developers, 4329 lines modified, 750 new files |
Open Bugs | 13037 |
Open Wishes | 12005 |
Bugs Opened | 270 in the last 7 days |
Bugs Closed | 197 in the last 7 days |
Commit Summary
Module | Commits |
/trunk/l10n |
508
|
/trunk/KDE |
379
|
/trunk/extragear |
270
|
/trunk/playground |
231
|
/branches/stable |
212
|
/trunk/koffice |
167
|
/branches/work |
89
|
/trunk/www |
85
|
/branches/KDE |
79
|
/branches/kdevelop |
42
|
Lines | Developer | Commits |
208
|
Laurent Montel |
102
|
167
|
David Faure |
78
|
130
|
Gilles Caulier |
71
|
77
|
Jos van den Oever |
70
|
129
|
Ariya Hidayat |
60
|
97
|
Thomas Zander |
35
|
67
|
Dirk Mueller |
34
|
125
|
Sebastian Trueg |
34
|
107
|
Allen Winter |
32
|
81
|
Martin Aumüller |
28
|
Internationalization (i18n) Status
Language | Percentage Complete |
Portuguese (pt) |
99.94%
|
Swedish (sv) |
99.79%
|
Danish (da) |
99.77%
|
Spanish (es) |
97.25%
|
Dutch (nl) |
97.06%
|
Greek (el) |
95.48%
|
Italian (it) |
93.77%
|
German (de) |
93.6%
|
French (fr) |
92.82%
|
Estonian (et) |
92.13%
|
Bug Killers and Buzz
Person | Bugs Closed |
Martin Koller |
18
|
Tommi Tervo |
16
|
Bram Schoenmakers |
15
|
Mark Kretschmann |
15
|
Seb Ruiz |
14
|
Joris Guisson |
12
|
Martin Aumüller |
11
|
Sebastian Trueg |
10
|
Sebastian Sauer |
8
|
Luboš Luňák |
8
|
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
|
Aaron J. Seigo |
330
|
George Staikos |
330
|
Boudewijn Rempt |
306
|
Stephan Binner |
252
|
Thomas Zander |
244
|
Commit Countries
Commit Demographics
Sex
Male (88.37%) | |
Unknown (10.95%) | |
Female (0.68%) |
Age
Unknown (68.18%) | |
25 to 35 (14.17%) | |
35 to 45 (13.82%) | |
18 to 25 (2.28%) | |
45 to 55 (1.55%) |
Contents
Bug Fixes | Features | Optimization | Security | Other | |
---|---|---|---|---|---|
Accessibility | |||||
Development Tools | [] | [] | [] | ||
Educational | [] | [] | [] | ||
Graphics | [] | [] | [] | [] | |
KDE Base | [] | [] | [] | [] | |
KDE-PIM | [] | [] | |||
Office | [] | [] | [] | ||
Konqueror | |||||
Multimedia | [] | [] | [] | ||
Networking Tools | [] | [] | [] | ||
User Interface | [] | ||||
Utilities | [] | [] | |||
Games | [] | ||||
Other | [] |
There are 79 selections this week
Bug Fixes
Educational
Make sure a quiz is correctly restarted when several vocabularies are open.
Graphics
Instead of showing "No other Persons" show "None". Translated
versions had problems as the "No other" part depended on the category.
this fixes this <a href=""" target="_blank">http://bugs.kde.org/show_bug.cgi?id=129428">http://bugs.kde.org/show_bug.cgi?id=129428</a>;
KDE Base
Focus the process search line on start up.
Fix correct display of file size transfers > 2GB
Try to find a visual with as many OpenGL features as possible.
Some screensavers don't look quite right without a Z-buffer.
Number of horizontal lines is off by one, plus it no longer tries to 'smart' about showing the top bar, plus fix integer rounding errors ( a*b/c is better than
a*(b/c) when using ints! )
This was fixed in kde 3.5 as well in commit revision 608911 so closing bug.
Mostly fix the selection of processes. It's impossible to fix 100% because of stupid stupid race conditions that I cannot avoid without rewriting the search box.
This is inherently fixed (i,e. fixed by design) in kde4.
Closing bug. It's as good as it's going to get.
Thank you Xtracto for a clear bug report with exact instructions to repeat :-)
Correct calculation of colour values in 256-colour mode. The previous code resulted in colours which were too dim. Patch by Tom Schumm
KDE-PIM
more printing fixes:
1. the last commit to determine the timeline fontsize was wrong. the better solution is to use the cell width
2. draw a complete horizontal line in the timeline box under the text when using the pH:MM AMPM time format
3. use an incredibly tiny 6pt helvetica font to display the small month box in the header as necessary dependent on the height of the header.
what's better? a tiny font or a slightly bigger font that's mashed together with other date numbers? neither is especially readable.
Bug 138124: fix crash when an alarm triggers while the user is answering the confirmation prompt when deleting it
Multimedia
drop complete tables when clearing tables. Fixes a problem where the statistics rows are not updated when deviceid/url when the deviceid/url for a song changed. This code was only necessary for CDs/DVDs anyway.
Stop the musicbrainz lookup properly when dialog is cancelled. Thanks to wm161 for the patch.
Features
Development Tools
Apply DrawNoteOnTop.diff by Achim Spangler at
<a href="http://www.geeksoc.org/~jr/umbrello/uml-devel/9863.html">http://www.geeksoc.org/~jr/umbrello/uml-devel/9863.html</a>;
Achim, your continual bugfixes earn you an honor seat in the AUTHORS file :)
Educational
Several changes:
Changed XYZ stuff in SkyPoint and SkyMap to use Quaternions; added quaternion.[h|cpp] as part of this. We still aren't actually using this code, but it's in place for when we are ready to try it.
Removed SatelliteTrack class; moved its functionality to SatelliteComponent. Added SatelliteComposite to manage the SatelliteComponents. The code is ready to start testing actual satellite tracks in the sky map.
MilkyWayComponent is now derived from LineListComponent. I tried to make this class work properly with the new SkyMap::toScreen(SkyLine) function, but it got too complicated. The problem is that this function truncates lines at the edge of the screen, which messes up the construction of the MW polygons. Rather that try to deal with all the corner cases, I simply added a bool option to SkyMap::toScreen(SkyLine) that allows you to deactivate the truncation of lines at the screen edge. So Milky Way polygons will exist beyond the borders of the SkyMap.
Iceland map by Laurent Garnier, i added glacier info
Again thanks to mom for doing the beautification of the map
New the constellation boundary that encoses the current focus point is now highlighted.
TODO: make this optional, and ad option to highlight the constellation enclosing the mous position instead (which will be a bit more difficult, because it should be done in the overlay layer).
Graphics
- SVG icons for new/edit matrix and new/edit vectors
- Matrix and vector widgets use kiconloader for their icons.
- reorganize context menus
- 'edit vector' calls providers dialog if slave vector.
- 'edit vector' and 'edit matrix' buttons call dialogs in edit mode.
Add support for annotations
@Pino: Can you write a big, green 'Yes' on the website, please? :)
KDE Base
DCOP support for splitting the view
Support for splitting the view with DBus
KDE-PIM
Add command line options to
- Open the URLs in a separate window (--open, -o)
- Merge the events of the URLs into the standard calendar (--merge, -m)
- Add the URLs as new resources (--import, -i)
If no command line option is given, korganizer will ask which of these actions should be taken for each URL. If no URL is given, the standard resource calendar is displayed.
This commit will probably also remove the need for korganizer-import.desktop (but I don't know the details why that was added at all, so I don't remove it myself).
Unfortunately, this fixes the problems only for standalone KOrganizer, not when the calendarpart of kontact is loaded. In that case, none of the options has any effect (as koapp.cpp is not used in kontact). I don't know kuniqueapplication enough to determine what i have to change to make the calendar part of kontact behave similar to korganizer standalone...
Add kiosk option for listing mimetypes that are stripped from inline-forwarded mails. Useful for stripping out Toltec or Outlook tnef blobs, for example.
(Kolab Issue 1506)
Office
Implement underline/italic/strikeout actions properly
Add various placeholders for more code.
Implement inserting of
* non-breaking-space (ctrl-space)
* non-breaking-hyphen (ctrl-shift-dash)
* soft hyphen (ctrl-dash)
* framebreak (ctrl-enter)
Multimedia
added a new context browser page for labels. Shows the ten favorite songs with that label and links to the last.fm tag.
Use consistent loading feedback for the shoutcast category by changing the icon to show a loading animation, instead of overriding the cursor.
try wikipedia entries with (band)/(album)/(song) postfix first before falling back to unqualified entry
Combine similar genres together in the Shoutcast browser. (e.g. Greek & Greece, Romania & Romanian).
Each alternate genre list is downloaded and combined with the main genre list.
show rating as stars in flat collection view
- thanks to Daniel Faust for the patch!Daniel Faust
Solve the usability nightmare that has been the "Scan Changes" button in the collection browser. This button is no more. Instead, I created a permanently active entry "Update Collection" in the main menu.
I think this is less confusing than conditionally showing this button or not. And also it's sometimes handy to start a update scan immediately.
Ok, here is a new idea I'm toying with, inspired by KMail: Whenever new items arrive in the playlist, we draw them in a different color (red currently). This is cool because when you merge two playlists, you have a visual cue that tells you where the new playlist begins.
Well so far this is just 10-minute hack to demonstrate the idea. If people like it, we could develop it further.
Per multiple request:
Add option to generic device to force all files to use vfat-safe paths. Lets you use the generic device on i.e. ext2 partitions but be able to copy the files to a vfat device later without running into filename issues.
Networking Tools
Changed article format to support information on whether it's been downloaded
Shifted location of feed caching/history to rssfeed subdirectory
Added initial lame support for download information (additional text in article list - may add coloured rows instead later)
Tweak the ui:
* Don't hide the regexp editor button when the editor isn't installed just disable it instead
* try to come up with a bit less chaotic layout
User Interface
work in progress konqueror icon.
adding kwallet icon, first version! not for real use yet
Simplifing 16x16 mail actions (menu). Small changes to Kmail icon.
Utilities
Add a "New Window" option to Dolphin
Games
add the first ship
Other
Introducing libKMetaData:
* As proposed last week libKMetaData is based on the Resource class which represents one piece of information and has a bunch of properties which basicly represent the RDF predicates in the metadata store.
* One simply creates a Resource instance with the resource URI as a parameter and can then modify it however needed.
* loading and storing is not implemented yet, though. So actually it dows not work yet.
* Autosyncing is also not implemented yet. I am not sure yet what the best approach would be here.
* Next step is to create Resource subclasses from the Nepomuk meta data ontology that provide convenience classes to access all kinds of information.
I had some internet trouble the last days (as in: I had none). So I coded this like I thought was right without consulting anyone. Comments are welcome.
The Ontology parser mostly works now and can generate header and soure files of the Resource subclasses representing Ontology classes.
Still TODO:
- proper command line interface
- CMakeLists.txt creation
- cmake integration
- maybe some tweaks to ignore certain predicates
I tested it with the PIMO Ontology which contains a lot of stuff that makes no sense in libKMetaData.
Optimization
Development Tools
Implement a powerful caching-mechanism for preprocessing included files. The driver manages a lexer-cache of limited size that stores multiple variants of lexed files including their exact dependency-information that can be used to exactly determine whether the file needs to be lexed again under current driver's state, or whether the results of a previous run can be used.
This makes the header-parsing mode usable for every-day-use, and lightning fast for example while editing a file and the same file needs to be parsed again and again!
Parsing kdevelop-3 still takes more time than without header-preprocessing, but it's another order of magnitude compared to before.
Note: This might also become useful for kdevelop-4.
Graphics
Preload next and previous page if threading is enabled and not on low memory setting
KDE Base
Remove the big strigi lock! In the CLucene backend, I was being conservative about allowing concurrent reads and writes to the index, hence making indexing slower if you were looking at the status. This has now been fixed and it makes a huge speed difference if you are indexing and searching at the same time.
Office
now with lightning-fast real-time compression, as I wrote in my blog
Networking Tools
Changes :
- Do rechecking of chunks during uploading once every 5 chunks, when no corruptions have been found
- Minimize calls to gettimeofday by using a global time stamp variable we update only a couple of times per second (Thanks to Thiago for coming up with the idea). SocketMonitor and Speed still use gettimeofday, because of their high precision requirements.
Other
Development Tools
Import my kdev-pg TODO, in case I lose it again.
Feel free to add stuff to this file, or even implement one or two of these items ;-)
Educational
* Ok, I still see no real way to test my KPart-code but this might work. I will move it to libkdeedu as Kalzium is not using this code anyway. There, I will code a small mini-demo application to test the KPart-stuff.
So eventually Konq will be able to display molecules in 3D by using Kalziums 3D code (which is 99.999% done by Benoit Jacob)
Graphics
KDE Base
Ported from kapp to KInstance+QApplication. We need still kdeui for kstartupinfo, but this way we avoid:
- the dbus registration
- a lot of other gui init done by kapp
- useless kapp command line options (kstart --icon foo ... won't do the expected)
- the startupid env reset by kapp, which we then need to set again before starting the app (cc to Lubos for post-commit validation of that change)
Also turned the KProcess into a pointer to avoid 'QSocketNotifier: Can only be used with threads started with QThread' warning.
prepare move of kross to kdelibs as discussed at <a href=""" target="_blank">http://lists.kde.org/?t=116127468000002&r=1&w=2">http://lists.kde.org/?t=116127468000002&r=1&w=2</a>;
Added a simple script useful to convert strigi's xmlindexer output files to rdf
start experiment with inotify
Office
It was bound to happen sooner or later.
KPresenter still depends on QtRT (aka kotext1) which doesn't work anymore due to it depending on Qt3 internals. And now I reused some widget-classes in the libs, and let those widgets be based on the new kotext (scribe) with the result that kpresenter stopped compiling.
So, I'm disabling kpresenter compilation untill the maintainers start to rework it so it starts to use the flake stuff.
Multimedia
Networking Tools
Utilities
Get ride of the sidebar and use dockwidgets instead.
Default is now three panes, but the dockwidgets can be stacked, etc. to the user convenience.
There's a slight loss in feature since I disabled dockwidgets hiding, it's simply because some rework is still needed in kdelibs and Qt to make them work correctly.