diff options
Diffstat (limited to '2024/captions/emacsconf-2024-literate--literate-programming-for-the-21st-century--howard-abrams--answers.vtt')
-rw-r--r-- | 2024/captions/emacsconf-2024-literate--literate-programming-for-the-21st-century--howard-abrams--answers.vtt | 996 |
1 files changed, 996 insertions, 0 deletions
diff --git a/2024/captions/emacsconf-2024-literate--literate-programming-for-the-21st-century--howard-abrams--answers.vtt b/2024/captions/emacsconf-2024-literate--literate-programming-for-the-21st-century--howard-abrams--answers.vtt new file mode 100644 index 00000000..803d43df --- /dev/null +++ b/2024/captions/emacsconf-2024-literate--literate-programming-for-the-21st-century--howard-abrams--answers.vtt @@ -0,0 +1,996 @@ +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. |