Jon Aquino's Mental Garden

Engineering beautiful software jon aquino labs | personal blog

Sunday, July 30, 2006

Nifty Windows: An alternative way to move and resize windows.

Found another neat piece of software: Nifty Windows. This makes it a lot easier to work with the open windows on your desktop. It divides the window into a 3x3 grid. You can then move the window by right-dragging on the center cell, and other operations:

* Move window: Right-drag on center cell. Easier than grabbing the titlebar.
* Resize window: Right-drag on any of the surrounding cells
* Resize window: Alt+scroll wheel
* Resize window about its central point: Win+Alt+scroll wheel (looks neat)
* Change transparency: Win+scroll wheel
* Close window: Right+middle click

Unfortunately it sets middle-click to do a double-click instead. I don't find myself using middle-click so this isn't an issue for me but it may be for some. There may be a way to change this behavior by editing the AutoHotKey script on which Nifty Windows is based.

Sunday, July 23, 2006

Deep, explorable usefulware

There is a class of software that is so rich in potentially useful features that even after years of use there is still more to be discovered. Perhaps it has features that you do not need now but may come to need in the future. And these aren't useless features that bloat the product--rather the software is so mature and has been worked on by so many for so long that there is so much in it to explore.

I love playing with these feature-rich tools and I'd be interested to hear of others. Here's an initial list of "deep, explorable usefulware":

  • jEdit. Lots in here, but I think I've seen most of it after a year of use. To do: write a plugin.

  • XEmacs. I've used maybe 20% of its power (the fundamental 20%). Was my main editor before jEdit.

  • AutoHotKey. Macro language/recorder for scripting most aspects of Windows, including key remapping. People have done some amazing things with it.

  • Cygwin. Many useful Unix tools ported to Windows. Includes lynx, the text tools, etc.

  • Gimp and Inkscape. Would like to explore these tools more; I simply don't find myself needing to use them often. I hear Gimp has scripting capability.

I'd like to check out more of that class of software known as Great Software--the kind of software that continues to surprise you with its usefulness and power, and is so deep that a browse through the documentation will always teach you a new trick or two. Trouble is, I *think* I've seen it all (at least for Windows). But that can't be true. What else is out there?

Thursday, July 20, 2006

K-Meleon browser

Trying out the K-Meleon browser as version 1.0 has come out. It's like a stripped down version of Firefox, and there are some things that I get annoyed about (like how to set the shortcut key to go to the address bar--can't figure it out), but the main thing is that it seems faster (maybe 20%?).

Friday, July 07, 2006

Aspect-Oriented Windowing (AOW)

I'd like to coin a new term for what AutoHotKey does: Aspect Oriented Windowing (AOW). Basically AutoHotKey lets you hook into various Windows "events" and modify them on the fly--all with a high-level scripting language (or you can use the macro recorder to record your mouse and keyboard actions, thus avoiding much of the coding).

It's a bit like Aspect-Oriented Programming in that you can take an event (a keypress or the opening of a window with a certain title) and do something after or instead of the event (mapping to a different key, etc.)

It's pretty neat (and fun) actually. Linux users have always enjoyed being able to modify the OS to fit their needs--now Windows users can too, and on the GUI level which is often easier.

SlickRun--A Yubnub for Windows programs and private URLs

Just want to put in a good word for SlickRun, which is a kind of "yubnub for windows programs". Tons of people love this little floating bar--you type in a command of a few letters to launch a program or URL. Someone has created instructions for launching yubnub commands from there too.

I like how it does autocomplete for commands--it even autocompletes when you start entering a directory path (C:\Progra...).

But the best part is the funky little sounds it makes when it recognizes (or doesn't recognize) a command you typed in :-)

Wednesday, July 05, 2006

ClipX -- very good (free) clipboard extender for Windows

I've been trialling ClipMate (clipboard extender) but I've just found a freeware alternative that has all that I need. It's called ClipX. It's unfortunately limited to 1000 clips (wish I could adjust this to be unlimited). But the good thing about it is that it has incremental search. So I just press Ctrl+Alt+V and start typing a few letters from the clipboard entry I'm looking for.

Other clipboard extenders have been found lacking. ClipMate itself seems to only incrementally search the clip titles rather than the whole clip. CLCL is lacking search functionality if I'm not mistaken. Ditto is fantastic but slows to a crawl after a while (perhaps unlimited clips isn't such a great idea). Yankee Clipper has a 200 clip limit and no incremental search. etc. etc.

So I'm going with ClipX for now.

Tuesday, July 04, 2006

Useful jEdit plugin: XML (HTML) Indenter. And switching back to jEdit from UltraEdit.

