Sunday, September 2, 2012

Uinta Highline Trail 2012

July 31st - August 4th, 2012 the clan did a long walk across the Uinta Range. We did about 70 miles with the focus on hiking.  Focus on hiking means keeping the gear to a minimum and filling the days with a casual strolling pace. Our pack weights were between 28 and 14 pounds. Not ultra-light, just enjoyable-light.

Google Earth Overview - those are 13k peaks down there
Elevation Profile

Starting the trail at Chepeta Lake 

Day One

Our first day took up from Chepeta Lake over North Pole pass (4 hours to this point) and through the some beautiful woods in the basins. The starting trail head was relocated a couple years back and is very hard to follow. The key is to look for the tree scars that they use as trail markers. I think tree scars are terrible markers, but because this portion of the trail is not fully established they will be the only thing keeping you going in the right direction.

Stormy day on the Kings Peak ridge
We hiked for 11 and a half hours and ended up camping about a mile after Kidney Lake. That night it rained for four hours and my bivy tarp combo failed me. Matt kindly saved me by allowing me to crawl in with him.

Day Two

We followed the "hike a couple miles in the cool and then eat breakfast model" for the entire hike. This worked out really well and on this morning allowed us to dry out all of our wet gear while we ate.

We saw about five different groups doing the Highline during our trip, which is five more than I saw last time I did the trail. There are portions of the trail that are very clear and well traveled, but other ones require constant vigilance to keep you from ending up in a swamp. Which is exactly what happened to us on our approach to Anderson Pass. Luckily, it wasn't too bad, but I have been sucked into Uinta swamps that rivaled the Dead Marshes.

Summit of Kings Peak
Rain threatened all day with periods of blue sky followed by rain and hail. Between storms we ran up Kings Peak and had the summit to ourselves. Coming down Anderson Pass the mountain got its vengeance. "Why did the temperature suddenly drop?" I asked myself minutes before the storm hit us. Our makeshift rain coats did the job, but more rain or colder temperatures would have forced us to seek shelter.

We camped in the shadow of Kings Peak along the head waters of the Yellowstone Creek. We hiked for ten hours this day. 

The Passes

Ultra-stupid rain gear
There are six major passes on this hike: North Pole, Anderson, Porcupine, Red Knob, Dead Horse, and Rocky Sea. I have done the hike both directions and I think it might be slightly easier to go East to West, but it is highly dependent upon the mileage you do per day and where you place your camps. Going up Anderson from the West is by far the most difficult, with the West approach to Red Knob coming in second. Coming down North Pole from the East I found very enjoyable. The rest of the passes are simply fun. Someone deserves a lot of thanks for the well graded switchbacks.

Day Three

Approaching Lambert Meadows
The flat open expanse of Garfield and Oweep Basins allow you to do some significant miles. I loved powering through the wide open expanses surrounded by towering ridges and green forests in the distance. We made camp in the shadow of Red Knob with sheep bleating in the distance. This took us well over the half way marker. We did 12 and a half hours of hiking this day. Everyone was feeling good.

The Food

Dead Horse Lake
We tried to keep our food light on this trip (remember the focus on hiking). It mainly consisted of oatmeal for breakfast, candy and granola bars, bagel sandwiches for lunch (tuna, peanut butter, and salami), with burritos, turkey, or beef stroganoff for dinner. The food was more than nourishing, but I longed for tasty. I need to spend some effort on recipes that incorporate better seasoning and texture.

Day Four

The dead horse of Dead Horse Pass
 This was the day of three passes. In the morning we went over Red Knob and then Dead Horse before noon. I found the traverse to Dead Horse Lake to be especially beautiful. Wooded forests, flowing stream, and steep cliff walls. The trail up Dead Horse pass looked intimidating, but the switchback grades made it manageable. After spending an hour looking for half of our team we wandered down in the beautiful forests of Rock Creek and had a nice dinner in the shade of Rocky Sea Pass before crossing over and making camp about seven miles from our final destination.
7 of 8 passes
Rocky Sea Pass


