21 Awesome (But Lesser-Known) Open-Source Applications for Windows

Unless you’ve been hiding under a rock in Madagascar for the last few years, you undoubtedly already know about the All-Star open-source applications for Windows. I’m talking about applications such as Firefox, Thunderbird, GIMP, OpenOffice, and VLC.

However, there are hundreds of lesser-known but highly-useful open-source applications available for Windows. A few of my favorites are below.

These applications range from moderately popular to downright obscure, but all of them are open-source and FREE. All of them are worth the install time if you have never tried them. As a side bonus, many of them are cross-platform as well.

Here they are, in random order:

zscreen.jpg1. ZScreen

ZScreen is an open-source screen capture program that quietly resides in your system tray until needed. It can take screenshots of a selected region, the active window, or the entire screen. It can even send screen captures via FTP and copy the URL to your clipboard, all with just a single keystroke. Oh yeah, it can also interface with image editing software, such as Photoshop or Paint.net.

If you frequently take screenshots, ZScreen is light years faster than pressing Print Scrn and pasting into MS Paint.

pdfcreator-logo.png2. PDFCreator

PDFCreator allows you to create PDFs from any program that can print. Once it’s installed, simply “print” to the virtual printer that it creates, and the resulting document can be read on any computer with Adobe Reader (or comparable software).

There are several similar programs, but if you dig open-source software, PDFCreator trumps many of the others.

keepass-logo.gif3. KeePass

KeePass is one of those applications that you don’t realize how badly you need until you start using it. It securely stores and manages the login information that you use for e-mail, websites, banks, etc. Unless you always use the exact same login information (a terrible idea!), you need KeePass. It’s even available in a portable version.

I use KeePass to manage hundreds of usernames and passwords. I’d go crazy without it.

handbrake_logo.jpg4. HandBrake

HandBrake is a DVD to MPEG-4 converter that allows you to stick a DVD in your drive and have the video converted to a digital file for convenient viewing. It’s great for minimizing wear-and-tear on DVDs, plus it’s handy if you travel a lot and want to watch movies on your laptop.

For best results, use it in conjunction with DVD43. Continue reading 21 Awesome (But Lesser-Known) Open-Source Applications for Windows

3 Little Perl Debugging Tips

I’ll do a little walk-through of the Perl debugger in a separate post, but here are a couple hard-earned morsels of knowledge that I thought I could share:

If your code is NOT compiling, the most common hard-to-find error is forgetting a semi-colon or a paren or brace in the lines above. The error message usually clocks in on the line AFTER the goof. Look above the line listed in the error message and see if you didn’t forget a semi-colon somewhere.

If your code IS compiling, but you’re still getting weird results, here are a couple tips to help you along:

1. Make sure your code is written in coherent, bite-sized chunks. If you can’t see an entire function/action on the screen, then your building blocks are too big. Writing code in smaller chunks lets you test each chunk individually. Alas, this doesn’t always happen, so…

2. If you are using a lot of hash references ( stuff like $my_hash_ref->{$some_id}->{'some_value'} ), then you are bound to run into the pitfalls of using hashes: namely mispellings. Oops. Misspellings. (Did you catch that?) TRIPLE CHECK YOUR SPELLINGS. Highlight your variable name/hash-key do a search for it — if it doesn’t show up somewhere else, then you know you have a problem. Perl happily will do this:
$my_hash_ref->{$some_id}->{'some_valeu'} = 1;

Note the mispelling — you just stashed a value in the wrong place in the hash. Perl auto-vivified without any warnings because that’s what it’s supposed to do.

3. Make sure you haven’t botched your reference arrows. E.g.
$my_hash_ref->{$some_id}-{'some_value'}

