Archived news items from July 2003
Since this is old news, some links may be broken.
current news
newer old news from August 2003
Well, the webserver seems to be in place and running smoothly. And in the process I upgraded the processor on my home computer to an Athlon 2600+, and I can tell the difference.
In a couple of minutes I'm leaving for East Texas to visit my folks and my brother. I'll be gone from Austin for about a week, but I'll have my phone and will check my email from time to time, in case someone needs to get in touch with me.
May I just say, before I go, however, trying to make any sort of web page that looks good in Netscape 4.x is much like banging one's head against a dumpster filled with decaying trash. Soon the day will come when few enough people are using it and no one will bother trying to see what their pages look like in it. And that will be a good day, indeed.
Just thought this was apropos:
Progress on the webserver is going well.
Actually late Friday night....
For the Fourth I went over to my friend Wilson's house, and we played some Dance Dance Revolution for the Playstation 2. It was my first time at DDR, and I picked it up fairly quickly. It was fun!
We also had dinner and went out to watch the fireworks, too. We went to an elementary school pretty close to us, and there's a hill which looks right out over the field that they launch the pyrotechnics from. We were very close to the action and the exploding fireworks overhead pretty much filled your field of vision. I don't think there was any better location to watch the festivities from.
Last week I started helping out with a group that I first heard about last year: Distributed Proofreaders has a nice interface where you can proofread OCR conversions of scanned text from public domain works. Once every page has been proofread (twice), they're assembled together and donated to Project Gutenberg. So far I've done 18 pages. Those of you who know me aren't surprised to see that I'm proofreading for fun and charity.
All this week I've been in a Java workshop for AP computer science teachers, again taught by the unequalled Leon Schram. This year's workshop is the sequel to the one I attended last year. I really enjoyed it again, and I think it's really going to help my Computer Science II students do better on the Advanced Placement exam.
On the hurting wrists front, I finally bought a computer desk and chair on Monday from Office Depot. The desk was delivered on Wednesday, and I assembled it (quite a task) this afternoon. I don't know if I'm going to know what to do with drawers to put things in! The desk has a keyboard/mouse tray, and the chair is quite adjustable, so now I'm sitting with much better posture and hopefully holding my hands in a better position.
To help with this, one of my cousins (who's a pharmacist), sent along a link to some exercises developed by a team of orthopaedic surgeons that "can help prevent carpal tunnel syndrome." She says that her grandmother had been diagnosed with CTS, "couldn't grasp objects, and claims she is just about cured." So I installed xwrits, which reminds me to take a two-minute break every half hour, and I've (just this evening) started doing the recommended exercises. Since my Dad has had two surgeries for CTS so far, I'm hoping all these modifications will prevent me from having to go down the same road.
While spending money at Office Depot, I also bought a pair of speakers with a subwoofer. Thus I finally replaced the unpowered detachable boom box speakers (orphaned when the boom box in question, which I bought in high school, quit playing CDs) that I'd been using ever since I bought my first sound card. This means those speakers were in continuous service on my main computer for probably close to a decade.
Tomorrow I'm building a webserver for Lakeline Church, using donated parts from various web team members. I'll be putting some form of Linux on it, running Apache and mod_php and Samba. Should be fun.
Actually late Monday night....
Vacation Bible School went really well, and several of the kids became Christians. It made for some late nights, but what do I care? I get to sleep as late as I want most days! My brother Paul got us out of a jam for Friday night by finding what looks to be the only recorded version of His Banner Over Me that doesn't suck, and painstakingly uploading a 7MB Ogg Vorbis file to me over his modem.
I was pretty non-productive other than VBS, though.
Today I received news that confirms my status as a nerd. Some of you may remember that a couple of years ago I wrote a program to randomize the lines of an input file. Well, mine isn't the only program that does such a thing. But first, let me talk a little bit about computer science.
Those of you who have used spreadsheets know that most have a feature to "sort" a column of numbers. Just choose the menu option, and the column of numbers magically rearranges into ascending or descending order. Well, computer scientists know the process behind that magic, and in fact, efficient sorting was a hot field of study a couple of decades ago.
The difficulty comes in that there are over a dozen ways to sort a list of values, which range in length from four lines of code (for the exchange sort) to maybe a hundred lines (for a non-recursive quicksort). And they also range in speed, too, with the faster versions being thousands or even millions of times faster than the slowest for large sets of values.
Now, sort of an inside joke in many computer science classes is the "bogosort", which is a method for sorting values which is as slow as possible while still actually eventually producing a sorted list. As an example, here's the procedure for arranging a deck of cards in order using the bogosort:
The whole point of the bogosort is that it's mind-bogglingly slow. Well, probably, anyway. One could get lucky and have things be sorted on the first try, but that's unlikely. And for large data sets, chances are good the sun will fail before the bogosort finishes its "work".
What makes the internet a fun place to be is that someone actually bothered to code up an implementation of the bogosort. And test it. And release it on the internet, with full documentation, for others to download. In all its tongue-in-cheek glory: bogosort.
In all fairness, this code is slightly useful, because it's possible to configure this version of bogosort to only mix up the data once and then stop, without bothering to check if it's sorted or repeating or anything. Which makes it useful for randomizing the lines of an input file, just like my program does. Only a little more humorously.
Now, what makes me a super nerd is that a little over six months ago, I downloaded the bogosort code, looked it over, and noticed that it wasn't mixing up the data as efficiently as my own randomizer. That's right, the program which is defined by intentional inefficiency could be made more efficient in one area, without affecting the fact that it might take longer than most of our lives to complete one largish run.
This, folks, is what we in the industry call "premature optimization". That's spending time tweaking every ounce of speed out of a program that's poorly designed to begin with. One of the first rules of optimization, in fact, is to avoid doing it at any low level until you're fairly certain your overall scheme is as efficient as possible.
And not only did I figure out this potential improvement, but I emailed the author letting him know about it. And not only that, but in the last couple of days he released an updated version of his program, implementing my suggestion! You can see the mention in the AUTHORS file, and again in the ChangeLog.
Sometimes I'm such a nerd I can barely stand myself.
In another news, one of my friends from church bought me some sunscreen as a birthday gift to replace the surely expired stuff I'd had. And since I'd already bought some more myself, I'd have to say I'm fairly set for known-good sunscreen for a while.
Oh, I guess I did do something productive last week that wasn't related to VBS: I got all my TrueType fonts displaying correctly in KDE apps, and printing out correctly. Which is simple under your other major operating systems, but which took me more than six hours over two days, and required me reading lots of HOWTO documents, writing and compiling a custom Qt application (my first), and hand-editing a couple of text configuration files in various places. It all works now, but I wouldn't wish that experience on many others.
I still prefer Linux, though, because though some things are harder, others are much easier.
June 2003
archive index (for dates back to August 1998)