28.6.06. Desecration Sale Spectacular

If you ban the burning of the American Flag because it supposedly desecrates what our soldiers have died to protect (funny - I don’t see soldiers out protecting the flag over the supermarket from lightning), shouldn’t there also be a ban on using the flag to bring everyone down to “celebrate their independence from high prices at your local car dealer and/or furniture warehouse Fourth of July Independence Day Sale Spectacular”?

How about a ban on Memorial Day sales pitches? “Remember all those who have actually died in the service of this country, often in hostile environments most of you would have a heart attack in, by getting a Free Hot Dog and a chance to win a new sofa set on us!”

I know that this kind of commercialism is here to stay. Personally, I think that it really does cheapen the meaning behind some of our holidays. Why aren’t more people up in arms about big business’s war on memorial day? Unlike the bullshit crusades against the so-called “war on Christmas”, some of these holidays actually have a potentially good national meaning that is completely - COMPLETELY - washed over. “Support our troops and celebrate your freedom by getting a new Honda at Zero Percent Financing, this weekend only!”

These proposed constitutional amendments to protect the flag and protect marriage do nothing of the sort. They’re stupid ass wedge issues. If you want to really protect marriage, do something about the divorce rate in this country; shut down the 24 Hour shotgun chapels in Vegas (does that not make more of a mockery of this “blessed institution” (cough) than anything?); boycott Budweiser for cheapening marriage with its image of a man getting married over and over in Vegas for a free case of beer; boycott television sitcoms; get “Desperate Housewives” off the air; support federal aid policies that help low income families so that financial stress is less likely to be a factor in separations and divorce; hell, why not make adultery laws with severe punishments like some countries that wobble daily between friend and foe?

Is a constitutional amendment defining marriage as being a union between a man and a woman really going to do anything to this country’s divorce rate? Is it going to suddenly put an end to single parent homes? Is it going to cut down on adultery? Murder? Foster care?

Not one goddamn bit.

And it’s the same goddamn thing with the flag burning amendment. I personally believe there are many other ways to desecrate the flag, our troops, and our history, and it’s all accepted as perfectly legitimate as long as there are free balloons for the kids.

Stupid, stupid, stupid.

22.6.06. Ads - Debugging Matters, and Out of the Box

Terrific targeted advertising: The current ad that appears on the main page for Sci-Fi channel’s excellent new Battlestar Galactica series is for Microsoft’s Visual Studio 2005.

The ad? It just says “Cylons. Why debugging matters.”

I think that’s the first good ad I’ve seen placed by Microsoft in a long time. For those unfamiliar with Battlestar Galactica, especially the new series, the basic premise is "The Cylons were originally created by man. They evolved. They rebelled." The miniseries that brought the story back to the air (in a much more rich and intelligent flavor than the old series, which had a good idea but had poor execution and network interference) starts with the near annihilation of the human race in a massive coordinated Cylon attack. Yeah, debugging matters. Great placement. Although, of course, you could see variations on this for Terminator: "SkyNet. Why debugging matters." And for The Matrix. Which is not to say that Galactica is anything like those series (I think the nearest it could be compared to is Bladerunner). Just that someday, these robots will come back and kill us all. Sony's cute little QRIO has its own emotions and can express them in different ways, including changing eye color. You just know one night you're going to wake up and see this cute little robot at the foot of the bed staring at you with those red eyes... And then you'll never wake up again...

Sorry, off track.

While on the concept of ads, I’ve been enjoying one of the latest from Apple’s “Get a Mac” campaign. The commercial is Out of the Box and features the Mac and PC in their boxes talking about what they’re going to do. If you haven’t seen this series, they follow the sparse white backgrounds and straight-on shots of the older “Switch” commercials (and, in fact, most of Apple’s modern non-iPod commercials). Instead of the “real people” stories that were the center of “Switch”, “Get a Mac” features a humanized PC and Mac. The PC is played by John Hodgman (now a Daily Show staple), and the Mac by Justin Long (an actor in “Dodgeball”, which is a movie I unexpectedly fell in love with).

In Out of the Box, the PC and Mac are sitting in boxes - the PC’s is plain brown, the Mac’s is plain white. They introduce themselves as they do in every commercial - “Hi, I’m a Mac” “And I’m a PC”. The Mac starts getting out of his box and says “ready to get started?” to which the PC responds “well, not quite… what’s your big plan?” The Mac sits and says “well, I might make a movie, create a web site, try out my built in camera.. I can do it all right out of the box. So what about you?” The PC responds with “well first I got to download those new drivers and then erase all the trial software that came on my hard drive…”

