Embracing Winter

Learning to snowboard Learning to deal with winter has been a fun and worthy activity over the past few years (and the opportunities are slightly more available here). First up, learning to snowboard has both been fun and a nice break into outdoor activities that don’t (always) involve heading up hill by my own power. The first lessons went well and I feel like I’ve slowly come along and love working at it each time I get the chance to hit snow. Last winter’s snow wasn’t “the best” (or so I was told) and this year I got some first hand experience with some good powder days… which may have spoiled the icy-snow days.

This winter, I decided to finally take on proper snowshoeing. I’ve taken to the trails in winter to hike, but this year I got to enjoy a few good days out on snowshoes. I have explored Brainard Lake, the Colorado Trail, Golden Gate Canyon, and even a bit around Rocky Mountain National Park.

SnowshoesWinter is hereHere’s hoping I can sneak in a few winter days as spring continues to happen down at lower elevations!

Keeping context

I tend to work on multiple projects throughout a day. Occasionally larger projects may soak up most of a day but there is still a tendency to jump around. And projects that often mean that I have a vagrant box running for that project, a git repository that I’ll interact with, and quite possibly several other fairly similar tools or links.

Keeping track of this can be quite a headache when you’ve been in a single frameset for a while. I often have my git folder open in one terminal pane, with a vagrant SSH session in another, perhaps another terminal open for something else related. That could mean changing two or three different windows to different locations or commands. That’s quite a bit of spin up time.

To help with this, I created the Context tool, which is a project switcher. Autojump tools like z or j get you pretty close. You can enter commands like: z project and it’ll take you to that project. You can even do some nested commands like: z project sass and it’ll go to your SASS folder inside that project. Hopefully.

The Context tool allows you to create configurations in JSON to represent your project. You can specify the pieces you need or don’t. You then get a uniform approach to working with multiple projects. How does it work?

First, you’ll install the library. I hope to someday have this in brew or other tools to make it easier but for now it changes a bit between versions. This will give you a command called context (or something a bit smaller if you want to alias it!). Then you will create one or more projects in your contexts file (normally ~/.contexts).

You can switch contexts:

Some commands, like git, require that you run them in a specific directory (or directories). But you may be in a terminal window somewhere else. Context fixes this by allowing you to run those commands in their proper place: context git status.

So in one terminal tab I’ll usually run something like this:

That’ll switch projects and open up my git repository in my $EDITOR. In another tab, I’ll run this to launch my vagrant box for that project and SSH into that:

You can configure your context with a link to the website or dev site and open it with:

Context also lets you have links that have specific keywords. So, if you want to open up your login page you might enter: context link login. Or if you need to login to your dev site, context link dev-login. These can change from project to project: it’s just an object in your configuration file, but it is even better if some of them work between projects (because then you have the same interface between two different contexts!).

The library is also extensible. You can add either new commands or plugins. Commands are extensions like “git” or “vagrant”. These are common behaviors or tools you use on your project. Plugins can subscribe to events (currently when a command is fired) and run on that event. One of the contrib plugins will catch when you’re switching projects and allow you to turn off the current vagrant box before switching!

Check it out. It’s still a bit of a work in progress and pull requests are welcome:

https://github.com/robballou/context

Creating an SVG file with D3 and Node.js

On a recent work project, we were using the D3 library to create some graphs. But the graphs were on a page that we also needed to export to PDF and so we needed some static versions of those graphs to use with a <img> tag. At first, I thought this was going to require using a different command line library that could help generate the same file but wasn’t happy with the prospect of two separate code libraries to get the same graphing.

Since we’re JavaScript to make the graphs, let’s see if we can run that graphing code with Node.js and save that output to a file. And it turns out this is fairly simple.

First, we need to get Node setup with a few packages. We’ll need: d3 and xmldom.

Next, we’ll take start with this example doughnut graph. So we’ll take that code and load it into a script we can use with node:

This will run the graph code for us in node when we run: node graph.js. But we still want this saved out into a file. This is where xmldom comes into play:

The second script is similar to the first, but we’ve add the xmldom module so we can serialize the object to XML and added fs module so we can save the data to a file.

And you’re done! Well, kinda. This will likely save the SVG file with capitalized XML tags, which you will have to convert to lowercase to have a working SVG file: http://stackoverflow.com/questions/20693235/get-lowercase-tag-names-with-xmldom-xmlserializer-in-node-js/20704228

Turkey Weekend Adventure

Sometimes, you catch the corner of an idea and eventually flesh it out into something whole. The idea of getting away for the Thanksgiving holiday had floated around in the back of my head for a little while but hadn’t quite fermented into a real adventure. I wasn’t headed home this year and many friends were either traveling or with family the entire weekend, so it seemed like as good a time as any. As the holiday grew near, I went through a mad rush of planning. There’s so many great opportunities near Denver that having two days off work opens up so many options. It was a bit overwhelming trying to narrow it down.

