I’m getting ready to release Tangelo 1.0b5 to my beta testers. This version supports multiple weblogs and provides valid RSS and Atom feeds, plus a few minor interface improvements.
Warning: minor geek speak to follow, but nothing too deep.
Getting the RSS feed to validate was a chore. I worked on it for days. I couldn’t understand what was wrong. The file that Tangelo generated on my own machine was perfectly valid and perfectly fine. Hmmm. Must be something wrong the FTP code, because once it’s uploaded, it has a null character toward the end of the feed. Weird.
Now, I’m programming Tangelo in REALbasic and I’m running the latest release, version 5.5.2. I also keep 5.5.1 handy, as I’ll often launch the older version to test something quickly. This is what I was doing with Tangelo. I had my main code open in 5.5.2, and my demo code open in 5.5.1. Everything worked in the demo code, but as soon as I switched to my production code, BOOM! Feed’s broken.
In REALbasic, all networking is done through sockets. So once I realized that the difference was between 5.5.1 and 5.5.2 (and not in my code, which is correct), I figured there must be something that changed in the socket code between 5.5.1 and 5.5.2. So I posted a question to the incredibly valuable REALbasic Network User Group, the best and most informative mailing list I’ve ever participated in. Turns out there’s a bug in REALbasic 5.5.2, but it’s not in the sockets. It’s in the BinaryStream, which is simply a way to read data from a file (as opposed to treating the file as text). As the BinaryStream reads in data (in chunks, the size of which is determined by the programmer), it adds a null character to the stream. Thanks to Lou Forlini for pointing me in the right direction.
So, the fix for now is to revert to 5.5.1, which isn’t that big a deal, I suppose, and hope for 5.5.3. And if there is no 5.5.3, hey, that’s cool. That just means RB 6 is coming faster.