Michael Tsai recently linked to Ricardo Mori’s lament on the unfashionable state of the Mac, quoting the following passage:
Having a mandatory new version of Mac OS X every year is not necessarily the best way to show you’re still caring, Apple. This self-imposed yearly update cycle makes less and less sense as time goes by. Mac OS X is a mature operating system and should be treated as such. The focus should be on making Mac OS X even more robust and reliable, so that Mac users can update to the next version with the same relative peace of mind as when a new iOS version comes out.
I wonder how much the mandatory yearly version cycle is due to the various iOS integration features—which, other than the assorted “bugs introduced by rewriting stuff that ‘just worked,’” seem to be the main changes in every Mac OS X (er, macOS, previously OS X) version of late.
Are these integration features so wide-ranging that they touch every part of the OS and really need an entire new version to ship safely, or are they localized enough that they could safely be released in a point update? Of course, even if they are safe to release in an update, it’s still probably easier on Apple’s part to state “To use this feature, your Mac must be running macOS 10.18 or newer, and your iOS device must be running iOS 16 or newer” instead of “To use this feature, your Mac must be running macOS 10.15.5 or newer, and your iOS device must be running iOS 16 or newer” when advising users on the availability of the feature.
At this point, as Mori mentioned, Mac OS X is a mature, stable product, and Apple doesn’t even have to sell it per se anymore (although for various reasons, they certainly want people to continue to upgrade). So even if we do have to be subjected to yearly Mac OS X releases to keep iOS integration features coming/working, it seems like the best strategy is to keep the scope of those OS releases small (iOS integration, new Safari/WebKit, a few smaller things here and there) and rock-solid (don’t rewrite stuff that works fine, fix lots of bugs that persist). I think a smaller, more scoped release also lessens the “upgrade burnout” effect—there’s less fear and teeth-gnashing over things that will be broken and never fixed each year, but there’s still room for surprise and delight in small areas, including fixing persistent bugs that people have lived with for upgrade after upgrade. (Regressions suck. Regressions that are not fixed, release after release, are an indication that your development/release process sucks or your attention to your users’ needs sucks. Neither is a very good omen.) And when there is something else new and big, perhaps it has been in development and QA for a couple of cycles so that it ships to the user solid and fully-baked.
I think the need not to have to “sell” the OS presents Apple a really unique opportunity that I can imagine some vendors would kill to have—the ability to improve the quality of the software—and thus the user experience—by focusing on the areas that need attention (whatever they may be, new features, improvements, old bugs) without having to cram in a bunch of new tentpole items to entice users to purchase the new version. Even in terms of driving adoption, lots of people will upgrade for the various iOS integration features alone, and with a few features and improved quality overall, the adoption rate could end up being very similar. Though there’s the myth that developers are only happy when they get to write new code and new features (thus the plague of rewrite-itis), I know from working on Camino that I—and, more importantly, most of our actual developers1—got enormous pleasure and satisfaction from fixing bugs in our features, especially thorny and persistent bugs. I would find it difficult to believe that Apple doesn’t have a lot of similar-tempered developers working for it, so keeping them happy without cranking out tons of brand-new code shouldn’t be overly difficult.
I just wish Apple would seize this opportunity. If we are going to continue to be saddled with yearly Mac OS X releases (for whatever reason), please, Apple, make them smaller, tighter, more solid releases that delight us in how pain-free and bug-free they are.
1 Whenever anyone would confuse me for a real developer after I’d answered some questions, my reply was “I’m not a developer; I only play one on IRC.”2 ↩︎
2 A play on the famous television commercial disclaimer, “I’m not a doctor; I only play one on TV,” attributed variously, perhaps first to Robert Young, television’s Marcus Welby, M.D. from 1969-1976.3 ↩︎
3 The nested footnotes are a tribute to former Mozilla build/release engineer J. Paul Reed (“preed” on IRC), who was quite fond of them. ↩︎
Today’s DealNews Apple (née DealMac) newsletter:
DealNews Apple newsletter, September 22, 2016
Really!? I know that DealMac hasn’t been what it was a decade ago, or even five years ago, for a while now—a definite shadow of its old self1—and that many Mac users may have Android phones, but, really, Android games are the best/most relevant Apple-related deal for the day? I find that extremely difficult to believe.
1 After reading the “new” DealNews Apple-format newsletter for a while after the changeover last year, I sent their feedback system a list of a half-dozen or so suggestions on how they could improve the newsletter experience and make it easier to see/find relevant deals. Needless to say, none of the suggestions have been implemented. ↩︎
One of the rules I’ve used […] is not to argue with “I bet lots of people are like me and want feature X,” but instead say why you specifically want feature X, or why you’d prefer some behavior or design change.
In other words: instead of just asserting that a thing would be better or more popular if done a different way, tell a story with details.
Maybe that’s not right for every beta test, but that’s what works for me. I like stories. A single person can convince me with a good story.
Brent has written about this point before, in the “Tuesday Whipper-Snapping” section of How to manipulate me (or, Tuesday Whipper-Snapping),1 but it’s an important point that bears repeating: when you are a user trying to explain to a developer/QA/support that you’d like feature X or think feature Y would work better in some other way, tell us why. Tell us what you’re trying to do, why you’re trying to do it. As Brent says, tell us a story, with details, about what you need/want to do with the software.
First, as the quotation above indicates, a good use-case (“story”) can often convince the person/people behind the software right off the bat of the importance and/or awesomeness of your proposed feature. Second, as Brent mentioned a decade ago (!) in the discussion of Exposé in “Tuesday Whipper-Snapping,” your story is important because it may lead to the developer(s) devising a new or easier or more clever way of helping you to accomplish your task, rather than the specific implementation you may have conceived yourself.
So, tell us stories about what you hope to do.
1 Which I’ve linked to before in my compilation of great “Brent Simmons on software development for end-users” articles. ↩︎
For some time, I’ve been meaning to start a series of posts that outline software/website issues I run across on a daily basis (because I *do* run across buggy or poorly designed software/websites on a daily basis), in part in an effort to blog more often, but also to shine the light on what we as technology-using people deal with on a daily basis. It’s taken me a while—blogging is hard , and so is documenting and writing a good bug report—but herewith the first entry in Your Daily QA.)
The National Geographic Society, in partnership with the National Trust for Historic Preservation and American Express, has been running a vote to divy up $2 million in funding to help preserve or restore various sites in National Parks: #VoteYourPark.
It’s a lovely site and a nice idea, but there are a couple of wonky implementation details that routinely drive me crazy.
When you try to sign in using your email address, the sign-in form doesn’t work like a typical form. In most forms, pressing return in a text field will submit the form (or trigger the default button), and if you’ve been using the web on the desktop for a long time, you have finely-trained muscle memory that expects this to be true. Not for this form, however. Even worse, the “button” (it’s really a link camouflaged by CSS to look like a button) isn’t in the tab chain (or at least isn’t in the tab chain in the right location), so you can’t even tab to it and trigger the form via the keyboard after entering your password. Instead, every single day you have to take your hand off of the keyboard and click the “button” to log in.
The fun doesn’t end with the sign-in form, though. After you’ve voted for your parks, you have the opportunity to enter a sweepstakes for a trip to Yellowstone National Park. To do so, you have to (re)provide your email address.
In this form, though, pressing return does do something, because instead of being offered the opportunity to enter the sweepstakes, pressing return shows this:
It appears that you have lost your opportunity to enter the sweepstakes as a result of pressing return to submit the form. (If you close the message and then look closely at the area of the page that originally contained the sign-in information, there is a link that will let you enter the sweepstakes after the voting procedure is complete, but it’s fairly well hidden; I didn’t find it until muscle memory in the form submission had caused me to miss several chances to enter by triggering the above screen.)
There are other annoyances (like the progress meter that appears when loading the page and again after logging in), but they’re minor compared to breaking the standard semantics of web forms—and breaking them in different ways in two different forms on the same page. By all means, make your form fit with your website’s needs, but please don’t break basic web form semantics (and years of users’ muscle memory) in the process.
Wedding portrait of John Ardisson and Mary Julia Adamic
Delmont, PA ⚜︎ June 15, 1916
One hundred years ago today, June 15, 1916, in the Reformed Church Parsonage in Delmont, Pennsylvania, John Ardisson and Mary Julia Oswald were married.
John, born May 2, 1894 in Export, PA, son of Stefano Serafino Ardissone (himself born September 2, 1862 in Baldissero Canavese, Torino, Piedmont, Kingdom of Italy) and Maria D. Silva-Pramone (born January 30, 1865, also in Baldissero Canavese) was 22 years old.
Mary, born January 9, 1900, in Thompson Run, Allegheny County, PA, daughter of Anton Osvalt (himself born January 10, 1865, in Novicote(?), Slovenia [Duchy of Carniola], Austrian Empire) and Mary Adamic (born August 15, 1874 in Ribnica, Slovenia [Duchy of Carniola], Austria-Hungary) was 16 years old on her wedding day.
John and Mary would go on to raise four children, Dorothy Anna, Edward Stephen, Gerald John, and Eugene Anthony, all of whom served their country in the United States Army (Nurse Corps, Air Corps/Air Forces, Artillery) during World War II, and who would return home safely and begin the rest of their lives. There would then be nine grandchildren, and, though neither John nor Mary would live to see all of them, nineteen great-grandchildren, and, finally, at last count, fifteen great-great-grandchildren. John and Mary were married for 59 years, until his death on October 28, 1975.
The picture in the frame was taken on that wedding day, 100 years ago today, with a camera that was no doubt 100 times larger than the one used today to take this photograph of it. Happy 100th Anniversary, Grandma and Grandpap Ardisson!
It has been a long, storied career as you have set records and ensured your place among the pantheon of the sport, inspired players and fans alike, and tonight we celebrate you for the outstanding athlete and person you are.
Thank you, Abby, for all you have done playing the beautiful game.
No man is an island, entire of itself; every man is a piece of the continent, a part of the main. If a clod be washed away by the sea, Europe is the less, as well as if a promontory were, as well as if a manor of thy friend’s or of thine own were: any man’s death diminishes me, because I am involved in mankind, and therefore never send to know for whom the bell tolls; it tolls for thee.
—Excerpt of Meditation XVII, Devotions upon Emergent Occasions (John Donne, 1623)
Periodically1 Numbers will get “stuck” trying to sync to iCloud changes I’ve just made on my iPhone. Numbers will claim that the spreadsheet is updating, or needs to be updated, but no changes will ever reach iCloud and the “needs update” UI will never go away. This used to be a frequent issue,2 and over time I tried all sorts of things to resolve the problem: quitting Numbers, making another local change, making a change on iCloud, waiting a while, toggling Airplane mode on and off to “kill” networking, turning iCloud off in the Numbers settings, deleting the spreadsheet (both on the phone and also on iCloud), and other things I can no longer remember. Some combination of tinkering always seemed to fix things, but it was never anything easy—always a tangled combination of things—and The Internet™ didn’t seem to have any relevant information when I searched.
Eventually I discovered a reliable, repeatable, simple solution: turn the iPhone off and back on again,3 and the next time I open Numbers, it will happily finish syncing my changes from the iPhone to iCloud.
Hopefully the All-Seeing Internet Search Engines™ will index this post and offer it up to others who might also be searching for a solution.
Has anyone out there already filed a Radar on the “stuck” iCloud sync process? I’ll eventually get around to filing it myself.
1 It’s difficult to tell what might be triggering the “stuck” sync, but my best guess based on when and where it happens to me is a marginal network connection or network transition. ↩︎
2 For a while I thought iOS 8.4 might have fixed the problem, but I’ve recently experienced it again. ↩︎
3 I’ve always quit Numbers before powering off, and the “stuck” sync no longer occurs often enough that I can remember to test rebooting without quitting Numbers first. ↩︎
Their old logo was goofy. This new one is simply garbage.
The redeeming quality of the previous Google logos was the whimsy, while the serifs kept them from looking too childlike or immature.
The new logo, however, is simply puerile. Someone needs to take away the Play-Doh.
Today’s comments on Tim Bray’s post that I linked to yesterday have been very interesting, both as to the scale of link rot and efforts underway to ameliorate it (you should read those comments if you have not done so).
One commenter on ongoing also linked to two recent posts by Bret Victor; the second one is a incisive examination of the web’s permanence/impermanence problem that I briefly wrestled with before closing yesterday’s post with congratulations to Zeldman. (You should really read Victor’s post.)
Tuesday update: In Tuesday morning’s comments on Bray’s post, Andy Jackson of the British Library links to their study of URLs in their archive, where one of the conclusions is “50% of the content is lost after just one year, with more being lost each subsequent year” (emphasis mine).