warning: Creating default object from empty value in /var/www/legroom_v3/htdocs/modules/taxonomy/ on line 33.

New Website Update - Nearing Completion

In yet-another project that seems to be dragging out forever, I'm finally ready to begin final migration to the new LegRoom site. Anyone interested may check out a preview of the site here:

As you can probably guess by the URL, it's built with Drupal, and is currently running a slightly customized version of the default Garland theme (new for version 5.x). I originally planned on creating a completely original theme for the site, but it was taking longer to develop than I had anticipated. So, I plan on using this theme for the migration and initial few months of production while I work out any remaining kinks, then switch to that custom theme down the line when I have more time to work on it.

If you check out the site now, one of the things you'll notice right away is the lack of dynamic content (eg, news posts, comments, etc.). I've been working on a conversation script to migrate as much of the content as possible (or relevant) from my current PostNuke site. It's nearing completion, and I'll make the final conversion just before officially going live with the new site. More details about this conversion process will be posted later.

Most other, "static" content (such as my software pages) is already on there, though some of it is a little out of date now. This will all be brought back into sync during the week, and I hope to finish the conversion script for the dynamic content by this weekend. I fully intend on having the new site fully up and running by next Monday.

I don't plan on making any more changes to my PostNuke site from this point forward (other than status update posts like this) in order to simplify the migration process; I don't want to deal with updating and maintaining two separate websites for any longer than necessary.

I'd like to thank Steve Beitz ( for his continued assistance with design work for He's provided the main layout and design styles for the website since the very first version in late 2001, and even worked up a last-minute logo for the new site just last night. Thanks for all your help, Steve.

Finally, I'd like to mention that comments about and suggestions for the new site are most certainly welcome. I still have a bit of work to do before everything finalized, so now is the best time to share your comments.

Universal Extractor 1.5 Features

Ok, so now that I have at least a couple hours of sleep to operate on, I'd like to briefly review some of the main features in Universal Extractor 1.5.

First of all, let's talk about the biggest change. This would be the inclusion of TrID. As discussed in this previous post, TrID is used to scan input files and determine the filetype through a signature analysis. The benefit here is that a Zip file (for example) will ALWAYS be supported, regardless of the file's extension. So, whether the file is named, file.jar, file.odt, file.dumbextension, as long as it is a Zip file it will be detected as such and extracted. This should greatly increase UniExtract's ability to reliably detect filetypes. Extensions are still used as a backup identifier in case the TrID scan is unsuccessful.

The next most important feature is the greatly increased format support. I've added support for several new installer formats, some lesser known and/or older archive formats, and updated support for a large number of existing formats. This release should more closely live up to its name than ever before. :-)

What else? I've added a few options to UniExtract itself, such as appending missing file extensions when possible, removing duplicate files, etc. These can be set in UniExtract.ini or during runtime when appropriate. I've also made some more enhancements to the installer to support these new options. I added four new translations to the release, thanks to some very generous contributions. I also made a significant number of changes/enhancements to UniExtract itself to make it more robust in certain scenarios, simply some of the code, and increase performance where possible.

The last couple items worth mentioning are bug fixes. There was an issue with 1.4.2 that prevented it from extracting files from some installers or self-extracting archives that had been compressed with UPX. One such package is the Firefox installer, which is why it was quite noticeable for me. I also updated the Inno Setup installer to version 5.1.9, which includes many updates for Windows Vista. I don't run Vista myself, so I can't support it's use or guarantee that UniExtract will run properly, but from some initial feedback it seems to be working pretty well so far. I'll explore this further as soon as I get access to a Vista system for testing.

I think that about covers it. If you haven't already done so, you can download and read more about Universal Extract from the following links. Enjoy.

Universal Extractor home page
Universal Extractor changelog
Universal Extractor feedback

Universal Extractor 1.5 Released

Update: 02/22/2007 09:20 CST
I just pushed out an updated version of the 1.5 release. The original release was still labeled "beta", although it was final. I also included the Spanish translation. No other changes were made, so if you don't mind the fact that beta is included in the title (and you don't speak Spanish), there's no reason you download it again if you already have it installed.

