Biology and "Biohacking"
No real project here yet.Chemistry
No real project here yet.Computer Science and Programming
This is an incomplete list of software codebases I was (or am) involved with:
-
TeX-talk
The idea was to create a "scientific" 'talk' (the unix program), allowing the use of LaTeX commands.
-
Rigobot
The goal of the Rigobot project was to teach programming to children, by making them to write programs to pilot a robot in a 3D world. Some kind of modern Logo.
- PDNS
The name stands for Private DNS. It is an experimental P2P forwarding DNS cache system I developed during my Ph.D. Its goal is to protect privacy in the DNS. Not released (yet).
-
True Nyms
True Nyms is my main current project. Not released (yet?).
- C Toolbox.
Every programmer has his own "toolbox" he uses in multiple projects. Here are parts of mine:
- confloader is a set of functions that allows to parse configuration files easily from C programs. It was designed to be user-extensible.
- Misc. networking functions to supplement the standard socket API: uninterruptible read/write, checks on addresses, etc.
- Misc. debugging functions and waypoints. Useful when for some reason it's hard to use a debugger; faster to use than 'fprintf(stderr, ...)',
- It's hard to find a portable doubly-linked lists implementation both portable and not integrated in some big library, so... here is my version of the wheel.
- Bloom filters are little known but sometimes handy. This implementation uses some security-wise enhancements of my own. Currently requires OpenSSL (for SHA1/2) but could be modified to use any hash function.
- Other misc pieces of code, which don't deserve their own categories.
- others (small programs, scripts, etc):
- xcd2ogg (direct link to the tar.bz2 archive)
In the graphical user interfaces to to cdrecord, Xcdroast is probably the one providing the most control over many options. Xcdroast can also be used to extract the tracks from audio CDs, but there is nothing to compress those tracks. xcd2ogg is a small Perl script, which starting with the files created by xcdroast (.wav and .toc with CDDB data) creates ogg vorbis files.
- searchjpg (direct link to the tar.bz2 archive)
searchjpg is a Perl script. It tries to recover jpeg pictures from a disk or disk image without using the filesystem. It allowed me to recover about one hundred of pictures on a drive which had been formatted and on which Windows had be re-installed. It is used as an example in my document on data recovery (in french - cf. the Documents section). This script stays very simple and doesn't try to understand the structure of the filesystem. It means its results will vary with the filesystem and it's fragmentation rate.
- xcd2ogg (direct link to the tar.bz2 archive)
- future project(s) ?
- Disassembler
A tool I'm missing on Unix systems is a good free disassembler. Think a free equivalent to IDA with Windows (I you know one, drop me a mail!). If comes a day without anything to do for a long time (I doubt it will) and if nobody did it by that time, I may actually start it. A priori, I envision a lot of small command line tools (probably in C (low-level ones) and Lisp (high-level ones)) and a front-end.
- Scientific communication tool
The idea would be similar to the one behind TeX-talk (cf. supra), but using Jabber for the communication part. One of the issue to solve would be to restrain the power of LaTeX to prevent a malicious user to use this as an attack channel. Update (2005-07): it seems there is already multiple proposals to do this.
- Disassembler
Electronics and Power Engineering
- Currently in design or early prototype phase:
- computer controlled multiple light (13) switch/dimmer
- computer controlled power strip
- a USB "computer remote" for some iRiver song players
- a magnetic stirrer using static electromagnets (more to experiment with rotating magnetic fields than because of the need for a stirrer)
- Mostly done
- Balancing a ball on plate. The idea came from this video, through Lotfi Baghli. Mine's not working yet, maybe due to the PID settings, maybe because the touch panel is not sensitive enough. Here are some pictures.
- Miscellaneous small PCBs:
- Here is the PCB for an adapter to use integrated circuits in SSOP-28 packages as DIP-28 packages (Postscript file), which are are easier to use while prototyping.
Mechanics, Metalworking, Welding, Woodworking, ...
No real project here yet. What I'm doing in those areas is more to repair or make basic enhancement to existing things or because some project in another category needs a few mechanical parts, or an enclosure, or something.Miscellaneous: other or multiple areas projects
- I recently built a Makerbot 3D printer.