Category Archives: etc

Unpaid labor in academic and free software communities

There are many aspects of my current free software development work that are (thankfully!) very different from my previous life as an academic. But one way in which they’re similar is the way that one’s relationship to one’s own paid and unpaid labor is connected to one’s career progress, and the personality types that this structure attracts.

I’m a known advocate ([1], [2], [3]) for fostering a symbiotic relationship between my paid client work and my unpaid work on free software projects. And while I’m emphatic that there’s value in having these two parts of my career separate from (yet supportive of) each other, the separation embodies an unavoidable tension between what I’m paid to do and what earns the respect of my peers. If people know who I am, it’s probably because of volunteer work I’ve done for WordPress, not because of my client work. As such, there’s continual internal pressure for me to focus more of my mental and emotional energies on the unpaid work. Yet it’s important not to yield completely to this pressure, since my paid client work is critical, both in terms of the financial support and the technical inspiration it gives to my work on the free software projects. Balancing these two pressures is something I’m constantly struggling with.

The relationship between labor and rewards in academic work is similarly structured. Most academics are paid primarily for teaching duties, with service and research being important but often secondary, at least as far as the official job descriptions are concerned. Yet the system of advancement in academia is structured in such a way that one’s research and publication record is of paramount importance. And in many cases, volunteer labor – things like peer review and service to professional societies – is critical to one’s reputation as a scholar. Anyone in the academic world will recognize the tensions that this arrangement can produce.

The peculiar motivations baked into free software development and academia tend to attract similar sorts of overachievers. To rise to the top of your field, you’ve got to do large amounts of unpaid labor, while still doing enough of your paid labor to keep your job. This means that the most successful people tend to be those who are spending the greatest amount of their spare time working for free. A couple of consequences fall out of this arrangement. First, people who are already in a position of privilege (financial and otherwise) are able to climb the career ladder more easily. This setup also means thatt successful people are likely to have a sense of self-worth that is closely connected to their work. And these factors mean that successful academics as well as free software contributors are more likely to suffer from burnout.

Last year, DHH of Ruby on Rails wrote an interesting piece on “the perils of mixing open source and money”. I’m very sympathetic to many of his points about motivation: the tenor of a free software project, and the quality of the software that results, is largely a consequence of the fact that the creators of the software are not primarily motivated by financial concerns. This is something that academics figured out a long time ago. As such, I think that it’s important to continue to foster “reputation cycles” and other structures that help to enable talented developers to devote energies to free software without directly paying them for it. At the same time, it’s important to be aware of the kinds of tensions I describe above, because the separation of paid and unpaid work in this area can tend to be personally destructive at the same time that it’s valuable for the (software/academic) projects as a whole.

Goodbye to Twitter

I’ve been a pretty heavy Twitter user since about 2009. I’ve had a lot of fun using the service, I’ve forged a number of friendships there, and in several concrete ways, I owe my career to my use of Twitter. For years, I’ve kept TweetDeck open on a dedicated screen throughout my working day – a connection to the world around me, to colleagues and friends around the world. I was a Twitter advocate. I loved Twitter.

Over the past year or so, the things I once liked about being on Twitter have faded pretty rapidly, and the downsides of being connected to this space have come to overwhelm the upsides. Since ditching my smartphone a few months ago, I’ve been using Twitter less and less, until about a week ago I pretty much stopped.

There are dozens of reasons why I just don’t want to participate anymore, some of which are part of the recent zeitgeist and some of which are totally specific to me. It’d be pointless to list them all. At the same time, transitioning away from being an active Twitter user feels like a major life event for me (silly as that may sound), and I can’t help but reflect on two interconnected reasons that stand out from the rest.

One is that I’m tired of having an audience, or at least tired of having the specific audience that I’ve got on Twitter. Interacting earnestly and honestly with others is hard to do when you’re being watched by thousands of strangers. Some people react to this by adopting the voice of a pundit or a “public intellectual”; I’ve chosen to tell jokes. And the truth is that I like to tell jokes, and it’s nice to make a funny and have people laugh. But when your main public outlet is primarily a platform for snarky comments, it starts warping the way you interact with the world. I find myself actively looking for funny ways to be annoyed as part of my everyday life, and I shape a lot of my internal monologue regarding the banalities of existence against the backdrop of the audience I’ve cultivated. One-liner oneupsmanship is fun when you’re at the bar with buddies. But when it pervades your waking hours, it feels so vapid, and I’m tired of it.

