Defomicron

Software, Hardware, Silverware


Entries tagged: Development

I live in awe of the amazing things developers are able to create for me to use.

Brent Simmons on WWDC

Brent Simmons:

I’ve heard other developers say they want to wait about a year, and I totally understand that attitude. It’s reasonable to assume that Swift code written today may not compile in a few months — it’s a work in progress.

But my thinking is this: if I start using it now, I can provide feedback, and that feedback will help shape the programming language that I’m likely to use for the rest of my career. Maybe I’ll have a ton of feedback, and maybe I’ll have none — but I’d sure hate to have missed my chance to help.

I’m no language purist — quite the opposite. I’m a pragmatist with many years of experience who wants to write better software more quickly.

I did not expect Swift. I expected it in five years, maybe. But this is — far and away — the thing I’m excited about. (I’m about a third of the way into the book.)

New Territory

Marco Arment:

But existing apps were all written by people like me who have been solidifying the assumption in our minds over our entire iOS careers that these features simply aren’t and never will be possible on iOS. We never thought we’d get these. It’s going to take a while before we internalize these new abilities and forget the old restrictions.

The first amazing, forehead-smacking innovations with iOS 8 won’t come from us: they’ll come from people who are coming to iOS development from this point forward, never having known a world with the old restrictions.

File a Bug

Daniel Jalkut:

My friend Marco Arment laments that of the 15 bugs he’s filed since 2009, eight have been marked as duplicates, and seven have received no significant response.

Since 2009, I’ve reported 161 bugs. It’s much harder for me to do a stone-cold analysis of the results of my efforts. Yes, I’ve “wasted some time,” but often in the process of doing so I have also gained a deeper understanding of the problems I was reporting.

Having filed 161 bugs over six years, I can guarantee you that I’ve had far more bugs ignored or filed as duplicate than Marco has. I’ve had my share of bugs for which I’ve had to send back a sternly worded note to the bug screeners, implying in as polite a language as I could muster that they were not doing their jobs well.

The real question is, why don’t either of these guys know you don’t capitalize ‘a’ in a title?

Programming Sucks

Peter Welch:

Remember that stuff about crazy people and bad code? The internet is that except it’s literally a billion times worse. Websites that are glorified shopping carts with maybe three dynamic pages are maintained by teams of people around the clock, because the truth is everything is breaking all the time, everywhere, for everyone. Right now someone who works for Facebook is getting tens of thousands of error messages and frantically trying to find the problem before the whole charade collapses. There’s a team at a Google office that hasn’t slept in three days. Somewhere there’s a database programmer surrounded by empty Mountain Dew bottles whose husband thinks she’s dead. And if these people stop, the world burns. Most people don’t even know what sysadmins do, but trust me, if they all took a lunch break at the same time they wouldn’t make it to the deli before you ran out of bullets protecting your canned goods from roving bands of mutants.

You can’t restart the internet. Trillions of dollars depend on a rickety cobweb of unofficial agreements and “good enough for now” code with comments like “TODO: FIX THIS IT’S A REALLY DANGEROUS HACK BUT I DON’T KNOW WHAT’S WRONG” that were written ten years ago. I haven’t even mentioned the legions of people attacking various parts of the internet for espionage and profit or because they’re bored. Ever heard of 4chan? 4chan might destroy your life and business because they decided they didn’t like you for an afternoon, and we don’t even worry about 4chan because another nuke doesn’t make that much difference in a nuclear winter.

An iPhone Engineer Reminisces on Mobile Safari

Brian X. Chen for The New York Times:

Mr. Jobs was notorious for throwing his weight around however he could. One person on the iPhone design team was also named Steve, which caused some confusion in meetings. Mr. Jobs sought to change this.

“At some point Steve Jobs got really frustrated with this and said ‘Guess what, you’re Margaret from now on,’” Mr. Tolmasky said. From there on, members of the team would always address the designer Steve as Margaret.

