Sunday, November 6, 2011

The Controversy Around Sandboxing

To understand the controversy around Mac App Store Sandboxing, it helps to compare and contrast the problem Sandboxing was designed to solve for some Apps, with the problems it creates for others.

First, consider the problem sandboxing was designed to solve. For a web browser or Email client that handles many kinds of complex media downloaded from the web, how do you protect yourself against deliberately malformed data that uncovers a program vulnerability? With sandboxing, even if an attacker finds a vulnerability in your XYZ media code, it's much harder for them to access other parts of the system. Voluntary sandboxing is a good solution for protecting systems against unknown data from unknown sources.

Next, consider a program like Phone Amego which doesn't download media from untrusted web sites. Its reason for being is to provide Mac to phone integration by working with many other tools (including Bluetooth connectivity to iPhone). It wants to integrate with Apple's Address Book, iCal, Mail, iTunes, Daylite, Contactizer Pro, Launch Bar, Finder, Dropbox, FileMaker, EagleFiler, Skype, be scriptable and use AppleScript to drive other applications. Forcing an application like Phone Amego to be sandboxed puts the developer in the awkward position of choosing between dumbing down the application by removing features, or abandoning the Mac App Store version including the thousands of customers who have already paid for the application and expect future updates and support.

Mandatory sandboxing without careful attention to the needs of 3rd party developers is not always helpful.

The Mac would be a much weaker platform without the hundreds of System/Utility products that are not in the Mac App Store. If these products cannot thrive, they will cease to exist.

I think there's a case to be made for "expanding what the platform allows" instead of dumbing down or excluding System/Utility products from the Mac App Store.

Is Apple prepared to announce that hundreds (or even thousands) of existing Apps in the Mac App Store will no longer be fully supported?

What should we tell customers who are not sure whether to buy the Mac App Store or "Website" version of our Apps? Is the Mac App Store a good venue for buying system/utility software?

On the whole, I think 3rd party developers want Apple to do the right thing for our mutual customers. If Apple can't sandbox Xcode, Finder, iTunes, Disk Utility, and Time Machine, and has just announced a 4 month schedule slip, is it not reasonable to infer that their sandbox model might not be ready, or some exceptions are needed?

In my view, Apple should be moving in the direction of allowing more Apps into the Mac App Store, helping them to be more secure (through vetting, signing, sandboxing, and entitlements), and making a distinction between Apps intended for General Audiences (G), and Apps signed by a reputable developer but requiring more extensive system access. Sandboxing could be big win for users, but only if it's applied judiciously.

The alternative sends a message that the Mac App Store is the best place to go for family entertainment, but independent developers offering system/utility products are not welcome.


Wednesday, October 19, 2011

Smart Shoppers Guide to the Mac App Store

Follow these tips to find the best deals and avoid paying for Apps that aren't right for you.
  1. Check out the developers website. Many Apps have free trial version or generous return policies if you prefer to try before you buy.

  2. Most small developers are happy to answer questions directly, but are restricted in what they are allowed to say in the Mac App Store. Mac App Store reviews may contain inaccurate or incomplete information. Since developers are not permitted to respond in this forum, show your good judgement by not posting questions or rants here.

  3. If you are unsure about how an app will work for you, please reach out to the developer before rating it poorly for not working the way you expected. That's why the developer's Website and Support link are provided.

  4. The Mac App Store may issue refunds in response to reasonable requests that explain why the App failed to work and what you have done to resolve the problem (such as contacting the developer).

Mac App Store developers want you to be happy with your purchase and will go out of their way to help, but you have to take the first step since Apple is there to protect your privacy and streamline the process.


Tuesday, October 11, 2011

Sandboxing and the Mac App Store

In a recent Macworld Editorial, The App Culture, Jason Snell argues that an overly restrictive approach to App security "risks dumbing down the Mac app ecosystem as a whole".

A good example is system preference panes or plugins which are not permitted [Apple guidelines 2.15 Apps must be self-contained, single application installation bundles, and cannot install code or resources in shared locations].

