3.2.13. Coming Around to Sublime Text

So, quite late to the party, I'm starting to come around to liking Sublime Text 2 after many months of using BBEdit 10 as my primary development editor. I still like BBEdit, but Sublime Text is starting to pull away.

Some of the things that I like about BBEdit is that it doesn't have this runaway set of extensions and packages. It just works pretty damn well out of the box. BBEdit also has a real manual. And a real preferences UI. BBEdit is fast, handles large files well, and is very Mac native.

I decided to take another look at Sublime Text recently. One reasons is that my previous script for integrating PyFlakes into BBEdit broke in BBEdit 10.5, and I was starting to lose time to little mistakes that PyFlakes can find before I restart a dev server. I had a "PyFlakes on Save" in TextMate that I was really starting to miss. I knew there was something similar for Sublime Text and wanted to check it out. Enter SublimeLinter.

I'm not a fan of keeping track of lots of custom little packages and learning them. I have important work to do, and one of the reasons I stayed away from Sublime Text was my worry that I would spend more time tinkering with it to make it useful than I would spend doing my work. However, on re-evaluating Sublime Text, the following built-in functionality is really killer and has caused me to seriously consider a full switch:

  • Knowledge of directories in 'quick open / open anything'. Neither TextMate nor BBEdit seemed to do this. I can have large Python customer or internal projects with many files named 'interfaces.py' or 'base.py' or 'configure.zcml'. Doing a quick open to get to one of those files in other editors hasn't worked out too well. In SublimeText, I can start typing the path and hit '/' to start matching against that subdirectory.
  • Open Anything rocks. Being able to not just jump to a particular file quickly, but to then navigate right into its classes/methods/etc, all from the keyboard, is again pretty damn amazing. And fast!
  • Multiple Selection. being able to quickly rename a variable or method and also change all of its other uses in one fell swoop is pretty neat. I've generally solved this with "use selection for find / use selection for replace" but Sublime Text's option seems even better.
  • Split Windows. TextMate 1 never offered this. BBEdit allowed splitting the same file, but I don't think it allowed splitting multiple files. In general, this problem is solved with multiple windows, but I've missed being able to split windows with different files like I could do so easily in Emacs and Vim. It's nice to have a fairly modern editor that is fairly native to OS X that does this. This is especially nice in the full screen and 'distraction free' modes that I like to hit from time to time.

Something that was bothering me back when I used TextMate, and Emacs (and sometimes Vim) before that, was how out of sync my home and work setups could get. I do very little coding at home any more, and any time I would open up my editor, all of the little settings and massages that I had set up at work wouldn't be there. BBEdit 10 solved this with some native support for storing preferences and snippets and scripts in DropBox. I found some tips and tricks for storing Packages and Settings for Sublime Text and they seem to work.

Labels: , ,

31.1.13. Refining my Work Contexts in OmniFocus

Contexts are a major component in the GTD system by David Allen, and thus figure prominently in OmniFocus. Understanding and working well within contexts is an ongoing process. Some are immediately understandable, such as "Grocery Store" or "Home". Some may be devices, such as "Phone". These are known physical limitations where an action can only be performed in that physical space or device.

My life doesn't involve a lot of physical contexts outside of errands (then grouped by a couple of common errand types, and then by store for anything really specific), home, and work. But 'Work' is where I do and use much of my planning. I found that just having that as a lone context didn't work for me. Years ago, I set up two sub-contexts, Coding and Office and that got me by for a while, with most work tasks being in Work : Coding. This is still the case today, but I've recently found that it's helped to create some additional contexts that revolve around tools and responsibilities.

My work sub-contexts:

  • Coding, wherein I do most of my work. This is the editor - terminal - browser cycle, usually. For the longest time, this context was synonymous with "@work", as it was, well, what I did.
  • Deployment, a newly created context. This also tends to involve the terminal, but doesn't really depend on the editor or other bits. It tends to mean kicking off some automated scripts and keeping an eye on them. I separated it out into its own context so that I could see these separately from all of the potential coding "next actions", as deployments may have a higher or different priority. For example, I can deploy while eating lunch at my desk, so I might let these pile up from various other projects.
  • Research. The actions in here vary, but being in this context often signifies needing to crawl through code, archives, or the internet to learn something new or be reminded of how something works.
  • Basecamp, for needing to interact with the Basecamp project management system. The actions for this could mean just marking a task assignment as complete, or it could mean needing to write a message or comment to communicate with the team. I found that these kinds of actions were starting to slip from my head.
  • Agenda for anything I need to bring up at a meeting.
  • Documentation for tasks needing a bit of extra focus for writing and publishing.
  • Office for anything generic that can only be done at the office. This might mean something that requires a printer (I have none at home), or it might mean something I need to pick up or drop off at the office.

