Beware of IE’s Friendly Error Messages

December 28, 2005

I’m right in the middle of a fairly significant enhancement to a project at work. The enhancement itself is not that difficult on paper however it involves a large amount of code refactoring to get things situated appropriately.

After spending a couple hours combining two projects and merging the object models, I started trying to test the most basic web service functionality of the project. Of course, it failed with a “HTTP 500 - Internal server error ” message. It wasn’t unexpected and I assumed it was the actual calls to our backend. Surprisingly, further testing revealed everything was working all the way to the backend and up until the end of the web service call. I added a try…catch block hoping to catch it. No dice. Since it made it to the end, I thought it might be a serialization issue. I went back through the code and found a couple of entities not marked “Serializable” which I thought might be causing the problem. Ran the test again. Same thing. More digging, more tweaking, more testing. No luck.

In a normal debugging situation, I would immediately turn to Google to see what I could turn up. However in this case, all I had was the “HTTP 500 - Internal server error ” message which is pretty generic and I didn’t think it would do me any good. So, after over an hour of struggling, I caved and decided to see if the Google gods would have mercy on me. A couple queries later and I’m looking at Xml Soap Exceptions - Get Internal 500 Error. Hmmm. The poster was having a similar issue to mine. The only response was from the original poster: “Duh, got it, need to uncheck Friendly Error Message in IE.”

Gosh, why would I need to uncheck that? After all, the error is being generated on the server and the browser is just displaying the HTML returned from the server. Right? Since I had nothing else to go on and had actually never heard of the “Friendly Error Message” option, I decided to check it out. Sure enough, on the Advanced tab, under the Browsing section, there is a checkbox for “Show friendly HTTP error messages.” And what do you know? I re-ran my test and got the following helpful error message: “There was an error generating the XML document. –> The type Some.Entity.Specific.To.My.Day.Job was not expected. Use the XmlInclude or SoapInclude attribute to specify types that are not known statically.”

Now, I’m not usually a Microsoft or Internet Explorer basher, but who the hell decided that this would be a good option? If this were an obscure problem on a public site and a customer called reporting that they were getting a “HTTP 500 - Internal server error” message, who knows how hard it would have been to solve. Certainly not as easy as it would have been if they were able to report the specific error message.

I guess it’s my fault though. I should have known about the Friendly Error Messages option. After all, a couple of years ago, I got burned by the “Display a notification about every script error” option. If that isn’t checked, not only do you not get the pop-up telling you there was a script error on the page, but it also doesn’t even change the icon in the bottom-left by the status bar. You kind of need that when you are coding JavaScript. That one cost me a couple hours then too. I wonder what other wonderful settings there are to make my life more miserable.

FYI, Firefox displayed the actual error message as well without changing any settings. That’ll teach me to stray!

Popularity: 4% [?]

White elephant gift exchange lessons learned

December 20, 2005

I’m currently part of three different teams at the moment at my day job. As such, I’ve been to three different holiday get-togethers for the various teams. One was a late afternoon happy hour/potluck; one was a lunch at a nice restaurant; and another was a late afternoon appetizer/dessert at a nice place that specializes in desserts.

At two of the get-togethers, we took part in the traditional white elephant/gag gift exchange game. For the most part, I like the game. However, how you define the rules up front has a lot to do with the success of the game and how many people will walk away upset.

- The first rule is that the person who’s turn it is gets to either open a present from the pile or they can steal an opened present from someone else.
-The next rule you should have is that each present can only be stolen three times. This means that four people will have had it in their posession: the opener and then three stealers. This is a good rule to put in place to keep games from going on ad infinitum .
- Along with the three steals limit, there should be a ‘no stealbacks’ rule. For most groups this is an unspoken rule because it harkens back to the ‘no tagbacks’ rule from when we were kids. But it never hurts to verbalize it because it really sucks to see two people use up the three steals limit on one gift in rapid succession.
- Finally, when you get to the end, that’s it! The first person is screwed. Sorry. None of this, ‘First person gets a chance to steal’ crap. They already have a present. They had the pick of all the presents up there. Hopefully they got something worth stealing which then gave them additional chances to open another or steal from someone else. As it is, if they can steal at the end, then what happens to that victim? They get stuck with what the first person had? Everybody else had a fair chance to choose their gift, except that person. Seems like crap to me.

