2010-04-05 19:15 Programming Problems in Disguise
Picture from the referred article
Jukke found a nice article about Programming Problems in Disguise. We faced this issue with AbuseHelper. While configuring AbuseHelper to production use for 2 CERT-teams, the configuration was very much of a programming problem. So we decided to scrap the .ini files and started using python for configuration. First experiences: very neat from programmers perspective.
The first argument against using .py vs .ini is often 'easy of use (configure)'. In my not-so-huble opinion the claim that .inis and .cfgs are simpler than .py is not valid. What I do agree however, is that with .py it is easy to come up with configuration file that is not understood by a regular maintainer, now that we have the power beyond regular configuration file.
At the moment I believe that the question is more about the required flexibility than the syntax of the configuration file.
Configuration is a thing that would be nice to make simpler and simpler, up to the point that there is no configuration. (For example you don't need to configure Clarified Analyzer at all.) With AbuseHelper, we will probably never get completely rid of configuration - it is a toolkit after all. We have now reached the level of flexibility we thought was needed - it should facilitate the varying needs of different CERTs. And the simplicity side is now handled with a confgen script, which will get the users started without a need to understand Python. But if you want to unleash the full power of AbuseHelper, you should understand a little bit of our beloved snake.
I'll promise to write another blog entry when we discover how to make configuration both, ultra easy and ultra flexible.
-- jani 2010-04-05 16:45:24