A simple Cashflow Tool for Numbers (iWork ’09)
Once upon a time, I was a search engine marketing manager. At the tender age of 20, I was responsible for over a million bucks in marketing spend. The numbers were intimidating for the first few months. Then they just became numbers and ceased to frighten me. It was a cool first job and a great opportunity, but I’m glad my days of search engine obsession are behind me.
The most stupefyingly boring part of my job was the incessant need to generate reports in Excel. As anyone who knows these things will attest, nerds will do anything to avoid boredom. For me, I’d spend four hours building a reusable reporting tool in Excel instead of two miserable hours plugging static values into a one-time use spreadsheet. Funny enough, Excel was my first foray into programming and product development. I did everything I could to make honest-to-god tools within the narrow confines of its formulas. By the end I had attractive spreadsheet layouts that could be updated in a handful of minutes with none of the error-prone tedium of one-off reports. My Excel-Fu is strong.
Recently, I asked a friend with deep financial savvy for some broad strokes advice on basic stuff to worry about as I went into business for myself. Among other good advice, he suggested I keep track of every single expense I incur, with categories.
This is good and obvious advice, but I hadn’t really bothered to do it. Newly encouraged, I found a bunch of overpriced, overcomplicated tools on the web and on the desktop. I’m sure there are businesses that need this kind of overkill, but I’m not there yet. More galling still, even the simpler tools on the web demanded a monthly fee.
Keeping track of my expenses by adding a new monthly expense seemed counterproductive.

