Software Engineering

Posts on software engineering

The Essential Protobuf Guide for Python

The Essential Protobuf Guide for Python

Are you already making use of Protobuf for serializing your data? If you aren't, read this post to find out what you are missing out on!

0
Protocol buffers (Protobuf) are a language-agnostic data serialization format developed by Google. Protobuf is great for the following reasons: Low data volume: Protobuf makes use of a binary format, which is more compact than other formats such as JSON. Persistence: Protobuf serialization is backward-compatible. This means that you can always restore previous data, even if the interfaces have changed in the meantime. Design by contract: Protobuf requires the specification of messages using explicit identifiers and types.
Rewriting History with Git

Rewriting History with Git

Commits do not always turn out as you'd like them. However, using interactive rebases, you can craft beautiful commits by modifying your commit history.

0

Let’s say you are currently adding new arguments to an installation script for your software. After some work, your commit history may look different than you would like.

Two Environment Variables for More Robust R Code

Two Environment Variables for More Robust R Code

The good, the bad, and the ugly of R's typing system and how environment variables can remedy the situation.

1

I was recently alerted because my Bioconductor package openPrimeR was failing the automated package tests. The reason for this is that the Bioconductor team has decided to set a new environment variable when testing the packages.

The SOLID Principles: a Guide for Object-Oriented Design

The SOLID Principles: a Guide for Object-Oriented Design

0
For designing object-oriented software, five principles have emerged over the years. These principles are summarized by the acronym SOLID, which stands for: S: The single-responsibility principle O: The open-closed principle L: The Liskov substitution principle I: The interface segregation principle D The dependency inversion principle In this post, I aim to give a succinct summary of the principles together with practical examples on how to apply them.