Archive for the ‘Development’ Category

Garry’s Mod Control Points

Thursday, June 25th, 2009

I’ve been working on a set of control point entities for Garry’s Mod the last week or two. My goal is to provide a set of reusable entities that mappers and gamemode creators can use. The initial design is based fairly heavily on the Team Fortress 2 control point entities. WiP thread on the FacePunch forums.

Last night I also threw together a quick Fretta gamemode to test them out: Download

Help is updating to reflect your recent changes

Tuesday, September 23rd, 2008

I recently encountered this lovely dialog box while debugging something in Microsoft Visual Studio 2005. Visual Studio is an Integrated Development Environment (IDE) for Microsoft’s programming languages. In the 2005 version, when one is debugging and encounters an unhandled exception, Visual Studio will pop up a (not so) helpful context box that looks similar to the above image.

Since we have many exceptions that bubble up from our functions, they often have InnerExceptions that are wrapped inside of the current exception. Because the inner exception is usually where the important information about what actually went wrong is kept, I clicked on the prominent “Check the InnerException property for more information” link, expecting the InnerException to then be displayed.

But, instead of the InnerException, I was greeted with this dialog box:

Help is updating to reflect your recent changes

Well this is interesting. Apparently I have made recent changes to something that requires help to update itself. But, I didn’t want to go to help! I wanted to view the InnerException!

Too bad.

Notice that there is no “Cancel” button there? This is also very interesting because the “several minutes” that it is talking about was really 15-20 minutes. During this time, of course, Visual Studio was locked in an unusuable state.

Eventually, when help finishes doing whatever it is doing, a help page is displayed:

This is obviously not very helpful as it doesn’t tell me anything about what is wrong with my application, and I didn’t even want to be here in the first place! I just wasted 20 minutes out of my day!

Some things that are wrong with this:

  • The exception helper dialog box is unclear. It leads me to believe that clicking on a certain link will display the inner exception and does not indicate that it will instead display a help file. (I really needed to click the smaller link below under Actions titled “View Detail…”)
  • I had not made any recent changes. I had been programming or debugging for the last few hours, not making changes related to help files. This was really confusing. The accusatory tone (“your recent changes”) didn’t help matters either.
  • I did not want to be where I was, and there was no way out. The update dialog box had no “Cancel” button, no “Back” button, no “STOP RIGHT NOW AND LET ME OUT” option. To top it off, it used one of those “Infinite Progress Bars.” You know, the ones that don’t actually fill up as time goes on, but keep cycling back and forth.
  • I could not work during this process. Visual Studio was locked behind this dialog box, and because there was no way out, I could not continue working until it finished.
  • The help file was not helpful. Exceptions represent errors that occur during application execution? Seriously? This is ridiculous. I already know this, and it does not help me figure out what actually happened to my application.