Monthly Archives: July 2012


Steve Corona on keeping a journal:

“And for the past 1091 days, I’ve been journaling every single day — that’s about 3 years or 12% of my entire life. My only regret? I wish I started sooner.”

When I was younger, I had tried off and on to keep a sketchbook or journal, but it never quite stuck. Like blogging, or writing, or drawing, or anything you aren’t paid to do, it takes setting a routine. There’s always something more important to do.

journals Then in 1998, I started a journal again with a renewed commitment. I filled a book from that day up until I got married. Then another book through when my daughters were born. Another for the first 10 years of their life, and my son’s. The travel, the big life moments, the election, the work. It’s not everything — sometimes the entries are every day and sometimes months go by with nothing — but it’s the stuff that matters, and the snapshots in time of little everyday things too.

I would be devastated to lose these books. Open the pages and it rolls back the years like a time machine, to a previous life full of small details that are priceless today. I’m writing the books half for my terrible fading memory, and half for my children, who will only care what these years have been like when it’s too late to ask me.

So I’ve recently started transcribing the handwritten entries into digital form. One page at a time, into Day One, then exported as plain text. It’s a long and tedious process, but multiple copies are the only sure way to make something last.

File format legacy

Last year I had to migrate the news blog section of the Staple! site from an ancient version of Movable Type (version 2.x) to Blogger. Even though Blogger has recently dropped features and seems mostly deprecated in favor of Google+, for this site there were a ton of existing users on Blogger. Upgrading just made sense.

However, what a file format mess. Export in Movable Type’s custom text format; import in Blogger’s Atom format. So first step is to find a service that’ll convert between the two, then manually fix up usernames so it imports properly. I exported, tweaked, and imported this file at least a dozen times before getting it right.

I was so frustrated because this wasn’t just accidental bugs. Developers made conscious choices that led us to this compatibility dead-end. They bet against Dave Winer and lost at a pivotal time in the development of blogging.

We had a format that was perfect for both blog syndication and as an interchange format between systems: RSS. Instead, some developers criticized RSS, then proceeded to create new products that have not been well cared for.

That is now part of their legacy. 10 years after blogging went mainstream, the end result of reinventing the wheel isn’t better software, it’s user frustration trying to get anything to work together.

This lesson keeps playing out, as if we’re doomed to repeat it with each new generation of file formats. Here’s this week’s post from Eran Hammer declaring OAuth 2.0 a failed format:

“The web does not need yet another security framework. It needs simple, well-defined, and narrowly suited protocols that will lead to improved security and increased interoperability. OAuth 2.0 fails to accomplish anything meaningful over the protocol it seeks to replace.”

If you have a choice, always pick the old boring format that works above the new hotness that is only theoretically better.

Preserving the blogosphere

This is kind of a short, technical footnote to my last essay. There I linked to an older blog post from Dave Winer, just one of many of his on this subject. Today he writes how we should archive blogs before we worry about Twitter:

“With Twitter there’s a rich corporation minding it. They can and imho should be funding their own archive. But with the historic blogosphere, dating back to the early-mid 90s, a lot of it is already gone. The need to preserve it, by independent historians and librarians, is greater than the need for Twitter to be publicly archived.”

I have a lot to say on this, and I can’t wait to share a new web project that I started recently which could play a small roll in blog backups. When I killed off my little app Wii Transfer, I did so to refocus Riverfold around preservation. I wrote:

“It also doesn’t fit into a new theme I have for Riverfold: apps that are all about keeping and remembering what matters. For Clipstart, that’s family videos. For Tweet Library and Tweet Marker Plus, that’s old tweets.”

Dave mentions libraries several times in his blog post. It’s no accident that the word “library” is in Tweet Library’s name; my ambition for this app far outpaces my coding speed. But blogs are a different problem, and they need something special — perhaps multiple solutions.


Nothing lasts on the internet. I could write on my weblog for years and the next day get hit by a bus. The domain expires, the posts are lost, and it doesn’t matter if I had 10 readers or 10,000; it’s as if it never happened.

I love real books. I keep flirting with attempts to catalog our bookshelves over the years. My daughter offered to help once, excited through the first hundred books before she realized the rest would take all day and lost interest.

Some people say “good riddance” to the cheap printed book, but I don’t agree. Recently in our house I found a paperback of an old favorite, Tigana, which I had bought while traveling in Europe. Inside the cover I had written “Oxford, 1999”. I flipped through the pages and out fell a wine label that I hadn’t seen in 13 years. It was from a bottle of wine my wife and I had in Greece, sitting on the sand of an island beach the night I proposed.