In recent months, I've seen two former system preferences panes rewritten as status bar items to the consternation of their existing users (PinPoint and Growl). The right hand side of the system menu bar is being over-crowded with "status items" that don't easily fit anywhere else. The status bar is intended for items that need to present system status and be available at all times without disrupting other applications, not as a mechanism for accessing system preferences. Unfortunately, the mechanism designed for accessing 3rd party system preferences is no longer permitted.

My own Phone Amego for example is a status bar item because I don't want to interrupt whatever else the user might be working on each time the phone rings or you want to make a call. Keyclick on the other hand is a System Preference pane because it reflects a system wide preference that runs in the background, not an application you need to interact with frequently.

The problem Apple is trying to solve is how to make finding and installing software safe for non-tech savvy users, but the challenge is how to apply this without dumbing down the Mac user experience.

By limiting what applications are allowed to do, their security exposure is greatly reduced. But some applications need or want to do more, and this is where things get interesting. Apple has already defined a set of "Entitlements" that allow applications to declare specific types of system access or privileges they need to do their job, so the application can be granted just enough access without exposing any more of the system than is necessary. The combination of sandboxing and entitlements defines a contract between the application and the system, so that even if an application is compromised, it can only do the limited set of things it was designed to do and nothing more. The issue is what entitlements to allow in the Mac App Store and how to present this information in a way that allows users to grant their informed consent.

Apple's current policy is to disallow installing plugins of any type, but this might not be the best answer since users can already install any software they want directly. The effect of banning plugins or startup items is to dumb down applications and push developers and users outside the Mac App Store. My own Phone Amego for example points users to a web page where they can download a set of "Phone Amego Extras" to manually install the pieces the Mac App Store wouldn't allow.

The combination of application sandboxing and entitlements could provide a more elegant solution if it is applied carefully. Apple doesn't need to solve the entire problem all at once, but it does need to recognize there are important applications beyond self contained productivity or entertainment, and begin thinking about how to include some of them in the Mac App Store.

To help get the conversation started, I'd like to suggest a rating system similar to the already familiar film-rating system:

   "G"  for General use or everyone

"PG" for Parental Guidance suggested
(security implications should be noted,
such as anything that installs a plugin)

"R" for Restricted
(requires more extensive system access
such as a network or disk utility)

The point here is that Apple could offer a better user experience by allowing a broader range of integrated solutions to be offered in the Mac App Store.

Sunday, October 9, 2011

When Market Share is used to Mislead

I've noticed a number of blogs and forum posts that keep citing Android market share as evidence that Android is catching up to the iPhone, or even surpassing it. This is misleading so I'd like to put it in a broader context.

Back in the 1960s, when U.S. manufacturing was thriving, business studies showed that doubling production allowed one to reduce per widget cost by around 10%. If you were able to sell twice as many widgets as your next closest competitor, chances are you could produce them more efficiently and enjoy higher profits. The implication is that in each market, there is only room for a few producers with sufficient volume to be the most efficient and profitable manufacturers.

In the case of Android smartphones however, we are comparing a "free" operating system adopted by many manufacturers and carriers, with a specific product from a single vendor that is actually for sale. Any market share comparison that is not related to scale, efficient production, profitability, or customer satisfaction is largely meaningless.

The iPhone is by far the best selling smartphone, has the highest production volume, has the most efficient supply chain, has the greatest share of industry profits (to fuel ongoing development), and enjoys the highest customer satisfaction and brand loyalty. No other single product comes close.

But it goes deeper than this. Many reviewers don't even realize what the product is. They still believe the iPhone or iPad is mostly a hardware product defined by its specifications. Apple has invested 10 times more R&D resources to create the iOS software and supporting eco system than its hardware. Apple didn't design the hardware to match some feature checklist, they designed it to make their software amaze and delight customers, to create an emotional connection that effects peoples lives. To compare the iPhone or iPad to other products primarily on their hardware specifications is not representative of the quality of experience users are likely to have with the product.

What happens if you lose your phone or tablet or wish to upgrade to a newer model? Will all your applications and data move seamlessly? What if you want to share data with others or between your tablet and phone? Can your tablet be upgraded to the latest OS? Will the software you want be available and work smoothly on your new tablet? What about malware? What if something goes wrong? Is there a store where you can take your tablet to get help? These are important considerations consumers see clearly, but the tech press largely ignores. Is the iPad a next generation mobile computing platform, or just the latest cool gadget you're going to replace in a couple years?

