Victor Quinn

Software architect and Node.js expert. Specializing in scalable systems. Lover of craft beer. VP of Engineering @SocialRadar Building @LocationKit

Page 3

Solved: ZSH tab completion painfully slow

Soooo slow

First, I love zsh. It has a bunch of features that bash doesn’t so I’ve been using it as my main shell for about three years.

That said, it hasn’t been all great. Some time ago, I came across a major issue that almost made me stop using zsh. Basically, for sufficiently large projects, git tab completion was taking longer and longer. At first, it was a few seconds which, while annoying, wasn’t fatal. Then it got worse and worse. This morning, if I had a file named foo.html and I typed git diff fo and hit tab, the command line would lock for up to 30 seconds, leaving me unable to do anything.

I had, in the past, spent some time searching and found a handful of pages in the zsh developer mailing lists discussing the problem as a known issue, but offering no solution. Some pointed to the way compinit recursively does things, others had other explanations, but no one offered a...

Continue reading →

Programmatically Creating Fielded Nodes in Drupal 7

The Setup

You’ve just created your new super awesome node type in Drupal 7 using the (now in core!) Content type editor.


Now you want to programmatically generate some Super Awesome Content nodes. Some Googling (or Ducking!) will land you with some snippets that look as follows:

function create_my_node() {
    $node = new stdClass();
    $node->type = 'blog';

    $node->title = "My Awesome Title";
    $node->language = LANGUAGE_NONE;

The Problem

Since you’ve defined a custom content type, you may think something like the following would work great with your new custom node type to set your custom field values:

function create_my_node() {
    $node = new stdClass();
    $node->type = 'super_awesome_content';

    $node->title = "My Awesome Title";
    $node->language =

Continue reading →

tmux Tutorial

Why a terminal window manager

As a web developer, most of my time is spent in a command prompt banging away at web code. One of the greatest discoveries I have made to my productivity is the use of GNU Screen. It’s hard to distill the many
benefits of a terminal window manager like this into a few bullet points, so here is my best shot:

  • Ability to quickly switch between multiple command prompts or editor windows.
  • Persistence, so if the connection is lost between client and server, server maintains the state it was in exactly prior to disconnection. This also means you can just close your terminal window, reopen it, reattach, and everything is just as you left it.
  • Ability to copy-paste and perform other operations across command prompts or editor windows without the use of the mouse.
  • Visual alerts to things happening in other “windows” not in the foreground.

Some quick...

Continue reading →