Paolo Ribeca's software

I post here some of the software which I have developed along the last ten years or so, hoping that you will find it useful. Please refer to the license accompanying each of the packages, since not all of them are distributed under the same conditions.

However, before starting with the actual list I cannot refrain from some (completely unsolicited) advertising :) .

In praise of OCaml

I am not boasting when I say that during my life I have developed complex applications in almost any kind of existing computer language. When I was young and inexperienced, I believed that C and C++ were the best programming languages in the world; now that I am wiser :) , I tried out many and found that Objective Caml is without any doubt the one which suits best my personal taste and needs. In fact, it was more than a discovery; it was more like falling in love :) , or like when you find out that your new shoes instead of hurting a lot just feel like the old ones.

I find it wonderful, really. ML is extremely elegant by itself (if you want to understand and appreciate why you can for example take a look at the exquisite Introduction to Functional Programming by John Harrison), and the way OCaml is implemented adds up to the magic: extremely solid, at the same time spartane and refined, and more than everything else extremely efficient. The design of the compiler, in particular, is really amazing (please do dive into the source of the compiler if you have some time to kill! it is like reading an excellent book).

So, give it a try if you can, please... but without expecting miracles, of course. Maybe the magic will not work out on you as it did for me; after all, even OCaml has of course its (very minor) annoyances and oddities, and, as its implementors love to state, "there are no good programming languages, only good programmers".

Projects available for download

There are three projects available for download so far.
I will add another old project of mine, M.A.D. (which stands for Machine Aided Deconvolution) as soon as I find the time to properly refactor it.