Vitamin-R & the Mac App Store Sandbox

It is finally happening. Apple have made good on their promise/ threat of requiring all applications on the Mac App Store to adopt the Lion Sandbox technology by June 1st.

You may already have heard many Mac developers moan about this, while others are trying to see the bright side or are at least putting on a brave face. It’s all true and it’s all a lie.

First off, sandboxing does improve security. The idea is that every application that is launched by the operating system works in its own “sandbox”. It can do anything it wants within its sandbox, but when it tries to interact with the rest of your system by accessing files, connecting to the internet, talk to other applications, etc.. it is restricted by its “entitlements”. All this so that even if your application is infected by a virus or is deliberately “naughty” (aka malware), it can only do so much damage.

The kinds of entitlements that exist are defined by Apple and while it is the developers who decide which entitlements they believe their application needs, it is Apple that grants or rejects each entitlement.

The basic equation is this: the less your application is allowed to do, the less damage it can do. So if Apple is serious about the security aspect of the sandbox, it will grant what it deems to be the minimal entitlements required by the application.

Even though it means more work for developers, the sandbox in itself is not a bad idea. Security is good, right?

The rub lies in the fact that unlike iPad and iPhone applications which effectively take over your whole device, most Mac applications live in an eco-system together with other applications. They share files, they interact with other applications and the system to deliver an integrated user experience.

The sandbox gets into the way of all this. Sandboxed applications can only access files on your disk after you have opened them in the “Open…” or “Save…” dialog. They can only interact with other application via AppleScript if they have a specific entitlement for that specific application and that means that Apple has to grant that specific entitlement during the review process. Worse yet, there are no entitlements for a whole range of things that a powerful app could potentially want to do.

For many applications, this will mean that existing application features that have existed for a long time will need to be removed in order to comply with Sandboxing rules.

I have finished sandboxing Vitamin-R and I have managed to keep most of its features alive and well.

Some features, however, did not make the cut. So I have removed the following features from the Mac App Store version of Vitamin-R:

  • the ability to quit other applications from the “Eliminate Distractions” screen
  • the integration with NeuroSky’s MindWave brain computer interface

(There are entitlements for either of these things).

Other features require “temporary entitlements” that Apple may or may not grant.

The features “at risk” are:

  • Things integration
  • Things beta integration (new if accepted)
  • OmniFocus integration
  • Growl integration
  • The Hit List Integration

There is no rational reason for doubting that Apple will grant these entitlements, but the MAS review process is notoriously capricious. The term “temporary” also does not fill one with great confidence, so these features may well disappear somewhere down the line even if accepted now.

I will be submitting Vitamin-R 1.81 to the Mac App Store as soon as version 1.80 is released next week and if everything goes smoothly and Apple isn’t backlogged, it should be available within a fortnight.

On a personal note: I do not want to remove a single feature from any of my applications. Apple is forcing my hand and I’m doing what I can to preserve functionality. The versions of my software distributed via my own website will remain outside of the sandbox and thus unaffected.

I’m also looking into ways of allowing users who have purchased via the Mac App Store to download and use the “full” version of Vitamin-R from my website for free. This is made more difficult by the fact that Apple does not share customer data with third party developers and I thus have no idea of who buys my software on the Mac App Store.

I hope to have a simple solution ready sometime in June, but this again depends on whether the Mac App Store review team accept the solution.

If you are upset about losing features, the best idea is to let Apple know about it. We developers have already done all we can. There’s a “Support” link in the “Quick Links” section of the Mac App Store front page and of course there are Apple Stores all over the world.

Vitamin-R progress

In my last blog entry, I announced that Vitamin-R, my very own solution to the productivity problems of people like myself who need to balance their scatterbrained creativity with “delivering stuff” on time and within budget.

I asked you to tell me whether my baby is ugly or not.. well, I asked for it, so I can’t complain.

The highly polished user interface of the first beta missed the mark somewhat.. far too much text and too “application”-y.

Initial Design

Initial Design

This lead to a late-in-the-day dash to get an interface that is minimalist and doesn’t get into the way of accomplishing your task. The idea was to make the application into a “menu bar item” that is always available:

Vitamin-R 0.4 Interface

Vitamin-R 0.4 Interface

In practice, this worked much better than the initial design and got out of the way when not needed.

It was certainly minimalist, but still not all that pretty. So in the latest 1.06 release you get a Snow Leopard/ iPad call-out type interface:

Current Interface Presets

Current Interface Presets


Better still, you can configure the appearance yourself using the Appearance Panel available under the “Appearance” item in the “Vitamin-R” menu. From there, you can configure background color, opacity, gradients, corner rounding, inner and outer strokes, padding, etc.

I hope that you’ll come up with your own favorite look and if you do so please drop me an email at support@publicspace.net with a screenshot. I’m thinking of including a number of different presets, so if you come up with something that might be of interest to the user community at large, it could well start shipping with every copy of Vitamin-R!

I can’t believe that version 0.01 beta only shipped on the 24th of March and the program has already gone through such a transformation due in great part to your feedback.. so please keep it coming!

