Skip to content

Colin Webb

Simple Monte Carlo Simulation in Rust

Monte Carlo simulations are often used model the probability of different outcomes. They work by generating random values, passing them into a model, and then averaging the results.

The simplest Monte Carlo simulation, and a great way to start, is by using the technique to estimate the value of Pi.

Local LLM Development with Ollama

Large Language Models are hot stuff at present. Using them, and integrating them into workflows, is still an open-area of investigation for many people and organisations.

I'm currently using VSCode, the Continue 'open-source autopilot' extension, and Ollama.

Using Github Actions for building Rust Docker Images on ARM

Setting up CI for Rust with Github Actions is pretty easy, but there are a few gotchas.

This post will walk through setting up a basic CI pipeline for a Rust project, cross-compile to ARM, and build a Docker image.

I like to deploy hobby-projects on ARM as it is usually cheaper, and I have a Macbook so there's less cross-compilation to do.

We'll follow a pattern of building Rust, and then copying the binary into a Docker image. There are other patterns, such as building inside Docker using multi-stage builds, but there are unresolved issues with caching. This way is simpler, and works well.

Gravity Batteries At Home?

Gravity batteries are a renewable energy storage mechanism, still being developed for the mainstream. In theory, they are very similar to pumped hydroelectric. In times of low-demand and cheaper electricity, water is pumped up a hill into a reservoir. When electricity demand is high, and price is high, they let the water fall through a generator using the force of gravity.

Gravity batteries are another take on this principle; store energy when it is cheap and plentiful and generate electricity when it is not - through using gravity.

AWS Lambda with Rust

AWS Lambda has supported custom runtimes using Docker images for a long time now. Any language that can run in Docker, can run in AWS Lambda. Therefore, we can write AWS Lambda functions in Rust - a fun, and fast, language.

This quick guide gets you deploying a Rust Lambda using the AWS CLI.

SCD via SQL

Slowly Changing Dimensions (SCD) is a data engineering technique to track changes in a record over time. They're useful when changes are unpredictable, infrequent, and a historical vew of the data is needed.

SQL is ubiquitous in data engineering, and therefore it is the perfect tool to implement SCD with.

Fake Data With Python

Real data is best, but sometimes it's not available - or it's not allowed.

Fake data is useful for testing, and for prototyping. It's also useful for generating data for demos, and for training models. Generating fake data is easy and quick.

Why I'm Writing

Why am I writing?

To practice communication.

Written analysis, documentation, and thought are powerful ways to communicate. Writing forces me to think, and to structure my thoughts. A clear structure enables clear communication.