le Wadablog

Aller au contenu | Aller au menu | Aller à la recherche

vendredi 3 septembre 2010

Wave in a box

Wave open source next steps: "Wave in a Box"

As announced here, the project will contain : 

  • an application bundle including a server and web client supporting real-time collaboration using the same structured conversations as the Google Wave system
  • a fast and fully-featured wave panel in the web client with complete support for threaded conversations
  • a persistent wave store and search implementation for the server (building on contributed patches to implement a MongoDB store)
  • refinements to the client-server protocols
  • gadget, robot and data API support
  • support for importing wave data from wave.google.com
  • the ability to federate across other Wave in a Box instances, with some additional configuration
This is fantastic. This means possible company-wide + company-only Wave servers.
Very good ! A nice start for a friday today !

Most of the world will not care but "robot support" means that the time I spent on the WadRobotFramework will not be have been wasted. 

Jérôme / Wadaël

dimanche 24 janvier 2010

WadRobotFramework, les slides en français

J'ai publié les slides de ma présentation sur mon WadRobotFramework sur SlideShare.net

 Quelques anecdotes sur cette présentation :
  • La sortie vidéo de mon portable n'a pas fonctionné
  • Le portable prêté est tombé en panne de batterie
  • J'ai utilisé une version non corrigée de mon framework

Mais je m'en suis bien sorti quand même, j'ai rencontré des gens passionnants et même une célébrité (@didiergirard), revu ce taquin de @fbaligand. Il a raison sur le fait que c'est la troisième présentation sur Atmosphere que je rate.
Faudra m'en faire une pour moi tout seul, Fabien.

Voici les slides

vendredi 11 décembre 2009

WadRobotFramework : QuickStart archive published !

I have published a ZIP file containig an Eclipse project that is nearly ready to deploy.
A few adjustments to your station are still necessary.

Please look at the QuickStart wiki page for details, you will find the ZIP on the homepage and under the Downloads tab.

More to come : I am working on the Ant script that will generate entire project through a few inputs.



mercredi 2 décembre 2009

A framework for creating wave robots - What for ??

As you may know, I have committed a few source files I dare call a framework.
That's because I did not dare call it a Foundation.

This framework is available at this address http://code.google.com/p/wadrobotframework

Ok, great the description in the wiki underlines how quick it is to write a robot with it.
And it's true !

So what can it be used for ?


Not much ideas to share at the moment.


By rolling your own robots, you'll be able to make do what you want.
Delegation is the keyword.

Private waves and own robots ...
It makes it possible to ... sort of ... give orders in synch with your desires.

  • Add a URL to your wave, and it is saved online. Useful with some user interface for search/filtering your bookmarks.
  • Add a URL to your wave, and it make it a PDF, make the PDF go to your own CMS (like Alfresco).
  • make something triggered.

Note that there is requests for bots at this adress

dimanche 29 novembre 2009

Feed your other self (twitter, GAEJ,CRON,Twitter4J )

Introduction and goal

As I know that will help at least one person, here is how I publish new spoonerisms on my other Twitter account @kontrepeteries on a regular and automated basis.

(A) Solution

The solution I chosed is to CRON a servlet deployed on GAE/J. This servlet uses Twitter4J, a very quick & simple API.

Servlet code

The code is shortened for brevity.

Actually, the servlet displays what is tweeted so that I could verify all went well at write+test time.

public class FetchLatestContrepServlet extends HttpServlet {

        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException 
                // get spoonerism (gets PHP-generated JSON from my Free.fr website and unmarshall it)
                Contrep c = VaVoirChezFree.getUneContrepAvecIdSuperieur(bi.getHighestContrepId()); // just the id of the latest fetched contrep as parameter. 
                // UPD twitter status
                Twitter tw = new Twitter("YOUR_LOGIN","YOUR_PASSWORD");
                try {
                        tw.updateStatus( c.getText() );
                } catch (TwitterException e) {
                        log("twitter update error " + e.getMessage() );

                writer.append( c.getId() );
                writer.append( c.getText() );


Do usual conf in war\WEB-INF\web.xml

Example for file war\WEB-INF\cron.xml.

<?xml version="1.0" encoding="UTF-8"?>
                <url>YOUR APP-RELATIVE URL HERE (starts with /) </url>
                <description>tweete a spoonerism</description>
                <schedule>every 8 hours</schedule>

There is a possibility to restrain usage to the "admin" role so that you get sure it's only executed by the CRON launcher. See official documentation. But if you want to run it by hand, don't.


No rocket science here. This is how to do a CRON in GAEJ, you may modify this code to read tweets on a regular basis and save them to wherever you want (cloud, Free, ....).

If you have an Android device and a wave account, you may also check A wave regularly to save new blips to another place (twitter, DB) so that you can use your own (lighter) client to read waves. I've been told GW is slow on Android,

IMO, for wave-to-whatever data-transfer, use a wave robot.

Stay tuned for the release of my wave robot framework.

Meanwhile, if you understand French wordplays, @kontrepeteries may entertain you.

Follow me @wadael , it's sometimes worth it.

See you


mercredi 18 novembre 2009

Google Wave, how many different robot types

Being a java guy for quite some time, I got interested in Google App Engine (later GAE) as soon as it supported Java.

I can be used to host web application as you know and, more recently, Google Wave (later GW) robots.

For instance, GW robots can only be hosted on GAE for the moment.

I wrote a robot, following the tutorial and found it very brain-teasing. You know, robots, A.I., .... stuff you have read/seen times and times. It is now put at hand's reach (well sort of) and it's no use knowing the Lisp language to write one.

My robot is rather simple, it's only action is to react to the content of a blip (roughly the same as a post), find the longest word (that is more than 5 characters) and display in another blip all the contrepeteries (French for spoonerisms) known to it (500 entries to choose from), containing the selected word.

Browsing some waves, I recognized different groups of GW robots :
  • those that modify a blip  (add a map, replace :) with a picture of a smiley, ...)
  • those that react to a blip (like mine)
  • presumably, those that work in stealth mode, doing whatever they can like logging blips, participants, ...
  • those that react to commands, like Today Special Robot 
That last group is the one I find the most intelectually teasing.
Of course this is vast, but there is space for something I can do.

Stay tuned for more ...