It's All About the Software

From Apple PR this morning:

Apple® CEO Steve Jobs and a team of Apple executives will kick off the company’s annual Worldwide Developers Conference (WWDC) with a keynote address on Monday, June 6 at 10:00 a.m. At the keynote, Apple will unveil its next generation software - Lion, the eighth major release of Mac OS® X; iOS 5, the next version of Apple’s advanced mobile operating system which powers the iPad®, iPhone® and iPod touch®; and iCloud®, Apple’s upcoming cloud services offering.

It don't see how Apple could spell it out any more, but this year WWDC is all about software. Any next-gen iPhone hopefuls will have to wait until September, likely.

I'm glad to see Mr. Jobs will be on stage again. This medical leave has been very different than his previous ones. He is still very much involved during his absence.

Lastly, the iCloud rumor seems true. I can't remember the last time (if ever?) Apple pre-announced a product via press release. Needless to say, I have a feeling it will be big.

And who knows, maybe there will be "One More Thing".

¶ In Memoriam

I don't get very personal on this site too often, but today is one of those days.

Today is Memorial Day here in the States, a day which we set aside to remember the soldiers that have paid the ultimate price for the freedoms we enjoy. Many of us celebrate by enjoying those very freedoms, knowing that we are safe from threat.

This Memorial Day I find myself thinking not only of fallen soldiers, but also those who currently serve. Even more specifically, I find myself thinking of those serving in South Dakota.

See, my hometown of Pierre, South Dakota is expecting to endure a flood for the first time in 59 years. A flood that will likely be worse than the one in 1952. The most shocking part is that a flood was never supposed to happen again, as Pierre is home to the world's second-largest rolled-earth dam. I guess this just goes to show that mankind cannot control the forces of nature.

I have many friends who will be affected by this flood. My parents are affected by this flood. Thankfully, my parents will have their home — which resides a hundred yards from the river — evacuated by the end of the day. The Army National Guard is building a levee in front of their house. I hope it holds.

It is a very real possibility that the home I grew up in will be greatly damaged, perhaps irrevocably.

So yes, I find myself thinking today of those who selflessly defend our country and serve our citizens. And I thank them from the bottom of my heart.

¶ The Writing on the Wall

I love Twitter. The service itself has connected and reconnected me with more people than I could have imagined. I have made lasting friendship with a couple folks on another continent. I have been able to candidly chat and bounce ideas off fellow writers who inspire my own writing. I have been able to help with the development of some of my favorite apps on iOS and Mac OS. I have met many of my local friends through Twitter, and a few of those friendships have developed into bonds similar to family.

To say that Twitter has become a new communication medium that has changed and will continue to change lives is an understatement. But some of the fun of Twitter is fading. And that's because the folks in charge of Twitter1 don't seem to be fostering a community and ecosystem anymore.

Tweetie — The Harbinger of Doom

Those who have joined Twitter in the past six months or so likely don't realize that Twitter hasn't always had its own official app. In the old days, Twitter's official ways to access the service were via the website, the mobile website, or text message. Much of Twitter's popularity was garnered by third-party apps such as Twitterrific and Tweetie. Twitterrific was the first on the scene, and Tweetie was a late-comer, but quickly became the darling of many users.

In April 2010, Twitter acquired Tweetie and rebranded it as Twitter for iPhone, making it the official Twitter client. Over the next year official clients popped up for Blackberry and Android. The iPhone app became universal with the addition of an iPad interface, and the Mac version of Tweetie was updated and rebranded as Twitter for Mac.

This foray into official apps was the first blip on the radar.

A Shot Across the Bow

Back in March, Twitter's Platform/API Leader Ryan Sarver posted a note to third-party developers about the future of fully featured third-party clients.

Twitter will provide the 
primary mainstream consumer client experience on phones, computers, and 
other devices by which millions of people access Twitter content (tweets, 
trends, profiles, etc.), and send tweets. If there are too many ways to use 
Twitter that are inconsistent with one another, we risk diffusing the user 
experience.

and

Developers have told us that they’d like more guidance from us about the 
best opportunities to build on Twitter. More specifically, developers ask 
us if they should build client apps that mimic or reproduce the mainstream 
Twitter consumer client experience. The answer is no.

The day that was posted was not a good day to be a developer of a third-party Twitter client.

The x & O of Auth

A year ago Twitter made a change in how third-party apps access the Twitter service. Instead of Basic Auth, where a user supplies their username and password and an app stores both of those credentials, the service moved to OAuth, where a client receives and stores an access token linked to the user's account. This token can be revoked at any time from a user's settings page on the Twitter website. So OAuth is nice in that revoking access from a client is much easier if needed.

