In my personal time, I develop theories and software for creating
machines that will live their own lives and take care of themselves. The
emphasis is on developing a general form of proto-intelligence first,
and not any specific application. This endeavor is more of an art
project than an industrial project, as ultimately it is about creating
artificial individuals, not tools.
Minimal Dictionary (2020-): small
dictionary of basic terms loosely related to natural and artificial
minds and their interaction with the world. It is structured as a DAG,
forbidding cyclic definitions.
Artificial cognition glossary
(2019-): glossary of technical terms used in my own work on designing
artificial minds.
These original ideas come with some implementation that works, but
aren’t widely known or used by many. Work would be needed to publicize
them or make them widely accessible.
vanity (2020):
Validation and formatting of acyclic dictionaries. The goal is to allow
thinkers to present their respective world views in a concise and
unambiguous manner, without resorting to mathematical formalism.
unpurple
(2012): An algorithm for removing purple-fringe defects from photos. Now
available to all in GIMP via G’MIC.
dutop (2011): A
command for identifying the subtrees which take up the most space in a
file system. Typically used when running into “no space left on device”
errors.
wcl (2011): A command
for estimating the number of lines of large files. Useful when dealing
routinely with 100,000,000 records or more.
Notable open-source projects
These tools have been or were used professionally by multiple
independent users. They were all initiated by me, with or without
support from an employer.
dune-deps (2020):
Extracts a useful dependency graph from an OCaml project.
atd (2010): Code
generator for making JSON pleasant and flexible to use with OCaml. Comes
with its own type definition language designed to be adaptable to
various data formats and programming languages.
yojson
(2010): JSON parsers supporting atd. Turned out to be widely used as is
by many OCaml users.
cppo (2009):
Straightforward C-style preprocessor for OCaml. Used typically as a last
resort to deal with compatibility issues across different versions of
libraries.
mikmatch (2004,
defunct): extension of OCaml’s ML-style pattern-matching syntax with
regexps. Was based on Camlp4 which since has fallen from grace.
Structural bioinformatics
(2000-2007)
For my PhD and postdoc, I worked on tools to study the 3D structure
of proteins. While my postdoc experience wasn’t a thrill scientifically
speaking, I some moderate success with my PhD work in France.
The SuMo project (2000-2003) was an attempt to identify local
similarities among unrelated 3D structures of proteins, in the hope that
they would share a similar biological function.
This involved complex heuristics for somewhat limited results. It
permanently convinced me that a system capable of forming its own
intuition about the behavior of proteins would be the key to solving
this problem, and many others.
In the process, I became a scientific poster enthusiast. Here’s an
example of my creations, which I presented at an international
conference in 2005:
Publications relevant to the SuMo project:
Jambon, M. A bioinformatic system for searching functional
similarities in 3D structures of proteins. Doctoral thesis. Université
Claude Bernard - Lyon 1. June 20, 2003 [French original].
Jambon, M. and Imberty, A. and Deleage, G. and Geourjon, C. A new
bioinformatic approach to detect common 3D sites in protein structures.
Proteins 2003 Aug 1;
52(2):137-45.