Thinking about Emacs community maintenance
| emacs
Building on Bastien Guerry's talk on maintainers at the recent EmacsConf, I thought I'd reflect a little bit on what I do to help out with the Emacs community because, as Bastien pointed out in his Q&A, that's also kind of maintenance. If I think about what I like to do and why, and what I don't like to do and why not, I'm more likely to keep enjoying things and not burn out. If I think about what I do, I might be able to find ways to do them more effectively or other things that complement them efficiently. And hey, maybe those notes will prompt other people to think about what they do, what they like and dislike, and how to grow.
I like helping with Emacs because it tickles my brain. I like playing around with Emacs and getting it to do interesting things, and I get a lot of reward for a little effort. I do this because it's intrinsically fun. Hacking on cool things with Emacs is interesting because I can come up with different things that a text editor really shouldn't be able to do, and yet it does. I also like coming across blog posts by other people who have written about their ideas, or maybe they're building on something that I've shared, or maybe they've come up with ideas of their own. It's great when other people share, as I get to learn from them too. And of course, you know, of course, comments and emails and all that stuff are also very nice.
There are a few things that aren't a particularly good fit for me or my life at the moment, so I try to do as few of them as possible.
- Time-sensitive commitments: meetings, coordinating with other people, hosting video chats, scheduled livestreaming… It would be nice to help out, but I also need to hang out with the kiddo. I don't like the feeling of being pulled two different ways, so that's something I've been minimizing.
- Since I don't have much computer time, I'm still a little too impatient to listen to or watch videos, and I like my quiet time too much to listen to them when I'm washing the dishes or tidying up. I don't have a lot of discretionary time, so I'd prefer to speed-read through captions.
- Talking is a little tough. After a day with a little kid, sometimes I don't particularly want to talk to anyone. I'm experimenting with recording myself thinking out loud so that I can get ideas down quickly, but I'm not quite at the point of doing livestreams yet.
- Keeping things in my head is hard, too, like if I'm working on a big task that's hard to break down into small chunks, or something that requires a lot of these small chunks built up over a period of of days. My discretionary time is really one- or two-hour chunks (or less) and pretty fragmented fragmented–one day here, another day there–because I've got other things that I need to do in the meantime. So I tend to focus on short things instead.
- I'm also not really keen on things that build up more technical debt. There's a whole list of things that I will get to do some day when I can actually sit down and focus on things. In the meantime, I just want to get through this part. =)
- I'm kinda iffy on e-mail. I tend to respond slowly, and I usually redirect people to other places like #emacs or Reddit if they're asking for help. Don't have much time at night, and I don't want to spend it going through my inbox.
- Emacs geeking becomes less fun if things aren't smooth at home: grumpy kiddo, clutter building up, too many oops moments.
Anyway, so the core of what I do:
- Emacs News: I put that together every week. I browse Reddit posts as a mental break from hanging out with the kiddo. I pick up other sources, too. People email me interesting things to include. I've got a few shortcuts for filing things. Putting it all together takes about 30-60 minutes, especially if I get carried away incorporating cool stuff into my config. I do it because it's a lot of fun to see all the cool things that people are working on, and it takes advantage of speed-reading. Plus I can do most of the information-gathering in the scattered moments of my day, even if I don't have a chunk of focused time to come up with and write about an interesting Emacs hack. And it seems to be a great way to link the community up, because there's just so much stuff that's going on.
- Code: I share my config and I add to it once in a while. Lately I've been breaking things out into smaller modules that perhaps someday could turn into packages. For the most part, I stick things into my config. Some of those functions turn into blog posts as well.
- Blog posts: They're a great way to remember, share, and get ideas and comments from other people. It's particularly fun when other people build on those ideas and then I get to use their even awesomer version.
- EmacsConf: This feels like it takes a surprising amount of time. I like working behind the scenes. I like doing the schedule because it tickles my brain when I can put the talks in some kind of flow. I like doing captions because I can work with text. I do a lot of the publishing on the wiki, and I've written a lot of automation for it. It's a good part of my evil plan, because it gets stuff out of people's heads and configurations and into a form that other people can look at and maybe talk to them about it. It's handy for connecting people.
- Calendar: This is basically an iCal aggregator that gets updates from various meetup groups and includes some manually-created entries. It goes into a bunch of places, like Emacs News, #emacs, EmacsWiki:Usergroups, and Twitter. I think that's a nice little way to help people find virtual events, and then people don't feel so isolated. I find that a lot of people are the only Emacs users they know in real life, so it's fantastic that there are a lot of virtual meetups these days. Then they can find other people who can share ideas. I think that one of the best ways to learn Emacs is by looking over someone's shoulder, because then you can you can see things that the other person might forget to point out to you, and you can ask questions about those. Meetups are great for that sort of thing, and that's why I do the calendar as well.
I don't have as much time for things like sketches or videos at the moment, but I like to do them once in a while. Sketches make it easy to map things out, untangle my thoughts, or plan ideas. Some of my beginner maps are still floating around. Videos are handy for showing interesting things. Sometimes people ask questions about things that aren't actually the focus of the video, which is great. Hanging out in #emacs is nice because I learn from other people's questions and answers.
It would be fantastic if someone could do emacs-devel summaries which I could just link to in Emacs News. The traffic is a bit too heavy on that list for me to get a sense of how to summarize it, and I have a hard time keeping track of things. I'd also love it if someone else did video encoding and other detail-oriented work, so if someone wants to take that on for EmacsConf, feel free. Someday it would be nice to have enough free time to go to virtual meetups or do Emacs Chats again, and it would be nice to see more people organizing those as well. And more blog posts, too! I'd also love to have more playtime to experiment with interesting packages and features, too. Anyway, someday!
In the meantime, I've been experimenting with tweaking my workflow. Lately I've been actually plugging into an external monitor instead of trying to code on my laptop. I've also got to work on the sleep/discretionary time trade-off. If I stay up too much, the next day gets a bit rough, and rough is hard with a kiddo. It'll be interesting to smoothen my workflow for posts, especially if I can get the hang of including images and screencasts, because then I can post more things quickly, which means I can squeeze them into the time that I have.
So those are basically the things I do for Emacs community maintenance. I'm kinda in a holding pattern while I'm still dealing with all the things that come with life with a small child, but kids grow faster than one might expect. I'll be able to get back to longer posts someday, but right now, this is good. Anyway, that's what I do because it's fun.
Hmm… Now that I think about it, the ideal things for me to work on:
- are self-directed and low-risk, so that when I'm not working on them, I can fully focus on playing with A- instead of getting pulled back and forth by coordination or dealing with mistakes
- can be broken down into small tasks (maybe 30min to an hour) and written about, or can fit into 5 minutes here and 5 minutes there, or can build on things I can do during non-screentime
- aren't error-prone, since I'll be doing them late at night and possibly a bit sleepily (I tried early morning, but A- wakes up a bit unpredictably)
- are text-based (easier to edit, update, share, and search), so I don't need to fiddle with video/audio for now
- can result in compounding benefits, like automating a process or connecting people
So I might swap some of the things that don't fit that profile for things that do. I think that mostly means working on smaller chunks and writing more (possibly using autogenerated transcripts to split writing into recording and editing), and handing over some of the tasks I don't like so much so that other people can pick those tasks up if they want.
It might also be worth channeling people's goodwill into better things, too. For example, if people happen to want to thank me for Emacs News or other things, perhaps I can convince people to write a blog post and/or Reddit post sharing something Emacs-related (interesting thing you learned recently? a package that more people should know about? your story of how you got into it and what you've learned along the way?), since that can go out into the wider world and expand the conversation.
There's plenty of room to make things even more fun and more effective, so let's see. =)