<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5968549194668209695</id><updated>2012-01-27T22:25:47.304-08:00</updated><category term='mobile'/><category term='race condition'/><category term='flash'/><category term='f8'/><category term='meetup'/><category term='solution'/><category term='wave federation'/><category term='tablet'/><category term='secure'/><category term='livecycle'/><category term='robot'/><category term='ipad'/><category term='minutes'/><category term='maven'/><category term='mvn'/><category term='gadget'/><category term='event'/><category term='ontology'/><category term='api'/><category term='javafx2.0'/><category term='rdf'/><category term='encryption'/><category term='iphone'/><category term='hackathon'/><category term='ios'/><category term='eclipse'/><category term='ctag'/><category term='actionscript'/><category term='flex builder'/><category term='wave-as-client'/><category term='data_binding'/><category term='opengraph'/><category term='wave'/><category term='prediction'/><category term='embed'/><category term='facebook'/><category term='javafx'/><category term='google wave'/><category term='collaborative-editing'/><category term='appstore'/><category term='java'/><category term='air'/><category term='air runtime'/><category term='graph api'/><category term='adt'/><category term='button counter'/><category term='semantic web'/><category term='rdfa'/><category term='client-server'/><category term='smartphone'/><category term='issue'/><category term='flex'/><category term='tip'/><category term='mxml'/><category term='doc'/><category term='palm pre'/><category term='android'/><category term='emulator'/><category term='flash builder'/><category term='flex 4'/><category term='mac'/><category term='ssl'/><category term='httpservice'/><category term='as3corelib'/><category term='release'/><category term='commontag'/><category term='wave protocol'/><category term='asdoc'/><category term='google'/><title type='text'>NextGenApp.com</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>59</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-4175200960459691391</id><published>2011-10-14T11:23:00.000-07:00</published><updated>2011-10-14T11:23:39.150-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='mvn'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><category scheme='http://www.blogger.com/atom/ns#' term='maven'/><title type='text'>Maven Install on Mac</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-6L9p1eS9zzA/Tph-I_wdanI/AAAAAAAAA4Q/G6-yMeHdFW4/s1600/Screen+shot+2011-10-14+at+11.21.03+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="241" src="http://1.bp.blogspot.com/-6L9p1eS9zzA/Tph-I_wdanI/AAAAAAAAA4Q/G6-yMeHdFW4/s320/Screen+shot+2011-10-14+at+11.21.03+AM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;On Mac OS X 10.6, you will likely find maven already installed. &lt;br /&gt;&lt;br /&gt;&lt;div class="p2"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;To check:&lt;/div&gt;&lt;div class="p1"&gt;&amp;gt; mvn --version&lt;/div&gt;&lt;div class="p2"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;&amp;gt;&amp;nbsp;whereis mvn&lt;/div&gt;&lt;div class="p1"&gt;/usr/bin/mvn&lt;/div&gt;&lt;div class="p2"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;&amp;gt; ls -l /usr/bin/mvn&lt;/div&gt;&lt;div class="p1"&gt;lrwxr-xr-x&amp;nbsp; 1 root&amp;nbsp; wheel&amp;nbsp; 24 Feb 26&amp;nbsp; 2010 /usr/bin/mvn -&amp;gt; /usr/share/maven/bin/mvn&lt;/div&gt;&lt;div class="p2"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;Most likely, your mvn is linked to /usr/share/maven/bin/mvn&lt;/div&gt;&lt;div class="p2"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;&amp;gt;&amp;nbsp;ls -l /usr/share/maven&lt;/div&gt;&lt;div class="p1"&gt;lrwxr-xr-x&amp;nbsp; 1 root&amp;nbsp; wheel&amp;nbsp; 23 Oct 13 18:14 /usr/share/maven -&amp;gt; java/apache-maven-2.2.1&lt;/div&gt;&lt;div class="p2"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p2"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;However, you may want to install a particular version of maven rather than the version&amp;nbsp;&lt;/div&gt;&lt;div class="p2"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p3"&gt;&lt;span class="s1"&gt;Simply download maven at&amp;nbsp;&lt;/span&gt;&lt;span class="s2"&gt;http://maven.apache.org/download.html&lt;/span&gt;&lt;/div&gt;&lt;div class="p1"&gt;uncompress the file to get apache-maven-2.2.1 folder. &amp;nbsp;place that folder inside /usr/share/java/ folder. &amp;nbsp;&lt;/div&gt;&lt;div class="p2"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;Remove the original /usr/share/maven link and link it to the new maven version.&amp;nbsp;&lt;/div&gt;&lt;div class="p1"&gt;&amp;gt; sudo rm /usr/share/maven&lt;/div&gt;&lt;div class="p1"&gt;&amp;gt; sudo ln -s /usr/share/java/apache-maven-2.2.1 /usr/share/maven&lt;/div&gt;&lt;div class="p2"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;To check that things are done correctly:&lt;/div&gt;&lt;div class="p1"&gt;&amp;gt;&amp;nbsp;ls -l /usr/share/maven&lt;/div&gt;&lt;div class="p1"&gt;&amp;gt; mvn --version&lt;/div&gt;&lt;div class="p2"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-4175200960459691391?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/4175200960459691391/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2011/10/maven-install-on-mac.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/4175200960459691391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/4175200960459691391'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2011/10/maven-install-on-mac.html' title='Maven Install on Mac'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-6L9p1eS9zzA/Tph-I_wdanI/AAAAAAAAA4Q/G6-yMeHdFW4/s72-c/Screen+shot+2011-10-14+at+11.21.03+AM.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-1446739970948493830</id><published>2011-07-21T13:36:00.000-07:00</published><updated>2011-07-21T13:36:18.875-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='javafx2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='javafx'/><title type='text'>Javafx 2.0</title><content type='html'>&lt;div class="permission-allowed"&gt;      &lt;div class="post_body fck-class"&gt;Javafx 2.0 beta is released.&amp;nbsp; GA is scheduled in Q3 2011.&lt;br /&gt;&lt;br /&gt;The big change is they finally get rid of javafx script.&amp;nbsp; Javafx will now uses Java as its language.&lt;br /&gt;This is a welcoming change.&amp;nbsp; Quoting Javafx PM in oracle: "most java  developers want to use the same language to develop their UI".&lt;br /&gt;Potentially, this enables developers to build web applications where frontend and backend use the same language.&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-1446739970948493830?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/1446739970948493830/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2011/07/javafx-20.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/1446739970948493830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/1446739970948493830'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2011/07/javafx-20.html' title='Javafx 2.0'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-2747749264738507773</id><published>2011-04-25T19:52:00.000-07:00</published><updated>2011-04-25T19:54:38.788-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tablet'/><category scheme='http://www.blogger.com/atom/ns#' term='ios'/><category scheme='http://www.blogger.com/atom/ns#' term='prediction'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><category scheme='http://www.blogger.com/atom/ns#' term='ipad'/><title type='text'>Android Tablets Prediction - Android Tablets to surpass iPad</title><content type='html'>&lt;div&gt;Earlier last year, I predicted that Android will surpass iPhone in sales volume. &amp;nbsp;The prediction was proven correct. &amp;nbsp;&lt;/div&gt;&lt;div&gt;(http://nextgenapp.blogspot.com/2010/08/wow-android-prediction-update-my.html, http://nextgenapp.blogspot.com/2010/06/android-prediction.html)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now, I want to put forward another &lt;b&gt;prediction&lt;/b&gt;. &amp;nbsp;&lt;b&gt;&lt;u&gt;Android tablets will surpass iPad sales just like Android phones surpassed iphone sales.&lt;/u&gt;&lt;/b&gt; &amp;nbsp;It may take a year or two, but it will eventually happen.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The reason is simple. &amp;nbsp;&lt;b&gt;The combined innovation of multiple players will eventually overtake one single company.&lt;/b&gt; &amp;nbsp;As long as Apple's iOS remains a closed system, the result will be inevitable. &amp;nbsp;&lt;b&gt;The history will likely repeat itself.&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;When I gave the prediction last year about Android will surpass iPhone, I did not think it was a difficult prediction to make. &amp;nbsp;But many many people were very skeptical about that prediction. &amp;nbsp;With the Android's success, I have a higher confidence level about my prediction this time and I certainly think there will be less skepticism about my prediction this time around. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Let's see how things play out.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-2747749264738507773?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/2747749264738507773/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2011/04/android-tablets-prediction-android.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/2747749264738507773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/2747749264738507773'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2011/04/android-tablets-prediction-android.html' title='Android Tablets Prediction - Android Tablets to surpass iPad'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-2946465065082924787</id><published>2011-03-06T11:03:00.000-08:00</published><updated>2011-03-06T11:04:55.481-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='flash builder'/><category scheme='http://www.blogger.com/atom/ns#' term='air runtime'/><category scheme='http://www.blogger.com/atom/ns#' term='emulator'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><category scheme='http://www.blogger.com/atom/ns#' term='air'/><title type='text'>Installing AIR Runtime on Android emulator</title><content type='html'>You can find the Air Runtime.apk in Flex sdk, Flash Builder, or Flash CS5. &lt;br /&gt;Then use Android's command line adb tool to install Runtime.apk. &amp;nbsp;Apk files are Android package files. &lt;br /&gt;&lt;br /&gt;On Flash Builder Burrito, the emulator Runtime.apk is at:&lt;br /&gt;&lt;flash builder="" folder=""&gt;/sdks/4.5.0/runtimes/air/android/Emulator/Runtime.apk&lt;/flash&gt;&lt;br /&gt;&lt;br /&gt;On a terminal, go to android sdk platform-tools folder&lt;br /&gt;&amp;gt; cd &lt;android_sdk_folder&gt;/platform-tools&lt;/android_sdk_folder&gt;&lt;br /&gt;&amp;gt; ./adb -e install -r &lt;runtime.apk location=""&gt;&lt;/runtime.apk&gt;&lt;br /&gt;&lt;br /&gt;eg.&lt;br /&gt;&amp;gt; cd&amp;nbsp;/Applications/android-sdk-mac_x86/platform-tools&lt;br /&gt;&amp;gt; ./adb -e install -r "/Applications/Adobe Flash Builder Burrito/sdks/4.5.0/runtimes/air/android/Emulator/Runtime.apk"&lt;br /&gt;&lt;br /&gt;After installation, you can go to emulator's settings-&amp;gt; applications -&amp;gt; android applications, you should see "Adobe AIR" as one of the application.&lt;br /&gt;&lt;br /&gt;Done.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-2946465065082924787?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/2946465065082924787/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2011/03/installing-air-runtime-on-android.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/2946465065082924787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/2946465065082924787'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2011/03/installing-air-runtime-on-android.html' title='Installing AIR Runtime on Android emulator'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-5533965721465619352</id><published>2010-12-11T16:38:00.001-08:00</published><updated>2010-12-11T16:38:54.141-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flex builder'/><title type='text'>Require Flash Builder 4 for Egit and MecurialEclipse yet?</title><content type='html'>I just tried install Egit and MecurialEclipse on Flex Builder 3, but looks like it is not compatible with Flex Builder 3. &amp;nbsp;I guess I'll have to upgrade to Flash Builder 4.&lt;br /&gt;I believe Flex Builder 3 is based on Eclipse 3.2.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-5533965721465619352?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/5533965721465619352/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2010/12/require-flash-builder-4-for-egit-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/5533965721465619352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/5533965721465619352'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2010/12/require-flash-builder-4-for-egit-and.html' title='Require Flash Builder 4 for Egit and MecurialEclipse yet?'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-8498135875828723345</id><published>2010-12-01T13:54:00.000-08:00</published><updated>2010-12-01T13:54:46.957-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ontology'/><category scheme='http://www.blogger.com/atom/ns#' term='semantic web'/><category scheme='http://www.blogger.com/atom/ns#' term='commontag'/><category scheme='http://www.blogger.com/atom/ns#' term='ctag'/><title type='text'>CommonTag Ontology Diagram (Semantic Web)</title><content type='html'>Here is a ontology diagram of CommonTag. &lt;br /&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_VcQsDabaYRc/TPbDoMxt14I/AAAAAAAAAkc/yFqGTGkALYk/s1600/commontag_ontology.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="272" src="http://1.bp.blogspot.com/_VcQsDabaYRc/TPbDoMxt14I/AAAAAAAAAkc/yFqGTGkALYk/s400/commontag_ontology.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-8498135875828723345?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/8498135875828723345/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2010/12/commontag-ontology-diagram-semantic-web.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/8498135875828723345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/8498135875828723345'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2010/12/commontag-ontology-diagram-semantic-web.html' title='CommonTag Ontology Diagram (Semantic Web)'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_VcQsDabaYRc/TPbDoMxt14I/AAAAAAAAAkc/yFqGTGkALYk/s72-c/commontag_ontology.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-3646756745958993564</id><published>2010-08-05T01:09:00.000-07:00</published><updated>2010-08-05T01:10:13.204-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='air'/><title type='text'>Installing AIR SDK onto Flex SDK (Mac)</title><content type='html'>Here is a good instructions for installing AIR SDK onto your flex builder's Flex SDK for Mac.&lt;br /&gt;http://radleymarx.com/2010/02/install-air-2-osx/ &amp;nbsp;(by Radley Marx)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-3646756745958993564?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/3646756745958993564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2010/08/installing-air-sdk-onto-flex-sdk-mac.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/3646756745958993564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/3646756745958993564'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2010/08/installing-air-sdk-onto-flex-sdk-mac.html' title='Installing AIR SDK onto Flex SDK (Mac)'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-2515542094923012279</id><published>2010-08-02T16:46:00.000-07:00</published><updated>2010-08-02T16:46:43.012-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='prediction'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Wow! Android Prediction Update - My Prediction Comes True!</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Lucida Grande'; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 11px;"&gt;Wow, wow, wow! &amp;nbsp;My prediction about Android selling more phones than iPhone has come true, much sooner than I predicted. &amp;nbsp;I am wrong in how soon this will occur. &amp;nbsp;It happened this quarter already! &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Lucida Grande'; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 11px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Lucida Grande'; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 11px;"&gt;According to Nielsen,&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Lucida Grande'; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 11px;"&gt;"In terms of subscriptions over the past month, Android has surpassed iPhone in new users, with 27 percent of smartphone subscribers going with Android compared to the iPhone’s 23 percent. "&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Lucida Grande'; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Lucida Grande'; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 11px;"&gt;http://phandroid.com/2010/08/02/android-edges-past-iphone-in-smartphone-subscriptions/&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Lucida Grande'; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 11px;"&gt;http://www.androidguys.com/2010/08/02/nielson-android-outsells-iphone-handsets-q2/&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-2515542094923012279?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/2515542094923012279/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2010/08/wow-android-prediction-update-my.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/2515542094923012279'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/2515542094923012279'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2010/08/wow-android-prediction-update-my.html' title='Wow! Android Prediction Update - My Prediction Comes True!'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-6159201772052556740</id><published>2010-08-02T12:40:00.000-07:00</published><updated>2010-08-02T12:40:36.965-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='httpservice'/><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='issue'/><category scheme='http://www.blogger.com/atom/ns#' term='as3corelib'/><category scheme='http://www.blogger.com/atom/ns#' term='solution'/><title type='text'>Solution to "Problem using as3corelib and HTTService"</title><content type='html'>I encountered this error message in one of my AIR projects.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;VerifyError: Error #1053: Illegal override of concurrency in mx.rpc.http.mxml.HTTPService.&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;It looks like the same error as the one described in:&lt;br /&gt;http://forums.adobe.com/thread/681351?tstart=0&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Steps to reproduce:&lt;/span&gt;&lt;br /&gt;This occurs after I download as3corelib.swc 0.93 and put in my Flex project's libs folder. &amp;nbsp;Inside my app, there is an mx:HttpService.&lt;br /&gt;It looks like some sdk incompatibility.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Solution:&lt;/span&gt;&lt;br /&gt;Instead of putting downloaded as3corelib.swc into libs folder. &amp;nbsp;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;Copy and paste as3corelib source code into your own project.&lt;/span&gt;&lt;/i&gt;&lt;/b&gt; &amp;nbsp;You can download the source code by using svn from http://as3corelib.googlecode.com/svn/trunk/&lt;br /&gt;&lt;br /&gt;For example, I only use JSON library. &amp;nbsp;So I just need to copy com.adobe.serialization.json folder to my project.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-6159201772052556740?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/6159201772052556740/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2010/08/solution-to-problem-using-as3corelib.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/6159201772052556740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/6159201772052556740'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2010/08/solution-to-problem-using-as3corelib.html' title='Solution to &quot;Problem using as3corelib and HTTService&quot;'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-4491081740345158532</id><published>2010-08-02T12:28:00.002-07:00</published><updated>2010-08-02T12:28:35.168-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='prediction'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Android Prediction Update - AdMob predicts more Android than iPhone by end of this year</title><content type='html'>Admob's prediction is a lot more aggressive than &lt;a href="http://nextgenapp.blogspot.com/2010/06/android-prediction.html"&gt;my prediction&lt;/a&gt;. &amp;nbsp;They predict more Android users than iPhone users by end of 2010. &lt;br /&gt;http://venturebeat.com/2010/07/12/mobilebeat-android-users-will-surpass-iphone-users-by-end-of-2010/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-4491081740345158532?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/4491081740345158532/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2010/08/android-prediction-update-admob.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/4491081740345158532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/4491081740345158532'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2010/08/android-prediction-update-admob.html' title='Android Prediction Update - AdMob predicts more Android than iPhone by end of this year'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-4423678755607035520</id><published>2010-08-02T12:28:00.001-07:00</published><updated>2010-08-02T12:28:23.565-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>Android Prediction Update - rumor, Verizon to have iPhone next year</title><content type='html'>When I made a prediction, I did put in a condition. &amp;nbsp;If Apple do let other carriers to carry iPhone, it may change my prediction.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-4423678755607035520?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/4423678755607035520/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2010/08/android-prediction-update-rumor-verizon.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/4423678755607035520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/4423678755607035520'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2010/08/android-prediction-update-rumor-verizon.html' title='Android Prediction Update - rumor, Verizon to have iPhone next year'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-3828112645654061982</id><published>2010-08-02T12:28:00.000-07:00</published><updated>2010-08-02T12:28:00.294-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='prediction'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Android Prediction Update - 1.7m iPhone4 in 3 days, 3m iPhone4 in 3 weeks</title><content type='html'>Although news said that 1.7m iPhone4 sold in 3 days and 3m iPhone4 sold in 3 weeks, I still believe Android will eventually be able to outsell iPhone within a year, unless iPhone is open to other carriers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-3828112645654061982?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/3828112645654061982/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2010/08/android-prediction-update-17m-iphone4.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/3828112645654061982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/3828112645654061982'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2010/08/android-prediction-update-17m-iphone4.html' title='Android Prediction Update - 1.7m iPhone4 in 3 days, 3m iPhone4 in 3 weeks'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-6298606892819188138</id><published>2010-07-12T14:20:00.000-07:00</published><updated>2010-07-12T22:58:30.105-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='prediction'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Update on Android Prediction - 160000 Android Activations a day</title><content type='html'>A few day after my "&lt;a href="http://nextgenapp.blogspot.com/2010/06/android-prediction.html"&gt;Android Prediction&lt;/a&gt;" post, where I think that there will be at least one quarter where Android outsells iPhone (in one year), Google said there are 160000 Android activations a day. &amp;nbsp;More data point to support my prediction. &amp;nbsp;I couldn't ask for a better timing in that announcements. &amp;nbsp;:)&lt;br /&gt;&lt;br /&gt;source:&lt;br /&gt;http://techcrunch.com/2010/06/23/160000-android-phones-sold-per-day/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-6298606892819188138?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/6298606892819188138/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2010/07/update-on-android-prediction-16000.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/6298606892819188138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/6298606892819188138'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2010/07/update-on-android-prediction-16000.html' title='Update on Android Prediction - 160000 Android Activations a day'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-8550305450500516567</id><published>2010-06-24T15:28:00.000-07:00</published><updated>2010-06-24T15:28:02.899-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='secure'/><category scheme='http://www.blogger.com/atom/ns#' term='encryption'/><category scheme='http://www.blogger.com/atom/ns#' term='actionscript'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><title type='text'>Creating more secure swf app</title><content type='html'>This is a good article on creating more secure swf app&lt;br /&gt;http://www.adobe.com/devnet/flashplayer/articles/secure_swf_apps.html&lt;br /&gt;&lt;br /&gt;If your primary focus is on making the data secure in transit, then you should read the "encrypting data" section. &amp;nbsp;That is how I found this article. &amp;nbsp;I had a need to encrypt data in transit.&lt;br /&gt;http://www.adobe.com/devnet/flashplayer/articles/secure_swf_apps_12.html&lt;br /&gt;&lt;br /&gt;Hope it helps.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-8550305450500516567?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/8550305450500516567/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2010/06/creating-more-secure-swf-app.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/8550305450500516567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/8550305450500516567'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2010/06/creating-more-secure-swf-app.html' title='Creating more secure swf app'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-6844219854492184905</id><published>2010-06-19T20:18:00.001-07:00</published><updated>2010-06-19T20:18:54.234-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='smartphone'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Android Prediction</title><content type='html'>The tipping point of Android and iPhone is coming very soon.&lt;br /&gt;&lt;br /&gt;When I say tipping point, I mean when Android will outsell iPhone (not the total devices in the market, but the number of devices sold in that quarter) in one quarter in US. &amp;nbsp;This tipping point should come very quickly barring Apple pulling something drastic (like opening up iPhone to carriers other than AT&amp;amp;T)&lt;br /&gt;&lt;br /&gt;Since early 2009, I have believed that Android will eventually surpass iPhone. &amp;nbsp;That belief has not changed. &lt;br /&gt;&lt;br /&gt;The combined innovation of multiple players will eventually overtake one single company. &amp;nbsp;As long as Apple's iPhone remain a closed system, the result will be inevitable. &amp;nbsp;The history will likely repeat itself.&lt;br /&gt;&lt;br /&gt;Let's look at the PDA market in the past. &amp;nbsp;At the time that Palm has 90% market share, I believed that Windows Mobile (at the time called PocketPC) will eventually overtake Palm. &amp;nbsp;It may take a long while, and it did take several years. &amp;nbsp;But Microsoft eventually was able to overtake Palm in PDA area. &lt;br /&gt;&lt;br /&gt;However, I cannot say that my belief at that time is correct, at that time, I based my belief on gut feeling alone. &amp;nbsp;However, looking back, it appears that several signs were already present at that time that partially foretell such outcome.&lt;br /&gt;&lt;br /&gt;It seems that when a new thing is introduced to consumers, it must be very simple to use for it to catch on. &amp;nbsp;Palm was a master of that. &amp;nbsp;However, as time goes on, people demanded more choices, options, and functionalities. &amp;nbsp;aThat is where the combined industry ecosystem comes in that can overtake a single company. &amp;nbsp;In another word, smart phone market would have been as vibrant if it wasn't for Apple's iPhone. &amp;nbsp;iPhone is a superb devices to convert users to smart phone users, but it also opens the door for the users to accept other smart phones. &amp;nbsp;And that is where Android can excel eventually.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-6844219854492184905?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/6844219854492184905/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2010/06/android-prediction.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/6844219854492184905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/6844219854492184905'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2010/06/android-prediction.html' title='Android Prediction'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-2454180919941245410</id><published>2010-05-26T08:58:00.000-07:00</published><updated>2010-05-26T09:00:56.021-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='appstore'/><title type='text'>App stores - mobile, flash, and beyond</title><content type='html'>Here are some of the appstores. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li style="margin-left: 10px; padding-bottom: 5px; padding-left: 5px; padding-right: 0px; padding-top: 5px;"&gt;&lt;a href="http://www.adobe.com/cfusion/marketplace/index.cfm?event=marketplace.home&amp;amp;marketplaceid=1"&gt;Adobe Marketplace&lt;/a&gt;&lt;/li&gt;&lt;li style="margin-left: 10px; padding-bottom: 5px; padding-left: 5px; padding-right: 0px; padding-top: 5px;"&gt;&lt;a href="http://www.adobe.com/devnet/flashplatform/services/promotion/"&gt;Flash platform promotion service&lt;/a&gt;&lt;/li&gt;&lt;li style="margin-left: 10px; padding-bottom: 5px; padding-left: 5px; padding-right: 0px; padding-top: 5px;"&gt;&lt;a href="http://www.android.com/market/" style="color: #89a210; text-decoration: none;"&gt;Android Market&lt;/a&gt;&amp;nbsp;- for Google Android phones&lt;/li&gt;&lt;li style="margin-left: 10px; padding-bottom: 5px; padding-left: 5px; padding-right: 0px; padding-top: 5px;"&gt;&lt;a href="https://chrome.google.com/webstore"&gt;Chrome Web Store&lt;/a&gt;&amp;nbsp;- appstore for web app - for Google Chrome Browser&lt;/li&gt;&lt;li style="margin-left: 10px; padding-bottom: 5px; padding-left: 5px; padding-right: 0px; padding-top: 5px;"&gt;&lt;a href="http://www.eweek.com/c/a/Application-Development/Sun-Plans-Java-App-Store-194558/" style="color: #89a210; text-decoration: none;"&gt;Sun Java App Store&lt;/a&gt;&lt;/li&gt;&lt;li style="margin-left: 10px; padding-bottom: 5px; padding-left: 5px; padding-right: 0px; padding-top: 5px;"&gt;&lt;a href="http://www.intel.com/consumer/products/appup.htm"&gt;Intel AppUp Center&lt;/a&gt; - for netbooks and atom cpu devices&lt;/li&gt;&lt;li style="margin-left: 10px; padding-bottom: 5px; padding-left: 5px; padding-right: 0px; padding-top: 5px;"&gt;&lt;a href="http://www.microsoft.com/windowsmobile/catalog/cataloghome.aspx" style="color: #89a210; text-decoration: none;"&gt;Windows Market Place for Mobile&lt;/a&gt;&amp;nbsp;&lt;/li&gt;&lt;li style="margin-left: 10px; padding-bottom: 5px; padding-left: 5px; padding-right: 0px; padding-top: 5px;"&gt;&lt;a href="http://na.blackberry.com/eng/services/appworld/?CPID=KNC-SEMD_rimggl99100000050789s&amp;amp;HBX_PK=rimggl99100000050789s&amp;amp;" style="color: #89a210; text-decoration: none;"&gt;BlackBerry App World&lt;/a&gt;&lt;/li&gt;&lt;li style="margin-left: 10px; padding-bottom: 5px; padding-left: 5px; padding-right: 0px; padding-top: 5px;"&gt;&lt;a href="https://store.ovi.com/#/applications" style="color: #89a210; text-decoration: none;"&gt;Nokia Ovi Store&lt;/a&gt;&amp;nbsp;&lt;/li&gt;&lt;li style="margin-left: 10px; padding-bottom: 5px; padding-left: 5px; padding-right: 0px; padding-top: 5px;"&gt;&lt;a href="http://developer.palm.com/" style="color: #89a210; text-decoration: none;"&gt;Palm Pre WebOS App Store&lt;/a&gt;&amp;nbsp;&lt;/li&gt;&lt;li style="margin-left: 10px; padding-bottom: 5px; padding-left: 5px; padding-right: 0px; padding-top: 5px;"&gt;iPhone Appstore&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-2454180919941245410?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/2454180919941245410/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2010/05/app-stores-mobile-flash-and-beyond.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/2454180919941245410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/2454180919941245410'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2010/05/app-stores-mobile-flash-and-beyond.html' title='App stores - mobile, flash, and beyond'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-3074402074842334886</id><published>2010-05-26T01:40:00.000-07:00</published><updated>2010-05-26T01:45:00.909-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='air'/><title type='text'>AIR 3.2 SDK upgrade error: error while loading initial content</title><content type='html'>I run into the same error, thanks to dancashman.com for solution. &lt;br /&gt;http://blog.dancashman.com/?p=30&lt;br /&gt;&lt;br /&gt;Need to update the AIR descriptor file's xml namespace.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Summary:&lt;br /&gt;&lt;br /&gt;Update your descriptor file namespace (yourApplication-app.xml)&lt;br /&gt;&lt;br /&gt;New Value:&lt;br /&gt;&amp;lt;application xmlns=”http://ns.adobe.com/air/application/1.5” &amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-3074402074842334886?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/3074402074842334886/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2010/05/air-32-sdk-upgrade-error-error-while.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/3074402074842334886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/3074402074842334886'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2010/05/air-32-sdk-upgrade-error-error-while.html' title='AIR 3.2 SDK upgrade error: error while loading initial content'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-4698628075812208882</id><published>2010-05-01T09:50:00.000-07:00</published><updated>2010-05-01T09:50:22.389-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='tip'/><category scheme='http://www.blogger.com/atom/ns#' term='ssl'/><title type='text'>Tip: Flex with https require the web page to be https too</title><content type='html'>Just a quick tip.&lt;br /&gt;&lt;br /&gt;Flex can make SSL call by simply specify "https" in the url of HTTPService. &amp;nbsp;However, the enclosing page must be in https for this to work. &amp;nbsp;Otherwise, you may get "&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;Security Sandbox Violation" like the one below:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;*** Security Sandbox Violation ***&lt;/blockquote&gt;&lt;blockquote&gt;Connection to https://graph.facebook.com/me/friends?access_token=xyz halted - not permitted from http://localhost:8888/xyz/xyz.swf&lt;/blockquote&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-4698628075812208882?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/4698628075812208882/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2010/05/tip-flex-with-https-require-web-page-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/4698628075812208882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/4698628075812208882'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2010/05/tip-flex-with-https-require-web-page-to.html' title='Tip: Flex with https require the web page to be https too'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-2432154930918057138</id><published>2010-04-22T01:11:00.000-07:00</published><updated>2010-04-22T01:18:19.598-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='semantic web'/><category scheme='http://www.blogger.com/atom/ns#' term='rdfa'/><category scheme='http://www.blogger.com/atom/ns#' term='graph api'/><category scheme='http://www.blogger.com/atom/ns#' term='rdf'/><category scheme='http://www.blogger.com/atom/ns#' term='opengraph'/><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='f8'/><title type='text'>Facebook f8 announcements: Graph api, OpenGraph protocol, and plugins</title><content type='html'>Today's Facebook F8 conference has 3 major announcements&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;1. Plugins for 3rd-party websites&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;2. Graph API&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;3. OpenGraph protocol&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;1.&amp;nbsp;plugins for 3rd-party websites&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This includes:&lt;br /&gt;Activity stream plugin – allows other website to add Facebook “news feed” to their site&lt;br /&gt;Social bar plugin – allows other website to add barlet at bottom of their site. &amp;nbsp;Chat included.javascript:void(0)&lt;br /&gt;Like plugin – allows other website to add Facebook “Like” button&lt;br /&gt;Login plugin – can show which of your friends have login to this site.&lt;br /&gt;Recommendation plugin&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;2. Graph API&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Facebook have overhauled their api. &amp;nbsp;The so-called "Graph" api is now the way for apps to access all api. &amp;nbsp;&lt;/div&gt;&lt;br /&gt;http://developers.facebook.com/docs/api&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;3.&amp;nbsp;OpenGraph protocol&lt;/span&gt;&lt;br /&gt;This requires some explanation. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Calibri, Verdana, Helvetica, Arial;"&gt;&lt;span style="font-size: 11pt;"&gt;OpenGraph protocol specifies a set of structured meta data that can be more easily understood and categorized by machines. &amp;nbsp;Once a 3rd-party website embed these data, it allows facebook to include the site and these data as part of the Facebook OpenGraph.&lt;br /&gt;&lt;br /&gt;Eg. IMDB website can use OpenGraph protocol to describe a movie object&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Consolas, 'Courier New', Courier; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;span class="Apple-style-span" style="font-family: Calibri, Verdana, Helvetica, Arial; font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Calibri, Verdana, Helvetica, Arial;"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;span class="Apple-style-span" style="font-family: Consolas, 'Courier New', Courier; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;span class="Apple-style-span" style="font-family: Calibri, Verdana, Helvetica, Arial; font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Calibri, Verdana, Helvetica, Arial;"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;span class="Apple-style-span" style="font-family: Consolas, 'Courier New', Courier; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;span class="Apple-style-span" style="font-family: Calibri, Verdana, Helvetica, Arial; font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas, 'Courier New', Courier;"&gt;&lt;span style="font-size: 10pt;"&gt;&amp;lt;html xmlns:og="&lt;span style="color: blue;"&gt;&lt;u&gt;&lt;a href="http://opengraphprotocol.org/schema/"&gt;http://opengraphprotocol.org/schema/&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xmlns:fb="&lt;span style="color: blue;"&gt;&lt;u&gt;&lt;a href="http://developers.facebook.com/schema/"&gt;http://developers.facebook.com/schema/&lt;/a&gt;"&amp;gt;&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;head&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;lt;title&amp;gt;The Rock (1996)&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;lt;meta property="&lt;b&gt;og:title&lt;/b&gt;" content="The Rock" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;lt;meta property="&lt;b&gt;og:type&lt;/b&gt;" content="movie" /&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Calibri, Verdana, Helvetica, Arial;"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;span class="Apple-style-span" style="font-family: Consolas, 'Courier New', Courier; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;span class="Apple-style-span" style="font-family: Calibri, Verdana, Helvetica, Arial; font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas, 'Courier New', Courier;"&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;lt;meta property="&lt;b&gt;og:url&lt;/b&gt;" content="&lt;span style="color: blue;"&gt;&lt;u&gt;&lt;a href="http://www.imdb.com/title/tt0117500/"&gt;http://www.imdb.com/title/tt0117500/&lt;/a&gt;&lt;/u&gt;&lt;/span&gt; "/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Calibri, Verdana, Helvetica, Arial;"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;span class="Apple-style-span" style="font-family: Consolas, 'Courier New', Courier; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;span class="Apple-style-span" style="font-family: Calibri, Verdana, Helvetica, Arial; font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas, 'Courier New', Courier;"&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;lt;meta property="&lt;b&gt;og:image&lt;/b&gt;" content="&lt;span style="color: blue;"&gt;&lt;u&gt;&lt;a href="http://ia.media-imdb.com/rock.jpg"&gt;http://ia.media-imdb.com/rock.jpg&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;" /&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Calibri, Verdana, Helvetica, Arial;"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;span class="Apple-style-span" style="font-family: Consolas, 'Courier New', Courier; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;span class="Apple-style-span" style="font-family: Calibri, Verdana, Helvetica, Arial; font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas, 'Courier New', Courier;"&gt;&lt;span style="font-size: 10pt;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;...&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/head&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Calibri, Verdana, Helvetica, Arial;"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;span class="Apple-style-span" style="font-family: Consolas, 'Courier New', Courier; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;span class="Apple-style-span" style="font-family: Calibri, Verdana, Helvetica, Arial; font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas, 'Courier New', Courier;"&gt;&lt;span style="font-size: 10pt;"&gt; &amp;nbsp;&amp;nbsp;...&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Calibri, Verdana, Helvetica, Arial;"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;span class="Apple-style-span" style="font-family: Consolas, 'Courier New', Courier; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;span class="Apple-style-span" style="font-family: Calibri, Verdana, Helvetica, Arial; font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Calibri, Verdana, Helvetica, Arial;"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;span class="Apple-style-span" style="font-family: Consolas, 'Courier New', Courier; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;span class="Apple-style-span" style="font-family: Calibri, Verdana, Helvetica, Arial; font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas, 'Courier New', Courier;"&gt;&lt;span style="font-size: 10pt;"&gt;When this is included, Facebook can store this site as an object in the OpenGraph. &amp;nbsp;And that object will have these properties: title="The Rock", type="movie", url="...", image="...".&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas, 'Courier New', Courier;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Consolas, 'Courier New', Courier; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Consolas, 'Courier New', Courier;"&gt;How is OpenGraph significant? &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas, 'Courier New', Courier;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Consolas, 'Courier New', Courier; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;If facebook's vision of opengraph&amp;nbsp;succeed, they could be the connector of the web!&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Consolas, 'Courier New', Courier; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Consolas, 'Courier New', Courier; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;In terms of the flexibility and coverage, what facebook wants to do with  OpenGraph may seem like a baby step comparing to what Semantic Web  wants to do. Facebook only define a small set of predefined meta data. &amp;nbsp;While semantic web have various powerful ontologies already defined. &amp;nbsp;However, with facebook's reach and appeal, facebook might finally  get a lot of website owners to embed structured metadata, which would be a significant milestone for semantic web in any case. &amp;nbsp;This may turn out to be a  giant leap for semantic web. &amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Consolas, 'Courier New', Courier; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Consolas, 'Courier New', Courier; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas, 'Courier New', Courier;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-2432154930918057138?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/2432154930918057138/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2010/04/facebook-f8-announcements-graph-api.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/2432154930918057138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/2432154930918057138'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2010/04/facebook-f8-announcements-graph-api.html' title='Facebook f8 announcements: Graph api, OpenGraph protocol, and plugins'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-5890516332902529686</id><published>2010-04-22T00:34:00.000-07:00</published><updated>2010-04-22T00:41:00.261-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>Apple should not limit the language used by developers</title><content type='html'>Many people were pretty upset about Apple's decision two weeks ago to ban users from using other programming language to develop iPhone app.  All I can say is that I did not remember Microsoft banning developers from using other languages to develop on Windows.   Apple seems to be worse than Microsoft in this case.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-5890516332902529686?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/5890516332902529686/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2010/04/apple-should-not-limit-language-used-by.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/5890516332902529686'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/5890516332902529686'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2010/04/apple-should-not-limit-language-used-by.html' title='Apple should not limit the language used by developers'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-1276415912788430806</id><published>2010-04-01T01:08:00.000-07:00</published><updated>2010-04-01T01:11:08.664-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='event'/><category scheme='http://www.blogger.com/atom/ns#' term='flex 4'/><category scheme='http://www.blogger.com/atom/ns#' term='livecycle'/><title type='text'>Event: FLEX 4 Launch Tour and Livecycle Code Night</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: medium; -webkit-border-horizontal-spacing: 5px; -webkit-border-vertical-spacing: 5px; "&gt;&lt;br /&gt;&lt;table width="100%" border="0" align="center" cellpadding="0" cellspacing="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="H3" style="font-family: 'Trebuchet MS', Arial, Helvetica, sans-serif; font-size: 18px; font-weight: bold; color: rgb(255, 102, 51); "&gt;FLEX 4 Launch Tour and Livecycle Code Night&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 5px; -webkit-border-vertical-spacing: 5px; "&gt;&lt;table width="100%" border="0" align="center" cellpadding="0" cellspacing="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="H3" style="font-family: 'Trebuchet MS', Arial, Helvetica, sans-serif; font-size: 18px; font-weight: bold; color: rgb(255, 102, 51); "&gt;Thursday April 1st&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="H3" style="font-family: 'Trebuchet MS', Arial, Helvetica, sans-serif; font-size: 18px; font-weight: bold; color: rgb(255, 102, 51); "&gt;6:30 Pizza, 7pm Meeting&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p style="color: rgb(0, 0, 102); font-family: Arial, Helvetica, sans-serif; font-size: 12pt; "&gt;Sponsored by Adobe&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p class="event" style="color: rgb(51, 51, 51); font-family: Arial, Helvetica, sans-serif; font-size: 14px; "&gt;Adobe HQ - East Tower&lt;br /&gt;345 Park Ave&lt;br /&gt;San Jose, CA 95110&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p style="color: rgb(0, 0, 102); font-family: Arial, Helvetica, sans-serif; font-size: 12pt; "&gt;&lt;span class="event" style="font-family: Arial, Helvetica, sans-serif; font-size: 14px; color: rgb(51, 51, 51); "&gt;&lt;/span&gt;&lt;a href="http://www.meetup.com/silvafug/calendar/12757061/" style="color: rgb(63, 169, 245); text-decoration: underline; "&gt;rsvp&lt;/a&gt; | &lt;a href="http://maps.google.com/maps?f=q&amp;amp;source=s_q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=East+Tower,+San+Jose,+CA+95110,+us&amp;amp;sll=37.546758,-122.176514&amp;amp;sspn=0.547673,0.844574&amp;amp;ie=UTF8&amp;amp;ll=37.340411,-121.893139&amp;amp;spn=0.068649,0.105572&amp;amp;z=13&amp;amp;iwloc=A" style="color: rgb(63, 169, 245); text-decoration: underline; "&gt;map&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/span&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p style="color: rgb(0, 0, 102); font-family: Arial, Helvetica, sans-serif; font-size: 12pt; "&gt;&lt;strong&gt;Duane Nickull&lt;/strong&gt; (aka Duane Chaos) is in town so we are getting him and the local Livecycle evangelists out for a special evening on &lt;strong&gt;Flex 4&lt;/strong&gt; (the new release) and &lt;strong&gt;Livecycle&lt;/strong&gt;!! The evening will involve an early start for those wanting to learn about getting started with Livecycle followed by increasingly in-depth code examples and reviews.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="H3" style="font-family: 'Trebuchet MS', Arial, Helvetica, sans-serif; font-size: 18px; font-weight: bold; color: rgb(255, 102, 51); "&gt;Speakers&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="event" style="font-family: Arial, Helvetica, sans-serif; font-size: 14px; color: rgb(51, 51, 51); "&gt;&lt;li&gt;&lt;strong&gt;Duane Nickull&lt;/strong&gt; (&lt;a href="http://technoracle.blogspot.com/" style="color: rgb(63, 169, 245); text-decoration: underline; "&gt;blog&lt;/a&gt;) - Adobe Evangelist&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Bill Shapiro&lt;/strong&gt; (&lt;a href="http://www.linkedin.com/ppl/webprofile?vmi=&amp;amp;id=2792457&amp;amp;pvs=pp&amp;amp;authToken=5Dgi&amp;amp;authType=name&amp;amp;locale=en_US&amp;amp;trk=ppro_viewmore&amp;amp;lnk=vw_pprofile" style="color: rgb(63, 169, 245); text-decoration: underline; "&gt;Linkedin&lt;/a&gt;) - Technology Entrepeneur at Adobe Systems&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Matthais Zeller&lt;/strong&gt; (&lt;a href="http://matthiaszeller.com/blog/" style="color: rgb(63, 169, 245); text-decoration: underline; "&gt;blog&lt;/a&gt;) - Group Product Manager, Enterprise Rich Internet Applications&lt;/li&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: medium; -webkit-border-horizontal-spacing: 5px; -webkit-border-vertical-spacing: 5px; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: medium; -webkit-border-horizontal-spacing: 5px; -webkit-border-vertical-spacing: 5px; "&gt;More info at: &lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; font-family: Georgia, serif; font-size: 16px; "&gt;&lt;a href="http://silvafug.org/"&gt;http://silvafug.org/&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-1276415912788430806?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/1276415912788430806/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2010/04/event-flex-4-launch-tour-and-livecycle.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/1276415912788430806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/1276415912788430806'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2010/04/event-flex-4-launch-tour-and-livecycle.html' title='Event: FLEX 4 Launch Tour and Livecycle Code Night'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-8474347945466814731</id><published>2009-12-30T22:03:00.001-08:00</published><updated>2009-12-30T22:33:37.602-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='mxml'/><category scheme='http://www.blogger.com/atom/ns#' term='actionscript'/><category scheme='http://www.blogger.com/atom/ns#' term='data_binding'/><title type='text'>Data binding in Flex</title><content type='html'>&lt;div&gt;Data binding (usually done using {} in mxml) is one of the best features in Flex.  It simplifies a lot of coding.  Underneath the hood, Flex actually generates a lot of code to handle the data binding.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Note:&lt;/div&gt;&lt;div&gt;&lt;div&gt;You can skip the rest of this article and just read Chapter 40 of the Flex Developer Guide.   &lt;/div&gt;&lt;div&gt;&lt;a href="http://livedocs.adobe.com/flex/3/devguide_flex3.pdf"&gt;http://livedocs.adobe.com/flex/3/devguide_flex3.pdf&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The easiest way to do data binding is {} in mxml.  It is so easy to use and so easy to understand that it is like magic.  However, one often has questions about what can or cannot be put into the {}.  Object properties (eg.   object1.abc) are definitely allowed.  Chains like object1.subobj.subsubobj.subsubsubobj.property are also allowed.  Is functions allowed?  Is array allowed?  The best source is chapter 40 of the Flex Developer Guide.   &lt;/div&gt;&lt;div&gt;&lt;a href="http://livedocs.adobe.com/flex/3/devguide_flex3.pdf"&gt;http://livedocs.adobe.com/flex/3/devguide_flex3.pdf&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To debug {} bindings, see &lt;span class="Apple-style-span"   style="  color: rgb(51, 51, 51); font-weight: bold; line-height: 19px; font-family:verdana, tahoma, arial, sans-serif;font-size:12px;"&gt;Debugging bindings&lt;span class="Apple-style-span"   style="color: rgb(0, 0, 0);   font-weight: normal; line-height: normal; font-family:Georgia, serif;font-size:16px;"&gt; section in &lt;span class="Apple-style-span"   style="  color: rgb(153, 153, 153); line-height: 17px; font-family:verdana, tahoma, arial, sans-serif;font-size:11px;"&gt;&lt;a href="http://dodgybits.org/author/andybryant/" title="Posts by andybryant" style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; text-decoration: none; color: rgb(38, 94, 21); "&gt;andybryant&lt;/a&gt;&lt;span class="Apple-style-span"   style="color: rgb(0, 0, 0);   line-height: normal; font-family:Georgia, serif;font-size:16px;"&gt;'s blog:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://dodgybits.org/2009/04/12/flex-data-binding-pitfalls/"&gt;http://dodgybits.org/2009/04/12/flex-data-binding-pitfalls/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Data binding can be done in many ways:&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;{} in mxml&lt;/li&gt;&lt;li&gt;&amp;lt;mx:Binding&amp;gt;  tag in mxml&lt;/li&gt;&lt;li&gt;BindingUtils class&lt;/li&gt;&lt;li&gt;ChangeWatcher class&lt;mx:binding&gt;&lt;/mx:binding&gt;&lt;/li&gt;&lt;li&gt;good old event listener&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-8474347945466814731?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/8474347945466814731/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2009/12/data-binding-in-flex.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/8474347945466814731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/8474347945466814731'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2009/12/data-binding-in-flex.html' title='Data binding in Flex'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-8932394420859943389</id><published>2009-10-29T08:03:00.001-07:00</published><updated>2009-10-29T08:07:22.115-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google wave'/><category scheme='http://www.blogger.com/atom/ns#' term='appstore'/><title type='text'>More confirmation that Wave App Store is coming</title><content type='html'>&lt;div&gt;During the one-day Google Wave hackathon at Googleplex in July, Lars Resmussen gave a short speech and mentioned that there will be a wave app store.  It appears that this is reiterated during the London Wave hackathon.  This is a good news for developers.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;http://thenextweb.com/appetite/2009/10/27/google-wave-app-store/&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-8932394420859943389?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/8932394420859943389/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2009/10/more-confirmation-that-wave-app-store.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/8932394420859943389'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/8932394420859943389'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2009/10/more-confirmation-that-wave-app-store.html' title='More confirmation that Wave App Store is coming'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-1266861205961275057</id><published>2009-09-30T23:33:00.000-07:00</published><updated>2009-09-30T23:34:55.100-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google wave'/><title type='text'>Google Wave Preview invite released</title><content type='html'>Google has released invites to Google Wave Preview.  Many people, including me, has received the invites.  According to Google, they will continue release invite in batches over the next 24 hours.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-1266861205961275057?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/1266861205961275057/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2009/09/google-wave-preview-invite-released.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/1266861205961275057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/1266861205961275057'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2009/09/google-wave-preview-invite-released.html' title='Google Wave Preview invite released'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-5923448773665908528</id><published>2009-09-29T18:40:00.000-07:00</published><updated>2009-09-29T18:43:51.114-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google wave'/><title type='text'>Google Wave limited beta release tomorrow 9/30</title><content type='html'>Google will give an limited beta release (100,000 people) on 9/30 to public.   :)  If you sign up on http://wave.google.com a long time ago, you might get the invitation tomorrow.  &lt;div&gt;&lt;a href="http://googleblog.blogspot.com/2009/09/surfs-up-wednesday-google-wave-update.html"&gt;http://googleblog.blogspot.com/2009/09/surfs-up-wednesday-google-wave-update.html&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-5923448773665908528?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/5923448773665908528/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2009/09/google-wave-limited-beta-release.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/5923448773665908528'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/5923448773665908528'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2009/09/google-wave-limited-beta-release.html' title='Google Wave limited beta release tomorrow 9/30'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-402407141404855140</id><published>2009-08-24T09:04:00.000-07:00</published><updated>2009-08-24T09:09:34.070-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><title type='text'>Flex and Flash Integration</title><content type='html'>I had come across a few quick and sweet Flex and Flash integration tutorials done by Adobe evangelist &lt;span class="Apple-style-span" style="font-family: arial; color: rgb(51, 51, 51); font-size: 11px; "&gt;&lt;a href="http://www.webkitchen.be/author/serge/" title="Posts by Serge Jespers" style="text-decoration: underline; outline-style: none; outline-width: initial; outline-color: initial; color: rgb(51, 51, 51); "&gt;Serge Jespers&lt;/a&gt; &lt;/span&gt;.  It covers how to build a component in CS4 and use it in Flex.  It also covers create a swc in Flex and use in CS4.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.webkitchen.be/2008/12/12/video-tutorial-make-flex-components-with-flash-cs4/"&gt;http://www.webkitchen.be/2008/12/12/video-tutorial-make-flex-components-with-flash-cs4/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.webkitchen.be/2008/05/05/the-flash-and-flex-marriage/"&gt;http://www.webkitchen.be/2008/05/05/the-flash-and-flex-marriage/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.webkitchen.be/2009/03/09/video-tutorial-use-flex-for-your-actionscript-coding-for-flash-cs4/"&gt;http://www.webkitchen.be/2009/03/09/video-tutorial-use-flex-for-your-actionscript-coding-for-flash-cs4/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-402407141404855140?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/402407141404855140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2009/08/flex-and-flash-integration.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/402407141404855140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/402407141404855140'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2009/08/flex-and-flash-integration.html' title='Flex and Flash Integration'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-7400623398392762078</id><published>2009-08-15T13:30:00.001-07:00</published><updated>2009-08-16T22:58:27.330-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google wave'/><title type='text'>a couple blog posts about wave</title><content type='html'>Here are a couple blog posts from gtug campout members.  &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Peter Huboi gave a few ideas on how wave can be used for music industry.  &lt;a href="http://marketingplaylistpower.wordpress.com/2009/06/15/how-will-google-wave-impact-online-music/"&gt;http://marketingplaylistpower.wordpress.com/2009/06/15/how-will-google-wave-impact-online-music/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Paul Böhm&lt;span class="Apple-style-span" style="font-weight: bold; "&gt; &lt;/span&gt;talks about what wave is.  The important point, as he points out, is that wave's potential goes wells beyond the current wave UI.  Evaluating wave based on current UI is selling short of its potential. &lt;/div&gt;&lt;div&gt;http://lolstartups.com/post/159309953/wave-is-the-new-x-windows&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-7400623398392762078?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/7400623398392762078/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2009/08/couple-blog-posts-about-wave.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/7400623398392762078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/7400623398392762078'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2009/08/couple-blog-posts-about-wave.html' title='a couple blog posts about wave'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-6242426353684561794</id><published>2009-08-12T22:56:00.000-07:00</published><updated>2009-08-12T22:57:52.897-07:00</updated><title type='text'>The GTUG campout hackathon was so fun.</title><content type='html'>It was such fun, I had a blast.  Details later.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-6242426353684561794?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/6242426353684561794/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2009/08/gtug-campout-hackathon-was-so-fun.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/6242426353684561794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/6242426353684561794'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2009/08/gtug-campout-hackathon-was-so-fun.html' title='The GTUG campout hackathon was so fun.'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-5446895096748108500</id><published>2009-08-05T14:02:00.000-07:00</published><updated>2009-08-05T14:18:03.963-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google wave'/><title type='text'>google-wave-api group activity level is up</title><content type='html'>Right after wave is announced, I remember google-wave-api having more than 100 emails a day.  After a while, the email volumn went way down, presumably because people who receive wave sandbox account have moved the discussion to wave-discuss@wavesandbox.com.  Since last week, I have noticed that the volumn is up again.  This is a good sign.  This may be due to arrival of new sandbox accounts.  Or it may be the due to shutdown of wave-discuss@wavesandbox.com.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-5446895096748108500?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/5446895096748108500/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2009/08/google-wave-api-group-activity-level-is.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/5446895096748108500'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/5446895096748108500'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2009/08/google-wave-api-group-activity-level-is.html' title='google-wave-api group activity level is up'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-6676685051418122904</id><published>2009-08-04T14:39:00.000-07:00</published><updated>2009-08-04T14:40:58.583-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google wave'/><category scheme='http://www.blogger.com/atom/ns#' term='event'/><title type='text'>Wave related events</title><content type='html'>&lt;div&gt;Google development blog listed a number of events in addition to the SV Bay Area events listed in this blog a few days ago.&lt;/div&gt;&lt;div&gt;&lt;a href="http://nextgenapp.blogspot.com/2009/08/this-week-should-be-called-google-wave.html"&gt;http://nextgenapp.blogspot.com/2009/08/this-week-should-be-called-google-wave.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://googlewavedev.blogspot.com/2009/07/google-wave-community-events.html"&gt;http://googlewavedev.blogspot.com/2009/07/google-wave-community-events.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://code.google.com/events/calendar/"&gt;http://code.google.com/events/calendar/&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-6676685051418122904?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/6676685051418122904/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2009/08/wave-related-events.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/6676685051418122904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/6676685051418122904'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2009/08/wave-related-events.html' title='Wave related events'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-6722613956355072604</id><published>2009-08-03T11:47:00.001-07:00</published><updated>2009-08-03T11:49:15.369-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google wave'/><category scheme='http://www.blogger.com/atom/ns#' term='appstore'/><title type='text'>Wave AppStore?</title><content type='html'>How many of you out there would like to see Google creating a wave appstore (or wave marketplace, whatever the name is)?  If so, please leave a comment here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-6722613956355072604?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/6722613956355072604/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2009/08/wave-appstore.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/6722613956355072604'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/6722613956355072604'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2009/08/wave-appstore.html' title='Wave AppStore?'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-3688210485012441379</id><published>2009-08-02T15:44:00.001-07:00</published><updated>2009-08-03T11:51:36.220-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google wave'/><category scheme='http://www.blogger.com/atom/ns#' term='event'/><title type='text'>This week should be called Google Wave Week in Silicon Valley</title><content type='html'>Well, it was not really an official thing, but there are enough exciting Wave events in Silicon Valley to make every wave enthusiasts abuzz with the nice tinkling feeling.   :)&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. First of all, Bay Area Wave Meetup &lt;/div&gt;&lt;div&gt;time: Monday, 2009/08/03&lt;/div&gt;&lt;div&gt;organizer/contact: Lawrence Wong&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style=" border-collapse: collapse;  font-family:arial;font-size:13px;"&gt;&lt;a href="http://www.meetup.com/bagwmg/calendar/10872339/" target="_blank" style="color: rgb(6, 88, 181); "&gt;http://www.meetup.com/bagwmg/&lt;wbr&gt;calendar/10872339/&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="border-collapse: collapse; font-size:13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="border-collapse: collapse; font-size:13px;"&gt;Topic: Presentation by Jochen Bekmann on wave federation.  Jochen is a part of Sydney's Google Wave team.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="border-collapse: collapse; font-size:13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="border-collapse: collapse; font-size:13px;"&gt;2. Google Technology User Group on Wave&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="border-collapse: collapse; font-size:13px;"&gt;Time: Wednesday, 2009/08/05&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="border-collapse: collapse; font-size:13px;"&gt;organizer/contact: Van Riper&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="border-collapse: collapse; font-size:13px;"&gt;&lt;a href="http://www.meetup.com/sv-gtug/calendar/10853983/" target="_blank" style="color: rgb(6, 88, 181); "&gt;http://www.meetup.com/sv-gtug/&lt;wbr&gt;calendar/10853983/&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="border-collapse: collapse; font-size:13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="border-collapse: collapse; font-size:13px;"&gt;Topic: wave extensions&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="border-collapse: collapse; font-size:13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="border-collapse: collapse; font-size:13px;"&gt;3. Then the crown jewel:  3 day GTUG (Google Technology User Group) campout&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="border-collapse: collapse; font-size:13px;"&gt;Time: Friday, 2009/08/07-2009/08/09  Organizer/contact: Van Riper&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:7;"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-size: 48px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="border-collapse: collapse; font-size:13px;"&gt;&lt;a href="http://gtug-campout-sv.eventbrite.com/" target="_blank" style="color: rgb(6, 88, 181); "&gt;http://gtug-campout-sv.&lt;wbr&gt;eventbrite.com/&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="border-collapse: collapse; font-size:13px;"&gt;This is a 3 day hackathon focus on wave or other Google technology.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="border-collapse: collapse; font-size:13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="border-collapse: collapse; font-size:13px;"&gt;Nice...&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-3688210485012441379?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/3688210485012441379/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2009/08/this-week-should-be-called-google-wave.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/3688210485012441379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/3688210485012441379'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2009/08/this-week-should-be-called-google-wave.html' title='This week should be called Google Wave Week in Silicon Valley'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-4832695430019237734</id><published>2009-08-02T15:37:00.000-07:00</published><updated>2009-08-06T14:13:20.894-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='palm pre'/><category scheme='http://www.blogger.com/atom/ns#' term='google wave'/><category scheme='http://www.blogger.com/atom/ns#' term='mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='wave'/><title type='text'>Wave on Palm Pre</title><content type='html'>I was playing with my friend's Palm Pre and thought I will try to see if wave website works on Pre.   and viola!  It works.  &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Pre loads the standard desktop browser wave website. When I login, I saw the standard 3 columns layout, same as the layout seen on desktop browser. When I login using iPhone's browser, it only shows the inbox column (clicking on it will show the message column).  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here is the screenshot.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://2.bp.blogspot.com/_VcQsDabaYRc/SntHWhzGspI/AAAAAAAAAhc/LWhq96npX1g/s400/browser_2009-01-08_233144+(2).jpg" style="cursor:pointer; cursor:hand;width: 267px; height: 400px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5366961833297490578" /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-4832695430019237734?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/4832695430019237734/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2009/08/wave-on-palm-pre.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/4832695430019237734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/4832695430019237734'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2009/08/wave-on-palm-pre.html' title='Wave on Palm Pre'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_VcQsDabaYRc/SntHWhzGspI/AAAAAAAAAhc/LWhq96npX1g/s72-c/browser_2009-01-08_233144+(2).jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-2036553033686163061</id><published>2009-07-22T20:18:00.000-07:00</published><updated>2009-07-22T20:22:43.368-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google wave'/><category scheme='http://www.blogger.com/atom/ns#' term='wave federation'/><category scheme='http://www.blogger.com/atom/ns#' term='wave protocol'/><title type='text'>Wave Federation Day session notes</title><content type='html'>Thanks to the tireless dedication of those people who took the notes, those of us who did not attend Wave Federation Day can get some information.  &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you have a wave sandbox account, you can see the original version here: &lt;/div&gt;&lt;div&gt;&lt;a href="https://wave.google.com/a/wavesandbox.com/#restored:nav,restored:contact,restored:digest,restored:wave:wavesandbox.com!w%252BfieoAKhX%2525A.1"&gt;https://wave.google.com/a/wavesandbox.com/#restored:nav,restored:contact,restored:digest,restored:wave:wavesandbox.com!w%252BfieoAKhX%2525A.1&lt;/a&gt;&lt;/div&gt;&lt;div&gt;If you do not have a wave sandbox account, the notes are copy &amp;amp; pasted here:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;---------------------------&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial; font-size: 13px; line-height: 17px; white-space: pre-wrap; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;It's important everyone agree on the operational transformation (OT) algorithm.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;Waves consist of Wavelets&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;Wavelets have participants&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;Wavelets have XML documents and annotations&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;The different wavelets in a wave can have different participants (so parts of the wavelet are private to some groups of users)&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;changes are operations&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;operations can be composed&lt;span x="y" style="color: white; "&gt;Captain&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;a x="y" href="http://www.google.com/url?sa=D&amp;amp;q=http%3A%2F%2Fwaveprotocol.org" target="_blank" style="font-family: arial, sans-serif; color: rgb(0, 62, 168); "&gt;http://waveprotocol.org&lt;/a&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;Download source from: &lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;a x="y" href="http://www.google.com/url?sa=D&amp;amp;q=http%3A%2F%2Fcode.google.com%2Fp%2Fwave-protocol%2Fsource%2Fcheckout" target="_blank" style="font-family: arial, sans-serif; color: rgb(102, 77, 159); "&gt;http://code.google.com/p/wave-protocol/source/checkout&lt;/a&gt; checkout via mercurial&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p t="h3" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-weight: bold; font-size: 1.66667em; "&gt;Google Wave Federation Architecture - Soren Lassen&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;What's in today's open source release&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;org.waveprotocol.wave.model&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;operational transformation (OT)&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;operations, documents&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;org&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;.waveprotocol.wave.protocol&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;protobuf definitions for signing, hashing, internal use&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;org.waveprotocol.wave.examples.fedone&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;end-to-end prototype&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;wave server, wave client, federation port spec&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;some security and other gaps filled&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;XMPP mapping refinements&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;What's missing from today's release&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;not a reference impl&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;no persistent storage&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;crude indexing&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;no concern for performance, redundancy, scaling&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;simplistic client&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;no private replies&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;no&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; client-side OT, no optimistic UI (get new state from svr )&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;crude ACLs&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;no groups&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;no attachments&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;simple expensive crypto signing&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;no Merkle-tree bundles&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p t="h3" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-weight: bold; font-size: 1.66667em; "&gt;Q&amp;amp;A (after lunch &amp;amp; Soren's talk )&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Is the protocol locked down?&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;The protocol is a moving target&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;What is an IQ stanza?&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Soren: What you pass in XMPP, these fragments of XML called stanzas, comes from XMPP standards.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Do you have some kind of prioritized list of things that need to be done and a way for developers&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; to indicate interest?&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Dan: No. - Good idea and Dan would capture this in a wave.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Do you forsee any policy management at the protocol level?&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Soren: The protocol draft will eventually be locked into standards org&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;(?) when it reaches that stage. &lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Dan: Different providers will have to have different policies for rejection, etc. of operations&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;How will the XML be compressed and bit rate managed?&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt; Soren: Total bit rates shouldn't be too scary. We don't think it is a present concern. Don't have answers in that area.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Is there anything in the protocol that can accept some notion of "throttling" ? I don't want to accept it at this rate or I don't want to accept a particular operation.&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;You could ignore messages and force a resend, and the resend might start bundling things.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Are we planning to support any proprietary authentication schemes? (clarification from audience: suppose you run your own server and want to auth through your own LDAP, etc... )&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Allen: No, nothing like that exists in the planned prototype implementation. Dan: We provide Open ID. That would flow through. Allen: Help your self with the open code. Dan: bring your reqs to the protocol group.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Where is the XML specified that actually stores the document&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; itself?&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Soren: Should be easy&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; to reverse engineer what the XML looks like. We should display this. We will provide specs for this.  &lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Are there standards you are expecting to incorporate? Or are you looking to refine that? Something like RFC822&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Allen: No. Waves have a different format than email. We want to accomidate different formats, but need your help to do so&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;HTML 5? Soren: the representation used has to be amenible&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; to OT&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;If I do go about creating my own wave server, how can I get gadgets to work? &lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Dan: All the types of the APIs are very important to the wave experience. We will need to figure out a way to have the API layer be standarized&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; across wave providers. Something like OpenSocial. Robots are a newer piece. The wire protocol for instance is not published anywhere right now. Embed is a more basic Javascript API. I hope it will be easy to stanardize&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; this as well. &lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Will we open source the server-client?&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Dan: Yes, the "lion's share" but will take awhile&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Can you speak to Google's committment to wave? is Google comitted? How can we know?&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Dan: Yes, we are rolling this out to 100K users starting Sept. 30 &lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Gmail?&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Dan: Email isn't disappearing anytime soon&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Will we be publishing things about Google's DB layer?&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Soren: We are hoping to do this. You will find in the most recent white paper on attachments there are some details about how things are stored. Most important thing is that we use BigTable, megastore and other google proprietary tools, but we need to make it work w/ storage tools that work outside of our instances.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;There are certain operations that exist in our Wave sandbox but were removed from released code?&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Soren: Not everything was working correctly so we removed some things. A lot of operations&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; were added as we need them. Lots of questions: who generates ids for waves and wavelets? Clients are equipped w/ unique id generators. The first operation you do on a document, that creates the document if it is not already&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; there.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;You could have two wave servers one of which rejects a change from another. What happens? Isn't there a forking problem?&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Dan: The wave is mastered on a particular wave provider. Not asking for an ack, but a command (from master to other server). Still some things which need to be worked out.&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;::  Pause to fix mikes :: &lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Soren: We try to maintain some user experience principles in our client. One is that you can't take a wave from someone else. We have a 'remove participant' at the protocol layer. One thing that can happen here is that someone removes and the other person did not want to lose that content, and we want that the person removed can keep their content and history and create a fork, but we will probably need a tweak in the protocol to support this.&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Dan: This sort of already happens w/ private replies. In the UI&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; this is represented as a...&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;What is no-op used for? Who would it take to combine add and remove participant operations into a single operation? &lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Soren: We've thought about this a lot. No-op is used for "Debug" (from Dan), a bit obscure, modify w/o creating new Wave. Can add/remove an arbitrary number of participations, would be nice to have one operation . We don't know?&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Mutate document is complex operation, has this property. You can combine an arbitrary number of mutations into a single mutation.&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Soren: yes, this has some interesting mathmeatical&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; properties&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Is there a process for distinguishing capabilites&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; for different types of waves? Esp. for chatrooms and blogs if you can't modify them.&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Allen: Two kinds of process which spring to mind. Conversational document w/ permissions in wuch&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; a way that inserting replies into a blog is not allowed because it is not suport&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Follow up question missed&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;There is going to be some kind of access control.&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Dan: We kind of looked at that as commenter mode. You can't change things that were added by other&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Soren: we should pride ourselves that there are no quesitons about the security protocol.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;What sort of scalability has come up so far and do we expect to use things like BigTable?&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Soren: Yes, things have come up and yest&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; we expect to use things like BigTable. Storage is one place where you need to... We'd love to talk more about it but I guess we haven't come around to a white paper on that yet. Too big a question. Come talk to me.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Will the reference implementation have persistance? &lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Dan: We will need to work w/ people who have exp. with massive perstistent&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; data storage that doesn't use BigTable.&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Hadoop is out there. XSpace&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;. Postgres...&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;How often do you send operations assuming that the client and server respond immediately?&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Soren: As soon as the window clears, we made a couple of modifications in the OT protocol compared to what the OT supports, we can get around to some&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; things that OT has to solve. Another thing we do that , another thing we do is that everything has to converge between each delta&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; instance. What we do, manage outbound traffic, put it on the wire. If you have a lot ot say.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Backed up client can send bulk operations?&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Soren: Yes, this is a side-effect you get. These will generally be bundled nicely together.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Is that the server does the same as client?&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Soren: Might be some element because we use TCP conections&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;, if &lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Dan: Def. room for optimization improvements (response to unheard question)&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Apache?&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Soren: Google hasn't its own server. Right now plain TCP. &lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Dan: FedOne&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; prototype, completely independent of Google software, running it on some machines that aren't near data centers.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Missed&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;is Google going to hand out certificates for everybody or can we get our own certificates?&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Lea&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;: We don't plan to be the folks, but we need to have some standardization. What system we would use is up for debate. We are not handing them out, no.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;What ports will Google Wave be using and will it be compatible w/ servers running over XMPP (Jabber, etc.) ? &lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Soren: Prototype uses only standard component protocol, and extensions. This means it uses the same port as XMPP for now.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;But most people accept that when you are running on the same prot that you would implement more of XMPP than just the core.&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;We are not sure that this will be a problem but need to discuss it more. XMPP folks will be here later if they aren't here already and we have a seperate session on that.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Do we need to standarize wire protocol used by robots to the robot gateway? I think this is necessary.&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Soren: This is not so clear cut necessarily. We have a Robot API. &lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;But the API is. ..  ?&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Soren: We should probably standardize both protocols/APis.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;When we start to bake in ACLs into the Client will this be via operation lists or pre-defined Roles?  If Roles can you inject other Roles from another server? &lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Dan: We are still thinking about the moderation aspects. Wave is still a very open system. We touched earlier on the commenter role. In terms of injecting roles, I go back to Master-Slave, will be up to the person who owns wave what roles are available and which can be asked for.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Question about the Federation and white paper documentation, mention of 'globally agreed order'? Who controls this and makes sure it is unique? The order that operations are applied to the wavelet.&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Specified in OT doc (?) + Crypto-magic fairy dust&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Clarified that the globally agreed order is up to the server that started the wave and owns it.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Is it reasonable to expect that Google client will work with anybody elses server? Is it your expectaation that people who build servers will also necessairly take on teh burden of building their own clients?&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Dan: Will be evolution. When first go out will talk to each other. We will need to standarize the Server-Client layer, but this will take a lot more time, when we do you can use a stanardized client.&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Aleln: We would love to standarize the Client-Server ptoocol. We can't do yet, but we will decide what order to do things in based on feed back in the API/Protocol Groups.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;When you converge towards the state that the server also converges towards, you may take different steps than the server takes and for the play back do you use the server states or client states?&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;We use the server states on playback, we deal w/ clients that are always online, therefore you would not normally perceive a big difference. You want consistant to gloss over. What comes out on the end preserves all fof&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; the transformations. It is clear that there may be situations where.&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Dan: There are some situations where this can be confusing. &lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;It is important form&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; a lot of perspectives to esp. in clients as it relates to when things happen. We need to think about time date stanmpign&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; avarious&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; operational transformation and how that gets played back? We need to play&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; strict attention to ordering of operations&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Danan: Every wave is owned by a wave server and time stamp comes from that server.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;I think that will be a problem. They have time stamps, I have something, you have something, no one knows what time stamp is ? FRCP, Fed, regulation, Orgs, have to maintain copies of org. records, you need to be able to play back things, need to be auditable. &lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Dan; I agree. &lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;audience member: print everything out&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Dan: I am open to continuing questions&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;If you have a "commneter" mode where ir&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; doesn't do character by character OT, (like a chat room_) how much extra capacity can I sqeeze&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; out?&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Allen: Complicated question&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;. Costs come from sending things out to Robots indexing, indexing, . Yes, it looks like there are savings there, but we can'ts ay how mcuh&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Soren: Operational Transformation has to be cheap. It is really fast. &lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Dan: Very core to the experience. If there are various levels of compliance&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;...&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Another security question: To the extent that this is an extension of email can also be an extension of abuse. Do you see anything rising up that could be the emergent&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; abuse (such as phishing) ? Abuse use cases... Have you ever lost a night of sleep for a system which does robots or do you sleep very soundly?&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;we are going to have an abuse breakout session &lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Lea: We are thinking very careful about Robots. All kinds of ways to abuse things. Also very interesting ways in which you can limit abuse. And able to automatically rewind abuse. Really cool system. really cool possiblities&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;. &lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;::Justin deletes message from Lea. then adds it back to demonstrate&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; possiblities&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; of abuse::&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;dan: Our role is to help people understand. We use it as a tool internally quite a bit. And we have learned a lot about wave etiquette&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;. Interesting to evolve models as Wave itself has evolved&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;.d (2) 6K developers in, 20K to work in over next month. Sept. 30 we plan to get this out to real live users. &lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Soren: We have the Imaginative&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; power to do these things . All about gadgets and robots and making things work on top of this platform. Pretty fascinating user&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; engines, based exactly on OT which allows an optimistic client user interface. Every day we look at our client and come up with interesting things which it enables, things you can do in the browser that are better than you can do in non-browser applications. &lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Dan: The benefit to Google is that web-based collaborative applications make the Web stronger which also benefits us (Google). &lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Can a particular wave provider transfer ownership of that wave to another wave provider?&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Dan: Not in the protocol at this point. Ob. some sort of graceful degradation needs to happen there. If you have other wave providers, you can have an election system. &lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Soren; Forking away is probably the simplist solution.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;If you do what to run your own web server what kind of sizing, security issues will you have?&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Allen: So are dealing w/ that ourselves.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Can you share some data? For instance, how many users can you support on a single server?&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Allen: I'm not comfortable sharing the numbers we have, and these numbers will change.&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Dan: This is also very difficult to map to non-google architecture.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;I have a question for the audience: Is there a scheme for distributing a wave across multiple servers? seems that presence/state is pretty coupled in the server right now. bueller?&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;and I mean not in the client/server federation sense, but distributing load for a single wave.&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Dan: I totally agree. We should keep things as distributed as possible.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;How do we decide when to create new blips vs. new wavelet? If I hit reply looks like the client is creating new wavelet.&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Soren; It is not a new wavelet&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;. It is a blip(?). A private reply would be a new wavelet. &lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;How are comments annotated? How do you know if something a comment?(inline reply)&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Soren: This is not in the protocol. That is all things that we want to express in the HTML. &lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;You have been using Wave internally for quite awhile now. How does it affect the work you do?&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Dan: It is great that other people can fix your typos (yes! comment by typist Joel). We have an information overload problem we are working through.&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Allen: Great to send something out to the team and something that will increase if there is interest, very easy to get a document/idea out there and get comments.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Google client doesn't do any transformation, everything goes to the server. At some point people will want to do editors that work offline.  At that point, when the change sets come through it will look different in different places. The OT process aims to get the same result for different changes submitted in a  different order.  How do you handle offline Wave access?&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Soren: With regard to the first question, we want as few lines as code as possible in the prototype, so we chose to make it a thin, dumb client that doesn't do OT. But the one we use when you disconnect you can keep on editing and keeping on editing, and keep convergent&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; and it is all syncronized. The one thing we don't have a the moment we cannot persist the state on the client. If you close the browser it is gone. We think that OT is a wonderful vehicle to get that done.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Will the ability to proxy and cache for non-master wave servers be included to the protocol?&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Dan: This is already built in. ::turns to Soren::&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Soren&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;: This is the expectation. The wave server will cache things. It stores it for you.&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Dan: You have the option to cache them how you chose.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;::Break::&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p t="h3" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-weight: bold; font-size: 1.66667em; "&gt;&lt;span x="y" style="font-weight: bold; "&gt;Security Panel&lt;/span&gt;&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Primary typist: Casey ( tring&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; to keep up, Lea talks quickly)&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Participants: Ben, Dirk, Lea.&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Communication Model &lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;data privacy&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;multi hops&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;No one other than the intended recipients should be able to read data.&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;want SSL on every hop! not always legally feasibly&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Data Integrity&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;attribution&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; :&amp;amp;&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; integrity&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Signing Strawmen&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;PKI every delta - public key signature on every change: VERY expensive, 1-5 ms pr delta&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Symmetric key MACS on each delta. token on every delta&lt;/p&gt;&lt;p i="4" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 85px; "&gt;if you can verify you can also sign&lt;/p&gt;&lt;p i="4" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 85px; "&gt;so anyone on a wavelet can forebgv messages from everyone else&lt;/p&gt;&lt;p i="4" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 85px; "&gt;at best the hosting server cld forge messages from everyone ( MIM )&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;so: Bundling&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;we want PK sigs and efficency per delta&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;how? share sigs over multiple deltas&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;based on merkle hash trees, so we can remove parts of the tree&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;...&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Winnowing - sign bundle and winnow it down ( pictures and hand gestures ) &lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;History hash&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;need to ensure that data is deleted&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;cumulative hashing of all operations give unique ID to each operation&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;also ensures that operations cannot be droped from servers view ( dectable)&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Signature Data Structure ( code slide )&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;ProtocolSignedDelta, ProtocolSignature, ProtocolSignerInfo : &lt;a x="y" href="http://www.google.com/url?sa=D&amp;amp;q=http%3A%2F%2Fcode.google.com%2Fp%2Fwave-protocol%2Fsource%2Fbrowse%2Fsrc%2Forg%2Fwaveprotocol%2Fwave%2Fprotocol%2Fcommon.proto" target="_blank" style="font-family: arial, sans-serif; color: rgb(0, 62, 168); "&gt;http://code.google.com/p/wave-protocol/source/browse/src/org/waveprotocol/wave/protocol/common.proto&lt;/a&gt;&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(0, 0, 136); "&gt;message&lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt; &lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(102, 0, 102); "&gt;ProtocolSignedDelta&lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt; &lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(102, 102, 0); "&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p i="4" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt;  &lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(0, 0, 136); "&gt;required&lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt; &lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(102, 0, 102); "&gt;ProtocolWaveletDelta&lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt; delta &lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(102, 102, 0); "&gt;=&lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt; &lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(0, 102, 102); "&gt;1&lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(102, 102, 0); "&gt;;&lt;/span&gt;&lt;/p&gt;&lt;p i="4" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt;  &lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(0, 0, 136); "&gt;repeated&lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt; &lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(102, 0, 102); "&gt;ProtocolSignature&lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt; signature &lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(102, 102, 0); "&gt;=&lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt; &lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(0, 102, 102); "&gt;2&lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(102, 102, 0); "&gt;;&lt;/span&gt;&lt;/p&gt;&lt;p i="4" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(102, 102, 0); "&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p i="4" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(0, 0, 136); "&gt;message&lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt; &lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(102, 0, 102); "&gt;ProtocolSignature&lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt; &lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(102, 102, 0); "&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p i="4" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt;  &lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(0, 0, 136); "&gt;enum&lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt; &lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(102, 0, 102); "&gt;SignatureAlgorithm&lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt; &lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(102, 102, 0); "&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p i="4" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt;    SHA1_RSA &lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(102, 102, 0); "&gt;=&lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt; &lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(0, 102, 102); "&gt;1&lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(102, 102, 0); "&gt;;&lt;/span&gt;&lt;/p&gt;&lt;p i="4" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt;  &lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(102, 102, 0); "&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p i="4" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt;  &lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(0, 0, 136); "&gt;required&lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt; &lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(0, 0, 136); "&gt;bytes&lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt; signatureBytes &lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(102, 102, 0); "&gt;=&lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt; &lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(0, 102, 102); "&gt;1&lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(102, 102, 0); "&gt;;&lt;/span&gt;&lt;/p&gt;&lt;p i="4" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt;  &lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(0, 0, 136); "&gt;required&lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt; &lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(0, 0, 136); "&gt;bytes&lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt; signerId &lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(102, 102, 0); "&gt;=&lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt; &lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(0, 102, 102); "&gt;2&lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(102, 102, 0); "&gt;;&lt;/span&gt;&lt;/p&gt;&lt;p i="4" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt;  &lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(0, 0, 136); "&gt;required&lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt; &lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(102, 0, 102); "&gt;SignatureAlgorithm&lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt; signatureAlgorithm &lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(102, 102, 0); "&gt;=&lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt; &lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(0, 102, 102); "&gt;3&lt;/span&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(102, 102, 0); "&gt;;&lt;/span&gt;&lt;/p&gt;&lt;p i="4" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;&lt;span x="y" style="font-family: monospace; background-color: rgb(255, 255, 255); color: rgb(102, 102, 0); "&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p i="4" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(0, 0, 136); "&gt;message&lt;/span&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt; &lt;/span&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(102, 0, 102); "&gt;ProtocolSignerInfo&lt;/span&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt; &lt;/span&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(102, 102, 0); "&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p i="4" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt;  &lt;/span&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(0, 0, 136); "&gt;enum&lt;/span&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt; &lt;/span&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(102, 0, 102); "&gt;HashAlgorithm&lt;/span&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt; &lt;/span&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(102, 102, 0); "&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p i="4" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt;    SHA256 &lt;/span&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(102, 102, 0); "&gt;=&lt;/span&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt; &lt;/span&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(0, 102, 102); "&gt;1&lt;/span&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(102, 102, 0); "&gt;;&lt;/span&gt;&lt;/p&gt;&lt;p i="4" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt;    SHA512 &lt;/span&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(102, 102, 0); "&gt;=&lt;/span&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt; &lt;/span&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(0, 102, 102); "&gt;2&lt;/span&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(102, 102, 0); "&gt;;&lt;/span&gt;&lt;/p&gt;&lt;p i="4" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt;  }&lt;/span&gt;&lt;/p&gt;&lt;p i="4" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt;  &lt;/span&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(0, 0, 136); "&gt;required&lt;/span&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt; &lt;/span&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(102, 0, 102); "&gt;HashAlgorithm&lt;/span&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt; hashAlgorithm &lt;/span&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(102, 102, 0); "&gt;=&lt;/span&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt; &lt;/span&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(0, 102, 102); "&gt;1&lt;/span&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(102, 102, 0); "&gt;;&lt;/span&gt;&lt;/p&gt;&lt;p i="4" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt;  &lt;/span&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(0, 0, 136); "&gt;required&lt;/span&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt; &lt;/span&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(0, 0, 136); "&gt;string&lt;/span&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt; domain &lt;/span&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(102, 102, 0); "&gt;=&lt;/span&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt; &lt;/span&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(0, 102, 102); "&gt;2&lt;/span&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(102, 102, 0); "&gt;;&lt;/span&gt;&lt;/p&gt;&lt;p i="4" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt;  &lt;/span&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(0, 0, 136); "&gt;repeated&lt;/span&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt; &lt;/span&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(0, 0, 136); "&gt;bytes&lt;/span&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt; certificate &lt;/span&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(102, 102, 0); "&gt;=&lt;/span&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); "&gt; &lt;/span&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(0, 102, 102); "&gt;3&lt;/span&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(102, 102, 0); "&gt;;&lt;/span&gt;&lt;/p&gt;&lt;p i="4" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;&lt;span x="y" style="font-family: monospace, sans-serif; background-color: rgb(255, 255, 255); color: rgb(102, 102, 0); "&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p i="4" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Certificates&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Openfire (or jabberd, etc.) uses its own certs&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Wave server also uses certs for signing of deltas&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;FedOne implemenetation expects:&lt;/p&gt;&lt;p i="4" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 85px; "&gt;Private key PKCS#8-PEM&lt;/p&gt;&lt;p i="4" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 85px; "&gt;signer cert X509 (DER or PEM) &lt;/p&gt;&lt;p i="4" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 85px; "&gt;intermediate certs&lt;/p&gt;&lt;p i="4" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 85px; "&gt;... as files ( command line options)&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;you can get free certs from &lt;a x="y" href="http://www.google.com/url?sa=D&amp;amp;q=http%3A%2F%2Fxmpp.net" target="_blank" style="font-family: arial, sans-serif; color: rgb(0, 62, 168); "&gt;xmpp.net&lt;/a&gt;&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;if U use self signes certs fed peers wont eaccept your deltas unlss they run with --waveserver__disable__verification&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;this is different from crossfire, which will work with self signed certs through dialback&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;FedOne impl will by default trust JDK-provided CA;s, plus the XMPP ca&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;self-signed certs are in the example to make it easy. in the production federated network, self-signed certs will be turned off&lt;/p&gt;&lt;p t="h3" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-weight: bold; font-size: 1.66667em; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p t="h3" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-weight: bold; font-size: 1.66667em; "&gt;QA session&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;[[I'll do the answer you do the questions, k?]][[OK]]. Okay, looks like you are doing the answers I do the questions :) oops! :)&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;[[ I htink this question was about federation trust chains&gt;]]&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Lea: so we had this discussion about doing this, in particular a lot of us are intereste din encryptino, but we;re not looking at doing this at the federation level, but at a higher level - this wavelet is encrypted here is the key. a lotof these are matters of end user trust - we've been doing a lot of thinking about it but don't have any answers yet.&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Google should really think about how people can rachet it up and performance balance it.&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;this is an interesting topic and we're not quite at that level yet&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;If I have a federation for healthcaAPA?&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Lea: it;s been a while since I looked at HIPAA, I actually think is interesting about using wave in the healthcare context, which we;re not at yet, is because of HIPAA  auditing and you're federated in health care providing you're essentially signing al lthis "stuff." this would be an intersting application - health care, but it's really hard due to the nesting documettings&lt;/p&gt;&lt;p i="4" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 85px; "&gt;federating with yourself sounds like it would make auditing easier&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Otherwise it could be a great applicatoin fore the healthcare industry, doctors could exchange images, could cinlude identifable (&amp;amp; private data) ? &lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;I'm working on a summer project and building an open-source porject on top of Google-Health. How cawill the secuirty of the project work with Google health?&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Lea: Google Health API and Data? so right now it does not. we're very paranoid. the two systems do not talk to each other.  google health has to wait until this is more complete.&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;No work around for that right now?&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;"google is not hooking up wave and google health"&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;This whole problem is a hairball, almost unbounded. Can be a risk that you give people a false sense of security, where gaping holes remain unaddressed. My question is: how much of this do you expect to get done before you release&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; the server and reference servers What security things are gating factors for releasing reference implemenation? Generally speaking, is there anything that is preventing the release of a reference implementation?&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Lea: if you can think of security stuff we haven't address tell us!&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Soren: things&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; like ACL&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; are not up to snuff, we'll be coming to you guys ( securyt group) to talk about requirements. we're in a fairly&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; good state for the reference implementation&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; .. [[ I didn't get that well ]] &lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;If you put some measures&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; of security here, like ACLs, this raises my expectations&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; of how things will work... &lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Leay the point it must sound like we are saying that we're going to have security, and yet we're going to say "Buyer beware " and all that - but we're saying that because we don't believe that we can have anything useful w/out security. there are a lot of people out there with a lot of free time and who want more money. we're aware that we need to do security but tellus if you see us missing something&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Is there any way to trace all our certificates, is there any way I can trace all of that information? If I have several servers, but one is known to be not secure. I will not allow a wave to display that information. is there anything in the protocol to allow the interrogation of those servers?&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt; lea: at the security layer we are saying that we can say who is talking to us, and there has been th ought about saying ": you're a bad server and throwing out a lot of abuse" but... but that's going to be talked about in the following Abuse&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; session.&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Is there going to be any standardization of the client server interface as far as security goes? T&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Lea: there are a huge&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; number of aspects... not sure what... you are asking?&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;it is up to the individual wave providers to decide what they are going to do. corporations&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; will do their&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; own SSO, we're not going to dictate as far as other implementations&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; are concerned. &lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Supportability could be, what kind of support for Single-sign on..&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;guy: as far as federation protocols is concerend we stop at the federated server level. &lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;At this point your are not contemplating any way to cross-authenticate users at all?&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;guy: no&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Basic problem is that anyone who knows my address can send me sh*t, how are you planning to address that?&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;they will cover that in the abuse section, but you will know who sent what due to authn, so you would be blocking the individual users andshutting&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; them down. or you may decide you don't trust all servers. exactly how that happens will be up to the individual servers. [[?]]&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Just in looking at the sort of facebook-social-network model, any message you receive, more open than this... &lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;more like email in the exp that anyone can send you a message, but there will be something to determine say that someone has communicated with you before they will get easier access&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Is there a concept of a sub-domain? If I am running multiple wave servers w/in my organizaiton for example? Can you have an internal domain?  &lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;sure the whole l point is that the originating server is always identified by its signatures. &lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Can you talk a little bit about user provisioning? We have a compnay w/ 8000 people we want to start waving. How do we get our users in bulk on to the system?&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;well if its your own server it's up to you, we're not dictating provisioning details , we're saying that once you have done that you send a message to identify the super and the message is signed identifing the server&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Do you guys envision any sort of network of what is a trusted server? &lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;lea: right back to the Abuse seminar: we will not bless your server, WE are going to say Hey youare sending us spam which makes us sad. we hope ppl will get together and decide,say, not to talk to server Alice because it's spending a lot of spam.&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Is there a notion of email BCC in wave? &lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Lea: i don't think it's built in right now, there has been a lot of discussion about related concepts&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;, &lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;o you can make a copy of a wave and replace the body of the message so its kind of the same thing&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Is that through an alias? Putting it in a different group?&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;::positive gurnt&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;: [huh?]&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;When you copy a group you get a static?&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;when you copy a wave you get a static thing and you can put other people on it but they won't see the live updates on the originating wave&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Any control where you cannot forward, print, etc. a wave?&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;the ACL model isn't worked out, right? there are practical limititainos to some of these suggestions like "no printing this message" &lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;There was someone who mentioned a button where this can be circumvented, where no one new can be added? An off the record feature. This gives a measure of comfort for people who want to talk off-the-record.&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;lea: so yes, I think that it is an interesting issue which we haven't worked out yet, we want to see conversation about this, what we want it to look like.&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;The way I understand right now. I can access everybody in the directory? There is no kind of hiding right now? I change whether or not someone can see my presence?  &lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Lea: what is the latest version of the directory?? yes we do know that seeing presence is controversial&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;, we thinkt here will be measures about hiding that, it's not going to be magically available to everyone.the idea is that your presence  will have to have that approved by somebody&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;[whew] [Great job Casey, you had the difficult part!] ha thanks I'm dizzy from typing. [I'm going to create a new wave for commenting on the presentation, sound good? That will help us organize potential contributors.] [ one wave for logging the Q&amp;amp;A, another for the presentation]?&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Allen: Slides  will be published, but will take a little while&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p t="h3" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-weight: bold; font-size: 1.66667em; "&gt;FedOne&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; demo&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;The rest of the demo code was pushed and it reports to build ( applause ) &lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;&lt;a x="y" href="http://www.google.com/url?sa=D&amp;amp;q=http%3A%2F%2Ftr.im%2FFedOne" target="_blank" style="font-family: arial, sans-serif; color: rgb(0, 62, 168); "&gt;http://tr.im/FedOne&lt;/a&gt;&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;lightweight impl, fed gateway, text client which you may of seen at Google&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;we can't cover all the detail right now&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;demoing 3 clients, 2 in one domain, other in another&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;sitting on 2 machines in oregon, opeking the ports now or soon and so you should be able to run aginst them. they will be upfor the next few months. if you have patches / contrib use the email list that some of you may of heard of the wave protocol group.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;OK, those XMPP servers on the backend support component extension, OpenFire, &lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;as soon as you add a person from the other server the actions are pushed across &lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;[[ DEMO with multiple terminal windows with really big fonts]]&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;presenter starts a conversation with anthony, an inbox with all the waves ( in ASCII ).  All these waves are in-memory, feel free to write a persistance impl. presenter goes on  to add anthony via terminal interface. &lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;on other projection we see java lanucning client from cmd line... anthony replies in text client.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;present adds sam at other wave server&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;[[ lots of logging flies by in another projector. lots of key exchanges fly by, etc. ]] &lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;presenter: hmm.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;presenter: er, it was working 2 minuites before , but this room knows what it's like (laughter) &lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;they get it to work after a client restart [[ I think? ]] applause&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Q: what is the point of this? people typing in text windows?&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;A: it's really an experiment and a place for integrators and developers to kick tires.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;A2: we may check this on a regular basis to respond. A3: we could write a robot to talk back to you guys as you connect from your clients/servers.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;[[ whiteboard is added to array of presentation technologies ]]&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;presenters go over the stack: federation host, wave server, client front&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; end and federation remote in one process. client front end  talks to text clients via a not-the-real protocol ( this protocol is intended to be an example). hosts and remote talk XMPP into OpenFire. &lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Q: there is a mess of XMPP talking at OSCON this week? are you guys there are what? A: yes we are ( their OSCON reps walk in, applause ) &lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Q: will you be keeping these in sync?&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;A: yes that is a goal, there will be a cmd line option for setting the protocol version as thing leapfrog/get out of sync. &lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Q: is the protocol spec up to date&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;A: it's a static snapshot and it'sl not yet refresed ( as of this time ) A2: it's in HG, the most recent one.&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Q: is the client server spec in here? A: no it is not&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;[[ missed question ]]&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;A: there is an apache java project for XMPP impl, but it's nowhere near working we looked at it for a week. Openfire can be just used &lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;&lt;span x="y" style="font-weight: bold; "&gt;At this point there is a split of activities: a discussion of span and abuse in one area,&lt;/span&gt;&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;&lt;span x="y" style="font-weight: bold; "&gt;and hacking / discussing the FedOne release in the other.&lt;/span&gt;&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;(spare bulltes for chasing) (ammunition)&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-2036553033686163061?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/2036553033686163061/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2009/07/wave-federation-day-session-notes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/2036553033686163061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/2036553033686163061'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2009/07/wave-federation-day-session-notes.html' title='Wave Federation Day session notes'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-9097245464273196150</id><published>2009-07-22T20:11:00.000-07:00</published><updated>2009-07-22T20:17:54.962-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google wave'/><category scheme='http://www.blogger.com/atom/ns#' term='wave protocol'/><title type='text'>Google release source for a crude wave server-client example</title><content type='html'>On Wave Federation Day on July 21, Google has released source code for a crude wave server-client example for learning purpose. This is more an example so developers can use to learn the protocol, it is not even a reference implementation yet. Nevertheless, it is exciting. Source code can be downloaded at: &lt;span class="Apple-style-span"   style="font-family:arial;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style=" line-height: 17px; white-space: pre-wrap;font-size:13px;"&gt;&lt;a href="http://code.google.com/p/wave-protocol/source/checkout"&gt;http://code.google.com/p/wave-protocol/source/checkout&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-9097245464273196150?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/9097245464273196150/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2009/07/google-release-source-for-crude-wave.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/9097245464273196150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/9097245464273196150'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2009/07/google-release-source-for-crude-wave.html' title='Google release source for a crude wave server-client example'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-1531079631263540572</id><published>2009-07-22T19:44:00.000-07:00</published><updated>2009-07-22T19:52:45.440-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google wave'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='robot'/><title type='text'>Google Wave Java Robot API now opensourced</title><content type='html'>&lt;div&gt;Early on, Google has announced the intention to open source Java Robot API.  Now it has finally arrived.   &lt;/div&gt;&lt;div&gt;&lt;a href="http://code.google.com/p/wave-robot-java-client/"&gt;http://code.google.com/p/wave-robot-java-client/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The google code project has existed for sometime, but it only contain documentation before.  Now it also has the source code.  :)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-1531079631263540572?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/1531079631263540572/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2009/07/google-wave-java-robot-api-now.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/1531079631263540572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/1531079631263540572'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2009/07/google-wave-java-robot-api-now.html' title='Google Wave Java Robot API now opensourced'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-1655557356441714394</id><published>2009-07-21T01:43:00.000-07:00</published><updated>2009-07-22T16:19:04.766-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google wave'/><category scheme='http://www.blogger.com/atom/ns#' term='collaborative-editing'/><title type='text'>Wave Collaborative Editing</title><content type='html'>I experienced something incredible when many attendees (William, Hitesh, etc and me) are doing the collaborative note-taking.  It is quite a sight to see multiple users editing at the same time.  It is even better when I realize that I will have a note that is 10x better and I can concentrate more on listening rather than busy note-taking.  The power of collaborative editing through wave is a tsunami in terms of its magnitude.  &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Imagine this in classroom: every class session will have a wave, multiple students will perfect the notes.&lt;/div&gt;&lt;div&gt;Imagine this in conference.&lt;/div&gt;&lt;div&gt;Imagine this in a meeting for meeting minute.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-1655557356441714394?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/1655557356441714394/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2009/07/on-wave-collaborative-editing.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/1655557356441714394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/1655557356441714394'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2009/07/on-wave-collaborative-editing.html' title='Wave Collaborative Editing'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-7710244851067758079</id><published>2009-07-20T21:37:00.001-07:00</published><updated>2009-07-20T21:48:00.448-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google wave'/><category scheme='http://www.blogger.com/atom/ns#' term='wave-as-client'/><category scheme='http://www.blogger.com/atom/ns#' term='wave'/><category scheme='http://www.blogger.com/atom/ns#' term='hackathon'/><category scheme='http://www.blogger.com/atom/ns#' term='button counter'/><title type='text'>Wave API Hackathon (Silicon Valley) Demos</title><content type='html'>Here is the demos of the Wave Hackathon that occurred in Googleplex. Thanks to Alan (aka Captain Al) of Google for creating the writeup.&lt;br /&gt;&lt;br /&gt;If you have wave sandbox account, you can view Captain Al's (geez, it just sounds cool) writeup at this wave: https://wave.google.com/a/wavesandbox.com/#restored:nav,restored:contact,restored:digest:hackathon-720%2540wavesandbox.com,restored:wave:wavesandbox.com!w%252B1ryRLbxG%2525A&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;For those people who do not have wave sandbox account, the writeup is copy&amp;amp;pasted here:&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial; font-size: 13px; line-height: 17px; white-space: pre-wrap; "&gt;&lt;p t="h2" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-weight: bold; font-size: 2.33333em; "&gt;&lt;span x="y" style="font-weight: bold; text-decoration: underline; "&gt;Demo line-up:&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p t="h3" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-weight: bold; font-size: 1.66667em; "&gt;Concurrent-safe gadgets (by Avital Oliver)&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;Gadget URL: &lt;a x="y" href="http://www.google.com/url?sa=D&amp;amp;q=http%3A%2F%2Fthewe.net%2Fsafecounter%2Fsafecounter.xml" target="_blank" style="font-family: arial, sans-serif; color: rgb(0, 62, 168); "&gt;http://thewe.net/safecounter/safecounter.xml&lt;/a&gt;&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;What is does: Here's a gadget that accurately counts how many clicks it has had (even if two people click at the same time). Everyone modifies a separate key. &lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;How: Each click generates a new random key. Values are Javascript expressions that encode the operations necessary to calculate the sum. &lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;Gadget uses eval.&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;Comment that running arbitrary expressions via eval has security implications which can be solved&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;A robot (which didn't work during the demo) can read the bloated gadget state and "normalize" it by eval'ing all of the expressions and replacing them with one expression that represents the combination of them all. (Written using&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; Rhino, a Java implementation of Javascript based on Mozilla) - POC at thewe&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;-wave@appspot.com, invite &lt;span x="y" style="font-style: italic; "&gt;after&lt;/span&gt; adding gadget for now &lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p t="h3" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-weight: bold; font-size: 1.66667em; "&gt;A Good&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; Robot: Wave Defender  (by Kabriel&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; &amp;amp; Frank)&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;Robot Address: wave-defender@appspot.com&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;Allows users to stop "bad" or unauthorised changes to their waves.&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;Intended for automatic forum-style moderation&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;Can complain, but don't yet know how to roll-back. (Kabriel: Please come talk to Alan)&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;Can be configured with specially formatted text in wavelet body, but it would be nice to be able to create a control channel (in the form private&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; reply with an embedded GUI) when the robot is added.&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;Q: Is the source for this robot available?&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;A: If we can get it to work in a reasonable way it could be open sourced. However it is currently not useful.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p t="h3" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-weight: bold; font-size: 1.66667em; "&gt;ActionScript Library (by Sung Wu)&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;Library URL: &lt;a x="y" href="http://www.google.com/url?sa=D&amp;amp;q=http%3A%2F%2Fcode.google.com%2Fp%2Fwave-as-client" target="_blank" style="font-family: arial, sans-serif; color: rgb(0, 62, 168); "&gt;http://code.google.com/p/wave-as-client&lt;/a&gt;&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;Photo browser gadget URL: &lt;a x="y" href="http://www.google.com/url?sa=D&amp;amp;q=http%3A%2F%2Fwave-as-client.googlecode.com%2Fsvn%2Ftrunk%2Fexample%2Fwave_photo_browser%2Fweb%2Fwave_photo_browser.xml" target="_blank" style="font-family: arial, sans-serif; color: rgb(0, 62, 168); "&gt;http://wave-as-client.googlecode.com/svn/trunk/example/wave_photo_browser/web/wave_photo_browser.xml&lt;/a&gt;&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;Button counter gadget URL: &lt;a x="y" href="http://www.google.com/url?sa=D&amp;amp;q=http%3A%2F%2Fwave-as-client.googlecode.com%2Fsvn%2Ftrunk%2Fexample%2Fbutton_counter%2Fweb%2Fbutton-counter.xml" target="_blank" style="font-family: arial, sans-serif; color: rgb(0, 62, 168); "&gt;http://wave-as-client.googlecode.com/svn/trunk/example/button_counter/web/button-counter.xml&lt;/a&gt;&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;What: Flash gadgets using ActionScript &amp;amp; OpenSource ActionScript Library&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;Why: Users can include this library and not touch JavaScript, only using Actionscript&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; for their gadget&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;Coolness: demo of image gallery from Google I/O - two users see other users navigating&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p t="h3" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-weight: bold; font-size: 1.66667em; "&gt;Confybot (by the Ribbit team)&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;Matt&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; Taylor (mat.taylor@ribbit.com) &amp;amp; Kevin Gillett (kevin.gillett@ribbit.com)&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;To get into the Ribbit REST beta email Mat&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; and Kevin&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;URL: &lt;a x="y" href="http://www.google.com/url?sa=D&amp;amp;q=http%3A%2F%2Fwww.ribbit.com" target="_blank" style="font-family: arial, sans-serif; color: rgb(0, 62, 168); "&gt;http://www.ribbit.com&lt;/a&gt;&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;What: makes conference calls by dialing every number listed in the wave&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;Uses Ribbit service for transcription&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;Can fetch MP3s into the wave (it works!)&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;Can fetch transcriptions into the wave too! woo!&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;See &lt;a x="y" href="http://www.google.com/url?sa=D&amp;amp;q=http%3A%2F%2Fwww.ribbit.com" target="_blank" style="font-family: arial, sans-serif; color: rgb(0, 62, 168); "&gt;www.ribbit.com&lt;/a&gt; for APIs (OAuth, REST based, currently in private beta)&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p t="h3" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-weight: bold; font-size: 1.66667em; "&gt;Calendar Gadget (by Elizabeth)&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;Allows embedding a public google calendar as a gadget in a wave&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;Because of limitations of the google calender embed api's it is read only&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p t="h3" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-weight: bold; font-size: 1.66667em; "&gt;Twiliobot / Clackpoint&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; (by Evan and Kyle)&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;click-to-call in wave&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;twilio bot finds all the phone numbers in a wave and inserts a form-element call button.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Call button -&gt; inserts&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; gadget into wave, collects your number&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;Appends transcript of phone conversation to wave.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;First bot-transcription&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Later human-transcription&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Then MP3&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;I think we should get Dominoes to call Pizza Hut.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;we'll get an MP3 of the ensuing chaos.&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;And another Gadget!&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;clackpoint&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;: audio chat gadget&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;Free RESTful&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; api.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p t="h3" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-weight: bold; font-size: 1.66667em; "&gt;RickRolley (by David Byttow&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;)&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;rickrolley&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;@appspot.com&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;Try it yourself!lf!&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;System requirements: sound card, speakers, and no taste for music&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p t="h3" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-weight: bold; font-size: 1.66667em; "&gt;AmaWave - a variation of AmaTwit&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; (by Kevin Marks)&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;You're talking about something and you realize&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; you want to refer to a book.&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;Type the name of a book in such a&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; book:&lt;book&gt; and it will make a hyperlink to Amazon&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;&lt;a x="y" href="http://www.google.com/url?sa=D&amp;amp;q=http%3A%2F%2Famatwit.com" target="_blank" style="font-family: arial, sans-serif; color: rgb(0, 62, 168); "&gt;amatwit&lt;/a&gt;&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a x="y" href="http://www.google.com/url?sa=D&amp;amp;q=http%3A%2F%2Famatwit.com" target="_blank" style="font-family: arial, sans-serif; color: rgb(0, 62, 168); "&gt;.com&lt;/a&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p t="h3" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-weight: bold; font-size: 1.66667em; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p t="h3" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-weight: bold; font-size: 1.66667em; "&gt;Waverly - Breaking News Bot&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p t="h3" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-weight: bold; font-size: 1.66667em; "&gt;Wikipedia (Tom)&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;wikystuff@appspot.com&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;When you add wikystuff, it puts your wave content into the Wiki&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;Wave helps with:&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;concurrent editing&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;WYSIWYG&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;spelling (with spelly)&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-7710244851067758079?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/7710244851067758079/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2009/07/wave-api-hackathon-silicon-valley-demos.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/7710244851067758079'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/7710244851067758079'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2009/07/wave-api-hackathon-silicon-valley-demos.html' title='Wave API Hackathon (Silicon Valley) Demos'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-475793315017556527</id><published>2009-07-20T13:38:00.000-07:00</published><updated>2009-07-20T13:48:33.822-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google wave'/><category scheme='http://www.blogger.com/atom/ns#' term='minutes'/><category scheme='http://www.blogger.com/atom/ns#' term='hackathon'/><title type='text'>Wave Hackathon sessions note</title><content type='html'>&lt;div&gt;Wave Hackathon in Bay Area today,  Thanks to William and many other people (sorry, I do not know all the names) who took the notes during the session, there is a very nice session minutes.  I really enjoy the collaborative editing that was happening on the real-time.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you have a wave sandbox account, you can read the minutes here: &lt;a href="https://wave.google.com/a/wavesandbox.com/#minimized:nav,minimized:contact,minimized:digest,restored:wave:wavesandbox.com!w%252Bj_uTmtvg%2525C.1"&gt;https://wave.google.com/a/wavesandbox.com/#minimized:nav,minimized:contact,minimized:digest,restored:wave:wavesandbox.com!w%252Bj_uTmtvg%2525C.1&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For those who do not have wave sandbox account, here is the notes taking by William and many others.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial; font-size: 13px; line-height: 17px; white-space: pre-wrap; "&gt;&lt;p _t="title" t="h4" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-weight: bold; font-size: 1em; "&gt;Wave Hackathon&lt;span contenteditable="false" unselectable="on" class="NKB MKB" style="white-space: normal; background-color: white; display: inline; "&gt;&lt;/span&gt; - live from Googleplex.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;Agenda can be found &lt;a x="y" href="http://www.google.com/url?sa=D&amp;amp;q=http%3A%2F%2Fdocs.google.com%2FDoc%3Fid%3Ddg3q7jr6_31gq55hgcf%26hl%3Den" target="_blank" style="font-family: arial, sans-serif; color: rgb(0, 62, 168); "&gt;here&lt;/a&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;Wave minutes:&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;Message from Lars&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; (someone check that spelling):&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;100 thousand beta users by &lt;some&gt;&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Highlight extensions by Sept 30&lt;span contenteditable="false" unselectable="on" class="NKB MKB" style="white-space: normal; background-color: white; display: inline; "&gt;&lt;/span&gt;&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Looking for more ambitious extensions and usage&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Make extensions feel right, flow properly.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Building a gallery like experience to find extensions.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Application store planned, monetize extensions (no more info at this time)&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;David Byttow&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; on Wave API&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;(Are the slides available somewhere?)&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Wave intro (why build on Google wave?)&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Real time communication.&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Workflow focused on bridging with communication&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Business opportunities&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Why are we here?&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Windows success?  From developers&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Developers key to long term success&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Wave:&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Exciting&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; technology&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;solve problems in workflow&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Increases&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; productivity&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;life to static pages&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;foundation with vast range&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Embedding&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Place a wave on a web page.&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Transparent: can even embed wave without looking like wave.&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Done via javascript&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Rethemeable&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;change color, styling, etc&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;have full access to wave&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;respond to events on wave&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Made in Java or Python, on Google App Engine&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;This is temporary, will be opened up later&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;In&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; development: Ruby API, PHP, perl coming.&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;q: when gadget broadcast state, can robot get event?&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;a: yes.  robot have more authority than gadget.&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Demo of Smiley robot: replaced ":)" and ":(" with unicode chars&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Called "yasr": yet another smiley robot&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Demo of Swedish Chef (borkforceone@appspot.com)&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Monty &lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Robot to execute python code.&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;set wave.result to function output, monty makes a blip.&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;ideas:&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Addie (calculator)&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Facty&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; (fact checking bot&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;)&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Spammy (spam deleter)&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Arnie (terminates other bots)&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Publishy&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; (publish content to external db)&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Maily&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; (email integration)&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Extensions (new)&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Shrink wrap your gadgets and robots!&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Extend client with third party apps&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Richer experience&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Share and deploy apps&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;(Using)&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Debug-&gt; Extensions-&gt;Add extension installer&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Insert via xml url.&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Puzzle , can be put in a wave and sent to others.&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Install button.&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;&lt;&lt;&lt;&gt;&gt;&gt;&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;API&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;XML based&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Hooks (listeners)&lt;/p&gt;&lt;p i="4" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 85px; "&gt;New wave&lt;/p&gt;&lt;p i="4" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 85px; "&gt;Toolbar menus&lt;/p&gt;&lt;p i="4" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 85px; "&gt;(not implemented yet)&lt;/p&gt;&lt;p i="5" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 102px; "&gt;Keyboard shortcuts&lt;/p&gt;&lt;p i="5" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 102px; "&gt;Macros&lt;/p&gt;&lt;p i="5" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 102px; "&gt;regular expressions&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Actions&lt;/p&gt;&lt;p i="4" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 85px; "&gt;Insert gadget&lt;/p&gt;&lt;p i="4" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 85px; "&gt;Add participant&lt;/p&gt;&lt;p i="4" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 85px; "&gt;Create new wave&lt;/p&gt;&lt;p i="4" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 85px; "&gt;Apply annotation&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Q: do extensions survive in the embedded UI?&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Roadmap&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Extentions&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Java robot API (open source &lt;a x="y" href="http://www.google.com/url?sa=D&amp;amp;q=http%3A%2F%2Fcode.google.com%2Fp%2Fwave-robot-java-client" target="_blank" style="font-family: arial, sans-serif; color: rgb(0, 62, 168); "&gt;http://code.google.com/p/wave-robot-java-client&lt;/a&gt;)&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Python robot api updated!&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;java api more advanced, google has updated python api to be closer now.&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Markup XHTML supported in blips&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;APPEND_MARKUP&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; operation&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Extentions&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Read only anonymous access (stretch goal)&lt;/p&gt;&lt;p i="4" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 85px; "&gt;pending scalability issues&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Extend UI configuration&lt;/p&gt;&lt;p i="4" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 85px; "&gt;Display toolbar, participant list, inbox, ...&lt;/p&gt;&lt;p i="4" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 85px; "&gt;More styling options&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Gadgets&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;UI improvements&lt;/p&gt;&lt;p i="4" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 85px; "&gt;dropdown menu on hover&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;speed up rendering&lt;/p&gt;&lt;p i="4" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 85px; "&gt;right now, there is a 1-2s delay before it renders&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;OpenSocial support&lt;/p&gt;&lt;p i="4" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 85px; "&gt;retrieve friends, etc&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;DiffOnOpen&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;/Playback states&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;GWT-based gadgets&lt;span contenteditable="false" unselectable="on" class="NKB MKB" style="white-space: normal; background-color: white; display: inline; "&gt;&lt;/span&gt;&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Robots&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;New wire protocol (v0.2)&lt;/p&gt;&lt;p i="4" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 85px; "&gt;JSON based, see python code (?)&lt;/p&gt;&lt;p i="4" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 85px; "&gt;Will be published later for feedback&lt;/p&gt;&lt;p i="4" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 85px; "&gt;Bring parity to Java+Python APIs&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Internal speed improvement for AppEngine robots&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Robot gateway, OpenSocial REST access&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Robot access to OAUTH controlled resources&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Multiple wave access&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Sunset (get rid of) robot CRON, in favor of direct access to wave servers w/ authentication&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Gateway support: improve the current "tweety" type of access to support outside addresses of the form "address+robot@appspot.com"&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Extensions&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Enable users to easily discover extension installers&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Directory of gadgets/robots/extensions&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Extention Marketplace&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Enable user management of their installed extensions (uninstaller)&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Expand API from feedback&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;Marcel Prasetya (mprasetya@google.com) marcel@wavesandbox.com - Robot Details&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Robots&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;read/write wave content in which it participates&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;General classes&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;content assist, completey, smiley&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;data synchronization: buggy, tweety&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;multi-wave applications: polly, blogbot&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;conversational: eliza&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Currently, robots only run on AppEngine&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;&lt;application-id&gt;@appspot.com&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Architecture&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Client-&gt;Wave server-&gt;linky&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Client-&gt;Wave server-&gt;spelly&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Client-&gt;Wave server-&gt;Robot proxy-&gt;(JSON HTTP)-&gt;robot&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Events&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Wavelet self added&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Blip submitted&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Document changed&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;...&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Operations&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Wavelet append blip&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;wavelet set title&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;document insert/delete&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;...&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;View objects&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Wave is xml doc with text and non-text content&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Abstraction layer:&lt;/p&gt;&lt;p i="4" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 85px; "&gt;Text View&lt;/p&gt;&lt;p i="4" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 85px; "&gt;Form View&lt;/p&gt;&lt;p i="4" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 85px; "&gt;Gadget view&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Demo: tweetz robot: simplified demo of tweety&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;no login form, uses hard-coded uname/pass&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;fetches tweets on wavelet_self_added&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;submit tweet on blip_submitted&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Build a robot (using java):&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Get app id (appengine.google.com)&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;download client library&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Devel using eclipse w/ google appengine plugin&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Eclipse project "web application" type&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Place libraries in lib/ directory of project&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;import them into project workspace (might need to refresh project after adding libs, before import)&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Create config file: /_wave/capabilities.xml&lt;/p&gt;&lt;p i="4" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 85px; "&gt;defines events to trigger&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Extend class on AbstractRobotServlet&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;override processEvents(RobotMessageBundle) func&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;&lt;see&gt;&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Create a new blip: bundle.getWavelet().appendBlip().getDocument().append("Hello, world!");&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Getting blips: for(Event e : bundle.getBlipSubmitedEvents()) { &lt;too&gt;&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;extention.xml: Defines extentions, such as UI plugins.&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Deploy the robot to App Engine&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Click eclipse AppEngine icon from google eclipse plugin&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;&lt;demonstration&gt;&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;&lt;intermission&gt;&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;Q&amp;amp;A&lt;/p&gt;&lt;p i="1" t="h2" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; font-weight: bold; font-size: 2.33333em; "&gt;&lt;span contenteditable="false" unselectable="on" class="NKB MKB" style="white-space: normal; background-color: white; display: inline; "&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;Q&amp;amp;A&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;Talk about moderation, whose in charge.  Who's in control?&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Moderation ability, control a wave.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Comment only mode.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Still thinking about it.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Built initially completely open to get it working, easily can add moderation later&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;From protocol point of view, who's in charge, moderation&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Still very early, see wave protocol forum to give feedback on it&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Will talk about it tomorrow on federation day&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;How handle spam?&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Allen: Won't allow spam on wave. ( mass laughter at this point ) &lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Expect to always have some level of abuse.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Noone can add you to a wave without them being in your address book.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Content analysis.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;All waves are signed at a provider level.&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Some discussion on user level signing, long term.&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Again, ask in federation forum&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;Problem of others editing your waves&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Possible solutions&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;specify "no bots"&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Not sure yet&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Grainular control?&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Only stuff available right now is what the client can do.&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Possible to do with robots.&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Concurrency issues with gadgets?&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Two clients click a button to increment a value, last person to click wins&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Planned support for number operations (increment, ..), key/value operations&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Currently, only text based operations (replace, append, ...)&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;Situation with connection limit (proxy-&gt;frontend)&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;No limits on front end?&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;DOS protections&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;User opens several [waves/pages of waves] on an account, runs out of connections?&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;2 channels per page&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;...No idea...&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Robot works with 1 wave.  What about robots that can use multiple waves.  Robot act on a user's behalf&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;User might authenticate a robot as themself, do work on all player waves.&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;will have OpenSocial REST &amp;amp; RPC&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;will have oauth&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;Want control over what robots can do to own waves, or on behalf of you&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Multiple angles for permissions&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;"Settings" wave, overall robot interaction&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Control, and turn off extentions via setty&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;concept: "do not use spelly on wave that matches a seach"&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;Minimum bitrate required&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Right now: pretty hight&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Not tuned yet&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Work on mobile client will improve desktop client as well&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Gadget performance&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;RPCs: very fast, POST message&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Loading gadget: initial iframe load issue, 1-2 seconds&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Speed being worked on&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;reason is iframe loading from 3rd party or gmodule&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Forwarding waves&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Add someone to a wave&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Copy wave to a new wave&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;&lt;...&gt;&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;More control permission to owner&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Removing participants feature does not exist.  (also, robot cannot remove people right now)&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;Concern of someone adding too many robots, too many blips&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;No robot limit&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Yes. (it is a concern)&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;"Who are you waving with, do you trust them"&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Long term: control over the wave.  Who can add what (block new participants from adding more)&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;There is a rate limit.  Spammy robots get blacklisted if they go insane.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Robots are passive, a crashed robot will not affect anything (aside from the lack of a robot)&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Given a thousand-robot wave, don't open that wave.&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;Enough APIs to create your own wave client (related: running own wave server)&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Yes, of course&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Still working on it&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Ask on federation day.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Currently: only can embed a wave&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Later: embed other components&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;Participant limit?&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Cannot handle too many "yet"&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Talking about solutions&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Will need to be a hard limit&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Again, discuss on wave protocol forum&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;Mobile client, supported now?&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Existing client built using GWT&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;slowly being worked on in background&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;not a priority right now&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;Can a gadget talk directly to a robot?&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Gadget updates state, robot responds to it&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;(external?) request: call robot directly (not a good choice, storage and playback bypassed)&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Send message directly to robot&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;&lt;..&gt;&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Working on more moderation abilities&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;"Commenter" role important: people can only comment, cant edit original.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Looking at use cases before implementing&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;How to implement a group, group level access?&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Group functionality is limited right now&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Working to expand it&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Groupy the bot exists, written at a prior hackathon&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;Location based blips (standalone, not added by gadget)?&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Interesting idea&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;HTML5 has gps/location API?&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Announce something when near something?&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;Mail integration?&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Yep, write a mail gateway&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Tough problem.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Enough API internally right now&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;No time before launch&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Talk to waveteam if you want to make one.&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;Access wave client with XMPP client?&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Ask at federation protocol&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;Google Voice integration?&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Nothing announced&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;interesting use cases&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Robot protocol, simple protocol&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;JSON&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;proprietary from Google&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;fast, compact&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Developers use client interface? (???)&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Dont think so&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;implementation detail&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;Google wave server open source?&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Working to make it open source&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Will take time to disentangle it from google production stuff&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;"Tomorrow [federation day] will be very exciting&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;"&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;White paper?  Implementation documentation?  Internal timelines?&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Question for tomorrow&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;&lt;on&gt;&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Robots running on other 3 servers (?)&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Different client interface&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;"It's your wave server"&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Robot is mechanism to update content of wave xml&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Up to the client how to render a robot.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Robot APIs "should" be made similar&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;Cirtifying&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; robots/extentions&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Nothing to announce right now.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Sept 30: adding real live users&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;View the backing xml to render a wave in the client?&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Robots don't have access right now&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Will be opened up later.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Right now: a way to look at wave content for debugging &lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;hotkey or something, combo of 3 keys&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;dont remember the combo&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Used to back up the content?&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Sure.&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Robot to backup the data, snapshot of xml&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;no way to get it "back in" to the wave&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;If build a client: 2 ways of backend.  Bypass editor, or use editor.  API to editor?&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;For google editor: working on modularizing it.  Would love to open source it.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Very complex&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Nothing to announce right now.&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Super important&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Haven't had time to open source client.&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;&lt;no&gt;&lt;/p&gt;&lt;p t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 17px; "&gt;(Let the hacking begin!)&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Requires sandbox account during dev preview&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Q: we have to login to wave&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; account first before we browse to the site with wave? &lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Account will not be required for viewing&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Ideas:&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Embed on site&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Chess&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Wave CMS&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Gadgets&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Features&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Real time updates&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;participant support&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;state management&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;revision history&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;playback&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Google Gadget Editor&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;&lt;a x="y" href="http://www.google.com/url?sa=D&amp;amp;q=http%3A%2F%2Fcode.google.com%2Fapis%2Fgadgets%2Fdocs%2Flegacy%2Fgs.html%23GGE" target="_blank" style="font-family: arial, sans-serif; color: rgb(0, 62, 168); "&gt;http://code.google.com/apis/gadgets/docs/legacy/gs.html#GGE&lt;/a&gt;&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Public Location&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;:&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Google App Engine&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;websites&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Adding gadget to wave&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Debug menu: Debug-&gt;Extentions-&gt;Add Gadget, paste url in.&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Toolbar menu&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Robots API - robot can add gadget&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Tips&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Automatic height adjustment&lt;span style="-webkit-user-modify: read-only; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p i="4" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 85px; "&gt;requires feature: dynamic-height&lt;/p&gt;&lt;p i="4" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 85px; "&gt;Calls to gadgets.window.adjustHeight()&lt;/p&gt;&lt;p i="4" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 85px; "&gt;(see docs)&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Safari 3 gadget flaky right now&lt;/p&gt;&lt;p i="4" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 85px; "&gt;Use FireFox 3, or Safari 4&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;try not to visualize changes before state changes are reflected on the client&lt;/p&gt;&lt;p i="4" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 85px; "&gt;Dont submit deltas, render on state change&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Develop with playback in mind&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Ideas&lt;/p&gt;&lt;p i="4" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 85px; "&gt;tic-tac-toe&lt;/p&gt;&lt;p i="4" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 85px; "&gt;server-authoritative chess (robots + gadgets)&lt;/p&gt;&lt;p i="4" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 85px; "&gt;Collaborative TODO list&lt;/p&gt;&lt;p i="4" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 85px; "&gt;whiteboard&lt;/p&gt;&lt;p i="4" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 85px; "&gt;embedded browser (collaborative surfing)&lt;/p&gt;&lt;p i="1" t="li" class="simulated-li bullet-type-1" style="display: list-item; list-style-type: circle; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 34px; "&gt;Robots&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Robotic Butlers :)&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Architecture&lt;/p&gt;&lt;p i="3" t="li" class="simulated-li bullet-type-0" style="display: list-item; list-style-type: disc; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 68px; "&gt;Client-&gt;Server-&gt;Robot Proxy-&gt;(JSON HTTP)-&gt;Robot on App Engine&lt;/p&gt;&lt;p i="2" t="li" class="simulated-li bullet-type-2" style="display: list-item; list-style-type: square; list-style-position: outside; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 51px; "&gt;Robots are participants, can do anything a user can do.&lt;span contenteditable="false" unselectable="on" class="NKB MKB" style="white-space: normal; background-color: white; display: inline; "&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="AJB CJB" style="font-family: arial, sans-serif; font-size: small; display: inline; "&gt;&lt;div class="button EJB up cat enabled" title="Hide replies" style="font-family: arial, sans-serif; font-size: small; cursor: pointer; display: inline-block; margin-left: 0.3em; margin-right: 0.3em; height: 13px; width: 15px; overflow-x: hidden; overflow-y: hidden; background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAANCAYAAAB2HjRBAAAAxElEQVR42p2RTQrCMBCFc18P4NareAGLuiyi0EUrtIt2UwMtWPAPrX/V/TODaZ3WiKUDXzJ5eS+QRAhdw8kcbRG8SJgFEpsn/kK+6gBqbCVkBbB+AFmTQsM0uzyAhvQOJJpUw/umltzwCa+uQKyhvtcffME98YWFoxyIznjPJWod5nUtZHtVeLqU8E9AcAR8AwGD1uSvPdrYk3APqOEZZvIZv4tjKZOzB5wdYLny9z+bikyLLTByZbtAM9wpyK8hulSb4Aue1MzpwcwwRQAAAABJRU5ErkJggg==); background-repeat: no-repeat; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: 0px 0px; "&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;i&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-475793315017556527?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/475793315017556527/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2009/07/wave-hackathon-sessions-note.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/475793315017556527'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/475793315017556527'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2009/07/wave-hackathon-sessions-note.html' title='Wave Hackathon sessions note'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-5419793367490595518</id><published>2009-07-20T08:27:00.000-07:00</published><updated>2009-07-20T09:35:33.584-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='meetup'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='hackathon'/><title type='text'>Google Technology Campout</title><content type='html'>If you are in mood of some hacking in early August, Silicon Valley Google Technology User Group (SV-GTUG) is hosting a Googe Technology Campout for hacking on Google technologies.  More specifically, topics will be focused on Wave and AppEngine for this particular campout.  Have fun.  &lt;div&gt;You can read more about it here: &lt;a href="http://www.meetup.com/sv-gtug/pages/GTUG_Campout:_Silicon_Valley/"&gt;http://www.meetup.com/sv-gtug/pages/GTUG_Campout:_Silicon_Valley/&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-5419793367490595518?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/5419793367490595518/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2009/07/google-technology-campout.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/5419793367490595518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/5419793367490595518'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2009/07/google-technology-campout.html' title='Google Technology Campout'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-6539812753667825670</id><published>2009-07-20T08:23:00.000-07:00</published><updated>2009-07-20T08:27:24.250-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google wave'/><category scheme='http://www.blogger.com/atom/ns#' term='wave'/><category scheme='http://www.blogger.com/atom/ns#' term='hackathon'/><title type='text'>Wave API Hackathon Day &amp; Wave Federation Day July 20 &amp; 21</title><content type='html'>Google is hosting two days of Wave hacking and knowledge fun:&lt;div&gt;Wave API Hackathon Day: July 20&lt;/div&gt;&lt;div&gt;Wave Federation Day: July 21&lt;/div&gt;&lt;div&gt;Locations is Google Headquarter in Mountain View&lt;/div&gt;&lt;div&gt;See Google blog for more details: &lt;a href="http://googlewavedev.blogspot.com/2009/07/google-wave-hackathon-and-federation.html" style="text-decoration: none;"&gt;http://googlewavedev.blogspot.com/2009/07/google-wave-hackathon-and-federation.html&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-6539812753667825670?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/6539812753667825670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2009/07/wave-api-hackathon-day-wave-federation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/6539812753667825670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/6539812753667825670'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2009/07/wave-api-hackathon-day-wave-federation.html' title='Wave API Hackathon Day &amp; Wave Federation Day July 20 &amp; 21'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-5496306536278889837</id><published>2009-07-13T23:11:00.000-07:00</published><updated>2009-07-13T23:15:18.620-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google wave'/><category scheme='http://www.blogger.com/atom/ns#' term='meetup'/><category scheme='http://www.blogger.com/atom/ns#' term='api'/><title type='text'>Tonight's Google Wave Meetup presented by David Byttow</title><content type='html'>&lt;span class="Apple-style-span"   style="font-family:Helvetica;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="border-collapse: collapse;  line-height: 16px;font-size:13px;"&gt;David Byttow presented Wave API in tonight's Bay Area Google Wave Meetup.  Here are some of the notes I wrote down.&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:Helvetica;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="border-collapse: collapse;  line-height: 16px;font-size:13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:Helvetica;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="border-collapse: collapse;  line-height: 16px;font-size:13px;"&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;In the beginning of today’s session, David goes through embed, gadget, and robot API. &lt;span&gt; &lt;/span&gt;Then he went into something new and exciting: Zombies (I know... it is not really not great a name).&lt;span&gt;  &lt;/span&gt;Zombies are robots running on the client-side, most likely inside the gadgets.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Zombies&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1; tab-stops:list .5in"&gt;&lt;span style="font-family:&amp;quot;;"&gt;&lt;span&gt;-&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;robots running on the client&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1; tab-stops:list .5in"&gt;&lt;span style="font-family:&amp;quot;;"&gt;&lt;span&gt;-&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;client-side sandbox environment&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1; tab-stops:list .5in"&gt;&lt;span style="font-family:&amp;quot;;"&gt;&lt;span&gt;-&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;allows gadgets to have robots-like api&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;example uses:&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1; tab-stops:list .5in"&gt;&lt;span style="font-family:&amp;quot;;"&gt;&lt;span&gt;-&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;syntax highlighting&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1; tab-stops:list .5in"&gt;&lt;span style="font-family:&amp;quot;;"&gt;&lt;span&gt;-&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;auto-correction and formatting&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1; tab-stops:list .5in"&gt;&lt;span style="font-family:&amp;quot;;"&gt;&lt;span&gt;-&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;client ui modification&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Zombies is an internal name, it may not be released under this name. &lt;span&gt; &lt;/span&gt;Several people in the meetup suggested the name &lt;b&gt;Implant&lt;/b&gt; instead of &lt;b&gt;Zombies&lt;/b&gt; as they feel that is a more accurate description.&lt;span&gt;  &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:Helvetica;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="border-collapse: collapse;  line-height: 16px; font-size:13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"    style="font-family:Helvetica;font-size:100%;color:#808080;"&gt;&lt;span class="Apple-style-span"  style="border-collapse: collapse;  line-height: 16px;font-size:13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-5496306536278889837?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/5496306536278889837/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2009/07/tonights-google-wave-meetup-presented.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/5496306536278889837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/5496306536278889837'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2009/07/tonights-google-wave-meetup-presented.html' title='Tonight&apos;s Google Wave Meetup presented by David Byttow'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-6782424061747931809</id><published>2009-07-12T11:04:00.000-07:00</published><updated>2009-07-12T11:18:37.775-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='adt'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Change non-Eclipse SVN project to Android Eclipse project</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Some Android project on svn may not be an Eclipse project.  To get the convenience of ADT, we may wish to transform them to Android Eclipse project.  The following are the steps:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Preparation:&lt;/div&gt;&lt;div&gt;Make sure you have the following plugins installed:&lt;/div&gt;&lt;div&gt;- Android plugins for Eclipse&lt;/div&gt;&lt;div&gt;- Subclipse&lt;/div&gt;&lt;div&gt;We assume that you have already configured Eclipse for Android development.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;(The following description and screenshots comes from Eclipse Ganymede version).&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;import from svn by doing the usual file-&gt;new-&gt;other-&gt;check out project from svn&lt;/li&gt;&lt;li&gt;select "check out as a project configured using new project wizard"&lt;/li&gt;&lt;li&gt;select android project&lt;/li&gt;&lt;li&gt;find out the package name and the class that extends Activity class and enter in the info.  eg.&lt;img src="http://3.bp.blogspot.com/_VcQsDabaYRc/SloooI5ucZI/AAAAAAAAAhM/8ba4l9AAnZI/s320/translate_project_creation.gif" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 254px; height: 320px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5357639376760107410" /&gt;&lt;/li&gt;&lt;li&gt;create the project.&lt;/li&gt;&lt;li&gt;You may see a build error caused by conflicting R.java.  Under src directory, there is a R.java, which conflicts with the R.java generated by Android project under gen directory.   Delete R.java under src directory.  (You may wish to do a diff of the two files first).&lt;/li&gt;&lt;li&gt;clean and rebuild and make sure there is no error.&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;Hope it helps.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-6782424061747931809?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/6782424061747931809/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2009/07/change-non-eclipse-svn-project-to.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/6782424061747931809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/6782424061747931809'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2009/07/change-non-eclipse-svn-project-to.html' title='Change non-Eclipse SVN project to Android Eclipse project'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_VcQsDabaYRc/SloooI5ucZI/AAAAAAAAAhM/8ba4l9AAnZI/s72-c/translate_project_creation.gif' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-2885755968803082044</id><published>2009-07-01T21:42:00.000-07:00</published><updated>2009-07-01T21:47:06.138-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google wave'/><category scheme='http://www.blogger.com/atom/ns#' term='robot'/><category scheme='http://www.blogger.com/atom/ns#' term='gadget'/><category scheme='http://www.blogger.com/atom/ns#' term='embed'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Notes from Seth Covitz's talk on Wave at Google Technology User Group</title><content type='html'>&lt;div&gt;Some notes from &lt;span class="Apple-style-span" style="font-family: Arial; font-size: 13px; white-space: pre; "&gt;Seth Covitz's Wave talk tonight.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul style="margin-top:0in" type="square"&gt;  &lt;li class="MsoNormal" style="mso-list:l0 level1 lfo1;tab-stops:list .5in"&gt;Documents      are used for content (blips) and data (data documents)&lt;/li&gt;  &lt;li class="MsoNormal" style="mso-list:l0 level1 lfo1;tab-stops:list .5in"&gt;Documents      contains xml and annotations&lt;/li&gt;  &lt;li class="MsoNormal" style="mso-list:l0 level1 lfo1;tab-stops:list .5in"&gt;Annotation      can specify range.&lt;span style="mso-spacerun:yes"&gt;  &lt;/span&gt;Avoiding xml’s      nesting problem&lt;/li&gt;  &lt;li class="MsoNormal" style="mso-list:l0 level1 lfo1;tab-stops:list .5in"&gt;Documents      are stored as a series of deltas&lt;/li&gt;  &lt;li class="MsoNormal" style="mso-list:l0 level1 lfo1;tab-stops:list .5in"&gt;Delta      is xml format too.&lt;/li&gt;  &lt;li class="MsoNormal" style="mso-list:l0 level1 lfo1;tab-stops:list .5in"&gt;Different      clients will have to take the documents and render it the same way.&lt;span style="mso-spacerun:yes"&gt;  &lt;/span&gt;&lt;/li&gt;  &lt;li class="MsoNormal" style="mso-list:l0 level1 lfo1;tab-stops:list .5in"&gt;Even      if operations are applied in different order, they will still result in      same data (operational transformation research)&lt;/li&gt; &lt;/ul&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;For wave gadgets:&lt;/p&gt;  &lt;p class="MsoNormal"&gt;You may not want to update the gadget ui when user interact with it, you should just generate a state change, then wait for the state callback to change ui.&lt;/p&gt;&lt;p class="MsoNormal"&gt;Seth demoed a +1 gadget.  He also demoed a wave gadget being embedded on igoogle using embed API.  &lt;/p&gt;  &lt;p class="MsoNormal"&gt;Wave is indexed in realtime.&lt;span style="mso-spacerun:yes"&gt;  &lt;/span&gt;There is indexer watching change and update index for your search.&lt;span style="mso-spacerun:yes"&gt;  &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Hook extensions&lt;/p&gt;  &lt;ul style="margin-top:0in" type="square"&gt;  &lt;li class="MsoNormal" style="mso-list:l1 level1 lfo2;tab-stops:list .5in"&gt;Extending      the google wave client&lt;/li&gt;  &lt;ul style="margin-top:0in" type="circle"&gt;   &lt;li class="MsoNormal" style="mso-list:l1 level2 lfo2;tab-stops:list 1.0in"&gt;Keyboard       action, etc &lt;/li&gt;&lt;/ul&gt; &lt;/ul&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Robot architecture&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;too concentrated on listening.  Didn't copy things down.  &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-2885755968803082044?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/2885755968803082044/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2009/07/notes-from-seth-covitzs-talk-on-wave-at.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/2885755968803082044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/2885755968803082044'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2009/07/notes-from-seth-covitzs-talk-on-wave-at.html' title='Notes from Seth Covitz&apos;s talk on Wave at Google Technology User Group'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-4179180517776357826</id><published>2009-06-26T13:49:00.000-07:00</published><updated>2009-06-26T13:54:36.200-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google wave'/><category scheme='http://www.blogger.com/atom/ns#' term='client-server'/><title type='text'>Wave client-server protocol</title><content type='html'>There were some discussion about client-server protocol at wave office hour.  &lt;div&gt;On waveprotocol.org, there is a white paper about wave client-server protocol.  &lt;a href="http://www.waveprotocol.org/whitepapers/internal-client-server-protocol"&gt;http://www.waveprotocol.org/whitepapers/internal-client-server-protocol&lt;/a&gt; &lt;div&gt;However, the white paper is a high level view of what the protocol should look like, it does not yet specify what the protocol should look like.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I think client-server protocol may be important to help people who build other server and client to maintain compatibility.  This is especially important for desktop client.  If email protocol was not standardized, Outlook and Thunderbird email client may only talk to only certain email servers.  Hopefully, a client-server protocol standard may emerge.  &lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-4179180517776357826?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/4179180517776357826/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2009/06/wave-client-server-protocol.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/4179180517776357826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/4179180517776357826'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2009/06/wave-client-server-protocol.html' title='Wave client-server protocol'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-3167254679748483394</id><published>2009-06-26T13:44:00.000-07:00</published><updated>2009-06-26T13:49:09.195-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='flex builder'/><title type='text'>Flex Builder 4 Beta is out</title><content type='html'>Flex Builder 4 beta is out for at least a week now. I like Flex Builder 4 more than Flash Builder 4.  I wish they have kept the original name.  In the enterprise world, it is much better in the enterprise world to call it Flex than Flash...  &lt;a href="http://labs.adobe.com/technologies/flashbuilder4/"&gt;http://labs.adobe.com/technologies/flashbuilder4/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-3167254679748483394?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/3167254679748483394/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2009/06/flex-builder-4-beta-is-out.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/3167254679748483394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/3167254679748483394'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2009/06/flex-builder-4-beta-is-out.html' title='Flex Builder 4 Beta is out'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-7861494222805583701</id><published>2009-06-23T20:59:00.000-07:00</published><updated>2009-06-23T21:00:27.356-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google wave'/><title type='text'>Google launches Wave sample Gallery</title><content type='html'>&lt;div&gt;nice!  http://wave-samples-gallery.appspot.com&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-7861494222805583701?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/7861494222805583701/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2009/06/google-launches-wave-sample-gallery.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/7861494222805583701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/7861494222805583701'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2009/06/google-launches-wave-sample-gallery.html' title='Google launches Wave sample Gallery'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-6515869397284589244</id><published>2009-06-17T22:20:00.000-07:00</published><updated>2009-06-17T22:28:45.129-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google wave'/><category scheme='http://www.blogger.com/atom/ns#' term='wave-as-client'/><category scheme='http://www.blogger.com/atom/ns#' term='wave'/><title type='text'>Presented Wave Actionscript API at first Bay Area Google Wave meetup</title><content type='html'>Last Monday was the first Bay Area Google Wave meetup.  I have presented the wave-as-client (the first Wave Actionscript Library) with a photo browser demo.  When one party scroll to a different photo, the other party's photo browser will scroll to that photo too.  :)   Hopefully people enjoy the demo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-6515869397284589244?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/6515869397284589244/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2009/06/presented-wave-actionscript-api-at.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/6515869397284589244'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/6515869397284589244'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2009/06/presented-wave-actionscript-api-at.html' title='Presented Wave Actionscript API at first Bay Area Google Wave meetup'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-3440813827018209781</id><published>2009-06-15T14:01:00.000-07:00</published><updated>2009-06-15T14:21:08.815-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='race condition'/><category scheme='http://www.blogger.com/atom/ns#' term='gadget'/><category scheme='http://www.blogger.com/atom/ns#' term='wave'/><title type='text'>Google Wave and Race Condition</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Character-level protocol&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Google wave is the new platform for real-time communication that allows both parties to edit the same wavlet (you can think of wavelet as conversation or document).  If you are a software developer, you might be thinking about how Wave is going to deal with race condition.   I just found a good video from a Google engineer David Wang that might help clarify how wave can avoid race condition on protocol level when both sides are transmitting changes.  Bascially, the protocol will specify the changes at the character level.  &lt;div&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=3ykZYKCK7AM"&gt;http://www.youtube.com/watch?v=3ykZYKCK7AM&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Race condition on Wave Gadget&lt;/span&gt;&lt;/div&gt;&lt;div&gt;That said, it seems that Wave Gadget may run into race condition.  &lt;/div&gt;&lt;div&gt;If one participant write "gamestate"=1 into wave gadget state  and the other party write "gamestate"=5.  Then whoever writes later will overwrite the other's change.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To make it more concrete:&lt;/div&gt;&lt;div&gt;Let's say that both party check state to see if a host for the game is selected.  If not, claim to be host and save it to state.    &lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;party1 calls wave.getState() to and sees that "gamehost" property is absent.  So gamehost is not selected.&lt;/li&gt;&lt;li&gt;party2 calls wave.getState() to and sees that "gamehost" property is absent.  So gamehost is not selected.&lt;/li&gt;&lt;li&gt;party1 go ahead and claim to be gamehost and write the state "gamehost=party1" (by calling wave.getState().submitDelta())&lt;/li&gt;&lt;li&gt;party2 go ahead and claim to be gamehost and write the state "gamehost=party2"&lt;/li&gt;&lt;li&gt;Now both side think they are the host.  Whoever writes last will overwrite the other side's state.  &lt;/li&gt;&lt;/ol&gt;&lt;div&gt;Hopefully there will be better control about race condition in Wave Gadget later.  &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-3440813827018209781?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/3440813827018209781/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2009/06/google-wave-and-race-condition.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/3440813827018209781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/3440813827018209781'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2009/06/google-wave-and-race-condition.html' title='Google Wave and Race Condition'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-9166832387429142731</id><published>2009-06-15T13:54:00.000-07:00</published><updated>2009-06-15T14:00:24.393-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='event'/><category scheme='http://www.blogger.com/atom/ns#' term='wave'/><title type='text'>First Bay Area Google Wave Meetup Tonight</title><content type='html'>Lawrence Wong has organized a new Google Wave Meetup for Silicon Valley and San Francisco Bay Area.  If you are interested in Wave and you are local to this meetup, you should come check this out.  &lt;div&gt;&lt;a href="http://www.meetup.com/Bay-Area-Google-Wave-Meetup-Group/calendar/10528233/"&gt;http://www.meetup.com/Bay-Area-Google-Wave-Meetup-Group/calendar/10528233/&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-9166832387429142731?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/9166832387429142731/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2009/06/first-bay-area-google-wave-meetup.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/9166832387429142731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/9166832387429142731'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2009/06/first-bay-area-google-wave-meetup.html' title='First Bay Area Google Wave Meetup Tonight'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-6954549464172664501</id><published>2009-06-08T23:12:00.000-07:00</published><updated>2009-06-08T23:16:12.808-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wave-as-client'/><category scheme='http://www.blogger.com/atom/ns#' term='actionscript'/><category scheme='http://www.blogger.com/atom/ns#' term='wave'/><category scheme='http://www.blogger.com/atom/ns#' term='doc'/><title type='text'>Google Wave Actionscript API - v0.3 asDoc posted</title><content type='html'>Posted v0.3's asDoc at this location:&lt;div&gt;http://wave-as-client.googlecode.com/files/wave-as-client-doc03.zip&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-6954549464172664501?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/6954549464172664501/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2009/06/v03-asdoc-posted.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/6954549464172664501'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/6954549464172664501'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2009/06/v03-asdoc-posted.html' title='Google Wave Actionscript API - v0.3 asDoc posted'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-8920350455325133864</id><published>2009-06-08T23:11:00.000-07:00</published><updated>2009-06-08T23:16:38.281-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wave-as-client'/><category scheme='http://www.blogger.com/atom/ns#' term='actionscript'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='wave'/><title type='text'>Google Wave Actionscript API - v0.3 released</title><content type='html'>Implemented wave.getParticipants() and wave.getParticipantById().&lt;div&gt;All methods are implemented.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Downloaded the source code and swc at &lt;a href="http://code.google.com/p/wave-as-client/downloads/list"&gt;http://code.google.com/p/wave-as-client/downloads/list&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-8920350455325133864?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/8920350455325133864/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2009/06/v03-released.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/8920350455325133864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/8920350455325133864'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2009/06/v03-released.html' title='Google Wave Actionscript API - v0.3 released'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-1229052969358838144</id><published>2009-06-08T16:52:00.000-07:00</published><updated>2009-06-08T16:56:21.883-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flex builder'/><category scheme='http://www.blogger.com/atom/ns#' term='asdoc'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='actionscript'/><title type='text'>asDoc with Flex Builder</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: -webkit-sans-serif; line-height: 17px; "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Martin Rädlinger&lt;/span&gt;&lt;/span&gt; has a good article about how to setup asDoc right from Eclipse or Flex Builder.  The instruction works great.  The only thing you have to be careful is that the arguments should be "-window-tile" instead of "- window-title" (look at the screenshot that shows the argument and you'll understand what I mean).&lt;/div&gt;&lt;div&gt;&lt;a href="http://blog.formatlos.de/2008/07/10/asdoc-with-eclipse/"&gt;http://blog.formatlos.de/2008/07/10/asdoc-with-eclipse/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-1229052969358838144?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/1229052969358838144/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2009/06/asdoc-with-flex-builder.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/1229052969358838144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/1229052969358838144'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2009/06/asdoc-with-flex-builder.html' title='asDoc with Flex Builder'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-4741708023493178551</id><published>2009-06-08T14:44:00.000-07:00</published><updated>2009-06-08T15:07:23.256-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='palm pre'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>iPhone, Android, and Palm Pre units sold</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here are a few items found from the Internet about how many units was sold for each of the 3 phones.  &lt;/div&gt;&lt;div&gt;&lt;p class="MsoNormal"&gt;Stat as of 2009/06/08&lt;/p&gt;  &lt;table class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border:none;mso-border-alt:solid windowtext .5pt;  mso-yfti-tbllook:480;mso-padding-alt:0in 5.4pt 0in 5.4pt;mso-border-insideh:  .5pt solid windowtext;mso-border-insidev:.5pt solid windowtext"&gt;  &lt;tbody&gt;&lt;tr style="mso-yfti-irow:0;mso-yfti-firstrow:yes"&gt;   &lt;td width="68" valign="top" style="width:50.8pt;border:solid windowtext 1.0pt;   mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="326" valign="top" style="width:244.4pt;border:solid windowtext 1.0pt;   border-left:none;mso-border-left-alt:solid windowtext .5pt;mso-border-alt:   solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal"&gt;Number of units&lt;/p&gt;   &lt;/td&gt;   &lt;td width="197" valign="top" style="width:2.05in;border:solid windowtext 1.0pt;   border-left:none;mso-border-left-alt:solid windowtext .5pt;mso-border-alt:   solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal"&gt;Number of apps&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:1"&gt;   &lt;td width="68" valign="top" style="width:50.8pt;border:solid windowtext 1.0pt;   border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;   padding:0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal"&gt;iPhone&lt;/p&gt;   &lt;/td&gt;   &lt;td width="326" valign="top" style="width:244.4pt;border-top:none;border-left:   none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;   mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;   mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal"&gt;40million (June 2009, before new iphone launches. &lt;span style="mso-spacerun:yes"&gt; &lt;/span&gt;It will surely increases after new iPhone launches.)&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;1&lt;sup&gt;st&lt;/sup&gt; generation: 146k sold in first weekend&lt;/p&gt;   &lt;p class="MsoNormal"&gt;3g version: 1m sold in first weekend&lt;/p&gt;   &lt;/td&gt;   &lt;td width="197" valign="top" style="width:2.05in;border-top:none;border-left:   none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;   mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;   mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal"&gt;50000 (June 2009)&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:2"&gt;   &lt;td width="68" valign="top" style="width:50.8pt;border:solid windowtext 1.0pt;   border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;   padding:0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal"&gt;Android&lt;/p&gt;   &lt;/td&gt;   &lt;td width="326" valign="top" style="width:244.4pt;border-top:none;border-left:   none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;   mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;   mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal"&gt;1m g1 sold on t-mobile in Mar or Apr 09 according to one   blog (approximately 5 or 6 months after launch).&lt;/p&gt;   &lt;p class="MsoNormal"&gt;According to another blog, 1m g1 is sold in 71 days   (faster than 1&lt;sup&gt;st&lt;/sup&gt; generation iphone)&lt;/p&gt;   &lt;/td&gt;   &lt;td width="197" valign="top" style="width:2.05in;border-top:none;border-left:   none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;   mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;   mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:3;mso-yfti-lastrow:yes"&gt;   &lt;td width="68" valign="top" style="width:50.8pt;border:solid windowtext 1.0pt;   border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;   padding:0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal"&gt;Palm pre&lt;/p&gt;   &lt;/td&gt;   &lt;td width="326" valign="top" style="width:244.4pt;border-top:none;border-left:   none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;   mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;   mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal"&gt;Estimate 50k sold in first weekend (June 8, 2009)&lt;/p&gt;   &lt;/td&gt;   &lt;td width="197" valign="top" style="width:2.05in;border-top:none;border-left:   none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;   mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;   mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal"&gt;n/a&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal"&gt;Source: Iphone and Palm Pre figures: &lt;span class="apple-style-span"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Lucida Grande&amp;quot;; color:#888888"&gt;&lt;a href="http://www.techcrunch.com/author/mg/" title="Posts by MG Siegler"&gt;&lt;b&gt;&lt;span style="color:#2E2E2E;text-decoration:none; text-underline:none"&gt;MG Siegler&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt; &lt;a href="http://www.techcrunch.com/2009/06/08/40-million-iphones-and-ipod-touches-and-50000-apps/"&gt;http://www.techcrunch.com/2009/06/08/40-million-iphones-and-ipod-touches-and-50000-apps/&lt;/a&gt; &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Source: android data: &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://www.googleandblog.com/android-phones-million-sold-faster-than-iphone/3564/"&gt;http://www.googleandblog.com/android-phones-million-sold-faster-than-iphone/3564/&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://www.androidcentral.com/t-mobile-g1-hits-million-units-sold"&gt;http://www.androidcentral.com/t-mobile-g1-hits-million-units-sold&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-4741708023493178551?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/4741708023493178551/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2009/06/iphone-android-and-palm-pre-units-sold.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/4741708023493178551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/4741708023493178551'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2009/06/iphone-android-and-palm-pre-units-sold.html' title='iPhone, Android, and Palm Pre units sold'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-5581142145799791363</id><published>2009-06-07T00:55:00.000-07:00</published><updated>2009-06-07T00:57:44.105-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='api'/><category scheme='http://www.blogger.com/atom/ns#' term='release'/><category scheme='http://www.blogger.com/atom/ns#' term='actionscript'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='wave'/><title type='text'>Google Wave Actionscript API - v0.2 out</title><content type='html'>Most of the major functionalities are working.  It is tested on Wave developer sandbox.  Yes, I get the sandbox access.  :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-5581142145799791363?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/5581142145799791363/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2009/06/google-wave-actionscript-api-v02-out.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/5581142145799791363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/5581142145799791363'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2009/06/google-wave-actionscript-api-v02-out.html' title='Google Wave Actionscript API - v0.2 out'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-5032309324599585368</id><published>2009-06-06T09:29:00.000-07:00</published><updated>2009-06-06T09:31:32.142-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='api'/><category scheme='http://www.blogger.com/atom/ns#' term='actionscript'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='wave'/><title type='text'>Google Wave Actionscript API - status update</title><content type='html'>Most of the major functionalities should work.  Will fix a couple more issue on Sunday.  &lt;div&gt;The code can be downloaded at &lt;a href="http://code.google.com/p/wave-as-client/source/checkout"&gt;http://code.google.com/p/wave-as-client/source/checkout&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-5032309324599585368?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/5032309324599585368/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2009/06/google-wave-actionscript-api-status.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/5032309324599585368'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/5032309324599585368'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2009/06/google-wave-actionscript-api-status.html' title='Google Wave Actionscript API - status update'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-3534661422989217176</id><published>2009-06-04T20:33:00.000-07:00</published><updated>2009-06-04T20:38:24.177-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='gadget'/><category scheme='http://www.blogger.com/atom/ns#' term='actionscript'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='wave'/><title type='text'>Google Wave Actionscript API</title><content type='html'>I have started creating an Actionscript library for Google Wave Gadget API.  If everything goes as planned, one should be able to create gadgets that contain wave-enabled Flex/Flash using this library.  &lt;div&gt;It is hosted at http://code.google.com/p/wave-as-client&lt;/div&gt;&lt;div&gt;It is not yet in any type of working version as it is not tested.  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-3534661422989217176?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/3534661422989217176/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2009/06/google-wave-actionscript-api.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/3534661422989217176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/3534661422989217176'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2009/06/google-wave-actionscript-api.html' title='Google Wave Actionscript API'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-6194767802099812270</id><published>2009-06-02T18:10:00.000-07:00</published><updated>2009-06-02T18:13:11.021-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='api'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='wave'/><title type='text'>Google Wave API Introduction</title><content type='html'>&lt;b&gt;&lt;h1&gt;What type of things you can do beyond the standard Wave:&lt;/h1&gt;&lt;p&gt;Developers can use the Wave API to extend the functionalities.  Wave API allow us to implement new application that runs on Wave server (ie. Robot api), or client-side application that runs within a wave (ie. Gadget api).  It also allows external website to add Wave functionalities to their site (ie. Embed api).&lt;/p&gt;&lt;h1&gt;3 types of Wave API&lt;/h1&gt;&lt;ol&gt;&lt;li&gt;Robot&lt;/li&gt;&lt;li&gt;Gadget&lt;/li&gt;&lt;li&gt;Embed&lt;/li&gt;&lt;/ol&gt;&lt;h2&gt;Robot&lt;/h2&gt;&lt;p&gt;Robot api allows developer to build an automated program that fills the role of a Wave participant. &lt;/p&gt;&lt;p&gt;API Language: Java, Python&lt;/p&gt;&lt;p&gt;The example of what this api can do include:&lt;/p&gt;&lt;p&gt;Translation robot: robot that automatically translates the text.&lt;/p&gt;&lt;p&gt;Link robot: robot that automatically change the typed link into a hyperlink.&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;h2&gt;Gadget&lt;/h2&gt;&lt;p&gt;Gadgets are client-side program that can be run inside a wave.  Wave itself is a gadget container. &lt;/p&gt;&lt;p&gt;API language: javascript&lt;/p&gt;&lt;p&gt;example: putting a voting gadget within the conversation to allow people to vote on a particular choice. &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;h2&gt;Embed&lt;/h2&gt;&lt;p&gt;Embed api allows another web site to embed Wave on it.  Right now, this is still quite limited.  It basically contains an iframe where you can place a WavePanel in it.  Then the website can add participant, add reply, or load an existing conversation.&lt;/p&gt;&lt;p&gt;API language: javascript&lt;/p&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-6194767802099812270?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/6194767802099812270/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2009/06/google-wave-api-introduction.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/6194767802099812270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/6194767802099812270'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2009/06/google-wave-api-introduction.html' title='Google Wave API Introduction'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968549194668209695.post-1909996564925793304</id><published>2009-06-02T18:01:00.000-07:00</published><updated>2009-06-02T18:12:53.844-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='wave'/><title type='text'>Google Wave Introduction</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;Google Wave is a new communication and collaboration tool.  &lt;/p&gt;  &lt;p&gt;It is a&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Platform - opensource product that enterprise can host themselves&lt;/li&gt;&lt;li&gt;Protocol&lt;/li&gt;&lt;li&gt;API&lt;/li&gt;&lt;li&gt;Hosted service&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Watch this video and be amazed.&lt;br /&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;br /&gt;&lt;param value="http://www.youtube.com/v/v_UyVmITiYQ&amp;amp;rel=0&amp;amp;color1=0xb1b1b1&amp;amp;color2=0xcfcfcf&amp;amp;hl=en&amp;amp;feature=player_embedded&amp;amp;fs=1" name="movie"&gt;&lt;br /&gt;&lt;param value="true" name="allowFullScreen"&gt;&lt;embed height="344" width="425" allowfullscreen="true" type="application/x-shockwave-flash" src="http://www.youtube.com/v/v_UyVmITiYQ&amp;amp;rel=0&amp;amp;color1=0xb1b1b1&amp;amp;color2=0xcfcfcf&amp;amp;hl=en&amp;amp;feature=player_embedded&amp;amp;fs=1"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968549194668209695-1909996564925793304?l=nextgenapp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nextgenapp.blogspot.com/feeds/1909996564925793304/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nextgenapp.blogspot.com/2009/06/google-wave-is-new-communication-and.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/1909996564925793304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968549194668209695/posts/default/1909996564925793304'/><link rel='alternate' type='text/html' href='http://nextgenapp.blogspot.com/2009/06/google-wave-is-new-communication-and.html' title='Google Wave Introduction'/><author><name>Sol Wu</name><uri>http://www.blogger.com/profile/11976788592932814187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>
