Archive for August, 2007

Boost productivity with Isolator

A common problem in today’s world is distraction - too many applications open, too many emails showing up, etc, etc. Large screens give a tremendous boost to productivity but this often turns into having more applications open distracting you. And let’s not mention email, RSS feeds and IMs constantly chiming away.

Thanks to the wonderful design of Mac OSX there are several utilities available to help lessen the distractions by hiding all applications other than the one you are working on at the time. Some of them, like Think and Backdrop have one fatal flaw - they require you to use their custom application switcher to jump between your apps, rather than integrating with the operating system’s built in one. Thankfully someone worked out a way to do it right and Isolator was born.

Isolator is a very simple application. It doesn’t launch as another app in your dock, instead it sits in your (albeit overcrowded) menu bar, and provides only a few sparse settings - the background color to use, whether to make the backdrop opaque (so you can see the desktop underneath it), whether it should start when you log in or activate automatically, and what key shortcut should activate/deactivate it. Once activated, all but your current application are hidden and your chosen background color fills up behind the window(s).

Having only used it for a short while I can’t proclaim how it has saved me x hours per week or saved the lives of thirty-three cats, but even after my limited use it looks to be an app well worth using. And, given its cost there’s no excuse for not trying it (presuming you use a Mac).

Comments

Access queries as structs in ColdFusion

A small tip, but a very, very useful one nonetheless. Did you know that in ColdFusion you don’t have to loop through a query to access specific elements of the query? I’ve been developing in CFML for several years and was unaware of this. It’s great! Instead of having to go through the hassle of looping an array just to find one field, if you know the field and row number you can just do this:

<cfset variable = query[column_name][row_number] />

e.g.:

<cfset variables.product_name = variables.q_products[name][5] />

Thanks to Ben Nadel for that.

Sometimes you just feel like a complete neophyte. I wonder what other useful tricks lie beneath the surface?

Comments

Vista sucks, let me count the ways

Microsoft’s Windows Vista has become the most hated release of Windows yet - missing features (hardware accelerated GUI, database-based filing system, smart search engine, etc), irritating features (the security requesters), confusing number of editions (seven available in the USA, two more in Europe), confusing graphics system (DirectX 10.0, incompatible with the upcoming DX10.1, slower than DX9), and more.

The latest thorn in its side has been the controversy over network throttling when media is being played. The problem is that when Windows is playing audio, even if the player is paused, it limits the network speed to half what it should be. Just wonderful. You buy a multi-gigahertz machine with multiple gigs of ram, several hundred gigs of disk space, but yet playing music makes your network speed drop to half what it should be.

Needless to say this hasn’t sat well with, well, anyone outside of Microsoft. While there haven’t been any public floggings yet (aw!), Microsoft’s uber guru Mark Russinovich replied saying (paraphrase) “well, the network uses a lot of CPU, so to make sure the audio plays we naturally had to throttle the network”. 41% CPU usage for copying a file across the network!! ZOMGZ!!!1!

So, to set the record straight, Linux kernel hacker Robert Love responded with a wonderful reply that cut Mr Russinovich’s reply to shreds, simply saying that Vista is poorly designed and that Linux doesn’t suffer from the same stupid bugs. Thank you, Mr Love.

Linux (and every other well designed OS): (best French accent) douze points

Windows Vista: (best French accent) nil point

Comments

Xenu’s Link Sleuth - still the best link checker

A very important tool in a web developer’s toolkit is a good link checker. There are tonnes of different ones on the market, some that promise to make your whites whiter and floss your cat, but in the end you just want a simple program that will check your site for broken links, maybe broken code too if you’re so interested. A few of the features I’m always looking for include:

  • Option to include or exclude external links, e.g. if a page on mysite.com links to yoursite.com I may not care if that site itself is working.
  • The option to override what is considered an external link, which is useful if you put your media files on a separate hostname.
  • An option on how many checks it runs simultaneously. Some can handle hundreds of outgoing simultaneous requests (if your machine and net connection can cope) but I tend to turn this down and leave it running in the background.

After years of trying different ones I continually return to Xenu’s Link Sleuth, a simple yet powerful app that does what is needed, without a load of unwanted fancy options. Xenu’s doesn’t confuse you with a list of unimportant non-broken URLs, and it doesn’t take a ten-page wizard interface to set up each project, instead you can simply paste in the starting point and let it go to town, selecting extra options if you specifically need to. Why does it have to be more complicated than that?

Though it is a Windows app and I use a Mac, it works fine in Parallels for Mac, and probably would work in Crossover Office too; failing that, there’s always holding on to a PC for these occasional tasks ;-)

A great utility that is well worth using.

Comments

Redmine has a fully-working MantisBT importer

A recent developed in Redmine-land is an importer for MantisBT, a leading PHP-based project management tool. While the first release of the importer I tried had some problems and ultimately only released a tiny amount of the tasks, the current release (code revision 669) worked just great and converted everything. Excellent work, Jean-Philippe!

Comments

The world wisens up about OOXML

The world is finally realizing that Microsoft’s OOXML “format” is the old dog’s usual tricks - incomplete, relies heavily on undocumented tricks to work, which puts full control back in their hands. This week both Brazil and India have decided to vote “no” at the upcoming ISO meeting where OOXML’s fate will be decided. Good to see that, despite Microsoft’s attempts, some countries can’t be bought off.

Comments

Radiant is a great CMS

I just wanted to pass on the meme on a great RoR-based CMS - Radiant. It is OSS, very stable, fairly actively developed and has a really good plugin system.

While searching for a RoR-based CMS I looked at it a few others:
Mephisto

  • Development has dried up due to the developers not having the time to continue it.
  • No support for snippets (see below).

RailFrog

  • Development seems to have dried up, the last messages on the blog were from 2006 and talked about a complete rewrite, which is usually a bad sign IMHO.

Some of the benefits that got me hooked on Radiant include:

  • snippets (keep your content DRY),
  • separate layouts vs content,
  • layouts support custom mimetypes (ensure your RSS feeds get the right content type),
  • the ability to structure the pages in a heirarchy,
  • a set of custom tags for manipulating the content,
  • built-in support for textile.
  • Some existing plugins that make life evey easier, specifically Google Analytics and Virtual Domains (multiple sites from one install!).

The few limitations I see are:

  • the plugin system needs to be improved to make extending the pages list easier,
  • the blog-like functionality needs improving,
  • some of the documentation needs work.

I’ve already used it on one site and am working to move all of our more static sites over to it - the less static ones will have to wait until I write a few plugins.

Comments

Fusebox 5.5-alpha documentation released

If, as a web developer, you aren’t structuring your code in a clean fashion then you owe it to yourself to use a pre-existing code framework rather than reinventing the wheel.

In the ColdFusion world one of the oldest and still most popular is Fusebox, a framework that has gone through many major changes over the years and unfortunately has gotten a bit more complicated with each release. That complexity is going by the wayside with the upcoming v5.5 release as a number of improvements will greatly simplify developing applications using it.

Key benefits to all users are the use of convention over configuration to leave you with almost configuration-free applications, and the ability to use ColdFusion Components (CFCs) as circuits. These two features alone would make it a very worthwhile release, but the lead develeper, Sean Corfield, has many more lined up.

Comments