Category Archives: Users

GSoC 2011 – Kate Code Folding – week 5 (New Code Folding is taking shape)


The new code folding is taking shape. Actually it is implemented. :)
The next step will be testing it (and debugging, if necessary) and implementing some new features.
Also there are some keyboard shortcuts that didn’t worked so well on the previous version and they need to be fixed too.

If you want to help us with the testing, you can download my clone and play a little with code folding. Also, if you have some ideas about the new features that Kate’s folding should have, let me know. If it is possible and there is time, they will be implemented.

KDE 4.6.5 > StarCraft 2

I normally enjoy StarCraft 2 in the evening a bit or like now, if it is raining and I have no fun in any more real work.

But just now and some days ago, it has again proven, KDE > StarCraft 2.

Just again, StarCraft 2 (played with wine, thanks a lot wine team, you do a great job!) got sluggish and then terminated.
A quick dmesg call shows the cause.
Like last time, the OOM killer got me.

Now, first I thought: What, this stupid game uses more than my 4 GB of RAM? (I have no swap, have only one ssd)
But now, the reason is much easier: KDE has beaten StarCraft 2…. (even if we call it KDE SC, it still not loves SC 2 :)

Looking at my process table, is is just clear: StarCraft 2 is the biggest memory user, that is just normal, around 2.5 GB, at peak.
But no reason to crash, or? With 4 GB.
But wait, I let my kontact run the background, big failure.

My stats here:

Kontact and co, just only taken the > 50 MB RSS offenders, there are lot of other smaller processes running around:

cullmann 1452 2.1 10.7 1243552 436228 ? Sl 11:05 9:33 /usr/bin/kontact
cullmann 1132 0.5 9.6 813136 391996 ? S 10:38 2:33 /usr/bin/akonadi_nepomuk_email_feeder –identifier akonadi_nepomuk_email_feeder
cullmann 1127 2.6 1.3 550532 54860 ? Sl 10:38 12:13 /usr/bin/akonadi_imap_resource –identifier akonadi_imap_resource_0
cullmann 1060 2.0 2.8 481124 114288 ? Sl 10:38 9:34 /usr/bin/mysqld –defaults-file=/home/cullmann/.local/share/akonadi//mysql.conf –datadir=/h

Summa around 1 GB, with the smaller ones.

+ my friend the semantic desktop :/
cullmann 1104 41.6 2.1 168752 88320 ? SNl 10:38 193:59 /usr/bin/virtuoso-t +foreground +configfile /tmp/virtuoso_hX1095.ini +wait

The planet is no place for bugs, I know, but anyway, this is no bug report. What should I report at all? That just using KDE + Kontact eats >> 1 GB of my RAM and virtuoso around 40% of my CPU? And yes, it even uses that with Kontact shutdown and all other apps closed… And no, I have no indexing active, that OOM’d me last time, even before Kontact + Akonadi on :/

I kind of think, we need to improve in that area, really.
Beside, in the old days, if Kontact did take too much RAM, I just closed it, now, still the akonadi parts + mysql stay alive, with around 1/2 GB memory usage :/
Guess need to kill them hard before starting to play :)

A lot of persons at work switched back to GNOME or whatever, because we can’t get rid of these problems. Either kdeinit eats our CPU (with Ubuntu Natty) or nepomuk/strigi/akonadi and Co. eat the memory + fill our NFS homes :/ And no, we don’t do bug reports for this, as these are not reproducable problems. (Beside the memory usage I guess and that virtuoso runs amok, but that are known issues if you look at our bug tracker)

Good side of things: In that light, Kate’s memory usage is kind of non-existing in comparison :P

I will continue to use KDE for sure and try to be more clever and shut down Kontact and co before playing (and turn of nepomuk completly, even if I get here and then a error message because of this) or I will just buy more RAM, 4GB to ease the pain should be not the biggest issue. Happy enough, at work I have anyway 8GB or more in every workstation because of our static analysis software needing it ;)

Kate in KDE 4.7

Now that the next version of the KDE platform is branched, it’s time to have a look at all the changes in Kate in KDE 4.7.

Current State of Kate

  • In KDE 4.6, we replaced the document list by the new File Tree. We got relatively few critical reports, meaning that the file tree seems to work pretty well for the majority.
  • Kate has two GSoC projects at the moment: Rewrite of the code folding, and Improving Kate’s vi mode. The work done in both projects will be available in KDE 4.8, so we are already working on the next major KDE release.
  • About 6 Kate developers are present at the annual KDE conference.
  • A year ago, the Kate homepage was redesigned. Looking back the last year, we can say that this has been a success.

Just in case you missed it: you can read about Kate’s state 6 months ago here.

GSoC 2011 – Kate Code Folding – week 4 (Integrating the folding algorithm)


I bring good news about Kate’s folding today. The algorithm was implemented and tested successfully. ;)
As I mentioned in the previous article, I implemented it in a new (simpler) project. It is a Qt project (developed using Qt Creator) and you can find it in my Kate clone, “tree_alg” folder.

Actually, I have implemented two folding algorithms: one that uses a tree that changes itself dynamically whenever you insert or delete a node, and one based on stack that rebuilds the entire folding tree whenever you insert or delete a node. I needed two algorithms because I wanted to implement an automatic testing mechanism and for that I needed a way to test the output. The second algorithm was easier to be implemented and it was very stable (bug-less) from the beginning, so it was great to use it for my testing.

The automatic testing proved to be a success. I hope I found all the bugs, but I would like to invite you to download the project and to play a little with this application. If you do find any bugs, please send the history files on the mailing list and I will fix them. About these history files, when you save the history two files will be created. E.g.: if you save your history in a file called “history_1”, then you will have (in the same directory) a file called “history_1” and a file called “history_1_moves”. Please send them both if you notice any bug. It will make my debugging much easier.

My next move is to integrate this tree folding algorithm into Kate’s folding. For this part, I will have to finish an undone job from a previous week (rewrite the interface and the update methods) and add the algorithm I have just implemented.
I think that in ten days at most we will have a new code folding for c style languages. :)

All the best,