Found a useful jEdit plugin called XML Indenter. It does one thing simply and well: it does a bit of indenting on messy HTML. Not as intrusive as HTML Tidy (which is certainly useful in many cases).

Well, I may be going back to jEdit. UltraEdit, while fast, doesn't seem to have a way to easily find matching HTML tags. It also doesn't have a good Highlight Occurrences function. And it doesn't have a set of preset color schemes to choose from.

The One True Incremental Search for Window Titles: iswitchw

Major breakthrough, People! Forget my Find Window script--someone has written a proper incremental search for window titles. Check out iswitchw--it's an AutoHotKey script that gives you a list of all open windows when you press Caps Lock (customizable). Then as you type, the list narrows down to only those windows containing what you typed.

I've got a bazillion windows open right now, and I can jump to the ones with "video" in the title by typing: [CapsLock] vid.


Monday, July 03, 2006

Kinesis keyboard--not working out for me

Well, the $400 Kinesis keyboard that I purchased 6 months ago isn't working out for me. While it did solve the pain I was having in my pinky (from all that Ctrl pressing), I'm getting new aches and pains in my forearms and thumbs. So I'm going to switch to the keyboard on my IBM laptop, which has the standard layout but is really well designed. The keys require little force to press (perhaps this was a factor?), and it offers you a choice of several mouse inputs--I'm using four: touchpad, trackpoint, left mouse, and right mouse.

The Kinesis isn't a complete waste however--every key is assignable to a macro, so I'm assigning a useful function to each of the keys. The ones I have so far are: move window to top monitor, move window to bottom monitor, open link in tab, open link in window, make window 640x480, make window 800x600, make window 1024x768. AutoHotKey has been supremely useful for these macros.

UltraEdit--surprisingly good text editor

I'm trialling UltraEdit (Windows text editor) and I may end up actually purchasing this puppy ($30). There's a lot I don't like about it (find options are not sticky, built-in SFTP is clunky) but I'm finding there's a lot I do like about it as well (infinite backups to a backup directory, faster than jEdit, can integrate with JavascriptLint).

I am liking this thing more and more! It's quirky, it ain't perfect (I've heard rumors that TextMate is the Perfect Editor, but I don't have a Mac), but it's got some nifty features.

SnagIt Profile for Flickr

A great screen capture program, and a great photo-sharing service, together: SnagIt Profile for Flickr.

Sunday, July 02, 2006

Dual-Monitor Theory and Practice

I'd like to record here (and in the comments) some tips for organizing your desktop for use with dual monitors. The productivity gains of having a second monitor are well known--what isn't so well known are best practices for using two monitors (window layout, etc.)

A couple of suggestions that come to mind are (and these are purely experimental--only time will bear out their effectiveness):

* Placing the second monitor above the first, rather than to the side. I'm trying this with my laptop monitor and my external monitor, and it seems to be working well as I don't need to turn my head to see either of the screens.

* Moving the taskbar to the left of the screen rather than keeping it at the bottom. This allows us to see the full titles of all our open windows (and having dual screens, we usually have a lot more windows open). I prefer to open separate Firefox windows and text-editor windows, rather than use tabs (so I can see documents side-by-side), so having a list of the titles of open windows will probably prove extremely handy.

* Install TopDesk. This is an Expose clone for Windows--it's a $10 program that shows you thumbnails of all open windows. I'm not sure how valuable this will be in the long run (it's certainly pleasing eye-candy). Moreover it won't let you search the titles of open windows, but that's easily solved with my Find Window macro.

What are other best practices for computing in a multimonitor world?

"Find Window" -- command-line version of Expose, for Windows

I've written an AutoHotKey script called fw.ahk (fw for "Find Window") that basically lets you type part of a window's title and it will bring it to the foreground i.e. it will activate it.

For example, suppose I have a bunch of Firefox windows open. I know that one of them has "parameters" in the title, so I activate it by typing: Win-R fw parameters

Or if Outlook is open, I can activate it using: Win-R fw Out

It's kind of like a command-line version of Expose :-) Note that it is unfortunately case-sensitive.

AutoHotKey is a free Windows scripting/macro language/system.


SetTitleMatchMode, 2
Search = %1% %2% %3% %4% %5%
WinGetTitle, Title, %Search%
WinActivate, %Title%


fw.ahk %1 %2 %3 %4 %5

Software to Maybe Buy

I'm building up a list of software I'm considering purchasing in the future--programs that I'm currently trialling, like UltraEdit, ClipMate, and AraxisMerge, and some that I haven't tried yet like ActiveWords and Dragon Naturally Speaking.

You can add to the list software you're considering purchasing as well--I'd be interested to see what people would pay for: