Frictionless

Order GTD Book or Audio

AudioBook: David Allen - Getting Things Done: The Art of Stress-Free Productivity - Getting Things Done: The Art of Stress-Free Productivity

Frictionless is my free program designed to make keeping track of your next action as easy as possible. In other words, it's a to-do list program in the GTD style. That is unlike most to-do list programs, its designed to encourage you to turn projects into actions, and to show you only the actions that you can currently perform at any one time (or want to perform). That is, it first encourages you to turn something on your to-do list that really requires a whole set of actions on your part into a list of the actions required. Then, it lets you clear out those actions that you can't do at the moment and focus on the things you can focus on. It builds on the work of both David Allen and Steven Covey, from their respective books Getting Things Done and First Things First. Of the two books, Getting Things Done is the critical book; I can't recommend the book highly enough. 

If you want to be more productive, with less stress, Frictionless can help you. But you really need to read the book. The built-in help will help bootstrap you into the GTD ideas as they apply to Frictionless, but I can only go so far. Unlike most productivity systems, GTD covers a lot of very practical down to earth stuff. Frictionless only interacts with part of GTD; I don't cover how to set up your filing cabinet even though that's turned out to be one of the most important tips for me.

If you're already familiar with GTD, Frictionless has several things for you:

0. Accelerated item entry. You can enter a task, specify its project and context all at once. So you can quickly empty your mind of all the things that are bouncing around in there so you can focus on actually doing.

1. You have two views of your actions. An outline for organizing what you're doing, and a action table for actually doing things. So you're very much encouraged to break the things sitting on your to-do list that are really projects into actions. Frankly, any GTD program that doesn't have an outline is broken. 

2. Contexts. Standard for GTD programs, but not for to-do programs in general, and built-in as a key feature. 

3. Filtering/Focusing. Frictionless has a number of ways to hide things you can't do at the moment: You can mark them as Someday per GTD, as dependent on previous items (Sequential), or you can filter by time, area of your life, whatever. 

4. Focusing. You can choose to focus on a high-priority project or area of your life exclusively. For instance, at work, I focus on my professional projects and their associated actions since knowing I need to change the cat box doesn't help me at work. 

4. Paper Output. Frictionless can easily output your actions to 3x5 cards so you can carry them around. This ties in with filtering so that you only have to print out the stuff that makes sense to print out.

5. Fuzzy Recurring items. Have to change the cat box every 3-5 days? Frictionless can help you.

6. Open-Source. Don't like how something works? Want a feature? Talk to me...

My development blog is posted below with the changes as they come. The new version is currently in the development stage, which means its not even at alpha/beta yet. So it can be buggy and its far from polished. Yet I'm using it every day. 


You might want to look at a screencast showing Frictionless in action here.


Frictionless 2.0d18

Pretty minor update, I just fixed the problem bringing up NSAlerts that was hitting a few newbies. 

Frictionless 2.0d17 Release

So d16 was crashing when trying to upgrade an old .xml store to the new sqlite store. So I had to fix that. Along the way I decided to bundle RubyCocoa back inside Frictionless, since I'm never quite sure what version is in the OS anyways. 


Thanks to David Rostenne who sent me his .xml file, I was able to track down the problem. Ironically, I seem to have been doing everything right, it just wasn't working. I think I ended up brute forcing it though, and now it works. 

Frictionless 2.0d16 Release

I just pushed out a new release of Frictionless. It has everything that was in the "Giant Checkin" I mentioned. 


My favorite new features:

  • Quick Split - This lets you click on an item, and enter a whole bunch of sub-items underneath it, "splitting" a task into a project made of sub tasks. 

  • Defer - This lets you select a bunch of items and push them off into the future

  • Templates - I have this giant set of tasks I have to do every month for our site deployments at www.ilok.com. So I've entered them all into a template, and once a month I push a button and they get shoved into the outline.

  • Integrated Toolbar - It just looks so much nicer.


