Archive of September 2008

Utility Gem: Microsoft Time Zone

Microsoft Time Zone I work closely with a team in Bangalore, India and I occasionally have to interact with our offices in other parts of the world. As a result, I find it really handy to know what time it is in those areas of the world. Linux, I’ve recently discovered, offers this functionality directly through its clock panel item. For Mac, it’s available as an extra bundled with iStat Menus that is applied to the clock display on the menu bar. Windows offers, by far, the most anemic time display with only the time visible and the date displayed only when the time hovered over.

I would like this utility better if it were created as a plugin to enhance the time display. I’d like it even better if it also included a minimalistic calendar. It does neither of those, but Microsoft’s Time Zone utility does exactly what its name implies and does it in a way that’s not unattractive. It’s worth a look for Windows users who need to know what time it is in other areas of the world.

Reinstalling Windows

When I landed my current job a year and a half ago or so, I was given a desktop machine to play with. A desktop machine with a whopping 512MB of memory. Although I was new and was somewhat reticent to rock the boat, it was 512MB so I had to say something; I just couldn’t develop with that kind of horse-, um, anemic-hamster-power. So I said something and within a day or so I had 2GB. Much better.

Feeling bold, I made another request. Because I like my work, I do a fair amount of it at home. A laptop would make that much easier. It took a little longer, but I eventually got that, too. At first blush, it was a nice one. A Dell Latitude D600 – the same model as my personal laptop at the time. I was pretty enthused. Then I booted it up and my enthusiasm waned. Turns out that we buy some kind of business machine that has a woefully underpowered graphics card. Don’t get me wrong, I’m not a gamer and I wasn’t disappointed because I woudn’t be able to rock the frame rates necessary to support online first person shooter games. I was disappointed because the maximum resolution of my card was 1024×768. Oh yeah, you heard me. In the year 2007, I was getting a late model laptop that still only supported 1024×768 resolution. Max.

Since that time – about a year ago now – I’ve been begging, cajoling and greasing palms for something better. In addition to working from home, I’ve been traveling a decent amount, sans external monitor, of course, and at the risk of sounding like a whiner, that kind of resolution is intolerable for development purposes (arguably for any purpose). Yesterday our MIS department hooked me up. A shiny, new Dell Latitude D820 with 2GB of memory and a wide screen with a maximum resolution of 1680×1050. So, so much better. I’m a happy camper.

While I plan on dual booting back into Linux, I wanted to get the Windows partition at least to a point where it’s usable and, for me, that means utilities.

Since I get a lot of questions about what I use from folks who see me working, I thought I’d document the most indispensable utility applications I’ve found for Windows. Those little applications that do one thing (more or less) and do that thing vastly better than the default handler, assuming a default handler even exists.

Launchy

Launchy My lifeline. Anything that keeps my hand off the mouse is, by its nature, good and Launchy keeps my hands off the mouse more than any other piece of software I can think of. After installing (and launching) Launchy, I immediately tweak the preferences to my liking by clicking on the gear icon in the upper right corner of the interface (alternatively, if no gear icon is present, right click somewhere near the upper right corner) and selecting Options. I usually tell Launchy to add the following directories to its catalog:

  • c:\Program Files and the *.exe files it contains.
  • c:\WINDOWS\system32 and the %(technical)*.cpl files it uses (this gives me access to the items in the Control Panel).
  • c:\Documents and Settings\myusername\My Documents. Sometimes I keep stuff there and it’s handy to have this kind of access to it.

I also ensure that the Weby plugin is checked. Weby won’t index Firefox 3 bookmarks automatically, but in a previous post I explained how to make it do so.

Did I mention that it’s free?

TaskSwitchXP

TaskSwitchXP If you’re fan of the Alt+Tab keystroke – and you should be – then this is for you. TaskSwitchXP puts Windows’ default task switcher to shame. It also adds the ability to minimize applications to the system tray by right clicking on the minimize button. This keeps those applications from cluttering up the taskbar. I use this feature all the time for those applications I keep open all day, but use only occasionally.

TaskSwitchXP…also free.

Unlocker

Ever tried to delete or move a file only to have Windows indicate that it’s in use? Annoying, right? Problem solved. Unlocker will present an interface that specifies what application has the file locked and offer the ability to unlock it and perform the action you requested in the first place.

Yep, Unlocker is free. Is there a pattern developing here?

KeePass

KeePass KeePass is an open source password manager and it’s very good. There are ports for other platforms (Mac, Linux, mobile, etc.) and all use the same database format, so it’s a trivial thing to sync the same database across multiple systems and devices.

Being open source, KeePass is free, of course. It’s variants are also free.

Foxit Reader