Why is it so hard for the tech press to see the iPhone or iPad objectively, and why do they keep promoting the next most promising rival as serious competition when there isn't any?

First, there's the familiar archetype of rooting for the underdog. Apple has become a giant corporation with little need for sympathy to spread their message. Most people already know of Apple's success, what they are less likely know is where Apple has failed or been challenged. Highlighting Apple's weakness is an interesting angle that draws more attention.

Second, disruptive innovations take years to develop and unfold. Not every Apple product or event can meet the hopes and expectations some users have imagined.

While this might explain some of it, in many tech blogs and forums there's an element of resistance around Apple's success. A belief that Apple's customers are somehow being deceived into choosing Apple products over others that are just as good. Or that Apple's tight control over their software eco-system is a threat to user freedom. Or that Apple's singular success concentrates too much power in too few hands. There's an underlying meme that the market needs a worthy competitor, even if that means propping up weaker alternatives.

It's worth noting that Apple has deliberately chosen to serve the less techno-savvy consumer market. By carefully controlling their software eco-system, Apple has made it easier to find and buy computing solutions with less risk of malware or expensive complications. The IBM PC was originally conceived as a less expensive business computer, and more specifically to stop the Apple II from gaining a foothold in the corporate world. The popularity and rapid evolution of the PC meant that consumers were subsidizing cheap business computing. With the emergence of the Post PC era, that subsidy is ending. Nobody likes having their subsidy taken away, including nerds. IT departments are now being told to support iPhone and iPad regardless of their previous support policies. They are losing control over their employees choice of technology.

But there's a deeper reason. As a developer, I've invested years of my life and livelihood in Apple's vision of computing. I left my day job in 1996 to become a Mac developer back when Apple was doomed. For nearly two decades, Mac users and developers have believed their computers were better, while PC advocates argued successfully that their computers were good enough and offered a better selection of business software. It wasn't until Apple switched to Intel processors capable of running Windows that mainstream business users began to take notice.

If you have 10 years of your life invested in Microsoft technologies, the idea that Apple is 5 years ahead of the industry and could dominate the next wave of personal computing is frightening. To admit that you have been out-thought, out-maneuvered, out-marketed, out-executed, and are no longer able to compete effectively is unthinkable, yet this is the very real possibility that the PC industry faces if it concedes portable music and gaming (iPod Touch), smartphones, tablets, and the ultra notebook category to Apple. It simply can't afford to do this without a fight. You have to believe there is a consortium of vendors that can challenge Apple. Otherwise your business and career are at risk.

These factors combined help explain why the tech press is reluctant to embrace Apple's Post PC era. With Apple doing so many things right, the best defense may be to sow market confusion until a worthy challenger can arise.

There is a way to challenge Apple, but most of the industry still doesn't see it. They think Apple is competing on hardware features and price, but they are wrong. What Apple has done is they have gotten serious about creating a portfolio of great software products that delight customers in ways they haven't seen, and then combined this with elegant mobile hardware. Apple is winning in music, photography, home video, phone, App store, mobile gaming, and video conferencing. The iPhone 4S and iOS 5 will add Cards, text messaging, and Siri voice interaction on top of that. You will not be able to challenge this portfolio with more megahertz, pixels, or bytes. Consumers are smarter than that.

When Tim Cook says "Apple loves music", the subtext is that Apple makes the best music players on the planet. If you love music, you should have an iPod, iPhone, or Mac (and once you've tried one, you won't look back).

Android may be strong in mobile web, GPS navigation, and Google app integration, but none of these have the emotional appeal of music. Amazon is starting to figure it out. If you love books and reading, you should have a Kindle. Microsoft is re-imagining windows for mobile, but it's less clear if they realize they need a portfolio of consumer applications with emotional appeal to challenge Apple's. Focussing on the enterprise won't be enough. The next generation of mobile business software is already starting to be written for iPad.

If you don't agree with Steve Jobs approach of serving consumers first, you are free to design a better alternative and let the market decide. For more background, see Thoughts on the "Post PC" Era.


