Happy New 2009!

The new year is here, and I’m sure some of you are hoping I never blog about the iPhone again. I’m not in the habit of making New Year’s resolutions, so I’ll make no promises beyond skewing future posts towards programming in Objective C and the using the iPhone APIs rather than reviewing apps or fawning over the device like a fan-boy.

I have some long-time draft Documentum posts that should see daylight soon as well, and the new smart container feature in D6.5 has me pondering the fate of virtual documents and EMC’s folder fetish. Thanks to Brilliant Leap for sending me the link and distracting me from iPhone adoration for a few minutes.

Finally, kudos to the makers of WordPress 2.7.  Constant interface changes make me a little crazy (glares at Lotus Notes), but this truly was a big step forward for the project.  I’m looking forward to what they do in 2009.

Clock is My Favorite iPhone App


Scheduling an alarm in iPhone's Clock App
Scheduling an alarm in iPhone's Clock App

Years ago I ridiculed my mentor, a brilliant systems architect among other things, for being impressed by the clock in the status bar of an application.  I think it was that Word-to-SGML mapping and conversion tool that Frame assimilated right before Adobe assimilated them and killed the product. Now I have to embarrass myself with a similar oh-look-a-butterfly moment: The iPhone’s standard Clock application has become my favorite app.

Maybe I exaggerate a little.  It has all the usual benefits of a well-designed iPhone app, but it’s not such eye candy that I want to lick the screen when it’s active.  That’s a good thing for me though, because its interface never distracts me from its utility.  It also has a certain UNIX-like simplicity that comes from focusing on one thing well: time.

Why?  I tend to keep my iPhone on me or within reach.  The user experience makes me want to play with it just for the sake of play, and there’s always some app or function where it’s easier to use what’s at hand than go back to the Macbook Pro or pull out a notebook. Some modes are better than others, but all are useful and useable:

World Clock Mode is itself unremarkable and almost superfluous since the iPhone displays time on the unlock screen and on the status bar.  Since I rarely use my iPhone to actually call people, let alone friends in other time zones, I don’t really need to know if my friends in London or San Francisco are likely awake, asleep, or otherwise occupied.  This is standard chrome for all clock applications nowadays.

Stop Watch Mode does exactly what you’d expect, although it’s my least favorite since the lack of a physical button means looking at the device to trigger an event, the real Achilles’ Heel of the iPhone.  I know Steve hates them, but the pragmatist in me is willing to spoil the aesthetics a little for those times when you need to manipulate the device without looking for it.  No touch screen, even the Storm’s (reportedly awful) click screen, can substitute for priming your finger on a physical button when blind reaction time is a factor.

Timer Mode gets the most regular action.  I’m notoriously bad at remembering to take some short-term medication every four hours or how much time is left on the parking meter.  There may be better ways to solve this problem, but a reasonable solution in the pocket is better than two in the backpack, apartment, or cubicle.  I’ve had other portable devices that could do the same thing (PalmPilot, watch, other mobile phones) but they either weren’t always on my person or their interfaces were gnarly enough to make it too much work if I was in the slightest hurry when trying to capture the event.

The underlying concept here is related to ubiquitous capture, an idea at the heart of Getting Things Done.

Oh, Alarm Mode, you have finally given me a great implementation of the one thing I’ve always wanted in an alarm clock, different settings for weekdays and weekends.  I’m not one of those people who always gets up at the same time automagically–not a morning person in the least.  It’s almost impossible to find an alarm clock that supports one wake-up time for weekdays and a another one for weekends despite seeming like a most obvious Good Thing(tm).  The schedule option on the (arbitrary number of) iPhone alarms does this, and I’ve been thinking about keeping it next to my bed to use it as my primary alarm clock.

Exaggerations aside, iPhone’s Clock works well because it does one thing reasonably well, has just enough interface sugar to make using it desirable, and it’s on a device that’s almost always on my person.  It’s not perfect but it’s good enough to become a tool I use almost every day.  This is a strategy Apple really gets; they include good-enough applications with their devices to make them useful out of the box–just another reason this caged bird sings.

A between-the-lines point worth explicitly repeating is that I don’t think of the iPhone as a tool.  The Clock app is a tool and the iPhone is a platform.  Ooh, goosebumps!

Apple Gives Good Upgrade

Why THIS Caged Bird Sings

I’ve upgraded Macs a few times now, and the process can’t be simpler.  The migration app may take some time to copy everything over, but the result is a one-step process where my new machine’s environment is exactly the same as my old one.  Having done more than my share of Windows migrations, there is simply no comparison.  The only pain in moving to my oh-so-beautiful unibody MacBook Pro was buying another cable (Firewire 800 to Firewire 400) because of the chronic port changes from model to model.