As those of you who have been around since these early releases already know, the pace of development on Vitamin-R has been frenetic and I intend to keep it that way for at least a few more months before settling into a one or twice a month update cycle as with A Better Finder Rename.

In these last 7 weeks, the user interface has changed profoundly, I’ve introduced keyboard navigation, time slice pausing, workflow changes, a re-designed now & later board and fast type feature, fixed some bugs, etc, etc..

The next 7 weeks should be no less exciting. Next week, I will ship the drag & drop integration with OmniFocus which will allow you to drag & drop tasks directly from OmniFocus, click on the hyperlink to go back to the task in OmniFocus and have it ticked automatically when it is logged as completed. The hyperlink feature already works in 1.06.

I’ve solved most of the technical problems with providing the same integration for Cultured Code’s Things application and I’m investigating Task Paper integration.

Vitamin-R will also be able to work as a dock-less application within the next few weeks, as I know that many people would prefer this mode of operation. The current way of working will become optional.

Beyond this the highest priority item is to get the statistics module working. Originally this was supposed to be shipping with the 1.0 release, but with the frenzied development on the user interface front there simply was not time left for it. A rough version of it is already working, so it shouldn’t be too long before it is fully functional. Expect basic graphs and summaries in the first releases with more sophisticated analysis options not too far behind.

I think this will be a massive boost for Vitamin-R as discovering your own work patterns in itself is huge help in becoming more productivity and seeing your progress is highly motivating.

Vitamin-R is already used by many fans of the Pomodoro Technique and support for this technique will be growing in future releases. I’m not a great Pomodoro Technique fan myself, as I feel that with its rigid structure it is too prescriptive for many people and makes few allowances for human foibles and the creative mind in general, but many people do find that they are both capable of exerting that level of self-discipline and enjoying it, so who am I too argue. After all, Vitamin-R is about finding the way you work best rather than prescribing what that ought to be.

Some of you have asked about the lack of a screencast for Vitamin-R on the website and have tried to make me realize that this would be a great asset. Thanks. I’m very much aware of that and there most definitely will be a screencast on the website at some stage. The problem at the moment, is that the product is changing so quickly that a screencast is going to be out of date almost as soon as it is put up. I’m not a great fan of screencast that show a product that has changed beyond recognition in the meantime and updating a screencast a couple of times a month just isn’t practical. My intention is to get Vitamin-R to where I want to be first and then do a screencast that will remain relevant at least until version 2.0 in the far future.

Thank you all for your feedback and support!

Best regards,

Frank

First beta of Vitamin-R available

screenshot_for_external_use.png

Publishing a new product is always a bit of an out-of-body experience. After spending a great many hours (or in this case well over half a year) working quietly away at your “big next thing” in total isolation from the world, you post the link on MacUpdate and Versiontracker and expose it to the scrutiny of the entire world.

What if people think that my baby is ugly?

I have been there a few times before, but I don’t think anything will compare to the first time in 1996 when my Ph.D. prototype “publicspace” went up on the newly bought “publicspace.net” domain. My gift to the world. Three years of research, two years coding. And totally free. An hour later I had half a dozen complaints about Command-A not selecting all the files.. and no congratulations on my huge achievement from an adoring public. You live, you learn 😉

Well, what makes me think about that experience 14 years ago is that my new application, Vitamin-R is a more personal product than any of those that came after the eponymous publicspace.

Vitamin-R is my personal attempt at creating a productivity enhancement tool. Unlike A Better Finder Rename, A Better Finder Attributes, “The Big Mean Folder Machine” and even MacBreakZ which were largely developed by me for other people, Vitamin-R is designed to help me and hopefully people like me, become more productive and more satisfied with how they spend their work days. It’s for creative people who love doing stuff but find it hard to get down to it.

What has always irritated me with the productivity systems that are out there, is that they focus on capturing and organising action items rather than actually getting anything done.

Getting Things Done is a great idea and has a few nice ideas, but if you are anything like me, you’ll soon have a huge to-do list, but will still not have gotten around to actually doing any work. For some real GTD fanatics managing their to-do list and their reference system and all the rest appears to be an end in itself.

What did you do today? Oh, well.. I did my weekly review, worked through my in-tray, reorganised my contexts in OmniFocus and synched my to-do list with my iPhone. Wow, I rock!

This was the starting point for my Vitamin-R project. Instead of spending my time organising in minute detail what my next action should be, I wanted a new system that could live with a little bit of creative chaos and that would help me get my work done. I’m not about to throw out my to-do list manager away, but I’m done hoping that my actual work will magically get done if I just keep reorganising my database often enough.

So as a good former academic, I started researching the issue. Along the way I read many a book from one productivity guru or another, took a brief detour into neuroscience, tried a few things myself and then started coding.. I haven’t stopped reading, thinking or coding since.

What is released as the first public beta today is not the finished product. It’ll never be finished and will keep evolving and my head is already bursting with ideas for all the great features that will be added in the future.. and that is before I get into the feedback loop with (potential) users.

This is merely a beginning. Perhaps you will think that my baby is ugly. That’ll be unfortunate. Please let me know, so that I can improve it.