Day One Journal Total Word Count

After my previous post I got curious as to the total number of words I’ve written in Day One so far. A quick Google search didn’t turn up any obvious solutions, so here’s a short PHP script that gives you a total. Just pass it a path to your .dayone journal file at the command line like so

php count.php /path/to/journal.dayone

A Happy Side-effect of Journaling Every Day

Back in October I wrote a post about how I’ve adopted a routine of journaling what I’m currently working on throughout the day in addition to a final recap of the whole day each night before bed. My one year anniversary of starting my journal passed back in February with little fanfare. But looking at it now, I’ve logged 626 entries and have a streak of 428 days in a row. As far as total word count, I’m guessing I’ve written somewhere between 75,000 and 100,000 words. That’s a whole book! Reflecting on that today has caused me to look back at everything I’ve accomplished this calendar year – a period where, because of the birth of my son, I thought I’d surely get very little done. Highlights include…

  • Launching a brand new responsive website design
  • Beginning work on a new book.
  • Building and shipping a major new update to my flagship app, VirtualHostX.
  • Building a shipping a new app and the accompanying web service.
  • Recommitting myself to writing more on this blog – 10,000 words so far!

All while holding down a day job and learning how to care for a newborn. Not to brag, but I’m damn proud of myself for continuing to push my business forward these last three and a half months. And that’s caused me to think about what’s contributing to my productivity. What am I doing differently that’s keeping me on track and motivated.

The biggest factor I can identify is that my habit of journaling each day is finally starting to pay dividends. My nightly recap has forced me to be more aware of how I’m spending my time – precisely because every night I take five minutes and write down what I accomplished that day. On days when I don’t have much to write or when I fail to do one concrete thing to move my business forward, I don’t necessarily feel like a failure, but I do feel a little guilty. On the flip side, days where I do accomplish something give me a bit of a high – and the more days in a row I keep the chain in tact, the better I feel.

Because I’m now more aware of how I spend my time, I’m no longer haphazardly working on stuff in the moments in-between everything else in life. Instead of turning to my work simply because I’m bored elsewhere or I happen to have a free moment, I’m setting aside dedicated time each day for work.

My kid goes to bed at seven and my wife at nine. After that, the house is quiet and I’m free to do whatever I want. I’ve chosen to deliberately make those hours from 9pm until midnight all about my work. That’s not to say I don’t open a beer and have a baseball game playing in the background, but those three hours are now sacred to me. They’re when I get shit done. I no longer approach that time hoping I’m in the right mood and mindset to work. Because I have the daily journal entries to prove I’m capable of doing work at that time, I sit down at 9pm with renewed confidence knowing I’m capable and have a consistent track record of performing.

I can’t emphasize enough how important journaling has become to me. It’s caused me to be more aware of how I spend my time, which ups my confidence as I’m able to reflect on all the many things I’ve accomplished. Like a productive vicious cycle, that only serves to motivate me even more.

Rockwell – Sort of like a private Foursquare meets Fire Eagle

Back in 2008, when I worked for Yahoo!, I had the good fortune of chatting with Tom Coates a few times about the now defunct Fire Eagle location brokerage service. Fire Eagle was my absolute favorite product to come out of Yahoo! during my time there. I’ve always been fascinated by real-time location data and sad that Fire Eagle’s intersection of privacy and ease of use never caught on.

Anyway, fast-forward to last Summer, I was bummed that although so much of my life is documented through photos, tweets, and journal entries, my location data was missing. A few products tried to solve this problem post-Fire Eagle. Google Latitude (née Dodgeball) gave you a way to seamlessly track your location and view your history, but they’ve since sunsetted that product. And, besides, it was a little creepy having Google track your every step. (Which I realize they still are via Google Now, but that’s another conversation.) There was also other apps like Rove and Foursquare, but none of them offered quite the feature set I was looking for. In 2010, I even went so far as to reverse engineer Apple’s Find My iPhone API so I could remotely query my phone’s location. That worked great, but doing so on a regular basis killed my battery life. But, with iOS 7’s advances in background location reporting, I knew there had to be a better way. I wanted something that would automatically track my location as precisely as possible, respect my phone’s battery life, keep that data private by default, yet still offer the ability to granularly share my location as I saw fit.

