Sexroom sessions android app is out


First version of «Sexroom Sessions» application for android devices is out. You can download it at

Still a beta, but quite stable at now.

» Continue reading

«Sexroom sessions»: Android app mockup


Before starting development of visual application, it's better to draw a quick free hand mockup to represent what it will looks like and how it will work.

Here what its give for sexroom sessions application.

» Continue reading

Brève de code #5: découper une QueryString en une ligne de code python

Une QueryString (partie après le point d'interrogation ? dans une url) est composée de couples clé/valeur séparés d'une esperluette (&).

L'idée est de récupérer un dictionnaire contenant les clés/valeurs de la querystring, en une ligne python.

» Continue reading

Android application for «Sexroom Sessions»


Chaps at riothouse production asked me to make an Android application for their sexroom sessions (no it is not a porno website, but a live music sessions records), so I'm tackling to the task !

Reblok 0.1.1 is out!

reblok logo

Version 0.1.1 of Reblok is out. At the menu:

  1. Distinction between lists and tuples (adding a new TUPLE opcode)
  2. A lot of unit tests (you can you as example basis)
  3. A reblok binary to uncompile python binary file (regenerate a source file)

Introducing Tentacles ORM

Tentacles logo

Tentacles is a python ORM (Objec-Relational Mapper) written in python.

Python ORMs usually try to map SQL syntax with python classes (see django or sqlalchemy samples).
Tentacles is going the opposite direction, trying to express queries in "'python natural language'''.

Declarative part

Objects declarations in Tentacles is looking quite similare to what is done in Django: A class is mapped to a Table in a database (or more generally to a storage unit - think of non-SQL storages, like LDAP or MongoDB); store fields must be expressivly described (with thre type and capabilities)


from tentacles import Storage, Object, fields, filter
db = Storage('sqlite3::memory:')

class Constructor(Object):
   name   = String()

class Car(Object):
   model         = String()
   power         = Integer()            # in horsepowers
   constructor   = Reference(Power)       # a Car as one unique constructor

Querying part

Tentacles bring to manipulate stored datas as you do for basics python objects. To acheave that goal, Tentacles extend filter and map functions to allow their use with Tentacles objects.


# get all 'De Dion-Bouton' cars, ordered by model
cars = filter(lambda c: == 'De Dion-Bouton', Car) >> 'model'

# get 10 first cars having power > 100 hps
cars = filter(lambda c: c.power > 100, Car)[0:10]
<< and >> operators are use to sort results, while brackets are used to limit result size (in the same manner as for a python list)
(NOTE that both are done at SQL level, not on python results)

In conclusion, this short introduction shows you the basic aims and capabilities of this new library. I invite you to download and install Tentacles and play with to discover all its possibilities.

Back to the sources - using Reblok

Image: Maggie Smith /

or how Brian recover its source code using Reblok

» Continue reading

Dare-Dare is not DeaD

Dare-Dare logo

Following a migration of the server (new hardware and a debian update), the Dare-Dare website was partially broken: both non-working demo and source code archive unavailable for download. This outage has been fix, and the website is now completly usable.

And I used this occasion to update the dare-dare backoffice program, namely It is in charge of converting source document pages to png images (then sent and displayed in the html/javascript interface).
With new debian version (6.0 aka squeezy), I could replace external programs calls (pdftoppm and convert, from ImageMagick) by use to python librairies: python-poppler and Python Imaging Library (PIL). The result is a simplified code and huge increase of images rendering speed !

Pirate des neiges

Pirate des neiges #1

Certains lisent dans le marc de café, d'autres croient reconnaître des formes dans les nuages, ...

» Continue reading

Asterisk LDAP module: A set of patchs

The asterisk ldap module allow querying a LDAP database from the Asterisk dialplan. You can for example get user name from a phone extension.
The following patches bring some improvements to this module.

» Continue reading

Brève de code #4: Mes profils firefox ont disparu

Where are passés my profils?

Suite à un manque d'espace disque (disque dur plein), tous mes profils firefox ont disparus.
Va-t'il retrouver ses petits profils, l'astéroïde va-t'il percuter la planète, vous le saurez en lisant la suite...

» Continue reading

Brève de code #3: fichiers et attributes étendus sous Linux

Les attributs étendus permettent d'ajouter des informations à un fichier ou un répertoire, par exemple l'auteur d'un document ou la position géographique d'une photo.

» Continue reading

Brève de code #2: Réaliser un extrait d'une vidéo sous Linux

mencoder est à la vidéo ce que grep est à la recherche textuelle: un formidable couteau suisse permettant de faire à peut prêt tout ce qu'on veut.

» Continue reading

Brève de code #1: inverser une chaîne de caractère en python

Comment inverser une chaîne de caractère python ?
Rien de plus simple:

alph = 'abcdef'
rev  = alph[::-1]

print alph, rev

» Continue reading

iAddressBook patch: allow calls origination using Asterisk

iAddressBook logo

PHP iAddressBook is an addressbook written in php by Clemens Wacha. It has a nice macos-like interface and neat, modular code.
Asterisk is a free software IPBX.
Both are good pieces of freesoftware.

The patch I wrote allow users to originate calls from an iAddressBook either by clicking on contacts phone numbers, or by using the quickcall inputfield.

» Continue reading deskbar plugin » Quick translation tool

deskbar-wordreference v0.1 screenshot

Deskbar-wordreference is a plugin for the GNOME deskbar applet, for translating words.

» Continue reading