Making a new Mac geek friendly

This is a collection of settings that I usually use on my Mac to make them more geek and programmer friendly. They have been last tested on Mac OS 10.9.1

Feel free to use, copy, modify, distribute and critique.

If you have any additions, improvements or corrections, send them to macconfig at umeshunni dot com.

— Umesh Unnikrishnan                

Configure spaces

System Preferences -> Mission Control

Enable ‘Displays have separate spaces’


Change date/time in menu bar to include date

Preferences -> Date and Time Preferences -> Date Options : check ‘show day of the week’, ‘show date’

Change some annoying defaults

Run these commands in Terminal:

# Automatically hide and show the Dock
defaults write autohide -bool true

# Show indicator lights for open applications in the Dock
defaults write show-process-indicators -bool true

# Don’t automatically rearrange Spaces based on most recent use
defaults write mru-spaces -bool false

#Disable the ‘Show dashboard as a space’ setting
defaults write dashboard-in-overlay -bool true

#Disable ‘this file was downloaded from the Interwebs are you sure you wanna open?’ dialog
defaults write LSQuarantine -bool NO
# Disable ‘smart quotes’
defaults write NSGlobalDomain NSAutomaticQuoteSubstitutionEnabled -bool false

# Save screenshots to the desktop
defaults write location -string "${HOME}/Desktop"

# Save screenshots in PNG format (other options: BMP, GIF, JPG, PDF, TIFF)
defaults write type -string "png"

# Enable subpixel font rendering on non-Apple LCDs
defaults write NSGlobalDomain AppleFontSmoothing -int 2

# Enable HiDPI display modes (requires restart)
sudo defaults write /Library/Preferences/ DisplayResolutionEnabled -bool true

# Finder: show path bar
defaults write ShowPathbar -bool true

# Finder: allow text selection in Quick Look
defaults write QLEnableTextSelection -bool true

# Show the main window when launching Activity Monitor
defaults write OpenMainWindow -bool true

# Visualize CPU usage in the Activity Monitor Dock icon
defaults write IconType -int 5

# Show all processes in Activity Monitor
defaults write ShowCategory -int 0

# Sort Activity Monitor results by CPU usage
defaults write SortColumn -string "CPUUsage"
defaults write SortDirection -int 0

# Use plain text mode for new TextEdit documents
defaults write RichText -int 0

# Open and save files as UTF-8 in TextEdit
defaults write PlainTextEncoding -int 4
defaults write PlainTextEncodingForWrite -int 4


Common 3rd party software

Install Chrome:

cd ~/Downloads

curl -O

open googlechrome.dmg
sudo cp -r /Volumes/Google\ Chrome/Google\ /Applications/

Configure Chrome:

Settings -> Personal Stuff -> Set up sync

Keyboard Shortcuts -> Applications -> Chrome -> map “command-u” to ‘view source’

Install and configure iTerm2:

Install iterm2:

#Download a decent theme for iTerm2
curl -O

Go to Preferences > Profiles > General and mark the “ssh” URL scheme in the dropdown at the bottom. You’ll be prompted to confirm changing the default handler and you should be good to go.

Pick the homebrew theme.

Set window transparency to 25%, window size to 120×50

# Don’t display the annoying prompt when quitting iTerm

defaults write com.googlecode.iterm2 PromptOnQuit -bool false

add the following to ~/.inputrc to enable ctrl-left/right to move words

"\e[1;5D": backward-word

"\e[1;5C": forward-word

Install Sublime Text 2

Install XCode command line

xcode-select --install

Set up HomeBrew

ruby -e "$(curl -fsSL"

brew doctor 

Install some useful ports

# ImageMagick - manipulate image files from the command line

brew install ImageMagick

Tesla Model X – pick up and first impressions

So, 3 years and 14 days after I placed my reservation, 6 months and 21 days after our order and a painful 51 days after our original delivery date, we picked up my Tesla Model X 90D, VIN 22xx Saturday morning on May 21st, 2016 at the Tesla factory in Fremont, CA.

We arrived at the factory in our loaner Nissan Rogue (awful car, btw) just in time for our 11am appointment and was met at the delivery center by our delivery orientation specialist (DoS) who got us signed in and told us he would meet us right after the factory tour.