So I did what I always seem to do. I built my own app. It’s called Rockwell, and it’s available on GitHub.

Rockwell consists of two components. An iPhone app that monitors your location and allows you to annotate where you are using Foursquare’s database of named locations. And a PHP/MySQL web service you can install on your own server that the app talks to.

As you go about your day, the iPhone app uses iOS’ significant location change reporting feature to ping the web app with your location. The web app stores your location history and allows you to go back and search your history either by date or by location.

Further, since the website knows your most recent (current) location, you’re able to share that with others. In my opinion, one of the reasons Fire Eagle failed was it was (by design) very difficult to get location data out of the service. You had to go through an intricate OAuth dance each time.

With Rockwell, you simply choose the location level you’re comfortable sharing – either precise lat/lng coordinates, current city, current state, etc – and a format – plain text or JSON – and Rockwell generates a short url you can pass around. You can use that URL to embed your plain text location on your blog, or you can use the JSON version to do something more API-ish with it. There’s no OAuth shenanigans to deal with. You can have as many short geo-links as you want, and each one can be revoked at any time.

One more thing I’d like to explain. The iPhone app reports two types of check-in data to the web service. The first kind is dumb. Just your latitude, longitude, and timestamp. Many apps like Rove and Foursquare use this data to try and generate automatic location check-ins. Based on your past history, your friends’ location, and your location, they try and guess where you might actually be at a given time. Doing this well is the holy grail of location reporting. The problem is that I’ve yet to see any service get it right. In a dense urban area, with hundreds if not thousands of locations per square mile, there’s just no reliable way to figure out where you really are with precision. (At least not without some serious machine learning, which I assume Foursquare is working on.) Rockwell dances around this problem by allowing you to augment your dumb check-ins with annotated ones. Just launch the app, tap “Check-in”, and Rockwell pulls a list of nearby locations from Foursquare. Just tap on one and you’re done. It’s saved to the web service alongside the rest of your location history.

Rockwell is working great for me currently. All the basics work. The majority of the remaining work is around coming up with nice ways to show your location history in a useful way. The code is available on GitHub. I’d love it if you gave it a try, sent feedback, and maybe even a pull request or two.

Minion for Mac

In case you missed it, I’ve been working on a new Mac app for the past month or so. I spent the last few days polishing things and getting it into an MVP state – not quite as full featured as I’d like, but complete enough that I felt comfortable sharing with the world. So, yesterday evening I launched Minion.

What is Minion?

It’s a simple concept. Minion watches for events to happen on your Mac and then notifies you when they occur. Right now, those notifications go to your email or your phone via SMS or the Minion iOS app.

The initial idea for Minion came from my good friend Mike over at Divergent Media. Back in his video editing days, he’d spend hours waiting for export jobs to finish. I have a few friends who do animation for a living, and they confirmed that, yes, waiting for a render to complete is boring and can take hours. But with Minion, you can point the app at whatever job you’re waiting on and go someplace else. Minion will buzz your phone when the job finishes.

How does Minion know when the job is done? It watches for what I call “triggers”. Things such as whether or not a file exists, if a file has reached a certain size, or if a file’s size hasn’t changed in the last five minutes. Minion can also monitor the titles of your windows or the color of a pixel on screen. Does the app you’re watching throw up a progress bar? Point Minion at a pixel at the end of the bar, and when it fills in, Minion will notify you.

But this is just the start. My long term goal for Minion is to create a local IFTTT service for your Mac. Choose from a long list of triggers to watch, and then pick a task for Minion to carry out when that trigger fires. Put the two together and you’ve got recipes you can save, reuse, and even share with other power users.

