Peek-a-Boo and the Mac App Store

We (Clarkwood Software, LLC) in general and I (Bob) in particular are thrilled that after months of work, Peek-a-Boo is finally available on the Mac App Store.

The Two Variants of Peek-a-Boo

The Mac App Store is a new channel for us, so we’re still exploring how, exactly, we’re going to manage the two Peek-a-Boo variants or “flavors” going forward. And we’re going to have this conversation publicly (here!) so if you have opinions about what we’re doing right or (especially!) wrong, then please drop in a comment.

The plain old vanilla “Peek-a-Boo” name is migrating to the Mac App Store. If you use the variant of Peek-a-Boo downloaded from the Clarkwood Software web site, it will be named Peek-a-Boo ST.

(ST stands for Supplementary Technology because, as you’ll see, there are things that Peek-a-Boo ST can do that Peek-a-Boo cannot do.)

Mac App Store Technical Restrictions

There are some technical restrictions for applications that get sold through the Mac App Store. Peek-a-Boo needed to be changed for the Mac App Store version to avoid violating these restrictions. Basically Peek-a-Boo used to ask for authentication in order to extract process information (and perform some process management tasks) that require special OS permission.

(Some background is in this article about authentication.)

Peek-a-Boo ST still requires this authentication, and can still perform these tasks.

Peek-a-Boo Architecture Differences

Peek-a-Boo through version 2.8.5 installed a helper process (PeekHelperB) to do the low-level process information extraction, and to handle some of the more powerful process management features.

Peek-a-Boo ST continues to install and use this helper process.

But Peek-a-Boo (from the Mac App Store) does not install a helper process. Peek-a-Boo now relies on top. It turns out that with OS X 10.7 Lion, the included top command-line utility includes much of the raw information that Peek-a-Boo uses in an easy-to-parse format.

Peek-a-Boo Feature Differences

These are all mentioned on the Peek-a-Boo web pages, but here is a list of the differences between Peek-a-Boo ST and Peek-a-Boo all in one tidy bulleted list.

  • Although the major process information properties are available in both Peek-a-Boo and Peek-a-Boo ST, there are a few properties only available in Peek-a-Boo ST. For example, Peek-a-Boo can get the CPU time used of a process, but only Peek-a-Boo ST can extract how much of that CPU time is user time and how much is system time.
  • Peek-a-Boo ST lets you “kill” a process. It escalates through four increasingly-severe mechanisms (see the “kill” section on the process actions page). The final two mechanisms — the “most severe” — require the PeekHelperB daemon, so Peek-a-Boo omits these.
  • Peek-a-Boo ST lets you “halt” a process and “continue” a halted process. Peek-a-Boo omits this feature.
  • Peek-a-Boo ST lets you “renice” processes; Peek-a-Boo omits this feature.
  • Peek-a-Boo ST gives you much finer control over the speed with which most of the windows update. (Some background information is available in the performance tradeoffs with a shout-out to Heisenberg article.) Peek-a-Boo removes many of these timing options.
  • Since the Mac App Store handles updates whenever a new version of Peek-a-Boo is released, Peek-a-Boo no longer includes the (wonderful!) Sparkle autoupdate system. Peek-a-Boo ST continues to use Sparkle for automatic updates.

Peek-a-Boo Price Differences

Peek-a-Boo has been priced around $20 for its entire lifespan. We felt a little guilty charging a full $20 for a version of Peek-a-Boo that does not support the full feature set of Peek-a-Boo ST. We’ve priced the Mac App Store version of Peek-a-Boo at $9.99. I guess here’s how I think about it: 90% of Peek-a-Boo ST for half the price.

But that last 10%. Wow, that can be a doozie, if those features are features that you care about! So if you need the strong-arm tactics of a full-blown unix kill command, then Peek-a-Boo ST is still available downloadable from the Peek-a-Boo web site.

Pricing decisions are always an ongoing conversation, though. We may fiddle around in the months and years ahead.

Moving Toward the Future

Maintaining two variants of Peek-a-Boo — especially when their internal architectures differ as much as Peek-a-Boo ST and Peek-a-Boo — is tricky. We may try to merge these products.

One option — and this is me thinking out loud here — would be to have a single variant and a separately-purchasable downloaded component that handles the extra features of Peek-a-Boo ST.

In any case, we’ll be thinking about how best to continue moving Peek-a-Boo forward. Peek-a-Boo has been around for almost twenty years! Figuring out how it fits in with the Mac App Store is a very rewarding chapter in Peek-a-Boo’s story.

–Bob

What Is Special About Peek-a-Boo?

Peek-a-Boo is Clarkwood Software’s OS X application to watch processes.

There are several factors that we think make Peek-a-Boo special; this blog entry explains some of the decisions behind Peek-a-Boo’s design philosophy and why Peek-a-Boo has been maintained, updated, and used for two decades.