Giant Checkin

Just did a giant checkin of all the new stuff I've been working before I go on vacation for a week:


  • .Mac Syncing
  • ToodleDo Syncing
  • Sync with Mail
  • New Toolbar
  • Quick Split (quickly split an item into sub tasks)
  • Deferring
  • Delegating
  • ILCrashReporter
  • changes for testing MacRuby
  • Template Window
  • More Schema Flexibility
  • Now uses SQLite storage instead of XML.


I'm going on vacation, so I don't want to push out a release, but if you can check it out and build it, have at it. Note that it will migrate your old XML store to SQLite, so be forewarned.


Leopard Progress

I've gotten some time to bang on Frictionless lately, and its going pretty well. 


Things I've done:


ToolBar is an NSToolbar: The tools on top are now part of a tool bar. Which means you can show/hide them. So if you get the task list the way you want it, you can now hide all the panes but those, then hide even the toolbar. 


Sync Services. Turns out with Leopard, its really easy to integrate with Sync Services if you're using CoreData. I'm not syncing with iCal, because I've come to believe that what I really need to do is coexist with iCal. That is, it would be better for me to come up with a "Today" view that showed you both your iCal items and your Frictionless items you've said you want to do today then it is for me to try to pull all your iCal items into Frictionless. 


ToodleDo. So I've written code to export my Frictionless items into ToodleDo, whereupon I found that ToodleDo doesn't support fully hierarchical lists. Which is kind of a bummer. I couldn't find any other online to-do services that were fully hierarchical and had an API though. At this point the code is mostly one-way, I need to add syncing back down from ToodleDo for it to be fully functional. 


Mail Sync. Leopard has the new scripting bridge code, so I was able to use that to move items in/out of designated folders in Mail. Coupled with Mail Act-On, that means that you can shove emails that need to become to-dos directly into the right folder with two keystrokes while you're reading mail. I already use Mail Act-On to do this now, so its no extra work for me. 


That inspired me to build in a whole delegation mechanism, which is what I'm working on now. If you delegate a task, it bumps the start date (so you don't have to look at it), changes the task to "follow up w/ Foo Re:  <previous title>", and optionally generates an email to that person. Once I have the import side of that finished, that means that if two people are both running frictionless they can exchange tasks pretty easily. 


Templates. I fixed some bugs with Templates and made them work better. There's a new window that shows you all your top-level templates and presents a button that instantiates the template. This is great if you have something you have to do every so often that is a whole set of complex tasks. 


Anyways, that's what's going on. 

Time Machine Perspective

I hacked this together back in December. It's a patch on GrandPerspective that sets the file size to zero for multiply-referenced files in your Time Machine backup. So you end up with only the files that have been backed up once. This is really useful for looking for files that are unintentionally filling up your Time Machine backup because they're large, and they change by small amounts constantly. 


You can download it here


Note that I did very little of the work here, most of it was done by the author of Grand Perspective. 

Leopard

So I just put up a public link to the Leopard version of Frictionless. Going forward, all the future versions will be Leopard only. Why?


It's not because I want the latest/greatest. (a user asked me)


Steve Jobs gave a speech right after he came back to Apple that illustrates why. He said that programmers can build programs that are the equivalent to a building about 4 stories high before things collapse under their own weight. But if the operating system provides 10 stories for the programmers to build on, you end up with programs with 14 stories of functionality.


When Tiger came out, Apple introduced CoreImage, and subsequently you see all these cool Photoshop replacements. So instead of paying $799 for Photoshop, you can now pay $79 for a program that does most of what Photoshop does, and does it faster, because its built on those 10 floors provided by CoreImage.


With Tiger, Apple also introduced CoreData, which is really what made Frictionless possible in the first place, because I could build on top of that. 


With Leopard, Apple has fixed a number of things I've had problems with, and provided things that will let me make Frictionless better. Given that I work on Frictionless in my spare time, my choices are either not add those features, or make it Leopard only. So the next release will be Leopard only. 

