Slime Update Archive - September 2002

Anyone want some cake?

I had been expecting my parents to order a cake for my birthday yesterday from the dining hall here at school. Strangely, I got no call from the dining hall as I had last year, so I assumed either they hadn’t ordered one, or something had gone wrong with the order. I had, earlier, told my friends not to get me a cake on the assumption that I would be getting this one from my parents.

So I let my friends know yesterday morning that my parent’s cake hadn’t come, and also told them that I didn’t expect them to get one for me. Naturally, they did anyway. And, due to uncoordinated efforts, two different friends got me two different cakes. And, of course, only three people even wanted a piece. So we had quite a bit left over.

I got a call this morning. “Just letting you know that you have a birthday cake to pick up here at the dining hall.” Oh goodie.

On the other hand, I spent last night at Dan’s, and Linda (who wasn’t able to come to school this semester because she got sick) came up, and will be staying for two more days. Dan and I worked on a movie script until 2 AM that may or may not take off in the near future. And I got a nice new pair of headphones and a book on XSLT, among other things.

Oh, and by the way: posts should now have timestamps at the bottom.

Posted at 4 PM on September 30, 2002
Edited at 6 PM

Symmetrical Statistics

Well look at that. It appears that my visitors have more of a life than me: they do things on the weekend. Geeks.

Visitor statistics for this past week

By the way: normally, I would take images and float them to one side or the other so that they look nice and fit in with the content. However, I’ve found that doing so causes them to stay in position during the animation of elements when you click one of the arrow buttons in IE 6. It looks weird. So I’m not doing it. I’ve submitted the bug via the Web Standards Project.

Tomorrow’s my birthday. Yippee =)

Posted at 11 PM on September 28, 2002

The Battle of the Idiotic Flying Cones

Not much to say. Due to frustrations with the Javascript Raytracer, I’ve put it down (temporarily) and have been working on a C++ program that is supposed to simulate a large-scale fight. Like Babylon 5 or Star Trek space fights. I’m outputting the data to a text file and using POV-Ray to render the fight. Hopefully when I get it working well, I can make the graphics neat this way.

I may post a screenshot of this in the near future. It’s sort of boring now. Lots of little triangles flying around, shooting a laser now and then. They die more often from crashing into each other than from being shot.

And, as usual, I’ve been doing this instead of my reading, which I’ve been trying to catch up on tonight. It’s hard to read PDF’s that look like a book photocopied three times over.

Oh, by the way. I’ve been unable to reproduce that bug I mentioned in my last post. Figures. Hopefully though, that means I’ve merely overlooked something, and it may be more fixable than I thought.

Posted at 11 PM on September 24, 2002

Fun with Javascript

There are two kinds of problems you can run into when you’re working with Javascript. The first is the kind that beginning programmers get. I love that kind. That’s the kind where a small window pops up and says “object expected!” or “syntax error!” or “object does not support that property or method!” Those errors are great. You open up your text editor, hit the “go to line” shortcut, jump to the line number with the error, and fix it. Of course, sometimes it takes time to figure out what’s causing the problem. It may take minutes, or hours, or sometimes even days to fix.

But you can fix it.

You see, there’s another kind of problem you can run into. This is when the browser you’re testing a page in doesn’t behave as it should. It’s when there’s a bug in the browser, and not in your code. This is the kind of problem I hate.

I believe the first bug of this sort that I personally encountered is what I’ve dubbed the “random line breaks in source” bug in Netscape Navigator 4.7. If a web page got too long, sometimes, NN4 would think there was a newline character when there wasn’t. This would cause something to malfunction. It would turn this:

myobject.myproperty = myfunction();

Into this:

myobject.mypro
perty = myfunction();

And then throw an error at you because it didn’t know what “perty” was. You could see that it was doing this by viewing the source in it’s own little source viewing window.

The bug was very inconsistent. Given the same web page, it would split the source in the same place. But give it another web page that was off by a single character, and it would split it somewhere completely different, or nowhere at all. The workaround, therefore, was to insert your own line breaks here and there, one after another, until you created a page that Navigator randomly decided not to mutilate.

The longer the page, however, the harder this was to do. Take cyanslime, for instance. There are over 1000 lines of code in that page. I believe I did get it to work, eventually, but only if it was the very first page you viewed after installing Navigator. That was good enough for me.

Fast forward to this very page. I discovered, while creating this page, that when you create an element via DOM methods in Internet Explorer, it doesn’t take on any style properties assigned to it through an outside style sheet. So if your stylesheet contains

.myclass {color:red;}

and you create an element via document.createElement, and set its class property via setAttribute('class','myclass'), it won’t become red. It will keep the default color.

The workaround is to use a non-DOM compliant property: innerHTML. By setting myelement.innerHTML += '' you can force Internet Explorer to recreate the object internally, and its text will become red.