The problem a year ago was that OAuth requires a web view for the user to give permission for the client to access the Twitter service. It's janky and ugly and doesn't work very well on a smartphone, in my opinion.

Third-party developers voiced these same concerns, so Twitter adopted xAuth, which allows a developer to make a beautiful interface that asks for the user's username and password, and uses that momentarily to request the OAuth token. The token is then stored, and the user's credentials are not. This is fantastic for third-party clients. All the security benefits of OAuth with the ease of Basic Auth. It's a win-win-win for Twitter, developers, & users.

Well, one week ago Twitter announced (developer oriented version here)that they were removing direct message access from xAuth, and all full-featured clients would have to switch to the problematic OAuth web interface if they wanted to continue giving their customers direct messages.

John Gruber comments:

That’s good news on the surface — it means you can use services and apps that require your Twitter credentials without granting those services/apps access to your private direct messages. For services/apps that are entirely public, this makes sense. But there’s a big shit sandwich attached: Twitter is implementing this change by requiring all third-party clients that want or need access to direct messages to use the cumbersome OAuth login flow for authentication.

[…]

Thanks to OAuth, you never need to give these sites your Twitter password, let alone allow them to store your password. Instead, they forward you to twitter.com, you grant them access to your account there, and then twitter.com forwards you back to the website where you started. It’s common sense: a web-based authentication flow works naturally from within a web browser. But the same web-based authentication flow is jarring for native apps. When you open a native app — Mac, Windows, iOS, Android, WebOS — you don’t expect to be forwarded out of the app and into your web browser. Developers can alleviate some of the context switching by using an embedded web view inside their native app for the OAuth authentication handshake, but at that point, why not just use xAuth and simply allow the user to enter their username and password in a native dialog box? So long as you remain within the app, there’s no security advantage for OAuth in an embedded web view over xAuth — but there’s a huge decrease in usability, simplicity, and clarity to the user.

[…]

And OAuth is even worse for setting up multiple accounts in a native client (and good multiple account support is surely one of the leading reasons to use a native Twitter client instead of the twitter.com web site). Because then, not only do you need to go through the cumbersome OAuth login process for each additional account, but you must first sign out of the Twitter account you’re already signed into in the web browser. The twitter.com web interface is inherently single-account. To use a different Twitter account in the same web browser, you have to first sign out, then sign back in using the other account. With xAuth, to add an additional account you merely enter another username and password. With OAuth, you have to start by signing out of whatever account you previously signed into. You only have to do this when first creating each new account in the client app — the app can save the OAuth credentials for multiple accounts — but it’s still far more complicated and annoying than simply entering a username and password.

The whole article is worth your time. There's a lot of gold in there.

To me, this move is solely to make life difficult for third-party developers. Even though I don't think Twitter would be nearly as successful today if the third-party clients hadn't made Twitter such an attractive medium, I also don't think Twitter owes developers in the long-run. It is their platform, after all. Same goes for Apple and Android, etc.

I do however, think Twitter has been rather duplicitous. Why have the annual Chirp developer conference when the company obviously does not want to foster an ecosystem? It doesn't make much sense.

Sadly, I don't think we will see fully featured third-party Twitter clients by this time next year. I think Twitter will cut them out. Which, in my opinion, will also cut out innovation on the Twitter service as a whole.

A Symbiotic Relationship

