Showing posts from 2014

Refocusing the Content on This Blog

I've decided to narrow the focus of this blog, exclusively covering the following topics: Software Engineering Web Technologies Web Performance My Career  All of fitness related posts (pushupdates, GORUCK events, etc.) are moving to my new blog at . I realize that the overlap between people who care about web technology and people who care about my crazy fitness goals is vanishingly small, so head over there and subscribe if you are interested in the latter.

GORUCK Light After Action Review

I completed my first GORUCK event on 9/13, a Light in Boston. We covered about 8 miles in 5 hours and I was carrying roughly 30 pounds. Overall it met my expectations as a challenging event, although with significantly less focus on calisthenics than I expected. The vast majority of our time was spent rucking around Boston, with minimal time spent doing push-ups, flutter kicks, etc. My class met at the Soldiers and Sailors Monument in the center of Boston Common, although we quickly had to move to the garden nearby to avoid a marijuana legalization festival. Our cadre checked everyone in, opened our rucks to check that we had the right amount of weight, and had us form up to listen to a little background on GORUCK. This particular event was special because it was a 9/11 commemorative event, so we spent extra time talking about the events of that day and why the cadre chose to serve in the military. We were informed that this “would not be a normal Light” and to “get ready for a dif

Fixing jQuery Animate Flickering

I just spent over a hour wrestling with this bug, and I'm hoping this post will help spare someone else the same pain. The problem that I ran into was an annoying flicker when using the jQuery .animate()  function to change the opacity of a DOM node.  I did a bunch of Googling, but none of the solutions worked for me. I tried: Calling e.preventDefault() in the event handler. Using return false; in the event handler (this was being done already). Calling .stop(true, true) on the node being animated. Calling .off() on the animated node to remove all event handlers What ended up working for me was removing a CSS transition from the element being animated .   The code in question (simplified): listing.animate({opacity: 0}, function() { // some code }); The listing element had the following CSS rules applied (simplified by removing vendor prefixes): .listing-card { background: #fff; position: relative; border: 1px solid #ececec;

The Road to 100 Consecutive Push-ups

In addition to my goal of doing one million push-ups by the age of 50, I always wanted to be able to do 100 consecutive push-ups.  I started training heavily towards this goal on February 1st of this year, and hit that milestone on May 18th.  It took a bit of experimentation to find out what worked to increase my push-up max, and there’s a lot of misinformation around this particular goal on the web, so I’m hoping that this post can serve as a useful resource for people tackling this challenge. A Quick Word of Warning If you search for recommendations on how to do 100 consecutive push-ups, you will without a doubt stumble upon This site, in a word, is unrealistic. On two separate occasions I’ve attempted to follow their program, and haven’t come anywhere near 100 push-ups in the final attempt. The site doesn’t even make sense…anyone should be able to go from ~10 push-ups to 100 in 6 weeks? That’s a little aggressive. Also they jump people who can do 50+

Revisiting the "Cookieless Domain" Recommendation

For a long time one of the recommendations for a faster site has been to “serve your static content from a cookieless domain”.  This suggestion shows up in the Google best practices , the Yahoo! performance rules , and in Phil Dixon’s famous Shopzilla case study from Velocity 2009, where he states that implementing this one best practice resulted in a 0.5% improvement in top line revenue.  Case closed, right?  Well, due to some recent experimentation we have been doing at Etsy , we had reason to believe that people might be taking this too far.  Specifically, our testing indicated that serving CSS files from the same domain as the base page might be a performance win.   Why is this a Good Idea? CSS blocks page rendering, because if it didn’t then users would get the dreaded flash of unstyled content .  This is the reason why another performance recommendation is to put CSS in the head of the document, and to combine CSS files and minify them.  Getting CSS to start downloading as