Writers I Read: Dr. Drang

Stephen: Dr. Drang, thanks for taking some time from whatever it is you do to chat. For those readers who might not know, tell us a little about what you do online.

Dr. Drang: My blog, “And now it’s all this,” lives at leancrew.com, where I try to post 4–5 times a week. I have an extraordinarily poor sense of marketing, so my domain, blog name, and pseudonym have no relationship to one another. Fortunately, Google sends people who search for “dr drang” to my site.

As its name (which comes from a John Lennon quote) implies, my blog covers things that strike me as interesting. Many of the posts describe the little scripts I write to automate the dull, repetitive things our computers—in my case, Macs—ask us to do. I don’t put the kind of polish into my scripts that Brett Terpstra puts into his, mainly because I view these kinds of scripts as highly personal, things that should be customized to an exact fit for each user. That’s why my posts usually include the full source code and a painfully detailed explanation of what the various parts do. I want to make it as easy as possible for my readers to tweak my scripts to match their needs.

Since getting an account on GitHub a few years ago, I’ve been putting more of my scripts, especially the longer ones, there so people can get them by downloading or forking instead of the more tedious copying and pasting.

I also write occasional posts on engineering topics (I’m a mechanical and civil engineer in real life), where I indulge my love of mechanics and the mathematics behind it. And scattered in the mix are posts on music and politics. I don’t do much link-blogging, and I tend to stay away from the topics that everyone in the Mac/Apple blogosphere is talking about. Unless I have something really different to say, I figure my readers have already had their fill of those topics by the time they get around to my site.

Like everyone, I’m on Twitter (@drdrang), where I try, like everyone, to be clever.

Stephen: I really appreciate the mix of writing and posts on your site. More than once I’ve Google’d for a solution and come to something you’ve done.

I mean, if you and Terpstra had a baby it’d take over the world.

(Awkward silence…)

Clearly you have a depth of knowledge when it comes to the Mac. How’d you start out in technology, and the Mac platform?

Dr. Drang: Well, as a traditional engineer and hopeless pedant, I object strongly to your implicit restriction of the word “technology” to mean only “electronics” or “computer stuff,” but I’ll save that rant for another day.

I got started using computers the way most engineers of my generation did—with a Fortran programming course my freshman year of college. This was “using” a computer in only the most indirect way imaginable. I never touched or even saw the computer my programs ran on (or, more commonly, failed to run on), which was, I suspect, some descendant of the IBM 360. The device I actually got to touch was a keypunch machine, which I used to enter my code, one line per punched card. The stack of cards, rubber-banded together— would be placed in a bin in the computer center for batch processing. Periodically, one of the low priests of the computer center would emerge from the mysterious back room, gather up all the stacks of cards, and then withdraw to run them through the machine. Some time—often hours—later, he would return with stacks of output on fanfold paper and distribute them into another set of bins according to the programmer’s last name. This is when you usually learned that the compiler had rejected your program for syntax errors.

A couple of years later, in 1980, I took a Pascal programming course and got to use a timesharing system. I typed my programs in on a terminal—usually an all-caps, green-on-green Infoton— and submitted them to the computer directly. This was a revelation, not only because I learned about my syntax errors immediately, but also because I could edit the faulty lines instead of retyping them. The editor was incredibly clumsy by today’s standards (you could only work on one line at a time), but it seemed wonderfully efficient to me.

My first personal computer was a Commodore 64, bought when I was in grad school and used mainly as a cheap plaything. I programmed it in Basic (its operating system was an extension of Basic), occasionally dropping into 6502 machine language with POKE statements.

I bought the second generation Macintosh, the 512k Fat Mac, my last year of graduate school. This was my real start in personal computing. I wrote my thesis in MacWrite, with graphics done in MacDraw. The small finite element programs I used to illustrate analytical techniques were written in MacPascal. They took forever to run because MacPascal was interpreted, but the writing/debugging/running process as a whole was much faster than using a timesharing system.

Over the next dozen years I used a variety of Macs. I got a Mac II when they first came out as a consolation prize in an Apple-sponsored programming contest, and I will always consider the SE/30 one of the greatest computers ever made. I did a lot of programming in HyperTalk, HyperCard’s internal language; it still seems like the best programming environment I’ve ever used.

By 1997, though, the bloom was off the rose, and I left the Mac for Linux. I wasn’t worried about Apple’s financial viability, I just couldn’t stand to work on Macs anymore. Cooperative multitasking was awful, and crashes were depressingly regular.

I spent about 8 years as a Linux user. I learned how to build my own computers (to my surprise, not that big a deal) and expanded my programming into Perl, Python, Lisp/Scheme, and PostScript (making a drawing by programming directly in PostScript can be surprisingly efficient for certain types of drawings).

By 2005, it looked like OS X was mature enough as a Unix platform to handle the text-based workflow I’d developed under Linux, so I switched back to the Mac and have been a satisfied customer—despite some grumbles about Lion—ever since.

Stephen: Despite my poorly-worded question, I do view technology being much bigger than computers. That said, I had no idea your background is so varied.

You were really in the right place and time to experience the shift from the “priestly” guys who ran your programs for you, without you being present to the personal computer, right on your desk. Sometimes, I wish I were older to see this change first-hand.

