Eric Lecolinet / DIVA Group / LTCI / Télécom Paris


Source code and examples:

JSonSerial2: C++ Object Serialization in JSON



BibHTML: HTML page (with images) from BibTex files

  • BibHTML generates a HTML file from one or several BibTex files; duplicate entries are merged.
  • BibHTML supports regular and custom BibTex types and fields; including images, which be displayed on the left or right side of BibTex entries on the HTML page.
  • The abstract, the keywords, the BibTex citation can be shown on demand (using Javascript).
  • Entries can be selected, sorted or ranked (using a special field that controls their order of appearance).
  • HTML pages are rendered using CCS style sheets. The order of the fields (and which fields are displayed or not) can be changed by editing a formatting text file.
  • BibHTML consists of a single C++11 program, no other tool is needed.



MarkPad: As many gestural shorcuts as you need

MarkPad is a Mac OSX application that allows performing simple gestures to execute various actions (execute scripts or commands, open/hide applications, files, directories, webpages, etc.) Gestures consist of strokes starting from the touchpad border (thus not conflicting with pointing). Actions depend on the starting and ending locations of the strokes, which allows defining hundreds of different gestures.

MarkPad provides a novice and an expert mode. In novice mode, the user touches the touchpad border for a short amount of time and a menu appears. In expert mode, the user perform the same gesture without waiting for the menu to appear. MarkPad can be improved by adding visual or tactile marks on the touchpad (e.g. transparent or colored tape).

See the MarkPad page to get the manual and download the application.
CHI Paper: MarkPad: Augmenting Touchpads for Command Selection


ccuty: C++ utilities

Useful functions for C++ strings
Provides functions for trimming, unquoting and splitting strings, for comparing and converting ASCII strings to uppercase or lowercase chracters, and for converting strings to numeric IDs (e.g. for switch statements).
String set and indexed string set
Provides classes for converting strings to numeric IDs (e.g. for switch statements) and vice-versa and for testing if a string belongs to a set of strings.
Functions for Unix pathnames
Provides functions for retreiving the basename, the dirname, the extname, for changing the extension and for joining pathnames.
IPV4 socket communication
Provides classes for simplifying client/server socket communication. Ensures that messages are properly delimited (a message is never received in several parts, even if it is split by the underlying protocol).
For managing the MacOSX desktop
Provides functions to generate mouse and key events, open/hide applications, interact with AppleScript, change volume, play/pause iTunes and get current track, etc.

See the ccuty page to get documentation and source code.
Licence: LGPL 3 or or any later version.


Older software

Ubit GUI Toolkit: A molecular architecture for building GUIs

See the Ubit page.
Licence: LGPL 3 or or any later version.

Ubit is a GUI toolkit that combines the advantages of scene graph and widget based toolkits. The Ubit3D extension makes it possible to display 2D GUIs in a 3D representation. UMS is a X11 interaction server that provides multiple and remote pointers.


XXL: Visual/textual equivalence and sketch drawing for building GUIs

See the XXL page.
Licence: LGPL 3 or or any later version.

XXL is a GUI builder that allows specifying graphical interfaces visually, textually or by drawing sketches. Visual and textual representations are always synchronized and they can be changed while the application is running.