# 005 Internal - 2 intro - 15: Richard: Interview with Sarah Gibson - About your background - What is Research Software Engineering? When and why did the term come about? - [name=Sarah] Terms origins: https://www.software.ac.uk/research-software-engineers - Why do we have people with the title of Research Software Engineer? What do you do? - How does benefit researchers and science? - Example (brought up by Sarah): Non-reproducible code for C19 decision-making. - We want to start RSE as a service (RSE groups) at our universities. Any advice? - Radovan would like to ask - Binder - briefly what it is - what are the challenges running this service? how can the community help the binder team/project? - what do you know now, that you wish someone had told you when you first started? ... - If there was one thing you would like all researchers (who write code/scripts or perform computations) use or do, what would it be? (tool, policy, practice) - What would be the second thing/tool/convention? - 10: Snakemake in the board-games-network project - Why make is hard to use: https://www.gnu.org/software/make/manual/html_node/Quick-Reference.html - First Impressions on Snakemake - Syntax has more power than make - Ability to interface with Python is nice - Annoyances - `--cores` needed, even in snakemake --delete-all-outputs - Seems to break some standard unix abstractions, e.g. mtimes. - removing files for rules that break - - Demonstration of Snakefile - When would I recommend someone use this? - If you actually need to automate a workflow, not replace file management - - 5 Q&A === Halftime === - 10 Radovan: Organization of experimental results when code evolves over time - Eric Bach - https://github.com/ResearchSoftwareHour/rsh-notes/issues/27 - encode version information in path structure - encore version info in the output - snakemake and friends - https://dvc.org/ - disclaimer that i haven't used it yet, only read - tutorial - configuration of storage - interesting looking features - git-annex - git LFS - discussion - 5-10 auto-formatting C++ code (question came up on Twitter) - question came from twitter: Lukas Wirz - clang-format - show how it works - nice to commit it to the repo - how to take it into use? from manually formatted project to autoformatted - automation inside editor or hook or pipeline/action - what are the pitfalls? - working with colleagues who don't like it - possible to apply only one rule in clang-format? - opt out instead of opt in? - 3 min: richard's venv script - Show it - How should I distribute this? gist or own repo or dotfiles repo? What makes it most findable and reusable? - Next time: how do we track our own config files? - 3 Anything interesting you learned lately? - Richard: always use `type -a` instead of `which`. - Radovan: - fd, ripgrep, exa, bat - https://github.com/google/jax (I haven't tried it out but this is the thing I would like to try out if I had some time) - conclusion - Give us a "stumper" question - Epilogue discussion ## Ideas - 10 What's a `#!` ? - Turning any script to an executable - #!python - #!/usr/bin/env python - #!make -f - #! - Next time: how to make a python scirpt suitable for this - 5 minutes Radovan - probably shows Cicero unless I get an inspiration - blub paradox