<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Random Hacks: Wave Hackathon</title>
    <link>http://www.randomhacks.net/articles/2009/11/21/wave-hackathon</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>Technology and Other Fun Stuff</description>
    <item>
      <title>Wave Hackathon</title>
      <description>&lt;p&gt;I&amp;#8217;m currently attending the Wave hackathon at the &lt;a href="http://massgtug.gtugs.org/"&gt;Massachusetts GTUG&lt;/a&gt;. Here&amp;#8217;s some code from a &lt;a href="http://www.waveprotocol.org/"&gt;protocol-level&lt;/a&gt; Wave agent that I just demoed:&lt;/p&gt;

&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_ruby "&gt;&lt;span class="comment"&gt;# Capitalize random words.&lt;/span&gt;
&lt;span class="ident"&gt;replace&lt;/span&gt; &lt;span class="punct"&gt;/\&lt;/span&gt;&lt;span class="ident"&gt;b&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="ident"&gt;random&lt;/span&gt;&lt;span class="punct"&gt;|&lt;/span&gt;&lt;span class="ident"&gt;words&lt;/span&gt;&lt;span class="punct"&gt;)\&lt;/span&gt;&lt;span class="ident"&gt;b&lt;/span&gt;&lt;span class="punct"&gt;/&lt;/span&gt;&lt;span class="ident"&gt;i&lt;/span&gt; &lt;span class="keyword"&gt;do&lt;/span&gt; &lt;span class="punct"&gt;|&lt;/span&gt;&lt;span class="ident"&gt;word&lt;/span&gt;&lt;span class="punct"&gt;|&lt;/span&gt;
  &lt;span class="ident"&gt;word&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;upcase&lt;/span&gt;
&lt;span class="keyword"&gt;end&lt;/span&gt;

&lt;span class="comment"&gt;# Shorten URLs.&lt;/span&gt;
&lt;span class="ident"&gt;replace&lt;/span&gt; &lt;span class="punct"&gt;/\&lt;/span&gt;&lt;span class="ident"&gt;bhttp&lt;/span&gt;&lt;span class="punct"&gt;:\/&lt;/span&gt;&lt;span class="regex"&gt;&lt;span class="escape"&gt;\/&lt;/span&gt;([^ ]+)&lt;/span&gt;&lt;span class="punct"&gt;/&lt;/span&gt;  &lt;span class="keyword"&gt;do&lt;/span&gt; &lt;span class="punct"&gt;|&lt;/span&gt;&lt;span class="ident"&gt;url&lt;/span&gt;&lt;span class="punct"&gt;|&lt;/span&gt; 
  &lt;span class="global"&gt;$bitly&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;shorten&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="ident"&gt;url&lt;/span&gt;&lt;span class="punct"&gt;).&lt;/span&gt;&lt;span class="ident"&gt;short_url&lt;/span&gt;
&lt;span class="keyword"&gt;end&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;In keeping with the traditions of hackathons, this agent is horribly fragile. It only works with FedOne&amp;#8217;s console-based wave client, and it doesn&amp;#8217;t handle annotations correctly.&lt;/p&gt;

&lt;p&gt;Some earlier—and more robust—wave-related projects:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://wave-samples-gallery.appspot.com/about_app?app_id=66001"&gt;Pick Several&lt;/a&gt;: A gadget which implements approval voting. Written using GWT. Includes a reusable library for writing GWT-based wave gadgets.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://wave-samples-gallery.appspot.com/about_app?app_id=27027"&gt;BugLinky&lt;/a&gt;: A robot which links bug numbers to a bug tracker. Includes a reusable library for simple pattern-matching, text replacement and annotation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Many thanks to GTUG and to Google for organizing this hackathon!&lt;/p&gt;</description>
      <pubDate>Sat, 21 Nov 2009 23:35:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:2137e369-c5d9-4702-ad99-886595df73e2</guid>
      <author>Eric Kidd</author>
      <link>http://www.randomhacks.net/articles/2009/11/21/wave-hackathon</link>
      <category>Wave</category>
      <category>Ruby</category>
      <trackback:ping>http://www.randomhacks.net/articles/trackback/734</trackback:ping>
    </item>
  </channel>
</rss>
