<?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/"
	>

<channel>
	<title>Adam Parrish &#187; twitter</title>
	<atom:link href="http://www.decontextualize.com/tag/twitter/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.decontextualize.com</link>
	<description>decontextualize.com</description>
	<lastBuildDate>Sat, 01 May 2010 18:49:36 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Social network APIs: A revised lexical analysis</title>
		<link>http://www.decontextualize.com/2010/04/social-network-apis-a-revised-lexical-analysis/</link>
		<comments>http://www.decontextualize.com/2010/04/social-network-apis-a-revised-lexical-analysis/#comments</comments>
		<pubDate>Wed, 28 Apr 2010 14:00:55 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[essay]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[graphapi]]></category>
		<category><![CDATA[socialsoftware]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.decontextualize.com/?p=634</guid>
		<description><![CDATA[Last October I undertook a &#8220;lexical analysis&#8221; of the Twitter and Facebook APIs. Twitter came out on top in that analysis. I concluded that Twitter&#8217;s &#8220;simplicity &#8230; has been an important factor in [its] widespread growth among both users and developers&#8221; while Facebook&#8217;s &#8220;baroque and insular&#8221; API makes it impossible for users and developers to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.decontextualize.com/2009/10/social-network-apis-a-lexical-analysis/">Last October I undertook a &#8220;lexical analysis&#8221;</a> of the Twitter and Facebook APIs. Twitter came out on top in that analysis. I concluded that Twitter&#8217;s &#8220;simplicity &#8230; has been an important factor in [its] widespread growth among both users and developers&#8221; while Facebook&#8217;s &#8220;baroque and insular&#8221; API makes it impossible for users and developers to &#8220;keep track of how everything works together.&#8221; Facebook&#8217;s been promising changes for a while, and change has indeed arrived, in the form of the new <a href="http://developers.facebook.com/docs/api">Graph API</a>. So how does the Graph API compare, lexically, to Twitter? Here&#8217;s a revised analysis. (Spoiler: things are looking much better for Facebook.)</p>
<table cellspacing="10">
<tbody>
<tr>
<th><a href="http://wiki.developers.facebook.com/index.php/API">Facebook Graph API</a></th>
<th><a href="http://apiwiki.twitter.com/Twitter-API-Documentation">Twitter</a></th>
</tr>
<tr>
<td valign="top" width="50%"><b>Verbs</b><br />
get<br />
post<br />
delete</p>
<p>      <b>Nouns</b><br />
album<br />
photo<br />
event<br />
group<br />
link<br />
note<br />
page<br />
photo<br />
post<br />
status message<br />
user<br />
video<br />
comment<br />
feed<br />
noreply<br />
maybe<br />
invited<br />
attending<br />
declined<br />
picture<br />
member<br />
home<br />
tag<br />
activities<br />
interests<br />
friends<br />
music<br />
books<br />
movies<br />
television<br />
likes<br />
inbox<br />
outbox<br />
updates<br />
search
</td>
<td valign="top" width="50%"><b>Verbs</b><br />
      get<br />
      show<br />
      update<br />
      destroy<br />
      post<br />
      put<br />
      exists<br />
      verify<br />
      end<br />
      follow<br />
      leave<br />
      report<br />
      request<br />
      authorize<br />
      authenticate</p>
<p>      <b>Nouns</b><br />
      search<br />
      trend<br />
      status<br />
      timeline<br />
      mention<br />
      retweet<br />
      friend<br />
      follower<br />
      direct message<br />
      friendship<br />
      id<br />
      account<br />
      session<br />
      delivery device<br />
      color<br />
      image<br />
      profile<br />
      favorite<br />
      notification<br />
      block<br />
      spam<br />
      search<br />
      token<br />
      test<br />
      place<br />geocode</td>
</tr>
</tbody>
</table>
<p>The tally: the Twitter API holds steady with <b>26</b> nouns and <b>15</b> verbs. The Graph API, meanwhile, has <b>35</b> nouns* and <b>3</b> verbs&#8212;a tremendous improvement on Facebook&#8217;s old (so-called) REST API, which has 43 nouns and 24 verbs. The Twitter API and Facebook&#8217;s REST API average around 1.7 nouns per verb; the Graph API has almost 12 nouns per verb. What&#8217;s especially interesting? The Graph API has managed to sidestep any verbs that aren&#8217;t HTTP methods.</p>
<p>The Graph API is a big deal, and an important step forward for Facebook. Here are a few reason I think that&#8217;s the case.</p>
<p>First of all, the Graph API is dead simple, especially compared to Facebook&#8217;s old REST API. Just as an example: the old API has (by my count) seven nearly synonymous verbs (<code>set</code>, <code>create</code>, <code>add</code>, <code>register</code>, <code>upload</code>, <code>send</code>, <code>publish</code>) that all essentially mean &#8220;add content for a user.&#8221; These verbs aren&#8217;t interchangeable; each works with only a subset of nouns (or even just a single noun). Each verb has idiosyncratic behaviors, arguments and error messages. The Facebook REST API is, in short, a mishmash of conflicting conceptual models. It&#8217;s tough to get a handle on all of it.</p>
<p>Not so with the Graph API. Every resource has exactly the same interface. Once you understand what each noun is, it&#8217;s easy to understand how to manipulate it&#8212;there are only three possible verbs, after all!</p>
<p>The complexity of the REST API necessitated a client library to perform even very simple operations. The Graph API, on the other hand, is so simple, I think that most developers won&#8217;t even use a library at all&#8212;it&#8217;s easier to just hit the URLs directly. Simply put: if you know how to make HTTP requests, you know how to use the Graph API.</p>
<p>That&#8217;s the second thing that makes the Graph API so important&#8212;it&#8217;s the web. The Graph API isn&#8217;t just a bunch of function calls for retrieving information; it&#8217;s a set of URLs to representations of the data itself. The data is all in JSON format, so it&#8217;s easy for browsers to consume it directly. Image URLs return the images themselves, so they can be thrown right into <code>img</code> tags without an intermediary API call. Most importantly, the resources returned from the Graph API are hypermedia: they include URLs to related resources. An example (from the documentation):</p>
<pre class="brush: text">
{
   &quot;name&quot;: &quot;Facebook Developer Garage Austin - SXSW Edition&quot;,
   &quot;metadata&quot;: {
      &quot;connections&quot;: {
         &quot;feed&quot;: &quot;http://graph.facebook.com/331218348435/feed&quot;,
         &quot;picture&quot;: &quot;https://graph.facebook.com/331218348435/picture&quot;,
         &quot;invited&quot;: &quot;https://graph.facebook.com/331218348435/invited&quot;,
         &quot;attending&quot;: &quot;https://graph.facebook.com/331218348435/attending&quot;,
         &quot;maybe&quot;: &quot;https://graph.facebook.com/331218348435/maybe&quot;,
         &quot;noreply&quot;: &quot;https://graph.facebook.com/331218348435/noreply&quot;,
         &quot;declined&quot;: &quot;https://graph.facebook.com/331218348435/declined&quot;
      }
   }
}
</pre>
<p>The URLs are right there in the document, meaning that you don&#8217;t have to know anything else about how the Graph API works in order to get information related to a resource. Pretty slick. It&#8217;s an idea that (I think) every web API should incorporate.</p>
<p>There are, of course, a few factors that mitigate my enthusiasm for the Graph API. First off, it doesn&#8217;t quite model the entirety of Facebook&#8217;s functionality yet&#8212;notably, there aren&#8217;t any resources (so far) representing Facebook applications themselves. There are also privacy concerns that need to be addressed (<a href="http://zestyping.livejournal.com/256801.html">for example, event listings</a>). </p>
<p>Overall, though, the Graph API is beautifully constructed. It&#8217;s just as robust as the Facebook&#8217;s old API, but simpler, more convenient, and easier to integrate. As a developer (and programming instructor), my opinion has always been that Twitter&#8217;s main advantage over Facebook is its developer-friendly API. The Graph API has the potential to erase that advantage.</p>
<p><small>* There are a number of verb-like words and verb participles in the Facebook &#8220;noun&#8221; list. I classify them as such because, to my eye, they&#8217;re clearly presented in the API documentation as things you can act on, rather than actions you can take. For example, <i>attending</i> means &#8220;users who are attending something,&#8221; and acting on that resource allows you to fetch or manipulate that list of users.</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.decontextualize.com/2010/04/social-network-apis-a-revised-lexical-analysis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recent projects</title>
		<link>http://www.decontextualize.com/2009/12/recent-projects/</link>
		<comments>http://www.decontextualize.com/2009/12/recent-projects/#comments</comments>
		<pubDate>Mon, 14 Dec 2009 18:41:07 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[interactivefiction]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.decontextualize.com/?p=398</guid>
		<description><![CDATA[Three recent projects which I have so far neglected to post about:

Rob Dubbin and I entered a game into 2009&#8217;s Interactive Fiction Competition. The game is called Earl Grey (ifdb page), and you can download it here; here&#8217;s a (mostly) positive review from Victor Gijsbers. The game was awarded fifth place in the competition. Rob [...]]]></description>
			<content:encoded><![CDATA[<p>Three recent projects which I have so far neglected to post about:</p>
<ul>
<li>Rob Dubbin and I entered a game into 2009&#8217;s <a href="http://ifcomp.org/">Interactive Fiction Competition</a>. The game is called <i>Earl Grey</i> (<a href="http://ifdb.tads.org/viewgame?id=wznex7prhy59rg">ifdb page</a>), and you can <a href="http://mirror.ifarchive.org/if-archive/games/competition2009/glulx/earlgrey/earlgrey.ulx">download it here</a>; <a href="http://gamingphilosopher.blogspot.com/2009/10/if-competition-earl-grey.html">here&#8217;s a (mostly) positive review from Victor Gijsbers</a>. The game was awarded fifth place in the competition. Rob and I are working on a new version that has a number of fixes and enhancements, so stay tuned.</li>
<li>I have been working at <a href="http://www.socialbomb.com/">Socialbomb</a> as a programmer for some time now. The most recent project of interest that I&#8217;ve worked on over there is called <a href="http://playtagnic.com/">Tagnic</a>, which is a kind of social microsyntax for Twitter.</li>
<li><a href="http://www.warpskip.com/">Warp Skip</a> is a new group blog about video games that I&#8217;m participating in, along with a couple of knuckleheads from the old ZZT days. My first piece over there is <a href="http://www.warpskip.com/post/275349373/brutal-sandwich">this Br&uuml;tal Legend review/essay/extended sandwich metaphor</a>.</li>
</ul>
<p>LATE EDIT: <a href="http://www.andydoro.com/">Andy Doro</a> is exhibiting the <a href="http://www.andydoro.com/nbo/">Networked Byte Organ</a>, which we worked on together, at <a href="http://www.tallerboricua.org/">Taller Boricua</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.decontextualize.com/2009/12/recent-projects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Social network APIs: a lexical analysis</title>
		<link>http://www.decontextualize.com/2009/10/social-network-apis-a-lexical-analysis/</link>
		<comments>http://www.decontextualize.com/2009/10/social-network-apis-a-lexical-analysis/#comments</comments>
		<pubDate>Sat, 31 Oct 2009 16:19:51 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[essay]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.decontextualize.com/2009/10/social-network-apis-a-lexical-analysis/</guid>
		<description><![CDATA[


Facebook
Twitter


Verbs
      get
      set
      ban
      unban
      create
      expire
      promote
      revoke
      run
 [...]]]></description>
			<content:encoded><![CDATA[<table>
<tbody>
<tr>
<th><a href="http://wiki.developers.facebook.com/index.php/API">Facebook</a></th>
<th><a href="http://apiwiki.twitter.com/Twitter-API-Documentation">Twitter</a></th>
</tr>
<tr>
<td valign="top" width="50%"><b>Verbs</b><br />
      get<br />
      set<br />
      ban<br />
      unban<br />
      create<br />
      expire<br />
      promote<br />
      revoke<br />
      run<br />
      add<br />
      remove<br />
      register<br />
      cancel<br />
      edit<br />
      invite<br />
      rsvp<br />
      delete<br />
      refresh<br />
      query<br />
      is/are<br />
      upload<br />
      send<br />
      mark<br />
      publish</p>
<p>      <b>Nouns</b><br />
      allocation<br />
      property<br />
      metric<br />
      restriction<br />
      user<br />
      info<br />
      token<br />
      session<br />
      authorization<br />
      permission<br />
      batch<br />
      comment<br />
      friend<br />
      count<br />
      cookie<br />
      member<br />
      tag<br />
      url<br />
      handle<br />
      group<br />
      translation<br />
      link<br />
      string<br />
      message<br />
      thread<br />
      folder<br />
      note<br />
      notification<br />
      list<br />
      e-mail<br />
      page<br />
      fan<br />
      photo<br />
      album<br />
      profile<br />
      sms<br />
      stream<br />
      option<br />
      like<br />
      filter<br />
      status<br />
      video<br />
      limit</td>
<td valign="top" width="50%"><b>Verbs</b><br />
      get<br />
      show<br />
      update<br />
      destroy<br />
      post<br />
      put<br />
      exists<br />
      verify<br />
      end<br />
      follow<br />
      leave<br />
      report<br />
      request<br />
      authorize<br />
      authenticate</p>
<p>      <b>Nouns</b><br />
      search<br />
      trend<br />
      status<br />
      timeline<br />
      mention<br />
      retweet<br />
      friend<br />
      follower<br />
      direct message<br />
      friendship<br />
      id<br />
      account<br />
      session<br />
      delivery device<br />
      color<br />
      image<br />
      profile<br />
      favorite<br />
      notification<br />
      block<br />
      spam<br />
      search<br />
      token<br />
      test</td>
</tr>
</tbody>
</table>
<p>I made this list by combing through both services&#8217; API documentation and extracting noun-like words and verb-like words from the names of resources or methods. Facebook count: <b>24</b> verbs, <b>43</b> nouns. Twitter count: <b>15</b> verbs, <b>24</b> nouns.</p>
<p>Here&#8217;s what I think these numbers mean.</p>
<p>Facebook manages many different kinds of content, and allows you to perform many different kinds of actions on that content, though the actions that you can perform on one kind of content are inconsistent with the actions you can perform on another. Twitter has fewer types of content, and a more consistent set of HTTP-like actions to perform on that content.</p>
<p>The Facebook API tends toward the baroque and insular, while the Twitter API tries its best to be a part of the web. In general, the Twitter API is much more straightforward.</p>
<p>I think this simplicity&#8212;this paucity of nouns and verbs&#8212;has been an important factor in Twitter&#8217;s widespread growth among both users and developers.</p>
<p>Developers can be confident that&#8212;even if Twitter&#8217;s API changes&#8212;they&#8217;ll still be doing mostly the same actions (getting, posting, updating) on mostly the same things (statuses, friendships, direct messages). Users know exactly how all the moving parts of Twitter work together, and are therefore better able to understand how a given application might augment that.</p>
<p>On Facebook, the opposite is true. User statuses, notifications, event invitations, feed stories, photos&#8212;they all have different interfaces and behave in different ways.  Even long-time developers can&#8217;t keep track of how everything works together.</p>
<p>Interestingly, <a href="http://developers.facebook.com/news.php?blog=1&#038;story=326">Facebook&#8217;s platform roadmap</a> says that one of Facebook&#8217;s goals is to &#8220;focus [...] communication on the stream and Inbox,&#8221; which will make communication on Facebook feel much more like Twitter. I think this is a smart move&#8212;anything that simplifies the user&#8217;s model of how communication on Facebook works is a good idea, both for users and developers.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.decontextualize.com/2009/10/social-network-apis-a-lexical-analysis/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Longest Poem in the World</title>
		<link>http://www.decontextualize.com/2009/08/the-longest-poem-in-the-world/</link>
		<comments>http://www.decontextualize.com/2009/08/the-longest-poem-in-the-world/#comments</comments>
		<pubDate>Thu, 20 Aug 2009 13:47:02 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[poetry]]></category>
		<category><![CDATA[text]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.decontextualize.com/?p=367</guid>
		<description><![CDATA[
The procedure: scrape Twitter&#8217;s public timeline and find rhyming couplets. The effect is striking: even though the juxtaposition of tweets is essentially random, the presence of rhyme gives them a strange cohesion.
The only obvious weirdness comes when the procedure tries to rhyme emoticons, as in the following couplet:
Finished a paper for class and time to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.longestpoemintheworld.com/"><img src="http://static.decontextualize.com/snaps/longestpoem.png" alt="longestpoem" width="400"/></a></p>
<p>The procedure: scrape Twitter&#8217;s public timeline and find rhyming couplets. The effect is striking: even though the juxtaposition of tweets is essentially random, the presence of rhyme gives them a strange cohesion.</p>
<p>The only obvious weirdness comes when the procedure tries to rhyme emoticons, as in the following couplet:</p>
<blockquote><p>Finished a paper for class and time to relax. Yay me!!<br />
Showered and feeling good :) How are y&#8217;all smelling? :b</p></blockquote>
<p>On second thought, I like that: it&#8217;s as though the procedure suggests you read the emoticon aloud in a cutesy way (&#8220;time to relax, yay me! / &#8230; how are y&#8217;all smelling? colon lowercase bee&#8221;).</p>
<p>(<a href="http://www.metafilter.com/84298/twitter-defines-our-world-in-poetry">via</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.decontextualize.com/2009/08/the-longest-poem-in-the-world/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Murmur Study</title>
		<link>http://www.decontextualize.com/2009/08/murmur-study/</link>
		<comments>http://www.decontextualize.com/2009/08/murmur-study/#comments</comments>
		<pubDate>Fri, 14 Aug 2009 01:46:26 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[pcomp]]></category>
		<category><![CDATA[text]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.decontextualize.com/?p=358</guid>
		<description><![CDATA[
Murmur Study from Christopher Baker on Vimeo.
Murmur Study is a physicalized reading of Twitter, created by artists Christopher Baker and Márton András Juhász. (More details and photos.) The process, according to the artist&#8217;s site:
This installation consists of 30 thermal printers that continuously monitor Twitter for new messages containing variations on common emotional utterances. Messages containing [...]]]></description>
			<content:encoded><![CDATA[<p><object width="400" height="225"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=4464887&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=FF7F00&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=4464887&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=FF7F00&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="225"></embed></object>
<p><a href="http://vimeo.com/4464887">Murmur Study</a> from <a href="http://vimeo.com/christopherbaker">Christopher Baker</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p><i>Murmur Study</i> is a physicalized reading of Twitter, created by artists <a href="http://christopherbaker.net/">Christopher Baker</a> and <a href="http://nilseuropa.com/projects.htm">Márton András Juhász</a>. (<a href="http://christopherbaker.net/projects/murmur-study/">More details and photos.</a>) The process, according to the artist&#8217;s site:</p>
<blockquote><p>This installation consists of 30 thermal printers that continuously monitor Twitter for new messages containing variations on common emotional utterances. Messages containing hundreds of variations on words such as argh, meh, grrrr, oooo, ewww, and hmph, are printed as an endless waterfall of text accumulating in tangled piles below.</p></blockquote>
<p>I&#8217;m not quite sure I understand the reason to single out tweets that match those particular text patterns&#8212;how is this format more appropriate for illustrating the mass of &#8220;emotional&#8221; tweets? (as opposed to tweets about kittens, tweet spam, tweets from political figures, tweets about thermal printers, etc.) Stunning in its scale, nevertheless.</p>
<p>See also: <a href="http://www.interactivearchitecture.org/bitfall.html">bitfall</a> and Simanowski&#8217;s keynote from e-poetry 2009 (not linked, because I can&#8217;t find a link).</p>
<p><a href="http://rhizome.org/editorial/2825">(via rhizome.org)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.decontextualize.com/2009/08/murmur-study/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>For rain, in Juneau, tonight</title>
		<link>http://www.decontextualize.com/2009/07/for-rain-in-juneau-tonight/</link>
		<comments>http://www.decontextualize.com/2009/07/for-rain-in-juneau-tonight/#comments</comments>
		<pubDate>Fri, 31 Jul 2009 04:02:04 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[poetry]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.decontextualize.com/?p=331</guid>
		<description><![CDATA[Hulu &#8211; The Tonight Show with Conan O&#8217;Brien: Shatner Reads Palin&#8217;s Tweets.

Here we have an example of politician talk satirically repurposed as poetry. The practice itself is nothing new (see Donald Rumsfeld), but Shatner&#8217;s performance here is a cut above.
These tweets form the text as performed: &#8220;From sealife&#8230;&#8221;, &#8220;Tourists from across&#8230;&#8221;, &#8220;Awesome Alaska night&#8230;&#8221;, &#8220;Left [...]]]></description>
			<content:encoded><![CDATA[<p><a href='http://www.hulu.com/watch/86189/the-tonight-show-with-conan-obrien-shatner-reads-palins-tweets'>Hulu &#8211; The Tonight Show with Conan O&#8217;Brien: Shatner Reads Palin&#8217;s Tweets</a>.</p>
<p><object width="512" height="296"><param name="movie" value="http://www.hulu.com/embed/fyvdQT_8RpuyAVQ3U7ZGdQ"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.hulu.com/embed/fyvdQT_8RpuyAVQ3U7ZGdQ" type="application/x-shockwave-flash" allowFullScreen="true"  width="512" height="296"></embed></object></p>
<p>Here we have an example of politician talk satirically repurposed as poetry. The practice itself is nothing new (see <a href="http://slate.msn.com/id/2081042/">Donald Rumsfeld</a>), but Shatner&#8217;s performance here is a cut above.</p>
<p>These tweets form the text as performed: <a href="http://twitter.com/AKGovSarahPalin/status/2723576998">&#8220;From sealife&#8230;&#8221;</a>, <a href="http://twitter.com/AKGovSarahPalin/status/2723862800">&#8220;Tourists from across&#8230;&#8221;</a>, <a href="http://twitter.com/AKGovSarahPalin/status/2792836050">&#8220;Awesome Alaska night&#8230;&#8221;</a>, <a href="http://twitter.com/AKGovSarahPalin/status/2701708033">&#8220;Left Unalakleet warmth&#8230;&#8221;</a>. It&#8217;s interesting that Conan claims the text to be &#8220;verbatim,&#8221; even though it&#8217;s a collage of many non-contiguous tweets.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.decontextualize.com/2009/07/for-rain-in-juneau-tonight/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>5-in-5 Day 2: twbasic</title>
		<link>http://www.decontextualize.com/2008/07/5-in-5-day-2-twbasic/</link>
		<comments>http://www.decontextualize.com/2008/07/5-in-5-day-2-twbasic/#comments</comments>
		<pubDate>Wed, 30 Jul 2008 04:24:03 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[retro]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.decontextualize.com/?p=35</guid>
		<description><![CDATA[My day 2 project is called twbasic.  It&#8217;s an implementation of classic, line-numbered, home computer-era BASIC that runs on top of Twitter.  You can start using twbasic right now by twittering your program listing to @twbasic.  Here&#8217;s how to get twenty rolls of a six-sided die:
@twbasic 10 for i = 1 to [...]]]></description>
			<content:encoded><![CDATA[<p>My day 2 project is called <i>twbasic</i>.  It&#8217;s an implementation of classic, line-numbered, home computer-era <a href="http://en.wikipedia.org/wiki/BASIC_programming_language">BASIC</a> that runs on top of Twitter.  You can start using twbasic right now by twittering your program listing to @twbasic.  Here&#8217;s how to get twenty rolls of a six-sided die:</p>
<pre>@twbasic 10 for i = 1 to val(ARG$)
@twbasic 20 print rnd(6) + 1
@twbasic 30 next i
@twbasic run 20</pre>
<p><a href='http://5-in-5.com/wp-content/uploads/2008/07/screenshot.png'><img src="http://5-in-5.com/wp-content/uploads/2008/07/screenshot-300x137.png" alt="" width="300" height="137" class="alignnone size-medium wp-image-122" /></a><br />
<br style="clear: both"/></p>
<p>(The above screenshot depicts twbasic providing a listing of the program above, and then the results of running the code.)</p>
<p>A reference for using twbasic can be found after the jump.</p>
<p><span id="more-35"></span><br />
<br/></p>
<h3>Twbasic Language Reference</h3>
<p>Twbasic is built on top of Malcom McLean&#8217;s liberally licensed <a href="http://www.personal.leeds.ac.uk/~bgy1mm/Minibasic/MiniBasicHome.html">MiniBasic</a>.  Twbasic supports all of MiniBasic&#8217;s keywords (see the <a href="http://www.personal.leeds.ac.uk/~bgy1mm/Minibasic/keywords.html">manual</a> for a list and explanations), with the following additions and omissions:</p>
<ul>
<li>The INPUT keyword is unsupported.  (It doesn&#8217;t make sense in the context of twitter, since there is no keyboard to retrieve input from.)
</li>
<li>An additional global variable, ARG$, is available to your program.  This variable contains the whatever string follows the <i>run</i> command (see below).
</li>
<li>Keywords are insensitive to case. (MiniBasic requires keywords in all-caps.  I found that to be annoying for use from mobile phones.)
</li>
</ul>
<p>Twbasic also limits the output of any program to 120 characters (approximately one tweet).  The server is currently set up to automatically kill any twbasic process that runs longer than fifteen seconds (so keep your programs brief).</p>
<h3>Using twbasic</h3>
<p>To use twbasic, simply start tweeting your program listing to twbasic using the reply syntax, like so:</p>
<pre>@twbasic 10 rem my first twbasic program
@twbasic 20 print "hello!"</pre>
<p>To retrieve a listing of your program, send <code>@twbasic list</code>.  Your program will be sent back to you as a reply, one line at a time.  (This might take a while.)</p>
<p>To clear your current program and start from scratch, send <code>@twbasic clear</code>.</p>
<p>You can revise a line in your program by sending another line with the same line number.  For example, if you had originally sent the program above, then sent <code>@twbasic 20 print "goodbye!"</code>, then you&#8217;d receive the following listing from <code>@twbasic list</code>:</p>
<pre>@twbasic 10 rem my first twbasic program
@twbasic 20 print "goodbye!"</pre>
<p>Once you&#8217;re satisfied with your program listing, run your program with the following syntax: <code>@twbasic run</code>.  Any characters following <code>run</code> will be available within the program as the <code>ARG$</code> variable.</p>
<p>After you&#8217;ve run your code, twbasic reply with its output (if any).  If you&#8217;re following @twbasic, the output will show up on your timeline.  If not, you&#8217;ll have to visit <a href="http://twitter.com/twbasic">twitter.com/twbasic</a>.</p>
<p>(Please be patient with twbasic: it&#8217;s only as responsive as its friendly whale master allows it to be.)</p>
<h3>Rationale</h3>
<p>The abbreviated, text-heavy and asynchronous nature of Twitter reminded me of my formative years in front of a TRS-80 Color Computer 2.  I used BASIC then, why not use it now?</p>
<p>While twbasic is mostly just a fun hack, it could potentially form the basis of a mobile, cross-platform programming platform.  Twitter&#8217;s biggest assets are its scriptability (via the excellent API) and its accessibility (if you can text, you can tweet).  So if you&#8217;re on the road somewhere with only your uncle&#8217;s crippled mobile phone, you can still use twbasic to write some trigonometry algorithms.</p>
<p>Let me know if you have any problems (that can&#8217;t be explained away by twitter&#8217;s recent flakiness) or if you come up with any ideas for interesting applications.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.decontextualize.com/2008/07/5-in-5-day-2-twbasic/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
