Wednesday, April 22, 2009

Over-Engineering by Default

When creating large systems, I tend to over engineer everything. I’m not sure why, but I hate casting parameters to their native type and I absolutely despise writing the same line of code twice. For some reason, I think that everything has to be generic and abstracted to the atomic level. I wish I could just tell my brain to settle on using ‘object’ sometimes and move on. Instead, I over cook basic concepts and the result is a fine-grained architectural nightmare.

Oddly, I tend focus more on the idea of over engineering my solution long after things have been working fine. Clearly I’ve recognized a pattern somewhere along the way, but it drives me crazy when I can’t lock it down to a solid set of patterns.

Today I struggled with something and considered multiple implementations. Each seemed to have it’s own pro’s and con’s, but nothing has jumped out as the “correct” solution yet... I’ve wasted pretty much a whole day today trying to work in some pattern with a base class template that accepted a generic <T>. I was noticing that certain classes always dealt with another type of class. I changed a lot of code to get it to work, only to run into a brick wall at the end. The main problem that I was overlooking was that my solution is a multi-project solution and there was 1 simple class that resides in a higher level assembly preventing the whole thing from gluing together.  :( I just couldn’t figure out a good way around it. I finally realized that I was spending way too much time on it. Worst yet, I wasn’t even really going to gain a lot from the change anyway, other than a big “cool” factor. Whatever! I’m going try to sleep on it and hope that it will come to me over night.

Another one of my big struggles after all these years of coding is deciding when to use an abstract base class and when to use an interface. This is another one of those things that I tend to rethink after my solution has been working for an extended period of time. Unfortunately, I’ve not found the golden rule for deciding when to use an interface and when to use a base class. I know that there is a lot of information on the web (here’s MSDNs’ idea), and pretty much every developer (except me) has their own “tricks” for determining. For me, it continues to be a struggle and I have to really think both concepts all the way through before deciding.

One trick that I use is by determining if an object has the characteristics of something, or if it actually is that something. I always try to figure out if my object (interface or class) has any shared logic or classes as well. If there is one thing that all instances should have, I try to engineer toward a base class implementation. Sometimes that doesn’t work, so I go back and try to code it as an interface. I’ll go back and forth with each until one makes the most sense. :( Clearly I’m missing something here... I should be way beyond this after all these years! This sounds like Programming 101 crap! I yell at myself each time I catch myself doing it.

Truth is that I do this all the time in my profession, and I hate it more and more. In the long run, I usually always get that glorious “AHA!” moment, but it’s always a long puzzling road for me... I guess I’ll keep over engineering everything until I smarten up a bit. (?)

Simple concepts should not require over engineering; it is a waste of time. Sometimes it works out great. But other times (like today) I wind up just making things worse and put myself back a few steps. I’m sure that I’m overlooking an obvious pattern here. If my dreams don’t show me the answer before tomorrow morning, I am going to simplify everything back to the basic that I had this morning. :(

Oh yeah, deadlines suck too!

Monday, April 20, 2009

Mohican Forget the PR 50K Race Report

Well, I did it! I ran my first race of the year yesterday, and it was a great experience. Rob put together a great race and I’m sure that everybody that ran the race would agree 100%. The aid stations were well stocked and extremely friendly. The party crowd was definitely at the Covered Bridge. It was always fun crossing through there with the radio blasting and seeing everybody in their Hawaiian clothing. :) The course was very well marked, very technical and all of the volunteers were amazing; all in all this was simply a great experience! Rob, I look forward to next years’ event, assuming we don’t reschedule our trip to Disney World for that week. :)

For those that don’t know how much 50k is, let me spare you the effort: it’s about 31.1 miles. :) I went into the race with two simple goals: have fun & cross the finish line. It proved to be a great goal, and it’s exactly what I did. The total time on my Garmin was ~ 8 hours and 15 minutes, and I had a blast!

I realized I have a lot of training to do before my 50 miler in 2 months. This race was only 30 miles :), and I couldn’t have imagined having to run another 20 when I crossed the finish line of this race. Training for the Mohican 50 Miler officially begins next week! I have the same goals for that race (have fun & finish). However, I want to still feel very strong after 30 miles. The only way I know to do that is to train hard.

If you’re interested in my full race report, keep reading. If not, no hard feelings and c-ya! :) However, you may check back because I’ll post an overhead map of my run once I sync my Garmin (later tonight or tomorrow).

Start

