Color Blind

Nov 20, 2006

For me, one of the most frustrating aspects of web design is the actual design step. Coding a given design? Easy. Making that design standards compliant? No problem. Actually coming up with the design concept itself? Mind-numbingly difficult. I occasionally check the Color Schemer Galleries for decent schemes, and there are a number of nice ones there, but determining how to use each color is a task I struggle to succeed at.

Does anyone have any strategies they use? Any pointers to decent resources? I already know about the Color Harmonies site and the Visibone Webmaster's Color Lab. Can anyone do this, or must one be an 'artist' to excel?

Down the Pipeline

Nov 16, 2006

There are a number of things I've got planned for the next several months:

Googlebar Lite 4.6: Better context menu customization support, a stand-alone toolbar button to show and hide the Googlebar Lite toolbar, and allowing the user to customize the keyboard shortcut for setting search box focus are the items currently slated for this next release.

Born Geek Overhaul: I am slowly getting the pieces into place for moving Born Geek to the WordPress platform. I'm really excited about this, but it will definitely take some time to complete.

CoLT 2.3: A new release of CoLT would be nice, improving the "Copy Link Text and Location as" capabilities.

Advanced Toolbar Tutorial: I've wanted to complete this project for a long, long time now, but I have yet to even start it. Perhaps after I overhaul the Born Geek website, I can get this going.

CMS Search Continues

Nov 11, 2006

Last year at this time, I was thinking about various content management systems for user over at Born Geek (sister site to this blog). I never made a decision, mostly because so many of the available options seemed weak to me. One year later, very little has changed and I'm still looking to migrate the site from the hand-built system I use today to a database driven solution.

Currently, I'm leaning towards using WordPress, the same package I use here at this blog. I like the interface that it offers, its documentation is top notch, and I'm already quite familiar with it. The only real downside I can see with the package is that pages are built on the fly. Every month, Born Geek averages 1.56 GB of data transferred, 542,818 hits, and 17,955 unique users. With this much activity on the site, I'm a little concerned about database accesses and the subsequent processor time needed to generate each page. A caching plug-in is available for WordPress, and I hear decent things about it. But will it be enough?

I'm seriously thinking about giving it a try later this winter (converting the site will take some time). So keep your eyes peeled. In the mean time, if you have suggestions for CMS-like systems that might fit the bill, let me know. I'm certainly open to suggestions.

End of a Legend

Nov 9, 2006

The Concerned web comic, which is based on and set in the Half-Life 2 game world, recently ended for good. It's a shame that it had to end so soon, but the goal all along has been stated in the comic's description ("The Life and Death of Gordon Frohman"). If you haven't read the comic, I highly recommend it (note that you should start reading from the beginning to best appreciate it). The writing was top notch, the visuals were great, and I will sorely miss the updates that I used to look forward to.

Some readers may be surprised to learn that I was once heavily involved in the Duke Nukem 3D gaming scene. During that time, I had the good fortune of taking over and maintaining the map editing FAQ, which eventually made it on to the official game CD (which was quite an honor). At the time, the game was revolutionary and incredibly fun. How excited, then, must we all have been when Duke Nukem Forever was announced?

That announcement date was almost 10 years ago (April 27, 1997), and we still have no game to play. DNF has single-handedly become the laughing stock of the gaming community, having been torn down and reconstructed multiple times. I can't help but think that the game will fail miserably when (or if) it launches. The fan base from the original game has grown up. I fondly recall my days with the Duke, but I have a hard time envisioning myself getting as interested in that gaming line today as I would have years ago. What went wrong? Here's my theory:

DNF is announced with much fanfare, and development work begins. The Unreal gaming engine shows promise, so the development team switches, adding delay. New, innovative games begin appearing using this and other engines (Half-Life, for example), and the DNF developers think "wow, our game isn't near that good ... let's start all over." Development begins anew, adding more delay. As work nears completion, more innovative games are released, and the weaknesses in DNF become apparent all over again. Rinse. Repeat. It's an unfortunate snowball effect. Just as soon as the developers are ready to release, another product beats them to the punch, outshining their efforts. This is a battle that is very difficult to win.

If DNF ever does see the light of day, I'll probably at least give it a look. But my feelings for that brand just aren't the same. Time has moved on, and I've grown to appreciate more mature material. But here's hoping that the Duke will shine again. Those days of old were certainly fun.

Vista Predictions

Nov 3, 2006