The ad ends with the Mac getting out of the box and leaving frame while the PC says “actually I can’t go yet… the rest of me is in other boxes.”

Now this is a great ad. It’s short, funny, and quite charming. While the content of the ads is competitively aggressive, the PC and Mac are quite nice to each other (in one ad the Mac even says that the PC is great at business). Overall the series is doing a good job, in very short segments, of highlighting the cultural differences. Some ads play up to the “if you like the iPod or iTunes, we’ve got even more of that!” message, while others cover other differences. This one, however, I particularly enjoyed.

We recently purchased a new Dell machine at the office to run accounting software. A few days later, there is still a cadre of boxes in our lobby with CDs scattered everywhere. The machine is installed, and it installed fairly quickly. But what I remember most is how much my boss kept yelling at all of the trial software, and how much time he spent un-installing things. “Something new pops up every time!”

I imagine that this is how Dell and the like can offer their machines for such low prices. They stuff it with all sorts of trial software - often very annoying trial software (it bugs you more than it helps you) - which is just more advertising, basically, subsidizing the lower cost.

It’s amazing. I have a windows machine at my desk that I use on occasion (it’s actually been off for a couple of months), and I hated having to restart it because there were so many little balloons and bubbles that kept popping up for the first few minutes. “I did this” “You should upgrade to this” “Buy this” “Your machine is at risk - upgrade to the full version of bla bla antivirus for $79.95 today!” and on and on. Half of these interrupts were modal, taking away focus from what I was trying to get back to doing. Part of me is amazed that this passes as OK in the Windows world, but part of me looks at advertising today (and through time) and realizes that it’s just the norm of our society.

I always get entertained at list once during local coverage of the Utah Jazz at all of the little inserts that get slipped in, and how casually the announcer puts it in. Granted, a lot of these same games are being simulcast on radio (some games are only broadcast on radio), so perhaps it makes a bit more sense. But it’s just things like “Malone drives it up the floor and it’s knocked out of bounds. This portion of the game is brought to you by Bla Bla Bla, reminding you that it’s always a good time to Bla bla” or “brought to you by Bla Bla. Come down and see the professionals at Bla Bla, quality service guaranteed. Stockton takes it inbound…”

It’s all around us.

Anyways, I just found the Out of the Box commercial funny, having watched someone just recently go through the experience of spending his time removing all this junk software before he could set the machine up to do its actual job. It’s not like the Mac is devoid of trial software - a .Mac trial period is pimped, trials for both Apple’s iWork and Microsoft’s Office are also on board. But to my recollection, no bubbles ever popped up and interrupted my work telling me to use / install / upgrade either of those. In fact, I didn’t even notice they were on my new iBook. They didn’t hinder performance any, and - most importantly - never got in the way. Dragging them to the trash was all that was needed when I did notice they were there.

So, good ad, sells the point well. I’ve been impressed with how well all of my Macs have worked out of the box - even discovering that a new laptop had a decent charge in its battery when it arrived!

20.6.06. More OmniOutliner Pro Praise, and Other Tools

A nice post from 43Folders came across my desk today pointing towards a post by Eric Schmidt about Using OmniOutliner Pro and Kinkless GTD in Law School. Schmidt first covers how he uses OmniOutliner Pro to take and manage notes for his law courses. One significant Pro feature in OmniOutliner is the ability to have Sections - a navigable list of top level outline elements. Kinkless GTD uses these to separate the Inbox, Projects, Actions, Archive, Templates, and Setting portions of the kGTD document. As I’ve started to work on larger outlines again in OmniOutliner, I’ve started to make use of this feature in other documents.

Now, there are numerous outliners available for the Mac OS. A glance through the archives of About This Particular Outliner shows comprehensive coverage of various outlining and mindmapping tools. I’ve used quite a few of these over the years, often just in evaluation. The only additional ones I’ve purchased and gotten any real use out of have been Aquaminds NoteTaker, DEVONThink Personal, and Tinderbox.

NoteTaker is a decent application. I got a lot of great use out of it in a school setting as a math notebook. Using EquationService, I was able to take notes in a full Notebook paradigm and enter the math formulas in LaTeX and convert them to inline PDFs, with no knowledge of LaTeX or equations being required of NoteTaker. I’ve also used NoteTaker on a couple of customer projects that had clear releases. NoteTaker’s structure has many pages, grouped by sections. A section might be “WebSite 1.6”, with a page devoted to each feature request made by the customer for that next version. NoteTaker’s pages are outlines, but it often works best with big blocks of text. No problems - that worked great for these books. But while NoteTaker is steeped in Mac OS X’s NeXTStep heritage, it has a bit of a strange feel. More NeXTStep-ish still than Mac OS-ish.

