[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?