WEBVTT
00:00:00.000 --> 00:00:03.760
(Amin: Alrighty, Leo Vivier, take it away.)
00:00:03.760 --> 00:00:05.839
Okay, well, thank you. I'm in. So you've
00:00:05.839 --> 00:00:06.879
just had a
00:00:06.879 --> 00:00:08.880
little roundup of the news, and we're
00:00:08.880 --> 00:00:10.320
going to get started now with some
00:00:10.320 --> 00:00:11.120
presentations.
00:00:11.120 --> 00:00:13.840
We're starting with user
00:00:13.840 --> 00:00:15.920
developer stories.
00:00:15.920 --> 00:00:18.000
I was extremely interested in this
00:00:18.000 --> 00:00:19.199
section because I
00:00:19.199 --> 00:00:21.600
wanted to get a chance, basically, to tell
00:00:21.600 --> 00:00:24.160
you a little more about who I am and
00:00:24.160 --> 00:00:27.039
how I got from basically being a user of
00:00:27.039 --> 00:00:28.160
Emacs
00:00:28.160 --> 00:00:30.640
to being nowadays a package
00:00:30.640 --> 00:00:31.279
maintainer,
00:00:31.279 --> 00:00:33.280
and maybe more in the future. I don't
00:00:33.280 --> 00:00:34.559
know. So,
00:00:34.559 --> 00:00:36.160
just for the organizers, I'm planning to
00:00:36.160 --> 00:00:37.760
speak for 15 minutes, and I'll have five
00:00:37.760 --> 00:00:39.680
more minutes of questions at the end.
00:00:39.680 --> 00:00:41.360
As I told you before, if you want to have
00:00:41.360 --> 00:00:43.440
questions, you know you can use the pad,
00:00:43.440 --> 00:00:44.879
and I'll be reading the questions from
00:00:44.879 --> 00:00:47.360
there. Okay. So
00:00:47.360 --> 00:00:49.600
hi there, as Amin introduced me before,
00:00:49.600 --> 00:00:51.280
my name is Leo Vivier.
00:00:51.280 --> 00:00:54.800
I'm a freelance software engineer
00:00:54.800 --> 00:00:58.079
in France, and I have been using Emacs
00:00:58.079 --> 00:00:59.359
now for
00:00:59.359 --> 00:01:01.280
i believe close to eight years. I can't
00:01:01.280 --> 00:01:03.039
believe it's been so long.
00:01:03.039 --> 00:01:07.680
But yes, it's been a journey because,
00:01:07.680 --> 00:01:12.000
in a way, nothing
00:01:12.000 --> 00:01:15.119
made me go for Emacs. You know I'm an--
00:01:15.119 --> 00:01:17.280
sorry, I was about to say Emacs major, but
00:01:17.280 --> 00:01:19.200
no, I'm an English major. I went to
00:01:19.200 --> 00:01:21.280
university to study English literature
00:01:21.280 --> 00:01:24.320
and linguistics, and
00:01:24.320 --> 00:01:26.159
I just got started in Emacs
00:01:26.159 --> 00:01:28.240
because I was looking for ways to take
00:01:28.240 --> 00:01:31.340
better notes. I was looking for ways to
00:01:31.340 --> 00:01:32.640
[Applause]
00:01:32.640 --> 00:01:34.640
structure the way I was learning,
00:01:34.640 --> 00:01:36.720
structure the way I was
00:01:36.720 --> 00:01:40.079
taking notes. I stumbled one day
00:01:40.079 --> 00:01:42.320
upon this weird piece of software which
00:01:42.320 --> 00:01:43.759
was called Emacs,
00:01:43.759 --> 00:01:46.479
and I've been trapped forever since,
00:01:46.479 --> 00:01:47.920
basically, because
00:01:47.920 --> 00:01:49.280
eight years ago, when I discovered
00:01:49.280 --> 00:01:51.119
Emacs I just couldn't let go. There was
00:01:51.119 --> 00:01:52.720
just something very
00:01:52.720 --> 00:01:55.439
interesting about the way you configured
00:01:55.439 --> 00:01:56.320
your setup,
00:01:56.320 --> 00:01:58.799
and I just wanted to dive deeper and
00:01:58.799 --> 00:01:59.759
deeper.
00:01:59.759 --> 00:02:04.320
So the title is of this talk exactly is
00:02:04.320 --> 00:02:06.640
how I went from user to package
00:02:06.640 --> 00:02:08.000
maintainer, and
00:02:08.000 --> 00:02:09.840
the package now that I'm maintaining is
00:02:09.840 --> 00:02:11.599
called org-roam. I'm not the only one
00:02:11.599 --> 00:02:12.080
doing this.
00:02:12.080 --> 00:02:15.440
I'm helped with many lovely people
00:02:15.440 --> 00:02:18.720
working on org-roam.
00:02:18.720 --> 00:02:21.360
I got started as a maintainer
00:02:21.360 --> 00:02:23.360
only this year, so that means that for
00:02:23.360 --> 00:02:24.720
the eight years I've been
00:02:24.720 --> 00:02:27.360
an Emacs user, seven of those years were
00:02:27.360 --> 00:02:29.200
spent merely being a user
00:02:29.200 --> 00:02:31.040
trying to be a sponge for knowledge,
00:02:31.040 --> 00:02:33.920
trying to learn as much as I could.
00:02:33.920 --> 00:02:36.800
I believe it would be
00:02:36.800 --> 00:02:39.040
interesting for me to share my story
00:02:39.040 --> 00:02:40.959
because I believe that I'm far from
00:02:40.959 --> 00:02:42.160
being the only user
00:02:42.160 --> 00:02:43.599
who can make the jump to being a
00:02:43.599 --> 00:02:45.519
maintainer. A lot of you have
00:02:45.519 --> 00:02:46.879
a lot of knowledge when it comes to
00:02:46.879 --> 00:02:48.959
Emacs. Some of you
00:02:48.959 --> 00:02:51.040
are at different steps in your journey.
00:02:51.040 --> 00:02:52.720
Some of you, for instance, are just
00:02:52.720 --> 00:02:55.680
starting to copy stuff out of
00:02:55.680 --> 00:02:57.040
StackExchange
00:02:57.040 --> 00:02:59.519
into your Emacs configuration. let's
00:02:59.519 --> 00:03:00.720
say you want to do something very
00:03:00.720 --> 00:03:01.599
particular
00:03:01.599 --> 00:03:04.480
and you haven't found a way to do so.
00:03:04.480 --> 00:03:05.920
You go on StackExchange. You find
00:03:05.920 --> 00:03:09.040
something that's interesting. You add it
to your
00:03:09.040 --> 00:03:10.239
Emacs configuration. You
00:03:10.239 --> 00:03:11.680
barely understand anything that's going on.
00:03:11.680 --> 00:03:13.519
You know that it's supposed to be
00:03:13.519 --> 00:03:14.800
Emacs Lisp.
00:03:14.800 --> 00:03:17.200
"I hardly know Emacs and
00:03:17.200 --> 00:03:19.440
I know even less what is Lisp supposed to be."
00:03:19.440 --> 00:03:21.440
But you paste it in and it does what you
00:03:21.440 --> 00:03:22.800
want it to do, and you say
00:03:22.800 --> 00:03:26.959
"Great, I'll move on to my work now." So
00:03:26.959 --> 00:03:29.280
that's how I got started. I had
00:03:29.280 --> 00:03:30.879
a very spartan
00:03:30.879 --> 00:03:33.440
setup for Emacs, which a lot of you must
00:03:33.440 --> 00:03:36.000
know... The first time you launch Emacs,
00:03:36.000 --> 00:03:37.840
you have this feeling that you're jumping 20
00:03:37.840 --> 00:03:39.599
years back in time, as far as the
00:03:39.599 --> 00:03:43.680
user interface is concerned. But
00:03:43.680 --> 00:03:46.959
as you get to spend more time with Emacs...
00:03:46.959 --> 00:03:49.120
Some would call it Stockholm syndrome
00:03:49.120 --> 00:03:50.959
insofar as you can't see
00:03:50.959 --> 00:03:53.360
how spartan the entire thing is, but it
00:03:53.360 --> 00:03:54.640
actually is
00:03:54.640 --> 00:03:58.400
a lovely prison, so to speak.
00:03:58.400 --> 00:04:00.400
That's how I got started eight years ago.
00:04:00.400 --> 00:04:01.680
I just wanted
00:04:01.680 --> 00:04:04.319
to find a way to do my research properly.
00:04:04.319 --> 00:04:05.519
I wanted to have a
00:04:05.519 --> 00:04:07.280
tool that I could use to write my notes
00:04:07.280 --> 00:04:08.959
in plain text, because I was already
00:04:08.959 --> 00:04:11.680
fairly averse to
00:04:11.680 --> 00:04:14.560
Microsoft solutions when it
00:04:14.560 --> 00:04:16.320
came to taking notes.
00:04:16.320 --> 00:04:19.359
So yeah, I got started in Emacs. I
00:04:19.359 --> 00:04:20.880
read a little bit about what plain text
00:04:20.880 --> 00:04:23.040
was about. Just to be clear,
00:04:23.040 --> 00:04:26.000
at the time, yes, I was very good with
00:04:26.000 --> 00:04:27.120
computers,
00:04:27.120 --> 00:04:30.160
but I was not a computer science student.
00:04:30.160 --> 00:04:33.520
I had barely any experience with
programming
00:04:33.520 --> 00:04:36.080
and coding, and I was even less of a
00:04:36.080 --> 00:04:39.919
hacker
back then.
00:04:39.919 --> 00:04:42.560
It just goes to show you that at the
00:04:42.560 --> 00:04:44.479
beginning, I had close to no knowledge,
00:04:44.479 --> 00:04:45.840
whether it be about
00:04:45.840 --> 00:04:48.880
the free software world, whether it be
about...
00:04:48.880 --> 00:04:50.800
Sacha, do you want to say something? (Sacha: just
00:04:50.800 --> 00:04:52.479
confirming, you're not sharing anything
00:04:52.479 --> 00:04:54.080
on the screen at the moment, right?)
00:04:54.080 --> 00:04:55.360
No, I'm not sharing anything, I'm
00:04:55.360 --> 00:04:59.040
just presenting.
00:04:59.040 --> 00:05:02.240
So when I started, I had no
00:05:02.240 --> 00:05:03.680
experience whatsoever.
00:05:03.680 --> 00:05:07.199
I was just a literature major
00:05:07.199 --> 00:05:11.039
trying to get better at taking notes.
00:05:11.039 --> 00:05:13.440
I stumbled upon LaTeX. As many people
00:05:13.440 --> 00:05:15.280
who stumble upon LaTeX know,
00:05:15.280 --> 00:05:17.039
you don't just stumble upon
00:05:17.039 --> 00:05:19.759
LaTeX, you embroil yourself in the
00:05:19.759 --> 00:05:24.560
turmoil of suffering, of late
nights tweaking,
00:05:24.560 --> 00:05:27.440
so that your document is exactly in the
00:05:27.440 --> 00:05:33.440
perfect shape you want it to be.
00:05:33.440 --> 00:05:36.639
Soon after, when I got started with
Emacs and LaTeX,
00:05:36.639 --> 00:05:38.400
I discovered something that truly
00:05:38.400 --> 00:05:40.560
changed my life, and it was Org Mode.
00:05:40.560 --> 00:05:44.479
As you'll get a lot of presentations
00:05:44.479 --> 00:05:46.960
this afternoon about Org Mode,
00:05:46.960 --> 00:05:49.360
I won't be spending too much time on it.
00:05:49.360 --> 00:05:53.680
But Org Mode, for me, was a
revelation. It's...
00:05:53.680 --> 00:05:56.880
There was something that, upon reading
00:05:56.880 --> 00:05:59.039
articles on how to use Org Mode,
00:05:59.039 --> 00:06:02.080
especially one of the key
00:06:02.080 --> 00:06:04.160
article that I'd read which really made
00:06:04.160 --> 00:06:06.000
a huge impact on me
00:06:06.000 --> 00:06:09.199
was the "Organize Your Life in Plain Text" one
00:06:09.199 --> 00:06:10.720
which i'm sure many of you must have
00:06:10.720 --> 00:06:12.240
stumbled upon
00:06:12.240 --> 00:06:15.919
in your Emacs journey...
00:06:15.919 --> 00:06:19.680
For me, when I stumbled upon this
00:06:19.680 --> 00:06:21.840
document, I was starting to get
00:06:21.840 --> 00:06:24.240
interested in Getting Things Done and
00:06:24.240 --> 00:06:26.560
all the nitty-gritty stuff about
00:06:26.560 --> 00:06:29.199
organization and self-organization.
00:06:29.199 --> 00:06:31.919
It just felt like everything was under
00:06:31.919 --> 00:06:32.960
my fingertips
00:06:32.960 --> 00:06:36.960
to make the perfect workflow.
00:06:36.960 --> 00:06:40.880
There was something incredibly
00:06:40.880 --> 00:06:44.080
satisfying about
00:06:44.080 --> 00:06:46.319
having a system that gave you so many
00:06:46.319 --> 00:06:48.319
options to configure your experience
00:06:48.319 --> 00:06:50.160
exactly how you wanted.
00:06:50.160 --> 00:06:54.479
You had this feeling that
00:06:54.479 --> 00:06:57.199
the people behind Org Mode had thought
00:06:57.199 --> 00:06:57.599
of everything,
00:06:57.599 --> 00:07:00.479
whichever small adjustment
00:07:00.479 --> 00:07:02.000
that you needed in workflow
00:07:02.000 --> 00:07:05.440
whether it be more states for your
TODOs,
00:07:05.440 --> 00:07:07.520
whether it be, oh, I want my weeks to
00:07:07.520 --> 00:07:09.360
start on Monday and not on Saturday,
00:07:09.360 --> 00:07:13.520
oh, it's half past one and I need to...
00:07:13.520 --> 00:07:15.280
in the morning, I mean, and I need to make
00:07:15.280 --> 00:07:17.680
sure that the item that i'm marking as done
00:07:17.680 --> 00:07:19.199
is done for the day before and not for
00:07:19.199 --> 00:07:21.919
the current day. You see what I'm talking about.
00:07:21.919 --> 00:07:25.280
So many details that were already
00:07:25.280 --> 00:07:28.800
present in Org Mode. At first you're
00:07:28.800 --> 00:07:31.039
really impressed, because you think,
00:07:31.039 --> 00:07:34.080
wow, they thought of everything, but then
00:07:34.080 --> 00:07:35.599
you realize that it's just a matter of
00:07:35.599 --> 00:07:38.080
experience, just a matter of people
00:07:38.080 --> 00:07:40.800
contributing code, because the
00:07:40.800 --> 00:07:42.400
development of Org Mode, Emacs, and
00:07:42.400 --> 00:07:43.520
everything is just
00:07:43.520 --> 00:07:45.440
open to the public. You know, it's like
00:07:45.440 --> 00:07:46.879
everything is being done with the garage
00:07:46.879 --> 00:07:48.560
door opened. You can just
00:07:48.560 --> 00:07:50.960
go on Org Mode on Savannah and see
00:07:50.960 --> 00:07:54.800
everything that is being developed.
00:07:54.800 --> 00:07:58.639
For me, the shift that occurred
00:07:58.639 --> 00:08:02.639
in my mind was when
00:08:02.639 --> 00:08:04.240
I was reading all the options, I
00:08:04.240 --> 00:08:06.240
was looking at all the variables that i
00:08:06.240 --> 00:08:08.160
could modify for Org Mode,
00:08:08.160 --> 00:08:11.440
and there came a time, maybe two to three
00:08:11.440 --> 00:08:12.560
years ago,
00:08:12.560 --> 00:08:15.599
where I thought, oh wow,
00:08:15.599 --> 00:08:17.759
maybe for the first time in a while,
00:08:17.759 --> 00:08:19.599
there is no option for me to do what I
00:08:19.599 --> 00:08:21.440
want to be doing with Org Mode.
00:08:21.440 --> 00:08:24.479
I believe at the time the the key
00:08:24.479 --> 00:08:29.199
issue that triggered this reflex for me was
00:08:29.199 --> 00:08:31.039
I wanted to do something with the agenda.
00:08:31.039 --> 00:08:33.599
I wanted to have a super category so, you
00:08:33.599 --> 00:08:34.159
know, in the...
00:08:34.159 --> 00:08:36.320
for those of you who know, in your
00:08:36.320 --> 00:08:38.000
agenda, you have the ability to have many
00:08:38.000 --> 00:08:41.200
files, and you have the ability to have
categories.
00:08:41.200 --> 00:08:47.920
I wanted somehow to group my
00:08:47.920 --> 00:08:51.680
TODOs in smaller groups, or bigger
00:08:51.680 --> 00:08:52.560
groups, I should say,
00:08:52.560 --> 00:08:53.920
so that, for instance, I could have one
00:08:53.920 --> 00:08:55.440
group for my professional life, I could
00:08:55.440 --> 00:08:56.000
have a group
00:08:56.000 --> 00:08:59.600
for one work, the second
work...
00:08:59.600 --> 00:09:00.800
I could have something for
00:09:00.800 --> 00:09:02.800
university and all this.
00:09:02.800 --> 00:09:06.000
I thought, yeah,
00:09:06.000 --> 00:09:09.600
I think I'd like this.
00:09:09.600 --> 00:09:12.959
After having spent so long working
00:09:12.959 --> 00:09:15.519
with Emacs and working with Org Mode,
00:09:15.519 --> 00:09:17.200
I had some ideas about what was
00:09:17.200 --> 00:09:18.800
within the realm of possibility and what
00:09:18.800 --> 00:09:21.120
wasn't. Here I thought to myself,
00:09:21.120 --> 00:09:24.320
this is definitely something that I can do.
00:09:24.320 --> 00:09:27.839
And so thus started my journey
00:09:27.839 --> 00:09:31.360
into the Org Mode libraries.
00:09:31.360 --> 00:09:33.040
I won't go too much into details right
00:09:33.040 --> 00:09:34.959
now, because right now, the main objective
00:09:34.959 --> 00:09:37.040
that I have is just to show you
00:09:37.040 --> 00:09:40.240
how simple it is to become a maintainer,
00:09:40.240 --> 00:09:42.800
how to become more involved with the
development.
00:09:42.800 --> 00:09:46.320
The libraries in Org Mode,
00:09:46.320 --> 00:09:50.320
they're written in Elisp, which is a very...
00:09:50.320 --> 00:09:52.080
It might seem like an obscure language,
00:09:52.080 --> 00:09:54.080
and it certainly is,
00:09:54.080 --> 00:09:56.399
but as soon as you get the logic of the
00:09:56.399 --> 00:09:57.279
language--and
00:09:57.279 --> 00:09:59.360
what i'm telling you
00:09:59.360 --> 00:10:00.560
is coming from someone who's never
00:10:00.560 --> 00:10:01.760
studied programming--
00:10:01.760 --> 00:10:04.399
it made sense.
00:10:04.399 --> 00:10:06.079
Everything is so verbose when you get
00:10:06.079 --> 00:10:07.279
into the code.
00:10:07.279 --> 00:10:10.399
When you learn the rudiments
00:10:10.399 --> 00:10:13.360
of Elisp, you start getting to the code,
00:10:13.360 --> 00:10:14.079
and you start
00:10:14.079 --> 00:10:17.120
thinking, wow, okay that makes sense,
00:10:17.120 --> 00:10:19.519
and you start developing a logic
00:10:19.519 --> 00:10:21.360
for all this.
00:10:21.360 --> 00:10:24.720
So, equipped as I was with this
00:10:24.720 --> 00:10:27.760
new knowledge, I went on my project,
00:10:27.760 --> 00:10:30.000
i went into the Org agenda code,
00:10:30.000 --> 00:10:30.880
and I thought, okay,
00:10:30.880 --> 00:10:33.440
is there anything that I can use to do
00:10:33.440 --> 00:10:34.640
my bidding?
00:10:34.640 --> 00:10:38.560
Fast forward maybe two to three weeks of
00:10:38.560 --> 00:10:41.600
intense turmoil and many nights which
00:10:41.600 --> 00:10:46.079
were spent single-mindedly working on
this project,
00:10:46.079 --> 00:10:48.079
two weeks after, I had something that was
00:10:48.079 --> 00:10:51.680
working, and I was pretty happy about it.
00:10:51.680 --> 00:10:54.640
That was a key landmark for
00:10:54.640 --> 00:10:56.800
me, because when that happened,
00:10:56.800 --> 00:11:00.320
it just felt like, okay, I can contribute
00:11:00.320 --> 00:11:02.160
something to Org Mode, and I can do
00:11:02.160 --> 00:11:07.600
something that would benefit as many
people as possible.
00:11:07.600 --> 00:11:09.519
And to me, that was the click. That's when
00:11:09.519 --> 00:11:11.440
it occurred. That's when I
00:11:11.440 --> 00:11:14.640
went on my first project and I did something
00:11:14.640 --> 00:11:18.079
that felt useful to the community.
00:11:18.079 --> 00:11:20.079
And nowadays, as I told you, I
00:11:20.079 --> 00:11:22.640
maintain packages, but really, nothing
has changed.
00:11:22.640 --> 00:11:24.399
The only thing, maybe, that has changed
00:11:24.399 --> 00:11:28.320
that I've turned my mind onto other problems.
00:11:28.320 --> 00:11:32.000
Maybe I've got three more minutes
00:11:32.000 --> 00:11:35.279
and I'd like to finish by
00:11:35.279 --> 00:11:38.399
maybe something a little different.
00:11:38.399 --> 00:11:39.600
I've told you my Emacs story and
00:11:39.600 --> 00:11:42.079
I hope I've stressed how little effort
00:11:42.079 --> 00:11:43.600
it took me to
00:11:43.600 --> 00:11:46.560
move from steps to steps on the ladder.
00:11:46.560 --> 00:11:48.399
The ladder implies a sense of hierarchy,
00:11:48.399 --> 00:11:48.959
but it really isn't.
00:11:48.959 --> 00:11:52.240
Whatever your step on the
00:11:52.240 --> 00:11:53.920
journey of Emacs is...
00:11:53.920 --> 00:11:55.600
Some of you might be at the
00:11:55.600 --> 00:11:57.440
step where you're really worried
00:11:57.440 --> 00:11:59.360
about learning Elisp because it feels
00:11:59.360 --> 00:12:02.399
like such a monumental task to be
undertaking
00:12:02.399 --> 00:12:04.720
and you have no experience whatsoever,
00:12:04.720 --> 00:12:06.079
but the thing is,
00:12:06.079 --> 00:12:07.839
maybe you could try climbing this first
00:12:07.839 --> 00:12:09.600
step on the ladder. Maybe you could try,
00:12:09.600 --> 00:12:11.200
if you have any project,
00:12:11.200 --> 00:12:13.120
if you've been using Org Mode,
00:12:13.120 --> 00:12:15.600
maybe one day you thought, "oh, yes,
00:12:15.600 --> 00:12:18.160
I wish I could do this but I can't,"
00:12:18.160 --> 00:12:19.920
or maybe do try to do this,
00:12:19.920 --> 00:12:21.680
maybe do try to change something in a
00:12:21.680 --> 00:12:23.279
major mode that you're using
00:12:23.279 --> 00:12:26.560
and which you feel might be better.
00:12:26.560 --> 00:12:29.760
I think Emacs, Org Mode, and all free
00:12:29.760 --> 00:12:31.040
software in general
00:12:31.040 --> 00:12:34.720
has this tendency to give you this idea
00:12:34.720 --> 00:12:38.720
that I can be a hacker
00:12:38.720 --> 00:12:41.360
in the sense of the term
00:12:41.360 --> 00:12:43.200
that you're modifying things
00:12:43.200 --> 00:12:46.320
to do your bidding.
00:12:46.320 --> 00:12:48.399
For me, I believe this to be a very
00:12:48.399 --> 00:12:50.320
healthy attitude towards software.
00:12:50.320 --> 00:12:54.079
As Amin said in the very beginning,
00:12:54.079 --> 00:12:57.279
we are doing this entire presentation--
00:12:57.279 --> 00:13:00.800
sorry, this entire conference with free software.
00:13:00.800 --> 00:13:02.240
Just see all the things we've been able
00:13:02.240 --> 00:13:03.920
to do in free software.
00:13:03.920 --> 00:13:07.360
For me, Emacs
00:13:07.360 --> 00:13:10.399
was my gateway, so to speak,
00:13:10.399 --> 00:13:14.399
into how to contribute to free software,
00:13:14.399 --> 00:13:18.639
about the philosophy that surrounds it.
00:13:18.639 --> 00:13:20.560
What I would like to do... I'll finish
00:13:20.560 --> 00:13:22.000
on this note and then I'll be taking
00:13:22.000 --> 00:13:23.360
your questions.
00:13:23.360 --> 00:13:26.480
Just try.
00:13:26.480 --> 00:13:29.360
You've read on Reddit that you
00:13:29.360 --> 00:13:31.279
need to go through the Elisp manual
00:13:31.279 --> 00:13:33.040
in Emacs. You might be scared,
00:13:33.040 --> 00:13:35.920
but just do it. Just give it a shot.
00:13:35.920 --> 00:13:38.560
Just give it maybe one afternoon.
00:13:38.560 --> 00:13:39.199
Try to read it.
00:13:39.199 --> 00:13:43.120
Try to see if this appeals to your mind.
00:13:43.120 --> 00:13:44.399
If you've been interested enough in my
00:13:44.399 --> 00:13:45.680
presentation right now, and if you're
00:13:45.680 --> 00:13:47.199
interested enough in any of the talks
00:13:47.199 --> 00:13:49.519
you're going to have during the entire
conference,
00:13:49.519 --> 00:13:51.839
do give it a shot. I'm pretty sure
00:13:51.839 --> 00:13:52.959
you will like the journey
00:13:52.959 --> 00:13:55.760
on which you will be embarking upon. So I
00:13:55.760 --> 00:13:57.120
believe I'm finishing one minute early,
00:13:57.120 --> 00:14:01.040
but I see quite a bit of questions already.
00:14:01.040 --> 00:14:04.320
I'm not sure. Sacha, should I
00:14:04.320 --> 00:14:06.000
just be reading the questions, or
00:14:06.000 --> 00:14:07.120
do you want to be feeding me the
00:14:07.120 --> 00:14:08.639
questions?
00:14:08.639 --> 00:14:11.120
(Amin: It's really up to you. it's
00:14:11.120 --> 00:14:12.320
completely up to you.
00:14:12.320 --> 00:14:13.600
If you've got the questions
00:14:13.600 --> 00:14:15.839
open and can take them or read them,
00:14:15.839 --> 00:14:18.320
by all means please.)
00:14:18.320 --> 00:14:19.680
Okay, well, I'm going to read them because
00:14:19.680 --> 00:14:20.880
I've got them on the side. I'm going
00:14:20.880 --> 00:14:22.800
to start with the one at the bottom.
00:14:22.800 --> 00:14:24.959
"Do you feel that being a white male
00:14:24.959 --> 00:14:26.959
contributed to your experience?"
00:14:26.959 --> 00:14:29.680
Yeah. I mean, I do believe... There's
00:14:29.680 --> 00:14:31.360
an idea of privilege. I mean, I'm
00:14:31.360 --> 00:14:35.279
French. I live in... I'm lucky enough to
be here
00:14:35.279 --> 00:14:39.120
at university, okay, and I'm fairly
aware of the
00:14:39.120 --> 00:14:41.600
discrepancies that happen, even in France,
00:14:41.600 --> 00:14:42.880
according to this...
00:14:42.880 --> 00:14:46.320
So, yes, I believe my journey
00:14:46.320 --> 00:14:51.199
was heavily influenced by this.
00:14:51.199 --> 00:14:52.639
If you would like to specify the
00:14:52.639 --> 00:14:54.320
question, please do, but I don't have
00:14:54.320 --> 00:14:56.560
really all that much to ask on this.
00:14:56.560 --> 00:14:59.839
"What is your advice to start learning
00:14:59.839 --> 00:15:01.279
Elisp language? Any particularly good
00:15:01.279 --> 00:15:04.160
resource or any other tips?" I finished
00:15:04.160 --> 00:15:07.760
um my presentation by telling you about
00:15:07.760 --> 00:15:10.560
the Elisp introduction which is built into
00:15:10.560 --> 00:15:13.519
Emacs. What I might do... I'm going to share my
00:15:13.519 --> 00:15:15.120
screen just to show you
00:15:15.120 --> 00:15:22.880
how this works. I will be sharing
this window.
00:15:22.880 --> 00:15:24.399
I believe it's frozen on my end, so I
00:15:24.399 --> 00:15:27.199
can't see anything.
00:15:27.199 --> 00:15:28.959
i'm not sure if you can see me or if my
00:15:28.959 --> 00:15:32.560
camera is moving.
00:15:32.560 --> 00:15:34.800
Okay, so my Firefox is frozen. So i'll
00:15:34.800 --> 00:15:36.000
answer the question, but I won't be able
00:15:36.000 --> 00:15:36.800
to show you
00:15:36.800 --> 00:15:40.000
what I wanted to show you.
00:15:40.000 --> 00:15:42.639
There's a built-in guide inside Emacs to
00:15:42.639 --> 00:15:44.320
learn Elisp.
00:15:44.320 --> 00:15:46.880
Maybe the best chance that you have
00:15:46.880 --> 00:15:49.040
is just to go open these info pages.
00:15:49.040 --> 00:15:50.959
I'm sure someone will be kind enough to
00:15:50.959 --> 00:15:53.839
mention this to you in the #emacsconf channel
00:15:53.839 --> 00:15:54.880
on IRC
00:15:54.880 --> 00:15:56.880
but it's probably the best way
00:15:56.880 --> 00:15:59.040
to get started with Elisp.
00:15:59.040 --> 00:16:01.279
You know, we tend to get obsessed, with
00:16:01.279 --> 00:16:03.360
software and with programming, about
00:16:03.360 --> 00:16:04.880
what's the best way to get started.
00:16:04.880 --> 00:16:06.959
You see so many people who are
00:16:06.959 --> 00:16:08.399
heavily interested
00:16:08.399 --> 00:16:10.639
in getting started with programming but
00:16:10.639 --> 00:16:12.320
they never managed to get started
00:16:12.320 --> 00:16:14.320
because there's so much choice.
00:16:14.320 --> 00:16:16.320
My advice would be to just get started.
00:16:16.320 --> 00:16:18.800
Don't get so worried about the first step.
00:16:18.800 --> 00:16:21.839
Well, if I may still recommend the
00:16:21.839 --> 00:16:23.920
first step, even after saying this,
00:16:23.920 --> 00:16:26.480
do try to start with the
00:16:26.480 --> 00:16:28.000
built-in guides. I believe they're pretty
00:16:28.000 --> 00:16:29.600
pretty good.
00:16:29.600 --> 00:16:32.079
There was another question. It's
00:16:32.079 --> 00:16:33.199
the last question that I can read and
00:16:33.199 --> 00:16:34.800
after that, you will have to read
00:16:34.800 --> 00:16:36.000
the questions for me because everything
00:16:36.000 --> 00:16:37.920
is frozen on my end.
00:16:37.920 --> 00:16:41.600
I hope I'm not frozen
00:16:41.600 --> 00:16:44.240
in a very bad position so
00:16:44.240 --> 00:16:45.680
please excuse me if
00:16:45.680 --> 00:16:48.240
my mouth is open or anything. (Amin: no, we
00:16:48.240 --> 00:16:49.759
just completely lost the video feed, so
00:16:49.759 --> 00:16:51.120
no worries.)
00:16:51.120 --> 00:16:52.720
Oh, splendid, so I won't have to make a
00:16:52.720 --> 00:16:54.800
fool out of myself.
00:16:54.800 --> 00:16:56.800
So the last question I wanted to answer was
00:16:56.800 --> 00:16:58.320
"Have you read Dirk Gently's Holistic
00:16:58.320 --> 00:16:59.199
Detective Agency?"
00:16:59.199 --> 00:17:03.519
No, I haven't. I hope it's not
00:17:03.519 --> 00:17:05.199
a jab at the way i'm dressing for the
00:17:05.199 --> 00:17:06.559
conference, but yeah,
00:17:06.559 --> 00:17:08.559
I haven't read it. Was there any
00:17:08.559 --> 00:17:10.559
other question?
00:17:10.559 --> 00:17:15.919
(Amin: I see one other question.
00:17:15.919 --> 00:17:17.919
"Any recommendation for good packaging
00:17:17.919 --> 00:17:19.679
guides or places to start?
00:17:19.679 --> 00:17:23.199
i get a bit overwhelmed by some things.
00:17:23.199 --> 00:17:26.799
For example, the choice of different test
frameworks.")
00:17:26.799 --> 00:17:28.240
Right. Okay. So that's a very good
00:17:28.240 --> 00:17:30.400
question. I believe
00:17:30.400 --> 00:17:33.840
alphapapa is in the chat right now.
00:17:33.840 --> 00:17:35.840
As myself a new lisp developer for
00:17:35.840 --> 00:17:38.320
org-roam, i'd really recommend you to look into
00:17:38.320 --> 00:17:40.640
his package developers' guide because you
00:17:40.640 --> 00:17:42.799
have a list of all the softwares that
00:17:42.799 --> 00:17:44.559
are extremely useful to be using when
00:17:44.559 --> 00:17:45.760
you're getting started.
00:17:45.760 --> 00:17:48.000
If you're looking into a first
00:17:48.000 --> 00:17:50.000
step for how to develop
00:17:50.000 --> 00:17:52.640
elast package, i'd really advise you to
00:17:52.640 --> 00:17:53.520
look into edebug.
00:17:53.520 --> 00:17:56.559
It's one word, edebug,
00:17:56.559 --> 00:17:58.400
and you have a section in the manual for this,
00:17:58.400 --> 00:18:00.799
because for me, it was the key step to
00:18:00.799 --> 00:18:04.320
getting to develop good packages. It was
00:18:04.320 --> 00:18:06.160
understanding basically what the code did
00:18:06.160 --> 00:18:08.960
and having us something like a
00:18:08.960 --> 00:18:09.919
REPL (read-evaluate-print-loop)
00:18:09.919 --> 00:18:11.760
that allows you to step through the code
00:18:11.760 --> 00:18:13.360
and see exactly which states the
00:18:13.360 --> 00:18:16.000
variables are at which at this point in the
00:18:16.000 --> 00:18:20.080
program. That's really my biggest advice
to you.
00:18:21.200 --> 00:18:24.400
Any other question? Thanks. Yeah, I see one
00:18:24.400 --> 00:18:26.160
or two more.
00:18:26.160 --> 00:18:28.240
So there's one. They ask, "How did the
00:18:28.240 --> 00:18:30.080
freedom of Emacs help you on
00:18:30.080 --> 00:18:33.120
your way?"
00:18:33.120 --> 00:18:36.480
So the freedom of Emacs... I mentioned
00:18:36.480 --> 00:18:38.080
that Emacs, for me, was my gateway
00:18:38.080 --> 00:18:40.320
into free software and the freedom of
00:18:40.320 --> 00:18:43.840
Emacs was that you could maybe... First
and foremost,
00:18:43.840 --> 00:18:47.840
compared to other software, was that
you had
00:18:47.840 --> 00:18:51.039
behind Emacs, Elisp, which allows you to
read the code,
00:18:51.039 --> 00:18:52.400
read whatever is going on in the
00:18:52.400 --> 00:18:53.039
background.
00:18:53.039 --> 00:18:54.640
Surely, if you go deep enough, you'll
00:18:54.640 --> 00:18:58.000
end up in C functions that you might not
be able to
00:18:58.000 --> 00:18:59.679
read if you do not have the experience.
00:18:59.679 --> 00:19:02.000
But for Org Mode, which was my gateway
00:19:02.000 --> 00:19:03.520
into Emacs,
00:19:03.520 --> 00:19:06.400
most of it is written in Elisp, and all
00:19:06.400 --> 00:19:08.240
the commands have a very verbose
00:19:08.240 --> 00:19:10.080
name, like something simple as
00:19:10.080 --> 00:19:13.440
org go to next subtree or
00:19:13.440 --> 00:19:15.840
org go to a parent subtree. You know, things
00:19:15.840 --> 00:19:16.880
like this.
00:19:16.880 --> 00:19:20.240
It's so elegant. It's verbose.
00:19:20.240 --> 00:19:22.799
That's a sense of freedom
00:19:22.799 --> 00:19:24.320
insofar as you can go into the code and
00:19:24.320 --> 00:19:26.160
see, oh, okay, that's how it's implemented.
00:19:26.160 --> 00:19:28.640
I believe in a way that's the freedom
00:19:28.640 --> 00:19:30.400
and the liberty that is given to you to
00:19:30.400 --> 00:19:31.600
look into the code
00:19:31.600 --> 00:19:33.039
is something that invites you to do the
00:19:33.039 --> 00:19:34.640
same with your life. As
00:19:34.640 --> 00:19:35.200
someone who
00:19:35.200 --> 00:19:36.559
does a little bit of philosophy on the
00:19:36.559 --> 00:19:38.080
side, I believe it's a very healthy
00:19:38.080 --> 00:19:38.799
message
00:19:38.799 --> 00:19:42.320
to be gathering from a piece of software.
00:19:42.320 --> 00:19:45.440
(Amin: Awesome, thank you.
00:19:45.440 --> 00:19:50.960
Let's see... So we have...
00:19:50.960 --> 00:19:57.200
I think I saw another question pop up.)
00:19:57.200 --> 00:19:58.559
I'm not sure how we're doing as far
00:19:58.559 --> 00:19:59.760
as time is concerned... I believe we
00:19:59.760 --> 00:20:02.080
have like one or two minutes more.
00:20:02.080 --> 00:20:04.240
(Amin: Yeah, actually, we're quite a bit
00:20:04.240 --> 00:20:05.679
ahead of the schedule, so if we take a
00:20:05.679 --> 00:20:07.840
little bit longer, we're fine.
00:20:07.840 --> 00:20:09.440
If you do have more
00:20:09.440 --> 00:20:11.280
questions, please do.) I'm just sorry that
00:20:11.280 --> 00:20:12.880
my video is not working anymore.
00:20:12.880 --> 00:20:16.000
(Amin: No problem. Someone was
00:20:16.000 --> 00:20:17.120
actually saying...
00:20:17.120 --> 00:20:21.120
What's the most recent...
00:20:21.120 --> 00:20:24.159
Actually, yeah well before that.
00:20:24.159 --> 00:20:25.919
"Please show off your three-piece suit
00:20:25.919 --> 00:20:27.440
before you end your talk,
00:20:27.440 --> 00:20:30.080
which requires fixing your frozen camera.
00:20:30.080 --> 00:20:31.919
if this is not possible, please post
00:20:31.919 --> 00:20:36.240
suit selfies in an easily accessible
location."
00:20:36.240 --> 00:20:38.720
Okay, I'll make sure to do this. But yes, I
00:20:38.720 --> 00:20:41.200
wanted to hype things up for the
conference,
00:20:41.200 --> 00:20:43.039
so yes, I did get the three-piece suit out.
00:20:43.039 --> 00:20:45.919
I'm very glad you like it. By the way,
when you get
00:20:45.919 --> 00:20:47.760
a chance to see me live again,
00:20:47.760 --> 00:20:50.080
do appreciate that my tie has both the
00:20:50.080 --> 00:20:51.280
colors of Emacs purple
00:20:51.280 --> 00:20:53.679
and also Org Mode green.
00:20:53.679 --> 00:20:55.760
It took me a while to find this one, so I
00:20:55.760 --> 00:21:00.840
hope you will appreciate this.
00:21:00.840 --> 00:21:03.679
(Amin: Awesome. Let's see. We have
00:21:03.679 --> 00:21:06.880
one other question. "What's the
00:21:06.880 --> 00:21:08.960
most recent Emacs package or tool that
00:21:08.960 --> 00:21:10.159
you've discovered
00:21:10.159 --> 00:21:14.480
that you've added to your repertoire?")
00:21:14.480 --> 00:21:17.600
Very interesting question.
00:21:17.600 --> 00:21:20.799
The thing is,
00:21:20.799 --> 00:21:22.320
when you've spent as long as I have on
00:21:22.320 --> 00:21:23.919
Emacs--and I know that I've only spent
00:21:23.919 --> 00:21:25.120
eight years and some of you
00:21:25.120 --> 00:21:28.799
might have spent maybe 10, 20, maybe even
00:21:28.799 --> 00:21:30.000
more years on Emacs--
00:21:30.000 --> 00:21:32.799
but for me, I believe the the coolest
00:21:32.799 --> 00:21:35.120
neat trick that I found in Emacs was
00:21:35.120 --> 00:21:40.080
a mode which is called beacon-mode.
00:21:40.080 --> 00:21:42.559
It's something that allows
00:21:42.559 --> 00:21:43.679
you to show
00:21:43.679 --> 00:21:45.120
when you're jumping between buffers or
00:21:45.120 --> 00:21:46.960
when you're dropping between windows,
00:21:46.960 --> 00:21:49.760
it shows exactly where your point is in
00:21:49.760 --> 00:21:51.520
that buffer by making
00:21:51.520 --> 00:21:53.840
a slight ray of light which looks like a
00:21:53.840 --> 00:21:55.440
beacon, hence the name.
00:21:55.440 --> 00:21:57.760
It really helps you navigate buffers
00:21:57.760 --> 00:21:59.520
because it always shows in a very
00:21:59.520 --> 00:22:01.760
visual way where your point is.
00:22:01.760 --> 00:22:03.520
I'll get a chance to show this to
00:22:03.520 --> 00:22:04.640
you later today
00:22:04.640 --> 00:22:10.159
when i'll be presenting my other talks.
00:22:10.159 --> 00:22:13.840
(Amin: Aeesome.
00:22:13.840 --> 00:22:16.880
We have one question
00:22:16.880 --> 00:22:20.159
from Jonas, the maintainer
00:22:20.159 --> 00:22:20.880
from Magit.
00:22:20.880 --> 00:22:24.720
He asks, "When you touched your
00:22:24.720 --> 00:22:26.880
webcam, that blew a fuse at my place.
00:22:26.880 --> 00:22:29.760
How did you do that?")
00:22:29.760 --> 00:22:31.600
Well, I'm very sorry, Jonas, that it
00:22:31.600 --> 00:22:32.960
happened to you, but i'll make sure not
00:22:32.960 --> 00:22:36.960
to touch my webcam again.
00:22:36.960 --> 00:22:41.600
(Amin: Do we have any other questions?)
00:22:41.600 --> 00:22:43.919
I have to trust you on this one.
00:22:43.919 --> 00:22:45.840
I'm really sorry. Everything is frozen
00:22:45.840 --> 00:22:46.960
on my end.
00:22:46.960 --> 00:22:48.720
(Amin: No problem.) Yeah I'm more talking
to the
00:22:48.720 --> 00:22:49.940
audience, I guess.
00:22:51.520 --> 00:22:55.120
I hope my lack of
00:22:55.120 --> 00:22:56.960
slides didn't bother you. I really
00:22:56.960 --> 00:22:58.159
wanted to have this
00:22:58.159 --> 00:23:01.039
verbose time with people, to be
00:23:01.039 --> 00:23:01.600
able to...
00:23:01.600 --> 00:23:04.880
it's a message that i've been trying
00:23:04.880 --> 00:23:08.640
to share with as many people as possible.
00:23:08.640 --> 00:23:11.760
In france we do have an Emacs workshop
00:23:11.760 --> 00:23:14.159
that we have on a monthly basis.
00:23:14.159 --> 00:23:16.000
I've been learning a lot
00:23:16.000 --> 00:23:18.960
with those people and I felt like
00:23:18.960 --> 00:23:20.400
doing the same with Emacs conference
00:23:20.400 --> 00:23:22.480
would be good. That's why i'm really
00:23:22.480 --> 00:23:24.000
happy, and I'm really lucky to have had
00:23:24.000 --> 00:23:25.120
the chance to
00:23:25.120 --> 00:23:27.919
do this today. I hope some of you
00:23:27.919 --> 00:23:29.200
I've convinced you
00:23:29.200 --> 00:23:31.679
of climbing up a step on a ladder or
00:23:31.679 --> 00:23:34.480
making a step in a journey.
00:23:34.480 --> 00:23:38.080
(Amin: Absolutely. Thank you so much, Leo.
00:23:38.080 --> 00:23:41.279
I happen to completely agree
00:23:41.279 --> 00:23:43.600
with your not necessarily using a slide
00:23:43.600 --> 00:23:45.600
when it's not really needed
00:23:45.600 --> 00:23:49.200
and to help give some face-to-face time
00:23:49.200 --> 00:23:51.840
with the audience. Unfortunately
00:23:51.840 --> 00:23:53.520
your webcam cut out, but I mean
00:23:53.520 --> 00:23:55.200
before that.)
00:23:55.200 --> 00:23:57.279
Yes, I'll make sure to fix the problems
00:23:57.279 --> 00:23:59.679
later on, so don't worry about it.
00:23:59.679 --> 00:24:02.240
(Amin: Awesome. Alrighty. I guess we're
00:24:02.240 --> 00:24:03.200
wrapping up
00:24:03.200 --> 00:24:06.400
for your talk and getting ready for the
00:24:06.400 --> 00:24:08.000
next talk.)
00:24:08.000 --> 00:24:10.000
Sure. Well, thank you so much. I'll see
00:24:10.000 --> 00:24:11.760
you all later, I suppose!
00:24:11.760 --> 00:24:16.799
(Amin: Sounds good. Thank you again, Leo. Bye-bye)