Nick Sergeant

Front-end engineer at Engine Yard. Builder of Broker, Showroom, Snipt, and Humanity Box. CTO of Compliant Data Systems.

Read this first

Skillet Chicken Parmesan

Okay, first things first: I don’t actually put parmesan in this recipe. But you can, and it’s pretty much a chicken parmesan recipe.

I like this recipe because it doesn’t require pounding out the meat (since it’s baked). It’s also completely cooked in a single cast-iron skillet, which makes for easy cleanup.


  • 2 boneless, skinless chicken breasts.
  • 1 can (14.5oz) diced tomatoes (any style will do).
  • 4 tbsp seasoned breadcrumbs.
  • ½ a sweet onion.
  • a few sprigs of fresh oregano.
  • 2 garlic cloves.
  • 2 tbsp olive oil (pure or light, not extra virgin).
  • 1 tsp salt.
  • 1 tsp pepper.
  • ¼ cup mozzarella or pizza cheese.
  • 2 slices of provolone cheese.


  • Preheat oven to 375. Gather your ingredients.

  • Finely chop half of the onion. Mince the garlic. Remove the oregano leaves from the stems and finely chop.

Tip: an easy way to remove oregano...

Continue reading →

Running Supervisor on OS X

I use Supervisor on all of my servers to handle the running of non-daemonized processes, such as Gunicorn processes for Django apps. The truth is, though, that Supervisor is also a damn-awesome tool for local process management in OS X. Here are a few of the things I’m letting Supervisor handle:

  • Running a Node app on port 80.
  • Running nginx on port 80.
  • Running a watched test-suite for a Node app.
  • Auto-compiling SCSS source files to CSS.
  • Running a Django app with Gunicorn.
  • Running a Django app with the built-in dev server.

There are a few things that make Supervisor well-suited for the above tasks. All of the above tasks:

  • I prefer to have running in the background.
  • I need quick access to logs, especially streaming via tail -f.
  • I’d like to have a common interface for starting, stopping, and restarting.

My favorite part of having Supervisor wrap all of these processes is...

Continue reading →

GitHub issue-search changes

OK, so, I have this issue.

Now I come back to my GH issues after a few days, and want to find that issue quickly. I know the phrase default script tag existed in that issue, so I look for the issue search.

It’s gone. They moved it to the main search bar (I assume):


So I use it. I put “default script tag” in it. The search goes nuts and drops down a whole bunch of things while I’m typing, removes them, until finally settling on:


So, um, yeah sure I want to search this repository. I really just want to search the damn issues in this repo, but whatever. So I click “Search nicksergeant/snipt for ‘default script tag’”, and it just pre-fills the input, instead of taking me directly to the search results. Ugh, fine. I hit return.

Oh look, so it thought I meant to search through code, and takes me here.

No, that’s not what I want. So I...

Continue reading →

Upgrading from Django 1.4 to Django 1.5

Recently I had the pleasure of upgrading from Django 1.4 to Django 1.5. They’ve introduced some awesome new stuff like beefier timezone support and a configurable User model. However, there are some backwards-incompatible things you’ll need to tend to.

Django settings

I ran into an issue with some app complaining about not being able to work with naive timezones. You’ll need to add this to your

USE_TZ = True 

Tag changes

The URL tag has changed to take a path to a view function as a string. Previously this wasn’t stringified.

{% url whatever args %} -> {% url 'whatever' args %} 


The old direct_to_template generic view has been changed to a more traditional class. Here’s the new structure:

from django.views.generic import TemplateView ... url(r'^500/$', TemplateView.as_view(template_name='500.html')), 



Continue reading →

How to roast a chicken

