Yearly Archives: 2012

iDeveloper Live Christmas podcast

Daniel and I took a week off from Core Intuition for the holidays, but I was a guest on the iDeveloper Live podcast last week for an end of year show with Scotty, John Fox, Saul Mora, Brent Simmons, and Guy English. Topics included highlights from the year’s events, what projects we’re working on now, learning from Apple’s successes and failures, predictions for 2013, and some detours into Auto Layout, Core Data, iCloud, and other new APIs.

Here’s the episode on iDeveloper TV with the audio and links to all the guests.

Even though I’ve been podcasting for years, I think this was the first podcast I’ve been on that was actually broadcast live. It was a fun show. Check out the iDeveloper Live web site for previous episodes and to subscribe.

Rambling about Twitter archives

As 2012 was winding down, I was fascinated with LongPosts.com (built on top of App.net) and so used it to post some thoughts about Twitter archives. The site is gone now, so I’ve moved the text back to my weblog here, where it belongs anyway. The link to the ADN discussion is here. — future me, January 2016

One of the main goals of my web app Watermark is to archive and search tweets and ADN posts, so it was natural for me to implement support for Twitter’s new archive export format. I finished it last night and linked it from the Watermark account page this evening for all customers.

I had heard that Twitter’s export included a CSV version before I saw the actual files, so I started work coding an importer based on that, with the assumption that I could tweak it later. Once I saw a real tweets.zip, I had to throw out most of my initial work. The CSV files have two problems:

  • They don’t properly escape values using quotes, so a comma inside a tweet makes the files more difficult to parse.
  • They don’t include some essential Twitter metadata like the reply-to ID.
    I switched to using the JSON files and it’s working well. They’re JavaScript but not strictly JSON, so you just skip the first line.

Since the ZIP archive can be fairly big, instead of uploading in a web browser I let the user choose the file via Dropbox. This was a nice opportunity to try out the Dropbox Chooser. Then on the server I extract the files and load the data.

Dave Winer is doing something interesting with archives too. He’s started linking up other people’s archives on S3 — both the HTML view and the .zip file. I have a test Watermark account that I’ve loaded one of these into. It’s interesting to import multiple archives and have them all merged together and searchable.

For so long we’ve waited for access to our old tweets. In the meantime I’ve shipped two products around fixing this limitation, so it’s especially funny that Twitter finally rolls out archives after I’ve stopped posting there. (And of course I love that ADN has allowed access to your full post history from the very beginning.) Not entirely sure where all this is going to lead, but I agree with Dave Winer that new apps should be possible now.

Safari extension for Tweet Marker

Since introducing the Tweet Marker $1/month subscriber plan earlier this week, I’ve received a few questions about how the Safari extension works, and whether Watermark customers will also receive the new features. Yes, Watermark subscribers automatically have access to the Tweet Marker extension, which can be downloaded here.

I’ve prepared a screencast to show how the extension works. It’s about a minute long, and you can view it right here.

Thanks to everyone who has already subscribed to either Tweet Marker or Watermark.

Tweet Marker new subscriber plan

The original goal for Tweet Marker Plus was to help cover the hosting costs for Tweet Marker. It succeeded for a little while, but it also ended up evolving into a larger independent service: Watermark, with much higher hosting costs for archiving and search, and a bunch of new features like App.net support, Dropbox sync, saved collections, and more. I’m really excited about the future of Watermark.

I also hear from Tweet Marker users who don’t need Watermark. They still want to support Tweet Marker, though, to make sure it continues running and that it’s as fast as possible.

So today I’m introducing a separate, inexpensive subscription option for Tweet Marker. Just $1/month! You can subscribe from the new Tweet Marker home page. And as a bonus you’ll get the first official Safari extension for Tweet Marker, shown in this screenshot:

Tweet Marker extension

Posting from Watermark

Watermark now has App.net posting, replying, and an improved UI for tweeting. You could always tweet from Watermark, but it used Twitter’s “web intents” system, which opens a new browser window. The new interface is integrated directly into the Watermark sidebar, and it works with both App.net and Twitter.

Here’s what it looks like when it’s visible:

Watermark new post

Watermark quick copy and more

Watermark had some downtime early last week. While I was able to bring back the server faster and hopefully more robust than ever, I also wanted to quickly act to improve the service in visible ways. So I wrapped up a few features for Watermark over the Thanksgiving break, including two specific new features for Twitter and App.net.

For Twitter: Copying tweets to custom collections was cumbersome before, involving lots of clicks if you are copying multiple tweets in a row. Now there’s a faster way. After you copy a tweet to a collection, Watermark remembers that recent collection for a couple minutes and offers a “quick copy” link directly next to the tweet.