The factory tour was, without a doubt, amazing. We saw far more than I expected to see and were closer to the action than I had ever been in any other factory tour (the Boeing factory being my main comparable prior tour). The tour guide was knowledgable and was genuinely passionate about Tesla’s mission and products besides being an car geek. If you’re an owner who hasn’t taken the tour yet, stop what you’re doing and get an appointment now 🙂

After the tour, we were taken back to the delivery center, where I did the final paperwork and took delivery of the car. There were only 2-3 other deliveries at that time (another X and maybe 2 S), which was surprising since I would have thought that Saturday morning would be a popular time. The DoS spent over an hour with us, giving us a detailed overview of the exterior features and charging, interior and came with us for the first drive where he talked through the autopilot. He was thorough and very helpful. After the orientation and test drive, we attempted a recharge at the supercharger at the factory (which did nothing as we had driven only 5 miles from a full charge) and then drove off.

Fit, Finish and Options

  • We got the Metallic Blue with black multi-pattern seat, black liner and matte obeche trim, 6 seat interior, accessory hitch and high-speed charger
  • The car had 12 miles on it at delivery, lower than I expected.
  • Fit and finish was good – there weren’t any obvious blemishes or scratches when we took delivery. We did notice a couple of door trims that weren’t perfectly cut and a plastic piece of the front passenger’s seat had a gap in it. The 3rd row seats looked a lot better that some of the other earlier deliveries I had seen photos of on the forums – no exposed wire or poorly cut carpeting.
  • Love the Obeche Matte trim. I can see why they made it an upgrade for later orders
  • The black multi-pattern seats are great! They look richer in person and the pattern adds visual texture to them and I’m now glad my last minute change to the black leather seats fell through.
  • Along with the car, we got a Tesla umbrella, pen, mug, certificate of ownership, the sunshade, the 2″ hitch and a wire for the tow adapter and phone mount for the ‘blind holster kit’

The first 100 miles

After pick up and a quick lunch, we drove down to Santa Cruz along I-880 and 17 and then back up to San Francisco via Half Moon Bay along US-1.

  • The car is amazing. It drives like a dream and even with no P and no L, the acceleration is like nothing I’ve experienced so far.
  • It took me about 30 seconds to trust the autopilot features – might have something to do with all the Tesla videos I’ve watched in the past few months. Autopilot worked flawlessly, through the heavy traffic in San Jose, the curvy mountains roads on 17 and the hills on US-1. Of the 100+ miles I put on the car today, about 80 were in Autopilot mode.
  • No issues so far with the doors or windows. I was stopped on a shoulder along US-1 and tried to open one of the falcon wing doors against a strong wind and it stopped early, but that is potentially by design.
  • Parking the car in our tiny garage was tricky and summon didn’t work since I don’t have 8″ of room on either side. The falcon wings barely open in my garage and the rear liftgate hit the garage roof when it opened. Sigh, city living.
  • I must be a pretty conservative driver, since the efficiency showed 280-340 Wh/mi the entire time I drove.
  • I tried summon at a restaurant parking lot, much to the amazement of some of the diners.

Some photos below

Upgrading my 2010 Macbook Pro 13″

I have an older Macbook Pro that I bought around 3 years back. I bought it with grand plans of coding away in a coffee shop or editing photos on a plane back home, but between the fact that I do neither of those on a regular basis and the fact that I have 2 tablets, a (work) laptop and a desktop at home, this guy never got as much usage as his proud unibody self deserved.

Lately, it was starting to feel slower and slower, more so when compared to my snappy 15″ 2012 Macbook Pro Retina. So, rather than buy a new Macbook, I thought I’d swap out the 5400 RPM hard drive for an SSD drive and upgrade the RAM from 4GB to 8GB.

So, Here’s what I did:

Bought 8 GB of Corsair RAM, a 120 Gig SSD and a transfer cable off of Amazon (hooray, Amazon Prime!). Specifically, I bought
Corsair Apple 8 GB Dual Channel Kit DDR3 1066 (PC3 8500) 204-Pin DDR3 Laptop SO-DIMM Memory CMSA8GX3M2A1066C7

OWC 120GB Mercury Electra 6G SSD 2.5″ Serial-ATA 9.5mm Solid State Drive


