What Is A Floe?

August 8th, 2008

From the word go, we weren’t entirely sure what we wanted to have in a user’s floe, and it went through several incarnations. I think the first idea was to have it be some sort of personal tv channel, and then it was going to be an interlinked weave of content, which led us to looking at linked data, which led us to eventually drawing up the WRFS concept document, which introduced us to a whole lot of new groups and cool people.

The most interesting part of any journey is not so much the destination, but the “how you got there”. Eventually we decided that we wanted a simple concept, but something that reflected the current trend of social media discovery weighted by your personal social graph. For example, I can see that Josh Lewis commented on a mutual friend’s photo today, and so that might get me to take a look at that photo as it might be from a party that we both went to. At some point in our conversations about this, I jotted down notes on one of my scribble napkins at lupis (our pizza joint / unoffical meeting place) the phrase

How does floe.tv make social media relative to the user? How is the media presented to the viewer such that they feel ownership?

Generally when I’m in scribble mode, sometimes I dont even know what I’m writing, I’m just writing, and at some point I may scan the 20 or so pages of notes I have bound together from the development of floe.tv, just so people can see the evolution, as I get a kick of seeing that from other projects. Anyway, sometimes the scribbles just pop out, and later on I have to think about what I was thinking about. And then decide if I made any sense. Fortunately in this case, it did make some sense since it was the beginning of me understanding why seeing what my friends were doing was such a driving force in social applications today. I mean, sometimes we think we know what we think we know, and then we … well… actually “get it”.

Media discovery along social graph weights is about making media relative to the user.

An image or video from some random person that has people I’ve never heard of in it may interest me little, unless it has something exciting or scandalous or funny in it. However, if I’m related to a person in the picture, or I’m friends with the person, then this media becomes that more real to me, and it has a certain relevance to me. However, there is a lot of media out there, and I will tend to use an application more if I tend to encounter more information relative to me when using it.

Someone feels ownership of media by either being portrayed in the media, or by having a creative influence on the media.

People by nature are very interested in themselves, and they take a keen interest in their own works. If a person feels some ownership over a creation, they tend to spend more time involved with it on some level. A photographer manages their portfolio, a foreman checks on the house he is building, and a gardener tends to their garden. The creative outlet is parental in nature, as our creations are in some ways our children but in meme form in some respects.

So we wanted to take the creative ownership aspect, and then take the discovery along social weights aspect, and create an entity that had strong influences from both. However, a floe needed to be simple and its creation needed to be from an implicit nature, creating more value from the network effect in the process.

Therefore, we decided that a floe is a person’s own unique “channel” of information broadcast by themselves and their immediate people they follow, or their friends. We would really like this to be based on the open social graph, but its not ready yet, so we’re working with a basic asymmetrical follow method for now. A floe gives value in that it contains not only a user’s unique creations of media, but also includes their peers work as well, so that their channel is always syndicating the content of the people they follow, or their peers. If I go to Josh Lewis’ blog with his floe.tv player embedded in it, I may see his content as well as Joe Whalen’s content, as Josh follows Joe, and in this case, this is very relevant to me since I also know Joe, but I didn’t know that he created new content last week.

So now that we’ve established the basis of what a floe is right now, let’s take a look at where we want to take the concept as we feel we have more to add to it.

The next evolution of a floe is to allow producers to share floe.tv media assets with one another. For example, Josh Lewis may share his wedding photos with just me, or everyone on the site. Then I could take those photos and some video of his wedding that I might have, and make a small show documenting his wedding. When his asset shows up in my program, a small credit link will show up over the player indicating who controls the asset and will link to its home page. With this mechanic, at the program / show level we are now mixing content from multiple producers and creating new value on the fly, not only syndicating programs between floes, but also media between programs. Viewers can not only discover new shows, but also can discover new individual assets in the process.

This creates social discovery of media along social graph lines but in a different way,  because now its more of how the asset is presented and used in the program which creates an evolution of the social discovery technique. So we’ve taken the base case of the floe, with the follow technique, and will evolve it in a “n+1″ manner.

The next phase we will implement is linking in assets via XRDS-s + OAuth from ourside data containers such as flickr, myspace, and facebook. Again, we are taking our previous “n+1″ evolutionary step, and evolving it further as we move towards a WRFS-like data linking mechanic.