The nice side of this is that I can just park OmniFocus on my iPad in the "Work" context and see the available actions in all of these sub-contexts. The context they're in might let me know the time or tools involved, and that can help me make decisions about what to do next when I have multiple things happening at or near the same time. For example, I met let a couple of deployment tasks queue up, or I can do a deployment task while working on another project's coding task, as deployment requires little physical or mental labor but may require a lot of watching and waiting for changes to roll out across our servers. My Basecamp tasks can queue up for the end of the day, and have been helpful in reminding me to update our central project system used for company communication.

There seem to be some people these days wanting "multiple context assignment" in OmniFocus. I do not. I'm happy with the hierarchical context system. When in work mode, I can choose the level at which I want to focus and tune other things out. OmniFocus's hierarchical contexts also make re-organization easy without losing assignment. If a certain hierarchy isn't working out, I can change it with some dragging and dropping. This has helped keep my system functioning for me as my needs and expectations have evolved over the years.

Labels: , , , ,

8.1.13. Collect, Clarify, Organize - Guide to Evaluating Personal Task Managers

I've recently discovered the excellent Mikes on Mics podcast and have been listening to some random episodes. One episode I was interested in was Episode 5, Taking You To Task where the hosts talk about choosing task managers. They spent a lot of time talking about OmniFocus and Asana and some time talking about general evaluation of tools, and while they often recommended "find the tool that works for you", I don't think they established a good criteria for selecting a task manager. It got me thinking about the steps I find important.

I'm going to focus on personal task management here. Group / collaborative management rarely applies to a "whole life" scenario and is typically not something that is chosen by end users anyway. Someone who is a freelancer working with various groups of people at different times may benefit by such a system, but for the most part I believe that group/collaborative task management can be a second level system if it is needed in one's life.

So what should a personal task management tool provide? A good system should help you collect, clarify, and organize, to borrow terms from David Allen. To borrow terms from the Rational Unified Process, these steps may be: inception, elaboration, construction, and transition. Finally, there is also review. When evaluating tools, it may help to make a list of these things and try to answer how well each tool helps. The short list is:

  1. How easy is it to rapidly enter things into the tool?
  2. Is it easy to edit and elaborate on things once they're in the tool? Is it easy to defer things off to the future?
  3. How easy is it to group and organize tasks? Does the tool support organization in a way that reflects my system or brain?
  4. Once tasks are in the tool, how easy is it to focus on just the things I need to get done now? How easily does it let me define what 'now' means?
  5. Can the tool be trusted to be with me and reasonably up-to-date wherever and whenever I need it?

I expand on these topics, and more, below.

Collection (Inception)

Collection is an important step. How easy is it to rapidly add new items to the tool? This should be offered in a way that can be as unobtrusive as possible. On the desktop, many task managers feature a 'quick entry' window that can pop up, accept input, and disappear. Some may accept emails, either via special rules and scripts that run inside the mail client; others may have a dedicated email address. On devices, does it support input within a tap or two of the launch screen? Does it support voice? The tool should not only make it easy to add new items, but it should make it easy in a way that makes sense for how you use it. This can be easily tested within any desktop software's evaluation cycle.

A good modern task manager should have an "inbox" which means "collected, but unprocessed items." You should be able to add to the inbox easily and without guilt. You should also be able to process that inbox easily, which is discussed in the following steps.

Clarification (Elaboration)

In collection mode, you may jot down just a couple of words or copy in a few lines from an email. The next step is clarification/elaboration. A good tool should make it easy to start organizing items and their relevant data. A task like "call vet" should be easily expandable with a note about why you need to call the vet. If the tools supports devices like the phone, it should highlight phone numbers in the notes to make it easy to place a call within the task manager. The best way to cut down on the anxiety of tasks is to provide your future self with all the information it needs so that when it comes time to do the task, there's little reason to escape it. When evaluating the tools, think about what kind of information is helpful for that future self and evaluate whether the tool you're using makes it easy to enter and view that information or if it makes it difficult.

