Better, but not that great. It renders this page mostly correctly; the deficiencies are minor and overlookable. So that’s good. For Instance, the bottom of the ampersand in the logo is cut off, but while it’s not as stylish, it looks a hell of a lot better than it did before. That is where my adventure began. In the end, my first day with the new version of the software left me befuddled.
Then I noticed that my “Now Playing” section wasn’t working on IE. The way that content is generated is a bit hokey, so I thought it might be a good time to clean up the script. I figured that would probably fix the problem with IE at the same time.
Allow me to interject that the worst language for programming computers ever invented is AppleScript. They try to make it read like “real English”, like you’re chatting with your computer. As mentioned here many times, real English is about nuances, about color and shade, not black and white. As such, it’s not well-suited as a programming language. What Apple ended up with was a syntax that has the same old rigid rules, along with a hell of a lot of verbal clutter and words that don’t always mean the same thing. But I digress.
I cleaned up the script that generates the script that the browsers load to show what music I’m listening to at the moment, and I learned a couple of things along the way. The code is better than it was before, and I will be able to improve it further rather easily. So, that’s cool. I was mildly disappointed that the result still did not work on Internet Explorer 7. I suspected I knew why, but I wanted to see the IE error messages to make sure. I couldn’t find them. I was looking for some sort of window with a list of errors and any other output from the script. I went through all the menus, but could find nothing. I dimly remembered having to set a preference in previous versions of explorer to turn on the Javascript Console, so I…
Wait a minute… where are the preferences?
As far as I have been able to discern, there is no preference window in Explorer. Now, in one sense that’s a good thing. It’s been a design philosophy I’ve been using in Jer’s Novel Writer: put the settings next to the task. But what about the settings that apply to the program itself? Maybe the preferences are there and I just missed them. There were lots of cases where controls were in unfamiliar places.
Which brings me to a lament that is more about other software developers. There was a time when every program’s controls were different. One of the most revolutionary things that the mac introduced was providing a standard way to interact with software. Love the mac way or hate it, it dramatically reduced the learning curve for new applications, and you didn’t have to remember where everything was for each application. The Windows world followed suit, and for a long time computing was just a bit easier. That is breaking down now. I first noticed it on media players for Windows. They look slick, but in many cases important controls aren’t even visible until you move the mouse to a specific area. Menu bar? Forget it. Now it seems even Microsoft is sacrificing simplicity for slickness.
Right, then. One option I did find was to look for extensions for Explorer. The light came on over my head. Somewhere there would be a tool that would let me look at console output from a script. I went to the site, and there was Developers Toolbar. Hooray! I downloaded it, installed it, and discovered several useful tools, none of which were a script console. It was a nice addition, and absolutely free from Microsoft, but not the addition I was looking for. (Having this as a separate download is another design philosophy I agree with. Provide the core and let people add on the parts they need.)
About then I noticed the little error message down at the bottom of the window. Silly me! It was there all the time. I clicked the error icon. Nothing. I right-clicked the icon. Nothing. Now that is just bad design. Microsoft themselves led the charge to make “if you see something you want to interact with, right-click to see your choices” a standard. I concluded that the icon was for informative purposes only, and that somewhere else I would find the explanation of the errors. Only later did I double-click the icon to cause an error window to pop up. More bad design. Double-click is to perform the default action on a selectable item. This is simply a button, and nothing more. You don’t double-click buttons. (You also don’t put right-click menus on buttons, but once the single-click didn’t work I assumed it wasn’t a button, and tried to treat it as an item with more than one action. When the one-action behavior failed, then the multiple-action behavior failed, I assumed there were no actions.)
The window opened up and said there was a problem on line 2 of the file. Line 2 is blank. The “next” button in the little window was dim, so I didn’t realize for a moment that pressing “previous” brought up an error message dealing with line 700. “Object Expected” the error said. There was a “hide details” button, but what passed for detail wasn’t. Could I please just see a list of errors (instead of a little window where I have to click through them) and any debug information I might want to send out? The root error is ultimately my fault, but is it asking too much to make it easier to find, especially since the scripts work on all the browsers whose error reporting doesn’t suck? (Yes, I searched for other downloadable extensions. If anyone out there knows of a solution, I would be grateful.)
I guessed that there must be something wrong with the way I wrote the script tag. Luckily, one of the cool features of the Developer’s Toolbar is a validator. You can do this easily enough anyway, but right there was a way to submit your site to w3c and get back a full report card of your compliance.
I ran the report and had a bucketload of non-compliant code. I wasn’t that surprised, as the original blog template was done a while back by someone else, the comment system is someone else’s code, the Amazon links weren’t compliant, and so on and so forth. There were plenty of errors of my own doing as well, including some stray markup in a paragraph complaining about Microsoft’s non-compliance to standards. When I saw that error my mind was made up. Time to clean house! I went through the template, modifying (almost) all the markup to match standards, paying particularly close attention to script tags. Almost all of them were using syntax that was at best out of date. Not any more, baby! I brought them all into the modern age, something I would not have done were it not for Internet Explorer 7.
The result: users of Internet Explorer will have to use Firefox to post comments telling me what I’ve done wrong, because now all the Haloscan script tags are broken in IE. “Object Expected.”