[Speaker 0]: 2 seconds. And I think we are live.
Hi, Jeremy, how are you doing?
[Speaker 1]: All right. I'm doing all right.
How about you?
[Speaker 0]: I'm doing great as well.
I'm really happy to see all the talk that
we're having. And I was particularly excited
when I got your proposal for this talk
because mentoring, as I was telling you
during the check-in process,
is a subject dear to my heart.
So I'm really excited,
not only for the talk that you've just done,
but also for the question that people are
going to ask you.
[Speaker 1]: Yeah, I'm looking forward to answering some
questions. Mentoring is also something near
and dear. Something I did not mention is when
folks would ask me, like,
what was your most important class?
Or I said, oh, easy, easy,
easy, high school English.
Like, it's my whatever your primary written
and spoken languages I think is the most
useful skill as a programmer
[Speaker 0]: right so as usual people if you want to ask
questions to Jeremy, feel free to find the
link to the other pad either on the talk page
or on IRC. We're also going to open the chat
so that people can join us and ask questions.
Let me just make sure that I tell Sasha can
you open ID Mentor. All right so in the
meantime what we'll do is that I'll be
reading questions of the pad and Jeremy will
be answering them whilst we wait for you to
join. Now just to be clear with the time,
we have a little bit of time now,
a little more time than before.
We have 22 minutes, so until 10 of the next
hours to answer as many questions as
possible. And believe me,
if you people watching right now are not
asking questions, I will be asking plenty of
them. So please, save Jeremy from my
[Speaker 1]: I look forward to it.
[Speaker 0]: inquisitive mind. All right.
Starting with the first question,
a very trivial 1, perhaps,
but always 1 that I ask myself when I look at
a keyboard. Regarding super key,
which key do you bind to super?
[Speaker 1]: Yeah, so my left command,
which is on a Mac keyboard,
so the key right to the left of the space bar
is super. And the key immediately to the
right of spacebar, which is the right command
key, is bound to hyper,
which opens up a whole new suite of keys.
And I thought it would take a little bit to
get used to, but it's been amazing.
So I definitely recommend having a hyper
binding.
[Speaker 0]: I will, yes. I was also going to say super
binding. No, it's a hyper binding.
We already have super.
It's your Windows key or your Linux key or
whatever you want to call it.
But I will warn people though,
it's the gateway into fancy keyboard setups
because it starts, it's the Trojan horse of
fancy keyboard setup. Just,
oh I wish I could have another modifier.
And then many years later,
you find yourself with this little thing that
I'm showing, which is a fully customized QMK
keyboard.
[Speaker 2]: All right.
[Speaker 1]: Following on that, then meta is to the left
of super, and then control is to the left of
meta. And also, caps lock maps to control as
well. Definitely tried a bunch of tap for
this and that on a programmable keyboard,
but I have settled on keep it simple and use
something like carabiner elements to do most
[Speaker 0]: Right. It's good that you were able to stop
there. I wish I'd stopped there at some point
[Speaker 1]: of the mapping. It was a terrible moment
where I'm like, oh, what have I done when I
was trying to type once?
[Speaker 0]: in my life. All right,
moving on to the next question.
Great talk. What's the package you used to
make the org slide?
[Speaker 1]: So yeah, it's great. Yeah,
so I am using Protz Logos and have,
I think, like, Olivet mode.
I'll post a link to the configuration for
turning it on and off.
But it's basically narrow region to an org
heading, which is, I find that to be super
helpful. Don't have to fiddle with it.
[Speaker 0]: Right, just to be clear,
it's Olivetti, right? I think that's the...
[Speaker 1]: Oh yeah, Olivetti, yeah.
[Speaker 0]: A typical Italian word that is really tough
to pronounce between Europeans and people in
[Speaker 1]: Yeah, I had a... For some reason I dropped
the I at the end. So in my head
[Speaker 0]: the US. Yeah, moving to the next question if
people do get interested in picking up emacs
because of what they see you do How do you
recommend they say they get into it?
Oh
[Speaker 1]: Yeah, so I've been I think a lot of it comes
down to what are the problems that they're
trying to solve. And so I walked them through
my journey. I worked in TextMate for a long
time, then Sublime, then Atom.
And then in 2020, I hopped over to Emacs,
started writing in it and I chose Space Max
and then I chose Doom.
And then I was like, wait,
start over, erase everything and just do the
tutorial. So I did the tutorial and then I
started writing and I was like,
oh, I really want this functionality.
And so I went and I looked for it and I
installed the package.
And then I got the functionality,
went back to writing, and I'm like,
oh, my editor should really be able to do
this. And I thought about it.
So a lot of it came down to the experience of
what they're trying to accomplish.
And really helping ask them that.
I had 1 mentee had used Vim for a long time
and then was exploring using Evil Mode and
Emacs and we had conversations and it was
like go back to Vim like you were using VS
Code just go back to Vim and they went back
to Vim and then they started writing,
well, they went to NeoVim and they started
writing Lua plugins for stuff and it just
helped free them and they gained that
ownership in their text editor.
So I try to have them think through what are
the common tasks that they're trying to
accomplish and then thinking in terms of
that. So instead of going and finding a
solution, understand the problems they're
experiencing, which tends to be what we
should do in software development.
Instead of implementing the solve a problem.
Sometimes It's fun to implement an idea.
[Speaker 0]: Yeah, I think it's really the crux,
really, when it comes to software
development, because what is at the crux of
any kind of engineering?
Well, it's the problem you're trying to
solve. If you've got 2 islands and you need
to join them up together,
well, I need to build a bridge.
Now, obviously with software,
we have problems that defy the law of
physics, which is great because we get very
complex problems that are very exciting to
solve. But when it comes to onboarding people
into those ways of solving problems,
well, I think mentoring,
The key behind mentoring is that together,
we're going to look at a problem and we're
going to try to see how high would fix it.
And you're going to try to appreciate whether
this is something you would do as well or
would like to do.
[Speaker 1]: Yep, Absolutely. Yeah,
it's really taking time to walk with them on
the journey to understand what's frustrating
them. I have a coworker we've been working
together for a very long time.
She is not a fast navigator of her editor,
but as we've talked, that's not where she's
looking to get better.
She's looking to get better at asking the
questions of the clients early so that we
don't go down long paths of implementation.
So it's been great because she's not looking
to get better at her text editor.
She's adequate for how she navigates.
Other people look and they're like,
man, I want to do it faster.
I want to do it different.
I want to do it better.
And then we have a different conversation.
[Speaker 0]: Right. All right. Moving on to the next
question. I've been using Emacs for about 30
years and I find it really difficult to
figure out how to help people get started
with it So I guess my question is the same as
the green question right about it.
I think it's slightly different though You
could it is more about well go on please.
Yeah
[Speaker 1]: so My wife a while ago,
talked about the idea of,
relative to anybody, I am an expert or
slightly more informed on a topic than the
person quote behind me.
And there's a person ahead of me who's
slightly more informed than I am.
And so what we're looking at is perhaps with
30 years of experience,
introducing someone to Emacs might be
difficult because you've you're too much of
an expert. So maybe the there's a an idea of
like what are the principles of pedagogy.
I know we that was talked about yesterday in
a presentation about like here's a
constraint, you're using Emacs for the
course. But so it's that idea of sharing what
you have, where you're at,
will, I think by nature,
move the entire queue of people,
like they don't really exist.
I mean, they do, but they don't.
Behind you, it'll help move them together
forward just a little bit.
And maybe we all move the condition together.
So It's not a only 1 person kind of thing.
It's a mindset of improving shared
understanding.
[Speaker 0]: Exactly, and I'd like to come back on
something that you mentioned in your answer,
because it's, you know,
what the person asking the question
mentioned, 30 years of advance,
basically, on starting Emacs.
You know, that's a lot of time,
And you tend to equate this to a massive gap
in terms of skills between the 2 people.
And whilst it's obvious that would be a gap
of skills. You know, I find that learning in
terms of pedagogy works best when the person
doing the teaching is very close in terms of
skill levels to the person being taught.
Why is it the case? It's because it's much
fresher in their memory what are the
different elements that they have to go
through to acquire a particular skill.
To go a little bit into the theory,
I'm not sure if you're familiar with Vygotsky
or at least the I plus 1.
Are you familiar with this,
[Speaker 1]: I am not, go on.
[Speaker 0]: Jeremy? So I used to be a teacher before,
and it's 1 of the things they taught us.
It's about the fact that when you are trying
to make someone acquire a skill,
I represents the current knowledge,
and plus 1 is the thing that you should be
teaching them and the theory behind it is
that it's much easier to teach someone to
teach something to someone when they only
have to focus on plus 1 i.e.
Something that is very close nearby to them
If you go with something that is I plus 2,
I plus 3, or god forbid I plus 10,
it's going to be much harder for them to get
to the understanding because the distance is
much greater. And that's why I think
mentoring can be taken in 2 ways.
It could be a mentor who's merely ahead of
you by plus 1, or it could be a mentor that
is ahead of you by plus 10,
but who has the understanding of what plus 1,
plus 2, and plus 3 is.
[Speaker 1]: Yeah, and it can be very challenging to
unwind that. I know if we think about all of
our hands or input methods have a memory of
something that I honestly couldn't tell you
what it is. Right? Like,
I know how to do it on a keyboard,
right? We've internalized so much.
And so, yeah, how to walk backward is a
distinct challenge and being curious with
them and close to them and not asking,
trying to diffuse questions and not ask like
leading, not overly leading.
An example, early on in my mentoring career,
I was working in a community project,
and I really wanted to go in and say to
everybody, why do we suck at sharing code?
But instead I said, wait a minute,
what would be the question I could ask the
group in which I could then ask my question?
So instead I went into the group and I said,
how are we doing about sharing code?
And collectively, we were able to establish
we didn't feel very good about it.
And that conversation now 9 years ago,
helped move a process along for the last,
like it gave it energy for 9 years of how
we're sharing and how we're approaching
stuff. So yeah, the curious questions are
super helpful.
[Speaker 0]: All right, lovely way to finish this point.
We have about 10 more minutes so I'm glad
that we have a little bit of extra time to
answer the questions because we have a little
more. All right, I'm gonna switch to the next
question we can come back to people reacting
to what you just said a little bit later.
[Speaker 2]: Sure.
[Speaker 0]: All right, have you encountered anyone that
are being negative about the fact that you're
using Emacs, assuming that they just don't
know or have misconceptions about Emacs and
nothing malicious? If so,
how do you handle these kinds of people?
[Speaker 1]: Sure, So at work, I get a gentle elbowing of
like, oh, Jeremy's going to talk about Emacs
again. So it's not entirely...
Maybe it's a little dismissive,
but I don't actually care because like it's
like being, I don't know,
it's like being made fun of for using a
particular type of pen.
Like goal is to write something,
right? And I'm using a pen that gives me joy.
When I talk with my mentees,
like I want to meet them exactly where
they're at with their code and like what
they're comfortable with and help them remove
any of that potential like inadequacy,
sense of inadequacy or imposter syndrome or
any of those things because The goal is to,
for me, to be better at computering.
Like hop on my computer.
I want to be able to use it at a speed of
thought that doesn't introduce a lot of
friction. Another speaker talked about that
using HyperBowl and a couple of plugins to
write stream of consciousness.
And that was an important consideration.
I want my text editor to flow with me.
And so I'm like, well,
Emacs flows with me smooth.
Like you can deride it all you want.
It doesn't thread very well,
but it's just me on this machine.
I don't need it to overly thread,
at least for my use cases.
[Speaker 0]: Yeah, I can only agree 100% with what you've
just said. And it's very easy to dismiss
stuff like Vim or Emacs based on the very
trite sentences that everyone use.
But at the end of the day,
I really like what you said.
Those are just pencil that we're using to
express ourselves. And we're doing something
a little more fancy than just writing words
on a page. But ultimately,
It's just text at the very bottom.
So whatever helps us write this test,
this text more easily,
you know, it's always good.
Yeah. All right. Moving on to the next
question. I love the attitudes and worldview
that infuse your blog post and your talk this
weekend. Learn something every week.
It's cumulative. English class was the most
important. What other advice do you have and
how is it generalizable to those of us who
are not devs?
[Speaker 1]: Sure. So I think 1 of the really big changes
for me, and I talked about this in the
writing Q&A, is switching my blog from a
topical 1 about role-playing games and board
games into anything that I think I want to
write. And that shift happened about the time
that I was really exploring using Emacs for
writing. And so previously I had,
I would write blog posts in Markdown using,
or I would write it in the web interface.
And getting to the point where my writing was
the same as my coding,
was the same as my RSS consumption,
was the same of a lot of these things,
freed up my general interests so that they
all can kind of play in that space.
So and that's the, I think,
Feynman said, like, his notes are his
thoughts. It's not him thinking,
I mean, they are him thinking as well.
So it's really framing it that way.
And then for not devs,
My daughter has been doing screenwriting and
she just had her school license for the tool
that they use for writing screenplays.
She had to pay for it on her own.
And I was like, hey, let's take a look at
Emacs. There's a package for this.
Maybe it makes sense to you.
So I think the, really to summarize it is
like the broad curiosity in like,
I have a liberal arts degree,
I have barely any computer science classwork
practice. I have a lot of practical
experience doing software development,
but theory is minimal.
Instead, I look to things like Lord of the
Rings or role-playing games or poetry or
history or whatever and be curious and Then
be playful The introduction of git locally
where I can just have a Git repo means my
text is recoverable. I don't,
I can play. I'll just break it,
I'll change it. It's software,
let it be soft. It's not hard.
It can be hard to work with it,
but let it be soft. Let it be pruned,
let it go away, let it die,
let it come back.
[Speaker 0]: Yeah, That's a lovely attitude to have.
I mean, I've already talked about my past as
an English major in 1 of the EmacsConf talks,
but just like you, I don't have a comp sci
education. I just started with needing a
better pen, and that was about 10 years ago.
And now I find myself hosting Emacs Cons,
but it was a very incremental process,
a very cumulative process,
to reuse the word that we used before.
And What I also like about people outside of
CompSight using Emacs,
and we've got plenty of such examples in the
presentations we've had this year,
but also last year, is that you get so many
different windows into how people are using
Emacs, and it kind of harks back to what I
was saying before about Emacs being a
platform with many horizontal packages
permitting any kind of workflow imaginable
and some people are going to gravitate
towards old mode. I think it was your sister
that you mentioned that was looking into
packages for writing screenplays.
Well, we've got such a thing in Emacs.
I mean, a screenplay is just a monospace font
with some fancy formatting.
It's not very complicated.
And if you can get behind,
you know, someone using such a stable format
for writing screenplay with many rules,
but ultimately all the screenplay look the
same, well, Emacs is kind of just the same.
It's about standardizing the way you edit
text. So I think your sister was already half
[Speaker 1]: Yeah, it was my it was my my daughter.
I'm trying to sell her on.
[Speaker 0]: on the idea. Oh, no, sorry.
[Speaker 1]: Yeah, she also picked up programming just 1
day and was like, I forget that.
Like she was playing with a stage manager
programming thing or like have a little
avatars moving around.
And so she's got a predisposition to like the
craft of things. And I think that's another
aspect is like, I'm not,
I mean, I appreciate science.
I'm here for a scientific approach,
but I also Really enjoy the craft of things
Playing with it Like this is my playground.
I love kind of hacking on it and looking at
packages and Seeing how I might use it pick
it up for a little bit and then maybe I
forget about it
[Speaker 0]: Right, well Jeremy I think that was Lovely
finish. Oh, sorry plasma.
Oh, sorry. I thought he was someone on Mumble
talking to me. I'm actually going to have to
be sorry because we only have about 50
seconds until we move on to the next talk.
But please, Plasma Strike,
If you want to ask your question to Jeremy,
by all means, stay in the room.
[Speaker 1]: Yep, I'll be here.
[Speaker 0]: And we'll be recording all of this and we'll
put this later on the talk page.
So Jeremy, I'll have to say bye now because I
need to prepare the next room.
But It was lovely talking with you and thank
you for all your answers.
[Speaker 1]: Absolutely. Thank you.
[Speaker 0]: Bye-bye. Bye.
[Speaker 2]: See you. Hello. One of the things with Emacs is
it's not... It's like when you change the
file management, you just change very,
very small amounts of what exactly you need,
you want to change. Like you go from text
editing to your file manager,
you're not changing your theme,
you're not changing your font.
[Speaker 3]: And you
[Speaker 2]: use your bookmarks, you use your bookmarks in
your emails, you use your bookmarks in your
org-mod documents, you use it in E-dub,
W-W buffers if you use that,
but it's just the, Yeah,
it's just the least amount of Incremental
changes
[Speaker 1]: yeah, you're when you were talking about like
the Reducing friction like turn off editing
or not editing, but auto correct while you're
typing, it's absolutely spot on.
You're wanting to get whatever is flowing
needs to keep flowing,
like as a programmer or as a creative,
anytime I can hit flow is my goal.
And so paying attention to what removes flow
or hinders it or saps energy and that unified
environment of Emacs is really helpful to
maintain that. So yeah.
[Speaker 2]: I think it's about speed and then once after
you get some of that, then you're like,
well, yeah, it's important,
but this is like the last thing I care about.
[Speaker 1]: Right. Speed is all like,
Yeah, there's a quote that I love called,
I forget the author. It's,
there is a connection between slowness and
remembering and fastness and forgetting.
And the slowness is an interesting,
like it's, I am moving fast in Emacs because
I've forgotten how I'm doing it.
I just do it now, right?
And then the slowness of like being in my
thought and staying on that stream is where I
want to be and ride whatever that pathway is.
And a text editor is still hard to do that
because if I were using a pen and paper it's
more cumbersome to auto-edit.
But I can't get it out without losing my
thinking. And so I ended up having to type
it.
[Speaker 3]: Something I've been experimenting with is
using, well, recording.
Some other people are using dictation for
this to just get the blur out of the ideas
and you can go back and glean some of that
stuff out of it.
[Speaker 1]: Yeah, what I will do when I'm capturing like
quotes or epigraphs is I will almost always
turn on dictation because I got a book in 1
hand. So I'm like, on goes the typing.
And yeah, that is, there's a,
I'm really thankful that that exists as well.
Like my mother is blind.
And so having that helps her and me
communicate Through text because we're both
able to appreciate it And use it in a way
that is accessible for both of us
[Speaker 3]: Go ahead
[Speaker 2]: There's the L feet to package which will
which will allow you to both of us.
There's the ElfieTube package which will
allow you to subscribe to a YouTube channel
and then download the subtitles and give you
remote control access to the MPV player to
watch the YouTube thing.
And considering you have a really big
subtitle thing that you can click at the
various different places,
it's really surprising about how different
that makes YouTube feel.
[Speaker 1]: Yeah I've...
[Speaker 2]: And then on top of that about how much like
if you've used it why would you never have
thought about that before because it's...
Right. It's even better.
[Speaker 1]: Right absolutely. Sasha?
[Speaker 3]: Oh I would say I do use the caption slot also
when I'm skimming through stuff for Emacs
News. But for books specifically,
I often use Google Lens to just capture the
text and copy it so that I don't have to deal
with recognition errors or whatever.
really useful.
[Speaker 1]: It's just So 1 of my hobbies is role-playing
games and the tabular data that is in the
role-playing books is never in correct,
like copy it out. And so I was like this is
really annoying And I ended up taking
screenshots on my machine,
running Tesseract to pipe it in,
and then using Emacs to like edit it because
Tesseract adheres to the column format that
I'm looking for. And I'm really thankful that
we're at a place where the OCR is in good
shape. That's part of my day job is working
on some old documents that OCR is good,
but not great because of like their 19th
century documents, but having that ability to
me is really powerful because we're gonna be
able to share that text And also then once
it's understood in what it's ASCII or UTF-8
encoding is, it can be translated as well.
So we can make it even more generally
available, which I think is a nice thing to
have.
[Speaker 3]: I wanted to go back to the topic of mentoring
since that's something that I'm very much
interested in figuring out how to facilitate
in the Emacs community.
Other people have been working on kind of
remote mentoring initiatives with Emacs
Buddy. And there are meetups as well that
kind of get that sense of like,
you know, what people are doing things and
then somebody can look over their shoulder
and say, hey, have you ever thought about
[Speaker 1]: Right.
[Speaker 3]: this? Is there any things that you can can
suggest specifically in the context of this
kind of mentoring over a distance?
Any chance you've thought about it?
[Speaker 1]: I'm on the Emacs buddy repo and I've had a
handful of people reach out to me.
Most often we start with email and every so
often it'll be like, hey,
let's hop on some kind of video or audio,
even just done phone calls.
Yeah, I haven't done any of the like shared
buffer stuff. I know like at work we have
replit where we can use that.
Seeing the presentation on CDRT,
I was like, oh, that's really great.
But what I found is being able to see
someone, I don't get to see them typing,
but I get to see the results of what they're
doing on the computer.
You know paying attention to that is the big
1 to help them think of a different way.
Depending on where they're at when they're
writing if they are like at a pause point,
if I'm at my best, I'll be like,
so what are you thinking?
Where are you stuck? Cause maybe they're
trying to navigate somewhere and that starts
to create a point for a conversation of like,
how do I go from here to there?
And so it's looking for those moments is
where I try to operate.
[Speaker 3]: And sometimes, you know,
so there's kind of like,
how do you go from here to there?
And sometimes even the,
what there should I be going for is a
challenge, right? Because especially with
Emacs newbies, they might not necessarily
know what's possible or what's nearby in
terms of what their current knowledge is.
And that's an interesting thing to map out.
Is that something that you've thought about
and as you're conversing with all these
people?
[Speaker 1]: The main thing, the main function that I do
talk, I talked about this,
I think in the, I did in the talk where it's,
I need to jump between the test and the
implementation. And since 2005,
I've had that. And I watch folks not have
that. I'm just like, Oh,
my goodness, like there's a convention in the
language we work in. Let's get that
installed. Let's get it going.
Like that's 1 thing, that's 1 access I know
they're gonna go to. Another 1 is the jump to
definition. And I've never gotten like C
tags. I haven't really spent time on that,
but with the advent of LSP,
it works a lot better.
And so I try to get people to use that.
And what I've noticed weirdly is like VS
code, it doesn't work as well as I would have
thought. And there's lots of like errors and
warnings popping up in the bottom corner.
So I'm like, well, you gotta pay attention to
that. But I try not to get into anybody's
business about like, I'm like,
maybe we could fix that.
Maybe we can clean it up,
but it's your, you know,
it's your car you're driving.
I'm just long for a ride.
It's safe, we're fine.
So yeah, that jumped to definition.
And then the, I mean, search in project,
like everybody understanding that.
But I feel that the, like I mentioned in the
talk, the advent of orderless is just huge.
I did not realize how much I loved it because
I don't have to think about things and can
have slightly more forgiving default
searches. Yeah, it's hard.
The principles of organizing 10 things versus
100 versus 1,000 versus 10,000
are just, they're not the same.
[Speaker 2]: A common hang up for, that would easily make
you skip off of Emacs,
Org Mode, Hyperbole is if you go into any of
those with the mindset of I'm going to master
it all before I use it.
That's not going to work.
[Speaker 1]: Absolutely. I was terrified of org mode when
I started because I'm like,
I don't need to organize my life.
I need to like type. And then that,
yes, incremental. What did I find helpful?
[Speaker 2]: It's for the, for the Linux CLI toolbox,
but you have to look at them as more of just,
I have a whole bunch of tools available to me
and I'll just pick them up as I have a
problem and as I, and as the tool can be
useful for this problem and incrementally.
[Speaker 1]: Yeah. It's
[Speaker 3]: actually, so, in fact,
when when I'm mentoring people,
I have to take a step back and say,
OK, what are we with the note taking thing
that you mentioned in your talk.
How do you like to take notes?
How do you like to keep track of the things
that you want to work on when you have an
idea? Where does it go?
Because if you improve that practice,
and especially if you can sneak some literate
programming in without them really noticing,
then it becomes the thing that they can use
to learn more efficiently.
[Speaker 1]: Yeah. I was presenting at,
I wasn't presenting at this seminar,
but I attended it and it was a crash course
in command line tools.
And I didn't, I mean, I went there to listen
and there was a point where the people were
like, I use this command line tool.
I'm not a programmer, I'm a librarian,
I'm an archivist. I use it,
I'm like, great, I'm gonna remember this.
And then I forget about it and I might use it
6 months from now. And so I tried to
encourage everybody, like come up with,
like you have a degree in knowledge and
information, management and organization,
introspect, right? Spend some time on it.
Think about what is a way that I can do this
and ask questions to get to the point where
you can create a discoverable inventory of
the tools you've used and what that means.
And my answer was, I use literate programming
or I shove it in my bin directory in GitHub
and like, I don't know if I'll remember it,
but I can go there every now and then and be
like, oh yeah, that command.
So note taking is the most critical component
of any number of work.
[Speaker 3]: Sometimes I wonder if we can maybe
externalize some of all this mentoring
insight and kind of like this choose your own
adventure thing, where the person says,
OK, this is what I got at the moment.
And then through a series of diagnostic
questions, we can figure out what hurts,
right? Where is the thing that they would
like to learn more about?
And then, okay, if that hurts,
try this and keep that manageable.
And if there's only a way to also be able to
capture each person's state,
the things that they know about and have
absorbed into their habits.
So you can say, right,
you know, my recommendation for someone who's
brand new to org is not the same as somebody
who's like, okay, they've got their agendas
and everything set up already.
Just how do we represent that as like WISPs?
[Speaker 1]: I've given up on trying to map that.
I like the one-on-one conversations and
discovery. And I think that's the part where
you're looking at, you're asking about how do
we make the process and like I heard,
like how do we help equip those who want to
mentor as well, right?
Making that, reducing the barrier in a way.
[Speaker 2]: I don't
[Speaker 3]: know, I think what you said about enjoying
the conversation and the fact that it is
really unique for each person,
each situation that comes up.
I suspect what it just comes down to is more
like capturing the good stuff of each
mentoring session or whatever.
Maybe it's getting the mentees to write very
short blog posts about what they learned this
week or whatever else.
And then, oh, yeah, you know,
we ran into the same problem 3 months ago.
Let me go look it up. And then that becomes a
reusable segment.
[Speaker 1]: Yeah, when I worked at a coding bootcamp,
they tried to encourage the mentors to say,
like write a blog posts for the mentees.
And that was, some of them did,
but it was intimidating because like they
didn't wanna, I don't know.
Are we enculturated in an education system
where we can't get it wrong or we need to
look like we're more of an expert than we
are? I don't know. I have a lot of like,
I'm a middle aged white guy,
I've got a lot of background and privilege in
my career. So like, it's not as scary to put
something forward for myself as it might be
as like a woman in tech or a minority in
tech, because that's a different place.
And I want to really get done with that.
I don't like that at all.
And I would love our, like,
just write. And it doesn't have to be public,
right? You don't have to make it public,
but if you make it discoverable to yourself,
that's the big thing. And 1 of my coworkers,
She doesn't blog, but she definitely has a
large knowledge base of stuff that she
references because she's pulling out all
kinds of stuff and I'm like whatever you're
doing is working.
[Speaker 2]: I'm trying to have something.
There's a good opportunity with the Emacs
conference to accomplish this.
So like if you make like a,
because 1 of the things with it is,
Sasha, you do a really good job of using all.
You're the 1 who has the Emacs buffer with
the time on it, right?
Is that your screen that's being recorded for
that? Because you have a really good example
of a really consolidated emacs workflow that
works really good with the Emacs conference
so if you had like a page that described how
you did all that stuff in the emacs
conference like on that and then we then you
did even more stuff with that.
Like you do the org mode file that you can
just put straight into your agenda for your
time zone. I used that.
That was really nice, just because it allowed
me to reorganize and see how all the talks
would work together, and which ones I wanted
to do. You could add Org Mode to do tags with
that, to say, plan to watch,
I want to re-watch but I have to skip it
because there's another talk I'm watching,
you know, like a couple tags don't care about
so that people can easily tag all the talks
that they care about on top of that.
And then with, I'm going to try to email
these ideas on it too,
but then you can also,
you have the either pad questions,
you could put all those in org-mode documents
with crdt.el, post all those in the Emacs
conference and then people could use that to
edit all the documents at the same time so
then everybody's actually collaboratively
editing. And then people have all the
scaffolding for if you do the Emacs meetings,
buddy meetings, because they know exactly how
to set it all up with that.
And then you combine it with any number of
whatever chat video program so that people
can talk and watch each other.
[Speaker 3]: I have a presentation later on EmacsConf
infrastructure and I will capture the note
And maybe I can include a mini tutorial in
the schedule org so that people can be like,
hey, by the way, you could refile these
things into your own org files or tag them
and here's a list thingy that filters your
agenda by your tag or whatever,
it'll be fine. But it's,
you know, it's, it's kind of like,
it is, you're right. It is an opportunity to
expose people to more things that they could
do in kind of a scaffolded way.
That's interesting stuff,
but I, your point actually driving also going
back to previous parts of conversation about,
it's difficult for people to share.
When you realize, like I keep telling
everyone, hey, if you blog about Emacs,
you'll not only learn things for yourself and
make things more searchable,
other people will come by and tell you even
better ways of doing things,
which is something that always happens to me
too, and I'm posting this.
Has that ever happened?
I'm sure that happens to you.
[Speaker 1]: It's great. I love getting those things like,
yeah, Howard's presentation on the game
stuff. I'm like, I'm going to go explore that
now. Because it's my little house.
[Speaker 3]: You just have to make it less intimidating,
right? And kind of change people's perception
that, oh, blogging or sharing tutorials or
whatever, that's then when you're an expert,
when you're an experienced,
to rather working out loud,
thinking out loud, this is just that I'm
learning along the way.
And it might not be the most efficient way to
do things, but this is what I'm doing right
now.
[Speaker 1]: Yeah. And I had a handful of times where I
posted something and someone was like,
Oh yeah, this is, this would have you tried
this? Or I'm like, I didn't even know that
existed. That makes this easier.
[Speaker 3]: I've written this like little hack and I'm
very proud of it because it's clever.
And then someone's like,
Oh yeah, there's a package for that.
It's called this. Right?
[Speaker 1]: Thank you. Right? Yeah.
It's just it's Yeah, it the fantastic part
it. I played Legos as a kid and me and my
friends would play Legos at the house.
And Emacs has this like feeling of playing
Legos with a group of people across the
world. In fact, 1 of my current,
well, 1 of my best friends now,
we met a year ago. And it turns out we both
love Emacs. We talk every Thursday and we
hang out and we talk poetry.
We talk Tom Petty. We talk Emacs.
We talk software development.
He does Python. I do Ruby.
Just anything and everything.
And it's also we both are curious because we
don't use it the same way.
And we like how we accomplish a task.
I think that's the fascinating part to me is
we each get to explore our way to interact
with the computer uniquely by whatever
pathways are in our brain.
We see stuff, we pick it up,
and we're like, that doesn't quite work for
me, or, oh, that worked really well.
Fascinating, like, I don't know,
shared art installation.
[Speaker 3]: I think you're onto something that I also
resonate with. 1 of the things that
fascinates me about Emacs is all these
people's configuration jobs are crystallized
workflows. And it's really when you talk to
them and you see how they're using it,
and you understand a little bit of their
story and things that they need,
the ideas they've had,
that's really fascinating.
And I think that's 1 of the things that makes
it possible to be perpetually curious about
Emacs, because it's not just the,
you know, this is the,
these are all the Lego pieces there are,
but you have this community of people who are
using these Lego bricks in such fascinating
ways and always inventing new things for it.
[Speaker 1]: Yeah, new colors, new shapes,
they show up. It's great.
[Speaker 2]: It's like powered twice or something like
that because it's like you can use Emacs with
a thousand different customizations and then
you can interact with people who can each
also Use Emacs in a thousand different ways
[Speaker 1]: Mm-hmm, Right,
[Speaker 2]: Then you can both learn from each other and
that can go a thousand different ways.
So it's like, it's like powering your
[Speaker 3]: Yep.
[Speaker 2]: Something along those lines with each other
and like how different and how much you can
learn from it.
[Speaker 1]: Yeah, the kind of touching back to the mentee
that I have who went, he had originally
started in Vim and then did VS code.
And then we were talking and he was gonna go
into Emacs and I didn't have a,
I mean, sure, that'd be great.
But he's like, I don't have a lot of time.
And I'm like, well, go back to the place that
you have that experience.
And he did, And then he started writing Lua
plugins. He was like, this is so much fun.
I'm like, good, you're on the right path.
Like maybe there'll be space like over time,
how Lua plugins and Emacs,
you know, who knows? I know that Lua,
you can use Fennel to write Lisp.
In you write Lisp and it will transpile
Fennel to Lua. I forget how that plays out,
but we're not too far away from those 2
things being able to play.
But I guess the question is,
does it need to? I don't know.
[Speaker 3]: Yeah, I mean, even without direct code
translation, the cross-pollination of ideas
is certainly enough. I love the fact that
people are borrowing ideas from VS Code and
from Vim and people look at Emacs videos and
other things and say, hey,
that's a cool thing in Emacs,
but I don't want to ever use Emacs.
I'm going to do that whole thing in Vim.
And I think that's fantastic.
[Speaker 1]: Absolutely. Yeah. I mean,
monocultures die. They just do.
And computer software and computer industry
pushes towards monoculture because of it
wants the highest efficiency.
And I'm like, I'm not,
I mean, sometimes I'm here for that,
but most of the time I'm like,
I want the bumps and the warts.
I want the art, the human interaction,
the like, why are we trying to accomplish
this?
[Speaker 2]: It determines, It depends on how you
determine efficiency because Emacs is far
Even if Emacs isn't multi-threaded is far
more efficient because because of the mental
model shifts because you're able to play and
tweak with it and then have as much of a
mental model shift for each task change that
you want. Like, yeah, I want my file manager
to not be an editable text buffer.
Although sometimes when I want to rename
files, I want it to be that.
[Speaker 1]: Right. Yeah, and really,
like, to be clear, I like the idea of Emacs
as a projection of, like,
how I think about stuff.
So it's that whatever my neurons have made a
good pathway for, I can have Emacs flow with
me. That efficiency side is I want a factory,
I want to stamp out widgets,
I want them to be the same,
chop, chop, chop, chop,
chop, chop. That emacs runs in its spirit
along with vim contrary to that and I like
that
[Speaker 2]: emacs is a 1 of the things with the like the
mental model of Emacs is you should look at
Emacs like this is probably something that
people should think about when they are
introducing Emacs to other people is Emacs is
a treasure trove of conflicting ways of
solving the same problem so you get,
so you can individuate yourself on how you
actually want to solve that problem.
[Speaker 3]: Do you
[Speaker 2]: want Vim bindings or not?
You get to choose. Or do you want Meow
bindings? You can choose.
[Speaker 1]: Yep. Absolutely. Yeah.
I, I came, I'm, I consider my,
I, I lament because in 2005 I almost picked
up Emacs and it wasn't until 2020 that I
picked it up. And fortunately I picked it up
when I did because I was able to look at
things I had previously accomplished and find
analogs And things like Helm and Ivy were
both 2 different ways of doing it and consult
and then, or Selectrum and then consult,
like they all had these different ways And it
felt great because I could find the thing
that worked for me. And they're close,
but then they also like branch out and do
things differently. And it was so fascinating
to explore each of those and spend an hour or
2 on a primary task in seeing where that
little thread went. It's great.
[Speaker 3]: So tell me a bit more about how you got into
Emacs. What pulled you
[Speaker 1]: in? Yeah, this is a great little moment.
I started in TextMate,
That's kind of where I would say the
beginning for coding for open source and
using open source software.
Sorry, using open source frameworks and
languages. So TextMate to Sublime,
basically TextMate couldn't search very well
at the time. It was getting bogged down.
So I moved to Sublime,
which solved it, felt well,
carried the same UI look with me.
And then when I was at a conference,
there was a talk about using an open source
editor. I was like, yeah,
I need to do that. I really need to.
And Adam was viable. I was like,
Oh, this is really close.
I'll use it. And I didn't think too much
about it. And then the writing was on the
wall, that Adam is going away.
And I was like, I need to find an open source
editor that speaks to me.
And I said, all right,
Vim, This is my fifth time.
I will try. And I gave an earnest 2 weeks.
And I'm just like, I cannot get this mental
model in my head. So I'm like,
all right, I set it down.
I can use Vim, I'm comfortable.
I think it's a great tool,
but my mental model doesn't map well there.
And I'm like, all right,
here we go, VS code. All right,
you're fine. But I feel like I might
accidentally charge my credit card in the
text editor on the default installation.
And that was alluded to by in 1 of the talks,
I forget who he German about mandating Emacs
in his computer science classes.
He mentioned like the Microsoft Office or
Microsoft Marketplace felt like it was there.
So that was 1, but the moment where I was
like, oh, hell no, VS Code.
Or I wanted to use a commit from the command
palette, and it brought up an HTML text input
area, and it was 30 characters.
And in that moment, I saw several things.
1, I'm like, no, that's terrible because I
want to write something meaningful.
2, this is the behavior that this tool is
modeling. That tells me that history and like
how it is built is not important.
And yes, I can fix it and get around it.
And I kind of did. And I was like,
the principles are just,
they're there. And then also understanding
like there's a bunch of telemetry underneath
it. So I used VS Codium,
there's still telemetry.
And I was like, all right,
2005 Jeremy, let's go try Emacs,
let's see if we can do it.
And I hopped in, I grabbed Space Max.
I was Like, yeah, this works pretty well.
Like, I don't know how to use the keys very
well. I'm figuring it out.
And. And I was like, you know what?
Why don't I do the tutorial?
And it was the tutorial that hooked me.
Not because everything made 100% sense
because Emacs is old. It had a lot of
language that was hard to internalize,
but it presented it in a conversational I'm
gonna meet you where you're at and we're
gonna walk with it together.
And then when I was done with the tutorial,
I said, you know, Space Max,
I don't understand it.
And it's got some performance.
It looks like there's like extra stuff that I
may not need. So I went vanilla,
nothing Emacs and just started working.
I was like, well, how do you do this?
[Speaker 2]: Although 5 minutes of Space Max or any of
those Emacs distribution shows you
unequivocally how different it can be.
[Speaker 1]: It was, it was, it was so amazing,
and it was so good. But I knew my nature was,
I was frustrated in, like I wrote an Atom
package, and that was awful.
It was so terrible. But I knew what I wanted.
And then I wrote, I started writing a VS code
and I'm like, oh no, no,
no, we're not here for this.
And so, yeah, SpaceMax showed me like this
can look and feel like a space that I used to
be in. And then it has more functionality,
more stuff. It's gonna be great.
And then I just was like,
I'm gonna go find my own.
I'm really happy that I took the path because
I just worked, wrote, and I'm like,
I bet you this, I bet you the tool,
I know it can do this because it,
you know, text me, did this or Adam,
I'm gonna go, I went on to Melpa and I found
a couple different things.
I'm like, all right, let's try them.
I'm like, that's the 1,
great. Roll it in, keep working.
I know it can do this.
Find a package. And so I built up this sense
of the packages and my strategy was go to
Melpa, look at, that was the 1 that showed
up, look at the number of downloads.
So I'm like, what's the high stuff?
What really gets used?
There's something there.
And then also look at what was most recently
updated. So kind of pivot on those along with
a keyword search and I found the tools that
worked well. But it really came down to like
that VS Code I was almost in,
but I've been around long enough to know what
Microsoft will do.
[Speaker 2]: For me, I was always like customizing things.
I think I saw some interesting emacs videos.
I wanted to try Well, I wanted to try working
more with the keyboard and not need I think
[Speaker 1]: mm-hmm
[Speaker 2]: the mouse on a laptop And so I was looking
explicitly for ways to just work on the
keyboard only, which meant that I wasn't
looking for programs that followed Cua,
which really leaves you like 2 options,
Vim and Emacs. And when I looked at the 2,
I saw 1 of the big differentiating factors I
saw was Tramp, which was,
oh, you mean I get a SSH into a machine and
have my customizations too?
[Speaker 1]: Yep. Yeah.
[Speaker 2]: And then I started using Emacs more and more.
Eventually I combined that with a tiling
window manager, NixOS,
and started banishing as much of the GUI as I
possibly could, running MPV or VLC,
so I could edit so that my config files could
be keyboard oriented. My settings config
menus are now keyboard oriented.
And yeah, that was the incremental process of
just, yeah, making the computer nicer,
more efficient, and then you figure out all
the other advantages of the...
[Speaker 1]: Yeah. How did you get in to it,
[Speaker 2]: Oh, you're lost.
[Speaker 1]: Sasha? Your sound is gone.
[Speaker 3]: Sorry, my face mute button.
Okay, I'll tell you that story,
I get thought out of my head,
so I forget it. But what you described,
Jerry, about kind of starting with the
distribution and then pulling back and
starting with vanilla and building up,
kind of close the stories that I've heard
from a lot of people in the community where
the distribution gives them kind of an end
goal, at least work requirements,
So get the stuff done and they're not
slugging through the weeds around the start.
I have a hard time modifying it because
modifying the distribution itself is very
different from the tools they see.
They feel like they want to understand the
different possible part.
And so then they pull back and say,
okay, I've got this thing that can use
everything to just get some quick work done,
but I have this thing that I can call,
that's mine. And I understand because I'm
building it up from the ground up.
Okay, so that's like, oh,
interesting, there's a lot of people who are
like that, and it really helps them to both
have that insight, which is see through
distributions and also videos of other
people's workflows and press kind of
conference presentations often about
completely different topics,
right? So someone whizzing through Ruby on
Rails or whatever else and doing all of this.
But also having 1 help them break out,
okay, well, there's a lot of work from where
I am to where that is.
How do I do it without being overwhelmed?
Because if they try to learn everything,
they'll go crazy. And then they'll fall.
And the brain is super important.
And how I got into this whole eMac thing was
I was reading all the computer science books
in the university library and 1 of the Unix
power tools had a chapter on Emacs and had
them you know well there's another type of
whatever. Okay that's interesting so I went
and tried it out But the reason I really got
into it was because I was using John Wigley's
Planner Mode. This was before Org Mode came
about. So Planner Mode was a link.
I said, hey, this is great.
I'm looking for ways to help out.
If you need help verifying any bugs,
you know, send it to me and I'll do the
figuring out. He's an author and an inventor.
[Speaker 2]: And then
[Speaker 3]: he made me the miniature for it.
So I'm like, okay. And then that's how I got
to know this wonderful community of people
who customize emacs so much.
And it just goes there because really,
when you see all these different ways that
people use in all these different stories
that you get send off because they're using
it to bake sourdough bread and do knitting
and all the crazy things that people come up
with. I've been using it as an audio editor.
It's just weird. It's just fun.
[Speaker 1]: Yeah, that's great.
[Speaker 2]: Yeah. Every, Sasha, like 2 things that I was
meaning to say is every time I see the on the
EMAX conference the time that the scratch
buffer with the big clock that is ticking
down as and the multi multiple sized fonts As
I always think wow, that's really cool.
I didn't know Emacs could do that.
Wait, no, I saw that last year.
How do you do, now, how do I do that?
Cause that's not, and that's not something I
normally even think about Emacs doing.
[Speaker 1]: Right.
[Speaker 2]: I'll think about putting
[Speaker 3]: There's an EmacsConf-stream.el
in the EmacsConf-el repository.
Grab the link and open but you can grab the
code from there. It's basically the text
property.
[Speaker 2]: But it's a thought that has repeated multiple
years. Like, I didn't know we could do that
way. I thought about that.
I had this exact thought last year when I saw
it.
[Speaker 1]: It's, we're like, I'm at the point where it's
like I have memories of remembering doing
something. I don't have memories of doing it.
Like all of the things.
Like so it's again, we,
Emacs helps expose like the,
like it's, anything's possible.
And we see how it becomes possible through
other people. And then it gets our brains
thinking about other ways of doing stuff.
And I think that's the exciting part.
Dog who wants to go play Frisbee.
[Speaker 3]: And that's actually 1 of the reasons why I
want to encourage people to not only talk
about Emacs and write Emacs blog posts,
but also actually demonstrate Emacs in the
sense of doing something else.
So for example, we can match people at Emacs
if you're presenting about Ruby on Rails and
you're doing all of your and education and
things while you're presenting Rails,
you reach all these people who are interested
in Rails, developer Rails,
but might not have even considered Emacs.
And here, you know, you probably would.
I would probably have a hard time writing an
entire talk about adding text properties,
but the fact that there's a thing here that
shows, hey, this is possible,
Emacs can get people to think,
okay, so how do I get from here to there?
Just showing the possible.
Yeah. Which source code is in the,
whatchamacallit.
[Speaker 1]: Right, yeah. Yeah, I just saw that.
[Speaker 2]: There's a weird interesting thing how Emacs
dovetails with people who are interested in
making their own local first Zettelkasten,
because look at how many Zettelkasten
packages you have. Especially with how much,
like it feels like, it seems like Emacs has
more than Vim, but Vim is bigger or VS,
feels like it has more than Vim or VS Code,
and VS Code's bigger. I'm not sure,
but it feels like it. Same thing with that
HyperCore. That HyperCore felt more like a
local first peer-to-peer system.
So there's a weird dovetail where they want
the knowledge bases that are local first,
comprehensive, because 1 of the properties of
the Zettelkasten or Org Mode agendas is that
it's all your notes in 1 place.
It's not, you know, your notes in either pad
and your notes in Google Calendar,
your notes in 20 different places,
your notes in Evernote.
It's your notes in 1 program in 1 place
because you have to deal with them And
they're going to be in files on your hard
drive, and you're going to have packages
there. That's the other weird thing too,
is how many, like, you install an Emacs
package, 1 of the guarantees,
some of the guarantees you seem to get with
it is if it does use an external program,
it's going to have a lot of configuration in
Emacs. It's going to be installed.
It's going to be local first.
Cause like you have flow bits,
but how many programs like are,
are cloud first. And it feels like most of
those are like org Trello,
where it's like, I want to use org mode,
but other people use Trello.
So I'm going to be grudgingly using this org
Trello to be a bridge between the 2,
not because I wanted to use org,
not because I wanted to use Trello in the
first place or I started off with Trello and
now I wanna use org mode.
[Speaker 1]: Right, no, you're that local first.
The Thought I have is with the 2022 interest
rates going up, the era of free money,
or even like getting money for more,
more money than it actually costs Like it was
minting money. We are going to be seeing how
these organizations that had financial
runways, all of these cloud services,
what's not gonna last because there's no
funding. And like the durability of our local
first plain text, free open source stuff.
Like I won't have to do a content migration
unless I get a B of my bonnet and want to
like change from org mode to markdown for
some reason. Like I have it and Then I can
send it out. So there's also like that posse
principle publish on-site syndicate
everywhere Is what emacs and vim like they
allow for us to do?
[Speaker 2]: Well, that's part of the individuation is you
have multiple options of doing something so
you can choose something so you can take
ownership of your data in the way you want.
It all dovetails into each other and I think
that's something worth thinking about,
especially in relation with who should learn
and how should you introduce Emacs to people,
because like, with the idea of people should
try an Emacs distribution and then start
their own from scratch,
just so that they, like,
if you use it for 10 minutes,
you'll gain so much because you use your 3
and then all of a sudden you realize,
you also know how malleable Emacs can be.
And then you start saying,
now, how do I do that?
So I get to make those choices?
[Speaker 1]: Yeah.
[Speaker 2]: Or you might say, this person did it well
enough, I don't have to.
[Speaker 3]: That reminded me of something that I also
wanted to mention, shocking word,
as in malleability. Another tip I came
across, don't know from whom,
might have been from you,
I don't know, is to define aliases,
because we use different words from what the
functions are. It's 1 of those little meta
things that, you know,
If you keep calling it something else,
just define it so that you can call it like
commencing your words.
[Speaker 1]: it's interesting. Anyway,
[Speaker 3]: Yeah. Yeah, gotta go disappear and get ready
for my dog. Okay, I'll listen to what you
say. All right, I
[Speaker 1]: I need to take my dogs out and play Frisbee.
They have been so patient.
So it was great talking with all of you and
Sasha, thanks for the organizing energy
you've put into this. Plasma Strike,
thank you for your presentation.
I love this conference.
So thank you very much.
And now have a good rest of your Sunday.
Bye.