About my Ph.D.
I graduated in December 2019. But please don't call me Doctor, Raph' is fine ;-). I worked on Interactive runtime verification, at Université Grenoble Alpes (Laboratoire Informatique de Grenoble, INRIA, team CORSE), advised by Yliès Falcone and Jean-François Méhaut.
Interactive runtime verification consists in combining interactive debugging, which allows developers to inspect the internal state of their programs in details, but which is also a bit tedious, with runtime verification, a formal method to check execution traces produced using instrumentation against properties. The idea it to guide interactive debugging with runtime verification to make it less tedious and more systematic. You can read the following paper for an introduction:
Professional software projects
-
This is an application used at Université Grenoble Alpes to teach and manipulate finite state machines. The user can run and write algorithms, see the execution of a word, and more. The application embeds its own programming language, Audescript, an attempt to add set operations to Javascript, and to make it look like pseudo-code.
Aude started as a personal initiative, then developed during a summer internship, advised by Yliès Falcone. I have since improved it and advised 6 interns to make it evolve.
Technologies: HTML, CSS, SVG, Javascript, Typescript.
-
Verde (VERification with a DEbugger)
This is a proof of concept written in Python and Java for my Ph.D work, that combines runtime verification with interactive debugging. Verde provides a monitor (a piece of software that evaluates an execution trace and produce a verdict. This verdict is reused to control the execution. This control is decided by a script provided by the developer, by using the features of the interactive debugger (modification of variables, breakpoints, steps, …). The execution can also be suspended to let the developer control the execution.
Verde provides support for GDB (for program written in C, C++ and other languages supported by GDB) and JDB (for Java program and other languages running on the JVM).
Technologies: Python, GDB, Java, AspectJ, Protobuf, Shell.
Hobby projects
-
I have been traveling a lot by train. I made a WebExtension for Firefox Desktop and Mobile to make OUI.sncf lighter and faster, so I limit time and bandwidth wasted for each online train ticket bought. The extension, marked experimental since it can easily break the website in unexpected ways, has been seeing 170 daily users since September.
Technologies: Mostly CSS, a bit of Javascript.
-
There is this Android application, SimpleProtocolPlayer, that allows one thing and does it right: streaming sound from a computer to the Android device. Unfortunately, SimpleProtocolPlayer is not available on F-Droid and its author does not seem reachable. The application was not updated since 2017. And here is one big strength of free software: I forked the app, pushed a minor fix and added it to F-Droid.
Technology: Honestly, it does not matter at this point. It is in Java, but I could have written this 10 line fix in any mainstream language. My bigger contribution for this project, a 25 line metadata file for F-Droid is in YAML.
-
This is an network implementation of the famous board game Scrabble written using web technologies.
I had one goal: allow my grand mother, with her tablet, play with my family (Windows and GNU/Linux computers), at the other side of the country. The code does not implement any rule: it merely provides a networked board and bag of letters. This has been a success.
I more recently also built a variant out of the same code for the draugts, though I have not managed to try a whole game yet (try it!).
Technologies: NodeJS, HTML, CSS, Javascript.
-
A (unfinished) French translation of the book Programming in D, written by Ali Çerheli. I am the main translator, though Stéphane Gouget, Olivier Pisano and others helped a lot.
-
I needed a piano to grab the notes of songs when practicing. I didn't have a smartphone 3 years ago, and anyway, no piano app is available on F-Droid. So here it is. It works on mobile devices as well as on regular computers. It is a quick an dirty project. Don't leave it open on Firefox Mobile after usage, it seems it may prevent the phone to sleep.
Technologies: Javascript, SVG, a bit of CSS.
-
Before Git forges and Markdown were widespread, I designed a extensible syntax to write documents. I transcribed high school and college lessons (including a lot of math) with it. I used it to translate Programming in D. I still use it for this upcoming blog. The treasurery log of my choir is a Whata document, from which are built the balance sheet and the list of revenues and expenditures. but I have not documented it much and this old, working code would need a bit of love.
Technology: old PHP 5 (still works in the lasted PHP 7 without a hitch though).
Maintained Websites
-
I actively maintain my choir's website. The website is built using Wordpress and an heavily customised theme. In addition to the main website, I also maintain:
- A PeerTube instance It lets us host our own videos.
- A private Nextcloud instance to host the documents of the choir's board.
Technologies: Wordpress, CSS, PHP. A bit of Apache 2 configuration. A bit of POSIX shell scripts to manage SSL certificates and automated backups.
-
A friend's website who draw realy nice comics. I designed the website from scratch, including the galleries. To avoid annoying jumps, I added a bit of Javascript to load pages faster and more seamlessly. But don't worry, the website is fully functionnal without Javascript ☺. This friend uploads their drawings using Nextcloud, which is way more friendly and easier to set up than good old FTP, or even a good SFTP-based solution.
Technologies: Plain PHP, HTML, CSS, Javascript.
-
Mandrill.fr was not my first attempt at designing a website for an artist. I also maintained a photographer's website in the past. I don't maintain it anymore, but it still runs by itself. I also designed the galleries for this website. Have I heard *cough* NIH *cough*?
Technologies: PHP, HTML, CSS, Javascript.
-
My choirmaster's other choir, les Matines d'Hères, had issues with their website. I offered to build one for them.
Technologies: Wordpress, CSS, PHP.
Sporadic contributions to free software
- I added support for large LTL formulae in the Spin model checker (pull)
- I reported numerous bugs on KDE (list) and in other projects.
- I brought minor documentation improvements to Halium, F-Droid, WP Super Cache (pending), qea (a research runtime verification tool)
- I fixed a minor bug (incorrect value for a property) in the Mozilla Rhino Javascript engine (pull request)
- I fixed a minor bug in the Clementine media player (pull), that has since been overwritten anyway
- I fixed a presentation bug in the playlist view of the Odissey media player for Android (pull)
- I brought automatic data for MMS in LineageOS 14.1 for the Lenovo P2a42 phone, by reapplying an existing patch (pull)
- I fixed a minor lack of typing in DefinitivelyTyped for the big-integer library (pull)
- I lowered the minimum volume in Rockbox for the Cowon D2+ media player (patch)
- I made Sortable, a little Javascript library to sort tables, XHTML-compatible (pull).
- I fixed a type error in xmldom (pull)
- And before that, I was not born.
Links:
- Gitlab profile: https://gitlab.com/raphj
- Github profile: https://github.com/raphj