all micro contact rss

Thoughts on the passing of Sir Roger Moore

I was born in the 1970s. Thus, my conception of James Bond will always be embodied by Sir Roger Moore. While the popular opinion is that Sean Connery will always be the “definitive Bond”—whatever that means—to me, Sir Roger Moore is the essential Bond, if for no other reason than he had to endure the biggest challenges the role has ever faced.

Connery invented the role, and he did that very well. Every Bond after Moore got to put his own spin on the role. But that was only possible thanks to Moore. Yes, there was Lazenby in between. But George Lazenby almost killed the franchise[^1] If anything, the move to Lazenby, then back to Connery in Diamonds are Forever made Moore’s job as the “new” Bond even more difficult. Someone had to put a new spin on this iconic character in such a way as to not only be accepted, but to ensure that anyone coming after him had the freedom to do the same. Not many franchises survive the recasting of the lead. For Bond to go on for more than 20 films, it needed to survive this transition several times over. This is an incredibly difficult challenge, and Sir Roger Moore pulled it off.

If it weren’t for Moore, in other words, the Bond franchise would have been dead decades ago. He certainly wasn’t getting any help from the script writers and directors during this period.

Moore’s Bond was dapper and smooth, yet took himself far less seriously than Connery’s. He was smart and talented, but he was vulnerable and capable of being outwitted. He was just more human than Connery ever was in the role, for lack of a better term.

And he survived one of the most difficult periods of male fashion in recent memory. All with a grace that no other actor could have pulled off, I believe.

My longstanding theory is that Roger Moore is the best of all the actors so far at playing Bond, the character. Unfortunately, he never got to play that character in a really good movie. All seven of his movies as Bond are deeply flawed in one way or another. A few, I’d argue, are amongst the worst in the franchise. And none, I’d argue, are amongst the best of the franchise. Yet he’s still the best Bond, as far as the man playing the role goes.

What follows are my brief takes on all seven Roger Moore James Bond films, in order of release date.

Live and Let Die (1973)

Not only a bad movie, but arguably one of the most racist Bond films, even when judging it within its own time. One of the best theme songs of the franchise, yet one of the worst movies of the franchise. I find this film unwatchable for the most part, despite part of it taking place a few blocks from where I once lived in Harlem. It has no Q, for crying out loud. And to top it all off: Sheriff J.W. Pepper. That’s all you need to know.

The Man with the Golden Gun (1974)

We go from one of the best theme songs to easily the worst theme song in Bond history. A better movie, however, than Moore’s first, though not by much. Christopher Lee makes for a great villain. Sheriff Pepper inexplicably returns, despite being godawful in the last film[^2] And Bond is driving an American car, which is never a good thing.

The Spy Who Loved Me (1977)

Many argue that this is Moore’s best Bond film. And I see that point of view. It’s not my favorite, but it’s probably second on my list. There was a sense of campiness around the Bond franchise during this period that doesn’t age well at all. While I love that Roger Moore brought a dry sense of humor to the role, the scripts of these films take the humor of the franchise to the point of self-parody[^3] It’s a marvel the franchise survived this period. Having said all that, this is one of the more coherent scripts that Moore was handed.

Moonraker (1979)

The worst Bond film. There’s no way to argue otherwise. Unintentionally funny for more than two hours. Unwatchable. A sad attempt to compete with Star Wars. Michael Lonsdale as Hugo Drax is perhaps the one saving grace of this film. Totally wasted, along with Moore, in a script that makes little sense from start to finish.

For Your Eyes Only (1981)

This is the best of the Moore Bond films. Some argue it’s formulaic. Some say it doesn’t do anything to advance the series. I’ll take it over the crap Moore was handed prior to this any day of the week. It has the Lotus (though they blow it up fairly early on). It has a great theme song sung by Sheena Easton. It has an awesome early 80s funky score by Bill Conti that dates the film in a good way. And it has Bond turning down the advances of a teenage girl. Which, while that sounds like a given, is actually a step forward for the character. I could do without all the skiing, but that’s true of 90% of all Bond films. This is as good as it gets during the Moore era, unfortunately.

Octopussy (1983)

This was the first Bond film I actually saw in the movie theater. I went with my father, and I remember the experience fondly. Unfortunately, watching the movie again later as an adult, it didn’t hold up to my memory of it as a child. It had so much potential. But then they put Bond in clown makeup, for crying out loud. What were they thinking?

