Internet Explorer 7 is officially out.

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.”


Too many ones, too many zeroes

A couple of days ago the business end of Jer’s Software Hut went down. I got the message “Your bandwidth limit has been exceeded. Please contact your system administrator as soon as possible.” It turns out that for Liverack, my hosting provider, “as soon as possible” translates to “never”, even when you’re trying to give them more money. As I have mentioned elsewhere, I don’t think their hearts are in the business anymore. In the past they had been very responsive, and I wondered how they could have a business that charged so little and maintain that level of service. I guess I got my answer.

Is there a silver lining to this cloud? is my bandwidth limit getting blown more and more quickly an indication of success? Not… so much. While the rest of the Web clamors for Google’s attention, the Goog is loving me to death, downloading several times the entire site’s worth of data each month. This does not include the application download, which is already on another server.

So will be moving soon, to a server maintained by a Friend of the Hut. I tried to ask Google how I could help them spider the site more efficiently (it costs them also), but got no response. My question was such an outlier on the forum I thought it might get some notice by insiders.

Not being able spend my days combatting spammers on the Jer’s Novel Writer forums, I suddenly had a lot of extra time on my hands. Good timing for it, as I wanted to get a new release up, even if most people won’t hear about it until the hutsite comes back to life. I retired to the Secret Lab, located on an island of stone on a river of magma, drifting through the network of grand, eerily-lit caverns deep beneath this quiet Prague neighborhood, and prepared a release. When all was ready I called to my misshapen assistant, “Raise the software to the server!” “Yes, master!” he called as he shuffled to a giant switch mounted on a stalagmite and threw it in a shower of blue sparks.

We waited.

And waited.

You see, The Hut’s Internet provider also imposes a bandwidth limit. When you reach this limit, the connection continues to work, just very, very, slowly. Remember dialup? I do now.

Too many ones, too many zeroes. The file will be up before you are able to read this.

Come Wednesday all will be well again, and I won’t have the need to do the same large downloads I did this month to get my mini set up. Also I’ll use lower-bitrate Internet radio options. Soon everything will be hunky-dory, and the ones and zeroes shall flow again.

The calm before the storm

Six years ago my wife mentioned that one of her coworkers had told her about a thing where a bunch of people were going to write entire novels in the month of November. (In an odd twist of fate, later that same coworker was my roommate, and my ex-wife was the coworker.) I immediately latched onto the idea, as I had started novels before, but had never seen them through. Already I had been noodling on a story idea, and now here was an opportunity to do something about it.

I signed up and soon I was sitting at Callahan’s (the old location at the start of the month, the new location at the end), cursing the short lifespan of the battery in my Sony laptop, trying to wrestle long, rambling sentences into a long, coherent narrative. I barely made the word count by the deadline. I closed the file, closed the laptop for a day, and then started on another novel. I have written almost every day since that first NaNoWriMo. I have not read the product of the first year’s efforts; only one person can claim that distinction. Melinda reported that it had its moments, and yes, I was correct when I recalled that there was a lot of sex in it.

Of course, along the way I started saying to myself, “boy, it would be nice if my word processor did x,” and so Jer’s Novel Writer was born. Then I quit my job, took a road trip for several months, and moved to Prague.

All because of NaNoWriMo.

So, if you’re thinking of starting a novel on Wednesday, please be careful.

Time flies when you’re clueless

I am sitting at the Little Café Near Home, facing the television (there was hockey on earlier). I glanced up from my work and noticed the clock on the tuner atop the TV glowing greenly. The clock is in 24-hour mode.

I did a double-take. Is it 2007 already? Crap, I know I’m out of touch— oh, wait 20:07. That’s all right, then.

An exciting time at the hut!

The time before NaNoWriMo is pretty hectic, and all the more so for me. Lots and lots of people out there are searching for software to make their lives easier in the coming months, and people around the world are discovering Jer’s Novel Writer for the first time. What’s cool is that all these new users are discovering the rough edges in the software that regular users have grown accustomed to. It’s all the little things that make a product feel finished and fit, and in the last couple of weeks I’ve gotten a whole bunch of feedback. (Not all from NaNoWriMo folks, there are even professional writers using the program now, and their input even more valuable, as they try to make the software work in their existing processes. Overall, I have managed to attract a fairly passionate user base. Part of it, I think, is that I do all I can to make others feel that they are valued members of the design team, and people like seeing their ideas show up in the product — sometimes the next day.)

So I’ve been doing quite a bit of coding lately, and while none of the improvements have been earth-shattering, when taken in sum they add up to a better user experience. As I sit here in the Hut Treehouse, high in the crown of the teeming tropical rain forest for which this Prague neighborhood is well-known, surrounded by screeching birds and curious monkeys, I am filled with a sense of energy and I’m taking pride in fixing bugs hours after they are first reported.

Of course, that will end with the onset of November, or at least slow down, as we put up the monkey-screens and hunker down to write a novel. One unexpected side effect — from the user registrations I now have a list of a thousand names from all over the world that I can use in my writing. There are some pretty good ones in that list.

More about the itch

This episode is one big complaint, which is not my usual style (at least, not so overtly). For those of you tuning in for the first time, I had (I hope) an allergic reaction to some cheap Czech laundry detergent and every part of me that is touched by clothing is now a mess. I’ve never had anything like this happen to me before.

I haven’t left the homestead in a while — the day I watched the Chargers lose was the only other time in a week, but today I had no choice if I wanted to eat. I’m at the little café right now, and I’m itchy.

At night, I go to bed, and often manage to fall asleep, only to wake up a short time later with one nerve somewhere on my body screaming bloody murder. In my half-awake state I will scratch it. From then on I’m no longer just half awake. Whatever I scratched burns like someone is holding a match to it. I lie awake, trying not to think about the burning, trying not to think of… the other itch, and the other one, and the one after that. I lie in bed, rigid, resolutely not scratching, chanting my “no scratching” mantra.

Must. Not. Scratch. Must. Not. Scratch.

Then there is the moment of erosion of will. A new itch will arise, angry and demanding, from a new awkward and uncomfortable location. I thought I had run out of such spots several nights ago, but no. “Oh, crap, not there too,” has become my eternal lament.

Eventually the itch becomes too powerful, and I will watch as if from a distance as one of my hands scratches the most urgent of the itches. There is a tiny moment of blessed relief before the burning starts. I try to restore discipline, but there’s no turning back now. I claw at my skin, from neck to toe, trying to draw as little blood as possible, but there is only one priority. Scratch. My mantra changes as well — last night I caught myself muttering:

Scratchy. Scratchy. Good, Good.

Eventually my brain is so flooded with endorphins that I can fall back to sleep. For while it’s painful, it’s easier to sleep through the general discomfort of ones entire epidermis burning than it is to ignore the urgent, actionable discomfort that is the itch. Once the itch is banished and there’s nothing I can do to lessen my mysery, I am released from my scratchy frenzy and sleep can come again — until the next itch starts.

If you really want, you can see my skin here, but it doesn’t really capture the purpleness or the puffiness. My hip was just an easy region to photograph. I offer this image in defense of being called a whiner.

Sorry about that.

I was in the Little Café Near Home when I got the call. “Come on! Let’s go watch some football!” I would have said no, but I realized I did not have my AC adapter with me. My time there was limited anyway.

I went to the bar. When I got there, San Diego and Kansas City were knotted at zeroes. We worked our way into one end of a table, and I talked to the guy next to me, then I looked up to see Kansas City score their second touchdown. I hadn’t been there very long at all. I laughed and rocked back in my seat, and reminded myself that this is just statistics. It’s got to happen to someone. Which just proves that I am someone.