Avoiding Visual Studio Service References

By Jeffrey Polk at January 29, 2010 05:48
Filed Under: .Net, WCF

I've been using WCF in practice for about a year.  My least favorite part of the technology is Visual Studio's service reference.  I think this for several reasons:


  • The generated source files are difficult to maintain
  • Creating the service reference is sometimes unstable
  • The increased maintenance each time the service changes


Generated source files

Creating a service reference in Visual Studio generates a lot of files.  My sample project contains a simple service with a single method.  The service reference for this generates 10 new files! 



I find it cumbersome to maintain these files as the service changes.  Files can be added and made obsolete with what seems like trivial changes made to the service.  This is a challenge keeping straight in source control.


The unstable service reference


Too many times I've updated the service reference and my code doesn't compile.  After some digging, I find the service reference now contains this code:



Where did my methods and types go?  I remove the reference and try again.  Same result.  Where do I go from here?  I've never found the root cause of this behavior.  There is no feedback from the reference tool to tell me something's wrong.  Sometimes I can get past this by deselecting the "reuse types" option before creating the reference.  Other times, I cannot.  This is very frustrating when it happens.


Increased maintenance when service changes

Let's say I have a service with one method.  I also have three projects in my solution which consume this service.  Now i decide to add a second method.  Before using this new method in any of my other projects, I must update the service reference.  Three times.  What if I forget to do this?  Well, in this example forgetting just means the new method won't be available.  But what if I change my service's method to accept a new parameter?  Now I have a bigger issue.  My project with the old reference will still compile without any errors.  But at run time, an error will occur.  I want to catch these type of issues when I build.  Every interface change made to the service must be propogated n times.  There must be a better way.


Avoid the service reference completely!

Putting all these factors together forced me to find another way.  Something cleaner, less error-prone and easier to maintain.  The pattern is to break the service into separate assemblies, each with its own purpose.  If you create a new WCF Service Application using the project template, Visual Studio will provide the following:



This is already starting you down a wrong path for a couple reasons.  First, it combines the service and the interface into the same application.  Anything that consumes this service must recreate this interface.  That's part of what adding a service reference does for you.  But, that means that a change to this interface requires all those copies of it to be updated.  Another misstep in this template is that it defines a type in the same file as the interface.  Again, it makes it very tough to share the type if it is bundled into the service application.  I should state that I don't fault MS for putting everything into the project this way.  It's a template afterall, and they needed to include all the needed pieces to make it work. 


Clear these muddy waters by separating all three pieces into separate assemblies. 

  • DTO - defines types used by the service
  • Client - defines the interface and client-side proxy class
  • Service - the actual serivce which references both the DTO and Client


Now the only thing in the service application is the actual implementation of the service.  The interface and types are in separate projects which can now be shared among our service and consumer applications.  Our solution looks like this:



In addition to defining the interface in the PS.Client project, I also create a proxy class to be reused by all consumer applications.  This is part of what Visual Studio does for you when you add a service reference.  If you look a little deeper into what is generated, you will see it is fairly straightforward.  In my example, the AccountService service contains one method, which returns an Account object.  The proxy class is very simple:



Now that everything is separated, I am promoting code reuse - the service and consumer applications share both the types and the interface.  All consumer applications share the same proxy class.  Earlier I mentioned how using a service reference could lead to run time errors if the service interface changes.  In the new setup, this is not possible.  If a new parameter is added to the GetAccount service method, all consumer applications will fail to compile until they are changed.  I am also not relying on a Visual Studio utility to get my service and consumers talking.  If I want to add my service in a new consumer application, all I need to do is add a "normal" reference to the PS.Client & PS.DTO projects and add an endpoint to my config file.  While there is a little more set up early on in the process, I've found this pattern to be beneficial in the long run.  It has made the services very consistent from a structure standpoint, and it has been a lot easier to maintain as changes are made.


Download the source code:

WCFReference.zip (242.38 kb)



Hiking Old Loggers Path

By Jeffrey Polk at June 20, 2009 04:09
Filed Under: Hiking, Nature

