Adding C++ auto-completion to Vim

I recently started using Vim as my main editor for programming. After the initial learning curve, I really started enjoying it, however, there’s some things I really miss from more traditional IDEs. Two of these are auto-completion and semantic “tips”. Auto-completion allows the developer to type only part of a function or attribute name, and

C++: the Named Parameter Idiom

Some times you will have a large C++ class with many parameters that need initializing. That can lead to some ugly constructor calls: auto popsim = PopulationSim(1000, 100000, 1000, 1000, 1500, 0.17, 0.05, 32, 3, 1, 7, 1); This makes the code very hard to maintain and debug, as there is no easy way to

Lecture summary: Programming Techniques for Scientific Simulations

During the autumn semester of 2017 I took the course “Programming Techniques for Scientific Simulations” as part of my BSc course in Computational Science and engineering at ETH Z├╝rich. This is a summary of the course’s contents I wrote and used during the actual exam. Some things are missing, as it was an open-book exam

Setting up passwordless SSH access on Linux

SSH stands for Secure Shell Host. It effectively allows you to access the terminal (shell) on a remote machine – securely. There are two ways to validate your identity when attempting to access a server via SSH: password, or SSH key pair. Password authentication is the default method: you run a command similar to ssh

Accelerating build processes with multithreading

Building (compiling) large projects can take a long time. Build systems like Make and SCons do a really good job of reusing resources that don’t need recompiling because we didn’t change anything, but compiling a large project for the first time can still take a while. One solution to this issue, especially with multicore and