Statistically Insignificant

Languages, Statistics and other things

24 October 2020

I was recently reading more about the lambda_runtime crate and came across this issue where it is mentioned that the #[lambda] procedural macro can be misleading and cause problems if used naively.

In this post we will implement our own simple custom runtime for AWS Lambda in Rust, and understand the reasons behind this issue.

The code used in this blog post is available on Github in my micro_lambda repository.

11 October 2020

Doing projects is often the best way to get more programming experience and learn about new concepts and problem domains. However, a common issue is finding feasible projects of a reasonable scope that can produce something useful in a few weekends.

In this post I will list some classic project ideas for beginner and intermediate programmers (most of which should be achievable in 2-3 weekends), along with many other project ideas I’ve had but have never had time to implement (and a few which I did).

There are many long lists of project ideas available on Github, like build-your-own-x and 100 Projects of Code but these often lack a real description and justification of the projects. In this article I will go more in-depth with the different project ideas.

Within each section the projects are ordered in ascending difficulty / time investment.

24 September 2020

The Rust core team recently released a call for blog posts as part of the 2021 roadmap for Rust. In this post I will detail my own experience with Rust, and areas I’d like to see improved during 2021.

20 September 2020

I recently had an ongoing issue with the deleted CacheDelete daemon using huge amounts of CPU time almost constantly. This post covers how I fixed it and a few tips for OS X recovery and performance improvements.

12 September 2020

This post covers why I believe local and national governments should adopt and invest in Free and Open Source Software (FOSS).

This has been in the news recently due to the city of Munich renewing it’s LiMux Linux distribution thanks to an agreement between the local SDP and Green politicians, and the efforts of the Public Money, Public Code campaign.

9 September 2020

ALMA (available as alma-git on the AUR) is a tool for creating persistent LiveUSB installations of Arch Linux. With one command you can generate a customised installation on a USB stick (or any other removable media) including the packages and config files you want, with full persistence.

This is very useful for disk recovery and system maintenance, and a great tool for all Linux users. Especially with the customisation options provided by collections of preset files (such as arch-i3-usb).

5 September 2020

This post is a retrospective of my first “useful” Rust project. vopono is a Linux program to launch applications in temporary network namespaces (managed by vopono), in order to run specific applications through VPN connections, without affecting the rest of your system.

vopono is available on Github (and in the AUR on Arch Linux) and licensed under the GPLv3 license (see reasoning here).

We’ll consider the motivation and background to creating vopono, the upsides and downsides of writing it in Rust (and existing issues), and some points about starting new side projects in general. I hope this helps new Rust programmers starting their own first projects, or for other programmers to consider using Rust.

29 August 2020

In this post we will set up a simple, serverless data ingestion pipeline using Rust, AWS Lambda and AWS SES with Workmail.

We will handle multiple types of AWS events with one Lambda function, parse received emails with the mailparse crate, and send email with SES and the lettre crate.

The complete code for this example is available on GitHub here.

25 July 2020

In the post we will investigate the main concepts of Data-oriented Design using Rust.

The source code for this example is available on Github.

6 May 2020

In this post we will explore a brief example of asynchronous programming in Rust with the Tokio runtime, demonstrating different execution scenarios. This post is aimed at beginners to asynchronous programming.

The source code for this example is available on Github. A branch using the async-std runtime is also available (contributed by @BartMassey).