Tutorials
Communication
Accessibility
Computational science
Software engineering
C/C++/CPP
Python
Julia
Git
Linux
Licensing
Tutorials
Communication
How to write good LRZ Service Requests
: a comprehensive guide on how to write your request to get quick IT support from
LRZ
which is also applicable to other computing centers.
Just use Matrix
: A quick intro to
Matrix communication protocol
and relevant tools for secure, decentralised communication.
What is Mastodon?
A quick guide to open-source and federated social networks (MPG members can use
MPDL’s Mastodon instance
)
The Story of Mattermost
: A quick intro to open-source collaboration platform (MPG members can use
MPDL’s Minerva Messenger
which is the enterprise version of Mattermost hosted by MPDL)
Accessibility
Five Myths About Digital Accessibility
: Crystal Preston-Watson
Hyperlegible: an approach to accessible type design
: Linus Boman
Computational science
Six textbook mistakes in computational physics
by Alexandros Gezerlis, Martin Williams
Producing wrong data without doing anything obviously wrong!
by Todd Mytkowicz, et al.
What Every Computer Scientist Should Know About Floating-Point Arithmetic
by David Goldberg
The power of 10: rules for developing safety-critical code
by G.J. Holzmann: Scientific codes must be peer-reviewed. Follow these rules to make your code verifiable.
The Art of HPC
by Victor Eijkhout: 4-vols. free textbook covering all topics related to high-performance scientific computing.
Software engineering
Using Linters to improve and maintain code quality
Open Source Security Foundation FLOSS Best Practices
The Problem with Research Software Engineering
: James Schloss
Maintainability and Refactoring Impact of Higher-Level Design Features
: Titus Winters - CppCon 2019
What Programmers Should Know About Memory Allocation
: S. Al Bahra, H. Sowa, P. Khuong - CppCon 2019
Clean Coders Hate What Happens to Your Code When You Use These Enterprise Programming Tricks
: Kevlin Henney
Whitespace ≤ Comments ≪ Code
: Walter E. Brown - CppCon 2017
Simplicity: Not Just For Beginners
: Kate Gregory - CppCon 2018
Naming is Hard: Let’s Do Better
: Kate Gregory - CppCon 2019
Design Patterns: Facts and Misconceptions
: Klaus Iglberger - CppCon 2021
Design Patterns
: Mike Shah - CppCon 2020
Zen and the Art of Code Lifecycle Maintenance
: Phil Nash - CppCon 2021
Learning to love release notes
: Anne Edwards
C/C++/CPP
C++20: C++ at 40
: Bjarne Stroustrup - CppCon 2019
Nobody Can Program Correctly - Lessons From 20 Years of Debugging C++ Code
: Sebastian Theophil - CppCon 2022
The Preprocessor: Everything You Need to Know and More!
: Brian Ruth - CppCon 2021
Compiling and Linking
: Ben Saks - CppCon 2021
Lessons Learned from Packaging 10,000+ C++ Projects
: Bret Brown, Daniel Ruoso - CppCon 2021
Counting Nanoseconds Microbenchmarking C++ Code
: David Gross - Meeting C++ 2019
Test Driven C++
: Phil Nash - CppCon 2020
Debugging in Cpp
: Greg Law - CppCon 2023
Python
Python Packaging User Guide
Demystifying the Python packaging ecosystem
Julia
How to benchmark like a pro in Julia
: Tom Kwong
Git
Git Overview
: Max Wilson
Inside the Hidden Git Folder
: Max Wilson
Git Version Control _final_new_final.new
: Max Wilson
Teamwork & Git
: Max Wilson
Oh My Git!
: An open source game about learning Git!
Oh Shit, Git!?!
Flight rules for git
Pro Git
Patterns for Managing Source Code Branches
Linux
Linux Hardening Guide
Licensing
How to Choose a License for Your Own Work
Choose a Creative Commons license