Saturday, September 17, 2011

Thoughts on the "Post PC" Era

In recent weeks I've seen several editorials and forums discussing the "Post PC" Era. Having lived through a similar transition to the PC era, I'd like to offer another perspective.

First, desktop PCs aren't going to disappear anytime soon.  They have many wonderful advantages, but they'll gradually become less dominant in the supply chain for hardware and software.

20 years ago when I was at DEC, we used to have these arguments frequently. What's the difference between a PC and a workstation?  The temptation was always to elaborate the hardware differences. Bigger CPUs, virtual memory, multi-tasking, and so forth, but these were all wrong. The difference is the software it runs and the user experience. Everything else is a temporary distraction.  

In the early 1980s, Digital tried to build their own PCs but failed to understand the importance of 3rd party developers and creating a sustainable software eco-system. Not unlike some cell phone makers.

By the late 1980s, PC software was already dominating the software
industry.  There were simply so many more developers writing clever,
gorgeous, affordable applications, that the established mainframe
and minicomputer software business couldn't keep up.  If you wanted
the coolest, most cost effective information solutions, that meant getting a desktop PC.

By 1990, Digital realized it couldn't win by building its own PCs (running DOS or Windows), so it tried to bring the best of the PC world to VAX/VMS through X-Windows (aka DECWindows), and put VAX/VMS on a 64-bit RISC chip called Alpha. While these were impressive engineering accomplishments, it's much easier to grow an eco-system up than to grow down.

It didn't take long for the user experience (including the cost of the tools) on the PC to challenge what you could do on a workstation.  I remember around 1995 DEC standardizing on Interleaf, a $20,000 word processor that ran on workstations for all their technical publications.  I couldn't believe it. Hadn't these people heard of MS Word and PDF?  What did they think was going to happen to Interleaf in 5 years? The business model of these systems simply couldn't keep up with the much more affordable Windows/Intel eco-system.

The similarity with today's Microsoft trying to squeeze Windows 8 into a tablet form factor is striking. If history is any guide, this will be extremely difficult. Not because the engineering can't be done, but because the user experience and business model will not be compelling compared to alternatives that were designed for Mobile from the ground up and have a 5-year head start. How will tablet makers feel about paying $40 to license Windows? How will Microsoft get $100 for Word or Excel when Apple charges $20 for Pages or Numbers? Can Microsoft afford to match Apple's business model?

The computer industry has gone through several similar transitions and it's challenging for the titans of one era to be nimble enough to innovate and thrive in the next era. Consider the following sequence:
  Mainframe-computer ->
Mini-computer ->
Desktop PC ->
Internet PC ->
Mobile Internet ->
(Multi-Touch + cellular)

While we describe each era in physical device terms, this is misleading because the real transition is the user experience and the software that runs on these devices. The iPhone and iPad provide mobile Internet and productivity apps, but they do much more: music, pictures, video, movies, GPS navigation, books, games, and a large App library. Nearly as important are the many ways they do less: very little malware, no visible drivers, no extension conflicts, no file system, no hard drive, minimal configuration, compact, lightweight, low power, and no fan.

Squeezing windows into a tablet form factor is unlikely to match the best in class mobile experience in each of these areas, but that doesn't mean it isn't worth trying. There's a huge base of developers and business customers who would love to access their familiar Windows tools from a mobile platform. The difference is whether this can attract the mass consumer market.

So what does it mean to say we're in a Post PC era? The focus of innovation, growth, and profits has shifted along with the attention of the masses. Traditional PC software (and hardware) isn't going away, it's just no longer the most dominant thing driving the industry.

The PC emerged in part as an expression of personal freedom and will remain popular for managing and storing your own data; writing your own programs; and running software you own rather than submitting to the whims of the Cloud. PCs have great displays, file management, and input capabilities. Where the PC has suffered as a consumer product is:

Being too complex for what users need most of the time

The need to deal with malware

Ease of finding/installing/updating software

Lack of mobility

Ease of backup, restore, migration, and replacement

Ease of service when things go wrong

Value when just the basics are enough

How these trade-offs are managed will define the Post PC era.


