SF Cable Car Route Llamas, Alpacas and Mutants Fall Colors Mardi Himal Trail Golden Gate Zabriskie Point Prayer Flags Sunset Chinchero at Sunset Annapurna South in the Early Morning Fish Market Cementerio de Trenes de Uyuni Night Cats Sunset From Moro Rock Very rare deserted street Half Dome at Sunset Machhapuchhre Sunset from Marshall Beach, SF Grafitti The Danube at Night Annapurna South Under the Stars Mardi Himal Trail Rolling Fog Prepping to FIght Boudhanath Stupa Sheepherders and Annapurna South Cumhuriyet Anıtı Phewa Boats Alamo Square Bluebird Skies Stars Over Annapurna South White Mountains Sunset Fog Rolling In Half Dome at Sunset Vocano Scarred Mountains The Golden Gate at Night Old Man in Siding Twilight Fog Market Flags Bodie Eastern Sierras Under Shadow Snow and Shadows Temple Statue Marin Headlands Sand Dunes Hong Kong from the Peak Bay Area Sunrise Yosemite Fall Leaves Monument Valley Green River Canyons at Sunrise The Blue Mosque Buildings and a Bridge Cropped Crosswalk Headfirst Pisac Hillside The Buttermilks Rooster Fights at Forest Camp Resting Zabriskie Point Photographers Annapurna South

Watch the Olympics on Your Mac From the US

August 08, 2012 —

The Olympics are in full swing, and I've really been enjoying watching them. I spent some time tonight figuring out how to stream the BBC's iPlayer. While doing the research, I figured out how to easily stream the BBC's coverage of them on my Mac, for free. It involves a bit of terminal hackery, but isn't too bad for a layperson.

First, open up Terminal.app. Then do the following:

> cd /etc
> sudo mkdir resolver
> cd resolver
> sudo sh -c "echo 'nameserver 142.54.177.158
nameserver 198.147.22.212' > co.uk"
> sudo cp co.uk bbchdsodsecure-f.akamaihd.net
> sudo killall -HUP mDNSResponder

So, this will set up two new nameservers for tunlr.net. But the nameservers will only be set up for any sites under the *.co.uk and *.bbchdsodsecure-f.akamaihd.net domains. The final line will flush the DNS cache on Mac OS Lion and Mountain Lion (all versions are here).

Then point your browser to http://www.bbc.co.uk/ and enjoy the stream.

Tahoe Rim Trail 50k

August 06, 2012 —

This wasn't my first 50k, and it sure won't be my last. But it was quite a memorable one.

My first 50k was back in December 2011, at The North Face Challenge Championships which are held every year in the Marin Headlands. After completing my 30k in 2010, I went on to do really well (for a first time 50k) on The North Face Course. I had a goal of finishing within 8 hours, and then I ended up completing the ~32 mile course in 6 hours and 45 minutes, demolishing my goal.

Since I had done so well, and enjoyed the 50k, I was easily swayed by my friends to sign up for another 50k; the Tahoe Rim 50k. The run starts at 6900ft above sea-level, has around 6800ft of climbing, reached a low of 6500ft and a high of 8900ft. I signed up for the run in January and decided to start training. Then I forgot to keep training.

A terrain view of the course route (click to zoom in)

Months kept going by where I would remember to train and that I should be ramping up the miles. Then I'd get busy and forget to run far. I was still running, but not the double digit runs that I probably should be have doing. Around late May is when I really tried to get more serious about running. Looking at my GPS logs, I see that I ran about 30 miles in May (mostly back-loaded), before stepping it up to 72 miles in June. And my longest run in June was a crazy 11 miler with 1300 feet of elevation gain (end sarcasm). Before I knew it, it was July, and just a few weeks remained. Plus I was supposed to taper at some point. The longest run I went on was somewhere around 16-18 ...

read more

Homebrew Package Update Notifications on Mountain Lion

August 03, 2012 —

I previously had a script that notifies me of updates to Homebrew packages via Growl. However, I recently upgraded to Mac OS 10.8 Mountain Lion. And since Mountain Lion has a Notification Center built-in, I figured I'd try to use that method of notifications rather than Growl. I found terminal-notifier which seemed to be great for this purpose. So I updated my script to use terminal-notifier and published the script as a gist. Make sure that you have terminal-notifier installed first (just run gem install terminal-notifier).