The OLP (Old Loggers Path) is a 27.1 mile loop trail in north central Pennsylvania. The footpath is 100% contained within the Loyalsock State Forest. As far as rules and regulations go, state forests are the most liberal, which adds to the experience. In PA, you are not allowed to camp in state game lands. You are not allowed to camp in a state park without a permit, and you must camp in designated areas. You cannot have a fire in a state park. In a state forest, you can camp anywhere you like and build a camp fire.

I am fairly new to the world of hiking. I've done several day hikes, but this is my first long distance hike. I hiked the OLP with my father over an extended weekend. I kept a log of the sights we saw, hikers we ran into and general thoughts I had along the way.


View pictures of this hike

Friday - 12:00 PM

We arrived at Masten. Masten is an abandoned logging town - deserted since WWII. This is the main trailhead for the OLP. The only signs of a once bustling town are a gigantic chimney and a couple crumbling foundations.

I was elated to find a port-a-potty at the trailhead. The Big Mac we had in Williamsport was catching up with me quickly. I'm really glad I got one last shit in before we set out. Dad took a shit too.

We headed back to the truck to get our gear ready. Another father and son pulled in next to us. We made small talk. They were from New Hope, PA. They were heading in the same direction as we were - counter clockwise and planning to camp at Rock Run. They set out a few minutes before us.

Friday - 12:30 PM

We tightened our straps, high-fived and set off on the OLP. The trail greeted us with a 2-mile ascent. It was tough trekking, but I'd really rather get that out of the way early - much better than ending a day's hike with it.

The forest is filled with mature hardwoods and the floor is dominated by ferns. In some places, there are huge swaths of ferns - larger than a football field. It looks very cool.

Friday - 1:00 PM

I felt like we should have caught up to New Hope by now. Then, I heard their voices. Wait...they were behind us. How did that happen?

Friday - 1:30 PM

We reached the top of our first real ascent. We stopped to take a break. There was an ammo box fixed to a tree. We opened it up and signed the trail register. It's official now. We ate a trail mix bar and looked down the old forest road, which was the next section of the OLP. We were happy to walk on flat terrain.

Friday - 2:00 PM

We were back in the thick woods. It started to rain, but the canopy was doing a good job catching it all. After some time in the rain, we thought we should stop and get our rain gear. But, nah, we pushed forward.

Friday - 2:30 PM

We stopped to put on our rain jackets and pack covers. Mostly because we needed a break and while we were standing there, in the rain, we wised up.

Friday - 3:00 PM

The rain has stopped. We felt we should stop and take off the rain gear, but decide to press on. It's a pain to stop, unbuckle, set down a 30-lb pack, then pick it up, etc. We pressed on.

Friday - 3:30 PM

We were working up quite a sweat wearing our rain jackets, so enough was enough. We stopped and removed them. As we were beginning again, we saw two hikers. They each had trekking poles and they were hauling ass. We stepped aside and let them pass. Why were they in such a hurry? We picked up our trekking branches and continued our hike. Where was Rock Run? We feel like we should be there by now. Minutes later, we can hear it. We can't see it, but we can hear it. Almost home!

Friday - 4:30 PM

We finally arrive at the meeting of Rock Run and Yellow Dog Run. Rock Run is a gorgeous stream. Some say it's the prettiest stream in all of PA. I'm not sure I'd go that far (I haven't seen them all), but it is wonderful indeed.

Now I know why the pole brothers were in such a hurry. They nabbed the best camping spot. Nice and flat, right at the joining of the two streams, nice big fire pit. Bastards. We crossed Yellow Dog Run to see if there was a spot. There was a 30-something couple there, tent up, building a fire. Drat. We crossed back and headed up the trail some more. No dice. I was not liking the pole brothers at this point. We decided to back-track along Rock Run to look for a spot. Bingo! About a 1/4 mile back, we found a spot that was secluded, decent fire pit and "chairs" built from large flat stones.

Friday - 5:00 PM

We finished pitching our tents. I'm so glad I went with a 2-man. Dad has a 1-man MSR tent and it looks a little too tight. We took a walk down to Rock Run. Have I mentioned it is gorgeous? It's friggin' cold too! I couldn't stand in it longer than 60 seconds. It reminded me of ice immersions from my high school days. We took a couple pictures and headed back to camp.

Friday - 5:30 PM

