le Wadablog

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

lundi 9 août 2010

Goodbye to Wave

As you may know, Google Wave will be stopped by the end of the year.
For sure, that's a bad surprise.
RIP Google Wave  20 May - 4 August 2010

For me, it means that the WRF ends too. Actually, it ends now.
Sure, there's plenty of time between now and december but I have already spent a lot of time on WRF.

The generator may find a second life, who knows ... it's only the templates that must be changed.

However, WRF was a very good experience for many things.
First is my collaboration with Romin  (@iRomin), who has become a friend. Mon ami, our daily (live) exchanges through Wave were lots of fun and knowledge sharing.

I gained pride as WRF was for a long moment (during the V1 days) the subject of three (from eleven) articles listed on the dedicated page on google's site.

Not bad for a project done little by little on my sleeping time (meaning I was often half asleep while coding)

Thanks to @fbaligand, I had the occasion to speak of WRF during the "JumpCamp 4 IT" event in Paris. My first public speaking since ... long ago.
I proposed to present WRF and a usage of it at the Devoxx 2010 conference. Well, no answer yet but I think I know it.
I really wanted a MAJOR speaking experience to push my limit. Too bad. Have to create something else.

During Google I/O, I have met people who followed me on twitter and knew my project, have met googlers IRL, spoke of WRF to some of them.
I even chatted with Vic G (fantastic speaker) !
Incredible San Francisco where three French guys named Jérôme can stand in the same square-meter (have a look at SnapABug.com). That never happened to me in France as Jérôme is a quite rare first name.

About Googlers, Wave's DevRel @pamelafox is a fantastic I.T woman. Talented, funny, clear minded and such a good speaker.

I am certainly forgetting other + points about the WRF episode.

Overall, the Wave experience was very good for me that's why I am so bitter that it's over.
So, goodbye Google Wave, rest in pieces, we'll meet again.

mercredi 30 juin 2010

First ADvertisement for the WadRobotFramework

I have recently know about the site http://www.xtranormal.com that allows to create movies via a website.
You certainly have too, due to the buzz with the 4G/Evo video. 

So, as I saw robots being available as actors, a bell ringed and I did a short movie about my WadRobotFramework
I managed to have it published for free after the deception of the will-have-to-pay feeling (must be by changing of actors and background).
I've also put it on youtube. 
In less than a minute, it will not teach new stuff if you are already experienced with the WRF but I hope you will find it funny.

So, if I remember a conversation I had with @didiergirard (who coined the Geek 2.0 term), I think that 'creating an ad' is one more line to add to the todo-list of actions that should go along an opensource project :
  • create a dedicated twitter account
  • create a dedicated website
  • speak of it
  • (and more)
Have fun with the video !
On YouTube  or on xtranormal.com

I'll definetely have a go with the desktop software of xtranormal


jeudi 17 juin 2010

Android : OffLine Map App

If, like me, you use your 'Droid only in wifi mode then you may regret not to be able to use google maps whenever you get lost, outside civilization, far from a wifi access-point.

Then the MapDroyd app was made for you.
After an initial/install-time download of the "Open Street Map" project's maps relevant for you, you are ready to go

For the moment, it is not on the market but available at http://www.mapdroyd.com/


vendredi 16 avril 2010

My Android Apps list

Here are some of the apps I have installed on my NexusOne.

  • Games
    • Chain React
    • Space Physics Lite
    • Meuuh
    • Air Control + Flight Director
    • Frozen Bubble
  • Social
    • Twidroid
  • Culture
    • Aldiko
  • Time wasters
    • Bonjour Madame (daily eye fracture)
    • VDM Officiel (FR, humour)
  • Photo-related
    • Depth of field
    • DoFCalc
    • FxCamera
  • Misc
    • ABonEntendeur.com
    • AppManager / AppMonster / Astro / Explorer
    • OSMonitor
    • Barcode scanner
    • Where did I park my car
    • MetroMap (Paris)
    • Engine watch Google App Engine
    • Net Count
    • Wifi Analyzer
    • Task Manager

Bolded are those that are certainly constantly running.
And, of course, many others useless craps and the classics (GMail, SkyMap, goggles, earth...)

Unfortunately, as I do not have a data plan, the world clocks I have used are useless, meaning I'll have to code one myself.

Hope you discovered something interesting


jeudi 15 avril 2010

A wave for the WadRobotFramework


There is now a wave about the wave robot framework ! But, as scripts do not work in this blog, got to Wave and search for WadRobotFramework