ToodleDo

I've finally found a decent online to-do manager that understands contexts, sub-tasks/projects, works with the iPhone, email, SMS, etc. 

Check it out. I'll be supporting it from Frictionless.

Frictionless 2.0d15

Pretty much just bug fixes. I haven't been able to push out a release because of issues with RubyCocoa and PPC, and a bug in RubyCocoa. 


Specifically the bug where you couldn't re-expand the panes after collapsing them is fixed. 

Frictionless 2.0d14

In case you haven't seen the App cast, I had to push out a fix for a bug I hadn't noticed after getting so excited when I fixed the RubyCocoa problem I was having: Clicking the filter buttons was trashing the name. 

Frictionless Screencast

Frictionless Screencast

If a picture is worth a thousand words, what is a video worth? Here's a screencast demonstrating the new user interface, right on the heels of OmniGroup demonstrating their less-capable but prettier interface for OmniFocus. I think Frictionless is far more capable because you can have as many of the Action Browser panes open at once as you want. But I've been using Frictionless for a year now, while OmniFocus has been changing daily, so I have the advantage of experience in figuring out what GTD users really need. Plus you can download and play with Frictionless now if you like.

Frictionless d13

In case you're wondering, I'm still working on Frictionless. In fact, I fixed the "delete too much stuff" bug that Jason reported. I've just been on vacation and a business trip and WWDC. So the fixes are checked in, I've just stumbled across a bug with RubyCocoa I have to track down first before I can release d13. 


Update: Just figured out the bug in RubyCocoa, so I was about to push out lucky d13. 


  • Fixed the bug with deleting a whole hierarchy of actions. Thanks to Jason for reporting it.
  • Added automated updates via the very cool Sparkle framework.
  • Fixed the bug where when you drag a tree of actions in the outline to a new parent, the tree got flattened. Now just moves the parents of the sub items.
  • New RubyCocoa Version
  • Marking/unmarking a tree of items as someday should be more obvious. That is, if a parent of an item is marked "someday" so that it and all of its children aren't considered "actionable" then the children show up marked as someday as well. If you unmark the child, it unmarks the whole tree.
  • Hitting a, t, or d switches the filters between actionable, to-do and done per a user request.
  • Quick Start is now integrated into Frictionless via WebKit
  •  

Frictionless 2.0d11 & d12

All that stuff I thought was resetting the caches? It wasn't. But it does now. Sigh. This is what happens when you push out a release just before going on vacation...

Frictionless 2.0d10

First change I made to this version was to make the "All/Actionable/Done" control into an "All/Actionable/To-Do/Done" control and directly link it to the associated filters. That made the app much slower, so I tried to figure out why, and realized that many of the calculations on an action had to be done recursively up and down the tree. So I implemented some caching. Adding a cache is easy, its knowing when to clear the cache that's hard. So I had to come up with a solution for that. That actually fixed some things that were flaky, but adds the possibility that the browser could be out of sync. Seems better then before though.

