The following software utilities and tools will help you work faster and make you more efficient at using your computer.
EnsoEnso is a free application launcher, but it is also more than just that. Enso is similar to Ubiquity, however, Enso works at the Windows operating system level, not just inside your browser. It is available to you in any application you’re using. On the other hand, Ubiquity is open-source, Enso is not. Enso is also similar to Quicksilver on Mac.
Walt Mossberg of the Wall Street Journal explains:
Enso is dead simple to use. You just hold down the Caps Lock key and type an Enso command, which is displayed in a translucent overlay. Once the command is typed, you simply release the Caps Lock key to activate it, and the overlay disappears. If you type fast, it all happens in a flash. For instance, to launch the Firefox Web browser, you just hold down the Caps Lock key and type "open firefox." To look up the meaning of the word "proclivity," you just hold down the Caps Lock key and type "define proclivity."
Other launchers: Launchy and Colibri. Google Desktop can also be used as an application launcher.
CLCLCLCL is a freeware clipboard caching utility. It allows you to stack things (text, images…) on your clipboard in one batch then bounce once to the destination and paste them all in the appropriate places, one at a time.

Other clipboard enhancers: Jumpcut and iClip for Mac.
AutoHotkeyAutoHotkey is a free, open-source macro tool that allows you to automate almost anything by sending keystrokes and mouse clicks. You can write a mouse or keyboard macro by hand or use the macro recorder. Using AutoHotkey, virtually any key, button, or combination can become a hotkey.
Other macro utilities: TextExpander and Typinator for Mac.
Virtual DesktopsMicrosoft PowerToys for Windows XP have many useful (and free) “toys”, but one of the most useful is the “Virtual Desktop Manager”. It allows you to manage up to four virtual desktops, each with a taskbar controller, unique wallpapers, and hotkey support. Virtual desktops provide an excellent way to kill distractions, stay focused and concentrate on the task at hand.
On Linux, both GNOME and KDE have virtual desktops built-in. The Leopard version of Mac OS X added this feature, called Spaces.
Almost all operating systems and applications that run on them have keyboard shortcuts. There is a reason why they are called shortcuts, it’s because once you master them it takes shorter time to perform a task using keyboard shortcuts than using the mouse. The following is a list of common and useful shortcuts:
I have been using the above tools for a while. I can now do things on my computer faster than I’ve ever been able to.
Other than the ones mentioned above, what tools or tips do you use that help you be more productive using your computer?
Filed in Technology, Tips with 4 Comments | Tags: tool, windowsA cursor FOR loop is a PL/SQL loop statement. It is a loop that is associated with a cursor embedded within the loop boundary.
There are two types of cursor FOR loops: SQL Cursor FOR loop and Explicit Cursor FOR Loop.
In SQL Cursor FOR loops, you include the text of a query directly in the FOR loop. For example:
Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> set serverout on
SQL> BEGIN
2 FOR item IN
3 ( SELECT last_name, job_id
4 FROM employees
5 WHERE job_id LIKE '%CLERK%'
6 AND manager_id > 120 )
7 LOOP
8 DBMS_OUTPUT.PUT_LINE
9 ('Name = ' || item.last_name || ', Job = ' || item.job_id);
10 END LOOP;
11 END;
12 /
Name = OConnell, Job = SH_CLERK
Name = Grant, Job = SH_CLERK
Name = Bissot, Job = ST_CLERK
...
PL/SQL procedure successfully completed.
In Explicit Cursor FOR Loops, you declare a cursor that specifies a query, and then reference the cursor in the FOR loop. For example:
SQL> DECLARE
2 CURSOR c1 IS SELECT last_name, job_id FROM employees
3 WHERE job_id LIKE '%CLERK%' AND manager_id > 120;
4 BEGIN
5 FOR item IN c1
6 LOOP
7 DBMS_OUTPUT.PUT_LINE
8 ('Name = ' || item.last_name || ', Job = ' || item.job_id);
9 END LOOP;
10 END;
11 /
Name = OConnell, Job = SH_CLERK
Name = Grant, Job = SH_CLERK
Name = Bissot, Job = ST_CLERK
...
PL/SQL procedure successfully completed.
In both examples, you do not need to declare the record variable item, PL/SQL implicitly creates it for you with fields corresponding to the columns of the result set.
Steven Feuerstein gives us the following recommendations about cursor FOR loops which he learned from one of his mentors in the PL/SQL world, Bryn Llewellyn, Oracle’s PL/SQL product manager:
Never use a cursor FOR loop when you’re writing new code for normal production deployment in a multiuser application.
If you expect to retrieve just one row, use an implicit SELECT INTO query.
If you expect to retrieve multiple rows of data and you know the upper limit (as in, “I will never get more than 100 rows in this query”), use BULK COLLECT into a collection of type varray whose upper limit matches what you know about the query.
If you expect to retrieve multiple rows of data and you do not know the upper limit, use BULK COLLECT with a FETCH statement that relies on a LIMIT clause to ensure that you do not consume too much per-session memory.
If your existing code contains a cursor FOR loop, you should perform a cost-benefit analysis on converting that code, based on these recommendations.
Visit this page to read Steven’s full explanation and examples of each of the above recommendations.
In short, stop using cursor FOR loops and start using BULK COLLECT. It’s that simple.
Filed in Oracle, Tips with 20 Comments | Tags: bulk collect, cursor, loop