From your writing, I feel like you enjoy the power of Unix that resides under the Aqua crust of OS X, although you clearly draw from your time with Linux.

You said that your workflow is text-based. What does a typical day look like on your computer?

Dr Drang: I try to write everything—blog posts, reports for work, notes to myself, and the occasional email that needs a bit more styling than plain text can provide—in Markdown. When I came across Markdown 7–8 years ago, it seemed like it was made just for me. I had long since decided that plain text files were the way to go, but hadn’t settled on a single form of plain text, shifting between HTML, troff, SGML, and LaTeX. Markdown was the single form that I could use to do all my writing, both formal and informal, transforming it into different outputs to match the audience.

(I wrote a series of posts last year about my history with plain text. The last one of the series has links to all the others.)

I write almost everything in TextMate 1.x. Although the Mac’s consistent handling of basic text editing, combined with tools like Services and TextExpander, can give you nearly the same writing experience across a range of editors, I prefer to stick with one and use it for all its worth. The only exceptions are short mail messages, which I write in Mail.app itself, and outlines, which I write in OmniOutliner Pro. (I’d be happy to ditch OmniOutliner and write all my outlines in Markdown, but TextMate can’t collapse and expand nested lists or passages under section headings. That was one of the things I was hoping to get out of TextMate 2, but I haven’t been brave enough yet to use it.)

My non-writing is generally done through plain text, too. The calculations I do, whether elaborate or elementary, are typically done in either Python or Octave. I’m currently experimenting with SciPy, a set of numerical libraries for Python, which holds the promise of consolidating all my numerical analysis under one roof. I’m not big on spreadsheets. I have Numbers, but I seldom use it except for making nice looking expense reports or, less often, entering a series of numbers in tabular form (spreadsheets are really efficient for that) which I then export as plain text input files to be read by Python or Octave.

The charts and graphs I generate also start as plain text. I’ve been using Gnuplot for years but am currently giving Matplotlib a try. As with SciPy, Matplotlib would allow me to do more work in Python and do less context-shifting from one syntax to another. Could I use Numbers to make my graphs? No. Numbers charting is worthless for the kind of work I do. Excel’s charting is a big step up, and I used Excel a lot in the 80s and early 90s, but I really don’t want make my workflow dependent on MS Office again.

Continuing the plain text theme, I have occasionally produced drawings from plain text by writing directly in PostScript. This is pretty rare, though. Most of my drawing is done in OmniGraffle. It’s obviously not intended to be a general-purpose drawing program, but it works surprisingly well in that role. A lot of what I use it for is annotating photographs and charts, which is where its underlying structure really stands out. My annotations typically have leader lines running from the text to the object being described. With OmniGraffle, I can move the annotations around and the leader lines follow automatically. This saves a lot of time.

As for productivity apps, I’ve been all over the map, never really satisfied with any system. I was big on OmniFocus for a while but ultimately found it too fiddly for my needs. What I keep coming back to is TaskPaper, which is probably as close as any app will get to fitting my way of working, but I stray from it, too. Right now, I keep my task list on the white board in my office, erasing items as I complete them.

Stephen: The picture of you in front of a giant white board, with a rolling ladder comes to mind.

So, we’ve talked about your workflow, and I think a lot of nerds resonate with the desire to keep things text-based. I know for me, I like the flexibility and portability that .txt files offer.

Despite the large amounts of information you share about your workflow, your identity is a secret, even to interviewers. What keeps you anonymous?

Dr. Drang: When I started blogging, I thought I’d do more political posts, and it seemed like a good idea to keep my online and real life personas separated. I didn’t want potential clients Googling my real name and having all the hits come from my personal blog.

As it happened, the political blogging was never a significant part of ANIAT, so maybe the pseudonymity was unnecessary. I do think about dropping the mask, but since I don’t see much advantage either way, I’ve stuck to the status quo.

I should point out that the personality expressed in ANIAT and my Twitter feed is my real personality (to the extent I have one). And the details of my life that I let out are real: I’m 33 years old (in hex) and married, with a daughter and two sons. I do have a Ph.D. in engineering, with an emphasis in stress and structural analysis.

“Drang” is the German word for stress and is part of the name of a famous engineering textbook, Drang und Zwang, written by the father and son team of August and Ludwig Föppl. The father, August, also wrote an even more famous textbook, Vorlesungen über technische Mechanik, but “Dr. Vorlesungen” just didn’t have the right ring to it.

Stephen: So you think the mask will stick around? How do you view the site’s future?

Dr. Drang: I have no plans to change the way the site looks to visitors but have been thinking about changing the back end—moving it away from WordPress and turning it into a statically generated site. So far, I haven’t found a static site generator I like well enough to pull the trigger on that. If I have to make my own, it may never get done.

As for content, I want to do more engineering posts. They’re fun, albeit time-consuming, to write, and are a change of pace from the scripts ‘n’ tips. I’d like to write more software reviews, too, but by the time I’ve used a product long enough to feel comfortable reviewing it, everyone else’s reviews have already been published and mine seem superfluous. I’ve killed several half-written reviews because of that.

I don’t see linked list-style posts ever being a significant part of ANIAT. Other people do that and do it better than I ever could.

We’ll see about the pseudonymity. I suspect I’ll stay hidden behind the snowman for quite a while.