(Amin: Alrighty, Leo Vivier, take it away.)
Okay, well, thank you, Amin. 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
[Applause]
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
article 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 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
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
um 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
elast package, 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
[Music]
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 on
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 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
from 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.)
[Music]
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)