FlexTime 1.1a1

October 19th, 2006

One of the most common requests from FlexTime users is that the elapsed and remaining time for routines should be displayed in a more easily readable form then as a teeny pie-chart. So I’ve been planning to add some additional UI to reflect this information while a routine is running.

But I’m sort of blocked on how to do it right. I thought I’d use the unused real-estate in the “Activity Is Running” details pane, but it was hard to find a good compromise between “so big that it dominates the section” and “too small to be guaranteed easily readable.”

So I need some feedback. If you care about this feature I’m hoping you’ll try FlexTime 1.1a1 and report back with your observations. Ideally you’ll be so inspired that you’ll come up with a mock-up image of how you think the information should be conveyed.

For the time being I’ve decided to GO BIG and make the feature as useful as possible to those who have been patiently waiting for something. So while you’re running a routine in FlexTime 1.1a1, you’ll bold graphical feedback:

Note that the top portion reflects just the current activity, while the bottom portion reflects the entire routine. Click either one to adjust whether it shows the completed time, remaining time, or just stays quiet. If you save the document after clicking, it will stick with the document when you reopen it.

I really doubt this will be the final UI for this feature, but I need some inspiration before I can finish it up. Thanks for trying it out and sharing your comments!

NOTE: I’ve only made the UI changes in the English localization, so if you’re using German you won’t see the changes unless you turn off the German localization for the app.

Tangerine Dream App

October 19th, 2006

The boys at Potion Factory are at once inspiring and depressing. It seems that in the space of time it takes me to think about an app and decide to maybe, sorta get started on it, they’re able to design and implement a totally functional, fun, and beautiful app that completely exceeds my expectations. Either I should take heart in seeing that determination and hard work can produce gorgeous results, or I should give up and choose a new career.

Tangerine has a very clear primary goal: analyzing your music’s beats per minute (rhythmic speed) and intensity. And it achieves this goal with splendor. I love how, upon launching the application for the first time, it doesn’t waste any time asking me whether I want to analyze my music, it just gets to work.

The application has just made my life better. If nothing else, I now I have a BPM value assigned to all of my iTunes tracks. How cool is that? The last time I looked into this problem, the only solutions available involved listening to your music while tapping the mouse to the beat. Ugh! Tangerine fixes this quickly and begs the question: why doesn’t iTunes do this for me? In my brief tests, the BPM and beat intensity values are very accurate. If it happens to pick up on the wrong emphasis, it might predict a BPM value that is either twice or half as fast as you really feel it. In that case, a contextual menu item offers to adjust the value either direction.

It will be great fun to put together mixes of same-speed music for running and walking. But it’s also fun just to look at the values and appreciate the unexpectedly shared attributes between songs from different artists and genres.

As far as I’m concerned the features I’ve described so far are plenty for any 1.0 release, but Tangerine also sports a fairly comprehensive “iTunes-like” interface for browsing and playing music, as well as an innovative interface for putting together mixes visually.

Would definitely look nicer if more of my tracks had associated artwork. I suppose I should get on that. But the idea of representing the mix visually like this is brilliant, and it’s a tasteful dose of unconventional UI.

But the timeline view in spite of its pluses is the source of my very few gripes. The emphasis on making a pretty graphical image seems to override the functional value of having the actual name of the song visible at all times. Take the example above: the third song in my mix is a mystery to me unless I hover over it. I’d like to see the name no matter what, even if it has to be squeezed to microscopic size, or hyphenated and split across two lines. The app is altogether too beautiful to stop short of blowing me away in this area. I’m also slightly annoyed that the overall size of Tangerine’s window will go no smaller than 920×574, when I am confident that each of the subsidiary views would survive further shrinking.

One gaping hole in this otherwise polished pre-1.0 is the utter lack of AppleScript support. I suppose the good news is they still have time to rectify this problem before shipping. It could certainly be argued that once Tangerine has done its thing and the values are transferred to iTunes, we can use iTunes’s scripting to access values like BPM, etc. But Tangerine is more than that. We need access to values like beat intensity, and the ability to programatically create and manipulate mixes. At least give us the hope of scriptability. Right now we’re greeted with the ugliest of all Script Editor dialogs.

Tangerine is stunningly beautiful and functional. The degree to which they’ve mimed iTunes’s interface might be overkill for what the app does, but it actually gives me a funny tinge of hope that it could one day evolve into a full-featured alternative to iTunes. There’s an awful lot of app there for “just a BPM analysis tool.” Maybe they’ve got some surprises in store for the future.

As The Eagle Files

October 18th, 2006

Michael Tsai is the man behind C-Command, and well known for the past few years as the author of SpamSieve and DropDMG, in addition to his tireless work on ATPM. Last week he released EagleFiler, and I’m pleasantly surprised to see such a mature 1.0 application drop (swoop?) unannounced from the sky.

I’m not sure what to make of the name, though it does sport an awfully cute icon. I suppose if any anthropomorphized animal is going to take control of my filing system, it might as well be the national bird of the United States. Maybe it’s a good omen, a sign that data carefully stashed in EagleFiler will get along nicely with the IRS come tax time.

There has been renewed interest in organizational and productivity apps lately, and I’m probably smack dab in the middle of the target audience for them. I’m relatively organized, but only through the habitual use of old systems that, truth be told, only barely work. I’m inclined to store data in series of plain text files, hierarchically organized in a “Reference” folder in my home directory. Something like EagleFiler, or Yojimbo, or VoodooPad, or SOHO Notes should be a lifesaver for me. So why haven’t I gotten on board?