Excel is dogshit, so I fired up Numbers and built a Cashflow reporting tool. You enter your expenses and income and it generates a report showing your monthly cashflow, with a chart and everything. Gives you a quick handle on your simple business’s finances and at tax time you’ll have a tidy list of your expenses. You can sort the input lists if you want but all you have to include is a date for the report sheet to work.
I share it now with you, my friendly reader, with no implied or express warranty. Enjoy!
Anti-Piracy is Anti-Productivity
For the last two years, one of the most fun parts of my (soon-to-end) day job has been giving the occasional tour for visiting VIPs. Sometimes my boss has his schedule packed so tight that he can’t do these tours, so I get called in as his relief. I’ll definitely miss this when I’m gone — it’s one in a small list of things I do extraordinarily well.
A couple of months back, a Washington DC-based intellectual property attorney from a prominent national firm came for a tour. Let’s call this guy Rich. I was tapped to run the tour, but when one of the owners decided to come along, I spent the bulk of the morning opening doors and walking quietly alongside the conversation. I was extra quiet when the subject turned to the recording industry. Rich explained that he wasn’t terribly popular for representing the recording industry but that it was important work. He then trotted out the same tired old tripe suggesting that a decline in recording industry revenues was caused by piracy — a decline Richard assured us could be reversed if only young people were educated on the importance of respecting intellectual property.
This is Bullshit
I listened to all of this and swallowed so hard I bruised my own throat. First of all, as has been mentioned, piracy is murderous, ruthless work done by indefensible criminals. What these guys mean is bootlegging.
I failed to ask Rich if it were possible, just even the slightest bit possible, that recording industry revenues were on the way down because the record companies make over-priced garbage. I failed to mention that education is indeed necessary… for the luddite morons who ran these businesses into the ground in the first place. I failed to point out to Rich that if each pirated track really represented a lost sale, any miraculous absence of bootlegging would have to also transform the economy dramatically as to permit people the opportunity to drop $20,000 on a half-filled iPod Classic.
I failed to say any of it. Whaddya want from me? I’m not my own man for another few weeks yet.
Even so, the encounter was instructive. I learned that there still exist real, living, breathing people who believe this bullshit. Not to be ageist, but I suspect being over 30 years old has a lot do with this, though surely there are exceptions in either direction of that mark.
The recording industry has spent millions of dollars on technical and legal measures to prevent bootlegging. The pinnacle of that achievement? A multi-million anti-piracy measure that was defeated with a Sharpie and the most impressively tarnished image of any industry that doesn’t make guns or pollution. I’m talking out of my ass, but I expect that the number of people who partake in bootlegging has only grown since this crusade began. Talk about money well spent. Can you imagine where their business model would be if, instead of wasting their money fighting an unstoppable force, they’d instead took a good hard look at the way the wind was blowing and invested that cash in reinventing their business model in such a way that made bootlegging irrelevant?
The result would be a recording industry that neither you nor I could recognize.
Instead, the RIAA makes a habit of suing the very people to whom they’d like to sell their product while attempting to destroy any service or platform that challenges the traditional ways for people to discover music.
Unstoppable Force
Anywhere there exists a non-scarce encapsulation of value, that value will be reproduced and distributed outside the bounds of the author’s license or intent. Put another way, if your shit is digital and desired, your shit will be pirated. The question with piracy isn’t whether or not it will happen. The question, rather, is whether or not your digital property is valuable enough to be worth the trouble of pirating. Trouble, here, has a very flexible definition, depending upon how much stands between wanting to distribute and being able to distribute. This varies from platform to platform, from absurdly simple with digital music to decently pain in the ass with console games.
Why? There are two simple reasons. People want things and, as we know from economics, the capacity to produce is infinitely outstripped by the capacity to desire. Secondly, and most crucially, distribution is gratifying. People feel good sharing — that’s simple human nature. In many cases, too, distribution of something digital, something protected, requires solving someone else’s puzzle. The high that comes from accomplishing something intended to be impossible is well-known nerd crack.
Piracy is Always Possible
This recipe creates a world where the dreaded boogeyman of scary piracy will always exist. Any business model where a 100% lack of piracy is integral to success is doomed to failure. What to do about this truth is a difficult question — one beyond the scope of what I can tell you here.
What’s important to understand is that time spent fighting the unstoppable is almost always time wasted.
By definition, anti-piracy measures require an investment of development time that will never benefit your paying users. Who are you working for, if not your paying users?
You have a choice. You can allocate 500 hours to one of these options:
- Building an incredible feature set that your customers love
- Developing a new anti-piracy scheme that will be defeated in X weeks and may genuinely annoy your paying customers
Which do you choose? The exhausted Microsoft vs. Apple comparison is apt here. If you’re Microsoft, you roll out Windows Genuine Advantage and truly piss off anyone who ever has to reinstall Windows. If you’re Apple, you sell a five-pack license and let your customers buy on their honor. I’m sure there’s a decent set of folks who install Leopard on more than their purchased share of machines, but the Leopard family pack is ranked #201 in Amazon’s software sales and was an even better seller when Leopard was new. And you know what? Apple makes more money through the family pack than if they were dicks by using anti-piracy measures and only selling single-user licenses.
I’ve Got One Boss
And it’s not me. The boss is the customer. By definition, my customer doesn’t give a damn about the boogeyman. They want the very best features in a piece of software that does everything it possibly can not to annoy them. As far as I’m concerned, every minute I spend on anti-piracy measures for my apps is a minute I should have spent making something incredibly useful. I’m in this to make people happy with incredibly useful stuff. If can’t focus my time on that, there’s no point.
The only time I should worry about writing code related to users who haven’t paid me money is when their existence will affect users who have. If pirates adversely impact resources essential to your paying users’ happiness, by all means, write a bit of throttling code that gives their requests a lower priority.
You’ve Got a Decision to Make
Whether or not you spend time writing code that benefits you instead of your paying customers is a personal choice. I can’t tell you what you should do — that conversation is one you need to have with your collaborators and moneymen. The temptation is a strong one. I remember how angry I was when I discovered Tallymander being distributed by iPhone bootleggers for the first time.
Still: last week, I submitted my latest app, GlobeJot, for App Store review. GlobeJot’s source contains precisely 0 lines of copy protection code.
The choice is made easier for me by Apple’s inclusion of good-enough copy protection for iPhone OS apps. Even without that, though, I wouldn’t bother putting up much of a fight. I want to make money by creating honest relationships with paying customers who appreciate that I spend every last ounce of my energies making something they will love to use.
If that ideal one day ceases to be realistic, I’ll find somewhere else to put my productive ability.
Beat on it Until the Suck is Gone

