My Blog

Monday, April 02, 2007

This Post is Funny

My last several posts have been decidedly un-entertaining. This one, therefore, is not.

Laugh, please.

Thursday, March 15, 2007

I've Found Something Abominable...,72972-0.html

Can't even think of an appropriate comment for that one.

I need to blog more, by the way.

Saturday, January 27, 2007


So, in the process of redesigning the UNT International website, I've been thinking a lot about what web developers and technologists in general call "future-proofing." Technology changes over time, and so do the people using it, so when you're making something technological it's generally a good idea to think about whether or not it's still going to be worth using more than a couple of years from now. This is more difficult than it seems.

For instance, in analyzing the error logs I'm keeping for that site, I've noticed recently that there are still quite a few people trying to access pages on our site using URIs that only existed on the old site. The content still exists, but it now lives somewhere else; instead of "/Acalendar.htm", a user would now have to visit "/offices/welcome/acadcal" if they wanted information about the UNT academic calendar(s). Undoubtedly these users have been frustrated, since the academic calendar is in fact a very important piece of content; they might even have it bookmarked.

To alleviate this problem in the short-term, I've set up some simple URI aliases that turn the most common invalid addresses in the error log into the valid addresses on the new site so that our friend looking for the academic calendar will not be disappointed. But although the problem is solvable in the short run, it raises some long-term future-proofing issues.

You see, there really isn't a whole lot of difference between the old URI system and my new one, except that mine seems to me to be a bit more logically organized based on how I understand the content. Everything is structured hierarchically, first by the sub-unit that owns the content, and then by the topical categories most useful to that sub-unit. Makes sense for now, but will it make sense in a couple of years? Can I really guarantee that we will always consider the Welcome Center's subsection to be the most logical location for academic calendars? The further into the future you go, the more difficult this question becomes. Such an organizationally- and topically-driven hierarchy is ultimately just so much noise; content will invariably move, and no one can possibly predict where it will move to.

Of course, Tim Berners-Lee said all this nine years ago in "Cool URIs Don't Change"; I'm just not sure that I really got the point until (a) I saw my error logs this week, and (b) I stumbled across Berners-Lee's article shortly afterwards. Sometimes it takes a real-life problem to make you see that an old habit really does need to die.

Monday, January 22, 2007

Put it in writing

Today I woke up and I didn't really want to, which is expectable on a Monday. So, I thought to myself, "Why not post a comment on your blog declaring it to be Saturday? Since it's in writing, everyone will have to believe it."

The irony of this is that not only do I know this technique to be utterly unworkable due to the existence and universality of international date standards, but I am also keenly aware of the fact that every blog posting I make automatically lists a computer-generated date, sealing those standards' ultimate victory over my feeble declaration of weekenditude.

Monday, January 22, 2007
Today is Saturday.
Everyone go home.

Friday, January 19, 2007

My New Blog Post

First, one of the reasons I haven't blogged in awhile is that I haven't been able to think of a sufficient explanation as to why I haven't blogged in awhile. It seems like the first post back after a long hiatus should do something like that, but I really don't want to.

Second, I thought it would be nice to post a link here to my newest public website; I've finally gotten the new UNT International website up and running, and it's been working very well so far. Glad to have it finally public, but the job is far from over in terms of making it really sing.

One of the things I've been working on a lot lately in that project is making the underlying web application code run faster. Since I'm largely self-taught, I have kind of had to figure out for myself the best practices for doing so; some things I expected to work failed miserably, whereas other things I expected not to work helped quite a bit.

For example: my web application, like so many others, is database-driven, meaning that the bulk of the content that appears to the end user is pulled out of a database when needed and incorporated into appropriate HTML templates that are then sent as static content to the user. It's a great model, but there's a lot involved in it: for instance, suppose that (as sometimes happens in my application) one particular piece of content is used more than once in the course of program execution...say, an Article object. The way I originally wrote it, the application was unaware of these kinds of redundancies; that is to say, if Article 3 was needed sixty times in the course of program execution, it was retrieved from the database sixty times.

This struck me as inefficient. After all, there's such a thing as memory; why not have my application store the data for Article 3 in its own memory and then use it from there, thus reducing the total number of database retrieval operations by 59. It'd be kind of like a professor sending a research assistant out to the library for a book one time and memorizing it when the assistant got back, rather than sending the assistant out to the library every time he wanted to reread a paragraph. It sounded good, and I implemented it...and my application, as a result, was sometimes 300% slower.