Why The Pull-To-Refresh Gesture Must Die

Did you notice Instagram has pull-to-refresh now? Probably not. Here’s Austin Carr on Instagram’s change and the gesture in general, for Fast Company:

In earlier versions of Instagram, the app featured a button that allowed users to refresh the images displayed in their feeds. Now, the button is gone—replaced by an Instagram Direct inbox icon—and the Instagram team moved to the pull-to-refresh paradigm. “We introduced pull-to-refresh, so now when you pull on your feed, it just refreshes,” Systrom says. “[But] I’d like [to get to] a day when you didn’t have a refresh button—where it just updates [automatically].”

I agree, 100%. Getting rid of refresh controls all together is one of those weird, intangibly uncomfortable ideas (at least to me). But it’s also necessary. Our phones are powerful enough and efficient enough now to do this. And if you think that argument’s crazy, here’s Loren Brichter, creator of pull-to-refresh, quoted in the very same article:

Brichter, however, feels that it’s high time his gesture evolves. “The fact that people still call it ‘pull-to-refresh’ bothers me—using it just for refreshing is limiting and makes it obsolete,” he says. “I like the idea of ‘pull-to-do-action.’”

It’s a testament to his genius that he realizes it is time we moved on.

Bitcoin Mining Bots

Juli Clover reporting for MacRumors on a new developer plugin that promises to turn free iOS apps into bitcoin mining bots for their developers:

According to Hill, Icoplay’s plugin is dynamically designed not to interfere with apps that it is built into, so much so that users will never “even notice the plugin is humming along in the background.”

Regardless of the solution you choose, our bitcoin miner will seamlessly integrate into your game with no interference, earning you cash in perfect harmony with your existing app monetization strategy. There’s no catch — it’s just awesome.

What Hill doesn’t mention, however, is that an app or game continually drawing power for a background process would certainly be a drain on system resources, quickly exhausting battery life.

“It’s just awesome.” And you thought IAP games were scummy.

Something tells me this won’t be allowed by Apple.

Tweetbot 3

Tweetbot 3, the first version designed for iOS 7, is out now. It’s delightful and without doubt one of the great iOS 7 apps. The $3 is a no-brainer, and it’s replaced Twitterrific as my Twitter client of choice on my iPhone. If you’re interested, Federico Viticci has a thorough review of it (he’s been beta-testing it for several months).

1Password 4 for Mac Is Here

1Password 4 has arrived on the Mac (finally). I’ve been a 1Password user for about a year now and I’ve been beta testing version 4 for Mac for several weeks. It’s a great update. The new design is beautiful and useful; the icon is great, too. With Mavericks shipping later this month (hopefully) and iCloud Keychain going live between iOS and OS X, 1Password is about to face their biggest competition yet. Ironically, my favorite addition to 1Password 4 is iCloud sync.

The Codename Rules

Michael Lopp on codenames:

Marketing: “No, we gave them a list of 20 different names and they’re going to determine which name strategically distinguishes the product from our competitors by conveying its unique positioning.”

Engineering: “Screw that.”

Underscore Price Dynamics

Marco Arment makes it pretty clear that his upcoming podcast app, Overcast, will be free with in-app purchase:

I’m sure of one thing, though: the market for paid-up-front apps appealing to mass consumers is gone. If you have paid apps in the store, you’ve probably seen the writing on the wall for a while.

Yes, free apps with in-app purchase will make more money. That doesn’t mean it isn’t a scummy business technique. So long as you sleep soundly, I guess.

Discounted App Upgrades are a Terrible, Complex, Outdated Idea

Steve Streza on upgrade pricing:

