|| ||Sebastian Kügler <sebas-AT-kde.org> |
|| ||kde-silk-AT-kde.org |
|| ||Introducing Project Silk |
|| ||Fri, 18 Sep 2009 18:43:19 +0200|
|| ||kde-devel-AT-kde.org, kde-core-devel-AT-kde.org, plasma-devel-AT-kde.org, kfm-devel-AT-kde.org|
|| ||Article, Thread
(re-sent with correct sender address) [Please direct replies to this email to the
kde-silk list only to avoid too much cross-posting]
This email is interesting for you, if you are
* a developer of an application that could be enhanced by online content
* a developer of an application that is integrating online content or services
* a developer working on web technologies in KDE
If you didn't say "bingo!" to at least one of those points, skip this email.
During Akademy in Gran Canaria, Richard Moore and I sat down in a bar and dreamed up
a fully web integrated desktop, what features it would offer to the user and what is
needed to get there. Let me outline our departure position first and then talk about
the goal we have in mind.
Many users have their data and online identity on the web. Web-based email clients
are ubiquitous, "googling" has become the new term for finding information, web-logs,
social networks, micro-blogging are widely used for all kinds of purposes. A large
group of users uses a web browser 98% of the time (according to my own made-up
Yet, the web experience we deliver in KDE leaves many issues, or rather missed
opportunities. We have built a wonderful desktop, window effects that support running
many applications at the same time in a -- for the user -- manageable way. We have
created a lot of new possibilities for an ergonomic and beautiful desktop, and strong
applications on top of that. Many developers want to develop KDE applications for
non-desktop machine, such as smaller, mobile devices and media centers.
Basically, the two things that set the web apart are content and services.
Content is data, stored on the web (or in the cloud). Think of your emails, movies on
youtube, travel information on wikitravel, schedules for the local transport system,
restaurant menus and of course technical documentation on Techbase. The concept of
content includes both, private (to the user, to a group of people) and publicly
accessible content (for example websites such as wikipedia).
Services make the content data available, structure it, connect it and present it.
These services offer the content in different ways, for example as (dynamic)
webpages, some in a more machine-friendly form such as XML REST APIs, RSS feeds.
The client used to access the data through the service nowadays is the web browser.
The current situation is that the service ships a complete application to the user.
Web applications that get their data live from the server and present it in a
service increasingly hard to anticipate what works for the client, a big detailed
webpage might not fit on a small, hi-res screen with touch-screen input, small fonts
and mouse-based navigation are both no-gos for a ten-foot interface with a remote
control. There is also very little consistency in both, appearance and interaction
for the user across different web applications.
Project Silk's goal is free the web from these limitations of the browser:
* Content from the web becomes easily accessible to applications and in extension to
* Web applications become first class citizens on the desktop
* Local clients are enhanced by the web, the web experience is enhanced by local
What is Project Silk NOT?
* It's not just a new library, Silk is a coordinated effort to work on related topics
* It's not an attempt to drag developers away from their projects, Silk is a group of
people from different areas in KDE who share the similar goals
* It's not boring.
* A separate project. Silk is a KDE-wide effort, online content can be used in many
parts of KDE, and in fact it is already.
Good Silk examples are the web services framework in Amarok, OpenStreetMap
integration in Marble, Photo uploads in Digikam, GetHotNewStuff for Plasma
components. Silk overlaps with many parts of KDE. Konqueror, Nepomuk, Plasma, the
Social Desktop, Akonadi and many individual applications.
The Silkiness Scale
The question "How silky is this application?" can be split up into a number of
* It uses data from the web (1 point)
* It caches data for offline usage (1 point)
* It is a native client to enhance web content (1 point)
* ... for more than one device (1 point)
What's the status?
Project Silk has just started, but not from zero. There are many parts in KDE that
make applications silky already. Many of the technologies in KDE and Qt make silky
applications very easy to do. There is very little coordination and sharing between
those scattered bits and pieces, however.
We've also produced some new, silk-driven code. In the Silk Git repo, there is a
webpage thumbnailer, and a prototype of a standalone web application done by Rich and
me. Some people have started working on Silk projects in other parts of KDE, such as
Alessandro, who is working on an online video dataengine for Plasma. People such as
Flavio have shown interest to put develop his QtJson library in the Silk repo.
The first code has in fact been written the morning after we started thinking about
Silk, it's the wikipedia KRunner.
Where to go from here?
* A write-up of ideas from that bar in Las Palmas:
* Some of the code we've been working on:
* Selkie experimental standalone web app:
* Subscription page for the email@example.com mailinglist:
* IRC channel: #kde-silk on Freenode
Thanks for listening so far. :)
http://www.kde.org | http://vizZzion.org | GPG Key ID: 9119 0EF9
to post comments)