Listen to me on SendGrid's podcast
13 Feb 2019
I did a short interview for Some Coding Required while at OSCON last Summer. Take a listen.
13 Feb 2019
I did a short interview for Some Coding Required while at OSCON last Summer. Take a listen.
19 Dec 2018
The season finale of The Changelog
31 Dec 2016
We had a lot of great conversations this year. These were my favorite.
22 Dec 2016
I was honored to answer 5 questions for Jaymie Jones' 100th episode of Coder Catchup
18 Aug 2015
This ruined my morning.
11 Apr 2015
Which apps found their way eventually on to my brand new Mac
21 Mar 2015
Which apps found their way immediately on to my brand new Mac
13 Mar 2015
What happens when the most-awaited features become the most disappointing.
08 Mar 2015
The reason why I'm bearish on trailing conditionals may best be expressed by a road sign I saw on a recent road trip down Interstate 80
26 Feb 2015
21 Feb 2015
I'll tell you why
13 Feb 2015
As I teased on Monday, two things I'm quite excited about were announced this week
05 Feb 2015
Walking around in a bubble of grace.
26 Jan 2015
You can't get any further away before you start coming back
19 Jan 2015
Cody and I recently added a subtle feature to Oma/Sprout that we think is pretty neat.
14 Jan 2015
I wrote a lengthy post on The Changelog all about turning Trello in to a CMS
05 Jan 2015
A conversational questions-and-answers show with two guys from Millard Community Church in Omaha, NE
30 Dec 2014
And the winner is...
21 Dec 2014
My fourth annual list-of-things-that-I-deem-notable-in-the-year-which-is-about-to-conclude.
06 Sep 2014
This is super handy for Heroku-style deploys
11 Aug 2014
I speak to the Omaha Coffee & Code meetup about the trials and tribulations of naming things well.
20 Jun 2014
4 Steps and an obligatory fake step
07 Apr 2014
15 Ruby-based movie title Rebus puzzles. Can you guess them all?!
11 Feb 2014
Omaha's Family Event Calendar
31 Dec 2013
My third annual list-of-things-that-I-deem-notable-in-the-year-which-is-about-to-conclude.
04 Dec 2013
Rails 4 defaults the X-Frame-Options header to SAMEORIGIN for security reasons (and good ones at that). However, sometimes you want a specific action to be iframeable. Here's how.
15 Nov 2013
Two handy tools that don't get along out of the box. Herein lies a workaround.
08 Nov 2013
Save yourself a lot of pain down the road by ensuring your system handles crazy input now.
24 Oct 2013
Have you ever needed to see how many times each element in an array occurs? Perhaps sort by those occurrences? Here's a quick and easy way to do it.
20 Sep 2013
Overall a good year of progress, but there's on big elephant in the room that Apple is choosing to ignore.
02 Aug 2013
So please stop
28 Jul 2013
In case you were wondering
13 Jul 2013
It seemed to go not too bad. Here are the video and slides if you're interested.
06 May 2013
None of Jekyll's Markdown renderers support footnotes out of the box, but a RedCarpet fork has the feature.
02 May 2013
I've been standing while I work for over two years now, but the transition wasn't easy. Here are some tips on how to transition successfully.
22 Apr 2013
It's been quieter around these parts lately, but that's not because I haven't been writing.
08 Apr 2013
If one of the files doesn't have a newline at the end then you will run into an error.
07 Mar 2013
Fall, baby, fall
01 Mar 2013
There are many ways to skin the syndicate-a-wordpress-blog-content-in-your-rails-based-app cat. This is an easy one.
19 Feb 2013
We uncovered a Strange Thing when working on Omahype's event listings.
12 Feb 2013
If you ever find yourself in a foreign code base and want to get a quick overview of how much code is in it,
cloc is just the tool for the job.
11 Feb 2013
Any time I see an open source app which has technically intriguing bits, I take some time to clone it and give it a quick read-through. Let's do that!
03 Feb 2013
Rack::Throttle is an awesome piece of middleware for rate limiting your app's clients. You can easily extend it to apply any rules you need, such as only limiting certain request types.
01 Feb 2013
The fix to this obscure and nuanced bug after upgrading my Rails-API app to 3.2.11 is worth noting for others.
23 Jan 2013
redis-store's redis-rails is awesome, but it can be a pain in the buttox to get configured on Heroku. Herein lies buttox relief.
07 Jan 2013
There's one thing that almost every web app and web site needs: static pages
31 Dec 2012
Judofyr's excellent collection of Hacker News threads with book recommendations made me want to see all of the best HN threads this year.
27 Dec 2012
My second annual list-of-things-that-I-deem-notable-in-the-year-which-is-about-to-conclude.
18 Dec 2012
Rails' method of sharing data between controllers and views via instance variables bothers many developers, myself included. Here's a handy method you can use to avoid this in your apps.
11 Dec 2012
04 Dec 2012
While packing for an upcoming conference, you think to yourself, 'I know what I'll do. I'll bring my laptop!' Now you've got problems.
28 Nov 2012
File this under just-blog-it-already-so-you-can-stop-googling-it
27 Nov 2012
The arbitrary less-than-15-lines constraint is back, baby! This time, a Domainr CLI
23 Nov 2012
You may not know this about me, but I used to be a pretty wicked guy. I'm still a pretty wicked guy, but I used to be, too.
12 Nov 2012
Regular expressions are great for matching many patterns, but they often fall down when dealing with recursive matching. In these cases, there is a simple algorithm that you can use which is more reliable than regular expressions.
09 Nov 2012
These are the Ruby Rebus answers you're looking for.
31 Oct 2012
20 Ruby-based movie title Rebus puzzles. Can you guess them all?!
28 Oct 2012
Letterpess is already a success by almost any measure. It reached #16 in the App Store's free apps chart and managed to bring Game Center to its knees over the app's first week of availability. But I think Letterpress has an opportunity to really shine.
19 Oct 2012
Ruby's regular expressions have an idiosyncrasy that can get you in trouble when doing input validation. Find out how to avoid this common gotcha in this post.
09 Oct 2012
Mentions are a great way to keep the signal-to-noise ratio high in group chats. Unfortunately, Skype has no such feature. Fortunately, you can roll your own pretty easily. Here's how.
20 Sep 2012
It's called Push Pop and I love it. Maybe you will too. Probably not, though.
04 Sep 2012
This is my company. There are many like it, but this one is mine.
29 Aug 2012
The process is only a little longer than its title
17 Aug 2012
08 Aug 2012
If you find yourself typing out "command", "option", or "control" often and want to take a principled stand against verbosity, I have good news for you!
07 Aug 2012
Sinatra and Zurb's Foundation are a great one-two punch, but getting them to play nice is not exactly straight forward. I created a skeleton project you can use to get up and running quickly.
23 Jul 2012
Let's not argue about tabs vs. spaces. Let's argue about spaces vs. spaces!
14 Jul 2012
Jeff Foxworthy's PC is probably rolling in its grave.
03 Jul 2012
Ruby's popular gem bundling library made dependency management headaches a thing of the past, but it also bundles another feature that has changed my day-to-day life for the better: open
28 Jun 2012
Digital clutter can be as bad as its analog equivalent. I find that I enjoy my iOS devices more when they're populated by a handful of super high quality apps instead of a boatload of apps of varying quality. But maintaining such a state can be slightly overwhelming if you don't have a system. I have a system. Oh, I have a system...
14 Jun 2012
htop, ack, and tree
07 Jun 2012
If you're not designing websites that adapt to mobile browser sizes, you need to be.
05 Jun 2012
The storied history of my Internet handle and why I've decided to put it to rest.
26 May 2012
Girl, you looks good, won't you back that Gmail up
20 May 2012
On episode 54 of the Ruby Rogues podcast, Josh Susser mentioned an interview question he used to use where he would ask the interviewee to reimplement Enumerable's *ect methods (collect, select, reject, and detect) using
inject. In this post I attempt the same thing, but using
16 May 2012
Tee is one of those commands so simple, so basic that you've either been using it for years or you'll wish you had been.
23 Apr 2012
04 Apr 2012
Adding custom configuration to a Rails app used to be a chore, but now it's dead simple. Here's how.
27 Mar 2012
FireHOL is the best tool I've used for configuring Linux firewalls. But it can really spew its logs all over your kern.log and syslog. Getting it to stop this is non-obvious so hopefully this saves you some time.
22 Mar 2012
Naming things is hard. This website helps.
05 Mar 2012
In which I rant on the terrible user experience at a run-of-the-mill Best Buy retail store.
25 Feb 2012
So many folks reached out to say thanks, offer assistance, and tell me how often they use ip2loc that I decided to bring it back to life.
08 Feb 2012
The title says it all
12 Jan 2012
Sublime Text 2 may be the best text editor on the planet, but its icon is an abomination. Thankfully, replacements abound.
31 Dec 2011
My first ever list-of-things-that-I-deem-notable-in-the-year-which-is-about-to-conclude.
11 Dec 2011
One major problem with Photo Stream is that it uploads everything that hits your device's Camera Roll. That'd be great if all we ever took were amazing photographs. But alas, many of the images captured by our phones just aren't worth the effort
10 Aug 2011
Amazon's new Kindle Cloud Reader is an awesome web-based reader. However, they won't let you select text to copy/paste, look up in dictionary, or do any of the other cool stuff that we can do on the web. This post provides a bookmarklet that unlocks those features.
04 Aug 2011
Apple ships vim with OS X, but it's lacking a few nice features. Homebrew proper doesn't have a Vim formula because it violates the 'no-duplicates' policy. Thankfully, there's an alternative repo of nice Homebrew formulae, including Vim!
02 Aug 2011
Last week I shared my Dotjs hack which forces Chrome's Omnibar searches to use Google's "past year" parameter. Since then I've learned a couple of things and found a better way of handling it.
26 Jul 2011
Sick of clicking on 'More tools' and 'Past year' after almost all of your Google searches? I was, so I hacked together a dotjs quickie which adds the necessary params if they aren't already provided.
25 Jul 2011
In the context of music recommendation engines, The Coldplay Effect is an unfortunate phenomenon that arises when certain artists' music (like Coldplay's) ranks high for likeness across diverse genres.
18 Jul 2011
There are a few different ways to go about building a multi-tenant Rails application. One way that works really well for certain apps is to use PostgreSQL's 'schemas' feature to partition each tenant's data. This article lays out why you might want to build your multi-tenant app this way and how to go about it.
29 Jun 2011
A quick and dirty capistrano task to pull a snapshot of your (PostgreSQL) production database into your development environment.
17 Jun 2011
Heroku's new Cedar stack is awesome for many reasons, one of which is first-class Node.js hosting. I'm giving it a test run with an app that uses Redis for data caching and I couldn't find any documentation on how to connect a Node app to the Redis To Go add-on. Here's how I did it
14 Jun 2011
Talker is a great tool for group chat, especially for development teams. Herein I enumerate 3 reasons why it's better suited than Campfire.
16 Apr 2011
(pejorative) The misleading use of unrepresentative benchmark software results in marketing a computer system.
12 Apr 2011
Pow is the new hotness for serving up Ruby apps in development. Apache is the old standby for serving up PHP (and other) apps in development. Pow and Apache don't play nice, but we can change that.
07 Apr 2011
Updating a related object in an ActiveRecord callback can be tricky due to association caching. It tripped me up for too long and Google was not helpful. Hopefully this post will at least solve the unhelpful Googling problem.
23 Mar 2011
Want to upgrade to the newly released Firefox 4 while maintaining your Firefox 3 install for browser testing purposes? So did I. Here's how to get 'er done
20 Mar 2011
Little conveniences can make big differences. I recently added two characters to my Bash configuration that made a profound affect on my everyday computer use.
25 Feb 2011
This post isn't trying to sell you on
screen. There are umpteen sites out there which do that. Instead, I'd like to share with you how I've engineered my setup such that it's a joy to use.
31 Jan 2011
Sprinkle this sugary function on top of your jQuery for a little syntactic delight.
30 Jan 2011
I've been listening to tech-related podcasts since the birth of the medium. I recently realized that I've never shared the shows that I think are great. So, here they are (in no particular order).
26 Jan 2011
Heroku does not expose the current database size of your application via their web interface or command-line tool, but its pretty easy to get at.
14 Jan 2011
Context switching: computers are great at it, humans suck at it. Every time we developers lose the context of our current task we are forced to waste precious time getting back...
27 Dec 2010
15 Dec 2010
In which I pay respect to the many open source libraries we used as foundation for Grooveshark's new web-based player.
09 Dec 2010
The old TMail gem used in Rails allowed directly importing parsed attachments into Paperclip. The new Mail gem works differently, but we can make them play nice.
01 Dec 2010
I've wasted many hours of my life trying different task management applications and have never found anything effective enough to stick with. Finally, I've found a solution that is simple and effective. It Just Works®. I think it's awesome. Maybe you will too.
01 Nov 2010
30 Aug 2010
I competed in the first ever Node Knockout over the weekend with a couple of friends and the fruit of our labor is an 8-bit multiplayer shooter called LazerCatz!
21 Aug 2010
Turns out it's pretty easy to edit a Safari extension that you've downloaded. Here's how.
19 Jun 2010
I'd like to give props to a handful of iOS apps that I think are exceptional. If you haven't used any of the following, I highly suggest you check them out.
20 Mar 2010
I'm very happy to announce that I've joined the Fuel Network as co-editor of FYC!
06 Mar 2010
Another month, another handful of great open-source projects I found on GitHub.
02 Feb 2010
One of my favorite GitHub features is the ability to find and track the progress of projects that interest me. I've decided to post the new projects I find each month on this blog since there is a high likelihood that you and I have common interests
12 Jan 2010
I'm happy to announce the release of CappuccinoResource (CR), a library dedicated to interfacing between a Cappuccino front-end and a Rails back-end.
07 Jan 2010
Writing a web app using Cappuccino has a lot of benefits, one of which is a really nice message passing system wherein certain objects can register to observe events and take action when other objects post notifications of those events.
02 Dec 2009
Most of the online regular expression testers I've used just aren't that useful, but Rubular is the exception.
16 Nov 2009
The much anticipated 280 Atlas developer beta is under way and I recorded a brief screencast introducing the basic concepts of creating applications with Atlas.
14 Nov 2009
Have you ever spent way too much time babysitting a long-running command? Code compilation, large file transfers, software upgrades and other time consuming tasks can trash productivity by requiring intermittent attention. Here is a way to avoid the predicament.
05 Nov 2009
I just added two new functions to my bashrc which make it super-simple to find & remove broken symbolic links on your system.
01 Nov 2009
A list of valuable resources for learning Objective-J and the Cappuccino web framework.
29 Oct 2009
I often use WordPress as a CMS and have a couple of sites with many users contributing. I rarely go a week without an email or phone call from a user who needs help posting. When it comes to remote support there is no substitute for seeing what they're seeing.
20 Oct 2009
Fellow command-line junkies either love the cheat gem by Chris Wanstrath or they've never heard of it.
14 Oct 2009
It has been a little quiet around these parts lately. I blame Cappuccino.
09 Sep 2009
OS X's built-in `System Profiler` provides a great graphical display of pretty much anything you'll want to know about your Mac.
07 Sep 2009
We all know that
. represents the current working directory and
.. represents the current working directory's parent directory. If we follow this pattern to its logical conclusion, then
... would represent the current working directory's parent's parent, etc. Unfortunately,
cd doesn't work that way.
01 Sep 2009
Looks like I'm not the only one who hates Snow Leopard's blue ring around selected windows in Exposé.
24 Aug 2009
Ruby's `abort` method may be just what you need to print a message and exit.
22 Aug 2009
I open-sourced a module to fetch app information out of Apple's App Store.
20 Aug 2009
I have a lot of Ruby scripts running on different servers all scheduled via cron and it's quite easy to forget what script is scheduled when and how often. This can be worked around with `Whenever`.
16 Aug 2009
I recently learned that you can fix you're previous commit (modify commit message, add more files, etc.) quite easily with git.
01 Aug 2009
I just finished reading Gregory Brown's **Ruby Best Practices** (RBP). I could probably write a book about this book, but I hate long book reviews so I'll try to keep this short.
23 Jul 2009
It's been awhile since I posted about my open-source WordPress Console (WPC) plugin, and enough has happened since I released it that I thought it deserved a little mention.
18 Jul 2009
If you want to be able to toggle your development log between the default Rails logger and the console, just add this method to your `~/.irbrc`
09 Jul 2009
A Sass mixin for centering a div on a page horizontally and vertically.
03 Jul 2009
Plugin upgrade notifications and one-click installs are great for both developers and users alike, but there is one thing about them that I find irritating as a user, and easily avoidable as a developer: **displaying reasons to upgrade**.
01 Jul 2009
If you want to nest tabs inside one another you'll need to change things slightly. I demonstrate in this post.
23 Jun 2009
I enjoy developing for WordPress, but I've been spoiled by Rails and I often long for an interactive console for WordPress.
13 Jun 2009
Ever wanted (or needed) to see your iPhone's network traffic? All you need is a wireless LAN and the cross-platform proxy application, Paros.
06 Jun 2009
OS X ships with PHP5 installed but it does not have `readline()` support compiled in.
02 Jun 2009
A Capistrano task to install Ruby 1.9.1 to `/opt/ruby-1.9.1` on Debian
31 May 2009
A couple of technologies have come along and made my deployment process a whole lot easier.
28 May 2009
I recently needed to rename one of my repositories and couldn't find any info on how to do it, so here is a walk-thru.
26 May 2009
Why I think Heroku is awesome and will change the game of Ruby app deployment
22 May 2009
With this little Ruby script, you can arbitrarily generate files of any size (using 1MB increments).
18 May 2009
Use jQuery to add the target attribute to links so it doesn't muck up the HTML.
17 May 2009
Let's use Ruby to generate a list of people highly followed by our friends.
14 May 2009
Using SSH's config settings to save you keystrokes
12 May 2009
See Which Twitterers Don't Follow You Back In Less Than 15 Lines of Ruby
09 May 2009
How to set the mouse's focus to an element on the page when the DOM is ready, using jQuery
04 May 2009
How to set up git as a change notification mechanism
02 May 2009
The folks at DreamHost were gracious enough to provide me with a complimentary Private Server account so I could expand Dreamy's functionality.
23 Apr 2009
Clean WP Dashboard is a plugin that cleans up WordPress 2.7's dashboard.
21 Apr 2009
The anointing of an OS X application
18 Apr 2009
Dreamy is a command-line tool and Ruby library for accessing DreamHost's API
18 Apr 2009
Many web developers are discontinuing support for IE6. I, happily, am one of them (unless a client demands it). Here is a Rack middleware to accomplish just that.
17 Mar 2009
Ever wonder what 2>&1 means on all the cron examples out there?
09 Mar 2009
How to troubleshoot a cryptic Rsnapshot error
26 Feb 2009
One of FireHOL's strengths is that it uses standard Bash syntax inside its configuration file, so you get all the power of Bash to configure your firewall.
21 Feb 2009
A project I'm working on required a little more from Ruby's TMail library than it offers out of the box.
17 Feb 2009
Feel free to use this simple method to send email
16 Feb 2009
In case you need some convincing to start using aptitude for all your Debian/Ubuntu software management needs
16 Feb 2009
You don't need to fire up an editor to switch your APT repositories from Debian 4 (Etch) to Debian 5 (Lenny)
15 Feb 2009
Almost every software package in my favorite server operating system has been upgraded!
17 Sep 2008
If you copy and move a VMware virtual machine that runs Debian, you’ll find that the network adapter is no longer available, which sucks.
03 Sep 2008
You just compiled Asterisk on your Debian server and you want to make sure it starts when you reboot. Here’s how
30 Aug 2008
I began hacking on Asterisk using the Adhearsion framework a few weeks ago. Despite initial setbacks, I am now having an absolute blast.
27 Aug 2008
When it comes to dealing with dates and their formats between different databases, Ruby, time zones, etc, etc…it can get pretty nasty...
27 Aug 2008
Here’s how to synchronize your Debian system’s time with network time servers, in a few simple steps
23 Aug 2008
lil tom peep is a new web application I wrote to fix a problem I had with web surfing.
22 Aug 2008
In case you muck up your `/etc/apt/sources.list` and want to set it back to the defaults
19 Aug 2008
Even trivial apps need to be configured. Why not use Yaml?
18 Aug 2008
Walking through the basic usage of Ruby's `rescue` feature
14 Aug 2008
I don’t usually post links on this blog unless they accompany a tutorial, but this reference is so good I can’t help but throw it up here for others.
12 Aug 2008
How to ensure access to the handy, dandy `/usr/bin/mail` command on your Debian box.
09 Aug 2008
I was interested in creating a step-by-step form wizard for a Rails app I’ve been working on, so naturally I began searching for a jQuery plugin or tutorial. The best thing I could find was a ‘plugin’ written back in June of 2007...
24 Jul 2008
Unix’s `screen` utility is like pow-pow-power wheels for remote shells.
24 Jul 2008
Ruby makes it super-simple to pass optional arguments with default values.
23 Jul 2008
Oftentimes a symbolic link is just the quickest/easiest solution to the task at hand.
19 Jul 2008
ip2loc is a simple tool which visualizes location data for a given IP address using the Google Maps API.
17 Jul 2008
Sometimes you need to set up a quick and dirty FTP server for one-time use. This is what I use to do it.
15 Jul 2008
A few quick tips on traversing directories with Ruby.
14 Jul 2008
I decided to source out a few random Ruby scripts I use to interface with Amazon’s Simple Storage Service (S3) from the command line.
11 Jul 2008
I’ve been playing with Capistrano a lot lately and loving it. Here is an example of how easy it is to write tasks and use them on multiple remote servers.
20 Jun 2008
Securing your slice with FireHOL is a really, really good move. Here are a few notes that may save you some time
20 Jun 2008
Sometimes one layout (application.html.erb) just doesn’t cut it, but you don’t want a separate layout for each controller in your app. You can use the following technique to nest your Rails app’s layouts.
03 Jun 2008
If you’ve been hacking at your linux CLI for a little while, you’re probably familiar with the pic below. If not, just type `top` and your terminal will spring to life with an ever-updating process and usage display.
31 May 2008
If you’re like me then one desktop just doesn’t cut it anymore. Leopard’s Spaces is Apple’s attempt at a virtual desktop management app and it has lacked one very crucial feature until the .3 release of the operating system which was pushed last week.
19 May 2008
A reference for how to backup and restore MySQL databases, including optional compression.
19 May 2008
If you’re trying to configure git commands in a directory that isn’t `pwd`, you’ll have to deal with `clone` and `pull` a little differently.
19 May 2008
Here’s how to turn off that annoying system beep at your Debian CLI