I came across a new textbook I wanted to read recently called Introduction to Data Science.

Yes, I’m a nerd in my spare time, as well.

Two things piqued my interest (as I’m not entirely sure I need an introduction to data science):

The latter interested me because I wanted to see if there was any interactivity beyond the common, end-of-chapter quiz—maybe an innovative way of demonstrating a concept that would further my understanding or help someone else.

The only problem is that I don’t have an iPad. But, surely with an iPhone 5 and some Apple computers at my disposal (alongside graduate-level Googling skills), I’d be able to find a way to check it out—or, so I thought.

Download to my iPhone? Nope.
Download to my computer and sync to the iPhone? Nope.
Find an iBooks reader for a desktop? Nope.
Open the download in iBooks Author? Nope.

Why would this ever be a good move by Apple?

I’m not their target audience, that’s why. They don’t want me reading iBooks built for iPads without an iPad.

We can project ill intent or cheapen the term corporate greed to describe Apple’s flagrant disregard for my desire to read a book on whatever platform I wish, but, in doing so, they control the experience. They control the way I consume the content as well as the the way authors create it, because it only has to be designed and built for one size, and tailored for one aspect ratio.

If they didn’t control it, students (presumably a target audience) would likely just learn to use them on laptops, instead. iBooks would become a cloud-based content distribution platform instead of an opportunity for an immersive experience. iBooks Author would have to account for screen sizes, performance issues, and everything else under the sun. There’d probably be little reason left to choose iBooks over PDF’s.

Target your best customers with a niche product. Forget the rest.

Haters Gonna HateKnowing an iBook exists that I can’t access aggravates me, but Apple doesn’t care—neither should you when you’re building a product/service for a niche market. Your target audience isn’t “everyone with money”, so why would it matter what the consensus of “everyone with money” is?

This is a major concept of a talk I’ve been giving for about four months now (and continue to): as a company, be yourself. Be an individual, of sorts. Have a personality, target those who would be most interested in your product or service, create content for them, and (kindly) disregard everyone else.

Your best customers want this from you.

February 23, 2013 — 4 Comments — In Apple, Blog, Opinion, WWIC

There’s a great feature in Apple Mail I didn’t realize was there until I needed it today.

If you want to download the attachments from multiple emails, select the emails (using shift/control + click) and go to File > Save Attachments…


I was sent about 15 individual emails with photos in them, so this saved me some time. Feel free to share any other cool Apple Mail tricks in the comments!

November 30, 2012 — 3 Comments — In Apple, Apple Mail, Blog, Email, Tutorial

I love solving problems, even when the problem is really just an inconvenience masquerading as something prohibitive.

One thing I do each morning is read the Daily Office selections from the Book of Common Prayer, a collection of prayers and readings from the Anglican church, written in the 1500’s (if you’re already heading for ‘Close Tab’—hang on, this isn’t just about the Bible). There’s a number of ways for me to accomplish this, but what I really needed was:

  • Accessibility for my mobile device for reading during my morning commute on public transit
  • Quick access to the audio version, as this is best for mornings when I’m driving
  • An interface that doesn’t distract me by being clunky or offering ads

In exploring other options, nothing quite captured what I was looking for. The absolutely fantastic YouVersion Bible app doesn’t offer these readings on the same schedule (which is really important to me—people across the world read the same Scriptures on the same day). There were also some other options in the App Store, but they were generally poorly designed or overly complicated.

No matter what you believe or do for yourself each day to quiet yourself internally, you’re not going to succeed at being consistent if your methods aggravate you. I needed to remove my frustrations.

So, I built this application for myself. I’m making it available publicly on the chance that this helps someone else in the world.

What’s it do?

It’s really, really basic at this point— intentionally. It’s designed to be fast and clean.

When you open the app, it goes straight to a selection of today’s readings. Simply tap the one you want and a window pops up, displaying only that text. There’s also a simple pause/play button for the audio.

That’s it.

Download for iOS (Universal)

Download for Android (2.2+)

How’s it built?

Not only did I use this opportunity to solve a problem for myself, but I also used a few tools I might not have otherwise to gain some experience.

Instead of building in pure Objective C, I used Appcelerator Titanium. Why? I wanted to see if its reputation as a faster way to build an application held water. I figured you could hardly get more simple than this, so it’d be a good test in start-to-finish development. Plus, I wanted to see how maintainable one code base compiling to two platforms (iOS and Android) could be. On the whole, I’m pleased!

I’m using the ESV Bible Web Service API to pull the scriptures and display them on click. Why? Well, try looking for a good API with Scripture and let me know if you find anything better! Seriously, ESV provides access to these Daily Office Readings via their API, and I could easily use only that to power the app.

Lastly, since their feed is only available in XML (womp womp), I wrote a script (using some open source resources as well) to translate the feed to JSON. Why? Two reasons: I’d rather build a script and use JSON in the app because it’s easier and I might as well have the API in the app point to my servers instead of a third-party. This would allow me to adapt without pushing an update to the app itself.

If I don’t use it, why does it matter?

I simply want to share how rewarding it is to solve your own problem using your own skill, then share it with others freely. It’s a different sensation than only producing something for others.

