Posts from March 2017

RC week 9

This is week 9 of being at the Recurse Center.

Day 31

Arrived ~10:30, departed ~15:15, arrived ~17:30, departed ~1:30, total time at RC 8h45m.

There were only two people in my checkin group this morning, and one of them was me. We thought about joining another checkin group, but it was confusing so we did it with just us.

Didn't really do a whole lot for the rest of the day. I fixed up a couple minor problems on Also I finally(!) fully caught up on blogging and went out to lunch with a bunch of people, including Nelson, the new resident. He's awesome. We had some seriously interesting discussions about the recent CloudFlare incident, as well as the work he did while at Ksplice.

Left early to do laundry, then came back for Nelson's talk.

Spent a lot of time in the evening cleaning up the [ homepage][] - I removed a bunch of duplicated content, reordered the remaining text to put the important stuff first, and imported all the posts on my personal blog into

Day 32

Arrived ~11:30, departed ~21:40, total time at RC 10h10m.

Missed my checkin by a wide margin because a) after I realized I just couldn't make it by 10:30 I gave up and had a nice relaxed breakfast and b) I looked at and realized that I was the only one in my checkins group.

Went out to Taim for lunch relatively soon after that. Didn't do a whole lot for the rest of the day, honestly - although I did go for a walk to a park with some folks. Also, tested out the Signal videocalling beta with Matt, which worked pretty damn well, I gotta say.

Day 33

Arrived ~10:40, departed ~1:45, total time at RC 15h5m.

I kinda tried to make it in for checkins this morning, but not really because I still hadn't fixed the "I'm the only one in my checkin group" problem. Didn't really do much today, honestly.

Went out to lunch with Ant6n and Andrew and had a lot of interesting discussions with them, ranging all the way from Zig to x86 hardware - did you know that internally x86 is actually essentially a VM implementation?

Spent a lot of time keeping Eliana company in Hopper late in the evening.

Day 34

Arrived ~11:05, departed ~17:55, total time at RC 6h50m.

Went to Nelson's "my first kernel module" talk immediately upon arriving at RC, which was awesome. I had some interesting conversations with him afterward, too, where I confirmed a theory I had about some weird btrfs-related behavior I'd seen a long time ago (where I kill -9'd an obviously hung btrfs process, which refused to die anyway). We also spent some time trying to figure out why benchmarking loopback network performance gave some weird results, which was quite informative.

Didn't do a whole lot after lunch. Left halfway through presentations to go to a play with Ant6n which unfortunately (due to a water incident with the subway system) I didn't quite make it to.


Arrived ~15:10, departed ~23:10, total time at RC 8h0m. As always, Friday doesn't count as a day because RC is technically not in session.

Woke up at a decent time but didn't really bother to get up or do anything, so I arrived relatively late to RC. Spent some time reading TOTP in preparation for the RFC reading group meeting (which ended up not happening) and then went to the RC Game Jam kickoff. Spent most of the rest of the day discussing game design with my team before getting dinner and hanging out in Babbage for Bottle Share Friday, even though there weren't that many of us (particularly since James was doing stuff in Babbage) and we didn't have any bottles to share. Oh well - it was still fun.

Talked with Deniz and Alex and some other folks (I've forgotten who, to be honest) before heading home.

Executive summary

Most of the "interesting" stuff that happened this week had to do with the resident. Got a little done codewise, but not that much. I'd say this week was 50/50 in terms of productivity.

Total time at RC 48 hours 50 minutes; cumulative time 412 hours 0 minutes.

Driftless at 1,000 mph

Last week I published How I passed 2k GitHub contributions. This post is, in some ways, the antithesis of that, and it will be very emotional and messy. Here be dragons.

Throughout my time at RC I've noticed only one thing is consistently difficult for me: focusing on hard things. Intellectually I love the idea of challenging myself. And I find that when I start to work on things that are new and not easy, it feels good and I tend to keep working on those things, because they're interesting. But starting is something that I just don't do frequently enough, and so I find that I haven't progressed as a programmer nearly as much as I would like to have.

What is productivity?

Merriam-Webster defines it like this:

  1. the quality or state of being productive

  2. the rate per unit area or per unit volume at which biomass consumable as food by other organisms is made by producers

And "productive" is defined like so:

  1. having the quality or power of producing, especially in abundance

  2. effective in bringing about

  3. a) yielding results, benefits, or profits; b) yielding or devoted to the satisfaction of wants or the creation of utilities

  4. continuing to be used in the formation of new words or constructions

  5. raising mucus or sputum (as from the bronchi)

