Sweet Firefox development tools

I have been using Firefox Developer Edition for a while now.

I moved away from Firefox to Chrome but in the last couple of versions, Chrome became a slow to start beast, with strange delays and annoying UI glitches.

So, back to Firefox.

A couple tools that are really great are:


  • FireBug (EventBug is now included)
  • FireQuery


  • Visual Event (2)
  • Design (including Crosshair, Unit, and Rule)

These are by Allan Jardine of DataTables fame.

PharoVM now running on Debian Wheezy

During #fosdem I wanted to get the PharoVM to run on Debian Wheezy.

The zeroconf stance didn’t work, complaining about GLiBC 2.15, which doesn’t exist on Wheezy. In fact the whole thing appears to have moved to eglibc.

So, some tweaking was due.

Basically, what you need is to use the experimental repository (which isn’t too recommended to get a stable system…).

But first, you need to enable the i386 architecture as Wheezy is “multiarch”.

dpkg --add-architecture i386
apt-get update

So, add:

deb http://ftp.debian.org/debian experimental main

to your


Short version (Thanks Hernán Morales Durand):

echo "deb http://ftp.debian.org/debian experimental main" >> /etc/apt/sources.list

Then do:

apt-get update


apt-get -t experimental install libc6:i386 libc6-dev libc6-dbg

The system will show you a blue prompt asking if it can restart some services (as replacing libc isn’t really a basic thing). Say yes, it worked on my fresh install.

After the usual compile mantras for the PharoVM, you’ll be able to get there.

Just note that the scripts/setup-ubuntu.sh will not work.

Remove the libssl0.9.8 mentioned in there and for libGL, do not look at the way it is done there. Just:

apt-get install libgl1-mesa-dev:i386

and you’ll be fine.

Proof is in the pudding:

02-02-14 21-55-17

Looks like that I’ve got the thing compiling on Windows 8.1, OSX Lion, and Debian Wheezy. Happy me!

Coentrepreneurs Week End Louvain-la-Neuve

This Sunday afternoon, I’ve been paying a visit to the Co Enterpreneurs Week End in Louvain-la-Neuve.

Coentrepreneurs Week End

This just happens to be next door. I’ve been invited by Ben Piquard and Roald Sieberath as a supercoach, whatever that means, to challenge the attendees on their business canvas/plan/ideas. It was pretty interesting and fun to do.

I hope that the people got a decent enough feedback on their proposals. This was a very early stage idea-shaping week-end for them.

So, as a summary of key points to take care of, here is what I’d like to have people to think about when coming up with a business idea:

  • Talk about the problem you solve or the opportunity you seize. Don’t ramble about features upfront. Who are you helping with the solution? What’s the problem? That’s the engineering syndrome. When you know where you want to go, it is easier to know if you want to it by car, plane, or bicycle (not to mention the option of staying home because the trip makes no sense).

  • Have an idea on how you’ll make money out of the system. Sinking energy, attention, care (and sacrificing quality family time) into something that isn’t a business equates to having a very expensive and obsessive hobby. No issue with that if you can afford it. But that’s not a business to me.

  • Can you draw a map of the ecosystem you are in? Who are your partners? Who is able to write you a check?

  • Have a couple of analogies to describe your offering. Investors aren’t keen to invest in businesses they do not understand. Humans do like metaphors, easy to remember images.

  • Check if you are sold on your own idea. The first sale is always to yourself. So, are things clear in your mind eye? Next: how do you feel about it? Mind eye and gut should agree. Listen to your gut feeling. It appears that we do have more than a couple neurons wired in there. Listen.

  • Check if the opportunity you pursue is aligned with your core values. Even if an opportunity looks profitable, it may not be right for you to pursue. One can force him/herself to do stuff. But in the long run, it really matters to be aligned with your core values.

  • What process are you streamlining? Easy enough question, harder answer. And as an additional point: Who is your real customer in doing so?

Get these points right, and you’ll be in a much better position to meet success. I wish the best to all attendees. We need such people in our country, one needs to be able to help him(her)self very well to be in order to help others. It is okay to make money, that’s fuel for life. It will enable you to help others. If you are broke, well, you can’t have an impact and the brain has a bad tendency to run in circles in that configuration.

Philippe Back Interviews Nicolas Petton on Amber #Smalltalk

Google IO 2013 #io13 – Voice dictation and Chrome Android convergence.

Google IO logo

