Version française
Home     About     Download     Resources     Contact us    
Browse thread
[Caml-list] The demexp project is looking for OCaml developers
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: David MENTRE <dmentre@l...>
Subject: [Caml-list] The demexp project is looking for OCaml developers
Hello,

This is a call for developers.

In short
========

The demexp project is a free software project (GNU GPL) that aims at
making the software needed to start the democratic experience
project. The democratic experience is a large scale project of direct
democracy. It aims at providing the tools to facilitate the expression
of all citizens, to transform this expression into decisions, and to
apply this decision. 

After one year of development, we feel the need of help to reach as soon
as possible a working prototype. So we are looking for OCaml developers
that would be interested in helping us. Beyond its political objectives,
this project is interesting from a computer science point of view
because it touches a wide range of subjects, from networking to user
interfaces, through cryptography, databases, graphs, logical search
systems, etc.

Of course, demexp is written in OCaml.

Links: http://www.demexp.org
       http://savannah.nongnu.org/projects/demexp


More on the democratic experience project
=========================================

The democratic experience is a large scale project of direct democracy.
It aims at providing the tools to facilitate the expression of all
citizens, to transform this expression into decisions, and to apply this
decision.

In the democratic experience, each participant can submit a question,
propose answers, and vote. All winning answers to the votes are gathered
into a database that represents the common position of the group. This
common position can be used to drive decisions.

Thus, the democratic experience is a complete and open tool for direct
democracy. It can apply to small groups of people (associations,
companies) but also to larger groups (countries, the planet!).

For more information: http://www.demexp.org


Technical description of the demexp software
============================================

The demexp software is a kind of client-server voting software. The
server stores a database of questions and their associated responses and
the clients are allowed to vote on those responses. The communication
between client and server is made using RPC (thanks to Gerd Stolpmann's
RPC package). The server implements a Condorcet voting procedure to
resolve votes into taken positions. 

Demexp is however different of most voting software, because it fulfils
the requirements of the democratic experience project. For example,
clients are allowed to change their vote at anytime. People can also
delegates their vote to another participant.

We want to make a good software so we try to adhere to good software
engineering practices. For example, the code is developed in literate
programming style using Norman Ramsey's noweb tool. Each module has
non-regression tests.

The versionning tool used is GNU Arch. The main demexp repository is at:
 dmentre@linux-france.org--2004-code
  http://www.linux-france.org/~dmentre/arch-ive/ 

The latest source tarball is available at:
 http://www.linux-france.org/~dmentre/demexp/latest-src/

You'll find a example of the server source code in literate style at:
 http://www.linux-france.org/~dmentre/demexp/demexp-server-book-2004-09-02.pdf

The technical website for development is on Savannah:
 http://savannah.nongnu.org/projects/demexp

 (WARNING: the CVS repository on Savannah is NOT up-to-date)

The demexp software is licensed under GNU GPL.


What is the current state of demexp?
====================================

Demexp is not vaporware. We have started about one year ago the
development of the demexp project. However, due to low manpower and the
complexity of the software, we have not yet reached a demonstration
prototype. At first, we wanted to have a working prototype before
calling other people but it appears the task is harder than we expected.

Right now, we have implemented on the server:

 - repository of questions, responses and participants (as OCaml data
   structures);

 - condorcet voting;

 - classification of questions;

 - networking.

On the client side, we have just a set of windows and dialogs in Glade
format that compiles into lablgtk2 code.

Both are working on Linux.


We would like to reach the following objectives:

 * v0.4: basic client and server; saving of server bases in XML format;

 * v0.6: handling of delegation, internationalization (of both software
         and the questions themselves), port to various architectures
         (Windows, Mac OS X, other Unix);

 * v0.8: proper handling of security issues, mainly related to vote
         peculiarities (very hard task!! we're looking for experts)

 * v1.0: scalability issues, use of real databases, integration of
         logical search system into the client, etc.

There is a lot of interesting issues for the future: replication of
bases, information forum, integration of demexp in other softwares,
formal proving of algorithms and protocols, ...

We are looking for OCaml developers in all areas but we are especially
interested by people wanting to develop LablGTK2 software interface.


How can I contribute?
=====================

Just join the demexp-dev mailing list and let us know in what part you
are interested:
   http://savannah.nongnu.org/mail/?group=demexp


If you have further questions, do not hesitate to ask me.

We hope to have your help. We have a lot of interesting issues for you. ;)


Have a nice day,
Yours,
david -- on behalf of the democratic experience project
-- 
 David Mentré <dmentre@linux-france.org>

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners