Saturday, June 28, 2008

Pimp my shell


When I switched over to Ruby development, I said goodbye to Eclipse and IDEA. I was never one to shy away from a terminal so the transition back to a text editor (I tend to use TextMate and ViM) and iTerm was an easy one.



At ThoughtWorks I worked on one client project at a time, and maybe one or two open source ones. Now at Relevance there are weeks when I work on four client projects and a half dozen open source projects (thanks to open source Fridays). To make things more difficult, I've got a mix of Subversion and Git projects.



To ease the transition back and forth between projects I:



None of these was especially difficult but each of them has improved my shell environment. Thanks to Alan Cooper and Edward Tufte, I am beginning to understand that good usability doesn't necessarily require difficult technical solutions. Indeed, coming up with each idea and a seamless UI for it was harder than implementing it.



The features described above came down to making my shell environment:


  • Tell me about my current context.

  • Adjust based on the context.




I think that part of the reason we use MacOS is because it does some of this for us. It changes the menus based on which app is in focus. CoverFlow gives us a visual indication of where we are in the stack of files we're looking at. Maximizing a Safari.app window only maximizes it as far as it needs to in order to horizontally fit the content.



What else do you think your shell environment should do for you? Why?

Wednesday, June 25, 2008

Opening emailed Office documents

How hard can it be? I upgraded to Office 2008 SP1 on my work laptop (I only use iWork on my home machine) and now I can't seem to open Microsoft Office documents that have been emailed to me. How could they break this? Well, long story, and I'm actually more interested in fixing it. So, following these steps did it for me:

* Download MisFox, then double-click on "MisFox.prefPane" to install
* In the MisFox system preferences pane pick the File Mappings tab
* Scroll down the list till you find "Word Document" and the .doc file extension
* Double click on that line to open the editor
* Set the Creator Code to MSWD and the File Type to W8BN
* Check "Resource Fork is Significant"
* Repeat last steps for Excel, setting the code to XCEL and the type XLS8
* Repeat for Powerpoint, setting the code to PPT3 and the type to SLD8

Thanks to my colleagues at ThoughtWorks for figuring this out.

Wednesday, June 18, 2008

Unexpected utilities

There are many things on the Mac that just work so well that you hardly think about them, never mind looking for a utility that improves them. And then you stumble across a utility and after a short while you wonder how you lived without it before...

One of these areas is unarchiving. You just double-click the archive file in Finder and something runs in the background that opens it. What else would you want? Turns out you want The Unarchiver. Not only does is support more archive formats, including the dreaded StuffIt ones, but it also deals with the already supported ones better.

Another area is software update. Apple's Software Update works well, the big packages from Adobe and Microsoft have decent updaters, and, more surprisingly, most application written by indie developers have good and consistent update functionality. The latter is actually thanks to the excellent Sparkle framework. If you are a developer check it out. That said, what else could you ask for? Download and use AppFresh for a while and you'll know.

Friday, June 6, 2008

Widening Columns

One of the things I find myself doing all the time is making columns wider in Open and Save dialogs. I have a bunch of file names that are really long (the downloadable names of my presentations), and I find myself grabbing the little handle at the bottom of the column a lot to widen the column. Last month's MacWorld to the rescue. You can double-click on the little abraded area at the bottom of the column and it will resize the column to accommodate the longest file name.

Going one step further, you can right-click on the abraded area and get a pop-up menu that lets you choose one of three options: Right Size This Column, Right Size All Columns Individually, and Right Size All Columns Equally, as shown here:


Try as I might, I couldn't get a keyboard shortcut to stick for this (normal keyboard shortcuts don't seem to work in Open and Save dialogs). If anyone can, I'll be grateful. But this is good enough: rather than resizing by hand with the mouse, I can let if figure out the correct size (alas, still with the mouse).

Saturday, May 24, 2008

Scrial Consistency

scrial consistency logoAbout a decade ago, I worked with a colleague (named Terry) who was obsessed with finding the right way to organize his day. He and I had long digressive conversations about how best to manage tasks, calendars, email, etc. During that time, I studied things like the Covey method heavily. One of the enduring things I took from the Covey stuff was the distinction between the urgent and important. Lots of things are both, but there are some things in life that are urgent but not important and others that are important but not urgent. Terry and I discussed this category a lot, because busy people tend to ignore that quadrant the most.

