
Dave Winer: An open Twitter-like ecosystem - aaron-lebo
http://scripting.com/stories/2012/07/25/anOpenTwitterlikeEcosystem.html#theresBeenALotOfDiscussionLatelyAboutWhetherAForpayOrAdsupportedModelWorksBetterWhatsBeenOverlookedIsThatTheresAThirdOptionUseTheWeb
======
michaelpinto
I wish more people would embrace what Dave Winer is saying here and run with
the ball. The current web as we know it has benefited from an open ecosystem:
everything from the servers running Apache to web pages serving up HTML. I see
a real long term danger in closed walled gardens like Facebook and Twitter,
they're just not healthy.

~~~
bntly
But there are celebrities and that hot girl from high-school within that
walled garden.It sucks and i wish the products were better and more open but
the bar for entry is mostly user draw, and T&A is what draws them in..

*edited for spelling >_>

~~~
mvzink
You just made me think of something. The common folk may as well continue
using Twitter, and you're right about the bar to entry. We few, the vanguard
of openness and reliability, can use approaches like Dave Winer's to provide
an open, durable parallel "Twitter-like ecosystem" that integrates with
Twitter—and once Twitter goes away (and Facebook and Google+ and even SMS) we
will integrate with its successor—or hopefully, ideally, help create it's
successor on top of the open web. It could be a durable base for future work,
and a safety net for now.

Also: any time I consider using identi.ca again, it's with this view. Even if
it doesn't gain popularity, I can at least provide my own guarantees that it
will be around (so long as some few others use it) even when Facebook or
Twitter go away.

~~~
davewiner
You got it baby!

That's exactly the idea. It's a bootstrap. You use the systems that are in
place now to boot up the successor.

It's never either/or. You use everything that works, that has people on it
that you need to reach, as long as they welcome you.

This has been the problem with Google-Plus. They don't have an API that lets
you post to it. But Twitter does. To everyone who follows me on Twitter, they
don't have any idea that I'm not _really_ on their network. In every sense
that matters I am.

But when Twitter goes down, I keep posting, and people who are hooked in my
feed still get the new stuff.

~~~
mvzink
Good to know I got the point! :P Can I ask about your thoughts on StatusNet?

------
ammmir
RSS? DNS? camelCased JSON?

I don't know if you're going to entice many developers with that combination.
What we need is a simple protocol (not an API), maybe JSON/MessagePack based
with UDP signaling, that makes it easy to build distributed Twitter-like
services, while also reachable by HTTP. The developer experience needs to be
easy enough so that a distributed "hello world" service can be built in less
than 5 minutes. It needs to come with a cross-platform P2P server component,
and client libraries for a few popular languages. Make the barrier to entry so
low that any dev can do "apt-get install <fancy-distributed-system>" to get
the server/client bits.

The average user doesn't know DNS (username.twitter.com) as well as they do
email addresses (username@twitter.com) and URIs (twitter.com/username). If
this is going to gain adoption, it needs to prioritize UX familiarity over
technical superiority. Everyone has an email address, so use that for
identification, but don't clutter people's inboxes by using them to transport
or store app data.

Make it super easy to federate with existing walled gardens by providing open-
source implementations of server components so Twitter, Facebook, Google, etc.
can get up and running quickly.

~~~
Feoh
This has always been Dave's problem. He's a Big Idea Guy, but his
implementations often end up being somewhat less than fully thought through. I
say this as someone who has been following him for way more years than I like
to think about (I wrote a bunch of Frontier code WAAAY back in the Classic
MacOS days :) As always though, he's thought provoking and gets other people
discussing better ways to do it, which I think he entirely approves of.

