The Road to Haskell is Paved with Good Intentions

I’m putting together a rudimentary parser for a hobby project, and ran into some knock-on effects resulting from what I had initially considered to be internal implementation details. The parser produces a abstract syntax tree, which is to be used for algebraic manipulations. To make these easy to express, I want to support pattern-matching in the AST. Read more

Tags: Mathematics

Chai Tea

Spice Mixture

Read more

Tags: Recipes

Stuffed-Crust Deep Dish Pizza

Crust

Read more

Tags: Recipes

Hard Drive Upgrade

I’ve been meaning to update my computer’s hard drive for a while. Dual-booting with only 500 GB total doesn’t leave much space to spare, both between a few new video games and the ever-present Windows Updates. Though my daily driver is Linux Mint, the flexibility of dual booting has been useful in the past. Since I’d rather keep the dual boot, that means updating to new hardware. Read more

Tags: Linux

Banket

  • 315 g flour (2 cups)
  • 1 cup cold butter
  • 0.5 to 1.0 cup cold water
Read more

Tags: Recipes

Midgard, JavaScript Cleanup

I’ve been focusing mostly on the C++ side of the program, using the JavaScript entirely for rendering. Read more

Tags: C++ , Midgard

Midgard, First Creatures

Now that there is a rudimentary world, time to design some creatures to inhabit it. For the first implementation, each creature will have a simple physical description, consisting only of its location and velocity. Each creature will have a set number of actions that can be performed, and will choose which action to take for each game step. Read more

Tags: C++ , Midgard

Midgard, Grass Growth, Unit Tests

Now that I can display the growing grass, something a little less exciting than watching grass grow: taking a step back and adding unit tests. As much as I like the data structure for storing the growth of the grass field, it is difficult to reason about. Therefore, unit tests. Read more

Tags: C++ , Midgard

Midgard, Grass Display

Now that the grass can grow on the backend, it needs to be displayed on the browser-based front-end. This should be fairly straightforward, as the implementation was designed with ease of display in mind. Read more

Tags: C++ , Midgard

Midgard, Growing Grass, Part 2

In the previous post, I attempted to find an efficient algorithm to have grass grow along a field of bits, where the bitfield is defined recursively. I think I have managed to figure it out. Read more

Tags: C++ , Midgard