I’m Vincent Jacques, alias @jacquev6 on the web. I’m a 35 years old, French, passionate software engineer. I started programming when I was 12 on a Casio calculator, and haven’t stopped learning since.
I studied general engineering at Ecole Centrale Paris (2006) and I specialized on software as a very enthusiastic career choice.
After eleven years of professional software engineering, I value maintainable and evolutive source code and the use of tools and automation to create working, reliable software.
As of October 2018, I’m working as a Software Engineer at Datadog.
My projects are documented using Sphinx and the Alabaster theme. Reference documentation is generated from Python source code by autodoc, form C++ source code by Doxygen and Breathe, and from OCaml source code by a preliminary version of my Sphinx extension for OCaml
The main challenge is the size of the API: there are hundreds of endpoints, each with one to six HTTP verbs. PyGithub provides a specialized interface for each combination; this makes client code safe. Some other libraries let their user write the name of the endpoints: mistakes are only discovered when the HTTP request is sent. In PyGithub, if the method exists, then the endpoint exists.
Python C++ Library Program Visualization
Its core functionality is written in C++ and exposed as a Python library using Boost.Python. A Python callback for computing the colors is called from the C++ code. This required two-way integration of C++ and Python code. Drawings are made using Cairo. The Cairo context is created in Python using PyCairo and passed to the C++ layer. The C++ code uses Cairomm to do the actual drawing.
OCaml Visualization Web Program
OCaml Visualization Program Mobile
It’s written in OCaml. The same core code is used to produce several applications:
To ensure that side-effects from an action don’t affect others, it uses Python’s multiprocessing module to launch each action in its own subprocess.
Its main added value is that decorated functions keep their signature, so tools doing introspection (Sphinx doc, IDEs, etc.) will work like there is no decorator.
The wrapper function is generated using Python’s ast module. This avoids using
eval on generated code.
OCaml Web Library
Polyglot is a collection of examples of how to interface pieces of code written in different languages, and/or execute code in a runtime environment that’s not traditional for its language. Calling a C++ library from a Python program, or executing OCaml code in a web browser, are two examples amongst what Polyglot demonstrates.