We both ate our freeze-dried lasagna. Very good. Dad's JetBoil works like a charm. It boils water in a couple minutes. We sat on our rock chairs and enjoyed our earned meal. As we were eating, New Hope showed up. They made camp right next to us, but they are over a small hill out of sight. We had a fruit cup for dessert. Then we gathered up all the garbage and food and toothpaste and mess kit and put it in my sleeping bag stuff sack. This is serving as the bear bag for our hike. I selected a tree about 100 yards away. I showed dad my technique for hanging a bear bag. It's a pulley system using two carabiners. It took some doing just to get the rope over the tree limb. After that was done, the rest came together easily. This was my first attempt in the wild. Up until now, I only practiced in my basement using the pole and I-beam.

Friday - 6:00 PM

Dad asked me if I DVR'd the Penguins game. SHIT! I forgot! I am ashamed. Tonight is game 7 of the Stanley Cup Finals in Detroit and I dropped the ball. We made plans to avoid communication until we got back on Sunday and watched it. Jen is having the neighbors over tonight to watch it. Please Jenny, realize that it is not being recorded. You are my only hope. There is zero cell phone service out here in no-man's land.

Friday - 7:20 PM

We tried to get a fire going, but no dice. Everything is too darned wet. This will be the first time I camped with no fire. What the hell do you do?

Friday - 9:30 PM

I'm lying in my tent. What do you do with no fire? You go to bed, that's what. But, it's cool. We had a long day. It was only 6.5 miles, but a 4.5 hour drive adds to the fatique. We need our rest. My neck muscles are very sore. Tomorrow is a big day. We have about 11 miles to cover. The first part of the hike is a great ascent. So I lay here. Listening to Rock Run run. Life is good. I hope the Pens are winning.

Saturday - 6:00 AM

I'm up for the day. Not the first time I've been awake, but I'm getting out of the tent this time. I did not sleep well at all. I decided to bring a sheet instead of a sleeping bag. It's mid-June, so it won't be that cold, right? I was cold. I woke up every 45-60 minutes throughout the night. Halfway through, I figured out I'd be warmer if I wrapped myself in the sheet instead of laying under it. It was an improvement, but still not much help. I was praying for 6:00 to get here. It appears to be overcast. I'm getting out to see.

Saturday - 6:30 AM

I was wrong. The sky is blue and the sun is making its way to us. Hooray! I went to get the bear bag. It was undisturbed. Dad got up and we made coffee with the last of our water. The coffee is an attitude adjuster. I feel 100% now.

Saturday - 7:00 AM

We headed down to Rock Run to filter water. All water sources around here are tainted with parasites. Dad's filter worked splendidly. New Hope Jr. came down as we were pumping. He filled up a milk jug. I sure hope he knows to boil it. Why didn't I say anything to him? If I was about to do something stupid, I hope someone would say something to me.

We headed back up and made our freeze-dried eggs and bacon. It tasted like freeze-dried eggs and bacon. Still good to get warm food in my stomach.

Saturday - 7:45 AM

Breaking down camp and heading out.

Saturday - 8:37 AM

We high-fived and started our walk for day 2. Minutes later, we passed the couple from Yellow Dog Run. We were convinced that they drove in down Yellow Dog Road to camp for the night. But, they were hikers too. They had a roaring fire last night, so we figured they brought their own dry firewood. We walked past the joining of Rock and Yellow Dog and there were the pole brothers in their wonderful campsite. They were sipping coffee, tents still pitched. No way were they beating us tonight.

Just like yesterday, our hike greeted us with a long, steady climb. It was a 500 foot ascent covering 1.5 miles. Again, it was nice to get this out of the way first thing. We passed New Hope on the way up. Our pace is definitely faster than theirs. The dad was huffin and puffin drenched with sweat. The son seemed ok, but he was sagging his pants below his ass. On the trail? Gimme a break.

Saturday - 9:30 AM

Our hike leveled off. We saw some movement to the right, but too far and quick to make it out. Probably more deer. My eyes are peeled for rattlesnakes. I'm dying to see one in the wild. I figure they are coiled up on a sunny rock this time of the day trying to get warm. I've yet to see one.

Saturday - 10:00 AM