I love Bear Naked granola. It’s a delicious snack that’s full of flavor and decently healthy. It makes an appearance at least once a day, either as a component of breakfast or as a mid-afternoon snack. Their Banana Nut and Peak Protein varieties are among the most satisfying consumer goods in human history.
There’s not an easy way to explain why I love Bear Naked. It’s good, obviously, but that doesn’t really tell you much. The texture is perfect for me: a good crunch without feeling like I’m chewing into a handful of gravel. The taste is friendly without being sugary or otherwise cloying. The packaging is zipper-topped with a big window that lets you inspect the contents of the bag, evaluate the topography of the granola and decide if you’re feeling like nuts or dried fruit that week.
Last Sunday I bought a bag of Bear Naked and found something unexpectedly dismaying the next day at the office. My bag was missing its zipper top. An email to their customer care folks assures me that this was anomalous — the zipper hasn’t been cut as a cost saving measure or anything. I was surprised by my relief for retaining something so seemingly unrelated to the product itself.
Surely, package design has a big role in the stuff we buy. I’m not walking through the cereal aisle in the supermarket making my granola decisions based on whether or not the package includes a zipper, but packaging helps me establish the product’s credibility. Yet, I found the more I bought Bear Naked, the more the zipper became associated with the overall experience of the granola. The zipper meant portability: I could toss my Bear Naked into my laptop bag and take it with me. The zipper allowed impulsiveness: instead of letting my hunger gnaw away at me, I could easily remove the bag from my cabinet, open it, and shake out a snack without worrying about container management or doing some sort of origami to keep the bag sealed. Best of all, the zipper provided quality assurance: with virtually no effort on my part, my granola would remain fresh and safe from staling and other food-killing yuckiness.
So while the zipper isn’t central to eating Bear Naked, it becomes central to how Bear Naked slots into the puzzle that is my every day life. Intangibles like flavor and texture bear heavily on the moment-to-moment satisfaction of having this stuff in my mouth. Without them, there’s no point and a zipper won’t make a lick of difference there.
What the zipper does is add the barest touch of lubrication to the whole process. It makes it brainlessly easy to integrate Bear Naked into the rest of what you do. It spares you the trouble of having to think, taking care of your storage chores for you.
Inevitable Annoyance
The use of every product inevitably includes the opportunity for something annoying to sneak in, either in maintenance, integration into the rest of your life’s flow, or simple consequences to overall use. There’s a huge benefit to considering those annoyances and including a little packet of grease to ease the burden on your users.
The now-standard auxiliary input jack in most cars is a great example of this: early on, five bucks worth of wiring and hardware turned into a solid, satisfying differentiator for the carmakers who were paying attention to the rise of iPod. Just a little touch, but it meant no lame car clutter, like tape adaptors or FM transmitters. Would anyone now in the market for a new car even tolerate the absence of that simple accessory?
It’s surely more expensive to develop, but MagSafe makes using a portable computer just incrementally less obnoxious every time the battery drains. Unlike the moronically-sized electric schlongs that jut out the back of almost every Dell I ever had to use, MagSafe is unobtrustive, plugs into the side of the machine, and doesn’t even really plug in at all. Bring it somewhat close to home and the magnets sort out the rest of the orientation issues for you. Best of all, it’s impossible to break off the plug.
Modern usability becomes more and more about eroding the minor annoyances that build into major resentment. No one buys a car to plug their iPod into it, granola for the included zipper, or even a computer just because they enjoy plugging it in. But by taking the time to beat back the mediocrity that creeps into those simple elements of using the product, there’s one less rough edge to gradually wear away at the love the user feels for the experience of having it in their world.
Put another way: beat on it until the suck is gone.
Tallymander 1.2 in the App Store

Tallymander gets a couple of nice improvements, as requested by customers:
Tally Reordering
I wrote the logic for reordering tallies before 1.0 shipped, but then couldn’t find a way to neatly integrate it into the UI. The trouble was that the reorder handles displayed over the little disclosure indicator chevrons that show up during edit mode. The solution, now obvious, was to use two different edit modes: one for reordering and the other “normal” edit mode for tally maintenance.
Shift Lock
A request I got from people who use Tallymander for tabletop games involved letting them flip the tallies from add mode into subtract mode (or vice versa) for extended periods. Double-tapping the shift (+/-) toolbar item now does just that. A third tap restores the normal behavior.
I love having developed this product. Its base functionality is so universal that I find myself continually surprised by my customers’ use cases. Do you have a fun story about how you use Tallymander? Is it missing some feature that would make it more useful to you? Please email me. I want to know!
Tallymander isn’t done yet. Things like grouping and templates dance in my mind as I fantasize about gutting the app’s kludgy code and rewriting it more gracefully than I knew how to in January. I have another project to worry about first, but baby, I’m coming for you.
Go grab Tallymander on iTunes if you haven’t yet.
Private Beta Signup: April 24 Deadline
Since I shipped Tallymander 1.1 in February, I’ve been working on a big new app. Broadly stated, my app lets you keep track of all the random scraps of data that always seem to come along with taking a trip. Want in? Sign up for the private beta.