<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/3.7.0">
</HEAD>
<BODY>
<BR>
Hi there,<BR>
<BR>
Me, Kristof Vansant and Fr&#233;d&#233;ric Descamps created a small (and unfinished) analysis for a generic desktop application configuration management system which we'll call D-Conf<I> (it's just a temporary name, perhaps the final name. We'll see)</I>.<BR>
<BR>
I kindly invite people who are interested and who perhaps have a specific knowledge in a topic that might be important for this project, to append and/or correct the information we are collecting during the analysis of it. I kindly invite people to join. It's the main reason why it has been created in a wiki-container. It's possible that this document will move to a more appropriate location. Thats why the wiki-title of the page mentions the fact that this is a temporary location. We'd like to have a more or less stable and clean document before officially publicising something.<BR>
<BR>
<I>There's a few reasons why such a generic system is a good idea:</I>
<UL>
    <LI>It will be more easy for application developers to develop desktop applications that work with configurations 
    <LI>It will be a consistent way for application developers to develop desktop applications that work with configurations 
    <LI>Desktop applications from all environments can work together with a few common configuration-settings. There will be no more need to duplicate these settings 
    <LI>Network transparency for locations with large amounts of desktops (companies and organisations) 
    <LI>A common way to manage Access Control Lists for configurations of locations with large amounts of desktops 
    <LI>More easy to integrate with version management systems 
    <LI>More easy to migrate from one host to another host 
    <LI>Notification of configuration-setting changes for all applications (not only GNOME-to-GNOME applications) 
    <LI>Can be platform independent (there's many reasons why this is useful)
</UL>
<BR>
So to complement the first dialog of this E-mail: if you disagree with the list of reasons you can actually go ahead and correct it. Same for all the following pieces of this E-mail. So don't just argue and flame about it, do something about the problems and errors. Go fix them <A HREF="http://freax.be/wiki/index.php/Temporary_location_for_D-Conf_specs">here</A>. This E-mail is <B>not</B> the complete document, please read the complete document if you are highly interested in this subject <A HREF="http://freax.be/wiki/index.php/Temporary_location_for_D-Conf_specs">here</A>.<BR>
<BR>
<I>There's already a few existing configuration management systems:</I>
<UL>
    <LI>GConf
    <LI>KConfig
    <LI>OpenOffice.org's configuration
    <LI>Windows registry
    <LI>Wine emulates the Windows registry
    <LI>Mozilla's configuration
    <LI>conf and ini-files
    <LI>XML files
    <LI>There's probably others ...
</UL>
<BR>
<I>Such a system needs a lot requirements. You can find some of them <A HREF="http://freax.be/wiki/index.php/Temporary_location_for_D-Conf_specs">here</A>.</I><BR>
<BR>
<I>Some of the technical considerations after taking a closer look at the requirements:</I>
<UL>
    <LI>There's a need for an IPC system that can do signalling and that is widely accepted by most free desktop application developers 
    <LI>There's a need for a default backend database format that can store Unicode data in a tree-like structure or in a structure that emulates a tree. 
    <LI>It would be nice if the default database would work on it's own (no need for running a &quot;database management system&quot;-process) 
    <LI>The the library should be easy to create bindings for in all popular programming languages. 
    <LI>The system should be network transparant and an IETF protocol for configuration access would be nice. 
    <LI>The system should be integratable with source control systems or other external tools for doing version control 
    <LI>Support for transactions in the backend is a pro
</UL>
<BR>
<I>That brings us to some technology choices. You can find the pro's and contra's <A HREF="http://freax.be/wiki/index.php/Temporary_location_for_D-Conf_specs">here</A>. And here is a temporary list:</I>
<UL>
    <LI>The programming language C (chosen because it eases the creation of interoperable libraries)
    <LI>The IPC system D-BUS (which will need some improvements first)
    <LI>SQLite as default backend (chosen above libXML because it supports transactions)
    <LI>Glib and GObjects (chosen because it eases the creation of interoperable libraries)
    <LI>GLib bindings for D-BUS
    <LI>ACAP (chosen because it's an IEFT standard -- better than recreating our own standard for network transparant configuration management --)
</UL>
<BR>
<I>We created an architectural design <A HREF="http://freax.be/wiki/index.php/Temporary_location_for_D-Conf_specs">here</A>. And we crafted a very first class diagram <A HREF="http://freax.be/wiki/index.php/Temporary_location_for_D-Conf_specs">here</A>.</I><BR>
<BR>
<I>And finally, you can find the full document <A HREF="http://freax.be/wiki/index.php/Temporary_location_for_D-Conf_specs">here</A>. </I><BR>
<BR>
ps. Please don't draw conclusions after only reading <I>this</I> E-mail. Consider reading the <A HREF="http://freax.be/wiki/index.php/Temporary_location_for_D-Conf_specs">full document</A> first.<BR>
<BR>
<BR>
<BR>
<TABLE CELLSPACING="0" CELLPADDING="0" WIDTH="100%">
<TR>
<TD>
<PRE>
-- 
Philip Van Hoof, Software Developer @ Cronos
home: me at freax dot org
gnome: pvanhoof at gnome dot org
work: philip dot vanhoof at cronos dot be
junk: philip dot vanhoof at gmail dot com
<A HREF="http://www.freax.be">http://www.freax.be</A>, <A HREF="http://www.freax.eu.org">http://www.freax.eu.org</A>
</PRE>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>