Local DynamoDB

3 min read

I’m working on a side project that uses DynamoDB. I got tired of waiting for my DynamoDB table changes to complete, so I decided to try…

Controller pattern

4 min read

Triggering actions within a React app, in a way that's not gross.

Git-fu: useful shortcuts

7 min read

Shortcuts and aliases for easy version control.

React architecture

13 min read

General guidelines for not angering coworkers (or your future self).

npm configuration

Setting up `npm` on a new machine.

Playing around with Nix on Arch

Using a Docker container to experiment with idempotent package management.

JSConf Last Call

3 min read

Last hurrah for JSConf US.

Copy a .iso to a USB stick

3 min read

Using `dd` to flash an image to a USB device.

nginx configuration

I use nginx over Apache for a number of reasons. First of all, its config files make a lot more sense to me. Since I work mostly with C…

Blood caffeine concentration: part 2

5 min read

In a previous post , I mentioned that I’d integrate the formula so that coffee consumption could be considered an event of finite duration…

Sharks with laser beams

4 min read

I’ve progressed a little bit on my calibration. My idea is to combine OpenCV with the Raspberry Pi camera to optically calibrate the…

Chef, Vagrant, and DigitalOcean

9 min read

For a while now I’ve been longing for a personal infrastructure---a Git server, a Jenkins server, and some form of automated deployment. I…

Blood caffeine concentration

Looking through an old server from a hosting provider I’m migrating away from, I found an old algorithm I used to estimate blood caffeine…

RepRap is moving!

My customized Rostock 3D printer is moving! After over a year of working on it in between graduating college and other projects, I’ve…


At work I’ve been tasked with converting a cronjob to run on Ubuntu’s excellent Upstart system. I have to say, Upstart is freaking awesome…

© 2018 Ryan Kennedy