Archive - 2007

April 1st

LegRoom Changes, Part 3

For my third and last post in this series, I'd like to discuss overall site management design changes. Prior to this latest change, I had always run LegRoom off of PostNuke. Now, PostNuke has been good to me over the years. It's been around for a while so it was a pretty mature product even in 2002, it has a huge community behind it, and it's been flexible enough to let me do pretty much anything I wanted during the previous couple redesigns. I'm very appreciative of all the hard work that the PostNuke devs and community have put into the product, and I certainly do no regret choosing PostNuke for my site.

With the latest redesign, however, I felt the need for something different. I could've just slapped a new theme on top of my PostNuke install, as I did previously, but I really wanted to migrate to a new content management system altogether to give me a chance to truly redesign the site from the ground up, as well as clean out a lot of the cruft that had been gathered over the years (see Part 2 for some examples of this). Additionally, while PostNuke was a capable and mature CMS, I wanted to move away from it for three main reasons:

  • Development progress seems almost non-existent. Take version 0.8, for example. If I recall correctly, initial development of 0.8 began in 2003, possibly even 2002. However, version 0.8 has still not been released. Now, I'm quite sure there are a lot of factors contributing to this delay, and I don't even pretend to know all of the facts, but just from a pure end-user perspective this is ridiculous. There have been minor updates to the 0.7x branch during that time, but to go so long without a major release gives the impression that either development is stalled or non-existent, there are severe technical difficulties involved (which can shake confidence in the developers involved), or there are severe personnel and/or communication difficulties within the developer community (which, again, can shake confidence). Personally, I just got tired of waiting.
  • PostNuke is a heavy system, and the generated output (at least from my older version) was just plain ugly. I wanted a CMS that produces cleaner, more efficient, and standards-compliant code, something that doesn't use several levels of nested tables for positioning. From what I read, this situation has supposedly improved significantly in the current PostNuke releases, but that doesn't help me much because of the next reason.
  • In order to make PostNuke work how I wanted, I had to make some fairly extensive modifications to the codebase. I completely rewrote the menu generation code and RSS publication module, for example, as well as made various changes here and there to several of the other modules. The problem with this approach is that it makes an in-place upgrade nearly impossible. The end-result is that I was left running an extremely vulnerable version of PostNuke for several years. I was honestly surprised that I was able to hold off the hackers until I was able to complete the Drupal migration. Now, this isn't PostNuke's fault in any way, but simply another factor that has to be considered. I need a CMS that will do what I want without requiring modification of the codebase. PostNuke couldn't provide that.

So, after a rather extensive search, I settled on Drupal. As of version 5.0 it seems to offer the best combination of capability, flexibility, efficiency, and standards compliance out of all of the open source CMSes that I examined. (By the way, I'd really like to thank the admins of OpenSourceCMS for making it easy to "test drive" so many website management systems. If you're a webmaster that's not familiar with this site, check it out ASAP.)

So, aside from the CMS change, what else is new? While migrating all web content over to the new site I spent a lot of time "updating" all content to use a specific look and feel. My previous site was something of a testing ground for me, and was originally started when I just didn't know much beyond pure HTML. Each page that I added to the site was essentially created using whatever level of experience I had mastered at the time, resulting in a hodgepodge of styles and techniques. This is especially true of the Tips and Tricks pages, of which some had to be nearly completely rewritten. Now, however, I was able to apply the same coding styles uniformly across all pages on the site. Yay!

In addition to the common style, you may also notice a common layout for all of the pages. Each has a navbar across the top that will take you to any location in the page. Each page is broken up into the same sections, where appropriate, for consistency and easy of use. I also added section breaks, along with "return to top" links, to cleanly separate each section. These are a lot of subtle changes, to be sure, but they really do a lot to enhance site usability.

Other page-specific changes:

  • The Bookmarks page is now properly styles to match the rest of the site (thanks again, Steve)
  • As previously mentioned, I added a new Coming Soon section
  • DailyStrips has also been restyled to match the site, including rewriting the output engine to work better in the context of a website module (and no more tables!)
  • The Metasearch page (aka, Search Internet) has been tweaked and has had a couple more sites added

I think that pretty much covers it. I hope you enjoyed this brief look into the redesign process for this site. Up next - the conversion script I used to migrate from PostNuke to Drupal. It is truly one of the most ugly pieces of code I've ever written, but it got the job done. As promised, I'll make it available to everyone else to use, along with an explanation of the details and shortcomings of the script. I just need a bit more time to clean it up and write the details.

March 29th

Download/Saving Streaming Videos

Streaming (aka, embedded) video has been around since the beginning of the internet, and while it can certainly be a very useful technology, I hate companies and websites that require you to stream the video and don't even offer an option to download it. What if you want to view it multiple times? What if you want to show a friend or co-worker? Tough! You have to stream it (re-download it) every single time you watch it. The only possibly reason for doing this that I can think of is that it supposedly allows the hosting site more control over the video, but it creates a severe inconvenience for users, prevents a number of possible customers from watching it in the first place (eg, if they're not running a "blessed" operating system, browser, or plugin), and exponentially increases bandwidth costs for the hosting provider. Additionally, the very fact that the movie has to be sent to the client to allow it to be played and displayed means that the client still gets a copy and can still save it anyway, just with much greater hassle.