One example of a long-standing Mac shareware developer is the Omni Group. Here is a company that has thrived for almost two decades on the shareware model. Just yesterday, they released an update to their popular Mac app, OmniGraffle. OmniGraffle has existed since long before the Mac App Store, and is a wonderful app well deserving of its praise. However, like many shareware apps of the era before the Mac App Store, they offer upgrade pricing, and are unfortunately a perfect case study in all the ways you can get the user experience of an upgrade wrong.
When you open the app, OmniGraffle prompts you with a dialog box asking you if you want to upgrade to the latest update. They show a long list of new features that sound great, but with not a single mention that this is a discounted upgrade. A customer who decides they want these features clicks through, and (in this case) get taken to the OmniGraffle website listing more of those features, but there is again no mention of upgrade pricing. You click the download link, install the update, and it suddenly says you’re in trial mode. If they want to undo this process, they have to find the old version, buried as the 5th question on their support page and listed in a large FTP index with files that end in extensions like tbz2.

Another thing I’d add he didn’t touch on: by eliminating upgrade pricing, Apple has produced a more fair market for developers. Upgrade pricing incentivizes users to stick with products they’ve already bought. Imagine Instacast and Pocket Casts both release new versions of their apps for $5, and let’s imagine that the new version of Pocket Casts is universally regarded superior. Capitalism dictates that Pocket Casts should sell better because it is a better product, but if Instacast has an established user base that they can offer the upgrade to for $1 instead of $5, they’ll artificially inflate their sales numbers. They’ll be rewarded for inferior work.

Naming Overcast

Marco Arment, on the naming process behind his new podcast app, Overcast (coming soon):

I brainstormed many potential names in a giant text file over a couple of weeks, enlisting help from friends, Invent-a-Word, Wordoid, and lists of English prefixes and prepositions. Even if I knew a name was bad or unusable immediately, I still wrote it down in case it could later inspire a usable variation.

Honest In-App Purchase

David Smith on games that make money through In-App Purchase:

Much of the success of consumable In-App Purchase is that each individual purchase is small and feels less significant. The goal is to nickel-and-dime users in such a way that they don’t realize the actual level of their expense until they get their iTunes bill.

I hate these games passionately1. If I was running Apple, I’d ignore Smith’s (good) suggestions for making these games more transparent about their tactics and just forbid them entirely.


  1. Real Racing 3, I’m looking at you. ↩︎

Pirated Apps in the App Store

Jon Lipsky got a support request for an app he wasn’t selling:

At that point I decided I’d purchase the app (and later request a refund) to figure out why the customer thought this was our app. What I found absolutely shocked me. “Diagram Touch” was nothing more than a cracked (two year old) version of TouchDraw that had been repackaged with a different splash screen and different icons.

Terrible. Apple can have no excuse for this.

Slow Your Roll, Chrome

MG Siegler:

To be clear, I love Chrome. I know I give Google a lot of shit, but Chrome is one product I’ve held in the highest regard since its launch a few years ago. I’ve given a look to Safari from time to time, but I always go back to Chrome. It’s just better.

“It’s just better.”

Instead, we’re at the point now where I cannot shut down my computer without force-quitting Chrome. And the browser is just about the only thing that can get my brand-new MacBook Pro to beachball.

Sounds better.

Here, I’ll even help. Step 1: rip out Flash.

Oh, you mean like Safari?

UPDATE: Apparently this article is a few months old, but Feedbin or Svbtle decided I needed a revisit this morning so you get one, too.

Free Trials and Tire Kickers

Marco Arment on App Store pricing:

If you sell a low-priced app in the App Store with no free version, you make money from every tire kicker.

Even if we end up using a different app instead of yours, we still bought yours to try it out. We had to, because we couldn’t get a free trial — we paid to satisfy our curiosity of why Viticci raved about your app so much, or how a Twitter friend used your app to post that cool link, or how well you’re going to solve our most important problem right now. If the app is only a dollar or two, enough of us are OK with paying just to try it,1 even if we’re not going to end up using it every day for the next five years.

If the App Store mostly moved to higher purchase prices with trials, rather than today’s low purchase prices and no trials, this pattern would almost completely disappear. Instead, we’d get the free trials for almost everything, and then we’d only end up paying for the one that we liked best, or the cheapest one that solved the need, or maybe none of them if we didn’t need them for very long or decided that none were worth their prices.