This is just the beginning.

The Thrill

Yesterday, Daniel Jalkut tweeted

The only things better than shipping an app are the thankless months of hard work that go into making it halfway presentable. Yep, it’s fun. — Daniel Jalkut (@danielpunkass) April 4, 2014

That’s an apt way of describing the strange mix of joy and awe programmers feel when, after hours, days, maybe even weeks or months of work, the computer does what you tell it to do.

I’ve been working on my new app, Minion, for the last four weeks. And, today, I finally had my first successful end-to-end test run of the app. Everything on the client side worked beautifully and then successfully talked to the web service and delivered a notification to my phone. It’s a thrill to see everything come together. A high that I’m not sure I could achieve so frequently if I were in any other profession.

Pricing a New Mac App Without Competition

A few weeks ago, I started working on a new Mac app called Minion. It’s nothing too big or complicated – just a quick project that I hope will be useful to Mac power users. My goal was to build the app and the accompanying web service in under six weeks. With two weeks until my self-imposed deadline, I’m well on my way to completing it. The app is built. Now, it’s just a matter of finishing the web service and the marketing website.

One thing that’s giving me pause, however, is how to price the app. The web service, while not required, is an integral part of the app. The app is definitely more useful with it included. And with that in mind, there are three ways I could go about pricing the two components.

  • Charge a base price for the app plus a nominal subscription fee for the web service that allows me to break even.
  • Charge a base price for the app plus a more sustainable subscription fee for the web service that earns a profit.
  • Make the app free, and just charge for the web service.

A fourth option you might wonder about is not charging for the web service at all. That’s something I briefly considered, as the servers it will be running on don’t really cost me that much. However, a core feature of the service is its ability to send text messages to your phone. If I only charged an up-front fee for the app, a heavy user of the web service could eat away the money they paid for the app as sending text messages cost real money. Three-quarters of a cent per message to be exact. A user who sent three messages a day, which is not out of the question, would cost me ten dollars a year. At that rate, they’d eat through the cost of the app within a year or two or three.

With that said, I definitely have to charge for the web service to some extent. The question becomes, do I do so with the intention of making a profit or just breaking even?

Right now I’m leaning towards the profit option. My other app, VirtualHostX, has an accompanying web service called Lift Off which I charge for. The main goal of Lift Off is to make VirtualHostX a more compelling product. However, recurring revenue, even a small amount, is nice to have. And Lift Off falls squarely into the small-but-nice-to-have range. Originally, Lift Off cost users ten dollars a month. But, after consolidating some web servers and finding a cheaper source of bandwidth, I was able to drop that price to only three bucks. And that’s my concern with pricing Minion’s web service. I can always lower the price to benefit users and encourage growth, but raising it after the fact is a much thornier issue.

A third pricing option would be to just charge a single subscription fee for the app in general. I like that idea, but after asking around and talking to friends, we all agree that a subscription-based desktop app is a hard pill for users to swallow. There just aren’t any successful examples to point to.

What I think I’ll ultimately do is sell the app for a fixed price, slightly higher than I might otherwise price it. But include a free year’s worth of service in the cost. That covers my financial bases and also forces all users to become familiar with the benefits of the web service – hopefully increasing my conversion rate when it comes time to renew subscriptions the next year.

That leads me to my last pricing question. What do I charge?

I remember my eighth grade algebra teacher introducing us to quadratic equations by drawing a parabola on the board. The y-axis charted total profit and the x-axis was the cost of the app. If you charge a small fee for your product, lots of users will buy it, but you won’t make much money. If you charge a lot for your product, you’ll make more per sale but have less sales overall. The trick is to find a happy medium when enough users buy your product at a high enough price as to maximize your profit.

