If I keep blogging, that phrase will refer to my checks. But really, I’m talking about spit and polish on the UI. Often how good something is, is often judged on that. You wouldn’t believe the number of “Collection has been modified” exceptions I just throw away and don’t show, because I don’t want to fix it, and I know it will re-poll in a second later.
i multi-threading
The “Collection has been modified” exception you only get when multi-threading. Thankfully, .NET tells you if you’ve modified data on another thread, you are reading on another. The error is annoying, but it’s better than errors later, you can’t explain.
In this case, the code is running Traveling Salesman algorithm in a background thread, while the webpage is polling for results which gets serviced by a thread handling HTTP requests. The write occurs for a new solution in background, and the simultaneous read in the polling request gets an an exception, which isn’t passed on to the web browser. The browser receives no data, and simply polls again, hopefully w/o an error.
Here are some effects that add a little spit and polish on your UI. I’m not a web designer. I don’t have the knack. But I can try to copy style real well. Below is some of the effects implemented in a ASP.NET MVC2 project for Cartography Salesman on the Web.


