Small Apps, Loosely-Joined Into Contextual Tasks

By chromatic
November 20, 2008 | Comments: 8

I take minutes in two conference calls every week. Every call starts at the same time -- I look up the number in my calendar, dial the phone, then launch a Vim instance. I've written a few Vim macros to make taking minutes easier. After the call, I mail the minutes to the participants of the call.

I do this twice a week, every week.

Weren't computers supposed to automate some of these details for me?

Think of all the application-related bookkeeping I have to do to make this work. I need to manage my email, my calendar (in my Personal Analog Assistant, so no automation there), and a text editor (in a terminal window, so there's another application). The steps are:

  • Remember meeting
  • Look up phone number
  • Dial phone
  • Open terminal
  • chdir to appropriate directory for minutes
  • Open Vim
  • Take minutes
  • Close Vim and terminal
  • Find mail template for minutes
  • Insert contents of minutes (another filesystem navigation)
  • Resend mail

I'm not looking for a solution for this particular problem. I can solve it now; I could write a cron job to launch all of these applications at the right time and manage their interactions (and now that I've annoyed myself by listsing all of the steps and seeing exactly how much busywork I'm wasting to babysit my computer I might do that), but why should I have to?

Where's the user interface that can let me group all of these individual steps into a task? I don't want to think "I need to type something, so I need to open Vim, then save it somewhere, then open that in another application." I just want to think "Oh, it's time to take minutes for the meeting." Put in terms that programmers might understand, I want a declarative UI, not a procedural UI.

I have all of the apps I need. Now please, someone, let me put them together in the context of what I want to do, not how I need to do it.


You might also be interested in:

8 Comments

You make an excellent point.
Oh my god do I want that.

Even better if it can watch me and generate a first draft script based on my real actions. But I'll take what I can get.

Or you can use Windows.

@Hugo, which Windows features accomplish this?

I have no solutions, but I do have an observation.

"Small Apps Loosely Joined" is a decent first approximation to describe how the world works. It's similar to what Grady Booch described in OODA in the early 1980s: loosely coupled design.

Booch's full phrase was "loosely coupled with cohesion". Cohesion allows you to create a structure that functions with integrity while maintaining the loose coupling between the parts. Our musculoskeletal system is a brilliant example of a loosely-coupled system allowing a near-infinite repertoire of elegant and efficient movement.

When there are a sufficient number of decent parts hanging around, the focus shifts from the parts to the cohesion between the parts.

Thanks, @FloatingBones. I had in mind some of the ideas of good software development espoused by Booch and others, thought more inspiration from the title came from David Weinberger's book Small Pieces, Loosely Joined.

I find the lack of holistic, system-wide cohesion both amazing and distressing. I have a great text editor. Why does Firefox need its own text widget which has nothing Vim?

For some reason, RIAs concentrate on the worst possible UI platform -- the browser -- rather than interoperating loosely over RESTful HTTP. I doubt we'd have the Internet if it were built like Web 2.0 applications.

It's actually good news that you're both amazed and distressed. If you view the human body as a whole system, you'll start to see some of the near-universal ways that we undermine the cohesiveness of that system. An extrapolation of the most famous of Douglas Adams quotes comes to mind: we should not be amazed that our bodies are often in pain; we should be amazed that they're able to move at all. Holistic movement is intimately related to whole-systems engineering; body/mind instructors are masters of our loosely-coupled physical structures.

Man-made physical structure is invariably rooted in tightly-coupled systems; it's hardly a surprise that we first think that way when creating any kind of structure. Only when software engineers start taking a step backwards to examine what we're doing in a larger context do we realize the absurdity of things like overly-rich components. The "richness" of current RIAs is an illusion; it points to their fundamental bankruptcy.

Have you ever read Ingber's Scientific American paper "The Architecture of Life"? Google on that title and you'll find a PDF of the article. It starts to crack open our misconceptions about the structure of cells. I think that's a good thing for software engineers to examine.

Biological structures have had a lot of time to find what works. I entertain a notion that the Cambrian Explosion (~530 million years ago) was related to nature's finally learning how to use tensegrity to create our large-scale structure. If I ever run across Ingber, I'll ask him about that.


"Where's the user interface that can let me group all of these individual steps into a task?"

Though it's not available on your platform of choice (IIRC), Automator on Mac OS X may take you partway there. I'm not sure if it's quite flexible enough to read a calendar appointment and parse out a phone number without writing or obtaining an extra module or two, and it can't dial an analog phone for you, but most of the rest of the steps should be achievable.

You probably don't *need* the GUI aspects of Automator, but others in a similar situation may find it helpful, changing the often arcane incantations of scripting into a series of visually linked actions with easily understood parameters and prompts.

That said, I don't use it much myself. I don't have sufficiently repetitive tasks on my Mac that I've bothered setting up assistive tools.

I can do pretty much all of that with Outlook, Office Communicator and One Note:

1) Get Reminder for a Live meeting which already has all the participants listed.
2) Click on a link to start the Live Meeting call.
3) Click on the One Note icon, to start meeting minutes with a lot of the details already prepopulated.
4) Mail those meeting minutes out to the same participant list with another click.

Yes, it's a very Microsoft focused solution, but it seems to me the problem presented is not because their isn't a solution out there, it's the tools and operating system chosen.

News Topics

Recommended for You

Got a Question?