P.S. Many of these PC limitations are not addressed by Android tablets which are having a hard time gaining traction in the market.

Wednesday, April 6, 2011

Migrating from Palm Desktop to iPhone (or iPad)

I have a client who recently purchased a Verizon iPhone and wanted to migrate his Contacts, Calendar, Tasks, and Memos from Palm Desktop to his new iPhone. Contacts and Calendar migrated easily enough, but there's no built-in support for tasks and memos. In this post, I'll describe how I resolved this problem.

From Palm Desktop you can export your contacts in vCard format and import them into Apple's Address Book on your Mac. You can also export your calendar in vCal format and import it into Apple's iCal on your Mac. Address Book and iCal can be synced easily with iPhone or iPad.

The hard part was finding a solution for Tasks and Memos. Google searching turned up recommendations to use Outlook which can sync to the iPhone on Windows, or downloading a trial version of Missing Sync for Palm OS to export your Tasks into Apple's, and your Memos into Mark/Space Notebook. Once your tasks are in, you can sync with MobileMe and then use BusyToDo. Missing Sync also supports Bare Bones Yojimbo and Entourage, but these are incomplete solutions since Yojimbo is for iPad and read only at this time.

If you try this (as I did), make sure you backup both your Address Book and iCal data as described before attempting your first sync. On my first attempt, when I enabled MobileMe synching, it quickly duplicated every calendar entry. Yikes! I turned off synching and restored the calendar from the backup I had made earlier. If you sync your calendars, you have to be careful about local copies and what else might be lurking when you use Missing Sync. I decided to look for another solution.

When I searched the App Store for "Palm Memos", I was thrilled to find Notebooks and read the description of how to import memos from Palm Desktop. Nice!

Notebooks is actually a pretty interesting app for keeping notes compared to anything else I've seen. It has extensive synchronization features (DropBox, WebDAV, WiFi, iTunes,...) and works with many data formats including iWork, MS Word, PDF, html, etc. You can only edit plain text or "mark down" on your mobile device, but you can store and view most things you're likely to be interested in. It supports nested notebooks to any level, ToDos, and allows you to re-arrange your notes and books any way you want from your desktop or mobile device by synchronizing moves and deletions.

Notebooks recently added support for ToDos, and with some tweaking, I was able to capture the text of my clients ToDos, their category, and last modification date. Hopefully, Notebooks will add proper support for importing Palm Tasks. Here's what I did:

1. Exported my To Dos from Palm Desktop, format Tab and Return, name "ToDos.palm"
2. Opened my ToDos in AppleWorks as a spreadsheet
3. Cut column 4 and pasted over column 5 (without removing column 4)
4. Copied column 1 and pasted over column 2

If you press the "Columns" button while configuring your Palm export, you'll see the list of columns exported by Memos versus To Dos. I just mapped the To Dos columns to mimic Memos so I could import them into Notebooks. Using DropBox for synching, this worked well in my simple test run with a few dozen Tasks and Memos.

When I tried to transfer my clients hundreds of Memos and Tasks, the Memos failed to load part way through, and the resulting Tasks folder caused an error when I tried to sync using DropBox. It turns out there were problematic entries in the files I exported from Palm Desktop. Using Bare Bones Text Wrangler, I was able to study the progress or error messages and find the corresponding problem records in the exported Palm Desktop files (by line number or text snippet). Category names must not end in a space, and records must contain a valid title or body. After a few attempts at cleaning up the files and converting to UTF8 encoding, I got everything to transfer successfully.

Once the Tasks have been extracted by Notebooks, you can tell it to display each book as a task list to allow checking off individual tasks.

Finally I learned from the Developer of Notebooks for iPhone and iPad (Alfons Schmid) that he is working on a companion Mac version to create a complete and elegant solution. Currently every Memo or Task is represented on the Mac by a plain text file you can edit directly, and a ".plist" file containing various properties (which you can also edit). While not a perfect solution, it was good enough to ease the transition to iPhone and better than anything else I could find. With a Mac version of Notebooks, iPhone will finally be able to approach the elegance of the Palm Treo and Palm Desktop for keeping Tasks and Memos.

Wednesday, March 9, 2011