Assuming the script is at ~/bin/brew-update-notifier, you can install the script to a crontab by running sudo crontab -e, then adding the line 0 12 * * * /Users/<username>/bin/brew-update-notifier to the end of the file (substituting <username> for your username, or wherever you've put the script). I've chosen to run the script every day at noon because ...

read more

Checking for Python Package Updates at PyPI

April 01, 2012 —

I frequently find myself wondering if a bug in a Python package has been fixed and whether there is an upgrade for that package that might fix the bug. So I find that I end up running pip freeze and then having to compare the package versions to those on PyPI manually. Well, anytime you say "run X manually", you're being a chump.

I just saw down and wrote a script to get the list of currently installed packages in the current environment (so it works with virtualenv). Then it checks to see what the latest version of the package is on PyPI and prints out the status. If you work with Python and packages, this is awesomesauce.

I added the script to my dotfiles on github.

Assuming the script is at ~/bin/pyupgrades.py, you can run ...

read more

Homebrew Package Update Notifications via Growl

September 20, 2011 —

Over the weekend, I finally upgraded my system to Mac OS Lion. I also took the opportunity to do a completely fresh install of my system, doing a final TimeMachine backup before erasing the hard drive and then installing Lion off a USB thumb drive.

I have long used MacPorts as my open source package manager, but I've had issues recently with certain ports not being updated or being out of date. So I was really interested in Homebrew. The fact that it is all on github, open and actively developed really appealed to me. After getting it up and running, I wanted to port my package update notifier to use Homebrew. Doing so was really quite easy. Here's what I came up with, which is also in my dotfiles on github:

Assuming the script is at ~/bin/brew-update-notifier, you can install the script to a ...

read more

World Backup Day: How I Backup

March 31, 2011 —

Today was World Backup Day, and, in the footsteps of Ars, decided I'd detail my current backup strategy. I first started backing up regularly after an incident back in college. One day the hard drive in my laptop began making the telltale sounds of imminent failure. Then the computer stopped booting. And I hadn't backed up the drive in several weeks, which would have caused me to lose a bunch of data. I ordered a new drive, and just before I was about to install it, I was luckily able to boot my laptop and then copy the data off of it, losing nothing. Since then, I've been an big advocate of backups.

My primary computer is a Macbook Pro. Since it is also the computer that all my photos and important data is on, I don't want to lose any of it. Every day I make sure to plug in my 1 TB external hard drive that Time Machine mirrors the contents of drive to. So at all times, I've got a backup of my drive and a history of the files. I also have another external drive that I keep at my parent's house in their safe that is filled with Time Machine backups. So if my house blows up, I have something to fall back on. The problem with that disk though is that it is several months out of date. And that sucks because my data changes all the time.

But thats not all for my laptop. I also make use of CrashPlan. At home, I also have a Linux box with a 4 hard drives in a RAID 5 setup, so if one drive dies, I don't lose any data, I can just replace the drive. So I ...

read more

MacPort Package Update Notifications via Growl

January 23, 2011 —

I wrote a quick little script this morning to notify myself of updates to MacPorts via the Mac OS X notification app Growl. The script is a bash script that is designed to run as root from a cronjob (as the port sync command requires root permissions). You can find the script committed in my dotfiles repository on github. For convenience, I pasted the script below, though the copy on github will always be the most up-to-date copy:

Assuming the script is at ~/bin/port-update-notifier, you can install the script to a crontab by running sudo crontab -e, then adding the line 0 12 * * * /Users/<username>/bin/port-update-notifier to the end of the file (substituting <username> for your username, or wherever you've put the script ...

read more

Python virtualenvwrapper and Logging

January 20, 2011 —

I ran into this issue, and couldn't find a resolution anywhere online. Well, I figured it out, and thought that I'd put it online for others to find.

The issue was that I got exception tracebacks when sourcing the /usr/local/bin/virtualenvwrapper.sh script upon bash initialization. However, the exception happens while Python is running it's atexit handlers. So the stack was only 3 levels deep. I'm running virtualenv and virtualenvwrapper on my Ubuntu 9.04 server.

Here's the output of the exception that I got:

read more

Blackout Days

January 02, 2011 —

What does one do when one has a cabin in Truckee and a season pass to a ski resort that is blacked out? Well, in my case, I still want to be active in the snow. Over the past week, I decided to go snowshoeing up near Donner Lake. Family and friends parked near Donner Summit and then followed part of the Pacific Crest Trail south towards Sugar Bowl until we were able to overlook Donner Lake on a beautiful day.

Forging a Trail Forging a Trail

Icicles Icicles

Then, a few days later, on New Years Eve day, I went nordic skiing for my first time ever. We started at the State Park at the east end of Donner Lake and followed a trail several miles out, for about a four hour trip. By the end, I was definitely ready to be done with the skis, and probably won't go that long again until I'm a bit more experienced on skis (downhill and nordic). It definitely didn't sour my first experience though and I plan on going at least several more times this winter.

First Time Nordic Skiing First Time Nordic Skiing

Snow and Shadows Snow and Shadows

Looking Back on 2010

December 30, 2010 —

As 2010 winds down in the next few days, I decided to write up a summary of my past year in what, some would term, a Christmas letter. Well, it's after Christmas, so this is officially a Review of 2010 letter. I emailed out a link to quite a number of people that I've got email addresses for. So if you aren't on that list, you can find the body of work and associated pictures at my 2010 in Retrospect page.

You can keep up with me next year here on my site and through my photos at Flickr or at my gallery. I'd love to hear how your 2010 went, so write back. Hope your 2010 was a good one and all the best next year.