<?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>The Shiny Wave &#187; API</title>
	<atom:link href="http://www.theshinywave.com/tag/api/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.theshinywave.com</link>
	<description>discussing all things (Google) Wave</description>
	<lastBuildDate>Sun, 27 Mar 2011 15:37:23 +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>Google Campfire One: Google Apps Marketplace</title>
		<link>http://www.theshinywave.com/developer/google-campfire-one-google-apps-marketplace/</link>
		<comments>http://www.theshinywave.com/developer/google-campfire-one-google-apps-marketplace/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 12:08:55 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Developer]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[Gadgets]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[google apps]]></category>
		<category><![CDATA[Google Apps Marketplace]]></category>
		<category><![CDATA[Google Campfire One]]></category>
		<category><![CDATA[google docs]]></category>
		<category><![CDATA[Google I/O 10]]></category>
		<category><![CDATA[google wave]]></category>
		<category><![CDATA[Google Wave Blog]]></category>
		<category><![CDATA[google wave blogger]]></category>
		<category><![CDATA[google wave gadgets]]></category>
		<category><![CDATA[GWT]]></category>

		<guid isPermaLink="false">http://www.theshinywave.com/?p=1000</guid>
		<description><![CDATA[Google&#8217;s Campfire One is a series of sessions where they invite certain developers to their campus to talk about their ideas and news surrounding their developments. Last night they announced the Google Apps Marketplace. Which they describe as: The Google Apps Marketplace makes it easy for more than 2 million Google Apps customers to discover, [...]


No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<!--Amazon_CLS_IM_START--><p><a class="post_image_link" href="http://www.theshinywave.com/developer/google-campfire-one-google-apps-marketplace/" title="Permanent link to Google Campfire One: Google Apps Marketplace"><img class="post_image aligncenter" src="http://www.theshinywave.com/wp-content/gallery/post-images/img_1012-google-apps-1.jpg" width="620" height="350" alt="Post image for Google Campfire One: Google Apps Marketplace" /></a>
</p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><span class="drop_cap">G</span><a href="http://code.google.com/campfire/" target="_blank">oogle&#8217;s Campfire One</a> is a series of sessions where they invite certain developers to their campus to talk about their ideas and news surrounding their developments. Last night they announced the <a href="http://code.google.com/googleapps/marketplace/" target="_blank">Google Apps Marketplace</a>. Which they describe as:</p>
<blockquote><p>The <a href="http://code.google.com/googleapps/marketplace/" target="_blank">Google Apps Marketplace</a> makes it easy for more than 2 million Google Apps customers to discover, purchase and deploy integrated business applications and related professional services. By integrating with user account and application data stored in Google Apps, these cloud applications provide a simpler user experience, increase business efficiency, and reduce administrative overhead.</p>
<p>The <a href="http://code.google.com/googleapps/marketplace/" target="_blank">Google Apps Marketplace</a> supports open standards to provide deep integrations with Google Apps: OpenID for sign-in and identification, OAuth for authorization, and Atom-based Google Data feeds for interaction with user data and domain settings.</p>
<p>The <a href="http://code.google.com/googleapps/marketplace/" target="_blank">Google Apps Marketplace</a> makes it easy for ISVs to sell integrated apps to a rapidly growing Google Apps customer base of 20 million users from 2 million businesses and universities. You can develop integrations with Google Apps using simple &amp; reusable open standards such as OpenID and OAuth, and have freedom of choice for both billing arrangement and hosting platform.</p>
<p>More than 50 vendors joined us for this launch, including Appirio, Atlassian, Intuit, and Manymoon, who demoed their integrated apps at the campfire. To get started on your own integrated app, visit <a href="http://developer.googleapps.com/">developer.googleapps.com</a>.</p></blockquote>
<h2><strong>This abridged video (2 mins) outlines the </strong><a href="http://code.google.com/googleapps/marketplace/" target="_blank"><strong>Google Apps Marketplace</strong></a><strong>:</strong></h2>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="620" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/uJxbEQGWpeA&amp;hl=en_US&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="620" height="385" src="http://www.youtube.com/v/uJxbEQGWpeA&amp;hl=en_US&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p class="note">
<h2><strong>The following 3 videos (30 mins in total) are from the live Google Campfire One presentation:</strong></h2>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="620" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/QYKZFL7ppMI&amp;hl=en_US&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="620" height="385" src="http://www.youtube.com/v/QYKZFL7ppMI&amp;hl=en_US&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="620" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/Ye5idVObcxA&amp;hl=en_US&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="620" height="385" src="http://www.youtube.com/v/Ye5idVObcxA&amp;hl=en_US&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="620" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/I0yWVpaM-gg&amp;hl=en_US&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="620" height="385" src="http://www.youtube.com/v/I0yWVpaM-gg&amp;hl=en_US&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>This is very exciting news for Google Apps. It will certainly be a feature that is a clear differentiator between itself and other Office Apps products suites. Moreover, it certainly gives cloud computing an added punch. Rather than just doing the same stuff in the cloud, you can now sell the cloud as the way to do much, much more.</p>
<p>However, I was a little disappointed not to hear any news regarding Wave. I was so hoping that they had something. I guess I will still have to wait for I/O 10.</p>
<p class="alert">Did you watch the Campfire One live presentation? What do you think about the App Marketplace? Leave your thoughts below, we love to hear your comments.</p>
<div class="shr-publisher-1000"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic --><!--Amazon_CLS_IM_END-->

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.theshinywave.com/developer/google-campfire-one-google-apps-marketplace/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Wave Robot API v2 Presentation</title>
		<link>http://www.theshinywave.com/developer/google-wave-robot-api-v2-presentation/</link>
		<comments>http://www.theshinywave.com/developer/google-wave-robot-api-v2-presentation/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 12:35:48 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Developer]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Extensions]]></category>
		<category><![CDATA[Gadgets]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Google Code]]></category>
		<category><![CDATA[Google Code University]]></category>
		<category><![CDATA[google docs]]></category>
		<category><![CDATA[Google I/O 10]]></category>
		<category><![CDATA[google wave]]></category>
		<category><![CDATA[Google Wave Blog]]></category>
		<category><![CDATA[google wave blogger]]></category>
		<category><![CDATA[google wave gadgets]]></category>
		<category><![CDATA[GWT]]></category>
		<category><![CDATA[robot]]></category>

		<guid isPermaLink="false">http://www.theshinywave.com/?p=979</guid>
		<description><![CDATA[On code.google.com, there is a special area called Google Code University. This area lists resources for educators on web technology and software development. As of Friday, 5 Mar 10, it also lists resources on teaching Google APIs &#38; tools, like codelabs and workshops: http://code.google.com/edu/googledev/index.html If you have not been to the Google Code university before, the [...]


No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<!--Amazon_CLS_IM_START--><p><a class="post_image_link" href="http://www.theshinywave.com/developer/google-wave-robot-api-v2-presentation/" title="Permanent link to Google Wave Robot API v2 Presentation"><img class="post_image aligncenter" src="http://www.theshinywave.com/wp-content/gallery/post-images/googlecode.jpg" width="620" height="350" alt="Post image for Google Wave Robot API v2 Presentation" /></a>
</p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><span class="drop_cap">O</span>n <a href="http://code.google.com/">code.google.com</a>, there is a special area called Google Code University. This area lists resources for educators on web technology and software development.</p>
<p>As of Friday, 5 Mar 10, it also lists resources on teaching Google APIs &amp; tools, like codelabs and workshops: <a href="http://code.google.com/edu/googledev/index.html">http://code.google.com/edu/googledev/index.html</a></p>
<p>If you have not been to the Google Code university before, the below is a synopsis of what it offers:</p>
<blockquote><p>The website provides tutorials and sample course content so Computer Science students and educators can learn more about current computing technologies and paradigms. In particular, this content is Creative Commons licensed which makes it easy for CS educators to use in their own classes.</p>
<p>The Courses section contains tutorials, lecture slides, and problem sets for a variety of topic areas:</p>
<ul>
<li>AJAX Programming</li>
<li>Algorithms</li>
<li>Distributed Systems</li>
<li>Web Security</li>
<li>Languages</li>
</ul>
<p>In the Tools 101 section, you will find a set of introductions to some common tools used in Computer Science such as version control systems and databases.</p>
<p>The CS Curriculum Search will help you find teaching materials that have been published to the web by faculty from CS departments around the world. You can refine your search to display just lectures, assignments or reference materials for a set of courses.</p></blockquote>
<p>One of the offerings I found under the API presentations was the Robots v2 presentation done by Pamela Fox. This <a href="http://prezi.com">Prezi</a> shows how the Robots API works inside Wave, and shows the new features of the Robots API v2.</p>
<div class="prezi-player"><!-- .prezi-player { width: 620px; } .prezi-player-links { text-align: center; } --><object id="prezi_y1gmnbt6_4xk" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="620" height="500" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="name" value="prezi_y1gmnbt6_4xk" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="bgcolor" value="#ffffff" /><param name="flashvars" value="prezi_id=y1gmnbt6_4xk&amp;lock_to_path=1&amp;color=ffffff&amp;autoplay=no" /><param name="src" value="http://prezi.com/bin/preziloader.swf" /><embed id="prezi_y1gmnbt6_4xk" type="application/x-shockwave-flash" width="620" height="500" src="http://prezi.com/bin/preziloader.swf" flashvars="prezi_id=y1gmnbt6_4xk&amp;lock_to_path=1&amp;color=ffffff&amp;autoplay=no" bgcolor="#ffffff" allowscriptaccess="always" allowfullscreen="true" name="prezi_y1gmnbt6_4xk"></embed></object><a title="Robots, Gadgets, Embed" href="http://prezi.com/y1gmnbt6_4xk/google-wave-robots-v2/">Google Wave Robots v2</a> on <a href="http://prezi.com">Prezi</a></p>
<p>Some of the other resources available were:</p>
<blockquote><p>Besides those developer-targeted resources, there are some resources made entirely with teaching in mind, and these are listed below:</p>
<p><a href="http://sites.google.com/site/hackathoninabox/">Hackathon in a Box</a><br />
Contains tips for holding hackathons, and material for App Engine, Geo APIs, Google Chrome, and HTML 5 hackathons.</p>
<p><a href="http://sites.google.com/site/webdevedu/labs-1">WebDevEdu</a><br />
Contains material for teaching client-side &amp; server-side web programming, using Google API labs as the teaching aids.</p>
<p><a href="http://sites.google.com/site/geoapiscodelabs/">Geo APIs codelabs</a><br />
Contains 9 codelabs on working the Google Geo APIs &#8211; KML, Google Earth, and the Maps APIs.</p>
<p><a href="http://code.google.com/p/picasaphpworkshop/">Picasa PHP workshop</a><br />
Provides step by step instructions to create your first mashup using Picasa, Google Data APIs and Google Maps.</p>
<p><a href="http://gdata.ops.demo.googlepages.com/yt_json_codelab.html">YouTube Data API via JSON: embedding videos in your site</a><br />
Shows how to pull information about YouTube videos onto a website using JavaScript and the JSON format.</p></blockquote>
<p>So make sure you visit the site. If you need some Google educational resources or if you are planning on doing a Google workshop or hack-a-thon you will find this information invaluable. The Google Code University is a great resource <a href="http://code.google.com/edu/googledev/index.html">http://code.google.com/edu/googledev/index.html</a>, make sure you visit.</p>
<p class="alert">Have you used this information before? Do you plan on using it in the future? Let us know about your experience at the Google Code University.</p>
</div>
<div class="shr-publisher-979"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic --><!--Amazon_CLS_IM_END-->

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.theshinywave.com/developer/google-wave-robot-api-v2-presentation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Build Your Own Google Wave Extension</title>
		<link>http://www.theshinywave.com/developer/build-your-own-google-wave-extension/</link>
		<comments>http://www.theshinywave.com/developer/build-your-own-google-wave-extension/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 12:11:56 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Developer]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[Extensions]]></category>
		<category><![CDATA[Gadgets]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[google docs]]></category>
		<category><![CDATA[Google I/O 10]]></category>
		<category><![CDATA[google wave]]></category>
		<category><![CDATA[Google Wave Blog]]></category>
		<category><![CDATA[google wave blogger]]></category>
		<category><![CDATA[google wave gadgets]]></category>
		<category><![CDATA[GWT]]></category>
		<category><![CDATA[Hackathon]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[ottawa wave group]]></category>
		<category><![CDATA[robot]]></category>

		<guid isPermaLink="false">http://www.theshinywave.com/?p=956</guid>
		<description><![CDATA[The great folks over at WithWaves have added a contribution to the Google Wave community by providing their internal tools to the public to help others build Google Wave extensions. You may remember the WithWaves guys from our Developer Spotlight: WithWaves post. They build some really great EBay &#38; Amazon extensions. Using their extension generator [...]


No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<!--Amazon_CLS_IM_START--><p><a class="post_image_link" href="http://www.theshinywave.com/developer/build-your-own-google-wave-extension/" title="Permanent link to Build Your Own Google Wave Extension"><img class="post_image aligncenter" src="http://www.theshinywave.com/wp-content/gallery/post-images/withwaves_0.jpg" width="620" height="350" alt="Post image for Build Your Own Google Wave Extension" /></a>
</p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><span class="drop_cap">T</span>he great folks over at <a href="http://withwaves.com/google-wave-extension-generator/#more-255" target="_blank">WithWaves</a> have added a contribution to the Google Wave community by providing their internal tools to the public to help others build Google Wave extensions. You may remember the WithWaves guys from our <a href="http://www.theshinywave.com/developer/developer-spotlight-withwaves/" target="_blank">Developer Spotlight: WithWaves</a> post. They build some really great EBay &amp; Amazon extensions.</p>
<p>Using their extension generator you will get the following:</p>
<ul>
<blockquote>
<li>Runnable Hello World project ready to be modified and added to a Wave</li>
<li><a href="http://www.springsource.org/">Spring</a> integration in your robot / gadget back-end project compatible with <a href="http://code.google.com/appengine/">Google App Engine</a></li>
<li>Ant tasks to test your gadget locally and deploy to App Engine from the command line</li>
<li>Access to our API core components, including an open source implementation of <a href="http://en.wikipedia.org/wiki/Named_entity_recognition">Named Entity Recognition</a> for blips based on the<a href="http://www.alchemyapi.com/">Alchemy API</a></li>
<li>Gadget server handlers for communication from your gadget to the server with JSON / Spring</li>
<li>jQuery integration for your gadgets</li>
<li>Common gadget JS classes to handle Wave callbacks and state modifications</li>
<li>Simple Wave JS emulator that allows you to view your gadget locally for testing HTML/JS/CSS before deploying</li>
<li>Locale based language support for your gadget</li>
<li>Metadata to expose your robot / gadget as a extension installer</li>
<li>Eclipse / Google plugin ready project to run and update to app engine from Eclipse</li>
</blockquote>
</ul>
<p>They provide the following information and video to guide you through the process:</p>
<blockquote><p>If you already have <a href="http://java.sun.com/javase/downloads/index.jsp">Java</a>, <a href="http://ant.apache.org/bindownload.cgi">Ant</a>, <a href="http://maven.apache.org/download.html">Maven</a> and the <a href="http://code.google.com/appengine/downloads.html#Google_App_Engine_SDK_for_Java">Java App Engine SDK</a> installed, simply execute the following command in your console:</p>
<p><strong>mvn archetype:generate -DarchetypeCatalog=http://mvn.withwaves.com</strong></p>
<p>After entering the values for your project, you will have a running Google Wave robot &amp; gadget ready in no time.</p>
<p>Use the same command to generate extensions in the future and you will have the option to enable new features as we release more extension generators.</p>
<p>Check out the videos below for a demo creating a simple &#8220;Hello World&#8221; robot and gadget, and optionally running it inside <a href="http://www.eclipse.org/downloads/">Eclipse</a> and the <a href="http://code.google.com/eclipse/">Google Plugin for Eclipse</a>.</p></blockquote>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="620" height="400" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=7646862&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="620" height="400" src="http://vimeo.com/moogaloop.swf?clip_id=7646862&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><a href="http://vimeo.com/7646862"><em><span style="font-size: x-small;">WithWaves Extension Generator Demo</span></em></a><em><span style="font-size: x-small;"> from </span></em><a href="http://vimeo.com/isdereks"><em><span style="font-size: x-small;">Derek Punsalan</span></em></a><em><span style="font-size: x-small;"> on </span></em><a href="http://vimeo.com"><em><span style="font-size: x-small;">Vimeo</span></em></a><em><span style="font-size: x-small;">.</span></em></p>
<p>If you need more information about getting started with <a href="http://www.eclipse.org/downloads/">Eclipse</a> and the <a href="http://code.google.com/eclipse/">Google Plugin for Eclipse</a> see our post and detailed powerpoint presentation that we used at our <a href="http://www.theshinywave.com/news/ottawa-google-wave-camp-hack-a-thon-wrap-up/" target="_blank">Google Wave Hackathon</a> we held in October.</p>
<p>If you need more information about <a href="http://java.sun.com/javase/downloads/index.jsp">Java</a>, <a href="http://ant.apache.org/bindownload.cgi">Ant</a>, <a href="http://maven.apache.org/download.html">Maven</a> and the <a href="http://code.google.com/appengine/downloads.html#Google_App_Engine_SDK_for_Java">Java App Engine SDK</a> you are going to have to visit the links provided for those products and do a little reading. If you are a complete beginner, you should probably be prepared to dedicate a full day to getting yourself started.</p>
<p>Hope any of you wanna-be developers find this useful. It should help you get started much quicker with a product. Look forward to hearing from anyone who found this useful. Also, drop a thank you off over at <a href="http://withwaves.com/google-wave-extension-generator/#more-255" target="_blank">WithWaves</a>.</p>
<p class="alert">Leave a comment below with your thoughts, we love hearing what your thinking. Have you used their tools?</p>
<div class="shr-publisher-956"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic --><!--Amazon_CLS_IM_END-->

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.theshinywave.com/developer/build-your-own-google-wave-extension/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Free Google Wave Presentations You Can Use</title>
		<link>http://www.theshinywave.com/developer/free-google-wave-presentations-you-can-use/</link>
		<comments>http://www.theshinywave.com/developer/free-google-wave-presentations-you-can-use/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 18:18:48 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Developer]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[google docs]]></category>
		<category><![CDATA[Google I/O 10]]></category>
		<category><![CDATA[google wave]]></category>
		<category><![CDATA[Google Wave Blog]]></category>
		<category><![CDATA[google wave blogger]]></category>
		<category><![CDATA[google wave gadgets]]></category>
		<category><![CDATA[Pamela Fox]]></category>
		<category><![CDATA[Prezi]]></category>

		<guid isPermaLink="false">http://www.theshinywave.com/?p=843</guid>
		<description><![CDATA[I got an email yesterday from Pamela Fox (an I/O 10 Google Wave presenter) passing the following information: Hey folks- As some of you know, I&#8217;m a fan of prezi.com, a new way of making presentations. They just added the ability to mark presentations as &#8216;reusable&#8217;, meaning that anyone can come along, copy a prezo, and [...]


No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<!--Amazon_CLS_IM_START--><p><a class="post_image_link" href="http://www.theshinywave.com/developer/free-google-wave-presentations-you-can-use/" title="Permanent link to Free Google Wave Presentations You Can Use"><img class="post_image aligncenter" src="http://www.theshinywave.com/wp-content/gallery/post-images/presentations.gif" width="530" height="280" alt="Post image for Free Google Wave Presentations You Can Use" /></a>
</p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>I got an email yesterday from <a href="http://googlewavedev.blogspot.com/2010/01/google-wave-at-io.html?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+GoogleWaveDeveloperBlog+%28Google+Wave+Developer+Blog%29" target="_blank">Pamela Fox</a> (an <a href="http://code.google.com/events/io/2010/register.html" target="_blank">I/O 10</a> Google Wave presenter) passing the following information:</p>
<blockquote><p>Hey folks-</p>
<p>As some of you know, I&#8217;m a fan of <a href="http://prezi.com/">prezi.com</a>, a new way of making<br />
presentations. They just added the ability to mark presentations as<br />
&#8216;reusable&#8217;, meaning that anyone can come along, copy a prezo, and<br />
modify it. I&#8217;ve gone and made my presentations reusable so that you<br />
all can use them as a basis for yours, if you&#8217;d like.</p></blockquote>
<p>So, I thought I would provide you the links to here Google Wave presentations that she made available via Prezi:</p>
<p><object id="prezi_i6jilpzy79rh" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="520" height="400" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="name" value="prezi_i6jilpzy79rh" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="bgcolor" value="#ffffff" /><param name="flashvars" value="prezi_id=i6jilpzy79rh&amp;lock_to_path=1&amp;color=ffffff&amp;autoplay=no" /><param name="src" value="http://prezi.com/bin/preziloader.swf" /><embed id="prezi_i6jilpzy79rh" type="application/x-shockwave-flash" width="520" height="400" src="http://prezi.com/bin/preziloader.swf" flashvars="prezi_id=i6jilpzy79rh&amp;lock_to_path=1&amp;color=ffffff&amp;autoplay=no" bgcolor="#ffffff" allowscriptaccess="always" allowfullscreen="true" name="prezi_i6jilpzy79rh"></embed></object></p>
<p><object id="prezi_egrptwqumq8j" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="520" height="400" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="name" value="prezi_egrptwqumq8j" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="bgcolor" value="#ffffff" /><param name="flashvars" value="prezi_id=egrptwqumq8j&amp;lock_to_path=1&amp;color=ffffff&amp;autoplay=no" /><param name="src" value="http://prezi.com/bin/preziloader.swf" /><embed id="prezi_egrptwqumq8j" type="application/x-shockwave-flash" width="520" height="400" src="http://prezi.com/bin/preziloader.swf" flashvars="prezi_id=egrptwqumq8j&amp;lock_to_path=1&amp;color=ffffff&amp;autoplay=no" bgcolor="#ffffff" allowscriptaccess="always" allowfullscreen="true" name="prezi_egrptwqumq8j"></embed></object></p>
<p><object id="prezi_sxuwendhwqsy" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="520" height="400" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="name" value="prezi_sxuwendhwqsy" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="bgcolor" value="#ffffff" /><param name="flashvars" value="prezi_id=sxuwendhwqsy&amp;lock_to_path=1&amp;color=ffffff&amp;autoplay=no" /><param name="src" value="http://prezi.com/bin/preziloader.swf" /><embed id="prezi_sxuwendhwqsy" type="application/x-shockwave-flash" width="520" height="400" src="http://prezi.com/bin/preziloader.swf" flashvars="prezi_id=sxuwendhwqsy&amp;lock_to_path=1&amp;color=ffffff&amp;autoplay=no" bgcolor="#ffffff" allowscriptaccess="always" allowfullscreen="true" name="prezi_sxuwendhwqsy"></embed></object></p>
<p>So there you go. Some excellent presentations that you can re-use. Please make sure you give credit to <a href="http://googlewavedev.blogspot.com/2010/01/google-wave-at-io.html?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+GoogleWaveDeveloperBlog+%28Google+Wave+Developer+Blog%29" target="_blank">Pamela Fox</a> if you do <img src='http://www.theshinywave.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<div class="shr-publisher-843"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic --><!--Amazon_CLS_IM_END-->

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.theshinywave.com/developer/free-google-wave-presentations-you-can-use/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Guest Developer Post &#8211; Bits by the Pound</title>
		<link>http://www.theshinywave.com/developer/guest-developer-post-bits-by-the-pound/</link>
		<comments>http://www.theshinywave.com/developer/guest-developer-post-bits-by-the-pound/#comments</comments>
		<pubDate>Sun, 08 Nov 2009 20:14:25 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Developer]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[google wave]]></category>
		<category><![CDATA[google wave blogger]]></category>
		<category><![CDATA[robot]]></category>

		<guid isPermaLink="false">http://www.theshinywave.com/?p=385</guid>
		<description><![CDATA[This post is from our friends over at Bits by the Pound. The authors of the site are part of our Ottawa (NCR) Google Wave Developer&#8217;s Group and will be attending Ottawa&#8217;s 1st Google Wave Hack-a-thon. They will be running the session on the development of your first Google Wave gadget. Their site is really [...]


No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<!--Amazon_CLS_IM_START--><p><a class="post_image_link" href="http://www.theshinywave.com/developer/guest-developer-post-bits-by-the-pound/" title="Permanent link to Guest Developer Post &#8211; Bits by the Pound"><img class="post_image aligncenter" src="http://www.theshinywave.com/wp-content/gallery/post-images/code20small.jpg" width="520" height="120" alt="Post image for Guest Developer Post &#8211; Bits by the Pound" /></a>
</p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>This post is from our friends over at <a href="http://www.bitsbythepound.com/" target="_blank">Bits by the Pound</a>. The authors of the site are part of our <a href="http://www.ottawawavegroup.com/" target="_blank">Ottawa (NCR) Google Wave Developer&#8217;s Group</a> and will be attending <a href="http://ottawawavecamp.eventbrite.com/" target="_blank">Ottawa&#8217;s 1st Google Wave Hack-a-thon</a>. They will be running the session on the development of your first Google Wave gadget.</p>
<p>Their site is really great and will be popular among those that are doing some really in-depth Google Wave development work. The following post is one example of the excellent material they are putting together.</p>
<p>This guest developer post is titled &#8220;<strong>Wave Robot API Shortcomings&#8221;</strong></p>
<p style="padding-left: 30px;"><strong> </strong><br />
<span style="color: #008000;"> While building a Robot that inserts a Gadget into the wave I discovered something that made me shake my head. A lot of the Wave Robot API classes have methods that violate their documented contracts. The worst offender I think has to be the Event interface. Whenever an event is delivered to your Robot, you interrogate the event to gather the information the robot requires. But there are many different events that can occur and each is trying to tell the robot a different thing.<br />
</span><span style="color: #008000;"> For example, one of the methods on the Event interface is getAddedParticipants(). This method makes sense only on an event where the participants have changed such as BLIP_CONTRIBUTORS_CHANGED. However the method is available for all events. The javadoc for this method is</span></p>
<blockquote style="padding-left: 30px;"><p><span style="color: #808080;">getAddedParticipants<br />
</span><span style="color: #808080;"> java.util.Collection</span><span style="color: #808080;"> getAddedParticipants()</span><span style="color: #808080;"><br />
</span><span style="color: #808080;"> Returns a list of participants added to the Wavelet (if applicable).</span><span style="color: #808080;"><br />
Returns:<br />
a list of participants.</span></p></blockquote>
<p style="padding-left: 30px;"><span style="color: #008000;">You will of course note its contract specifies that it returns a list of participants. So you write your code so that it </span><span style="color: #008000;">wil</span><span style="color: #008000;"> handle a Collection of participants. And if there are no added participants, it will return an empty collection. Except that it does not return an empty Collection when there are no added participants. It returns null. Um, that behaviour is not in the contract.</span><span style="color: #008000;"><br />
</span><span style="color: #008000;"> Another case that is really nasty is the case of Wavelet.getRootBlip(). There are many reasons why you may want to access the root blip. Maybe the robot created a widget there and wants access to it. Sometimes you might want to compare the id of the root blip to see if it is the same as the id of the modified blip in the event you just received. The javadoc says that it returns “the root blip”. Just don’t do the following while handling the BLIP_SUBMITTED event or you will be sorely surprised.</span></p>
<blockquote style="padding-left: 30px;"><p><span style="color: #808080;">Blip rootBlip = wavelet.getRootBlip();</span><span style="color: #808080;"><br />
</span><span style="color: #808080;"> if ( rootBlip != null ){</span><span style="color: #808080;"><br />
</span><span style="color: #808080;"> String rblipid = rootBlip.getBlipId();</span><span style="color: #808080;"><br />
// compare root blip id against changed blip id<br />
&#8230;<br />
}</span></p></blockquote>
<p style="padding-left: 30px;"><span style="color: #008000;">Apparently when you receive an event, you do not receive the entire wavelet, but rather only information about the current blip for which the event occurred and that blip’s parent. If neither of those is the root blip then wavelet.getRootBlip() returns a non-null value, but this blip is not the actual root blip and contains no blip data in violation of its contract. This blip has been described as empty or hollow. So when you call getBlipId() on what you thought was the root blip, a null pointer exception occurs in getBlipId() because it attempts to reference a null blip data object within the hollow root blip.</span></p>
<p style="padding-left: 30px;"><span style="color: #008000;">However, using Wavelet.getRootBlipId() gives you the ID of the root blip without the API experiencing a null pointer exception. Which is fine if you only want to compare blip IDs, but does not help you if you want to actually examine the contents of the root blip, since you don’t have access to it. The recommendation from Google is to save all needed blips in your AppEngine datastore and update them as they change and retrieve them as necessary.</span></p>
<p style="padding-left: 30px;"><span style="color: #008000;">Hopefully these annoying API contract violations (and bugs) will be fixed soon</span>.</p>
<p>Excellent post and great info! To read more posts similar to the one above head over to <a href="http://www.bitsbythepound.com/2009/11/07/wave-robot-api-shortcomings/" target="_blank">Bits by the Pound</a> and see what else the Boys have to say.</p>
<p><strong><br />
</strong></p>
<div class="shr-publisher-385"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic --><!--Amazon_CLS_IM_END-->

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.theshinywave.com/developer/guest-developer-post-bits-by-the-pound/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>XMPP Mini-Series: Part 2 &#8211; How Google Wave Uses XMPP</title>
		<link>http://www.theshinywave.com/developer/xmpp-mini-series-part-2-how-google-wave-uses-xmpp/</link>
		<comments>http://www.theshinywave.com/developer/xmpp-mini-series-part-2-how-google-wave-uses-xmpp/#comments</comments>
		<pubDate>Sat, 26 Sep 2009 02:34:09 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Developer]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[FedOne Server]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[google wave]]></category>
		<category><![CDATA[google wave blogger]]></category>
		<category><![CDATA[GWT]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[O'Reilly]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[PyGo Server]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[XMPP]]></category>
		<category><![CDATA[XMPP Advantage]]></category>
		<category><![CDATA[XMPP Client]]></category>
		<category><![CDATA[XMPP Mini-Series]]></category>
		<category><![CDATA[XMPP Server]]></category>

		<guid isPermaLink="false">http://www.googlewaveblogger.com/?p=293</guid>
		<description><![CDATA[In Part 1 &#8211; 7 Advantages of  XMPP we discussed some of the strengths of XMPP. In this second part of our XMPP Mini-Series we will concentrate on how Google Wave uses XMPP. Of note: this particular part has drawn a lot of attention in the blogosphere lately, based on an article which claimed that [...]


No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<!--Amazon_CLS_IM_START--><p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>In <a href="http://www.googlewaveblogger.com/developer/xmpp-mini-series-part-1-the-7-advantages-of-xmpp/" target="_blank">Part 1 &#8211; 7 Advantages of  XMPP</a> we discussed some of the strengths of XMPP. In this second part of our XMPP Mini-Series we will concentrate on how Google Wave uses XMPP. Of note: this particular part has drawn a lot of attention in the blogosphere lately, based on an article which claimed that Google had developed a &#8220;full-featured XMPP Client&#8221;.</p>
<p>I hope to make is clear in this article that Google has not, nor do they claim to have, developed a XMPP Client. Although, it is easy to see how one could jump to that assumption given that what you see on your screen looks and feel like XMPP. Moreover, I don&#8217;t think the comment deserves the pedantic scrutiny that it has received. In fact, I thought the post was very well written and very clear describing the architecture and clearer with the point it was trying to make: that XMPP is a great tool. That being said, how does Google make the magic happen.</p>
<p>The best explanation can be found in a very short article, by J. Aaron Farr, titled <a href="http://www.cubiclemuses.com/cm/articles/2009/08/09/waves-web-of-protocols/" target="_blank">Wave&#8217;s Web of Protocol</a>. The diagram below comes from that post and is offered freely by the author.</p>
<div class="wp-caption aligncenter" style="width: 476px">
	<a href="http://www.cubiclemuses.com/cm/articles/2009/08/09/waves-web-of-protocols/"><img class="ngg-singlepic ngg-center " src="http://www.googlewaveblogger.com/wp-content/gallery/other-images/wave_protocols.png" alt="wave_protocols" width="476" height="466" /></a>
	<p class="wp-caption-text">by J. Aaron Farr</p>
</div>
<p>This diagram is the best I have come across to date and I think very clearly outlines the protocols used here. Thus, the following protocols and APIs being used by Google Wave are:</p>
<ul>
<li>Federation Protocol         &#8211;  XMPP</li>
<li>Robot Protocol                 &#8211;  JSON</li>
<li>Client-Server Protocol      -  As defined by the GWT</li>
<li>Gadget API                       &#8211;  OpenSocial</li>
<li>Wave Embedded  API       &#8211;  Javascript</li>
</ul>
<p>Now the problem is that only the Federation Protocol is defined. The Robot and Client-Server Protocol are not. The reason for that is because, according to Joe Gregorio in a <a href="http://groups.google.com/group/wave-protocol/browse_frm/thread/4fb0a32e14efc1ee" target="_blank">Google Groups &#8211; Wave Protocol FAQ</a></p>
<p><cite>The focus of our open source and protocol work at this point is on the federation protocol, which is critical for getting inter-operable server implementations, that is, for allowing many other people to build Wave servers and have them interop with each other and with the Google Wave server. We have definitely heard the requests for defining a client-server protocol, but at this time the team doesn&#8217;t have the time to put into such an effort.</cite></p>
<p>What is clear in the diagram above is that Google only uses XMPP in the federation protocol, and the federation protocol is only used for wave server-to-wave server communication. The Wave server itself is a OpenFire Server with a Google Wave Extension. Then using the GWT you build your client to speak with that extension. How it does that is pretty much wide open to whoever is building the Wave Client.</p>
<p>So why is it clear that the client is not XMPP. Well, if I have a new wave client, let&#8217;s say a desktop based client, I have no way to communicate to Google&#8217;s wave server. I have to host my own server, with its own private client-server protocol. Then I can federate with the Goole Server via the XMPP protocol.</p>
<p>At the XMPP Standards Foundation page they list the current <a href="http://xmpp.org/software/clients.shtml" target="_blank">XMPP clients</a> and link to a ton of other information about XMPP. The clients listed , in fact, look and feel much like Google Wave does: a XMPP Client. But it is not, many folks have made some clients for their own FedOne Server implementations that act and feel like Google Wave&#8217;s Client (see my <a href="http://www.googlewaveblogger.com/developer/how-to-get-a-google-wave-account-or-the-alternative-pygo-wave-server/" target="_blank">PyGo Wave post</a>) and their clients are not XMPP, they are clients that have been built with GWT. The fact that is not defined by Google will mean that the argument will continue. But in my mind, it is quite clear that building your server and your client is a different development effort.</p>
<p>I keep saying that I will be building my own server soon. That will now happen in the week after next as my lab space has finally become available and the equipment is being moved and set-up next week.That means I will be putting into practice what I am preaching here.</p>
<p>So, all that to say that Google uses XMPP for Wave Sever-to-Wave Server communications which is accomplished by adding a Google Wave extension to a OpenFire Server. Many folks have also done this using other XMPP servers.</p>
<p>Part 3 of this mini-series will focus on <a href="http://www.googlewaveblogger.com/developer/xmpp-mini-series-part-3-xmpp-and-security/" target="_blank">XMPP security</a>.</p>
<div class="shr-publisher-293"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic --><!--Amazon_CLS_IM_END-->

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.theshinywave.com/developer/xmpp-mini-series-part-2-how-google-wave-uses-xmpp/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Using the Posterous Robot in Google Wave</title>
		<link>http://www.theshinywave.com/extensions/using-the-posterous-robot-in-google-wave/</link>
		<comments>http://www.theshinywave.com/extensions/using-the-posterous-robot-in-google-wave/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 20:39:27 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Extensions]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[e-mail]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[google wave]]></category>
		<category><![CDATA[posterous]]></category>
		<category><![CDATA[robot]]></category>
		<category><![CDATA[Sandbox]]></category>
		<category><![CDATA[Web 2.0]]></category>

		<guid isPermaLink="false">http://www.googlewaveblogger.com/?p=117</guid>
		<description><![CDATA[For those that are unfamiliar with Posterous, it is a extremely simple to use blog creation site. You send them the content you want in the blog via e-mail. You can attach what you want: photos, videos, mp3&#8242;s etc. The Posterous engine then goes and creates a blog page for you with your e-mail that [...]


No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<!--Amazon_CLS_IM_START--><p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>For those that are unfamiliar with <a href="http://posterous.com/" target="_blank">Posterous</a>, it is a extremely simple to use blog creation site. You send them the content you want in the blog via e-mail. You can attach what you want: photos, videos, mp3&#8242;s etc. The <a href="http://posterous.com/" target="_blank">Posterous</a> engine then goes and creates a blog page for you with your e-mail that you send as the current blog entry. You can then adjust settings, look etc as you wish.</p>
<p>The <a href="http://posterous.com/" target="_blank">Posterous</a> robot for Google Wave allows you to simply add the <a href="http://posterous.com/" target="_blank">Posterous</a> domain address to your wave. Create your post. Click done and it goes off to <a href="http://posterous.com/" target="_blank">Posterous</a> and creates your blog page and entry.</p>
<p>The Posterous webpage describes it as such:</p>
<blockquote>
<h3>What is Posterous-Robot?</h3>
<p>Posterous-Robot is first a Google Wave robot. It is built by lookon with Google Wave Python Library and Posterous API. The posterous bot helps you to post blog to posterous.com in Google Wave.</p>
<h3>How to use Posterous-Robot</h3>
<p>It&#8217;s easy to use Poterous-Robot in Google Wave. You just need to add posterous-robot@appspot to your contact and start a new wave with the robot. After logining to Posterous, you can post blog to Posterous by editing the title and body of the foot wavelet.</p>
<p>A detailed guide: <a href="http://blog.kangye.org/how-to-write-a-blog-using-google-wave-robot-f">How to write a blog using Google Wave Robot for Posterous.</a></p></blockquote>
<p>The how to guide comes complete with photos and shows just how simple using this robot is.</p>
<p>You can get the source code for the robot <a href="http://github.com/areyoulookon/Posterous-Wave-Robot/tree/master" target="_blank">here</a>.</p>
<div class="shr-publisher-117"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic --><!--Amazon_CLS_IM_END-->

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.theshinywave.com/extensions/using-the-posterous-robot-in-google-wave/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>TwilioBot &#8211; Phone Extension for Google Wave</title>
		<link>http://www.theshinywave.com/extensions/twiliobot-phone-extension-for-google-wave/</link>
		<comments>http://www.theshinywave.com/extensions/twiliobot-phone-extension-for-google-wave/#comments</comments>
		<pubDate>Sat, 22 Aug 2009 21:03:51 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Extensions]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[embed]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[google wave]]></category>
		<category><![CDATA[Hackathon]]></category>
		<category><![CDATA[mobile phone]]></category>
		<category><![CDATA[robot]]></category>
		<category><![CDATA[twilio]]></category>
		<category><![CDATA[twiliobot]]></category>

		<guid isPermaLink="false">http://www.googlewaveblogger.com/?p=99</guid>
		<description><![CDATA[TwilioBot is a Robot Extension for Google Wave that uses Twilio. Twilio is basically a Voice-over-IP (VOIP) architecture that allows the user access to Twilio&#8217;s API, allowing them to make custom application extensions that meet their exact needs. As folks build things for Twilio they become available to the entire Twilio group. They can then [...]


No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<!--Amazon_CLS_IM_START--><p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>TwilioBot is a Robot Extension for Google Wave that uses Twilio. Twilio is basically a Voice-over-IP (VOIP) architecture that allows the user access to Twilio&#8217;s API, allowing them to make custom application extensions that meet their exact needs. As folks build things for Twilio they become available to the entire Twilio group. They can then use or tweak tht code as required.</p>
<p>So the Twilio folks have a Google Wave sandbox license and created a Twillio Robot for Google Wave: TwilioBot. The following is taken from theGoogle Wave Code page for TwilioBot and pretty much explains most of what you need to know to play with TwilioBot. For more info then what I have below, like the actual source code, wiki and known issues your should visit the  <a href="http://code.google.com/p/twiliobot/" target="_blank">code page</a>.</p>
<blockquote><p>Twiliobot is Robot extension for Google Wave demonstrating how to initiate calls from within a wave to normal cell phones or landlines using the Twilio phone API. The project is still in development and there are still several limitations.</p>
<p><strong>CONCEPTS</strong></p>
<p>This project shows how to integrate the Google Wave API with the Twilio phone API. While this particular project only implements click-to-call inside of Google Wave, one could think of many of interesting ways to integrate Google Wave and Twilio:</p>
<p>* Add call recording and transcription of all click-to-call initiated calls that can are appended to the wave<br />
* Use Twilio to record voicemail messages and create a new wave for each message containing the audio and a speech-to-text transcription of the voicemail. Combining such an application with conditional call forwarding on your GSM mobile phone you could say goodbye to traditional voicemail and use Google Wave to manage all your messaging.<br />
* Use Google Wave to set a status message that is heard by caller contacting your business. You could create a robot that monitors the last blip in a wave and reads the text of that blip to anyone who calls a business phone powered by Twilio.</p>
<p><strong>LIMITATIONS</strong></p>
<p>Twiliobot still has several important limitations.</p>
<p>1) The first limitation is in the process of initiating the call when a number is clicked. At the moment all phone numbers get transformed into URLs that point back to app engine and a web service to start the call. This is problematic for several reasons. The external link back to app engine puts up an annoying page that says you are connecting to an external site and the phone number to call is passed in the URL as a parameter so anyone could manually modify the url initiate calls outside of wave.</p>
<p>2) The second limitation is that the phone number for the first leg of the call (i.e. the phone of person reading the wave) is hardcoded into the bot. That means that if anyone other than the owner of the bot clicks a link the a phone link the call will be misdirected.</p>
<p>3) The third limitation is that phone number detection and outbound calling is currently limited to 10 digit US numbers.</p>
<p><strong><br />
USAGE</strong></p>
<p>If you haven&#8217;t been dissuaded and still want to try creating your own instance of twiliobot, here are instructions for getting started.</p>
<p>1. sign up for a google app engine account and download and install the</p>
<p>python sdk if you haven&#8217;t already http://appengine.google.com</p>
<p>2. sign up for twilio account if you haven&#8217;t already</p>
<p>http://www.twilio.com</p>
<p>3. in the twiliobot code, edit app.yaml to reference your google app engine</p>
<p>application e.g. &#8220;application: mybot&#8221;</p>
<p>4. edit twiliobot.py and set APP_NAME to the name of your google app engine</p>
<p>application</p>
<p>5. edit index.py and</p>
<p>* set MY_NUMBER to your phone number<br />
* set TWILIO_ACCOUNT_SID to your twilio AccountSid (see Account page)<br />
* set TWILIO_ACCOUNT_TOKEN to your twilio AccountSid (see Account page)</p>
<p>6. upload your app engine application to app engine</p>
<p>appcfg.py update twiliobot</p>
<p>7. log into google wave and add the twilibot robot to your contacts using</p>
<p>your app engine application name e.g. mybot@appspot.com</p>
<p>8. create a new wave and add the bot e.g. &#8220;Twilio&#8221; as a participant 9. create a new blip and enter a phone number and hit &#8220;Done&#8221;</p>
<p>10. if everything worked, the phone number should be transformed into a URL that can be clicked to initiate a call to your phone and the number written in the wave.</p></blockquote>
<p>Here is the YouTube video for Hack-a-thon below that actually shows TwilioBot in action:<br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="560" height="340" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/xnnNh0putWc&amp;hl=en&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="560" height="340" src="http://www.youtube.com/v/xnnNh0putWc&amp;hl=en&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>I think this is a fantastic little robot that could certainly have great appleal to service support centers or the folks that are calling the service support center. It could be great to aiding in putting together the minutes from a teleconference, etc, etc. I think the application of something like this is virtually limitless. I went to my sandbox to use this when I first heard about it. Unfortunately, it was then that I realized all the limitations. Regardless, if you have a sandbox, live in the US and are interested in getting a Twilio account I recomend giving it a try.</p>
<div class="shr-publisher-99"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic --><!--Amazon_CLS_IM_END-->

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.theshinywave.com/extensions/twiliobot-phone-extension-for-google-wave/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Google Wave Federation Day Videos</title>
		<link>http://www.theshinywave.com/youtube-videos/google-federation-day-videos/</link>
		<comments>http://www.theshinywave.com/youtube-videos/google-federation-day-videos/#comments</comments>
		<pubDate>Fri, 21 Aug 2009 20:27:16 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Videos]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[embed]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[Federation Day]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[google wave]]></category>
		<category><![CDATA[Hackathon]]></category>
		<category><![CDATA[YouTube]]></category>

		<guid isPermaLink="false">http://www.googlewaveblogger.com/?p=54</guid>
		<description><![CDATA[Google held a Google Wave Federation Day last month. Below is some videos that Google made during the conference and released today. First is the Introduction Second is the Architecture Overview Third is the API Overview (including API roadmap) Lastly, as a bonus they included a Google Wave Hackathon No related posts. Related posts brought [...]


No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<!--Amazon_CLS_IM_START--><p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Google held a Google Wave Federation Day last month. Below is some videos that Google made during the conference and released today.<br />
<strong><br />
First is the Introduction</strong></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/9hDZBieh5zg&amp;hl=en&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/9hDZBieh5zg&amp;hl=en&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><strong>Second is the Architecture Overview</strong></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/CRZbHpYhZrA&amp;hl=en&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/CRZbHpYhZrA&amp;hl=en&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><strong>Third is the API Overview (including API roadmap)</strong></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/eFSrqRbE6Po&amp;hl=en&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/eFSrqRbE6Po&amp;hl=en&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><strong>Lastly, as a bonus they included a Google Wave Hackathon</strong></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/ja-t7Xi9fgI&amp;hl=en&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/ja-t7Xi9fgI&amp;hl=en&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<div class="shr-publisher-54"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic --><!--Amazon_CLS_IM_END-->

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.theshinywave.com/youtube-videos/google-federation-day-videos/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

