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

JsonSerial: C++ Object Serialization in JSON

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

Jsonserial allows serializing a set of C++ objects: a single object, a collection, a tree or even a cyclic graph of objects.
JsonSerial supports polymorphic and shared objects, relies on C++ 11 templates and consists only of header files.


Bibtoweb: HTML bibliography from BibTex files

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

Bibtoweb generates a HTML file from one or several BibTex files (duplicate entries are merged).

Bibtoweb provides additional Bibtex fields for displaying:

  • An image on the left or right side of each entry
  • An abstract, keywords, a BibTex citation (shown on demand, using Javascript)
  • Additional URLs (pdf, doi, video, slides, poster, software, project, etc.)

Bibtoweb also provides functions for filtering, sorting or ranking BibTex entries.
It consists of a single C++11 program, no other tool is needed.


MarkPad: As many gestural shorcuts as you need

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

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).


ccuty: C++ utilities

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

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.


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.