You never really need to worry about water in the Uintas. There is a stream or pool within a mile of any place you stand. The question is how do you treat the water. They graze livestock in this national forest and so there is a lot of possible contamination, but other then that there is very little threat of water borne illness. On this trip we chose to use a chlorine dioxide mix. This was very light weight, with minimal hassle. It is probably faster to mix then pump especially in you do it in parallel and on the move. Unfortunately, I didn't quite bring enough mix for liberal usage, and so we did ration a bit and I ended up drinking a few liters of untreated water. However, my skepticism  of the whole water treatment necessity continues to grow. I think it is time for the backpacking industry to prove some significant evidence that all this treating and pumping is really beneficial.

Day Five

Minimal camping gear
This was a pleasurable romp on a flat trail that got us to Kamas for lunch before noon. We passed by Naturalist Basin and Mt. Agassiz, which I still have not visited, and considered a detour, but in the end the desire for completion won out. I think we could have easily done the trip in four days, but as it was we had a lot of fun without much aches or pain.

Success party at Hi-Mountain Drug

Facebook to Foureyes

Along with millions of others I joined Facebook in early 2008. Facebook brought people together in ways that one-sided blog posts, discussion groups, and instant messaging never could. They succeeded by combining the best aspects of each of those older social paradigms into a single space and on top of all that they gave us Farmville. Nirvana achieved?  Hardly. We are ready for more and Facebook is not providing it.

The ultimate social interface immerses you in your current situation. It categorizes your surroundings and prioritizes them in a way that is personal to you. It then allows you to add yourself to that context for others to experience. For me the ultimate social interface would be a cross between two emerging storms: Foursquare and Google Glasses.

Foursquare knows where you are. Foursquare knows where your friends are. Foursquare knows what restaurants, entertainment venues, and activities are around you. It knows your context and it knows when you move from home, to work, to shopping, to a night out. It knows what you like and it knows when things you like are around you. Foursquare has a way to go, but they are headed in the right direction and they have the data to do it.

The other piece, the hardware, is a bit further out. Smart phones are getting there, but are still clunky and often get in the way of social interaction rather than enhancing it. The Microsoft “Really” commercial is sadly spot on. Google Glasses are a step in the right direction, but they need to look more chic and less cyborg.  They also need social context. When you are standing in line at the movies you should see that your friends liked “The Artist” and hated “Brave”. In the art gallery you should see that your sister Nicole loved the Monet. At dinner you should know that your date is way into Oscar Wilde. You should know that the snowboard you want next week for your trip to Utah is on sale at the store you are walking past.

So what do you get when you cross Foursquare with Google Glasses? Foureyes. Facebook is social in a “stay at home on Friday night typing on my computer” kind of social. With Foureyes I can actually get out and be social.

Monday, July 2, 2012

Using Scripts for Unit Testing

Coming up with a readable, maintainable way to unit test service resource boundaries is an important part of service development. Commonly developers use source code implementations of their unit tests. This has the benefit of utilizing the same development language for your testing that you use for your development, but it has the disadvantages for being hard to read and being directly tied to your implementation. Readability problems result in costly maintenance as developers spend more time trying to figure out what a test is trying to do. Coupling to the implementation means that if you have a 100 coupling points that you now have 100 changes to make.

Consider the following Java example where a simple resource is requested and then the response is examined to make sure it contains the expected elements.

   /**     * Encoded URL should be decoded properly.     */     @Test     public void encodedQueryInfo() {         ClientRequest request = new ClientRequest(serviceId, "/echo/1?msg2=2&msg3=% 3D3%20cow");         ClientResponse response = ServiceRuntime.makeRequest(request);         Assert.assertTrue(response.isSuccessful());         Assert.assertTrue("msg was not found in the response", "1".equals(response.getData().getString("msg")));         Assert.assertTrue("msg2 was not found in the response", "2".equals(response.getData().getString("msg2")));         Assert.assertTrue("msg3 was not found in the response", "=3 cow".equals(response.getData().getString("msg3")));     }

