The earliest memory I have of ‘programming’ is in the early/mid 90s when my father brought home a computer from work. We could play games on it … so of course I took the spreadsheet program he used (LOTUS 123, did I date myself with that?) and tried to modify it to print out a helpful message for him. It … halfway worked? At least I could undo it so he could get back to work…

After that, I picked up programming for real in QBASIC (I still have a few of those programs lying around), got my own (junky) Linux desktop from my cousin, tried to learn VBasic (without a Windows machine), and eventually made it to high school… In college, I studied computer science and mathematics, mostly programming in Java/.NET, although with a bit of everything in the mix. A few of my oldest programming posts on this blog are from that time.

After that, on to grad school! Originally, I was going to study computational linguistics, but that fell through. Then programming languages (the school’s specialty). And finally I ended up studying censorship and computer security. That’s about where I am today!

But really, I still have a habit of doing a little bit of everything. Whatever seems interesting at the time!

# AoC 2023 Day 19: Assembly Lininator

## Source: Day 19: Aplenty

Full solution for today (spoilers!)

## Part 1

You are given a series of parts with 4 ratings as such:

{x=787,m=2655,a=1222,s=2876}

In addition, you are given a series of rules describing a graph as such:

px{a<2006:qkq,m>2090:A,rfg}

In this example, if you are at the node px, if a < 2006, move to qkq. Otherwise, if m > 2090 move to A. If no other case matches, the last defaults to rfg.

A and R are special cases for accept and reject.

Calculate the sum of sum of all four ratings for all nodes that end at Accept.

# AoC 2023 Day 18: Flood Fillinator

## Source: Day 18: Lavaduct Lagoon

Full solution for today (spoilers!)

## Part 1

Given a sequence of direction + distance that draws a polygon, calculate the area.

# AoC 2023 Day 17: A-Starinator

## Source: Day 17: Clumsy Crucible

Full solution for today (spoilers!)

## Part 1

Given a grid of costs, find the shortest path from top left to bottom right. You may not double back or go straight more than 3 steps in a row.

# AoC 2023 Day 16: Reflectinator

## Source: Day 16: The Floor Will Be Lava

Full solution for today (spoilers!)

## Part 1

You are given a grid of mirrors (|-\/) and empty space (.).

Diagonal mirrors just relect the light.

The horizontal and vertical mirrors are splitters, light hitting them head on (like >|) will split to go both directions. Light hitting edge on will just go through it.

Starting in the top left going East, how many total tiles will a light beam illuminate?

# AoC 2023 Day 15: Hashinator

## Source: Day 15: Lens Library

Full solution for today (spoilers!)

## Part 1

Hash each input (comma separated) with h(v, c) = (v + c) * 17 (modulo 256 / as a byte). Sum these values.

# AoC 2023 Day 14: Spininator

## Source: Day 14: Parabolic Reflector Dish

Full solution for today (spoilers!)

## Part 1

Given a grid of # and O (among empty . points) where O can move, slide each O as far north as it can. Score each based on how far north it is.

# AoC 2023 Day 13: Reflectinator

## Source: Day 13: Point of Incidence

Full solution for today (spoilers!)

## Part 1

You are given a grid of . and #. Find the (single) axis of reflection (between two rows or columns).

# AoC 2023 Day 12: Question Markinator

## Source: Day 12: Hot Springs

Full solution for today (spoilers!)

## Part 1

Given a sequence of #.? as on, off, and unknown and a sequence of group sizes, determine how many possible arrangements there are that match the given groups.

More specifically, if you have ???.## 1,2 you need a single # and a set of two ##, there are three possibilities: #...###, .#..###, and ..#.###.

# AoC 2023 Day 11: Big Banginator

## Source: Day 11: Cosmic Expansion

Full solution for today (spoilers!)

## Part 1

Read a grid of # (stars) and . (empty space). For each completely empty line or row, add another. Calculate the sum of the Manhattan distances between all pairs of stars.

# AoC 2023 Day 10: Pipinator

## Source: Day 10: Pipe Maze

Full solution for today (spoilers!)

## Part 1

You are given as input an ASCII art pipe diagram with straight pipes |-, right angle turns LJ7F, ground ., and a start tile S.

The start tile will be part of a loop of pipes.

Find the distance to the furthest connected pipe segment from S (or half the length of the loop).