Sayed's Blog

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...
© 2023