Vantec CB-ISATAU2 SATA/IDE to USB 2.0 Adapter Supports 2.5-Inch, 3.5-Inch, 5.25-Inch Hard Disk Drives (Black)

In theory, I could have done without the SATA to USB cable, but having it made booting off of the old hard drive and cloning it into the SSD much easier.

Installing the RAM and SSD

The next step was to open up the laptop and install the RAM and SSD drive. Fortunately, the Internet is choke full of guides on how to do this. Here’s a couple that helped me:

Both of these are pretty self explanatory, but the one thing that tripped me up was that I didn’t have a torque screwdriver to remove the side screws on the hard drive and attach them to the SSD. I considered going without these screws, but thought of the SSD drive knocking around in the case didn’t seem that enticing. So, after a bit of experimentation, I managed to use a plier from an IKEA toolkit to remove and reattach these screws.

Cloning my old hard drive into the SSD

Finally once everything was firmly installed and the cover was screwed back on, I booted off of the old hard-drive, attached via the USB cable to the laptop. Note that since the old HD is attached via a USB 2.0 cable, this can be excruciatingly slow. Once the laptop booted up and I verified that the new RAM was detected, I rebooted again and hit Command-R on boot up to enter the MacOS utilities screen and clone the old HD into the new SSD. If your new SSD is smaller than your old HD (as mine was), you’ll need to adjust the partition size to make it smaller or the same size as your SSD’s primary partition – so make sure you have plenty of free space on the old HD!

This process took about an hour over the slow USB 2.0 connector. But once it’s all done, you can remove the old HD and reboot. And… everything just worked! The clunky old Macbook Pro is much faster (and quieter!) after this upgrade and I’m glad I went this route rather than plunk down a grand or more on a new laptop.

To TRIM or not to TRIM?

The one decision you need to make post-upgrade is whether or not to enable TRIM support. Apple, by default, doesn’t enable OS-level TRIM support on 3rd party SSD drives and you can find utilities on the Internet which will do this for you. However, some SSD manufacturers recommend that you DO NOT enable TRIM on their SSDs. OWC, the manufacturer of the drive I used, makes the same recommendation here, so that’s what I chose to do.

King County Metro’s City Panorama Project


One of my recent photographs, the ‘North Star in Eastern Washington’ was selected by King County Metro as one of the photos that will adorn Seattle-area bus shelters later this year. It will be printed at 92.25″ x 23.5″ and will be installed some time over the next few months!

The photo itself was taken in the summer of 2012 on a night we spent camped out near the town of Easton during the Perseid meteor showers. It’s a 15 minute long exposure of the night sky centered on Polaris (North Star)

Because of the Earth’s rotation, it appears as if all the stars are revolving around the North Star and because of the 15 minute exposure, it looks like the stars are traveling in an arc.

North Star over Eastern Washington


How To Get That Next Product Manager Job (at Google etc…)

About once or twice a week, I get a email or a LinkedIn question from someone asking me about Product Management roles at Google.

I used to spend 15-30 mins in a call with many of these folks, but then I found the following deck created by my colleague Shreyas Doshi which answers the most basic questions that people have:

So, if you’ve been wondering how to get that PM job at Google (or Facebook, Yahoo, Groupon, Zynga and other Silicon Valley tech companies), take a look at that deck and have the basics covered before you shoot a request to me (or your other favorite tech PM).

Here’s another good response – from Edward Ho on Quora:
Read Quote of Edward Ho’s answer to Google: What makes someone a great product manager at Google? on Quora

Making the best of a startup weekend

I was at the Startup Weekend event in Seattle last weekend and many people asked me how my experience was, so rather than reply to each person individually, I thought I’d write it up.

This was my 5th Startup weekend since I attended the very first one, back in 2008. Over the past four years, teams that I’ve led or been a part of have attempted to build a social enterprise directory (Skillbit), a unified social invitation tool (Onevite), a twitter-based business intelligence dashboard (Bitter), a social video watching application (Shubz.TV) and most recently a re-imagined dining experience (TableSurfing). As with 99% of startups, all of these idea have failed to get any traction beyond the very busy weekend it was conceived in. Even then, the experience of pitching an idea, building a team, learning some new skills and generally meeting some other smart and passionate people have kept me going at least once a year.