We will show a syndication link / “courtesy of” link over those assets providing a direct href back to those sites, providing better quality social media search along social graph lines, and in a visual manner. So now we won’t just be composing data inside floe.tv’s walled garden, but we will be linking in data from all over the web, and also sending pageviews back to those properties as users continue to have a more robust social media discovery experience. In recent years, hotlinking an image or video tended to be viewed as a hostile act, but as time goes on, we feel that driving not only traffic to a site but traffic that is more likely to have a relationship or feel ownership of the media. This will give data providers a much better return on their investment as the viewers will tend to be much more involved with the media they came to view, raising the potential for a more cohesive user experience.

Development Update 7/17/2008

July 17th, 2008

(This is one of the periodic development updates that we will put out over time talking about what we are working on, and what we’d like to see added to the project)

This week saw the completion of many long overdue features. JLewis got multiple openID’s mapping to a single floe.tv identity, so a user can add shards of their identity. We’re not sure how that will work out over time, but its a feature we want to evolve with since we are full on openID-only, attempting to support the “inherently installed” paradigm we’ve talked about before. Josh has also been hard at work on getting the configuration page all web-two-oh-i-fied and preparing the database / application for the myriad of media sharing options we want support.

Joe has been hard at work cleaning up a lot of minor bits, and has worked very hard on getting the comment system up to snuff. Threaded comments can be a performance killer if one isnt careful, so we are taking extra care to see that we “sip” and not “gulp” resources with that particular feature, with things like indexing on the database being critcal here.

I’m (JPatterson) hard at work on the floe.tv playback rendering engine. It’s been a grind to get images into the rendercode, since I wrote the playback stage/engine about 5 months ago …. and then forgot how it works. So I had to relearn my own code, and then make images a first class citizen in the render playback. This got me back up to speed and prepped to add text as an asset layer into the editor and player, which I’m pretty excited about. I feel like text will take the application over the theshold of toy video editor towards micro media production suite. Also, the follow code will allow more ways to “syndicate” a user’s content using their “social graph strands” (here, your content shows up in the floe of someone who follows you) as a weighting mechanism for “information discovery” — in other words, information that may be interesting to your or your friends will show up in your floe. While not a revolutionary feature, I think the follow mechanic is interesting and has a lot of iterations left in it.

XRDS-S and Service Types

May 4th, 2008

As XRDS-S emerges as a standard service and data linking technology, the focus will shift towards “how does everyone synchronize their service types so that we know that flickr has image data and so does myspace?”. However, myspace also has social graph data, as well as blog data. Currently the only clear cut examples on how to use URIs as service types has been done with OAuth and openID. In a group chat discussion on how to have a known list of common service types in the Data Portability Workgroup, Gabe Wachob (Gabe worked on the XRDS-S spec) registered the domain xrdstype.net in order to create a group independent entity to base Service Type uris off of. Hopefully this URI can the basis for a sane discussion on how best to work towards creating a “Rossetta Stone”-like resource. For example, this resource would allow a user agent to know that both flickr.com and myspace.com do in fact have images for user A, and it can get permission to use those images in a third party image application via OAuth+Discovery. As automation and discovery technologies become more prevailent it will be interesting to see the evolution of linked data go from disparate repositories of “potential” to being the fuel of realized useful applications.

Where Do You Think You’re Going?

April 20th, 2008

I really think one of the fun things about the current state of the evolving web “platform” is how its a real life soap opera and you just never know how its going to twist and turn.

Right now, a lot of people are all hacking at said platform and all sorts of interesting and innovative things are happening. And its all good. Really, really, good. I think its interesting to take a look at where this Web Platform has been, what its done recently, and where it might go in terms of linked data and data portability. What about this so called “open social graph“? How does it change things? And isnt it simply a subset of a larger thing, the Giant Global Graph?

Groups like FOAF and XFN have been around for quite a while now, and they have done some really wonderful things in terms of being first movers in the world of linked friends list, etc. They have had some early adoption, but it seems like a lot of people “like” the concept of something like FOAF, yet they don’t know quite what to do with it even if their side expose its data in the FOAF format. RDF is another technology that is very powerful but seems to leave the general hacker at a loss in terms of “what exactly IS relational algebra and what am I going to do with this inferencing stuff?“.

