Programming

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… before taking a hard turn into the private sector to follow my PhD advisor.

Since then, I’ve worked in the computer security space at a couple of different companies. Some don’t exist any more, some you’ve probably heard of. I still program for fun too, and not just in security.

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


Recent posts (Page 11 of 74)

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?

read more...

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.

read more...

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 ..#.###.

read more...

AoC 2023 Day 8: Mazinator

Source: Day 8: Haunted Wasteland

Full solution for today (spoilers!)

Part 1

Given a (repeated) sequence of moves (L for left and R for right) and a directed graph where each node has two neighbors (left and right), count how many total steps it takes to get from the node AAA to the node ZZZ. The sequence of moves can (and will) need to repeat.

read more...


All posts