SocialFromTheStart

Summary

In our continued desire to pull more of the web/social experiences down to the desktop, we need to extend the APIs provided by gwibber to enable integration more applications. In Lucid gwibber was limited to python and dbus APIs, this project aims to move those APIs to C (libgwibber) and generate bindings into other languages like pythone, mono, vala, etc. This will make it easier for other applications to integrate and bring that experience to more users.

Release Note

This section should include a paragraph describing the end-user impact of this change. It is meant to be included in the release notes of the first release in which it is implemented. (Not all of these will actually be included in the release notes, at the release manager's discretion; but writing them is a useful exercise.)

It is mandatory.

Rationale

Social media is exploding right now, with more and more ways for users to interact with each other popping up daily. We want to bring that experience down to the Ubuntu Desktop and seamlessly integrate the desktop apps users use everyday with the online services they know and love.

User stories

Jorge is a heavy consumer of social media, he depends on keeping up with what other people are working on for his job as well as his own passion for software. He subscribes to a variety of online services, with a different mix of contacts available on each. Many of the posts that are most important to Jorge are screenshots or links showing off cool new software. Jorge frequently follows the links, views the screenshots, and re-tweets the things he finds exciting.

Laurie's network of friends are all on facebook, many of which are mothers and love to share stories, post photos of their children, plan events, etc. She enjoys not only viewing her own family photos on her Ubuntu Desktop, but also browsing albums shared by her friends. While browsing those albums, she posts comments on photos, marks them as "liked", and tags other friends in photos.

Jono is really into music, specifically metal, and loves telling the world about the music he loves. While headbanging along to a song he is particularly enjoying, he desides he loves the song so much he wants to tell his friends to check it out. He broadcasts a reference to the song which includes a link to where his friends can get it.

Rick has been working all weekend on adding fun features to a new quickly project he started. After he publishes the project to a personal package archive, he wants to tell his social contacts what he has been doing and how they can try it out. He uses quickly to broadcast his progress, which contains a link that launches software-center, directly on a details page for Rick's package. His contacts can now install his package with just one more click.

Jorge just finished creating slides for a presentation about dinosaurs, and his theory on how they became extinct. He needs to provide a public URL to the presentation for the event he is speaking at. Jorge saves the file to his Ubuntu One account and creates a public URL, and decides it would also be cool to post the link to his friends.

Assumptions

Design

You can have subsections that better describe specific parts of the issue.

Implementation

This section should describe a plan of action (the "how") to implement the changes discussed. Could include subsections like:

UI Changes

Should cover changes required to the UI, or specific UI that is required to implement this

Code Changes

Code changes should include an overview of what needs to change, and in some cases even the specific details.

Migration

Include:

  • data migration, if any
  • redirects from old URLs to new ones, if any
  • how users will be pointed to the new way of doing things, if necessary.

Test/Demo Plan

It's important that we are able to test new features, and demonstrate them to users. Use this section to describe a short plan that anybody can follow that demonstrates the feature is working. This can then be used during testing, and to show off after release. Please add an entry to http://testcases.qa.ubuntu.com/Coverage/NewFeatures for tracking test coverage.

This need not be added or completed until the specification is nearing beta.

Unresolved issues

This should 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.

BoF agenda and discussion

  • === Social from the Start, for developers === Expand the API to make integration with social networking more compeling accross the desktop Move APIs and gtk widgets from python to libgwibber and generate bindings for vala, python, mono
    • Existing GwibberPublic methods have been ported to libgwibber, still needs polish

    • Still need to port the gtk widgets

Enhancements to the API:

  • We should have access to a count of unread messages/posts/etc since last time the window was focused. Needed for MessagingMenu

  • Retrieving photos
    • generic API for viewing online photo albums from services which provide them
      • Support commenting, liking, tagging people, etc if the provider supports it
  • Retrieving links posted by friends
  • Anything we can do with events?
  • Posting photos?
  • UbuntuOne syncing of keyring and other credentials

  • Perhaps integrate with libfolks and U1, etc to relate identity and perhaps tie things together more like empathy to gwibber, etc
  • Add a broadcast feature to GTG to send the subject of what you are working on, or what you just got done.
  • watch projects in launchpad for pushes, merge proposals, etc.... perhaps use launchpadlib or RSS feed
  • quickly share or publish, make that broadcast
  • add "share my results" to some games, popup and let you decide to share or not
  • totem: add a share this video feature when playing youtube videos
  • rhythmbox/banshee: share currently playing song or ratings or even direct message for sending to an individuals (recommendation, etc)
    • maybe even post the album art
    • perhaps tie into u1music store
  • software-center: share recommendations (broadcast or direct message)
    • check on apturl or something similar to let you click straight to the right page in software-center
  • ubuntuone file share with public url
  • screenshot tool, post straight to social sites or u1 and share url
  • snapshots from cheese, documents from simple-scan to social sites or u1
  • find way to share content, files, etc via multiple mechanisms depending on how you can interact with your friends
    • if we know the contact is available on jabber, prompt to select how to send
  • gobby: post link to open gobby directly into a specific document
  • irc: post links directly to an irc channel
  • add sharing feature to the firefox extension for launchpad

Enhancements to the widgets:

  • image uploading
  • Other feature:
    • tripit
    • linkedin


CategorySpec

DesktopTeam/Specs/Maverick/SocialFromTheStart (last edited 2010-05-18 19:58:54 by cpe-065-190-158-029)