In our ongoing series of interviews with developers and creators in the Apple community, I recently had the chance to talk with Brett Terpstra, developer of Marked, Senior Developer at AOL Tech, TUAW blogger, and "mad scientist" with a knack for finding great solutions through code. When he’s not making awesome things or writing at his personal blog, Brett tweets as @ttscoff.
The interview below was conducted between January 17 and July 4, 2012.
MacStories: Hey Brett! Could you introduce yourself to the readers who haven’t heard about you or haven’t tried any of your apps & scripts before?
Brett Terpstra: Hey Federico,
I’m the original author (now working with Elastic Threads) of a Notational Velocity fork called nvALT, which seems to be what I’m best known for. I also sell an app in the Mac App store called Marked; a MultiMarkdown previewer that watches your text file for changes and updates the preview every time you save it. I’m a bit of a plain text nerd, and a lot of my work focuses on working with and manipulating plain text, as well as keeping data portable and application agnostic. Most of what I do is pure experimentation, coding for the joy of problem solving. Mad science, if you will.
MS: Indeed nvALT has been gaining a lot of popularity especially in the last few months, probably because it also introduced features that the main version of Notational Velocity lacked. Did you guys ever get in touch with Zachary Schneirov, the developer behind NV? Back in March he said he was looking into consolidating some functionalities from the various forks of Notational Velocity into the app. How’s the NV community been responsive to nvALT so far?
BT: The response to nvALT has been surprisingly enthusiastic. It started as something I did one afternoon just to see if it would work. It was an interesting experience having it take off and suddenly having so many people’s important data at risk if I made any mistakes. I’ve made a concerted effort to keep the original code’s data handling intact, and all credit for the brilliance and stability of the system go to Zachary.
Zachary has invited David (Elastic Threads) and I to merge our changes into the main Notational Velocity application. It’s been slow going even getting this next version of nvALT out (most of what free time I find goes to Marked), but David has put a lot of Markdown-flavored blood, sweat and tears into this version. It should be ready soon. Really soon. Once we’ve accomplished the initial merge, we want to keep nvALT going as a bleeding edge development version and merge stable changes back to the trunk. That’s the plan, anyway.
MS: That’s great to hear and, personally, I can’t wait to see these changes being implemented in the main version of Notational -- the developer himself hinted at some very innovative Markdown functionalities a while ago, so I’m curious.
Ever thought about a possible Notational Velocity for iOS? Or do you think there’s no need for a Notational-type of app with all these Dropbox-based text editors out there?
BT: There’s an app called Speed Notes that captures the essence of Notational Velocity really well. It’s not perfect, but I think it will improve with time, and more will come. I think Notational Velocity is one of the best ideas in the history of electronic note taking, so I expect iterations and improvements will continue no matter who’s involved.
There’s an nvALT update coming, but my coding time, as of late, has been spent mostly on Marked. It’s not an abandoned project by any means, but development has definitely slowed.
MS: Cool, I didn’t know about Speed Notes. Looks like a promising Notational- inspired app for iOS, and I’ll make sure to check it out.
Speaking of Marked: can you tell us a bit more about the app’s history? How did you know you had to develop something like Marked?
BT: At its conception, Marked was just another “I wonder if…” project inspired by a lack of live Markdown preview when working in MacVim. I coded the initial version on my MacBook Air on a road trip to New Mexico. I started playing with it and almost immediately realized the value of having a “live” preview that worked consistently across all of my favorite text editors and writing apps.
It evolved a lot over the first few versions, and now I’m focused primarily on adding features for writers; taking it beyond previewing and exporting and making it an indispensable tool. With the rapidly increasing selection of Markdown and text editors on the Mac, the need for an advanced writing tool that works with everything while remaining editor-agnostic is growing. That’s my impetus, and I’m having fun working with writers and bloggers to figure out exactly what a tool like that needs to do.
MS: I see Marked is being used by a lot of very smart people nowadays, and I’m glad the app has been successful so far. Do you think an iOS version of Marked would ever be possible, technically speaking?
BT: It’s entirely possible, and I have some very smart friends that are already working along similar lines. I had always dismissed the idea until a recent Twitter conversation opened my eyes to the potential need for some of Marked’s capabilities on mobile platforms. A “Send to Marked” option available everywhere you work could actually be quite handy. Now that I’ve stated my intention I’m sure someone will beat me to the punch, but I’m definitely forming an exploratory committee (it will just be me).
MS: Your huge iOS text editor comparison has gained a lot of traction, and rightfully so. What pushed you to build that comparison page, and what are your favorite text editors for iOS?
BT: As with a lot of my projects, iTextEditors was sparked by a few questions on Twitter that got me thinking. With the help of contributors from around the Internet, I built it in three days and put it out there. The whole page is built from one Ruby script that pulls in a Google spreadsheet, builds the table, adds the App Store ratings and info, inserts it all into a template along with my Markdown text and rsync’s it to the server. That makes it easy to update, so I hope to keep it current as text editors evolve. I’ll probably eventually do the same for other genres of apps.
My favorite text editors on iOS right now are Byword and Writing Kit. It’s hard to choose, though, because the editing features I enjoy the most aren’t complete in any one app. It seems like every good editor on the platform has incorporated a few features I want (and some I hadn’t thought of), but no one’s created the Full Monty yet. I’m eager to see how things develop. That being said, I only do about 5% of my writing and editing on iOS, so I’d love to see the same thing happen on OS X: one editor to rule them all. My Blogsmith Bundle gets TextMate pretty close to my personal vision, but I’d love to see it all packaged up in something as pretty as Byword.
MS: What are the tools you use on the Mac to get your writing and coding done? I guess there has to be more besides TextMate and Marked?
BT: I do all of my writing in MultiMarkdown. I love both Byword and MultiMarkdown Composer, and each has its strengths. When I have a lot of links to deal with I use TextExpander to make marks for “to be linked” text while I’m writing and then swap over to TextMate where I use the tools in my Blogsmith Bundle to take care of the heavy lifting. I use Scrivener combined with Marked for more extensive projects.
I have an extensive collection of custom keybindings to make Markdown writing in any Cocoa application a little bit easier. They’re not ideal for everybody, but I find them very useful.
For coding, I used to be a TextMate-only guy, but Sublime Text 2 has stolen my heart lately. I use Espresso a lot when I’m working on CSS projects. I spend a lot of time in Xcode, and there’s a lot to like there from an IDE standpoint, but I often swap out to Sublime for editing. I manage my reusable code snippets in nvALT. On a related note, I use TaskPaper combined with my na script for managing per- project tasks.
MS: Have you tried the TextMate 2.0 alpha?
BT: Yep, I grabbed it the day it was available. It has a lot going for it, and I may switch back once it’s a little more polished. I have years of work invested in TextMate bundles and workflow customizations. I can replicate most of them in Sublime Text 2, but if TextMate 2 comes out as well as I think it could it will be a tough decision between the two.
MS: So I assume you use different tools for writing and coding? How does your setup look when switching between different activities?
BT: Well, there’s a little overlap, but in general I keep the two separate. When I’m writing I usually have Safari and Byword in Lion fullscreen mode, and nvALT in menubar mode so I can pop it up on either screen (and to the left when I’m running on my Mac Pro with dual monitors).
When I’m coding I generally have a much messier desktop, with Finder (running TotalFinder) and Sublime Text 2 open, and iTerm 2 running in Visor mode (and occasionally a dedicated window). I do most of my Git work from the command line, but I like to have Tower open sometimes for quickly doing cherry-picked commits. If I’m doing web development, I have multiple browser windows open and usually have Espresso running with a live preview window open. Xcode is usually open with a few tabs and multiple windows.
MS: I assume you use Lion on the desktop? How’s the experience with dual monitors been so far? I’ve heard of several people disappointed by how Lion handles multiple displays – especially for full-screen apps.
BT: I consider Lion full-screen to be pretty much broken when using multiple monitors. It’s an awesome feature on my MacBook Air, but only being able to use one screen at a time on my desktop has major drawbacks. However, I do run a few apps full-screen on my desktop, including Mail, Reeder, iCal and OmniFocus, and sometimes Byword and Sublime Text 2. With these apps I actually like the segregated space they get and it offers a quick distraction-free mode. I also run nvALT as a menubar app, which lets me pop it up on my left screen while working in a full-screen app on the right. I make it work, but I’ll be really happy when Apple “fixes” the one-screen-only issue.
MS: You seem to discover a lot of great stuff on the Internet every day. I always check out your latest findings in the “Web Excursions” series on your site, and I see you are very active on Pinboard as well.
How do you manage to sift through the amount of cool links and information the web gives you every day, and how do you organize all that stuff for later? Just Pinboard and your blog, or are there any additional tools/apps you use for archival and future reference?
BT: I mostly use RSS feeds to sift through, and Yahoo Pipes to do a little of the extra footwork for me. I only spend about 20 minutes a day going through feeds and exploring the web just for fun, but with Twitter (I sort out updates containing links), a bunch of my favorite blogs and Pinboard as sources I tend to find some nifty stuff pretty quickly. I’m constantly amazed at how many new things there are to discover every day.
I use Pinboard and a WordPress plugin called Postalicious to blog links I think are worth sharing. I just tag a Pinboard bookmark (usually using Delibar) with “blogit” and it ends up in one of my “Web Excursions” posts automatically.
MS: Interesting. I thought a “tinkerer” like you would create his own engine to power the blog. Why WordPress?
BT: I’ve been using WordPress for years, it provides a decent platform for adding my own features without breaking core publishing functionality. I’ve actually been planning a switch over to a Jekyll-based blog for almost a year (I have a fully-functional version of it running on my dev machine), but have just had other projects take precedence over the switch. I won’t argue that the codebase for WordPress is a bit of a mess with legacy code (and PHP annoyances in general), but it’s held up well for me over the years.
MS: What do you think of Apple’s recent announcement at WWDC?
BT: If you mean the Retina MacBook Pros, I’m in awe. I got to play with one the day after the keynote and I was blown away. The form factor is almost thin enough to make me think about replacing my Air, but that still has a bit of life left in it.
iOS 6 is going to bring some much-needed improvements. I love my iPhone, but there are definitely areas of frustration, and Apple is addressing some of them with this next OS update. Mountain Lion in July is exciting, too, but between updating my apps for Retina, sandboxing and testing on a new OS, it’s a short deadline and I’m already behind.
As far as the other news, I’m actually still catching up. I spent so much time squelching “fires” during the keynote liveblog that I didn’t actually get to catch more than bits and pieces of it.
MS: Looking ahead, what parts of your workflow and setup are you willing to change or improve?
BT: Simple answer: everything. While I love my current hardware and software setups, I can’t think of any part I wouldn’t be willing to reconsider if presented with a better option.
My workflow is constantly in flux. I’m what people refer to as a “fiddler.” I’m ok with that, mostly because I get a lot of enjoyment out of sharing the things I figure out on the way. If I just dumped all of that time into a hole and never made anything useful for myself or others, then I’d definitely feel like I was wasting it.
I fall in love with apps, processes and hardware and often use them for a long time. Years, sometimes. But at some point I always survey the competition to see if there’s something that’s improved in the meantime. In the case of software, if it looks good I give it a shot for a week or so. If I find it works and the benefits are there, I’ll often make a switch. In the case of hardware—on the occasion that I can justify and afford it—I’m always willing to swap up. It’s not dissatisfaction, it’s just boredom. Sometimes I just get an itch to tear it all down and build it again.
Check out more MacStories Interviews here.