The thing is, sometimes you have to consider the fact that, regardless of talent, something that has too many jobs will eventually become bad at all of them. Undoubtedly our example professor could benefit in the short term from memorizing one particularly important book, but if he had to memorize all the books he ever used as sources in his research, I highly doubt he'd be able to teach his classes, or even write the paper he memorized the books for. Or, give a circus performer too many plates to keep spinning and he'll drop every one of them, even though he wouldn't have dropped any at all if you'd given him just one less. Delegate too much work to your employees and they'll eventually fail you; fail to delegate enough, and you'll fail you.

Third, I've found that one of the reasons I never post to my blog is that I rarely find myself capable of writing a sufficient concluding statement. Even though what I've said in the body of the post may have been great, I'm never satisfied with the ending.

Thursday, May 18, 2006


The strange thing about dusting is that it never looks all that necessary until after you've started. The other day Jamie and I discovered this when we decided to clean up a bit in our living room. When there's a thin layer of dust all over everything in the room, you don't notice it as much. But when you dust off even one shelf, table or picture frame, all the rest of the dust in the room becomes immediately apparent. It's like transforming an entire room into an abandoned warehouse with a single spritz of Windex. Of course, it was kind of like an abandoned warehouse to begin with; it's just that it was hard to see the problem.

There's a somewhat frustrating spiritual object lesson here. Following Jesus often necessitates facing down failings and weaknesses in ourselves which we've always just sort of ignored. It's not that frustrating at first, because most of us seem to get the opportunity to start small; a sin here, a weakness there, the rest unnoticed. But when one or two of our habitual sins get wiped up, the rest of our soul starts to look exponentially dirtier. Get all the petty theft out of the way and you start to see the covetousness; get all the murder out of the way and you start to see the anger; start trying to do scary things you were never even willing to try before, and suddenly the cowardice and faithlessness that were inconspicuously there all along become far more apparent. Just like with the dust, the problem isn't usually that we've got more problems than we started with; it's that it's easier to see the problems we always had in light of what Jesus has cleaned up.

I suppose that's another interesting never really know what your problem is until someone else comes along and fixes part of it. I'm referring in particular to Jesus, since He's the only one who can really deal with our problems; but other close friends can help a bit as well. Especially the ones that aren't impressed by us.

Of course it's easier to run away from that, but the problem is that if nobody ever gets at least close enough to you to show you your faults, you never really get to see who you actually are.

Wednesday, May 10, 2006

Bonus nerd points

Fair warning...this is a computer nerd post. If you're not a fan of computer nerd posts, you may want to turn back now while you still can.

I am not a Mac person. Just wanted to go on record there.

But also for the record, I'm not particularly fond of Microsoft. They're rude, they refuse to submit to good standardization practices that would make web developers' jobs far easier, and their software has always looked a bit clunky. Those of you who have endured my nerdier rants over the past year will probably remember having a conversation with me about Firefox, and how I hadn't realized just how much better a web browser really could be until I tried it. I made that switch on a pretty-much permanent basis (and so should you!).

Today, meanwhile, I'm not even running Windows. I'm running this computer from its CD drive and RAM, on a "LiveCD" edition of Kubuntu Linux. Every single thing that's in my computer's memory right now is free of charge, and it all works extraordinarily well.

Don't get me wrong; I'm not converting just yet. But I'm curious. My web development experience has taught me a lot about the value and surprisingly high quality of free, open-source software, and I often wonder why it hasn't taken off more successfully. I mean, very nearly everything that I regularly do on my ordinary Windows XP machine can be done just as simply on Linux, and on Linux you rarely have to pay for programs to do it with.

Don't believe me? Try it out for yourself. There's a project online called TheOpenCD; it's a downloadable CD image containing some carefully-selected open source software for Windows. There's a full-featured office suite, an image manipulation program that rivals Photoshop...oh, heck, it's not worth listing here. If you're curious, click the link above and see for yourself.

If you do get a chance to check out some of this software, let me know what you think, especially in response to the following question: why, when software this good is available legally for free, are the big software giants still in business?

That said, I'm still not fully converted. There are at least two programs I use regularly on Windows for which I have not yet found good, free substitutes: Macromedia Flash and Adobe InDesign (maybe Illustrator too). If someone can find me good-quality open-source substitutes for those two programs, I may be repartitioning my hard drive soon.