Eligante

Latest news

Here is a list of the latest news written in English; to see a more complete selection, please see all the news about eligante. "; while ($node = db_fetch_object($result1)) { $n = node_load(array('nid' => $node->nid)); $output .= "

  • " . format_date($n->created, "small") . " - nid\">$n->title"; } $output .= ""; print $output; ?>

    Introduction

    Eligante (or e-ligante) is a message collector and browser, released under the GPL licence and written in Python.

    The main activities of eligante are:

    1. Getting access to a message source (e-mails, IM, IRC chat logs, web boards, etc.), retrieving the messages and storing them in a SQL server.
    2. If messages over different sources share the same sender, it's possible to create a unique identity for this user.
    3. Browsing the messages present in the SQL database.

    The first goal is achived by a series of modules, or engines (motores in interlingua) which fetch the messages from a specific source (ICQ logs, mailboxes, websites...) and store them in the database (currently MySQL).

    The second point allows creating a virtual identity which ties together all the various identities a friend of yours might have in the various sources; for instance, if you had conversations with Marco both by e-mail and by an IRC chat, you can create an identity from him to be the merge of the two.

    The third point will allow you to browse into the message database through a web interface; you'll be able to see all messages you had with Marco in an unified view, without having to navigate through the various modules. The interface provides some search functions, and also allows you to execute steps 1 and 2. Hence, all eligante can be controlled from your web browser.

    Features

    • Several modules for fetching messages:
      • E-mails in mbox, MH, maildir and MMDF formats
      • IRC chat conversations (as logged by irssi)
      • gAIM conversation (therefore ICQ, MSN Messenger, Yahoo! Messenger, Jabber,...)
      • The meeting website hi5.com
      • Several bulgarian websites: elmaz.com, flirt4e.com, sreshta.bg and others
      • Other modules can be easily built (next ones will probably be orkut, skype and any others I'll hear of)
    • Unified interface for browsing all messages
    • Advanced search functions: in people names, in the subjects and in messages body. It is possible, for instance, to find all the messages in which you mentioned "Linux".
    • Unicode support
    • Internationalization support: all the text in the web interface can be translated into other languages
    • Easy configuration and setup: the main settings (for connecting to the DB) are stored in a plain text file, while module configuration can be done via the web interface
    • Integration with The address book, an electronic address book developed in PHP.

    History

    Eligante is a project started in the spring of 2005, to solve a real problem: I had frequent conversations with many people over different channels (especially websites) and in such a situation the risk of forgetting to answer to some message is very big. Besides, I didn't remember what I talked about with one or another people; for this reason, I needed a quick way for checking my previous correspondence with someone, independently of the medium where the actual conversation occurred.

    Initially, eligante was just a mess of python scripts; but then I realized it could be useful for other people too, so I decided to reorganize it in something easy to develop and mantain. I added internationalization and a simple web interface; while it's already in a fine usable state, there's still much work to do, and I hope to find someone interested in it.

    What's this interlingua?

    To tell it shortly, Interlingua is the language I like most; it's a natural language, no less than all national languages, it's simple, easy and sounds beautiful. It is the common denominator of the languages of the western world (English, French, Spanish, Portuguese, Italian), and millions of people can understand it at first sight.

    You might wonder why I decided to use it in eligante (for the comments and the names of variables and functions); well, while I don't have nothing against the English language (apart from its pronunciation), I did want to test how a community, born and grown with English as the only working language, would react to a different point of view. I'm referring to the Open Source community, which came to use English not by an unanimous decision, but just by convenience; and nowadays people not speaking English have two choices: either learn it, or stay away from the Open Source community.

    Interlingua is just another language; it could be Spanish, Chinese or Bulgarian. Though, I like Interlingua most because of it's simplicity, and because many people can understand it. In fact, the reason why I'm writing this text in English and not in Interlingua is not because less people would understand Interlingua (which is not true), but because most people wouldn't even try to read it. I want to demonstrate that the statement “I don't know this language, hence I don't understand it” is plain wrong: from the premise that you don't know a language, you can only derive that you'll won't be able to express yourself correctly in such a language. But you might be able to read it, just make the effort!
    Think about this: you know Python and PHP, but you don't know Java and C. Would you conclude that you cannot read a program written in Java or C? Of course you can! Your reading will just be slower, but you'll make it. And the same can happen with natural languages — as long as they are close enough to the ones you know, of course.

    There are other reasons why I've chosen to use an extraneous language in my project. I'm not going to write about globalization, because that would take us too far, but I'm sure you got the idea. But there's some collision between the concepts of Open Source and the (implicitly forced) adopting of a single language which I feel almost as a contradiction. As a nice conclusion of the subject, I'll leave you a question: why know 10 programming languages, but just one human language?

    Screenshots

    How could I not show some screenshots! The graphics of eligante is extremely essential, just what render it usable. This is a point for which I definitely need help.

    The list of identities eligante has bound

    The search function

    Creation of a new identity: from each module, one can choose zero, one or more identities. They'll be all tied together

    The fetching of new messages

    eligante integrated into The Address Book

    Prerequisites for installing

    eligante has been developed and tested just on Linux, but it should work in any machine which runs this software:

    • Python 2.3 o later
    • Mysql (better if version 4.0 o later)
    • (optional) The Apache web server wich CGI support can be used, but it's not required as eligante now comes with its own webserver
    • (optional) The Address Book

    Download and try Eligante

    I've tried my best to simplify the process of installing eligante and having it running, and I think I've reached a satisfying level. But should you encounter any problems, please post to the eligante-user mailing list.
    Your feedback is needed for the improvement of eligante!

    To download eligante, click here:

    Choose the latest version from the sourceforge.net website


    If you like emotions, you can try out the CVS version. But please note that this version is always under development, so it's extremely probable that something won't work as expected.

    Installation
    Uncompress the tar archive and follow the instructions in the INSTALL.txt file:
    
    tar -xvzf eligante-<version>.tar.gz
    
    cd eligante-<version>
    
    more INSTALL.txt
    
    

    Get involved!

    Eligante is registered as a project in sourceforge.net. If you are interested in contributing code for eligante, or you just want to follow the development, or ask for help, there are two mailing-lists waiting for you.
    Logo SourceForge.net
  • Comments

    There's also webmention support.