------
liotier
Why reinvent the wheel when XEP-0277
(<http://xmpp.org/extensions/xep-0277.html>) and OStatus
([http://ostatus.org/sites/default/files/ostatus-1.0-draft-2-s...](http://ostatus.org/sites/default/files/ostatus-1.0-draft-2-specification.html))
have already accreted quite a bit of thinking about what open microblogging
could be ?

------
Create
<https://identi.ca/doc/source>

~~~
_pferreir_
You read my mind. identi.ca is a really good idea, it's a pity that it hasn't
managed to catch up with Twitter in terms of user base.

~~~
shampoo
..and why is that ? Wouldn't what Dave Winer is speaking of have the same fate
as identi.ca ?

~~~
riffic
in my mind, identi.ca is a red herring. What really matters is the platform,
StatusNet. This is a software package that, kind of like Wordpress, can be
installed on your host allowing you to run your own microblog service.

This package, and the underlying OStatus protocol, is where organizations that
want to retain control over their own reliability and namespace should be
looking.

~~~
shampoo
I agree entirely. But identi.ca is the most popular implementation of
status.net and it hasn't taken off. identi.ca, status.net, etc, need to offer
something else that twitter.com, other then Freedom.

~~~
riffic
I think that's a marketing problem, rather than technical.

~~~
msutherl
It's a product problem, rather than technical.

------
dasht
"3. To identify users -- please use DNS."

Using DNS to identify users is unwise, in my opinion, because it means that
people won't own their own on-line identities -- they'll have to rent them and
for real money, too. And if some users are assigned a sub-domain on a shared
domain, their identity won't be portable.

I think it is worth doing a little extra work to make a user name system that
doesn't have those problems.

~~~
mapgrep
Inventing a new identity system that features 1, portability and 2, end-user
price of $0 is surely possible, but surely more than "a little extra work."

DNS has the virtue of being here now, being tested and refined over multiple
decades, and offering a choice between subdomains for free or portability for
a nominal annual cost. It's not perfect but it's good.

~~~
dasht
To avoid building in a dependency on DNS does not require that the identity
system problem be fully solved, first. It only requires ensuring a good
abstraction barrier before too much code propagates that depends directly on
DNS. For example, perhaps, URIs.

~~~
pyre
Why can't the usernames be like email addresses?

    
    
      send email to username@example.net
        => lookup example.net
        => pull MX record
        => route email to example.com
    

Looks like a SRV record[1] could be used for this.

[1] <http://en.wikipedia.org/wiki/SRV_record>

~~~
dasht
"Why can't the usernames be like email addresses?" [in the sense of querying
DNS to find them].

In this context we're talking about what it takes to avoid relying on DNS
(because DNS is a centralized, highly politicized system). Your solution would
still rely on DNS.

~~~
pyre
A system which relies on DNS, but in which anyone can setup a node seems
better than a system that relies on DNS but only has one centralized node
(Twitter), no?

In a truly decentralized system, you're not going to be able to have readable
unique names without collisions. Why? What happens when the network splits,
then people on either side of the split setup the same username. How do you
rectify this when the network rejoins? How do you know that the network has
split vs. a node going offline (if you wanted to do something like shut down
new usernames until the network was whole again)?

~~~
dasht
"A system which relies on DNS, but in which anyone can setup a node seems
better than a system that relies on DNS but only has one centralized node
(Twitter), no?"

The concern here is that whoever is currently leasing the domain name has
authority over users' identities. A better system would let users own their
identities outright.

"In a truly decentralized system, you're not going to be able to have readable
unique names without collisions. Why? [....]"

This is a well explored topic. A good place to start might be to look up
"Zooko's Triangle" and then go forward from there towards various ways people
have figured out to deal with such problems. (Zooko's wasn't the last word.)

------
chris_mahan
Uh, DNS is too hard for most people. So is maintaining a web server. If you
want any kind of reliability you're going to have to spend 10/year on domain
name, 15/year on good DNS server, and 10/month on web hosting. That's $145/yr.
Users can use twitter and facebook for free.

Besides, the general public can't even use HTML well, so what chance do they
have with xml?

The other compelling thing about twitter is that 140 characters thing. Blogs
enable people to train-of-thought-rant for pages before making their point (if
at all). Tweets, on the other hand, force people to think and condense before
writing. That's an awesome feature for readers. Also, twitter makes it very
easy to follow and unfollow.

~~~
icebraining
I think his suggestions are for the people who are planning on writing a
Twitter-like open service: <https://join.app.net/>

~~~
pwpwp
Except app.net isn't open in any of the ways Winer describes.

~~~
icebraining
App.net isn't open nor closed, because it doesn't exist yet.

------
dasht
"4. A user is a feed. So the name points to a feed."

What if the user wants to have more than one feed? Or wants, sometime down the
road, to have routable resources that are not feeds?

Wouldn't it be better to say that a user name is a user name and that a
default feed name can be automatically built given just the user name?

~~~
mapgrep
This makes the "Twitter-like" system less "Twitter-like". Don't get me wrong,
I see your point, and I can think of a technical solution (point to OPML feed
collections instead of feeds), but the further this gets from the original
popular thing (Twitter) the less support and momentum it's going to have,
imho. On Twitter it's one stream per user, and that keeps things simple. And
simplicity is a huge part of the value add of twitter.

~~~
dasht
I agree that "emulate the user==feed simplicity of twitter" is the best
counter-argument to "make the user name distinct from the feed name for
greater flexibility" position.

But here:

In twitter APIs, can't you get something like, say, a user's avatar image by
keying off the user name?

So, even on twitter, a user name maps to multiple different things -- not just
a single feed.

------
riffic
Over and over I emphasize that Twitter is not a public utility. If you're an
organization that has to get your micromessage out there, you're better off
hosting your own services.

~~~
cube13
I don't get what an "open" twitter system will have over the current one.
Unless I'm missing something, this is just RSS feeds.

~~~
riffic
What goals are you trying to accomplish using the service, be it Twitter.com
or an open alternative?

Are you just trying to post/read feeds as an individual? If that is the case
the open alternative does not provide you a benefit, and you will probably
find it less convenient.

On the other hand, what if you have many users under one org? How about you're
just a member of a division of another org, and they have many division and
subdivisions. And they really want be sure that your message gets out there,
without relying on a third party. The public relies on those messages, for
example a fire department posting about wildfires. Those are the use cases
that will probably see benefits.

~~~
cube13
But in the second case, what's the difference between that and email?

If you have the infrastructure to handle a setup like that, you should already
have an internal email server.

EDIT: After your edit, I think I've found where the disconnect is from my
perspective. The problem with this method is that discovery(arguably the most
important part of what Twitter provides) is still reliant on a third party's
index.

From a user's perspective, Twitter provides 3 key services from one URL:

1\. A unified feed for everyone you follow(This proposal also does this).

2\. An easy way to post/host content(This proposal does not deal with this).

3\. An easy way to discover new people to follow(This proposal also does not
deal with this).

Out of those three, I would argue that the second and third are the most
important. The problem isn't getting the message out to people that are
already subscribed with Twitter, email, or a hosted website. The problem is
discovery, and giving people an easy way to actually find the information that
they're looking for.

The only way to handle discovery on this way is to have some hosted, third
party method of searching through the users to find the ones you want to
follow.

~~~
riffic
The difference is, email isn't (usually) public. A status message is there,
for anyone to see it, like a tweet.

~~~
look_lookatme
If a message is posted in public and no one sees it, does it matter?

People won't be using this new decentralized service. They'll be using
Twitter. I guess you can feed into Twitter, but the last mile is still
Twitter.

------
unimpressive
Hacking together a microblogging system out of RSS and Atom with a little
network glue is fine for a prototype.

But in the long run you won't beat Facebook and Twitter by merely replicating
their functionality.

~~~
davewiner
Beating them is not in the cards.

If you look at tech industry cycles the leaders don't get beat, they run out
of room to grow, or evolve into something less monolithic.

Hegemony is always short lived. Once you get on top of the heap it's usually a
short time before there's a new generation rising up.

~~~
smoyer
You HAVE been reading Orson Scott Card! ;) But you're right and for a very
good reason. The barrier to entry has dropped to the point where a single guy
in NYC (or elsewhere) can challenge the status quo.

------
gbog
This article is a bit confusing, I'm not sure it is stating its view in the
simplest way. Trying to explain that view to someone else I'd do like this:

Twitter, Facebook and the like should be like emails: if you send me an email
from hotmail I can read it on gmail or any other mall client. I should be able
to subscribe to friends, interesting people or other social content provider
and consume this comment from the client of my choice. Something that Google
reader was not very far to provide.

Wrote something about this view sometime ago:
<http://www.douban.com/note/174513094/>

------
maxmzd_
We need to treat our data like we treat our email. Define the common
attributes comprising data within a particular application and define how to
access that data (through an API). Come up with a common vocabulary for all
data (crowd-sourced based on the current stewards of that type of application)
and tie those calls into user identity providers (again, built around the
common attributes of a user identity). Every interaction between apps and
users goes through the user to collect permissions. Permissions are based on
signals gained from all other interactions that have passed through the user
identity provider. Signals like how often you interact with the app or user
requesting the data, which topics you've interacted on previously, etc.. Data
is still stored on separate app providers, but we now have simple access. The
app provider uses the signals to build permissions specific to their
application. Users can transfer their data from one provider to the next
easily since all of the data definitions have been translated (assuming the
apps are similar in nature).

More here: <http://GoPalmetto.com/>

------
maxw3st
Great article. Loaded with links to things I need to learn and many good
points.

------
rwhitman
If someone can put this together in a package that consumers can wrap their
head around, I think the open twitter movement would have a shot.

Probably the best candidates would be all the Twitter client apps that are
getting burned by their API lockdown

------
akkartik
_"If you want to read what someone says on Twitter you have to use Twitter.
Not a big deal it turns out."_

I have to go to all the trouble to maintain my webserver and setup DNS, then
go to twitter to read others? Why is this not a big deal?

------
Raphael
You could support existing RSS readers by putting the entire microblog post in
the title field. And if you're worried about it being truncated, then
duplicate it in the body.

~~~
aaron-lebo
Was confused myself as to why he doesn't do this. He mentions not having
titles being an issue in Google Reader, but the same issue is apparent if you
try to add the rss feed of his linkblog in Firefox; you just get a bunch of
links with no details.

Do RSS titles have character limits?

~~~
smacktoward
No, neither RSS nor Atom specify a maximum number of characters for TITLE
elements. Which isn't to say that particular readers/clients don't truncate
them, of course, just that the specs don't say they should.

~~~
aaron-lebo
Interesting. So does anyone have any suggestions, technical or otherwise,
other than "twitter posts don't have titles" that he does it this way?

------
rocky1138
Here's a link to his linkblog.

<http://static.scripting.com/myReallySimple/linkblog.html>

It's great, except it's completely unusable due to it being a huge download of
a page full of disparate links with no organization other than by date.

The trick is not in writing something like this, it's in making the
information aggregated and easily organized.

------
smallegan
He mentions the lack of a notifications system. Isn't there room in this open
system for a ping type notification service or group of services? The benefit
for such a service to be free would be that they could aggregate the data and
mine it as twitter does. Then clients could fail back to polling should this
service not be available.

~~~
icebraining
pubsubhubbub

A simple, open, server-to-server web-hook-based pubsub (publish/subscribe)
protocol as an extension to Atom and RSS.

Parties (servers) speaking the PubSubHubbub protocol can get near-instant
notifications (via webhook callbacks) when a topic (feed URL) they're
interested in is updated.

The protocol in a nutshell is as follows:

\- An feed URL (a "topic") declares its Hub server(s) in its Atom or RSS XML
file, via <link rel="hub" ...>. The hub(s) can be run by the publisher of the
feed, or can be a community hub that anybody can use. (Atom and RssFeeds are
supported)

\- A subscriber (a server that's interested in a topic), initially fetches the
Atom URL as normal. If the Atom file declares its hubs, the subscriber can
then avoid lame, repeated polling of the URL and can instead register with the
feed's hub(s) and subscribe to updates.

\- The subscriber subscribes to the Topic URL from the Topic URL's declared
Hub(s).

\- When the Publisher next updates the Topic URL, the publisher software pings
the Hub(s) saying that there's an update.

\- The hub efficiently fetches the published feed and multicasts the
new/changed content out to all registered subscribers.

The protocol is decentralized and free. No company is at the center of this
controlling it. Anybody can run a hub, or anybody can ping (publish) or
subscribe using open hubs.

To bootstrap this, we've provided an open source reference implementation of
the hub (the hard part of the protocol) that runs on Google App Engine, and is
open for anybody to use.

<https://code.google.com/p/pubsubhubbub/>

~~~
aaron-lebo
I've run across pubsubhubhub before (geez that's hard to write), and it seems
like a really useful implementation.

What I wasn't sure of is when he mentions polling is that instead of pshh or
would that work with it?

~~~
icebraining
Polling always works, but if the feed and the client are PSHB-enabled, then
they can use it.

------
quadhome
There's more than one person named Alice, and there's more than one person
named Bob.

Like others, I'm allergic to DNS for identity. Yes, the UX is atrocious (see:
OpenID).

But, what about getting away from a global namespace?

Let people refer to their friends however they want! Use marked up links to
reference the underlying feeds.

------
tete
There are also a great number of similar projects.

[https://en.wikipedia.org/wiki/Distributed_social_network#Com...](https://en.wikipedia.org/wiki/Distributed_social_network#Comparison_of_projects)

(Not all, but some of them follow a similar principle)

------
lecha
"6. I think the part that's hard to scale is the notification."

Why not email (SMTP/IMAP)? Deployed, standardized, widely supported.

------
squiggy22
I can't help but think that Google dropped the ball when deciding to be a
closed centralised platform. Being open IS the marketing.

------
codgercoder
let's call it Wintter

------
alpine
It's fairly obvious to me that an open system, that incorporates Twitter-like
functionality as a subset of a greater whole, could take over this space in
less than 12 months, leaving Twitter/Facebook/* as AOL-like also rans. Winer
appears to have functional solutions for many of the parts needed to deploy
this ecosystem. What is missing is a spark of genius to fire people's
imagination, such that they flock to the new tool(s) with an eagerness not
seen since early days of the www when Mosaic _hinted_ at what could be done. I
can't believe that all that is missing is a healthy dose of Mad Men marketing.
Maybe that is the missing ingredient?

~~~
_pius
_It's fairly obvious to me that an open system, that incorporates Twitter-like
functionality as a subset of a greater whole, could take over this space in
less than 12 months, leaving Twitter/Facebook as AOL-like also rans._

Big statement. How do you get critical mass when practically every journalist,
celebrity, and person you went to school with uses Twitter or Facebook and not
your new open system?

While I definitely think an open solution _could_ eventually "take over the
space" and leave Twitter and Facebook as "AOL-like also rans," it's far from
obvious to me how one would do it in a year.

~~~
alpine
It is a big statement, isn't it? I do believe it to be true, however. What I'm
positing is that the technological pieces can all be deployed relatively
easily. What is required is the 'spark of genius' that triggers mass adoption.
The hook into the new system has to be easy; it has to be cool; it has to
smart; it has to be desirable. Possibly even irrational.

