Reason #10,754 To Execrate Internet Explorer 6

Ever seen this pop up in Internet Explorer 6 (or 7)?

This page contains both secure and nonsecure items. Do you want to display the nonsecure items?

You spend hours combing through server-side source, hours more combing through client-side source, and yet more hours sniffing and poring over headers, and nothing. Nothing HTTP when it should be HTTPS.

Well this could be your problem, yet another non sequitur brought to you by Microsoft:

This problem occurs if the Web page script calls the removeChild() method to delete a DIV element that references a background image. http://support.microsoft.com/kb/925014

This only appears to happen when the style is inline. In other words, say you have something like this:

<div id="err" style="background-image:url(err.gif)">
   Nee!
</div>

If you attempt to vaporize that div with removeChild(), you’re suddenly no longer secure.

Okaaay. Make sense to you? Makes sense to me!

Firefox, take me away!

URI Decomposer

At work, we build our client websites upon a framework uses a lot of GET parameters. It makes for some URIs that average, oh, about three feet in length. Examining some of those monsters can make your eyes cross if you ever need to verify some parameter values in the query string, so I decided it was time for a little tool that would break up the URI into its constituent parts for me, instead of wading wearily though the whole URI myself. Google has a JavaScript URI object that does most of the heavy lifting already. I just had to add code to break up the query string into the individual key-value pairs.

Hence the URI Decomposer was born. You’ll find it among the items on the Tools page (few as they are as of this writing).

Audacity Crudity

I’m starting to do some rudimentary audio editing on the Mac. Not impressed with Audacity version 1.2.5 for the Mac. The most glaring oddity is when exporting a file. As I type the file name, Audacity starts playing the audio. Evidently Audacity does not disable its keyboard shortcuts (not related to the Save dialog, that is). Awfully flaky.

That’s not to mention the rough-around-the-edges UI that makes a Mac user cringe. Guess I’m just spoiled.

Don’t Let A Spec Pick Your Button Type

Ever need to create a <button> of type button when you’re doing a little DOM scripting? Easy enough, right? It should go something like this:

var okButton = document.createElement('button');
okButton.type = 'button';

Nevertheless when you run this code in IE6, you get the super-informative “Communication error” message. It turns out that IE6 (for once) is following the standard. I don’t know what the W3C were thinking, but so sayeth the ECMAScript Language Binding (9 January 2003) spec about the type property of the HTMLButtonElement:

type
This read-only property is a String.

So, the common way to set the property of an HTML element is, according to the standard, right out? I mean, it’s not inconceivable that I would want to create a <button> on the fly with a type that is not the default.

Alas there is a workaround. Ironically, it employs the standard method of setting DOM Node‘s attribute value:

var okButton = document.createElement('button');
okButton.setAttribute('type', 'button');

Works like a charm! Even in IE6.

(I should note that Firefox 3 allows for writing to the button’s type property using the button.type notation. I didn’t test with other browsers to see whether they balk at the button.type notation, but Firefox 2/3, Opera 9.6, and Safari 3, along with IE6/7, are more than amenable to the setAttribute method.)

It’s Good To Be Back

What have I been doing, lo, these many months to keep me away from the blog?  Two new redesigned websites.  Allow me to elaborate.

Pepper Road Church of Christ

I worship with the Pepper Road church of Christ in Athens, AL, and for years now, I’ve been responsible for the church website.  I have fulfilled that responsibility with varying degrees of effort, attention, and responsiveness—lacking in all more often than not.  I finally have gotten around to building the site within a content management system, namely Joomla!.  Now, instead of my being the sole soul who can edit the website, our elders, deacons, and minister can author content themselves, and I have a couple of backup administrators, too. 

A screenshot thumbnail of the Pepper Road church of Christ website
Pepper Road Church of Christ Website

We have information about the church and articles on Bible topics.  Soon we should have sermon audio back online, and after that, we hope to have an introductory Bible correspondence course online.

I’m pleased but not content with look.  In the interest of getting the new site out the door quickly, I have used a free template from Joomla Shack.  It’s fine; it’s just not custom.  I hope to get around to designing something that says “church” a little more than this borrowed template.  When I do, this space will certainly reflect it.  

Of course, at the time of this writing, I’m still using the default WordPress theme on this site.  One of these days …

Conney Safety Products

Not quite a year ago, I took a job with USinternetworking (to which a friend had sold his small business specializing in e-commerce website development in IBM’s WebSphere Commerce).  The first site to go live that I’ve had a hand in is Conney Safety Products.

A screenshot of the Conney Safety Products website
Conney Safety Products Website

Conney is a safety product wholesaler.  The website offers a quick order feature, shopping lists that can be shared among all of the buyers in your company, and a live chat with Conney support personnel.  There are a few post-go-live features that we are finishing up, such as an improved search utility.  Look for that in the next few days.

If you sell safety supplies, drop by conney.com.

Evolution Vacillation

I have to thank my buddy Kevan Moore for sparking this thought.  We were at the Atlanta Zoo.   (By the way, seeing a real, live panda in person is even cooler than you think it would be.  But I digress.)

While we were looking at one of the endangered species exhibits (I forget now which), Kevan piped up, asking why, if we subscribe to the theory of evolution, are we concerned when any animal becomes “endangered?”  Isn’t that just evolution at work, weeding out the inferior species?

I responded sarcastically, “Oh no!  You must understand that these species are only endangered because we—mankind—have hunted them down in our arrogance to make them trophies, or we have disturbed their habitats in our recklessness so that they can no longer flourish.  For nature to kill off her own species is fine, but for us to do it is abomination!”

Then it occurred to me.  Evolution theory says that mankind—uh, humankind (sorry) is simply nature’s most evolved species.  In other words, we’re not outside of nature; we’re very much a part of it.  So what’s the harm if our behavior causes other species to fall out of existence—species less capable, less fit, less able to adapt?  Such is the binding arbitration of evolution.

So is mankind—uh, humankind part of nature or not?  Can we just make up our minds already?

ColorBurn’s Back

Web designers will be glad to know that ColorBurn is back!

ColorBurn screenshot

Shortly after the first of the year, ColorBurn just stopped working.  I looked around on the Net for an explanation, but all I could find were others also wondering what had happened.  I had given up hope, assuming that the guys at Firewheel just got tired of maintaining it. But here they are with entries for today and the last week as if they never skipped a beat.

And there was much rejoicing.