We came to Yellow Dog Rd. We decided to take a break. As we were hanging out, a group of four hikers came out after us. There were two kids (20 & 7) and a thick dude who was obviously the father. The seven year old was carrying his own pack. Kudos, dad. There was also an older man and I assumed him to be the grandfather. How cool. Three generations out hiking the OLP. But, where the hell did they come from?

They moved along and we finished our break. We got behind them on the trail. I suggested to dad that we hustle on past. We did get by them, but they kept up with us. The seven year old was complaining and talking non-stop. I am getting very annoyed. I'm out here to enjoy nature not listen to a kid whine. Sheesh.

Saturday - 10:30 AM

We reached the first vista of the hike. It was gorgeous. It overlooked several custs of mountains rising up on the north side of Rock Run. We took some pictures. The loud group came behind us. We asked the dad to take a picture of us. He obliged. We decided to wait a good 15 minutes to let them get out ahead and out of earshot before we started. We never saw New Hope. On our way out, we passed four more hikers going clockwise. Lots of hikers today; it is a Saturday, I guess.

Saturday - 11:30 AM

The next several miles of the hike were very flat. We hugged the ridge line covering three miles and passing Doe Run. There were some great campsites there. We also passed Buck Run. There was a brief, but very steep climb. The ascent was 200 feet over about 50 yards. I am so glad I had my trekking branch. That would be a very dicey climb without it.

Saturday - 12:00 PM

We broke for lunch at the second vista. It overlooked pretty much the same view as the first, but I don't know how this view could ever get old. I ate two trailmix bars and some beef jerky. Dad had the same plus a fruit cup. I already ate my day's cup back at Yellow Dog Rd. The grandfather approached all alone. It turns out that he's from Elverson, PA (10 minutes from hy house) and he's in charge of a church group from Ephrata, PA. There are 10 in his group, but I've only seen the four. He's trying to get to the same spot as us tonight.

Dad checked his cell phone. We've been trying to reach Jen to see if she DVR'd the Pens. Dad actually got service! He called, but left a message. A few minutes later, she called back. She thought she'd better check that it was recorded. She saw that it wasn't so she recorded it...including 1.5 hours extra time. Attagirl Jenny! Although, while dad was talking to her, I heard the church group say, "first the Steelers, now the Penguins...it's the Eagles turn next year!" I'm fairly certain this means the Pens took the cup. My cone of silence is breeched. I'm so pissed off that I know, but I didn’t let on to dad. It will still be great fun watching it.

Saturday - 3:00 PM

We finally reach our campsite. I am a hurting puppy. My feet are barking, and my neck is so sore. I can barely lift my arms. Today's hike was dominated by rocks. Rocks are difficult to traverse. They are dangerous and they put a serious hurting on the feet. Not only rocks, but much of the hike was downhill. This is also dangerous and it pounds the joints. We covered 11+ miles today and it was tough, tough hiking.

Our campsite is very large. We are sure that other hikers will show up here. I hope all spots fill up before the pole brothers show up. I'm such a jerk. A few members of the church group showed up. This campsite is large enough to accommodate the entire group.

Dad and I went down to Pleasant Stream to filter more water after we got the tents pitched. The water was so cold. The dad and seven year old took a swim. Wow. I'd never do that. We noticed how dark the sky was getting. I recommended we get everything put away in the tents. Just as we did, it started to drizzle. I told dad that I needed to lie down for a while. Just as I zipped up, the sky opened. It poured. Thunder and lightning too. Some lightning was very, very close. It rained for about an hour. I was so happy we got here and squared ourselves away when we did. Some of the group filtered in mid-pour. I felt bad for them. Pleasant Stream was a river now.

Saturday - 5:30 PM

I woke up from my nap. The rain has stopped and the sun is shining now. Crazy storm. We made chili and it was ok. Again, just having something hot in your stomach does wonders for your attitude. We ate by the fire with the church group. Everyone is really nice. Dad reluctantly went with me to the camp fire. I am actually outgoing compared to my dad. For those who know me, outgoing is not a word they would use to describe me.

Saturday - 6:00 PM

