So I guess I’ll respond since James is starting a good discussion about the channels. The locator file seems like it will work great, I honestly just picked the URI scheme because I knew it would work and it was easy to implement. I should update the page some to reflect that change.
I guess I should add this disclaimer around the technical parts for further discussion. “I’m doing technical hacks that allow me to move towards the idea as fast as possible”. 🙂 Any of the technical stuff I put in the design page was just to get this moving, so I appreciate fixes like this.
Rodney pointed out in his lovely little way that we should add a MIME type instead. However that solution seems to require fixing multiple pieces of the desktop and I’m not inclined to shelf the idea waiting on that. I’d rather drive forward to get the new parts done and when the ugly technical underpinnings are fixed change to that later.
Anyway Rodney seems all pissed off in his blog and I’m not sure why. My post wasn’t written to offend, but to talk about something cool I was working on. I’m assuming he misread my intentions of working on this channels idea and instead read that I’m rewriting the background capplet in another language. Just to make things clear, it’s not my intention to rewrite your capplet in PyGTK. That is not what I do for work or fun. I only rewrote the capplet because it was easier than trying to work with the existing one. Plus I like working with Python better than C, especially for a program this small and ephemeral.
What happened was I made some changes I felt were necessary to the XML that necessitated changes the rest of the code of the existing capplet and so a quick rewrite seemed the next step. I personally would be happy if someone rewrote my design because it might infer that the design was good, but Rodney and I apparently see things very differently. To each his own. In the end, the capplet layout isn’t ideal for what I want to do, so I won’t be using it for very long. Sorry for the confusion, I hope it’s just that.
My post was about the channel idea and I don’t have the UI worked out for it yet. My focus has been on the actual interaction of people getting background channels and sharing them, more than how they actually pick them from the dialog. I think this is the most important part of the problem and I can probably whip up any dialog to solve the choosing channels/backgrounds problem pretty easily.
The channels could be implemented using just HTTP connects but the design I’ve been driving for isn’t just sucking down images from the net. I’m looking to create a kind of (responsible) social sharing of the desktop look. This partially comes from the effect I’ve noticed that people have when they see the backgrounds that others are using on their computers. Or they see the themes and color layouts that other people have and they want that same look. I say responsible sharing in there, because I think authors should be able to include a CC or other kind of license along with their background images if they like. This doesn’t actually create responsibility, but allows for it.
RSS feeds do have a Time to Live element in them, it looks like this <ttl>1440</ttl> under the <channel> parent element and I was planning on using that to determine when to check the channel next. If the ttl element was missing a default could be used instead.
So this social sharing of backgrounds requires extra information to tag along with the background images. Information like Author, License, URL, and such. I’ll give a little storyboard of how I see it working, because that might convey the information better.
Dave uses GNOME. Dave is checking out photo.net and sees a link to [subscribe to background channel] of their recent photos. Dave clicks on the link and subscribes. He immediately gets a new background image fit to the correct size on his screen. Every week a new background image lands on his desktop. After the background being updated one week, Dave decides he doesn’t like the current image and wants something else for a background.
Dave liked one of the previous images in the channel and wants to have that image longer. He opens up the background chooser and selects the last image from the channel he’s subscribed as his background. Since Dave likes the current image so much he opens up the background chooser to see if the channel has any more images from that author. Through the chooser he then finds that the author has a channel of their own. Dave is then taken to the background image authors site where he can get more of those types of images.
Julia works in Dave’s office and uses GNOME too. She see’s Dave’s background and asks him where he got it. Dave tells her the site and then says that he’s sharing his background images too so she can poke around in his collection.
Julia searches and finds Dave’s computer on the network. She then sees the different channels Dave has subscribed to and the background images available. Dave’s collection is available to Julia as a channel that she can subscribe to herself or she can just get the channels that Dave has and subscribe to those. However Julia sees that most of Dave’s personal collection is pictures of metal bands and in searching for Dave’s backgrounds Julia saw Mikael’s channel that she likes a little better.
Mikael uses GNOME too! Mikael has been taking beautiful photos of his orienteering trips and setup a channel from his machine to serve those images. The images are from his photo collection that he decided to use as a background. Any descriptions that he created in his photo collection viewer are pulled into the channel so people can see more information about the picture. Julia subscribes to Mikael’s channel and gets bi-weekly updated background images from his trips, however she has been stalking him for years so these pictures aren’t big news.
The idea then can extend beyond Backgrounds and maybe go into Themes and the like. However I’d like to work out the story for backgrounds because it’s a pretty simple incarnation of the idea and I think it can get up and running quickly. Themes might be easy to get going just like this too, if anyone is interested in this idea I’d love to talk about it, grab me on IRC or at GUADEC.
More Tech Stuff
Again, I’m just picking technology I know about that could be used for an implementation. I was planning on broadcasting available shared backgrounds through the Zeroconf protocol so that other people could view them and subscribe to my background images over the local network. I guess you’d use an HTTP server on the client to generate the channel page like a regular channel website.
I’m planning on adding a BackgroundChannels page in the Research & Development section to the GNOME wiki so I can keep this information updated.