I showed up at Mohican around 7:15 am and got my goody bag. Wow, lots of cool stuff! This could very well classify as one of the best goody bags I’d ever gotten; lots of camping stuff, ultra running stuff, and a very “trail” oriented mix of shwag. I was able to talk to some of my friends by the check in booth and everybody was real excited to get moving.

Before we got started, Rob had a few things to say about the race and why he put it on. He explained how the flags worked and pretty much told everybody that there was ‘no stopping’! He said “If you feel like you need drop out of the race, go ahead and have a seat at the next aid station and I’ll have someone pick you up in about 3 hours.” He then follows it by, “Seriously, you might as well just keep walking”. Perfect!! He then let Regis Jr. say a few words about the park and how it meant so much to him and his dad (Regis Shivers Sr.). Regis Sr. was the first generation of Mo Trail runners and just recently passed away. He left a hell of a legacy though. I wish I had a chance to meet him. Anyway, Jr.’s message was well received and you could feel that vibe that Regis Sr. was in this race too. :)

Miles 1 – 5

The first 5 miles were very uneventful. I literally let all the fast runners fly through the starting line and I stayed at the back of the pack and slugged along from the very first few steps. This was a single trail course the whole way, so it made sense to stay out of everybody’s way now, rather than dealing with them in the forest in a few miles. It turned out to be awesome, because I just chugged along through the woods like I would on any training run. Nobody was around me really to keep conversation, so I just did what I like to best: think. I did a lot of thinking on this run due to my “slow paced isolation” plan. :)

Miles 6 – 10

I got to the first aid station a lot quicker than I had imagined. I had no problems whatsoever, and moved right on through. I picked up a few pretzels, chugged a nice cold cup of water, and laughed with some of the voluneers on my way through. The remaining 4 miles (after the aid station) were just nice and relaxing. The weather was turning out to be nice and crisp with a slight breeze on the face. I still felt very strong; I could have picked up the pace through here, but I played it smart and just kept a slow pace with the runners in front of me.

Miles 11 – 15

As I was coming down the hill from the Orange loop, I heard a block party being held at the Covered Bridge. It was awesome coming up to these guys. As soon as they saw me, they made me feel like I was winning the race. :) I thanked them big time and pounded a few PBJ sandwich blocks. They all sent me on my way up to the next aid station with a smile.

The run from Aid station 2 to Aid station 3 was beautiful! I kind of pal’d up with Cheryl (she frequents a lot of the Mo training runs) and her friend Lucy. We slowly climbed through the Little Lyon falls and did some “root climbing”. Once we got to the top of Lyon Falls, they moved ahead of me and I was back to myself again. The bugs were kind of bothering me through here, because there was a bit of road and the bugs were just dying to get into my ears and eyes. Gross!

Rob put in a nice little muddy trail for this race. When I say mud, I mean M.U.D. The course goes through a bridle trail and the mud was very thick and very deep. With every step, I either slid a bit or my shoe tried to stay in the mud. It was fun though, to me this is what “trail running” is all about. :)

Miles 16 – 20

Aid Station 3 was great! These guys were very friendly and encouraging. One of the fellows (Michael) met me about 100 yards from the table and stole my bottles so that he could fill them for me. I ate a few more PBJ sandwiches, pounded a warm cup of Coke, a cookie, and some pretzels, and thanked the guys. I was on my way again and still feeling great.

The second time through the mud, I gave up trying to avoid it. I just gave into the idea of being muddy and by the end of this section, I had mud further up my leg than I’d like to admit. :S

As I was coming up to Big Lyon Falls, I was starting to feel some soreness in my legs, but it was to be expected. My training before this race wasn’t “all that” and I knew I was going to be working my legs today. As I tried to scale down Big Lyon falls, I felt the quads pretty good. :) However, this was a beautiful section and it reminded me a lot of my vacation with the girls a few weeks ago. After my descent down Big Lyon falls, I made it back to the party zone and refueled a bit more. This time I had a watermelon slice and a Chocolate Chip cookie.

Miles 21 – 25

From the Covered Bridge, I trekked up the Green section of the course and this was really hard for me. I’ve only ran this section once, when I paced Kim last year at the 100 miler. However, at that time it was very dark and it was going the other way (ie. down hill). Rob turned it around on us and made us go “up” it for this race. The entire 2 mile section up to the Fire Tower was on a slight incline. It felt more than “slight” at times, and this was probably the longest 2 mile stretch of the entire race for me. I was pretty much spent by this point and walking is all I could think about. Even as I jogged, I had to keep fighting myself from walking.