A View to a Kill (1985)

Roger Moore’s final portrayal of Bond. A lot has been said of Moore’s age by the time this film was made. And that’s fair. He was getting too old for the role. And the film has its share of that silliness that drives me nuts about the entire Moore era. (The prolonged chase scene in the fire engine, for instance.) But here’s what A View to a Kill has going for it that I believe makes it underrated: Christopher Walken as a great classic Bond villain. A master plan by the villain that doesn’t involve nuclear missiles, for once. Grace Jones, who was an unconventional choice and good match for Bond. Arguably one of the top five theme songs in a franchise that has a lot of great theme songs. And a pretty cool end scene on the Golden Gate Bridge. Not the best of the Moore Bond films, but far from the worst.

All in all, Sir Roger Moore was handed a shit sandwich with Bond from start to finish. And yet he carried the franchise for more than a decade, reinventing the character for my entire generation. I’d say that was quite an accomplishment.

So godspeed, Sir Roger Moore. May you rest in peace. You had an impact on so many lives, my own included. I hope you were able to appreciate it while you were with us.

I’d Like to Request a Review Prompt, Please

While working on my latest update of Fin, I spent a bit of time playing with Apple’s new SKStoreReviewController API.

For those unfamiliar, this new API was announced with the early betas of iOS 10.3, and it went live with the 10.3 release last month. Though it isn’t the only approved way to prompt a customer to rate your app on the App Store yet, that is Apple’s ultimate intention. Like it or not, you’ll have to learn to work with this thing eventually, in other words. Unless you never prompt for reviews.

rating prompt

I wanted to share a thing or two I learned in my research and implementation for Fin. I had never had any ratings prompts in any of my apps before (I don’t count putting a link on the settings or help screen. That’s not prompting, it’s merely offering easy access.) So when this new controller was announced, I figured I might as well use it, rather than roll my own.

If you have a method of prompting for reviews that works for you already, I’d say leave it as is for now. Apple will make you replace it eventually, but especially if yours is better/more effective, feel free to keep yours as long as you can.

What do I mean by better? Well, frankly, I think SKStoreReviewController isn’t the ideal way to prompt customers for a review. It’s an alert dialog, for one thing, which means it needs to be handled immediately before proceeding with the app. I don’t think ratings are so important they should get in the way of my customer using the app. Embedding it into a tableView cell or collectionView, as implemented by an app like Slopes, for instance, would be greatly preferred. Or, as suggested by Oisín Prendiville, a notification would also be less intrusive.

Another issue with SKStoreReviewController: It only prompts for a star rating, not a review. If a customer wishes to review your app, they will still need to go outside to the App Store to do it. (At least we have the new deep link to directly take the customer to the review tab.)

Having said all that, here’s how I approached implementing SKStoreReviewController for Fin, given its limitations. Perhaps some readers will have some suggestions on how I can improve this.

First, the logic. When do I want this thing to pop up? The way I see it, there are only two possible times that make any sense. Fin is a timer app, so you would never want a rating alert to pop up during a running timer. That leaves the time immediately after app launch, before you start a timer, and the moment you acknowledge a timer has ended by tapping to stop the flashing ending animations. I opted for the latter. (I’m not a fan of apps that prompt for reviews on launch. If I’ve launched your app, I want to use it, not be held up by a prompt.)

I don’t want the prompt happening every time someone finishes a timer, of course (and I can’t with SKStoreReviewController, anyway—more on that in a minute) so I store a date in NSUserDefaults when I request a prompt, and don’t request another prompt until at least two months have passed from that date.

Notice I said “I requested” a prompt. Not “I showed” a prompt. Or “I prompted.” As the name of the sole method available on SKStoreReviewController implies (requestReview), you can’t prompt a customer for a review yourself. You can only request that the App Store prompt the customer for a review.

You get no feedback from the system that this request was approved, by the way, so you will have no way of knowing whether the customer was actually prompted. A request is just that; a request. This is why you can never pop up this review prompt from a “Rate” button. The button may end up doing nothing, and you’ll never be notified as the developer.

Apple hasn’t made public the criteria for saying yes to one of these requests, other than to say that the request will not be approved more than three times a year, but I have a few guesses as to when your request might also be denied.

  • If the customer has already given a rating for this version.
  • If the device is not connected to the internet.
  • If a prompt has been given recently by the same app (within some interval Apple determines).
  • If another app’s prompt was approved recently (again, within some interval Apple determines). I could see Apple not wanting to bombard a single customer with prompts from several apps in the same day, for instance.
  • If a customer with the same AppleID has been given a prompt by this app on another device recently.