I encourage you take a break from transforming everything into a product all of the time, and choose to freely offer the fruits of some of your labor (if you don’t already). Chances are, you benefit already from someone else choosing to do exactly that, especially in an open source community.

October 30, 2012 — 85 Comments — In Android, Apple, Blog, iOS

In the most un-ironic move in tech history, Microsoft recently provided me with a great example of ‘missing the forest for the trees’, a mistake I passionately urge clients (and others alike) not to make when designing and developing a web-based product—whether you’re consciously selling something or not.

The Backstory

Nokia Lumia 900

Image from ZDNet

Although I’m hopeful about the future of Windows (both mobile and desktop), let’s state the obvious: Microsoft is not the front runner in mobile. They’re not even in a close second. But, they’re in a dream underdog scenario: an abundance of capital, a steady company history, and brilliant people. So, the launch of a new, major release to their platform is a big deal, and a lot rides on it.

Now, Nokia’s Lumia 900, probably the ‘flagship’ WP7 phone, won the Best Smartphone award at CES 2012. It was just unveiled in January of this year, and came to consumers in April with a massive marketing push, trumpeting the latest in Windows Phone technology. It’s a beautiful and capable device, and many folks signed a brand new two-year contract to get it.

Ignoring some other places where Windows Phone has been falling short as a consumer product, this was a great step for Microsoft’s mobile department.

Windows Phone 8

Image from Microsoft

Yesterday, Microsoft announced the arrival of Windows Phone 8. Despite mixed reactions (which every mobile OS release is privy to), it looks like a beautiful, powerful update that users should be excited about.

What a marvelous surprise for all those customers who bought the Lumia 900, a “high performance” phone, right?


Apparently, the best Windows phone currently on the market can’t handle an update to Windows Phone 8, so they’ll be getting an update to 7.8 with the “core elements” and UI of 8.

Of course, when you’re targeting features in an OS release that rely on multiple processors and NFC, as Microsoft’s Greg Sullivan stated in that article, it’s not beneficial to try to make it work on less capable devices. Consumers understand that you do have to move forward, and that always requires more powerful hardware. But, what’s the logic behind not giving an update to the millions who bought your ‘best’ device, just months prior? Why not find a way to disable features to support older devices, so that an existing customer can get the updates their device can support and Microsoft can avoid fragmentation?

The Pervasive False Premise

Nokia’s Kevin Shields wants to clear that right up for us:

…we sat down with Nokia’s Kevin Shields to find out if the company is doing enough for its existing Lumia users.

“I definitely think it’s more than enough. I think that ultimately your typical customer probably isn’t all that aware of this upgrade thing,” he says, referring to news about Windows Phone 8.

Aside from the merits of hardware upgradability, just read this again, and note his tone:

“I think that ultimately your typical customer probably isn’t all that aware of this upgrade thing.”

So, he thinks that, ultimately, “your” (everyone’s) “typical customer” isn’t “all that aware” (is ignorant) of “this upgrade thing“.

Stop the presses: he thinks you’re smart enough to select and buy a highly advanced pocket computer, but you’re too dumb to upgrade it. And this sounds a lot like common misconception held by many potential clients that you need to only address lowest common denominator of your potential visitors, because your “typical” visitor “isn’t all that aware” of basic web navigation. So, you build something contrary to current web standards (and even styles) where everything is presented in long-form all at once, or in highly inconvenient ways.

You might make the mistake of thinking your users are stupid.

Counterpoint: iOS

Again, Shields says “your typical customer probably isn’t all that aware of this upgrade thing”, but this says it all:

iOS 5 Adoption Rate

Image from GDGT

Apple’s got a 75% adoption rate (as of March!) for their latest OS, and iOS 5 still had to be installed in a tethered manner.

Don’t Doubt. Instead, Design.

Your users aren’t stupid, and the ones who actually might be aren’t your best ones. They aren’t the ones who will buy and love your product through your website. Don’t focus on them—focus on the ideal user.

To extend the iOS example, Apple doesn’t offer all the features and customization of Android because they can keep the experience consistent that way. It’s paying off. Users weigh the value of upgrading (in this case) against the cost of time and potential frustration.

This is why intentional design, based on the fundamentals, research, and psychology, helps organizations optimize their website. Breathing personality into your copy, using great color palettes, and creating layouts— based on brand personas—may not suit every user, but it will suit your best ones.

June 21, 2012 — 2 Comments — In Apple, Blog, Windows, Windows Phone

Today I misspelled a word, went back to correct it by right-clicking and accidentally added “Septebmer” to the Dictionary; not my best moment. “Undo” wasn’t fixing the problem, so I found out how to remove that word. It’s not incredibly intuitive, but hopefully this reference can help!

You’ll need to find Custom Dictionary.txt and open it with a text editor. Save it, and you’re done!

On a Mac, you can find the file in:
~/Library/Application Support/Google/Chrome

In Windows (starting with Vista), it’s in:
C:\Users\%USERNAME%\AppData\Local\Google\Chrome\User Data

Update (May 5, 2016): thanks to reader, llahnoraa, for pointing out that this appears to now be located at ~/Library/Application Support/Google/Chrome/Default/Custom Dictionary.txt on a Mac.

July 27, 2011 — 11 Comments — In Apple, Blog, Chrome, Google, Windows