github mute


If a particular Github account is cluttering up a pull request you’re trying to review (a robot perhaps), you can mute their comments out with a quick bookmarklet. Note: this is hacky and will probably break at any momment.


javascript:(function() { var username=prompt("Hide comment blocks including user:"); if (username!=null && username!="") { $(".comment-header-author:contains("+username+")").parents("tr.inline-comments").hide(); } })();

Google is getting you more comfortable with the sensitivity of the data they have on you



I'm sure they're leaving out the scary stuff.

How to change keyboard layout in OS X from the shell


Easy solution is Applescript:


on run argv


  set layoutName to item 1 of argv

  tell application "System Events" to tell process "SystemUIServer"

    tell (1st menu bar item of menu bar 1 whose description is "text input") to {click, click (menu 1's menu item layoutName)}

  end tell

end run

save it as 'change_input.scpt' wherever you like. Now run it using:

osascript change_input.scpt "U.S."


osascript change_input.scpt "Dvorak"

or whatever layout you need


Note, you need the inputs enabled and the input menu enabled for the menu bar 

Average velocity


When building a product with a small team, there are two overriding "gut feel" metrics that crop into my head. "Is the team flying in formation?" and "What's our average velocity?"

I don't mean that in terms of tracker tickets cleared, bugs squashed, or code commits. I'm talking in terms of achieving aggressive deadlines. Does the team consistently outperform itself? Are you getting leaner, meaner and faster every day? Can you change directions in search of openings like a world-class runningback?


Hard metrics when tracking progress are somewhat crap. Some days are bugs, some are refactoring, some are feature building, some are slog work. Any metric is going to look like a rollercoaster, so you have to go by feel. Does the pace you're setting scare the shit out of you? I'm not talking about staying up 2 days straight to cram out a feature. That's great if you need it delivered by a hard deadline, but honestly, then you just screwed up your sleep for the week and you're going to be a waste. That's a machine out of sync.l I'm talking about your average velocity over a period of time that matters to you.

Are deadlines getting beaten, or pushed back? If they're being missed, you have a problem that you need to fix. If they're being beaten, you can handle more. Crank up the throttle and make next week hell week. Dive in with some insane deadlines and let the frenzy ensue.

NYC Tech Mobilizer



I'm running another tech mentorship program this summer.
NYC Tech Mobilizer is a free summer mentorship program for smart techies looking to get onto the inside track of NYC startups. We pair promising developers up with startup CTOs and tech leaders who can help them navigate the waters. Every mentor is a developer who grew themselves through self-improvement, connections, and years in the trenches. They want to share that knowledge with you.
Daniel Doubrovkine, Head of Engineering
Scott Carleton Artsicle, co-founder, CTO
Liz Crawford Birchbox, CTO
Pete Miron bitly, VP Engineering
Mike Lewis Fondu, co-founder, CTO
Harry Heymann foursquare, VP Engineering
Steve Jacobs Gilt Groupe, CIO
Gary Burns Meetup, CTO
Vanessa Hurst Girl Develop It!, co-founder
Dan Spinosa, co-founder, CTO
Malcolm Ong Skillshare, co-founder, CTO
Kevin Owocki StepOut, co-founder, CTO
James Linder Tykoon, VP Engineering
Zach Smith Yipit, Tech Product Manager
Application deadline is May 25, 2012

Fondu’s technology stack


Just posted on the Fondu blog a full rundown of the tech we use. Check it out!

Hiring: Front-end developer


Hey you! Ya, you! I want you to help me build Fondu's new web-app.

Node! Backbone! Fun!

Python FoursquareV2 library


At Fondu, location-based services, specifically foursquare, are incredibly important to us. Location with a social context is at the core of just about everything in our product.


When we originally migrated from PHP to Python, the offering of foursquare Python libraries was really lacking in terms of polish. So rather than bitch about it, we rolled our own. The goal was simple, Pythonic, and following the official API one-to-one. Full unit tests can't hurt either.

Naveen and the foursquare crew have been great to us as developers, so we'd like to give back by releasing our library. Check it out if you'd like a nicely-maintained foursquare Python library. As of this blog post I think it's the only up-to-date one that I could find.


The source is at

It's new, but it's already being used in a few projects, some in production. Let me know if there are improvements you'd like to see in it.

Asynchronous logging with MongoDB


One specific use case for MongoDB is as a user activity store. It's simple, scalable, and can be done asynchronously (as long as occasional failure is tolerable).

How? The gist is to keep your records in an array that you atomically push to.

MongoDB's documentation ( should get you started on understanding how atomics work. Whenever you get a new event/activity that needs logging, just $push it to your array for storage or later processing. Make sure you set safe=False for whatever Mongo driver you're using. That will let it be done asynchronously, mostly eliminating the front-end cost of the operation.

Note: Mongo's $push operation can get pretty slow on really large lists, so take that into consideration.

Dear Newegg, Goodbye. Love, Mike



I'm sorry, but you've lost an alpha-geek customer today.

I remember back in college having a motherboard and memory die within a week of getting installed. You had replacements in the mail the next day, before I'd even sent back the bad ones.

I've had hard drives arrive DOA, and every time you've fixed the problem immediately.

Power supplies prematurely dying? Check! Always an easy-to-handle RMA process.

Today, after being dragged around by UPS for two weeks, who finally ended up losing my package (no surprise from them), I went to your customer service chat expecting my problems to disappear. Instead, what I got was being told that a replacement could be shipped in 7-10 days once your claim was processed by UPS. Really? That's your solution to a pissed-off customer who has been waiting for 2 weeks on hard-drives to repair a failed RAID array?

When threatened with a charge reversal, you retreated to "you should re-place the order and ask for a refund, which should process in 7-10 days". Don't mind the $40 more that same order would cost to place now. After pressing on that, and being put on hold for 10 minutes, I'm told they would credit me the difference, in a tone that made it seem like I was being done a huge favor. Don't mind the $50 gift certificate that now gets refunded and I'm unable to use for this purchase and the extra $300 on my credit card. How does creating more of an inconvenience for me help anybody? All I wanted was for my original order to be fulfilled. Don't make your problem with UPS into mine. I'm already pissed off enough at them.

Icing on the cake? 500 character limit on their feedback form post-chat. Really? You're actively trying to discourage your customers from giving feedback?

What happened to the Newegg I used to love? I really feel like the heart and soul is dead. Customer service reads off of a script and is un-empowered to actually fix any problems.

I may still purchase here and there if you have the best price, but the loyalty is gone, along with a willingness to pay a premium for better service. Anything I would have blindly put in my cart will now get price-checked on Amazon first.

I'm sorry, but I've dropped ~$10k through Newegg since '03, and have been a vocal fanboy to anybody needing computer gear. That enthusiasm died today. This isn't a letter I write to every company that gives me crappy service or disappoints me. This one actually sucks to write because I feel like I've lost my "home" on the internet for computer gear. You guys need to get your shit together, or somebody's going to come along, treat their customers right, and steal your lunch.


All the best,



P.S. This isn't written in anger due to some perceived injustice or atrocious customer service. Their policies are not the worst that's out there. It's more sad that a bastion of great online customer service has given way to mediocrity and lackluster soul. Here's to jumping the shark.

Go to Top