Here’re my tips to make the best of your experience at a Startup Weekend and other such hack-a-thons. I’m going to assume that you have a well paying regular job, actual marketable skills and are actually interested in building or working at a tech startup and that is your intention in attending these events.


Manage your expectations

At startup weekend, and life in general, managing your expectations and seeing beyond the hype is key to avoiding disappointment. So, let’s get real – you’re not going to build your billion dollar startup here[1], you may not even build anything past the login screen of the application you’re working on. You’re not going to meet your dream co-founding engineer here. The brilliant idea you thought of during your drive over the 520 bridge will not be met with a standing ovation and a flock of angel investors elbowing their way to your table.

More than likely, though, everyone else will think your idea sucks, everyone you meet will be a social media consultant whose primary skill is tweeting at 140 words a minute and every idea you hear will be a rehash of something you read on TechCrunch last year.

If you’re lucky, you might meet one other person who thinks your idea is kinda neat and gives you some feedback, find someone who shares some interests with you or has some skill you don’t and you might learn a couple of a CSS tricks you didn’t know before. If you’re really lucky, you’ll build an interesting prototype that gets a few rounds of applause and a sponsor might give you a $30 credit towards their service. So, aim high, but expect nothing.

Go with a skill.  Learn another one.

The best use of your time at startup weekend is to learn a skill that you’ve always wanted to hone. Now, if you’re never coded before, don’t go there expecting to become the next Linus Torvalds by watching someone hack Javascript over the weekend. But if your primary skill is in coding backend services and you’ve always wanted to dabble in front-end or design, this is a great opportunity to do so without taking that risk on your day job on someone else’s dime. If you’re a visual designer and wanted to get better at your CSS and HTML or if you’re an engineer looking to learn some project management or business skills, help out with some market research or in writing up a survey for the user researchers on the team. Or try helping out in your project’s demo and presentation to help you get over that fear of public speaking.  Everyone appreciates a helping hand, especially when you’re clearly contributing and helping the project move forward and are willing to learn patiently. Observe, ask questions, pick up tips and tricks and learn some new tools, but don’t expect anyone to give you a 101 in anything.

It’s not about the idea. It’s about the execution.

Unless your idea involves using a Kinect to help autistic kids or something so radical and yet obviously useful, don’t think that it’s going to be a sure hit at the event. So, stay even if your idea isn’t ‘picked’. Conversely, don’t keep your big idea a secret because you want to work on it on your own. There’s no worse pitch that “I have an amazing idea, but I can’t tell you what it is unless you want to work with me on it”. More likely than not, two others pitched that same idea at Startup Weekend Kansas City two weekends back. So, share the idea, get feedback and be willing to pivot to something else over the weekend. My friend and regular startup weekender Danielle Morrill of the YCombinator startup writes about how she talked about her idea at a startup weekend a few years back, collecting feedback and tweaking it before she felt it was ready for primetime. Did anyone else ‘steal’ that idea? I don’t know, but it didn’t matter, they didn’t execute on it. Ideas are cheap and execution is key, so don’t be a Winklevoss – if you were smart enough to create your idea, you would have created it.


Stay till the end, even if you think it sucks.

There comes a point, every Startup Weekend, usually around Saturday evening, when nothing seems to be going well – half your developers have quit, you found two other VC-funded startups that are doing the same thing you’re doing and there’s disagreement on whether the idea is worth pursuing at all. Time to call it quits and get back to your regularly scheduled weekend instead? Maybe – I’ve done that at least once, but the times where I’ve stuck out till the end, I’ve generally learned more than I did on any other regular Sunday. When I worked at Microsoft, they had a tradition of rewarding everyone who stayed on till the very end of a project and actually shipped something as opposed to those people who left after the glamorous part of the project was done and a beta was launched[2].  Showing what you built to a few hundred people and getting their feedback is worth sticking on to the end, so do it! Also, in my experience, the best networking opportunities are at the end of the event, when everyone’s done working on their idea and are more relaxed. People are also more likely to be interested in talking to you when you’ve gone up on stage and presented something interesting.


Take your business cards with you.