When I got to the Fire Tower, Kim was there as the aid station captain. She talked me into some potato soup, that her mom made. And I took a minute to empty all the sticks and rocks out of my shoes. I’d been collecting sharp things in my shoes the entire race, and each step was becoming more and more uncomfortable. I figured it was best to take the time to get them out now, rather than waiting another 4+ miles.

The Red section was awesome! On my way out of the aid station, Kim yelled “4 more miles til the next Aid Station Luc. It’s all downhill!”. Mmm hmm… It was mostly downhill, but keep in mind that this means very little at Mohican. “Downhill” basically means that the next check point is lower in elevation than where I’m currently at. It does not mean that I will be doing all downhill running though. :) It’s taken me a while to understand this actually. Rob and Kim are always telling me that certain sections of Mohican are “mostly flat” or “downhill”. I now have a new under-standing what “flat” and “downhill” actually mean when talking about trail running.

I ran past 2 runners through this section. The one guy was in really bad shape. I asked him if there was anything I could do, but he just wanted to get to the finish. The longest run he’d ever done before this race was only 10 miles. Wow, that’s a hell of a big jump to 30+ miles! He had really nasty blisters on his ankles from his shoes and he said that his knee caps hurt really bad. I gave him some words of encouragement and wish him luck as I picked my pace back up. The other runner had a locked up ITB and it looked like every single step hurt. I talked with him for a while as well, and he assured me he was going to try and at least finish. I threw encouraging words at him and went on my way again.

Miles 26 – 30

I got back to the Covered Bridge for the final time and they were very encouraging yet again. The music had stopped, but the enthusiasm was all still there. :) I drank some heed (it’s a drink) and grabbed a few Salt ‘n’ Vinegar chips and on my way. By this time I was kind of starting to feel nauseous. I didn’t want to drink anymore fluid, I didn’t want to think about putting anything in my mouth and I just wanted to sit down and chill for a minute.

Instead, I focused on a walk / jog routine. I would jog until I felt like puking, then I would walk to let my stomach settle down. Then I would jog again, and repeat. This section of the course had some very technical areas in it, so I did more walking than jogging through most of it. There were some killer hills towards the 30 mile marker and I might as well have crawled up them, because I was moving at a snails-pace by this point.

Finish!

There was one last killer hill before the finish line. By this time, I had been moving so slow for so long that a few runners that were far behind me at one point, were now passing me. We congratulated each other on our accomplishments and on they went. I let them get pretty far ahead of me as I slowly stomped down the North Rim trail hill. As I got back to Campground A, I heard the cheers for those runners and I knew that I had made it.

About this time, I heard a crazy guy honking his car like a mad man. I looked over and it was ma dude, NICK!! He had already finished and was pulling out of the parking lot as I was coming up to the finish line. My entire run had been so quiet and peaceful, then HOOOOONK HOOOOONK HOOOOOONK HONK HONK HONK HOOOOONK!! Thanks for the encouragement on my finish, Nick! I got a great laugh out of it! :D

As I came up to the finish line, Rob welcomed me with a high five and my first ultra belt buckle! :) He asked me what I thought of his course and I said that I really liked it, and that it definitely worked me. I stuck around for a few minutes and sat on a bench for a while. It’s always fun to stick around after these long distance races and watch other runners limping from place to place. :) Everybody’s legs are shot after these races, and it always makes me feel “normal-ish”. :) I spoke with Kim and Regis for a few minutes, then headed to my car for the long ride home.

Saturday, April 18, 2009

Perfect Saturday / 50K Sunday

Beautiful Saturday
I had a blast today. Jennifer took Lizzie with her along with her Mom & Morgan to a horse auction in Columbus. I got to keep Daizi and Jazzy at home with me and we all worked in the garage all day. Daizi swang on the swing most of the day and pal'ed around with Jazzy around the farm. It is so cute when they play nice with each other. They did all day today and acted like good friends, instead of siblings. We're lucky to have such good kids.

When I started on the garage at 1pm, it looked like an endless job; it was a complete mess with boxes and crap everywhere. Now it's nice and open with all the crap put where it needed to be. Mom and Dad came over for a bit and I drank a beer with "Pop". I'm anxious to get back to the garage soon and finish it up and start tinkering again. Warm weather does this to me. It's so nice to just crank up the IPod and stay busy while my girls run all around riding their bikes. So long winter!!