My second gift exchange (with the first person can choose rule) found the victim with the present they brought, which isn’t fair. So they were given a chance to choose. Of course, the new victim wanted a chance to choose, etc. The game went on for another five to ten minutes like that with people getting quite irked because that just isn’t the way it is supposed to be played.

The first gift exchange I took part in where the first person was screwed ended up much better. Well, the first person wasn’t all that happy because they got stuck with a crappy present that no one else wanted to steal, but rather one person than half the group!

Shopping suggestions: You can spend a lot of time trying to come up with the perfect gift, but I think the best thing to do is to visit your local drug store or grocery store and visit their gift/crap aisle. There is all sorts of stuff there that goes over quite well for these things. Stuff you would never buy except for white elephant gift exchanges.

Popularity: 4% [?]

Postmarks Postscript

December 18, 2005

OK, I jumped the gun on my Postmarks post. After writing the article of how I planned to manage the various places I’d been, I then decided to actually implement the system. Using Posts to capture the What, When and Where was working just fine. The CopyURLPlus extension worked great and made the whole thing quite easy. However, after I got a couple posts into it (yes, I was retroactively adding things to my Postmarks category), I started encountering entries that I felt awkward about adding.

Specifically, when I got to forum threads where I had quoted others and then broke up my response in between quoted sections. See my second post on this thread: “div not completely wrapping contents.” Sure I could just copy my whole response, quotes and all, but something didn’t feel right.

Then, the more I thought about, the more I disliked duplicating my comments regardless of whether there were complexities involved. I’d almost describe it as a feeling of guilt. In effect, I was duplicating content from another discussion and potentially starting my own discussion since Comments were on. So, rather than consolidating information, I had duplicated parts out of context and fragmented the conversation. I definitely didn’t like the data duplication and I felt that the branching violated the spirit of open communication.

So, my new system is this: Add the item as a new Link in WordPress and assign it to the Postmarks Link category. I’ll display the latest 10 or so links in the sidebar for now. One day I might build a page to display them all. Granted, I’ll miss having the What posted as content on the site and there’s always the potential that the When isn’t captured correctly on the original site, but I’m content with just knowing the Where for now.

Sorry for the misdirection in the initial post. Live and learn.

Popularity: 2% [?]

Postmarks

December 18, 2005

Back in October when I finally decided that I was going to use SwoofWare and WordPress as my primary location and tool for blogging (versus waffling between other domains (like my personal domain) and other tools (like TextPattern)), I started to have a desire to track and consolidate my comments and posts to various blogs and forums around the internet. I’m not quite sure why exactly I wanted to do it. I’m sure it has narcissistic origins, but I’d like to think that I was looking for some simple way to check back on past conversations to see if there had been follow-up.

At the very least, I wanted to know where I had been. With Google, this isn’t too hard if you have a unique given name or had the forethought to create a unique identity specific to you (hence the future purpose of SwoofWare). But if you have a name like Matt Smith and didn’t do things consistently when leaving comments and posts, it gets kind of hard to know where you’ve been.

At the extreme end, it would be nice to know if someone had followed up on a previous comment of mine. Sure, blogs (and some forums) have individual RSS comment feeds I could subscribe to and most forums have email notification, but that sure does seem like a lot of maintenance on my part. Plus, it really doesn’t satisfy my desire to have all of my comments consolidated.

Of course, my desire for consolidation is partially due to convenience for me, but also as a convenience for others. It gives people a chance to see what I’ve said in a wide variety of settings.

I thought I was alone in my desire to do this until I ran across a posting about Personal Comment Aggregation by Geof Morris on his The Indiana Jones School of Management blog.

I’m going to give this a try … using del.icio.us to leave myself a trail of breadcrumbs of the places I’ve left comments.

While I have a del.icio.us account, I’ve yet to really use it and I really didn’t want to maintain this type of information in yet another web site. Especially since all it would be capturing is the link info. Ideally I wanted to capture my posting and use it as content for this site since they are my thoughts (Yeah, I’m sure that I’ve lost my rights to my comments on numerous sites in the fine print, but I’ll cross that bridge when I come to it).

I’ve been background processing the whole thing for a while and stopped back by Geof’s post tonight to see if there was anything new or any reports on how it was going with the del.icio.us links. Turns out he has written a much more in-depth posting on Personal Comment Aggregation on another of his blogs (I think he has identity issues. Just kidding, as I know he’ll be by once he sees the trackbacks.). His post outlines a much more coherent and thought out description of what the problem (or opportunity) is:

Then, in the comments he and Chris Meller toss around a couple of ideas from a solution point of view.

After reading through it and spending a little time to digest it, I decided that I don’t really need to know about responses to things I’ve said. Sure, it would be great if it could be easily accomplished, but given the complexities and the fact that most threads/conversations die out pretty quickly, I don’t know that it is worth it to even attempt it. In my case, I’m content with just having a simple way to record what I’ve said.

So how to do that? Since one of my primary goals is to also use it as content for this site, it only makes sense to have it integrated into WordPress. Ideally I would capture lots of meta data with custom fields to later come back and parse through in a variety of interesting ways. Unfortunately, it has to be really easy so that I will use it and the chances of me coming back to do anything with it are slim to none. So, scratch the custom fields and let’s stick with a basic Post since it easily captures the What and When and the Where can just be an additional link at the beginning or end of the post. But in an effort to mark it up a little bit in case I ever wanted to go back, I ended up with

Of course, adding the additional markup was going to slow things down and make it more likely that I wouldn’t do it. Then I remembered reading about CopyURLPlus a cool Firefox extension for copying URL and Title info from a page. Turns out it is customizable and you can format the clipboard contents however you want. So, going along with my markup requirements, I ended up with the following customization:

The next step was to identify these posts differently from normal posts. The best that I could come up with was by using the Category functionality. I tossed around a couple of category names like Breadcrumbs, Markers, TrackBacks and LandMarks but finally settled on Postmarks.

A postmark is a postal marking made on a letter, package, postcard or the like indicating the (more or less precise) date and time that the item was delivered into the care of the postal service.
Postmark - Wikipedia, the free encyclopedia

Bada-bing, bada-boom. Now all I need to do to get the content into my blog is highlight the text, right-click and select my custom CopyURLPlus entry, click my Press It bookmarklet to start a new post, paste the content, copy the title into the title field, select the Postmark category, and I’m done. Might not be as easy as I’d like, but certainly doable.

Popularity: 3% [?]

Google: Ten Golden Rules

December 6, 2005

A brief article in Newsweek by Eric Schmidt Google CEO and Hal Varian, a Berkeley professor and consultant with Google about Google’s 10 Golden Rules.

The ongoing debate about whether big corporations are mismanaging knowledge workers is one we take very seriously, because those who don’t get it right will be gone.

Summarizing their 10 Golden Rules (read the article for details):
# Hire by committee
# Cater to their every need
# Pack them in
# Make coordination easy
# Eat your own dog food
# Encourage creativity
# Strive to reach consensus
# Don’t be evil
# Data drive decisions
# Communicate effectively

I’m not nearly smart enough or creative enough to work at Google but there’s no reason that other software companies shouldn’t try to attain to the same goals. It’s amazing what you can get out of people when you trust and reward them properly. Reminds me of a formula in Joel Spolsky’s article on Hitting the High Notes:

Best Working Conditions ? Best Programmers ? Best Software ? Profit!

It’s a pretty convenient formula, especially since our real goal in starting Fog Creek was to create a software company where we would want to work.

Popularity: 2% [?]

Aardvark Firefox extension

December 6, 2005

I usually try not to re-post entries posted on BoingBoing or Gadgetopia, but I couldn’t pass this one up on Gadgetopia. If you are a web developer, you need to install the Aardvark Firefox extension as soon as possible.

As you glide the mouse over the page, you will see a red rectangle framing each element under the cursor. You will also see a little yellow caption showing the HTML element type and its class or id if they exist.

You can then press certain keys on the keyboard (as indicated below) to do various things, such as delete the selected element from the page, isolate the element, or move the selection rectangle outward to the containing element.

It’s very cool all the different things that it allows you to do to the elements on a page: Remove, Isolate, Colorize, etc. As pointed out in the Gadgetopia post, Isolate will be really handy for removing all content of a page except the chosen block for printing.

I really need to turn on my categories again so that I can tag this one a Recommended.

Popularity: 2% [?]

Google Calendar

December 5, 2005

I read Jeremy Zawodny’s wishlist several months ago and while looking forward to what a Google calendar might be like, it obviously doesn’t bode well for MyHomePoint, our online calendar that we have been working on forever. Especially since we are way behind in the feature-set area. Evidently calendar.google.com has been active for a couple months so it was just a matter of time. And it seems as if the time is now:

Rumor has it that Google will launch a new online calendar/ events managment service at Esther Dyson’s When 2.0 conference next week.