Side Discussion: What is a Process?

Basically a process is a program running on your Mac. When you start up your Mac and begin to work, there are dozens of processes running simultaneously behind the scenes to keep your Mac working.

Each application that you open is another process, and each process may spawn even more.

Use Peek-a-Boo to explore processes

Peek-a-Boo is the most intuitive way to explore what’s happening in the universe of processes on your Mac.

Peek-a-Boo offers a wide choice of ways to help you explore the processes running on Mac OS X; you can choose between watching overall system behavior in a variety of windows, or zooming in to scrutinize individual process behavior.

Use Peek-a-Boo’s innovative OpenGL-powered Process Throb window for a hypnotic (yet useful) display of your OS X system’s processes. Or use the traditional Process List window to watch whatever process attributes you care about.

Many Pieces of Information Available

A primary design philosophy of Peek-a-Boo, since its 1.0 release in 1993 (well before OS X; in fact, System 7 was the current Mac operating system), has been that it should be able to show as many items of process information as possible, and allow the user the freedom to pick which of those items are important to view. That’s why you’ll never see a version of Peek-a-Boo with a handful of process information items hardcoded to what we think is the most important set of process information properties.

There are two common kinds of processes encountered on OS X (and a third rarely encountered kind), and Peek-a-Boo is the only utility able to display information about each kind.

  1. OS X Applications are processes which are OS X native and offer a user interface. Generally if a process has an icon, it’s an OS X Application.
  2. Darwin processes are generally lower-level processes, which do not offer a friendly user interface. These can be seen from command-line tools like ps and top, as well as from Peek-a-Boo.
  3. Classic Applications are applications running in the Classic compatibility environment. (These are becoming rarer, as more of the installed based of Macintosh computers are Intel-based; Intel-based Macs do not support the Classic compatibility environment.)

Virtually any piece of information can be seen in Peek-a-Boo’s process list. The View menu contains one submenu with many pieces of information that Peek-a-Boo knows how to extract (the Built-in Items submenu), and another submenu with all the pieces of information extractable by the ps (process status) Darwin/Unix utility.

Many Sources of Process Information

OS X offers several different ways to extract process information, and Peek-a-Boo uses all of them.

  • OS X’s Unix foundation supplies many pieces of information for each process (except individual Classic applications).
  • The ps command-line tool offers several dozen pieces of information for each process (except individual Classic applications).
  • The Carbon Process Manager offers information for each running application (but not low-level Darwin/Unix processes).
  • The Classic Process Manager supplies additional information for each running Classic application.

Peek-a-Boo is the only utility available which can extract information from all these sources and coalesce all the information into one easy-to-understand interface.

Focus on Processes

Peek-a-Boo’s design philosophy is heavily biased towards being able to analyze information on a process-by-process basis, as opposed to a system-wide basis. This focus can be seen in features such as the CPU Usage History windows and the Logging windows which also enable logging information to a file.

Highly Customizable

Peek-a-Boo has a history of being very highly customizable. The tyranny of being bound to eight pieces of process information is over! The View menu allows extraordinary customization of which process items you see (only a few if you want, or a plethora of arcane process data if you’d prefer), and the Preferences panes allow further view-specific customization.

Easy to Monitor Process Behavior

Peek-a-Boo makes it easy to monitor resource usage. Memory information takes the guesswork out of knowing when adding memory will improve performance; and Peek-a-Boo’s graphical CPU interface makes it clear when performance is CPU-bound.

Peek-a-Boo makes it easy to notice processes that are using a surprising amount of memory or CPU time. The logging windows can be very helpful for detecting processes that may leak memory over time. These features can be particularly useful to developers and quality assurance departments as well as anyone who simply wants to know what’s going on with the applications they are running.

Easy to Manipulate Processes

Peek-a-Boo makes it easy to perform process-specific operations such as bringing an application to the front, hiding an application, or killing a process. Obviously some of these features must be used with care, but having many common “tools” at your fingertips makes Peek-a-Boo an even more useful process-watching utility.

Psst: On The QT, You Need Peek-a-Boo

Peek-a-Boo has been described by one long-time user as “the utility I didn’t realize I needed, until I’d used it for awhile.”

Peek-a-Boo focuses on two things: clarity and flexibility. From the moment you first launch Peek-a-Boo, it will be clear what is happening with processes on your Mac. And you will find the flexibility to explore any process-related questions you face.

Peek-a-Boo
Peek under the hood of your Mac OS X system using Peek-a-Boo! Use this
powerful and beautiful tool to twirl into process-comprehension nirvana.

We’re confident that even if your frustration (towards the Mac’s complexity) is at its peak, a quick peek under the hood will pique your curiosity and lead you upwards, onwards, and forwards, twirling into process-comprehension nirvana.

Give Peek-a-Boo a try; see if you would also describe Peek-a-Boo as the utility you didn’t realize you needed.

Bob