Category Archives: Code & Technology

I Can Haz Java?

They announced it yesterday at the Google Campfire ’09 (here and here) and it is today on the Google App Engine blog: Java is now supported on Google App Engine!

It comes with a set of Eclipse plugins to test and deploy Java servlets, using JDO or JPA to support database access. Of course, the database behind this is BigTable, which means that a lot of relational features are not available, but it scales!

Go there to get you started, or, if you want to know if your preferred framework will play well with GAE, go to the “Will it play in App Engine” page.

That’s good news! Especially because we may start having more and more Java applications outside of the corporate walls.

Yes Google, YES!

Passa Bene manque de mémoire!

Si vous habitez en Suisse vous devez connaitre “Passa Bene”, c’est le nom du système de la Coop qui permet d’eviter d’avoir à vider son caddie sur le tapis roulant de la caissière et de passer à la caisse en moins de 5mn, même s’il est rempli à ras-bord (enfin sauf quand le système décide de vous controller).

Je trouve que c’est plutôt une bonne idée et je l’utilise depuis qu’il a été mis en place, néanmoins, à chaque fois que je présente ma carte afin d’obtenir l’accés à un lecteur de code barre, je suis confronté à la même frustration, encore et encore…

En effet, la procédure normale pour accéder à un lecteur est la suivante:

  1. Présenter sa carte devant le lecteur de carte
  2. Choisir sa langue sur l’écran
  3. Aller chercher son lecteur (c’est celui qui clignote)

Est-ce que vous voyez le problème?

Cela fait 1 an et demi au moins que j’utilise le système, presque une fois par semaine. Sachant que je suis identifié de manière unique par ma carte, comment ce fait-il que je doive indiquer à chaque fois quelle langue je souhaite utiliser?

Monsieur Coop, si vous me lisez, vous enregistrez quelque part tous les trucs que j’achète (ce qui vous permet de savoir que je ne suis fidèle à aucune marque à part mon jus d’orange et mon dentifrice). Est-ce que vous pourriez resever quelques bits (2 suffisent) afin de pouvoir vous rappeler de la langue dans laquelle je prefère lire la phrase “Veuillez  prendre l’apareil qui clignote”? Merci d’avance…

Interview with Sean Healy about the DITA-OP

Some time ago I have been contacted by Sean Healy, owner of Wild Bassin Media and editor at the DITA & XML Community of the Rockies, to do an interview about my DITA Open Platform project. Three weeks ago we finally made it and the podcast is now online.

It was my first time but Sean has been very nice to me. In the first part we talk about the history and the future of the DITA-OP and DITA and there will be a second podcast discussing cloud computing and social networks (other things I am currently working on).

Hope you will find it interresting :)

Image Credits: Seven Morris is on Facebook

As you might have noticed already, Facebook as been on since last December. To this purpose I have been using the Sociable! fbConnect plugin for WordPress that enables visitors to login using their Facebook credentials and later comment using their Facebook identity and feature those comments on their Facebook stream.

However, I wanted a deeper integration between this blog and my Facebook profile. Here is what I have done.

In the process of installing the fbConnect plugin you have to create a Facebook application and, among other things, Facebook applications feature a canvas page and an application tab. The canvas page is the main application page, the tab can be added to any user’s or page’s profiles.

To setup the canvas page you specify an URL that will either serve FBML (Facebook markup) or pure HTML. In the latter case the page is displayed in an IFRAME.

Initially, I used the IFRAME version to display the home page but I found awkward to have my blog design mixed with the Facebook design. Additionally this technique cannot be used for tabs, that only support FBML.

Finally, I crafted special pages on this blog that serves only FBML with a special Facebook styling extracted from Foxinni’s Facebook WordPress Theme. The resulting canvas page can bee seen here and the corresponding profile tab is now featured on my own Facebook profile, here (you may not be able to see this one because of Facebook privacy control so I inserted a screenshot below).

If this is getting enough interest I might package it as a WordPress plugin. Leave a comment if you are interested or if you have additional ideas.

UPDATE (2010-03-13): This is now a WordPress plugin, see my plugins page.