We packed our food and garbage and toothpaste and mess kit in the bear bag and hung it from a tree. We then went back to Pleasant Stream. After that, we came back into camp. I took a seat at the campfire and dad went back to the tents. The group had a devotional session and I listened. The "grandfather" (I sadly never caught his name) told personal stories relating them to God. He told a story about how he tried to get his wife to go hiking for 15 years. Finally, she agreed. He set up a very easy hike - 10 miles over two days with one night of camping. They went to a place called split rock. This gigantic rock had a crack right down the center just wide enough for one person to squeeze through. As the neared the rock, the winds picked up and the sky turned an ominous green. They ducked into the rock to ride out the storm. When they emerged, trees were down all around them. Amazingly, a tornado passed right by them and the rock gave them protection. He said it was God at work. Earlier that day, his car wouldn't start. He was pissed about it and a mechanic said it had to be towed in. It took time and money and because of that they got a late start. But, had they started on time, they would have long passed split rock when the tornado came through. His story had a nice message and he made me laugh at the end. His wife later asked about the weather forecast and if he ever checked it. He said there was a chance for isolated thunderstorms so he took her to the most isolated place he could find.

Saturday - 8:00 PM

We shared stories and they asked a lot about me and my dad - where is he? Everyone was so nice. None of them knew each other before this trip. They've seen faces at church, but none knew anyone. Now they will always have a bond and always talk or give a friendly wave at church. By the way, the 20 year old didn't belong to the dad (Junior) and the seven year old (Austin) was actually 10.

Saturday - 8:30 PM

Dad finally joined us at the campfire. I'm very glad he decided to. He talked to Junior for a little bit.

Saturday - 9:00 PM

We hit the hay. I am still wide away from my nap, but I thought I'd read my field manual for a bit and fall asleep. We have a long day ahead of us tomorrow. I want to hit the trail running. We seem to do really well in the morning when we're fresh. Our pace slows as the miles add up. I want to knock out as much as possible before noon. Dad gave me his fleece to wrap around my legs for warmth. The temperature is a bit warmer than last night. I hope I sleep a little more soundly. And, I hope it doesn't rain tomorrow.

Sunday - 6:00 AM

I slept better than the night before. I woke up several times, but nothing like Friday night. It rained all night long. It's not raining at the moment. It's tough to tell. Are those rain drops from the sky or trees that are hitting my tent. I really hope it got everything out of its system. I have a feeling it will be miserable without rain today, My tent held up very well. It's an REI Quarter Dome T2 tent. It would be perfect if it was 6 inches longer. I'm 6'4" and when I stretch out, my head and feet touch the tent. But, no condensation seeped through like I've seen in other tents. OK. Stepping out.

Sunday - 6:30 AM

It has stopped raining. The sky is blue and the sun is coming through. I just had two cups of coffee and I'm feeling good. The blister on my heel still hurts. I'll throw some moleskin on it and make the best of it. None of the church group is up yet. They left a lot of stuff in the open last night. A whole clothesline is full, boots and packs left out. Everything of mine and dad's is bone dry.

Sunday - 7:11 AM

Gorgeous day. The moleskin is helping a little bit. I will have pain today. Breaking down camp.

Sunday - 8:00 AM

We tightened our straps, high-fived and set out on day 3. We have a tough two mile climb to begin. Everything is soaking wet, but the sun is shining. We decided to keep long pants and shirts on today.

Sunday - 8:30 AM

We're halfway up the mountain. We're sweating profusely. We stopped to take off the long sleeves. Our pants are soaked through from the rain-drenched flora. In most spots, the OLP is only wide enough for one person. It's mid-June so the flora is thick. We're going to keep the pants on today. We decided it would have been a good idea to wear them all weekend - to prevent ticks and such.

Sunday - 9:15 AM

We reached the top. It was about 1000' climb over 2 miles. Tough work, but good to get it out of the way. I hear a lot about how going down is twice as fast as going up. I have to disagree. We've had three big climbs this weekend over big distances and we book up the hills. When we go down, we have to take our time - each step carefully placed. It seems like downhill is half as fast as uphill. I'll take a 1000' ascent over a 1000' descent any day.

After our climb we were rewarded with a short stroll on a forest road. We soon came upon Sharp Top. Wow, what a vista! This is the 4th and final vista of the hike. I'm glad this was saved for last. The other vistas were great, no doubt, but this was unmatched and went on forever. The other vistas could be seen in their entirety by staring straight ahead. This one required you to swivel your head to take it all in. There was one area of civilization on the far right - a couple farms. Other than that, it was miles and miles of unspoiled wilderness.