Closely related is the sheer exhaustion of being constantly tapped into in the network. Every tweet I read or write elicits some small (or not so small) emotional reaction: anger, mirth, puzzlement, guilt, anxiety, frustration. I’ve tried to prune my following list so that when I do find myself engaging in a genuine way, it’s with a person I genuinely want to engage with. But there’s a limit to how much pruning can be done, when unfollowing a real-life friend is the online equivalent of punting his puppy across the room. So all day long, I’m in and out of the stream, always reacting to whatever’s coming next. Setting aside the question of how distracting this is when I’m trying to get work done, the fact is that I have a limited capacity for emotional engagement, and the code-switching that’s required when the character of my response is supposed to change every 140 characters only increases this overhead. A life spent on Twitter is a death by a thousand emotional microtransactions. I want to be pouring these energies into my family and my friends and my work.

I’ll keep my Twitter account, and I’ll probably open it once or twice a day to see if anything catches my eye. But I no longer want its constant companionship. That this realization feels more liberating than bittersweet shows that it’s probably the right decision for me.

I am a young person who solves crossword puzzles and maybe you should be one too

I am a pretty good crossword solver. I solve between 150 and 200 crosswords per month, and in 2014 I came in 46th at the national crossword puzzle tournament.

My interest in crossword puzzles is not something I talk about very much. I move in pretty uncool circles – computer geeks and academic nerds – but even there, this hobby gets a “what a dweeb” reaction from most of my friends.

As chance would have it, though, over the last few days a few friends and colleagues have talked publicly about solving. And my wife pointed me toward this piece in the Atlantic, which paints a pretty dour picture about the future of the puzzle. So I thought now would be a good time to come out of hiding, as it were, and do a bit of crossword advocacy.

It is a pretty awesome time to be solving crosswords. Since I started solving seriously about ten years ago, puzzles have become more innovative, varied, weird, funny, vulgar. It may be true that the demographics of crossword solvers skews old, but the puzzles themselves generally don’t. If you don’t do crosswords because you think they’re for blue-hairs, you’ve got another think coming.

Cool things about crosswords

Here are some cool things about crosswords that should appeal to the kind of dweeb who reads my blog:

  • Puns
  • Pattern recognition
  • Intentional conflation of use and mention
  • Syntactic and lexical ambiguity
  • 80s pop culture references
  • You can do them on shiny things like iPads

Places to find good crosswords

The first step to getting into crosswords is finding high-quality puzzles. Here are a couple of my standbys:

  • New York Times – This is “the crossword”. Puzzle difficulty increases from easy on Monday to quite hard on Saturday, with the large Sunday puzzle at about a Wednesday or Thursday level of difficulty. $40/year.
  • Los Angeles Times – Similar to NYT puzzles, but generally a bit easier. Free.
  • Creators Syndicate – Weekday puzzles are generally very easy. Saturday Stumper puzzles are typically the hardest puzzle of the week. Free.

Special shout-out to the following puzzles, which are not put out by large publishers, but are instead supported by subscription and donations to individual constructors. If you really want to support the future of crosswords, you should be supporting them:

  • Brendan Emmett Quigley – Twice-weekly(ish) puzzles. Funny, cool, free. Thursday themed puzzles are moderately difficult. Monday themeless are pretty hard.
  • American Values Club – Very awesome, not particularly PC. Works like a collective for crossword constructors, offering them some of the best pay in the industry. $18/year.
  • Fireball Crosswords – Hard puzzles that are also the bomb. $20/year

Get out there and do some crosswords, and one day you might be as cool as me.

Heart rate monitor training for the reluctant runner

My wife loves to run. I, in contrast, find running to be boring and unpleasant. But I run all the same, because it keeps me relatively thin and makes me feel better for the 23.5 hours per days that I’m not running. Before I had a normal-ish job and a family, I was running a fair number of miles – around 35-40 miles/week. But life got in the way, and I’ve been off-and-on for a few years now. The problem with off-and-on running is that it keeps you just fit enough to get through the runs, but not fit enough to get through them in a pleasant manner. I’d find myself running five miles one week, twenty miles the next, and feeling exhausted with every step. Combined with my natural distaste for running, this unpleasantness made for an exercise regimen that was hard to stick to.

