Julien Lemoine

Expert in software architectures and advanced algorithms

This page contains various open source developements I realized in my off hours, some of them are not maintained anymore but feel free to contact me if you want any information (my mail address is available in my resume).

Open source

  • Wikipedia Clustering:

    Clustering algorithm to perform a cluster analysis on textual documents, this program was applied on Wikipedia pages. The page contains also results on wikipedia corpus

    This project contains different sub components :
    • A C++ tokenizer library

      Recognize single or compounds words in an UTF8 document and includes filtering (recognize URL, based on word size or dictionary
    • A C++ and Java trie library

      Allow an efficient storage of a huge word dictionary with fast lookups: O(p) where p if the number of letters in the word you want to get/set.
    • String B-Tree library

      Perform lookups in a very huge dictionary that is stored on disk with only one disk IO (each node of the B-Tree is a patricia trie)
    The package also contains everything you need to analyze Wikipedia dumps (parser, representation of the links graph, tokenizer)

  • Wikipedia suggest:

    Auto complete library and service done on Wikipedia pages in 10 different languages.

    This program is very efficient and can serve more than 10k queries/second on one single core. This development was done in C++

  • Decision tree library:

    This datamining C++ library implements public datamining algorithms. It provides an implementation of ID3, CART and C4.5 datamining algorithms. Theses algorithms generate decision trees that can be used to classify data. This library is released under the term of the GNU LGPL licence.

  • Neural network library:

    This Neural Networks C++ library provides various algorithms for MLP (Multi Layers Perceptron) including Backprop, Rprop, Quickprop. It contains principal component analysis algorithms ALA and GHA. It supports normal and time lagged neurons. This library is released under the term of the GNU LGPL licence.

  • Portable socket library

    This socket C++ library implements portable socket abstraction for all OS. It provides an abstraction for UDP/TCP sockets, for client and server in IPv4 and IPV6. It includes local socket suport for Unix and Linux system. A full tests suite is included to check library functions. This library is released under the term of the GNU LGPL licence.

  • IMAP wrapper to use One Time Password (OTP) with standard clients

    This otp-wrapper is a multi-threaded IMAP wrapper that replaces LOGIN authenticate method by an OTP one. This wrapper keep a persistent connection with the IMAP server during a few minutes after the last action (given in the configuration file). This wrapper allow you to use you favorite webmail (squirrelmail, IMP, ...) with a OTP authentication. We have also implemented a new IMAP command (OTP-LOGOUT) to force wrapper to close the persistent IMAP server connection. We have created a small patch for squirrelmail 1.4.3 to send (OTP-LOGOUT) command when you signout. This software is released under the term of the GNU GPL licence.

  • Minimalist usefull C++ libs

    • Generic C++ Exec library

      This library was designed to exec arbitrary commands into C++ code in a portable way (fork under Unix and Linux, CreateProcess under windows...).
    • Generic C++ Shared Library loader

      This library was designed to load symbols from shared library in a portable way (functions are not the some under Linux/Unix and windows).
    • Generic C++ Timer library

      This library was designed to mesure CPU time or execution time of code in a portable way (using POSIX functions...).
    • Generic C++ debug library

      This dbg library is a set of C++ utilities to facilitate modern debugging idioms.

Cross compilation environment

Ready to use packages for x86 architecture to have a full cross compilation environment (binutils, glibc and gcc) for various target platform (alpha, arm, hppa, m68k, mips, mipsel, powerpc, sparc, ia64, s390, sparc64 and powerpc64)

Others