You’re either the 7th Dave or Steve I met at the event or you have a unpronounceable last name like mine which no-one will be able to Google for on Monday morning. So, take a stack of business cards with you. If you don’t have a professional business card (or don’t want to give out your corporate one), get a few made at [3] – make it interesting and memorable. If you think you need 50, make 100 and take them with you. Hand them out generously. This is the best $9.95 you’ll spend for the event. Pro-tip: Put the URL (or QR code) to your LinkedIn profile there – LinkedIn’s great for keeping track of people you meet at such events and this also avoid the awkwardness of people you met for a few hours adding you as friends on Facebook.


Extra power cords will get you liked. MiFis and other portable hotspots will buy you love.

And finally, a logistical tip: This may sound obvious, but 200 geeks with multiple always-on devices will tap out the power and internet connectivity at even the best venues, especially when half the audience decides to download Visual Studio or Xcode at the same time (true story). If you have an unlimited/tethering-friendly data plan or a MiFi, take it with you and share the bandwidth at least with your team. There’s nothing worse than not being able to Google that error message just before your demo or having to find a flash drive to copy those splash screen images from your designer. Extra power cords are nice too, I’m personally a huge fan of PowerSquids.

At the end of the day, Startup Weekend is just like any other networking event – it’s whatever you make it out to be.  Can you put that time to better use elsewhere? Quite possibly – if you were disciplined enough. But really, it’s 54 hours of your time that you’re most likely to otherwise spend running errands, lazing around or socializing. So, why not?

If you’ve been to a startup weekend, what are your do’s and don’ts?


[1] This isn’t strictly true – there have been a few successful exits of startups that originated at Startup Weekend.

[2] Granted, this was Microsoft, so the ‘reward’ was a sticker.

[3] Moo makes beautiful, if expensive, customized business cards that I love. If you look around, you can find some (much) cheaper alternatives.

Startup Weekend Seattle 2013 group photo

Moved my blog to WordPress (and upgraded it to 3.0)

About a year(!) back, I moved my blog from Community Server 2007 to WordPress. I did this since upgrading to newer versions of Community Server on a shared-hosting GoDaddy account was next to impossible. After reading through probably two dozen articles, howtos and hacks, downloading a couple of conversion applications and trying to set up a local copy of Community Server to ease the upgrade, I decided to bite the bullet and move to something simpler and WordPress stood out as something that everyone recommended.

I was reminded of my attempts to upgrade CS2007 today when I read about the new version of WordPress that was released today. Battle bruises from my CS upgrade attempts still fresh in my mind, I tried to figure out how to accomplish the same with WP.

To say that it was a smoother, simpler experience would be an understatement:

