Projects
This page contains my principal software projects.Sequencer
The Sequencer is a software developed for the operators of the CERN Control Centre, which controls the whole system of particle accelerators. It is a 3-tier software developed in Java 6, with several GUIs, a J2EE server, and different execution agents (front-end computers). The Sequencer operates similarly to a debugger, its use being to run the long sequences of steps which are required in order to produce and accelerate the particle beams and to deliver them to the physics experiments.The core component executes the sequence and communicates bi-directionally to the GUIs through JMS via an ActiveMQ broker. The operator can, via the GUI, run/pause/resume the sequence, set breakpoints, skip lines, or simply observe a sequence ran on another GUI.
A set of plugins allows the Sequencer to be used with different accelerators such as the Large Hadron Collider and the Super Proton Synchrotron. Depending on the facility, the sequences are written in Pnuts (a Java-based scripting language that runs on the JVM) or retrieved from a database.
As the designer and lead developer of the GUI, I gathered project requirements, created project specifications following the features requested by the Sequencer operators, and ensured continuous integration of the Sequencer GUI with the core component. I also redacted the operator manual and Javadocs, and ensured it was always up-to-date with the current release number. The GUI is written in Swing (with the exception of some small SwingX widget) and is composed of about 16,000 lines of code.

Trivia: the Sequencer and other LHC control software
as featured by Ron Howard's movie Angels and Demons (from the homonymous book by Dan Brown).
JIRA Advanced Mail Handler
This is an enhancement of the standard email handler for the Atlassian JIRA issue tracker system. The JIRA Advanced Mail Handler greatly improves the capabilities of the standard email handler, allowing the user to define almost every parameter of the issue.It was developed for the CERN Accelerators and Beams Controls group, and then released as Open Source under BSD license. Since version 3.2, it is maintained by Brice Copy (CERN).
- The plugin page at Atlassian Plugin Exchange
- Documentation
- Local repository of previous versions (2.3 and 3.0)
Control System of the CHORUS microscope lab
I independently conceived, designed, and developed this suite of control and audit programs as a technical student at CERN in the framework of the CHORUS (WA95) experiment. Implemented in Java/Swing on the basis of a pre-existent Monitor application, this program suite is highly configurable and provides an easy-to-use, user-friendly graphical interface. It proved to be very reliable, and has been used until the end of the experiment. I also took care to write the full documentation for both the user and the administrator.
The CHORUS experiment was designed to search for neutrino
oscillations in the muon-neutrino to tau-neutrino channel. The experiment
is a combination of high precision tracking detectors, calorimetry and a
large emulsion target. The analysis of the events in the nuclear emulsion
requires high speed readout of CCD cameras, high precision mechanics and
state-of-art optical systems. Three automatic microscopes are operated concurrently, and the data
acquisition and process control are performed for each of these
microscopes on separate PCs, with the help of two commercial DSPs. The
results of the measurements are stored in an object-oriented database
over a network. The measurements are performed fully automatically and 24
hours per day.
This suite of control programs are run on a fourth PC and permits effective
remote control of the lab. It is composed of three standalone programs:
the Control Panel, the Alarm Checker and the Dispatcher Console.
Through a messaging system on the network, communications are
exchanged between the production PCs and the control PC.
For each microscope an instance of the Control Panel, the control program, which contains a graphical user interface and a message handler, is started. This application allows the human operator to interact with the measurement process through a finite state machine. The setup conditions and measurement dependencies are preset and stored in configuration files. The graphical interface then builds a large part of the widgets dynamically at runtime by parsing the config files.
Another application, the Alarm Checker module, controls the messages issued by the production PCs and checks if the operator must be alerted. An alarm-configuration file determines if the alert is just visual for operators locally available, or whether a message must be sent to a remote operator via email or SMS message over the GSM system. Alarms are also stored for future reference.
A third module, the Dispatcher Console, allows the user to filter and
monitor the messages exchanged between the different components.
- User manual (in gzipped PS and PDF format)
- Screenshot #1: the Control Panel is started
- Screenshot #2: a setup interface of the Control Panel
- Screenshot #3: the joystick control for the Control Panel
- Screenshot #4: configuring the Control Panel
- Screenshot #5: the Alarm Checker has issued two alerts
- Screenshot #6: defining the actions the Alarm Checker must take
- Screenshot #7: the Dispatcher Console is sniffing messages

zkp
Implementation of the Feige-Fiat-Shamir zero-knowledge proof of identity protocol. It is written in C language and uses the GMP lib (GNU Multiple Precision Arithmetic library) to compute 512-bit prime numbers.Released under GPL license.
You can also have a look on my smaller projects which include programming exercices, university assignments, and other stuff.