After a ridiculously delayed development cycle, Universal Extractor 1.5 has finally been released. There are a LOT of changes and additions in this release, including some core functionality changes. Unfortunately, though, I'm way too tired right now to discuss any of them. :-)

I'll post a follow-up story tomorrow with more details regarding what's new, what's changed, etc. In the meantime, feel free to start playing with the new release. I think you'll find it a very significant improvement over previous versions.

The usual links:
Universal Extractor home page
Universal Extractor ChangeLog
Universal Extractor feedback


Convert to FLAC ( Updated

I just posted an update to Convert to FLAC ( If you're unfamiliar with this app, it's a small but rather nifty BASH script that can transcode audio files from any lossless format to FLAC. So if you have a bunch of Monkey's Audio files, for example (which has very limited support under Linux), you could use Convert to FLAC to easily transcode all of your .ape files to .flac files with no loss of quality or meta-information. Granted, this app has a rather limited potential user-base, but if you're a Linux user and you work with lossless audio, you may want to check it out.

This update adds support for FLAC and WAV input files, allows the FLAC compression level to be set, and cleans up some more typos in the documentation section. Complete details, ChangeLog, and download links can be found on the Convert to FLAC page.

Fighting Comment Spam

I'd like to send a big, heartfelt "fuck you" to all of the assholes that have been posting comment spam to my site of the last year or so. Thank you so much for repeatedly wasting my time and energy on such pointless and meaningless work.

As I've mentioned in previous posts, the next version of my site is currently in development. Preventing (or at least severely limiting) comment spam is one of the primary design goals, so hopefully this should be much less of a problem in the future. I'd like to ask anyone out there who has experience with this problem - how have you dealt with it? My next site is built on Drupal. Are there any Drupal-specific modules or techniques that you would recommend? I've been doing research into this area myself, but I'd be very interested in hearing some first hand experience of what works (as well as what doesn't).

As for the current iteration of LegRoom, I've written a script that will let me easily:

  • Delete the malicious registered user that is posting the spam
  • Delete all spam comments made by that user
  • Update all articles with the correct number of legitimate comments

Needless to say, this script saves a ton of time compared to searching for and deleting all spam comments one at a time. Big thanks to my buddy Bill for helping me with some of the SQL statements involved.

I'm making this available to anyone else that may be able to benefit from it. If you run a PostNuke site and have issues with comment spam, you should certainly check it out. If you download it, though, please pay attention to the PostNuke version listed in the Requirements. I strongly recommend testing on a backup copy of your database before running it, especially if you have a different version. This script has only been tested against the listed version, so please be careful not to delete any valid data.

You can download a copy of the script from here:


Have fun nuking those comments. :-)

New Website Progress

It's taking longer than originally planned, but I'm happy to report that LegRoom v3 development is nearing completion. I'm still not quite ready to post a link to the development site (I still need to theme it, among other things), but since my last post about it in early November I've accomplished the following major tasks:

  • Decided on a content management system (CMS)
  • Ported static content (mostly anything that's not news posts and comments) to the new site
  • Ported dynamic content (everything else, which includes news and comments) to the new site

Porting the static content took a while, as I needed to clean up a lot of the HTML and PHP in the process, but the real killer was the dynamic content. I had to write a rather long and complex PHP script to do the job, and while the results are not perfect (article formatting may not be correct, etc.), I'm pretty happy with the results.

The primary remaining issue at this point is the new LegRoom v3 theme. I also have various kinks to work out, but most of that can wait until the new site is operational. Optimistically I'm hoping that can be done before New Year's, but at worst I'm hoping by mid-January.

Stay tuned for a sneak peak.

LegRoom Downtime and Upgrade was down for a couple hours Thursday night, and again Saturday afternoon for a shorter period of time. This was due to a planned upgrade that didn't go quite as planned. However, all issues are now worked out.

So, what was the upgrade? The server, as well as all associated network equipment, is now connected to a couple of brand new UPS backup units. These should provide about an hour of power for should the main power fail/flicker/surge. This should hopefully keep things a bit more reliable in the future.