Network simulation

As part of the course on networking algorithms, we were due to experiment with the infamous discrete event simulator ns2. We were assigned 2 small projects, the first one being the simulation of some UDP and TCP exchanges, while the second focused on wireless traffic simulation. For the UDP/TCP simulation, the subject can be found here, along with my report and my source code. As for the wireless simulation assignment, here are the subject, with my report and my source code.

Minimalist web server

The last but not the least of my L3 projects was to create a simple yet functional http web server, as part of the Architecture, système et réseaux 2 course.

The original subject can be found here. You can read my report and download the source code for the program I’ve developped. I wouldn’t advise its use for your personal purpose, but you may still find it convenient as it is fast, scales well and can send pretty big files without any problems. If you are interested in the tricks or methods I’ve used (but not invented), feel free to contact me.

Thread library

This time it was a personal homework I’ve done for the Architecture, système et réseaux 2 in L3. The original subject can be found here. We worked individually but I used precious advices from both my former roommate Alexandre Isoard and his geeker-than-you friend François Gindraud.

You can download the sources of the produced library and use it at your convenience. It comes with some man pages and answers to somes questions raised in the instruction paper. If you want more details on the structure behind the code feel free to contact me.

Sparse vectors

This is a little project in C I’ve done with the cheerful Julien Herrmann, as part of the Projet 1 course in L3.

The final result is more of a small library than a real software than does real things. The original purpose of this work was to implement two methods to manipulate sparse vectors (that is a 1-dimensional array with a lot of 0), either by using a linked list or an array with the indexes of the elements in the original vector. Both were quite easy to create, so we introduced a more sophisticated data structure that mixes lists and arrays. We lacked time to extend our work to bidimensional matrices (which is a shame, I know), but there are still some files in the source code that you may find interesting to browse.

Nevertheless, you can read our report (please keep in mind that we were still young and innocent). And you can of course check out the source files, let it be to play with vectors or matrices. Beware : the source for the sparse matrices is still a littre buggy. But the library for sparse vectors is fine and you can use it as you please.

Seam carving

This is a little project in OCaml I’ve done with the cheerful Julien Herrmann, as part of the Projet 1 course in L3.

You can fetch the subject we used as a base for our work. If you’re eager for a further understanding of the process, be sure to read the original paper or to browse the dedicated webpage, where you can find this pretty video. As for our work, we intended at first to use a matrix to represent a picture, but finally one week before the deadline I decided that I would use a double-linked list data structure (or more accurately quintuple-linked cells, one cell for each pixel of the image). Eventually we ended up with a rather fast and satisfying programm with a lot of functionnalities (reduction, enlargement, several energy functions, etc.).

The final report is located here, and you can download the source code of the programm, as well as some examples.

Game of Life

This is a little project in Python I’ve done with the cheerful Julien Herrmann, as part of the Projet 1 course in L3.

The subject can be found here (part 2 deals with the game of life). We did not have very fast and optimised algorithms you know, but the result is still pretty nice and relatively customizable. You can take a look at our report, or directly download the resulting game.

Frequency Allocation by Graph Coloring

This is a work I’ve done for the competitive entrance to the French grandes écoles during my second year in classes préparatoires aux grandes écoles (CPGE), as part of the travail d’initiative personnelle encadré test (commonly called TIPE). I was very young and this work is a bit old, but it may be worth take a look.

The general purpose of this work was to study methods for coloring graphs with approximated of exacts methods, with a focus on triangulated graphs. The concrete exemple of frequency allocation served as an excuse for coloring graph with arbitrary topology, as well as a particular class of graphs.

I’ve submitted a pretty report for the entrance exam to the ÉNS, which you can browse faithfully. That was my first try using LaTeX, so please be lenient. A fair more complete and detailed paper can be found here — but be aware that it was done in an ugly way using Word. I atone for my sins and use LaTeX henceforth. I’ve implementated the algorithms describes in this work and tested them of my computer. You can download the whole source code and use it at you convenience. Be careful : it is written is Caml Light, not Objective Caml (have I told you how I was young at this time ?). Finally there is also some slides I’ve made for the oral examinations, along with some extras.