What BOINC are you?

SET@HomeI have been participating in the SETI@Home project since January the 6th, 2000 (at this time I was a huge fan of The X-Files and I though it may help Fox Mulder find his lost sister…). Since then I have been installing the SETI@Home client on every desktop or laptop computer I have been using.

For those who do not know what the SETI@Home project is, the goal is to sort out radio signals from the Arecibo radio telescope using grid computing in order to find extraterrestrial signals.

As far as I know this was the very first large scale implementation of a grid based computer and today, with 556,888 machines and 1,393.74 TeraFLOPS per day, I think this can be considered the most powerful super-computer in the world.

We still did not find any track of Samantha Mulder, but what this project has actually proven is that it is possible to use desktop computers idle time to do useful scientific researches.

In 2005, the SETI@Home software became BOINC (Berkeley Open Infrastructure for Network Computing) and mutated into a platform which is now not only supporting the SETI@Home project but many other scientific projects.

When I am not using them, my laptop and my desktop are running the following projects:

What are you doing with your computers’ idle time? If you have BOINC installed, list the projects you are supporting in the comments, if not then install it and become part of the most powerful super-computer in the Solar System ;)

Shooting in the dark

One think I hate about software is when you must integrate with a poorly documented system.

To be able to code and unit test you part you have to make assumptions about the workings of this system, deploy in a real environment (which can be quite time consuming) and pray.

This is like trying to shoot a bear in the dark, if you miss it the first time it will run after you like a delivery deadline. The only thing you can do is try again until you hit or it passes you by…

If you feel any relief in sharing your dreadiest experiences feel free to comment :)

5 ways to make money with software components

Yesterday, my colleague and friend Pierre asked my opinion about whether or not people would be ready to pay 20 bucks for the right to use well crafted and well documented software components. This spawned a discussion about how to make money with software components.

Here are our thoughts for you to enjoy, comment and contribute. Have you any idea or experience do not hesitate to leave a comment.

So, what is it in a software component that can be sold?

The right to use it

Nowadays most people consider software as a commodity, free (and open source) is the rule. Even shareware looks like something of the past, you can find “donate” buttons but it seems hard to make a living of it.

Some models, like Ceki Gulcu’s Logback project (in part), consist in building commercial extensions on top of free software.

The right to distribute it

To me, the best option is dual-licensing. Let free projects use and distribute your work for free and grant commercial licenses for commercial projects.

However, the advent of SaaS is a threat to this model. The Afero GPL may help, but not much. Offering online web services may be a solution.

The right to influence the feature roadmap

I like this one, and the best example I know is Intalio’s Demand Driven Development: Let your customers bid on features they are willing to pay for.


This is how jBoss started and now Marc Fleury is sunbathing in Spain (sort of). However, this works better for complex systems than for components.


You can offer consulting around your product (like installing, configuring or extending) or use your product as a marketing tool for other consulting services. That’s what most of the component developers I know of are doing (that’s actually what I’m trying to do with the DITA-OP).

There is a sixth option but then you components may not be components anymore (depending on your definition of Software Components).

Online Web Services

Offer online services based on your components and let people pay based on their usage, much like the Amazon Web Services. This works only if you have enough customers to cover the infrastructure (hosting, support, etc).

Depending on what your components are doing and what is your target market then you can mix those revenue streams but not everything is going to always work. For example, if you have a set of highly specialized financial components you can sell licenses to use and distribute (because they are highly specialized) but you can hardly build online web services on top of them because financial institutions are not willing to use that kind of services (it can even be forbidden by local regulations).

What do you think? What else can be sold in software? How can it be sold? Do you know strange, but successful, business models?

Image Credits: Luis Miguel Munoz-Najar

What will you offer your kids for Christmas?

I don’t have kids but for Christmas I will buy an OLPC (One Laptop Per Child) and enable a kid, somewhere, to get one.

Go to Amazon on November the 17th and buy your kids one, it’s less expensive than an Eee PC ($399) and you will buy yourself good Karma.

And it appears that even some adults may like to receive an OLPC for Christmas ;)