We came to terms with Trumba’s release and believe we target a different type of user. I have a feeling that the same will be true for Google Calendar, especially if it continues the trend of social calendaring.

Popularity: 4% [?]

FeedLounge beta status

December 5, 2005

Alex King has a lengthy post detailing the current state of affairs over at FeedLounge.

This post is a long one. In it, we will cover some of the issues that have delayed FeedLounge’s public release, talk about the business model (paid vs. free, and when) and announce our beta (public) release date.

I’ve followed Alex’s blog for a while now and used his UseTasks application for several months so I was really looking forward to their web-based feed reader (especially since I wasn’t using anything at all at the time). I’ve followed their trials and tribulations pretty closely the past several months as we have been diligently working on our online family calendar with the hopes of releasing it soon. Granted, we probably won’t have anywhere near the initial onslaught of potential customers as I’m sure most probably wonder why the world needs yet another calendar application (ours is family-oriented and much better than the majority of apps in that space).

MyHomePoint has been in an extended alpha phase now for several months. We also have had our fair share of technical, business and personal delays. However, we are getting closer to beta and have finally defined what actually constitutes our beta (to try to end our constant feature creep) and have been working towards implementing it. Like Alex mentioned, we’ve seen the competition emerging and initially felt overwhelmed, however it gives justification that we are in a niche area that if done right, could be quite successful. Modifying a quote from Alex:

…we’re confident that our extensive “future” list will continue to make FeedLounge MyHomePoint very compelling.

Popularity: 2% [?]

Traffic and 404 errors

December 4, 2005

I’ve never really been too sure about how much traffic this site gets which in turn has fueled my apathy for maintaining the site. That might be changing though due to my new knowledge.

First, I occasionally get comments but hadn’t seen anything in a while, so I just assumed not many people were coming by. As I pointed out earlier, that was due to my latest upgrade back in early November.

Second, my traffic numbers are much higher than I thought. Of course, they really aren’t that impressive, but much I was surprised. For November 2005 I had almost 3,500 page views and almost 2,000 visitors. And that was even with filtering like crazy to get rid of all my hits and all the auto-hits from rss aggregators, etc.

Third, I’ve had 180+ hits from various search engines for topics such the new Arthur Ravenel Bridge, using CSS on eBay, WordPress WIMP installations, etc. Needless to say, knowing that I’m providing a benefit to someone, somewhere is somewhat satisfying.

Fourth, when I implemented clean URLs a while back, once again, I didn’t follow through to make sure that absolutely everything was working correctly. It took a couple revisions to even get categories and paging working correctly (because I never click on anything and just assumed it worked). Well, in my digging tonight, I found out that I had 600+ trackbacks that 404′d because I had not put the appropriate entry to handle the clean trackback urls.

For the month of December, I’m going to put forth some effort to try to tidy up the site even more and maybe even address Jakob Nielsen’s Weblog Usability: The Top Ten Design Mistakes. There are a ton of navigation options currently turned off because I didn’t like the way they were rendered. And I’ve still got several 404 errors to fix.

Please let me know if you find anything that needs fixed.

Popularity: 2% [?]

Comment spam

December 3, 2005

So I went through a month or so ago and updated my site with a clean WP install with a new theme. I didn’t have a lot of time so I purposefully neglected to go back and implement my comment spam prevention mechanism. Of course, I’ve spent far more time since that update deleting spam comments than what it would have taken to block it to begin with.

Even worse, since I was getting comment spam I assumed that comments still worked. Unfortunately, during the upgrade I left the wp-comments-post.php in place assuming that the files that I had just installed were pointing to it. We all know what happens when we assume. With the exception of renaming wp-comments-post.php all the other changes were in the templates and had not been overwritten. So, when you tried to leave a comment you got a 404 because it was looking for my “hidden” comment handler. But since the spammers just go straight for wp-comments-post.php they didn’t have a problem.

The biggest kicker is that since all my changes weren’t overwritten, all I had to do was rename wp-comments-post.php to get everything working correctly. Guess it pays to always follow through on the little stuff to avoid bigger headaches later.

Now that comments are working again I expect to see a flood of legit comments. Ha!

Popularity: 2% [?]

Next Page »

MyHomePoint

Having trouble keeping track of everything going on at home? Is the refrigerator organizer not cutting it anymore? We feel the same way...
Check out MyHomePoint »

Close
E-mail It