<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:media="http://search.yahoo.com/mrss/">

<channel>
	<title>Open Parenthesis &#187; microblog</title>
	<atom:link href="http://www.openparenthesis.org/tag/microblog/feed" rel="self" type="application/rss+xml" />
	<link>http://www.openparenthesis.org</link>
	<description>Because these are the early days of a long revolution . . .</description>
	<lastBuildDate>Mon, 30 Jan 2012 16:13:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Cross post Twitter to StatusNet with StatusNet Tools</title>
		<link>http://www.openparenthesis.org/2009/09/27/cross-post-twitter-to-statusnet-with-statusnet-tools</link>
		<comments>http://www.openparenthesis.org/2009/09/27/cross-post-twitter-to-statusnet-with-statusnet-tools#comments</comments>
		<pubDate>Sun, 27 Sep 2009 16:49:23 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Alex King]]></category>
		<category><![CDATA[cross post]]></category>
		<category><![CDATA[Identi.ca]]></category>
		<category><![CDATA[Identica]]></category>
		<category><![CDATA[Laconi.ca]]></category>
		<category><![CDATA[Laconica]]></category>
		<category><![CDATA[microblog]]></category>
		<category><![CDATA[Microblogging]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[status updates]]></category>
		<category><![CDATA[statusnet]]></category>
		<category><![CDATA[Twit.tv]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[twitter tools]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.openparenthesis.org/?p=1560</guid>
		<description><![CDATA[A few weeks back I created a little plugin that works with Alex King&#8216;s Twitter Tools, using an API it provides to also post your notices to a StatusNet instance (Identi.ca, Twit.tv, etc). You can find that plugin here: Twitter Tools StatusNet (and should be able to find it soon on wordpress.org). What I hadn&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>A few weeks back I created a little plugin that works with <a href="http://www.alexking.org/">Alex King</a>&#8216;s <a href="http://wordpress.org/extend/plugins/twitter-tools/">Twitter Tools</a>, using an API it provides to also post your notices to a StatusNet instance (Identi.ca, Twit.tv, etc). </p>
<p>You can find that plugin here: <a href="http://www.openparenthesis.org/code/statusnet">Twitter Tools StatusNet</a> (and should be able to find it soon on wordpress.org). </p>
<p>What I hadn&#8217;t realized at the time was just how Twitter Tools itself worked, and what that meant about the StatusNet plugin. </p>
<p>Twitter Tools follows all of your tweets, not just those which you enter via WordPress or generate as new blog post notifications. What this means is that using Twitter Tools in combination with the StatusNet plugin, everything you post on Twitter gets also posted to the StatusNet instance you&#8217;ve configured. </p>
<p>Everything you post on Twitter, regardless of it&#8217;s source: desktop client, SMS, web client, etc. </p>
<p>This means you&#8217;ve got to be careful. If you use Identi.ca, for example, and have your Identi.ca account configured to cross post to Twitter (which is a popular option) you&#8217;ll create a loop. You post to Identi.ca, which cross posts to Twitter, where Twitter Tools finds it and (with my plugin in place) cross posts to Identi.ca, which cross posts to Twitter, and so on (repeat until someone tells you your account has gone crazy). </p>
<p>So, you&#8217;ve got to decide which service (Twitter or StatusNet) you intend to actually post to, and which you want automatically fed cross posts. </p>
<ul>
<li><strong>Post to Twitter, auto-cross-post to StatusNet. </strong>This is what I&#8217;ve decided to do. I post to twitter, through all the usual methods, and I let Twitter Tools cross post my tweets to Identi.ca. I have different friends/followers on each, and this way the conversation gets shared. </li>
<li><strong>Post to StatusNet, auto-cross-post to Twitter.</strong> This you can do with existing StatusNet instances, and if you do, be sure NOT to install the StatusNet plugin for Twitter Tools. </li>
</ul>
<p>Hope some of you find the option useful. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.openparenthesis.org/2009/09/27/cross-post-twitter-to-statusnet-with-statusnet-tools/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>ReTweeter 0.9.1 Released</title>
		<link>http://www.openparenthesis.org/2009/02/10/retweeter-091-released</link>
		<comments>http://www.openparenthesis.org/2009/02/10/retweeter-091-released#comments</comments>
		<pubDate>Tue, 10 Feb 2009 16:22:48 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[client]]></category>
		<category><![CDATA[Group]]></category>
		<category><![CDATA[microblog]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[ReTweet]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://www.openparenthesis.org/?p=1062</guid>
		<description><![CDATA[Photo by Andrea Mercado Thanks to Karen Huffman (@slakm) who raised some issues she was having with an installation of ReTweeter, I&#8217;ve tracked down the bug and uploaded and released 0.9.1. Turns out that in late December of 2008, the Twitter API servers started sending a 417 Status Code response to many clients, including ReTweeter. [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_1063" class="wp-caption alignright" style="width: 275px"><a href="http://www.flickr.com/photos/prettydaisies/476136116/"><img src="http://www.openparenthesis.org/wp-content/uploads/2009/02/tweet.jpg" alt="Photo by Andrea Mercado" title="tweet" width="240" height="180" class="size-full wp-image-1063" /></a><p class="wp-caption-text">Photo by Andrea Mercado</p></div>
<p>Thanks to <a href="http://www.linkedin.com/in/khuffman">Karen Huffman</a> (<a href="http://twitter.com/slakm">@slakm</a>) who raised some issues she was having with an installation of <a href="/code/twitter-api">ReTweeter</a>, I&#8217;ve tracked down the bug and uploaded and released 0.9.1. </p>
<p>Turns out that in late December of 2008, the Twitter API servers started sending a 417 Status Code response to many clients, including ReTweeter. (See Alex Payne&#8217;s <a href="http://groups.google.com/group/twitter-api-announce/browse_thread/thread/7be3b64970874fdd">announcement</a> on the Twitter API Google Group and <a href="http://groups.google.com/group/twitter-development-talk/msg/e94b88b5d8dc87ce">this message from Tom Morris</a> which identified the necessary fix for CURL based clients). </p>
<p>In addition to squashing that bug, this update also better handles error responses from the Twitter API in general, which is to say it actually identifies to the user what status code was returned to enable better troubleshooting. </p>
<p>Remember to copy your settings from your old version before overwriting with the new. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.openparenthesis.org/2009/02/10/retweeter-091-released/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<enclosure url="http://www.openparenthesis.org/wp-content/uploads/2009/02/tweet.jpg" length="19574" type="image/jpeg" /><media:content url="http://www.openparenthesis.org/wp-content/uploads/2009/02/tweet.jpg" width="240" height="180" medium="image" type="image/jpeg" />	</item>
		<item>
		<title>Identi.ca Tools</title>
		<link>http://www.openparenthesis.org/2009/01/25/identica-tools</link>
		<comments>http://www.openparenthesis.org/2009/01/25/identica-tools#comments</comments>
		<pubDate>Sun, 25 Jan 2009 19:01:14 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Alex King]]></category>
		<category><![CDATA[Evan Prodromou]]></category>
		<category><![CDATA[Free Software]]></category>
		<category><![CDATA[Identica]]></category>
		<category><![CDATA[Laconica]]></category>
		<category><![CDATA[microblog]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.openparenthesis.org/?p=963</guid>
		<description><![CDATA[Alex King&#8216;s Twitter Tools is a great little WordPress plugin for integrating your Twitter presence with your blog. It can show your latest tweets in a sidebar widget, create a &#8220;digest&#8221; post daily / weekly with a list of your tweets, and announce your blog posts to your twitter account. In this post I&#8217;ll show [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://twitter.com/"><img src="http://www.openparenthesis.org/wp-content/uploads/2009/01/twitter_logo_s.png" alt="twitter_logo_s" title="twitter_logo_s" width="175" height="41" class="alignleft size-full wp-image-967" border="0" /></a>  </p>
<p><a href="http://alexking.org/projects/wordpress">Alex King</a>&#8216;s <a href="http://wordpress.org/extend/plugins/twitter-tools/">Twitter Tools</a> is a great little WordPress plugin for integrating your Twitter presence with your blog. It can show your latest tweets in a sidebar widget, create a &#8220;digest&#8221; post daily / weekly with a list of your tweets, and announce your blog posts to your twitter account. </p>
<p><a href="http://identi.ca/"><img src="http://www.openparenthesis.org/wp-content/uploads/2009/01/logo.png" alt="identi.ca" title="identi.ca" width="132" height="100" class="alignright size-full wp-image-968" border="0" /></a></p>
<p>In this post I&#8217;ll show you what changes are necessary to make it work with <a href="http://identi.ca/">identi.ca</a> instead of Twitter. </p>
<p>Why would you want to do that?</p>
<p>Identi.ca is often described as &#8220;an open source twitter&#8221; which it is, but it&#8217;s also the first instance of the <a href="http://openmicroblogging.org/">Open Microblogging</a> standard, which I believe will become increasingly important. Where Twitter users all share the same service, and are entirely dependent on Twitter for their ability to reach other, Identi.ca enables subscriptions across services, removing the need for a single point of failure. </p>
<div id="attachment_970" class="wp-caption aligncenter" style="width: 275px"><a href="http://www.flickr.com/photos/jrees/3040621103/"><img src="http://www.openparenthesis.org/wp-content/uploads/2009/01/twitter_fail.jpg" alt="Twitter Fail Whale, screenshot by John Rees" title="twitter_fail" width="240" height="168" class="size-full wp-image-970" /></a><p class="wp-caption-text">Twitter Fail Whale, screenshot by John Rees</p></div>
<p>In other words, Twitter is a bit like the early days of email, when Compuserve users couldn&#8217;t email AOL users, and neither set of users could email the Internet. (I quality that with &#8220;a bit&#8221; since the Twitter API certainly makes possible clients which can do more than just post to Twitter). Identi.ca (or <a href="http://laconi.ca/trac/">laconi.ca</a>, as the software project behind identi.ca is called) is more like modern, decentralized, global-address-space email. </p>
<p>When identi.ca first launched, many folks were left stuck between the two alternatives: use identi.ca, which was more open and federated, or stay on Twitter, where a strong, rapidly developing community already existed (and, frankly, where many of the folks you were already talking to and listening to were unlikely to be persuaded to move <em>en masse</em>). </p>
<p><div id="attachment_971" class="wp-caption aligncenter" style="width: 275px"><a href="http://www.flickr.com/photos/zcopley/2852739134/"><img src="http://www.openparenthesis.org/wp-content/uploads/2009/01/evan.jpg" alt="Evan Prodromou of Laconi.ca (photo by Zach Copley)" title="evan" width="240" height="180" class="size-full wp-image-971" /></a><p class="wp-caption-text">Evan Prodromou of Laconi.ca (photo by Zach Copley)</p></div><br />
Now, however, identi.ca can be set to automatically cross-post to Twitter. Still doesn&#8217;t remove the need to &#8220;watch&#8221; two streams, but at least you only need to post one place. (Services like ping.fm are often used in this way as well, to move posts between Twitter, identi.ca, Jaiku, etc). </p>
<p>This ability means that for me, a version of Twitter Tools which would post to identi.ca (and let identi.ca cross-post to Twitter) was preferrable. Luckily, identi.ca has also implemented <a href="http://laconi.ca/trac/wiki/TwitterCompatibleAPI">an API</a> which responds to the same commands in the same way as the Twitter API. </p>
<p>This means that the changes needed are very simple. </p>
<p>In version 1.5.1a of Twitter Tools, lines 67-72 define the API endpoints to be used:</p>
<blockquote><p><code><br />
define('AKTT_API_POST_STATUS', 'http://twitter.com/statuses/update.json');<br />
define('AKTT_API_USER_TIMELINE', 'http://twitter.com/statuses/user_timeline.json');<br />
define('AKTT_API_STATUS_SHOW', 'http://twitter.com/statuses/show/###ID###.json');<br />
define('AKTT_PROFILE_URL', 'http://twitter.com/###USERNAME###');<br />
define('AKTT_STATUS_URL', 'http://twitter.com/###USERNAME###/statuses/###STATUS###');<br />
define('AKTT_HASHTAG_URL', 'http://search.twitter.com/search?q=###HASHTAG###');<br />
</code></p></blockquote>
<p>The key is to change these to map to the corresponding identi.ca API endpoints:</p>
<blockquote><p><code><br />
define('AKTT_API_POST_STATUS', 'http://identi.ca/api/statuses/update.json');<br />
define('AKTT_API_USER_TIMELINE', 'http://identi.ca/api/statuses/user_timeline.json');<br />
define('AKTT_API_STATUS_SHOW', 'http://identi.ca/api/statuses/show/###ID###.json');<br />
define('AKTT_PROFILE_URL', 'http://identi.ca/###USERNAME###');<br />
define('AKTT_STATUS_URL', 'http://identi.ca/notice/###STATUS###');<br />
define('AKTT_HASHTAG_URL', 'http://identi.ca/###HASHTAG###');<br />
</code></p></blockquote>
<p>For the most part, this just means replacing &#8216;twitter.com&#8217; with &#8216;identi.ca/api&#8217; except that the individual post urls and hashtag url have to be handled differently. </p>
<p>If you&#8217;re planning to use the sidebar widget, which includes a link to hashtags when you use them in a notice. , you&#8217;ll also need to find this line:</p>
<blockquote><p><code>	$hashtag = urlencode('#' . $hashtag);</code></p></blockquote>
<p>And change it to:</p>
<blockquote><p><code>	$hashtag = urlencode($hashtag);</code></p></blockquote>
<p>Finally, I also chose to update the &#8220;give credit&#8221; line, which occurs in two places in the code (not to remove credit for Twitter Tools but to point out the changes):</p>
<p>First, at roughly line 403 (this one is used in the blog post digest of tweets):</p>
<blockquote><p><code>$content .= '&lt;p class="aktt_credit"&gt;Powered by &lt;a href="http://alexking.org/projects/wordpress"&gt;Twitter Tools&lt;/a&gt;.&lt;/p&gt;';</code></p></blockquote>
<p>I changed that to:</p>
<blockquote><p><code>$content .= '&lt;p class="aktt_credit"&gt;Powered by &lt;a href="http://www.openparenthesis.org/2009/01/25/identica-tools"&gt;Identi.ca Tools&lt;/a&gt;, a modified version of &lt;a href="http://alexking.org/projects/wordpress"&gt;Twitter Tools&lt;/a&gt;.&lt;/p&gt;';</code></p></blockquote>
<p>And again later at line 768 (this is the one used in the sidebar widget):</p>
<blockquote><p><code>$output .= '&lt;p class="aktt_credit"&gt;Powered by &lt;a href="http://alexking.org/projects/wordpress"&gt;Twitter Tools&lt;/a&gt;.&lt;/p&gt;';</code></p></blockquote>
<p>Which I changed to:</p>
<blockquote><p><code>$output .= '&lt;p class="aktt_credit"&gt;Powered by &lt;a href="http://www.openparenthesis.org/2009/01/25/identica-tools"&gt;Identi.ca Tools&lt;/a&gt;, a modified version of &lt;a href="http://alexking.org/projects/wordpress"&gt;Twitter Tools&lt;/a&gt;.&lt;/p&gt;';</code></p></blockquote>
<p>This same approach could also be leveraged for other laconi.ca based sites with little effort. </p>
<p>Remember that these changes will get overwritten if you upgrade to newer versions of the Twitter Tools plugin. </p>
<p>(Here&#8217;s <a href="http://www.openparenthesis.org/wp-content/uploads/2009/01/twitter-tools.txt">my modified copy of twitter-tools.php</a> &#8211; just change the extension back to .php)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.openparenthesis.org/2009/01/25/identica-tools/feed</wfw:commentRss>
		<slash:comments>12</slash:comments>
	<enclosure url="http://www.openparenthesis.org/wp-content/uploads/2009/01/twitter_logo_s.png" length="5530" type="image/png" /><media:content url="http://www.openparenthesis.org/wp-content/uploads/2009/01/twitter_logo_s.png" width="175" height="41" medium="image" type="image/png" />	</item>
		<item>
		<title>Ownership and the Importance of Open</title>
		<link>http://www.openparenthesis.org/2008/10/28/ownership-and-the-importance-of-open</link>
		<comments>http://www.openparenthesis.org/2008/10/28/ownership-and-the-importance-of-open#comments</comments>
		<pubDate>Tue, 28 Oct 2008 15:18:29 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[Doc Searls]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[microblog]]></category>
		<category><![CDATA[open]]></category>
		<category><![CDATA[Paul Boutin]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.openparenthesis.org/?p=762</guid>
		<description><![CDATA[So this weekend I was writing some blog posts, listening to new tunes, and in between catching up on my reading of the print magazines that tend to pile up on the corner of my desk. One of those print mags happened to be the November issue of Wired, including Paul Boutin&#8217;s piece on how [...]]]></description>
			<content:encoded><![CDATA[<p>So this weekend I was writing some blog posts, listening to new tunes, and in between catching up on my reading of the print magazines that tend to pile up on the corner of my desk. One of those print mags happened to be the November issue of Wired, including <a href="http://www.wired.com/entertainment/theweb/magazine/16-11/st_essay">Paul Boutin&#8217;s piece on how blogging is passÃ©</a>. </p>
<p>As I <a href="http://twitter.com/jeckman/status/976506063">tweeted at the time</a>, the timing could not have been worse, as I was already feeling bad about not having been as productive a blogger as I&#8217;d like to be over the last month or two (I&#8217;ll spare you the obligatory &#8220;blogging is important to me but I&#8217;ve been really busy and I feel bad about it and I promise to be better&#8221; post), so hearing that blogging was at best futile (since spammers and professional authors have taken over the blogosphere) or, worse, was a marker of just how &#8220;out of it&#8221; I am. </p>
<p>Boutin writes:</p>
<blockquote><p>The blogosphere, once a freshwater oasis of folksy self-expression and clever thought, has been flooded by a tsunami of paid bilge. Cut-rate journalists and underground marketing campaigns now drown out the authentic voices of amateur wordsmiths. It&#8217;s almost impossible to get noticed, except by hecklers. And why bother? The time it takes to craft sharp, witty blog prose is better spent expressing yourself on Flickr, Facebook, or Twitter.</p></blockquote>
<p>Or, in his later psuedo twitter speak:</p>
<blockquote><p>@WiredReader: Kill yr blog. 2004 over. Google won&#8217;t find you. Too much cruft from HuffPo, NYT. Commenters are tards. C u on Facebook?</p></blockquote>
<p>So I was overjoyed this morning to find <a href="http://www.linuxjournal.com/content/blogging-freedom">Doc Searls coming to the defense of blogging</a>, and not just to refute the argument that it is out of fashion but more importantly to reassert its centrality. </p>
<p>Doc&#8217;s argument has three key bits, all of which resonated with me, the last most of all: </p>
<p>First, Doc points out that the goal should not be to simply chase the latest buzz &#8211; the goal for most authentic bloggers is not just to turn up high in search results, but to say something meaningful. Doc writes: </p>
<blockquote><p>First, why give a damn about buzz? Here are the main things it&#8217;s good for: 1) popularity, by itself; 2) driving eyeballs past advertising. Nothing wrong with either, as long as substance is involved. Even if all you want is ad bux, it helps to remember that there isn&#8217;t a 1:1 ratio between traffic and click-throughs. Quality still matters, and buzz isn&#8217;t its only driver.</p></blockquote>
<p>Second, Doc points out that blogging provides a mechanism that is not equaled by twitter (or other microblog applications), Flickr, YouTube, or Facebook. All are wonderful services and well used by most bloggers, including Doc (and me):</p>
<blockquote><p>
As personal journals on the Web go, blogs have no substitute. Twitter is fine for 140-character micro-postings, and for the ecosystem surrounding it. But micro-posts are not journals. Flickr is great for posting, tagging, organizing and annotating photographs, and for allied services such as creating groups and the rest of it, but it ain&#8217;t blogging. Facebook has some blogging features, but at the cost of forcing the blogger to operate in a vast hive of non-journalistic activity â€” and flat-out noise.</p></blockquote>
<p>Third, and most importantly, the blogosphere is a fundamentally open ecosystem, whereas many of the cloud based services are less so. While Flickr and Twitter are reasonably friendly to openness, and allow you to expose content via various APIs, blogs are at their heart about sharing discussion openly:</p>
<blockquote><p>To the credit of Flickr and Twitter, they are mostly friendly to the open Web, and not roach motels tricked out as friendly walled gardens. No &#8216;fence, but that&#8217;s what Facebook looks like to me. (Argue that if you like, but you still have to admit that it&#8217;s a private space rather than a public one.)</p>
<p>Meanwhile, blogging is free-as-in-freedom at its core. It&#8217;s something you do as an independent human being.</p>
<p>Although most blogs run on hosted services, those blogs are still ours. Do it right, and the constraints are minimal. http://doc.searls.com is a WordPress blog on a Harvard server, but if I want to move it elsewhere, I can do that. I have data portability, and service substitutability.</p>
<p>Freedom matters. Independence matters. Not being utterly dependent on any single service provider not only matters, but is an essential virtue too rarely visited and too lightly respected. What Richard Stallman said about clouds (that they&#8217;re &#8220;a marketing hype campaign&#8221; and &#8220;You&#8217;re putty in the hands of whoever developed that software&#8221;) has more than the ring of truth to it. His is a warning as righteous as those made by responsible forecasters of the financial meltdown.</p>
<p>Blogging at its best is free speech working in open spaces. That virtue persists, no matter how many slums get built in blogging&#8217;s hosted services, and no matter how passÃ© it seems at the moment.</p></blockquote>
<p>Can I get an amen!? Data portability and service substitutability &#8211; that&#8217;s the core of what made the web and it will continue to be. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.openparenthesis.org/2008/10/28/ownership-and-the-importance-of-open/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