It’s actually good in some ways that Apple can make these determinations, as it has far more information than you do about what your customer has been doing outside the little world of your app, and thus can minimize the likelihood of being annoying. Annoyed customers do not leave five-star reviews.

That, of course, assumes you trust Apple to do this well, and it depends on whether you believe, as I do, that prompting for ratings is a necessary evil, not a sport. I want prompts to be done as infrequently and as unobtrusively as possible, while still helping me reach my business goals.

The downside, of course, is the lack of a callback when the request was denied. Not knowing whether my request was approved by the App Store means I now have to make a decision about resetting that two-month clock after making the request.

If I don’t reset the clock, I could theoretically burn out all my prompts for the year on the first three times someone finishes a timer. If I reset the clock in situations where I’m very likely to have been denied, the customer might never see the prompt.

So here’s what I do in my class for determining whether to make a prompt request:

  • I check for connection to the internet. If there’s no internet, there will be no prompt. I’ve confirmed this in my own testing. In the Simulator and in debug builds on device, the request is basically always honored, so you can test your own logic and see the prompt for yourself. When you have no internet connection, however, the prompt won’t show up, even in debug mode. Makes sense, given that if there’s no internet connection, you won’t be able to leave a rating, anyway.
  • I check to see if you are doing a remote session. Fin 4.0 added the ability to connect two or more devices together to run a single timer in sync. This could be an inconvenient scenario in which to see a prompt, even at the timer’s end, because your remote device may be on a stage during a performance, set to be controlled from an AV station. So I opted to not make a request during these remote sessions.
  • I check to see if you are remote-controlling your Fin session via Apple Watch. Again, there’s a chance here that you put your iPhone out of reach when opting to control via Apple Watch, so I don’t want to request a review then, either.

If all the above criteria give me the thumbs up, and it’s been at least two months since the last request date, I request a review when the customer taps at the end of a timer, and I reset the date to today. Maybe the prompt happens; maybe it doesn’t. At that point, it’s out of my hands.

In addition, I sync the last request date via iCloud for those who have turned on iCloud sync. I don’t want someone getting a rating prompt on iPad and iPhone right after one another. (Again, I think Apple may do this already, but just to be sure.)

Why two months? It seemed long enough to me. I could have gone for three or four months, but then there’s a risk the customer won’t be in the correct set of circumstances at least three times a year. If a customer gets all three prompts in the first six months, so be it. I’m not going to lose sleep over it. At least it’ll be spread over six months, minimum.

Some folks have suggested that I tie in the review prompt to the version number as well, but I didn’t do that for a number of reasons. First, Apple will only approve a prompt three times a year, regardless of version number. Second, I believe (and yes this is speculation) that the App Store will know that a user has already rated a current version and thus not approve a prompt again once a person rates for that version, anyway. (At least, that’s how I’d do it.) If I only request a review prompt once per version, then when the customer says “Not Now”, I will lose that customer for the entire version. I know for myself, I often say “Not Now” because now isn’t a convenient time, not because I’m not interested in reviewing tomorrow. Third, Fin is a side project for me, so I don’t anticipate putting out many versions every year. I only released one version in 2016, for instance. I wouldn’t want to only have one opportunity a year to prompt for a rating, especially when I can’t be certain my request was approved that one time.

You’ll have to determine what works best for your app, of course. I welcome suggestions from anyone who has ideas for improving this prompting logic.

And if Apple wants to improve the SKStoreReviewController by making it an embeddable view, or a notification, I’d welcome that. The nice thing is they could do that without breaking anything for us.

Heck, if they wanted to remove ratings altogether, or at least change to a simple thumbs up, thumbs down, I’d be all for that, too. Again, this would require no effort from anyone who is using SKStoreReviewController, either. Which is nice. And it’s probably why Apple wants us all using this thing rather than our home-grown solutions sooner rather than later.

FINally

Fin 4.0 is available starting today.

Two major new features I want to point out here. The first is running a timer on multiple iOS devices. Connect your iPhone and iPad, for instance, and start a single timer on both. This is great for when you have a speaker on stage, and an audio-visual table in the back of the room or off stage. You can start the stage timer remotely. Or sometimes you just want to see your timer from multiple positions on stage. Now you can do that with multiple iPads.