Either the best app wins and gets all of the sales at a higher price, or every app takes home a smaller prize. Ceteris paribus, the user would spend about the same on every app category whether he/she buy seven $2 apps or one $15 app.

I’d much rather see that profit spread out between the developers in a category. The best apps will still take home more profit, but the newcomer has a chance to make money in the store and keep innovating on his/her creation. By dividing our App Store spending, we enable competition.

Before I read Marco’s article, I was a blind advocate of App Store trials. Now I’m thinking the exact opposite. But please oh please, bring on the upgrade pricing.

You Don’t Need Every Customer

Marco Arment:

If you sell a 99-cent app to just 1% of the people who bought new iOS devices in the 2012 holiday quarter alone, you’ll clear about $519,750. Not a bad quarter.

Netflix Saying ‘Goodnight, Silverlight’

Simon Thomas, on Netflix’s post about their potential move to HTML5:

Do they really believe DRM, any DRM, is effective at anything other than annoying genuine users? Additionally, is there anything on Netflix’s catalogue that can’t be obtained elsewhere on the internet without DRM?

I bet Netflix feels exactly the same way, Simon. But in order for great content to keep pumping through Netflix’s servers and onto our screens, they have to ceed to the demands of the networks. And that means DRM.

“If we can convert colors into math, we can do math on colors.”

— Brad Ellis, speaking at Çingleton.

Home Turf

Matt Drance:

Facebook Home is a trojan horse designed to steal the Android experience, and the Android user base, right out of Google’s hands. The majority of speculation over the last year or two had been that Facebook was working on its own mobile OS. It may well be, but this move is so much smarter on a number of fronts.

I haven’t written anything about Facebook home because truthfully I haven’t found it very interesting. My friends aren’t, shall we say, interesting enough for Facebook Home to pique my intrigue. This, however, is interesting. A company I don’t like very much (and I won’t name names) has screwed over another company I don’t like very much. That’s pretty funny.

Technological Conservatism

John Siracusa:

Technology can be a surprisingly ideological topic. In politics, the spectrum of belief is right on the surface: conservative/liberal, right/left. In tech, that same spectrum exists, but it’s rarely discussed. What’s more, unlike political beliefs, I’m not sure most people are even aware of their own core ideas about technology.

Neglecting progress for the sake of tradition is an enormous peeve of mine, and one of our world’s greatest hindrances going forward. It exists everywhere.

The Tax of ‘New’

Julie Zhuo, of Facebook:

This is how good, simple products become quite the opposite. Like a Katamari ball gunning for a record score, your product picks up more and more features until one day, your typical user opens up your app to see 4 different toolbars and 50 icons littered across the UI. Or they look through your list of services and have to wade through 32 line items spread across 7 different pages. Or they click to open a menu and are presented with 20 different options. Your app becomes one of the ones that my mom needs to call me to figure out how to use (“Honey, what does ‘release and trust sender’ mean?”).

That’s what Apple has been so very good at in the past: avoiding new for the sake of new. It’s why we only get a new iPhone once per year, why we didn’t get an iPhone with a larger screen until last fall, and why we won’t see Apple’s watch until it is ‘insanely great’1.


  1. This iterative design approach is best covered by John Gruber’s oft-referenced Macworld piece on the subject. ↩︎

Mozilla and Samsung Collaborating on Next Generation Web Browser Engine

More web engine news for you today:

Servo is an attempt to rebuild the Web browser from the ground up on modern hardware, rethinking old assumptions along the way. This means addressing the causes of security vulnerabilities while designing a platform that can fully utilize the performance of tomorrow’s massively parallel hardware to enable new and richer experiences on the Web. To those ends, Servo is written in Rust, a new, safe systems language developed by Mozilla along with a growing community of enthusiasts.