This workaround, however, can cause a problem: reading and setting the innerHTML of an element with many sub-elements, like a large table with thousands of tiny table cells, for instance, takes a very long time. And when you want to create row after row of cells in this table, and display them all one after the other, and you need them to take on style properties, this workaround can freeze the browser up for a minute or longer.

And I don’t think there’s anything I can do about it.

So if you happen to know of a different workaround, please let me know of it. I’d like to get back to “object expected.”

Posted at 1 AM on September 22, 2002

Logistics

For those of you who are unaware, there are three parts to this page. The Slime Update is only one of them. Scroll down to view the rest. And use the green buttons on the upper right to switch them around, if you have a recent browser with good DOM support.

I’ve decided, at least for the time being, to display a maximum of one entry under “Current Work.” Whether or not I’ll internally delete the old entries I haven’t decided yet, but there doesn’t seem to be much point in keeping them.

In the future, when I get around to it, dates and times for Slime Update entries will be displayed, and eventually, archives should be available (along with “permanent links” to each entry). But... that’s in the future. Which probably means like six months to a year or until someone bugs me enough, judging from past experience.

Posted at 5 PM on September 21, 2002

EML

I found this month’s Wide Open at Digital Web Magazine pretty funny, but it was difficult to figure out what the author was intending to defend: the use of abbreviations or the use of proper grammar? Not that it matters, it was only written to be funny. Still, that bugged me...

I’m sure you’ll be glad to know that rather than update my site, which is getting approximately 100 faithful visitors per day (according to my statistics software, which is probably overestimating), I’ve been throwing spears around. Do yourself a favor: don’t click the link.

Here’s a question for you: Why did the World Wide Web Consortium call Extensible Markup Language XML? X is the second letter in Extensible. This bugs me. The only logical reason is that they wanted it to sound cool. Like “X-Men,” or something. Microsoft, of course, has Direct-X. But they’re Microsoft, we expect them to be obnoxious. The W3C should hold itself in higher esteem than that. And now, of course, it’s propogating into other language names, such as XHTML. They didn’t even stop to think about the fact that no one will be able to find a suitable unused acronym for Xylophone Markup Language, when it’s created.

Sigh.

Posted at 11 PM on September 18, 2002

Work and Warcraft

Not surprisingly, my reading hasn’t gone as quickly as I had anticipated, and in my breaks I’ve been playing Warcraft III rather than working on this page. (And losing nearly every game, too.) Nonetheless, I found an excuse for an update to the “Resources” section.

As soon as I catch up with work and get all warcrafted out, this page should get more exciting.

Posted at 7 PM on September 15, 2002

More DOM Crashes

I’ve been doing work for school. Finished Data Structures and Algorithms problems yesterday, today I’ll continue work on a paper for my Writing class, and tomorrow I must catch up on reading for my art history class. As soon as I get a chance I’d like to update one of the two other sections on this page, but first I’ll need a bit of free time. Hopefully over the weekend.

In other news, a friend of mine discovered that this page crashes some version of Konquerer, which is Mozilla based. But I remember reading something about DOM methods crashing Netscape 6.0, which is also mozilla based, but based on an old version, so I’m going to assume that this version of Konquerer was based on the same old version, and not worry about it. How frustrating it is that there are so many browsers which simply crash when exposed to technology from the year 1998. I’d rather use a browser that doesn’t support the DOM, such as Opera, which this page looks just fine in, than a browser that pretends to support it and doesn’t.

Posted at 5 PM on September 12, 2002

If you can’t read this, use a different browser

It turns out that this page crashes IE 5 for Macintosh. I believe I’ve narrowed down the problem to some DOM methods. For instance, if you use the Node.removeChild() method to, say, remove a child node, the browser will crash.

Until I find a workaround (which I may or may not do), I will be specifically testing for that browser to cause it to ignore the script. IE 5/mac users will get the same page you see, just without any fancy animation.

If you have any suggestions about this, please let me know.

Posted at 3 PM on September 9, 2002

init();

XHTML. ECMAScript. CSS. Perl. PHP. SSI. XML. The DOM.

These are the technologies that went into the page you’re looking at. I worked on it for about half a year, though I could have done it much faster if I had worked consistently. The page is standards compliant and validates, unless I accidentally add invalid markup to the content itself. It should be easy to redesign this way, without actually restructuring it. And unlike all of my past front pages, it should work in future browsers with minimal changes.

The page is also much more content oriented. Content on this site has been lacking for years, and hopefully that will change now. See “Resources” for more on this.

If you have a recent browser (specifically, IE 5.0+, Mozilla 1.0+, or Netscape 6+, and perhaps some others) then you should see some little green buttons on the upper right of each section of this page. Click them, that’s what they’re there for. Your preferences should be saved, provided you have cookies enabled.

To be honest, this isn’t complete. There’s more work to be done. But it’s not crucial work, and you probably won’t notice most of it. However, one of my goals was to make improvement of this page easier, so I should be able to continually add to it and fix it up as time goes on.

Posted at 6 PM on September 8, 2002