Late

Michael Barrish: Sundial. If it would work, sure, I would change all the clocks in the world for you so that you wont be late anymore, sure, why not? Sadly, though, I doubt this would help much.

I think a true defining moment in my life was when Pastor Todd cracked a joke about my always being late at our wedding. ;-)

The ABBR Tag

A couple of months ago, I had written an entry entitled The Acronym Tag, which was a brief discussion on a standard, if decidedly underemployed, HTML tag. Following the discussion, I had used a little stylesheet trick to make more effective use of the <acronym> tag for my Internet Explorer readers.

Recently, though, Anne van Kesteren pointed out that I was actually making improper use of the <acronym> tag. He directed me to an article by Craig Saila that discussed the difference between an acronym and an abbreviation. You can read the article, but here is a distillation. The English language shortens words using any one of three ways, which are as follows:

# The acronym–a word which is created using the initials or syllables of a longer term or phrase
# The abbreviation–a truncated word or phrase (note: this result is not a pronouncable word)
# The initialism–an abbreviation made by using the initials of a longer term or phrase (note: this, too, does not result in a pronouncable word)

Initialisms, according to Saila, are not acronyms, but rather are abbreviations. A glance through my copy of Hodges’ Harbrace Handbook confirmed that Saila is right–acronyms are always new, pronoucable words (like laser), whereas abbreviations are either truncated with a period (like Jan.) or made of capitalized initialisms (like NJ).

No big deal. All of my acronyms since May are populated with MT Macros automatically. So, all I had to do was go through my MT Macros list and change all the “acronyms” that I couldn’t pronounce as words into “abbreviations” and rebuild the site. Right?

Well, yes and no. See, the <abbr> tag has a bit of a problem in Internet Explorer in that IE doesn’t support it–at all. It won’t generate a popup with the title when you mouseover it, and it doesn’t underline when you set up a border-bottom: 1px dotted gray; in your stylesheet. So, by modifying my MT Macros file, I effectively break the tooltip functionality for the IE visitors. Lame.

Some more poking and prodding turned up a couple of ideas. I discovered this page by Marek Prokop which discusses a JavaScript workaround for the IE problem. Since I use MT Macros, I can easily incorporate Prokop’s solution on the server side in my preflight processing.

More hunting around in my Macros code made me realize two things. First, that <abbr> tags were being converted to <acronym> tags (this was actually mentioned in Mark’s entry). Second, that both of those tags were being wrapped with a <span class="caps"> element. Google turned up this article indicating that the <span> was automatically being appended with MT Textile. I made the change that Arve suggested to my textile.pm file and went back to modify my MT Macros code, adding a couple of lines to process abbreviation tags the same way that acronyms are processed.

After everything is said and done, my <abbr> tags are wrapped with a <span> element which does the styling and the tooltip, further separating markup and style and making the site more semantically correct. Revised version of the Macros template can be found on the about page. Enjoy. ;-)

Site Not Cooperating

FYI, the site is doing that weird thing where it won’t rebuild pages. Ugh. Comments will probably not work for a little while.

Update: Okay, I’ve resolved the issue for now. The problem was an apparant issue with the use of the MTRegex tag in one of the PHP Juice comments. I’ve modified the comment, but am going to check with Brad Choate (regular expression Jedi master) to see what the problem actually was. More details later.

Non-Update: Never did quite figure out what happened. Brad had thought that the problem was in the MT Macros code that I have employed on the site rather than the MTRegex code. Whatever it was, a word of wisdom: if your site is taking forever to build, before going through and rebuilding the site from scratch, try to figure out what might have changed recently (added comments, changed markup, new plugin). It might just save you a few hours of downtime.

Grace & Ontology

Now when a Christian bows before God, he can move out of this with rationality in place. The other man, man without God, if he is going to be absolutely consistent in his position, may know that he exists, but nothing else. He cannot know that anything else exists. His problem is that he cannot live so; and no man does. Man logically and rationally cannot live in this cocoon of silence. So he is immediately damned in his intellect, not just by God saying, “You are a sinner,” but by the being that he himself is. God has made him rational. He cannot move from this cocoon and yet he must–and so he is crushed by what he is. It is not just a legal act of God that says “You are guilty”–though that is there. What man is has separated him from himself. The tension is within man. On the other hand, when a Christian bows before the personal Creator for whom man’s very existence shouts aloud, then there stretches from his feet to the end of infinity a bridge of answers and reality. That is the difference.

