So as we wait for people to drop
in their questions and so on,
I'll just kind of add a couple of thoughts.
I'm not personally much of a Python developer,
so I'm just curious as to your thoughts on using Emacs
and kind of the development methodology you showed
as a way to learn Python.
Yeah, I think Emacs is perfect for it.
If you're already an Emacs user
and you have the keyboard commands
and everything uploaded in your brain,
then learning Python shouldn't be too difficult,
because there's a lot of good packages.
For Python, I'm using a thing called elpy,
which is really good. for Python development.
So you have this connection to a running backend,
the Jedi Python backend that will give you autocomplete
and some refactoring and things like that.
So I think Emacs is really good for Python development.
So what are some other...
How long have you been using Emacs?
Kind of a general question.
Sorry if you covered this and I missed it.
It's not that long actually.
I think it was in 2019 or 2020.
It's when I started to, I was really fortunate enough
to join a team that had chosen to
develop an app in Lisp, in Clojure.
yeah and i didn't know anything about it
i didn't know lisp at all so it was like brand new
so i really had struggling to to learn it
but at the same time i was looking for okay
which editor should i pick to to do this
and i was before that and like an ide person
so i do use this big ideas
and this time i figured maybe i should try something different.
And I read this book about Clojure development
and the author was really into Emacs
and he was like, Clojure is really good for,
Emacs is really good for Clojure development.
So that's how I started.
So I like to learn, rewired my brain
to learn all how Emacs works
as opposed to like the mainstream editors out there.
So that's how it started. So like five years ago, maybe.
Cool. Um, so did you, what were some other,
what, what, what editor were you primarily using before you?
Um, um, back, back then it was like,
I think it was like Sublime Text.
And also some IntelliJ, sorry, JetBrains, their tools.
And before that, I was in the Microsoft world,
so it's like Microsoft toolings basically.
So I moved towards open source tooling
and also open source development. Very cool.
So I see we've got a couple people
that have joined on the BBB here with us
for the live question.
You're welcome to just throw your question in this chat,
or if you've got a microphone connected,
you're welcome to come off mute
and throw a question in that way as well.
You can join on liberachat IRC.
You can join pound emacs comp hyphen dev,
and we would happily take your questions there.
Meanwhile, I've got a question
coming in on the pad right now, so take that next.
I'll just read it out.
I don't quite see how your setup works with IPython.
Sorry if you already answered this.
Do you have your Emacs connect to the IPython kernel
over XMPP socket that IPython sets up? Oh, good question.
So what I've done is I have two different connections.
Like if I'm going to do this regular day-to-day Python work
when I want to evaluate code
without thinking about the external connection,
then I just use IPython
and I have my I'm using the LP Python package
so that you can set up which of the REPLs
you want to start when you evaluate code.
So that's IPython. But in the second part of the talk
where I connect to an externally running app,
then I have set up the same configuration
but to start Jupyter, the Jupyter console instead.
And when I start it up, it's going to, it's like a dialogue
that will ask for the ID of a running kernel.
Because if you start a kernel,
if you start something in a kernel,
you will get this unique ID so you can connect to it.
So that's kind of the difference.
So I have two different ways
of starting up the Python kernel. REPLs, either PyPython,
which I do for most of my daily work,
or if I want this connection to a running app,
I'm using the Jupyter console, basically.
Have you explored Org Babel at all?
Can you talk about your approach
compared to the Babel workflow? Oh, interesting.
No, I haven't actually, I haven't done that,
but I think it's similar to Jupyter notebooks,
so you can do some interactive, you can run Python there,
but I haven't,
I have too little knowledge about it to elaborate on that.
Sorry. Very good. All right.
I'm just going to peek over to the other chats
and make sure I'm not missing questions.
Sorry, I got a lot of screens. A little dance here.
All right, and I do see a few people in the chat.
I'll just say again, if you've joined us on the BBB,
you're more than welcome to jump in with your questions
or put questions into the chat here.
I'm not a big Python person,
so I can't get into the really interesting questions
that are probably more relevant,
just because a lot of it's kind of over my head.
Have you seen the marimo.io notebooks?
These use standard Python?
Oh, yes, I've seen, I haven't tried it myself,
but I've seen it.
It's very, I think it's a very interesting approach
that probably will solve a lot of these things
with interactive development in general,
but because I think it's basically Python files
and not the, not this other file format that you have
for the regular notebook setup.
So I have that in my list of things to try out in future,
but it looks really, really cool. Awesome.
Yeah, I'm hesitant to just ask you really boilerplate questions.
You get an expert, a souffle chef,
and you ask about making pasta or some other sort of thing.
No, go ahead. Go ahead. I'm glad to ask any questions.
So just generally about Emacs as a coding developer,
what are the features
that you tend to lean on more heavily?
You know completion or you know, what have you...
Maybe I could put it better as:
what have you spent more time configuring for Emacs
to facilitate development?
Yes, initially, it was basically taking away
some of the UI features,
basically disabling it, but fairly quickly,
for both Clojure development
where I was using CIDER, which is like a really good tool,
and for Python, when I quickly found elpy,
I'm not sure how to pronounce it,
but you get so much good things from these tools...
So what I've done additionally is theme
and maybe having this environment
that is without disturbance.
So I really like the code to have my full attention.
So I rarely have, maybe I have like a preview sometimes,
but mostly, it's the window or the buffer where I have my code,
and I've minimized the running REPL buffer.
So sometimes it's, I'm hiding it, but it's still active.
So basically that's how I configured,
spent my configuration doing that.
And also lately, trying out some LLM tools.
I think I have two packages
that I'm using actively today.
My favorite is a tool called ECA,
which is a LLM chat assistant, which is really good.
The developer is also an Emacs enthusiast.
So are you the type of person that tends to work with
like a master builder, build your own Emacs?
Are you using the system packages?
What's your approach to just get Emacs
up and off the ground for yourself?
I'm not there yet with doing my own builds.
Currently, I'm on macOS,
so I'm installing Emacs through brew, basically, homebrew.
I've yet so much Emacs things to learn
because I'm not even using Org yet.
I'm exploring the this editor.
So I feel like I'm very much a beginner.
I'm not using Emacs to its full potential yet.
So I'm counting on that I will be more and more using Emacs
for more and more different tasks basically.
And I'm just seeing a comment.
Ed Stallthroat says, thank you
for publishing your configuration and offers a link.
Oh, great. Great.
Yes, those things that I showed in my talk,
I haven't made any, I haven't packaged it yet,
but everything is on my GitHub,
and I've tried to separate each feature
in separate LSP files.
So it should be, I hope that it's fairly straightforward
to understand how it's set up. Very good.
Let me just scroll down,
make sure I'm not missing questions here.
Okay, I think those are the questions that we have.
We can take a couple more minutes if you're open to that,
just for people to consider.
I know we're coming up on the lunch hour,
so it may be that people are jogging off to get some food.
Yeah, in Sweden, it's dinner time.
It's like 6 p.m. soon. That fits.
So are you involved with local Emacs meetups?
I know that your part of the world
has a really brisk community,
you know, a lot of, just a lot going on.
I'm always seeing in Sacha's Emacs News,
all of the different meetups and so on.
I'm curious if you're plugged
into a local community there at all, No, I haven't.
Not in any community. I haven't done that yet,
but we are... Like, friends that I've gotten to know
through work and through like open source work that also use Emacs.
We talk and share our conflicts
basically on a regular basis,
because we are, at least in the Python community,
we're like a minority,
like other editors are like the standards.
And at work, I'm sharing what I'm doing,
just like my talk here to my fellow co-workers
that are not on Emacs, but I hope to get their interest up.
So many of us Emacs users are Emacs evangelists.
Yeah. It's the Venn diagram of Emacs user
and Emacs evangelist is a circle, I think.
Yeah, I think so too.
Well, David, I super appreciate your talk
and thank you so much also for...
I'm sorry, I saw another question here. Let me cover that.
Can you repeat the name of the LLM
that you specifically mentioned there?
Oh, it's a tool called ECA, E-C-A.
It's basically a server and clients,
and it's not only Emacs. It has support for other editors,
but I think the primary support is for,
at least the developer who does it is an Emacs user,
and so it's like Emacs first, basically.
And his name is Eric Dallo.
He's a great developer in the Clojure community.
He has done some LSP work in the Clojure world, too.
What was the last name? What was Eric's last name?
Eric Dallo, D-A-L-L-O. Yeah.
So I think that's a great tool, but I also use another tool
that for some reason I forgot to have this interactive way of,
because I think they are developing that feature too,
but I have another LLM that has support
for requests and callbacks basically.
So you can do something programmatically.
So that's how I've solved my LLM thing
where I select some Python variables
and tell the LLM to populate it with some fake data
so I can send that to the REPL.
But for some reason, I forgot the name of it.
I can look it up. Just give me one minute, sorry.
Oh yeah, gptel, that's that's the name of the other tool
which is also a good tool, yeah,
but ECA is more like a chat companion
and this, you can also tell it to write code and things like that,
but I mostly use it for reviews and research
and asking questions
because I want to... My...
I don't have a problem with typing code.
I don't think that slows me down,
but maybe getting some quick feedback
on the actual work that I'm doing,
that's what I'm using LLM for,
on LLM for two, mostly today. That really hits for me.
[Corwin]: I don't mind typing either.
I think somehow having things be so simple
and in many cases just automated,
Emacs just does the right thing.
It makes me hungry to type. I want to type more.
It feels like every keystroke does a little more.
Speaking of evangelism, thank you. Thank you
pop up for the for the question.
I'm just going to peek one more time through
and I don't see a backlog.
There are a couple more comments here
linking to the ECA Emacs and gptel.
Comment also saying very cool setup.
So I suppose I'll hand it over to you
if you have kind of final thoughts or
additional wisdoms you want to share
I really appreciate your taking the time
to prepare this presentation
especially to do the live Q&A with us.
[David]: Thank you. I haven't anything more than that
I will of course continue evolving my setup,
because there's new tools
and maybe new ideas also coming up.
What I'm aiming for in Python development
is the great developer experience
of what's called Lisp programming, basically.
So that's what I'm aiming at for Python too.
Thank you. Thank you so much.