With the control tweak and caching accomplished, a side effect of directly linking the completion filter control to the associated filters was that the numbers were off. So I fixed that, and made all the filters display 3 numbers: Actionable Count, To-Do count (if some undone items aren't actionable), and Done count.

One of the key things I'm trying to do with Frictionless is to make it so that things that aren't currently actionable can "go away" until they're ready, hence the distinction between "actionable" and "not done".

Someone found a crash dragging from the outline to the action view, so I fixed that.

There's been a long standing bug where closing the context window meant you had to relaunch the app to open it again, so I fixed that as well. It only bugs people the first time they use it, but still.

Someone complained about the maximum font size, which was fair, because even I thought it was too big and I hadn't gotten around to adding the font preference control. So I set a smaller maxiumum font size and tweaked the padding around the line so letters wouldn't get cut off.

It was about time to add some tool tips, so I did that as well.

Now, here's the rub. I'm going on vacation, so this will be the last revision for awhile. Feel free to send in comments/bug reports/feature requests in the meantime, because I often put those in front of my own plans.

Frictionless2.0d9

d8 Build didn't work on PPC, just Intel. Sigh. New one works everywhere.

Frictionless 2.0d8

The move to Ruby pays off big time! I can now print my to-do items to 3x5 cards so that I can take them with me when I'm not at my computer. So can you, just print them to card-stock they come out 4-up. I'm using the template from www.diyplanner.com so they look great. The templates are pretty easy to edit, so anyone who knows a bit of CSS/HTML can send me a new template, and I can integrate it into Frictionless.


In Googling Frictionless I found that one feature people wanted from the old version was the ability to mark items as sequential. That is, if you have an item that depends on the previous item being finished before you can even start, its annoying to have to see it in your action items at all. So I added a new action mode "is Sequential". Marking an item as sequential filters it out of the actionable items until the previous actions in the project are done.


Several bug fixes including a crash! A note about programmers: We fix bug reports, not bugs. That is, 2 of these bugs got fixed only because someone sent me a report about how to reproduce them.


The outline now has variable-height rows. I need to integrate changing the font preferences, maybe that will be next. Also, the checkboxes in the outline view are now hidden for projects instead of just being disabled, which looks much cleaner.

Frictionless 2.0d7

If I want to sync with Google Calendar and Twitter, which are more or less the next two features planned, then I needed to add some preferences support.

So I added preferences to change the colors for the various task states.

Meanwhile I fixed a bug with figuring out the next action, a bug with setting dates or times when there isn't currently a date or time, and a bug with sorting the tasks by context. Oh, and if you set the task name, the full set of quick entry commands work (@, > :U, etc.)

Frictionless 2.0d6

The filter buttons are now left justified based on a user suggestion, which looks much better.

The filter buttons now display how many actions they'll reveal (assuming no other filters except the any/actionable/done).

Both the outline and task columns can be turned off on by control-clicking the table!

Do Time, Due Time, and Start Time are newly available columns.

This means that...drum roll...except for AppleScript, the new Frictionless can be configured to do everything the old Frictionless could do.

I removed anything I wasn't using from the OmniFrameworks stuff, so its back down to under 800K for a download!


I have to say, having one action browser focused on Personal and one on Professional just kicks ass.

Frictionless 2.0d5

Ah, the new UI design comes to fruition. The action browser is now, quite frankly, kicking ass. Basically, the filter settings are now buttons, and sticky. So you can set them up how you like them, and close them away.

For instance, I've found that choosing "This Week", "Past Due", and "No Do On Date" in the time filter works great for "things I should be thinking about this week". I can then close the time filters away and bring up the context filters. Clicking the "Context" button selects all of the contexts, then I turn off the ones I don't care about (like "Checklist" and "waiting for").

Frictionless is really helping me kick ass at work too, where I have a zillion different things to keep track of, none of which can be worked on in a steady stream.

Frictionless 2.0d4

Was able to get down and dirty with using Frictionless today, which meant lots of bug fixes today quite a few of them crashers. The new Focusing feature rocks, as I was really able to zero in on various projects with the browser, then back out as needed. To that end, the quick entry now sets the parent if you focus on a single project and haven't set it manually.


There are some other new features in the Process menu like grouping/ungrouping. Return-without-the-command now works to enter a sibling action, option-return for entering a child. So you can enter a bunch of items more easily with item-return-return-item-return-return-item. The less-than and greater-then signs now expand-contract the selection.


The action pane lets you show/hide columns by control-clicking. I don't have this working for the outline view yet though as the OmniFramework code I was using didn't get along with the outline view for some reason. Adding the OmniFrameworks made the app quite a big bigger though, so I may have to go and pick just the code I want out of there.

Copyright 2007, Pierce T. Wetter III