The page at http://thecodersbreakfast.net/index.php?post/2010/04/15/Google-Wave-Embedded-:-Mise-%C3%A0-jour will show you how to embed a wavelet on your website.

// //

lundi 15 février 2010

A cool logo ...


I know I am a right-handed guy with two left hands, I cannot draw. That's a fact.
Too bad, I have other talents or so I think.

I need a logo for my framework.
The name is "WadRobotFramework".

Here are a few constraints : (may evolve of course)

  • no aggressivity
  • no skynet/terminator stuff
  • metal
  • pop shiny colors too
  • robot comes out of a box (?an eclipse logo on it ?)
  • a taste of 50's sci-fi would be nice
  • MGM-like, a roaring robot :)

I forgot. I have a budget for this although free cooperation to the project would be credited.
My budget is small but fair. I can pay with a French check or through PayPal.

Send me your estimation and sketch.



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

lundi 4 janvier 2010

WRF - WadRobotFramework v1.1 is released

WRF Version 1.1 is released.

It features the robot generator. See wiki for instructions.

A near complete robot can now be generated in a few seconds, reducing even more its TTC (time to cloud).

Logic implementation has still to be done by the user. Sorry about that.

Tweak TWO (or even one) .properties file, run a target and voila !

How ??
First, build.properties (once for a workstation)
then, generator/generator.properties (once for each robot)
launch one of the following Ant targets (in build.xml)

# generate_SimpleAppenderRobot
# generate_SimpleModifierRobot
# generate_AdvancedRobot

According to the type of robot you want (see wiki).
On-screen instructions will tell you which files to modify (for the logic part).
The project's wiki proposes instructions for both generating and using the generated robot.

Enjoy and give feedback. Thanks.


lundi 21 décembre 2009

THE Flu ....

Respect to this little virus, it got me , my wife and my kids.

So, sorry, for those I've teased with the next release of http://code.google.com/p/wadrobotframework/ but it will be delayed until further notice.

Joy to the world


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.



Encore sur le web

Bon sang, au hasard d'un commentaire sur le blog du touilleur express, me voici découvrant avec surprise une pĥoto de moi de dos.

ça change !!!

La voila

Elle est présente sur la page http://blog.excilys.com/2009/09/30/compte-rendu-barcamp-openwebcloudgeosocial




mercredi 9 décembre 2009

Dire du bien

Aujourd'hui, je suis passé sur le blog de quelqu'un dont je pense du bien parce qu'il y avait un nouveau post.

Dans ce post, il fait "l'erreur" de dire du bien d'une société de services.
Sachant que cette SSII sponsorise le JUG de Paris, publie des articles toujours intéressants (quand ce n'est pas très intéressants), j'en pense plutôt du bien aussi.

Bon bref, du coup, je me suis dit que j'allais continuer cette dynamique positive et dire du bien d'une autre société de service.
Mais je n'en ai pas trouvé que je connaisse personnellement.
Un client alors ??? Non plus ...
Finalement, j'ai choisi de dire que j'aime bien les zèbres parce que c'est joli.
Et qu'il y a des tableaux représentant des zèbres à la galerie près de mon bureau qui me plaisent beaucoup.
Ils sont à 5000 E c'est dommage.


PS : Putain de zèbres :)

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 ...

mardi 29 septembre 2009

JavaBarCamp Paris 17

Mon feedback sur le javabarcamp du 29 09 2009 à Paris

Lire la suite...

mardi 25 août 2009

J'écoute les castcodeurs

Pas encore entendu le n°8 sur Android : énorme stress, aurais-je la réponse à ma question : "il y aura t'il de quoi faire du push sur android ??" 

J'ecoute les Cast Codeurs

dimanche 23 août 2009

Bien savoir sur quel GlassFish on travaille :)

GlassFish est un superbe produit.
J'ai travaillé avec la v2 et j'en suis plus satisfait que d'autres beaucoup plus chers.
Un problème que j'ai rencontré est d'administrer le serveur de pré-prod au lieu du serveur de développement. Les deux étant de la même version, la console (webapp) d'administration est la même :)

Donc, voila comment j'ai éteint la pré-prod :) (pas longtemps)

J'ai pensé à rendre le style de l'affichage du nom du serveur plus claquant, plus visible.

Après recherche, la CSS est planquée au fond d'un JAR. Et en plus l'appli. est en JSF.

