The Curse

Occassionally I’m in need of some small tools for the projects I’m working on (Delphi, PHP, Java, C++), so I use my favourite compiler (Delphi) and start hacking. In the late 90’s I’ve released a bunch of freeware components and units for CodeGears Delphi (former Borland) – some of them were rock solid coded, but well, some were just fast hacks needed for those small utilities. The later one applies to THTMLParser, a HTML parsing unit which was released 1998 with full source code on the Delphi Super Page.

Years later (2006), I’ve stumbled across a page called “Memory Leak and the curse of Dennis Spreen” which refered to a bug in the code of the THTMLParser which led to a memory leak if used on a lot of HTML files. Since I wrote this parser for a one-time-run-utility I didn’t noticed the memory leak. But other coder used this source code to enhance it with some nice features while leaving the memory leak bug in the source code. So alot of HTML parser were released then by different people based on the THTMLParser code – but all with one thing in common: my memory leak bug (now refered to as “the curse”).

Sure it was frustrating while searching for a HTML parser component, finding some and downloading them but all with the same memory leak bug inside:-)
I’ve read about the complaints on the parser (no one questioned me ever directly about this memory bug, even though I’ve put my web adress in all source code files) and finally fixed the memory leak.

But due to the nature of the internet the curse will still be living on, since all the other not fixed components floating around still have this memory leak bug…

Update 2010/4: I got an email from Rod called “The Curse – explained”:

“The Curse of Dennis Spreen” evolved between myself and several other Delphi coders as a bit of a joke. Once upon a time, we were writing a web crawler and happily using your component as our parser. Thousands and thousands of lines of code into this project, we started noticing some goofy things happening. The program would bog down and if left to run for several days, just crash the entire machine. The worst part, was that the program would run for hours and hours with no problem whatsoever. In order for us to track down the errors, we had to let it run for hours and hopefuly figure out where the problem was or pour through tons of code matchng up .create and .free. We were broke so our memory leak detector was a pair of eyeballs and task manager. We spent weeks. At one point, one of the guys walks up to my desk with a naked Barbie doll dangling from a string in his hand. He holds it over my monitor and starts stabbing the doll with a straightend out paper clip. He explaind he was using voodoo to remove the curse from my machine so our code would work. The next day, we tracked the leak down to your parser code and from that day forward, those two weeks were designated the “Curse of Dennis Spreen.” I think we tried to contact you back then but never got a response and ended up using a different parser.

A few years later I was hunting down another HTML parser and downloaded the one from WAK Productions and happlily plugged it in. It looked very familiar but nothing jumped out at me. Again, days later I’m starting to notice some really wierd problems. It took me a lot less that two weeks, but I’m sure you can imagine my surprise when I saw it was actually your code in the parser. Yet again, you had come back to haunt me and I had to relay the story to my old friends from the first project. They unoficially named it “The Curse of Dennis Spreen 2, the sequal.” One of them later mailed me a naked Barbie doll and some straight pins inside a plastic bag with the label, “break in case of emergency.”

So now you know the story behind the “Curse of Dennis Spreen.” I’m sure you had no idea it involed naked voodoo Barbie dolls. Kind of funny to think about how little things you do in life and think nothing of it can have an impact on peope half way around the planet.

Glad to see you fixed it, Dennis. It’s nice to know that I have one less curse to worry about coming back to haunt me 🙂


About Dennis D. Spreen

I'm an avid programmer working on a variety of platforms in a variety of languages with a wide technical interest.


QR Code