Wednesday, August 30, 2006

FAR Manager

I really like WinRAR. And the same people make another program I like very much as well: FAR Manager. It is a file manager, but it is so much more than that...

First of all, it takes all the guesswork out of drag and dropping files, of finding the right files in windows explorer, of copying or moving files quickly... and then, it supercharges them beyond your wildest imagination. For example, copying files between two locations becomes:

  • Choose the destination folder in one panel.
  • Choose the source folder in the other panel.
  • Select the files you want to copy, either by wildcard matching or by cherry picking with the Insert key.
  • Press F5, then Enter.
Done. There is no dealing with holding shift, ctrl, or accidentally making a copy of a zillion files in the same folder. None of that. Everything is perfectly clear, and in an equally spaced font that makes it easy to read.

But the killer part is that people write plugins for this thing. So for example someone wrote an extended file copier for FAR. It uses read ahead and write back buffers, it can read and write in parallel, and it even preallocates space on the hard drive to avoid fragmentation. Result? Copying the VW goodies folder from one hard drive to another used to take me 25 seconds to do. With this plugin, 10 seconds. Apply this kind of savings every time you copy or move files, and it adds up to real money real fast.

But it doesn't end there. Now imagine that all the things you do with files are supercharged in the same way. Moving, renaming, deleting, editing, searching through files, browsing FTP servers, diffing folders, mass renaming files according to some rule... everything supercharged to the max, and much more efficient than what Windows and a plethora of annex utilities will give you, all in a single program.

Oh, by the way, and should the standard package not be enough for your needs, there are over 700 plugins available for FAR to choose from.

And to top it off, the keyboard centric interface is way faster than Windows' idea of how you should deal with files. Once you get used to it, the idea of messing with file icons using a mouse will become a synonym for inefficiency.

Stop wasting time and energy with one of the most basic and pervasive activities you perform every day. Get rid of those performance taxes that are so obvious they are invisible.

But there is more. It is so easy to see the inside of files with FAR, you just press F3 on a file. Once you do that with enough files, you will know how files look. To me, this has tremendous advantages.

For example, you can start recognizing things like compressed files, down to the program that was used to make them. This is regardless of whether the file has been modified by simple things like renaming, or more complicated things like prefixing it with other stuff. Windows gives you no ability to do this.

What's more, once you know how to recognize how different files look, you become able to ask interesting questions. For example, I can't find the help switch for this program, can I see the help text inside it? Why would a Word document have compressed stuff that does not have common JPEG / GIF / PNG headers? Why would that executable file look just like the others except that compressed block at the end, just where the overlays would be? What compression scheme was used in this installer program, if any? How, exactly, is this archive file broken as reported by the compression utility (this can be very important for recovery efforts)? If I need to fix a damaged file that programs won't help me with, can I attempt a manual recovery myself?

I even have actual examples of this that relate directly to Smalltalk. For example, does this VM have debugging information in it? Is it already compressed with an executable cruncher, or could it be worthwhile to use UPX on it? Can I find a snippet of code in the changes file quickly?

But my favorite Smalltalk example is this: why does the image contain byte encoded strings that you cannot find by sending allInstances to String and all its subclasses?

Seriously. Become truly productive now.

No comments: