WEBVTT
00:00:00.000 --> 00:00:04.839
I'm doing great. Good to hear from you guys. Yeah, I mean,
00:00:04.840 --> 00:00:07.959
you've been a regular of the show, I would say, for quite a
00:00:07.960 --> 00:00:11.399
while, and it's good. I really like the retrospective that
00:00:11.400 --> 00:00:14.959
you did the first time you attended EmacsConf. And when was
00:00:14.960 --> 00:00:18.759
it? Was it 2015? I can't actually remember. 2015 was when I
00:00:18.760 --> 00:00:22.319
presented that, but I did an earlier talk the year before. So
00:00:22.320 --> 00:00:25.479
yeah, that's why it's kind of thing. It's like, wow, it's
00:00:25.480 --> 00:00:31.279
been a decade. It's been a while. Yeah, and I'm glad that you
00:00:31.280 --> 00:00:35.559
are in a much better recording situation than you were in
00:00:35.560 --> 00:00:39.439
2015 at the back of your colleague's house. It's good to see
00:00:39.440 --> 00:00:44.359
you at your own place. Well, it's also nice to pre-record and
00:00:44.360 --> 00:00:48.239
then just share. Yeah, I mean, that's why we keep talking
00:00:48.240 --> 00:00:51.519
about pre-recording. You know, when we really pushed
00:00:51.520 --> 00:00:53.759
pre-recordings, I think it was five years ago when we
00:00:53.760 --> 00:00:57.679
started, people were not really liking it. They thought,
00:00:57.680 --> 00:01:00.039
oh, but most conferences are just asking you to come and
00:01:00.040 --> 00:01:02.919
chat. And, you know, I don't need to do the pesky
00:01:02.920 --> 00:01:06.319
pre-recording. But now, and especially for you regulars,
00:01:06.320 --> 00:01:08.359
you're really starting to realize that pre-recordings are
00:01:08.360 --> 00:01:11.279
actually amazing for everyone. You're less stressed on the
00:01:11.280 --> 00:01:14.199
day of the conference. We, the organizers, are way less
00:01:14.200 --> 00:01:16.519
stressed. So it's a win-win scenario for absolutely
00:01:16.520 --> 00:01:19.359
everyone in the equation. Okay, so there's some
00:01:19.360 --> 00:01:22.519
confirmation bias at work, but I'm not really arguing with
00:01:22.520 --> 00:01:27.639
what Leo says for the record. It may be that we are just that
00:01:27.640 --> 00:01:30.759
this stoked that we're lying to ourselves by the
00:01:30.760 --> 00:01:33.959
opportunity that we have to chat with each of you. Sure.
00:01:33.960 --> 00:01:38.759
Sure. Sure. I have really appreciated all of the, the
00:01:38.760 --> 00:01:43.559
transcripts. It's been great that, you know, to be able to
00:01:43.560 --> 00:01:46.519
read and copy and paste and all that kind of thing. Yeah, it's
00:01:46.520 --> 00:01:49.959
great. So yeah, let's answer some questions here.
00:01:49.960 --> 00:01:58.159
Let's see. Yeah, just feel free to jump onto the Etherpad and
00:01:58.160 --> 00:02:01.239
just drop on the questions. I'll keep answering them all day
00:02:01.240 --> 00:02:07.399
kind of thing and get better answers as we go along.
NOTE Q: What's the largest code base you've ever tackled with the literate approach (esp. Emacs + Org-mode)?
00:02:07.400 --> 00:02:12.439
So yeah, the first question here is, what's my largest code base?
00:02:12.440 --> 00:02:18.359
I kind of touched it in my presentation. However, I think
00:02:18.360 --> 00:02:22.439
someone just went through and did a better count than it
00:02:22.440 --> 00:02:27.879
looks like. a little bit more. So
00:02:27.880 --> 00:02:32.959
as I joked about in the video, we've all worked on larger code
00:02:32.960 --> 00:02:36.799
bases, but that's still, it's kind of significant. So it's
00:02:36.800 --> 00:02:43.679
not, so yeah, anyway. So let's talk a little bit about
00:02:43.680 --> 00:02:49.519
searching for functions here. If you've got your functions
00:02:49.520 --> 00:02:53.679
in your code or code block, well, you can search for the
00:02:53.680 --> 00:02:59.319
descriptions, you know, as long as you've evaluated it. And
00:02:59.320 --> 00:03:04.519
so that wasn't so much of a problem, but I did want to like look
00:03:04.520 --> 00:03:07.839
at the commentary around any function that I would define.
00:03:07.840 --> 00:03:14.039
And that's where, yeah, you know, the C-x or the
00:03:14.040 --> 00:03:18.919
C-f to define that function and display it. It won't
00:03:18.920 --> 00:03:22.279
pull out the literate stuff around it, obviously, it'll
00:03:22.280 --> 00:03:27.159
only do the doc header. But if you could search for it and find
00:03:27.160 --> 00:03:30.559
it quick, then it might be just as useful. And I guess that's
00:03:30.560 --> 00:03:36.079
why I started getting into seeing if I can't tie that into the
00:03:36.080 --> 00:03:40.839
X ref. you know, just the standard ways. My first part, I
00:03:40.840 --> 00:03:45.799
noticed that evil has a different way of searching through
00:03:45.800 --> 00:03:50.999
for looking for code definitions. That was my first foray
00:03:51.000 --> 00:03:53.959
into it. It's like, oh, that's not a bad idea. Let's hook it up
00:03:53.960 --> 00:03:58.079
under, you know, in the standard way.
NOTE Q: Have you ever used org-transclusion?
00:03:58.080 --> 00:04:02.279
Let's see. Have I ever used org-transclusion?
00:04:02.280 --> 00:04:05.319
No, I haven't, but I think I want to
00:04:05.320 --> 00:04:08.439
take a look at it. I haven't heard of it before.
NOTE Q: What is your usage of dynamic blocks in such workflows?
00:04:08.440 --> 00:04:16.519
Let's see. What's my usage of dynamic blocks in my
00:04:16.520 --> 00:04:21.439
workflows? You know, that's a real good question. I haven't
00:04:21.440 --> 00:04:26.319
really used them a lot in all of my workflows, but yeah, it's
00:04:26.320 --> 00:04:29.439
an interesting, you know, we always start.
00:04:29.440 --> 00:04:30.999
At first, all
00:04:31.000 --> 00:04:33.679
we're doing is just taking a few notes, then we start
00:04:33.680 --> 00:04:36.039
organizing, then we've got links, and then we're writing
00:04:36.040 --> 00:04:39.519
code blocks, and then agendas, and table, you know, we keep
00:04:39.520 --> 00:04:40.999
building up on it.
00:04:41.000 --> 00:04:44.399
I guess I haven't really added that to
00:04:44.400 --> 00:04:46.978
my workflow, but maybe I'll have to come back
00:04:46.979 --> 00:04:48.839
and report on that.
NOTE Q: Is the minibuffer being deliberately hidden in this video?
00:04:48.840 --> 00:04:51.599
Is the mini buffer being deliberately hidden in my
00:04:51.600 --> 00:04:57.879
video? Not deliberately. I recorded it first and
00:04:57.880 --> 00:05:03.759
accidentally not clipped the video and turned that all off.
00:05:03.760 --> 00:05:07.359
So I went through and started fixing all of it. But yeah, so
00:05:07.360 --> 00:05:10.759
you'll notice the mini buffer kind of comes and goes in the
00:05:10.760 --> 00:05:12.444
video. Sorry about that.
00:05:12.445 --> 00:05:17.340
So yeah, it wasn't intentional at all.
NOTE Q: What's your take on Emacs+Org vs. Jupyter notebooks (for interactive programming)?
00:05:17.341 --> 00:05:21.839
What's my take on Emacs Org versus Jupyter? That's a real
00:05:21.840 --> 00:05:29.519
good question. I've been toying about seeing if I could do
00:05:29.520 --> 00:05:32.479
everything that some people do with Jupyter notebooks in
00:05:32.480 --> 00:05:36.079
order. I don't need to do it as much because I'm still kind of
00:05:36.080 --> 00:05:40.319
doing a lot of list programming and a lot of my DevOps, which
00:05:40.320 --> 00:05:45.559
is a lot of shell work and a lot of Python. Most of the Jupyter
00:05:45.560 --> 00:05:49.639
notebooks, they automatically include a lot of things in
00:05:49.640 --> 00:05:56.679
from either Julia or Python, like NumPy and all the dynamic
00:05:56.680 --> 00:06:01.439
stuff that's going on there. Since it has a server,
00:06:01.440 --> 00:06:07.439
it seems like it's running a lot more stuff and then just
00:06:07.440 --> 00:06:10.719
shipping it back off into the web app. That has been the
00:06:10.720 --> 00:06:16.239
biggest challenge as I've tried to kind of duplicate that. I
00:06:16.240 --> 00:06:20.439
don't really know NumPy and all the math stuff and that sort
00:06:20.440 --> 00:06:25.039
of stuff that well. So trying to do like matrix
00:06:25.040 --> 00:06:27.359
multiplications and that kind of thing that seemed to be
00:06:27.360 --> 00:06:33.119
pretty easy in the Jupyter, it's not very easy in Org. I've
00:06:33.120 --> 00:06:36.639
attempted to kind of work with Julia and the Julia support
00:06:36.640 --> 00:06:45.759
for Org is really limited it seems. That's the, So, yeah,
00:06:45.760 --> 00:06:49.199
there's some improvements we could probably make. So, I
00:06:49.200 --> 00:06:53.159
think if somebody is comfortable with Jupiter, and that
00:06:53.160 --> 00:06:59.039
seems to work, you may have to stay there. I don't know how
00:06:59.040 --> 00:07:04.679
easy. I would be curious to try to see what we could do as a
00:07:04.680 --> 00:07:07.799
community to kind of make that transition a lot easier.
NOTE Q: Do you think any programming language is more suited to literate programming than another?
00:07:07.800 --> 00:07:12.416
Do you think any programming language
00:07:12.417 --> 00:07:13.559
is more suited to literate
00:07:13.560 --> 00:07:16.959
programming than another? Hey, that's a real good
00:07:16.960 --> 00:07:22.359
question. A lot of mine is with Emacs Lisp, and obviously
00:07:22.360 --> 00:07:27.639
that's a first-class citizen in Emacs. Go figure, right? So
00:07:27.640 --> 00:07:33.519
that one certainly works. A lot depends on the support in the
00:07:33.520 --> 00:07:38.199
OB version for the Babel work. Python is really well
00:07:38.200 --> 00:07:45.599
supported, and yeah, Emacs Lisp. Others, Shell, you know,
00:07:45.600 --> 00:07:50.439
it works, but it's hard to get both the values, the variables
00:07:50.440 --> 00:07:53.479
out of the environment variables into your thing. So most
00:07:53.480 --> 00:07:58.959
everything is just with the results of output. So, you know,
00:07:58.960 --> 00:08:03.079
some languages aren't quite as good as others for sure. I
00:08:03.080 --> 00:08:06.879
would love to see better support for more interesting
00:08:06.880 --> 00:08:10.439
languages, especially ones that are compiled. I've been
00:08:10.440 --> 00:08:16.639
dabbling with Rust and like, yeah, what can we do to have Rust
00:08:16.640 --> 00:08:21.559
more iterative as well? So...
NOTE Q: Do you use inline org function calls and org babel library and such?
00:08:21.560 --> 00:08:29.159
Do you use inline org function calls in Org Babel library? So
00:08:29.160 --> 00:08:33.599
I used to do a lot of Org Babel libraries to kind of share
00:08:33.600 --> 00:08:35.639
things.
00:08:35.640 --> 00:08:46.399
Yeah. What I. But yeah. Sorry, I'm just kind of thinking
00:08:46.400 --> 00:08:49.839
through here. I've done a lot of it in the past. There were a
00:08:49.840 --> 00:08:54.919
lot of bugs in it. Oh, I don't know, eight years ago when I was
00:08:54.920 --> 00:08:59.359
playing with it. I bet things have improved a lot more and it
00:08:59.360 --> 00:09:04.239
probably saved me a lot more effort. Right now, most of the
00:09:04.240 --> 00:09:08.639
literate devops, the devops kind of stuff that I'm doing, is
00:09:08.640 --> 00:09:14.079
calling a lot of back-end programs and that sort of thing. So
00:09:14.080 --> 00:09:19.359
the Org Babel kind of has limited help in that regard. And as
00:09:19.360 --> 00:09:23.999
far as my Emacs work, well, it's just part of the session. So
00:09:24.000 --> 00:09:26.759
it's going to be available or not. So that hasn't been as
00:09:26.760 --> 00:09:30.559
helpful either. So it's kind of dropped off. But I bet if
00:09:30.560 --> 00:09:34.519
you're using something like, say, Python, it might be a lot
00:09:34.520 --> 00:09:36.969
more helpful.
NOTE Q: How do you handle the cases where org markup may sometimes interfere with some of the code?
00:09:36.970 --> 00:09:40.159
Another question, how do you handle the cases
00:09:40.160 --> 00:09:43.999
where markup may sometimes interfere with some of the code
00:09:44.000 --> 00:09:50.559
in places where you can't escape? Oh, okay. All right. Let me
00:09:50.560 --> 00:09:54.719
see if I understand the question correctly.
00:09:54.720 --> 00:10:01.759
When I, like, when I'm making prose, and I'm talking about a
00:10:01.760 --> 00:10:04.839
function that I've written somewhere else, like, oh, I need
00:10:04.840 --> 00:10:09.439
to work on this, or this calls this, and yeah, I'll use the
00:10:09.440 --> 00:10:14.839
tildes or the equal signs on either side to make sure it's.
00:10:14.840 --> 00:10:20.399
that it's clear that it's code. In my xref, when I'm doing a
00:10:20.400 --> 00:10:27.479
thing-at-point so it can go look for that symbol, I do look for
00:10:27.480 --> 00:10:31.919
those things at the end and strip them off so that I can mark it
00:10:31.920 --> 00:10:35.039
up and still search and it's still okay. I'm not sure if
00:10:35.040 --> 00:10:39.359
that's the answer to the question. Yeah, clarifying. I'm
00:10:39.360 --> 00:10:41.759
making prose. I'm talking about a function I've written
00:10:41.760 --> 00:10:47.319
somewhere else. Yeah, yeah, yeah, that is what I'm talking
00:10:47.320 --> 00:10:53.279
about, where a function with tildes on either end, and if I do
00:10:53.280 --> 00:10:57.359
an xref search find for that symbol, it'll strip that off and
00:10:57.360 --> 00:11:01.439
then still look for the function name, so I can still mark it
00:11:01.440 --> 00:11:06.219
correctly.
NOTE Q: You said at the start that literate didn't catch on in corporate DevOps - why not?
00:11:06.220 --> 00:11:08.439
You said at the start that literate didn't catch on in
00:11:08.440 --> 00:11:14.719
corporate devops, why not? You know,
00:11:14.720 --> 00:11:18.919
I guess the big thing is not everybody's using Emacs,
00:11:18.920 --> 00:11:20.610
and I don't think anybody would be
00:11:20.611 --> 00:11:23.651
doing literate programming if you didn't
00:11:23.652 --> 00:11:25.199
have Emacs. I mean, you got to have Org, or it just
00:11:25.200 --> 00:11:29.420
doesn't work that well, right?
NOTE Q: Why not that full stack on Markdown?
00:11:29.421 --> 00:11:36.359
Why not that full stack on Markdown? Yeah, so I often do a lot
00:11:36.360 --> 00:11:44.279
of Markdown. I have got, so I've gone through and make my
00:11:44.280 --> 00:11:49.039
markdown look a lot like Org. So my headers are the same size
00:11:49.040 --> 00:11:54.759
as org. When I mark, do the triple back ticks, you know, and
00:11:54.760 --> 00:11:59.279
specify your language, we can now colorize that.
00:11:59.280 --> 00:12:01.521
So you can kind of now have it
00:12:01.522 --> 00:12:05.679
syntactically marked up. It would be
00:12:05.680 --> 00:12:11.199
interesting if we kind of expanded on Markdown so that I
00:12:11.200 --> 00:12:14.479
could do a C-c twice on it and run that code block.
00:12:14.480 --> 00:12:22.119
That's a real good idea. Maybe we should work on that.
NOTE Corwin's aside on orgvm
00:12:22.120 --> 00:12:28.039
How does your management of TODOs, projects, and tasks
00:12:28.040 --> 00:12:31.679
interact with this literate mindset? I can't believe I'm
00:12:31.680 --> 00:12:33.879
going to do this, but Howard, I'm going to break right in
00:12:33.880 --> 00:12:37.119
there because I just can't. I need to talk about that. So this
00:12:37.120 --> 00:12:41.799
is I bought a domain. And really what I mean is I have this
00:12:41.800 --> 00:12:45.599
domain if somebody gets some work done in this area. I'm
00:12:45.600 --> 00:12:48.839
fascinated by this. That's mostly really actually my whole
00:12:48.840 --> 00:12:52.599
comment. But I just wanted to say, indeed, that is something
00:12:52.600 --> 00:12:56.599
maybe we should work on. Well said. I think the idea of having
00:12:56.600 --> 00:12:59.559
something that's full-stack baked around Emacs is pretty
00:12:59.560 --> 00:13:03.079
fascinating, just thinking about it as some command line
00:13:03.080 --> 00:13:05.639
tool that we can run to get some work done, and then there are
00:13:05.640 --> 00:13:07.969
documents involved, and as you know coming back
00:13:07.970 --> 00:13:10.511
to the kind of corporate
00:13:10.512 --> 00:13:12.759
sense of some of the things like there...
00:13:12.760 --> 00:13:15.319
that's a little dicey the same way a free software
00:13:15.320 --> 00:13:19.038
project raising money for itself is a little dicey.
00:13:19.039 --> 00:13:21.720
It might be a necessary way to get through
00:13:21.721 --> 00:13:23.882
certain kinds of things and like
00:13:23.883 --> 00:13:26.559
what the corporate side of the world brings to the table
00:13:26.560 --> 00:13:31.989
Here in my mind is that idea of I've got a formal process,
00:13:31.990 --> 00:13:33.830
like the process itself is an asset.
00:13:33.831 --> 00:13:35.239
If I were selling my company,
00:13:35.240 --> 00:13:39.399
that would be visibly of value to outside auditors that
00:13:39.400 --> 00:13:43.257
would help us arbitrate the sale. It's just empirical.
00:13:43.258 --> 00:13:48.239
Then tie that together with free software is maybe a little
00:13:48.240 --> 00:13:53.159
unstated ethos of doing our work in the open, and you might
00:13:53.160 --> 00:13:58.759
even deal with some of the ick factor. that you know that for a
00:13:58.760 --> 00:14:05.119
handler. Maybe so, but yeah, the downside to that is you'd
00:14:05.120 --> 00:14:09.679
still need to use Emacs to run through it, right? You know,
00:14:09.680 --> 00:14:13.719
for all those cool features, yes, it would be kind of a yet
00:14:13.720 --> 00:14:17.519
another killer app that we would have. So my domain name is
00:14:17.520 --> 00:14:22.239
orgvm, and my concept is really put org into a box, build a UI
00:14:22.240 --> 00:14:25.119
around it, it executes things that manipulate files that
00:14:25.120 --> 00:14:30.239
generate, let's say, And that's just one conceptual
00:14:30.240 --> 00:14:34.359
solution. But I really do think this is a super fun topic. And
00:14:34.360 --> 00:14:37.479
that's the space. I'm not sure my idea is that wonderful. I
00:14:37.480 --> 00:14:42.439
personally haven't soaked too many weekends into it. But I
00:14:42.440 --> 00:14:45.159
just love the way you're thinking in terms of, well, we
00:14:45.160 --> 00:14:49.519
should think more about that. Gosh, that's great to hear.
NOTE Org and Markdown fragmentation
00:14:49.520 --> 00:14:53.399
Yeah. Yeah, I mean, just like the talk yesterday on the
00:14:53.400 --> 00:14:57.639
future of org, it's like, let's standardize it. Because,
00:14:57.640 --> 00:15:03.239
yeah, we don't want to have org fragmented like Markdown is.
00:15:03.240 --> 00:15:06.839
Markdown is terribly fragmented. You know, everybody's
00:15:06.840 --> 00:15:10.199
got different implementations. And Yeah, what I've ended
00:15:10.200 --> 00:15:15.039
up doing, I don't know if you've seen my blog, but I often I'm
00:15:15.040 --> 00:15:19.119
always just writing an org and talking to myself and writing
00:15:19.120 --> 00:15:22.919
questions and answers and essays come out of that. And then
00:15:22.920 --> 00:15:26.319
I'll put them on my web page and easy. It's easy to publish to a
00:15:26.320 --> 00:15:30.079
web page. Well, I do the same thing at work, but I need to have
00:15:30.080 --> 00:15:33.319
it marked down. I don't start Markdown though. I'm always
00:15:33.320 --> 00:15:36.479
starting an org because that, you know, I can really work
00:15:36.480 --> 00:15:40.239
through the problem space, you know, executing code blocks
00:15:40.240 --> 00:15:44.759
and making sure they work and all of that sort of stuff. And
00:15:44.760 --> 00:15:47.959
then I just export to Markdown and then go cleaned up a little
00:15:47.960 --> 00:15:51.679
bit if I need to. And that makes sense. But I am editing
00:15:51.680 --> 00:15:55.999
Markdown afterwards. So yeah, it would be nice. It would be
00:15:56.000 --> 00:16:00.359
nice. It's just, it's all done over here as opposed to, you
00:16:00.360 --> 00:16:02.879
know, Adding it over there, but yeah, let's think about
00:16:02.880 --> 00:16:06.519
every bit as much as as that. You know, I jumped in in the
00:16:06.520 --> 00:16:09.959
spirit of yes, let's think about it. You know, your, your
00:16:09.960 --> 00:16:12.599
comments about, let's think about the workflows that work
00:16:12.600 --> 00:16:17.919
for us. Wow. Does that hit home? Right? So great. Yeah. Yeah.
NOTE Q: How does your management of "TODOs" (projects/tasks) interact with this literate mindset, any insightful things you do on that front?
00:16:17.920 --> 00:16:25.279
Yeah. Okay. So, uh, on to do's and that sort of thing, um. You
00:16:25.280 --> 00:16:32.199
know, a lot is the same as it was 10 years ago. At the beginning
00:16:32.200 --> 00:16:33.319
of every sprint,
00:16:33.320 --> 00:16:38.279
my company, we're using JIRA.
00:16:38.280 --> 00:16:46.159
All jokes are valid when I say that. But I just go to its web
00:16:46.160 --> 00:16:49.639
page. I copy all the tasks that I need to do that sprint. I
00:16:49.640 --> 00:16:54.119
wrote a function that takes that code and reformats it as a
00:16:54.120 --> 00:16:58.199
bunch of org tasks for me to do that I can just now have all my
00:16:58.200 --> 00:17:02.799
to-dos. And I start to work off of that from that point on. So
00:17:02.800 --> 00:17:06.479
it'll reference all the projects, and I do symlinks to every
00:17:06.480 --> 00:17:12.479
code base that I need to use. Most of the to-dos I put inside my
00:17:12.480 --> 00:17:16.639
code block is kind of just for me, just so I can remember it.
00:17:16.640 --> 00:17:21.086
Because the work that I have to do
00:17:21.087 --> 00:17:24.119
needs to be tracked a little more
00:17:24.120 --> 00:17:30.629
fine-grained, I guess. Yeah.
NOTE Q: Do you LP also on larger projects?
00:17:30.630 --> 00:17:33.439
Do I use LP also on larger
00:17:33.440 --> 00:17:37.199
projects? More files and nested directories? Yeah, I
00:17:37.200 --> 00:17:43.879
haven't really done nested directories, but I can now. Now
00:17:43.880 --> 00:17:49.839
that I've now kind of realized that I have the feature that I
00:17:49.840 --> 00:17:54.439
demonstrated where I can just jump to any projects for a
00:17:54.440 --> 00:17:59.559
particular project, all the org files and all the headings
00:17:59.560 --> 00:18:02.439
show up, that works in nested directories.
00:18:02.440 --> 00:18:10.999
Oh, okay, yeah, somebody's typing it in. Yeah, so it's
00:18:11.000 --> 00:18:15.359
definitely possible. And I have now, since I recorded the
00:18:15.360 --> 00:18:20.519
talk, I've been busy typing in and trying to extract that out
00:18:20.520 --> 00:18:24.479
of my init file and make it into a package. I'm looking for a
00:18:24.480 --> 00:18:30.239
good name right now. I'm calling it jobs, jump to project
00:18:30.240 --> 00:18:36.399
sections. Anyway, but yeah, I think that's kind of a nice,
00:18:36.400 --> 00:18:38.935
useful feature.
NOTE Q: Have you used Cucumber/Gherkin/BDD and do you think it has a strong overlap to what you talked about here?
00:18:38.936 --> 00:18:41.919
Have I used Cucumber, Gherkin, and other
00:18:41.920 --> 00:18:44.479
behavior-driven development?
00:18:44.480 --> 00:18:50.719
Have I, I mean, I do a lot of...
00:18:50.720 --> 00:19:00.279
more test driven. I do a lot of unit tests and I just put it
00:19:00.280 --> 00:19:04.679
right in my code base because if it's in my pros, I can just
00:19:04.680 --> 00:19:07.199
shove it in there. I've got the test right next to the
00:19:07.200 --> 00:19:11.519
function that I'm testing. I like that so I can kind of see it.
00:19:11.520 --> 00:19:15.359
I don't tangle it out to that same source file. I tangle it
00:19:15.360 --> 00:19:19.119
somewhere else if I tangle it at all because I don't need to. I
00:19:19.120 --> 00:19:23.199
can just, you know, C-c that and run it. I like that
00:19:23.200 --> 00:19:24.879
aspect of it.
00:19:24.880 --> 00:19:29.319
Yeah, just keeping things together. That's the big problem
00:19:29.320 --> 00:19:32.479
I have with a lot of tests is the tests are somewhere else.
00:19:32.480 --> 00:19:35.319
It's separate from the code. I like seeing it all together,
00:19:35.320 --> 00:19:39.879
but a lot depends on how extensive it is. So for a lot of the,
00:19:39.880 --> 00:19:43.359
you know, the tests that we end up doing where, you know,
00:19:43.360 --> 00:19:47.759
you've got to do a lot of mocks and a lot of startup and tear
00:19:47.760 --> 00:19:51.839
down, that kind of thing. Yeah, that doesn't help as much.
00:19:51.840 --> 00:19:54.599
And you probably have to kind of go old school on that.
NOTE Q: What granularity are you looking for re your org files and contents, with respect to a codebase that it tangles to, or in non-coding contexts?
00:19:54.600 --> 00:20:01.359
What granularity I'm looking for with my org files and my
00:20:01.360 --> 00:20:03.634
subcontent? That's a real good question
00:20:03.635 --> 00:20:05.255
and really subjective.
00:20:05.256 --> 00:20:13.159
I change that over time. I begin by just dumping.
00:20:13.160 --> 00:20:16.378
I just dump everything in my head into a file
00:20:16.379 --> 00:20:19.679
and then I go through and start to refine it.
00:20:19.680 --> 00:20:26.159
My goal at one point was to have an Emacs config file that was
00:20:26.160 --> 00:20:29.919
really small and simple. And boy, that just doesn't happen.
00:20:29.920 --> 00:20:35.759
It's just too fun to add things and try new ideas. And I found
00:20:35.760 --> 00:20:41.839
my files were just littered with good ideas that were
00:20:41.840 --> 00:20:47.119
half-baked and not finished. And so it's like, oh, I need to
00:20:47.120 --> 00:20:49.959
extract these and put them into different files so I can keep
00:20:49.960 --> 00:20:54.359
it clean. And so I think it's like with any code base, you're
00:20:54.360 --> 00:20:58.999
just going to keep refactoring. It's an iterative process.
00:20:59.000 --> 00:21:04.199
So having the ability to, like with an Org file, where you can
00:21:04.200 --> 00:21:09.159
archive a subtree. Okay, this idea didn't pan out. Archive
00:21:09.160 --> 00:21:13.519
it. I can come back to it later. Being able to just kind of
00:21:13.520 --> 00:21:20.399
shove it somewhere else is really a nice little feature. All
00:21:20.400 --> 00:21:25.079
right. Not a question, just a comment. We need more of your
00:21:25.080 --> 00:21:29.239
insightful posts and videos. Oh, thanks.
00:21:29.240 --> 00:21:35.519
I appreciate it. Yes, it's been a fun journey. And I think we
00:21:35.520 --> 00:21:38.519
are coming up on our time, actually. So that is just an
00:21:38.520 --> 00:21:41.919
amazing quiz. And it helps me from manipulating, as I said,
00:21:41.920 --> 00:21:46.959
or as I put it earlier, like my chance as an organizer, or not
00:21:46.960 --> 00:21:50.679
manipulating, monopolizing my chance as an organizer to
00:21:50.680 --> 00:21:53.439
just get a chance to pick your brain on all kinds of things,
00:21:53.440 --> 00:21:58.959
which is too kind, too kind. Appreciate it. It's been fun.
00:21:58.960 --> 00:22:04.679
All right, I'll try answering more questions online as
00:22:04.680 --> 00:22:07.959
well. All right, talk to you later. And we appreciate your
00:22:07.960 --> 00:22:10.399
being in a huge resource that you are to the community.
00:22:10.400 --> 00:22:14.199
Thanks to everyone for tuning in and we'll be coming over to
00:22:14.200 --> 00:22:18.239
our next talk in just a moment here. And so bear with us
00:22:18.240 --> 00:22:23.239
through the transition as we slip into, I think it's our, is
00:22:23.240 --> 00:22:26.919
that our penultimate or our ultimate talk? We have one or two
00:22:26.920 --> 00:22:30.119
left, I'm not sure. I think we've got a couple of talks left.
00:22:30.120 --> 00:22:34.079
I'm back. Thank you, Howard. And we will be moving to the next
00:22:34.080 --> 00:22:37.159
talk in about six minutes. So if you need to grab some coffee,
00:22:37.160 --> 00:22:42.119
some tea, use the time wisely. And to confirm, we will have
00:22:42.120 --> 00:22:44.319
one, two, three more talks this afternoon. So there's still
00:22:44.320 --> 00:22:48.160
plenty to go around. See you in a bit, folks.