Tools
It is pretty late mention this, but it may help understanding how my workflow goes and how each tool interact with each other. A tool should be used to help the workflow, but also reduce the time it takes to do one or more tasks.
LaTeX is subjectively one of the best markup languages to create documents, slides, and whatnot. It takes time to learn it, but once you have used a template and get hang on references, figures, bibliography, etc, you will find it really powerful and efficient. For instance, I can throw all my references into a bib-file and let my tex-file interpret it by only taking the references I’m using. On top of that, it will put the reference list wherever you want, and link the citations from the text automatically. The same goes for sections and figures, where you can put a label on them and reference them from other parts of the text. And finally, you can also make slides, which can either be static, “interactive” or include comments for each slide. If you also want to have one for viewing and one to hand out, this is also possible. There is basically no limitation on what you can do with it, at least practically.
MATLAB is the second tool, and it is a proprietary IDE with its own scripting language. It is mostly used by mathematicians that does lots of matrix calculations and plot/graph rendering. Due to the tight integration of matrices into the language itself, it have been optimized to run in parallel for most workloads, making it fairly efficient on larger data sets. As it is proprietary, it is not that well known, and is mostly used by students, but it works for academics fairly well. Most of what you can do in MATLAB you can do in Python with a library, but there is more tinkering in Python.
Last tool is make
. It is common known for their Makefile
. It keeps track on file changes and updates targeted files whenever related files are out of date. It can be used for any program that has some sort of workflow where a set of source files generates a set of target files, most commonly for build automation. For my project I use it for the compilation of the experiment, the generation of plot figures with MATLAB, and together with latexmk
to create the pdf for the paper.
Not sure how many that reads this, but if it ever comes up as a question, I use C++20 for my experiment.