I find Adobe’s Acrobat Reader to be one of the single most annoying pieces of software ever created. I love the PDF itself, but the software Adobe created to read it is absolutely abysmal. I spend more time waiting for it to load than I do actually reading the document. On top of that there are the upgrades and updates. The constant upgrades and updates. And then there’s all the crap that they like to sneak into their upgrade packages. No, I don’t need the latest toolbar of the month, thank you.

Foxit Software’s reader is just want the doctor ordered. Lightweight, fast and not even a little bit annoying. Oh yeah, and free. Brilliant.

Honorable Mentions

The following utilities may not make the first cut, but they’re definitely on the short list.

WinDirStat

I don’t need it often, but when I do, there’s no better way to visualize how much space on a drive any given directory is taking up.

Free.

CCleaner

A great utility for reclaiming hard drive space. Free.

WinMerge

Hands down the best visual diff tool I’ve ever seen for the Windows platform. Certainly the best free diff tool. For those who write code or edit configuration files in a Windows environment, this is a must have. It even integrates nicely with TortoiseSVN for Subversion users who need to perform diffs against a repository.

This only gets honorable mention status because I rarely develop in Windows and, when I do, am usually in Eclipse which has it’s own visual diff tool that’s pretty solid.

Free.

Feed Problems

It was pointed out to me this morning that my feed, currently run through Feedburner, wasn’t working properly. I created that problem when I upgraded my site software (the new version provides a different feed URI), so it seems that none of the posts I’ve written since the upgrade have been getting through to aggregators. I don’t know how that managed to elude my notice, but it did.

Everything should be corrected now, so please check the site if you don’t see those posts appear in your reader. There’s been a fair amount of activity – 10 posts, to be precise – in the last week or so including the posting of my Ant script and instructions for sync’ing Firefox across multiple machines using Dropbox. Good stuff. Really. You don’t want to miss it. :-)

Apologies for the inconvenience.

Synchronizing Firefox Through Dropbox

Having removed the Mozilla Weave extension from my Firefox install (at least for now), I was again left searching for a synchronization solution. This time I wanted one that really worked for me. I mentioned in yesterday’s post that I might try using Dropbox and, while I was speaking rather tongue-in-cheek at the time, I couldn’t think of any reason that it shouldn’t work so last night I tried it.

I used my Mac as the “master” machine, but given the way that Dropbox works, I don’t think that there’s any preference given to one machine over the other. In this case, “master” just means that it’s the machine whose profile I copied to create the shared profile that other machines will tie into. I’ve now referenced that profile on my Windows XP virtual machine at home and on my Linux machine at work and, though I haven’t thrown any hard tests at it, everything appears to be working fine so I thought I’d document the steps I took in case anyone else is interested in trying this.

Create a New Profile on the Master Machine

It would probably suffice to use an existing profile directly, but in the interest of having an escape plan, I’d recommend creating a new one. This is really the only set of instructions that may vary across operating systems, so I’ve tried to provide links for systems other than Mac where such a link was readily available.

  1. Quit Firefox (On Windows and Linux, close all open windows).
  2. Create a new directory in the Dropbox directory for the shared profile. I created mine as ~/Dropbox/Application Support/firefox/profiles/wg3×0vhj.dropbox. The unintelligible name of the last directory simply follows the typical profile naming convention. It may work just as well to name the last folder “foo”, but I wasn’t sure and it wasn’t worth the effort of attempting to deviate.
  3. Create a new Firefox profile (Windows instructions).
    1. Start the Firefox Profile Manager. There is probably a better way, but not knowing it, I dropped into iTerm:
      $ /Applications/Firefox.app/Contents/MacOS/firefox -profilemanager
    2. Click the Create Profile… button.
    3. Enjoy the wizard process, but be sure to Choose Folder… rather than accepting the default on the second panel.
    4. Select the profile folder created in ~/Dropbox.
    5. Click Finish.
  4. Set the new Dropbox profile as the default profile.
  5. Start Firefox to create “instantiate” the new profile.
  6. Quit Firefox.
  7. The new Dropbox profile directory should now have content. Delete that content (leave the profile directory itself).
  8. Navigate to the directory of the existing profile to be shared. My target profile was located in /Users/myusername/Library/Application Support/Firefox/Profiles/j3a1ovux.default
  9. Select all of the files and directories in this directory and copy them to the Dropbox profile directory.
  10. Wait until Dropbox finishes synchronizing those changes. It could take a few minutes, so be patient.
  11. Start Firefox. The new profile should be executed.

The good news is that the hard part is now over. All that’s left is to wire up the newly shared profile to other machines.

Use the Shared Profile on Windows

Once a profile has been created and shared (by creating it a Dropbox), other systems can tap into it pretty easily. All it takes is a simple edit to Firefox’s profiles.ini file, the profiles configuration file. The first computer I wired up was my Windows virtual machine.

