An Elegant Method for Solving the Rubik's Cube

2022, Jun 8

I present a new method based on the idea of reducing the cube to states which can be solved with increasingly limited sets of turns. This method has the interesting property of ending with intuitive blockbuilding.

read more

Solving the Rubik's Cube Blindfolded

2018, Feb 2

All that’s necessary for solving the cube blindfolded is a solid understanding of the basic properties of the cube and some practice. This article provides an in-depth explanation of one common strategy for solving the cube blindfolded. It doesn’t assume any knowledge of cube theory, but the reader will find some undergraduate math (e.g. basic group theory) useful.

read more

Pure X11 Logic in Haskell

2016, Jul 22

X11 programming in Haskell has traditionally been done using the X11 package. Many of these bindings were written by hand and, due to their reliance on FFI, are susceptible to some threading issues. xhb, a newer package, provides low-level bindings to X11 based on the same XML as xcb. I present a new set of libraries which serve as layers of abstraction over the low-level xhb bindings. These libraries encapsulate interaction with the X server in a monad transformer, enabling the expression of pure X logic.

read more