I use this recipe about once a week for a ridiculously tender and tasty roasted chicken that’s really quite easy.

  1. Buy a whole chicken (I buy an organic / grass-fed one for ~$10).
  2. Pre-heat oven to 400.
  3. Rinse chicken, pat dry.
  4. Cut up veggies. I use one potato, one onion, and some carrots.
  5. Rub about a tablespoon or two of extra virgin olive oil on the bird.
  6. Season chicken to taste. I use paprika, red pepper, black pepper, salt, onion powder, minced garlic, and some more red pepper for good measure. Finish with parsley.
  7. Throw the chicken in a cast-iron skillet. I have one of these and it’s damn amazing.
  8. Lay the veggies around the bird.
  9. Season the veggies with whatever you want. I use red pepper, salt, pepper, and garlic powder. You should have something like this, now:

    Bird Uncooked

  10. Cover the whole thing with aluminum foil.

  11. Cook the bird for 1 hour @ 400.

  12. After an hour, take the aluminum...

Continue reading →

Import your Pandora likes into an Rdio playlist

Recently I’ve decided to abandon Pandora and switch full-time to Rdio for all of my listening needs. Pandora is great but I hate not having the ability to play through all of the things I’ve liked over the years. I know Pandora uses those likes to determine what I hear from time-to-time, but I have some great stuff in there that I’d like to listen to more frequently.

I’ve been using Rdio since they first launched, but I’ve still used Pandora for “radio” functionality. Most often, this is in the car or when I really just want some background music. Rdio has since launched a “Station” feature which allows you to listen to similar artists, songs, etc, and it fills this need pretty well.

So I needed to find a way to get my Pandora likes into my Rdio account. Unfortunately there’s nothing that will do this, since Pandora...

Continue reading →

A collection of SCSS mixins I’ve curated over time

@mixin border-radius($radius: 5px) { -webkit-background-clip: padding-box; -webkit-border-radius: $radius; -moz-background-clip: padding-box; -moz-border-radius: $radius; border-radius: $radius; background-clip: padding-box; } @mixin box-shadow($horizontal: 0px, $vertical: 1px, $blur: 2px, $color: #CCC) { -webkit-box-shadow: $horizontal $vertical $blur $color; -moz-box-shadow: $horizontal $vertical $blur $color; box-shadow: $horizontal $vertical $blur $color; } @mixin inset-box-shadow($horizontal: 0px, $vertical: 1px, $blur: 2px, $color: #CCC) { -webkit-box-shadow: inset $horizontal $vertical $blur $color; -moz-box-shadow: inset $horizontal $vertical $blur $color; box-shadow: inset $horizontal $vertical $blur $color; } @mixin multi-color-border($top, $sides, $bottom) { border-top: 1px solid $top; border-left: 1px solid $sides; border-right: 1px solid $sides; border-bottom: 1px solid...

Continue reading →

Fix overly-bold fonts on OS X

For some reason, sometime around the release of OS X Snow Leopard, Apple made default bold fonts look different. I’ve been told it had something to do with making screen fonts render more closely to their print counterparts. At any rate, bold fonts on OS X now look terrible by default.

Here’s a before/after (the default bold fonts are on the top):

OS X bold fonts

Here’s how you can get the “after” look. Pop open your terminal and enter:

defaults -currentHost write -globalDomain AppleFontSmoothing -int 0 

The change will take effect when you restart each application (no need to reboot).

To reset them to the original setting:

defaults -currentHost write -globalDomain AppleFontSmoothing -int 2 

Continue reading →

Blogging from your browser

When you have something to say, technology needs to stay out of your way. Your thoughts need to be as “close to the metal” as possible.

I originally built Snipt to address this problem when it comes to code & command snippets. Years ago, I would always get hung up on the syntax for creating and assigning privileges to MySQL users & databases. This is literally what started the development of Snipt, as can be evidenced by the very first Snipt.

A few months ago, I started work on integrating a blogging platform into Snipt. It’s been in beta for a while, but we officially launched it a few days ago.

Getting back to my point, Craig Zheng wrote a Chrome extension that lets you create Snipts directly from your browser (including marking those Snipts as blog posts). This drastically minimizes the time it takes to go from initial thought -> writing about it ->...

Continue reading →

Why I like LESS > SCSS

The SCSS way:

@mixin whatever() { } ... @include whatever(); 

The LESS way:

.whatever() { } ... .whatever(); 

It’s just more CSS-ey.

Continue reading →

Get updated when Nick Sergeant publishes

Don’t worry; we hate spam with a passion.
You can unsubscribe with one click.