I'm a huge fan of themed entertainment, especially the Disney parks. Theme park rides are some of the most interesting engineering marvels out there and the best part is - you can visit them! For me, the enjoyment of a trip to Walt Disney World comes as much from appreciating the technology and systems used to create rides as it does from the theming and story. A core part of many theme park rides are the animatronic characters that bring the experiences to life. I was recently gifted a Meccano Meccasaur - a toy with some limited "smart" functionality. I wanted to see how much I could augment this functionality if I added a new brain and some more points of articulation.

Continue reading...

I recently replayed the excellent Portal 2 by Valve. One of my favorite things in the game are the automatic robotic sentry turrets. The contrast of their cutesy voices with the fact that they fire machine guns at you on sight makes them a core part of the gallows humor present in the Portal series of games. As I played through the game, I realized that a lot of the voice cues trigger on events that are similar to another robot closer to home - the iRobot Roomba robotic vacuum cleaner. I decided I had to find a way to combine these two things!

Continue reading...

I ran into an interesting Windows quirk recently. I set up a spare Windows 7 box as a GitLab-CI Runner to see if it was any better than an existing Jenkins-based pipeline. The runner is pretty easy to set up, a few commands and I had it set up as a service running under Windows built in Local System account - the recommended configuration.

I configured the runner to clone a master repo (set up as a public repo in GitLab) and run some build scripts. One of those scripts checks out a submodule which comes from another GitLab repo, but this one's permissions are set to internal. This caused the script to barf because internal repos in GitLab require authentication.

Continue reading...

SSL, or Secure Sockets Layer, is one of the technologies essential to security on the web. It allows a web browser and server to form an encrypted connection. Encryption is an essential part of web security. If you're browsing the web in a coffee shop or airport without encryption, it's trivial for anyone else to see exactly what you're looking at.

Continue reading...

I've been operating my site on various flavors of shared web hosting for years. Shared hosting has a lot of benefits: it's cheap, easy to set up, and hides almost all of the nuts and bolts. I finally decided to take the plunge and remove the training wheels by hosting my site on AWS.

Continue reading...