It's been a long time since my last post. Lots of things happened since then: I got sick, start a chapter in my university project, finished my short experience as teacher, saw family and friends... and kept working on the sand brush (just forgot to blog about it :P).
The project changed a few things for the sake of simplicity. Since the brush have some similar aspects with games, I'll use the Qt4 Graphics Framework in Krita. Since collision detection, shape modification and object (particle) transformations will be features that the brush has to have, instead of reinventing the wheel, I saw that the Graphics Framework already have these functions.
I did some tutorials about the QGraphicsView to better understand how the QGraphicsItem, QGraphicsScene and QGraphicsView interact and how I can modify Krita's nodes and layers to work with it. I modified my previous Particle class to work in a more simple way and now I'm putting some inheritance from QGraphicsItem to proper use the Graphics Framework advantages. For instance, the ...read more...
It was with great joy I received the Akademy award for Calligra Words today. The acknowledgement is much appreciated, and is for sure a great motivator.
I may have been the one accepting this award, but it is just as much an award for the entire Calligra Suite and an recognition of the entire team of developers, artists, bugreporters, testers, translators, sponsors. Calligra would not be what it is today without the effort of every single one of you. Out of fear of missing someone I'm not going to list specific names. If you have done something for Calligra then this award is for you too.
When I held a presentation about Calligra in Brussels a couple of months ago, I said that one of the things we pride ourselves of is that we are inclusive of everyone. We want users to feel as contributers as well. Be it reporting bugs, or writing a sentence or two for the manual. Every contribution counts and is valued.
So, its that time of year again, the annual meeting of all things KDE… Akademy! This year it is coming to you from Tallin, Estonia. This year will be my 6th outing to the event
Of course, KDE is very dear to me and to Kolab and so, in addition to me, there will be a few other members of the Kolab community will meet at this year’s Akademy. Key contributors Christian Mollekopf and Jeroen van Meeuwen will be present and available to discuss Kolab related issues. Jeroen will also give a talk about release engineering processes using KDE as an example. His experience from the Fedora Project, Cyrus IMAP, Cyrus SASL and from his roleas a Systems Architect at Kolab Systems provides him with ample experience to give some insight into how release engineering and quality assurance within the fast-paced KDE project could be improved further.
The Kolaborators will also be taking part in a Task Management sprint featuring ...read more...
If you have been reading my blog for a while, you know I tend to get obsessed with fixing little details in KDE applications which annoy me. I like doing this, but this is the kind of task which cannot be done by a lonesome coder if one wants to make a significant difference.
I want to start a similar initiative for KDE. To do so, I registered a BoF this year at Akademy, named “the Extra Mile”. The goal of this BoF is not to get started at fixing bugs right away, but rather discuss how we can organize ourself to make this initiative a success. I want to discuss topics such as:
Release soon and release often wasn’t really the case of print-manager, I started this project 2 years ago, and this is the first official release. I’ve been waiting for this moment for so long which I can’t say I’m not super happy!!!
First off I REALLY want to give a BIG THANK YOU to all who contributed to my fund raising campaign, without it, this project would have to wait even more, because without a real printer testing the “Add New Printer” feature is real hard, even tho I don’t have all printer models available out there with a printer I can at least guess what s-c-p (system-config-printer) did.
My new printer and monitor
It’s been a while since my last blog, but the truth is that there is a lot I’m doing under the hood of the applications I develop, for example PackageKit is passing through some real deep changes which will change a ...read more...
Pretty incredible... I've been working on Krita for over nine years now, and it's over ten years since I did my first hack in KDE. I'm starting to feel like a dinosour. And this will be my sixth Akademy!
I've been to Malaga, which was awesome until I got sick, then I skipped Dublin (where Krita got App of the Year award!), went to Glasgow (where my luggage got caught in the terrorist attack on the airport), skipped Sint-Katelijne-Waver, skipped Gran Canaria, went to Tampere, went to Berlin and now to Tallinn.
Every Akademy I've attended was different, not just because the venues were different, but because KDE as a project is always on the move. Malaga was the first time I heard of the plans for KDE4, and they sounded awesome, and in Glasgow people presented the first results of all that effort, which turned to be -- awesome! And I think that KDE has gone from strength to strength. Sure, we need more polish and we need to take better care of bugs. But I maintain that for ...read more...
My last report (here) was full of pictures, but since then I’ve spent more time polishing the functionality, behind-the-scene improvements, and fixing bugs. However, the mid-term evaluation is approaching, so I think let everybody know what’s the state of things. I’m happy with my progress, my schedule was a bit vague, but I think I’m ahead of it. So far I’m still enjoying it, and I bought a more comfortable chair, so I have little problems with working long hours.
I split out some functionality to make code more modular, which also allowed me to write unit tests for much of the newly added classes. The main parts of the code (TemplateRenderer, TemplateClassGenerator and TemplatesModel) are covered with test cases.
My main focus was still on templates for creating new classes. I slowly decided on the variables passed to templates. They are also documented, and I think I can start writing more templates about now. The C++ plugin adds some variables of its own, such as namespaces,
So some time ago Simon Legrand asked whether it would be possible to provide a Krita package for CentOS 5. That's ancient, but it's what Autodesk's Maya is certified for, so that's what film artists use.
My first gut feeling was yes, but it's going to be a hell of a lot of work. My second urge was to say, "no -- we provide source, not binaries.". Then I finally thought "why not give it a try -- could be interesting."
And yes, it turned out to be interesting. Basically, I made three packages: one for CentOS 5 32 bits, one for CentOS 5 64 bits, one for CentOS 6 64 bits. CentOS 5 really means starting from the ground up: I had to install a new shared-mime-info to start with. But once the VM is setup, everything is a breeze, and now I've got "nice" tarballs.
They unpack in your home dir, you enter the "krita" directory and execute the script. The currently most interesting package contains the new OpenColorIO-based lut docker.
I'll be at Akademy 2012 after three years of absence. I have been inactive for years in KDE because of my tough life tangled with loads of jobs to be done. Now I can join again because my duty is finally over! (you know, most of men in South Korea have duty) I'll be there on the first of July. Too bad I can't be joining conference sessions because my flight schedule is screwed up :( But I can't wait to meet great people out there.
KDE Software Compilation 4.9 will be released on August and it will contain features such as Qt Quick in Plasma Workspaces, improved searching, sorting, display and inline rename on Dolphin, better integration of Activities for files, as well as lots of performance improvements and bugfixes to improve the overall user experience.
A while ago our amazing sysadmins upgraded our bugzilla installation from something aging to something more modern. Hurrah! We are not a billion years behind in another software! Hurrah!
Unfortunately this meant we lost some of our ¿custom? code that allowed to show the Votes column in searches like this (click on the change columns link at the end).
One can still see the votes in a particular bug, but for things like wishes it was very useful to be able of sorting by votes.
So it would be extremely cool if you can try to implement this, be warned, it's probably not going to be easy to implement and moreover bugzilla is in perl, but i'll owe you a few beers if you make it :-)
If you want to help do not hesitate to contact me on email@example.com and I'll forward you to the appropriate people, or even better just join the #kde-sysadmin channel in irc.freenode.net and present yourself as volunteer to do this job.
The other day I was talking with Fabio, a new Okular developer (a blog post on his awesomeness coming soon), and realized that he had permission to commit to the git repositories but not permission to close bugs in bugs.kde.org
This disconnect comes from the fact that bugzilla is not tied to your identity.kde.org user.
After speaking with the KDE sysadmins we agreed it'd be cool to enable permissions in bugzilla if there is a matching address (it would be cooler to match the accounts, but that's probably a gigantic task)
So we are looking for someone that can write some sql to do this:
1) find the user_id from someone's email address 2) insert an entry into user_group_map for the editbugs group and that user_id 3) insert an entry into user_group_map for the canconfirm group and that user_id
Additionally the code has to be smart enough to 1) print a notice if no bugzilla account was not found for the given email address 2) be written in a way as to not cause ...read more...
The Calligra team has released version 2.4.3, the third bugfix release of the Calligra Suite, Calligra Mobile and Calligra Active. This release contains a number of important bug fixes to 2.4.2 and we recommend everybody to update as soon as possible.
Bugfixes in This Release
Here is an overview of the most important fixes are in 2.4.3. There are several others that are not mentioned here:
Always show vertical scroll bar to avoid race condition (BUG: 301076)
Do not save with an attribue that makes LibreOffice and OpenOffice crash (BUG: 298689 )
Fixed import from csv when “Start at Line” value changed (BUG: 302209)
Set limit to 255 characters for Text type (VARCHAR) (BUG: 301277 and 301136)
Remove limits for Text data type, leave as option (BUG:301277)
Fixed data saving when focus policy for one of widgets is NoFocus (BUG: 301109)
Read and set the resolution for psd images
fix load/save styles of all shapes (title,subtitle,axistitles,footer,etc.)
This semester I attended Advanced Topics of Linux Administration course on my university. To successfully complete the course, one must pass an exam, have a presentation and write an article on a related topic. I had a presentation about libvirt and decided to write an introduction into using libvirt’s API (the article has been published (in English) on Czech Linux portal ABCLinuxu.cz).
As an example, I have written a Plasma Applet in QML (yay, my first QML thingie!) and a Plasma DataEngine that serves data about QEMU/KVM virtual machines running under local libvirtd.
On the applet you can watch state of all virtual machines, you can boot/pause/resume/shutdown and reboot them and configure soft and hard memory limits and amount of virtual CPUs allocated to each machine.
as you might know, ownCloud uses the Open Build Service (short OBS) to produce and distribute the binary packages for the various distributions we want to support.
The OBS is a great system as it does not only build for various Linuxes but also lets the users download the binary packages utilizing a huge mirroring infrastructure. All for you, all for the good of free software.
And there is even more: OBS offers a nice download page which can either be embedded into a projects webpage or be linked from it. Depending on the settings of the OBS project, for example the number of Linuxes it builds for, the page is adopted automatically. So you never again have to deal with lots of download links to the projects repository downloads. See the ownCloud Client Package download page as an living example.
Now the page had a shortcoming for apt based distributions. I became aware of it as the problem as well as the ...read more...
Lars Torben Kremer has announced the release of Snowlinux 2 "KDE" edition, a Debian-based distribution showcasing the KDE 4.4.5 desktop: "The team is proud to announce the release of Snowlinux 2 'Ice' KDE.
I'd like to shed some light on my GSoC project. I'm working (with a help of Björn Balazs) on new cool user friendly dialog for copying/moving files. This is a continuation of my previous project to make errors handling asynchronous from files copying process. You can read about it in my previous posts: first, second.
To make a long story short, now if there is a problem with file(s) you are trying to copy, it will no longer block the copying process. Problematic file is classified and just goes to the coresponding tab, where user can find and resolve the problem.
Take a look (I suggest turning 720p and fullscreen) at first preview:
Some parts of this report are still under discussion, and don’t necessarily reflect the final state of Qt 5. The target audience is people involved in Qt development itself, but without the time to follow everything that happens, and others with a strong interest in Qt, Qt 5, and the community.
This week we cover the use of C++11 by default in Qt where available, deprecation of the QWeakPointer feature of tracking QObjects, updates to the Qt plugin system, and quality requirements for primary Qt platforms.
C++11 by default
Qt now detects C++11 capability of the compiler when being configured, and enables C++11 features if possible. The detection of compiler capability currently works only for clang, g++ and Intel compilers.
C++11 provides many advantages over C++98, and for Qt 5 is the preferred and most optimal configuration. A recent commit to Qt 5 makes use of C++11 to increase source compatibility while porting.
Deuxième partie de mes conseils sur la rédaction de votre CV. Dans ce billet nous nous attardons sur le cas du jeune diplômé. Comme vous le verrez ce n'est pas le cas le plus simple, et pas forcément pour les raisons que l'on pense...
Votre cas est le moins simple, pas tellement parce que vous n'avez pas d'expérience mais plutôt parce qu'en général vous ne comprenez pas encore ou sont les priorités. Je vous brosse en quelques mots le portrait robot du CV typique du jeune diplômé que je reçois :
Tout un tas d'informations communes (nom, prénom, adresse, etc.) ;
Une liste extrêmement longue de technologies maîtrisées ;
Une liste d'expériences plus ou moins en rapport avec le poste brigué, mais dans tous les cas restant sur les aspects généralistes des expériences sus-nommés ;
Une liste de langues (et dans de rare cas le vrai niveau de maîtrise) ;
Une liste d'écoles et autres formations ;
Une liste de hobbies.
Quel est le problème ici ? Sans parler de la présentation (dont nous reparlerons plus tard), nous avons ici le profil type du ...read more...
After one month of GSoCoding (and quantum information research), I am finally back to blogging. Let me be honest from the beginning: there will be no screenshots in this post This is because the first part of my project was entirely devoted to the most hidden layer of the aggregator app: the model part, the M of MVC (Model-View-Controller) — the pattern used in the design of ownCloud applications. In this post I would like to explain the details of my implementation and share some of the things I learned during the first weeks of my GSoC.
The most important entities in a feed reader application are collections and items. As you can imagine, a collection is a set of items. The collections are organized in a tree, whose nodes are the folders and whose leaves are the feeds. In my implementation, folders and feeds are objects of the classes OC_News_Folder and OC_News_Feed, respectively. These classes extend the class OC_News_Collection. “Class”, “object”, “extend”? Yes, I ...read more...
That code was essentially left for dead. Mainly due to some missing features and changes in the activity manager’s API. It was the time to play Dr Frankenstein and to pick up the pieces to revive this beast.
The Share·Like·Connect problem
While the normal part (statistics collector) of KAMD can work well with an application only reporting which document was opened (like the previous version of the vim plugin did), SLC needs one more info – the window id.
At the time, there was no way to get a window id out of GUI Vim if you’re under X11. It was introduced in later versions, but might not be present on your system. So, in those cases, there needed to be a different approach of getting the valuable data.
Enter the python scripting and Xlib
Here it gets painful. While writing vim scripts in python is rather pleasant, and my ...read more...