WEBVTT
00:00.880 --> 00:02.720
[Raymond Puzio]: Hello, I'm Raymond Puzio.
00:02.720 --> 00:04.799
I first learned about Emacs and Lisp
00:04.799 --> 00:05.920
at an enrichment program
00:05.920 --> 00:07.200
for high school students.
00:07.200 --> 00:09.120
When I studied physics at the university,
00:09.120 --> 00:10.400
I used Emacs and Tex
00:10.400 --> 00:12.320
to write mathematical documents.
00:12.320 --> 00:13.920
Later on, I became active
00:13.920 --> 00:16.480
in Emacs and Lisp user groups where,
00:16.480 --> 00:18.160
among other things, I learned about
00:18.160 --> 00:20.400
Org mode for reproducible research.
00:20.400 --> 00:21.680
Nowadays, I am working on
00:21.680 --> 00:24.080
synthesizing Emacs and other programs
00:24.080 --> 00:25.599
into an end-to-end platform
00:25.599 --> 00:30.560
for scientific research and collaboration.
00:30.560 --> 00:31.519
[Joe Corneli]: I'm Joe Corneli.
00:31.519 --> 00:33.920
I also started using Emacs in high school
00:33.920 --> 00:35.440
in a course on C programming,
00:35.440 --> 00:36.800
and now I'm technically
00:36.800 --> 00:38.239
a computer scientist.
00:38.239 --> 00:39.280
My research background
00:39.280 --> 00:43.120
is in mathematics and online communities.
00:43.120 --> 00:45.039
[Noorah Alhasan]: Hi, I'm Noorah Alhasan.
00:45.039 --> 00:46.719
I'm a member of the ERG group
00:46.719 --> 00:49.600
and a PhD student at UT Austin
00:49.600 --> 00:51.760
studying climate policy.
00:51.760 --> 00:54.239
So for this talk, the four of us
00:54.239 --> 00:56.640
met at EmacsConf 2020 last year
00:56.640 --> 00:57.760
with a common interest
00:57.760 --> 00:59.520
in Emacs and research.
00:59.520 --> 01:01.760
we've met almost every week since then
01:01.760 --> 01:02.640
because we wanted to
01:02.640 --> 01:04.479
keep the conversation going.
01:04.479 --> 01:05.519
In this short talk,
01:05.519 --> 01:06.560
we share information
01:06.560 --> 01:08.240
about the methods we use.
01:08.240 --> 01:09.680
Here's the outline of our talk.
01:09.680 --> 01:10.560
First, we'll tell you
01:10.560 --> 01:12.320
about the technologies we use
01:12.320 --> 01:13.840
and show a short demo video
01:13.840 --> 01:15.360
from one of the meetings.
01:15.360 --> 01:16.320
We'll then focus on
01:16.320 --> 01:18.880
the time and content structuring methods
01:18.880 --> 01:21.040
we use in our live sessions.
01:21.040 --> 01:22.240
Finally, we'll talk about
01:22.240 --> 01:24.320
what came out of all this work.
01:24.320 --> 01:28.159
For example, we wrote a paper for the
01:28.159 --> 01:30.400
Pattern Languages of Programs conference,
01:30.400 --> 01:31.759
and we designed a workshop
01:31.759 --> 01:33.920
using the knowledge we created together.
01:33.920 --> 01:35.600
Very practically,
01:35.600 --> 01:37.119
this has improved the quality
01:37.119 --> 01:38.640
of our own collaboration
01:38.640 --> 01:39.680
and we have some lessons
01:39.680 --> 01:41.360
about how you can create
01:41.360 --> 00:01:45.999
a research community similar to ours.
01:46.000 --> 01:48.399
[Joe]: You'll have noticed that we all have
01:48.399 --> 01:50.159
different research backgrounds
01:50.159 --> 01:52.640
and we do think that transdisciplinarity
01:52.640 --> 01:54.960
is important for solving big problems.
01:54.960 --> 01:56.719
However, if you have people
01:56.719 --> 01:58.000
from different research backgrounds
01:58.000 --> 01:58.560
working together,
01:58.560 --> 01:59.680
they need some scaffolding,
01:59.680 --> 02:01.360
both in terms of tools and methods,
02:01.360 --> 02:02.880
to have good conversations.
02:02.880 --> 02:04.320
And of course, as Emacs users,
02:04.320 --> 02:05.439
we wanted to have Emacs
02:05.439 --> 02:07.360
at the center of that.
02:07.360 --> 02:08.640
Being in a meeting,
02:08.640 --> 02:10.720
taking real-time notes
02:10.720 --> 02:11.920
collaboratively with Emacs
02:11.920 --> 02:13.440
realizes a dream that some of us
02:13.440 --> 02:14.480
have been entertaining
02:14.480 --> 02:15.520
(and experimenting with)
02:15.520 --> 02:18.800
for a while. The package crdt.el
02:18.800 --> 02:21.440
by Qiantan Hong makes this easy.
02:21.440 --> 02:22.959
We take notes in our meetings
02:22.959 --> 02:24.239
using Org Mode.
02:24.239 --> 02:25.520
Since we've seen this before
02:25.520 --> 02:27.040
in talks on reproducible research,
02:27.040 --> 02:29.920
and since Leo is the maintainer of org-roam,
02:29.920 --> 02:31.680
it was a natural choice for us.
02:31.680 --> 02:32.400
It allows us to
02:32.400 --> 02:34.080
put our notes online using git
02:34.080 --> 02:36.080
and the static state generator Firn.
02:36.080 --> 02:37.599
And lastly, of course, we need
02:37.599 --> 02:38.720
a real-time meeting tool.
02:38.720 --> 02:39.519
For that purpose,
02:39.519 --> 02:41.920
we use BBB in our weekly sessions
02:41.920 --> 02:43.519
(in fact, we use the same server
02:43.519 --> 02:44.879
that's used by EmacsConf,
02:44.879 --> 02:46.720
thanks again to Leo).
02:46.720 --> 02:48.000
All of these tools are
02:48.000 --> 02:49.380
free/libre/open source.
02:49.380 --> 02:50.720
However, BBB does have
02:50.720 --> 00:02:53.679
some intensive hardware requirements.
02:53.680 --> 02:54.800
Next up, here's a
02:54.800 --> 02:56.239
short pre-recorded snippet
02:56.239 --> 02:57.680
from one of our recent meetings
02:57.680 --> 03:01.840
so you can get a sense of how they go.
03:01.840 --> 03:02.640
[Demo - Leo Vivier]: Are we okay
03:02.640 --> 03:04.159
pushing the demo to the end?
03:04.159 --> 03:05.440
That kind of presupposes
03:05.440 --> 03:07.120
a different structure
03:07.120 --> 03:08.080
that you would usually have
03:08.080 --> 03:08.800
in a presentation.
03:08.800 --> 03:09.760
Generally you have...
03:09.760 --> 03:12.800
You introduce the demo, you do the demo,
03:12.800 --> 03:14.720
and then you do the conclusions,
03:14.720 --> 03:16.560
or what was good about the demo.
03:16.560 --> 03:18.159
Does that make sense to everyone?
03:18.159 --> 03:18.560
[Ray]: Let's see.
03:18.560 --> 03:19.599
When you usually do that,
03:19.599 --> 03:21.760
that's because whatever you're demonstrating
03:21.760 --> 03:23.840
is the main point of your talk,
03:23.840 --> 03:25.840
so if this was a talk about action reviews,
03:25.840 --> 03:29.760
that would make sense, but isn't it not ERG?
03:29.760 --> 03:32.319
[Leo]: But it's because we are telling...
03:32.319 --> 03:34.400
For me, I think it's a compound element.
03:34.400 --> 03:36.640
Yes, we are demonstrating the power,
03:36.640 --> 03:37.840
but we are also demonstrating
03:37.840 --> 03:39.680
how we're working together by...
03:39.680 --> 03:42.000
Yes, we might have introduced CRDT before
03:42.000 --> 03:43.840
in the presentation itself,
03:43.840 --> 03:46.959
but if we need to be doing the power,
03:46.959 --> 03:49.360
and also showing tools like CRDT,
03:49.360 --> 03:50.879
obviously, we're not... probably not going
03:50.879 --> 03:52.959
to be talking about... oh by the way,
03:52.959 --> 03:54.239
here we are using CRDT
03:54.239 --> 03:54.879
and stuff like this.
03:54.879 --> 03:57.280
It feels like cramming a lot of stuff
03:57.280 --> 03:58.720
into this demo at the end.
03:58.720 --> 04:00.159
[Joe]: So I think demo to me
04:00.159 --> 04:02.159
is less about demoing one of the methods,
04:02.159 --> 04:02.879
because then people will get
04:02.879 --> 04:05.439
a bit hung up on that.
04:05.439 --> 04:07.360
I think the demo...
04:07.360 --> 04:08.080
You know, to be honest,
04:08.080 --> 04:09.200
here's another thing.
04:09.200 --> 04:09.920
What we could do--
04:09.920 --> 04:10.959
this would be very clever--
04:10.959 --> 04:12.400
we could make this the demo,
04:12.400 --> 04:13.920
what we're doing right now,
04:13.920 --> 04:15.519
writing this talk is the demo,
04:15.519 --> 04:18.560
and just go back into the video
04:18.560 --> 04:20.160
and just get out a two-minute section,
04:20.160 --> 04:22.479
so we say, look we tried to write this talk,
04:22.479 --> 04:23.680
we went around, had a discussion,
04:23.680 --> 04:25.040
we had these things and then we just take...
04:25.040 --> 04:26.240
We're going to pick two minutes
04:26.240 --> 04:26.880
out of this video
04:26.880 --> 04:27.440
and show you that
04:27.440 --> 04:29.280
as a demo of how we actually work
04:29.280 --> 04:30.320
and then we'll go back to the talk.
04:30.320 --> 04:31.199
I mean, it'd be very funny,
04:31.199 --> 04:32.880
and then we've already done the demo.
04:32.880 --> 04:34.560
It's just, like... uh yeah,
04:34.560 --> 04:35.280
then we're good to go.
04:35.280 --> 04:37.120
And it's got neural lines on the floor.
04:37.120 --> 04:39.199
It's like a perfect writer's room.
04:39.199 --> 04:41.199
It's a total amazing writer's room scenario,
04:41.199 --> 04:43.120
specifically because she's lying on her back
04:43.120 --> 04:45.360
on the floor. Anyway. I mean,
04:45.360 --> 04:47.680
I think this would be fine.
04:47.680 --> 04:49.520
[Leo]: I think I particularly like the idea
04:49.520 --> 04:52.080
of taking the snippet,
04:52.080 --> 04:54.000
the two minutes before the realization
04:54.000 --> 04:56.400
that we could be using this as the demo,
04:56.400 --> 05:00.240
and then seeing the... well my face light up
05:00.240 --> 05:01.680
because it feels like a good idea,
05:01.680 --> 05:03.360
and Joe gets excited about this.
05:03.360 --> 05:04.720
I think this could be a good demo,
05:04.720 --> 05:07.120
and I think this would be
05:07.120 --> 05:08.479
a very genuine demonstration
05:08.479 --> 05:09.360
of how we work here
05:09.360 --> 05:10.400
and how we get excited about
05:10.400 --> 00:05:13.599
some of our ideas sometimes.
05:13.600 --> 05:14.639
[Noorah]: In the demo,
05:14.639 --> 05:16.240
you saw a very improvised
05:16.240 --> 05:18.000
free-flowing conversation.
05:18.000 --> 05:19.840
In order to have this kind of conversation
05:19.840 --> 05:20.960
and still get things done,
05:20.960 --> 05:23.520
we need a pretty rigorous structure in place
05:23.520 --> 05:26.000
at the bigger scale of the meetings.
05:26.000 --> 05:27.120
This involves both
05:27.120 --> 05:31.280
a timetable for the meetings
05:31.280 --> 00:05:35.119
and some review and planning processes.
05:35.120 --> 05:36.320
[Joe]: Just to say a little bit more
05:36.320 --> 05:40.160
about the timetable, if you could go back,
05:40.160 --> 05:42.320
the meetings are generally following
05:42.320 --> 05:45.199
a structure as we have up on the screen
05:45.199 --> 05:46.479
of informal check-ins
05:46.479 --> 05:48.400
followed by any announcements,
05:48.400 --> 05:50.960
and then two topics, at most two topics,
05:50.960 --> 05:52.560
with a break in the middle.
05:52.560 --> 05:54.800
The whole thing takes about two hours,
05:54.800 --> 05:56.400
and we meet weekly.
05:56.400 --> 05:58.160
The consistency of these meetings
05:58.160 --> 05:58.800
is really important
05:58.800 --> 00:06:00.719
for how the group works.
06:00.720 --> 06:02.560
[Ray]: At at the end of every meeting,
06:02.560 --> 06:03.600
we ask and answer
06:03.600 --> 06:04.800
a series of questions
06:04.800 --> 06:07.120
adapted from the ‘After Action Review’
06:07.120 --> 06:08.880
developed by the United States Army
06:08.880 --> 06:10.800
in their training programs,
06:10.800 --> 06:13.840
and also used in some business contexts.
06:13.840 --> 06:15.759
The adaptation we use here
06:15.759 --> 06:17.440
came out of the Peeragogy project,
06:17.440 --> 06:19.600
which some of us have been involved with
06:19.600 --> 06:22.160
since 2012, and it's designed to be
06:22.160 --> 06:24.560
less hierarchical than the army's review.
06:24.560 --> 06:26.960
By writing down and sharing these reviews,
06:26.960 --> 06:28.240
we create a resource
06:28.240 --> 06:29.600
for further peer learning
06:29.600 --> 00:06:32.239
later down the line.
06:32.240 --> 06:33.280
[Joe]: So, specifically,
06:33.280 --> 06:34.560
every six weeks or so,
06:34.560 --> 06:35.840
we look at the transcripts
06:35.840 --> 06:37.360
from the previous action reviews
06:37.360 --> 06:39.120
using a four-layered framework
06:39.120 --> 06:41.199
that comes from future studies,
06:41.199 --> 06:42.560
and we use this to better understand
06:42.560 --> 06:43.759
the underlying themes
06:43.759 --> 06:44.880
that surface in the reviews
06:44.880 --> 06:46.479
and to develop the deeper motivations
06:46.479 --> 06:48.160
for ongoing work together.
06:48.160 --> 06:49.680
This helps us get a big-picture sense
06:49.680 --> 06:50.720
of where we're going,
06:50.720 --> 06:51.840
and we can keep that up to date
06:51.840 --> 06:52.720
at a slower pace
06:52.720 --> 06:54.479
than we do in the weekly meetings.
06:54.479 --> 06:55.759
This also helps us tie our work
06:55.759 --> 06:56.880
into a broader context
06:56.880 --> 06:57.759
and gives us some hope
06:57.759 --> 06:59.919
that over time we can contribute to
06:59.919 --> 00:07:02.318
solving big problems.
07:02.319 --> 07:02.880
[Ray]: Going back
07:02.880 --> 07:04.880
to solving larger problems.
07:04.880 --> 07:06.560
When we carry out the analysis,
07:06.560 --> 07:08.400
we don't just think about what happened
07:08.400 --> 07:09.440
at previous meetings,
07:09.440 --> 07:11.520
but we also take a longer view,
07:11.520 --> 07:12.960
thinking about things such as
07:12.960 --> 07:15.680
structuring a community of collaborators,
07:15.680 --> 07:16.960
or building platforms
07:16.960 --> 07:18.720
for scientific research.
07:18.720 --> 07:20.080
We want to think about how
07:20.080 --> 07:21.120
what we have been doing
07:21.120 --> 07:23.599
fits into broader historical patterns
07:23.599 --> 07:24.720
and trends.
07:24.720 --> 07:27.120
In the past, the pattern is a
07:27.120 --> 07:28.240
historical pattern;
07:28.240 --> 07:30.000
in the present, we contextualize
07:30.000 --> 07:32.400
what we learned about designed futures;
07:32.400 --> 07:34.639
towards the future, we use these patterns
07:34.639 --> 07:37.440
to augment our big-picture analysis
07:37.440 --> 07:38.800
with the next steps.
07:38.800 --> 00:07:42.879
This helps keep us on track.
07:42.880 --> 07:44.720
[Noorah]: Okay. So we have been working on
07:44.720 --> 07:46.160
several projects: a paper
07:46.160 --> 07:47.280
for the pattern conference
07:47.280 --> 07:48.240
mentioned earlier,
07:48.240 --> 07:50.080
a workshop, and a user study,
07:50.080 --> 07:51.280
and we'll say a little bit more
07:51.280 --> 00:07:53.598
about these.
07:53.599 --> 07:56.319
We co-authored a paper
07:56.319 --> 07:57.919
that touches on all of the topics
07:57.919 --> 07:58.960
we mentioned earlier
07:58.960 --> 08:01.120
and presented it at the leading conference
08:01.120 --> 08:02.080
on Design Patterns
08:02.080 --> 08:04.000
for programs and programming.
08:04.000 --> 08:09.520
One of the case studies in the paper
08:09.520 --> 08:12.960
sums up the way we work in ERG.
08:12.960 --> 08:16.000
The paper puts ERG in context
08:16.000 --> 08:17.520
with other peer learning communities,
08:17.520 --> 08:18.960
and we aim to describe
08:18.960 --> 08:20.160
our way of working
08:20.160 --> 08:22.720
in a way that others would find accessible
08:22.720 --> 00:08:24.559
and potentially useful.
08:24.560 --> 08:25.680
We are also developing
08:25.680 --> 08:27.039
an interactive workshop
08:27.039 --> 08:28.800
based on the ideas in the paper,
08:28.800 --> 08:31.039
which we piloted at the PLoP conference.
08:31.039 --> 08:32.479
Our intent with the workshop
08:32.479 --> 08:34.800
was to build a method
08:34.800 --> 08:36.240
for rapid problem solving,
08:36.240 --> 08:37.839
which could, at least in principle,
08:37.839 --> 08:40.159
expand beyond the workshop setting
08:40.159 --> 08:41.839
to distributed networks.
08:41.839 --> 08:44.080
The workshop involves made-up roles,
08:44.080 --> 08:45.440
like a kaiju communicator
08:45.440 --> 08:46.800
who helps understand problems
08:46.800 --> 08:47.839
as they arise.
08:47.839 --> 08:49.760
We also realize that it has given us
08:49.760 --> 08:51.279
a lot of wealth for thinking about
08:51.279 --> 00:08:57.518
the roles we take on in our weekly meetings.
08:57.519 --> 08:59.920
[Ray]: Free software may be lacking
08:59.920 --> 09:01.200
on ‘user’ aspects.
09:01.200 --> 09:02.720
People too often program
09:02.720 --> 09:04.320
to scratch their own itches,
09:04.320 --> 09:06.720
and assume others will do the same.
09:06.720 --> 09:09.360
To deal with this, we did several things.
09:09.360 --> 09:11.040
We looked at user experience
09:11.040 --> 09:12.160
and development together
09:12.160 --> 09:13.760
to see how the process went
09:13.760 --> 09:15.440
and where the gaps might be.
09:15.440 --> 09:17.600
We compared Emacs with other platforms,
09:17.600 --> 09:19.279
not just a technical level,
09:19.279 --> 09:21.440
but also at the user experience level.
09:21.440 --> 09:22.640
We had guest sessions,
09:22.640 --> 09:25.440
where we've started to gather user stories.
09:25.440 --> 09:26.880
Building on these conversations,
09:26.880 --> 09:28.480
we would like to do more research
09:28.480 --> 09:29.839
in all these topics,
09:29.839 --> 09:30.959
and eventually be able to
09:30.959 --> 09:32.160
say something like:
09:32.160 --> 09:34.160
‘If you are someone who does X,
09:34.160 --> 09:35.279
these are the packages
09:35.279 --> 00:09:38.479
that would work for you.’
09:38.480 --> 09:40.640
[Joe]: Putting these ideas into practice,
09:40.640 --> 09:42.880
our PLoP paper and the plans it contains
09:42.880 --> 09:43.680
become a /template/
09:43.680 --> 09:44.720
for some of the other things
09:44.720 --> 09:45.600
we want to work on
09:45.600 --> 09:46.880
as we go forward.
09:46.880 --> 09:49.120
If we imagine things in 2-3 years,
09:49.120 --> 09:49.920
what would it actually take
09:49.920 --> 09:52.240
to realize the vision from that paper?
09:52.240 --> 09:53.200
Thinking about the future:
09:53.200 --> 09:54.480
this is one of the main reasons why
09:54.480 --> 09:55.839
we want to share these ideas
09:55.839 --> 09:56.800
and invite other people
09:56.800 --> 09:58.160
into this way of working.
09:58.160 --> 09:59.600
There's no way we can actually achieve
09:59.600 --> 10:00.560
everything in our vision
10:00.560 --> 10:02.160
if we work all by ourselves.
10:02.160 --> 10:03.200
What we've been focusing on
10:03.200 --> 10:05.120
in Season Zero of the Emacs Research Group
10:05.120 --> 10:06.640
is methods that people can use
10:06.640 --> 00:10:08.559
to organize their own research groups.
10:08.560 --> 10:10.000
We decided to share this talk
10:10.000 --> 10:12.079
so that folks can learn from our community.
10:12.079 --> 10:13.040
Our goal has been to share
10:13.040 --> 10:14.000
how we've been doing things,
10:14.000 --> 10:14.959
and we hope this information
10:14.959 --> 10:16.079
is useful for you
10:16.079 --> 10:18.800
in your own communities and collaborations.
10:18.800 --> 10:19.262
Thank you.
10:19.262 --> 10:20.279
[captions by speakers and sachac]