It’s not finished yet, but it’s already pretty stupid…

You may or may not have seen my Stupid JavaScript Tricks A–Z page. For a while I’ve had a mildly enticing teaser on that page promising “something big” when I get to the letter D. Well, I finally decided to skip C and get started on that “big” letter D. It’s about half done, but since I only get the inspiration (and time) for these kinds of things in short, sporadic bursts, I decided to run with it and post it in a half-completed state. The real topper is what comes next, and hopefully someday I’ll get around to it.

In the meantime, please check out the incomplete… Delete the Internet.

Parenting an infant… imposed insomnia and one-handed typing

Pardon the brevity (and any typos), but I’m typing one-handed while my slumbering one-week-old daughter slowly cuts off the circulation in my left arm.

I’m not bemoaning parenthood, though doubling the size of your brood certainly brings a new set of challenges. (At least we’re not outnumbered.) Especially when you’ve got a newborn who only sleeps peacefully at 2 PM or while being held. (As noted before, I’m in the latter situation here, being precisely as far away from 2 PM as possible.)

There’s not much more to say without beginning to sound like I regret and/or resent the role of father, when in fact, looking down at her beautiful, peaceful, sleeping face, nothing could be farther from the truth (although I wouldn’t mind terribly trading places with her at the moment).

When nothing really isn’t nothing

I’ve spent the better part of the past two work days trying to figure out a weird scenario where a few elements in a heavily CSS-based page layout are inexplicably shifting a few pixels to the right. It is generally happening in pages that have content in the left column, whereas pages that do not have content in the left column are displaying normally. However, there are a few pages with empty left columns that still don’t display correctly. Comparing the source code, I discovered that some of the empty left columns nonetheless contain comment tags and those comment tags are what seems to be making the difference. But strangely, it’s the pages that have left column content or have completely empty left columns that are breaking, whereas the only ones that are not breaking are the ones where the left column block contains only comment tags.

Once again, the mysterious Microsoft voodoo amazes and confounds me.

The Political Compass

For some time, I’ve had my web browser configured with its start page set to the random article link on Wikipedia:

http://en.wikipedia.org/wiki/Special:Random

The effect is that every time I open my browser, a new, random article on Wikipedia loads, which can often be severely distracting (so I make sure not to use this configuration at work!), but it’s almost always very interesting.

For instance, today the random link led me to this site: www.politicalcompass.org

Despite my skeptical view of questionnaires designed to pigeonhole your identity (think Myers-Briggs), I was immediately fascinated with the idea of the political compass, because it addresses a dimension (literally) of political viewpoints that the typical left/right dichotomy completely misses. It acknowledges that the traditional left/right spectrum is primarily (but not entirely) an economic scale, and it adds a second scale for social issues, with extremes it labels “authoritarian” and “libertarian.” I think the terminology is a bit muddled, since left/right would be better described as liberal/conservative or perhaps socialist/free market, but all of those terms have baggage. (Of course, in the United States, at least, so does “libertarian,” and the characteristics of “libertarianism” as described on the site are not entirely consistent with the Libertarian Party in the U.S.) Nonetheless, the terms are familiar enough to give a clear picture.

I was not too surprised to see where I ended up on the chart, although I did find it interesting that I was even farther down in the lower-left corner than the likes of Nelson Mandela and the Dalai-Lama!

(On a side note, writing this led me to another topic: the confusion of similar words. In my particular case, it was the old thorn in my side, farther vs. further. Luckily it seems I got it right. And writing the first sentence in this paragraph reminded me of yet another similar word problem: lead vs. led. I’ve noticed more and more lately, often coming even from respected sources, careless use of the word “lead” when in fact the intention was to use “led” — the past-tense of “lead” as pronounced “LEED.” But I digress [yet again].)

Microsoft, how do I hate thee? Let me count the ways…

Most people who know me well understand that I am an acknowledged Apple fanboy. But I don’t simply hate Microsoft because I love Apple. There may be more truth to the fact that I love Apple because I hate Microsoft.*

At any rate, it’s clear that I hate Microsoft, and for reasons that are much more concrete, tangible, and, in the context of this article, quantifiable.

As you may know (if you know me, and probably wouldn’t if you don’t, but you do now… get it?), I make my living building websites, which means that I am forced to deal with both Windows and Internet Explorer, like it or not. (Not.) I do my work on Macs, and my day-to-day web browser is Firefox. But everything I do needs to be tested in the Microsoft world, since that’s the context in which 95% of my audience will be viewing my work.

At least once every month or two, I am forced to bring my work to a grinding halt while I attempt to diagnose some obscure Internet Explorer problem I’ve just run into. It is usually some trivial function that I take for granted, but for some mysterious reason simply does not work in Internet Explorer under a particular set of conditions. So I spend a day or so fruitlessly searching Google to find others who’ve experienced the same problem. Eventually I resign myself to the fact that there is no logical explanation for the problem and I will never discover a real solution to it. So, the only alternative is to concoct a hokey workaround that Internet Explorer can accept. These weak victories are always bittersweet: at least I’ve found a way to move on and get back to the real tasks at hand, but my work is forever tainted by Microsoft lameness, without even giving me the satisfaction of a glimmer of understanding as to why I’ve just undergone a day of torture.

Finally, I’ve had enough. I know that as long as I work in this field, I will always have to deal with this problem, but I’m no longer going to silently submit to the whims of mediocre software. I will catalog my woes here for the world to see, so when I finally jump off a bridge with a thousand Windows Vista CD-ROMs tied around my waist, people won’t wonder why.

* For the record, I don’t unequivocally hate everything Microsoft does. I own, and enjoy immensely, an XBOX game console.

The mysterious window.print() problem

It seems an easy task: print the damn window. But no, nothing is ever as easy as it seems with Microsoft. In this particular case, I have a pop-up window which contains a frameset. The frameset consists of a left frame with a tree of page links, and a right frame containing the body of the page linked from the left frame. Within the body of the page in the right frame there are links to allow you to print the frame. So far, so good. But there’s also a special link that opens a new page that contains the full content of all of the pages, so you can basically print the whole lot at once instead of one page at a time.

As expected, all of this works just fine in other browsers, but not in Internet Explorer. It handles the regular single-page window.print() just fine, but when you go to the full page, nothing. No printing, no JavaScript errors, nothing. It’s like it’s just a dead link. With the exact same code as what works on the other pages. And, if you open the page from the frame in a new window by itself, it prints just fine. So, we have some pages printing just fine in the frame, and another page that prints just fine when it’s by itself, but it won’t print if it’s in the same frame that the other pages print fine in, using the same code. You can see why this is driving me insane, can’t you?

Nothing I find anywhere online suggests that this problem exists. So eventually I resort to the only option that’s available… open the troublesome page in its own pop-up (yes, a pop-up opening a pop-up… always a great idea), where window.print() works just fine.

Thanks again, Microsoft!