If you want to save a streaming video from a site that doesn't offer a proper download link, you have a few options. Like most things in technology these range from easy but limited to difficult but extremely flexible. For now, I'm going to discuss the easy approach. :-) I'm also going to assume you're using Mozilla Firefox (if you're not, you really should be).

There are a number of Firefox extensions available that can greatly assist with saving embedded/streaming video clips. A simple search for "download video" on the Firefox Add-ons returns 19 extensions. I've personally used VideoDownloader in the past, and it worked well.

If you don't want to install a new extension just for downloading videos, and option is to use Greasemonkey scripts. Greasemonkey is a really powerful extensions that allows users to create or install custom scripts that can change the behavior of any web page. In this case, a Greasemonkey script can analyze the page for embedded video clips, then automatically add a download link to that video; simply click the download link to save the video. Two great scripts for downloading embedded videos are Apple Trailer Download and Download Video (though I use this version of Download Video). Note that you must first install Greasemonkey before you can install these scripts. You can find a lot more useful Greasemonkey scripts on my Mozilla Firefox Tips and Tricks page, as well as a massive collection of contributed scripts on Userscripts.org.

The primary limitation with the extension/script method is that it's often limited to particular sites. Apple Trailer Download, for example, is limited to just movie trailers hosted on the Apple Movie Trailers website. Download Video and VideoDownloader both support a number of different sites (including the most popular, YouTube and Google Video), but are still limited to only sites they "know" about. I'll follow up this article with more advanced techniques and suggestions that should help you save just about any embedded video.

March 28th

Have an Upcoming Test? Forgot to Study? Here's Some Inspiration.

Someone with too much free time on his hands (not that that's a bad thing) collected a number of scanned test/quiz documents with some rather creative answers. This should make for a rather humorous end to your day (as well as feeling better about your own test grades from school).

Remember, there is an elephant in the way.

March 23rd

Universal Extractor Translation Updates

I've added several new language files for Universal Extractor since the 1.5 release, including (as of this post): Korean, Portuguese, Portuguese (Brazilian), Romanian, and Turkish. These files can be downloaded from the Universal Extractor page and added to your current copy of Universal Extractor if you'd like, and they will be included in the next release.

I'd also like to point out that all 18 (and counting!) language files have been voluntarily translated and contributed by UniExtract users that simply wanted to use the program in their native language. I'd like to send out a big thanks to all contributors for improving Universal Extractor by making it much more accessible to foreign users. Thanks!

If a translation doesn't currently exist for your own language, and you have a good understanding of English, consider contributing a translation yourself. The process itself is very straightforward; simply copy English.ini and follow the instructions at the top of the file to translate the English strings into your native language. If you're gracious enough to contribute the new language file for all other UniExtract users, I'll be happy to add your name to the list of contributors, as well as link back to your own website (if you'd like).

The only "catch" is that I'd ask you to keep the file updated as I release newer versions of Universal Extractor. These updates typically involve only minor changes or additions, and are only necessary as often as I release new versions (which, honestly, is not that often). I can only speak English myself, so I rely entirely on the generosity of UniExtract users to maintain the language files.

Thanks again to everyone that has contributed a language file to Universal Extractor.

March 21st

Status of E-mails Regarding LegRoom Software

Several people have e-mailed me regarding a couple bugs in my programs, as well as to submit new translation files for Universal Extractor. I'm behind on a lot of my e-mail right now due to some other priorities, so please forgive the delay in response. I'm reading each and every e-mail that comes my way, and will reply as soon as I get the chance.

For everyone else that may have found a bug or wants to suggest a new feature, please consider using the new LegRoom Support Forum instead. I won't necessarily be able to reply any faster, but the information you provide will at least be visible to all other users, which could help them if they're having a similar problem or were thinking about requesting a similar feature. Plus, it helps cut down on my e-mail. :-)

I'm going to try to knock out a few UniExtract-related e-mails before going to bed tonight.

How to Create Truly Obscure Passwords

I recently came across an interesting article on Irongeek.com (which itself is a pretty interesting security site that I'll probably add to my list of news feeds) entitled, "ALT+NUMPAD ASCII Key Combos: The α and Ω of Creating Obscure Passwords." The author suggests the idea of using non-standard (ie, not defined on standard keyboards) special characters as part of your password. It's common knowledge that adding special characters to your password greatly increases the difficulty of guessing or brute forcing the password. This extends the idea by adding normally hidden (and often unthought of) characters to the mix. So, while something like abCD1234%^&* might be a good example of using special characters in a password (though obviously you'd want something more random than that sequence), consider this password: äßÇн²¶╔¥¢. I'd love to see the password cracker that can crack that one. :-)

Of course, as the author mentions there are downsides to this. Increased complexity notwithstanding, its strength is also its main weakness; these are non-standard characters, and as such not all applications and operating support them in the same manner (or at all). While this may work great as a Windows user password, for example, it may not be possible to use it as a Linux user password.

Regardless, it's still an interesting concept that deserves some attention. Check out the article for more details on the subject, as well as a tutorial and reference charts for entering special characters. The Wikipedia article on Windows Alt keycodes (also referenced in the article) is another good resource.

March 20th

Small update for Firefox Tips and Tricks

Update: 03/21/2007 14:41
In a rather ironic mistake, I accidentally specified a bad link to the Firefox Tips and Tricks page. Oops. :-) That's been corrected.

I just noticed that the links to several of my modified Greasemonkey scripts were not updated to reflect the new site layout. I fixed these links on the Mozilla Firefox Tips and Tricks page so that they now point to the correct location.

Sorry for the inconvenience.