[IPOL discuss] The Hatchery: an informal index of available code within our community.

Miguel Colom Miguel.Colom at cmla.ens-cachan.fr
Mon Sep 26 17:38:34 CEST 2011


> Hi Miguel,
>
> at our lab, I implemented something similar:
> http://charon-suite.sourceforge.net
> * The idea is NOT to create a library or a complicated framework;
> instead the idea is to archive code from my students in a common format
> and to enable new students to reuse existing code in a modular manner. *
> Everybody can either use existing code or write his/her own modules
> which can be plugged together in a visual environment. (The same code
> can also be executed from the command line).
> * It works under Windows and Linux environments and the user can choose
> his/her own development environment (thanks to CMake).
> * The mini-framework for writing modules (charon-core) has been stable
> for two years now. There even is a code-generating wizard to create new
> modules without writing code.
> * The number of existing algorithms and helper code such as file reading
> and writing is steadily increasing.
> * From a supervisor's perspective it is also very useful for
> experimenting with the methods your students implemented.

Thank you for the information, Daniel.

This kind of framework is what I mean. Perhaps making it a little less
typed, but I think it's great.

For example, let's think about a very simple denoising algoritm that puts
to zero those DCT coefficients that are below a given threshold.

To implement it means using a library to parse the input parameters and
options, open a PNG file, to handle the possible errors (file not found,
read failure, memory issues, etc), look for code to compute fast the DCT,
do the denoising and saving the file.

It's a lot of work that has to be coded and tested for every new algorithm
application. In this example, the code shouldn't be larger than a line
that says something like "if (I[i] < th) I[i] = 0" inside a loop.

Putting all processing that doesn't really has to do with the algorithm
itself makes the applications easier to develop, faster to develop, the
code is clearer and also one can isolate problems in the code easier.

Best,
Miguel




More information about the discuss mailing list