By definitions 1-3 I certainly seem to have been productive; I've written a lot of code, much of which is useful. But useful to whom, and for what purpose?

I sometimes feel as if I'm just generating more and more code without any guiding process, as though I'm wasting my time even though concretely I'm getting a lot of things done - driftless even though I'm churning out work at an extremely high rate. Is this imposter syndrome? Or are my worries legitimate?

Maybe a better way to frame this question is to split it in two - am I being productive for myself, and am I being productive for the community - the two things that are currently important to me personally.

I think I am failing at being productive for myself, in some really important ways. I'm also succeeding in some - for example, I used to wish I had an engine to run my blog, and now I have such an engine. But in others I am failing.

What is the purpose of RC? Why am I here? says this about people who come to RC:

The Recurse Center is for people who want to become better programmers. We are not startup school nor are we a bootcamp: Our focus is helping people become better programmers, not building prototypes, and we're not a training program for web developers.

Because there is no certification or grading, the only reason to come to the Recurse Center is to become a better programmer. As such, you will find kindred spirits and tremendous energy. We look for smart, friendly, self-directed, intellectually curious people who enjoy programming and want to get dramatically better.

More directly, the manual has this to say:

You should be here primarily because you want to become a better programmer and spend the majority of your time here programming and doing things directly related to programming.

Well, we could ask you to be respectful of speakers and keep conversations on-topic in the Recurse Center space during the day (i.e. if you want to take a break and chat about your weekend, go grab a coffee).

However, as Harold points out, that isn't necessarily an accurate picture of what RC is about. I think a lot of what it's really about is the people who are in the space with you. I've sure had a wonderful time with the people. Does that mean I'm "succeeding"?

Then there's the teaching.

Screenshot of a Zulip message where Anja says "thank you AJ for teaching us so many things. :)"

This is referring to the fact that I teach at Security Club every week, plus my volunteering to run a workshop or two for Beginner's Club and Web Dev 101.

Practically speaking, I get very, very little out of teaching at RC. Sometimes it helps solidify (or just plain remind me of) the concepts I teach, but this is the exception, not the norm. So in that sense by spending time teaching, I'm "failing" at being productive for myself. But it seems clear to me that people get a lot out of the time I spend, so I seem to be very productive for the community.

Equally importantly I love teaching. I qualified the previous paragraph with "practically speaking" because emotionally teaching is something that's very beneficial to me. Does that mean I'm "succeeding"? Does it mean I'm "failing" and "succeeding" at the same time?

I honestly don't know.

RC week 8

This is week 8 of being at the Recurse Center.

Day 27

Arrived ~10:35, departed ~0:30, total time at RC 13h55m.