The big problem facing all of these apps, as I see it, is they require lifestyle changes. Even if it’s unarguable that the lifestyle change would be for the better, it’s hard to break the inertia of daily habit. I think the same problems apply to my own FlexTime and FastScripts applications. With some investment, customers may see their productivity skyrocket. But aha! There’s the rub – they require an investment.

In the case of these all-purpose data-filing applications, two major investments spring to mind. First, users must invest a change in their personal habits. Second, they must invest trust in the software developers that their data will remain safe and free for migration to another system if that becomes necessary.

It looks like Michael recognized the “trust factor” issue when he decided to use an open format for storing EagleFiler’s managed data. As described in the documentation:

The library is just a special folder in the Finder that EagleFiler manages. You shouldn’t re-arrange the files and folders in the library except through EagleFiler, but other than that you can treat it just like a regular folder.

Whoah, neat! This is a dream feature for timid, uncertain users. And it’s what makes the application more of a true “filer” than some of the other solutions. While other apps do a great job of storing your information, you are not so free to dump the contents out on the floor and go rummaging through them. With EagleFiler, you can empty the filing cabinet before you burn it. Other applications tend to offer similar abilities, but only through explicit “export” commands, where the sanity of the resulting data is in the hands of the application. EagleFiler makes it easy to jump on board, because it’s just as easy to jump back off.

EagleFiler’s interface is based around the familiar three-pane interface, with a source list on the left, a sub-list top-right, and detailed editor bottom-right. In general the interface and workflow of EagleFiler are quite elegant, but a few areas jump out at me as cumbersome. Of the other applications I’ve mentioned, EagleFiler seems most similar to Yojimbo, so that’s what I’ll compare it to. The process of creating new text files or folders, for instance, is slowed down by a modal sheet presentation in EagleFiler:

I’m not a fan of the modal sheet when an inline direct manipulation would be just as effective. Especially frustrating for a keyboard-heavy user is that the sheet can’t be dismissed from the keyboard, unless you’re editing the title. But by the time you’ve edited the title and tabbed into the content area, there’s no way to get back into the title by tabbing, because it’s interpreted as a tab in the text content. Lastly, the keyboard shortcuts for “New” in EagleFiler have mixed up priorities. Plain Cmd-N creates a new library, something I’m liable to do only every once in a great while. To add a new text file, which I could end up doing quite often, I have to press Ctrl-Cmd-N, then go through this sheet business.

In Yojimbo, the “New Note” command is Cmd-N, and it simply adds the note to your list, immediately entering the inline title editing mode. From here you can type a title and tab directly into the inline text editor. Creating a new folder (“Collection”) is Cmd-Shift-N, just like EagleFiler (and the Finder, so a good choice all around). And creating a new library … well, that’s impossible in Yojimbo (without using something like rooSwitch). Score one for EagleFiler on that front.

I think the usability problems are byproducts of EagleFiler’s noble intentions. Its design is as “primarily just a filer,” which gives us the very positive data-storage neutrality that I praised earlier. But it puts it in an awkward position when it comes to streamlining the user experience. EagleFiler doesn’t really want to be an editor, but it has to be in order to satisfy users. That’s why the “New Rich Text File” sheet exists at all. For instance, you can’t edit Rich Text in the main interface of the application, even after you’ve added a new text document. Double-clicking the document opens it in TextEdit, or (I assume) whatever your default RTF editor happens to be. Michael obviously saw the value in being able to quickly enter text, but the role of EagleFiler as just a filer is at odds with that goal.

The same reluctance to be an editor causes problems in the capture mechanism. EagleFiler, like Yojimbo, sports a global keyboard shortcut for capturing data. But it relies heavily on support for specific applications. If you press the capture key in an application for which there is no plugin available, you get an friendly yet frustrating reminder of the missing support:

Note the irony of the “missing support” for EagleFiler itself. A cruel trick on my part, perhaps. Attempting to capture from the capture app itself. But it’s a trick that doesn’t faze Yojimbo. It’s extremely cool that EagleFiler supports an AppleScript-based mechanism for adding intelligent support to specific applications. But that’s a power-user feature that needs to be hidden behind a general-purpose capture mechanism. EagleFiler would do better to offer a generic capture mechanism that works in all cases (for instance by offering to capture the clipboard contents), but perhaps offers a gentle reminder to power-users that the capture mechanism can be customized on a per-application basis.

EagleFiler is new, and has a lot of things right straight out of the gate. But this is a competitive market and some concessions are going to need to be made to the ease-of-use and “do what I mean, not what I say” functionality that Yojimbo offers. I’m looking forward to watching the evolution of each of these applications as they hopefully spur each other to greater functionality and streamlined user interaction.

Taking The Blame

October 17th, 2006

Apple shipped a Windows virus on a very small number of iPods, but like a child who can’t say sorry without adding a “but” clause, their announcement falls short of complete contrition.

“As you might imagine, we are upset at Windows for not being more hardy against such viruses, and even more upset with ourselves for not catching it.”

John Gruber picked up on the inappropriateness of this language, and I agree. Let me see if I have this straight. When making commercials, Apple celebrates Windows’s greater susceptibility to viruses, but when the problem actually bites them in an embarrassing way, it’s time for exasperated anger.

You can’t have it both ways, Apple. If you’re gonna run in that race you have to play by those rules. Would it be nice for Windows to improve its resilience to viruses? Sure. But in that culture, one of the ways viruses are controlled is through diligence by vendors in not redistributing them. There’s nobody to blame here but yourselves.

This is a great example of a situation where a simple confession would have been best. “Yes. We did it. We’re sorry. Let’s move on.” Or, applying a simple edit to their actual statement:

“As you might imagine, we are upset with ourselves for not catching it.”

Yes, that I can imagine.