---
# System prepended metadata

title: 005 Internal

---

# 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