Designing the UI of Things for the iPhone#

Speaking of Things, it's fantastic (save the name). In fact, I actually ditched OmniFocus for Things a couple of months ago. Crazy, right? I know, especially after shelling out $100 for OmniFocus (Mac OS X + iPhone), but, well, I really like Things… and it's beautiful.

However, it's not without its faults, and the one that absolutely tears me up is its inability to sort by due date! Huh? This is a to-do application; I should be able to go into the "Next" focus and sort my tasks by the date they're due. In all seriousness, I spent half a day trying to figure this out, thinking all along that I was doing something wrong, that there was no way this feature had been left out. But, it had been.

Relatedly, this functionality is in the iPhone app.

I know someone at Cultured Code is reading this — please spend the four seconds and three lines of code it's going to take to give us due-date sorting for, you know, your to-do app. Please.  ;)

Update: Cultured Code tweeted the following just eight hours ago: "Things desktop: Added a mechanism to filter and sort by due date." Nice. Release it!

A tendency to lose perspective

September 15, 2008

On Saturday the girlfriend and I used the few free hours of my weekend to take in the sights, tastes and sounds of the Santa Clara Art & Wine Festival, which festivals we seem to frequent a lot lately. There's generally good, eclectic food and entertainment at these types of events, and so they usually make for a fun, simple day out.

Saturday was no different, except that I was repeatedly moved to tears.

It was mid-afternoon, and we were sitting in a large, open-air venue listening to a spot-on Tom Petty cover band. There were quite a few people enjoying the music, but not many were dancing. Before long though, an older, mentally retarded man shimmied up to the stage without a care in the world. He was having the time of his life, ‘dancing' anywhere he could as the music compelled his thoughtless motion.

