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

Juan Cardelino juan.cardelino at gmail.com
Mon Sep 26 21:06:54 CEST 2011


I mostly agree with this, but we all know what happens when we try to
be comprehensive with a software library. You end tied up to it, like
what happened with megawave.
So if we go this way, we should be sure that every pieces of the
library is independent and can be used separately in our programs.
If every code in this framework will depend on a image type and the
image type will depend on other things, we will end up with a mess.
It will also be nice to be able to compile this "fragments" without
complicated build systems, i.e. like taking file.{h,c} and compiling
it alone.
I will take a look at your library, maybe we can define some tests to
do to a framework to see how complicated it is. For instance, how many
files (and lines of code) should I compile to open an image, threshold
it and save it again.
The ease of use from the programmer's side is always paid with
complexity in the library itself. Although "if (I[i] < th) I[i] = 0"
is appealing, I wonder how many thousands lines of code are required
to achieve that level of abstraction.
It is a dangerous path, which led many us to considerable headaches in the past.


On Mon, Sep 26, 2011 at 12:38 PM, Miguel Colom
<Miguel.Colom at cmla.ens-cachan.fr> wrote:
>> 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
>
>
> _______________________________________________
> discuss mailing list
> discuss at list.ipol.im
> http://tools.ipol.im/mailman/listinfo/discuss
>


More information about the discuss mailing list