Browsing articles from "January, 2012"

Bespoke — Custom Tailoring Software

By Rob Warner  //  Development  //  No Comments


Can you imagine a future where, for a price, a key software tool that you rely on can be bespoke?

(Via patrickrhone / journal)

Interesting idea–one that would practically be limited to open source software, though, for legal (if not technical) reasons.

I just like anything that uses the word “bespoke.”


Dr. StrangeUnix Or: How I Learned to Stop Worrying and Love the Mac

By Rob Warner  //  Development, Java, Mac  //  No Comments

Dr. StrangeUnix Or: How I Learned to Stop Worrying and Love the Mac:

But what the fact that “It’s just UNIX now” got us was the ability to create an X11 application that would run on the Mac.  So we did that – and customers loved it.  Well, that isn’t exactly true.  They acted more like we gave them a new BMW but first used it for one of those things you see at the county fair where you pay a dollar and get to hit a car with a sledgehammer (granted they usually do this with demolition derby cars, not new BMWs).  It was SlickEdit – it worked, but it just didn’t look or feel like people expected it to. Hardcore SlickEdit fans were happy… ish.  They were happy to have SlickEdit, but they missed all the Mac-isms, and were a little perturbed by SlickEdit’s menu being attached right to the top of the application window.

(Via “Hello World” – The SlickEdit Developer Blog)

When I switched to Mac from Windows, I left SlickEdit behind . . . and missed it terribly. I tried a number of Mac editors — you can see a recent writeup at — and use MacVim almost exclusively (and viPlugin when doing Java in Eclipse). Now a real Mac version of SlickEdit is available, and kudos to them for giving it free to anyone who bought any X11 Mac versions. I’m buying it today!


Why tabs are clearly superior | Lea Verou

By Rob Warner  //  Development  //  No Comments

Why tabs are clearly superior | Lea Verou: “If you follow me on twitter or have heard one of my talks you’ll probably know I despise spaces for indentation with a passion.”

Great arguments. I probably still won’t change, though. I prefer the predictability of spaces in code to the configurable vagaries of tabs, I guess!


On the Usability of Codecademy

By Rob Warner  //  Development  //  1 Comment

On the Usability of Codecademy:

Usability is hard because real users use our UIs and software in different and unexpected ways.

(Via Zen and the Art of Ruby Programming)

Required reading for people who build software. We’ve got to stop dismissing people as “too stupid to use a computer” — if people can’t use what we build, it’s our fault, not theirs.

We’ve been conditioned to blame ourselves if we stumble and fumble when trying to interface with software, goods, or other services. “Where’s the light switch? Oh, there! How stupid of me!” I’ve learned to stop feeling stupid or blaming myself when I don’t “get” something new — I blame whoever dumped their assumptions and curse of knowledge on me. Both you and your audience should, too.


App Cubby Blog – Free and Low-Cost Apps

By Rob Warner  //  Development, iOS, Mac, Mobile  //  No Comments

App Cubby Blog – Free and Low-Cost Apps: “The pool of time users spend on smartphones is staggering and growing rapidly, but it is not infinite. The more time people spend with useful/entertaining free apps, the less need they have to actually pay for apps. That doesn’t mean people will never pay for apps — the market for paid apps has continued to grow alongside free and freemium apps — but users have been conditioned to expect more and more for less and less.”

(Via @drbarnard)

The App Store sorely misses two pricing options:

  1. Paid upgrades
  2. Trial versions

These options evolved in the software community over decades of software sales, proving their merit over time. In one swipe, Apple prevented them from touching iOS devices.

Developers work around the lack of these options by creating new apps instead of paid upgrades, in the first case, and offering free versions of apps that are limited or display ads, in lieu of trial versions. Neither benefits customers or developers.

With paid upgrades, developers can maintain a revenue stream over the life of an application while rewarding loyal customers. Without paid upgrades, developers either ensure that their best customers disappear from their revenue stream forever, or they release new apps (such as Rope’n’Fly 3) and tell their best customers that loyalty means nothing. Everyone gets the same “upgrade” price: free or full.

The Free Version/Paid Version dance isn’t much better, as it requires customers to download the free app, try it out, then trek back to the App Store and find the paid app, download it, then delete the free app. The advent of in-app purchases have improved this experience by allowing you to download one free app, then later unlock things by purchasing from within the app. By explicitly banning trial or time-locked versions, however, Apple has limited what incremental value you can offer in a paid version, so most in-app purchases eliminate ads or sell inessential app enhancements. The free version, after all, must be fully functional without the in-app purchases.

Both these practices conspire to starve developers from revenue streams–while prices race downwards. Many customers have become a surly bunch, too, decrying an app as utter rubbish if it doesn’t perform some task it was never intended to do, for example, or moaning about the “complete waste” of an amount of money they’d be unwilling to bend over in the street to pick up. And don’t get me started about customers who write glowing text attached to one-star reviews that obviously don’t understand which extreme is “best.”

As a customer, I’d rather pay more for fun games or useful apps, pay an upgrade fee for significant upgrades, and try time-locked versions to determine whether to buy something–in short, follow software purchase patterns that have evolved over time and have proved they work. That way, I can support developers I feel deserve it while getting apps at fair prices.

After I read AppCubby’s article, I purchased $5 worth of coins on TempleRun and unlocked the football player I didn’t really want, just so I could support an app that I find fun and that dominates the iPhones of most of my children (and, I understand, of several NBA stars, including LeBron James and Kevin Durrant) . It felt a little like charity, giving money for something I didn’t really want, but the TempleRun developers earned the money with their free game. I wish there was a better way.


Trust is fragile – (37signals)

By Rob Warner  //  SaaS  //  No Comments

Trust is fragile – (37signals):

So let’s start with first things first: We’re sorry. We made a mistake. We should have thought it through and remembered that storing your data with someone else in the cloud hinges on a fragile layer of trust. We poked that trust in the eye and it was wrong. We shouldn’t have checked the log files to see the name of the 100 millionth file.


I remember thinking at the time of the original “100 millionth file” post that it was odd that they would post the name of the file, or that they would even look to see what that file was named. It was a pretty obvious faux pas. Good for them for aggressively correcting that misstep.


Immobile Apps

By Rob Warner  //  Development, iOS, Mobile  //  No Comments

Immobile Apps:

One of the most painful things we did when developing Glassboard was ban ourselves from Wi-Fi for a week. I live in an area where cell coverage is really spotty, and using our app without a fast connection was eye-opening and humbling. I spent the next week rewriting huge chunks of the app so it would better handle poor (or non-existent) network connectivity.

(Via Nick Bradbury)

Good reminder for minimizing dependence on connectivity. I watched my family members go berserk at the Gator Bowl last Monday when cell coverage was spotty and they couldn’t post pics to Facebook from their iPhones. It seems like the FB app could queue those up instead.


I'm Rob Warner, and I'm a software developer. I live in Jacksonville, Florida, and work for Availity, LLC. The postings on this site are my own and do not necessarily reflect the views of Availity.