Mohican Forget the PR 50K
Tomorrow is my big race day. It's my first ultra of the year and I think I'm well trained for it. I'm not at all nervous about the distance this time. Last year I was so nervous before each of my big races. Mainly because I didn't know how the mileage would act on me, and I had set little goals for each one. I have no goals for this race, other than to have a great time and finish! I feel like I'm well trained and I know what I'm getting my self into. My biggest fear is that I haven't ran since Sunday and my knee has been acting up a bit the last two weeks; even going upstairs and on some days. Believe it or not, I'm almost anxious to just start running though and just ignore it. I know if it get's too bad, I'll just run until its numb. :) It worked on my first marathon (actually, I think it's the same knee??). :O Whatever, it'll be a total stress relief once I get moving tomorrow. I've had a bit of stress this week with a big project I've been working on. I plan to just zone out and put one foot in front of the other until I cross the finish line.


Well, the girls are all fed with nice yummy soup in their tummies, and I'm almost done charging the Garmin, I guess it's time to start thinking about sleep. If only I were tired... I'll probably just go in and lay down in bed with the girls and watch funny videos. I told them that they can sleep in our bed tonight since Jennifer isn't home yet. We're all gonna watch AFV until we fall esleep. They're pretty excited about that. :) The race starts at 7am, and I have a 1.5 hour drive to make tomorrow. This means, that I'll have to wake up early enough to eat a nice relaxing breakfast and drink some coffee before heading out the door. I'll probably set the alarm for 4:00 so that I can make sure I have everything packed and ready to go.

Next post will be my race report. :)

Friday, April 17, 2009

Coolest Code I’ve Written in a While

I’ve been working double time trying to finish an implementation for my job. Today I was able to bring together all of my hard work into an easy to use API and I’ve now realized what the hell I have been building.

As with most code and projects that I start, they begin as just an idea and then they slowing mature into “the big picture”. My project has finally reached “the big picture” status. I didn’t really realize it until late yesterday and mostly today (as I’ve been using my API). When I realized it, I literally threw myself back in my chair and threw my hands up and said “WHOA!?”. For example, look at the following method:

/// <summary>
/// Converts all cell references and spans to pixels.
/// </summary>
/// <param name="pixelsPerCell">A CellSpan that determines how many
pixels will up the new cell.</param>
/// <returns>A CellContext transformed to pixels.</returns>
public CellContext ConvertToPixels(CellSpan pixelsPerCell)
{
    return ((CellRange) this)*pixelsPerCell;
}

To the naked eye, it may seem simple. However, for me, I know what it took to get here; that single return statement executes about 30 lines of code underneath using operator overloading and implicit casting calls on multiple classes.

To understand what the method above does, here is a quick example. Assume that you have a table of 2 rows and 2 columns. Therefore:

0,0 0,1
1, 0 1,1

Now we want to create a table layout with a single cell spanning the left side. So:

var left = new CellContext(0, 0, 2, 1);

var topRight = new CellContext(0, 1);

var bottomRight = new CellContext(1, 1);

var table = new Table(left, topRight, bottomRight);

Will create a layout like this:

   
 

Here are the facts about the left cell:

  • cell start @ cell [0, 0]
  • cell spans 2 rows & 1 column
  • cell ends @ cell [1, 0]

Now let’s convert this layout a 20 by 20 table. There are many reasons we might need to do this. The best reason (and the reason that I wrote these classes) was to be able to convert a series of cell indexes and row/column spans to actual screen coordinates.

var pixelOffset = new CellSpan(20, 20);

table.ConvertToPixels(pixelOffset)

Here are the new facts about each cell now:

Cell [0, 0]

  • cell starts @ cell [0, 0]
  • cell spans 40 rows & 20 columns
  • cell ends @ cell [39, 19]

Cell [0, 1]

  • cell starts @ [0, 20]
  • cell spans 20 rows & 20 columns
  • cell ends at cell [19, 39]

Cell [1, 1]

  • cell starts @ cell [20, 20]
  • cell spans 20 rows & 20 columns
  • cell ends at cell [39, 39]

Now, keep in mind that I’ve only dealt with 4 cells and a have only shared a very brainless example. However, I’ve been building this to deal with large amounts of cells and complex configurations. The beauty is that no matter how much math I throw at it, it continues to work. :) For example, consider the following:

var context = new CellContext(37, 19, 14, 13);

var pixelOffset = new CellSpan(23, 17);

var pixels = context.ConvertToPixels(pixelOffset);

It goes without saying that I also created a method to convert back to relative indexes from pixels using division rather than multiplication. My unit tests are all passing for it as well. :)

Perhaps I’m just a geek and this excites way too much??

Tuesday, April 14, 2009

A Birthday to Remember

