Your leaking thatched hut during the restoration of a pre-Enlightenment state.

 

Hello, my name is Judas Gutenberg and this is my blaag (pronounced as you would the vomit noise "hyroop-bleuach").



links

decay & ruin
Biosphere II
Chernobyl
dead malls
Detroit
Irving housing

got that wrong
Paleofuture.com

appropriate tech
Arduino μcontrollers
Backwoods Home
Fractal antenna

fun social media stuff


Like asecular.com
(nobody does!)

Like my brownhouse:
   clunky flash chat
Wednesday, March 13 2002
Yesterday I discovered on my own how to build the basics of a chat system using Flash 5.0 as the front end. This is a project that I've considered undertaking for about a year and a half now, but I was always discouraged by the complexity of Flash. But now that I know most of the things to do (make lots of incremental backups) and avoid (minimize hasty movements when dealing with the many window palettes), intimidation has been replaced with intrigue. The catalyst to actually building a chat system came when I saw the inadequacies of the various ASP chat systems available for free. Snow (Bathtubgirl's boyfriend and collaborator) had sent me one such system and I could tell right away it would never do for a site that didn't expect to suck. So yesterday I put my nose to the grindstone and before long had a simple Flash component that could dynamically display the contents of a chat, updating itself as necessary. It was fairly crude, in that it simply reslurped the entire dialogue from the server with every refresh. But one big advantage was that it did so only when there was new content available (instead of robotically every so often). It knew when to refresh by periodically polling a system of server-side flags.
Today I made the chat system even more intelligent and less bandwidth-hungry. Instead of slurping the entire dialogue with every refresh, now the Flash component just slurps what changed since the last time slurping happened.
In theory, at least, this Flash-based chat should have been a spectacular accomplishment and I should have spent the evening drinking beers and celebrating my work. But at the end of the day the chat I'd built only seemed to run smoothly on PCs running Windows. From their end of the continent, Bathtubgirl and Snow reported that the system wasn't working at all on Macintosh computers. Furthermore, I noticed it was throwing errors in Opera (yes, I test in Opera!) and tending to crash IE after being left on for extended periods. Something was amiss, but looking at the flow of the code, I couldn't tell for the life of me what was wrong. Flash ActionScript itself is a highly unpredictable environment, subject to all sorts of arbitrary restrictions and bizarre undocumented behaviors that must be discovered through extensive testing. The only time I've ever felt as frustrated by programming was back before I learned the difference between byval and byref in VBScript. In Flash ActionScript I found, for example, that the LoadVariables operation would often succeed at loading the last variable of a variable list while failing to load the first, even though (according to all the documentation I found) the loading of the last variable should indicate that all variables are loaded. Later I debugged and traced my code extensively and found that simply setting a first variable equal to second could, in some freak cases, actually affect the value of the second variable, depending on the complexity of the data types. These problems make for all manner of maddening frustrations.

For linking purposes this article's URL is:
http://asecular.com/blog.php?020313

feedback
previous | next