Since releasing VirtualHostX in 2007, I’ve played that pricing game. Originally, the app sold for a paltry seven dollars. But over time as it became more popular and gained more features, I raised the price. I remember raising the price from $7 to $12, and then $14, and then finally after two years to $19. At that time I was completely floored that people were still buying the app and thought there was no way I could ever charge more. I had reached my limit. But, here we are, seven years later and VirtualHostX is still making money at $49. Have I found that magic maximum point on the y-axis? Maybe. Take a look at the chart below.

Customers vs Profit Annually

On that chart, the blue bars show the number of new customers I gained each year. The red line is my annual revenue. As you can see, new users and revenue went up, together, every year until 2013. In 2013 I raised the price of VirtualHostX from $34 to $49. You can see that my number of new users went down, yet revenue continued to increase. That signals to me that I’ve found a happy price point. (That said, I’ve forgotten most of my statistics and have no marketing training, so it’s totally possible I’m reading this the wrong way. If you’re a professional at this, feel free to correct me.)

My challenge with pricing Minion is that I’m entering an empty market. I’ve searched around and haven’t found any other app that does what Minion does, so I have no competition to price against. My only frame of reference is my intuition and the general price point of other Mac desktop apps in the “utility / pro user” category. My gut says that should land me in the $19 – $24 range. Add to that the cost of the web service – $10 – $20 a year – along with a one-time price break, and I’m thinking I’ll price minion at $29, with a year of the web service included.

Anyway, those are my thoughts. I wanted to write them down for my own benefit so I could concretely walk through them. And maybe some of you out there have wondered what goes into pricing an app.

One Concrete Action

Never underestimate how crazy busy your life will become when you have kids. Our first son, born this past New Year’s Eve, hit us like a ton of bricks. Taking care of him, on top of a day job, has meant my side business has taken a backseat at times.

Nonetheless, since he’s been born I’ve managed to launch a brand new design of our website, release a major upgrade to VirtualHostX, build a new Mac app (coming soon), and I’m in the process of writing my second book.

None of that would have happened if I had spent much time looking at my ever growing todo list. I would have been too overwhelmed. Instead, I’ve been making progress on all of my areas of responsibility by way of one simple trick.

Every day, no matter how small, I open up OmniFocus and find one concrete action I can take that will move me closer towards one of my goals.

It’s such a simple idea it’s nearly silly. And I realize even writing about it borders on the kind of syrupy “life hacking” articles I dread. But I’ll be damned if it doesn’t work. Whether it’s brainstorming a new chapter outline (yesterday), updating an expiring SSL certificate (today), or fixing an app bug (tomorrow), every day I cross something off my list.

Much like Jerry Seinfeld’s famous productivity advice, the simple act of completing an action every day in a row builds momentum, which, in turn, makes it easier to mark off the next day – or harder to skip depending on the way you look at it.

The idea really builds off of GTD‘s concept of “next actions” and being able to quickly and decisively choose what to work on next. Apps like OmniFocus make the process of picking that next action simple and then get out of your way.

I really do wish it had occurred to me to motivate myself this way sooner.

iCloud Doesn’t Backup Your Photos

I had a conversation yesterday with two friends. Neither one is technical at a developer level, but both are long-time Mac and iPhone users. They know their way around the platform.

My first friend, we’ll call him Ted, said he was having trouble with his iPhone. His photos and videos had grown to take up nearly 10GB of storage space. And with a only a 16GB iPhone, his phone was very nearly out of room. He wanted to know how to backup his photos off his device but still be able to access them when needed.

He assumed there was an Apple-centric way of doing this. He figured he could just buy more iCloud storage space. He was shocked when I explained to him that the only user-friendly solution I know of is Dropbox. I told him that even if he bought more than the default 5GB of iCloud space, he’d still be limited by his on-device storage limits. iCloud only backs up what’s currently on your phone. If you delete photos and videos from your device, they’re similarly deleted from your next iCloud backup.

I walked him through how the Dropbox app works. Install it on your phone, sign up for an account, and the app periodically uploads everything in your camera roll to your Camera Uploads folder in your Dropbox. Once uploaded, you’re safe to delete them from your device – freeing up space. Then, you can either use the Dropbox app to browse your photos or a dedicated Dropbox photo app like the wonderful Unbound.

