I enjoy the DARPA Grand Challenge. I think its great to watch these teams go through their issues as they try to address the problem domain of getting a car to drive itself. Its mostly a schaedenfraude thing, but there is some sympathy as well.
So I saw this article. Its essentially an advertisement for the Red Gate ANTS profiler, but my favorite bit is this:
Though we thought we had cleared all references to old entries in the list, because the objects were still registered as subscribers to an event, they were never getting deleted.
We added one line of code to remove the event subscription and, over the next three days, we successfully ran the car for 300 miles through the Mojave desert.
Their story actually seems typical of what you see with the average developer or team. They assume that a managed language like C# protects them from running out memory (or having to think about memory management) because of the garbage collector. Other typical part of the story is that if you believe the first premise (GC protects your memory), then if you run out of memory it must be due to a memory leak.
I am not sure what makes me giggle like a gibbering fool more: the patent misunderstanding of OOP and holding a reference, or the fact that a 14 day trial version software revealed their error in no time flat.