I've recently had the fortune of playing with Windows Vista release candidates at work. Though I haven't spent much time with them, I can tell you one thing for certain: it doesn't feel any different to me than XP. Sure the windows are translucent and shiny, but shouldn't there be more to this? Come on Microsoft; what have you been doing for the past decade (or however long it's taken you to get this thing out)? The new start menu is horrible. Something that basic should have been left alone at the very least; not made worse.

Anyways, now that Vista has a release date, I'd like to make some predictions for the OS. Due to the headaches that will be coming down the pipeline based on all the new security stuff, I'm betting that few people will adopt the new operating system at first. Those that do adopt will essentially be "beta testers" for Microsoft, helping to work out all the last minute bugs. Things will go rough for several months, MS will reduce the price a time or two to help boost sluggish sales, and people will slowly turn on to it. I'm guessing that it will be another year (or maybe two) before the ball really starts rolling and substantial numbers of people start converting. Corporations will easily take that long before they begin rolling it out. So much has changed in this release that I doubt any large company will be willing to risk converting immediately.

Microsoft isn't helping things by offering seven different versions of the OS. Which version am I supposed to choose? And why should I go with that choice over the other six? Two versions seems complicated enough in XP (the Home and Pro editions). Why must we make things harder here?

To me, it all comes back to the way it feels. If I don't feel substantial change, why should I switch? What I've seen so far doesn't impress me, and I don't plan on switching for several years.

I don't fully understand why people get so upset about the supposed "memory leaks" in Firefox. While I don't disagree that an application as large as Firefox could have memory management issues, I severely question the reports out there that indicate that Firefox eats up hundreds of megabytes of memory without ever releasing it. I use Firefox every single day for many hours, and I have never run into such a problem. In fact, what most people are complaining about is actually a feature.

That aside, let's assume that Firefox does indeed leak small amounts of memory here or there. What would it matter? Sure it might be sloppy programming practice. It's certainly not fair to eat shared resources that you'll never return. But under what circumstances might you be hindered from doing work on your computer because Firefox is "consuming" one or two hundred megabytes of RAM? What memory intensive operations are people constantly doing that causes them fume over this perceived problem? I can think of no single instance of computing that would both consume the entire system's memory, and be common enough that everyone encounters it on a daily basis. Granted, gaming might be one exception, but not everyone does that.

So my question is this: why care? Who cares that Firefox might use up to 200 megabytes of memory? Memory is cheap. If you're that concerned about the memory usage of your applications, you clearly don't have enough in your system. Just 1 gigabyte is more than enough for today's environment, and NewEgg has 1 GB modules for as little as $80. If you're complaining, just go for the upgrade; you'll be glad you did.

Loving The Office

Oct 29, 2006

Does anyone else besides me love The Office? A coworker of mine (thanks Dustin!) got me into the show, and I'm currently working through season 2 (so no spoilers, please). Season 1 was surprisingly short, and I wish it had been longer. The one thing that I enjoy most about the show is that all of the characters are incredibly believable. I mean, I feel like I could work with any of these people. None of them are overly beautiful, like most television shows where the actors are all Barbie and Ken cookie cutters. Steve Carell does an excellent job as the manager, and John Krasinski is great as Jim. Dwight is a riot, and Ryan the temp plays a good part as well.

Don't even get me started on Pam; words simply fail me.

Update: I've finished season 2. All I can say is wow.

October is "People with Disabilities" awareness month at IBM, and I attended a panel discussion on the topic today, which was quite insightful. One of my coworkers, who has cerebral palsy and speaks with an augmented communications device, was one of the panelists. I learned a number of interesting things about the opportunities IBM offers employees with disabilities, along with a number of other interesting things.

All of this got me thinking about the lawsuit facing Target, which I commented on quite a while back. A recent update to the story indicates that the trial is still moving forward. Target recently argued that the Americans with Disabilities Act only covered physical store space, not electronic store fronts. But a California judge ruled last month that this was not the case, and has allowed the case to proceed. This fact brings up an interesting point: if the law were to apply to physical locations only, how would businesses like Amazon.com, who have no physical locations, be allowed to operate?

It only makes sense (even business sense) that the ADA applies to electronic store fronts. If it didn't, think of the number of customers that would be turned away. According to the Wikipedia entry on blindness (so take this figure with a grain of salt), the World Health Organization estimated that 161 million people in the world were visually impaired, with 37 million of those being blind. Would you, as a business owner, turn away 37 million prospective customers? I know I certainly wouldn't.

I can only hope that the National Federation of the Blind wins this important court case. Regardless, it will hopefully wake up online retailers to the fact that web accessibility is important. Not only for blind users, but for search engine robots; all of which are blind. When the biggest internet user (the Google bot) is blind, I might begin to be concerned about the accessibility of my site.

If you've been holding out for Firefox 2.0 (although why would you?), you'll be glad to know that Firefox 2.0 is now available. Lots of new goodies in this release: inline spell checking (the greatest feature yet), better tabbed browsing, session saver, and more. It doesn't get much better than this (until Firefox 3.0, that is).

While you're upgrading, make sure you have the latest versions of CoLT and Googlebar Lite.

You’re On the Air!

Oct 21, 2006

My dad and I wanted to donate some money to WNCU, a local jazz station that we both enjoy, so I called the number they gave out tonight to make a donation. Does an operator willing to take my money answer the phone? No. The host of the live talk radio show that was currently on the air picks up. I explained that I was calling about the fund drive, and he explained that this was a live radio talk show. I apologized, gave him my number (hopefully off the air), and hung up. He still hasn't called back, and he no doubt had a good laugh at my expense.

Oh the humanity!

My family took a trip to the North Carolina State Fair today (as we do every year), and we had a great time. While there, I had some interesting thoughts on the types of people one sees at the fair. And, to some level, these groups also apply at amusement parks (though I'm not sure why). Here are the major people groups that I came up with:

Teenagers This demographic makes up a large portion of those actually at the fair. Many teens apparently mistake the fair for some sort of mass orgy; the girls dress scantily and the guys hang all over the girls they are with. Some teen "couples" can be seen walking around as if in some sort of mental haze. These particular teens "hold hands" (rather loosely, mind you) and seem stare into the distance at all times. Is this a result of a drug induced stupor? Quite possibly. Many of the teens smoke, and curse like sailors. I enjoy avoiding this group as much as possible.

Pre-teens Trying to Be Teenagers There are fewer people in this group, but enough to be categorical. The kids who aren't quite teenagers do their best to mimic their older counterparts, albeit in a much more immature way. I mostly feel sorry for those included in this group, since they just seem so pathetic.

Parents with Small Children Small children drive me crazy, and this year's fair seemed to be packed with them. There were strollers everywhere, and whiny, snot-nosed kids populated those strollers. And, through all the whining and tantrum throwing, mom and dad do nothing. Could they too be in a drug induced stupor? This group makes up (in my estimation) roughly a third of the people at the fair, if not more.

The Elderly Lots of older people can be seen at the fair, which isn't too surprising seeing that people 65 or older can get in free. The only main problem I have with this group is that they always walk slowly, and I inevitably get caught behind them. Come on grandma; get a move on!

Thugs Black, White, Hispanic, it apparently doesn't matter what color you are; "gangstas" can be seen all over the place. Baggy jeans, gold chains, over-sized clothing, threatening looks, this group has it all. The end result is so pathetic, I can't help but shake my head in disappointment.

Ugly People The fact is that there are a lot of butt-ugly people out there. And they seem to flock to the fair. Why must ugly, overweight women wear clothes that reveal more of themselves than anyone wants to see?

Can you think of a group I've omitted? If so, feel free to discuss.

While working on my photo album software, I ran into an interesting SQL problem. I wanted to be able to display information about my photo albums, along with the number of images in each album. The problem is that my data is broken up into two tables: an albums table and an images table. My goal was to use exactly one SQL query to access all of the data, including the count of images. And I wanted empty albums (no images) to also show up in the query's results. But try as I might, I couldn't get the query to return the data I wanted. I finally found a solution that works, and I present an example below.

Let's suppose we have two MySQL tables: one that represents directories, and another that represents files. The directories table has the following columns:

  • ID
  • Name

And the files table has the following columns:

  • ID
  • Parent_ID
  • Name

The Parent_ID field in the files table corresponds to the ID field in the directories table. In order to select both the count of files in each directory, as well as all of the directory information, we do a simple join. But here's the trick: the order of your tables matters! Here's the query that works for this scenario:

SELECT d.*, Count(f.ID) AS Count FROM directories d LEFT JOIN files f ON f.Parent_ID = d.ID GROUP BY d.ID

When the tables are reversed in the JOIN, only tables with 1 or more entries show up in the results. What a subtle change! Hopefully someone will find this tip useful. It sure took me a while to get this working.

Darn It, Jim!

Oct 13, 2006

It turns out that DreamHost does not allow system() calls to be executed from PHP. This nugget of knowledge essentially throws a gigantic monkey wrench into my plans for the photo album software I'm writing. I was planning on allowing the large thumbnail creation process to run in the background, while the user continued to do whatever else they wanted. Since I can't spawn another process, these plans are shot. :-(

So here's what I plan to do for the time being: instead of using two thumbnails (100 x 100 and 640 x 480) and a base image (1024 x 768), I'm switching to one thumbnail (100 x 100) and a base image (800 x 600). It's not what I had planned, but it'll have to do for now. Thoughts? Suggestions? Sympathy?

GooTube

Oct 10, 2006

Google has apparently bought out YouTube, which is a rather surprising move. Greg Linden predicts that this will be the point in history where people say that Google jumped the shark. While I don't think things are quite that extreme, I certainly don't fully understand this acquisition.

Perhaps the Google higher-ups have insights that we do not. Or perhaps Google felt like dropping 1.6 billion (with a b) dollars for no good reason. It should be interesting to see what happens to YouTube as things move forward. Will Google Video be rolled into the YouTube look and feel? Or vice versa?

A chemical plant in Apex, NC has apparently exploded, causing over half of the town's population of 32,000 to evacuate. It's made the top story at CNN, as well as other news sources.

I went to school at Apex High, and know lots of people in the area. One of my family's good friends lives near the plant (1/4 to 1/2 of a mile), and she is unable to drive due to a disability. We haven't heard from her, so hopefully one of her friends came to pick her up to get her out of harm's way. There's apparently a toxic gas cloud over the city, so hopefully nothing bad will come of that. The current rain appears to be helping in that regard.

This entire event reminds me of a scene from The Simpsons (from episode 2F32, 'Round Springfield):

Lisa returns to KJAZZ with the album, and the DJ puts it on a turntable and hands her a radio. "Here, you can listen to it on this," he says, but as she walks away from the station, all she picks up is static. She sighs heavily, "I did the best I could, Bleeding Gums." Just then, a large cloud appears over the radio tower and lightning strikes it. Suddenly, the signal comes in clearly -- for Lisa, Homer at home, Abe at the Castle, and Wiggum in his patrol car. "Attention all units, attention all units, poison gas cloud heading for --" announces the dispatcher, but her voice is cut off by the jazz transmission. Wiggum approves until he passes out from a cloud of poison gas.

Today is my birthday! :D

I received a Nintendo DS Lite, along with the new Mario Brothers game, and they both rock! The DS is quite impressive, and I've only played with it for a little bit. Perhaps I'll post some photos in the next day or so. I also scored another Al Di Meola album (this guy can really play guitar - I highly recommend any of his stuff).

Quite some time ago, I saw a posting by Matt Cutts, detailing when he tends to write new blog posts. I thought it might be interesting to see what kind of posting habits I tend to have, so I ran some similar commands to gather the data. Through the magic of Excel, I've come up with some interesting results.

First, let's take a look at the days that I post:

Interestingly enough, Sunday is the most common day for me to post (42 total posts), while Thursdays are least common (only 31 posts). It is quite fitting, and ironic, that this post is being made on a Thursday. For the most part, I post fairly evenly during the week. But what about the time of day?

This graph reveals some much more interesting results. Early morning posts are virtually non-existent, with only 1 post made during the 12:00 AM hour, and 4 during the 7:00 AM hour. Between 1:00 and 3:00 PM, posting picks up heavily, revealing an interesting trend in my typical work day. Early afternoons tend to be the slowest part of each day, and I apparently post to help pass the time away. The drive home from work can be seen in the 5:00 hour, with only 2 postings during that time. But things pick up again steadily during the evening. I post most often between 7:00 and 11:00 PM, with a combined total of 114 entries being filed during those times.

It's always interesting to see what trends occur in data like this. While I'm not surprised at the data, I find it interesting that my likelihood of posting varies so much with the time of day. Isn't statistics great?

Optional Excerpts

Sep 26, 2006

I recently "discovered" the Optional Excerpt feature in WordPress, which is sad considering that it's been in plain view the entire time. From here on out, readers of my RSS feed will get a summary of each post instead of the first N characters. This should help make each post's intent more understandable. The only problem is whether or not I'll remember to create an excerpt with each post. I've clearly got to train myself to take this extra step before posting.

One other interesting feature that I recently learned about is the "post slug" field. This allows the author to specify what text to use when creating the permanent link for the post. How awesome is that? No more awkward contractions in the permalink URL's!

Here's a handy tip for all you WordPress 2.x users out there. The inline uploading feature of the "Write Post" administration page was completely useless to me. I never have, nor will I ever, upload files to my web server using the WordPress interface (that's what we have SCP and SFTP for). What irritated me most, however, was that I couldn't turn this feature off, thereby hiding the iframe that contained the uploading controls. It took up a large amount of space on the admin page, and it looked ugly. But I've figured out how to "disable" it. Here's what I did:

In the wp-admin/ folder, I opened up the file named edit-form-advanced.php. Doing a search for the word upload yielded a block of code controlled by the following conditional expression:

if(current_user_can('upload_files'))

I simply commented out this block (including the conditional) with some c-style comments. I did the exact same thing for the edit-page-form.php file. Voilà: no more inline upload! I'm so glad I've been able to reclaim that wasted screen real estate.