When clarifying a task, it may cause multiple subtasks to break out. Does the tool support hierarchies (outline style structure)? Does it let you think about how those hierarchies work (i.e. - are they a chain of dependent or independent actions)? If you're someone like me who thinks in outlines, this is an important thing to evaluate. If you're someone who thinks in flat lists, it's not as necessary.

Clarification is as important as collection, and tools that make it difficult to edit task titles and notes are to be avoided. Again, within the trial period of most desktop apps, you should be able to get a feel for this.

Organization (More Elaboration)

Most tools offer organization. A good GTD® style tool should promote organization by project and context. How easy is it to turn an individual task or one with subtasks into an new project? How easy is it to assign projects from the collection pool (Inbox)?

This is where tools can differentiate themselves and you can really start to feel out whether a particular tool might work for you. Some tools support projects as top-level list items, and everything else such as contexts are provided by tags. I'm not a big fan of tags (I find maintenance of a tag taxonomy tiring), but it works very well for others. Other tools support both hierarchical project and context lists. Some tools make it was to group things into folders as "general areas of focus".

The important evaluation questions are: is it easy to organize tasks in a way that makes sense to your brain and/or system? If you're a drag and drop person, does the UI support easy organization using drag and drop? If you're a keyboard person, are there sufficient keyboard shortcuts for assigning projects and tags/contexts as well as support for reordering (moving tasks up and down)?

Scheduling

Dates are important for clarification/organization, and allow you to have a good system for handling as much of your life as possible. A good tool should allow setting both start and due dates while requiring neither. Using both start and due dates can be an effective way of reminding yourself about a follow-up communication (i.e., getting an email that says "get back to me in a month if …") or other long-term reminders (renewing a web domain; canceling or renewing a membership; making travel arrangements for a conference). Start dates are also good for deferring or pausing work when interrupted by a more pressing project. If you don't always trust your own memory, a tool that tracks completion dates may be important when you need to look back at when you last paid a certain bill or need to write a report of work activity completed that week for a particular customer.

A particularly good tool should integrate with the platform's calendar if scheduling is important. This could be either being able to publish items as an internet calendar feed, or providing a view of scheduled tasks alongside other calendar items inside of the tool itself. Or both.

Note that items in a personal task system are just that - tasks. It's a good place to store reminders about setting appointments (i.e., call dentist in six months to schedule cleaning), but not a good place for the appointments themselves.

Construction (doing the work)

Your job is not about how well you organize your tasks. Your job is, well, your job. At some point, you actually have to do the work. After it's been collected, clarified, and organized, how easy is it to view? Does it offer views that let you focus on just the tasks you need to do now/next? What you need to do today? Who do you need to call? Who do you need to email? What files were you going to edit? What applications do you need to deploy?

Some days, I feel like the main character from the movie Memento, suddenly asking "ok, what was I doing?" If I've put my tasks together in my system in the right way, I should be able to answer that question pretty quickly by turning to my task manager.

This may be the hardest step to evaluate as this is when the system gets personal. The tool needs to step out of your way so you can do your work, but be able to answer the important "OK, what's next? What was I doing?" question as quickly as possible.

A good tool should help you focus on just the tasks that are relevant, hiding everything else, but make it easy to pull back to the wider view. You don't need to see bills or laundry action items when you're coding in the office or preparing a legal brief; and you don't need to see those office items when you're grocery shopping.

Having a good system or process like GTD® helps you understand the significance of these areas of focus and can help you evaluate the tools better. If you don't have a system of organization beyond basic project or context lists, then the more powerful tools can be avoided and you can get your feet wet with something like the Reminders App.

Transition (moving forward)

Of course, a good task management app should make it easy to mark a task as complete. If it has good "what's next?" views, it should pop the right item(s) into place as soon as you mark one off.

A good tool should keep completed items in the system but out of sight, and make it easy to bring those completed items up again when needed.

