Surprisingly, databases can be used to do graph algorithms. Using Postgres, this post pushes SQL to its Turing Complete limits by using a powerful device called a Recursive CTE to traverse complicated foreign key relationships as if they were directed graphs. It starts out simple and builds up to a query that will topologically sort any acyclic graph.

Frequently, logging that an event has taken place is just as important as the event being triggered in the first place. Here's how to use two-phase logging in order to avoid any important gaps in your e-commerce code.

Good typography is essential to great user experiences, but type can be tricky to get right on screens. In the first part of this series I look at the constraints imposed by screens, and examine what their limitations mean for the UX of reading.