I also finally upgraded my Airport Extreme to a 1 terabyte Time Capsule earlier this week and had the same experience.  My dread of resetting network passwords on all my devices never materialized.  When I started the installation wizard, it asked me if I was adding the Time Capsule to my network or replacing my Airport Extreme.  After configuring some of the special features of the Time Capsule, it seemlessly replaced my Airport Extreme.  Everything network-aware continued to function without a hiccup.  It felt magical.

Of course Apple can only provide experience like this when you buy into their monoculture.  That’s generally a bad thing in my book, but it’s hard to resist a new Apple device when I know that migration/incorporation into my existing technocology will be so seamless.  For now, I’m ready for another helping of the Kool Aid. Mmm.

Events Since 14 September 2008

Have you ever retired a Mac by mistake? No.

I bought a unibody MacBook Pro. Aside from being a thing of beauty, the improved GPU means all my games run well under Boot Camp; the Dell XPS 600 may get an early retirement (in the Blade Runner sense).  I love the trackpad and found myself forgoing a mouse while traveling–except under Windows where it’s squirrelly and inconsistent.  I hope Apple starts squeezing out Boot Camp updates as fast as iPhone updates to fix the track pad problem and take full advantage of the dual GPU.  Please cross all appropriate appendages.

I ended my contract in Rockville, MD.  The commute got to me and I ended my contract with F. after a one month extension to see one of my projects through its first deployment to prod. I’m making a pattern of very long separations to help with transition, and that’s both good and bad: Good this time because I think it really made a difference in the deployment; bad because I missed out on the before-end-of-year hiring cycle.  I hope it reboots as usual in the beginning of the new year despite the grim economic situation.

I got the flu.  My last day in Rockville was when the fever kicked in.  The following three weeks were pretty miserable, and I still have a bit of a cough after another two.  Next year I’m definitely getting a flu shot, and I’m wondering if I should still get one this year since they typically treat a handful of the most common strains.  Any medical professionals care to comment?

I drank the Kool Aid and bought an iPhone.  Expect a subsequent post with some of my favorite apps.  I’m testing how long it can last in stand-by mode with power consumption optimization (WiFi and 3G only when needed, no push, hourly pull) and it looks like the answer’s 72 hours.  I may have to bump my SMS messages up to 1500 from 200 which irks me to no end, but that’s one of a handful of gripes that are more about AT&T than the device itself.  Otherwise, it’s a Good Thing ™.

I attended MJD‘s talk at Philadelphia Linux Users Group (PLUG) about strong typing.  The slides for Atypical Types are on MJD’s site.  We agree that Java 1.5 is the first usable version of the 1970s-style programming language but for different reasons:  He asserted at the talk that Java typing got better because a Haskell guy rewrote the 1.5 compiler and force fed Java some good medicine like generics. Is Haskell the new programming language incubator?  Given things like type inference, how a smart compiler removes all strong-type clutter that stupid compilers require, could be.

I corrected a long-standing mistake about Documentum Composer in my I’d Rather Be in Philadelphia blog post.  Despite being a newer Documentum customer, F. had enough invested in its 5.3 architecture and how it integrated into their corp-wide build process to make Composer a non-starter.  I’m looking forward to a contract in the future where I get to use all the new 6.5 stuff without the drag of a 5.x (or even 6.0) install base.

iPhone OS loses beta feel with 2.1 update – Ars Technica

First look: iPhone OS loses beta feel with 2.1 update – Ars Technica

While disappointed doesn’t cover how I feel about no iTablet, I agree with Ars Technica: iPhone OS 2.1 feels like the real thing. It’s featureful, polished, and fast.

Even the very beta iPhone OS 1.0 was a revolutionary leap forward with its key interface elements: Multi-touch, motion sensors, and look-and-feel. I can’t emphasize the last item enough. Apple figured out how to make a powerful, intuitive interface fit the form factor, something other phone manufacturers couldn’t do in a decade. The small interface tweaks in 2.1 demonstrate how to pack information in a tiny space without feeling cramped.

I’m even tempted by the new Touch (another tick in the anti-iPhone column) with key features like a volume rocker, wired remote control capability, microphone, and internal speaker. (As D. said, “iTouch Skype, anyone?”) It’s not quite an iTablet, but it has enough new features to tempt me to pick up a 32MB unit. AND I can do it on the online store, something I still can’t do with an iPhone!

Anybody want to buy my old iPod Touch?

Notes on Haskell: The Closures are Coming

Notes on Haskell: The Closures are Coming

Closures in C?  I feel like my head’s about to implode!  Closures themselves are so Star Trek to me, like objects turned inside-out by a transporter accident.  Adding them to C sounds a little “stone knives and bear skins”, but languages like ECMAScript and PHP have or are soon getting closures.

See Also:

Closure (computer science) – Wikipedia