After a few moments of enjoying this on our own, we were joined by most of the church group. They left their packs and gear at the campsite. They were taking shortcuts today. They hiked up the trail to see Sharp Top, then back down to the campsite. From there, they would take Pleasant Stream Rd back to Masten. This was about 3 miles on a gravel road compared to 9+ miles on the trail. They had some injuries and were really out to bond with each other - not so much to complete the trail.

They took some pictures of dad and me, and we took pictures of them. We gathered all seven of their cameras and took two pictures with each one. I regret that I never got a picture of them with our camera.

Sunday - 10:00 AM

We had a sharp descent after Sharp Top. We passed a couple kids along the way. The kids were just standing around. I was confused because it didn't look like they were resting - more like waiting. Further down, we passed some adults. Sure enough, the adults were lagging behind. When they passed, I asked, "youngsters outpacing you?" One man laboriously replied, "nah, we gave them a head start."

After getting to the bottom, we passed a small creek (the trekking branch saved me again) and passed a small campsite. There was a lone hiker at the campsite getting himself ready for the day's hike. He looked to be about high school age. "Mornin," I said. "Mornin," he replied. I really admired this young man. To come out here all alone. Hike by himself, rest by himself, eat by himself, camp by himself. It’s the kind of thing I would enjoy, but never get out and do. He was the only solo hiker we saw this weekend. He would also turn out to be the last hiker we saw that day.

Sunday - 11:30 AM

We completed the last big ascent of the trail. It was 600 feet over 1.5 miles. It doesn't sound like much, but it doesn't have to be. 1.5 miles of up (any elevation) is tough. It's a good hurt. Near the top, there was a wooden sign that read "Sprout Point 1.0 miles." There was a smaller trail that shot off to the right. I read about a vista that required leaving the trail to see and this must be it. We consulted the map. I saw Lookout Tower, which was not that far away. We saw Sprout Point with a summit of 2100 feet and it looked to be a mile away. We debated taking the side trail for some time. But, one mile out means another one back. We ultimately decided to skip it and press on. We joked that we'd do it next time. We would later regret the decision.

We continued on the trail. It has leveled off and I'm looking for a good place to rest and eat lunch. I also want to put on my knee brace. The last time we hike was Ricketts Glen. It was a day hike covering 8 miles. By the end of it, my knee was very sore and I painfully walked with a limp. Because of that, I brought a knee brace just in case. My knee started hurting yesterday. I realized that it is the constant pounding of the descent that does it. We were about to begin a 3.5 mile descent to Masten and I wanted the extra support.

As we walk along, dad says "look at that!" It was an excited whisper. I'm looking around trying to figure out what he's looking at. Then I look straight down the trail and a doe is standing 60 feet from us. She came from the right and stopped right on the trail standing broadside exposed staring at us. Dad calmly tried to get the camera, but she moved away quickly. What an encounter! Too bad we couldn't capture it. I was a little embarrassed I wasn't the one who spotted the deer. I take pride in my wildlife spotting skills. And, there, right in front of me is a 150-lb deer and I don't see it. In my defense, I am still searching for rattlesnakes - sweeping the ground in front of me to about 6 feet away. That's what I want to see more than anything. One of the church group members saw one. He said it was laying stretched out parallel to the trail about 2 feet to the side. Lucky bastard.

Sunday - 12:30 PM

We're walking along an open section of the trail. It is very thick with laurel. I love mountain laurel. We could tell that we missed full bloom by a couple weeks. Only a handful of it showed flowers. Some were pink and others white. We stopped to drink and rest and I spot something small and brown leap up and run away. You could hear it sound the alarm. I couldn't make out what it was. It was about the size of a large groundhog. But, the way it cried made me think it was a young animal. What has young that is that large and brown? A bear? Nah, black bear cubs are black. My brain told me it wasn't a cub but my heart was racing and I pictured a 500-lb mother charging to protect hers. A minute later, three quail shot up from underfoot and gave me a heart attack. I was on edge. We pressed on, but I couldn't shake the bear thoughts for 1/2 mile. It didn't help that the laurel was so thick; you couldn't see more than two feet ahead of you.

