[KDE Dot News]
 faq
 flatforty
 contribute
 subscribe
 configure
 search
 rdf

 main


  KDE Technologies: Get Hot New Stuff
Developer Posted by Jonathan Riddell on Saturday 12/Mar/2005, @10:37
from the doing-hot-things-with-stuff dept.
There has been some recent buzz around KDE's Get Hot New Stuff framework. As the first in a series looking into KDE technologies, KDE Dot News interviewed author Josef Spillner to find out what all this "stuff" was about... read on for the interview. You may also be interested in recent blog entries about KNewStuff: Kate, desktop backgrounds, Quanta, KNewStuffSecure, its user interface design and the HotStuff server setup.
josef.png
Josef Spillner

Please introduce yourself and your role in KDE.

Hi, I'm Josef Spillner, a computer sciences student from Dresden in Germany. About 6 years ago I saw KDE for the first time, and some months afterwards the first application written by myself appeared on my desktop. It was a simple KTMainWindow which controlled a voxel-space flight simulation on top of kdesktop. Needless to say it was horribly slow. But I've been writing KDE games ever since.

What is Get Hot New Stuff and KNewStuff?

The GHNS concept describes a way to let users share their digital creations. For example, user A is using a spreadsheet application and modifies a template which comes with it. This template can then be uploaded to a server, and eventually be downloaded by user B by checking the contents of the "Get Hot New Stuff" download dialogue. In the context of companies, documents can be distributed to all employees, and in the context of the internet, a community sharing framework is built on top of all this.

The KNewStuff library is the KDE implementation for checking which file providers support the requested data type, and which files are available, including their version, popularity and preview information. Files can be up- and downloaded, digitally signed, uncompressed on the fly and more.

Where are they in use today?

Inside KDE CVS, we have Quanta+, KOrganizer, several Edutainment apps and the desktop configuration as our patient and proud users. Outside of KDE CVS, a bunch of games of the GGZ Gaming Zone project uses KNewStuff to keep levels and themes current, and the move of the library to kdelibs should encourage more projects to follow this example.

Can you give us a brief technical overview of how GHNS works?

Each application can decide for itself whether it wants upload or download or both of them, and which file providers should be used for these tasks. The providers can be configured on the server side so a move or scheduled outage won't harm any users.

A download task would check for all the available files for each provider, and compare their versions with the locally installed ones, which appears as green (already installed) or yellow (installed but can be updated) signs to the user.

After the installation, a post-install script might be run, which can of course include a DCOP call so the application can be notified. There are ready-to-run KNewStuff classes available as part of kdelibs (KNewStuffGeneric and KNewStuffSecure), but for more complex tasks it is possible to subclass KNewStuff.

Where did you come up with the idea for GHNS?

I didn't :-)

To be fair, I first implemented level sharing in 2001 or so, but the direct ancestors to the current library were the "Hot New Stuff" download in KOrganizer and the KDEShare library in kdenonbeta, both of which were inspired by Torsten Rahn of kde-artist fame, at LinuxTag 2002.

Most of the integration work was done at the KDE Kastle conference one year later.

Where would you like to see GHNS used?

One candidate would be KOffice. Another one suggested already is KDevelop with its templates, which can easily get out of date on the target systems. And games. All KDE games should be extensible and be flexible enough to handle data added at runtime.

Has there been any interest from other desktops to implement GHNS?

Sporadically yes, but I'm not yet aware of any actual implementation. It would really increase the acceptance and the usefulness - think about an artist whipping up a nice design in Gimp, uploading it, and voilą the users getting it onto the desktops.

There is however a (highly configurable) SDL implementation written in Python, and a custom in-game download dialogue patch written in C. Using a decent XML library makes it easy to add other GUI frontends, but this has yet to be done.

Have you considered hosting on freedesktop.org?

Yes I have. The legitimation of freedesktop.org standards always comes from previous usage, and with KNewStuff we have a well-working example. So I'd see this as one of the goals of the near future. The usage in GNOME/Gtk+ will likely depend on such a move.

Do you have any plans for KDE 4?

Sure, the README.knewstuff file is full of them, as is the patches/ directory in KStuff CVS. First, there are always small nitpicks, like the ability to configure this or configure that, without breaking the ABI. Second, there should be tighter integration with the KDE privacy framework. Finally, the management of installed data could be eased, without however converting KNewStuff into a full package installer. But there are also others hacking on the library, so more features are to be expected.

Nice name, how long did you spend thinking that up?

The name was also adopted by me, but at least I defended it rigorously :-) Seriously, there were discussions about how it could affect users negatively, but no one came up with a better idea, and we managed to hide the name from the users who do not want to see it.

A nice technical solution for a non-technical problem.

References

  1. KNewStuff API documentation

  2. KNewStuff and KNewStuffSecure tutorials

  3. GHNS backend reference implementation ("Hotstuff")

  4. "KDE: Conquer your networks", talk given at the 5th Fórum Internacional Software Livre 2004

  5. "The Dynamic Desktop", talk given at the KDE Contributors Conference 2003 "Kastle"



<  |  >

 

  Related Links
 ·   Articles on Developer
 ·   Also by Jonathan Riddell
 ·   Contact author

Thread Threshold:

The Fine Print: The following comments are owned by whomever posted them.
( Reply )