So, last summer I decided that I’d mix things up, and I bought myself a heart rate monitor. (This one.) I figured that I wasn’t enjoying my running routine, and it wasn’t much of a routine anyway, so I might as well go whole hog into a training plan that was totally foreign to me; I didn’t have much to lose. I’ve been faithfully training with the heart rate monitor for about a year now, and overall it’s been a really positive change.

The first thing I did when I got the watch was to ask my wife if she had any resources for training with a HRM. Surprise! she had several, and she grabbed one for me from her unreasonably large library of running books. I found Heart Monitory Training for the Compleat Idiot by John Parker to be a helpful resource: written specifically for runners (as opposed to, say, triathletes), a very quick read, and full of advice that I found sensible and not overbearing.

The main takeaway from the book (spoiler alert) is that most people run most of their miles far too fast. When your “easy” runs aren’t legitimately easy, you’re never rested for the hard runs, and you never build the kind of stamina that you really need for distance running. (At the risk of sounding like a running nerd, the idea is to do the majority of your miles under your lactate threshold.) The heart monitor is used as a gauge for enforcing easy runs. The magic number is 70%: on easy days, keep your heart rate below 70% of your heart rate reserve, a figure which is calculated by subtracting your resting rate from your max rate, and then using your resting rate as a floor. For me, the calculation was something like this. I did a max heart rate workout (found a steep hill on a hot day and did repeats) and got my HR up to 192. Measured my resting rate over a couple mornings and called it 58. 192-58 * 70% = 94, which when added to 58 gives me an easy run ceiling of 152 BPM.

The first thing you learn when you start staying under this target rate during easy runs is that holy crap this is slow. I was accustomed to doing easy runs around 8-8:30/mile pace. With the HRM, on a hot July day, I found myself running at 10:00+. You also learn that hills are really serious business when it comes to heart rate. To stay under the 70% threshold on hills of any size, my shuffle devolved into a near-walk. It was torture. Physically, I had no idea what to do with my body when going that slow (your form totally changes). And mentally, I was humiliated getting passed by grandmas, kids, invalids.

But, I stuck with it, and after a few months things started to click. The weather started to cool. I found techniques for modifying my form up and down hills that would let me maintain some speed while keeping my heart rate down. And most importantly, I think that I really was building the kind of aerobic fitness that’d been promised in the book. Within four or five months, most of my easy runs were back down at 8:30 pace or faster – and they were all below the 70% HR threshold.

Some cool things happen when most of your runs are easy. For one, you can really go balls out on hard runs. Because there’s no latent fatigue from the previous few days (and because I know I’ll get legitimate rest over the ensuing days) I can pretty much run myself into the ground during workouts. Another benefit is that you can immediately start adding distance, because you never, ever feel tired during easy runs. I end every run thinking, gee, I feel like I haven’t even gone out yet. For someone who was used to feeling like shit after every run, this is a huge and welcome change that makes the whole endeavor much less unpleasant. Tracking your heart rate also gives you window into your general health. You might feel fine and plan to hit the streets at your normal pace, but if you are coming off of a cold (or have one coming on), your heart rate will be elevated, and you’ll be forced to slow down.

A couple weeks ago I ran the first road race that I’d done in a number of years. Looking back through my running logs, I see that the last time I ran a 5K at that pace, I’d been running twice as many miles per week, and I was five years younger. Granted, I’m still not running very fast in any objective sense, but this is still a pretty cool side effect of running a bunch of junk miles.

If you’re a runner and feeling like you’re in a rut – or if you’re someone who’s tried to run in the past, but could never get over that initial god-how-can-anyone-endure-this-torture phase – I highly recommend getting a heart rate monitor, and learning how to use it during training. It makes running more interesting and less painful. (Though I still don’t like it like my wife does.)

Dumb

Last year I wrote about my decision to remove email apps from my mobile devices. Today I took the next logical step and got rid of my smartphone altogether.