Throughout the past few years that I have been a Twitter user, I have always used a third-party client as my primary access to the service. I started out back in the day with Twitterrific, which was only available for the Mac (the iPhone didn't exist yet). My usage exponentially took off after I got an iPhone 3G on day one and Twitterrific for iPhone was available that day on the App Store, which also debuted that day. I had a brief affair with Tweetie on my iPhone for a couple months until Twitterrific updated with a lot of nice new features. And my Mac saw the occasional use of Tweetie for Mac, though I used my iPhone more because I love Twitterrific. And now Twitterrific is available using the same experience on iPhone, iPad, & Mac. So that is where I am happy.

Tweetie, however, was very great on both the iPhone and Mac. But the quality of both apps seems to have degraded since the developer sold out to Twitter. They may be the official apps, but they were both more stable and a better overall experience when Loren Brichter worked alone on them.

Now that I have established ad nauseum my preference for a third-party app, let me tell you why: that's where all the innovation has come from.

I'll start with a few that Craig Hockenberry, lead developer of Twitterrific, came up with regarding his app:

  1. First use of “tweet” to describe an update (see page 86 of Dom Sagolla’s book.)
  2. First use of a bird icon.
  3. First native client on Macintosh.
  4. First character counter as you type.
  5. First to support replies and conversations (in collaboration with Twitter engineering.)
  6. First native client on iPhone.

There are a number of the central themes of Twitter that came from one third-party app. Not to mention that @-replies and Retweets2 were innovated outside of Twitter itself as well.


My point is that third-party clients have been an important part of the Twitter experience. For many third-party clients were and are their main experience with Twitter.

Twitter gave developers a service to build upon, and developers in turn gave Twitter a user base and ideas on how to make the service even better. Many of these ideas I don't think Twitter would have implemented on their own. And now it just comes off that Twitter is stabbing developers in the back.

If you've seen the first Iron Man movie, Twitter sure seems a lot like Obadiah Stane, and developers seem like Tony Stark. And Obi is trying to kill off the golden goose that churns out invention after invention.

1 At least in charge this year. The captain's chair has a high turnover rate at Twitter.
2 Crudely implemented in clients first. Twitter came up with a better solution later, but they likely would not have implemented official retweets with the classic style becoming popular.

Square is Kicking Cards & Taking Names

Okay, maybe Square isn't kicking cards yet, but they aim to reduce your need to swipe your card so often.

My favorite payment processor Square has raised the stakes yet again. Today, the company held a little press conference to announce version 2.0 of the app, which sports an interface refresh and adds a more robust register functionality on the iPad, allowing multiple price points for an item (say, a latte with small, medium, & large sizes), and sortable shelves, so a shop owner could have a separate Food from Drinks and what not.

They also demoed a couple upcoming features. The improved register on the iPad will soon get even better with a Google Analytics style reporting system that will tell a business how many of a particular item they sold throughout the day. The register will also allow a shop to set up a menu or service list that users can browse from their smartphone and even receive daily specials. Regular customers will even be able to set up a tab while they are at a shop.

This brings me to the second upcoming feature: the Square Card Case. The Card Case is what people will use to browse a business' menu, get directions, and set up a tab. The Card Case will also sport a directory of nearby Square merchants.

The tab feature is what I think is amazing. Pay once at a participating merchant, and then you can set up a tab for future visits. Your next visit, you just open your app, select the store, tap a "Start Tab" button, and tell the clerk to put it on your tab. I often go to a coffee shop for a few hours to write. I dread having to go up and pay multiple times if I want a second drink. With this tab feature, I start my tab, get what I need, when I need it, and when I leave, the tab closes and my linked card gets billed for the total.

In my opinion, Square just trumped NFC payments.

All that needs to happen is for more people to get their hands on a Square.

¶ If You Mess with the Bull…

About a week and a half ago, patent troll Lodsys started sending out letters to US-based iOS developers claiming they were infringing upon patents held by Lodsys regarding the use of Apple's In-App Purchase system. In a gist, they claimed Apple held a license to these patents, but that license did not trickle down to third-party developers.

This is especially troubling for the iOS ecosystem because the majority of developers are individual people or very small companies. These developers cannot afford a long, drawn out legal battle with a company that exists solely to litigate patent suits. Instead, these developers would just have to pay the license fee. Granted, the fee Lodsys was requesting is quite small and likely wouldn't put too many developers out of business, the problem stands that once one patent troll goes after developers, others will follow.

That would make developing for iOS fairly unattractive. How could a developer trust that a new feature Apple rolls out in the SDK wouldn't invite more licensing fees? Basically, if Lodsys had its way with developers, iOS as a development platform would dry up really fast.

So ever since all this broke, a lot of folks have been waiting to see how Apple would respond.

From Apple Senior Vice President & General Counsel, Bruce Sewell, to Lodsys, LLC, today:

I write to you on behalf of Apple Inc. (“Apple”) regarding your recent notice letters to application developers (“App Makers”) alleging infringement of certain patents through the App Makers’ use of Apple products and services for the marketing, sale, and delivery of applications (or “Apps”). Apple is undisputedly licensed to these patent and the Apple App Makers are protected by that license. There is no basis for Lodsys’ infringement allegations against Apple’s App Makers. Apple intends to share this letter and the information set out herein with its App Makers and is fully prepared to defend Apple’s license rights.

[…]

Under its license, Apple is entitled to offer these licensed products and services to its customers and business partners, who, in turn, have the right to use them.

[…]

Because Apple is licensed under Lodsys’ patents to offer such technology to its App Makers, the App Makers are entitled to use this technology free from any infringement claims by Lodsys.

[…]

Therefore, Apple requests that Lodsys immediately withdraw all notice letters sent to Apple App Makers and cease its false assertions that the App Makers’ use of licensed Apple products and services in any way constitute infringement of any Lodsys patent.

A saying my Dad has favored as long as I can remember comes to mind:

If you mess with the bull, you're going to get the horns.

Well said, Dad. Well said.

¶ Full-Screen, Scotty

One of the features of the upcoming Mac OS X Lion I am looking forward to is full-screen apps. There are some apps that offer this mode on Snow Leopard now, but they rest on top of all your other apps. This is one of the reasons I don't care for Windows, and rarely use any OS X apps with full-screen mode currently. I'm just not a big fan of the idea of full-screen apps being "stacked."

But Apple rethought the idea for Lion, by merging Leopard's & Snow Leopard's Spaces feature with full-screen apps. The shift in perception of full-screen apps residing side-by-side rather than stacked works for me. Even more so with the ability to move between with trackpad gestures, which I have a bit of an addiction to. [Check out the video.]

I am very glad to see the current iteration of Spaces move from a grid layout to a side-by-side layout. And filling a space with a full-screen app jives with my workflow now. I have always used Spaces as a way to segregate apps that I want to take up the fullscreen from apps with intentionally smaller UIs. For example, iCal and iTunes get their own space, whereas Twitterrific, Reeder, etc reside in my primary space.

I figure I'll have iCal, iTunes (presuming an update to support full-screen), the redesigned Mail, and maybe even Safari in full-screen mode nearly all the time, leaving the "Desktop" space for smaller apps.

It's odd that a reorganization of how full-screen apps behave does the trick for me, but I look forward to the focus I hope the feature brings.

Quote of the Day: Sean Heber

Sean Heber, of Iconfactory fame, tweeting about Google IO:

Google has to bribe developers by giving away hardware and source code.

Developers broke into Apple's stuff in order to develop for them.

¶ Now is the Time for FaceTime

I've been thinking a little more about Microsoft's acquisition of Skype and how it will affect users. I made a quip earlier about how I'd hate to be a podcaster who depends on Skype for their business. Honestly, pretty much every podcast I listen to relies on Skype. Now would be a great time for someone else to jump into the game with a first-class conferencing app.

But podcasting is a little bit of a niche market for Skype. The majority of Skype's use is regular people keeping in touch — especially overseas. My folks use Skype almost daily to communicate with a friend stationed in Iraq.

Now, I don't use Skype often. And I have never used it on Windows. But the Mac version actually took several steps backwards from the previous v2.8 to the rehashed v5. The UI is a mess. A few weeks ago, I did actually have to use Skype to video chat with one of my few PC-using relatives. It. Was. Awful. The video didn't start right away so I had to figure out how to get that going, then my uncle couldn't hear me, so he had to figure out what was wrong on his end with that. It took ten minutes of fiddling before we could even talk.

Compare this with Apple's FaceTime. For regular video chat, it is fantastic. You select the person you want to talk to, and the call connects. Every. Time. Instant audio and video. Drop dead simple.

FaceTime has one major downfall though: it only works between iPods touch, iPhones, iPads, & Macs. When FaceTime was introduced, it was billed as being an open spec that anyone could build upon. Unfortunately that hasn't happened yet.

Apple, now is the time to make your play. Get FaceTime for Windows out. Heck, get FaceTime on Android devices. Act soon, and FaceTime could be the next de facto video communication app for the rest of us.

Microsoft® Windows® Skype™ Messenger® 7 Home & Student Edition

If it wasn't bad enough that Skype nearly made their product unuasbale with the horrible UI in Skype 5, things should get even more interesting. Microsoft has agreed to purchase Skype for $8.5 billion dollars.

I'm not saying just because Microsoft is now involved it will turn to crap. Honestly, Microsoft does ship some neat stuff (XBox for one, and as much I love to dog on Windows, 7 isn't entirely unbearable).

But if Steve Ballmer decides he needs to have a ton of input on Skype…well, let's just say I'd hate to be a podcaster who depends on Skype for their business.

¶ Hooked on Phonetics

When I meet new folks, I often have to spend a moment explaining my last name, since many don't catch its pronunciation the first time. My last name has French origins, but many people (especially Midwesterners) pronounce it as duh jabbit. And that is so far from how it is said.

My last name is actually very close in pronunciation to déjà vu. Except drop off the voo sound and replace it with bay.

déjà-bay

See? Not too difficult. Once I make the déjà vu connection, people seem to remember it.

Tell that to my iPhone.

When I try to voice dial my wife or my parents (I don't voice dial often, but often enough) I have to say my name incorrectly.

Apparently I am not the only one. Shawn Blanc shared a tip today that made my day. By visiting the Contacts app and entering Edit mode, you can tap on Add Field and then add a phonetic first or last name (or both).

So, for all my fellow De Jabet's out there, I added a phonetic last name of déjà-bay to their address cards. And now voice dial works correctly and even speaks the last name correctly back to me.

If you have me in your iPhone's address book, maybe you should copy and paste déjà-bay as my phonetic last name.