The Christian position states two things: that God is there, this infinite-personal God; and that you have been made in his image, so you are there. There is from your feet all the way to the infinite an answer that enables you to make the first move out of your intellectual cocoon. God has spoken, and what he so teaches is a unity with what he has made. Beginning with these two things, there is a bridge stretched before you, as the moon stretches a silver bridge across the ocean, from the curve of the horizon to yourself.

Now then, the wonder is that these answers do not end simply with an abstract, bare, scholastic understanding of Being, though that would be wonderful in itself. They end in communion with the infinite-personal reference point who is there, God himself. And that is tremendous. Then you can worship. There is where true worship is found: not in stained-glass windows, candles, or altar pieces, not in contentless experiences, but in communion with the God who is there–communion for eternity, and communion now, with the infinite-personal God as Abba, Father.

Francis Schaeffer, True Spirituality

PHP Juice

As Jai noted, I’ve switched the site over to PHP. That’s not the only thing I got done today. :)

Mark Pilgrim recently wrote another reminder that gzip-compressing web pages can save you some serious bandwidth. Unfortunately, this requires some magic with Apache which I can’t seem to cast. However, Dean Allen pointed out that you can use a PHP function to gzip-compress your site on the fly. Gzip compression is supported by pretty much all modern browsers that matter (ones that don’t support it are given a regular uncompressed web page, anyway) and can reduce your bandwidth by half. Spiff.

Speaking of Dean, his Refer tracker runs on PHP as well. In order for it to track page hits, though, you have to have a PHP tag in each of your documents. This isn’t a big deal with MT templates, but, in order to get it to work with my site, I either had to override my .htaccess file to process HTML files as PHP, or migrate to PHP entirely. I’m not allowed to modify .htaccess files with my web host, so that leaves me with the inevitable choice to migrate. It took about a half-hour to pound out all of the details. The end-result is visible over here.

The new URLs were an inevitable conclusion of moving to PHP. I mean, if I’m going to change my URL structure, may as well go all out, right? ;-) In particular, I wanted to future-proof the URL structure from any future changes I might make to the site (like if I ported over ASP.Net or something–gack!). A search for future-proofing URLs in Movable Type brought me to Mr rlygsson’s helpful tutorial.

Finally, being a good netizen, I wanted to make sure all of my old inbound links still make it to their original content. I mean, not like I have a lot of them, so the ones that I do have I don’t want to disappoint. :) What I did to solve this is create another Individual Archive simply called “Boing.” It uses the old URL structure (<$MTEntryID pad="1"$>.shtml) to create a page which then redirects the user to the new page with this meta tag:

<meta http-equiv="Refresh" content="0; URL=/archives/<$MTArchiveDate format="%Y/%m/%d"$>/<$MTEntryTitle dirify="1"$>/">

I thought about making this a temporary fix, removing it after about a year or so, but it’s relatively harmless in terms of disk space and just maintains itself. I mean, a couple hundred bytes of data per entry and it keeps Our Story from massive link rot.

All that being said, though, a big part of the reason I switched to PHP was that I want to get back into some sort of development again. Web sites and databases are pretty much all I get to work with these days, so I thought, “why not?” Make Our Story PHP-based and mess around and have fun. Who knows? Maybe I might even end up coding the Ironworks web portal by hand. :-P

Our Templates

In part because they’ll make a great backup the next time I accidentally overwrite my Individual Archive Template with my Default Search Template in the middle of the night, but mostly because I’m all about open source: the index and archive templates that power Our Story can now be found here.

NJ DMV Inspectors Take Work Personally, Wrestle with Inadequacy

Randolph, NJ—Times are hard for local DMV inspectors who seek to bring purpose to their jobs as advances in technology and relaxed legislation have all but made the inspectors’ jobs irrelevant. Still, diligent employees continue to enforce stringent inspection requirements in the hopes of keeping the roads safe.

Robert Engle, 47, is the Inspection Chief at the Randolph facility. “The four-year requirement has been a blow to morale,” confesses Engle, referring to the recent legislation to lengthen the required two-year inspection cycle to a four-year requirement.

“I mean, only a few years ago, we were inspecting cars every year. The long waits, impatient motorists, and red tape really made you feel like you were fighting for something. Now, well, we just have to work that much harder to keep the scum off of our roads and highways.”

Just behind Engle, no less than five DMV attendants have just finished a 31-minute-long inspection of a 1997 Pontiac Bonneville before reluctantly passing the car. Two lanes over, inspection team members let out a shout for joy and deliver high-fives over a broken turn signal.