I was giddy when I got an iPhone in 2008. Having email and the web (and later, stuff like Twitter) on a mobile device was the coolest thing ever. But it’s become clear over the last year that the benefits of this connectivity are, for me personally, clearly outweighed by the drawbacks. The smartphone keeps me connected to the internet; I work on the internet; therefore the smartphone keeps me connected to work. And when I’m not at my computer, dwelling on work-related issues is both pointless (because I can’t fix them until I’m at a computer) and annoying (because duh). Even if there were a way for me to carve out a totally-non-work-related part of my online life, I’m not sure I want to have it in my pocket, where I’m always tempted to fiddle with it.

To make the transition a bit more fun, I got myself a legitimately nice dumbphone, the Nokia 515 (which I had to order from a shady-seeming importer, because it’s not supposed to be available in the US). I’m having a good time setting it up. It’s been a few years since I had to migrate my contacts manually, so I’ve built up lots of cruft. The only people I moved over to the new device are those I really like (and might want to call) and those I really don’t like (and want to screen). The camera on the Nokia is pretty good for a dumbphone, but totally lame compared to my Moto X. Using multi-tap to type is hilariously awful, but T9 is better than I remembered. It’s retro-fun.

Using this phone is going to introduce friction into my routine. Messages will be harder to type; appointments will be trickier to look up; addresses will be impossible to locate; and so on. But when I look around a subway car or a restaurant or a playground and see dozens of people gazing vacantly into the easy gleen of their smartphone screens, I remember that friction can be good sometimes.

Garmin Forerunner 310XT hacks

