Scientific Software Development
Knowing the difference between great features and useless features is the difference between a highly successful product and a failed…
Read more...Software Entropy
Software is written iteratively. It doesn't matter if you follow agile, waterfall, or any other methodology. You can only write one function…
Read more...Thoughts On Code Duplication
One of the first thing programmers are taught is that code duplication is bad. There's good reason for this advice, but at some point it's…
Read more...Minerva Architecture
In my previous articles I introduced my programming language and demonstrated how I added a feature to it. In this article I want to…
Read more...Adding Generics To My Programming Language
Introduction In a previous article, I introduced the programming language I was working on. One of the features I intend to work on is…
Read more...Introducing Minerva
Introduction For the past few months I have been working on a new language I'm calling Minerva. It's still in the early stages, but I think…
Read more...Thoughts on types
Introduction I've used multiple programming languages, each with their own ideas of how types should be handled. Each of these approaches…
Read more...Separating Axis Theorem Collision Detection
Introduction In a game you often have to check if two things are colliding. Maybe the player enters a zone that triggers a cutscene. Or…
Read more...Scientific Debugging
The development of my debugging technique looks a lot like the development of the scientific method. Today we know that the Sun is the…
Read more...Game Randomness And Bags
Randomness is important to get right in games. Not enough and a game becomes too predictable. Getting a good score becomes a game of memory…
Read more...Announcing Draw Lang
I'm officially releasing, and open sourcing, Draw: a programming language and environment for graphics. Table of contents Motivation How it…
Read more...Brooklyn 99 Brain Teaser
In the show Brooklyn 99, Captain Holt poses a brain teaser to his detectives: I have misremembered this teaser twice. The first time I…
Read more...Archimedes and logarithmic spirals
In his book "Climbing Mount Improbable", Richard Dawkins describes a museum containing every animal that has ever existed and every animal…
Read more...Adding Next And Previous Links in a Gatsby Blog
My blog mostly follows the intermediate Gatsby tutorials. This was my "gatsby-node" before adding previous and next articles. Foreach takes…
Read more...Adding comments to a Gatsby blog using Commento
At the time of writing this post, I am using Gatsby to power my blog/site. Gatsby is a static site generator that uses React. Using it…
Read more...Conway's Game Of Life
Cellular Automata A cellular automaton is a model that is made up of a grid of cells, each cell has a specific state. The grid is configured…
Read more...Making A Simple Game
A common approach to solving big problems is splitting them into smaller problems. In this post I intend to show how a game can be split…
Read more...Biomorphs
In a previous post I recreate Dawkin's Weasel Program. In this post we will recreate a more visual demonstration of evolution - biomorphs. A…
Read more...Weasel Program
One big misconception of evolution by natural selection is the idea that it operates by random chance. People often look at the number of…
Read more...