Projects/Silk: Difference between revisions

From KDE TechBase
(Introducing project silk)
 
(→‎Where's the Code?: Fix project link.)
(23 intermediate revisions by 5 users not shown)
Line 1: Line 1:
==== Project Silk ====
==== Project Silk ====


=== Notes from meeting 9 July 2009 ===
The following is based on notes from meeting 9 July 2009.
 
The basic aim of project silk is to deeply integrate online content into the
desktop user experience.


== LibWeb ==
The basic aim of project silk is to deeply integrate online content and communication into the user experience.


This will be a library containing utility classes for integrating online
== Goal and Concept ==
content and services into KDE. Here are some ideas of things it could contain:
The goal of Project Silk is deep coupling of the web with the user experience while overcoming limitations of the browser. "Freeing the Web From the Browser", so to say. Project Silk takes the opposite direction of Google's Chrome OS, instead of making the browser the Operating System, we integrate the content and the communication deeply into the desktop and application


* MediaWiki Query class
Slogan: "Freeing the Web from the Browser", "A New User Interface (Face) for the Web"
* WebSlice widget
* Web identity configuration manager
** Controls the settings for microblogging, blogging, facebook, google.
* SOAP API (useful for corporate web apis)
* Bookmark access (via akonadi)
* Web page thumbnailer
* Web page meta data API (with previews)
* Web page nepomuk integration
* Base class for implementing REST apis with site-specific implementations
* Wikipedia krunner
* Monitor webpages + change notifications


== What the user gets ==
== What the user gets ==
 
* the Social Desktop, have your friends on the desktop
* Public transport
* Public transport See [http://www.kde-look.org/content/show.php/PublicTransport?content=106175] for example
* Online news
* Online news
* Online shopping (Amazon API)
* Online shopping (Amazon API,TaoBao Open Platform API)
* Geoweb: Where are we?
* Geoweb: Where are we?
** What's here? Categories: Culture, shopping, food and drink, friends near here, weather forecast, public transport, translation, wikitravel, localphone, ATM, hotels (with booking), local phone numbers (taxi, police,
* Bookmarked synched across devices
doctors, tourist info_, sports (passive, active), social activities (local
** What's here? Categories: Culture, shopping, food and drink, friends near here, weather forecast, public transport, translation, wikitravel, localphone, ATM, hotels (with booking), local phone numbers (taxi, police, doctors, tourist info, sports (passive, active), social activities (local church, etc.) nearby internet access.
church, etc.) nearby internet access.
*** Food support could know of dietry requirements
*** Food support could know of dietry requirements
** Opening times: Shows your current location (using geolocation dataengine and marble / openstreetmap) and shops of an interesting category (supermarkets, for example). Opening times are visualized using colours, for example green means: open for at least two more hours, blue for "open for at least 30 minutes, orange: closes in 10 minutes, red: closed. Makes it easy to find a suitable shop. Unsolved: where to get the info about shops / opening times.
** Local translations
** Local translations
* All this with the ability to feedback
* All this with the ability to feedback
Line 41: Line 29:
* libocs (my location, nearby etc.)
* libocs (my location, nearby etc.)
* CIA world fact book
* CIA world fact book
* the newspaper containment in our plasma-netbook shell
* Travel help: an small application that asks where you're going, and then pulls in information from various locations, much like a dynamic travel guide. This information is then cached (you might not find an Internet connection directly!). Pieces of information that would be useful: maps of the city you're visiting (thanks openstreetmap), phone numbers (the local country code, taxis, doctors, hotels, restaurants, ...) As a bonus, there would be the option to compile a three page summary pdf to print so you don't have to open up your netbook / laptop all the time.
== Components ==
* a webkit-based Konqueror
* libweb
* Silk integration for existing technologies
* applications and applets integrating web content
* new concepts of remixing content from the web
== webkit-based Konqueror ==
During Akademy, there was much discussion and also already some code to make the webkit kpart ready for prime-time. A fully working, modern and integrated browser is one of the most important pillars of Project Silk. Konqueror will be using webkit, making it fully working with all major websites. Info about webkit in Konqueror:
http://techbase.kde.org/Projects/WebKit
== libweb ==
libweb provides the plumbing for applications to easily integrate content from the web by offering a KDE-style API. Think of Solid or Phonon, but for the web. libweb is not so much one library, but a collection of reusable components and sublibraries. It will be a library containing utility classes for integrating online content and services into KDE. Here are some ideas of things it could contain:
* MediaWiki Query class (done)
* webslices, individual parts of webpages as Q(Graphics)Widgets
* webpage thumbnailer (done)
* webpage metadata class with previews
* standalone webapps
* bookmarks with update notification ("this webpage has changed since your last visit") (in progress as SoC?)
* Base class for implementing REST apis with site-specific implementations (much like Cornelius OCS lib that's used in the opendesktop dataengine)
* online news / RSS lib (done)
* libgeoweb, combining geolocation with webservices to retrieve data relevant to your current location, or to where you're travelling to)
* social web API, plugging into different social networks (openDesktop, facebook, linkedIn) (in progress)
* public transport API (standardized way of getting at this information, different backends to get at the data)
* online shopping API (+ different backends)
* online multimedia content (streaming audio, video, music store): see Amarok
** Useful info on the youtube api http://techblog.ironfroggy.com/2009/07/how-to-use-youtube-data-api.html
* SOAP API (useful for corporate web apis)
* Monitor webpages + change notifications
* See Kevin's work on QtJolie
** http://www.grancanariadesktopsummit.org/node/132
** http://www.jolie-lang.org
The challenge for libweb is to keep it smooth and well-structured. It would be too easy to just dump everything web-related in there, we need to think about how the whole thing should look like for developers.
Backends for the service APIs (public transport, online shopping, ...) we offer in libweb should be written in scripting languages for so far possible, so we can easily distribute and update them through GHNS, much like the comic plasma applet does with its per-site comic scriptlets.
== Silk integration components ==
* tagging and indexing of visited webpages in the desktop search / nepomuk
* akonadi resources for interesting services (google contacts, del.icious bookmarks, linkedin and facebook contacts, ...)
* wikipedia runner for KRunner (done :-))
* web identity configuration (central openID config, easy configuration of webservices (think of a button for GMail which then creates an akonadi resource, pulls in email and shows that in Lion Mail on the desktop, or similar, instead of pointing the IMAP config to the GMail server), controls the settings for microblogging, blogging, facebook, google.
* a flickr (or rather web-gallery) browser
* a standalone web video viewer [[http://flavio.tordini.org/minitube||Minitube]] looks interesting (alediaferia is working a dataengine for video)
* microblogging app / applet (done)
* Plasma dataengines and applets
* [[Projects/Silk/Selkie|Selkie]], a sitespecific browser, offering an interface customized for running standalone webapps, uses site-specific bookmarks, offers toolbar actions matching a specific site, instead of location bars and back/forward buttons. (in progress)
== Why is Silk better than a webbrowser ==
* offline usage and caching, even if limited
* richer UI (usage of modern graphics capabilities)
* most webpages only work on a full computer and maybe on a netbook), smaller devices often suffer there
* we can optimize content for small and large screen sizes
* we can make things compatible for different input devices (ever tried google maps on a touchscreen?)
* coherent theming
* full product thinking (hi Aaron!) by integrating interesting services by default)
* better development platform (not bound to JavaScript / Ajax)
== Research Topics ==
* What does already exist, where?
* In how far can we make use of existing API, existing service protocols?
* How do we promote Freedom with Silk?
* What business models does it allow?
* Where can we get corporate buy-in?
* Where does real-time collaboration stand here?
== How do we tackle Project Silk ==
The idea is to fly under the public radar for some time.
Once we have the first bits in place, we announce it as the next multi-year vision for KDE and try to get everybody on board with a big PR splash. (Flying under the radar for a bit will help -- announcing vapourware wouldn't be cool, if we show that we've already some momentum, it'll work much better. Silk is very much a movement towards deep integration, not a one-off or a single application. We have the technologies in place to keep an edge over competitors, and we have the developer community in place to create small plugins to support a wide variety of (even local and niche) services.
== Where's the Code? ==
Silk components are hosted in the  [https://projects.kde.org/projects/playground/base/silk|Project Silk repository] on git.kde.org. Keep in mind that many applications that make the desktop "silk" are integrated into the applications or Plasma already. This git repo collects the bits that aren't (yet). The code is highly experimental, it eats kittens alive. You've been warned.
== How can we get people on board? ==
* Blog about the concepts
* Invite interested developers to a mailinglist
* Organize a Silk developer sprint
* Contact people who have been working on "webby" stuff in KDE (done, in progress)
* Divide libweb and the SIL (Silk Integration Layer) into small subtasks
* Provide a git repo with the bits and pieces to get cracking (done)
== Mailinglist and IRC ==
* kde-silk mailinglist: [https://mail.kde.org/mailman/listinfo/kde-silk subscribe] [http://kde.markmail.org/search/?q=kde-silk Archive]
* #kde-silk on Freenode.net
== Why Silk? ==
(Spider)webs are made of it.

Revision as of 05:17, 31 May 2013


Project Silk

The following is based on notes from meeting 9 July 2009.

The basic aim of project silk is to deeply integrate online content and communication into the user experience.

Goal and Concept

The goal of Project Silk is deep coupling of the web with the user experience while overcoming limitations of the browser. "Freeing the Web From the Browser", so to say. Project Silk takes the opposite direction of Google's Chrome OS, instead of making the browser the Operating System, we integrate the content and the communication deeply into the desktop and application

Slogan: "Freeing the Web from the Browser", "A New User Interface (Face) for the Web"

What the user gets

  • the Social Desktop, have your friends on the desktop
  • Public transport See [1] for example
  • Online news
  • Online shopping (Amazon API,TaoBao Open Platform API)
  • Geoweb: Where are we?
  • Bookmarked synched across devices
    • What's here? Categories: Culture, shopping, food and drink, friends near here, weather forecast, public transport, translation, wikitravel, localphone, ATM, hotels (with booking), local phone numbers (taxi, police, doctors, tourist info, sports (passive, active), social activities (local church, etc.) nearby internet access.
      • Food support could know of dietry requirements
    • Opening times: Shows your current location (using geolocation dataengine and marble / openstreetmap) and shops of an interesting category (supermarkets, for example). Opening times are visualized using colours, for example green means: open for at least two more hours, blue for "open for at least 30 minutes, orange: closes in 10 minutes, red: closed. Makes it easy to find a suitable shop. Unsolved: where to get the info about shops / opening times.
    • Local translations
  • All this with the ability to feedback
  • I'm going to visit XYZ, cache me all the data I need and create a printable overview.
  • Mobile phone tarrifs, dialing prefixes
  • Local prices - what does hotel, food, travel etc. cost here?
  • libocs (my location, nearby etc.)
  • CIA world fact book
  • the newspaper containment in our plasma-netbook shell
  • Travel help: an small application that asks where you're going, and then pulls in information from various locations, much like a dynamic travel guide. This information is then cached (you might not find an Internet connection directly!). Pieces of information that would be useful: maps of the city you're visiting (thanks openstreetmap), phone numbers (the local country code, taxis, doctors, hotels, restaurants, ...) As a bonus, there would be the option to compile a three page summary pdf to print so you don't have to open up your netbook / laptop all the time.

Components

  • a webkit-based Konqueror
  • libweb
  • Silk integration for existing technologies
  • applications and applets integrating web content
  • new concepts of remixing content from the web

webkit-based Konqueror

During Akademy, there was much discussion and also already some code to make the webkit kpart ready for prime-time. A fully working, modern and integrated browser is one of the most important pillars of Project Silk. Konqueror will be using webkit, making it fully working with all major websites. Info about webkit in Konqueror: http://techbase.kde.org/Projects/WebKit

libweb

libweb provides the plumbing for applications to easily integrate content from the web by offering a KDE-style API. Think of Solid or Phonon, but for the web. libweb is not so much one library, but a collection of reusable components and sublibraries. It will be a library containing utility classes for integrating online content and services into KDE. Here are some ideas of things it could contain:

  • MediaWiki Query class (done)
  • webslices, individual parts of webpages as Q(Graphics)Widgets
  • webpage thumbnailer (done)
  • webpage metadata class with previews
  • standalone webapps
  • bookmarks with update notification ("this webpage has changed since your last visit") (in progress as SoC?)
  • Base class for implementing REST apis with site-specific implementations (much like Cornelius OCS lib that's used in the opendesktop dataengine)
  • online news / RSS lib (done)
  • libgeoweb, combining geolocation with webservices to retrieve data relevant to your current location, or to where you're travelling to)
  • social web API, plugging into different social networks (openDesktop, facebook, linkedIn) (in progress)
  • public transport API (standardized way of getting at this information, different backends to get at the data)
  • online shopping API (+ different backends)
  • online multimedia content (streaming audio, video, music store): see Amarok
  • SOAP API (useful for corporate web apis)
  • Monitor webpages + change notifications
  • See Kevin's work on QtJolie

The challenge for libweb is to keep it smooth and well-structured. It would be too easy to just dump everything web-related in there, we need to think about how the whole thing should look like for developers.

Backends for the service APIs (public transport, online shopping, ...) we offer in libweb should be written in scripting languages for so far possible, so we can easily distribute and update them through GHNS, much like the comic plasma applet does with its per-site comic scriptlets.

Silk integration components

  • tagging and indexing of visited webpages in the desktop search / nepomuk
  • akonadi resources for interesting services (google contacts, del.icious bookmarks, linkedin and facebook contacts, ...)
  • wikipedia runner for KRunner (done :-))
  • web identity configuration (central openID config, easy configuration of webservices (think of a button for GMail which then creates an akonadi resource, pulls in email and shows that in Lion Mail on the desktop, or similar, instead of pointing the IMAP config to the GMail server), controls the settings for microblogging, blogging, facebook, google.
  • a flickr (or rather web-gallery) browser
  • a standalone web video viewer [[2]] looks interesting (alediaferia is working a dataengine for video)
  • microblogging app / applet (done)
  • Plasma dataengines and applets
  • Selkie, a sitespecific browser, offering an interface customized for running standalone webapps, uses site-specific bookmarks, offers toolbar actions matching a specific site, instead of location bars and back/forward buttons. (in progress)

Why is Silk better than a webbrowser

  • offline usage and caching, even if limited
  • richer UI (usage of modern graphics capabilities)
  • most webpages only work on a full computer and maybe on a netbook), smaller devices often suffer there
  • we can optimize content for small and large screen sizes
  • we can make things compatible for different input devices (ever tried google maps on a touchscreen?)
  • coherent theming
  • full product thinking (hi Aaron!) by integrating interesting services by default)
  • better development platform (not bound to JavaScript / Ajax)

Research Topics

  • What does already exist, where?
  • In how far can we make use of existing API, existing service protocols?
  • How do we promote Freedom with Silk?
  • What business models does it allow?
  • Where can we get corporate buy-in?
  • Where does real-time collaboration stand here?

How do we tackle Project Silk

The idea is to fly under the public radar for some time. Once we have the first bits in place, we announce it as the next multi-year vision for KDE and try to get everybody on board with a big PR splash. (Flying under the radar for a bit will help -- announcing vapourware wouldn't be cool, if we show that we've already some momentum, it'll work much better. Silk is very much a movement towards deep integration, not a one-off or a single application. We have the technologies in place to keep an edge over competitors, and we have the developer community in place to create small plugins to support a wide variety of (even local and niche) services.

Where's the Code?

Silk components are hosted in the Silk repository on git.kde.org. Keep in mind that many applications that make the desktop "silk" are integrated into the applications or Plasma already. This git repo collects the bits that aren't (yet). The code is highly experimental, it eats kittens alive. You've been warned.

How can we get people on board?

  • Blog about the concepts
  • Invite interested developers to a mailinglist
  • Organize a Silk developer sprint
  • Contact people who have been working on "webby" stuff in KDE (done, in progress)
  • Divide libweb and the SIL (Silk Integration Layer) into small subtasks
  • Provide a git repo with the bits and pieces to get cracking (done)

Mailinglist and IRC

Why Silk?

(Spider)webs are made of it.