Yup, I turned 31 today. :) Here’s a quick and silly recap of all the good things that happened in this too short of a day:

The girls came in and told me happy birthday before they got on the bus, and that started me off with a smile. Then Jen let me sleep in til 10:30. When I did wake up, I smelled my favorite breakfast cooking in the kitchen (eggs, sausage, ham, & toast with fresh coffee). I gorged and was able to fulfill a very productive work day in the basement (sometimes rare). When the girls got home from school, they were so excited that it was my birthday, and that was so cute! They were genuinely giddy for me.

Jen had been cooking a pot roast all day in the kitchen for my birthday dinner, and the house has smelled amazing all day. My mom came and ate with us and we all had a great time. After dinner, Jen surprised me with a DQ ice cream cake (my absolute FAVORITE).

Then to top off the best birthday ever, all my girls drew up personalized birthday cards for me. They all had drawings of me and my drum-set with lots of balloons and little notes everywhere. Daizi’s was mostly scribbles, but I loved it just the same. They each got a huge hug and kiss for their awesome gifts. :)

Jennifer totally outdid herself this year with all the homemade yummies today, and then, to finish off her day of (complete) surprises, she got me the Pearl Jam box set that I wanted so badly!! I feel like that grungy teenage kid all over again! She swore she didn’t see my post, so this makes it that much more awesomer (?). We’re going to be watching the Unplugged DVD tonight after the girls go to bed; though I haven’t told her yet…

I feel like like one lucky dude today. LIFE IS GOOD!! I thought birthdays were supposed to be more boring the older you get…? I had to post something because tomorrow will be back to reality and I may need to reread just how lucky I really am with all these girls around me.

Saturday, April 11, 2009

Hoppy Easter

Tomorrow is Easter. Girls were very excited before going to bed tonight and it was fun listening to them try to figure out how the Easter Bunny can visit every house in one night, all over the world.

The quote of the night was when Jazzy asked me, “Daddy, how does the Easter Bunny open our doors without waking everybody up?” And before I could try to answer, Lizzie said “Jazzy, it’s because he’s so magical that he just walks through our walls”.

How can I correct such a genius answer. Thanks Liz! :)

As an adult, I try not to think about how creepy it sounds that there is a human-sized rabbit breaking into my house while I sleep and hopping all over the living room hiding eggs. Cweepy!

Monday, April 06, 2009

Hocking Hills Camping Vacation

Last week, Jennifer and I took our girls to Hocking Hills State Park for a 4 day / 3 night camping vacation in our new popup camper. We all had a blast!

DSC09782

Here is how it all breaks down, day by day, and attraction by attraction. Note that there are a lot of candid shots at the bottom if you just want to scroll to them instead. :)

Wednesday

DSC09781We arrived at Top O’ the Caves Campground around 4:30 pm after a quick drive. Once we got checked in, Jennifer and I got the camper all “popped up” and got everything turned on. Immediately we started a fire and cooked ourselves some hotdogs and s’mores for a nice family dinner. I, of course, washed down with some nice Sam Adams beers. We were all very excited to get up early the next morning and start hiking.

Thursday

DSC09799 We woke up around 8am, after a very short night’s sleep. Jen and I weren’t sure how to work the heater or the electrical system on this new camper, so we did a lot of trial and error all night long. Needless-to-say, neither of us felt very rested when we woke up. Jen cooked up some yummy eggs, sausage, and ham on the gas grill before we headed out for our full day of hiking. Today’s agenda consisted of Old Man’s Cave, Cedar Falls, and Ash Cave.

Old Man’s Cave

DSC09826 Wow, what a beautiful place! We started off at the main parking area and walked through various mazes of paths to get to the actual “cave”. Once we got to the cave it was well worth the 1/2 mile trek with the kids. There were a few spots where I (as a grown adult) had to duck through various walk ways along the path. The girls had a blast and really wore themselves out here. We were going to continue along the trail to see what else it had to offer, but decided to turn back and head towards the picnic area for a quick bite to eat. We still had to visit two other places today and we didn’t want to get too tuckered out here.

Cedar Falls

This place was really neat as well. I’ve ran past it before and heard the falls while running the Indian Run, but I’d never actually seen it. The girls thought it was really cool because they were able to climb all over the rocks real close to the actual water fall. :)

DSC09873

Ash Cave

