The Wheel of Time turns… meaning that the Kate Project has quite along history by now. The Kate Project was started back in December 2000, so it’s almost 10 years old. Development sometimes continues with a fast pace; and at other times there is almost no progress for weeks. But all in all, looking back at those 10 years, we can proudly tell you that the project is very much alive. Let’s take a look at the traffic of our mailing list:
The traffic itself does not say much about the development. It probably tells us that there are quite a lot of people using Kate and reporting wishes and bugs. This is a good thing The commit statistics for Kate, KWrite and the KTextEditor interfaces look like this:
Before 2000, Kate did not exist yet. Instead, so these commits come from ...read more...
As with any new code, during adoption bottlenecks show up.
For example the rendering of text lines with many ranges inside was quiet slow. This is now partly addressed by Milian Wolff, thanks a lot.
An other bottleneck was the assumption, that it is fast enough to hash the ranges just by their block and iterate over all of them to search the ranges matching a specific line. This does scale well enough for KatePart itself, but KDevelop creates multi-thousand ranges for small documents. To improve this, an internal special mapping was implemented by David Nolden for ranges which don’t span more than one line. For them an efficient line => range mapping is easy and not to costly.
If both changes are tested a bit more, they can be backported in time for KDE 4.5, which will allow a good usability of KatePart for KDevelop once again after the rewrite, given other bugs are fixed.
Following hot on the heels of a week of intensive KOffice performance analysis in Helsinki and a great Akademy, I'm in Bangalore again for two weeks. Not specifically to meet again with the Bangalore interns working on FreOffice, but rather to work with Nokia on mobile KOffice. Marijn Kruisselbrink is here together with me, and when we leave, Jos van den Oever will relieve us.
I'm happily hacking away on a project that was started at the last KOffice sprint in Essen: making KOffice more flexible by allowing other canvas types than QWidget-based ones, for instance, based on QGraphicsView. Lots of interesting challenges, and also some quite nice progress already.
It's the rainy season, as you can see from this picture taken from the rooftop of the Nokia building:
Day by day KPresenter becomes more and more an end-user presentation application. However, to be a real end-user application, KPresenter needs some new options and some new cool stuff. That’s why, I think it’s a good idea to ask for KDE community to know the essential need for them. So if you think KPresenter needs something, please send a comment .
There is already a brief idea list from zagge, morice-net, me and some discussion with KDE community members during Akademy.
Presentation tools :
Blur effect on highlight mode (presentation tools) and add anti-alisasing (in order to have a smoothy circle)
When an animation tool like highlight or black screen was selected play animation like fade effect
New tool to navigate easely between slide (For example if presenter view mode is disabled)
Allow user to navigate with keyboard when a presentation tool is activated
Allow user to resize light (highlight tool)
Page effect :
Allow user to set a default page effect for the slideshow (for a 30 slides presentation ...read more...
OpenChange is an important project, but it does require quite a lot of work to get it all to build. We're working on the process, but in the mean time, we've (ok, Julien Kerihuel with nothing from me except encouragement) has built a Virtual Box image that provides OpenChange all built, configured, set up and ready to try.
I witnessed (and was pleased to take part in) some interesting discussions on #qt-labs this afternoon, all stemming from a contribution to Qt3Support being rejected.
A long story short, the contribution - despite looking reasonably valid - was rejected because Qt3Support is effectively unmaintained, and as a result, any changes to it could have negative impacts on users of the support API.
I understand that argument, yet at the same time - I can't help but think it's a bit of a backwards approach to be taking. Typically, a contributor will wander along, find a bitrotting module/project that interests them, throw patches at the previous maintainer - and shortly after doing so, find themselves a de-facto (or indeed official) maintainer through their efforts.
This is a natural progression of things and should really be encouraged, it allows what would otherwise be dead code to live on. However, in Qt3Support's case, the central point was that they'd love someone else to take responsibility for it, but don't want to expend the effort themselves to triage, maintain, and otherwise support it ...read more...
The User:* pages are now finally protected (see bnc#409520 for history).
Looks as if the Special:Import is now finally working also for normal users.
That are good news, but there are some other issues with the wikki:
As already pointed out by some other (e.g. in the 5th comment on this post): older external links to wikipages don't work anymore and there is no hint on the 'empty' page that there is a new wiki with a new structure and where you can find the old wiki. That's really annoying! But there is a info one some pages in the old wiki where to find the new pages (as e.g. here), we need something like that in the new wiki with info where the page was moved. At least as long as this page is empty.
In my last posting, I mentioned that my notebook eats by far more battery when running Linux / KDE than running Windows 7. Even though I identified (and fixed) that this was due to the switchable graphics (both cards were running and sucking power), I was eager to optimize the power consumption. After some research, I came up with the following solution.
I put several energy-savign tweaks into a script, saved it to /usr/local/sbin/powersave.sh and added an entry in sudoers for it because it requires root privileges. I can run the script now with sudo but without having to enter the root password thus allowing the KDE energy manager Powerdevil to run the script automatically. Therefore, I added the following custom call to the Powersave profile in Powerdevil‘s settings: sudo /usr/local/sbin/powersave.sh
This makes KDE call the optimizations automatically as soon as the notebook switches to the Powersave profile.
I adapted the optimizations to a max_performance.sh script that reverts all changes done by the powersave script. This script needs an entry in sudoers, too, ...read more...
Just finished my mid-term evals, so I thought I'd give a quick view of what I have. I've gotten the base plugin for Gluon Creator finished that allows nodes to be made to represent logic/other stuff. The nodes have each their own properties that hold input or output values. The Input and output connectors are respected and connections can only be successful when one input is tied to one output. Work to save this structure to gluon project and outputting code/usable files is all coming soon.
The patch adding ruby support did not touch any C++ code. It did touch some ui files and Qt Resource files. It would be possible to add extra language support without even recompiling the application if not for the Qt Resource usage. Part of the intent of that example application though is to show how to use Qt Resources with Grantlee though, so that is not going to happen for that app .
I just released Version 0.3.2. Update as usual with sudo gem update
There are two important bugfixes.
Fetching qt failed because it tried to fetch from a pure server url. You need to update your recipe too.
SQLite3 obviously starts to enforce foreign key constraints. After updating to OpenSuSE 11.3 build-tool failed for me because the constrained i declared had a typo. Was never a problem before (for me). Remove all ~/.build-tool/*.db files to get going again if you encounter the problem.
I was wondering - the dot editors have clearly been in a frenzy lately, publishing articles like it's nothing. We've restricted ourselves to 1 article a day at most - but they're often quite a read. I wonder what people think... Since we've turned of anonymous comments I don't see a lot of input from the community, and I'm wondering - do you guys and girls like the articles? Are there things we can improve? Is the frequency to high? Too low? And as usual - wanna help out?
For the uninitiated, EyeOS is a free, open-source desktop implementation right in the browser. I was recently playing around with my EyeOS installation that I forgot I had installed a while back (v1.x) and like what most people do when they try out a new system, I decided to see what other themes they have.
Turns out they have an Oxygen theme! It’s a little dated but I must say I’m impressed. Very impressed.
Now all I have to do is find a practical personal use of EyeOS! Perhaps it might replace a few of my cobbled series of other cloudish hacks.
I did some 30 second video interviews at Akademy in Helsinki. You can download them to get a feel for the people and place of Akademy. Unfortunately I've been unable, in the limited time I've devoted to it, to convert them to Oggs, ffmpeg doesn't want to do it. I've also been unable to find a simple HTML5 video gallery script that would make a simple HTML page with the videos embedded. Do let me know if you have the answers to those. I recommend Frank's interview for an insight into what our board spends its week doing.
Eben Moglen Talk
Before Akademy I went to see Eben Moglen give a talk at the Scottish Society for Computers and Law. Eben is a much overlooked rock star of free software, having written the GPL licences and made many other significant contributions.
His talk was about the dangers of embedded software, taking the example of the software in cars because it is a topical issue but also in other life critical areas such as aeroplanes and ...read more...
Jos has been getting very philosophical lately. One post that got me thinking about how odd KDE is (in a good way) was his one about working together.
KDE is quite unlike anywhere else I have worked, for fun or profit. Probably the closest analog is my involvement at university with the student newspaper, the Warwick Boar where I started off writing general features and ended up as Science Editor.
The Boar had a few similarities to KDE. It was staffed by volunteers, was successful (we won awards and stuff), diverse and quite large (I don’t know exactly, but well over a hundred contributors). However, unlike KDE, it was hierarchical. At the top was the Editor, who had ultimate power and responsibility. He or she made the call when someone threatened to sue for libel, or when one of the big national newspapers wanted access to one of our sources (it happened). Below the editor, each section had its own head, responsible for organising their team and making sure that their pages got done.
For KDE developers, web-based forums are often uncommon workflows. Indeed, for communication among developers mailing lists are much better tools, especially since you can handle everything inside a client (most of the time), compared to forums where you have to use a web browser. The ways of reading, replying and interacting with posters are dramatically different. And that is why some developers find themselves uncomfortable with the KDE Community Forums.
A dedicated application would be usually much better than a browser, because you can work around the intrinsic limitations of the browser itself. The problem is that you can’t really access a forum with anything else than a browser. That is, it used to be like this, but now things are changing.
My summer of code had hit a bit of a dead end between some Nepomuk woes (your week is up Vishesh ) and some general issues with plasma integration in all of the plasma-related SoC projects… Half of that is hopefully solved with a bit of a nice solution, imo, which Aaron came up with at Akademy
At Akademy, Aarontalked a lot about Elegance; in our interface, our applications, our API. Make things fun to work with, easy, organic. It’s something we should strive for, and something that I have strove for in my code; sexy code is a hell of a lot more fullfilling than ugly hacks.
Since the beginning of SoC I have had the interesting task of making sure that applications have some sort of way to talk to the KPart I have been working on (which is now feature complete enough for me to start cleaning up the code for kdereview and eventually kdebase-runtime, w00t), which is incredibly difficult because KParts simply aren’t designed ...read more...
I’ve been pretty quite about GSoC progress. But I had a great time at aKademy and forgot all about blog posts. So the current status is thus. If programming was just about getting things done, I am done! But its not, which means although everything I was supposed to do is done in a big picture way, the next few weeks will see bug fixes, optimization and ensuring that certain things can be done faster, more accurately or in a more user-friendly manner. I also have to port the code over to use Solid, now that fellow GSoCer Paulo Romulo has improved UPnP support in it.
Last time I gave a glimpse of the Browse based collection. UPnP MediaServers have two methods of accessing their content. Browse() is similar to going through your hard-disk directory by directory. As you can see, this can be quite inefficient for a Collection since it has to keep track of a large number of tracks. The other method is Search(), wherein users can query the MediaServer to give tracks/media matching certain criteria, such ...read more...
Yakuake is a drop-down terminal emulator based on KDE Konsole. It features smoothly rolling down from the top of your screen, a tabbed interface, configurable dimensions and animation speed, a skinnable GUI, and a sophisticated D-Bus interface.
It’s been about a month since my last blog entry, so let me remind you what I’m doing as part of my Google’s Summer of Code (which down here is Autumn/Winter!):
A hatching and halftones brush for Krita.
Implementing impasto in Krita.
Part 1 is virtually complete, there’s no halftones brush yet, but it’s trivial to create one from the hatching brush which is now beta!. That’s right!, all GUI is linked and you can start toying with it and have fun, change the settings to anything you like without touching the source code! =D here’s a little picture reminding you of what it looked like:
Remember there is no way to download only Krita, you have to download all of KOffice’s source code and then you can specify the applications you want to build. If you wonder why this is so, ...read more...
Had been holding off posting on this until I have something reasonably pretty to show for it, but damn, said pretty thing sure took its time. Anyway, GSoC mid-term evaluations just ended, and I finally managed to hack up something that looks somewhat presentable. Here’s a short screencast of it.
Some key ideas of the current implementation:
The tray lives in it’s own containment separate from the main activities/launchers.
There is a passive “shrunken” form and an active “enlarged” form.
The passive form is not interactive and click/tapping it simply switches it to the active form (with a simple QML animation thrown in). It shows a number of defined “always-show” applets and a limited number of the other applets, prioritized by recent activity.
The active form shows all available applets in large, finger-friendly sizes, and is scrollable in case it doesn’t fit the screen (hello Plasma::ScrollWidget!). It behaves more or less like one would expect a systray to behave.
Not a lot to show for one month plus worth of development I admit ...read more...
I ended up taking two "breaks" during the day today to do "30 minute hacks". This is where I do something in the codebase that may or may not end up being useful but which I find interesting to try out, keeping the exercise to a length of 30 minutes or less.
The first one was moving around some of the UI in ksnapshot (after chasing down an annoyance in kdelibs that would pop up a notification every time ksnapshot started if you had last saved a snapshot to a remote location). Here's the result of that "30 minute hack":
The default size is bigger (and it remembers the window size between restarts), the snapshot thumbnail has a bit of a shadow around it and the buttons have been re-arranged. Other than the window size saving, which I consider a bug fix, I'm not sure if the rest will make it into the next release or not. We'll see. I'm currently waiting for feedback from Rich Moore, my KSnapshot partner in crime. ...read more...