The laurel was so thick, in fact, that we lost the trail for the first time this weekend. It was an open area, so there wasn't the usual mature hardwood to blaze. We still had a footpath to follow about 12 inches wide, but for the first time we were really unsure if we were still on the OLP. There were larger trees up ahead. Dad stayed put and I moved on to see if I could spot a blazed tree. Sure enough, we were still on the OLP. While researching this trail, I found numerous reports that the trail is not blazed well. This couldn't be further from the truth. The OLP does make some sudden, sharp turns. If you miss one, you will get off course. But, it would quickly become obvious that a turn was missed. I think the people who get off course are looking down just trying to get through it. If you aren't paying enough attention to follow the blazes, you're missing quite more along the way.

Sunday - 1:00 PM

We completed the long steady descent towards Masten. The descent ran parallel to Bear Run. It was very scenic looking down into this glen. We could tell that we were very close to the end. Suddenly, my blisters were less sore, my knee didn't hurt as much, I walked more upright and my pace picked up. I was filled with the sense of accomplishment. The final stretch of woods on the OLP was a flat bed of pine needles. We didn't see very many evergreens in these mountains. We passed through some groves of hemlock, but we didn't see any pines, spruces or firs. Finally, at the end, we saw these trees and they provided us with a cushy carpet to walk on. We were grateful.

We left the woods and passed the final register. This was not the usual pad and pen. This was more like an exit interview. We praised the trail and the Keystone Trails Association for providing a fantastic weekend hike.

The final stretch was along a road past several hunting cabins. We passed a group of overweight people smoking cigarettes on their stoop. It was my assumption that they never completed this trail, which is a shame. Partly a shame because I judge them. Partly a shame because I'm probably right, and they have this glorious treasure right under their noses and they don't take advantage of it.

Sunday - 1:30 PM

We reached my truck. We made it! We have each other the most enthusiastic high-five of the weekend. We covered 27.1 miles in 50.5 hours. We actually hiked for 17.5 hours. That means we averaged 1.5 MPH. Not too bad for a couple first timers - one of whom is badly out of shape.

Seconds after reaching my truck, who comes down Pleasant Stream Rd? The church group of course. We just couldn't shake these guys. They had collected their gear, taken the short cut and we arrived at the destination at the exact same time. Their van was parked right next to my truck. They jokingly asked if we cheated. We proudly said no.

We completed the OLP. It was not easy. We contemplated short cuts and other options on Saturday night. We were so glad now that we stuck it out. It was the honorable thing to do. Unlike the church group, we came here to hike the whole trail. Anything short of that is failure. I bought two OLP patches before the trip. Had we not finished, we could not use them. Now that we have completed the OLP, we will wear them with pride.

We used our water bladders to rinse out our rank armpits. You can work up quite the stink during a three day hike. I brought some deodorant. We both used it and put on fresh clean clothes and drove off. We had one last leg of this adventure to complete.

Sunday - 5:00 PM

We sipped victory at the Selinsgrove Brewery. After an extended weekend drinking bladder water, a beer never tasted so good. The Selinsgrove Brewery bar is set in a farm house from the 1800's. It is about the coolest spot in which I've ever enjoyed beer. I've been there a couple times, and I was excited to share this experience with my dad. As luck had it, a long-time friend of mine who now lives in Florida was in Selinsgrove that day visiting his parents. Jenny called me to tell me this. Another reason my wife deserves high praise this weekend. My friend, Joe, was able to meet us and enjoy a couple pints while we bragged about our trip and caught up with each other.

Sunday - 11:00 PM

Lord Stanley, Lord Stanley, pass me the brandy! Sidney Crosby has just lifted the cup. Hopefully it's the first of several. Even though I already knew the result, it was great to watch it unfold.

This one single weekend contained bonding with my father, enjoying nature, a sense of accomplishment, my wife having my back, knocking back a few with an old friend and watching Pittsburgh become the city of champions (again). Can it get any better? I don't think so. Wait...I’m off on Monday to recuperate. Life is good.


About the author

software architect, husband, golfer, gun owner, dog owner, first baseman, hunter, hiker, beer drinker, right-leaning independent and quiet thinker

Month List