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. =)