That, to me, sounds a lot more exciting than Google’s fork of WebKit. For one thing, Servo will not immediately replace Gecko. That’s important, because if Mozilla rushed it into Firefox and it was a dud, web developers would be forced to support it due to the browser’s popularity. More importantly, this is a completely new technology. With Google’s fork, the Chromium team will no longer reap the benefits of the WebKit team’s continued development. Likewise, the WebKit team will not be able to utilize any of Google’s improvements.

Servo could be the start of a new era in web rendering, but it will only get there if it’s good. If it is and it ushers away WebKit, then that’s great. If it isn’t, then we still have WebKit.

Google Forks WebKit

Adam Barth, a software engineer at Google, on the Chromium Blog:

This was not an easy decision. We know that the introduction of a new rendering engine can have significant implications for the web. Nevertheless, we believe that having multiple rendering engines—similar to having multiple browsers—will spur innovation and over time improve the health of the entire open web ecosystem.

Didn’t John Siracusa just explain why the WebKit Planet is a good thing?

UPDATE: As Guy English reminds us, The Doctor has already chimed in on Google’s new rendering engine.

Sun Is a Simple HTML5 Weather App

This isn’t so much a “you’ll use this weather app every day” as it is a “this is really cool thing we can do with HTML5 right now”, and the future looks great.

Annoyance-Driven Development

John Siracusa doesn’t like that Netflix’s original series, House of Cards, plays ninety seconds of credits before every episode:

Every time I fast-forward through those 90-second opening credits (made more difficult by the occasional variable-length pre-credits scene), I get the opposite feeling about Netflix. It’s an unhappy reminder of the old world of TV.

I agree. Even if Netflix is somehow contractually obligated to show these credits, they should have found a way around it. Apple didn’t settle for AT&T logos on iPhone, and Netflix shouldn’t settle for tedious opening credits.

Find out what’s annoying the people you want to sell to. Question the assumptions of your business. Give people what they want and they will beat a path to your door.

Surprisingly, John doesn’t mention it, but this is what Apple is so very good at doing. And usually the customer doesn’t even need to ask.

App Store Trials

Amy Worrall, on her blog:

Developers can choose whether to allow a trial of 1, 7 or 30 days, or to disallow trials all together, on a per-app basis. For those apps that allow trials, the App Store would show a “Try for 7 days” button alongside “Buy app”.

I won’t spoil it for you, but the rest of her idea is very solid. It feels exactly how Apple would do trials. On that point, Apple will at some point have to add trials and upgrade-pricing to the App Store. Since Amy contributed a perfect implementation of trials, let me give Apple an idea for upgrades:

The developer attaches a piece of metadata to a new app, telling Apple that it is an upgrade of an older app. When you visit the App Store page for the new app, Apple compares the new piece of metadata with your purchase history and determines your eligibility.

I silently wonder if the reason Apple hasn’t released new versions of iLife and iWork is because they haven’t rolled out upgrade-pricing yet. Lazy bastards.

Real Racing 3 Will Be Free to Play

Firemonkeys Sam (which I think is his legal name):

Today we announced Real Racing 3 will be free. And yes, Real Racing 3 was designed from the ground up to be a free to play experience. We are so excited about this game and wanted it to be accessible to everyone so we didn’t want there to be any barriers to entry.

A.K.A. Real Racing 3 is going to cost hundreds of dollars if you want to be competitive and/or beat the game. This is a real shame.

Three Wishes for a Better App Store

Marco Tabini, for Macworld, suggests changes for the App Store going forward:

On my third-generation iPad, for example, the App Store app is painfully slow; it takes several seconds from the moment I tap its icon to the moment I can start doing anything, and the app sometimes freezes while I wait for a particular screen to render. Admittedly, things are a bit faster on my iPhone 5, but this is hardly the kind of experience that I have come to expect from an operating system that places so much emphasis on responsiveness and focus.

