• Bisecting flaky tests with rspec and GitHub Actions

    Ah, those good, old flaky test suites! Sooner or later you’ll encounter one of them. They are test suites that sometimes pass, sometimes fail, depending on certain environmental conditions. A lot has been written about flaky tests and what causes them, but in this post I’d like to discuss a specific type of flaky test –order dependant test failures–, and how to help debug them using GitHub Actions as part of your CI/CD pipelines.

    Read on →

  • OpenSSH as a SOCKS server

    Sometimes we are given access via ssh to nodes that do not have, for policy or technical reasons, access to the internet (i.e. they cannot make outbound connections). Depending on the policies, we may be able to open reverse SSH tunnels, so things are not so bad.

    Recently I discovered that OpenSSH comes with a SOCKS proxy server integrated. This is probably a well known feature of OpenSSH but I thought it was interesting to share how it can be used.

    Read on →

  • Distributed compilation in a cluster

    In software development there is an unavoidable trend in which applications become larger and more complex. For compiled programming languages one of the consequences is that their compilation takes longer.

    Today I want to talk about using distcc to speed C/C++ compilation using different nodes in a scientific cluster.

    Read on →

  • Fun with vectors in the Raspberry Pi 1 - Part 9

    I think we have enough pieces of machinery working already that we can start with the most exciting part of this journey: autovectorisation!

    Read on →

  • Fun with vectors in the Raspberry Pi 1 - Part 8

    In the last installment I mentioned we could start looking at enabling the vectoriser in the compiler. However when I did that I realised some benchmarks were giving weird results. I had made a mistake with copies, so let’s remediate this.

    Read on →