Sur un forum (http://forums.java.net/jive/thread.jspa?threadID=64679&tstart=0) , on me remémore GreaseMonkey. Qui permet de faire tourner des scripts Javascript sur des pages une fois chargées.

Un coup de FireBug plus tard, l'identifiant du texte est trouvé.
  • GlassFish v2 : propertyForm:Masthead_serverInfo
  • GlassFish V3 : headerForm:Masthead_serverInfo

Ci-dessous le code pour GF v2
// GlassFish V2 - HOST WARNING
// version 0.1 BETA!
// 2005-04-22
// Copyright (c) 2009, Jerome BATON
// Released under the GPL license
// http://www.gnu.org/copyleft/gpl.html
// --------------------------------------------------------------------
// This is a Greasemonkey user script.
// To install, you need Greasemonkey: http://greasemonkey.mozdev.org/
// Then restart Firefox and revisit this script.
// Under Tools, there will be a new menu item to "Install User Script".
// Accept the default configuration and install.
// To uninstall, go to Tools/Manage User Scripts,
// select "Hello World", and click Uninstall.
// --------------------------------------------------------------------
// ==UserScript==
// @name          GFV2_ADMIN-UI__HOST-WARNING
// @namespace     http://jeromeb.free.fr/greasemonkey/gf2admin_host
// @description   Script to display the host in a more distinguishable way (bigger)
// @include       http://localhost:4848/*
// @include*
// @exclude       http://diveintogreasemonkey.org/*
// @exclude       http://www.diveintogreasemonkey.org/*
// ==/UserScript==
    // headerForm:Masthead_serverInfo
    var tag = document.getElementById('propertyForm:Masthead_serverInfo');
    var txt = document.getElementById('propertyForm:Masthead_serverInfo').innerHTML ;
    var nvoTxt ='';
    if(txt != 'localhost' && txt != '')  {
      // Other hosts that localhost
      nvoTxt = '<blink><font size=\'54\' color=\'yellow\'>' + txt + '</font></blink>' ;
      // Localhost
      nvoTxt = '<font size=\'6\' color=\'green\'>' + txt + '</font>' ;
    tag.innerHTML = nvoTxt; 
Un petit copier/coller, une adaptation pour les IP/noms de serveurs, et c'est fini : vous voila avec un joli nom de serveur géant ET qui clignote.

mercredi 19 août 2009

De retour

Finies les vacances et le repos relatif, me voici de retour sur Versailles où j'ai le plaisir d'aller bosser en vélo, les rues encore vides de bagnoles ou presque.

jeudi 4 juin 2009

GWT + Google Web Elements (Conversation)

Ceux avec qui j'en ai déja discuté savent combien je suis fan de GWT. C'est bien foutu, ça fait rêver à jouer au LEGO (R)(TM) en Java (R)(TM). C'est donc ce que j'utilise exclusivement pour mes projets web désormais.

A l'occasion de la conférence Google IO 2009, le grand G a sorti un ensemble de gadgets facilement intégrable dans nos pages web par simple copier/coller.
Ca fait un choc de voir la facilité de la chose.
Tout ne m'intéresse pas pour mon site, mais le widget de conversation, si.

Maintenant, encore plus simple et rapide que le HTML :)

En GWT:  l'utilisation

public void onModuleLoad() 
 VerticalPanel main = new VerticalPanel(); 
 main.add( new GConversation("Le titre") ); 

La classe GConversation correspondante
  package org.wadael.appeng.client; 
import com.google.gwt.user.client.ui.HTML; 
/** Classe wrappant un widget google element conversation 
author : Jerome BATON http://www.wadael.org 
public class GConversation extends HTML { 
    public GConversation() { this("Ce nouveau site"); }
    public GConversation(String titre) { setHTML(" < iframe frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" border=\"0\" style=\"border:0;margin:0;width:250px;height:440px;\" src=\"http://www.google.com/friendconnect/discuss?scope=site&topic=" + titre + "\" scrolling=\"no\" allowtransparency=\"true\">"); 
} }

Voila qui permet d'obtenir une conversation en format correct (lisible), avec pour portée uniquement votre site.
Pour un exemple d'utilisation, voir : http://contrepeterieswadael.appspot.com
On pourra ajouter des paramètres au constructeur pour définir le scope et la taille.
Pour les autres widgets, leur GWT-isation sera tout aussi simple.
Merci de votre lecture, n'hésitez pas à commenter.


- page 3 de 4 -