TM quick copy

For App.net: You can now repost or star a post directly from the Watermark interface. I’ll continue to fill out Watermark with more features like this, whether you’re living in Watermark as your default client, or just searching your archive and want access to more functionality.

ADN starred

Search and performance should also be better across the board.

Tweet Library price follow-up

Last month I tried an experiment, lowering the price of Tweet Library for the first time in 2 years. It wasn’t selling well and I wanted to do something to determine if I was just stubbornly pricing it too high or if there was a deeper issue with the quality or marketing of the app. So let’s follow up on whether this was a success or not.

Here’s the graph of revenue for a 2-month period: one month before the price cut and one month after. There was also a new version released about a week after the price cut, but it didn’t appear to have a significant impact on sales.

Tweet Library price cut

Downloads were up 175%. Profit was up 40%. My gut feeling is that I should have dropped the price to $7.99 instead of $4.99, but I’m wary of changing anything again right now. We’ll see what next month looks like.

Stream Marker

Watermark now supports App.net’s Stream Marker. You can click a post in Watermark to set its marker, the current marker will be retrieved when refreshing posts from the server, and the “Scroll to marker” link scrolls to the marker or loads more posts trying to find it.

Here’s what a marked post looks like:

Watermark screenshot

I don’t know if any other clients support Stream Marker yet, but I expect many will in their next updates. I thought it was appropriate that I should be one of the first to support it.

I launched Tweet Marker in June of 2011. It wasn’t exactly a new idea — Echofon had a private sync before, and developers had long been asking Twitter for an official timeline position sync API — but Tweet Marker was the first to support sync between different apps. And it was the first to bring this idea to many more users, to make it a must-have feature that customers asked for.

In a way, I think of Stream Marker as a next-generation Tweet Marker, even though it’s not mine. The API and name are different, but it feels familiar, like an evolution from what we learned from Twitter apps. It’s a no-brainer to support it in Watermark.

Apology letters

Great essay from Rands on Scott Forstall. It’s one of the first I’ve seen to capture what made Forstall valuable to innovation at Apple:

“While I’d continued to hear about the disdain amongst the executive ranks about Forstall after I left Apple, I was still shocked about his departure, because while he was in no way Steve Jobs, he was the best approximation of Steve Jobs that Apple had left. You came to expect a certain amount of disruption around him because that’s how business was done at Apple — it was well-managed internal warfare. Innovation is not born out out of a committee; innovation is a fight.”

One part of this executive shakeup that had me puzzled was the rumor that Scott Forstall refused to sign an apology letter about iOS 6 Maps. We’ve had a few open letters from Steve Jobs, and now one from Tim Cook. It seemed out of character to have a VP do it, someone who’s lesser known to the general public.

But then I ran across this letter about EPEAT from Bob Mansfield again, posted just a few months ago. It is signed only by Mansfield. It starts:

“We’ve recently heard from many loyal Apple customers who were disappointed to learn that we had removed our products from the EPEAT rating system. I recognize that this was a mistake. Starting today, all eligible Apple products are back on EPEAT.”

In other words: we’re listening, we’re sorry, and here’s what we’re doing to set things right. And I think that’s Tim Cook’s Apple. Proud and passionate about the products they’ve built, definitely, but always sincere. Arrogance has no place.

Making time for marketing

Like many programmers, I’m often fooled into thinking that it’s enough to build a good product — that people will find it on their own, instantly recognize its value, and pay for it. It’s easy to forget that even great products need marketing to succeed. For a one-man shop it’s important to take a break from writing code and work on how the app is sold.

Building a business is hard. I started Riverfold Software 6 years ago and in many ways it has fallen short. And for some of the past year, I’ve squandered the success of Tweet Marker, failing to practice and experiment with how to make money from it.

Jason Fried of 37signals wrote for Inc Magazine last year about how making money takes practice:

“One thing I do know is that making money is not the same as starting a business. For entrepreneurs, this is an important thing to understand. Most of us identify with the products we create or services we provide. I make software. He is a headhunter. She builds computer networks. But the fact is, all of us must master one skill that supersedes the others: making money. You can be the most creative software designer in the world. But if you don’t know how to make money, you’re never going to have much of a business or a whole lot of autonomy.”

In the last week I’ve taken a couple steps in the right direction. I’ve finally redesigned the Watermark home page around a simpler marketing statement of what the app is about. And as discussed on the recent Core Intuition, I switched from PayPal to Stripe in an effort to make payment smoother and subscriptions easier to track. There’s still a lot to do, but I hope to make even more time for marketing before the year is up.