The first day of this adventure was a simple straight shot from Denver out to Fruita, Colorado. The only variable here was, since it’s winter, the drive and finding camp would be all in the dark. So I drove, passing the furthest point along I-70 I have driven since I moved to Colorado. Snow loomed out the windows as I drove past Copper Mountain, Vail Pass, and Vail itself. Eventually the highway twisted through what I could only really picture in my head as a canyon. I arrived in Fruita and drove north to the 18 Road campground area for the night.

11175314723_dce1d40e6e_z

Thanksgiving morning, fully expecting to be woken up by the sunrise, I woke to a cloud of cold fog and frost. I prepped some breakfast, hot tea*, shivered into cold bike clothes and then rode off into the fog for some adventure time on some 18 road singletrack. This trip I opted for my singlespeed partially because I need to do some repairs on my geared bike but also I just felt the urge to ride some singletrack and enjoy the journey. I climbed up Prime Cut which I found to be a fun twisty track through some juniper trees with some light easy rock sections. Then I hiked my bike up to Chutes & Ladders and made my way around that trail. This was steep and curvying, a bit soft in places, and some of the uphills were too much for one gear but a beautiful area to explore. That dumped me out onto a frost covered plain and eventually down to the trailhead. Still ready for more and still slightly ahead of whatever timetable I could say that I had for this adventure, I rode up Vegetarian trail to Down Uppity. Based on what I rode, I think it’s between Down Uppity and Prime Cut as my favorites … but there’s too much more to explore there.

I loaded up and drove west to Utah, hoping to leave the fog and cold behind me. For a few minutes that seemed possible. Down in Fruita the fog was clearing and there was a patchy blue sky as I made my way into Utah. But as I drove further, past the exit for Moab I could see snow to the south. Eventually I turned south to go to my destination of Capitol Reef National Park. It took about 20 minutes of driving and suddenly I was in a winter desert. Fog covered most of the low areas and the cloud ceiling capped the high mesas and mountains. I crossed frosted plains and washes and finally arrived in Capitol Reef to a snowy canyon. In camp I found a spot with enough space to for a tent (I was one of two people there with a tent) and then took off on a short hike to a near by overlook. The trail started out with red mud and snow, a flash back to a Grand Canyon trip years and years ago. Once in Cohab canyon there was a bit of snow and ice, but mostly it was just normal sand and rock.

Again, I expected to wake by the sun and see this place where I was camped in the sunlight. But it was still cloudy and foggy and very cold. I later found out it probably got close to 20 degrees in the campground. I also found that my neighbors (three deer) and their friends (three turkeys) had a bit of a party in my campsite including finding one hoof mark inches from where my head was! I had decided to go hike to Navajo Knobs and set out into the cold and fog. This trail climbed for a while which helped with keeping warm. It alternated between trail and sandstone cairn-finding and included some great views of the canyon. At two miles in I reached the rim overlook. Contemplating the time and a desire to get to Moab (where I hoped it would be warm and dry!), I opted to cut the hike short and drop back down. Capitol Reef looks like it offers some more exploring and if you happen to be there at the right time might even have pies for sale!

I drove to Moab, stopping at a gas station that was carved inside of a hillside, hoping to get a bit of sun. Even though the winter terrain I passed through the day before had changed to a slightly less winter version, the cold and the clouds remained. As I entered the Moab fault area, the tops of the mesas and canyons were hiding in clouds, barely showing some snow hiding along the rims. I opted to stay in Arches National Park and even got a small hike before dark. The next day I figured I would head out to some of the north Moab trails since they seemed out of the snow and were north of town which was slightly warmer (things like this seemed backwards…). Willow Springs Rd was soft in areas, but the trailhead itself was loose clay that I felt lucky to escape. So I resigned to riding Slickrock which isn’t a bad choice in itself. My bike choice was made because I was hoping to ride some singletrack in the area and wasn’t really planning on hitting anything really rough or technical. Having ridden part of Slickrock before I knew it was going to be a challenge with one gear.

11175317853_4a18fc6a93_nRiding a hardtail out there wasn’t as bad as I anticipated (I didn’t hit some of the bigger drops and even some of the steeps), but one gear was difficult. Often I wasn’t keen on letting loose on the downhill to have momentum for the up and in some places this just isn’t an option. I grinded out a several tough climbs, feeling that point where you’re so far over the front of the bike and the wheel starts to tip up anyway. Some just required walking which is a challenge in it’s own right in bike shoes… In the end I did the practice loop, part of the main loop and the took one of the alternates back through the middle. The parts in the middle were often steep, off camber, or both!

