Monthly Archives: February 2009

Solver for KenKen puzzles (Representation)

One of the biggest differences between KenKen puzzles and Sudoku puzzles is that the former are harder to represent compactly. Sudoku puzzles can be represented as a simple string of numbers, but the 2-dimensional cages of KenKen puzzles seem to … Continue reading

Posted in Projects, Python | Comments Off

Solver for KenKen puzzles (Constraints)

Today I’m going to show the Constraint implementation for a KenKen solver I’m building. This code will cover all the rules of the KenKen game, and will shortly be used in a constraint propogation and search algorithm. It contains several … Continue reading

Posted in Projects, Python | Comments Off

Solver for KenKen puzzles (Constraint design)

Following up on yesterday’s post, I’d like to get started on the construction of a solver for KenKen puzzles, using the same basic constraint-propogation-and-search approach that Norvig used in his Sudoku solver. I’m going to begin with a discussion of … Continue reading

Posted in Projects, Python | Comments Off

KenKen vs. Sudoku

According to Slate, there’s a push afoot to popularize a Sudoku-like game named KenKen. Since it’s already been demonstrated that Sudoku falls easily to a little programming, I thought it would be interesting to (informally) compare and contrast the two … Continue reading

Posted in Projects | Comments Off

Details Matter

I was looking at Norvig’s Sudoku solver the other day, and suddenly understood a design choice that had previously struck me as bizarre. I think it’s a neat example of how small, seemingly arbitrary things can make your programming either … Continue reading

Posted in Python | Comments Off


I am not a good skier. I can look ok on the majority of intermediate slopes, and make my way down diamonds. I’ve never been on a double-diamond in my life. I have a lot to learn. However, I have … Continue reading

Posted in Jack Handy | Comments Off

Antisocial Product Idea

Why, oh why, doesn’t anyone make Bear Treats? (These don’t count.) The box copy practically writes itself: Three flavors: Salmon, deer, and refrigerator medley Delicious, tasty aroma (travels hundreds of yards) Loved by both cubs and adults Irresistible – Bears … Continue reading

Posted in Jack Handy | Comments Off

Usage of Redundant 8086 Opcodes

This is a follow-up to last week’s post, which discussed the fact that fully 30% of the 8086 processor’s 1-byte opcode space is given over to redundant opcodes (i.e. short forms of longer, more general opcodes). Today, I want to … Continue reading

Posted in Reverse Engineering | Comments Off

Mac OSX Tip

A useful little tidbit from a friend of a friend: Hiding a CLI-only user account in Mac OS X 10.5 Leopard

Posted in UNIX | Comments Off

Python Puzzle

Pedram Amini has got a pretty neat post up on reverse engineering the protocol for a USB device. If you haven’t seen it yet (it was linked from Slashdot) it’s worth reading. However, he includes some Python code which features … Continue reading

Posted in Python, Reverse Engineering | Comments Off