Ted thought that idea sounded like a great one and was all ready to sign up. But then I told him the catch – the free Dropbox plan only offers 2GB of space. He needed at least 10GB, which I said would cost $99 a year.

He was dumbfounded. In an age where seemingly every online service is free, why should he have to pay for Dropbox? I tried explaining the value it added and how much I loved the service, but he just couldn’t get past the idea that this was a service that Apple should be offering as part of owning the phone. I couldn’t really disagree with him. It does seem like a problem Apple should be solving, but they’re not.

With all that said, my other friend Larry chimed in. He said he wasn’t worried about his photos and videos because he was backed up. I asked if he were already using Dropbox or paying for one of the larger iCloud storage plans. He said “no, I bought the larger 32GB iPhone so all my data is backed up with Apple.”

This time I was flabbergasted.

He went on to explain that all of his data was safe because of iCloud. I let him finish and then had to break the bad news to him that iCloud only works for the first 5GB. Once you go beyond that, none of your data is backed up unless you’re a paying customer. Apple, through all of their flashy marketing around iCloud and promises of it “just works”, has convinced a large set of non-technical users that their most precious data, their photos and videos, is safe when it’s actually anything but.

This is exactly that problem that I’m writing about in my book. I’m desperately trying to preach to users that the data you hold so dear isn’t being handled by Apple. If you lose your phone, in most cases, your photos and videos go with it. And as I talk to more and more people about this problem and explain to them how things actually work, so often I’m met with incredulous stares. Not that they’re surprised or outraged about their data not being safe, but at the sheer audacity that someone would suggest they need to pay for their data’s safekeeping.

In person and in my upcoming book, my goal is to make a solid case that your data is most definitely worth the measly $9.99 a month Dropbox charges. My sister was absolutely devastated when her iMac’s hard drive failed without a backup. She mistakenly thought that her (at the time) iPod’s photo cache served as a full backup of her photos. I can still remember the awful look on her face when I explained that her four years of high school photos along with the first year of her college photos were reduced to nothing more than 160 pixel wide thumbnails.

Apple never marketed to her that her iPod Photo backed up her memories, but she still mistakenly assumed that. But now we’re in an even worse situation where Apple really is marketing to users that all of their data is safe. I can only cringe at the thought of how many customers go to a genius bar to get a replacement phone and are told “just sign into iCloud and all your data will be restored” only to find out that’s not the case.

My mom meticulously archived and organized our family photos into dozens of albums when we were growing up. All those albums and film development cost real money. It was an investment. The idea that everything online should be free has created a pernicious entitlement culture where users are unwilling to pay a little money to safeguard their most precious digital memories.

It’s a terrible situation and one I’m trying to correct with my book this Summer.

Printing and Mailing Photos to Your Grandparents

We have a three month old kid. That means we take a lot of photos. I’ve done the math, and in the last three months we’ve taken 1,202 photos of him. As I’ll write about in my upcoming book on Dropbox photography, all of those photos are stored and sorted in a shared Dropbox folder that both my wife and I have access to. For other family members and friends, we share the best of those photos via a shared iOS Photostream. I’m really a big fan of this feature. With just a few taps I can share as many photos as I want and have them near-instantly delivered to the twelve people who subscribe to our photostream. Everyone in our family and circle of friends has an iOS device, so no one’s left out. I never have to fumble with emailing attachments, or posting links to Flickr. All the photos are available in the native iOS Photos app. Best of all, I can post comments with the photos I add, other people can like and add their own comments, and they can even share their own photos, too. It all works splendidly.

The only downside is for our grandparents. They don’t have iDevices. Sure, our parents are always showing photos to them on their phones and iPads, but our grandparents miss out on the personal connection they’d get from having their own collection of photos. To try and fix this, I’ve started physically printing and mailing batches of photos to them every ten days or so. They love getting photos they can touch and display in the mail. It really is like their own real-world photostream.

