I read 18 books in 2023. Including 5 in Spanish. Continue Reading »
Comprehensive monitoring requires looking for both the presence of failure and the absence of success Continue Reading »
I read 18 books in 2022. Including 4 in Spanish. Continue Reading »
I get super excited about an idea, figure out how it could work technically with current standards, and realize why it wouldn't do much good in the real world. All in 5 minutes. Continue Reading »
OKRs create clarity within our teams, alignment across our teams, and autonomy for our teams. Looking at the type of results we're defining can help teams achieve more impact faster. Continue Reading »
One of the key pieces of fatherly wisdom I’ve imparted on my children is “Never order crabcakes outside of Maryland.” Here's how we make them in our house. Continue Reading »
Running monte carlo simulations of a game intended for pre-schoolers. Continue Reading »
I did a brief interview with Managers Club. You can read the whole thing here. Continue Reading »
I recently spoke at RailsConf about one of the worst bugs I've ever been involved with, aviation, surgery, and how checklists can help us to deploy higher quality software, faster, and with less stress. Continue Reading »
I've flown with my kids a lot. Here are some tips for making it easier. Continue Reading »
Here's how I got the Microsoft Surface Ergonomic Keyboard to work on MacOS Sierra. Continue Reading »
Here's how I got the Microsoft Surface Ergonomic Keyboard to work on MacOS El Capitan. Continue Reading »
Inspiration is for amateurs; the rest of us just show up and get to work. Continue Reading »
I very much like the new confirmation email design from Open Table. Continue Reading »
When faced with a new project the first choice a technology leader has to make is whether to build it yourself or find some existing solution that you can buy. Continue Reading »
If you're going to limit the characters that can be used in a password, don't make your users guess what characters are 'valid'. Continue Reading »
Over the last few weeks I've redesigned this site and I'm quite pleased with the outcome. Continue Reading »
Agile is an adjective. It is not a noun. It isn't something you do, it is something you are. Continue Reading »
Replace comments with executable code to provide explanatory information and reduce the risk of it becoming outdated. Continue Reading »
I had to install Erlang R16B on Max OSX 10.8.4 using Homebrew. Here's how I did it. Continue Reading »
Calca is a hybrid Markdown editor and calculator. It's awesome. Continue Reading »
Resist the urge to abstract until you've learned what is general to a class of problems and what is specific to each problem. Continue Reading »
My friend Dave Copeland book wrote a new book called The Senior Software Engineer. It is good. Here's why. Continue Reading »
Nail the next two weeks. 26 times in a row. Continue Reading »
Uber's success has spawned many imitators trying to become the 'Uber for X', but they're destined to fail because they don't understand why the car service market is so perfect for Uber. Continue Reading »
Tim Bray argues that the slow upgrade curve for Android doesn't matter for developers. I disagree. Continue Reading »
Learn how to calculate the necessary sample size for AB tests based on your base conversion rate, desired detectable difference, and statistical confidence requirements. Continue Reading »
I'm pissed that Aaron Schwartz was facing years in federal prison for violating a ToS. Continue Reading »
reject! has some (at least to me) unexpected behavior that can easily lead to bugs. Continue Reading »
I've made two small configruation changes to my Mac that have made me much happier. Continue Reading »
I've been using Vanity for a while now and here's how I run AB tests with non-even splits so I can expose a new feature to a smaller percentage of users during a test. Continue Reading »
Last Thursday the Rails security team announced CVE-2012-2660. Here's how I backported it to 2.3.X Continue Reading »
Methods ending in a question mark are called predicate methods and are an important part of idiomatic Ruby style. This post explains how to use them correctly. Continue Reading »
I think most comments can be replaced with better tests, clearer code, and more descriptive variable names. In this post I argue with my friend Dave Copeland about the proper role of comments in Ruby. Continue Reading »
Hulu is cutting off access on Boxee which I think is stupid and incredibly short sighted, but I’m going to ask another question: Why are TV ads more profitable than video ads in a Hulu stream on a per impression basis? Continue Reading »
Malcolm Gladwell's latest New Yorker article is a really interesting look at the similarities between trying to draft an NFL quarterback and trying to hire a good public school teacher. Continue Reading »
I've recently started receiving a ton of TamperedWithCookie errors on an application I manage. Continue Reading »
I’ve recently read some excellent long form magazine articles. Continue Reading »
A confusing error and how we fixed it. Continue Reading »
I'm very happy with the outcome of the 2008 election, but apart from that I think we witnessed something special. Continue Reading »
Taking a break from work to participate in a silly blog meme. Continue Reading »
I'm ran into a problem when trying to freeze to Rails 2.0.4, here's how I fixed it. Continue Reading »
Explanatory text in user interfaces often indicates deeper design issues that could be solved with better UX choices. Continue Reading »
I think that the release last year of the iPhone represented the biggest jump in computing since the introduction of the personal computer in the 1980’s. But I hope it doesn't remain the only good mobile device. Continue Reading »
Baggu's shopping cart interface is a great example of how to make a shopping cart interface easy to use. Continue Reading »
I attended the Web Content Mavens Meeting and learned a few things about web analytics. Continue Reading »
The startup I co-founded launched today. SandwichBoard is the best way to create and maintain a restaurant’s website. Continue Reading »
I think that the Obama campaign's branding is a great example of how to use branding to create a movement. Continue Reading »
Wherein I rant about about bad techincal support experience. Continue Reading »
I had to fix an error in Azureus' RSSFeed Scanner plugin. Continue Reading »
I went to the doctor for the first time in years and was shocked by how bad the user experience was. Continue Reading »
A comparison of Ruby's alias and alias_method, explaining their syntax differences and how they both copy methods but with slightly different approaches. Continue Reading »
I was catching up on some reading today and came across two sad commentaries on the current state of airline security in our country. Continue Reading »
My co-founder Ian Lotinsky was interviewed about SandwichBoard. Continue Reading »
My first patch was committed to the Rails trunk yesterday. I’m pretty excited. Continue Reading »
I will be presenting at the Northern Virginia Ruby Users Group meeting about the Liquid templating language. Continue Reading »
Today I decided to figure out how to set up Google Notifier for Mac to work with multiple accounts. Continue Reading »
I will be speaking about the Liquid templating language at the November meeting of the Northern Virginia Ruby Users Group. Continue Reading »
I went to the NovaRUG meeting tonight. Here is a recap. Continue Reading »
I plan on bringing EasilyInvited back up soon. Continue Reading »
I was working on a project that uses cookies tied to a particular subdomain. The hostnames we were using for testing were of a format like subdomain_name.localhost.com. Everything worked fine on Firefox, but we couldn’t authenticate from IE. Upon closer inspection we noticed that a new session ID was being generated for each request. Continue Reading »
I read an interesting article about a Mexican high school team playing a Texas team in American football. Continue Reading »
I attended RubyEast today. It was a good conference, obviously much smaller than RailsConf, but a nice break from working on the startup and a good chance to meet other rubyists. Continue Reading »
I got this error message today and it took me a while to figure out what it meant. Continue Reading »
I can’t remember where I read it, but I remember someone once saying that doing a startup is like jumping off a cliff and trying to build a plane on the way down. Continue Reading »
I wrote a script to watch MLS highlights on XBox Media Center. Continue Reading »
I'm going to try to keep the links relevant to this blog, so generally they will be nerdy, but look for occasional econ, sports, and political things too. Continue Reading »
I ran into a problem with Rails environments and constants but eventually figured it out. Continue Reading »
I've built and released a web application for sending and tracking invitations. I'm going for an Evite that doesn't suck. Continue Reading »
I read this quote from Johan Cruyff and it made me think about how I approach programming. Continue Reading »
I went to the NOVA RUG meeting tonight. It was my first NOVA RUG meeting and I’m glad that I went. Continue Reading »
I had a strange validation error when trying to forward my DC United season tickets. Continue Reading »
I ran into a problem with URL encoding in .Net and the AntiXssLibrary. Continue Reading »
I made a small loan to a woman in Mexico via Kiva and she paid it back on time. Continue Reading »
I had a problem with Mephisto where I couldn't respond to comments on my own blog. Continue Reading »
I went to see the documentary Helvetica and have been thinking about grid based design. Continue Reading »
I gave a presentation about modern web UI patterns to my department at work. Continue Reading »
Notes from the session at RailsConf 2007. Continue Reading »
Notes from the Scaling Twitter session at RailsConf 2007. Continue Reading »
Notes from the Rubber Meet Road session at RailsConf 2007. Continue Reading »
Notes from RailsConf 2007. Continue Reading »
Live Notes from RailsConf 2007. Continue Reading »
End of the second day reflections from RailsConf 2007. Continue Reading »
Well, the first day of the week I’ve been waiting for all year is over. So… how do I feel? Continue Reading »
Notes from RailsConf 2007. Continue Reading »
Chad wants to reduce the arrogance of the Rails community. Continue Reading »
Live notes from RailsConf 2007 workshop. Continue Reading »
Live notes from RailsConf 2007 workshop. Continue Reading »
Live notes from RailsConf 2007 workshop. Continue Reading »
Live notes from RailsConf 2007 workshop. Continue Reading »
Book review of the book I read on the plane to RailsConf 2007. Continue Reading »
A comparison of subway maps and the scope creep of software development. Continue Reading »
Mocking a silly compliance application. Continue Reading »
A discussion of how companies should handle outages. Continue Reading »
I finally finished setting up my LinkedIn profile. Continue Reading »
Some examples of unobtrusive ways to call attention to new features. Continue Reading »
I'll be in Portland from May 17-20 for RailsConf 2007. Continue Reading »
If we do nothing else during tomorrow's mission, we must ________________ Continue Reading »
I'm amazed that I can find a book at a small bookstore in the UK and have it arrive at my housein the US in two weeks. Continue Reading »
A discussion of Findory, a collaborative filtering news site that failed. Continue Reading »
A discussion of how to troubleshoot VPN and firewall issues. Continue Reading »
A discussion of last.fm, a music streaming service that uses collaborative filtering to make recommendations. Continue Reading »
My favorite links from kottke's year end list. Continue Reading »
A discussion of a new bittorrent client that generates an average 70% increase in download performance for users with 1 Mbit upload. Continue Reading »
I really don't understand how people can still think it is acceptable to say things like this. Continue Reading »
Talking about the importance of secure deallocation. Continue Reading »
Some anti-patterns for using exceptions. Continue Reading »