iPad Mini

From John Gruber’s iPad Mini review:

“If the Mini had a retina display, I’d switch from the iPad 3 in a heartbeat. As it stands, I’m going to switch anyway. Going non-retina is a particularly bitter pill for me, but I like the iPad Mini’s size and weight so much that I’m going to swallow it.”

As I said on the last Core Intuition, it’s even more of an easy switch for me since I never upgraded to the iPad 3. The iPad Mini has essentially been my only iPad for the last week. I’m using it more, and taking it places that I would’ve have bothered with before. My new favorite Apple device.

The Magazine issue 2

The second issue of Marco Arment’s The Magazine is now available, featuring essays by John Siracusa, Gina Trapani, Lex Friedman, Daniel Rutter, and Alex Knight. In the new issue, Marco writes about the risk and success of the app:

“It was a risk to release an app that can only exist in Newsstand, full of paid writing, to an audience that’s predominantly people who have a surplus of free reading material and bury their empty Newsstand folders on their last screen of apps.”

I’ve been happy with how well The Magazine fits into my mobile reading workflow. I read a lot in Instapaper and Reeder, most of it technology-related articles. The Magazine occupies a more leisurely, thoughtful space for reading, away from the frenzied pace of everyday tech news. And because it’s a handful of essays just every other week, I don’t expect to ever be overwhelmed with it in the same way that it’s easy to fall behind in never-ending RSS and Twitter feeds.

High quality, highly recommended. Congrats to Marco on the successful launch.

Watermark shared filters

I rolled out a small but powerful feature last night for Watermark. For a while you’ve been able to create saved filters, which are just shortcuts to quickly run a search across the Watermark database for your account. Saved filters are also cool because they automatically sync as CSV files to Dropbox. Now you can allow any of these saved filters to be shared with others.

Click “Allow saved filters” and you’ll get a link option next to each filter. That will produce URLs that can be posted to Twitter or App.net or wherever, and anyone can see the results of the search even if they don’t have a Watermark account.

It’s a way to expose a slice of your timeline and archive to other people. Here are a few that I’ve set up:

  • cingleton — Every tweet or post mentioning the Çingleton conference.

  • pdx food — Neven Mrgan’s short reviews of Portland restaurants.

  • ipad mini — Obvious query given today’s Apple event.

All of these search live across my 6-month archive of about 275,000 tweets. Remember that Twitter’s own search only goes back about a week. There’s really no other way to get this kind of data.

What the Tweet Marker award means

It’s been over a year since I launched Tweet Marker, and I’ve been thinking a lot lately about what its second year will look like. Hosting costs have gone up significantly over the last year, though I’ve offset that by combining the hosting for Watermark and Tweet Marker together so that they share the same core servers. I’ve considered other options, too: run a Kickstarter-like fundraiser, charge developers, or ask for donations again.

Now that I’ve stopped posting to Twitter from my personal account, people also ask whether I’ll just shut Tweet Marker down. The answer is no. I’ll keep it running, even if it means funneling some revenue from Tweet Library and Watermark to pay for it. Even if it means having to put out fires and deal with other web hosting distractions.

Hosted web services have a different level of commitment than traditional apps. When I stopped selling Wii Transfer, existing customers could continue to use it for as long as they wanted. Not so with something like Tweet Marker, which becomes useless the minute I shutter the web server.

The Macworld Eddy statue sits on my desk as a constant reminder that real people like this thing and find it useful. There is a lot of uncertainty with Twitter, App.net, Tent.io, and the future of microblogging, but no matter what takes off and what sync looks like, I think Tweet Marker played an important role in the evolution of Twitter clients. I’ll always be proud of that. It would be a disservice to my customers and the Macworld award to ever consider turning off the API while people value it.

Watermark for iOS

I have a new iPhone app in the store: Watermark Mobile, a lightweight companion app to Watermark, my search and archiving tool for Twitter and ADN. It’s free for existing customers, or $4.99 using in-app purchase to subscribe as a new Watermark customer.

With this app I wanted to solve two problems:

  • Clean, simple search interface on the iPhone.

  • Allow paying for Watermark inside the app with your iTunes account.

While I’d eventually love to have a more full-featured client like Tweet Library available for Watermark, after a quick weekend of hacking I decided that Watermark Mobile was already useful enough that I should release it. So I did.

Tweet Library price cut

