Software I've written
Here are some codes I've written for research (or a bit aside). All my public codes are on https://github.com/pierre-haessig.
- StoDynProg: a Python tool to help solving stochastic optimal control problems, also called dynamic optimization. More details in the associated EuroSciPy 2013 article (presentation slides).
- PyCOZIR: a Python interface to GSS CozIR™ CO2 sensors
- Conference proceedings generator (static HTML website), specifically adapted to the data exported by SciencesConf. Used for SGE 2014 and 2016. Example output.
- Visual Talk timer: a simple but colorful clock-like design to keep track of the time during a oral presentation (tested during my PhD defense!)
Software pieces I fancy
In my research work as well as for personal interests, I use several software pieces and programming languages that "make my life better". Here is a partial list.
Python has become my main programming language since 2008. I am a long time user of the numpy & scipy modules, and also for some year pandas, as I do a lot of time series analysis.
Programming with Python is a pleasure because of the interactive environment IPython. Also, since its first release in 2011, I've become (progressively) more addict of the (IPython, now Jupyter) Notebook. Great work from Fernando Perez and the Jupyter team!
For data visualization, I'm extremely grateful to Matplotlib's great power and flexibility to generate my time domain plots, histograms and many more! For displaying and browsing interactively my long data records (from ten thousands up to a few millions samples), I know no better tool.
Setting-up Python: Compared to Matlab, setting-up a Python environment for scientific computing may look a bit like entering a jungle. I've assembled a page Python setup for scientific computing to help newcomers travel safer.
Python training: I taught a Python training for science teachers at ENS Rennes in 2013. The training material (Jupyter Notebooks, in French) is available on my Python training page "Programmation & Calcul Numérique avec Python". I also made a few shorter Python seminars (e.g. one on signal control).
I had my first major encounter with Julia thanks to Steven G. Johnson excellent presentation “Crossing Language Barriers with Julia, Scipy, and IPython” (video) at EuroSciPy 2014. Still, it's only in 2017, as I'm getting more and more attracted by Modeling Languages for Optimization that I did more serious experiments with Julia, in particular with JuMP.
I had the chance to discover R environment during my master internship (2011). It ships with loads of fancy functionalities for statistics. Data modeling (linear regression, ARMA time series, ...) is a joy! The default R commandline is somewhat austere, but RStudio changed that for the better (shortly after my internship...).
Too bad some these statistical tools are not available in Python (although statsmodels is getting better and better with time), but there is a bridge module rpy2. Only used it a few times, but can always be useful.
Like every "serious electrical engineer", I've used Matlab a lot. There certainly are good things in it and I don't know any serious equivalent of Simulink. But I'm now definitely on Python side, and I don't need Simulink these days.
Python has a sounder grammar and is nicely expressive. In two words : more fun and productivity with Python.
Still, for Matlab-addict colleagues and students working on optimization (e.g. energy management), I've heavily recommended the use of YALMIP toolbox (and devoted a Efficient Tools Seminar to it).