The problem is this is manually intensive. Printing batches of photos, keeping up with ink and photo paper, finding sturdy enough envelopes to handle twenty photos at a time, and then dealing with postage slows the whole process down. So I’ve been experimenting with three online photo delivery services to handle all of this for me.

Over the last few months I’ve tested Shutterfly, iPhoto, and PicPlum. Ideally, I’m looking for a service that I can quickly upload the latest photos – from both mine and my wife’s iPhone and from our good camera – and have them sent to multiple addresses without having to re-type the address each time. The photos need to be delivered fairly quickly and, most importantly, arrive in good condition.

I’ve given each of the above services multiple tries, and they all have their good and bad points. For those of you who like to skip ahead, the winner was Shutterfly, followed by PicPlum, and then iPhoto.

iPhoto

I really wanted to like iPhoto, as it’s Apple’s recommended service. But there are a few negatives that keep me from going this route. First of all, the iPhoto iPhone app is nearly impossible to figure out. I’m an app developer by trade, so I like to think I can understand most apps without much instruction, but the iPhoto UI baffles me. Selecting multiple photos and preparing an order for delivery was a beast of a process. Add to that extraordinarily long ship times and they were a clear no go. The actual photos were of middle of the road quality and arrived in a plain white cardboard envelope that seemed to protect them well enough.

PicPlum

PicPlum is an interesting service. Unlike iPhoto and Shutterfly, which are really designed for printing and delivering photos to yourself, PicPlum bills itself as a service designed for printing and mailing photos for other people. Everything is done through their lovely web interface. You can drag and drop your photos directly into the web browser. Then it’s just a matter of choosing the recipients from your previously saved addresses.

PicPlum loses points for not having an iOS app. Typically, I want to only send my best photos to be printed. All of the best ones are already handily organized and available in our shared photostream. If they had an iOS app, I could choose them directly from that album. But, as they only support desktop uploading, I have to find and gather them from the various photo albums in my Dropbox. This isn’t a huge deal-breaker, but it is slightly less convenient.

The biggest downside to PicPlum, and ultimately the reason I no longer use them, is the photos arrive in a flimsy paper envelope. The kind of thing you’d mail a birthday card in. I used PicPlum to send twenty photos three times. Twice, the envelope arrived torn with the photos sticking out. In one case, the adhesive sealing the envelope was barely affixed and everything was in danger of spilling out. And while I didn’t encounter this problem in my testing, with such a flimsy delivery method, there’s absolutely no protection against water damage.

I’m actually quite sad that I can’t use PicPlum. They make it easy to send to multiple recipients and their photos were by far the highest quality of the three services.

Shutterfly

As I said above, Shutterfly is who I decided to go with. Their iOS app is a little long in the tooth, but it’s serviceable and easy enough to use. I’m able to choose photos from my Photostream and upload them quickly. I can pick from a list of previously saved addresses. The price is the cheapest of the three services, and the photo quality is good. Unlike PicPlum, Shutterfly’s prints arrive in a sturdy cardboard envelope inside an even larger cardboard sleeve. I’ve mailed six batches of photos so far and none have arrived damaged. The double envelopes even protected the photos against our rain soaked mailbox.

The only problem I’ve encountered with Shutterfly is their shipping time. Using their default shipping option, which is about three dollars, the photos arrive anywhere from five to twelve days later. For three bucks, I’m not sure what I expect, but two weeks is way too long to wait for a delivery. So I usually just pony up the extra cash and pay for the $10 two-day delivery method instead. It’s faster, and comes with a tracking number, too.

Overall, our grandparents have been thrilled with the service. They absolutely love getting their bi-weekly photo surprise in the mail. The physicality of holding real photos in your hands makes them feel connected to our son in a way that FaceTime and flipping through photos on an iPad just can’t. I highly recommend keeping your non-technical friends and family in the loop this way.