[dcontrol] Names, code, work

Paranoid paranoid@pcwereld.be
Sat, 14 Aug 2004 11:30:19 +0200


> CFG looks much like what i was thinking, 
> but with more layers.
> 
> Layer 1:
> High-level GUI (QT, GTK, HTML, etc) 
> that will do the eye-candy stuff.
> 
> Layer 2:
> Mid-level componentized python scripts,
> will be used by the GUI to handle the config files.
> 
> Layer 3:
> Low-level raw config files.
> 

I was more thinking about something like this (maybe it's the same as
yours, just clarifying then):

1: general gui abstraction library (layer 0 would be gtk/...)
2: core, uses one protocol to communicate with layer 1
3: config file parser

So the only thing that would need te be written when porting to another
interface/gui is layer 1, and this only needs to be written once since
it's common to everything we write (given a specific interface).

> I've mentioned python (even thought i love Perl)
> because it is not a small project, 
> that must be very well organized (OO coded) 
> to grow with minimal pain, and python seems the
> language that best fits our needs.
> 
> I want to hear from you creatures, 
> what do you think about these ideas??

I was toying with python,lex & yacc. Someone did the work to port
lexing/parsing to python, maybe we should take advantage of this, since
writing parsers using only regexps+python/perl isn't my favorite
timespending...

I'm not a big fan of CFG, but their parsers could be reused i think.
The problem i had with them was the usage of XML. (which imho is just a
little bloat to represent a tree of data).

They switched to WBEM recently (XML not being supported anymore). I
don't know much about the WBEM protocol, but i get the impression it's
quite large/extensive (which doesn't mean it's bad). It's network
transparant though. afaik a wbem-lib for python doesn't exist.

So that leaves us with these options:
a) Cut the WBEM piece out, and use whatever is below it (parsers in perl
probably)
b) Use python lexing/parsing and define our own interface. (python has
CORBA/RPC like features afaik, so these things could be network
transparent without much code) 
c) Write a WBEM library for python/whatever we're going to use and
include the WBEM layer from CFG
d) something else... :p 

For GUI abstraction: what about extending debconf, or just write
something ourselves?