DesktopJuJu

Revision 12 as of 2012-05-17 01:48:41

Clear message

Summary

This specification presents ideas to develop a desktop framework similar to what JuJu does for the web.

Rationale

A framework that allows users to easily use predefined sets of actions across all aspects of the desktop presents an interesting opportunity to redefine the desktop metaphor.

Such a framework could be extensible for all strata of user experiences; the system level, inter-application, and intra-application.

Users can interface this framework with existing HUD and dash technologies.

Existing knowledge bases can be distilled into predefined sets of actions. This framework would leverage these sets of actions and/or heuristically derived system data to yield the following:

  • simplification of user experience by minimizing computer and application knowledge/experience requirements (i.e. it becomes easier to use)
  • greatly enhance problem solving (i.e. the computer provides smart solutions)
  • users experience enhanced functionality and greater capability at a more rapid rate (i.e. users can do more)

Crowd sourcing sets of actions could be implemented as well. Curation and packaging would be required, but developing an API or application should increase efficiency and quality.

Since Juju and Charms were the catalyst, the blueprint authors denoted the framework 'Vudu' (pronounced as 'voodoo') and the sets of steps as 'Spells', which will be used in later parts of this document.

User Stories

Due to the difference in development requirements, the User Stories are subdivided into the three different strata; system, inter-application, and intra-application.

system strata

These use cases will address how users might interact with the operating system.

  1. johnny wants to add a network printer
  2. barbara can't connect to the internet
  3. barton wants to create an magazine for print

inter-appliction

These use cases will address how users might interact within a single application .

  1. sachi wants to repetitively retouch photos from a social gathering sharpen, crops, and rotates the images.
  2. Jean-Pierre wants to

intra-appliction

These use cases will address how users will interact with the operating system.

  1. Phillipe wants to record his band and needs to start five applications, load templates, and make audio routing connections.
  2. adjoa wants to

Schedule / Visibility

  • mark said this would happen not this cycle (presumably quantal) but next cycle (presumably r-cycle)
  • what is the visibility of this project? can we blog about it?
    • charles profitt said he asked mark and was told we can blog about it
    • should we confirm this again?

Feature Sets

List of suggested features broken down by usage strata.

System Level Features

  • HUD interface
  • default spells package installed by default
  • might use natural language and fuzzy logic
  • heuristically solve problems or determine appropriate solutions
  • might provide list of possible solutions with most probably default selection, user chooses
  • help users solve system level problems
  • might help users install sets of packages to support object/tasks

Inter-application Features

  • dash interface
  • default spells package installed by default
  • users can edit/create spells
  • spells can be crowdsourced
  • help users with repeating actions within single applications

Intra-application Features

  • HUD interface
  • default spells package installed by default
  • users can edit/create spells
  • spells can be crowdsourced
  • defined API or application to assist crowdsourcing spells
  • help users start sets of applications, change appropriate settings, make connections, or copy files
  • help users install sets of packages to support objective/task

Design

  • JuJu/Charms was original inspiration and remains similar, analogous system
  • decided that JuJu/Charms were not appropriate framework to use
  • D-BUS will most likely be used
  • apps probably need patches to expose settings to D-BUS
  • would a Vudu library be useful?
  • the ladish project (in launchpad) is an example of an intra-application strata solution
  • mark-mims said to look at QML to define profiles rather than packages
  • mhall119 said to make sure vudu spells work and translate to tablets, phones, and tvs

The rest of the specification

Replace that heading with headings for each thing you’re changing or specifying.

Checklist:

  1. Have you reviewed the bug reports for the relevant package? (Yes, this may take an hour or two. But you might be able to fix multiple bugs with a well-designed change.)
  2. If any user interface is involved, is it fully described? Include any wireframes or mockups.
  3. Have you had any new user interface, or new visible text, reviewed by a designer? (Or if you are a designer, have you had it peer-reviewed?)
  4. Is the change accessible? (For example, have you specified accessible labels for any graphic-only elements?)
  5. How will users learn the new way of doing things? Describe any help pages required, and any changes to the Ubuntu Web site or installer slideshow.
  6. Is any migration of data or settings required?
  7. How will the feature be tested? Please add an entry to http://testcases.qa.ubuntu.com/Coverage/NewFeatures for tracking test coverage.

Unresolved issues

Highlight any issues that should be addressed in further specifications, and not problems with the specification itself; since any specification with problems cannot be approved.

Media Ideas

  • link to logo ideas
  • link to teaser video idea


CategorySpec