I don't think he could have stopped moving even if he wanted to, and I couldn't take my eyes off of him (and I wasn't alone). I don't know what it was about him and his curious obliviousness, but it was quite affecting and enviable.

At some point, a lady whom I presumed was his mother, started dancing with him. She was positively glowing, obviously proud that this was her son; the music and the moment washed over her as she forgot about his next doctor appointment, or what his life might be like once she was out of it.

As far as I was concerned, the scene before me — and the story it told — couldn't get any more beautiful.

Then, as more people began to get up and dance, an obviously-in-love couple made their way to the edge of the group that had coalesced near the band.

She was able-bodied. He was in an electric wheelchair.

They both pretended that his legs worked, that he wasn't two feet shorter than her, and that no one was watching as they danced through American Girl.

There was something undeniably pure and true about both couples, and each person's confidence and pride in the other was manifest. It was a poetic scene for which I felt fortunate to have witnessed, and for whatever reason it had me missing my family, and appreciating more the girl leaning against my shoulder, holding my hand.

If I'm being honest, the whole episode reminded me a lot of my late mother, whose ability to fully and effortlessly live in the moment was something I always admired (even if it sometimes embarrassed me as a kid). I think I'll forever regret having never truly and completely shared with my mother one of her moments, especially since she always so easily and selflessly shared with me mine.

There's no doubt that my ‘big law' job, coupled with my personality, frequently causes me to throw myself into work, sometimes uncontrollably. The combination often makes it all too easy to forget about living. I'm getting better at compartmentalizing my brain, and "letting go" of certain things for brief periods of time, but it's not easy for me.

Last weekend I found myself truly enjoying the moment, and the person by my side, and I felt closer than I've felt in a long time to those no longer by my side.


I've been known to do some pretty crazy stuff on a skateboard, but this is just flat-out insane. They're lucky to be alive.

Ubiquity cracks open personal mashup tinkering#

Nice write-up from Leslie Orchard on Ubiquity, and some of the technology that preceded it. (If interested, Leslie also has put together a fantastic tutorial on writing a Ubiquity command).

I don't think I've been this excited about an application since Quicksilver forever changed the way in which I interface with Mac OS X, by providing essentially an interactive shell that lets you manipulate data in an infinite number of ways; Ubiquity seems poised to bring similar functionality to the browser.

How magicians control your mind#

[V]isual cognition is [now] understood not as a camera but something more like a flashlight beam sweeping a twilit landscape. At any particular instant, we can only see detail and color in the small patch we are concentrating on. The rest we fill in through a combination of memory, prediction and a crude peripheral sight. We don't take in our surroundings so much as actively and constantly construct them.

Giant clams fed early humans#

Fossil evidence that the researchers uncovered suggests the stocks of these giant clams began crashing some 125,000 years ago, during the last interval between glacial periods. During that time, scientists think modern humans first emerged out of Africa.

I love NetNewsWire (on the iPhone)

August 22, 2008

Ever since the introduction of Bloglines, and later, Google Reader, NetNewsWire and I have had an on/off relationship, and by on/off I mean effectively non-existent. Every once in a while I'd fire up NNW to see if it offered the features I currently desired in an aggregator, but it always seemed to come up a bit short. Don't get me wrong, for the most part it's pretty good — hell, it used to be the best aggregator out there, no matter the platform — and I used it for quite some time before the big web apps came along, but it's far from the best now; that title belongs to Google Reader.

Unfortunately, the problems I have with NetNewsWire on the Mac aren't minor; indeed, they cause the app to completely and continuously get in my way. My two biggest hang-ups are as follows:

  • You can't mark an item as read without manually clicking a button or hitting the "k" key. What? This makes me crazy. Google Reader introduced a brilliant method of marking items as read as they are scrolled through. This is great because it requires from the user nothing more than the action he must take to read the item. The absence of this feature becomes doubly annoying when reading a feed with a large unread item count, because you effectively are forced to finish skimming every item, unless you don't mind re-reading certain items again later (i.e., you have to finish skimming every unread item so that you can confidently hit the "mark all as read" button). Yes, I'm aware that you can go through each item individually using keyboard shortcuts, but that is a terribly inefficient way to work through your unread items, especially when we're talking about hundreds or even thousands of posts.

  • You can't show, in your list of feeds, only those feeds that actually have unread items. What? I just can't imagine that implementing this would require more than a few lines of code (and maybe just one), yet still we're required to scroll our entire list of feeds (in my case, ~300). Sure, there is the "Sort by Unread Count" option, but that really only works if you don't have any folder structure; if you do, then you are still made to scroll through your entire list, else you can't be sure that there aren't unread items near the bottom of the list.

Enter the NetNewsWire iPhone application

After not being able to get away from chatter about NNW's iPhone implementation (mostly on Twitter), I decided to give it a spin, not expecting much. Well, it seems my low expectations were entirely unwarranted. The iPhone application is fantastic. In fact, I dare say I enjoy reading posts on the iPhone app more than the Mac app. I'm serious.

The iPhone app teaches an old dog new tricks

The above complaints I have about the Mac version are nowhere to be found in the iPhone app: when I read an item, it's automatically marked as unread (and said status is synced with the cloud), and I'm only shown feeds with unread items.


The iPhone app follows whatever folder structure you've laid out in the Mac and/or web clients. Further, you can browse items by folder (instead of just folder-->feed), and can mark all items within a folder as read, without actually going into any of the posts (after, say, skimming over the title of every post in the folder).

Built-in browser

I love, love, love this feature. When you are looking at a particular post, you can tap the post's title and be taken to the post's web page, from inside NNW — you don't have to leave the app and open a new tab in Safari. This is indescribably useful, especially for those sites that still refuse to offer full-content feeds.

Ability to filter feeds

If there is a feed you don't want to see on the iPhone (in my case, I have quite a few, including all of the photoblogs I follow), you simply tap the "edit" button in the feed-list view (or slide your finger horizontally on the feed name, as in Mail), then tap the respective "minus" button, then the "delete" button, and finally choose "Don't show in iPhone." Very nice.

Marking items as read

As noted above, as soon as you "open" an item on the iPhone app it's marked as read, and after reading the item you can either go back to the list of items/feeds, or hit "Next Unread" and be given either the next unread item in the current feed, or, if you are on the last item in the current feed, the next unread item in the next feed with unread items. This is a great, time-saving feature.


Like the Mac client, the iPhone app allows you to save any item to your "clippings" folder (NNW's name for a post you want to save for later use, similar to Google Reader's "starring"). You can't yet view your clippings on the iPhone, but they, like everything else, are synced to NewsGator Online. (Relatedly, is there a way to delete a clipping from within NNW on the Mac, or can this be done only through NewsGator Online?)

The experience

We can talk ad nauseam about what features are and are not (see below) in a particular application, but at the end of that day it's all about the overall experience, and that's where NNW really shines. It's just so much fun to use; fun because it's easy, and fun because it makes me feel like I'm being efficient with my time. Once a decent number of feeds have been loaded, I can blaze through them without much delay. It's fantastic.

Since installing the app, I find myself reading news a lot more in bed, before I get up in the morning. I roll over, grab my iPhone (which is sitting on the nightstand because I used a podcast to help me fall asleep) and start rocking and rolling with the days' news. By the time I actually get out of bed, I've already made a sizable dent in my feeds. This works only because the app is not annoying; indeed, it's quite a joy to use.

Issues with the iPhone app

As far as the interface goes, there isn't too much I'd change. That said, the following would be nice (and are no doubt being worked on as I type this):

  • The ability to sort posts within feeds so that older articles appear first. This is how I prefer to read my news (i.e., in time order), and the Mac app allows it.
  • A "Next Unread" button is provided at the bottom of every post, which is a very nice feature and makes going through multiple posts fast and easy. However, I wish it would tell you, when (or before) you click it, whether you will be pushed into a different feed with unread items (which happens when you are at the current feed's last unread item).
  • No "landscape" mode for the built-in browser. Surely it's coming.
  • No "mark as unread" option.
  • Images routinely (always?) scale incorrectly, which generally requires you to scroll left/right/up/down to view them.
  • No way to set "Don't show in iPhone" at the folder level (i.e., each feed needs to be configured individually).
  • No "pagination" (i.e., a very active feed with, say, 200 unread items, has to be read either all at once, or individually).

To the Google Reader team

As far as I'm concerned, Google Reader's web-app for the iPhone is second to none, and is damn near as perfect as it can be. It does what it needs to do in the most efficient way possible; however, it's somewhat held back by the medium. I've very few problems with it, but at the end of the day each user operation is, for all intents and purposes, tied to the web, one-to-one (i.e., user chooses something, you download and display it). This is slow (relatively), and can be oh so aggravating.

Accordingly, please, please, please develop a native iPhone app for Google Reader (and model it after NNW). Until then, I think I'm going to have to stick with the original king.

Also, while you're at it, let's go ahead and bang out a Gmail app too.  ;)

The Nervian CardReader Pro#

This is "the first card reader to integrate seamlessly with the Apple Mac Pro chassis. Access 52 different memory cards and all four slots simultaneously through a single high-speed USB connection."

Of course this comes out just a couple of months after I finally buy a mult-card reader. The CardReader Pro looks really nice, and I'll likely pick one up, I just wish it came in aluminum (to better match the Mac Pro).

Smart Archives v2.0 (now with caching)

August 17, 2008

I've finally gotten around to updating Smart Archives, and have added a pretty significant feature, namely caching.

I could find no way of working the plugin into the already-available caching subsystems and so I decided to go it alone. I had a hunch it was going to go down like this, which is probably why I waited so long to whip up a solution. At the end of the day, the changes actually were quite simple, but getting there was anything but.

Essentially, the plugin now writes to a file the contents it generates, instead of pushing the contents directly to the screen, and makes sure that these contents are modified only when a new post is published. This ensures that the rather expensive smartArchives function is called only once for every new post, instead of once for every external request of the archives page.

Annoyingly, WordPress will not let you use pass variables through the add_action function; trying to get this to work was making me crazy until I finally decided that it just couldn't be done and began thinking of a workaround. If you've been able to get this to work, I'd love to hear from you (I could find nothing on the Net).

I note that currently the plugin does nothing when you delete a post. Ideally, it would update the archives file, but I can find no trigger that will call a function after a post has been deleted. The one action that I thought might work, delete_post, actually triggers too early: "Note that at this time, the post has not yet been deleted."


For the past couple of years I've been relying on users to correctly set their WPLANG variable in the wp-config.php file, but it seems many do not, and even those that do sometimes still see language-based errors. Also, WP's built-in language tools seem to break SA for some users, which kind of rules out a universal setup for this sort of thing.

In light of these issues, I've added some new, and very simple instructions regarding localization, which instructions should take care of 99% of the use cases.

Cooking and cognition: how humans got so smart#

In most animals, the gut needs a lot of energy to grind out nourishment from food sources. But cooking, by breaking down fibers and making nutrients more readily available, is a way of processing food outside the body. Eating (mostly) cooked meals would have lessened the energy needs of our digestion systems, thereby freeing up calories for our brains.

An absolutely beautiful skate video#

An absolutely beautiful skate video shot with an Oakley RED ONE at 120 frames per second.

Even if you don't care for skating, you really should give this video a look; it's the sort of thing that I could, quite literally, watch all day long. (Be sure to turn on HD if it's not on by default).

The future is not a story#

If I were in charge of a futurist seminar, one of the first things I would probably do is discourage anyone from mentioning any fictional story whatsoever. I do believe that fiction does have something to teach us about future possibilities, but the bias towards interesting stories is so overwhelmingly strong that most casual thinking about the future is thoroughly contaminated by it. No narrative can predict the future, because the future is a blur of uncertainties from our perspective, and will only appear like a narrative in retrospect.

Striking photos of the 2008 Olympics Opening Ceremony#

If you didn't get a chance to watch the opening ceremony, you really missed out. It was indescribable in every way — color, scope, execution, etc. It was truly beautiful, and I seriously doubt it will ever be topped.