Since there was still a good bit of daylight and riding options weren’t that prevalent I made the decision to head over to Canyonlands and check that out. Canyonlands’ Island in the Sky district was ensconced in cloud and winter and I as drove through the park I spied a coyote disappearing through the scrub brush. I went for a short hike and camera time to the Upheaval Dome area. It was fun skimming along the rocks in the frosty desert but the cold had started to really toy with my brain. Facing my third and last night camping in sub-30 degree temps, I decided to head into town and grab some food and brew at Moab Brewery. Sitting at the bar I chatted a bit with some other people that were visiting the area before rolling back up through Arches to my campsite.

The last morning was pretty much the same: rolling through low clouds and cold. But as I drove through Glenwood Canyon, the sun final broke out and I had a normal sunny Colorado day all the way home.

* I ordered a new coffee filter for making camp coffee but had it delivered at home instead of work. So tea was the beverage of choice the entire trip.

Photos: http://www.flickr.com/photos/rballou/sets/72157638287346414/

Argentine Pass Madness

A while ago, I hiked Grays and Torreys which are a couple of popular 14ers near the front range. When I was back in civilization I looked around at the surrounding area on Google maps and noticed a road that went up to a nearby pass. I switched to satellite and I noticed a trail dropping down the opposite site of the pass. And then I noticed that the trail dropped down to another road connected to roads that went over another pass. On and on that went, until I figured out a loop of mostly 4WD roads, a bit of unknown-to-me trails, and some pavement.

I plotted this for a while, making notes and tweaking the plan a bit. I went out and took on some scouting rides in the area to make sure a few roads connected and get a sense of what I was in for. In the process I sent out feelers to see if people wanted to ride with me (part or full) or crew for me.

Overall, the ride plan was simple: set out early with lights and knock out the ride in 8 – 10 hours. In total there would be three passes, mostly dirt except for the finishing climb and descent. In all honesty, there was a good bit of hesitation for me personally as this would be the longest mountain bike ride I’ve done in Colorado and likely would be the most climbing as well.

The ride started in Silver Plume, CO on the Argentine Grade trail, an old railroad grade trail and then over Argentine Pass, at 13,200 feet and the highest vehicle accessible pass in Colorado. I drove up and arrived just before 5 a.m. and started getting changed. My car was telling me it was 38°F as I changed into layers while still in the warm car. I started out, up the unknown Argentine Central Grade with lights and an easy pace. While this trail was a railroad grade, there were some things to keep it interesting: a few rocky sections, a tight switchback or two. In the dark I passed some old mining areas and got to an old chimney about the time the sun was starting to rise. For the most part, this road was straightforward but there were a few more turns then what I noted on my cue sheet. For those interested, I found these two maps of the trail: south north

Argentine PassThe sunlight crested the ridge just about the time I reached the Waldorf mine while a nearly full moon rested on the horizon. To this point, I saw one or two people out on 4-wheelers but not another soul. Certainly I was the only one riding a bike! After taking in a bit of the sights around Waldorf, I started the next section up to Argentine Pass. At first this was just a loose rocky climb, like what I expected. Since I could see much of the road I was expecting a few sections to get too steep and require a bit of hiking. Little did I realize the “normal” portions of the road were indeed steep in there own right and the other sections were merely truly steep. At one point I hoisted the bike on my back as I tried to crest one of the blown out switchbacks.

As I reached the summit (an hour or two later than I expected), the wind was gusting strongly enough to lift my bike into the air. I didn’t really hang out on the pass summit and started hiking down the Argentine Trail. With the strong wind and a rocky trail, I opted for walking the beginning of the trail. Then I realized the “trail” was just so narrow, rocky, and exposed it really wasn’t safe to ride. At a few points the bike and I could not both walk down the trail side by side. Half way down the scree slope there’s a large rock face that required down hiking with my bike — which was a unique experience. As the trail leaves the scree slope, you still deal with some chucky rocks and some wet trails as water rolls down the trail itself. Then you get to cross Peru Creek, a fast moving cold flow of water before reaching the Peru Creek Rd.

I took a break, ate some food, removed my light and changed for the warmer temps. As I did all this I encountered the only other cyclist I would see the whole day, a guy on his new cross bike exploring the road. I debated if I should continue this crazy ride since I was already off schedule or if I should bail and climb Loveland Pass back to Silver Plume. The decision came down to hoping that the Peru Creek Rd would help me gain a bit of time, but also I was feeling pretty good despite the hiking of the last couple hours.