At Çingleton last week, Michael Jurewitz talked about app pricing and the arguments for raising your price. He made a convincing case, and it echoed some of the themes that I wrote about before I released Tweet Library 1.0 back in 2010.

In the two years since, I never once changed the price. No intro discount, no gimmicks, never on sale; $10 was essentially set stone. Even as it moved to the iPhone as a universal app, I stuck to my original philosophy about pricing, perhaps stubbornly. There’s value in consistent pricing, so that the user knows what to expect from one month to the next, and to indicate that the developer attaches a specific value to the app.

Last week, before Çingleton and right as version 2.1 of Tweet Library was about to be released, I decided to try an experiment: I cut the price in half to $4.99. Even though it’s a niche app that only doubles as a full Twitter client, this puts it more in line with other Twitter apps on iOS. (And even cheaper than buying both the iPhone and iPad versions of some apps, like Netbot for ADN.)

Meanwhile, Tweetbot for Mac is now out at $20. Daniel Jalkut covers this on his new blog, Bitsplitting:

“Is $20 a reasonable amount to pay for Tweetbot? I think so. But if Tapbots would have preferred to charge even less, has it been fairly priced? Many folks are seizing on the coincidence of Tapbots needing to charge more as an opportunity to exalt ‘fair pricing,’ when this was a result of coercion in two directions.”

Pricing is something I am still very fascinated by, especially this constant pull between how we value our own software and how pragmatic we want to be as a business. I’m going to let Tweet Library sit at $4.99 for a month, and if revenue is not obviously greater than what it would have been, I’ll bump it back to $10 or a middle-ground $7.99.

Two more for Watermark: pictures and stars

Following just a week after the Dropbox support in Watermark, I’ve added two new smaller features that improve the user experience. The first is that photos hosted by Twitter are now included as inline thumbnails next to a tweet, as shown here:

Watermark inline picture

The second improvement is a much faster Favorites view, which also now includes the new “stars” feature from App.net. Watermark doesn’t yet download all your existing stars (that will be rolled out to more users soon), but when it does encounter a star in your App.net timeline, that starred post will be included it this view right alongside Twitter favorites.

Watermark export using Dropbox

I’ve been making Watermark better. Sometimes it’s small tweaks or bug fixes; other times, more noticeable new features. Because it’s a subscription, I’m determined to improve it quickly and often. I don’t write about most of these changes, but the new Dropbox sync in Watermark deserves special attention.

Watermark originally shipped without any kind of export feature. This was a glaring omission for an archiving tool. But because of the large number of tweets stored by Watermark — some users have hundreds of thousands of tweets from their friends in the app — a simple export wasn’t feasible. I could have offered an export of just your own tweets, but then you also have the fairly clunky step of waiting for the server to gather tweets together, then downloading a file from your web browser, finding where to store it or the previous downloaded copy to replace it with.

Dropbox sync fixes that. Watermark can now automatically copy tweets (and App.net posts) from your saved filters and custom collections to CSV files on Dropbox. For example, search Watermark for “iPhone 5”, click “Save as filter”, and the most recent 1000 tweets matching that query will appear in a file called “iPhone_5.csv” on Dropbox. It keeps running in the background, so the files are updated every hour as new tweets matching the search are downloaded by Watermark, even if you aren’t signed in.

See the account page and FAQ for details and a sign-in link to authorize Watermark with Dropbox.

Announcing Watermark

I’m renaming Tweet Marker Plus. Its new name — to better reflect its gradual move away from Twitter and syncing — is Watermark.

As part of the relaunch it immediately gains a new feature: App.net posts. You can now add an App.net account and it will download any posts from your friends, making them available for search. Watermark is already storing tens of millions of tweets, and I’m excited to start adding App.net posts to that archive as well.

So what happens to the basic Tweet Marker API? For now, nothing. The sync API that over 22 Twitter apps support will still be called Tweet Marker and remain Twitter-focused. Think of Watermark as a separate app: a new kind of client and archive tool, independent of Tweet Marker.

Justin Williams kills 2 apps

Justin Williams on his decision to stop selling his apps MarkdownMail and Today:

“Financially, it may not have made much sense to cut off the revenue streams, but therapeutically I’m freeing up that portion of my brain to focus my full attention on the next version of Elements and the dozens of other ideas that that are circling in my head.”

I felt exactly the same way when I stopped selling Wii Transfer earlier this year. It wasn’t until a month later that I realized how much I had been enjoying that revenue, limited as it had become. I don’t regret it, though. It was the right thing for my potential customers, not to be misled into thinking there would be new versions. And it was the right thing for my focus, working on other projects.