DSC09915 This was the favorite of the day for everybody. We clearly saved the best for last. The cave was very big and had a magnificent water fall that fell over the caves’ ceiling. The girls especially liked it because it had a bunch of sand that they got to play in. The hike back to the cave was also nice because it was totally paved and we were able to let the girls pretty much take off and do what the wanted. Every other place today we had to watch them like hawks to prevent them from pummeling over a cliff.

After Ash Cave we all went to the Hocking Hills Dining Lodge and had a nice dinner. The place was really cool, we all sat near the window that was about 40 feet above the forest and you could see above all the trees for miles. We had a great time and filled up real good after our full day of hiking. By the time we got back to the campsite it was nearing 7pm, so I started a fire and we had some more s’mores then played cards in the popup (slap jack) before calling it a night.

Thursday was a great day!

Friday

It poured last night! And, I mean poured. I woke up a few times from the rain pounding down on the popup. It was loud and windy. The girls all slept pretty good, but Jennifer and I had another rough night of sleep. We finally “woke up” around 9am while the girls were all starting to get crazy and eat pop-tarts in the camper.

After Jen made a very yummy breakfast, we all put on our poncho’s and headed out for our second day of hiking in the Hocking Hills. We were pretty sure that we would be the only ones hiking today since it was still raining and very cold. Us Hardbargers don’t care! We’re hard core! Today’s agenda consisted of Cantwell Cliffs, Rock House, and Conkel’s Hollow.

Cantwell Cliffs

DSC09969 Heart attack! This was a very cool place, but man did it give us a few close calls with the 2 year old. :) The place consisted of an immediate decent through the rocks and many man-made stair cases in the rocks. The view’s were absolutely beautiful and there was nobody out today due to the weather. We had the whole place to ourselves and really got to spend as much time and be as loud as we wanted.

We did have one close call with Daizi way up on a cliff… She was walking along and then all the sudden, she tried to turn around and talk to Jazzy while walking and she started to drift. Luckily I saw it all in slow motion and stopped her. She was probably 2 feet from a 40 foot drop off; I decided to carry her the remainder of the hike. Phew!

After this hike, we all headed into the town of Logan and had a nice sit-down lunch at a small cafe. The girls were absolutely tuckered out already from all the steps at Cantwell Cliffs. We thought it was a nice time to stop and pump them full of carbs and protein before heading out to the other locations…

DSC09981

Rock House

This was a very cool place! It was basically a bunch tunnels in the side of a cliff. All the rain and river water that flows over a cliff erodes the wall back and creates these caves in the rock. The girls loved it! We got a lot of really cool pictures and had a blast at this place. It goes without saying that we had this park to ourselves as well because the weather was cold and wet. Some might say that the weather sucked, but we loved it of course. :)

DSC00014

Conkle’s Hollow

DSC00087 This was (by far) my favorite of the whole trip. It wasn’t part of the Hocking Hills State Park, rather it was a State Nature Preserve (similar to Blackhand Gorge) within the boundaries of Hocking Hills State Park. There was an upper trail and a lower trail. The upper trail was a 2 1/2 mile single path journey around the gorge, whereas the lower loop was a 1/2 mile paved trail into the gorge. We decided to stay on the lower trail and take our time.

Every step of the way was absolutely gorgeous. There might be a 140 foot cliffs on one side and a mossy green cave wall on the other side with a water fall. I can’t remember how many times I told Jennifer that it was my favorite place. When we got to the end of the 1/2 mile hike, it was the grand finale of beauty. There were 3 water falls that fed the stream we just walked down. I would have never guessed that the stream we were following was fed by 3 immaculate water falls.

DSC00059 If you get a chance to visit Hocking Hills State Park, be sure to take the time to visit Conkle’s Hollow, and walk the entire and lower path to the end. It’s a very pretty and slow stroll through Mother Nature’s finest work.

Conclusion

We all had a great time and the girls created memories that I’m sure they’ll cherish forever. I know that Jennifer and I sure did. Here are some random pictures that I feel are “share-worthy”:

DSC00108

DSC09932

DSC09918

DSC09911

DSC09801

DSC09798

DSC09796

DSC09789

DSC09795

DSC00126

The end.

Windows Live Writer

This is my first Windows Live Writer post. So far so good! It’s a pretty slick app. It’s totally styled my actual blog inside the app to show me exactly what it looks like before I post it. If you’ve not checked it out yet. I highly recommend it.

Now that I know about it, I could see me using it a lot. I’m hoping that it doesn’t pollute my HTML or add a bunch of MS specific tags. Let’s see… And, post!

Ok, now that’s slick! Here’s an image of the court house in Downtown Newark.

Map picture

It was "stupid-easy” to add…