Categories

A sample text widget

Etiam pulvinar consectetur dolor sed malesuada. Ut convallis euismod dolor nec pretium. Nunc ut tristique massa.

Nam sodales mi vitae dolor ullamcorper et vulputate enim accumsan. Morbi orci magna, tincidunt vitae molestie nec, molestie at mi. Nulla nulla lorem, suscipit in posuere in, interdum non magna.

attica 0.1.3

Just a quick note for packagers and people building kdelibs:
I released libattica 0.1.3 yesterday. Now kdelibs trunk (4.5) doesn’t depend on an unrelease attica version from kdesupport trunk any more.
Get it while it’s hot: ftp://ftp.kde.org/pub/kde/stable/attica/.

No big changes, but a few bug fixes and one or two new calls. And a lesson learned.
When you use QPluginLoader you should not delete the root components of the loaded plugins… just like it says in the docs… of course it will only bite you once you have more than one application using the plugin at once.

Plasma Netbook Reference

I haven’t yet blogged about Tokamak 4 yet.
Well, it’s only 2.5 weeks after the event. I can finally tell you about one of the projects I worked on πŸ™‚
Aaron already blogged about the general idea and goes into more technical detail in a second post.

The Plasma team would like to have a reference demo that can easily be updated and show off the new hot that Plasma Netbook is.
34170netbook-sal-mar2010
Since we were hosted by our friends from openSUSE, we thought about making use of their great tools. So I sat down in order to build a USB-Stick image (we also plan on having a CD ISO later on) using openSUSE buildservice.

I had the joy of poking Adrian and Will whenever I had a question, so getting started was quite easy. With their help I overcame an old (irrational?) fear of RPMs and created a package to contain config files that let you log in to the Netbook shell rather than the normal Plasma Desktop on first start.
The USB stick raw image can be found here, but I rather recommend to start with a bit of Documentation on Techbase

