If you are going to be in the software business and live with two programmers, I guess you have to participate in the odd CS puzzle game:
Imagine a graph that consists of directional links between nodes identified by small non-negative integers < 2^16. We define a "cycle" in the graph as a nonempty set of links that connect a node to itself.
Imagine an application that allows insertion of links, but prevents insertions that close cycles in the graph.
... Very fun, it's nice to be living with hardcore nerds again.