Interestingly, NoteTaker has a very very very similar competitor: Circus Ponies NoteBook. They both have the notebook metaphor - the windows look like ringed notebooks (by default), they have index tabs on the side, and the document is a collection of pages. There are differences between the two, but they both actually share a common ancestry. AquaMinds (NoteTaker) and Circus Ponies (NoteBook) were started by two different principals that had previously made a similar [product for NeXTStep][http://www.simson.net/nextworld/93.2/93.2.ApMay.Notebook.html].

DEVONThink Personal is not so much an outliner as a personal database. NoteTaker and NoteBook position themselves that way too, but DEVONThink is much more like a specialized Finder implementation than an outliner. DEVONThink has a sort-of outline “mode”, but it’s nowhere near as fast or natural as OmniOutliner or NoteTaker. Instead, DEVONThink shines as a place to collect PDFs, web pages/archives, text notes (rich or plain), etc. It has excellent cross-referencing and indexing capabilities so any document can have a “See Also” drawer which shows contextually similar documents in the system. This is great for building reference systems, especially since you can drop a new note, text, web archive (great for keeping documentation around), etc, in and then use the classification tools. Classification works similarly to the “See Also”, but shows folders instead. Folders are matched based on their contained contents. I use DEVONThink at work to collect odds and ends from various projects, and (more often) to keep and archive web pages containing documentation for tools like SQLAlchemy, Markdown, etc. On my laptop I use it to keep archives of web pages I want to read in my spare time, whether or not I have internet access.

Tinderbox is an interesting system. Part of me thinks it could be so much more if only it were modernized. It just doesn’t feel that natural on Mac OS X. It’s such a powerful and flexible system, with the ability to think and work in different modes - outline, treemaps, visual maps - with multiple windows open in the same document even! Custom attributes, agents, and rules can make for pretty powerful and personal systems. But using it is like using [Squeak][http://squeak.org/]. It’s really cool and really powerful, but it’s also its own self-contained world. I had a hard time integrating Tinderbox into my day-to-day operations as it works less and less like the Mac OS X I know and love. No Services support, changing a font requires using a traditional font menu (which is a nightmare with my sprawling font collection). Hell - you can’t even save a file with a name longer than 30 characters! I don’t think I’m in Tinderbox’s target market though. If I wrote as much as I often say i’d like to write, I’m sure it would be a great tool. I’ve wanted to use it to start mapping and managing a lot of characters and places from real life and mythic life. But I have a hard time going into Tinderbox land.

OmniOutliner, on the other hand, is tremendous. Especially as of version 3 (and even more so with version 3.5). It is so deceptively simple. A fresh document is just a basic outline. Start typing, indenting, structuring, etc. Often that’s all you need to take some notes down or think something through. But it also has excellent multi-column support. The columns can have different value types with the ability to summarize values. In evaluating whether I could afford an impromptu weekend trip, I used OmniOutliner with two columns - Topic (the main outline/text column) and Price, with Price formatted as dollars and with a “Total” summary. The top level of the outline was “San Francisco Trip”, and then inside of it I had lines for flight, hotel, tickets to an event I wanted to go to, boarding the dog, train, etc. Very quickly I added borders on rows and columns, and within seconds I had a very small and simple document that many people use spreadsheets like Excel for - but with absolutely none of the complexity or long arguments that are involved when I use Excel (or any spreadsheet, for that matter). This was just a quick “I wonder if I could…” experiment - could I make a quick list and see the estimated total? could I afford to go? (The answers were ‘yes’ and ‘no’, respectively).

But OmniOutliner does even more, and all naturally. By using Mac OS X’s text formatting system, it gets access to the Ruler (NoteTaker and NoteBook get this too). The Ruler makes it possible for just about any Rich Text input area to be at least as powerful as a tool like WordPad on Windows. Named styles, tab stops, left / right / justification alignment, paragraph indentation, spacing, and more. OmniOutliner doesn’t show the ‘Lists’ option, but NoteTaker does, so bulleted and numbered lists inside of the text are available just about anywhere.

This is what amazes me about OmniOutliner: it can be such a fast and simple basic outliner, requiring practically no training or documentation to use. It’s smooth and fast and looks great to boot. But with just a little exploration of the menus, toolbars, and inspectors, it can be unleashed. Some sample documents look closer to a full Word or Pages produced document: the outline handles and checkboxes are hidden, the indention settings are massaged, the fonts and styles applied well. Other sample documents show its usefulness as a simple spreadsheet / database system: the kind where the main text is delightfully easy to enter and formats well against the other columns (spreadsheets do not do this well at all), and the supporting columns can have intelligent value entry and handling. The date support is wonderful - “tomorrow”, “monday”, “the 3rd”, “last friday”, are all valid values. Duration columns can be set with how to measure hours - is it a work day? is the work day 8 hours? then a total of 9.5 hours immediately displays as 1 day 1.5 hr.

The section support in OmniOutliner Pro invades some of the territory enjoyed by NoteTaker and NoteBook and the like. Suddenly a single large outline can become very navigable. I exported some of my NoteTaker books out to OPML and into OmniOutliner Pro and had a system almost as nice up and running within moments (aside from some lost formatting). Nicer still is that a co-worker has started using OmniOutliner pretty heavily and it’s nice to be able to settle on a single tool and share. I’m just amazed that this tool can be so simple and useful for the quick-notes while becoming powerful enough to support a system like Kinkless GTD.

5.6.06. My Mac OS X "Priceless" Applications and Tools

Can’t live with ‘em, can’t live without ‘em. This is about the Mac OS X applications I can’t live without, and some mentions of ones that I’ve still never found use for.

Can’t Live Without

Quicksilver

The ultimate quick launch and system control tool, Quicksilver is like the perfect marriage of graphical and command like control. Before Quicksilver I was an avid user of Launchbar. At heart, both of these products are just launchers - quick access to applications, bookmarks, etc. Launchbar allowed me to never be bothered by the Mac OS X Dock: I use the Dock to house applications and documents I use frequently, and Launchbar let me quickly get to ones that I use only on occasion. What makes both of these products stand out is that they learn. One might bring up the tool and type the letters A G L. The first hit might be a bookmark to an agile development article. But hitting the spacebar a couple of times to highlight Adobe GoLive will cause both LaunchBar and Quicksilver to increase the weight of that result. Within a couple of uses, CONTROL-SPACE A G L becomes the fastest way to launch GoLive.

Both tools offer access to more than just applications and bookmarks. Quicksilver started to differentiate itself from Launchbar (as of Launchbar version 3 - it’s now at version 4.1) as a more thorough system control tool with a lot of AppleScript support and a wide (and growing) range of plug-ins. Quicksilver could be used to control iTunes, to put the computer to sleep, and more.

I’m not sure when or why I made the switch. As Mac OS X matured, I used Launchbar less and less. When Quicksilver came on the scene, I didn’t pay much attention to it. But I kept hearing good things about it, and eventually got around to checking it out myself as it was a big hit amongst the 43Folders crowd. As I started to use Quicksilver, I found it insanely useful. I could pause and resume iTunes with a few keystrokes without having to change focus from what I was doing. I could start doing some “fire and forget until later” actions, such as emailing a quick note or to-do to a Backpack page or sending an action to my Kinkless GTD document. I could take quick advantage of Mac OS X services such as Make Sticky or Take Plain Note in DEVONThink, even in applications (like Tinderbox) that don’t support the Services system.

This is most handy when doing something very focused, such as a debugging session, when I’d notice something else I might need to come back and revisit. I don’t want to take the time to change focus to OmniOutliner or some web project tool or iCal to make the note to “come back and fix the call to …” when I’m chasing some obscure issue. Quicksilver lets me make that note almost invisibly - I don’t even have to take my eyes off of the current debugger line. Priceless.

Small feature that I absolutely love - Large Type. One of the default text actions in Quicksilver, this is damn handy when making phone calls. Apple’s Address Book, and some other applications, support this for values they have in the system. But sometimes you need to call a phone number and read off an account number that isn’t going to be in Address Book. With Quicksilver and a couple of tuning options, you can get this down to a single chord or just a couple of keystrokes, and BAM! Screen-size type. Doesn’t interfere with anything else - next keystroke or mouse click makes it go away.

TextMate

A native Mac OS X text editor, TextMate has become my new killer application. For the first time ever, I’m doing most of my Zope and what-have-you development on my desktop. Historically I’ve always done my web development on servers, using XEmacs and then VIM as my comprehensive editor of choice. Even when I’d do development on the desktop, I’d often use VIM. But TextMate has changed that.

With support for lots of languages and commands, it’s become indispensable. The killer feature was the ability to install an Edit in TextMate… command in all Cocoa applications. Now I can edit the contents of any textarea in Safari in TextMate - whether it’s GMail, a bulletin board system, Basecamp, a Zope application, a classic Zope page template, I can pop over to TextMate. Even now, I’m using MarsEdit to make this post. I’m writing it in Markdown and will convert it to HTML from within TextMate before posting it.

Over the years, I’ve found long-time Mac staple BBEdit to be too expensive, and ultimately underpowered, for my needs. BBEdit still bears too much of its classic Mac OS heritage, I feel, and some of its keyboard commands and preference screens started to feel really unnatural. Granted, I was still using an old version. But even the newer free ‘lite’ version of BBEdit, TextWrangler, felt uncomfortable. I used it for some development in the past year, but TextMate feels a lot more natural to me in most regards.

There are some features that TextWrangler / BBEdit has that are still missing from TextMate - integrated FTP support is one, split windows is another. The one feature that I can’t believe TextMate doesn’t have yet is the ability to split editing windows! But the number of plug-ins available, the “Edit in TextMate” feature, the relative ease with which new syntaxes and commands can be added, far outweigh some of the holes.

Small feature that I absolutely love - Find in Project. Any folder can be a project (without all of the project overhead imposed by IDE’s). In the Zope 3 development that I’ve been doing, this has made refactoring easy as I could rename or move a class or interface and could quickly find all uses of it. TextMate also supports many of the Cocoa find/replace features and commands (and builds on them). One handy command is “Use Selection for Find (command-E)”. Safari, Mail, MarsEdit, OmniOutliner, etc, all use this command. Select a word or phrase, hit ‘command E’ and then ‘command G’ (find again) to search for that word without bringing up the ‘Find’ dialog box, without using up the clipboard, etc. This is great with the Find in Project feature in TextMate when I’m thinking of renaming or moving a class, or just want to see where it’s used, such as when exploring other people’s code (such as the Rails or Zope frameworks themselves).

DarwinPorts

DarwinPorts has made it possible to do the kinds of development I now do on my desktops / laptop. This is where I get my Python 2.4.x with readline, Ruby 1.8.4, Docutils, subversion, etc.

OmniOutliner Pro / Kinkless GTD

OmniOutliner has been in my toolbox since version 1, back in the early Mac OS X days. I’ve gone through other outliners and information databases, but now I’m using OmniOutliner Pro pretty heavily again. Part of this is because it’s still the fastest, easiest to use, and best looking outliner on Mac OS X. A third party set of AppleScripts turns it into a powerful planning / task management system, as Kinkless GTD. I’ve tried some other systems such as GTDRules on Tinderbox, which I’ve compared before.

Kinkless GTD features a Quicksilver action called ‘Send to kGTD’ which parses text into an action and sends it to the kGTD document. If the document’s not open, it opens it. The parsing revolves around being able to specify a project and/or context to place an action in. For me, this is useful for that ‘fire and forget until later’ moment that comes up from time to time. I capture something that needs to be done, but I don’t let it consume my mind while I focus on the task at hand. When I have a moment, I can go to Kinkless GTD and file it appropriately or figure out what needs to be done for that note I scribbled off. This shortens the amount of inboxes that I have, and shortens the number of places I have to think about when I want to send myself a “deal with this later” note.

iDisk / CVS

Apple’s iDisk (part of their .Mac offerings) has a nice feature: the ability to work offline with transparent synchronization. That synchronization can be automatic or manual. This is how I keep track of my Kinkless GTD document, and any other notes and documents I want to work on without worry of location. No need to have a Lotus Notes size system just to manage a small set of personal information across three machines, especially when one of them spends half of its time offline (and one is spending ALL of that time offline these days). iDisk lets me save any document of any type, synchronize the disk to my laptop, take the laptop home, work on it there (without internet, which hopefully will get fixed soon), come back, synchronize back. I’ve thought of using USB “key drives” to house information like this, but I often fear damaging or forgetting the drive.

We still use CVS on our development servers at the office. We’re too small and busy to have time to change to subversion when CVS is doing its job (mostly) well. Some people use CVS to manage their home directories, documents, etc. I just use it to bring code home in case I want / need to work there while I’m disconnected. It’s hardly worth mentioning, except for how every work day ends with ensuring the iDisk and source directories are up to date on the laptop.

Can’t Live With

There’s really only one thing I can think of here, and it’s one thing that’s always bothered me: Virtual Desktops. I’m glad Mac OS X doesn’t support this directly. My main problem with Virtual Desktops is the ease with which important windows get lost. With Mac OS X, I use “Hide Others” and window minimization heavily when I need to focus and I have too many distractions on screen. A quick “Show All” can bring all the windows back on screen and into the dock (if minimized), and Exposé is, at that point, the best way to find a particular window when needed. With Virtual Desktops, I was always playing the game of “is it on 1? nope 2? nope 3?”. Some people establish systems - web browser always here, email always here, main editor always here - but I never was able to. I’d just lose things and get frustrated. Between Quicksilver and Mac OS X’s native app / window switching features, I have adequate control over my desktop and what populates it, I feel.