Productivity
I like to be productive. There are a number of tools that significantly help me in that.
Firefox tips and plugins
What is the first application you run when you sit down at a computer? It's the browser isn't it. Getting the most out of your browser can have a huge impact on your productivity, so it's worth paying attention.
- Tip#1: parameterized bookmarks.
When you create a bookmark in Firefox,
you can include
%sin the url and set a keyword. Then, when you type in the location box the keyword and some text, the bookmark will be invoked with%ssubstituted with the text you entered.wiki http://en.wikipedia.org/wiki/%s msdn http://www.google.com/search?q=site%3Amsdn.microsoft.com+%s ex http://www.google.com/finance?q=%s alc http://eow.alc.co.jp/%s/UTF-8/ If I want to look up something on WikiPedia, I just type
wiki gpsin the location bar. To see the exchange rate chart of USD against the Japanese Yen, I just typeex usdjpy. And remember that the quickest way to the location bar is withCtrl-L. - Extensions.
- Rikai-Chan or PeraPera-Kun. Let's you translate Japanese words by simply hovering the mouse over them. This plugin alone makes Firefox essential to me.
- Firebug. Incredibly useful for web developers. Another plugin that makes Firefox essential to me.
- FastDial. This lets you replace the blank space in new windows and tabs with 9 configurable visual bookmarks. It may not sound much, but in practice it is very useful.
- Ghostery. It tells you who is tracking you as you browse websites, by showing the active trackers in the top right corner of the window.
- ChatZilla. An excellent IRC client in its own Firefox window.
- AdBlock Plus. This is so trivial I wonder why it is not included in Firefox by default.
- NoScript. JavaScript is disabled by default, you have to explicitly allow it per website that uses it. I myself don't use this always because it is too impractical to me.
- Vimperator. Makes browsing possible without the mouse, only with the keyboard, by vim-like controls. I am not using it yet, but my favourite hacker columnist swears by it so I will get into it soon.
- Tip#2: open URL by pasting it in the window with the middle mouse button (only in Linux).
It is not enabled by default,
you need to set
middlemouse.contentLoadURLtotrueinabout:config.
Screen
If you use the Linux/UNIX shells a lot, this is an indispensable tool, and my personal favourite. It let's you have multiple virtual terminals in a single shell. Better yet, you can detach from it and reattach later to continue your previously started work. In fact if your connection to the remote machine crashes, or even if you accidentally closed your shell window, you can still reattach to the session later. Some basic tips:
- Start screen with
screen -R sessionname, where sessionname is a keyword suggestive of the work you're going to do. This way you can always reattach to the session with this name, with the same command. To detach from the session, useC-a d. To get the list of key bindings, useC-a ?within a screen session. - Start screen in the directory where you will be doing most of the work. This is convenient because that directory will be the starting directory of new windows that you create within the screen session.
Once you start using screen you will wish you've known it from the start.
Bazaar
Bazaar is a relatively new distributed VCS (Version Control System). My favourite features:
- The
checkoutorbranchof a repository becomes a repository on its own. (You cancheckoutorbranchfrom it. This is of course a feature of all distributed VCS.) - Repository data is stored in a single
.bzrdirectory in the root of the repository, unlike Subversion or CVS where all subdirectories have an annoying.svnor.cvsdirectory. - The somewhat unusual conventions adopted by the client tool make it very convenient in practice.
For example
bzr addwithout arguments will add all unknown files to the repository.bzr revertwithout arguments will revert all changes. - At the time of this writing Bazaar has the most robust file/directory renaming among all VCS tools,
which makes merge operations consistent and straightforward always.
(On the downside, its biggest disadvantage as compared to
gitis speed.) - Publishing your open-source project is surprisingly easy.
- Create an account on Launchpad.
- Login to your Launchpad account and upload your ssh public key. (Clever!)
- Run
bzr lp-login username. - Run
bzr push lp:~username/path. - A web interface at
https://launchpad.net/~username/pathwill be automatically created with bug tracking and other project management tools.
- I often subvert Bazaar as a diff tool.
Suppose there is a directory where you want to detect changes in the future.
- Convert the directory into a repository with
bzr init; bzr add; bzr ci -m init - Later, to see if anything changed, simply run
bzr diff
For example I might do this when debugging a Tomcat-like project when I don't know where error logs are being written or JSP files getting generated. When I'm finished I can clean up the Bazaar data easily by simply removing the
.bzrdirectory. - Convert the directory into a repository with
FreeMind
FreeMind is a mind-mapping software written in Java. It can create mind maps beautifully. With a rich set of key bindings it is easy and fast to edit the map using only the keyboard. It has PDF export function. Some wikis support FreeMind maps directly.
jQuery
Quote from the website: jQuery is a new kind of JavaScript Library. jQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax interactions for rapid web development. jQuery is designed to change the way that you write JavaScript.
jQuery is lightweight, elegant, intuitive and awesome.
WordPress
WordPress is one of the most popular blogging platforms and unless you've been living under a rock, this should be no news. What fewer people know is that WordPress can do for you more than just a blog.
In WordPress posts and pages are distinguished and behave differently. Posts are blog entries, they have a date, title, content, categories and tags. Pages, on the other hand, are arranged in a tree structure. With these features combined, WordPress is suitable as a project homepage with static information, news and event announcements, and user comments. The technology has proven track record, a lot of interesting plugins, and many great themes that you can easily tweak according to your needs.
I use WordPress for creating project homepages rapidly. For example http://www.openmapmaker.com/. There are many good free WordPress themes to choose from, and you can always replace your theme at any time. More importantly, with WordPress you automatically get a web-mased management interface that you can access from anywhere.
Last updated: Wed Feb 24 06:16:36 2010