I've just been notified that the download links for Universal Extractor have not been functional, returning a 404 Not Found. This was the result of an inappropriate and inexcusable action taken by the shitty webhost currently hosting these files. I will consequently likely be moving the files soon to another host. In the meantime, the download links are working again. If you notice any similar problems in the future, please e-mail me ASAP.
I'm going to be changing up my home theater setup for the first time since moving to my house. I'm still using all of the same components, but they'll be interconnected differently, with several components now routed through a video switch, which will (finally!) let me hook up all of my various components and game systems at the same time and easily switch between them as desired. This will be a nice improvement over my current setup, where only my most commonly used components are hooked up, and even switching between them can involved changing inputs on multiple devices. I'm very much looking forward to making this change.
Unfortunately, this means pretty much rewiring my entire setup, and I'm not going to lie; I have a crap ton of cables. After disconnecting everything and piling up all the cables, I was so impressed I felt the need to take a picture for posterity. Shown here are (almost) all of the cables that were piled up behind my TV. This excludes a few cables that I couldn't easily remove (like speaker cables and power cords), but otherwise... yeah, that's a lot of cables. You'll want to click on the thumbnail to view the large image for the full effect.
Now, the fun will really begin this weekend when I need to put everything back together, along with the new switch and the 6 additional sets of cables I ordered for the new interconnects. Yay!
Information regarding copyright and licensing of Legroom.net content and software has always been apart of Legroom.net, but it hasn't been available in a clear or consistent manner. I'd like to change that.
Historically, all software made available through Legroom.net has been licensed under the GNU General Public License (GPL), version 2. All original content on the site (posts, howtos, etc.) has been copyrighted to me, with (as the saying goes) all rights reserved. This arrangement has worked pretty well for a number of years, but there are a few deficiencies I'd like to address:
I've been giving this a lot of thought over the last few months, and have decided to make the following changes:
Complete details can be found in the link above. The copyright notice at the bottom of all Legroom.net pages has been updated to reflect this change.
In addition to the above, I also plan on creating an "about" page at some point that contains a summary of this information, as well as contact information and other appropriate information about the website. Hopefully, all of these changes will help to make Legroom.net licensing and copyright information clearer and easier to understand, and allow my work to be more easily used by others (while keeping it free for everyone).
Comments, questions, and suggestions are always welcome.
I updated the Modify Path (modpath) Inno Setup script. This is the first new feature release in three years and contains one major new feature that I've been wanted to add for nearly that whole time: support for modifying either system or user paths. All prior versions modify the system path, which requires administrative privileges. My changing just the user's path, this should now be usable in packages that can be installed by non-admin users. Changing the user's path is now the preferred approach, but you can still instruct it to modify the system path if necessary. This version also includes the ability to change the name of the 'modifypath' task if desired, as well as a couple bug fixes (the most prominent of which affects multiple directory support).
All modpath users are encouraged to update to the new version. Complete changes are listed in the ChangeLog.
Please note that this version is, unfortunately, not directly compatible with older releases and will require some small modifications to your existing Inno Setup scripts. Please see the updated usage examples on the modpath home page or within modpath.iss.
The new version can be downloaded from the script's home page:
Modify Path
My first[1] computer was a Packard Bell Legend 418CD, which my parents bought for me toward the end of my freshman year of high school (1995). I'd always been somewhat interested in and fascinated by computers, but it wasn't until my freshman year that I began to take a strong interest in them (mostly because one of my friends in high school, Aaron Mielke (man, I hope spelled that right) was into computers himself, but unlike me actually knew what he was doing and taught me a great deal about how they work). My Packard Bell, despite the company's general reputation for cheap/poor quality, was a fantastic system that served me well for many years. When purchased, it had the following specs:
This was a pretty pimpin' system back in 1995. It came with Windows for Workgroups 3.11 and MS-DOS 6.2, and although Windows 95 had been released a couple months earlier, I was perfectly happy with 3.11 as I really didn't like the new interface in 95 at the time (in fact, I didn't upgrade to 95 until 1998, and even then only because Final Fantasy VII PC required it, and I really wanted to play Final Fantasy VII). Retrospectively, I'm still glad it came with 3.11 because it gave me the opportunity to learn a lot about DOS and pre-95 versions of Windows that I otherwise would've missed out on.
I was really into gaming at the time, and was able to play any game I wanted on it at the time and, after some upgrades, for years to come (the last major games I can remember playing on it were Half-life and Final Fantasy VII, which were certainly not lightweight games). It served as my primary (and only) computer until the summer of 1999, when it was replaced by my Gateway P500 (Pentium III 500). By that time, my Packard Bell had been upgraded numerous times to include:
I pretty much upgraded it as far as I possibly could, short of replacing the motherboard. After it was displaced by my Gateway in 1999, it still served a number of functions in the following years:
This box stayed on router/firewall firewall duty all the way until 2005 or 2006, when I replaced it with a Linksys WRT54G. Getting eleven years of productive use out of a computer is an awesome accomplishment, and I was actually rather sad when I shut the thing down for good a few years ago. I simply had no other use for it at the time, so into the closet it went.
Well, fast-forward to a couple weeks ago when I pulled it out along with a couple other old computers I'd acquired to scavenge for some parts for a project I was working on. Of the three computers, my Packard Bell was by far the best maintained, still in the best shape, and the only one that was still fully functional. When I powered it on it even booted up to OpenBSD, still ready for firewall duty after all these years. :-)
I was actually so proud of it, after I finished the particular project I was working on I decided to fully revive it once more as a DOS/Win 3.11 test/play box. Granted, it serves no real useful purpose, but at fifteen years old it's still doing everything I ask of it. The most recent set of changes and upgrades included:
At this point, the box is up and running better than ever. I've had a good time fixing it up again, and given the history involved I thought I'd share this experience with my readers. Hope you enjoyed.
Also, I have another, related retrolicious post coming soon, so keep an eye out for it.
Sorry to even have to post this, but apparently my site has been classified as "malicious" by certain parties. It all seems to have originated from this particular malware list:
http://www.malwareurl.com/listing.php?domain=legroom.net
The reason? Someone apparently doesn't like my download script for Universal Extractor. Seriously. This is the "malicious" URL:
http://www.legroom.net/scripts/download.php?file=uniextract16
Any guesses as to what that does? It lets you download Universal Extractor 1.6. Oh, the horror! I use the download script rather than link directly because I need to move the location of the actual installer file from time to time due to bandwidth concerns or other issues. By using the download script to serve up the file, I can easily point it to a new location at any given, implement load balancing if needed, etc., without anyone having to worry about dead links (well, except for people who insist on hotlinking directly to the file against my wishes, but I don't have much sympathy for them).
Apparently someone didn't like my script and reported it. I guess. I haven't been able to get any more information about the issue. I guess I can kind of, sort of, maybe understand the concern about a download script like this, as I guess it could, possible, maybe be hijacked in some way to serve up malicious content, but that's not what happened here. My script is written such a way that it'd be impractical to try to use it for malicious means (I won't say impossible because, quite frankly, anything is possible on the internet); it'll serve up the specified file from a specified URL on a specified remote server and nothing else. If anyone tried to fiddle with it by adding fake filenames, etc., it'll just return an "invalid file" error message.
So someone must've thought the script seemed somehow suspicious, but couldn't bother to do even the simplest of tests to verify it before reporting it to a malware site, and the malware site, of course, listed it without question. And even better, I just discovered that numerous other sites have lowered legroom.net's reputation as well because of this listing, because, naturally, none of them could be bothered to verify the claim either.
And finally, the icing on the cake is that this was originally listed on malwareurl.com on 12/15/2009. That's right, eight months ago. In eight months of being reported, listed, copied and listed, copied again, etc., not once was I ever notified of the dangerous, horrible malicious content on my website. It wasn't until today that a visitor noticed the problem and sent me an e-mail to give me a heads up (coincidentally, two people contacted me today - my heartfelt thanks to both of you). So, it took eight months to find out about a non-existent problem that denied access to or drove away who knows how many people from my website. Fantastic.
Some choice words are coming to mind right now, but I'll refrain because this is a (mostly) family-friendly site.
I get the need for these kinds of sites (I use a few myself for e-mail blacklists), and I can appreciate that many of them are volunteer efforts with limited time and resources. Nevertheless, I think it's reasonable to expect the site operators to:
1. attempt to verify reported content
2. notify the administrative or technical contact of the domain when the site is blacklisted
These steps are not difficult: a simple click wouldn't verified that my script was innocuous, and the notification process could be automated by simply querying whois and sending a standard form letter. If either of those had been done, this issue could've been resolved quickly and easily. Instead, I find out eight months later and I'm pissed. This is not the best way to build support for, or trust in, community-driven security projects.
OK, I'm finished my rant now. On a more positive note, I'd like to thank the operator at malwaredomains.com for a very quick and amicable response to my inquiry about removing the inappropriate listing. Hopefully I can get the source of the problem, malwareurl.com, to correct the problem soon as well.
Most modern terminals* (xterm, Linux desktop environment terminals, Linux console, etc.) support ANSI escape sequences for providing colorized output. While I'm not a fan of flash for flash's sake, a little splash of color here and there in the right places can greatly enhance script output.
In Bash, I include the following functions in any script where I want colored output:
# Display colorized information output
function cinfo() {
COLOR='\033[01;33m' # bold yellow
RESET='\033[00;00m' # normal white
MESSAGE=${@:-"${RESET}Error: No message passed"}
echo -e "${COLOR}${MESSAGE}${RESET}"
}
# Display colorized warning output
function cwarn() {
COLOR='\033[01;31m' # bold red
RESET='\033[00;00m' # normal white
MESSAGE=${@:-"${RESET}Error: No message passed"}
echo -e "${COLOR}${MESSAGE}${RESET}"
}This allows me to easily output yellow (cinfo) or red (cwarn) text with a single line in a script. Eg.:
cwarn "Error: operation failed"
If this message was output normally with echo and it was surrounded by a lot of other text, it might be overlooked by the user. By making it red, however, it's significantly more likely to stand out from any surrounding, "normal" output.
My most common use for these functions are simple status output messages. Eg., if I have a script or function that's going to do five different things and display output for each of those tasks, I'd like to have any easy way to visually distinguish each of the steps, as well as easily determine which step the script is on. So, I'll do something like this (from one of my system maintenance scripts):
# Rebuild packages with broken dependencies
cinfo "\nChecking for broken reverse dependencies\n"
revdep-rebuild -i -- -av
# Rebuild packages with new use flags
cinfo "\nChecking for updated ebuild with new USE flags\n"
emerge -DNav world
For more details, the Advanced Bash Scripting guide provides a detailed discussion on using ANSI escape sequences in scripts, both for color and other purposes. You can also find some additional info in the Bash Prompt HOWTO, as well as useful color charts on the Wikipedia page.
*Note: Traditional (read: old) Unixes generally don't support useful modern conveniences like this. If you regularly work with AIX or Solaris and the like, you may want to skip this tip.