What you think should happen when you mark something as complete is a personal choice. I like having access to "what's next" views that just show me the next actions available in a certain context. But I also like being able to switch right to a project and focus on its actions (both next and upcoming), which can work well at work when I'm doing a single coding project at a time and want to see the upcoming steps.

This can be another hard one to evaluate. Try the different tools and just get a feel for how they present the items you're supposed to do now, and what happens when you mark those as done, and if you like the flow. Since this is where customizations may come in, you may want to read into the help files and videos and communities if you're not sure the tool does what you want.

Review

This is a major part of GTD® and, I believe, any good personal task management system. Review is what keeps your system from being "a place where good ideas go to die".

To evaluate review, just try to see if a tool has a good way of seeing and navigating through everything active or future so that you can evaluate if that's something that should stay, should go, or needs new clarification. This is hard to evaluate during the limited free-preview times offered by most tools because it might take a while to build up enough data to review. Some tools offer full on review modes, with the ability to timestamp the last review and when next to review a project. If this kind of review mechanism is important, look for that when evaluating tools. It's not a killer feature, but it can help ease the mind.

Ubiquity (everywhere you want it to be)

In GTD®, David Allen talks about needing a "trusted system" which is something you can rely on as being always available, always working, always up to date. The best system for this for the longest time was pen and paper. But now with smart phones, widely available internet, "The Cloud", etc, this can be handled by software. Is the tool you're evaluating available on the devices you need? Is it easy to keep all of those devices up to date?

You may not be able to evaluate software on the phone or tablet for free, but when looking at these systems, you can get a sense from the tool makers web sites and communities around that tool about how well ubiquity works.

Labels: , , ,

3.1.13. Remembering What You've Done, with OmniFocus
This year, the Christmas / New Year holidays brought about a pair of very short work weeks. This first day back brought with it our usual semi-weekly meeting, and one of the items that was still on my list was a pair of support tickets that I had completely forgotten. My boss said "no, you know about them, you were working on them last week and talking about them!" Yet there were no active action items or projects related to these items in my OmniFocus, and I was sure that if I was still working on these issues, they'd be written down. Did my system fail me?

We checked the live site in relation to in question and they appeared partially done. "That's funny," I thought, "why didn't I have an action for the remaining items? Did my system fail me?" I was stumped, trying to remember the previous Friday. I had worked on these issues, and towards the end of the day they opened up a larger topic that we discussed in our week-closing get together (half meeting, half beer bash). Maybe I got these support tickets nearly-finished, but the week closer had killed the final one. But again, if that had happened, I would have that final action written down. Right?

Enter my Recently Completed OmniFocus perspective, which shows all of my completed actions, grouped and sorted by their completion date. I flipped back to last friday, and sure enough, there were both support tickets as OmniFocus actions, and they were both marked as completed. My system didn't fail me! I double checked our source code repository and found the related commits and was able to verify that all the actions were, in fact, completed.

So what happened?

When the support issues came in via Basecamp, our company's project management system, I then entered them into OmniFocus which I use as my personal system. With OmniFocus, I then have much more control over editing items, grouping, organizing, splitting, etc. As I completed the items, I marked them as complete in OmniFocus, but I forgot to mark them as complete in Basecamp, which caused my boss to bring the items back up in our Wednesday meeting. A new trick that I've added to deal with this is to make a new context, Work : Basecamp, with an action to go in and close out tasks and/or leave comments as necessary.

The takeaway from this is that when using OmniFocus as your complete system, it becomes a trusted resource for not only "what am I supposed to be doing?" but also "wait, didn't I do that already?"

Side Story on Bills

A few years ago, I remember getting a phone call from American Express, asking why I hadn't paid my Amex Bill. It turns out that I had just forgot to do it. I had paid the previous bill pretty close to the deadline, and then spent the next month thinking I had paid the latest bill because my brain said "yeah, I just paid that!"

Now I put all bills into OmniFocus, even if I intend on paying the bill immediately upon arrival. Why? I have a Bills Paid perspective which is like my Recently Completed perspective but focusing on just Bills, and I can refer to that if I'm thinking "wait, it feels like I should be paying the gas bill right about now. Did I do that already?" Also useful for any paper-mail or other check based situation (like my rent checks) when I notice that I have too much money in my checking account and want to see if I did pay that month and the recipient was being slow, or if I was the errant party.

 

Labels: , ,

