It’s like criticizing your children. Because I like Apple so much I want to make sure they’re not doing anything that will be a problem later. And this comes from the experience of Apple nearly going out of business in the ’90s. They’re no longer that underdog, but I’m looking at everything they do and saying, “Are you doing everything you should in the way that you should? Are your products living up to the ideals you set for yourselves?” I don’t write these reviews of Windows. I could never muster up the enthusiasm or indignity.
Tumblr iOS Architecture
If you’re interested in iOS architecture at all, here’s a slide deck from a presentation by Tumblr on how they built their iOS app.
Efficient JSON in Swift with Functional Concepts and Generics
Efficient JSON in Swift with Functional Concepts and Generics
Skip to the end to see their final implementation of a performRequest
method:
Lessons Learned from Apple’s API Strategy
Lessons Learned from Apple’s API Strategy
Apple is one of the biggest API platforms in the world — every app running on every iPhone and iPad is built using the Silicon Valley giant’s APIs. We can all develop a better API strategy by examining how one of the leading API platforms:
- Uses their own APIs within their own ecosystem;
- Handles changes to these services; and
- Prioritises end user experiences over other concerns.
The two markets where iPhone sales are effectively at parity with Android are the USA and Japan, and those are also the two markets where the subsidy structure means that the iPhones is not at a big price premium to Android. This is probably not a co-incidence. Meanwhile, we also see strong indications that the second-hand market for iPhones, mostly in the $2-300 range, is also extremely strong. It doesn’t seem unreasonable to suppose that a new, attractive iPhone in this segment would be highly competitive. So, such a phone would sell, and sell well, and take a big chunk of the most valuable Android customers. Not, of course, the ones who value ‘open’ and the Google ecosystem above everything else, but true enthusiasts are a minority on both Android and iOS.
Anatomy of a Feature
I was recently reminded of an excellent post from back in 2009 by Brent Simmons called Anatomy of a Feature. In it, Brent walks through the seemingly trivial work required to add a “Save to Instapaper” feature to NetNewsWire. What seems at first like a simple call to a web service quickly expands into a number of non-trivial feature decisions that have to be made:
“Oh, it’s easy, just a quick http call. I could write a script to do it in like 20 seconds.”
But of course it’s not as simple as just writing a quick script. It’s tempting to think that adding a feature like this is just about adding the functionality — but there’s a bunch more to it than that.
So often people fail to grasp the inherent complexity of building software. In my line of work I often hear people talk about how easy it would be to throw in this or that feature with no regard to all the baggage that goes along with it. There’s very little intuitive understanding that software can be infinitely complex, that complexity is absolute poison to a software project, and that effective management of complexity is one of the key responsibilities of any project team. Even seemingly simple features can have implications that are far reaching.
Brent’s post is a really good examination of this issue viewed through the lens of a feature most software engineers can understand instinctively. It’s and worth a read if you work in or near software in any capacity, even if you’ve read it in the past. It’s a key principle that isn’t called explicitly out enough, yet it underlies so much of what we all do as part of software teams.
Anti-Semitism Rising in Europe
Anti-Semitism Rising in Europe
One representative post:
My fears reached a high point on the eve of Bastille Day, and a day later on the anniversary of the Vel D’Hiv roundup of French Jews by the puppet Vichy government for transport to Auschwitz. On July 12 and 13, during a massive pro-Palestinian demonstration in Paris, several groups spread out to synagogues in the middle of Paris to threaten the Jews inside, while in Aulnay sous Bois, outside the capital, a synagogue was hit with Molotov cocktails. The mobs chanted “Death to the Jews,” and a politician from the Green party said it was “not surprising that synagogues are attacked when they support Israel’s policy.
Reading the somewhat terrifying anecdotes from that blog reminded me of a quote from Christopher Hitchens I read years ago on anti-Semitism:
I think that anti-Jewish prejudice is an unfailing sign of a sick and disordered person … It’s a horrible, conspiratorial, pseudo-intellectual, mean spirited, eventually lethal piece of bigotry.
When I first read that passage, it was the phrase “ultimately lethal” that stuck in my head. It’s troubling because it’s true, and seeing anti-Semitism flare up in pockets of Europe has it sticking in my head again now.
The Hero Returns: Steve Jobs’ real genius
The Hero Returns: Steve Jobs’ real genius
Everyone claims to know the secret to Steve Jobs’s “real genius,” which is reductive and often tedious. There are some interesting stories here, though, about Jobs’s role at Pixar and how different it was from his role at Apple.