TJ Maynes

SQL Murder Mystery

3 minute read Published:

In this blog post I'll be talking briefly about a fun game I found via Hackernews called SQL Murder Mystery.
Normally when learning a new programming language, library, or concept, I’ll fire up an editor and write a set of tests to drive out the knowledge that I am seeking. For a while now, I’ve wanted to learn more SQL but haven’t made time to do so. Luckily this game, called SQL Murder Mystery, showed up on Hackernews one cold winter morning. SQL Murder Mystery utilizes your SQL querying abilities to solve a “whodunnit” murder mystery with only a single clue to start from.

My Monad Analogy

3 minute read Published:

In this blog post we'll be discussing an analogy I use to depict what a monad is and an example of the Option monad in a real world programming scenario.
I’ve been using the Either and Option monads on various projects (in different runtimes) over the last couple of years. I like utilizing these monads as a way of handle errors from external systems. However, when it comes time to introducing someone new to these monads, I’m unable to describe what makes a monad a monad. However, after doing some research I found an analogy that encapsulates what I believe to be the spirit of what makes a monad a monad.

Drawing Shapes with NAO

12 minute read Published:

In this blog post we'll discusses how to 'teach' the NAO robot to draw shapes that it 'sees' using NAOqi (NAO SDK), Python and OpenCV.
This blog post discusses how to “teach” the NAO robot to draw shapes that it “sees” using NAOqi, Python and OpenCV. By the end of this blog post, you should have a better understanding of Canny Edge Detection and using Pixel Position interpolation to map a virual space to Forward Kinematics. Background I just graduated with a Computer Science degree and wanted to share my Robotics class project that I’m proud of working on.