18.11.12. My Email Inbox Workflow with OmniFocus
I had one of those mornings where I was dealing with personal morning stuff - exchanging some items with a neighbor, worrying about some odd behaviors from the dog, and the usual flurry of getting dressed and trying to get the dog out for a walk. As this is going on, a rush of emails starts coming in of actions to do for work, on a project that I had done little work on and wasn't immediately prepared to handle. In particular, I was seeing these emails come in on my iPhone where I could do little about it. My first instinct, and action, was to start stressing out a little bit: "Why this project? Why now? What do all of these things mean? Oh crap, is this new email related to another project?" Meanwhile, more emails were coming in and getting grouped together in my inbox in their own stream-of-receipt way.

But then I was able to let go of the stress and let the flood continue. Why?

  1. It's my job to deal with this stuff. There was no bad news or anything here.
  2. I didn't need to deal with it immediately. Just because there was an email on my phone didn't mean that I had to start working. It can be easy to forget this.
  3. I didn't even need to read every email immediately. Once I recognized the pattern, I could just let them pile up like in the old days before constant communication, while still keeping an eye out for anything urgent or that could be answered quickly while waiting for the dog to finish sniffing whatever has her attention while we walk.
  4. I strive to maintain "Inbox Zero", so I didn't need to worry about preserving an unread count as "emails that need processing". Basically, if it's in the inbox, it's awaiting processing. So after reading a couple of these emails and recognizing what was going on, I knew that I could wait until I got to the office to actually deal with them.
  5. I didn't have worry about process or organization. I have OmniFocus, and I knew that it would be easy to turn these static out-of-order emails into actual items that I could process. OmniFocus makes it easy to copy all or part of an email message to its own inbox, but from there I can edit the text, re-order things, start picking apart subtasks, and so on.
  6. Once those items are captured into OmniFocus, I can move those emails out of the inbox and into a project folder, possibly never to be seen again. I can open the original message from OmniFocus if needed. This will bring my Inbox count back down to zero (or near zero).
  7. Now I can actually process all of this information that came flooding in and get things done.
Also, spending time with meditation has allowed me to recognize the silliness of that sudden stress-tick that comes when emails like this start coming in while I'm rushing to finish other things. It made it easier to recognize, as Merlin Mann once said in an episode of "Back to Work" (can't remember which episode), that it's just a new email. I'm not alone in the woods, trying not to be eaten by bears. Instead, I think of the list of things above: "wait, why am I worried about this? I have a process for dealing with this, it'll be OK."

At PyCon 2012, Paul Graham spoke on how he wanted a replacement for email that was really "send me to-dos." I guess for him, most real emails are actionable items and he wants them presented as such. Combining OmniFocus' mail clipping capabilities provides something similar for me, but with me taking an active step in transforming some inbound request into actionable data. I think this works better since not every email is actionable, or its action may be a quick reply. For me, the important thing is to figure out what needs to be done and get all of those messages out of my Inbox and filed away.

If the email is just reference info, or is not related to anything I'm currently doing but may come up again in a few days, I scan it and file it away. If it warrants a quick reply, that is done before filing it away. Longer term reference info is often copied into something like Apple's simple Notes app before filing the original email away.

If the email pertains to something actionable, it tends to go into OmniFocus for further processing. Most of the time this is related to work stuff, but it can also be reminders of something to do at home such as a reminder to download an update to some audio software. OmniFocus' quick entry window makes it easy to assign projects and/or contexts. If it requires deeper thinking, it just goes into the OmniFocus inbox. Then the original email may, of course, get filed away into an appropriate folder.

If the email relates to something like a shipping notification that I want to track, I copy the tracking number into an iPhone app dedicated to package tracking. For a long time, these tended to be the kinds of emails that would stick around in the inbox until the item arrived, but during some shopping sprees or slow-delivery items, I found that the emails were getting distracting. A dedicated app also makes it easier to visually track the status of multiple shipments. Once the shipping info is in the tracking app, the original email is deleted. No need to keep those around for reference.

Receipts get archived immediately to a folder named "receipts". Other emails that are not related to a project or receipt that are not spam are now moved to the "Archive" folder. I'm glad this is a quick action in OS X's mail (I used to keep a generic "reference" folder for this, and turned that into the "archive" folder).

