I was just prompted to upgrade silverlight, and (when I accepted) was redirected to a page that looked like this:

Screen Shot 2012-07-13 at 12.53.09 AM.png

Not the most complicated instructions I've seen. But seriously, it's 2012. Shouldn't our browser plugins know how to install themselve's by now? And shouldn't they know how to override their predicesors?

Tracking commits across branches in Git

Recently I had to give a few colleagues a tutorial on how to figure out which branches a particular commit has been applied to in a Git repository. Not hard-core git by any means, but useful nonetheless.

Local Repos

If you want to see which branches in your local repo contain a commit use this command:

  git branch --contains <commit SHA>

The results, if there are any, should be a list of local branches :

    env_stage
    feature_branch1
    feature_branch1-TO-master
    feature_branch1-TO-other_branch
    other_feature_branch

In the example above the commit I'm looking for was a part of the work done on "feature_branch1", which has been merged to other_branch and master using merge branches. Since the changes were pulled into master (and I'm constantly pulling master to get the latest changes) the next time I branched from master to work on a new feature (other_feature_branch) the commits from feature_branch1 were included.

Remote Repos

If you want to see which branches on your remote repo(s) contain a commit simply add the -r switch to the command:

  git branch -r --contains <commit SHA>

The results, if there are any, should be a list of fully-qualified branch names:

    origin/master
    origin/feature_branch1
    origin/feature_branch1-TO-master
    origin/feature_branch1-TO-other_branch
    origin/acid_burn
    origin/crash_override
    origin/zero_cool

In this case it appears that the work that was done on featurebranch1 and has been pull-requested to stage, and 3 new branches have been started since: acid_burn, crash_override, and zero_cool. It would be awesome if the engineer responsible for feature_branch1-TO-env_stage and feature_branch1-TO-other_branch would delete those merge branches since we still have the feature branch, and the changes have been merged to master. feature_branch1 should not be deleted until that feature ships.

Logo orientation matters

John Gruber (the Daring Fireball) recently had a post about the history of the Apple logo orientation on it's laptop covers in which he mentioned that all other manufacturers had fallen in line with Apple's practice of displaying it correctly to on-lookers (which he recently corrected, mentioning that Lenovo has NOT adopted this practice yet).

A couple months ago I was issued a Lenovo ThinkPad W520 at work and the first thing I noticed was that logos on the back of the display were oriented such that they would be correct when I looked at them but would be upside-down to anyone that happened to look at my machine while I was using it.  Also, I noticed that my work laptop was lacking the logo of the laptop that I'd much rather be working on (ANYTHING made by Apple). So, I took the liberty of placing one of the stickers that was shipped with my MacBook Air on the back of my ThinkPad (with the proper oriention, of course).

"What kind of Mac is that?" is the usual comment.  And there's typically a good laugh once I explain the sticker, and then show them that it's the only logo that's not upside-down once you open the lid of the laptop and start working.

Thank you Steve

As someone who has experienced very little death, the loss of Steve Jobs has had quite an unexpected impact on me. Part of me knew it was coming, while another part had convinced myself it was a couple years off. Quite frankly, I'm not sure how to deal with it and there will be some crying involved at some point.

My career started in the late 90's and I worked exclusively on Windows. The average Mac users that I knew annoyed me. They were always complaining about incompatibility and they typically knew less about computers, in general, than Windows users. As it turned out THAT was kind of the idea. Steve didn't want the average user to know about the specs of their machine, he just wanted them to have the best experience possible. It wasn't about specs, it was about experience.

I didn't fully grasp that until October 2008, when I gave my wife an iPhone 3G for her birthday. I had the AT&T Tilt at the time and was pretty damn excited about the prospects of writing apps for the windows mobile platform. One problem though, I couldn't take my hands off her iPhone (literally) and it actually sparked a few arguments (sorry babe). I quickly made the decision to switch to the iPhone and have never been happier or more confident in a decision.

That iPhone purchase led me to other iPhones, my first MacBook, a MacMini, a couple Apple TVs, and an iMac. I couldn't be happier with ANY of those purchases. I didn't feel that any one of them was overpriced; in-fact, I priced out my iMac against the same computer (if assembled from mid-range parts at a very reasonable online retailer) and my iMac ended up being cheaper, after OS/software licensing fees.

Steve Jobs changed my life in the 80’s, but it took 20+ years for me to find out. He had a vision, he sold it, and he delivered. I will be forever grateful for the influence he had on the industry, the world, and eventually me.

I am deeply saddened by the loss of this truly remarkable man. I was not ready to see him go. My deepest condolences go out to his family and loved ones.

Thank you Mr. Jobs.