On Windows, the profiles.ini file is located in APPDATA\Mozilla\Firefox. On my machine, that expands to C:\Documents and Settings\myusername\Application Data\Mozilla\Firefox.

  1. Close any open Firefox windows
  2. Make hidden files and folders visible if they’re not already
    1. Open Windows Explorer
    2. Select Tools > Folder Options
    3. Select the View tab
    4. In the Hidden files and folders group, click Show hidden files and folders
  3. Open profiles.ini in a text editor
  4. Add the following lines:
[Profile1]
Name=dropbox
IsRelative=0
Path=C:\Documents and Settings\myusername\My Documents\My Dropbox\Application Support\firefox\profiles\wg3x0vhj.dropbox
Default=1

A few changes will need to be made, of course. First, if there is already more than one profile, the numeric value in Profile1 will have to be changed to the next available integer. Second, the Path value will probably need to change.

That’s it. Windows is all wired up. Restart Firefox.

Use the Shared Profile on Linux

Rinse, repeat. As with Windows, all that needs to be done is a little wiring. On Linux, the profiles.ini file is located in /home/myusername/.mozilla/firefox. Just add the lines below and make the appropriate changes as outlined in the Windows instructions above.

[Profile1]
Name=dropbox
IsRelative=0
Path=/home/myusername/Dropbox/Application Support/firefox/profiles/wg3x0vhj.dropbox
Default=1

Caveats

One thing that I noticed right away is that syncing profiles keeps Dropbox pretty busy. That activity makes Dropbox very, very chatty if allowed to speak. Almost immediately, I turned off Dropbox’s Growl support on the Mac and will soon be doing the same for those annoying status tray balloon notifications on Windows. So far, Linux has been pretty quiet.

On the whole, everything seems to be working exactly as I’d expect with the added benefit (maybe) of retaining sessions across multiple systems. I haven’t yet decided whether I like that unexpected twist.

Interestingly (or not), with respect to Dropbox’s chattiness, the only platform on which I can’t disable notifications through a Dropbox preference is the on the one platform where notifications are the most intrusive and least simple to kill. That’s Windows, of course. Argh.

Later that same night…I installed the latest version of the Dropbox application for Windows and the preference is there. No more balloon notifications.

Web Standards Losing Their Appeal

Okay, so maybe the title was a little dramatic, but it’s not entirely inaccurate. I’ve had a draft of this post sitting in my queue for a long time now, but, while catching up on some feed reading, I ran into Molly Holzschlag’s similarly themed post on A List Apart and it prompted me to finish my own.

I’m a believer in standards. In my own code, within my team, in the greater office environment and on the web as a whole. I like being able to open another developer’s code and not feel like I’m lost for the first few minutes or hours. Standards facilitate that. So when the first real standards began gaining traction, I was all over it. Over the last year, though, my enthusiasm for what’s out there has faded.

I’m not talking about my enthusiasm for standards in general. I’m still a fan, in theory. I’m talking about my enthusiasm for the current markup standards. I’m not as close the inner-workings as Molly is. In fact, I’m not close to them at all. I’m a complete outside. From where I sit:

  • Movement is so slow that it feels like it could be measured on a geologic timeline.
  • The message is too fragmented.
  • Probably owing to the first two, adoption is stagnating and interest in adoption is waning.

I read not too long ago that one of the web standards wasn’t expected to become a fully-realized, official spec until something like 2021. Don’t quote me on that because I can’t find the original article, but even if it was 2012…seriously? By that time we’ll all have flying cars, a tinfoil wardrobe and capsule meals. In the context of technology, that’s about 47 and a half lifetimes. A standard that takes that long to realize will be standardizing something no one’s used in 10 years. Talk about being marginalized.

More and more, it feels like picking a standard is a little like playing roulette. Red or black? Odd or even? XHTML or HTML5? Sure, at the end of the day the key is to pick one, but if everyone’s picking a different standard or even a different variation of the same standard is it really a standard. Technically, maybe. Practically, I’m not so sure.

Browser adoption and adherence seems lackluster at best. No matter what standard I say I’m using, what standard I apply, if any, or how consistently I apply that standard, most browsers seem to render my code pretty well. If it doesn’t matter to the end result then the degree to which it matters to the process is minimized.

Right now, at the moment of this writing, I guess I’d still consider myself pro-standards, but not anally so. I use XHTML Strict, having chosen it because of its structured XML backbone, but these days I find that I have no burning desire to escape the use of an ampersand in my links just to see that lovely green bar appear on the W3C’s validation results. I’m going to use and stick with my chosen standard, but primarily (if not exclusively) for the purpose of keeping my code clean and structured. I don’t suspect that I’ll spend much time sweating the details until the details have more practical meaning.

← Earlier Posts Page 1 of 5