And with all this, I tend to keep my email inbox count to zero or near zero. This makes it easier to process big volumes when they come.

See also: The OmniFocus and GTD White Paper (PDF). My personal system is not full GTD, but the basics are there and the core inbox-processing workflow is well diagrammed and discussed in this paper.

 

Labels: , , , ,

24.3.11. Forget distraction free, I want file-management free!

A few years back I downloaded an interesting piece of software for the Mac OS - Writeroom version 1.0. Writeroom sells itself as a "distraction free writing environment." It's main feature was that it was plain text only and could run in a full screen mode with default colors of being green text on black background. There was some fanfare around it and some skepticism. Personally, I liked the idea - get rid of all of the other windows, instant messages, dancing gifs, email notifications, etc, and just write.

This is something which I like about the iPad - only the current application has my attention. I hope that this doesn't change. I do not like what I see in Android 3.0, nor what little I've seen of the Blackberry Playbook. Their interfaces look too busy. I deal with busy interfaces all day. For me, the iPad is a relief from the world of current desktop computing.

My favorite key combination on Mac OS X is option-command-h, aka Hide Others. When the screen starts filling up with windows and more windows and more windows, Hide Others temporarily brings some order to the madness.

Back to Writeroom. My favorite feature of 1.0 was actually not this 'distraction free writing environment' nonsense. That was a useful feature, to be sure. But the feature I liked most was that it was a file management free writing environment. Writeroom 1.0 managed its own files. There was no savingno filename choosing (the document name was taken from the first line of the document). This made it a perfect place for just jotting things down, working small ideas out, and maybe taking them into bigger things. That file management free writing environment was bliss, at least for my uses. Every time you opened the app, there were all your documents. You could close them to hide them, but they were easily accessible from a menu and a keyboard shortcut.

There were some other apps that offered similar features - the Stickies application that comes with Mac OS X (and dates back to Mac OS System 7.5) is another nice tool for temporarily holding small pieces of information without having to worry about file management; Yojimbo is a collection bucket of notes, PDFs, etc, and can be another place for notes to quickly go; and Apple Mail in Mac OS X 10.5 added Notes which could be stored in IMAP (and can finally sync to the Notes app in iOS 4) and offer a nice quick jot-down place that also takes its title from the first line.

Writeroom 2.0 killed this feature. I avoided writeroom 2.0, but when version 2.5 was on the Mac App Store at a temporary discount, I bought it. And I hate it. Now I have to think about filenames. Now I have to think about where things are being stored. Writeroom 1.0 allowed you to easily export a document out, but that kind of decision was usually made AFTER you were finished with the document. There are times when I don't want to think about that stuff when starting out. This is not true for all cases - much of my day work is spent in TextMate writing Python code, reStructuredText documents, and managing configuration files. Of course I need full file management in that situation. But when it comes to just writing down some notes, capturing some ideas, and maybe thinking through a proposal, I miss that Writeroom 1.0 functionality.

And again, this is something that the iPad (and iPhone) gets right, for most instances. Whether its OmniGraffle, Pages, Garageband, or the built in Notes app, starting a new document is damn easy. Saving is automatic. You just start using it.

Fortunately, the next version of Mac OS X, "Lion", looks like it offers many long overdue file/document management features for developers so that they can offer functionality closer to Writeroom 1.0. Again - I'll always need TextMate and some apps to do manual file management, but those uses are specialized and becoming more rare. Mac OS X Lion adds support now for auto-save, reversion, locking, and historical change tracking. In some ways, this feels like going back to some of the ideas explored in the LISA and other pre-Mac user interfaces that weren't shackled to the hardware limitations of the original Mac OS (file management in the Lisa OS was quite a bit different - everything started from the finder, including new documents). In other ways, it feels like we're catching up to what the Newton OS, Palm OS, and iOS devices have long done in their aims of imitating paper notebooks and planners - everything is just saved, automatically.

It's not perfect for every situation, but it's something I've long been wanting in more places than just calendar and contact apps.

Labels: , , ,

16.8.07. Numbers

