Openchallenge 2|2003. Time to deadline: 68 days 22 hrs 52 mins

Winners archive
Support us

Challenge 3|2002
Submit: implementation
Submit: idea/concept

Nonprofits program


Valid XHTML 1.0!

current: openchallenge 2/2003, implementations

Would you like to be notified when new items are added to this category? Subscribe here.

  • Hiveconf [LGPL]
    Posted Jun 27, by < anonymous >

    "Hiveconf is a system for storing configuration data in key-value pairs. It works in a manner similiar to the Windows registry and GConf. Configuration data can be retrieved and modified using a simple API, and data is stored using different backends. The default backend uses a text file format that is similiar to smb.conf or Windows .INI files."

    This is a submission for the "Universal Configurator" challenge. The recommendtations are not fulfilled, though: I do not use XML, and there is no GUI yet.

    The implementation needs some more work, but I believe that the concept might be a long-term solution to the entire problem of "UNIX configuration".

    The Hiveconf homepage is

candidates for openchallenge 1/2003, implementations

  • CodeWorker [LGPL]
    Posted Mar 31, by < codeworker at free dot fr>

    CodeWorker is a scripting language (distributed under LGPL at devoted to manipulate many aspects of generative programming as easy and intuitive as possible.

    Generative programming is a software engineering approach for producing reusable, tailor-made, evolvable and reliable IT systems with a high level of automation. One of the main remarkable advantages of generative programming is about implementing application code automatically after restricting human interventions to the essentials.

    The scripting language adapts its syntax to the subject it has to handle:
    • an extended-BNF syntax (declarative part of the language) for recognizing the format of the specifications to parse,
    • a procedural language for manipulating easily parse trees (the only structured type admitted by 'CodeWorker'), strings, files and directories,
    • a JSP-like syntax (imperative part of the language), which facilitates the writing of template-based code generation.

    Thanks to this syntax adaptation, the scripting language is able to easily:

    • acquire any kind of specification of the IT system to produce (often XML but not necessary),
    • generate source code in a classical way (as Rational ROSE), managing protected areas of text that accept hand-typed code,
    • expand a source file like the class-wizard of Visual C++ (generated text is inserted at specified markers),
    • translate from a format to another (LaTeX to HTML, XSL to CodeWorker, ... no limit),
    • transform a source file (to instrument a source file with profiling features, ...).

    These tasks are executed in a straightforward process, with no binding to an external programming language and with no translation of requirements specification.

    It avoids a heavy hybrid process, such as ANTLR -> C++/Java -> XML -> XSL -> source files.

    XSL has some limitations due to its strongly declarative nature, and processing a non-simple generation may require a merging with a procedural language (Java if Xt is used to do the XSL transformation, for instance) that includes another binding.

    The chapter "Getting started" offers to discover the scripting language at

  • gash - gPLed audio streaming hash [GPL].
    Posted Mar 3 2003, by < ryan at ryanflynn dot com >

    This submission is a response to the challenge on creating a Robust Audio hash

    Gash chops a wav file into chunks and outputs information describing the relationships between neighboring chunks. This method allows files that are not binary compatible to produce similiar output. File-specific attributes like total length and relative volume do not factor into the output. This stream of relationships can be displayed in several simple ways and stored into a file, database, etc. A second program compares two streams looking for significant areas of overlap and returns a score. So far I've only tested on song data, but this method should work for any audio file, provided a long enough sample or high enough level of detail.

    Project homepage is at

archive: openchallenge 3/2002, implementations

Here is the list of candidates for openchallenge 3/2002, implementations category. The winners were announced Janury 15 2003.

  • RabbIT proxy [BSD license]
    Posted Nov 26 2002, by < robo at khelekore dot org >

    This submission is a response to the challenge on Smart HTTP Proxy.

    RabbIT is a web proxy that speeds up over slow links. It can compress resources with gzip, convert images to low quality jpegs, remove background images and some advertising. RabbIT has a flexible and extensible system to handle resources based on mime type. RabbIT has a cache for the (modified and unmodified) resources. RabbIT has good HTTP/1.1 compliance with support for persistent connections (both client and server side). RabbIT supports user authentication and proxy chaining. RabbIT is written in java and should work on all java/1.1 compatible devices.

    [Project homepage and downloads]

  • zipproxy [GPL]
    Posted Nov 21 2002, by < jvariny at pobox dot sk. >

    This submission is a response to the the challenge on Smart HTTP Proxy.

    The software was originally released before the challenge was posted on Openchallenge. ziproxy is a forwarding (non-caching) proxy that gzips text and HTML files, and reduces the size of images by converting them to low quality JPEGs. It is intended to increase the speed for dial-up Internet connections. Most browsers support gzipped content, so Web pages appear as normal, but as they are only a fraction of their original page size, pages are much quicker to load. Even for browsers that don't support it, hints how to overcome it using SSH port forwarding are included. Images are reduced in size by an average of one third, with only marginal visible image quality loss. It should be used with inetd/xinetd, but if you can't use them, a simple replacement "netd" is provided.
    [Download: ziproxy-1.1.tar.gz] [readme.txt]

  • Linux driver for Synaptics cPad [GPL]
    Posted Nov 18 2002, by < rob at inpharmatica dot co dot uk >

    This implementation is a solution for this challenge.

    This is a driver with a user space access program for the Synaptics cPad. the software enables the user to turn the backlight on/off, turn the lcd on/off, and write images to the LCD display, and enables the middle mouse button (the last one was the reason for starting the project!). I did not know there was a challenge until receiving an e-mail on the subject this morning, but I shall be happy to mention the submitter in the source code. the current (and still improving) version is available at

  • pGina [GPL].
    Posted Nov 5 2002, by Nathan Yocom <nate at yocom dot org>

    The short description: pGina is a GPL'd replacement for the authentication portion of Windows 2000/XP . Why replace that portion of the OS? Because we hate not having choices. So pGina uses plugins to achieve user authentication via ANY number of means (ala LDAP, NIS, anything really).

    The long description: As it stands, the Microsoft Windows 2000 client operating system only provides a single method of user authentication. This method calls for the availability of a machine running the Microsoft Windows 2000 Server operating system. While this method may work very well in several situations, it does not work at all in others. Should someone be looking to bring the Windows 2000 operating system into an environment where user authentication is currently being handled by something other than a Windows 2000 server, it is an extremely difficult task to allow for this single method of authentication.

    For instance, should an administrator wish to use an existing Unix server, and its existing base of users, to authenticate access to Windows 2000 machines there are few options. The methods employed may range from using a Windows 2000 server for authentication and having the administrator maintain identical lists of usernames/passwords on each server, to using Samba to emulate a Windows NT 4 Server. However, each method has its drawbacks and limitations. Ideally the administrator should be able to setup a standard naming service, such as NIS (Network Information Services) or LDAP (Lightweight Directory Access Protocol), on ANY type of server and have all clients, regardless of OS revision, access that single repository.

    However, Microsoft does allow for customization of its client access and authentication methods through the interface specifications and details of their GINA (Graphical Identification aNd Authentication) dynamic link library. This library is a replaceable DLL component that is loaded by the Winlogon executable. The GINA implements the authentication policy of the interactive logon model and is expected to perform all identification and authentication user interactions.

    Through the creation of a substitute GINA that can dynamically load plugins, where a plugin can be created to use ANY method of authentication, we propose that it is possible to systematically, and simply, provide for the authentication and login of a user via many different methods. Thereby, we are simplifying the provided GINA interface, and providing the skeleton code necessary to quickly and easily implement many different methods of user authentication. Once a plugin has been created for any particular authentication method, it can quickly and easily be installed on multiple machines and even provided for other users and institutions, without the need for an in-depth understanding of the Windows logon process or its structure.

    [Project homepage], [Downloads]

Archive: 2|2002 (old format, when looking at this, remember that visits to this site have went expontential since then), 2002 Feedback