Microsoft's Live integration - We need an API
So Microsoft has released an initial version of their Windows Live integration. If you can't be bothered to read the article, here's the summary interesting to tech folks:
Taking this point by point:
Ok, so overall, they win on photos. Now, we have a vision for the Online Desktop (as relates to GNOME/Firefox/Linux/Free Software). Part of that vision is:
In other words, it's easy for Microsoft to do photo integration because they can just hardcode the OS to integrate with Windows Live Mail or Windows Live Photos, not everything else. A problem we're running into now is that we just haven't yet defined what the framework is for integrating with different kinds of online services. Havoc says:
Yes, we need to do this. This API question is an instance of the larger problem I see, which is how do we make the desktop integrate in a generic way with the websites you use, and if you don't yet have a service, how do we make finding one possible?
The mailto: handler we have is basically a perfect example of an application waiting for this integration API. The mailto handler has no way to know whether you use Yahoo! Mail, Hotmail, GMail, or whatever.
Of course, it isn't just the mailto handler. To get the experience right for photos, it's crucial, as I talked about above. Another example is the IM client. What I would love is that on a new account, if I log into GMail, the IM client automatically appears, configured to use Google Talk. It must likewise work for Yahoo! Mail.
What I would really like to do from this point on in the Online Desktop effort is to for each feature we add, try to integrate with at least 2 services in the feature category. As most programmers know, there usually isn't a big difference in effort between supporting the case of 2 versus an arbitrary (but reasonable) N.
So, back to the API. Actually first, let's think about what the user experience should be instead of starting by coding the D-BUS API we made up in our head. Here's a screenshot from a related application, Mugshot:

Now, Mugshot's list of "websites I use" is subtly different in that right now it's really "websites I use that my friends will be interested in". For example, the desktop should have E-Bay integration (bid watching apps) but I'm dubious about the value of stacking things I'm bidding on to my friend's desktops. There is also the technical issue in that honestly right now it's a lot of work to add a service to Mugshot; a lot of that work is in the stacking support.
However, the more I think about it, the more I do think it makes sense to ultimately have a UI similar to the Mugshot one. From this flows some technical decisions such as that we're storing it online, we can use the data model to retrieve it. We do need to figure out the problems I mentioned above - how do we have private services? And how do we scale the UI to support a long tail of services? The current list is already fairly big, and if we added even a few more photo sites and such it'd be unwieldy. Also, how do we encourage the user to list (and maintain!) their infos? It needs to be a key part of the experience. They need to understand why we want say their EBay or Last.fm username.
One other detail - passwords - some people thought Mugshot stores your passwords to retrieve data. It never has, and likely never will. Though if we wanted to do social network importing from other sites, we'd probably need to do that. Sigh. Anyways, ignoring that: In my opinion, we should concentrate on unifying the logins outside of Firefox first. As Alan Cox mentioned, there are some gotchas in doing syncing to the web browser. If we can fix the few key programs (mail,IM,photos) to share your Google and Yahoo! logins, we'll be doing pretty well.
So the executive summary is here - I don't feel we have a coherent answer yet for this problem. Responses welcome if you have other ideas - it's actually a complex and hairy problem, involving a big cross between desktop apps, the web browser, and web sites, which is why it isn't solved yet.
Microsoft’s new Windows Live software suite includes an updated electronic mail program, a photo-sharing application and a writing tool designed for people who keep Web logs.
Taking this point by point:
- Better integration with Hotmail - Presumably things like mail notification. Ok, we have that in the most part; there's notifiers e.g. GMail in Pidgin and the sidebar. I'll talk more about this in a minute.
- Photo sharing - Here we fail currently. The default in GNOME when you plug in a camera is that the photos sit on your hard drive, viewable only by you and just waiting to be lost when you drop your laptop. We need someone to fix this - I had some suggestions for part of that. Conduit looks useful for transferring bits, but doesn't look like it is attempting to solve the problem of helping a normal person get started putting photos online by default.
- Blog tool - eh, we have tons of those. The web editors for most of them are basically good enough anyways. Not important.
Ok, so overall, they win on photos. Now, we have a vision for the Online Desktop (as relates to GNOME/Firefox/Linux/Free Software). Part of that vision is:
Open source doesn't have an agenda like this; our online desktop will be integrated with anything and everything users want to use.
In other words, it's easy for Microsoft to do photo integration because they can just hardcode the OS to integrate with Windows Live Mail or Windows Live Photos, not everything else. A problem we're running into now is that we just haven't yet defined what the framework is for integrating with different kinds of online services. Havoc says:
a) add separate APIs to list, watch changes in, and get named
properties of each type of object; this can be merged into the Online
Desktop data model perhaps. For each type of object the implementation
will be different, since we'll have to talk to or scrape a different
app.
Yes, we need to do this. This API question is an instance of the larger problem I see, which is how do we make the desktop integrate in a generic way with the websites you use, and if you don't yet have a service, how do we make finding one possible?
The mailto: handler we have is basically a perfect example of an application waiting for this integration API. The mailto handler has no way to know whether you use Yahoo! Mail, Hotmail, GMail, or whatever.
Of course, it isn't just the mailto handler. To get the experience right for photos, it's crucial, as I talked about above. Another example is the IM client. What I would love is that on a new account, if I log into GMail, the IM client automatically appears, configured to use Google Talk. It must likewise work for Yahoo! Mail.
What I would really like to do from this point on in the Online Desktop effort is to for each feature we add, try to integrate with at least 2 services in the feature category. As most programmers know, there usually isn't a big difference in effort between supporting the case of 2 versus an arbitrary (but reasonable) N.
So, back to the API. Actually first, let's think about what the user experience should be instead of starting by coding the D-BUS API we made up in our head. Here's a screenshot from a related application, Mugshot:
Now, Mugshot's list of "websites I use" is subtly different in that right now it's really "websites I use that my friends will be interested in". For example, the desktop should have E-Bay integration (bid watching apps) but I'm dubious about the value of stacking things I'm bidding on to my friend's desktops. There is also the technical issue in that honestly right now it's a lot of work to add a service to Mugshot; a lot of that work is in the stacking support.
However, the more I think about it, the more I do think it makes sense to ultimately have a UI similar to the Mugshot one. From this flows some technical decisions such as that we're storing it online, we can use the data model to retrieve it. We do need to figure out the problems I mentioned above - how do we have private services? And how do we scale the UI to support a long tail of services? The current list is already fairly big, and if we added even a few more photo sites and such it'd be unwieldy. Also, how do we encourage the user to list (and maintain!) their infos? It needs to be a key part of the experience. They need to understand why we want say their EBay or Last.fm username.
One other detail - passwords - some people thought Mugshot stores your passwords to retrieve data. It never has, and likely never will. Though if we wanted to do social network importing from other sites, we'd probably need to do that. Sigh. Anyways, ignoring that: In my opinion, we should concentrate on unifying the logins outside of Firefox first. As Alan Cox mentioned, there are some gotchas in doing syncing to the web browser. If we can fix the few key programs (mail,IM,photos) to share your Google and Yahoo! logins, we'll be doing pretty well.
So the executive summary is here - I don't feel we have a coherent answer yet for this problem. Responses welcome if you have other ideas - it's actually a complex and hairy problem, involving a big cross between desktop apps, the web browser, and web sites, which is why it isn't solved yet.

(Anonymous)
Conduit
Seems like it is a really great early answer to these things.
(Anonymous)
> passwords to retrieve data. It never has, and likely never will. Though
> if we wanted to do social network importing from other sites, we'd
> probably need to do that.
http://openid.net/
(Anonymous)
Conduit
Playing nice when a digital camera is plugged in the class of problems where it lies in the haze between distros and GNOME. Make no mistake that I am aware of "make it easy for grandma to put photos online by default" problem however.
Conduit goes as far as it can making it easy for other people to solve the problem by making it possible to upload photos to SITE_X using 6 DBus calls. Im sure I will get round to implementing some sort separate executable that can be called when a digital camera is inserted (in the same way that f-spot --import is called), just like we also got round to writing a eog plugin, and expanding f-spots dbus interface. We did this extra work because we are very concerned with making things integrated, at least when making things integrated = making things easy.
Like most free software projects we lack resources. The best middle ground was implementing a simple external interface for Conduit using said DBus calls so either
a) I can come back and solve the afore mentioned problems later
b) Someone else can solve the problem, using conduit, but without having to become a conduit dev
John
(Anonymous)
You forgot the most important
It is a genuine innovation, uncouples you from having to stay online to reach someone when they come online. Just fire and forget. Awesome, simply awesome for usability, throwing fast comments etc at the correct direction and they will find their way - and by time you can actually converse by im, and even switch seamlessly to proper online2online chat.
It's just sweeeeeet and no open source implementation does that. Sucky.
(Anonymous)
Re: You forgot the most important
For your interest, the development branch of pymsn, a python MSN library aiming to cover the latest version of the MSN protocol (MSNP15, i.e. the one used by Live Messenger) has an implementation of offline messages (we also have a really good implementation of the Live AddressBook, which is more important to my mind). We implemented services which are related to Live Messenger but an integration into a bigger "Live" framework is to consider.
We hope to release that new version of pymsn during this month.
Johann
---
http://jprieur.wordpress.com
http://telepathy.freedesktop.org/wiki/Py
(Anonymous)
Re: You forgot the most important
Pymsn looks like nice infrastructure piece. Good features, I am impressed already in overall. I'd like to get umm... A user interface. Stable, functional. Pervasive, unlike any other. Reliable, unlike Gaim.
(Anonymous)
Re: You forgot the most important
Concerning the clients, some based on pymsn are being developed. Also, it will be soon possible to use pymsn through a revamped telepathy-butterfly into the wonderful empathy.
For further information on that, please join #pymsn on freenode!
Johann
---
http://jprieur.wordpress.com (http://jprieur.wordpress.com)
(Anonymous)
Re: You forgot the most important
(Anonymous)
Re: You forgot the most important
Accounts
I think Flock (web browser) does the best thing here: the first time you launch it, it asks you "which photo storing site do you use" "which bookmark storing site do you use" etc. then it just shows you a list of configured accounts and lets you add more manually (if you use both Flickr and Picasa for example).
About the API: I think it'd make more sense to create a common API then map common field names to provider/consumer specific names (or NULL if such field is not supported by a particular backend).
(Anonymous)
Re: Accounts
I'd like at least to fill in my MSN details there for messenger for the telepathy. Mmm. Some others might want some others.
(Anonymous)
Conduit Again
I made a blog comment illustrating that now we have built a solid sync platform the integration into the platform stuff should come naturally. I would appreciate your thoughts
http://www.johnstowers.co.nz/blog/index.p
John