I don’t know when I last used a spreadsheet for its actual spreadsheet capabilities, on a sheet I designed myself. I think it may go back to AppleWorks (on the Apple II)! Sure, I’ve used sheets like time cards and travel requests that others had made where I just had to fill in the holes. And I’ve received more than my fair share of spreadsheets used like an outliner / lightweight database / structured note list. But I don’t remember how long it’s been since I used a spreadsheet to figure out a budget, to track expenses, or any other dumb mundane thing like that. Until last night.

I was getting ready to pay my mid-month bills, and I was trying to figure out how much I could pay towards one of my credit cards and still have enough cash to cover the expenses remaining in the month. I also realized that I’ve been spending quite a bit at the iTunes Music Store and hadn’t been tracking any of it. I decided that this would be an excellent time to try out Apple’s new spreadsheet application, Numbers. I found a downloadable time trial of Apple’s iWork ‘08 suite, and immediately got to work.

Numbers is pretty damn cool. I don’t know if there are other spreadsheets that behave like this, but in modern times, it seems so obvious: instead of having the big set of cells in one large table, you work in small floating spreadsheets / tables. This is a big deal for so many reasons, with the most obvious being layout. Another great reason is that each table/spreadsheet can be more focused on its job. Already, Numbers felt a lot more intuitive than anything I had used in a long time.

When doing my simple rest-of-the-month budget, my main question was “how much can I pay on this card and still have enough cash on hand for the rest of the month?” Numbers made it easy with its slider option. For just this one cell, I was able to quickly configure it to give me a slider with a range of -700 to -500. When I got the rest of the budget entered, I could then play with the slider and watch its impact on the total-leftover cell. In previous months, I’ve generally done this calculation in my head, or compared where I stood the prior month after paying this particular bill. It was much nicer to whip up a simple spreadsheet where I could make this one particular number interactive and see the results immediately.

So I was able to get a couple of simple but nice looking spreadsheets together quickly that gave me actual data. I could easily play with this data, or just be embarrassed by it (I have spent quite a bit on the iTunes Music Store).

There are still a lot of old-style spreadsheet rules in play, at least in formulas and the like. That’s made a bit easier by being able to use header names (ie, =SUM(Total) or =MINA(Date Purchased)). I think it was Lotus’ Improv, which first appeared on NeXTStep, that worked this way. In fact, I think with Improv, it was the only way you could work: there were no A/B/C/D columns or rows. This was part of a cool feature of Improv wherein you could drag and drop header representations and regroup the data visually without impact on the calculations. I still think that was one of the most forward-thinking spreadsheet applications. But, it’s gone. I believe there’s some open source variation on the idea, possibly written just for GNUStep…?

Still, Numbers is pretty decent. I love the free-floating tables. It does make it much easier to compose complex spreadsheet pages out of multiple tables and data types. It’s pretty easy to refer to other tables as well. And it’s nice to have non-tabular data (text, graphics, etc) floating free from those numbers, making it easier to adjust layouts without impacting cells.

I’m impressed enough that I’m quite likely to buy iWork ‘08, just for Numbers alone. I have a small need for Pages and almost no need for Keynote, but I do find myself needing to get on top of my finances and similar data. Numbers is the first tool I’ve encountered that I think will let me handle my odd needs without requiring a degree or summer course in spreadsheets.

Labels: , , , ,

13.4.07. The Web Will Not Replace the Desktop
Web 2.0 has excited us because we lowered our expectations so much. Of course web apps will get better, and one day will deliver the functionality we currently get from desktop software. They may even do more than our desktop applications one day. But isn’t it a tad strange that we think this is all a huge leap forward? - loose wire blog: It's Not the "Death" of Microsoft, it's the "Death" of Software

The author's main point is that while it's cool that people are making Mind Mapping tools in DHTML, they're still a long ways behind desktop apps like MindManager. He goes on to contend that there's just nothing exciting in the "offline" world in recent years.

While it's true that the web has made for some neat and very useful online tools, there are classes of software missed. There's a reason why we'll never get to the "every computer is just a web browser / flash player" ideal: professional software. It's a world I'm entering again as I'm finally getting my home studio together.

I'm talking about apps like Pro Tools, Reaktor, Final Cut, DVD Studio, Aperture, Lightroom, InDesign, Quark XPress, etc.

Granted, most people don't use those applications, but I think that it's a growing market. As technology grows and commodifies, we need tools to deal with it. The gap between pretty-good consumer gear and pretty-good entry level professional gear is pretty small now in many areas: digital photography, digital video, music, etc.