Had a nice discussion about Stratic in my checkin group this morning. After that I went to the Capture The Flag introduction workshop, then spent essentially the entire rest of the day finishing up static to Stratic (which included, in a truly horrifying fashion, me rewriting and force-pushing the demo repository's history a good four times or so) so I'd have a post up for the iron bloggers meeting. Also spent some time fixing some bugs in generator-stratic and published the beta 2 release with those fixes. Closed out the evening by digging into a remark problem where <script> tags would be stripped from posts. Ended up just asking on Gitter.

Day 28

Arrived ~10:30, departed ~20:40, total time at RC 10h10m.

Continued to investigate the remark problem based on replies received overnight - turns out it was a bug in remark fixed in a release that had gone out the door literally the same day I asked. After that I spent the day upgrading generator-stratic (which, remember, was originally scaffolded years ago) to newer and newer releases of yeoman-generator until it used yeoman-generator@latest. Then I spent time adding some basic tests - they're kind of just smoketests for now (are the correct files generated, does gulp serve work) but I intend to expand them. Also moved over some issues to the new straticjs/RFCs repository and attended Casual Presentations.

Day 29

Arrived ~10:50, departed ~20:35, total time at RC 9h45m.

Didn't do a whole lot codewise today. However, I did teach Unix fundamentals for Beginner Club, which went pretty well - I just spent the entire time in the commandline, demonstrating different commands. We spent a little time talking about shell scripting, but not much. I forgot to cover conditionals, which was dumb since they're pretty weird in shell scripting. Spent some time in the afternoon starting a draft of How I passed 2k GitHub contributions

Watched Kiki's Delivery Service in the evening.

Day 30

Arrived ~10:35, departed ~00:05, total time at RC 13h30m.

Finished and published How I passed 2k GitHub contributions. Presented cryptography basics at Security Club, then spent a lot of time fixing miscellaneous items on steevie. In particular ejabberd was apparently configured to use a standalone certificate bundle (instead of symlinking to something in /etc/letsencrypt/live) - this was because ejabberd requires the private key and the full chain to be in the same file. TLS certificate renewal didn't properly update this bundle, so XMPP client connections weren't working. ZNC was broken in the same way, so I fixed both of those. I also spent some time setting up a system to publish everything custom in /usr/local on GitHub so that it's public and version-controlled. So that's nice.


Arrived ~15:50, departed ~1:00, total time at RC 9h10m. As always, Friday doesn't count as a day because RC is technically not in session.

Came in super late (though I woke up earlier). Almost immediately after that I attended an initial meeting about starting an RFC reading group (an idea I floated on Zulip a couple days ago). Spent most of the day poking at IETF things as well as responding to hubot-seen PR comments. I just got write access! \o/

Closed out the evening by attending Bottle Share Friday, where I had a long discussion with Alex about running my own email server (which spun off into a discussion of how completely terrible and busted email is), followed by a long discussion about whether Apple's release schedule for Safari and attitude towards new web features and third-party iOS rendering engines is justifiable.


Arrived ~11:15, departed ~23:30, total time at RC 12h15m. Saturday doesn't count as a day because RC is not in session.

Marathoned Lord of the Rings today. The showing was small and people drifted in and out but most of the time there were a couple people watching, which was fun. The original plan was to watch the director's cut versions, watching The Return of the King on Sunday, but we ended up watching the regular versions because you can't rent the director's cuts off Amazon, and I wasn't about to pay $30 for movies that I already own on DVD back home. We probably would've still watched on Sunday, except that I went out to get pizza for dinnr and found out that it was pouring rain (with thunder/lightning and everything). So I decided we'd watch The Return of the King and wait for the rain to let up, which worked beautifully.

Hussein came in just as I was about to leave and stated that he almost had a heart attack because he sprinted literally from his apartment to Duane Reade, which truthfully was absolutely hilarious. We had some fun wandering around Duane Reade trying to find soap (which I needed to buy) before we both headed home.

(As a side note, my favorite brand of mac 'n' cheese by far is Annie's, which my local supermarket does not carry. But apparently Duane Reade does!? Wat???)

Executive summary

This week was weirdly divided - some parts were hyper-productive and some parts were pretty terrible. I certainly got a lot of work done on Stratic, and I taught a lot. But I didn't really do a good job of working on stuff that pushed my programming abilities forward.

Total time at RC 68 hours 45 minutes; cumulative time 363 hours 10 minutes.