(Amin: Alrighty, Leo Vivier, take it away.)
Okay, well, thank you. I'm in.
So you've just had a little roundup of the news,
and we're going to get started now with some presentations.
We're starting with user developer stories.
I was extremely interested in this section
because I wanted to get a chance, basically,
to tell you a little more about who I am and
how I got from basically being a user of Emacs
to being nowadays a package maintainer,
and maybe more in the future. I don't know.
So, just for the organizers, I'm planning to speak for 15 minutes,
and I'll have five more minutes of questions at the end.
As I told you before, if you want to have questions,
you know you can use the pad,
and I'll be reading the questions from there.
Okay. So hi there, as Amin introduced me before,
my name is Leo Vivier.
I'm a freelance software engineer in France,
and I have been using Emacs now for
I believe close to eight years.
I can't believe it's been so long.
But yes, it's been a journey because, in a way,
nothing made me go for Emacs.
You know I'm an-- sorry, I was about to say Emacs major,
but no, I'm an English major.
I went to university to study English literature and linguistics,
and I just got started in Emacs
because I was looking for ways to take
better notes. I was looking for ways to
structure the way I was learning,
structure the way I was taking notes.
I stumbled one day
upon this weird piece of software
which was called Emacs,
and I've been trapped forever since,
basically, because eight years ago,
when I discovered Emacs,
I just couldn't let go.
There was just something very
interesting about the way
you configured your setup,
and I just wanted to dive deeper and deeper.
So the title is of this talk exactly is
how I went from user to package maintainer,
and the package now that I'm maintaining
is called org-roam. I'm not the only one doing this.
I'm helped with many lovely people working on org-roam.
I got started as a maintainer only this year,
so that means that for
the eight years I've been
an Emacs user, seven of those years were
spent merely being a user
trying to be a sponge for knowledge,
trying to learn as much as I could.
I believe it would be
interesting for me to share my story
because I believe that I'm far from
being the only user
who can make the jump to being a maintainer.
A lot of you have a lot of knowledge when it comes to Emacs.
Some of you are at different steps in your journey.
Some of you, for instance, are just
starting to copy stuff out of
StackExchange into your Emacs configuration.
Let's say you want to do something very particular
and you haven't found a way to do so.
You go on StackExchange.
You find something that's interesting.
You add it to your Emacs configuration.
You barely understand anything that's going on.
You know that it's supposed to be Emacs Lisp.
"I hardly know Emacs and
I know even less what is Lisp supposed to be."
But you paste it in, and it does what you want it to do,
and you say "Great, I'll move on to my work now."
So that's how I got started.
I had a very spartan setup for Emacs, which a lot of you must know...
The first time you launch Emacs,
you have this feeling
that you're jumping 20 years back in time,
as far as the user interface is concerned.
But as you get to spend more time with Emacs...
Some would call it Stockholm syndrome
insofar as you can't see
how spartan the entire thing is,
but it actually is a lovely prison, so to speak.
That's how I got started eight years ago.
I just wanted to find a way to do my research properly.
I wanted to have a tool
that I could use to write my notes
in plain text, because I was already
fairly averse to Microsoft solutions when it came to taking notes.
So yeah, I got started in Emacs.
I read a little bit about what plain text was about.
Just to be clear, at the time, yes,
I was very good with computers,
but I was not a computer science student.
I had barely any experience with programming and coding,
and I was even less of a hacker back then.
It just goes to show you that at the beginning,
I had close to no knowledge,
whether it be about
the free software world,
whether it be about...
Sacha, do you want to say something?
(Sacha: just confirming, you're not sharing anything
on the screen at the moment, right?)
No, I'm not sharing anything,
I'm just presenting.
So when I started,
I had no experience whatsoever.
I was just a literature major
trying to get better at taking notes.
I stumbled upon LaTeX.
As many people who stumble upon LaTeX know,
you don't just stumble upon LaTeX,
you embroil yourself in the turmoil of suffering,
of late nights tweaking,
so that your document is exactly
in the perfect shape you want it to be.
Soon after, when I got started with Emacs and LaTeX,
I discovered something that truly changed my life,
and it was Org Mode.
As you'll get a lot of presentations
this afternoon about Org Mode,
I won't be spending too much time on it.
But Org Mode, for me, was a revelation. It's...
There was something that,
upon reading articles on how to use Org Mode,
especially one of the key articles
that I'd read which really made
a huge impact on me
was the "Organize Your Life in Plain Text" one,
which I'm sure many of you must have stumbled upon
in your Emacs journey...
For me, when I stumbled upon this document,
I was starting to get interested
in Getting Things Done and
all the nitty-gritty stuff about
organization and self-organization.
It just felt like everything was under my fingertips
to make the perfect workflow.
There was something incredibly satisfying about
having a system that gave you
so many options to configure your experience
exactly how you wanted.
You had this feeling that
the people behind Org Mode had thought of everything,
whichever small adjustment
that you needed in workflow
whether it be more states for your TODOs,
whether it be, oh, I want my weeks to
start on Monday and not on Saturday,
oh, it's half past one and I need to...
in the morning, I mean, and I need to make
sure that the item that I'm marking as done
is done for the day before
and not for the current day.
You see what I'm talking about.
So many details that were already
present in Org Mode.
At first you're really impressed, because you think, wow,
they thought of everything,
but then you realize that it's just a matter of experience,
just a matter of people contributing code,
because the development of Org Mode, Emacs,
and everything is just open to the public.
You know, it's like
everything is being done with the garage door opened.
You can just go on Org Mode on Savannah
and see everything that is being developed.
For me, the shift that occurred in my mind was
when I was reading all the options,
I was looking at all the variables
that I could modify for Org Mode,
and there came a time, maybe two to three years ago,
where I thought, oh wow,
maybe for the first time in a while,
there is no option for me to do
what I want to be doing with Org Mode.
I believe at the time,
the key issue that triggered this reflex for me was
I wanted to do something with the agenda.
I wanted to have a super category so, you know, in the...
for those of you who know, in your agenda,
you have the ability to have many files,
and you have the ability to have categories.
I wanted somehow to group my
TODOs in smaller groups, or bigger
groups, I should say,
so that, for instance, I could have
one group for my professional life,
I could have a group for one work,
the second work...
I could have something for university and all this.
I thought, yeah, I think I'd like this.
After having spent so long working
with Emacs and working with Org Mode,
I had some ideas about
what was within the realm of possibility and what wasn't.
Here I thought to myself,
this is definitely something that I can do.
And so thus started my journey
into the Org Mode libraries.
I won't go too much into details right now,
because right now, the main objective
that I have is just to show you
how simple it is to become a maintainer,
how to become more involved with the development.
The libraries in Org Mode,
they're written in Elisp, which is a very...
It might seem like an obscure language,
and it certainly is,
but as soon as you get the logic of the language--and
what I'm telling you is coming from someone
who's never studied programming--
it made sense.
Everything is so verbose
when you get into the code.
When you learn the rudiments of Elisp,
you start getting to the code,
and you start thinking, wow,
okay that makes sense,
and you start developing a logic for all this.
So, equipped as I was with this
new knowledge, I went on my project,
I went into the Org agenda code,
and I thought, okay,
is there anything that I can use to do my bidding?
Fast forward maybe two to three weeks of intense turmoil
and many nights which were spent single-mindedly working on this project,
two weeks after, I had something that was working,
and I was pretty happy about it.
That was a key landmark for me,
because when that happened,
it just felt like, okay,
I can contribute something to Org Mode,
and I can do something that would benefit as many people as possible.
And to me, that was the click.
That's when it occurred.
That's when I went on my first project and I did something
that felt useful to the community.
And nowadays, as I told you,
I maintain packages, but really, nothing has changed.
The only thing, maybe, that has changed
is that I've turned my mind onto other problems.
Maybe I've got three more minutes,
and I'd like to finish by
maybe something a little different.
I've told you my Emacs story
and I hope I've stressed how little effort it took me
to move from steps to steps on the ladder.
The ladder implies a sense of hierarchy, but it really isn't.
Whatever your step on the journey of Emacs is...
Some of you might be at the step
where you're really worried
about learning Elisp because it feels
like such a monumental task to be undertaking
and you have no experience whatsoever,
but the thing is,
maybe you could try climbing this first
step on the ladder. Maybe you could try,
if you have any project,
if you've been using Org Mode,
maybe one day you thought, "oh, yes,
I wish I could do this but I can't,"
or maybe do try to do this,
maybe do try to change something
in a major mode that you're using
and which you feel might be better.
I think Emacs, Org Mode,
and all free software in general
has this tendency to give you this idea
that I can be a hacker
in the sense of the term
that you're modifying things
to do your bidding.
For me, I believe this to be
a very healthy attitude towards software.
As Amin said in the very beginning,
we are doing this entire presentation--
sorry, this entire conference with free software.
Just see all the things
we've been able to do in free software.
For me, Emacs was my gateway, so to speak,
into how to contribute to free software,
about the philosophy that surrounds it.
What I would like to do...
I'll finish on this note and then
I'll be taking your questions.
Just try.
You've read on Reddit
that you need to go through the Elisp manual in Emacs.
You might be scared, but just do it. Just give it a shot.
Just give it maybe one afternoon.
Try to read it.
Try to see if this appeals to your mind.
If you've been interested enough
in my presentation right now,
and if you're interested enough in any of the talks
you're going to have during the entire conference,
do give it a shot.
I'm pretty sure you will like the journey
on which you will be embarking upon.
So I believe I'm finishing one minute early,
but I see quite a bit of questions already.
I'm not sure. Sacha, should I
just be reading the questions,
or do you want to be feeding me the questions?
(Amin: It's really up to you.
It's completely up to you.
If you've got the questions
open and can take them or read them,
by all means, please.)
Okay, well, I'm going to read them
because I've got them on the side.
I'm going to start with the one at the bottom.
"Do you feel that being a white male
contributed to your experience?"
Yeah. I mean, I do believe...
There's an idea of privilege.
I mean, I'm French. I live in...
I'm lucky enough to be here at university, okay,
and I'm fairly aware of the discrepancies that happen,
even in France,
according to this...
So, yes, I believe my journey
was heavily influenced by this.
If you would like to specify the question, please do,
but I don't have really all that much to ask on this.
"What is your advice to start learning
Elisp language? Any particularly good
resource or any other tips?"
I finished my presentation by telling you about
the Elisp introduction which is built into Emacs.
What I might do... I'm going to share my screen
just to show you how this works.
I will be sharing this window.
I believe it's frozen on my end,
so I can't see anything.
I'm not sure if you can see me
or if my camera is moving.
Okay, so my Firefox is frozen.
So I'll answer the question,
but I won't be able to show you what I wanted to show you.
There's a built-in guide inside Emacs to learn Elisp.
Maybe the best chance that you have
is just to go open these info pages.
I'm sure someone will be kind enough to
mention this to you in the #emacsconf channel on IRC
but it's probably the best way
to get started with Elisp.
You know, we tend to get obsessed,
with software and with programming,
about what's the best way to get started.
You see so many people who are heavily interested
in getting started with programming
but they never managed to get started
because there's so much choice.
My advice would be to just get started.
Don't get so worried about the first step.
Well, if I may still recommend the first step,
even after saying this,
do try to start with the built-in guides.
I believe they're pretty, pretty good.
There was another question.
It's the last question that I can read
and after that, you will have to
read the questions for me because everything is frozen on my end.
I hope I'm not frozen in a very bad position,
so please excuse me if my mouth is open or anything.
(Amin: no, we just completely lost the video feed, so no worries.)
Oh, splendid, so I won't have to make a fool out of myself.
So the last question I wanted to answer was
"Have you read Dirk Gently's Holistic Detective Agency?"
No, I haven't. I hope it's not a jab at the way I'm dressing for the conference,
but yeah, I haven't read it. Was there any other question?
(Amin: I see one other question.
"Any recommendation for good packaging guides or places to start?
I get a bit overwhelmed by some things.
For example, the choice of different test frameworks.")
Right. Okay. So that's a very good question.
I believe alphapapa is in the chat right now.
As myself a new Lisp developer for org-roam,
I'd really recommend you to look into
his package developers' guide,
because you have a list of all the softwares
that are extremely useful to be using when
you're getting started.
If you're looking into a first step
for how to develop elisp packages,
I'd really advise you to
look into edebug.
It's one word, edebug,
and you have a section in the manual for this,
because for me, it was the key step to
getting to develop good packages.
It was understanding basically what the code did
and having us something like
a REPL (read-evaluate-print-loop)
that allows you to step through the code
and see exactly which states
the variables are at which at this point
in the program. That's really my biggest advice to you.
Any other question? Thanks. Yeah, I see one or two more.
So there's one. They ask, "How did the freedom of Emacs help you on your way?"
So the freedom of Emacs...
I mentioned that Emacs, for me, was my gateway
into free software
and the freedom of Emacs
was that you could maybe...
First and foremost,
compared to other software,
was that you had behind Emacs, Elisp,
which allows you to read the code,
read whatever is going on in the background.
Surely, if you go deep enough,
you'll end up in C functions that you might not be able to read
if you do not have the experience.
But for Org Mode, which was my gateway into Emacs,
most of it is written in Elisp,
and all the commands have a very verbose name,
like something simple as
org go to next subtree or
org go to a parent subtree. You know, things like this.
It's so elegant. It's verbose.
That's a sense of freedom
insofar as you can go into the code and see,
oh, okay, that's how it's implemented.
I believe in a way that's the freedom
and the liberty that is given to you
to look into the code
is something that invites you
to do the same with your life.
As someone who does a little bit of philosophy on the side,
I believe it's a very healthy message
to be gathering from a piece of software.
(Amin: Awesome, thank you.
Let's see... So we have...
I think I saw another question pop up.)
I'm not sure how we're doing as far
as time is concerned... I believe we
have like one or two minutes more.
(Amin: Yeah, actually, we're quite a bit
ahead of the schedule, so if we take a
little bit longer, we're fine.
If you do have more questions, please do.)
I'm just sorry that my video is not working anymore.
(Amin: No problem. Someone was actually saying...
What's the most recent... Actually, yeah well before that.
"Please show off your three-piece suit before you end your talk,
which requires fixing your frozen camera.
If this is not possible,
please post suit selfies in an easily accessible location."
Okay, I'll make sure to do this.
But yes, I wanted to hype things up for the conference,
so yes, I did get the three-piece suit out.
I'm very glad you like it.
By the way, when you get
a chance to see me live again,
do appreciate that my tie has both the
colors of Emacs purple
and also Org Mode green.
It took me a while to find this one,
so I hope you will appreciate this.
(Amin: Awesome. Let's see.
We have one other question. "What's the
most recent Emacs package or tool that
you've discovered that you've added to your repertoire?")
Very interesting question.
The thing is, when you've spent as long as I have on Emacs--
and I know that I've only spent
eight years and some of you
might have spent maybe 10, 20,
maybe even more years on Emacs--
but for me, I believe the coolest neat trick that I found in Emacs
was a mode which is called beacon-mode.
It's something that allows you to show
when you're jumping between buffers
or when you're dropping between windows,
it shows exactly where your point is in that buffer
by making a slight ray of light which looks like a beacon, hence the name.
It really helps you navigate buffers
because it always shows
in a very visual way where your point is.
I'll get a chance to show this to you later today
when I'll be presenting my other talks.
(Amin: Awesome. We have one question from Jonas, the maintainer of Magit.
He asks, "When you touched your webcam,
that blew a fuse at my place.
How did you do that?")
Well, I'm very sorry, Jonas,
that it happened to you, but I'll make sure not to touch my webcam again.
(Amin: Do we have any other questions?)
I have to trust you on this one.
I'm really sorry. Everything is frozen on my end.
(Amin: No problem.) Yeah I'm more talking to the audience, I guess.
I hope my lack of slides didn't bother you.
I really wanted to have this verbose time with people,
to be able to...
It's a message that I've been trying
to share with as many people as possible.
In France, we do have an Emacs workshop
that we have on a monthly basis.
I've been learning a lot
with those people and I felt like
doing the same with Emacs conference
would be good. That's why I'm really happy,
and I'm really lucky to have had
the chance to do this today.
I hope some of you, I've convinced you
of climbing up a step on a ladder
or making a step in a journey.
(Amin: Absolutely. Thank you so much, Leo.
I happen to completely agree
with your not necessarily using a slide
when it's not really needed
and to help give some face-to-face time
with the audience.
Unfortunately, your webcam cut out,
but I mean before that.)
Yes, I'll make sure to fix the problems later on,
so don't worry about it.
(Amin: Awesome. Alrighty. I guess we're
wrapping up for your talk and getting ready for the next talk.)
Sure. Well, thank you so much.
I'll see you all later, I suppose!
(Amin: Sounds good. Thank you again, Leo. Bye-bye)