Redis Tangent

Since Hubot ships with a Redis Brain by default, I decided to use this as an opportunity to learn some Redis. While reading through Redis documentation, I came across Redis Mass Insertion, which sparked an odd curiosity (twinkle twinkle). The main crux of Redis Mass Insertion is a recommendation to write large data sets to a Redis instance using the Redis protocol with redis-cli --pipe rather than pushing data through a Redis client....

2015-01-03 · 6 min · 1120 words · Nathaniel Hoag

Deploying a Patched Hubot Maps Script

In deploying Hubot for the first time, you may encounter the following error: ERROR ReferenceError: fillAddress is not defined at TextListener.callback (/path/to/bot/node_modules/hubot-maps/src/maps.coffee:58:16, <js>:57:18) </truncated> At the time of this writing, running a grep in the Hubot Maps source code shows a single instance of the function and no function definition: grep -rn fillAddress . ./src/maps.coffee:58: location = fillAddress(msg.match[3]) Stepping back a level to grep all of Hubot and scripts yields the same result as above....

2015-01-02 · 2 min · 316 words · Nathaniel Hoag

A Dockerized and Slack-integrated Hubot

A little over a year ago, I wrote a quick blog post about deploying Hubot with Docker. A lot has changed with Hubot and Docker since that time, so I decided to revisit the build. The new implementation I whipped up consists of three main components: Yeoman-generated Hubot Base Docker image Dockerfile for configuring Hubot The Hubot ‘Getting Started’ instructions walk us through generating a deployable Hubot with Yeoman. Once generated, the code can be stashed away somewhere until we’re ready to pull it into a Docker image....

2014-12-07 · 2 min · 406 words · Nathaniel Hoag

Moving Away From Evernote

Update: It turns out I have multiple accounts and was reviewing a secondary account I’d forgotten about and had barely used. Still, it’s a useful exercise to consider the worst case of data loss in a blackbox cloud system. Digging deeper into the topic of efficient and distributed notes, I found that Brett Terpstra has put an incredible amount of time and effort into evolving this space. Nothing yet feels fully baked, but tools such as Popclip (with awesome extensions), nvalt, Bullseye, and GistBox provide a lot of interesting avenues....

2014-11-29 · 3 min · 633 words · Nathaniel Hoag

Flame Graphs Show Why Fast 404 Is Important for Drupal Performance

The Fast 404 Drupal contributed module project page provides a lot of context for why 404s are expensive in Drupal: … On an ‘average’ site with an ‘average’ module load, you can be looking at 60-100MB of memory being consumed on your server to deliver a 404. Consider a page with a bad .gif link and a missing .css file. That page will generate 2 404s along with the actual load of the page....

2014-11-23 · 2 min · 349 words · Nathaniel Hoag