English|French

Projects

Development tools

Python

Run any of these scripts with the --help option for more information.

Contributions to free software

Open Source Initiative

I have contributed several patches to Django.

I have written a cheat sheet for Beautiful Soup (markdown version).

I added OpenId support to plat/al.

I wrote a patch to use CalendarServer with an OpenLDAP directory, which was later extended by several other contributors. It is merged into Debian.

I contributed to the jQuery colorize plugin.

Research

Public-private partnerships

At the end of my course of studies at the Corps des Télécommunications — now merged with the Corps des Mines — I wrote a dissertation on the public-private partnerships in the ICT sector (slides for the orals). These documents are in French and very specific to the situation in France in 2008.

Real-time fire simulation with flownoise

Flownoise

From April to July 2006, I did a research intership at Evasion, a joint computer graphics lab of the CNRS and the INRIA. I worked on real-time animated textures for fluids using flow-noise. I achieved a realistic modelization of moving fluids by adding procedural noise at fractal scales. I used Perlin noise and animated it with respect to Kolmogorov's theory of vorticity.

Utilities

ShaderStats

ShaderStats is a quick'n'dirty parser for assembly code resulting from the compilation of a CG shader with cgc. It computes the number of instructions and registers used by the shader, which are the key values for speed optimization.

Compile it: javac shaderStats.java and test it on an example: java ShaderStats example.asm. You can easily adapt the code to match the format of your shader assemblies if necessary.

PicSeq2Video

PicSeq2Video is a shell script making it easy to convert a sequence of pictures (typically saved by computer graphics software) into a video. It relies on mencoder for the encoding. I have written a documentation page in french and ./picSeq2Video.sh -h gives usage info in english.

Games study or resolution

Lights Out

I discovered Lights Out when it was the first native game for iPhone. It's pretty easy, but I wanted to know who many distinct minimal solutions exist for a given puzzle. Starting with a blank screen, four combinations of actions return to a blank screen; they form a group isomorphic to (Z/2Z)2. Thus, the game has a group structure, and there are exactly four solutions to each puzzle. Look at the comments in LightsOut.py for more explanations.

Bataille

How long does a war with your nephew last? Well, on average, quite a long time. This is the graph of the distribution of the games depending on their duration. It's generated from one million random games played by a war simulator (french rules differ slightly). Interestingly, all games ended, usually in less than 1500 turns... which still requires some patience!

PHP web applications

These apps were written in 2008 and before. They are still available here for historic purposes, but I no longer maintain them. Use them at your own risk.

mykswiki

mykswiki is a very simple wiki. It is a fork of roWiki, a projet that was abandonned in 2005. Eventually, I rewrote completely the application, while trying to respect the original spirit of simplicity.

Learn more about mykswiki.

Last update: 2010-01-17.

compta-coloc

When I shared a flat with friends, we paid many things together, but did not use them equally — especially food. We wanted a system where everyone would pay his share. So I wrote compta-coloc to track and split our expenses. The application can take into account all common operations and display customized history. It was re-used by other friends facing the same problem.

Download compta-coloc.tar.gz (32ko) and have a look at the README for more info.

Last update: 2010-07-12.

duview — disk usage viewer

This is a web interface to visualize the results of du, with some completely superfluous AJAX. It's handy to determine which files or folders eat up disk space.

Download duview.tar.gz. For obvious security reasons, if you deploy this application, make sure that only you can access it!

Last update: 2010-01-12.