Which iPad to Get?

With the iPad 2 going sale this friday (11-Mar-2011), many people are thinking about which iPad to get and whether it is worth upgrading. I have an iPad 1 3G with 16 GB and am thinking about this as well.

3G or not?

3G gives you the freedom to access the Internet anywhere there is cell coverage. In the car, around town, shopping, or in a waiting room. To me, this is a big part of what makes iPad so useful. In addition to Internet access, the 3G model includes a GPS receiver and compass to support location-based services. While you may not rely on the Maps application, location-based features include getting local weather, theater listings, social networking and so forth. A lot of things become easier or even possible when the iPad knows where you are. The 3G model also synchronizes the clock to the cellular network avoiding possibly awkward clock drift of 10 minutes or more.

Put simply, the 3G model is the full iPad experience Apple envisioned. The WiFi only model is a necessary compromise to achieve the psychologically important $499 entry level price.

If cost is important, consider skipping the iPhone in favor of a prepaid feature phone. With the money you save, you can buy 2 iPads including mobile Internet. iPads can make and receive phone calls, handle Email, SMS, IM etc. From my perspective, the iPad with 3G offers a richer mobile computing experience than any smartphone at a fraction of the cost if you are willing to carry it with you.

I love the iPhone, but spending $2000 on voice and data is a big expense for many. With the iPad 3G, $15 month gives you the best of the mobile Internet with no contract.

16, 32, or 64 GB of Flash Memory?

Unless you have a large collection of music, photos, or video you need to carry with you, stick with 16 GB. 16 GB is plenty for most uses, and the technology is changing so fast you'll most likely want to upgrade in a couple years anyway to get a newer radio (LTE), faster processor, more memory, etc.

AT&T or Verizon?

Advantages of AT&T:

(1) If your cellular data needs are modest since you will mostly be using WiFi at home or work, AT&T is less expensive at $14.99/month for 250 MB. Apple had a hand in creating this plan and it really is $14.99 per month with no surprises. You can start or stop any time you like again with no surprises. Verizon's plan starts at $20/mo for 1GB, but beware of fees and taxes. If you plan to use Verizon, ask around to determine your actual monthly bill, including starting service, stopping service, and going over your monthly allotment.

(2) AT&T's data service can be faster under good conditions.

(3) If you travel outside the US, especially in Europe, GSM is widely available. Verizon's CDMA is not.

(4) GSM can handle simultaneous voice and data on the iPhone. Not an issue for iPad.

(5) Apple has more experience with AT&T so the product and service is more mature.

Advantages of using Verizon:

(1) Verizon has the largest network and better coverage in many areas (but not always). If you travel extensively around the US, Verizon has more coverage in more places including the Metro in Washington DC. If you mostly stay within a single geographic region, ask the locals how the respective coverage works for them.

(2) If you expect to use more than the minimal data plan, Verizon could be less expensive.

(3) Verizon's CDMA radio technology (from Qualcomm) is more efficient, so the GSM camp adopted it for their 3G. Verizon has better 3G frequencies in many areas, which means better coverage indoors.

(4) Verizon is not AT&T. If you already have an AT&T iPhone, you can gain some redundancy and additional coverage by adding Verizon.

(5) Verizon has many corporate customers (including the federal government), so your employer may already have a deal with them.

iPad 1 or iPad 2

I'm still ambivalent around this. The iPad 1 I have works really well and I love my ZeroChroma Vario case. It lets me rest the iPad almost anywhere and adjust it to just the right angle, or hold my iPad more comfortably. A refurbished iPad 1 with 3G is available directly from Apple for $479 ($150 savings) which is pushing down iPad 1 resale values.

The selection of cases for the iPad 2 is likely to be slim at first. While I like the idea of Apple's smart cover, I carry my iPad almost everywhere and appreciate having a shell to protect it from the minor dings of everyday use.

On the upside, the iPad 2 represents the leading edge of mobile computing and affords new applications I haven't even imagined yet. The combination of geo-tagged photos, video, gyroscope, and dual core processing will open many doors. Being able to mirror anything to an external display will be invaluable to some.

I'll probably wait a month or two to hear how the iPad 2 is received and then make a decision.