I presented my thougts on scientific software development during brcon 2020. Full abstract:
Numerical models are used extensively for simulating complex physical systems including fluid flows, astronomical events, weather, and climate. Many researchers struggle to bring their model developments from single-computer, interpreted languages to parallel high-performance computing (HPC) systems. There are initiatives to make interpreted languages such as MATLAB, Python, and Julia feasible for HPC programming. In this talk I argue that the computational overhead is far costlier than any potential development time saved. Instead, doing model development in C and unix tools from the start minimizes porting headaches between platforms, reduces energy use on all systems, and ensures reproducibility of results.
You can check out the slides and audio here:
Alternatively, you can watch slides+audio in this video:
The full conference schedule and presentation recordings are available here.
The presentations were displayed by catpoint(1) which takes text files and shows the content as slides in the terminal. The audio stream was publically broadcast via icecast. Each presenter would stream their mic to the icecast server, for example via ffmpeg(1):
ffmpeg -loglevel debug -f sndio -ac 2 -ar 44100 -i snd/0 \
-codec libmp3lame -f mp3 \
The listeners would point a network audio client to this URL and hear the speaker in real time. For the slides, the viewers connected via ssh(1) to a public guest account, automatically attached to a multiplexed terminal session controlled by the presenter, and watched the presentation in their own terminal with minimal bandwith requirements. Questions were communicated via irc.
The source code for my presentation is available here. The pointtools utility md2point(1) is useful for generating catpoint presentations, as it reads presentations in markdown format, does some light styling, and outputs catpoint-compatible text files.
It doesn't get more minimal, efficient, and perfect than that!