With floe.tv we really want to link people’s data together in such a way that we would make the user experience feel natural for a first time user;

No signup, just accept openID. Discover their friends via FOAF. Use RDF and linked data to discover a user’s data stores so they dont have to re-upload anything.

We really want to like these technologies and employ them, well, everywhere, and be one of the so-called “semantic web applications”. Problem is, we quickly found out that there were some “glue” pieces missing when we tried to connect the dots in terms of making the user experience “turnkey” and seamless.

Around November of 2007, we had been hacking on some ways to link data up between sites beyond the normal “public API / SOAP / json” type of deal, and began to look at what else was going on in the openID world. We sorta wrote up a manifesto (http://cowbell.floe.tv/WRFS_11_20_2007.html) that was just a running thought-line of, well, where we thought linked web data could and would go. We started up with:

We are proposing a stack of abstraction layers that are intended to facilitate the concept of data portability, of open web data. Each layer is an abstraction of functionality based on recurring computer science patterns on how to model a system. In this document we take a look at current practices for data on the web, setup an argument for open web data, look into various scenarios where this model could come to fruition, and then look at practical considerations from a business standpoint as to the economics of open web data.

Since that point, a lot of things have happened. Scoble-gate. Dataportability becoming a media issue. Dataportability trying to establish an identity. Lots and lots of projects taking a hard look on how to make their data interoperable and portable (plone, drupal, DiSo). Lots of groups coming out of the wood works and screaming “we’ve been working on this already, and you should do it OUR way!”.

I think the funny thing about it all is that I think its ok that we have multiple lines of “research”, trying them all, seeing what works, and allowing the most fit propagate to the next generation. Thats how these sort of things fall out over time, and I’d say we’ll discover some pretty interesting things about where our current Web Platform is, and what else might be possible with it. Just because one group has a certain solution they like or have put a lot of work into doesn’t automatically make it the most fit for how the web has evolved.

So that leads me to where I think we are at now, and I think we’re at the end of the desktop era on the cusp of the linked data era. Some call it “The Cloud”, but really, I think The Cloud is really just The Internet itself, with all of these highly decentralized web apps, services, and agents creating one single Internet OS. I think its going to share some very core concepts with a traditional OS, but at the same time, it will be its own animal and have its own stripes. When we took a look at the Internet as a single logical OS, we said “well, then all of the storage is a single disk, right?” — and that was the basic premise of our concept of the WRFS stack, and that was what prompted our involvement in the early version of what became the Data Portability Workgroup.

The Data Portability Workgroup is a topic all its own, really. Some say its got no direction, no purpose, and is simply spinning its wheels. Others trump up its importance in giving a voice to hot topic that will only get hotter as the Web as a Platform evolves. The truth is probably somewhere in between. I’ve discussed a lot in this group, met a lot people, and learned a lot. I guess my biggest hope is that it can become a catalyst for work to emerge even if none of the concepts it promotes ever get widely adopted. And I really think it can do that.

Right now I feel like a mechanism for auto discovery of a user’s data is the biggest technical hurdle for wide spread adoption of linked and portable data. If you cannot find it at runtime, you cannot use it. And asking the user to signup for yet another service and re-enter all of their information yet again is simply, well, not going to scale well. We’re beginning to formulate some ways to do auto discovery, and we’re working with multiple groups on a way to get it done in some standardized way.

That’s where ‘m focusing my energies right now in the open source world, and I’m hoping that between our project, DiSo, Plone, and other entities in the Data Portability Workgroup, that we will find a common synergy in term of sharing and discovering data. If we can link our data together and create a “data-flotilla”, so-to-speak, where the sum of our data is greater than its parts, then I believe we may find some others with the same common interest willing to share their data as well.

I really think these small changes will come from the startups at the tip of the long tail, who have nothing to lose and everything to gain. Which brings me to the title of my first blog post, “Where do you think you’re going?” — and the answer is we think we’re heading towards some rendition of The Web as an OS, as a single FileSystem, as a Cloud, as an open platform, as a relational semantic something or other. I think its going to be a little of all of those things, and floe.tv is our project that we are experimenting with to see what works and what doesn’t. This blog is the sounding board for our adventures with floe.tv, as well as other tech (mis-) adventures.