Now that I think about it, Apple has realized this for some time. They have a pretty good upgrade path. For those who get hooked playing with video in iMovie, there's Final Cut Express at a rather reasonable price. Those who really start to do well with that can go up to the full Final Cut Pro. For Music, there's Garage Band, Logic Express, and Logic Pro.

Within those realms, there's a huge array of plug-ins, virtual instruments, specialized sound tools and environments (Ableton Live, Reaktor 5, Max/MSP, etc). I am amazed at the sounds I get out of Reaktor, and that's only a single product in a single company's impressive set of offerings.

Perhaps the new web applications are freeing up resources on our own machines so that it no longer feels like some dreadful work environment, just at home. There are plenty of useful and usable online tools for doing quick writing, sharing, interacting, thinking, and planning. Typically they offer enough to be usable for those small (or even medium) jobs we occasionally encounter, while freeing us from having something overkill like Office for casual, personal writing. It's easier to specialize a computer for audio work by fine tuning system settings, throwing away silly applications, etc, without making that computer into an island. As long as you have a web browser, you can still check email, contribute to a planning document, etc.

But honestly, I don't think the Desktop is going to die - ever. It's great that we can do so much on the web, but I don't think the native experience is going to die, ever.

And even if you're not on a fucking plane, it does matter: when I moved into this loft, it took me a couple of months to get internet access down here. I was working on a lot of things for the office at the time, and I was able to take it home by just using my laptop: at work, I'd synchronise source code, copy stuff to my laptop and/or sync with .Mac's iDisk, and sync with .Mac for my calendar, etc; as such, even though I was offline, I could work. It was then and there, however, that I decided that although I liked Backpack, it wasn't worth paying for: I needed offline access. I needed, well, OmniOutliner and Tinderbox. My personal project files and note-taking documents are just too precious to be left online (this is why I don't and won't use Stikkit). If the occasional monster storm comes along and takes away the Internet for a few days, the worst feeling in the world would be being disconnected from my notes.

Strangely enough, these online note-takers, organizers, etc, all solve a problem that has plagued me until quite recently: how to do effective sharing of data between home, work, and laptop? How to not get out of sync? I love Tinderbox and I have a couple of big Tinderbox files that I keep on .Mac's iDisk. This means I usually have access to it. But sometimes, I forget to sync or close or save the document when I leave work or close the laptop. What about the little bits of random data, not yet filed, or not really worth filing into that larger document? How can I quickly enter, find, and share that info?

The answer didn't come from any web service, although lord knows I tried a few. The answer came when Tinderbox's developer, Eastgate, ingeniously started bundling Barebones' Yojimbo with Tinderbox. I had looked at Yojimbo in the past, but I'd gone through so many personal note taking / note capturing / note filing systems (Mac OS X has MANY). I didn't want to look at another such product and be fighting between "do I file it in Yojimbo? In Tinderbox? DEVONThink? Can I get to it from home?"

But Yojimbo has a killer feature: it syncs with .Mac! The same tool that I've used to keep calendars and contacts and Safari bookmarks transparently shared between three machines, finally someone made one of these note tools that took advantage. Now I have my enter-a-quick-note, file-it-later system that gets updated and merged automatically. No worries about having an out-of-date iDisk, about forgetting to save and sync. And best of all - it's 100% native and usable offline. And it doesn't get lost in the army of tabs since every goddamn web "app" is now just something that gets lost in a browser window (for those who wonder why I take so long to reply to mail sent to my GMail account, well, GMail sucks as an application compared to a native mail app. I just don't watch it regularly enough to stay on top of things).

So, anyways, I love a lot of the new web apps. But people need to get a grip. I've been hearing about "the death of the desktop" for eleven or so years now. Stop tricking yourself into thinking you're that high and mighty. If you don't understand the true value of native applications, professional applications, personal data, then you don't understand the desktop's power. As such, you're not going to kill it. Yes, please focus on tools that take work well on the web, tools that are simple yet useful. But don't think for a second that I want to spend every second of my computing day in a web browser, nor do I want to spend every second in an Apollo client. It's not going to replace everything, any more than Java, Netscape Constellation, or even Active Desktop did.

Labels: , , , , , ,