I’m at the airport early today, and I learned two things:

1) If you don’t print your boarding pass ahead of time, you might get lucky and get assigned a better seat. I moved from 26A– second-to-last row in the back– to 5A, which I’m hoping is a “premium” seat with more than twelve inches of leg room. Yay!

2) The TSA is no longer using metal detectors at all, and forcing everyone to go through the millimeter-wave machines. Ugh. Of course I opted out, which meant a pleasant early-morning groping. Good times.


I saw an article the other day about WindowMaker, which is the desktop windowing system I used for many years back when I worked at Raytheon. I had been using CDE in college, and then at Raytheon I had a bunch of massive SGI workstations running IRIX, so I first used CDE but switched to WindowMaker because it seemed to have more customizations and just a nicer “feel”.

WindowMaker has been sitting idle for probably a decade, and finally some developers who like it decided to start working on it again. So the article I read was an announcement that a new version had just been released. It’s still the same window manager at heart, but they’re actively working on adding new features. Funny that after all this time the project has been resurrected.

Since I’m using Jinux now, it was a simple matter to download the source code for WindowMaker and compile it. It literally took about two minutes (compared with two hours for KDE). I installed it and fired it up.

It worked right out of the gate. Awesome. All of the old familiar “dock icons” were there, along with support for multiple workspaces, custom themes and docs, and of course the default purple-grey background. Keep in mind that in those days, when I was using WindowMaker as my main windowing system, it was around 1996. Windows 95 was the king of the hill. It didn’t do any of the cool things that WindowMaker could do. Even today Windows doesn’t have support for multiple desktops (as far as I know).

Of course I’m still a KDE fanboy so it’s not like I’m going to switch back to WindowMaker as my main desktop environment. But it was kind of fun to grab source code and within a few minutes have that old familiar desktop in front of me. A geeky happy birthday to me.


When I was in my teens, I was over at my friend Morgan’s house. A bunch of us were playing cards or something, and I grabbed a soda from the fridge. Next to the fridge was a wall calendar. With a bit of a grin on my face, I picked up a pen and wrote “Jeff’s Birthday” on February 18.

On February 18 I was surprised to get a birthday card from Morgan’s mom, Carol. She mentioned that she’d seen my birthday on the calendar and if it’s on the calendar, it deserves a card. Cool.

That was more than 20 years ago. Since then, every February 18 I’ve received a card from Carol. She hasn’t missed a single birthday. How awesome is that?


I just ran out of disk space on one of my web servers. Looking more closely, it seems that the Apache error log grew a little too large…

-rw-r–r– 39019579996 Feb 17 17:17 error_log

That’s 39 gigabytes of error messages (which really turned out to be low-priority “notices” from the PHP engine). Yikes.


For the past eight weeks or so, I’ve been spending a little time here and there working on a complete rebuild of my desktop Linux system. Many years ago, I created my own personal version of Linux called “Jinux” (catchy, I know) because one of my clients wanted a server that only ran the bare minimum software necessary to provide certain services, and was basically “lean and mean”. Jinux became a pretty handy thing to have, so when I started my web hosting business I used it on my own servers. I had used Red Hat Linux and experimented with a few others, but I found that in all cases, those distributions included many hundreds of software packages, sometimes even into the thousands. It was a lot to maintain, and even a high-end server (at the time) seemed to always be sluggish because of all the things running. Jinux solved that with a software suite of just under 200 packages– and I knew what every one was and why it was there, versus a thousand packages of which 800 were a mystery.

Anyway, Jinux has been great for ten years and I continue to use it for all of the servers I build and maintain (now numbering around 70). But a server environment is very different from a desktop; the main difference is the use of a graphical interface and accompanying windowing system, so I’m not spending all of my time working in plain text on the command line. Obviously web development doesn’t get very far without, say, a web browser.

I’ve been using Kubuntu for many years now, and I’ve generally been happy with it. The package management is a breeze and it’s always been very stable. I’ve used many window managers in my career, starting with CDE and moving into WindowMaker, eventually landing in KDE. KDE is amazing and has a lot of powerful ways to integrate applications and data. Version 3 was rock-solid stable and became a critical part of my everyday work. A few years ago the KDE team decided to rewrite the entire window manager from the foundations, and KDE 4 was born. Unfortunately it was a mess… things broke out of the box, and it was missing a lot of the functionality KDE 3 users like me had grown accustomed to over the years. I didn’t think it was the end of the world, though: I continued using KDE 3 in an older version of Kubuntu, and life went on. Over time, though, that version of Kubuntu became obsolete and unsupported. I had no choice but to switch to KDE 4.

So I took a deep breath and did it. I downloaded the latest version of Kubuntu, installed it, and converted all of my email, address books, calendars, to-do lists, sticky notes, and everything else from KDE 3 to KDE 4 (which uses a completely different underlying data storage mechanism). I found that KDE 4 mostly worked, but every day there were little things that annoyed me. My shortcut keys didn’t always work. Things I could do in KDE 3 could no longer be done in KDE 4. My desktop background randomly broke. The taskbar refused to stay on the left of my screen, reverting back to the bottom of the screen every day when I logged in. There were a lot of “eye candy” effects like fading windows and animations and glossy transparency and whatnot which tended to slow down the system.

In the end, the annoyances just got to be too much. Since I’m a certified Linux geek, I figured it was time to go back to the foundations. Beginning in late December I worked on compiling (from raw source code) all of the software packages I’d need for a full desktop system. That started with the X windowing system, moved into KDE, and then all of the other things you come to expect in everyday computer use: an office suite, email program, instant-messaging client, web browser, image viewer, graphic editor, scanner software, and on and on. Every time I thought of something I had to find the source code, download and configure it, and then install and test it. I’d check it off my list and move on.

The beauty of this is I can use KDE 3 again. Even though it’s not supported by any of the major Linux distributions, I can get the last version (there won’t ever be an update to the 3.x series) and compile it to work with all of the latest versions of everything else. So night after night, for an hour here or a half-hour there, I’d work on another package until I had everything I needed. Finally, this weekend I decided I had enough. Sure, there are still some things I’m missing, but I have all of the key software packages I’ll need for my daily work. So I took the plunge and wiped my main desktop computer to install Jinux on it.

A few things didn’t work quite right, but I spent Saturday afternoon fiddling with them until they did. And when all was said and done, I had my dual-monitor setup with all of the stuff I’ll need.

It was like coming home to see an old friend you’ve missed for a few years. Welcome back, KDE 3. Welcome back, stability and stuff that just works.


I just got an email from a potential new client, so I went to their web site… it didn’t work without the “www” prefix. Hmm. Then I went to their Facebook page, which was in the guy’s email signature. Interesting stuff going on there too.

Maybe this explains why they’re contacting us…


You know it’s bad when you’re writing PHP code for a client and the business logic is so convoluted that the comments in the code are paragraphs of explanation instead of single lines. And as you’re putting together the logic, you realize it’s so nuts that you’re not going to have a prayer of remembering it in two months when the client wants to make a minor change so you feel you have to explain everything you’re doing in excruciating detail.

Actual comment:

# Now for the crazy part. We need to go back to the category
# reallocation map that was built above and see if anything is
# being allocated into THIS category, and if so we need to break
# it down and allocate it into the products instead, dividing
# the initial (category) percentage into the lower (product)
# percentages. Whee!

I just hope this helps in two months…


I haven’t blogged for a while, so I’m poking through old pictures that were still on the camera. Here’s one from just before Christmas, when I had my slave labor… err, I mean kids… stuff and stamp our 250 Christmas cards.

The envelopes had adhesive strips (because no one wants to lick 250 envelopes!) and when they were peeled off, they gathered enough static they stuck tenaciously to things. Things like hair.

Zack was handling the stamps, and each book of twenty had some strips along the edges. He made good use of them.