iPhone, Thou Art Dead To Me

Apple has released the perfect iPhone … i.e. an iPhone that isn’t saddled with an AT&T plan and, um, doesn’t make phone calls (…yet). At last, a browser perfect for reading books on the toilet.

They’ve also added custom ringtones on steroids to the iPhone (you still can’t just grab some arbitrary piece of audio and make it your ringtone because, um, well because) and you can spend money at the iTunes store anywhere you get cell reception and have your iPhone, instead of merely anywhere you have internet access.

And it’s about the same price as a similar gadget from Nokia that doesn’t do most of the stuff it does, looks a whole lot clumsier, isn’t touch-based, and appears to have lower battery life. But it does support some version of Flash. Obviously, the new iPod Touch is grossly overpriced…

Strange Omissions

Rumor has it that, at least initially, the iPhone will lack Flash support — argh! (Even the Wii has Flash support.) Yes, that is disappointing, but it doesn’t explain why Apple’s email announcement to people, like me, who signed up for news on the iPhone’s release doesn’t mention web browsing.


But the really sad omission is…

It really looks like the iPhone SDK non-announcement is a little hasty. Yes, you can develop perfectly good 3rd party apps for the iPhone using a web server, but no, Apple hasn’t added some perfectly obvious bells and whistles to make this seamless:

  1. There appears to be no way, out of the box, to “bookmark” or “force cache” a page and make it launch directly from the main menu.
  2. The Safari UI doesn’t appear to be hideable (yes, the address bar auto-hides after a period of non-use, but it needs to be possible to hit all trace of the browser from JavaScript or something).

Technically, these are minor omissions and easily fixed, but boy would they have made great demos (versus the glorified phone book app that was shown).

Build a simple game using DHTML. Make it 480×320. Go there with your browser. Click a button to “appify” it. Boom. Third party game app. (And then demonstrate how it automatically updates the cached version when appropriate.)

Go to Google documents and “appify” it. Boom. You have a real word processor on your iPhone.

These are low hanging fruit, and it’s rather lame that Apple didn’t have at least one moderately cool demo to show.

The Rest is Mere Usability

I’ve just been reading this post about how some hacker has written a UNIX shell script that basically does what Time Machine does without the fancy UI. Of course, all Time Machine really does is make backups on a schedule … right? So anything else it does is just Apple smoke and mirrors — this stupid UI stuff that they do that confuses journalists and dumb rich people into buying their overpriced computers. Damn it, if folks just realized Photoshop simply performs arithmetic on 2D arrays of integers Adobe’s stock would tank and elite command line scripters who only use vi would be paid better.

This kind of idiocy characterizes most of the “iPhone is a piece of junk” and “AppleTV is a failure” stories around at the moment. It’s not like anyone much seems to believe these stories (go look at Apple’s stock price) but they annoy me nonetheless. A lot of the response has been somewhat off point (iPhone’s value isn’t in its functionality, it’s in its usability; AppleTV is a software device, if it doesn’t do the thing you think it needs to right now: (a) don’t buy it, (b) wait).

