Ditto — Clipboard Manager with Type Ahead Find

The OS clipboard is pretty handy — except that it can only hold one item at a time. For a few years, I’ve been using a clipboard manager which fixed that and kept track of multiple clipboard items as I added them. (Essentially, it keeps an internal list of items which have been in the clipboard, updating the list each time something is copied to the clipboard.)

However, since upgrading to Windows 2000 (yeah, I’ve been using it that long), this utility acquired some consistency problems — sometimes it’d just stop working. I’m not mentioning the app’s name here since I’m not even sure if it’s the component at fault.

Anyhow, I recently sought a replacement clipboard manager. And, my first stop was at SourceForge since there’s a wealth of good open source goodies there. I found a couple good utilities there and finally settled on Ditto. It’s free, natch, and it works great.

If you’re new to the idea, here’s how a clipboard manager works in general:

  • Say you have a text document with the three biographies, one for “Alice”, one for “Bob” and one for “Carol”.

  • Then, suppose you were to copy Alice’s biography to the clipboard (to paste into a side document). So far, the built-in OS clipboard can handle this much…

  • After that, you copy Bob’s biography to the clipboard and paste that elsewhere…

  • So, Bob’s bio is now in your clipboard… But, what if you need quick access to Alice’s bio again? If you were using the regular clipboard, you'd be stuck.

  • However, with a clipboard manger, you can hit its hotkey and get a list of your past clipboard entries, choose the one you want, and that item is ready for pasting again.

All this may sound a bit esoteric if we’re just talking about biographies, but imagine this scenario with snippets of code or segments of a proposal which you’re editing. It can be a real time saver.

And the best part about Ditto — its killer feature which set it apart from similar apps — is that it supports type-ahead find. Also called “find as you type”, this feature was first seen in editors such as Emacs and became more widely known when it was built into Firefox. What this means is that finding stuff kicks in automatically. There’s no Ctrl-F or Edit -> Find; rather, you just start typing stuff and the program starts narrowing down the list as you’re typing.

For example, suppose that you had these entries in your clipboard:

  • Mozilla — An open source Web browser and toolkit from the Mozilla Foundation
  • Monkey — Any of various long-tailed, medium-sized members of the order Primates
  • Modern — Of or relating to recent times or the present

If you wanted to recall the entry on Mozilla, you’d invoke Ditto with its hotkey (configurable by you) and then type M… O… Z… and, at this point, Ditto would have automatically highlighted the entry on Mozilla since none of the other entries would have matched that third letter (the “Z”).

Another cool feature in Ditto is that you can, either manually or automatically, share clipboard items with another computer that’s is running Ditto. One use would be that you could have a unified clipboard among two computers that you used. Or, and this idea is more intriguing to me, you could sparingly use it to place stuff in a coworkers clipboard. Of course, the recipient would have to be expecting it at the time (otherwise he/she might be confused to find that entry in his/her clipboard).

Anyhow, if you want to try Ditto, there’re two bits to download. First there’s the main installer for Ditto and then there's a DAO installer (I can’t say that I’m completely sure about what DAO does but its acronym stands for “Data Access Object” and I would conjecture that it’s some type of database toolkit). They can be installed in either order, for what it’s worth.

Ditto’s hotkey is configurable (Options -> Keyboard Shortcuts) and I’ve set mine to Ctrl-Alt-Y (which was the hotkey for the old clipboard manager that my fingers were already used to typing). And, as for other configuration options, I’d also recommend poking around in the Options -> Supported Types area which, as I understand it, defines what types of clipboard data Ditto keeps track of (text, images, and so on). There, I’ve added “CF_BITMAP” to the list (using the “Add” button there and selecting) which should enable Ditto to keep track of images in the clipboard as well.

PS I’m open to suggestions if anyone can recommend a clipboard manager for OS X (which runs on my other box). Unfortunately, a climate of shareware licensing engulfs that platform and I'm not holding my breath on finding a free equivalent for that OS.

Update 2005-06-18: Apparently, Quicksilver (for OSX) can be used for clipboard management. I may have to give that a try.

Process Throttling for Windows

While I was looking over Beta News the other day, I came across a handy freeware utility called Process Tamer. It implements an idea which I've had for a few years but didn't have the programming skills to implement ;). Essentially, it runs in the tray and keeps watch on the currently running process (your web browser, your word processor, and so on) and if any of them starts becoming greedy and eating up all your CPU cycles, Process Tamer puts the hammer down and lowers that app’s priority until it gets back under control.

“There are many times when a process will hog your cpu, such as when converting audio/video files, or working with compressed archives. Because these processes completely consume the cpu, your system becomes sluggish to respond and using the computer for other tasks becomes impossible while these processes are running.” “Process Tamer solves this problem by identifying such these degenerate conditions and temporarily reducing the priority of the offending processes in order to allow your system to respond to other requests. Stop being a victim to an overloaded cpu — let Process Tamer keep your system responsive no matter what you're doing. […] ”

If all this talk of “processes” and “scheduling” is Greek to you, I’ll try to go over the general idea. As you’re likely aware, modern operating systems can multi-task which allows them to run multiple programs at the same time (such as viewing a web page while your e-mail client runs in the background). But, at the micro-level, your CPU can only pay attention to one application (“process”) at a time. So, it cycles through each application, doing a few calculations for one of them, switching to the next one, doing a few more calculations, and so on.

And, each process can also have a priority assigned to it which means that higher priority processes are given a preference if there’s a mad grab for CPU cycles. One example of priorities is your mouse cursor which, if I recall correctly, has nearly infinite priority — that is, even under heavy load, your mouse cursor is always supposed to remain responsive. So, what happens if two applications have the same priority but one of them becomes greedy? Well, the meek app just loses out.

And that’s where Process Tamer comes in. Say you're ripping some CDs and the ripping application is hogging the CPU, making your e-mail client sluggish; well, Process Tamer notices that and temporarily lowers the ripper’s priority, leveling the playing field for the other applications.