Developer Happiness: a Five-Part Series

By Andre Bullet_white Posted in Development Bullet_white Comments Comments

The New York Times ran a popular Op-Ed on Happiness last year. The Cliff Notes version?

The daily activities most associated with happiness are sex, socializing after work and having dinner with others. The daily activity most injurious to happiness is commuting.

Many software developers are fortunate to have flexible work hours that reduce (or eliminate) commute times. But what about that those times when you’re writing code and can’t have sex, socialize, or meet friends for dinner?

(1 of 5): Make it Trivial to Grab Production Data

You need to be able to troubleshoot data-specific issues in the comfort and serenity of your development environment.

So, you need an easy way to grab production data and bring it local. In the simplest case, this is just a rake task that 1) ssh’s into your production db and mysqldumps your database; 2) gzips it and scps it locally; 3) unzips and imports the dump into your development DB.

That approach doesn’t scale. As your product grows, the all-or-nothing dump won’t be enough. Your database will be too big to dump quickly, and it will take too long to transmit over the wire. This is not the way to developer happiness.

What you need is a way to export a slice of your application’s data. There is no way to generalize this; it’s totally application specific. For Scout, the most sensible partitioning approach is to download one account and all its associated data. The trick is to identify the associated data to be export as it cascades through your application. The basic recipe we use for this is:

  1. a local rake task invokes a remote SelectiveExporter class, passing the account ids we wish to export.
  2. the SelectiveExporter does a sequence of mysqldump calls, assembling the set of data related to the account to export.
  3. we scp the result and import it locally.

The payoff is huge: we’re able to grab data needed to troubleshoot a problem in 15 seconds instead of 30 minutes. That puts a smile on our developer faces.

Read More →

 

The best $650 I spent last year

By Andre Bullet_white Posted in Development Bullet_white Comments Comments

Last year I ponied up for a 256GB SSD for my Macbook Pro. Six months later, I can confidently give the verdict that it’s the best investment I made in my work setup. Just a few datapoints:

  • Scout’s unit test suite runs in half the time: 1m34s vs. 2m58s with my old setup
  • Photoshop opens in under four seconds
  • XCode opens in under three seconds
  • everthing else opens pretty much instantaneously—I don’t keep mental track of what’s open or not, because there’s essentially no overhead.

These little efficiencies add up over time. More importantly, though, if I know the friction is minimal, It’s much easier to do the right thing—run the test suite one more time or open up Photoshop for that final adjustment.

Read More →

 

Optimizing Elevator pitch visits

By Derek Bullet_white Posted in Development Bullet_white Comments Comments

A quarter of returning visits to Scout are less than five minutes in length. It’s a tad longer than an elevator pitch on the high end.

Like a real-life elevator pitch, you need to make a good impression quickly for these short visits. A user that spends twenty minutes on a site may excuse a slow page load. On short visits, a single slow-loading page sticks out.

Much of our work is focused on making visits to Scout more efficient. One example: for a long time, our homepage didn’t have a login link. We didn’t think this was important as many of our customers bookmark their account url. However, we saw a couple of cancellations that mentioned the problem with this: if you forgot your account url, it’s a pain to dig back through your email inbox and find it. Taking one minute to remember how to login for a two minute visit is painful.

We added the login link: 30% of logins now start on our homepage.

Reviewing your site’s visit length data is a great reality check. Is your next big feature going to make life easier or more confusing for elevator pitch visits?

Read More →

 

2010 Scout Highlights

By Derek Bullet_white Posted in Updates Bullet_white Comments Comments

2010 was a busy year at Scout. The highlights:

Top Features

Top Plugins

View all Scout Plugins

Top Blog Posts

You gave us great feedback on your Scout experience in 2010. We’re taking that feedback and making it even easier to monitor your server cluster in 2011. Subscribe to our RSS feed or follow us on Twitter for the latest updates.

 

Rails + MySQL Monitoring Enhancements

By Derek Bullet_white Posted in Features Bullet_white Comments Comments

Before today, 75% of the emails sent by Scout were from two plugins: Rails Monitoring and MySQL Slow Queries. Previously, we generated an alert anytime a slow transaction occurred. These emails added too much noise to your inbox – they were viewed 5x less frequently than emails from triggers.

We’ve made the process for reviewing slow transactions more efficient:

  • No more emails for individual slow requests
  • The Rails and MySQL Slow Queries plugins now show recent slow transactions

Here’s an example with the Rails Monitoring Plugin:

Don’t fret – you’ll still be notified when performance is degrading. Both the Rails Monitoring and MySQL Slow Queries plugins have trend triggers that check if the request length/slow query rate increase dramatically. Like with any Scout plugin, you’re free to adjust the thresholds of these triggers.

Read More →

 

Forget The Technology - Just Do The Business

By Andre Bullet_white Posted in Business Bullet_white Comments Comments

A friend of mine is brainstorming a business in the dating space. It’s an interesting idea—a spin on the traditional dating service in potentially lucrative niche. My friend asked me about technology—which technology, who to partner with, etc.

My advice for the dating idea was this: forget the technology. Just do the business.

Read More →

 

Older posts: 1 ... 35 36 37 38 39 ... 65