Go, Do, Be.

Categories

03/29/2009  — 

Twitter-Based Blog Syndication Flowchart

Following on the microsyndication theme I mentioned earlier, I decided to map out the events that take place when I put a new post onto this blog.

Here are the basics:

  1. I publish an article on greacen.com. The article appears on the site as well as a (private) url of an RSS feed which...
  2. is polled regularly by feedburner.com which republishes the feed and gives me some basic analytics for how the feed is used and...
  3. is polled by twitterfeed.com. It reads the feed and gets twitter-friendly shorturls for each feed item and updates...
  4. twitter.com with each new article which...
  5. updates my status on facebook.com.

The nice part about this setup is that it's all automatic: the only action I take is posting my idea onto my site. The feeds take it the rest of the way.

Analytics are pretty crude at this point. Any clicks on the feedburner-based feed should offer some basic analytics. If I really wanted details, I think I'd need to generate a separate feed for each microsyndication destination if I wanted to measure twitter clickthroughs vs. facebook clickthroughs (though google analytics should offer a hint about the source of clicks to greacen.com)

Here's the Graphviz drawing of the flow I described above. digraph BlogPost {
size="5,6";
ratio = fill;
node [style="rounded,filled,bold" shape="box" fillcolor="skyblue"];

/* Set up specific shapes */
"RSS Aggregators" [style="rounded" shape="box3d"];
"URL Shortener" [style="" shape="invisible" label="URL Shortener"];
"Analytics" [style="" shape="invisible"];
"greacen.com" [label="greacen.com\nPublish\nblog\narticle"];
"feedburner.com" [label="feedburner.com\nAnalytics\nand\nscaling"];

/* Box in those 3rd party things */
subgraph cluster_c1 {"Analytics"; "URL Shortener";
label="Other Parties"; style= "dashed";}

/* Show and label relationships */
"greacen.com" -> "feedburner.com" [label="GET RSS" dir="back"];
"feedburner.com" -> "twitterfeed.com" [label="GET RSS" dir="back"];
"feedburner.com" -> "Analytics" [];
"twitterfeed.com" -> "URL Shortener" [label="GET URL" ];
"URL Shortener" -> "twitterfeed.com" [];
"twitterfeed.com" -> "twitter.com" [label="POST\ntwitter\napi"];
"twitter.com" -> "facebook.com" [label="facebook/twitter\nbridge"];
"feedburner.com" -> "RSS Aggregators" [label="rss feed" color="darkorange"] ;
"twitter.com" -> "RSS Aggregators" [label="rss feed" color="darkorange"] ;
"facebook.com" -> "RSS Aggregators" [label="rss feed" color="darkorange"] ;
}

Here's what those instructions become with a click:

publishing flow

This is different from my surf report post. The surf report is the content, whereas with a blog post, my site holds the real content. The RSS feeds publish a pointer to the original content.

Make sense?

03/26/2009  — 

Twitter-Based Surf Report Flowchart

I've been mucking around with Twitter and Facebook lately. There are a few folks who have been using these services to post info about how the surf is. I don't live close to the beach (yet), so I like to see what's happening before I jump into the car and make the trip.

I sent a message from my phone this morning. Even though the surf was lame. The message was published all over the place (microsyndication). Here's how it worked:

  1. I emailed a photo to twitpic.com which...
  2. updates my status on Twitter which...
  3. the @StokeReport user follows. If my tweet contains "SMLM", stokereport will publish my tweet on stokereport.com (and even pull the image off twitpic it seems, nice!).
  4. also, http://greacen.com has that little widgety thing over there on the left. Your browser will pull the image from twitpic and put it onto this page.
  5. also, Twitter will pass my status update on to Facebook.com

Guess what? Most of these nodes along the way have their own RSS feeds for others (services or people) to slurp & read.

Thinking about this plinko-esque publishing flow is a little dizzying. I've been working on web site flows for a few weeks now. It's often helpful to map out a flow to see what's really going on. Graphviz is an open source tool for producing network diagrams and flow charts that I've been using for mapping high-level flows. Here's what a map looks like for the publishing flow I described earlier:

digraph TwitterSurf {
size="6,6";
ratio = fill;
node [style="rounded,filled,bold" shape="box" fillcolor="skyblue"];

/* Set up specific shapes */
Phone [style="rounded,filled" shape="oval" fillcolor="grey"];
"RSS Aggregators" [style="rounded" shape="box3d"];

/* relationships */
Phone -> "twitpic.com" [label="Email with attachment"];
"twitpic.com" -> "twitter.com" [label="twitter api"];
"twitter.com" -> "facebook.com" [label="facebook/twitter bridge"];
"twitter.com" -> "stokereport.com" [label="if post contains 'SMLM'" style="dotted"] ;
"twitpic.com" -> "greacen.com" [label="widget/embed" color="red"] ;
"twitter.com" -> "RSS Aggregators" [label="rss feed" color="darkorange"] ;
"facebook.com" -> "RSS Aggregators" [label="rss feed" color="darkorange"] ;
"stokereport.com" -> "RSS Aggregators" [label="rss feed" color="darkorange"] ;
}

If you ignore the []s, it looks like a terse version of our list up above. Here's the flowchart those instructions produce:

Surf Report Publishing Flow

Kinda neat, huh? I find the way this goes from text to sitemap really intriguing. This -> that; that -> next; other -> next; makes sense to me. Graphviz does a great job of putting this all together in an easy-to-digest graphic.

There are a few rails front ends to graphviz (demo) that might make a web tool for this possible. I could see this becoming a handy planning tool for our organization.

Questions:

  • Anyone ever use a tool like this for making sitemaps or high-level flows? What tools work well for modeling these interactions?
  • What other publishing tools are you using to propel your tweets? (where's my linkedin hook?)
  • Has anyone run into ownership issues with this plink-esque publishing?
  • Does this have a name? Let's call it microsyndication.
  • What's the best way to get metrics for this kind of publishing? Is there a way to measure in this distributed/microsyndicated system? How many people read my surf report?

Thanks for reading.