Last updated: Wed Aug 6 16:29:26 2008

Productivity Tips

screen

If you work in the shell a lot, this is an indispensable tool, and undoubtedly my personal favourite. It let's you have multiple virtual terminals in a single shell. Better yet, you can detach from a screen session and reattach to it later. This is how I use it:
  1. Login to remote server with ssh.
  2. cd to some directory where you will be doing some work. During a screen session you can create and delete virtual terminals as needed. When you create a new terminal the working directory will be directory where you started screen, that's why it's good to cd to it before starting screen.
  3. Start screen with screen -R some_name. Do some work, then detach from the screen session with C-a d. Logout from the server.
Next time you login to this server you can simply run screen -R some_name and voila, you're back to the same session.

Bazaar

Bazaar is a relatively new VCS (Version Control System). I was a happy and satisfied user of Subversion until I found Bazaar. After that, there was no turning back. My favourite features of Bazaar:
  • The check-out copy stores all repository information in a single directory .bzr. (Many other VCSs create such meta directories per subdirectory.)
  • Check-out copies carry the entire repository history. (Therefore they are repositories in their own right.) In practice this results in astonishingly rich variety of usage patterns.
  • The client interface is much more intelligent than any other VCS I've used. You would notice the difference in everyday operations like renaming, editing renamed files, adding files, etc.
  • Publishing your open-source project is shockingly easy. The command bzr push lp:~username/path will effectively create a publicly accessible Bazaar repository at https://code.launchpad.net/~username/path. (You will need a https://launchpad.net/ account for that. And before the bzr push command perform a bzr lp-login username.) Write access to Launchpad is accomplished via ssh keys. Very clever.

FreeMind

FreeMind is a mind-mapping software written in Java. It can create mind maps quite beautifully, it has a rich set of shortcut keys which make the map editing far easier than I could imagine. Also contrary to my expectations, the GUI is not slow at all. Can export as PDF.