Over 40 comments listed. Printing out index only.
Versioning support?
by Richard Moore on Saturday 12/Mar/2005, @11:29
Does KHNS support versioning of the resources? eg. Could I upload a new revision of a resource and have it offer to fetch the update?

Rich.
[ Reply To This | View ]
the more it's used, the better
by Aaron J. Seigo on Saturday 12/Mar/2005, @11:57
this is one of those technologies that can be a HUGE boon to usability. why? well, take wallpapers for instance. it allows a person to install new images from the network by just browsing through a list. this means they don't have to know:

o where in the filesystem these wallpapers belong
o where on the Internet to go to download them
o how to complete all these steps in the right order

suddenly getting new wallpapers is a matter of, well, picking new images. not learning how to use a computer. this is fundamental and exciting.

in KDE4, kicker will be using HotNewStuff for clock themes (looks like a new version of styleclock will be part of kicker in kde4!). i'm considering how to safely allow scripted applets and other buttons to be offered by this mechanism as well. this will likely mean using the GPG security features to validate them. however it works, this will allow the kicker hackers to offer a lot more applets and neat fringe features without having to ship them ALL with kicker while keeping them within a few clicks for users.

oh, and Kopete just got support for HotNewStuff to download emoticon themes. it's already in CVS! chat window styles are coming, too.

the possibilities are immense here. and the more places from which it is available for people to use it from, the more they will look for and use it. let's see how many KDE apps, both in KDE's CVS as well as on kde-apps.org, we can get working with HotNewStuff!
[ Reply To This | View ]
this sounds sweet
by ca on Saturday 12/Mar/2005, @12:41
It does! But why is it only announced here and not on Slashdot, OSNews, Newsforge, LinuxToday? Or are those only GNOME-centric sites?

This sounds like a great new and innovative idea from KDE.
[ Reply To This | View ]
Repository?
by Gary Cramblitt (aka PhantomsDad) on Saturday 12/Mar/2005, @14:59
It would be a nice enhancement to use KHotStuff to allow users to upload new filter configurations for KTTSD. However, I don't have a server that can serve as a repository. Is there a public repository that can be used?
[ Reply To This | View ]
GHNS essential to KDE-Edu
by annma on Sunday 13/Mar/2005, @05:47
The Get Hot New Stuff library is essential in Educational Software. The kdeedu module was getting really big with data so we moved the data in the corresponding kde-i18n modules mainly. But some people like to play KHangMan for example in another language and they don't want to install the whole i18n module for that language. So GHNS allows them in 2 mouse clicks to install the language words they want to add and they are immediately able to play. So far KLettres, KHangMan and the glowing KStars use it. When the upload system will be installed, contributors will be able to share data.
Thanks to Josef and all developers who improved GHNS, thanks to all the amazing people who contribute data and spend a lot of time on this task!
[ Reply To This | View ]
Errors
by Evan "JabberWokky" E. on Sunday 13/Mar/2005, @17:33
"Error parsing providers list".

Hurm. Not exactly what I was hoping for. It seems to not be loading the list from some website, spitting the above and then displaying a sparse (empty) dialog. No help, no... anything.

I'd file a bug report, but I think I'll wait for 3.4 and try again. ;)

I think this is just a tease for people who have to have stable desktops and can't play with the latest and greatest.
[ Reply To This | View ]
I would kill for...
by ac on Sunday 13/Mar/2005, @21:33
I would kill for SuperKaramba support.

This app *screams* for this kind of functionality! :)
[ Reply To This | View ]
Security problem...
by U on Monday 14/Mar/2005, @08:22
And who is going to control the content of this feature?

since any user will be abble to upload files, who will be in charge of not let bad files like porn, virus, etc. to be uploaded?


That's the same misstake MS made with ActiveX and look at Windows now, is full of virus and trojans, so, and explanation would be nice.
[ Reply To This | View ]
Mr.
by John F wiley on Monday 14/Mar/2005, @15:30
I'm a little dissapointed in the creations of some of the KDE programmers.
What I've seen of KOffice just re-creates the wheel. sorry, that's my feeling.

Personally, when I'm creating a document I like to work "on the fly"--that's change the tools (possibly toolbars????--a challange for a games programmer maybe). The acient CanonCat Computer supported this--wordprocessing tools, then you could instantly--"on-the-fly" switch to spreadsheet tools (with calculated fields, but not grids), to draw (now picture)tools, to database tools. You could have the equivelaent of multiple windows open if you wanted to, but you did not have to in order to create a document. I would like to define the page size (and portr. or landscape) before I start though.

Is any team bright enough to create this? Or are we stuck with programmers just re-creating the same old thing???
[ Reply To This | View ]
Definitely a step in the right directions.
by somekool on Friday 18/Mar/2005, @17:50
awesome guys...

can't wait to see this running and get everything updated through it.
[ Reply To This | View ]
The Fine Print: The previous comments are owned by whomever posted them.
( Reply )

  "I think I might be the only developer who does not use XEmacs." -- Jono Bacon
KDE®, "K Desktop Environment", "KDE Dot News", "got the dot?" and the KDE Logo® are trademarks or registered trademarks of KDE e.V. in the European Union, the United States and other countries. All other trademarks and copyrights on this page are owned by their respective owners. Comments are owned by the poster. The rest: Copyright © 2000-2008 KDE e.V. for The KDE Project. For further information or comments on this site, please contact the Webmaster.
[ home | post article | flat forty | subscribe | search | rdf ]