I’ve recently been working on a personal project that uses a Postgres relational database for persistence.
I’m running the project on AWS and using EC2 instead of RDS to keep costs down.
I need shell access to the instance for inspecting configuration, but it’s attached to a private subnet and has no public IP.
This is the third post in a series I’ve been writing about building a chess engine. The last post was about move generation, and in this post I’m going to write about how the engine decides who’s winning.
In my last post I wrote about modelling game state, the first milestone of a project I’ve been working on to build a chess engine in Rust. In this post I’m going to write an overview of the second milestone: move generation.
I’ve been saying for years that when I get a bit of spare time I’d like to build a chess AI, or chess engine as it is more commonly known. So a few months ago I set out to do just that and this post is an overview of the project’s first major milestone: modelling game state.
For the last few years I’ve been taking part in the Advent of Code programming contest.
It’s been a great way to improve my problem-solving skills and can really aid in getting to grips with new languages.
In 2022 I chose to solve the puzzles with Python, and having enjoyed using the language so much I decided to write about some of the features that I think make it great for this type of programming.
When using Terraform to manage resources across deployment stages (e.g. staging, prod), it can be useful to have the name of the stage for inclusion in resource naming, such as domain names, S3 bucket names, etc.
I recently stumbled upon an old diagram I drew to document part of our platform at MyBuilder.com,
and this got me thinking it could be useful to share publicly. Let’s see…
In a previous post I wrote about how
JavaScript’s lack of support for value objects caused a problem when using the built-in Set class, and how it could be
solved by using the idea of a Compound Set
instead. In this post I’m going to describe a similar solution I’ve been using for the built-in Map class.
Over the years we’ve seen countless methods for handling redirects in web applications. From the Apache rewrite rule to
AWS ALBs, Lambda@Edge, and even with S3 object metadata. In this post I’m going to share yet another method that we’ve
recently started using at MyBuilder: CloudFront Functions.
As with many programmers wanting to sharpen their problem-solving skills, I’ve recently been tackling Advent of Code,
a digital Advent calendar in which each day presents an increasingly difficult puzzle to solve. Having completed the
2016 calendar, which involvedseveralpathfindingproblems, I’ve become
obsessed with mazes and pathfinding algorithms.
I’ve recently spent more time than I’d like to admit solving programming puzzles, and the queue data structure seems to
be a reoccurring theme. JavaScript doesn’t have a built-in implementation, so I find myself copy/pasting the same few
lines of code everywhere. I’ve decided it’s time to put that snippet somewhere more accessible.
In a previous post I talked about rebuilding some
old C++ projects with WebAssembly and running them in a web browser. One such project was a Sudoku solver, and I want to
share some recent progress in this post.
I recently started looking into compiling and running C++ for the web as a way to give some oldprojects a much-needed makeover. In this post we’ll look at some basic
examples of compiling C++ and running it in a web browser.