I had kept it back then because I knew years later it would matter — a memory fused into a piece of paper, waiting. That trip was a story told in events like that one, in personal journals, and through email to family. The digital parts of the story didn’t last; the email is gone.

Write on Twitter and it vanishes from the internet after 3200 more such posts, unlinked and unfindable. But write the same on a scrap of paper tucked into a book and it will be rediscovered again years later.

A self-published novel in PDF on your web site is a ticking time bomb, waiting for your hosting bill to go unpaid. But print 10 copies and give it to 10 friends and it lasts forever.

The only way to preserve something is to make multiple copies and distribute them. The problem with digital is that it makes it just as easy to accidentally delete or lose copies as it is to create them. Evolving file formats and storage devices require constant supervision and maintenance, pushing files up each technology bump from floppies to CDs to Zip disks to DVDs to hard drives. It never ends.

We need to solve this. It’s something Dave Winer has written about. It’s something anyone with a large collection of writing online probably thinks about. How do we preserve the culture and art and stories of our time when the preferred media is so fragile?

MAS to Clipstart 1.5 upgrade

Despite everything I said about how easy it would be for customers to upgrade from the Mac App Store version of Clipstart to the direct download version, in the real world this doesn’t appear to be working well for some customers. Might be a little buggy, and it’s too late to fix anything in the Mac App Store. So I’m doing upgrades the old-fashioned way, giving everyone new serial numbers.

After the first few emails came in, I automated this with a simple form that customers can fill out. It’ll give them a new serial number right away and email the registration information. I’ve added a link in the FAQ on the Clipstart home page too.

Writing for fun and profit

Marco Arment has a strong post on how sponsorships won’t change his writing:

“If a sponsor ever has a problem with something I write, and that affects pending or future sponsorship buys, that’s fine with me. I can find other sponsors. And if I can’t, I’ll write for free, like I did for years.”

This was part of a theme on today’s Core Intuition episode as well, not just sponsorships but also whether having an audience changes how we write tweets and blog posts. Daniel Jalkut and I have been very lucky with Core Intuition so far to have great sponsors: apps and events we already love like Marco’s own Instapaper, Smile’s TextExpander, CocoaConf, iDeveloper TV, NSConference, and Glassboard. Eventually we’ll be approached by more apps and services that we don’t have as much experience with, but as long as we keep our voice and honesty, I’m not too worried.

MAS: there and back again

Gabe at Macdrifter comments on the shift back to direct download for 1Password:

“I recall the massive forum discussion about the decision to take 1Password MAS only. I converted to the MAS version in March to get on-board with their product roadmap. Now I see that it is available again as a direct download purchase and @roustem confirms it will receive the next update soon.”

I’ve never liked the idea of being exclusive to the Mac App Store. I don’t think any of those transitions — from 1Password to Pixelmator — were good for users, especially when customers had to re-purchase a product they already owned. I hope sandboxing will at least make more developers think twice about pinning their business to the Mac App Store.

The blog post continues with this point, and all the good and bad that comes with it:

“This is the MAS as I see it: It is not for utility apps or power users. Apps like 1Password, TextExpander and Keyboard Maestro should all be purchased directly from the developers site. The MAS is for people afraid of using a computer.”

In other words: it’s good for some users and some apps, and not others. And that’s okay. I have no regrets about pulling Clipstart from the Mac App Store. I think of my app as pretty easy to use, but it’s for people who get file systems and tagging and uploads. Most definitely not for people afraid of using a computer.

Favorites in Tweet Marker Plus

favorites sidebar I’ve written about saved filters in Tweet Marker Plus, and now I’m happy to announce the latest new feature: favorites. Tweet Marker Plus now grabs your favorites from Twitter so that they’re included in the searchable archive. The UI is better too, so you can tell at a glance what tweets have been favorited, and a new sidebar link can show just your recent favorites.

A few days ago was the 3-month anniversary of Tweet Marker Plus’s launch. This is a significant milestone for me because all the early subscriptions were only billed once every 3 months. For most subscribers, this week is the first time recurring billing will have kicked in. (New subscribers are on monthly billing, which is a lot simpler for customers to understand and for me to predict.)

I also rolled out some other fixes tonight, and improved performance for how background tasks run. Enjoy.

Tweet Marker SSL mistake

It usually takes a couple problems hitting at once to cause a major server outage. This happened last week when Tweet Marker’s SSL certificate expired. I have the SSL set to auto-renew, but it still requires manually installing the new certificate, and other problems happened along the way.

First mistake: I didn’t realize it was expiring. Those emails go to an account I don’t check very often, littered with spam. And the email to confirm the renewal went to yet another email address that no longer worked. When I had moved the DNS hosting to Amazon’s Route 53, I had neglected to move over the MX records.

