[Sacha]: I'll go live if that's okay with you.
Yeah, good to go?
[Raymond]: Okay.
[Sacha]: All right, going live.
[Raymond]: Let me just stop sharing right now.
[Sacha]: Hi everyone, this is Emacs Chat.
Emacs Chat 23.
Today I'm here with Raymond Zeitler who has been
using Emacs for a long time.
Your EmacsWiki page says since 2000.
And I know for sure that you've been commenting
on my blog since about 2008, probably even
earlier, I don't know.
Everything gets lost in the mists of time.
I would love to chat with you about the things
that you've learned over the years, what you're
still fiddling with, and the things in your
configuration or workflow that aren't obvious to
people who are reading configurations.
It's just Emacs Lisp, but it doesn't show people
what you do with Emacs that makes you stick with
it over all this time.
So yes, but of course, we should do a bit of
context setting.
You have a lot of different hats.
You're a historian, you're an electrical engineer.
How would you describe yourself?
[Raymond]: Well, right now, I would say I'm an
electrical engineer, but I spend most of my time,
instead of designing stuff, I work on the
workflow for the design.
And I'm writing scripts, you know, to automate
various parts of the design.
Now, I just want to pause here because I hear
like a 10-second delay.
[Sacha]: Yes.
Oh, you have the video open in another tab.
Yeah, so the 10-second delay is there in case we
need to panic, you know, in case you accidentally
flash something you'd rather keep private.
But it can be quite disconcerting to hear
yourself talking at the same time that you're
trying to say something.
[Raymond]: Okay, I think I fixed that.
Okay.
Yes, so I'm an electrical engineer, but I also
love to do scripting.
Automating any kind of workflow is my favorite
thing to do, and I would just love to go around
and help people to find ways to automate the
workflow.
Basically, I was doing that ETL,
you know, extract, transform, and load
many years ago, I mean, dozens of years ago,
and showing people how to do that too for them,
and you know, when they look at me and
they say, oh my god, thank you so much,
I'm so glad... You know, it used
to take me hours to do this.
Automating a design flow is a good idea
once you have all your script in place, that
serves as your documentation.
If there is a problem with
the design, you can go back to the script and
update it.
So the next time, you're not going to have that
problem, hopefully.
[Sacha]: You've been learning Python recently,
too, right?
I can imagine that helps a lot with automation.
Are you taking advantage of things like Org
Mode as well for the things that you can
partially automate?
[Raymond]: Absolutely.
[Sacha]: Tell us about that.
[Raymond]: Oh, I figured that we should save for the
last, because it could take the whole thing.
But yes, I started using Org Mode after you
jumped ship from Planner Mode.
I know that you and John Wiegley were big on that,
and I used to use Planner.
And I delayed switching to Org Mode, but
eventually I latched onto it really well.
So one thing I used Org Mode for at home was for
bill pay, you know, because you can schedule
things recurring.
So you got your mortgage, you can recur, you
know, and the recurrence is well thought out.
You know, you could have it scheduled exactly 30
days away or one month.
What I found recently, though, is you can
use the diary:
diary-float and diary-warning.
Those functions can be used in Org Mode in
place of the schedule.
So that's really cool.
I have a lot of meetings that occur, let's say,
the second Wednesday of the month and stuff.
There's really no way to easily do that out
of the box with Org Mode.
So that's fun to do.
Let's see.
I'm going to share my Org now, if you want.
[Sacha]: Sure, go ahead.
If that's okay with you.
[Raymond]: Sure.
Well, I deleted some of the stuff.
You know, not all the files are there.
[Sacha]: Thank you.
It's always interesting to see, because a lot of
times, when we're trying to demonstrate Org to
people, we're like, okay, here's a small
example. But when you see it in the context of
someone's actual life, with the tons of
reminders they have... Your agenda is very full,
for example.
I'm not the only one with things that are
scheduled for over 100 days.
[Raymond]: And actually, your talk isn't on here,
so that's kind of strange.
So, for example, I was talking about bills, right?
I don't know if you can see that.
[Sacha]: Yeah, I can see that.
[Raymond]: It's not the same.
[Sacha]: Yeah, I see.
And you're using the logbook.
You can keep notes in a task.
You can put all the things there.
[Raymond]: Yeah.
So, you know, something like a mortgage or your
utility, that's pretty standard.
That's just +1m, you know, for the
recurrence.
Let's see.
Yeah.
[Sacha]: Yeah.
So basically, you have the regular or repeat
things, plus one month or plus one week for the
things that can be expressed that way.
But you also use diary-float for the things that
are second Wednesday of the month.
[Raymond]: Yes.
So let me try a different Org file for that.
Oh, everyone, I have to do this too.
[Sacha]: Oh yeah, you can set a global font
default scale thingy.
I don't remember exactly how to do that, but...
[cut due to passwords] I'll move your screen
off the thing first while you talk,
and then I'll move it back when you're ready.
So we had a bit of a "Oh no, he's showing me like
meeting passwords online."
So if you saw that, which probably you didn't
because 10 second delay, just ignore it.
And then we'll go back and scrub things later.
Let me know when it's safe to look again.
[Raymond]: Okay, here we go.
So here's a meeting.
[Sacha]: Okay, okay.
We got this.
[Sacha]: I also want to point out, I love how
you're using links in the task title.
You know, that did not occur to me to have the
links right there so it's easy to get to from
just the overview.
[Raymond]: [cut due to passwords] ...which works
really in a diary file.
[Sacha]: All right.
Let me move it back so people can see.
[Raymond]: It works.
This is great because it works in Org Mode too.
If anyone doesn't know it, this is the month.
And true just means that this meeting occurs
every month.
And I believe this means Monday.
[Sacha]: No, Tuesday.
Although... Your comment says Tuesday, yeah.
[Raymond]: Yeah, Tuesday. So that's the second day
of the week, with Sunday being zero.
And then this is the week number, the second week.
Second Tuesday of every month.
And then you could just put the time there as well.
[Sacha]: Yeah, yeah.
I have actually personally never used this
syntax, but I see people use it for things like
Emacs meetups and they're like, okay, yeah, we
meet every second Wednesday or whatever, but
here's the thing that you can just put into your
Org agenda and it'll work.
[Raymond]: But the problem with this, though, is
that it doesn't obey the, you know, if you mark
it done, it'll be marked done.
So it won't show up again.
So I'm actually starting to put these in my actual
diary because
you know, I don't really need to mark the meeting
done.
[Sacha]: You know, you can take out, just remove
the scheduled keyword.
You can have the active timestamp and it will
show up on your calendar, but it doesn't have to
be marked as done.
And it'll just keep showing up whenever you need
to.
So this is the distinction between scheduled,
which is actually not like a scheduled
appointment,
it's like a task that you're scheduling for a
specific day, versus just using an active
timestamp, which is the stuff within the angle
brackets.
It can be anywhere in your entry.
It doesn't have to be the second line after your
heading.
Then it will show up in your agenda, but it's not
going to keep showing up like the next day.
It's not going to say it's overdue.
It's just going to be for that day.
[Raymond]: Okay.
Yeah.
There was somebody who tried to solve the
problem, though.
And they came up with next-spec-day, a function,
but it's not possible to compile that with the
modern Emacs.
So I'm just happy with the way I have it now,
though.
Yeah.
But when I first started using
Emacs, the diary and the calendar were one of the
first non-text editing uses that I had for it.
And I'm really getting back into diary.
I hope I don't show anything else.
[Sacha]: Tell you what, I'm going to move your
window away.
Okay.
And then you can do your thing and then I can
move it back when you're comfy.
[Raymond]: Okay.
[Sacha]: Yeah, I know how to do this now.
This is good.
I have two monitors so I can control.
[Raymond]: Where's my screen?
Oh boy.
So what I'm showing here
[Sacha]: I put it back so people can see.
[Raymond]: My main diary is just diary.
What I'm doing is I'm using includes, because I
like to break it up into various files that I can
comment them out if I don't want something so
busy.
The reason I'm doing that is because
I was tooling around in calendar in the calendar
functions and there's actually cal-tex-cursor
functions that so when you go into calendar, for
example... That's also small, right?
[Sacha]: It's okay.
Everyone has seen calendar.
Well, most people have seen calendar at this
point, so we know what the calendar is.
Okay.
What are we showing?
What are we seeing?
[Raymond]: So if I wanted to, let's say for next
week, what I could do is create a, let's see,
cursor...
I forgot the command.
[Sacha]: I'm surprised you don't have completion
set up.
[Raymond]: Yes.
Okay, so this is what I like to do.
So this function, cal-tex-cursor-week-iso
[Sacha]: It's okay.
It's the curse of the live demo.
[Raymond]: All right, I'll create mine.
[Sacha]: Change cursor shape, huh...
[Raymond]: All right, so for some reason that's
not working.
But what you end up doing is you can create
a weekly planner,
kind of like a page in a date book,
and it will show everything from your diary if
you want...
[Sacha]: In a nice printed format or like a nice
visual format.
[Raymond]: Yeah, I have to... How do I get that?
I don't know why it's not working here.
So...
[Sacha]: Certainly the layouts of things, the
layouts of date planners is something that I
sometimes envy about my paper planner days.
Like you could see things.
I also wanted to point out something that I
hadn't considered.
You were using diary for diary entries, it looks
like also
not just appointments and reminders, but also
this is what happened that day.
Ooh, that is pretty.
Do you actually print these out or like read them
on an e-reader or just look at them?
[Raymond]: I did.
Yeah, I found out that my printer can print
double-sided on index cards.
[Sacha]: Oh yeah, double-sided.
[Raymond]: So I actually created my own little
book here.
So what's nice about this is, you know, when you
go into a store to look for some planner, many of
them, like half of them, don't even have the
lunar phases.
And let's see if this has a lunar phase.
[Sacha]: So printing planner pages on index cards.
Very cool.
[Raymond]: So you've got your full moon there.
And because I was very active in photography,
nature photography in particular, and doing
landscapes and stuff.
So it's really helpful to know when the full moon
is, more so sunrise and sunset, which I have here.
Because you get, especially in the winter, you
get great shots at around sunset.
Yeah, so that was something that I was really
interested in.
[Sacha]: Oh, it's so cool.
It's something I'd never considered using Emacs
to generate your custom, you know, calendar
planner thing that you then take offline because
you're out there in the field.
You're taking pictures.
You don't want to open your laptop or look at
your phone or whatever.
It's just your index card.
Nice.
[Raymond]: And there's some astrology in there.
[Sacha]: [cut due to password] We're back to streaming.
Yeah, birthdays. Gotcha.
[Raymond]: Birthdays.
And then, so I'll just...
I wonder if I could do this safely.
[Sacha]: Give me a heads up, I'll move the screen
off and then I can move it back when you give me
the heads up again.
[Raymond]: I'm pretty sure my .emacs is pretty...
If anyone wants to see this and download it, it's
on emacswiki.org.
Just look for the page RaymondZeitler.
[Sacha]: Yeah, it's in the related links now for
the blog post.
Gotcha.
[Raymond]: So what I was looking for here is my
list of holidays.
So what you could do with...
This is basically a calendar thing, but you can
set up all your holidays.
For example, Towel Day is coming up.
It will be Monday for you Hitchhiker's Guide
geeks.
You've got your Star Wars Day, you've got Pi Day,
which you won't find on a regular calendar, of
course.
And that's an atrocious thing here.
[Sacha]: I was just admiring that.
It's a very complicated expression, but you can
do it.
[Raymond]: You can, right.
So that's what I came up for Election Day.
And if anyone's a Seinfeld fan, you've got your
Festivus.
So that's a neat thing.
Yeah, and don't worry about the
longitude-latitude.
Everyone knows where I am.
[Sacha]: [another password hiccup] ... dealing with the panic,
it's good. It's good practice. And also everyone is very nice,
so afterwards, I'll just probably make
this unlisted and then see if there's anything
that actually needs scrubbing.
But probably it's all good.
Yes, so you've got calendar, you've got
holidays, you print them out.
Are there other ways that you use Emacs, kind of
in this online-offline way?
Are there any other things that you like to print
out, or do you do the rest of the things in your
computer?
[Raymond]: It's all on computer, yeah.
So the only thing that's printed out is the
planner datebook.
By planner, I mean this thing.
Okay.
So...
Oh, yeah.
Anyway, getting back to why I break up my diary
into multiple files is eventually I may want to
create these things for other people, right?
Print out a date book for my wife, for example.
So she's going to want to know when Towel Day is,
right?
Well, that's a different thing, but she's not
going to want a lot of other things.
[Sacha]: Yeah, it's very customizable.
You can just say, okay, include these, you know,
modules in the calendar.
Yeah.
Cool.
[Raymond]: So, and then getting back to the diary again, yes.
[Sacha]: I can move this.
We're safe.
Yeah.
We're safe.
[Raymond]: Okay.
So one thing I like to do is keep track of when
things were done on the house.
[Sacha]: You've got a license plate?
[Raymond]: No, there's really nothing bad here.
For example, if you want to know when you have to
register your car, you can put that in there and
it'll show up on your little planner.
So I thought that was pretty neat.
[Sacha]: And I like that you can say a number of
years ago, so it automatically keeps track of
that.
You can wish somebody a specific number of years,
happy birthday, instead of just a generic happy
birthday.
You don't have to do math.
Nice, nice.
Diary, I think it's underutilized.
[Raymond]: It is, yeah.
And what I like about Emacs is that the people
who are, you know, creating functions and adding
to it use it and have really good design ideas.
So, oh, this is, let's go back to something else
here.
Okay, so back to my .Emacs.
Let's see.
Let me just...
In the interim, before we come up with something
else to talk about, I'll just talk about some of
the modifications.
And by the way, when I first started using Emacs,
I decided not to do anything.
I'm a Windows user, so naturally you might want
to use CUA mode, but I never did that.
And the first customization I did was...
For some reason the backspace key was doing the
delete function.
I think that was Emacs 19.
So that was the one thing I changed.
And then the other thing I changed is very soon I
had multiple buffers.
Like if you're using Emacs for any amount of
time, even like 10 minutes, you'll have multiple
buffers.
And I was using a tabbed web browser at the time,
so it's easy.
To switch tabs by just pressing the Ctrl-Tab key
or Shift-Ctrl-Tab key to switch between tabs.
And I figured, let me do that with the buffers.
And so that's somewhere in here.
[Sacha]: Oh yeah, there's a control tab, control
shift tab, next buffer, and previous buffer.
[Raymond]: Yeah, so that was one of the first
things besides the delete key modification that I did.
But I'm also now, since I have multiple windows
open as well, I'm using the windows...
Next and Windows Prior.
Next is, I think, the page down key, I believe.
And Prior is the page up key.
And how you can get to use the Windows key is, I
got that from Xah Lee's website.
And where is that now?
[Sacha]: Yeah, you make it the super key.
I use Xmodmap but other people can use different
things depending on their setup.
Although lately I've been experimenting with
using Kanata so that my modifiers are one-shot
modifiers.
I can tap the super key and then I can let go of
it and then I can press whatever key is next so I
don't have to hold them at the same time.
Oh hey look at that it's actually an option!
I didn't even know that it was.
You can change it right from Emacs.
Nice.
[Raymond]: Yeah, so this is what I set up.
I lifted this from the website.
There's the URL.
And if you're curious, you can go to that Emacs
wiki website and see this.
The only thing that I wasn't able to get this to
work until I added this statement, which I found
in Stack Overflow or something like that.
[Sacha]: That is interesting.
Yeah.
All right.
So does it mean that Emacs is entirely
responsible for the Windows key?
You don't do anything else with it outside Emacs?
[Raymond]: Right.
So yes, it intercepts the Windows key before
Windows does somehow magically, which can be kind
of frustrating because sometimes I do want to
open the start menu from within Emacs and I'm
pressing it and saying, why isn't this working?
[Sacha]: This is where you just get used to
having your own launchers within Emacs.
[Raymond]: Yeah, yeah.
Well, you know that you're a good Emacs user if
you start using the Emacs key bindings in other
programs.
You know, how many times I've used C-y to
paste something in, you know, my web browser.
Oh, boy.
[Sacha]: Yeah, it's not the C-y that gets
me.
It's the C-w because that closes your
browser down.
[Raymond]: Yeah, oh yes, that can be dangerous.
But actually C-y can be bad too,
because it's like the redo function in a lot of
programs.
So if you've undone something,
and then you redo it,
you can get very confused very quickly.
Anyway, so this is a neat thing to do.
Some people might want to try that.
[Sacha]: Yeah, for sure.
Having a super key means you can then go on and
do other things with it.
You can have all these key bindings because
nothing binds to the super key.
So you can have all the single character key
bindings you like.
[Raymond]: Exactly, yeah.
So I was taking, believe it or not, there's an
Org Mode class on Udemy.
And it's... Rainer König did it.
I don't know if I pronounced his name right.
But he inspired me to do custom commands.
So for example, if I want to look at all my bills
for the week,
I would just press the b w.
[Sacha]: Do you want me to move the window?
[Raymond]: I don't know.
Is there anything dangerous here?
I'm not going to do it, but I'm just trying to
point out my thing.
[Sacha]: Yeah, yeah, yeah.
Different agendas for slicing and dicing your Org
data in different ways.
[Raymond]: Yeah, yeah.
Remember you pointed out earlier that my agenda
was jam-packed with stuff.
The way I manage that is I came up with a way to
easily apply the today tag to all those things.
And I came up with some functions somewhere which
I bind to C-M-S-t. Let's see if I can find it.
[Sacha]: That is interesting.
So you're using a tag for the things you want to
do today.
[Raymond]: Yes.
[Sacha]: Versus scheduling them, because if you
schedule them for today, then they will still
show up tomorrow.
[Raymond]: Well, yes, that's true.
So yes, so these are the two functions I came up
with.
Oh, you're toggling.
What's that?
[Sacha]: You toggle that.
You have something that lets you add or remove a
tag.
[Raymond]: Yes, yes.
Yes, exactly.
And maybe I could demonstrate that without
displaying too much stuff here.
Okay, so here, so in the agenda, I'm a little bit
worried about updating.
See, okay, so I don't know if you can see it, but
I just invoked it and then down here in a little.
[Sacha]: Oh, yeah.
[Raymond]: It says you have to press s r to save
and refresh the screen.
And the reason why I didn't automatically refresh
and save files is because I think that's a
dangerous thing.
[Sacha]: Yeah, because you've been removing
things.
Okay, okay.
But the idea there is you can turn the tag on and
off from your agenda directly, which is
interesting.
Yeah, it's there.
And you have a different view that shows you just
the stuff you're focusing on for today.
[Raymond]: And I have that bound to "C-c a .".
This is going to be small.
So there on the top are my things for today.
[Sacha]: Yeah, so different ways of prioritizing.
So your agenda is the stuff that you want to keep
on your radar.
And the today stuff is the stuff like, okay, you
got some time.
This is what you're actually going to work on.
[Raymond]: Right, so.
[Sacha]: Yeah, there are different ways to
approach it.
Some people have a much more minimalist, okay, if
it's on the agenda, it's because I want to do it
that day.
And then they have a different view showing them
the stuff that they want to keep on their radar.
But the nice thing about Org Mode is that it
accommodates all these different ways of working.
[Raymond]: Yeah.
And getting back to the Rainer's class on Org
Mode, you know, it's not like the way
Carsten Dominik set it up with the default tags of to-dos.
What is it?
To do, started, waiting.
He does something a little bit different, but it
works for him.
So I think that's kind of cool too.
And by the way, you need two functions.
You need one that works in an Org file and
another one in the agenda because they don't work
the same way.
[Sacha]: I have some functions that act that way,
and I usually end up checking if the major mode
is derived from the Org agenda.
And then there's an with Org agenda.
There's a macro that lets you run the code in the
context of the task.
So if you needed to kind of switch those
together, it's possible.
But you already have something that works, so
it's fine.
[Raymond]: Yeah, and it's easy because, you know,
I copied this from some existing function like,
you know, when you press Z, for example, it
creates a note.
So you can leverage that code and write your own
code instead.
[Sacha]: It's called org-agenda-with-point-at-orig-entry.
It does the thing.
You know, this part that you're doing at the
moment with manually finding the marker and
jumping to it and all that stuff.
In the future, if you find yourself writing one
of these agenda functions.
[Raymond]: Yeah.
So what else do I have here?
Oh, so sometimes I just like to execute.
So I do a lot of batch files or scripts, and I'll
just do C-c x to send that particular line
to the DOS prompt just to execute it.
[Sacha]: Oh, execute line.
Okay, so that's what EXELN means.
That's cool.
So it's basically you can evaluate things without
having to switch and paste and switch and paste
and all that stuff.
[Raymond]: Yes.
And just to demonstrate, if I wanted to do the
dir command.
[Sacha]: It's like an eval-last-sexp, but for DOS.
Yeah, so this is... And hats off to you for,
like, batch scripting with DOS.
I'm very spoiled with my bash and
zsh, but you're in Windows and you're making
it work.
[Raymond]: Yeah.
Which is like a handicap, isn't it?
And then I can just send the whole buffer to the
command prompt, which I think now there's a
function
that don't really does that, you know, out of the
box. Maybe not.
And then if I wanted to insert the date, you
know, just some easy stuff like that.
[Sacha]: Yeah.
Yeah.
I recently added this insert date and time
thing as an abbrev,
So I just type it and that frees up more of
my key bindings for other things.
Yeah.
But it's surprising.
You always find yourself wanting to refer to the
time and that way you don't have to look.
[Raymond]: I don't remember how Emacs treated the
scroll wheel or the middle mouse button, but I
found that this was very useful.
I believe what you can do is click the mouse.
Let's see what happens.
It pasted what I had there.
[Sacha]: Yeah, yeah.
I think middle is usually paste, but it sounds
like you've got it.
Oh, okay.
So, so you, you can scroll if you're dragging,
but you can also click, just middle click to paste.
Yes.
[Raymond]: Yeah.
So it's fun.
There are some things that down-mouse-2 does,
and I'm not able to do that now.
I think, for example, spell checking, if you
want to correct a word at point, I think the
command is to do the mouse-2 button, but I no
longer can do that. But that's okay.
[Sacha]: Over 20 plus years of Emacs, I'm sure
parts of your workflow have come in and out of
viability as things change.
I feel like Emacs does make more of an effort to
keep things pretty stable for the most part,
hence all the contortions that new Emacs
development has to do in order to keep things
working but also adapt to the times.
[Raymond]: I think I mentioned before how I
co-opted the ability to switch tabs.
I got the idea from the web browser and
incorporated it into Emacs.
But I've started to do the opposite.
So if you do C-k, which deletes anything
from point to the end of the line...
[Sacha]: Yeah, you've up-cased a bunch of things.
[Raymond]: Yes, I am going to have to close this
because I'm really scared now.
[Sacha]: revert-buffer, maybe?
Or undo?
[Raymond]: Yes, I'm trying to do undo.
That's what I meant to do.
We're back.
There we go.
So, yeah, because I did C-x C-u
instead of...
whatever.
So what I've decided to do then is if you're
using a web browser and you're opening new tabs,
which I do, so I am able to bind a key and I'm
using control shift K to close all the tabs to
the right of the current tab.
So that's sort of like borrowing an Emacs
keystroke and using it in my browser.
[Sacha] How are you doing that? Are you using AutoHotkey
or does Vivaldi let you do that automatically?
[Raymond]: Yes, it's Vivaldi. So if I go
into the Settings - Keyboard shortcuts...
So actually, I don't know how to increase the
size of this.
[Sacha]: That's fine. We can see it.
People can go open up Vivaldi if they're curious.
But the idea there is you get used to these
conveniences or these ideas from Emacs.
And now you're like, OK, I want to make my other
apps feel at least a little bit this way.
[Raymond]: Yeah.
Yeah, so.
[Sacha]: Yeah?
[Raymond]: And I still keep learning stuff about
Emacs.
Believe it or not, I didn't know that you could
select a region and then do an internet search on
it, right?
[Sacha]: Today I am learning.
How do you select a region and do an internet
search on it?
[Raymond]: So M-s M-w (Alt s and Alt w) is loading in EWW.
And this is what Atomic Chrome Start Server is.
And that's actually a Chrome extension that you
can... Okay, so if I go to some... Okay, okay.
[Sacha]: It is EWW Search Words.
Okay, good.
Cool.
[Raymond]: So if I go to your website now
and I want to type a comment, which I think I can
do, right?
[Sacha]: Oh, I switched to just doing comments
through email.
Because Disqus was getting all ads-y and
annoying and tracking JavaScript and stuff.
So now it's like every post has an email me if
you have thoughts.
Sometimes it has a Mastodon link if I've
remembered to post it to Mastodon beforehand.
[Raymond]: So...
What I'm trying to do is find a window that I can
type into.
[Sacha]: There's a search box up there to the top.
But basically, you're going to show us how you
can take stuff from the browser and put it into
Emacs for easier editing.
[Raymond]: Yes.
[Sacha]: All right.
Charlie has a question.
So Charlie asks, do you use Org Mode protocol at
all for browser to Emacs interaction?
If so, were there any complications to set it up
on Windows?
[Raymond]: I don't.
[Sacha]: Is there like bookmarklets for capturing
or doing things?
[Raymond]: Yeah.
So, oh yeah.
So capture is just a wonderful tool.
Okay.
So I'm not sure I'm
I can answer the question, but what I would say
is, let's say if I wanted to... Alright, let's
try this.
This might not be too bad.
So let's say I wanted to create a link to some ad.
So no, I don't use EWW to capture the link.
But I just learned out how you can do it.
But if I wanted to go to another, all right,
well, this is a silly example.
But if I were to do just a help,
Let's say, if I just wanted to find a place in
the info, in info, if I do C-c-L, it'll create
a link for me, and then if I wanted to here, put
that link.
So it's already there in the mode line.
[Raymond]: Yeah.
[Raymond]: And then I can say info.
And I can have that there.
So this will go, and I'll close this help.
[Sacha]: Okay.
[Raymond]: And then if I click this, it'll open
back up.
[Sacha]: So you use the org-store-link a lot.
Do you use org-capture as well?
[Raymond]: Yes.
[Sacha]: I saw your keyboard, your key binding
for it.
But you don't necessarily have bookmarks or
extensions in Vivaldi to do the capturing with
the context from your browser.
You'll just copy and paste the link manually.
[Raymond]: Exactly.
That sounds like fun, though.
[Sacha] That's a nice thing about Emacs.
There's always one more thing to tweak,
one more thing to learn. You've been tweaking your
Emacs for a long time, and yet there's still more
to do, to fiddle with and explore.
Yeah if you can think way, way, way, back, how did you
get into Emacs in the first place?
[Raymond]: Oh, okay.
So, you know, I was thinking about how my career,
like the first half of my career, I've been using
an IBM PC and MS-DOS, and it was all command line
based.
And as well, those machines were quite slow.
So what we would often do is
Write batch files and basically have things
happen while we were away.
Go and get a cup of coffee or leave for the day
and come back the next day and hope it was done.
I was working with text files for 20 years.
I had a really good text editor.
It was called Brief.
And it had a lot of nice features.
It was, of course... You could record and playback
keystroke macros, right?
Sounds familiar.
It also had a scripting language.
Of course, it had undo.
But the nice thing I really liked about it is
that you could do column editing,
right? So you could delete columns of text, or add
columns, or cut and paste and move them around, and
stuff like that. Because if you're using a lot of
csv files, it's really columnar
in nature. I guess I can't pronounce
that word. But when I moved to Windows,
that text editor didn't work so well. It wasn't
very happy in a multitasking environment
And so I started looking around for stuff.
I did find an editor actually that it had the
same key bindings as brief, but it had one
problem.
And if you open, for example, if you opened a
binary file,
that had a null character, it would crash.
So I don't know if that bothered me.
So then I started looking around for another one.
And then I guess it was in Usenet that somebody
said, why don't you try Emacs?
As if I heard of it and decided not to.
So I did, and I really liked it.
So maybe I'm going to go back and search for that
conversation and thank the person.
That'd be something I could put on my Org agenda.
[Sacha]: Did it click for you right away or is it
something that grew on you over time?
I started right away with the tutorial
And I said, ah, this is crazy to have to do.
And I don't even know how to navigate with the
original key bindings.
So I expected to be able to use the arrow keys.
And I don't think it was set up that way.
But then I stuck with it.
And like I said, I didn't adopt the CUA binding
or anything like that.
Yeah, and I just grew to learn it.
I had thought about coming up with a theme for
it, a different color theme.
And I tried that for a while, but then when I
would use a different mode, it just looked
terrible.
So I'm keeping the same mode now.
[Sacha]: What I hear more and more people are
doing is they'll take something like
modus themes and then they can change the colors of it
without necessarily having to make all the
mappings of, okay, this thing in this mode, you
should use this kind of face.
So if you still want to have your customized
colors, that might be an approach to consider.
[Raymond]: Yeah. Going to stop sharing for a second.
[Sacha]: Sure.
Did you ever flirt with other editors again after
getting into Emacs?
Or has it basically been mostly Emacs for the
last while?
[Raymond]: Oh my gosh, how could you even say
such a thing?
No, it never occurred to me to do that.
But some of the guys were using Notepad++, which,
you know, mine is the only computer with Emacs.
But if I go to another computer, they have
No pad++.
I would be using that.
And it's nice.
It has a tabbed interface so you can switch
between files very easily.
But I've never considered switching to something
else.
And even, you know, I took a vibe coding class.
So they have you use VS code or anti-gravity or
something like that.
And I'm thinking, wouldn't it be nice if I could
You know, switch to my Emacs editor and do the
typing there and then switch back to anti-gravity.
I don't know.
But I hear some people are vibe coding with
Emacs, so I might look into that.
[Sacha]: Yeah, there's been an explosion of
different ways that people are interacting with
these systems.
And of course, people are also totally welcome to
keep using Emacs without it.
But if people are curious, as the usual Emacs way
of doing things, there are more than a handful of
packages all with their different workflows.
You'll find something that fits.
[Raymond]: Yeah.
I wanted to ask you, speaking about EWW, do
people pronounce that ew?
The thing about a lot of these packages, they
have these wonderfully self-effacing names.
There's one called Dismal.
That's the acronym for it.
And it's Dismode Ain't Lotus.
It's basically a spreadsheet.
So I was just curious about that.
[Sacha]: I think we spend so much of our time
reading rather than you know hearing or talking
to people so then it's only in the middle of a
conversation of a very rare conversation one can
have about Emacs either on stream or in person
when you're like okay is it Magit or magic you
know do I say ew but that that seems so rude ew
ew ew the Emacs web thing yeah sure
[Raymond]: And that's pretty new, isn't it?
That mode?
Because I remember doing W3 and then WW3.
[Sacha]: There was a w3m
and elinks.
I remember that too.
[Raymond]: Links, I had a version of that on my,
you know, like a DOS version of it, believe it or not.
But it was very utilitarian, you know.
[Sacha]: Yeah, yeah.
Sometimes you just want to browse the web or
get the information without all the clutter that
goes on and, you know, just like all the layouts
and the cookie pop ups and whatever.
Just get me the stuff.
Yeah.
[Raymond]: Well, I do think I'm going to be
incorporating EWW more as I think it was Charles
who said, you know, creating a link
using C-c l to create that link and it
basically copies what's around it.
I do see the usefulness of that.
[Sacha]: Yeah, yeah, because org-capture and 00:45:57.936 -> 00:46:00.339 org-store-link can just pick up the context for you
and then it's so easy to go back to things
afterwards.
I've also heard good things about org-remark.
So that's something that's on my to-do list as
well.
There are always all these things to be curious
about and learn.
What are you looking forward to exploring?
So there's EWW.
What's next for you in this Emacs journey?
[Raymond]: Oh boy.
I was thinking of using Org as a car maintenance
tool.
And as you know, Org is great for scheduling and
projecting out things.
The thing about auto maintenance, though, is a
lot of times something has to be done at a
certain mileage.
Like every 5,000 miles, you have to rotate the
tires, for example.
If you're driving regularly, like maybe 100 miles
a week, you could say, oh, that's going to happen
in a year.
But if you're driving as erratic, then you'll
probably want a way to
download your mileage from the car.
Cars are basically just computers, aren't they?
I mean, they're computers that we drive around,
or sometimes they drive us around, frighteningly so.
I'm sure someone is thinking about or has already
come up with a link between a desktop computer and a car.
Okay, I'm not seeing.
Well, maybe.
Maybe that's giving somebody an idea there.
But maybe Lori Wired or something can come up
with that.
[Sacha]: And even, you know, even a manually
scheduled reminder, hey, you know, just write
down what your odometer says, and then some kind
of logic that takes a look at that reading and
says, okay, it's past this threshold, schedule
this task.
And have that done semi-automatically.
Sounds really interesting.
Because then you could have all sorts of things
to say, all right, I have this manually scheduled
recurring task to manually log something.
But then it kicks off these processes that then
surface all these other tasks that I should do.
Could be fun.
How would you do that?
That sounds really cool.
[Raymond]: So I don't know if I'll ever do that
because I'm pretty lax with my car maintenance
anyway.
[Sacha]: It could be like every six months check
to see whether, you know, it's time.
[Raymond]: Yeah, yeah.
But I probably would try the vibe coding with
Emacs eventually.
You know, every so often I see it on Reddit or
Stack Overflow.
You know, somebody is trying this package or that
package.
Yeah, it might be worth trying.
[Sacha]: What are the challenges that people
sometimes find when it comes to vibe-coded stuff?
It's great for the initial prototype, but once
you start digging into it, it's hard to modify it
yourself, so then you become dependent on it.
And then, of course, the large language model
can't quite get some things.
How are you finding this so far?
I mean, this is very early in your journey.
I think you're still experimenting with it.
But do you find that it's working out for you?
How is it with Emacs?
[Raymond]: It was just like you said, like it
just can't get it.
Like I told it, well, fix this because I don't
like that format, and then it will do it
differently.
And then, no, but it changed something else that
it was doing correctly, and I just couldn't get
it to work.
And the other thing is, so the course that I was
taking, they wanted...
Next.js
And I just can't describe it.
So I was trying to back up my computer one day
after installing it, and it's doing on and on in
like 20 minutes.
Just because there's so many files and it's just
crazy.
So I thought it was fun to try it, but I think
I'll just stick with what I know best.
[Sacha]: In a way, I'm delighted.
We've come full circle.
Emacs is now the lightweight solution.
It is a lot of fun.
Emacs, less AI.
AI is not quite at the fun point yet, I think.
But I'm glad that there's still more to tinker
with and explore.
I have about eight minutes before the kiddo runs
out and starts lunch break.
I'm guessing if people want to keep up with your
adventures they can check your EmacsWiki page
for updates.
You have some code shared on Codeberg and you
mentioned your LinkedIn profile which is in my
thing, but how can people keep up with what you're
learning?
[Raymond]: I'm surprised that people would want to.
[Sacha]: I want to.
I do not have an auto to maintain, but I have a
cargo bike that I've got to keep up with also.
So I'm very interested in these mileage-based task
reminders, if you work something out.
[Raymond]: Yeah, I'm not pretty good about
publishing stuff.
I don't know.
That's a good question.
I'll come up with something.
Maybe I'll be more diligent pushing my updates to
the Lisp Codeberg repository.
I don't know.
[Sacha]: Sometimes it just takes somebody saying,
your stuff is interesting.
I'm telling you, your stuff is interesting.
[Raymond]: Okay.
Thank you so much.
By the way, I am using source code
blocks now.
So like we talked earlier about executing the
batch file, I can now put a little batch file
inside a source code and execute it that way.
[Sacha]: You have those links in your heading and
in your Org task bodies.
I've been enjoying using Elisp and Shell link
types so that I can put in those partially
automatable things.
In my workflows, because sometimes you're like, I
do have to do it manually.
I just can't write a function to do everything.
But at least they can document it step by step
and say, okay, do this, run this code block, you
know, just do all that stuff.
[Raymond]: And the other thing I'd like to try to
do is I know some people can create slideshows
with Emacs.
And so that looks like it would be worth pursuing.
I'd like to try that.
[Sacha]: Oh, yeah.
Are you thinking of it for the history stuff that
you're involved with or other things that you're
teaching?
[Raymond]: So I'm starting to present my
photography as a slideshow.
And I thought I would try that.
And now I see that Emacs can support images.
I don't know how it would work as an export, but
I look into that now.
[Sacha]: Yeah.
And even, you know, the couple of times that I've
wanted to use Emacs to create, you know, even
just a PDF of these pictures, just being able to
automate that instead of
pasting and resizing, it's like, ugh, don't do that
that way, just have the computer do it for you,
and Emacs is great for it.
I've been meaning to ask you, what is your
viewership with these Emacs chats?
[Raymond]: Are you starting to see a lot of
traction with that?
[Sacha]: I have no idea.
My goal here is just to get stuff out of
interesting people's heads.
Interesting stuff out of, yes, interesting
people's heads.
And I think mainly I'm using it as a way to keep
improving my transcription workflow.
I guess I like to train everything into text
afterwards.
That way it's searchable.
But it's been really fun getting a sense of how
people are using it because we all have such
different workflows.
And as I was saying in the beginning, you don't
see that when you're looking at someone's config.
You're like, okay, I see that the code that sets
the key bindings, but how does it work together?
And then seeing your Org file, I'm like,
Oh yeah, why am I not putting the links right
there so that I can just get to them from the
agenda?
Diary can do that?
All that stuff is really, really interesting.
It's been great revisiting it after such a long
break, taking care of the kiddo.
Now the kiddo is slightly more independent and
even has moments where she's like, bye mom, I
don't need any help.
Like, okay, yes, I'm just going to do my Emacs
thing.
[Raymond]: Asking for the car keys yet or not?
[Sacha]: No, no, no.
Also no car, but someday she's going to, you
know, and she actually already likes to bike to
the park on her own.
So she's 10.
She's not at the car level yet, but definitely in
the biking and walking by herself, she's keen on
that.
Gradually, independence for both of us and the
ability to explore things.
I'm really liking these Emacs chats.
With you and Shay Arison, who's also been a
long-time reader, it's like this continuation of
a conversation we've been having over decades now.
I can't wait to see where this goes next.
I've picked up a lot that I, again, would not have
really understood just by looking at your EmacsWiki page
and I hope that other people watching
can also get a sense of, like, this is what it looks like
in use. Sometimes people think oh, I need to make a video
that's going to be a snazzy demonstration
of this really technical setup,
but sometimes it's just the little things that make your life better.
[Raymond]: Well, I really want to thank you for
doing this, not just this Emacs chat, but just
having your web page and organizing all the Emacs
information.
It's just been a wonderful resource.
[Sacha]: Thank you.
In the last two minutes I have before I get like,
"mom!",
what kind of resources would you like to see
going forward?
What would make your learning even better?
[Raymond]: Well, you know, it's just, you know,
just saying something that you did...
For example, when you were... So when I visited
your site and you showed how you could show the
time in someone's native time zone, right?
Which is a wonderful thing, right?
But I had my own time thing that I was wondering.
Like, I wanted to know
if someone had a date, like May 21, what day of
the week is that?
I know that I can't go on a meeting on Tuesday.
I'm trippable.
So I figured out a way you could select it and
send it to a custom search engine that searches
on DuckDuckGo AI and says, what day of the week
is this?
And just include the date.
And it tells you.
[Sacha]: Yeah, yeah.
It's nice to be able to modify things, not just
in Emacs, but in browsers or anything else.
And my personal approach for that date thing
would be like, okay, I'm just going to do an
insert date, like a C-c C-! in Org.
Because if I type in, you know, the part of the
date that will get it to show up, it will include
the day of the week.
But that only works in Emacs, of course.
Everything should be in Emacs.
So yeah, I guess one of these little workflows,
oh, I just figured out something, sort of posts
can ripple out into other people imagining other
things that they can do.
And on that note, I'm going to wrap this up very
nicely.
I will try to mark this as unlisted so I can see
if I accidentally let any of your passwords slip
past my 10-second panic window.
You're okay with your coordinates.
That's okay.
Yeah.
All right.
Thank you so much, Ray.
[Raymond]: Oh, thank you.
[Sacha]: And I look forward to more conversations.
[Raymond]: Yeah.
[Sacha]: All right.
Bye.
[Raymond]: Bye bye.