When I reached Montezuma Rd, I tried to send out a tweet/messages saying I was going to head over to the second pass. Webster Pass is a 12,100 foot pass that’s accessible from the north via Montezuma or from the south from Hwy 285. A few weeks before the ride I had scouted this pass from the southern approach and knew that for the most part this pass was much more rideable (if I still had the energy!). From Montezuma you have a nice smooth dirt road climb until you reach the turn for Webster. It becomes steeper and rockier, but is still a fun bit of riding. At one point you reach Snake River (the one that flows into the Keystone resort), which I crossed by a narrow log bridge.

Immediately after crossing this road, I started getting passed by a few groups of 4WD vehicles. One of the few headed down stopped to tell me he thought I was crazy for riding this pass. I smiled and didn’t tell him I had been up above 13,000 feet already!

Webster PassWebster Pass from this north side is viewable from pretty far up the road and the road is actually a pretty fun climb until you get into the first switchbacks when it starts getting slightly steeper. The switchbacks themselves are slightly loose and bermed out for downhill traffic which adds to the challenge. In retrospect, this was a key point when I should have been putting in more calories into the tank. I didn’t clean this climb even though it was much easier. I did eat at the summit of this climb, but wasn’t feeling very hungry. One of the lessons I was good about picking up for Dirty Kanza and other long rides was: eat, no matter if you feel hungry or not.

So I bombed down this road, realizing part way down that every descent today has felt really rough … meaning I had the front end locked out. A good thing to realize 30+ miles into a ride, right?

About two thirds of the way down Hall Valley Rd, I opted to takeBurning Bear trail on the left. I stopped and grabbed a bit of food and rearranged some clothing that I had added at the top of the pass. The start of the trail is a bit narrow and rocky, but after that it opens into a long, continuous climb. For much of the time it’s not too bad … but I was starting to bonk. I was entering a familiar stage of riding: ride for a bit, feel like you’re going to explode, and then rest. I walked much of this just because it required just enough finesse to make riding it difficult. About two miles in there’s a switchback that dumped onto the an abandoned road that had degraded to a steep path covered in loose orange-sized rocks. It made for a frustrating hike a bike at that stage in the day. If you happened to be near by I think you would have heard me lecturing the woods about how the trail would be better off to one side or the other of this horrible path.

At the top of this climb, I got to enjoy some fun descending through some rooty and rocky woods. By the time I got next to the meadow by Guanella Pass road, I was thoroughly cooked. Even few seconds I would look over at the road and then curse the trail for not heading there immediately. But eventually I made it, grabbed some food and then hit the paved climb. For a while this felt nice, simple. I can spin an easy gear and just get up the hill. But as the climb left the meadow, the road started climbing higher and the effort went above the threshold that was left me. I climbed. Stopped. Picked some new sign/rock and rode to that and stopped. Repeated this process a dozen times. Stopped on the side of the road and sat down. Walked up the road a couple times. Finally I could see the last bit of the South Park trail as it gets close to the summit. I could see the willows below Bierstadt. And finally, the “Guanella Pass Summit Area” sign. I pulled off the road, tried to check if I had signal to tell people I was alive, at the top of the final pass but didn’t have signal. I sat on a rock for a bit, layered up some more for the descent, tried to eat. I realized I had essentially made it. All I need to do was get back to my car…

Guanella Pass

The Guanella descent was a blast, especially on big wheels. But I could tell the back tire was getting a bit low. And I was still cooked. When I got near the water plant, the little riser there drove me to zone 5 instantly. I stopped near where Leavenworth Rd meets this road, partially to rest but also to debate heading up it to get back to Argentine Central Grade. At this point some jeeps were headed down the road and that gave me a good impression of just how steep it was. I decided to take plan B: descend to Georgetown and take the bike path back to Silver Plume. I also decided I should have just parked at Georgetown and saved myself from the humility of stopping to rest along the bike path while traffic on I-70 blazed by.

And the final march down the path and into Silver Plume, I watched as the sun began to drop below the mountains to the northwest. The hillside where I had started was glowing green and the aspens that were slightly yellowing welcomed the bit of a breeze. Finally my crawl ended when I made it back to my car. My gear was unceremoniously dumped into the back of my ride, the bike put on the bike rack. I battled a bit changing clothes, sat in my car spaced out. Eventually I drove down to Georgetown, got myself the worlds worst recovery snack: a Coke, chocolate milk, and some chips.

I’m proud of knocking out this ride. It had a chance of being too difficult, of being a bit dangerous, but in the end it was just a long, but fun day. I also wish it was something more than what it was. After spending a week writing about it, thinking about it, looking back at photos, I just wish the trail sections were more magical, that the road to Argentine was more manageable. That’s not something that you can just discover finding things on a map. But I also enjoyed riding Webster pass and I would like to try Burning Bear again sometime and maybe ride South Park trail too.

Now I can wait another year to find another crazy ride to go on…