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 1 of 74)

Rescuing Gentoos with a Rust Solver (Part 2)

Rescuing Gentoos with a Rust Solver (Part 2)

And here we have Part 2! It’s not been that long for you, but since the first part took six months for me to actually get around to writing it… well, this is much better!

Things get a bit more complicated this time, with buttons that can open/close doors and even holes in the floor and BOMBS. But what’s really crazy is how we actually get around to solving how to get to new sublevels this time… and how to take penguins back out of them. Things are getting complicated!

Here are all of the commits from part 1 up through part 2.

And here are all of the parts in this series so far:

read more...

Rescuing Gentoos with a Rust Solver (Part 1)

Rescuing Gentoos with a Rust Solver (Part 1)

Months ago now1, I started playing Gentoo Rescue (after seeing the Aliensrock video). At the core, it’s a Sokoban style puzzle game where you have to guide cute little sliding penguins to their color coded nests… but oh man does it start getting more complicated quickly.

On top of that, it has a really interesting nesting level concept–the level select screens are levels themselves. You can go several ’levels’ deep into levels or eventually further back out. And that’s just with how far I’ve gotten so far…

read more...

Syncing Kobo Annotations... again!

Syncing Kobo Annotations... again!

A few months back, I gave a Kobo a try. I’m still really enjoying it. At the time, I was using a script on the Kobo + Dropbox to sync annotations. But it was a little heavy (to send the entire database) and tended to fail silently. Plus, I had to use a second script to take the exported database and actually turn it into Markdown I could easily read and share.

So I took a chance to make that a bit better!

The code for this is available on Github here: https://github.com/jpverkamp/kobo-highlights/

read more...

Genuary 2026: And so it ends

Genuary 2026: And so it ends

I just wanted to make a quick montage of all 31 sketches:

You can combine all of the preview images and then add some nice text with a pair of imagemagick commands:

montage content/programming/2026/genuary/*/gen26.??.png \
  -tile 6x6 \
  -geometry +2+2 \
  -background none \
  gen26-grid.png

mogrify \
  -gravity southeast \
  -pointsize 200 \
  -fill "white" \
  -stroke "black" -strokewidth 2 \
  -annotate +20+20 "Genuary 2026" \
  gen26-grid.png

read more...

Genuary 2026.30: Bug

Genuary 2026.30: Bug

A throwback to what’s probably one of my earliest programming projects (originally in qbasic…): bugs!

It’s very simple: each frame, each bug moves randomly and the draws a dot.

That’s really it.

I’ve updated it a bit with various parameters to tweak. Play with them. See what they do!

read more...

Genuary 2026.27: Lifeform

Genuary 2026.27: Lifeform

So this one really fits better for Genuary 2026.25: Organic Geometry and that one is a lifeform like this one, so… we’ll consider them swapped or something.

Anyways, spawn branching nodes and draw a bunch of squares. Not only an organic looking lifeform but creepy to boot! I do love it without borders and with fade.

Be careful with high child count without either a high segment length or death rate to compensate, it will get slow.

read more...


All posts