I’ve been running with a Garmin Forerunner 310XT for about eight months now. I like it pretty well (running with a HR monitor has totally changed my running for the better, but that’s a subject for another post), but there are a couple really annoying things about it, which I’ve been forced to hack workarounds for.

  • For me, the plastic that houses the transponder on the chest strap caused pretty severe chafing. I think this is something that Garmin is aware of; my wife has a previous version from the same series (the 305, I think), and the strap design does seem improved. But for me, the first month or two was pretty terrible. The chafing was awful, and running four days a week, I never had a chance to heal. I tried all different kinds of lube, tried different ways of positioning the monitor (around the center of my chest vs just under my armpits), played with different levels of tightness. What ultimately ended up working for me was this. I wear it around the narrowest part of my chest, with the strap fairly loose. When I’m running more than five or six miles, I use a bit of runner’s glide. And – this has made the biggest difference for me – I wrapped the big hunk of plastic in a couple layers of athletic tape. It still irritates me a bit, but there’s no more bleeding.

    2014-02-16 15.11.17

  • The watch has this cool feature where you put a little USB nub in your computer, and it’s supposed to auto-download your latest activity as soon as the watch comes into range. This has worked for me maybe five times, tops. Typically, the software doesn’t recognize the watch at all, and for the first few weeks I owned it, I struggled to find a workflow that’d let me store my workouts on my computer. The only way I could make it work consistently is by re-pairing the watch + computer every time I want to download. Here’s what I do when I get back from a run (I use a Mac for this):
    1. Close the Garmin ANT Agent program in the toolbar
    2. Delete the local Garmin data folder: rm -rf ~/Library/Application\ Support/Garmin
    3. Start the Garmin ANT Agent application
    4. From the Garmin toolbar menu, choose “Pair with New Devices”. Within a few minutes, it’ll start re-syncing

    Aside from the general fact that this it’s Extremely Stupid, the annoying thing about the process is that it takes progressively longer to complete the more workouts you have on your watch (because you’re deleting your local cache, it’s got to download all of them each time). So, every few weeks, I delete all activities from the watch. But before doing so – because I don’t trust Garmin’s “Garmin Connect” online service – I make sure to copy the .tcx files from my local directory to some safe location. That way, I have offline access to my running history if I want it. cp ~/Library/Application\ Support/Garmin/Devices/xxxxxxxxxxxx/History/* /some/other/location (where “xxxxxxxxxxxx” is your device ID).

Recommendations for per-project time tracking tools

I don’t bill by the hour very much anymore, but I still like to keep rough track of time spent on individual client projects, for my own purposes. I currently use a simple spreadsheet, with tabs for each project/client. Yesterday I asked on Twitter what tools people were using for this purpose:

Here are some responses I got. I can’t personally endorse anything on this list, but it might be a helpful starting point for others.

Sony service does not screw it up

While I was out of town over Christmas, the keyboard on my Sony Vaio Pro laptop stopped working. I was annoyed.

When I got back to New York, I called for warranty support. I was told to drop the laptop off at the Sony store, where two different technicians shook their heads in befuddlement at the fact that I’d removed Windows from the machine. They warned me that the service tech would probably have to do a factory reset, because it’s necessary to boot to Windows to complete the service checklist. I was very annoyed.

I got the laptop back today. To my delight, my data had not been touched. The Sony tech managed to work around the unsupported OS, booting from an unsupported bootloader that requires non-standard BIOS settings, with Dvorak as the default keyboard layout. To that tech, wherever he or she is: thanks, and well done. (I’ll overlook the crappy Intel stickers you reapplied.)

Affirmations for the free software developer

A friend recently came to me to express some frustration. He’s the leader of a relatively new free software project, and was having his first run-in with a user who was making extensive, arguably unreasonable support demands, in a tone that was increasingly hostile. If you’ve ever contributed to a public project, you have probably had similar experiences.

I responded to him with the following words of “wisdom”. Nothing terribly original here, but I have to remind myself of these points on a regular basis.

  • For every one user who engages with you in an unpleasant way, there are 10 users who provide feedback and request support in a friendly and reasonable manner, and 100 people who are using the software happily and asking for nothing.
  • People only bother to complain about something if they care about it.
  • Obviously, you want to be fair and kind to people who come to you for help. But your capacity to give a shit is like currency: it exists in finite quantities. It’s better to spend it on something that’ll provide positive good in the world, than to dump it into a bottomless pit.

Brooklyn is for runners

I lived in Brooklyn when I started running in my mid-twenties. I didn’t know it at the time, but I was spoiled.

I never really enjoyed running for its own sake. I did it because my then-girlfriend (now-wife) was a serious runner, and because I wanted to continue to eat and drink as I pleased without risking my girlish figure. I managed to tolerate running thanks only to my Brooklyn backdrop. Over the course of about five years, I ran some 5,000 miles on Brooklyn’s streets. It was my way of learning the grid. From Williamsburg, I got to know Greenpoint, Bushwick, Fort Greene, Bedford-Stuyvesant, Crown Heights; from Park Slope, it was Windsor Terrace and Kensington and Sunset Park and Bay Ridge; from Carroll Gardens, it was Red Hook and DUMBO and the waterfront. I have a decent mental map of maybe a third of Brooklyn’s seventy square miles, thanks to these here legs.

So I came to think of myself as an “urban runner”. Pounding the pavement was my way of getting to know my surroundings, and soaking up the city was my way of coping with running.

Then I moved to Queens, and everything changed. I’m not talking about Whitestone or Hollis or Rockaway or some other deep-Queens neighborhood. I lived in Ridgewood, about five blocks from the border with Brooklyn. But it was a totally different world. The car-to-pedestrian ratio was out of whack, which resulted in a totally different relationship between drivers and non-drivers. Instead of grumbling deference, I came to expect outright hostility from cars. I can’t count the number of times a driver sped up – or ran a stop sign – to beat me through an intersection. I even got hit once (albeit slowly), even after having made eye contact with the driver.

To make matters worse, Queens (or at least my portion of it) was boring. The semi-suburban neighborhoods bleed together in my mind: Glendale, Elmhurst, Woodside, Maspeth, Middle Village, Forest Park, Woodhaven. I know Queens is a (ethnically, linguistically, culinarily…) diverse place, but I could take or leave the bafflingly numbered streets/avenues/lanes/courts and single-family houses.

I moved to Manhattan a few months ago, where I hoped to recapture my love of urban running. It hasn’t gone well. Too many cars, too many people, too many stoplights, too much street construction. Dodging walkers on the sidewalk isn’t fun for me, and it isn’t fun for the people being dodged. Central Park is very nice, but I’m bored with it already.

In retrospect, Brooklyn is the perfect balance for the urban runner. It’s dense enough to be interesting. Neighboring neighborhoods contrast sharply with each other. Cars – at least in the northern and eastern parts of the borough – are few enough (and deferent enough) to make it safe to share the streets. I miss it.

If you are a runner living in Brooklyn, fight the urge to stick to the well-trodden paths. I too love Prospect Park, and the Belt Parkway Promenade, and Brooklyn Bridge Park. But you should be out on the streets, because there’s no better place to run.