There is nothing really special about this code, but it takes time to unwind what it is doing. We can attempt to clean up the example by embedding the payload string in the Java code, but this requires us to escape the string.

   /**     * Encoded URL should be decoded properly.     */     @Test
    public void getQueryInfo() {
        ClientRequest request = new ClientRequest(serviceId, "/echo/1?msg2=2&msg3=%3D3% 20cow");
        ClientResponse response = ServiceRuntime.makeRequest(request);
        String expectedResponse = DataProperties.create(
            "{" +
                "\"msg\": \"1\"," +
                "\"msg2\": \"2\"," +
                "\"msg3\": \"=3 cow\"" +

        Assert.assertTrue("wrong response given", expectedResponse.equals(response.getData().toString(1)));

The + and \" encoding makes it more difficult to maintain the test, and so we can try drop the encoding by putting it on one line and allowing single quotes, but that only trades the encoding problem for an long string readability problem.

    String expectedResponse = DataProperties.create("{'msg': '1', 'msg2': '2', 'msg3': '=3 cow'}").toString(1);

If we instead abandon our desire to use our implementation language as our testing language we can get closer to the actual interface and produce a much more human readable (i.e. maintainable) version of the test. This has the additional benefit of decoupling the code so that there is only one place to update whenever we change our backing implementation.

        "description":"Encoded URL should be decoded properly.",
                    "resource":"/echo/1?msg2=2&msg3=% 3D3%20cow",

                            "msg": "1",
                            "msg2": "2",
                            "msg3": "=3 cow"

Sunday, June 10, 2012

Maximizing Happiness

Given the fast paced accessibility of so much that our modern world provides it is really easy to loose track of what really matter. Keeping up with the Jones, filling your life with unnecessary distractions and responsibilities, as well as living your life though your children are all major pitfalls. But the most dangerous trap that Americans fall into is the accumulation of junk. Things don't make you happy. Things only enable happiness when applied to something that truly matters.

Here are some general rules that express this line of thinking.
  • You don't appreciate what you don't take care of yourself.
  • Hoards of treasure are a poison to the things that matter most. It makes you focus on things rather than people. It encourages an attitude of thinking of people as things.
  • You become the servant of the things you surround yourself with.
  • We actually need very few things in this life. Most of which we could carry on our backs.
  • The less things we have, the more useful and appreciated they become to us.
  • The less things we have cluttering up our lives the more we see the things around us that really matter.
  • If you find your pleasure in things, what will you do when they rust, fall apart, or are stolen?
  • The best thing you can do for the environment is to do without.
  • The best thing you can do for those in need is to not eat your dinner and then their dinner also.
  • The thrill we associate with acquiring things is very similar to a heroin addiction. The more we feed it less it satisfies and the more it destroys us.
Here are some examples of how to live these ideas.
  • If you can't afford it then don't buy it.
  • If you have to hire someone to take care of it then get rid of it.
  • If you have to rent storage space to store something then get rid of it.
  • If you don't use it most weeks then get rid of it.
  • If it encourages you to not interact with your family then get rid of it.
  • If one extravagant item could be exchanged for ten suitable items then don't buy the extravagant one. Instead buy 10 and give 9 to those in need.

Some Great Utah Hikes

For the past forty years I have been discovering the beauty of Utah. I started with Zion, followed by Lake Powell, the Wasatch, Uintas, Moab, Bryce, San Rafael Swell, Escalante, and the West Desert. After all of this I have still only tasted what Utah has to offer. Every year I discover a new corner, such as Maple Canyon or Lake Blanche. It makes me wonder what is yet to be discovered. Here are some of my favorites.

The Devil's Garden

The fins (Courtesy of Google Images)
Nestled at the far end of the road in Arches National Park is an area called the Devil's Garden. The northern part of the garden hosts the fantastic and fragile Landscape Arch as well as a dozen other lesser known formations. However, the really fun thing to do is explore the formations south of the Devil's Garden campground. There is a moderate trail that weaves through terrific slots of sandstone fins that tower up into the sky.

Fisher Towers

Ancient Art, notice the climber on the very top
East of Moab, within view of the Colorado River, is a place where Mother Nature made thousand foot towers by letting mud drip through her hands. An easy trail winds among the shade of the giants. This is one of those places that you thought only existed in the imagination of the mind. The Fisher Towers are very popular with climbers. A great activity is to bring a lunch, find a shady spot, and watch them climb the spires.
The Cobra

Goblin Valley

View from above
The southern end of the San Rafael Swell contains a place that feels like another planet. In fact the movie Galaxy Quest used this as the home for the rock monster Gorignak. Goblin Valley is full of hoodoos to scramble over, caves to explore, and plateaus to ascend. If you stay in the state maintained campground then you can wander the hoodoos late into the night. This is especially attractive since this part of the swell is located in one best night sky viewing areas of the United States.
Climbing on the hoodoos is encouraged

Little Wildhorse Canyon

Having fun avoiding getting wet
In the slots
Just down the road from Goblin Valley is an incredible walk that takes you through the heart of the San Rafael Reef. A half day hike will allow you to walk through body width slots and lose yourself in the shade of towering cliffs. For a longer adventure you can walk though the entire length of the canyon and then make a loop by coming down Bell Canyon.

Buckhorn Wash

Little Grand Canyon
At the northern end of the San Rafael Swell is a good twenty mile dirt road that takes you through towering sandstone walls and past ancient Indian artwork. A worthy half hour detour will put you at the top of the Little Grand Canyon as you peer down thousands of feet to the San Rafael river flowing below.
Rock art

Orderville Canyon

Beautiful light
The Zion Narrows justifiably draw visitors from all around the world. This incredible canyon formed by the constant flow of the Virgin river creates a feeling of reverence and awe. One can enjoy the narrows by simply walking up the river from the final stop of the Zion shuttle bus. However, in order to get the full experience you need to hike down from the plateau above. This can be done as a long overnight hike down the main canyon, as a highly technical canyoneering adventure via Imlay canyon, or as an enjoyable adventure by way of Orderville Canyon. While Orderville does still require some abilities with a rope in order to assist your group over a couple of fifteen foot drops it is not technical enough to require a full understanding of climbing technique. You will find that the soaring walls of Orderville create an intimate experience as you reach from one wall to the other while hundreds of feet above you a streak of blue reveals the world beyond.
One of the obstacles

Lone Peak

View of the cirque
Located among the peaks that surround Salt Lake City are several mountains that are reminiscent of the granite mountains of the Sierra Nevada. One of my favorite is Lone Peak. The cost of entry to the towering cirque of vertical walls is a strenuous three hour hike. However, once there you will easily forget that two million people live just down the trail.

Looking down at climbers

Island Lake

Exhilarating fun
On the western side of the Uinta range is a beautiful lake accessible by an easy three mile hike. Island Lake puts you into the back country where you can take a nap in the beauty of an alpine setting, hike the surrounding eleven thousand foot peaks, or jump off the forty foot cliffs into the cool snow fed waters of the lake. It is easily doable as a long day trip, or even better, as a overnight stay. No permits required.

Peaceful beauty

Lake Blanche

A short drive out of Salt Lake City and up Big Cottonwood Canyon will take you to the trail head for a moderate three mile hike that will deposit you deep in the heart of the Wasatch Mountains. Here you can view the visible effects of the glacial history of the Wasatch, sleep under the shade of a giant pine tree, fish in a pristine lake, or scale up to the ridge of Sundial peak.

Sundial Peak (Courtesy of Google Images)

Maple Canyon

Amazing rock
Just one hour south of Salt Lake City this canyon is a hidden gem of Sanpete Valley. Conglomerate stone, that looks like vertical paving stones, form canyon walls and spires that weave around tree shaded paths. Don't miss Box Canyon (a narrow side canyon off the main road), as it provides a easy romp up a narrow slot that ends in a waterfall filled amphitheater. If you are a climber, this is sport climbing paradise.

Thursday, June 7, 2012

Refactoring is the best documentation

I was recently looking at a simple function that provided documentation for a service. The documentation is made up of two parts. The base documentation that all services provide and the documentation for the endpoints that a service specifically provides.

The fact that there was two parts to the resulting documentation seemed a little obfuscated and so I thought that I should add a comment to help explain things. Normally this would be done this way:

However, by refactoring the service specific documentation to a separate method I was able to achieve my goal of documenting what the code was doing with the method name rather than injecting a coupled comment. This also has the benefit of making the code much more readable as well as self documenting.