It’s amazing how many programmers, in particular, seem to be incapable of getting it through their thick skulls that usability is actually most of what good software does. (Heck, when you consider usability to other programmers, it’s often most of what bad software does. How often does your code contain more “functional” code than “interface” (to people or programmers)? Probably never.

Aside: I was talking to a colleague — a software engineer, and a very bright guy — who was bemoaning the loss of American programming jobs to places like India. I suggested to him that today, software is like everything else: a bunch of design wrapped around boring components, like screws and bits of wire, that are most efficiently made in factories none of us would care to work in. The value-added part of software requires tight integration of developers and designers and business people.

You don’t farm out the design of the next Porsche to guys in a foreign country who don’t speak your language (and don’t drive on your roads) even though 90% of its components may come from there. The same applies to Photoshop. If software can be specced well enough that it can be outsourced, well it’s either not very interesting software (in which case, why do you want to write it?) or very, very interesting software (in which case, it’s only going to get written by the few people who are able to write it, regardless of where they live).

When Apple added a new (and excellent) handwriting recognition system to the Newton (following the launch debacle), they got it from Russia. Not because Russian coders are cheap (although they probably are), but because handwriting recognition was hard and those guys had nailed it.

The difference between what Time Machine does and (say) what you can do with a cron script or by dragging icons around in Finder is in (a) what it doesn’t require the user to do and (b) what it allows the user to do.

It doesn’t require the user to carefully specify what gets backed up and when. Designate where you want your backups kept and everything gets backed up. Done. Complicated decisions made which you’re going to regret later: none. Keystrokes required: zero. Cron configuration required: none. Decisions required: none. Knowledge of Dumb UNIX Tricks required: none.

It allows you to, in the folder you’re working in, roll back changes interactively and in context. Oh — that must be when I accidentally deleted that file! Yes, that’s basically the same thing as grepping your directory tree against various rotating backups and trying to figure out WTF you’re looking at. The difference is merely a flashy UI.

The difference between Photoshop and a program that does arithmetic on 2D arrays of ints is a flashy UI. The difference between Time Machine and “cp” is a flashy UI. I’d like a flashy UI please. Thanks.

I won’t even get into the functionality that Time Machine has and some random shell script doesn’t have (e.g. ability to seamlessly ignore intermediate files that cache results, such as Final Cut Pro’s render files or unlinked object files created by compilers) which allow it to avoid creating backups of things you will never need to restore from backup, and yet which probably occupy far more space (and change far more often) than the stuff you do need to backup, because that would just make these folks seem stupid and clueless.

Anyway, while I impatiently wait for Time Machine I guess I’ll just have to rant against folks who think that a few cron jobs will pretty much do the same thing.

Of course, it’s just a rumor

I’ve not been reading much tech news lately… too busy actually doing work (for a change!) So it was with some satisfaction that I read reader reports on Macintouch of using Crossover Beta for Mac OS X.

Crossover is a commercial version of WINE (WINE Is Not an Emulator), which is a library which provides a Win32 compatibility layer for various UNIX/Linux flavors, including OS X. This is the technology which, eventually, may allow Windows apps to “just work” on any platform.

(It’s sad that for some reason the two apps most people seem to want to run under WINE are Visio and Outlook. I’m sorry, but Visio is a joke (try Omnigraffle), and Outlook is, at best, a horrible necessity.)

There are also game-specific variants of the same thing which allow programs which live on top of a certain subset of DirectX (Microsoft’s game development API) to “just work” on UNIX/Linux platforms.

Anyway, I mention this mainly because of some bloggers who — somewhere, sorry I couldn’t find the post directly — have written off this entire direction.

My wife needs to use SPSS for her work. SPSS is a classic example of a program that folks will run Windows just to use. The Mac version sucks and lags the PC version. SPSS is horrible on all platforms, and really having it “ported” to Mac OS X gains us nothing. Crippled and lagging as it is, the Mac version of SPSS currently does not run, even under Rosetta, on Intel Macs (a neat trick!). It seems to me that it would be easier for SPSS to work on compatibility with WINE/Codeweaver than keeping a lousy Mac implementation going, and everyone’s a winner.

One of Joel Spolsky’s observations is that you want your competition to be expensive and your complements to be cheap and ubiquitous. WINE/Codeweaver is free/cheap, Windows is expensive. It’s better — especially for software aimed at niche markets — to target WINE than Windows, given you get the latter for free by targeting the former.

This is why compatibility libraries, such as WINE, which — essentially — reduce Windows (or other platforms) to virtual machines, are the way of the future, and not a myth to be debunked. Forward-looking software development (e.g. .NET, Cocoa, Java) build virtual machines, while backward-looking development (emulators, compatibility layers, etc.) reinvents old APIs as virtual machines.

Leopard may not provide WINE-like functionality out of the box (although it would blow a lot of minds if it did), but it looks like we’ll get it from Codeweavers (or an early version at least) before Leopard ships, and ultimately similar technology will get better and software developers will have an incentive to target it — so inevitably, Windows apps will, one day, “just work” on Intel Macs. As will Classic Mac apps.

But, it’s just a rumor.

Word of the Day

One of the things I have visible on my google homepage is dictionary.com’s word of the day. I’d like to think it’s there so I can improve my vocabulary, but really it’s there so I can feel superior at all the words I already know.

Or think I know.

So today’s word is “fortuitous” which is defined as “happening by chance”. This definition struck me as wrong, even for a one-liner. So I looked it up on dictionary.com itself and got a slightly longer definition:

“happening by accident or chance”

With the meaning I expected listed as a “usage problem”. Damn those users! Underneat, was the following explanation (quoted from Dictionary.com):

“In its best-established sense, fortuitous means “happening by accident or chance.” Thus, a fortuitous meeting may have either fortunate or unfortunate consequences. For decades, however, the word has often been used in reference to happy accidents, as in The company’s profits were enhanced as the result of a fortuitous drop in the cost of paper. This use may have arisen because fortuitous resembles both fortunate and felicitous. Whatever its origin, the use is well established in the writing of reputable authors. ·The additional use of fortuitous to mean “lucky or fortunate,” is more controversial, as in He came to the Giants in June as the result of a fortuitous trade that sent two players back to the Reds. This use dates back at least to the 1920s, when H.W. Fowler labeled it a malapropism, but it is still widely regarded as incorrect.”

I’m a great fan of Fowler (or I should say the Fowler brothers), who are collectively responsible for both the modern Oxford English Dictionary and Fowler’s Modern English Usage. I think, however, that it behooves a dictionary to provide definitions of words as they are used (at least as far back as the 1920s) rather than as they ought to be used, since someone looking a word up is probably more interested in what the speaker or writer intended to say than what they would have said if they were in compliance with the 1923 edition of the Oxford English Dictionary.

Incidentally, here’s the current definition of fortuitous from the OED: “adjective 1 happening by chance rather than design. 2 happening by a lucky chance; fortunate.” Note that the “correct” (i.e. if we were in fact speaking Latin and not English) meaning is still first, but the second — more likely intended — meaning is given.

It did pay Dictionary.com for a few ad impressions though, so not all is lost. Does this mean that Dictionary.com has a financial incentive to provide, in essence, incorrect or surprising definitions of words in an effort to drive traffic to its site (increasing ad revenues)? It’s a delicate balancing act — do it a little too often and dictionary.com will soon be thought of as, essentially, useless.

It’s not like Dictionary.com is the last bastion of the English pedant. Here’s their first definition of decimate:

“To destroy or kill a large part of (a group).”

As every good pedant knows, decimate originally meant “to kill every tenth man” and was applied to Roman legions which were seen as having failed in their duty to The Empire. This is provided as the third definition, while the second definition (another usage problem) is hard to tell apart from the first definition. So here we have a well-known “incorrect” usage listed as the top definition, while a far more obscure and less incorrect usage gets a short essay and is listed solely as a usage problem.