Step 1: Visit the WordPress upgrade page (/wp-admin/update-core.php">http://<yoururl>/wp-admin/update-core.php)


Step 2: Click on Upgrade Automatically



2 minutes later, I had a new version of WP installed!

The decline of PC gaming

    Interesting discussion I read on Kotaku a few weeks back about what ails PC Gaming:

    As a former PC gamer (the Quake series, Age of X series), I moved to the xbox about 4 years back and never looked back and can identify with most of the reasons mentioned in the post. In addition, my opinion on what the decline of PC gaming can be attributed to is below:

    1. The XBox: Once Microsoft stopped caring much about PC gaming, there isn’t as much big ad money and slowly, others stopped caring as well.

    2. The rise of MMORPGs: World of Warcraft and others sucked the hardcore PC gamer market dry. After paying $5-15/mo for a single game, there isn’t much dough left to go around.

    3. The FPS wars: When a reasonably new PC cannot run any game published in the past two years without upgrading to a $300 GPU, there won’t be many gamers left to buy your games

    4. Flash games: Casual gamers have a zillion flash games to choose from. Easy, free and portable.

    5. Laptops: Laptops just don’t make great gaming machines with their integrated GPUs, poor keyboards, trackpads and so on. Given that laptops make up the majority of PC sales these days, it’s understandable why PC gaming doesn’t appeal to a lot of those buyers.

    So, to summarize:

  1. People who want to play games have other, better options now.
  2. PCs have become worse game-playing machines than consoles.

    Nothing new or revolutionary here – just thought it was worth writing up

My mini-review of Digsby

As I mentioned in another post, I have contacts I care about on just about every IM protocol. Since an open instant messaging protocol is still a bit of a pipe-dream, I have to rely on multi-protocol messenger clients. I’ve been using Miranda, Trillian and even meebo for some time now, neither of which are perfect but sufficed for 99% of my IM needs.

However, many of my friends are now on Facebook and some of them do not use any IM application. I mostly use the Facebook iPhone app to access Facebook on the go and it does have facebook chat integration, but the iPhone multi-tasking limitation means that’s it’s not possible to IM while doing other things which really beats the point of using IM as a low-distraction, background communication method.

So, this brings me to this little app called Digsby that I discovered while searching for a better solution to keeping on top of my communication needs with limited time.

My mini-review of the app:

Digsby looks and feels like any other Instant Messaging app:


It’s got all the standard stuff – contact list, presence icons, popup notifications and like most 3rd party clients, has support for multiple protocols, single window IMs etc. It supports all the standard (sic) IM protocols like AIM, ICQ, Yahoo, MSN, Jabber, GTalk etc. Unlike most other clients I’ve seen, Digsby also supports facebook chat and it works just like  you expect it and in my experience is way more reliable than facebook’s AJAX inline chat widget.

The IM features are generally well done and there are some niceties like being able to reply to a message from the notification window itself (

Beyond IM, what I really liked about the app is its support for various social networks such as Facebook. Hovering over your facebook account icon in the main digsby window show above brings up a popup window with your current news feed and alerts:


Digsby also gives you pop-up toast notifications for your facebook newsfeed (I.e. friends’ status updates, wall posts etc), which is really useful, especially for friends’ status updates.


In it’s current incarnation, however, the toast doesn’t contain all the details for some updates (i.e. it tells you that Foo got a new wall post, but not who it’s from and what they wrote), so you still have to visit facebook to view those details. I’m not sure if this is an app limitation or a limitation in the facebook API.  


And as might be expected, it lets you update your facebook status from the app itself:



The other social networks Digsby supports are MySpace, LinkedIn and Twitter. I don’t use MySpace and didn’t think my LinkedIn updates were interesting enough to warrant real-time tracking; so, I’ll assume that its support for those networks are also at more or less the same level as its support for facebook. I do, however, use Digsby’s Twitter integration. Like with facebook, hovering over your twitter account icon brings up a newsfeed with your twitter timeline:


Like the twitter website, links above the Digsby’s twitter timeline view lets you filter the view to only replies (i.e. @username tweets), direct messages, favorite tweeters tweets etc. You can also reply to your followed tweets, favorite them, DM the tweeter etc from the popup.

Again, as expected , you can send tweets through the app itself:


An added feature here is the ability to insert tinyURL-ed links directly into your tweet from the status update window.

After IM and Social Networks, Digbsy also does email integration beyond the basic ‘You have new mail’ notifications that most other apps provide. Along with the IM integration, it also notifies you of new mail in most of the common webmail providers, but what I really liked about it’s email integration is the ability to check any POP or IMAP server for email. This makes Digsby useful as a generic mail notification app which can replace the gazillion gmail/hotmail notifier type apps out there. There’s also a nifty feature that lets your reply to emails from a small popup window without opening up the browser or a full fledged mail client, but I haven’t had much success getting that to work.

Important: Digby now has a very spammy installation app which tries to install a bunch of crapware such as the Yahoo Toolbar on your PC. Remember to opt out of all that before installing it. See and You might also want to disable their the ‘Digsby Research app’ which is a grid computing client which will steal your idle CPU cycles.



I’ve seen another app ( that claims to do all this and more (voice call support, web-only version). I haven’t tried it yet, so I can’t comment on it. SociaGami ( is another app that does (only) Social Network aggregation with more features (browse friends, view photos), but doesn’t seem to have any IM integration. The other reviews I’ve seen on the web generally rate Digsby above the other similar apps.

So, to summarize, Digsby has good IM integration, works well with most of the popular social networks and free webmail providers. It’s relatively lightweight, has clean UI (other than the ugly icon which reminds me of the Ninja Turtles) and is generally straightforward to use. On the other hand, it’s not extensible like Trillian or the open source clients, so you can’t expect it to support anything it doesn’t currently do unless the developers change their minds. I also hope its spammy installer is not a sign of things to come for this app.