Archive

October 4th, 2010

Legroom.net Copyright and Licensing

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:

  • License information for software is generally not clearly presented, often only available in the source code itself. This has lead to numerous inquiries over the years from users and developers interested in using my software.
  • A few developers have expressed concern about my choice of the GPL for some software, as the "viral" nature of it can make it difficult to use my software with other, non-GPL software.
  • I'd like other people to be able to reuse my content (with certain limitations) where beneficial, but the default copyright noticed I've displayed doesn't make this at all clear.
    • I've been giving this a lot of thought over the last few months, and have decided to make the following changes:

      • All original content (mostly text) on Legroom.net will be available under the Creative Commons Attribution-ShareAlike 3.0 Unported License. This basically allows the content on this site to be reused for any purpose, with two restrictions:
        • Any reuse or derivation of my work must be properly attributed
        • Any reuse or derivation must be redistributed under a similar share alike license, to ensure the work remains "free"

        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.

      • Unless otherwise indicated, all of my software will (eventually) be relicensed under the GNU General Public License, version 3. This license change will take place on a per-application basis as new versions are released, which is why it will likely take some time to fully complete. Additionally, license information will be added to each application's web page to make this more clearly available.
      • Inno Setup CLI Help and Modify Path (Inno Setup Pascal script) will instead be relicensed under the GNU Lesser General Public License (LGPL), version 3. Since these application components are meant to be used in conjunction with other programs, the use of the GPL, as noted above, can make it difficult to incorporate into programs using non-GPL-compatible licenses. Switching to the LGPL should provide a reasonable compromise between allowing these components to be more widely used, while also preserving their freedom as much as possible. New versions of each will be released shortly to make the license change official.

      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.

August 21st

New Version of Modify Path Released

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

August 15th

It Lives!

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:

My Packard Bell
My Packard Bell (underneath the monitor)
The Gateway (right) supplanted it in 1999
  • 75 MHz Pentium CPU
  • 8 MB FPM DRAM (or maybe 4 MB - this was upgraded quite a bit and I forget the original amount)
  • 1 GB hard drive
  • 1 MB integrated Cirrus Logic GD5430 PCI video card
  • Some funky combo SoundBlaster 16-compatible sound card and 14.4 Kbps modem
  • Two (yes, two!) 2x CD-ROM drives
  • One ubiquitous 3.5" floppy disk drive
  • 14" XGA (1024x768) monitor with some pretty fly bolt-on speakers

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:

  • 133 MHz Pentium CPU
  • 40 MB FPM DRAM
  • 2 GB hard drive
  • 16 MB Creative Labs 3D Blaster Banshee PCI video card (3dfx Voodoo Banshee)
  • Creative Labs SoundBlaster AWE 64
  • 56 Kbps modem
  • Kingston KNE20BT 10 Mbps ISA NIC
  • 8x CD-ROM drive

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:

  1. Home computer for my parents/sister for a couple years
  2. Test box for experimenting with Linux
  3. Router/firewall for my home network, running Linux and OpenBSD at different times

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:

  • back to the integrated 1 MB PCI video card - I stupidly gave my Banshee away to an ex-girlfriend long ago
  • The 8x CD-ROM drive was dead, and the original 2x drive, while it still worked, could not read CD-RW discs, so I swapped it out for a 24x4x4 cd burner (which was the oldest/slowest drive I had that would read CD-RW discs)
  • 3com 3c905c 100 Mbps PCI NIC
  • 5.25" floppy disk drive - used to copy data off of some really old floppies I still had from elementary school
  • I replaced the system fan with a brand new one - the original had developed a nasty vibration

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.

  • [1] Technically this is not the first computer we had in my home, but rather my first computer, and the first computer I had that I knew what to do with. Prior to this, we had a Commodore 64, but this was just a game machine to my brother and myself, and I was far too young (~4) to know what else could be done with it anyway. Sometime after that my parents purchased what I believe to be a 386-based PC when I was around eight, but no one in my family knew how to use it for anything more than running WordPerfect Jr., and even that required consulting a set of instructions every time we used it.

August 9th

No, This Site Is Not Malicious

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.

June 17th

Display Colored Output in Shell Scripts

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.

June 7th

Convert to FLAC 2.1.3 Released

I just uploaded a new release of Convert to FLAC. This fixes a bug in ffmpeg support. If you use the -f switch to invoke ffmpeg for transcoding files, please upgrade to this new version. If you don't use ffmpeg, there's no reason to upgrade.

For more information:
Convert to FLAC home page and downloads
Convert to FLAC ChangeLog

Feedback and Support

June 6th

Spam Problems (actually, anti-spam problems)

I've been having issues with my spam module since upgrading to Drupal 6 a while back. It changed behavior very significantly, and in my opinion for the worse. Part of the problem I've been having with it is that content detected as spam is not always reliably reported as such. Sometimes it just disappears, literally. Submitters have the option to submit feedback on posts falsely classified as spam, and I may see that (if I remember to look in a completely different location than the rest of the posts I review), but even when I do see the feedback, the original post itself seems to be purged from the database.

I've noticed this problem before, but I didn't realize how bad it was. I have over a dozen feedback messages I just noticed for false positives, and I cannot approve the original posts because they no longer exist. Beyond that, there's no telling how many posts without feedback were falsely rejected.

The one good(?) thing is that this only seems to affect anonymous comments (which are heavily moderated anyway). If you want to post any comments to my website or forum, please register an account first - this should make sure your post gets through, and even if it is falsely reported as spam I should at least be able to review and approve it.

To everyone else that's been affected by this - my apologies. I do still have the content of the posts you submitted feedback on (as opposed to the original posts that I can simply approve as "not spam"), so I'll try to manually post them to the appropriate locations as myself and respond where appropriate. Please check back over the next day to see if your post made it.

I'm also going to investigate alternative anti-spam options to try to prevent this issue in the future. I'll write a new post about any changes.

Update:  Whew, ended up adding adding quite a few new forum posts and comments. Again, if you've posted a comment that was (falsely) flagged as spam and wondered why it never showed up, please check to see if your post is available now. I apologize once again for the screw up. Hopefully I can find a better spam solution soon.