While he has three (all good) suggestions, I’ve chosen to highlight the above because I think it is the most troubling. The App Stores are not native apps. They are rendered in web views. Even Facebook, the company famous for denouncing native applications in favor of HTML5, went native last year. While the iOS 6 App Stores look nice, going forward they need to be rebuilt as native applications.

Atebits Unveils ‘Letterpress’

Atebits:

Find words, steal tiles, color the board! Letterpress is a fresh new word game for iPhone, iPad, and iPod touch. Play with your friends using Game Center! The perfect blend of fun and strategy. Download it for free on the App Store.

I’m a little concerned that the app is free, but it is a brilliant and addicting word game. Well done, Mr. Brichter.

Stop Using the Cup of Coffee vs. $0.99 App Analogy

Josh Lehman:

How often have you heard people say “I could have made that app, if only I’d thought of it first”. Or “that’s so simple, I can’t believe its been so successful”. These are telling statements. The general public doesn’t understand the complexity and time it takes to build something great.

I myself feel ridiculous when I resist “wasting” one dollar on an app. I feel even more ridiculous when I then drop $4 on a white chocolate mocha at Starbucks. And yet, those feelings come back. The mindset of the consumer (even very knowledgeable consumers) is difficult to modify. I can hope, though, that even my own unconscious resistance will slip away as the proliferation of “apps” continues to take over the marketplace.

Why I Am Letting My Google I/O Invitation Expire

Jeffrey Zeldman:

So Google wrote to my zeldman.com address, which they won’t allow me to associate with my Google+ address, to invite me to start a Google+ account (which I already have) on my zeldman.com account, which they won’t support. And if I do that (which I can’t), and some other complicated stuff, they promise that I will then be able to participate in Google IO, whatever that is.

In case you were wondering, I won’t be going either.

Instagram’s New Experiment: Open Up the API for Third-Party Uploads

Federico Viticci, on Hipstamatic and Instagram’s new collaboration:

What I really think could be huge, both for the companies involved and the users, is the API that Hipstamatic is leveraging here. Hipstamatic is doing the right thing: sharing has become a fundamental part of the mobile photo taking process, and it would be foolish to ignore Instagram’s popularity and come up with a whole new network.

This is good, though I don’t think this collaboration with Hopstamatic necessarily infers the a future opening of the Instagram API. Honestly, I’d like to see Instagram keep this sort of thing selective.

But I still don’t see how Instagram intends to make money.

Frequent, Intense Mature and Suggestive Themes

Marco Arment:

The rationale behind the inconsistently-enforced “Applications must be rated accordingly for the highest level of content that the user is able to access” policy is to avoid undermining these controls. Parents who disable Safari don’t want their kids just downloading Atomic Web Browser instead.

But the current solution is inconsistent, arbitrary, unfair, and ineffective: entire categories of web-browsing and web-content apps are still permitted to bear 4+ ratings. Teenagers who can’t look at porn in Safari or Atomic Web Browser can just get there from Google Search or Twitter instead.

That while dictionary apps are being forced to carry these ratings. This is one of those things in iOS that seems like an afterthought. It’s become almost comical how apps are being labeled1. Apple needs to gut their system and rethink it logically. As any good journalist would, Marco follows proposes a solution:

Add another rating category. Call it something like “Can access unfiltered web content.” Require all apps with such abilities to select that classification in iTunes Connect.

Agreed.


  1. Though decidedly less comical for developers. ↩︎

Need for Greed

Nate Boateng:

The thought that a small development team is expected to do months work for free is insane to me. Yes, there are tons of successful apps that are universal (see Instapaper, Due, and Twitteriffic), but the perception that we are entitled to that is not only selfish, it’s just plain wrong.

I agree wholeheartedly. Software developers work hard to create their applications for us, and they deserve to be rewarded. You wouldn’t ask the Starbucks barista for a free vente latte because you bought a tall one yesterday — that would be absurd — yet this is essentially what people are asking today of Tapbots.