Now we’re all excited to get feedback on the Plasma Netbook Reference!
Please keep in mind that this is the very first iteration of this project. Now is the time for early testing feedback and to get involved. How about joining our super-secret IRC channel on freenode (#plasma-netbook, but don’t tell anyone)?

We plan regular updates for this project (using the factory repository we can update the KDE components to very recent versions) and will use this to get feedback on design decisions (Marco, “Mr. Netbook-Plasma” himself will thank you for your considerate feedback). Now is a great time to get involved with this exciting project. There are lots of low hanging fruits to be picked πŸ˜‰ For example carefully examining the list of packages that we put on the image, optimizing the default configuration and many other things. No coding skills are required.

Klassrooms and Programming

Tokamak 4 has just begun, and we have a great round of introductory presentations here today.
One thing I’ll try to sneak into my introductory talk is a little status update about the Klassroom that’s currently going on at the forums. And since that may interest others out there, I’ll also write a bit about it.
I’m not a forum regular (actually I hardly ever visit forums nowadays) so I wasn’t really up to date what is going on there, except that the forums KDE look really shiny now.

I knew that porting apps for KNewStuff2 to KNewStuff3 was something for me to do at some point. Not very exciting but also not much work. I estimate that it takes me 20 minutes for each app unless it does crazy stuff with KNewStuff. (I haven’t found any app that does anything out of the usual with it though).
Now instead of porting the apps myself, I talked to our forums people (very helpful and nice they are!) and we set up a small course to help people to port the applications and thereby start getting more involved with KDE.
The actual C++ was not the focus of this course but more of a requirement for the participants. I wanted to enable people to learn about KDE infrastructure a bit. Often all that’s lacking is an invitation in order to attract new developers.
Of course it took me way longer to write texts about how to get started than doing the porting myself. That was expected of course. I don’t know if I got the level of detail right yet, I’m curious to find out.

Last Sunday the course was announced and immediately there were 9 people wanting to participate. Despite having basic C++ knowledge as requirement. Impressive. I’ll recap later how many of them finished the course, on Monday I got the first two patches, so there were two people just burning to get started with KDE development. We’re one happy bunch so far, only I’d like to get more questions – I’m not so sure if there is just enough explanatory material out there of if people are still intimidated πŸ™‚

One patch that we were not so sure about was to add KNewStuff to Okular. In the end, after discussing this with Albert, we decided to not add it. Okular is a simple document viewer and not a book manager. So is there maybe a need for a small book management app? Well, Brian started to experiment with the idea and even started a project on gitorious. I’m very impressed so far with all participants that just got started even without me helping much.
Now I just need to review all the patches and we’ll evaluate all of this in a week or so. It’s been fun so far, maybe it would be a good idea to get more of these courses started. Interested developers should just talk to the forum staff.

Hot new Klassroom – Get started with KDE development

Since KDE Software Compilation 4.4 we have an updated, improved and easier to use Hot New Stuff framework.
So far only a few test candidates were ported to it, namely the wallpaper dialog, Parley, Plasma comic strips and Amarok when compiled with 4.4.
Now it’s time to change this.
In cooperation with our forums staff, I will start a small course to let someone else do the work for me πŸ˜‰
Should you participate? This is a great chance to learn about some of KDE’s infrastructure and how to get the source, build it and write some small patches.
You should know some C++ already, since that’s too much to learn in the one or two weeks of the course. Other than that you should have a distro that provides kdelibs 4.4.0 development packages (if there is a kdelibs 4.4 available to you, chances are you’re good to go).
Oh, and you should be interested in hacking on KDE software obviously πŸ™‚
For more details head over to the forums!
ghns_rating_big_stars

libattica 0.1.2

I just tarballed libattica 0.1.2 which consists of a few bug fixes. I hope distributions will pick it up before KDE 4.4 but it’s not required and doesn’t save the world either πŸ˜‰
On the plus side we have some small fixes though:

  • a memleak (in case a request was aborted the QNetworkReply would not be deleted… so if you use QNetworkAccessManager or the KDE pendant, remember that deleteLater()!)
  • a Qt 4.7 compatibility fix (thanks Thiago)
  • some more functions in case of Qt-Only use are implemented now, so it might be viable to use the lib without KDE… if not, let me know πŸ˜‰

Now I don’t know how to change the topic to KDE-Edu, but anyways…
I’m happy that we have two new faces showing up and bug fixing KWordQuiz and Parley. Welcome aletum and Kolia!

Update:
The tarball should show up shortly at the usual place: ftp://ftp.kde.org/pub/kde/stable/attica/.

New Stuff again

Hi there,
now that the KDE Software Compilation 4.4 is branched, it’s time to think about the next iteration. Next to bug fixing that is.

I’ll keep fixing things I broke with the hot new stuff framework re-write that makes it’s first public appearance in 4.4.
Since this was the first release including KNewStuff3, not that many apps have been ported yet – I just didn’t want breakage all over the place, but only in a few chosen locations to be able to fix bugs πŸ˜‰
If you’re curious about the new stuff (no pun intended whatsoever), check these: Plasma Image Wallpaper, Comic Plasma Applet, Kate’s Snippets NG (deep inside Kate’s config, you need to enable the new snippets plugin) and Parley. Parley features an upload dialog in addition to the download version. Here’s fun to play with and dreams coming true πŸ˜€ (we spoke about this on the first KDE meeting I was at – back in 2007 in Paris).

Jos poked me on the promo list, that maybe more information should be out there. I cannot agree more… so I’ll try to make up for that. Here is a quick update mostly for application developers wanting to use KNS3 or port apps already using the older version.

ghns_list

So why did we decide to redo something that was working? In such an intrusive manner even, that it now resides in it’s own namespace (KNS3 as opposed to just KNS)?

Well, I read over the old code and talked to Jeremy a lot (thanks dude!). In the end Jeremy created a branch to restart the hot new stuff framework with some binary incompatible changes that made a lot of sense. I started hacking away on the branch and since it was incompatible anyway, I could freely play with it. Later Dmitry also joined to help with lots of polishing and fixes πŸ™‚
First up was the creation of a new “provider” type – that is a data source that hot new stuff uses – a server representation. Getting that to work was easier than expected since I could just hack away and change stuff as I saw fit.
Also there are surprisingly many crashes in the old framework. I didn’t know about that, but now I get cc’ed on the bug reports automagically… (ouch). Many thanks go to Dario who manages this incredible mass of bugs (how do you do that??).
One problem I think is that the engine class (that users of the old API had to use) set up an event loop that would take care of managing the dialog itself. Confusing? For sure. I’m not sure if it managed to set up yet another event loop in the dialog itself, but I suspect this is the cause for some of the little buggers. Anyway, the new version is just a subclass of KDialog, easy to use, little public API. And it reuses K/QDialog’s proven and tested event loop – less code, more robust. On the way it gained a few features – such as a details dialog, here you can vote for a stuff-item-thingy or become a fan of it. Which will be reflected in the openDesktop plasma applet where your friends can see that you now like the stuff-item-thingy you just became a fan of πŸ˜‰

ghns_details

I wrote a little tutorial on techbase to get you started.
Porting apps that already use KNewStuff2 is dead easy:
Change the include to <KNS3/DownloadDialog>, use the download dialog like any dialog (show/exec) and check for installed or changed items when it is done.

This is described in more detail in the KNewStuff3 tutorial on techbase.

In addition you need to update your .knsrc file:
[KNewStuff3]
ProvidersUrl=http://download.kde.org/ocs/providers.xml
Categories=KDE Wallpaper 1920x1200,KDE Wallpaper 1600x1200
TargetDir=wallpapers

That’s it! (don’t forget to link to knewstuff3… and happiness ensues…)

If you need help on porting an application, let me know. You can ping me on #kde-devel on freenode.

There are some fun interesting todos (yeah, right) for KNewStuff3. Let me know if you want to dapple with the insides of KNewStuff3 πŸ™‚
The upload dialog is still very basic. It needs love. Lots of it. Another feature that will be easy to implement but probably takes some thought and re-factoring to reuse things from the download dialog in the best way possible, is a class to automatically check for updates. The idea is that apps can let it contact the server on and notify the user that a new version of there favorite stuff is available.

On a totally unrelated note: I’m going to visit a KDE SC 4.4 release party! So should you! And if there’s none close by, how about just organizing one? It’s not much work but fun πŸ˜‰

KDE Education Survey

Last week we, the KDE Education folks sat down for a meeting on IRC, to discuss where we want to go.

There are lots of good applications under the KDE Education umbrella and very nice people behind them, caring for the applications and their users. Sometimes it’s very hard to guesstimate what our users like and dislike. Yes, we crave your feedback! As a result of the meeting, we sat down and created a survey, to gather some feedback. It’s our first go at something like this, so there’s still lots to learn πŸ˜‰ … Learning and Free Software are just a good combination! It won’t take long to fill out, so go ahead and donate us a few minutes of your precious time.
Lydia wrote about the survey, but we’d like more people to participate still.

Kanagram
Kanagram
KHangMan
KHangMan
Kiten
Kiten
KLettres
KLettres
KWordQuiz
KWordQuiz
Parley
Parley
KAlgebra
KAlgebra
KBruch
KBruch
Kig
Kig
KmPlot
KmPlot
Blinken
Blinken
KGeography
KGeography
KTouch
KTouch
KTurtle
KTurtle
Kalzium
Kalzium
KStars
KStars
Marble
Marble
Step
Step
Cantor
Cantor
Cantor
Rocs

Take the survey!

Update: I added Rocs to make the list complete!

Dead Stars

Fitting my earlier post about rating and stars in Get Hot New Stars Stuff , I just listened to “Dead Stars” by Covenant…

So this is all about stars. At first I wanted to answer the comments individually, but there are just too many.

A few points keep coming up:

  • The number of items in the Hot New Stuff Dialog is limited: not any more, the dialog will fetch more items if you scroll down. (I’ll do a screencast soon, promise!)
  • Updates: There is a category that shows only installed items, here it’s easy to update individual ones. Applications will have the possibility to query for updates without invoking the gui at some point, probably not in the initial release though.
  • Displaying the Rating of an item will most likely be the “five stars, just as in Nepomuk/Dolphin” variant. It shows the numerical rating in a tooltip (yeah, we all love numbers, don’t we?? though I would still download what I like, not what the rating tells me to like). I stretched the scale a bit, since ratings from 0-20 and 80-100 are nowhere to be seen.
  • The user will be able to rate items, but only gets to choose “I like it” or “Don’t like it”, same as on openDesktop.org.
  • Different categories (as seen on openDesktop.org for example) will probably return, I would like to see some mockup how to integrate that into the dialog without having lots of combo boxes around…
  • The scrolling is badly broken, I really need to look into that.
  • It’s getting late, I should be in bed πŸ˜‰

The mouse is on the second item with the actual rating as tooltip.

The mouse is on the second item with the actual rating as tooltip.

KNewStuff3

Finally LibAttica has landed in kdesupport (that’s where additional libraries are kept, that are not by definition part of kdelibs). TΓ©o promised to bring his price winning Amarok about dialog into KDE-Land for KDE 4.5 πŸ™‚

I am just about to finish the first big big re-factoring of our Get Hot New Stuff framework. Since it got ported to KDE 4, Jeremy kept it up and running but didn’t have a chance to run with it due to some issues that belong to the land of “real life”. I poked at it two years ago, but then I’m a lazy bummer, so nothing at all happened there either.

Finally, Frank pushed me to get around and do work work on the dialog. The version in our re-factoring branch is ready to be merged into kdelibs, take advantage of LibAttica and just wants to put a smile on your face. Well, it’s not quite there yet, some features are missing – just the ones that are important to me πŸ™ that is the social community interaction part. Rating items, seeing more information about the author and so on. But with LibAttica doing the actual work, it’s at the tips of my fingers. Just need to do the right connections. So far I’ve been redoing all the backend stuff.

It”s time to start polishing our good old dialog a bit. And here I’d like feedback from you! I have experimented with different ways of showing the rating of an item. Let’s say, we get a number between 0 and 100, how should we represent that in the user interface? In the original version we showed the number “Rating: 79”. Maybe not the most visual way. How about a progress bar? Nope, doesn’t really fit. Nepomuk uses stars. Those fit very well with the “Get Hot New Stars” icon that we have for “Get Hot New Stuff”. So why not go and borrow the widget? In the first iteration, I used 5 stars, just like Nepomuk. But it didn’t seem quite right to reduce the large range 0-100 to that. Plus the widget looks insanely huge and dominates the dialog just a bit too much for my taste. So I personally prefer the ten-little-stars variant.

But I probably think much too limited, knowing what goes on in the background… And I still have the old dialogs in mind. So dear reader, let me see some creative mockups, ideas and fresh ways to go about this dialog and it’s layout, contents and so on. Why not layout items in a grid? Something completely different? Throw it at me. Maybe the next version will be yours! Should we have different layouts for showing Wallpapers (images in general) and things that don’t necessarily have preview pictures? Vocabulary files usually are not that visible. Plasma Applets should have a preview, but here the text is important.

You can reach me at lastname@kde.org. Since Frederik is my firstname, use the other one πŸ˜‰

And if you ask yourself as developer, what will change, that’s easy to explain. Instead of having the somewhat strange logic of going through a class to give you a dialog, you will use the new dialog just like any other KDialog – either modal or not. When you’re done with it, ask it for a list of changed or updated items and be happy πŸ˜‰ The only thing you need as well is a appname.knsrc file which is just a KConfig file that contains a bit of information about where to download from, how to install the items. That’s usually two lines and I’ll put an updated tutorial on techbase. Speaking of which, I started a small Attica tutorial, let me know if you’d like to read on or there’s something unclear about it. Porting an application that uses the Hot New Stuff framework already should take no longer than ten minutes.

Many thanks to Frank and hive01.com for making this possible!

NepomukOpenSocialSemanticDesktopWorkshop2009

With this great title stolen from the techbase page, what could possibly go wrong?

Yesterday in Freiburg our meeting to discuss about Nepomuk and integration with social-semantic-collaboration issues kicked of. We, that is Sebastian, Alessandro, Frank, Leo, StΓ©phane, George, Laura, Iridian and yours truly.

Topics discussed are things like: What meta information would I want to share with my friends, when I pass on photos? What is sent, when I pass on a contact to someone else? Do I want to identify where a rating for a song comes from? Should I be able to search in my music collection for the favorite songs of a friend? What and how is all this technically feasible? What about my privacy and that not so public comment I wrote the other day?

We talked about some use cases, such passing on data on usb sticks, later mailing some of the data and thinking about the life cycle of the meta data. Now we know a lot more about our virtual friend Claudia, her wedding and Dirk’s dislike for her dress πŸ˜‰

While some of this may sound pretty academic still, we also discussed the practical side of things, how it can be expressed in the Nepomuk onthologies and how to deal with privacy issues. Clearly the others are more into the RDF world than I am, so I’m still playing catch up with all the fancy words and wealth of abbreviations around. But don’t let that scare you, to use Nepomuk as user, you won’t have to deal with all of these. Even as application developer you can use Nepomuk without becoming an expert in semantic issues and onthologies since Nepomuk takes care of most of the work for you πŸ™‚

neposprint

During breakfast we had a lively discussion about GUI features and how to give more of the power of Nepomuk into user’s hands and where we need more integration.

On the more practical side, Sebastian helped me debug one of the strigi analyzing problems that the virtuoso backend showed on my desktop, within a few hours my Nepomuk database now grew from containing the meta data of about 100 files to over 20000 now :). (Just in case anyone wants to try: get Virtuoso from sourceforge (released version 5.0.12), use “./configure –disable-all-vad”, rebuild soprano and kdebase.)

Currently Frank presents the Open Collaboration Services and we will discuss integration of online data, services and Nepomuk afterwards. Then we’ll try to get some of the data exchange ideas put into code.