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]