Engle, a resident of Kenvil, explains, “It gets harder and harder to find reasons to fail people these days, but we’ve learned to pick out the ones that shouldn’t be on the road. Give us enough time–we’ll find a reason.”

In response to the loosened laws, DMV officials have seen fit to take a hard line on what little authority they have left by inflicting personal or even bodily injury on motorists who violate code. Bureaucrats are quick to defend the measures in the act of keeping roads safe for law-abiding motorists.

Critics, however, insist that the DMV employ seek a cathartic expression of their frustration and insecurities. Indeed, many employees at the Department of Motor Vehicles are failed applicants to other, more respected state institutions such as the New Jersey State Police, NJ Transit, and the Department of Sanitation.

Outside, a waiting motorist shifts uncomfortably in his car. A bright-red rejection sticker and what appears to be a pair of crutches are visible through the windshield of his Chevrolet Cavalier.

“We had an elderly guy bring in an old Aries K a couple of weeks ago,” recalls 25-year-old junior inspector Jimmy Mattox. “It took us about a half-hour, but we finally found out that his tire pressure was a little low in the front left tire. I grabbed the guy by the shoulder and slammed him against the hood of the car and I was like, ‘If you ever, ever bring this piece of garbage in here again, we’re gonna give you a lot more than a sticker, old man–got it?’ [Laughs] I mean, we’ve got a duty to keep the roads safe from people like that, you know?”

Nearby, two young children watch in tears as their mother is publicly ridiculed by an attendant over a leaky gas cap.

Engle agrees, “I tell people, the police might deal with some of New Jersey’s problems, but this is where the action is–right here. We’ve got a job to do. We call it like we see it and I think our streets are safer because of us. Think about it for a minute. Can you imagine what New Jersey would be like without our Department of Motor Vehicles?”

A Conversation in Chicago

Sam Andreades: Science is Cold, Hard Fact; Religion is a Matter of Opinion.

Otto: All I can think is that this huge building we are in is possible because of Newtonian statics.
Giles: Yes! It is a map good enough for sending up a skyscraper, but not good enough for sending up a rocket to nearby stars. And Einsteins gravity tensor map, my word—that map is so new, we have not even figured out how to use it. But they are maps, and need to find their place in some other source to deliver truth.
Otto: But most of science does not proceed by violent revolution.
Giles: True, most scientists spend their lives filling out an existing theory, uncovering the small anomalies that will eventually grow to bring the whole theory crashing down.
Otto: I mean more than that. You cannot say that all of science is provisional.
Giles: All of science is provisional. There. I said it.

Sam approached me at church yesterday because he found his name on Our Story–turns out that we’re in the Google top-three listing if you search for his name. Isn’t Google-whacking fun? ;-) Actually, that’s exactly how he found it: he was using Google to find this article, which he was going to refer to a friend.

This is an article he wrote that he described as being one of the fruits of his graduate work. I’m nowhere near current enough on the arguments of scientific theory to follow everything, but I found the conversation engaging and enlightening.

Related Articles, et al

As Pez noted, Our Story now features related articles in the sidebar. This was accomplished by Kalsey Consultants’ Related Entries plugin for MovableType. I had originally seen this at their blog (which is–in and of itself–decidedly cool) and thought it would be a great use of the sidebar, which I’d always envisioned as serving context-sensitive information for a given article.

I don’t think I’ve quite nailed the layout of the sidebar, so I’m going back to my roots and scrutinizing how other people are doing it.

Must…resist…blatant…imitation!

==


==

Doug Bowman designs another sweet-looking CSS/XHTML freakin’ strict validating website. Nice. It takes this guy hours to do what it would take me months to figure out.

==


==

A new Thunderbird build is out. Thunderbird is the new email client by the Mozilla organization that uses the design cues (both internally and in the user interface) originated by the Firebird project. I’ve been using Thunderbird as my main email client since the July 1st build and have been really pleased. The only problem I’ve had is that the junk mail feature is catching a lot of false positives. This new build features prettier UI icons and a more organized Options panel.

==


==

I discovered a fix for the problem that Ryan (and others) pointed out with hyperlinks in comments. The problem was that exceedingly long links ran off the edge of the page, making the site look stupid. I discovered this blog at The Girlie Matters where the author was trying to figure out how to make autolinking happen in HTML comments in Movable Type. She used Brad Choate’s Regex plugin to solve the problem. It occurred to me in reading the post that I could modify the string in Brad’s regular expression to change an unnecessarily long hyperlink to [link]. See it in action in Ryan’s comment. Happy linking. ;-)