One of the major gripes I have with the Windows operating system is its inability to build decent event logs when an exception occurs. This is particularly annoying on the server builds because as a developer, I need to know what is causing a crash or a hang. Recently I have been developing a site using Sitecore and after a publish the site started crashing and bringing down the entire server. The following is an overview of how I solved the issue.
The first thing I did was check the Event Viewer on the server itself – notice the horrible information within the error. The one important code to write down is the exception code (0xE053534F).
After reading a tutorial on how to catch a crash I was able to catch the crash in a dump file. While the debug diag tool was useful for catching, I needed WinDbg to get to the root of the problem.
Note: I set the symbols location to SRV*c:\users\jsedlak\documents\websymbols*http://msdl.microsoft.com/download/symbols
As you can see, the debug view is fairly useless. Run the following commands:
Now you can see what is causing the stack overflow. Turns out it was an XSLT file that was doing a recursive climb up the Sitecore tree without a base case. The cause of the problem however was that I had just implemented Workflow on all items which corrupted their state and seemed to have removed their published version from the web database. By fixing the XSLT to have a base case and submitting all content through their workflow I was able to get the site back.
Is anyone else getting sick and tired of hearing the rants by people at Opera about how Microsoft isn’t doing enough for their business? I sure am and in the latest round Opera’s “chief technology officer,” Hakon Wium Lie has suggested that by Microsoft allowing the use of logos in the new browser ballot system will make users naturally gravitate towards IE because of the branding.
First off, Microsoft shouldn’t have to play nice and give users a ballot. When you load up any distro of Linux you don’t get a ballot that includes IE. Similarly when Mac users turn on OSX for the first time they don’t get a ballot with IE, Opera and Firefox. This is simply another case of the EU wanting to take down Microsoft for being successful while allowing the underdogs to run free because their products suck.
To allow Opera’s idea of no logos would be rediculous to say the least. Essentially what we have here is one company complaining that it can’t make ground in an overly saturated market because Microsoft and Microsoft alone is forcing users to use Internet Explorer. Last time I checked, there was no forcing and FireFox was making serious gains on the browser from Redmond. It seems that this latest episode is a simple case of poor branding (Opera) trying to take down good branding (IE).
Perhaps instead of complaining so much about other companies’ software packages, Opera should worry about making and advertising a decent product.
Busy feeder today with the family of Blue Jays trying to take over the last of the seed. The Pigeons and Squirrels on the other hand are contempt content to pick up the scraps on the ground.
This past Sunday I completed my very first Century (100 miles) on the bike. It has been a target I’ve been working towards since I started to get serious about riding last August. Not only was it tough on my body but more so on my mind.
Mile 0-46
The first 46 miles or so were spent leading our normal Sunday group ride out of Loantaka Park. Because I was the only one who knew the route, I was delegated the responsibilities of a group leader. My good friend helped me out when things got a little hectic by staying back or rushing forward to give some instructions but in general the ride was enjoyable. This was only the second time I have led a group ride and I must say that it is tougher than you expect. People, of course, have varying levels of skill in the sport and making sure all of them are happy and not getting lost can be hard work. There was one time where I repeated a hill a couple of times as I shuffled myself backwards in the strung out group. In the end, however, the awesome company from the other riders made the first 46 very enjoyable.
Mile 46-70
At mile 46 I stopped at home to refill the water bottles and was in the mindset that I would just do an extra 20 or 30 miles which would bring me to a season high of seventy. As I set off I remarked how good my legs were feeling and let the idea of a century creep in slowly. It was at this point that my mind started to take a downward turn. When you are in a group for many hours it is easy to pass the time by with conversation. In a sense it is as if the group can feed off itself for energy. On the other hand, when you are alone with the sun beating down, it is tough to stay focused 100% for so long. Luckily at mile 70 I decided to stop at my local bike shop for some food and some discussion.
Mile 70-90
As I left the LBS I made the crucial mistake of not topping off my water supply. I have always been a big consumer of water and with no clouds in the sky I should’ve known that my half bottle of gatorade would not be enough. At about mile 75, I realized the situation at hand but pressed on knowing that I would start to feel really dehydrated. At this point my mind was going crazy because water was all I could think about! At mile 85 I was seriously close to hallucinating and took my last sip to try and take my mind off the increasing stiffness in my back. I stopped by a vending machine but it wouldn’t take my money and so I set off for home, finally making it at mile 90 exactly.
The Home Stretch
Hitting 90 was certainly enough for me to be happy and so my spirits were on the up at this point. As I sat down and consumed at least 1-1.5 liters of liquid and ate a banana I could feel mile 100 was well within reach. I retopped both bottles at this time despite only having to go 10 and set off. I took a fairly flat route and when I hit the 5 mile marker I turned around and headed home with refreshed legs. Suddenly I found myself going 19-20 mph again, a speed I hadn’t seen since the 65 mile mark, but I let it continue since the adrenaline was kicking in.
A tenth of a mile from home I saw it: 100 miles. I was grinning like a stupid kid at Christmas, as happy as the one who got the N64 [in that commercial]. I had finally made it to one of my more epic goals and with fairly no planning either. While it wasn’t the most exciting route ever, the mileage is what counts.
Total time in the saddle? 6 hours and 37 minutes…
Here are some other stats from my Polar CS200:
Execution Time: 6:38.55
Avg HR: 140
Max HR: 185
Calories: 5436
Distance 100.1
Avg Speed: 15.1
Max Speed: 41.7
Avg Cadence: 85
Max Cadence: 126
Ride Time: 6:37.44
Extras…
Start Weight: 214.5lbs
End Weight: 208.5lbs (yikes!!!!)
Water Intake: 5-6 liters
Gatorade Intake: 1-2 liters
Food: 2 powerbars, 4-5 Cliff ShotBlocks, 1 banana
My next goal for distance will be something over 100, but with a much better route. I definitely repeated some of the easier parts of my local courses several times and I can’t help but feel it contributed to my poor mental state in the late portion of the ride. One idea I have toyed with was to ride to High Point Monument (and perhaps back) which will be very interesting and certainly epic.
Recently I entered myself into a mass-start ride that would be well over 60 miles long (70+ in fact) with over 5000 feet of climbing. While this may not seem like much to some of the ultra-cyclists out there, when you realize that the climbs are nearly all at a steep gradient (New Jersey is just a bunch of ridgelines) and that I have been working on my time trial position, something was going to break – and it did. My left knee started giving me problems at around mile 40 and I just rode through the pain.
My mother (a physical therapist) did a few simple checks and decided that my quad muscles were lopsided and one side of the leg was pulling the kneecap off center. Ok – not good but also not bad! After a fairly easy week though the pain had subsided off the bike because of the exercises I had been doing to strengthen the inner side, but on the bike the knee still hurt. I decided it was time for a cyclist’s opinion. Speaking with the person that has done my fit twice and is a good rider himself the conclusion was that there is something wrong with the way I was pedaling and/or sitting on the bike.
The problem could be one of many things…
I can hear the programmers wondering what the hell this post has to do with debugging code. If you are a learned programmer you should understand the benefit of the scientific method and having controlled changes. By limiting the number of things you change between builds a programmer can see how A affects B directly or indirectly without worrying about how C fits in. I take a similar approach to my health: when sick, eliminate something until the problem changes or is fixed and then work backwards adding things back on. Unfortunately I didn’t do that this time around!
What ended up happening is I bought new bibs (shorts with suspenders built in) that have a thicker padding than the ones I was wearing when the problem started. I also lightened my pedal stroke and sat farther back on the saddle. I just committed debugging suicide by changing three things about my fit and while it may not seem like a big difference remember that a 1mm change in saddle height can be the difference between excruciating pain and pure bliss for some riders. The effective changes include higher sitting height from the bibs and the saddle position, a different KOPS measurement due to changing the saddle position and spinning lighter meant that my quads would not be working against each other so much.
Where do I go from here? While the changes have eliminated the pain, I need to actually work backwards no until I get some sign of the pain reoccuring. This means sitting forward on my saddle with the new bibs as well as sitting at the back of the saddle with the old bibs. I have to mix it up completely until I can figure out specifically what triggered the pain. The problem is that it is time wasted towards a goal I don’t want to sustain (knee pain) and with a race in five weeks, my fit should be the last thing I am worried about.