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!


All posts

Recent posts

The House on the Hill - Day 5

Not much in the way of screenshots today, but I did manage to add quite a lot of framework for content (which I’m going to spend tomorrow fleshing out). Now, the player has four stats (Might, Vigor, Intellect, and Sanity; I don’t think those were the original stats but I don’t have a copy at the moment to check). Each of them starts at a random value from 2 to 5. If any reaches 0, game over.

Also, to actually make use of said stats, there are two new kinds of definitions that you can stick in the data folder to automatically be used by the game: events and items.

read more...


The House on the Hill - Day 3

Today I’ve made it to where I optimally would have been back on Monday, had I actually planned what I was going to do (and not changed ideas and frameworks literally as I was starting to work).

read more...


The House on the Hill – Day 2

The problem with starting with a (far) less common language is that you have to develop your own tools. That’s what I ended up spending most of the day doing in the case of Racket, although I think it ended up being a rather worthwhile endeavor.

read more...


The House on the Hill - Day 1

This week marks 2013’s 7-day Roguelike (7DRL) challenge, a contest where entrants attempt to write an entire Roguelike in 7 days. Since I haven’t started my #1GAM a month for March (and since my successfully completed January game was a Roguelike as well), it seems like the perfect opportunity to kill two birds with one stone.

read more...


Knight moves

How many ways are there for a knight in chess from the top left to the bottom right of a chess board in exactly n=6 moves?

read more...


February #1GAM post-mortem

Is it possible to write a post-mortem if you really only got about four hours into a game?

Well, let’s hope so. That’s all the further I’ve made it with this month’s #1GAM a month–and it’s pretty much entirely my fault. The whole idea was to start earlier in the month and spread out the work out a bit… That didn’t happen.

read more...


Making Floupian Change

On the island of Floup in the South Pacific ((not a real place)), one might find coins worth 1, 3, 7, 31, or 153 floupia each. In addition, they have a most curious custom. Whenever one makes a payment of any sort, it is considered rude not to minimize the total number of coins involved in the exchange. For example, if someone were to purchase a nice refreshing beverage for 17 floupia ((the floupia is currently performing rather well against the dollar)), one might pay with three 7f coins and receive a 1f and a 3f coin in exchange for a total of 5 coins. But that would be terrible, as a more efficient solutions exists: pay a single 31f coin and receive two 7f coins as change.

read more...