Oops. Notice I forgot a ‘>’ there between the id and value. This actually compiles! But it’s not what you want! Do yourself a favor and search your code for any instances of ‘-{‘ — you may be surprised by the horrors you find.

Basic OS X Hardening

apple-logo.jpgBasic computer setup and security compiled for Mac OS X 10.3 (Panther), 10.4 (Tiger), and 10.5 (Leopard)

I spend a lot of time with computers… it’s my job. Most of the time, people worry about patching up their Windows machines — and for good reason! Similar to our (slightly dated) Windows Security Guide, the purpose of this page here is to list the steps for securing a Mac OS X computer, including commands for lab managers and network admins who have to manage a large number of these computers. In the last week, there have been 3 security exploits / viruses for OS X. No OS is completely secure! So it begins…

4 simple things you can do to protect your computer

1. For everyday use, run as a limited user!

I don’t care if you rigged an election, aggressively invaded a foreign country, or slept with an intern — you simply don’t need to run as the Admin of your computer, no matter what OS you use! If you just bought your Apple computer, don’t let their glitzy setup fool you! It’ll ask for your name and and password, but this is to setup the Admin account, and it should be treated accordingly. After you’ve set up the Admin account, you can always go back to System Preferences and add a standard account for everyday use.

Trust me. You don’t want the computer booting automatically into an account with full Admin privileges. If nothing else, it’s far, far easier to find and backup all your files if you’re running as a limited user; all your files will all be in your home directory. If you’re Admin… who knows where you could have stashed them… good luck finding them all. What if you already set up your account, and whoops! It’s an admin account? What do you do? In Mac OS X, changing this is really easy. I appreciate the ease of it because this same thing is a holy pain in the arse on Windows.

I’m assuming you’ve got one account on your computer and it’s an admin account. Go to the Apple Menu → System Preferences, and open up the Accounts panel. Click the (+) to add an account, and check the box to let that user “Administer this computer.” You are temporarily creating a second admin account. Be sure you give it a good password and that you remember it! It’s the ultimate in rookie computing to forget your admin password.

Now, log out. Don’t just do a fast user switch. Log out completely, then log into the new admin account you just created. Go back to System Preferences → Accounts, and find your original user. Uncheck the box for that account that allows it to administer the computer. Poof. You’ve now changed your regular account into a limited user account and you’ve created a new admin account that you’ll hardly ever use. That’s the point: only use the admin account when you absolutely need to.

2. Turn ON your Firewall!

It’s under System Preferences → Sharing. Microsoft got ridiculed for shipping Windows with this turned off, and Apple should be next in line for a kick to the groin. If you need to open a port for some service, that’s always possible later, but TURN IT ON AND LEAVE IT ON.

3. Turn ON Automatic updates!

If you are the only person using your computer, and you are its administrator, you should turn this feature on by going to the Apple Menu, System Prefs, and find the Software Update panel. Check the box so this runs, preferably DAILY, if your internet connection can handle it.

4. Turn OFF “Open ‘Safe’ Files After Downloading”

The most recent security hole (as of this writing) exploits the fact that many people leave this checked. Go to the Safari menu → Preferences, and on the General tab, uncheck this box. That will prevent any nasty code from auto-executing.

This particular hole is not so much a problem if you are running as a limited user because the malicious code executes with the privileges of the current logged-in user. A limited user can’t do that much damage, but your computer can be completely hosed if you were dumb enough to be logged in as an admin.

Oh, and one more thing – Block Pop-ups in Safari! Again, why the @#$& this isn’t turned on by default, I don’t know, but there’s no reason to let those maggot-sucking, pop-up-producing advertisers ruin your browsing.

Open Source TV Show/Legal Torrents

This will be a quick post. I just wanted to spread the word about a new website that is now up and hopefully will be growing:

http://beta.legaltorrents.com/

In their own words:

LegalTorrentsâ„¢ is an online community created to discover and distribute Creative Commons licensed digital media. We distribute high quality digital media of all types and provide support to content creators, including hosting a guaranteed high-speed seed for the content. We distribute content with the full permission of the rights holders. We use the peer-2-peer file-sharing technology called Bittorrent.

They are dedicated to hosting only completely legal torrents. So have no fear and download away. Of course you won’t find all that sweet illegal content that some providers have, but that is not the point of this site. Fellow Linux users should be able to see how useful this site will be for centrally locating distro cds.

I also wanted to draw everyone’s attention to a specific torrent on their site:

Go Open Ep. 1-6

This is the first 6 episodes of a television show from South Africa that is information about Open Source software, and the alternatives to closed source software. It’s free, and pretty informative, especially if you are new to the Open Source scene.

Oh, and if you liked the first 6 episodes, don’t forget: Go Open Ep. 7-13

All files are in .MP4 format. If you have a hard time opening these files [and use windows], I recommend the Combined Community Codec Pack. It is the most complete codec pack I have found yet (originally compiled to play many differant formats of anime encoded by fans with subtitles.)

In the near future I will expound about the process, software, safeguards, etc. of the torrent community.

Phinally: Photoshop Express Online

Adobe did some things good with the release of Photoshop Express. It’s a free web-based editor that offers tools for one-click cropping, color adjusting, and sharing. Pretty much, that’s all you need most of the time, and I hate to think how many pirated copies of Photoshop are out there causing the Adobe execs to lose sleep at night.

All that’s required is a login to the site. Adobe hopes to tap the shutterbug crowd posting images to Flickr and Facebook and lure them to their site as a way to share their photos. We’ll see how it goes, but it looks promising. I can’t tell how many times I’ve needed to do some basic photo editing while on the road, and it just can be painful to try and find some cheap tools to do basic editing.

What Adobe did WRONG was to put in some fine print that said that Adobe basically would get to do whatever they want with the users’ photos. Watch out! Read the article on CNET:
Complaints trigger rewrite of Photoshop Express terms. Well… I’m gonna wait for the legal @!^%-storm to pass before trying this out.

UPDATE: Adobe dropped those nasty legal terms. “If you decide to terminate your Photoshop Express account, Adobe’s rights also will be terminated.” See CNET.

Using Javascript document.write for SEO

Search-engines read a bunch of text on your page that may not be relevant. You can use javascript to write text to a page on the client-side, and that text won’t be processed by the search-engines, thus achieving Search Engine Optimization (SEO).

There are a couple ways to do this… the easiest is using javascript’s document.write:


<script type="text/javascript">
document.write('Hello World');
</script>

This works great for simple little messages, but what if you have a large multi-line text string? What if your text has HTML tags and double quotes in it? Then you’re in for some trouble, because the nice little javascript examples will die on you most ingloriously. PHP to the rescue. Use PHP to replace the spaces (and double-quotes)… you may have to escape your double-quotes in the source text.

Extending that simple little example with some meaty text and some PHP, you end up with something like this:


<?php

$text = ”
<p>
Hello,
big, multi-line
\”stuff\”, watch out!
</p>
“;

$text = preg_replace(“/\s+/”,” “,$text);
$text = preg_replace(‘/\\”/’,”””,$text);

?>

<script type=”text/javascript”>
document.write(‘<?php echo $text; ?>’);
</script>

That solution works (at least, it did before I had to replace all the tags with html entities to make this post). The text gets written at that point in the document once it loads on the client-side. Notice that the regular expressions replace double-quotes with 2 single quotes (tricky, eh?), and any excessive space is replaced. But what if you want something more complicated… what if you don’t like the regular expressions and having to escape your double-quotes? The above method is sorta techie for some, and prone to error. There is another solution: use an Ajax library to pipe HTML directly to a div tag. This solution is more scalable because you can put all the HTML in a separate file, and you don’t have to escape characters.

Download this Javascript library from http://www.prototypejs.org/ and copy the file somewhere in your site’s html directory (here I called it div_updater.js and put it in my js directory). Reference the file in a script tag using the ‘src’ element, then use the Ajax.Updater function to specify 1) the div id where the text should be written and 2) the file to be included.


<div id="target_div"></div>
<script type="text/javascript" src="js/div_updater.js"></script>
<script type="text/javascript">
new Ajax.Updater('target_div', 'include_file.php');
</script>

This solution will write the text to where-ever you have the target_div. Just make sure you use give the div an ‘id’ and that its name is referenced correctly by the Updater function. Using one of these solutions, you can utilize javascript to hide text from the search engines.

Review of Safari 3 for Windows

safari_windows_screenshot.png

So Apple went on its second major foray into the world of Microsoft with its release of Safari for Windows (the first being iTunes). I’m not necessarily a connoisseur of browsers when I’m at work just trying to get things done, but right off the bat I noticed the slick implementation of Apple’s signature Aqua-style graphics. Apple didn’t settle for Microsoft’s standard clunky window buttons, and they even put in their own window scroller and check-boxes, so in my opinion, browsing the web on Windows never looked so good. In fact, in my work-crazed stupor, Apple’s faithful rendition of the Mac version of Safari easily lulled me into a blissful fantasy-world where I was working from home on my Mac… that mirage only lasted so long, though, because Windows keeps stealing my focus, its Desktop search feature can’t find its own ass with both hands, un-closed pop-ups from any application gum up the *entire* desktop (instead of just the parent application), and my soundcard driver went on the lam again. Oh, Windows, if I could kick you in the nuts… but I digress.

Safari 3 seems to work fine on the web sites I’ve been hitting for the past couple days. For example, the new Yahoo mail is not officially supported, but it seems to be fully functional with Safari 3. Likewise, I was able to run my WordPress control panel without any major issues.With most Ajax-heavy sites, basic functionality is usually there for any browser, but things around the fringes may start breaking, so I’m not terribly surprised that Safari 3 has had some trouble here… in CSS and Ajax is where the browser-specific demons lie.On another Ajax site, I did notice some broken functionality when using Safari 3, so you know those demons are out there to haunt web developers, which brings me to the crux of this review: now I have ANOTHER browser to test when coding (and IE was already a huge pain in the ass).

Safari MOSTLY follows the same rendering as Firefox, with some quirky caveats… the biggest is probably Safari’s stricter interpretation of Javascript: Safari does not tolerate the use of reserved words as Javascript variable names. Firefox does. Safari’s implementation is probably more correct (just ask any coder), but the reality is that some Javascript won’t execute in Safari. I’ve read some of the documents about how the Gecko engine should behave when handling floated elements as they come into contact with cleared items, and I became convinced that BOTH Safari and Firefox were rendering incorrectly according to w3c standards (I’ll leave IE out of that discussion entirely… except you Steve Ballmer… my shoes… need to meet your nuts). At least Safari 3 finally correctly handles the label tags for forms.The preferences are tucked away under the Edit menu. It’s a bit traumatizing not to have an application menu if you’re coming from the Mac version, but that’s more sensible than Microsoft’s ridiculous time-sucking habit of having menu items for “Customize…” and “Options…” Really…can anyone remember which is which?

Myths Debunked

  • Contrary to some inflammatory posts, the RSS reader CAN BE CONFIGURED. It is nearly identical to the Mac version, which is nice if you’re someone like me who doesn’t take the time to tweak out a separate feed reader.
  • Some other reviews of Safari 3 for Windows have reported it crashing or having really slow load times when visiting certain web sites (e.g. Microsoft.com), but I have yet to experience any of this… I mean, Windows already has a fairly high amount of background noise in this area – Firefox and IE crash on a pretty regular basis, so if this type of thing happens in Safari, I would tend to point my suspicions at the operating system. I mean, seriously… my XP machine can’t even crash without crashing. Sudo kill -9 anyone?

It’s no surprise that Apple is taking some serious flak regarding Safari’s “superior” rendering times. They gotta expect that the first thing any tech-head is going to do is to try and replicate the boastful test results, and of course some of the results are going to be proven “questionable” or dead-wrong. But hey, if you want the scientific details of how it actually performs, talk to the developers and scientists – don’t be thumping the copy of the latest ad. Check out Wired.com for some independent testing.

The only real difference I’ve noticed at a functional level is that Safari’s security seems to be tighter than IE or Firefox. We have an https page at work for an internal CRUD web app. Safari would not load it because we were using our own SSL certificate. I know our implementation of the cert is wrong, but we just hadn’t gotten around to fixing it because IE and Firefox only complained; Safari flat out refused. I guess that’s the correct thing to do, but it’s a pain.

I have to object to how Apple “distributed” Safari 3 in a decidedly “Microsoft” fashion… they bundled it on to the latest iTunes release, which has generated some warranted criticism from the CEO of Mozilla (Jobs… do you need a kick too?). But hey, we’re in the Bush-Cheney era, so go ahead and push the limits and take your chances with the law – the courts might slap your wrists in a couple years if they ever get around to it.

apple_safari_update.png

What would make me melt is if Safari got a plugin like Firebug. That little guy has saved my life as a web developer too many times to count.

Nicest Features:

— Clean Aqua style interface faithfully rendered on Windows.

— Much faster performance. I have no scientific data here, and I refuse to drink the Firefox Kool-Aid. I think IE is a pitiful attempt at a browser from a company with the resources that Microsoft has, but it’s actually Firefox that’s the biggest memory hog on my system (sorry lil’ Fire-dudes). When Firefox attempts to cache the state of every single page, my XP machine slows to a crawl, even with 2gb of memory. Safari has behaved nicely for the past 2 days with just as many tabs open, so they must be doing something better than Firefox.

Biggest Gripes:

People have flamed Safari for not having tabs enabled by default…

but maybe this was corrected, because when I installed, the tabs were enabled. Firefox didn’t have them enabled by default either for while, but it’s been a while since I’ve installed it.

Safari gives you no search box choices beyond Google and Yahoo. Hey, Apple faithfully recreated this too! Oh wait… on the Mac version you ONLY get Google… WTF? Anyhow, there are a couple ways to hack Safari’s Google search limitation on OS X (including a search-box plug-in), so presumably someone will crack this nut for Windows too. Makes you wonder what kind of weird marketing agreements are in place for the software to have that arbitrary restriction.

Editing pages in WordPress, an Ajax CMS, worked, but it had a few surprises. Safari took the liberty of injecting some formatting code into my post:

<span class=”Apple-style-span” style=”font-family: arial; font-size: 12px; line-height: 15px”>

I *hate* stuff like that. This reminds me of the little Paper-Clip guy in Microsoft Office (may he too get kicked in the groin). I don’t mind that type of functionality so long as it’s off by default.

Conclusion:

Safari 3 is not an amazing piece of software, but it may offer the home-sick Mac folks some solace. At best it’s a working browser with features comparable to Firefox for the average user; at worst it’s yet another browser for developers to consider while designing cross-platform web pages. Meh… whatever.