Technically, you can connect up to seven devices at once, but I recommend no more than three.

The second major feature is local notifications on Apple Watch. For those who have been using Fin for a while, you know that the Apple Watch app would only tap you on the wrist if the timer were in the background on your iPhone. This is obviously not ideal if you’re on stage and you want to see your timer, yet still get tapped for warning and end times. Later I’ll go into more details about the challenges I faced getting the local notifications to work, and the limitations that still exist in my implementation (fingers crossed for some help from iOS 11) but for most use cases, the local notifications should work very well. Just launch the app on your watch at some point while the timer is running, or start the timer with your watch, and then forget it. Go back to your watch face; lower your wrist. Carry on with your day. You should get notified at warning times and when the timer has elapsed, even while the iPhone app is still in the foreground.

If you only want to be tapped at certain warning times, or only for the end timer, you can set those preferences on the settings screen.

In addition to these new features, I also did a lot of rearchitecting around the app, improving the experience on iPad, tweaking the preset editing process, and more. If you are a Fin user, I’d love to know what you think of the update. There is a Leave Feedback link on the What’s New page, which is available on the information screen.

You can also leave me a rating or review, which would really help.

5 Stars, or GTFO

Furthermore, this shows just how dishonest these rankings are. If you’re aware of the preposterously high standards Postmates, Uber, and Lyft set, you’re much less likely to give a three- or four-star rating if your experience is imperfect — you don’t want to be the user who causes the contractor to lose their job.

—via Nick Heer

This is precisely why whenever I rate anything I give five stars, or I don’t rate at all. People argue with me about this, and they’re wrong.

Giving anything but five stars hurts people. Period. You can take all your principals of honesty, fairness, mathematical purity, and so on, and shove them up your ass. Because rating less than five stars hurts people, and people are more important than your damn sense of fairness.

If you’re a paid professional critic, by all means, write a thoughtful, fair review of a product and publish it. I’m not talking about professionals making expert recommendations here. I’m talking about the bullshit online rating systems that make or break people’s livelihoods.

As a regular consumer, if you really can’t recommend something, just don’t rate. Unless the guy punches you in the nose, or something—in which case, sure. Go for the one-star. But giving a 1-star rating, or even a 4-star for that matter, is a power play. It’s you demonstrating your dominance over the maker of this thing or performer of this service.

Personally, I’m not so insecure that I have to feel power over my Lyft driver.

Should Have Posted this Yesterday

If I had posted this last night, when I initially thought of it, I’d seem like a genius now. But I generally don’t engage in speculation about new Apple announcements, so I decided to pass. Oh, well.

The thing is, given the rumors of an edge-to-edge screen on the iPad coming later this year, a minor speed-bumped iPad Pro right now makes little sense. I’m not at all surprised that Apple didn’t have anything to announce on the iPad Pro front today.

I know no one who owns an iPad Pro 12.9 or 9.7-inch who thinks the device is too slow. Adding a slightly faster processor at this point would provide little incentive to people who are thinking of upgrading. True Tone on the 12.9-inch, and fast charging on the 9.7-inch maybe made a little more sense, but frankly, it’s just not a good enough change to be worth upgrading. Save it for the more significant upgrade later in the year.

I use the 12.9-inch now as my primary iPad. It’s over a year old. If Apple had done a minor “bump” today, I very likely would not have upgraded. And I’m a nut for upgrading.

Specs are not the problem with the current iPad.

Now, a lower-cost entry level model does make sense. The new 9.7-inch at $329 is a smart move. Keep expanding that umbrella. I also suspect this is a signal that the mini will be gone soon. It got a small update with more RAM as an option, but in a plus-sized phone world, the mini isn’t really all that useful anymore. I suspect the low-cost 9.7-inch will replace the mini altogether soon.

If all you want an iPad for is watching video or reading, a bigger screen is always going to be better. Or just get an Android tablet. The real future of the iPad is pro applications.

As far as I’m concerned, software is going to make or break iPad at this point. I’ll be very interested to see what happens with iOS 11 this summer. And I’ll be very interested to see if Apple creates new apps itself and/or adds incentives for creative new third-party companies to fill those gaps in the pro market for iPad software. If there aren’t some cool new demos of iPad apps coming during an Apple Keynote this year, I’ll start to be a little worried.

Meanwhile, I look forward to upgrading my iPad this fall, when the changes are more compelling.