After fixing all of that, I tried updating the app on Heroku to use the new cert, only to get stalled as Heroku’s new SSL add-on rejected it. Certain I had done something wrong, I fumbled through a dozen Heroku SSL how-to posts before finally reverting to their old SSL add-on. It’s no longer documented and is in fact actively discouraged by Heroku, but it also has the lucky trait of actually working with my certificate. Updating DNS caused another hour-long delay because of the high TTL.

I sent two support requests during this process, so I thought I’d rate how each company did:

  • DreamHost: Before I figured out the bad email address, I sent DreamHost a question about why the SSL certificate hadn’t showed up yet. They responded very quickly, and even included a “P.S.” that they were fans of Tweet Marker. Basically they provided excellent support, the best you could ask for.

  • Heroku: When the new SSL add-on wasn’t accepting my certificate, I filed a support request with Heroku as well. The response was an automated reply that they don’t do support past 6pm. For a hosting company that charges a premium, this was a disappointing response. (They responded first thing the next morning, though.)

This SSL glitch was the only significant outage Tweet Marker has had in its first year. I learned a few lessons, took the opportunity to check backups and EC2 servers, and now I’m ready to move on. Hoping for an even better year 2.

The neverending feature backlog

Excellent piece from Joel Spolsky yesterday on software inventory and bug databases:

“The trouble is that 90% of the things in the feature backlog will never get implemented, ever. So every minute you spent writing down, designing, thinking about, or discussing features that are never going to get implemented is just time wasted. When I hear about product teams that regularly have ‘backlog grooming’ sessions, in which they carefully waste a tiny amount of time and mental energy every day or every week thinking about every single feature which will never be implemented, I want to poke my eyes out.”

Reminds me of the original Getting Real from 37signals. Back in 2006:

“So what do you do with all these requests that pour in? Where do you store them? How do you manage them? You don’t. Just read them and then throw them away.


“It sounds blasphemous but the ones that are important will keep bubbling up anyway. Those are the only ones you need to remember. Those are the truly essential ones. Don’t worry about tracking and saving each request that comes in. Let your customers be your memory. If it’s really worth remembering, they’ll remind you until you can’t forget.”

Subscription change, new features

When I launched Tweet Marker Plus, I documented that it would store “about a month” of tweets. I didn’t want to promise too much before I fully understood the storage requirements. After a few weeks, I officially bumped it up to “at least 2 months”. I also added a full archive of your own tweets, which are never deleted.

The truth is I’ve yet to write the code that actually deletes any tweets from the database and search index. Eventually I’ll have to, but not yet. So I’ll continue to evolve the service in a way that makes it more useful and sustainable.

Recently I increased the $2/month price to $5/month, with the search index expanded to 3 months of tweets. Today I’m officially bumping the storage again, to 6 months of tweets. I’ve also changed to monthly billing instead of once every 3 months. Everyone who already has the $2/month plan will get to keep it. No price increase for you, and you still get the new 6-month storage and new features, as a thank-you for being an early subscriber.

And I’ve added a major new feature. You can now create custom collections of tweets and publish them to share with others. This is a feature from my iOS app Tweet Library, and in fact any published collection from Tweet Library will also show up in Tweet Marker Plus. New in Tweet Marker, you have the option of keeping a collection private or making it linkable, without it showing up when someone browses the list of collections.

The screenshots linked on the account page include an example of how collections work.

As a bonus for Mac users, there’s also a new menubar search app. This little Mac app hides in the menubar and gives quick access to searching your Tweet Marker Plus timeline and archive. Here’s a screenshot of what version 1.0 looks like.

Clipstart 1.5

Today I released Clipstart 1.5 for direct download customers and removed the previous version of Clipstart from the Mac App Store. Even though I’ve written about leaving the Mac App Store several times, actually pulling the trigger was difficult. But I believe it’s the right thing for my app, right now.

Clipstart 1.5 is still $29. Changes for this release:

  • Now requires Mac OS X 10.7 Lion. Please do not upgrade to this version if you are running 10.5 or 10.6.

  • Added “Consolidate” command for finding videos that have not been imported or duplicates outside the library.

  • Added AppleScript support for uploading videos. See the help menu for scripting examples.

  • Improved performance throughout the app, especially with importing and refreshing video thumbnails.

  • Improved error message when failing to import all videos from a camera.

  • Fixed tags field on Add Folder dialog not resetting tags value after an import.

  • Support for Mac OS X 10.8 Mountain Lion’s Gatekeeper security.

If you’ve been thinking about buying Clipstart but were on the fence before, I’ll throw in a discount for you. Use coupon code MANTONBLOG to save 20%.