I started this blog on January 10th, 2013, so it just recently turned two years old. Here are some observations on keeping a research blog and what I’ve figured out about it during the last two years.

It’s maybe only half research, and that’s fine

Only half of my posts so far touch on actual, original research that I have done. In fact, I haven’t posted about my own research since September, when I defended my dissertation. Instead, I’ve been posting about other people’s research, or things that I want the research community to know about, or PL-related topics that I think are interesting, but aren’t research.

Even before September, though, I wrote about all kinds of things that weren’t research on this supposedly-a-research-blog. So I’ve stopped thinking of it as a “research blog”, and started thinking of it as a blog by a researcher. Since it’s impossible (and, moreover, a bad idea to try) to separate the part of me that does research from the rest of me, this is more or less inevitable, and although I’m probably not about to use this blog to write about my flowers or my clothes or that time my house got broken into, I’m also not going to pretend that that part of me doesn’t exist.

So far, “Your next conference should have real-time captioning” is the most popular post on this blog.1 It took maybe half an hour to write and consists mostly of other people’s tweets and a photo that someone else took, held together with a few scraps of my own prose. On the other hand, “How to read from an LVar: an illustrated guide” took days to write and illustrate, but not that many people care about it.

That’s not to say that there’s a negative correlation between effort and popularity, either. “The LVar that wasn’t”, which is my longest post and also took days to write and illustrate, is my most commented-on post. And there have been several posts, especially the CFP posts, that’ve been neither particularly popular nor particularly demanding to write.

Expecting a post to be appreciated in proportion to the amount of effort I spend on it is a mistake, and in any case it’s really hard to measure the amount of effort that goes into a post. “Yet another blog post about how parallelism is not concurrency”, for instance, was something I banged out very quickly, but only because I’ve been thinking about this stuff for years, and someone happened to ask just the right question at just the right moment to incite me to write about it.

Two posts a month is sustainable, barely

I have a self-imposed quota for how often I post on this blog: twice a month. It doesn’t matter when I post during the month, but I have to post twice each month, on different days within the month. As the record shows, I’ve been able to stick with this goal, but only just barely. It’s no accident that my posts are often on the last day or two of the month; it’s because I put it off until then. In fact, at the moment I feel smug and self-satisfied that I’m posting this on the 27th of January instead of the 30th or 31st.

I had been writing online for about ten years before I started this blog, but for the longest time, I didn’t want to start a dedicated research blog. After all, nothing’s sadder than an abandoned blog, and what if I didn’t stick with it? What if I ran out of ideas? But I’ve been able to keep up with two posts a month, although admittedly there have been a number of what I consider “filler” posts, like many of the aforementioned CFP posts.

Although I loathe the capitalist notion that one’s worth as a person depends on one’s ability to keep cranking out product without pause, I’ve nevertheless seen some evidence in favor of the idea that, if I just keep a regular habit of posting here, then eventually I’ll produce some things that are good, even if a lot of what I produce in the meantime is filler. And long pauses between posts make me feel like the expectations for each post are higher, so if nothing else, “filler” posts help keep expectations appropriately low!

“I shall now write a blog post on…” is not necessarily the best approach to writing a post

Many of the posts that I’m happiest with on this blog came about not because I intended to write a blog post, but as a side effect of doing something else. “What I do all day, as told to a first-year CS student” is more or less a transcription of an interview. The main ideas in “Frame problems and frame properties” are from a section of my dissertation that I was working on at the time. “Things you can do to get ready for PL grad school” began life as a response to an emailed request for advice. “Notes from the “Energy and Performance” session at OOPSLA” is just that. And so on.

I keep a list of topics for posts I’d that like to write sometime, but it’s honestly not a very useful list, since in practice the good posts end up being the ones that begin life as something else. I see it as more of a “last resort” list, in case I run out of topics.

A blog is not an append-only log

A lab notebook is a more or less append-only document that one uses to keep track of everything one does in the course of doing research. A blog is not a lab notebook. I revise my old posts whenever I come across a mistake or something that I think could be better worded, which is often.

Robby Findler has argued that mistakes in computer science papers slow the pace of the exchange of research ideas, even if those mistakes are only typos that are still “morally correct”. I think the same is true of blog posts. When I’m reading someone’s blog post and I come across a typo or something awkwardly worded, it interrupts the flow of my reading and diminishes my enjoyment and understanding of the post, even if it’s quite clear what the author really meant.

It’s hard to fix errors once they’ve been published in a paper, but it’s easy to fix errors in published blog posts. So, I do. For instance, according to git, this one has been edited three times since I published it, and this one has been edited seven times. (In fact, I’m making a post-publish edit to this very post right now.)

I understand that there are diminishing returns to spending time editing old blog posts, but it’s my blog, and I can do what I want!

Dealing with negativity

A lot of people are eventually driven away from blogging due to knee-jerk negative reactions to their posts. I can’t promise that this won’t eventually happen to me, but so far, it hasn’t. I have three recommendations for how to avoid it.

  • I stay away from Hacker News and Reddit. I don’t have accounts on those sites, so I can’t comment and I can’t post my own stuff. Sometimes other people post my stuff, which is fine with me (and flattering), and sometimes I succumb to vanity and look at what people are saying, but I do my best to avoid it.
  • I try not to give my posts provocative titles. “Your next conference should have real-time captioning” is one counterexample, but for the most part I try not to use titles that say “do this”, “stop doing that”, “X should do Y”, “X is better than Y”, or “X is wrong about Y”. Titles like that will indeed elicit more clicks, but they’ll also elicit knee-jerk negativity from people who are already feeling defensive just from having read the title. So it’s “Things you can do to get ready for PL grad school” rather than “What you should do to get ready for PL grad school”, and it’s “Some misconceptions about Hacker School” rather than “Why you’re probably wrong about Hacker School”.
  • I try to stick to facts and to things that I’m an expert on. “Things that I’m an expert on” could mean a technical topic, like LVars, or it could mean something I’ve felt or experienced, since everyone is an expert on their own lived experiences. For instance, this post combines verifiable facts (my lab is hiring interns) with my feelings (I’d like to make our intern hiring less in-groupy). Notice that I don’t say, “Tech hiring is too in-groupy.” I say, “I’d like to make our intern hiring less in-groupy.” There’s nothing in there that anyone could possibly say “you’re wrong” about, because “we’re hiring interns” and “I’d like to make our intern hiring less in-groupy” are both facts.

Empirically, following these three guidelines works pretty well for me. The last “u suck and ur doing it wrong” comment I can recall getting regarding something I put on this blog was this one, nearly two years ago. And, looking back at that comment, it really doesn’t seem very bad at all.

  1. Popularity is difficult to measure, especially since I don’t use any analytics software or service and don’t intend to, but a reasonable metric might incorporate some or all of: number of times the post’s URL has been tweeted; the popularity metric used by Feedly; the number of emails I get about the post; number of comments on, e.g., Hacker News; number of comments here on the blog; and so on. For my post about real-time captioning, the composition.al domain wasn’t resolving for a lot of people due to a DNS snafu, and so a lot of the tweets about it use lkuper.github.io instead. Even if we don’t count those tweets, it’s still one of my most tweeted-about posts.