Yesterday I was attending the Google IO event. Pretty interesting. Now I’ve been using some of the technologies that were presented. I am a pretty heavy user of Google applications and find them quite useful but they’re still in need of more integration.

I’m pretty sure convergence between Android on Google Chrome is the key for an advanced user experience.

There’s nothing as a single form factor that will please or be suitable for all needs and use cases.. I’m now sitting in front of a 24 inch monitor, there is also a 10 inch tablet and this 4.5 inch mobile phone (Galaxy s2 plus, why mention Samsung anymore, they are Android phones). Obviously you can do much more with some real screen estate than with any phone but the phone proved to be quite a reactive to capture events whereas the bigger boxes are useful for creating interesting deeper content. Mobes are useful to capture moments and record stuff. For exchanges and for crafting content in communityies these things are really useful. Still, my concern is that you need to learn and try these things. It is not sure that this provides you with a productivity boost because all the time your gain from using the tools if offset by the time you need to learn them. Just because of the nerve wrecking rate of change that is pushed pushed pushed on you. One cannot use all of the these things.

I’m trying to type this by using the Chrome Speech API.

Something like that is pretty neat but its not integrated so I have to go to a ctrlQ.org for a dictation application and copy paste in Google Drive, switch the language in Chrome to get it working well.

I actually do know what to do to get it to work. But is anyone going through all of these moves to get things working? That’s a pretty wide chasm to cross if you ask me.

So, I am now in the process of digesting all those new ideas and products. I wonder how they do monetize all of this as there wasn’t that much about ad placement. It is strange to me as Google is making money that way. What I saw was more competition kill moves. I am curious to know more about their strategy behind the scenes. One thing is clear, competition heats up for Google too. 2013 will for sure be very interesting to watch.

Speaking of which, you can follow sessions at the live stream

Logging MySQL queries with MySQLProxy

In need of viewing what went on the wire

I have been struggling with figuring out why something was wrong in my SQL queries.

I needed to see what was happening in real time and also keep a little log of things.

My MySQL server has the logging enabled, slow queries and all. It even logs to TABLE.

But this wasn’t doing the trick.


Enters MySQLProxy.

MySQLProxy mediates between your client app and the MySQL server (or servers, consolidating a bunch of servers into one, along with the ability to set a bunch of them as read sources, and another as a write source — which for scaling appears pretty smart).

More on the scalability ability for another time.

What I wanted is to log the traffic.

Getting MySQLProxy

Easily enough, get it.

I installed 0.8.3-Win32 as my dev box is a Windows 7 system (64bit).

Configuring MySQLProxy

First of all, MySQLProxy will listen by default to port 4040 and forward to 3306, the ususal MySQL port.

What needs to be done is to provide the host details as a place for the thing to log its technical output (to figure out what goes wrong).

I wrote a script for handling the startup: runmysqlproxy.cmd

set MYSQLPROXY_HOME=%programfiles(x86)%\MySQL\mysql-proxy-0.8.3-win32-x86
set MYSQLPROXY=%MYSQLPROXY_HOME%\bin\mysql-proxy.exe

"%MYSQLPROXY%" -b --log-file=E:\var\logproxy.log 
    --log-level=debug --proxy-lua-script=D:\Dev\tools\sqlproxy\logquery.lua

Logging queries

It happens that MySQLProxy can do pretty much everything you can dream with queries that do pass through. Okay, I just wanted to log queries to a file.

How to? Lua scripting to the rescue! Lua.org

That’s why logquery.lua is for.

Let’s check it out:

function read_query(packet)
   if string.byte(packet) == proxy.COM_QUERY then
     query = string.sub(packet, 2)

 function log_query(query)
 output = os.date() .. ";QUERY;" .. query
 local file = io.open("E:\\var\\mysqlproxy\\queries.log", "a")
 file:write(output .. "\n")

I really never coded anything with Lua but it for sure will happen due to the power of that proxy.

Connecting to the proxy

Just a matter of using the mysql command line client (with my very secure credentials…):

mysql -hlocalhost -P4040 -uroot -proot

And then issue some queries.

These are captured:

02/21/13 23:45:11;QUERY;SELECT DATABASE()
02/21/13 23:45:23;QUERY;select * from tiki_todo

And the file filled in.

Hope it will help you get started with MySQLProxy.

Going further

There is quite a bunch of possibilities as you can see from the scripting reference.

Happy MySQLProxying!