Fast forward to today. I don't use the Covey system any more because it does not match my work habits well. I've struggled for a while putting together an effective way to handle my increasingly complex ToDo lists. I keep finding some applications that handle parts of what I need well, but fall down on other parts. For example, I've been using TaskPaper for a while, which I like because it's very simple, text based, and lightweight. But the thing that TaskPaper doesn't do well is handle the semi-recurring stuff, like haircut or dentist appointments: recurring appointments that fall into the "I need to do this 6 weeks after the last time I completed it" category. For that, I've been using a special purpose tool called Sciral Consistency (commercial, with a "try before you buy" option). It's not really a ToDo list manager so much as way to handle that specialized relationship between semi-recurring tasks and calendars. The Sciral Consistency site says that it handles the following types of conditions:

  • They don't have deadlines or rigid time intervals associated with them.

  • In order to gain and retain their benefits, you must perform them on a regular basis over a long period of time.

  • The ideal amount of time that elapses between completions of a particular task are unique to that task. To gain the maximum benefit you shouldn't do them too frequently or infrequently.

  • They can be carried out by you with minimal or no coordination with other people.

  • They are often “routine” tasks for which you have not firmly established a habit of carrying them out as second nature.

  • They are (in the words of Stephen Covey) “important, but not urgent.”


Sciral Consistency handles these things using a unique calendar view, which looks like this (also from their site):

sciral consistency screen shot


You create tasks with threshold values: after I finish this task, I need to do it again between 10 and 14 days from the finish date. You can have a bunch of these calendars. Like the last bullet point says, it is great for handling recurring "important but not urgent" tasks. I've been using Sciral Consistency for a while, and it serves me well.


I'm still on the lookout for a comprehensive solution. Recently, I've become mostly addicted to OmniFocus, a great GTD inspired task manager, which somewhat handles this special case. I haven't succumbed to the GTD religion, but like the Covey stuff before, I've assimilatedwhat I consider the good parts and made them part of my routine. I'll say more about OmniFocus once it has sunk into my work habit.

Monday, May 5, 2008

Unsafe Sleep

One thing I really liked about my PowerBook Pismo was its instant and super reliable sleep/wake functionality. In contrast the new MacBooks are slow as molasses and sometimes fail to wake up at all, at least for me.

One feature that is responsible for the MacBook to take a long time to sleep is SafeSleep. Basically, whenever you put your MacBook to sleep it saves the entire contents of its memory onto the hard drive, usually into /var/vm/sleepimage. It does so to ensure that no data gets lost even if the battery runs out while it is asleep. This hardly ever happens to me, and even if it did I wouldn't mind because I generally don't keep unsaved documents open. So, for me SafeSleep is a waste of time and energy, because it does cost battery to write all that memory to the hard drive, as well as disk space for the sleep image file.

If you haven't seen the wake up progress bar you might also be interested in turning off SafeSleep. But how? Apple decided not to repeat the Vista sleep fiasco and chose what would be the most useful functionality for 95% percent of their users; and not to confuse anyone, they decided against offering an obvious way to change it. That said, OS X is extremely modular and of course there's command line access to configure how you want your MacBook to sleep. Without further ado:


[499 ~] pmset -g
Active Profiles:
Battery Power -1
AC Power -1*
Currently in use:
sleep 60
sms 1
acwake 0
displaysleep 30
autorestart 0
hibernatefile /var/vm/sleepimage
hibernatemode 3
womp 1
halfdim 1
disksleep 10
lidwake 1
ttyskeepawake 1


You can see where it keeps the sleepimage and you can see that hibernate mode is set to 3, the default for new MacBooks. What I want is for my MacBook to never write its memory to disk.


[501 ~] sudo pmset hibernatemode 0
[502 ~] rm /var/vm/sleepimage


Now I have 2 gigs of disk space back, and I have near instant sleep; at the price of losing some work under circumstances which are unlikely for me.

More details and more fine-tuning possibilities are described here.

Wednesday, March 19, 2008

Secrets!

The creator of Quicksilver has created a new little power-user goodie called Secrets. It allows you to tweak a bunch of internal settings for Leopard all from one nice, consolidated place. It reminds me of TweakUI for the Mac, but with slightly more fundamental control. It is basically a UI for user defaults for all sorts of applications.