From e83f377aba7079eca2ab774e7f27f2704f669f43 Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Tue, 20 Dec 2022 13:05:54 -0500 Subject: add answer captions, add rest of IRC comments --- ...e-common-emacs-user--john-cummings--answers.vtt | 6638 ++++++++++++++++++++ 1 file changed, 6638 insertions(+) create mode 100644 2022/captions/emacsconf-2022-fanfare--fanfare-for-the-common-emacs-user--john-cummings--answers.vtt (limited to '2022/captions/emacsconf-2022-fanfare--fanfare-for-the-common-emacs-user--john-cummings--answers.vtt') diff --git a/2022/captions/emacsconf-2022-fanfare--fanfare-for-the-common-emacs-user--john-cummings--answers.vtt b/2022/captions/emacsconf-2022-fanfare--fanfare-for-the-common-emacs-user--john-cummings--answers.vtt new file mode 100644 index 00000000..dbebe238 --- /dev/null +++ b/2022/captions/emacsconf-2022-fanfare--fanfare-for-the-common-emacs-user--john-cummings--answers.vtt @@ -0,0 +1,6638 @@ +WEBVTT + +00:00.000 --> 00:10.040 +Okay, hi, we seem to be back. Sorry for the little interruption. John, you might not have + +00:10.040 --> 00:14.640 +realized, but I was supposed to send a broadcast message to the dev track and I submitted it + +00:14.640 --> 00:20.840 +to the gen track instead, so I spoke over you for 20 seconds. I apologize humbly, deeply, + +00:20.840 --> 00:26.440 +and sincerely. But John, I have to apologize now. I will say hi to you. How are you doing? + +00:26.440 --> 00:30.120 +Hello, I'm doing good. I know I'm saying you harmonized with me. You didn't talk over me, + +00:30.120 --> 00:31.120 +you talked with me. + +00:31.120 --> 00:36.280 +You know, as much as I would like to say yes, that is possible, the fact that I did not + +00:36.280 --> 00:40.200 +have the sounds on your talk makes it very difficult for me to harmonize. You know, it's + +00:40.200 --> 00:48.200 +like try to have a barbershop quartet and they cannot hear one another. Try to tell + +00:48.200 --> 00:50.320 +them to harmonize. I'm not sure if it's going to work. + +00:50.320 --> 00:54.840 +I sang, actually sang in a barbershop chorus for a while and I know the pain that you're + +00:54.840 --> 00:59.400 +talking about. But anyway, it's water under the bridge. + +00:59.400 --> 01:04.640 +Yes, what a serendipitous discussion. I wasn't expecting this. Okay, you have the pad open + +01:04.640 --> 01:07.600 +in front of you. Do you want me to read the question or do you want to take them on your + +01:07.600 --> 01:08.600 +own? + +01:08.600 --> 01:09.600 +I'd be glad to do it. + +01:09.600 --> 01:10.600 +Right. + +01:10.600 --> 01:14.760 +All right, I'm just going to go start from the top here. I have not only one config, + +01:14.760 --> 01:20.200 +but multiple configs in different locations..emacs.init.el and.emacs.init.el and different + +01:20.200 --> 01:23.520 +Python installs in different places. This is something I should take care of earlier + +01:23.520 --> 01:27.880 +rather than later. I need to pay someone to consult on my config. Is this an existing + +01:27.880 --> 01:32.440 +business? Is there a place to barter a screen share for something else, a value in exchange? + +01:32.440 --> 01:36.720 +In any case, thank you for giving permission to have fun without the need for too much + +01:36.720 --> 01:37.720 +structure. + +01:37.720 --> 01:45.960 +That's, and that's, yeah, I feel humbled being asked this. I don't know how much insightful + +01:45.960 --> 01:51.240 +answers I can give here other than the fact that I did notice one of the talks that I + +01:51.240 --> 01:56.360 +really wanted to catch and resonate with was the Emacs buddy initiative. That was actually + +01:56.360 --> 02:00.680 +one of the points that I wanted to include in my talk, but it turns out that 10 minutes + +02:00.680 --> 02:07.260 +goes by incredibly fast when you, when the ideas are flowing. And I think that that's, + +02:07.260 --> 02:13.600 +that's probably one of the best advice that it, to sources is to find some kind of buddy + +02:13.600 --> 02:17.800 +who probably would be a great, especially someone who is, who is maybe at a similar + +02:17.800 --> 02:24.320 +or, or even a different experience or comfort level may be able to, you know, be a good + +02:24.320 --> 02:29.400 +exchange of value there. But yeah, I mean, that's, and again, it's something I'll think + +02:29.400 --> 02:33.760 +about more. I might not come up with the most interesting answers live. + +02:33.760 --> 02:38.120 +Oh, it's fine. Don't worry. You know, you don't have to worry about making the most + +02:38.120 --> 02:42.000 +exhaustive answer. You know, the whole point of, sorry, let me move myself to the left. + +02:42.000 --> 02:47.760 +Okay. Nevermind. I'm trying my best to composite the shot live. Yeah. You don't have to worry + +02:47.760 --> 02:52.680 +about making very exhaustive answer right now. Also, we have about 11 minutes. We might + +02:52.680 --> 02:56.040 +open up the chat. So you have a lot of questions. So I think a lot of people are very interested. + +02:56.040 --> 03:01.560 +I think, you know, when you have the arguments that you're trying to valorize the box standard + +03:01.560 --> 03:05.720 +user of Emacs, I think everyone is feeling very invested into the talk and might want + +03:05.720 --> 03:10.120 +to ask questions. So I'm giving you a heads up people. If you now is the last chance you + +03:10.120 --> 03:14.920 +have, we are the last talk of the day, barring the closing remarks. If you have questions + +03:14.920 --> 03:18.800 +to ask, now is the time to join DBB. We'll be opening it in two minutes. And in the meantime, + +03:18.800 --> 03:22.120 +John, feel free to go back to the question and answer as many as you can. + +03:22.120 --> 03:26.480 +Thank you. And I would love to talk about this with people in the community forever. + +03:26.480 --> 03:31.760 +So this is not the last chance to talk about it. All right. How would you suggest Emacs + +03:31.760 --> 03:35.400 +developers, including package developers, interface with non-developer users and get + +03:35.400 --> 03:43.680 +their insights to help in shaping future Emacs functionality? + +03:43.680 --> 03:50.680 +You know, I think I've seen a lot of discussion on the mailing lists where this kind of exchange + +03:50.680 --> 03:55.880 +is wanted. You know, I think this is one of those things that may, it may always be difficult + +03:55.880 --> 04:00.960 +because I've, you know, I have some participation on both sides of this, if there are sides + +04:00.960 --> 04:06.860 +to it. And I think that most people agree that there's maybe could be a more tighter + +04:06.860 --> 04:13.800 +communication. So I don't think there's anybody out there who thinks that there's work to + +04:13.800 --> 04:18.040 +be done here. There's definitely effort that should be dedicated here. It seems to me like + +04:18.040 --> 04:22.320 +it's happening. I mean, this, you know, the Emacs survey was developed pretty closely + +04:22.320 --> 04:28.800 +from what I could see with the core maintainers. So I think that it's out there. I mean, perhaps + +04:28.800 --> 04:33.280 +the mailing list is a good place to start, the several ones of them. I think that you'll + +04:33.280 --> 04:38.480 +certainly get an answer and hopefully it will start a dialogue that can continue. + +04:38.480 --> 04:44.600 +All right. Next one. My impression that many common Emacs users are migrating to other + +04:44.600 --> 04:49.080 +editors in past years. The reasons cited are configurations growing out of control, general + +04:49.080 --> 04:53.240 +rough around the edges feel of Emacs, they've been putting up with for a while and maybe + +04:53.240 --> 04:59.960 +this isn't new. As a result, Emacs is becoming a smaller set of people. More invested, do + +04:59.960 --> 05:04.520 +you share this observation? So what do I think of the trend? And I'm sorry that I was talking + +05:04.520 --> 05:09.360 +over your editing there. I hope I didn't pressure you into stopping. I mean, my, my impression + +05:09.360 --> 05:13.680 +has been that that that's a thing of the past that was happening. My impression, I've been + +05:13.680 --> 05:19.480 +using Emacs for something like 25 to 14 to 15 years, depending on exactly when you start + +05:19.480 --> 05:24.160 +counting the time. It's been a long time for me and I haven't been very aware of things + +05:24.160 --> 05:28.440 +that whole time and become more and more aware and conscientious of the scene over the years + +05:28.440 --> 05:37.160 +recently. But those impressions are that it was getting less, less usage in past years, + +05:37.160 --> 05:43.260 +but it's, it's got, I think it's been increasing pretty quickly in recent years and increasing + +05:43.260 --> 05:52.120 +at a pretty high rate. So I don't, I don't necessarily disagree that there are different + +05:52.120 --> 05:56.640 +sets of people within the Emacs community who may, whose usages may be changing and + +05:56.640 --> 06:01.160 +maybe certain sets of within the community are shrinking and their investment levels + +06:01.160 --> 06:06.360 +are changing. But my, my, up until now, if you had asked me, it would have, I would have + +06:06.360 --> 06:14.080 +said that the Emacs user base was growing, changing and the usage of what they were, + +06:14.080 --> 06:18.080 +what they were counting on was, would, would have becoming, you know, more towards the + +06:18.080 --> 06:25.820 +popular, maybe away from what the core user base would have, would have focused on previous + +06:25.820 --> 06:32.020 +to that. But yeah, overall it seems to me like it's growing. And I think that where + +06:32.020 --> 06:38.120 +we are here and everyone who's gathered here today is, is evidence of that. + +06:38.120 --> 06:47.480 +And what do I think of that trend? I mean, I, I'm happy about it. I think, I mean, I, + +06:47.480 --> 06:53.240 +one of the things that I didn't have a chance to focus too much on in the talk was, was + +06:53.240 --> 07:00.120 +the power of that vanilla out of the box experience. I am a Viper, happy Viper user. I don't think + +07:00.120 --> 07:04.200 +there really are many others that I, at least ones that I know about and they may, they + +07:04.200 --> 07:08.520 +just may be the people that I was describing in my talk. They may be out there using Viper + +07:08.520 --> 07:13.760 +happily and they're, and they're dark matter. They're there and they make up maybe a huge + +07:13.760 --> 07:21.120 +amount of the universe, but you just maybe can't, it can't feel their effect. But, you + +07:21.120 --> 07:27.280 +know, I think that the, I'm glad that that usage is growing, if it is. But I also would + +07:27.280 --> 07:32.960 +hope that people continue to value that out of the box vanilla experience. Because I think + +07:32.960 --> 07:38.640 +that it gets, it's easy to overlook and I think it probably does get overlooked. And + +07:38.640 --> 07:41.840 +that may just be a necessary consequence of the fact that when things become popular, + +07:41.840 --> 07:47.720 +when things grow in popularity, they are, what gets focus and what gets coverage is + +07:47.720 --> 07:55.040 +those things that are more receptive and lend themselves better to, to popularity. And that's + +07:55.040 --> 08:00.760 +not necessarily the same as the things that are the most, it's not everything is really + +08:00.760 --> 08:05.480 +all I can say. There's more, there's always more to it than that. So I hope that as popularity + +08:05.480 --> 08:14.000 +grows, people won't forget those things and those things will stay, stay useful for everyone. + +08:14.000 --> 08:19.200 +Should I do the last one or should I stop? Oh, yeah, I might have some comments on this + +08:19.200 --> 08:22.720 +if no one shows up afterwards, but for now, yes, feel free to answer the last question. + +08:22.720 --> 08:28.080 +Okay. Do you consider that using one of the starter packages, do me max, space max, etc. + +08:28.080 --> 08:31.820 +affect that learning process that you mentioned? Or is it a good thing from your perspective? + +08:31.820 --> 08:35.000 +You know, that was another thing I wanted to mention in a talk that I didn't, that my + +08:35.000 --> 08:39.240 +10 minutes didn't allow, or maybe just the way that I talk in those 10 minutes didn't + +08:39.240 --> 08:44.920 +allow. I wanted to just acknowledge the fact that I don't have experience with them. I've + +08:44.920 --> 08:52.560 +been using GNU Emacs since, since I started using Emacs. I think they solve a problem + +08:52.560 --> 08:59.480 +for people. I think they have a place. But, you know, I think, I think some of the thoughts + +08:59.480 --> 09:04.560 +that I had been forming that I wasn't able to put in there about these was that you need + +09:04.560 --> 09:10.220 +to start wherever gets comfortable for you. And I think that no matter what you use, whatever + +09:10.220 --> 09:17.900 +you start with, I think you, you always get to the point where you feel like you've entrenched + +09:17.900 --> 09:25.920 +yourself in mindset or a set of habits that you use and you think it's, you want to change, + +09:25.920 --> 09:29.960 +you know that you should be able to change and grow, but you've just become accustomed + +09:29.960 --> 09:41.520 +to what you do. And I think that if, if using a starter package, if using a starter package + +09:41.520 --> 09:46.680 +gets you over that initial, you know, gets you into the things, if you feel like it's, + +09:46.680 --> 09:49.720 +it's going to limit your growth later on, I don't think it's necessarily because of + +09:49.720 --> 09:53.000 +what you chose. It's just, that's, that's just the feeling that everybody's going to + +09:53.000 --> 10:01.080 +feel eventually. Yeah. + +10:01.080 --> 10:05.080 +So sorry, John, I was talking with production. Are we, are you finished with the questions? + +10:05.080 --> 10:07.080 +It seems that you are, yeah. + +10:07.080 --> 10:11.760 +Yes, I believe I am. And I will, again, I will add better thoughts to these later on + +10:11.760 --> 10:12.760 +the pad. + +10:12.760 --> 10:18.040 +Yeah, but that's fine. I think you did a bang up. I'm French. I don't know if a bang up + +10:18.040 --> 10:20.200 +job is a good job. Can you confirm it for me? + +10:20.200 --> 10:22.040 +Yes, thank you. I appreciate that. + +10:22.040 --> 10:27.000 +Cool. Thank you. So it seems like we have Bob on for a question. So Bob was the speaker + +10:27.000 --> 10:31.600 +for the HyperOrc talk earlier today. So Bob, can you hear us? + +10:31.600 --> 10:34.120 +Yes, I can hear you great. + +10:34.120 --> 10:36.520 +And we can hear you as well. + +10:36.520 --> 10:39.040 +Can you see me? Let's see if... + +10:39.040 --> 10:41.040 +We cannot see you yet though. + +10:41.040 --> 10:47.880 +Okay. Yeah. I just started, start sharing. So I wanted to ask you, I mean, one of the + +10:47.880 --> 10:58.960 +things we really suffer from hyperbole, we have this issue that we try to make things + +10:58.960 --> 11:06.560 +as easy to use as possible, right? Just point and click, press this button and the magic + +11:06.560 --> 11:12.700 +happens. But because we are dealing with a domain that has a lot of complexity to it, + +11:12.700 --> 11:20.480 +we find, like you're saying, people have always done something a certain way. They bring whatever + +11:20.480 --> 11:28.440 +processes with them that they've used before. So it feels like there's a much heavier barrier + +11:28.440 --> 11:34.440 +to get regular users on board than there really should be from what we think we're producing + +11:34.440 --> 11:41.920 +in the software. So I wanted to get your perspective about what you think that might be and, you + +11:41.920 --> 11:47.080 +know, ways we could pursue tackling that. + +11:47.080 --> 11:51.640 +And by regular users, you mean ones who have already had a lot of time and... + +11:51.640 --> 11:57.760 +Emacs users who are not developers, not just not Emacs developers, but maybe they're non-technical + +11:57.760 --> 12:06.280 +at all. But they have to manage everyday information. They do emails, they do memos and whatever + +12:06.280 --> 12:10.720 +else they're processing. + +12:10.720 --> 12:20.840 +I'm not sure if... I don't know. This might not answer things to your satisfaction, but + +12:20.840 --> 12:28.760 +I'll, you know, be glad to keep the conversation going. But I wonder if... One of the things + +12:28.760 --> 12:33.680 +I was thinking of is that it's very easy to generate, I think, a lot of psychic baggage + +12:33.680 --> 12:40.040 +with Emacs as you use it over time because you get... I think I mentioned this in the + +12:40.040 --> 12:46.600 +talk. It's very... It's hard to use it and not be aware of all the different cool functionalities + +12:46.600 --> 12:49.960 +that it's built on and the things that you can take advantage of. And part of that is + +12:49.960 --> 12:57.400 +that as you develop your own workflows, you are not only developing them, but you're, + +12:57.400 --> 13:02.000 +for pragmatic reasons, rejecting other things. But you don't, you know, you're still aware + +13:02.000 --> 13:05.280 +that you've done that and you're aware of all the different possibilities that you've + +13:05.280 --> 13:08.880 +kind of left behind, at least temporarily. + +13:08.880 --> 13:15.320 +I wonder... I think at some point that baggage can impede you. Definitely can. It can make + +13:15.320 --> 13:24.680 +you less open and feel less safe to try new things out. Especially if those things are... + +13:24.680 --> 13:30.320 +I think sometimes it scales with the more useful and exciting and maybe even... Oh, + +13:30.320 --> 13:34.920 +that's pretty... If it's going to be exciting and useful and significantly change things, + +13:34.920 --> 13:40.520 +you could maybe feel extra resistant to try them out because you're not sure that you + +13:40.520 --> 13:46.280 +want to deal with all that excitement. And sometimes, again, the more useful it is, maybe + +13:46.280 --> 13:49.200 +the more resistant you are. + +13:49.200 --> 13:55.000 +In the programming environment, you might consider the difference between Smalltalk + +13:55.000 --> 14:03.400 +and C. And Smalltalk has all this, like Lisp, all this great interactive capability, but + +14:03.400 --> 14:07.840 +you have the baggage of carrying this big image around that people didn't want many + +14:07.840 --> 14:14.280 +years ago when it was popular. And C had nothing and still largely has nothing, right? Except + +14:14.280 --> 14:22.040 +you've got Unix there. And so people stare at a blank screen. They have no dynamic support. + +14:22.040 --> 14:29.960 +Maybe they have tags, but very little tooling. And yet, C dominates over Smalltalk. So I + +14:29.960 --> 14:36.280 +think we're talking about a similar kind of problem that maybe the leap is so far for + +14:36.280 --> 14:42.400 +people that you need to give them a series in between to transition them from their very + +14:42.400 --> 14:48.480 +weak initial environment to something much, much stronger. + +14:48.480 --> 14:55.240 +Yeah, that's a good point. And that's actually something that I think of for myself and thus + +14:55.240 --> 15:01.480 +something I was thinking about in regards to my talk. When you know that you want to... + +15:01.480 --> 15:05.480 +Let's consider the kind of user that you're talking about and hyperbole. And by the way, + +15:05.480 --> 15:10.160 +I enjoyed your hyperbole talk, your hyper-org talk, but up until now I hadn't been familiar + +15:10.160 --> 15:14.720 +with it. So I may say things that don't make any sense. But let's say this user that you're + +15:14.720 --> 15:20.520 +talking about who you want to become more comfortable with hyperbole. I'll start from + +15:20.520 --> 15:26.280 +the perspective of let's say they know they want to become more comfortable with it, but + +15:26.280 --> 15:34.520 +they also are having trouble getting comfortable with that process. And so that's certainly + +15:34.520 --> 15:40.720 +something I thought about building for myself and suggesting in this talk of when you know + +15:40.720 --> 15:43.560 +that you want to accomplish something, when you know that you want to change some of your + +15:43.560 --> 15:54.400 +habits to call them out and really put your habits on display for yourself. And rather + +15:54.400 --> 15:58.680 +than trying to remember them and ingrain them into your finger muscle memory and all that + +15:58.680 --> 16:04.560 +is to make some space to have your habits be public, not public necessarily, but just + +16:04.560 --> 16:10.280 +explicit in your environment and allow yourself to be uncomfortable with new habits for a + +16:10.280 --> 16:18.760 +while and that break out of the habitual space, give yourself some kind of mnemonic structure + +16:18.760 --> 16:25.900 +that lets you do these things habitually that will eventually kind of become that mold into + +16:25.900 --> 16:30.760 +which the habits will grow on top of rather than just trying to go from one set of habits + +16:30.760 --> 16:37.080 +to a new set of habits. And I think Emacs is one of those things that is great for that + +16:37.080 --> 16:43.120 +because it's the text, and especially what you demonstrated in hyperbole in that it seems + +16:43.120 --> 16:50.040 +like it's very easy to just write some text up that can generate for you a cheat sheet + +16:50.040 --> 16:54.480 +and say I've been using this on the left side, instead I want to use this on the right side + +16:54.480 --> 16:59.120 +and maybe two buffers or something. And you don't have to worry about what it's called, + +16:59.120 --> 17:04.080 +you don't have to worry about how to execute it or the key sequence or the function. When + +17:04.080 --> 17:08.240 +you find one day you find yourself using something on the left side, I'd rather use this on the + +17:08.240 --> 17:19.000 +right. And maybe over time you can move away from that and try to make it be more automatic. + +17:19.000 --> 17:22.440 +But at least I think maybe the key there is just acknowledging that the things that are + +17:22.440 --> 17:34.520 +habitual or that you want to become habitual can start to give yourself training wheels. + +17:34.520 --> 17:40.880 +Right Jens, I'm very sorry I'm going to have to pause the conversation now. But don't leave + +17:40.880 --> 17:45.040 +quite yet, this was a very interesting discussion and I would love to participate a little more + +17:45.040 --> 17:48.440 +but we are actually preparing for the closing remarks in the background. But what I'm going + +17:48.440 --> 17:52.880 +to suggest, because I don't want you both to lose steam and the closing remarks, you + +17:52.880 --> 17:56.440 +can watch them in your own time, I'm just going to thank everyone really. So by all + +17:56.440 --> 18:00.400 +means if you want to continue the discussion, you can stay in the room, we are still going + +18:00.400 --> 18:04.360 +to be recording and if you want to continue the discussion for as long as you want, it's + +18:04.360 --> 18:08.800 +going to be all good for us. It just won't be streamed now but it will eventually be + +18:08.800 --> 18:29.760 +available. So if you want to join the discussion now, + +18:29.760 --> 18:34.640 +you only have to go to the talk page and you will be able to join there. I'm really sorry + +18:34.640 --> 18:38.720 +Bob, I'm going to have to end it off in 30 seconds because we need to move to the next + +18:38.720 --> 18:43.680 +room. So I'll leave you to say bye Bob if you want to. + +18:43.680 --> 18:48.680 +Okay, I will stay here and talk to whoever wants to talk. + +18:48.680 --> 18:54.120 +Great and Bob do you want to say bye? Bye, thanks John, I appreciate it. + +18:54.120 --> 19:01.120 +Okay see you in a bit, we'll be closing remarks in about one minute. Okay, really sorry for + +19:01.120 --> 19:04.720 +recording short, we are now off stream and you can keep talking and we are recording + +19:04.720 --> 19:07.960 +everything. Okay, see you in a bit, I have to rush. + +19:07.960 --> 19:10.720 +So yeah, again, I don't want to keep you from the closing remarks. + +19:10.720 --> 19:15.680 +No, I'm happy to talk to you. I think Leo just kept saying, well you can stay but I + +19:15.680 --> 19:21.360 +have to cut it off. So I guess he was just saying the recording. I don't care. + +19:21.360 --> 19:25.080 +Let me jump over to, there's another question that someone posted, I just want to make sure + +19:25.080 --> 19:28.240 +I don't ignore that and then I'll. + +19:28.240 --> 19:32.440 +The tip of the day package or some elaboration on that idea and Emacs help discovery for + +19:32.440 --> 19:36.160 +lay users, does that already exist? + +19:36.160 --> 19:40.960 +You know, I'm not, I can pretty, I don't know if the person who wrote this is, if it's + +19:40.960 --> 19:47.960 +plasma strike, but hopefully they'll see the recording later. I'm confident in saying that + +19:47.960 --> 19:52.840 +this does exist. I don't know what it is because I've never used it, I've never seen it, but + +19:52.840 --> 19:56.960 +I know that something like this must exist, so I'm confident in saying that it does. + +19:56.960 --> 20:01.280 +Yeah, I haven't seen it either. + +20:01.280 --> 20:07.000 +If not, I mean, it probably would be something that would be relatively easy to make. Not + +20:07.000 --> 20:12.480 +necessarily the person who wants this, but yeah, it's something that I could. + +20:12.480 --> 20:19.640 +That's kind of interesting. If you put an org or a high rollo file together of all these + +20:19.640 --> 20:27.440 +tips, it would be very easy to, yeah, have something on a timer that would just pop one + +20:27.440 --> 20:34.920 +up every so often or based on some action, but that's kind of an interesting learning + +20:34.920 --> 20:42.300 +technique. I certainly use that in some other packages where a lot of times you just X out + +20:42.300 --> 20:49.400 +of it right away, but for things that actually provide useful tips, you tend to read them + +20:49.400 --> 20:56.320 +and linger for a bit, right, before you move on, and that's a great way because, I mean, + +20:56.320 --> 21:04.000 +after decades of using Emacs, there's definitely packages in Emacs, libraries that I've never + +21:04.000 --> 21:11.040 +seen before, I didn't know were there, and that I sometimes find useful, so there's always + +21:11.040 --> 21:20.880 +a lot to discover, and that feature discovery is a difficult thing, because that's why we + +21:20.880 --> 21:26.220 +spend a lot of time documenting things, because like with the reference manual, hyperbole + +21:26.220 --> 21:34.080 +about 170 pages, I don't expect people to read the manual, but to use it in info and + +21:34.080 --> 21:39.380 +say I'm interested in the action button, okay, I'll just read that action button section, + +21:39.380 --> 21:47.020 +and that's really what it's intended for, and why we provide quick access. In fact, + +21:47.020 --> 21:55.800 +if you look at the menu structure, the pull-down menus for hyperbole, there's just one pull-down + +21:55.800 --> 22:05.660 +menu, but the submenus under there, each one has an about or a doc item, and when you click + +22:05.660 --> 22:10.600 +on that, it takes you exactly to the place in the manual, discussing the concept that's + +22:10.600 --> 22:18.120 +covered by that menu, so it makes it very easy for people, but I was wondering, you + +22:18.120 --> 22:26.200 +know, if you, I think you have a lot of good process-oriented thoughts, and I'll say, you + +22:26.200 --> 22:33.740 +know, if you know who Doug Engelbart is or was, I worked with him a bit, and he was always + +22:33.740 --> 22:40.560 +focused on you have to evolve your process while you evolve your technology, and clearly, + +22:40.560 --> 22:48.280 +a lot of the people in the Emacs developer community are sort of focused on the technology, + +22:48.280 --> 22:53.720 +which is common, right, even in corporations, and it's always sort of a struggle to get + +22:53.720 --> 23:00.160 +people to try to evolve both at the same time, so I'd be interested in sort of conversing + +23:00.160 --> 23:06.920 +along those lines about, you know, we've built, so we've built two levels, I think, in hyperbole, + +23:06.920 --> 23:12.280 +we've built the toolkit of primitives that you can build from, and customize to your + +23:12.280 --> 23:19.200 +own needs, but we haven't done a lot about, and people are always asking, well, what's + +23:19.200 --> 23:24.920 +the workflow that I should use to integrate it with, and we're like, you know, well, what's + +23:24.920 --> 23:30.280 +your knowledge workflow, you know, what sort of tasks do you have to do, and then we can + +23:30.280 --> 23:35.800 +tell you something, but it is one of those general kinds of things, you know, like I + +23:35.800 --> 23:43.240 +say, I use the K-outliner to capture requirements, because I want, when I share those requirements + +23:43.240 --> 23:49.360 +with people, I want them to say, you know, well, item 9a, let's edit this this way, because + +23:49.360 --> 23:53.760 +a lot of times, right, they can't interact with the document that directly, or they want + +23:53.760 --> 24:03.120 +me to maintain it, so I find that everything is numbered that way, in any sort of structured + +24:03.120 --> 24:14.560 +ideation process, to be extremely valuable, and so, but I think, you know, maybe, obviously, + +24:14.560 --> 24:19.180 +as you said, you haven't used that, but, and I've worked on a lot of other Emacs stuff, + +24:19.180 --> 24:27.480 +but I think it'd be valuable, you know, having some discussions with you, to talk about that, + +24:27.480 --> 24:34.720 +you know, perspective from somebody trying to grok something like this, or, you know, + +24:34.720 --> 24:45.680 +get deeper into Emacs, and I always feel like, like I'm developing some new software at work, + +24:45.680 --> 24:51.480 +and our company is kind of moving from being a more consulting company to a technology + +24:51.480 --> 24:58.720 +company, and I say, well, okay, we're doing this big, big set of applications, where's + +24:58.720 --> 25:03.860 +the market input? The business people kind of wave their hands and say, you know, we + +25:03.860 --> 25:11.900 +want something shiny, but we never get structured input from the actual clients that will be + +25:11.900 --> 25:17.120 +the users, until we build something and put it in their hands, and I'm like, that's too + +25:17.120 --> 25:25.760 +late, you know, and we need, so I think it's sort of true here, too, that it's very hard + +25:25.760 --> 25:32.400 +to just, you know, like if I said, let's just have 10 people who have never tried hyperbole, + +25:32.400 --> 25:37.360 +look at it, go through a process, and just write one page on their experience, you know, + +25:37.360 --> 25:42.320 +but I think that'd be very hard to get that set of people together in general, you know, + +25:42.320 --> 25:44.720 +without effort, significant effort. + +25:44.720 --> 25:50.520 +That's a good point, because the people that would be able to use it, i.e. people who are + +25:50.520 --> 25:56.920 +already Emacs users for the most part, they're probably either already familiar with it, + +25:56.920 --> 26:03.360 +or busy, too, or maybe they have their own ways that they don't, they might be competent + +26:03.360 --> 26:08.800 +enough to do it, but not comfortable enough to do it, or not interested enough to do it. + +26:08.800 --> 26:12.720 +Maybe you have the intersection of all the different properties, which might be pretty + +26:12.720 --> 26:13.720 +small. + +26:13.720 --> 26:22.360 +Yeah, but just having those ideas, I think it helps us, you know, to shape, and I feel + +26:22.360 --> 26:33.040 +like we can take what we have and meld it, like what, if you saw Carl Volt's talk on + +26:33.040 --> 26:39.200 +his bi-directional links, I think that's a super valuable thing that we, you know, we + +26:39.200 --> 26:44.960 +haven't really considered much, but people talk about a lot as a result of work, having + +26:44.960 --> 26:48.040 +given them that capability for a while. + +26:48.040 --> 26:52.080 +That was Eduardo Oakes, was that Eduardo Oakes, or? + +26:52.080 --> 26:54.640 +No, no, that was not Eduardo. + +26:54.640 --> 27:00.120 +He's an interesting fellow, you know, it's like clearly very bright, but he lives in + +27:00.120 --> 27:08.120 +this academic-like bubble that, like, he wants to understand everything from the atomic level + +27:08.120 --> 27:15.840 +up in order to use it, so, you know, imagine, like, personally, you're what? + +27:15.840 --> 27:21.000 +I identify with that mindset, so I, so yeah, if you wanted to use toilet paper, would you + +27:21.000 --> 27:24.400 +try to understand the atomic composition? + +27:24.400 --> 27:31.320 +I'm just saying, he takes an extreme view, which may be, for him, that's what he finds + +27:31.320 --> 27:37.760 +work, so, but some interesting things come out of that, which is his EEV kind of stuff, + +27:37.760 --> 27:40.920 +which is very, very explicit, right? + +27:40.920 --> 27:48.960 +Everything is laid out, so it's bulky in a sense, but it, but he's got some good ideas + +27:48.960 --> 27:55.240 +on, like, tutorials and stuff, and he seems like he's more a scientist than a developer, + +27:55.240 --> 28:01.920 +so, you know, when we were trying to, I said, you could, the things you want to do, Hyperbole + +28:01.920 --> 28:07.200 +has a toolkit for, so just use Hyperbole, and then we'll help you shape whatever you + +28:07.200 --> 28:14.480 +want to do, and that's where we were never able to do that, because he'd say, well, okay, + +28:14.480 --> 28:21.920 +you have a button type that does what I want it to do, but now explain to me all the activation + +28:21.920 --> 28:27.280 +process for that, and I'm like, well, then you'd have to understand the, you know, the + +28:27.280 --> 28:32.240 +key parts of the Hyperbole code base, and you don't really need to, to do what we're + +28:32.240 --> 28:37.400 +talking about, so we can't, you know, that would take a long time, so let's not do that, + +28:37.400 --> 28:43.960 +and that never worked for him, so he decided to just build his own stuff, but then you + +28:43.960 --> 28:49.520 +look into that stuff, and it's sort of what you described in your talk, is, you know, + +28:49.520 --> 28:56.440 +it's not structured, it's, it's messy, it's, it's just sort of, you know, cobbled together, + +28:56.440 --> 29:06.320 +so he's got the same, he's got the same issue that it's, he doesn't want to do it just for + +29:06.320 --> 29:12.360 +his personal need, he wants, he wants this to be somebody that, something that people + +29:12.360 --> 29:18.000 +use, and so he gives talks and things like that, and he, so he, he's got this way of + +29:18.000 --> 29:23.720 +thinking that's very different than other people, that keeps his stuff away from people, + +29:23.720 --> 29:30.640 +but that's not his intention, it's just, you know, sort of the operational mechanics of + +29:30.640 --> 29:35.920 +the way it is, and I'd love, you know, I'd love to help him with that, or do something, + +29:35.920 --> 29:41.840 +he's a very nice fellow, but I haven't gotten him past the, you know, there are other abstraction + +29:41.840 --> 29:49.200 +levels besides the atomic level, let's, let's work on some of those levels, for him, you + +29:49.200 --> 29:53.040 +know, there's some sort of barrier, I think, there, so you're saying you're a little like + +29:53.040 --> 29:59.760 +that too? You have to get your hands on everything? Yeah, and I think that's, and full disclosure, + +29:59.760 --> 30:04.680 +I don't, I didn't have a lot of time to write, or to get in, I didn't have a lot of, like, + +30:04.680 --> 30:09.120 +in those 10 minutes to say everything I wanted to say, like, I'm not, I don't want to give + +30:09.120 --> 30:14.000 +the impression that I'm not a technical person, I am, I am a programmer, and I've been, like + +30:14.000 --> 30:18.880 +I said, I've been using Emacs for a very long time, just that over time, I probably, you + +30:18.880 --> 30:24.600 +know, just kind of have stayed in my personal sphere, and kind of worked, carved out a little + +30:24.600 --> 30:31.360 +thing that works for me, so I, my perspective might be a little surprising, to come up, + +30:31.360 --> 30:35.040 +you know, to people who might think, well, a talk like that, you're, you know, you're + +30:35.040 --> 30:40.520 +still a beginner, or you're still on the fringes, I'm like, no, I don't think I'm, I'm neither, + +30:40.520 --> 30:43.840 +neither beginner, feel like I'm a beginner, nor am I on the fringes of anything, I've + +30:43.840 --> 30:50.680 +just, my path has taken me through a certain way that is, is personal, it just happens, + +30:50.680 --> 30:57.880 +you know, but I think what you're saying earlier, is that, to identify, is, is that, that is + +30:57.880 --> 31:02.760 +one tension, the tension you were just mentioning, of, want to do something, but the Emacs is + +31:02.760 --> 31:08.120 +just one of those platforms where, where it's so, can entice you to do things, it can be + +31:08.120 --> 31:12.200 +so interesting and enticing to do certain things that you, it can lead to a lot of pain, + +31:12.200 --> 31:17.520 +and that you can, and confusion, where you can really want to learn something, and think, + +31:17.520 --> 31:22.240 +in your head, I'm always, you know, I'm, you know, I'm always thinking of, it was a dialogue + +31:22.240 --> 31:26.700 +with, you know, a dozen people when I used Emacs, a dozen other people whose, whose work + +31:26.700 --> 31:33.800 +I've read about, and developers, I've, I've read their works and stuff, of, it's hard + +31:33.800 --> 31:37.600 +to be doing something, and not be thinking about making it available for somebody else + +31:37.600 --> 31:43.640 +to use, I think it's, it's both very personal, and it's also hard to have a personal barrier, + +31:43.640 --> 31:48.240 +because I'm always, you know, I'm always thinking about, how would I expose this functionality + +31:48.240 --> 31:53.000 +for general purposes, how would I, how would I publish this, and so I can identify with + +31:53.000 --> 31:58.760 +that, and also, also, I want, you, you want to know, both, maybe there's just certain + +31:58.760 --> 32:02.880 +personalities, and mine would be one of them, where you really want to know why things are + +32:02.880 --> 32:06.600 +happening the way that they're happening, and I think Emacs is one of those places where, + +32:06.600 --> 32:11.520 +when you come in, you come in on the ground floor, and you see, wow, I can go up so high, + +32:11.520 --> 32:15.360 +but also, you, you can look down and say, well, there's a hundred floors below me, and + +32:15.360 --> 32:18.040 +you get torn, you know. + +32:18.040 --> 32:25.280 +I would ask a question like, do you, do you tend to look at the way Lisp primitives are + +32:25.280 --> 32:32.880 +implemented in C, or do you just focus on the documentation of the Lisp function, and + +32:32.880 --> 32:38.160 +then work from there, in terms of your Emacs, how far down you go? + +32:38.160 --> 32:40.200 +Good question. + +32:40.200 --> 32:41.200 +It's changed recently. + +32:41.200 --> 32:47.040 +I'd say, up until a couple years ago, I was mostly focused on the, on inside, you know, + +32:47.040 --> 32:52.400 +inside the Lisp machine, and going up, but I've started getting a little more curious + +32:52.400 --> 32:55.160 +about the C layer below that. + +32:55.160 --> 32:59.000 +One of the things I started looking at was some of the way that the key maps have been + +32:59.000 --> 33:06.920 +handled, the key, the map lookups were handled at the C level, because of the, my Viper, + +33:06.920 --> 33:14.640 +sort of affinity, my affinity for Viper, because there's some, some functionality there that + +33:14.640 --> 33:20.680 +changed or was made a little bit, the implementation was made a little bit different. + +33:20.680 --> 33:24.800 +So I guess, I guess both, but I, but I could understand that, yeah, there's, I, I never + +33:24.800 --> 33:30.640 +felt like I had to understand anything below that level, but just, it's good that. + +33:30.640 --> 33:37.640 +And do you go up, do you spend a lot of time thinking about the user level and user experience, + +33:37.640 --> 33:43.920 +user interfaces in your other work even, or, you know, just to get an idea of the sort + +33:43.920 --> 33:49.880 +of problems you'd like to sink your teeth into, you know, how you might provide some + +33:49.880 --> 33:55.280 +feedback on the hyperbole side, if you were to? + +33:55.280 --> 34:01.960 +I think I'm, I, I, in terms of technical stuff, I do like to stay more, I get more satisfaction, + +34:01.960 --> 34:10.320 +I think, thinking about the, the problem solving, especially in Emacs, just how to build, how + +34:10.320 --> 34:18.440 +to solve a problem in general, just, you know, UI level stuff or user experience stuff, I + +34:18.440 --> 34:25.640 +think it's just, it's, it's harder, it can be harder to do it right, but I guess that's + +34:25.640 --> 34:31.840 +something that I don't, I just haven't, I guess I haven't put, I guess I put more of + +34:31.840 --> 34:38.560 +my energy towards the, the middle tier of things of kind of just building general solutions. + +34:38.560 --> 34:43.400 +But if, but if it comes, I mean, I, hyperbole is definitely high, if not on the top of my + +34:43.400 --> 34:49.480 +list now, coming out of today's presentation and hearing about it today, of things to look + +34:49.480 --> 34:50.480 +at no matter what. + +34:50.480 --> 34:57.120 +So, I mean, I'm, I'm eager to learn more about it and use it from, from wherever, wherever + +34:57.120 --> 35:00.440 +I end up kind of landing on, on that, that spectrum. + +35:00.440 --> 35:07.600 +Well, I'm wondering if you might have some time to, so we have, there's two other people + +35:07.600 --> 35:11.040 +who gave the two other talks who work with me. + +35:11.040 --> 35:18.360 +We do a Sunday meeting, Sunday morning, East coast time, you know, one guy's on the development + +35:18.360 --> 35:22.840 +and the other is Ramin, who is a writer. + +35:22.840 --> 35:28.200 +And I mean, he's an ML engineer too, but he's new to hyperbole. + +35:28.200 --> 35:33.120 +So he's kind of, you know, converting some of what he did in a word to hyperbole. + +35:33.120 --> 35:39.120 +So he's kind of a good feedback loop for us there too. + +35:39.120 --> 35:45.400 +Matt and I have been, you know, deep in it for many years, so we can't, we can't see + +35:45.400 --> 35:47.040 +it in an unbiased way. + +35:47.040 --> 35:52.960 +And I'm just thinking, you know, maybe if you have a bit of time, you may want to, you + +35:52.960 --> 35:58.680 +know, think about giving us some structured feedback or, you know, coming to one of those + +35:58.680 --> 36:01.320 +meetings chatting with us. + +36:01.320 --> 36:02.320 +Yeah. + +36:02.320 --> 36:08.040 +You know, so, and I'm happy to answer your questions too, because I think, I just feel + +36:08.040 --> 36:14.840 +like there's, I'll tell you, this is, so my background with Emacs, besides as a user, + +36:14.840 --> 36:22.240 +I built something called InfoDoc, which was an extensive IDE to try to bring out Emacs + +36:22.240 --> 36:24.240 +functionality. + +36:24.240 --> 36:30.000 +Many years ago, it was an extensive set of menus, popup menus, pull down menus, and fixing + +36:30.000 --> 36:36.280 +a lot of stuff like, like in our mail, the keys and the interface wasn't the same between + +36:36.280 --> 36:39.800 +the summary buffer and the main buffer. + +36:39.800 --> 36:42.920 +And I, I normalized all that fixed stuff in Dura. + +36:42.920 --> 36:50.400 +All of that was like all rolled into InfoDoc so that a lot of these warts that people talk + +36:50.400 --> 36:57.320 +about that still are there to this day, some of them I see got put together and that was + +36:57.320 --> 37:06.680 +just built to top Zmax, the fork, XZmax fork of, you know, when Jamie Zawinski was doing + +37:06.680 --> 37:07.680 +it. + +37:07.680 --> 37:12.480 +And so I, you know, I still use some of that with Gnuely Max, but I never took the time + +37:12.480 --> 37:14.280 +to repackage it and stuff like that. + +37:14.280 --> 37:15.800 +So that's sort of sitting out there. + +37:15.800 --> 37:21.880 +And then I built the OO browser, which was a small talk like a code browser for eight + +37:21.880 --> 37:24.680 +different object oriented languages. + +37:24.680 --> 37:30.320 +And that's sitting out there waiting for just a, I had it ready, largely ready except for + +37:30.320 --> 37:34.820 +some documentation and I have no time to work on it. + +37:34.820 --> 37:40.720 +So it's never been, the modern version hasn't been republished for people to use, but you + +37:40.720 --> 37:45.920 +know, it sort of tells you some of the areas that, that I've spent a lot of time in and + +37:45.920 --> 37:49.300 +I've built some pretty big things. + +37:49.300 --> 37:53.760 +So I've gotten to see, you know, what's absorbable and what's not. + +37:53.760 --> 37:59.640 +And, you know, there is a lot of people sort of staying down at that low level that I think + +37:59.640 --> 38:05.840 +you do tend to run into with Emacs users, but there was like people love people who + +38:05.840 --> 38:07.960 +use the OO browser. + +38:07.960 --> 38:13.400 +That was a very good user experience because it was just very smooth and it had multiple + +38:13.400 --> 38:16.320 +windows and, you know, did what people wanted. + +38:16.320 --> 38:21.360 +And it was very fast because I focused on the algorithms and there was nothing else + +38:21.360 --> 38:23.400 +that could do what it could do. + +38:23.400 --> 38:29.480 +Now, now that we have all these language server protocols, which I still think are not quite + +38:29.480 --> 38:34.640 +where they should be on the backend, but you know, it's nice that now they're integrating + +38:34.640 --> 38:35.640 +Eclot. + +38:35.640 --> 38:41.160 +So I'm not a big user of those yet, but I hope to get more leverage out of them if they, + +38:41.160 --> 38:47.120 +in fact, you know, can give them, satisfy the queries that I really need in my work. + +38:47.120 --> 38:51.440 +So yeah, I think you'll find, you'll definitely find some utility. + +38:51.440 --> 38:57.720 +I think, you know, once you grok a bit, and I don't think it'll take you that long to + +38:57.720 --> 39:04.360 +get enough of a sense of hyperbole to start building a couple types, button types yourself + +39:04.360 --> 39:08.360 +and tailoring it to whatever your needs are. + +39:08.360 --> 39:13.800 +But as you said, I'm kind of interested in your thoughts about what will make that easier + +39:13.800 --> 39:22.120 +for people maybe with, maybe with not as much technical knowledge as you have. + +39:22.120 --> 39:27.280 +And just, you know, that you're willing to put yourself in somebody else's shoes, I think + +39:27.280 --> 39:33.080 +is a very valuable kind of way to be and something I'd like to. + +39:33.080 --> 39:40.160 +Well, I certainly, I'm willing to, willing to try, can't promise what my mindset will + +39:40.160 --> 39:43.360 +end up producing, but I, you know, it's, let's put it this way. + +39:43.360 --> 39:47.240 +If I could, if I could benefit from what you've created, benefit from learning about it, and + +39:47.240 --> 39:53.200 +at the same time, potentially give some benefit back, you know, that seems like it's a win-win-win. + +39:53.200 --> 39:55.200 +So I'm happy. + +39:55.200 --> 40:02.440 +Well, I'd be very surprised if you can't, but we, we accept that kind of feedback too, + +40:02.440 --> 40:06.700 +is that, you know, there's too much of a barrier to entry for this reason here. + +40:06.700 --> 40:10.760 +I love to hear those things too, because, you know, there have been things that weren't + +40:10.760 --> 40:19.480 +there that we've built after, like there's a guy, Sean, Sean something, he's like a business + +40:19.480 --> 40:24.760 +user who runs his business on this custom database that he's built. + +40:24.760 --> 40:28.840 +And he uses hyperbole as a front end to that backend database. + +40:28.840 --> 40:33.200 +He calls it, I forget it's hyper or something. + +40:33.200 --> 40:38.200 +And he, he has a lot of deeper thoughts, you know, very specific, like he'll write it with + +40:38.200 --> 40:40.880 +just one issue that he's trying to do. + +40:40.880 --> 40:44.440 +And sometimes, you know, we'll implement things for him. + +40:44.440 --> 40:46.640 +And that seems to work pretty well. + +40:46.640 --> 40:51.360 +Sometimes he wants things that are further afield, you know, and we don't go there, + +40:51.360 --> 40:58.000 +but he's, he's a useful, one of the users on the very low traffic hyperbole mail list. + +40:58.000 --> 41:03.560 +So he's probably responsible for 80% of the traffic, right? + +41:03.560 --> 41:05.960 +He's the Pareto subscriber. + +41:05.960 --> 41:06.960 +Yeah. + +41:06.960 --> 41:07.960 +Yeah. + +41:07.960 --> 41:16.040 +So, but I look forward to it and I think you'd like Ramin and Matt, Matt is an engineer for + +41:16.040 --> 41:25.680 +Spotify and he has implemented 260 test cases for hyperbole that are run against the three + +41:25.680 --> 41:30.040 +major versions of Emacs every time we commit. + +41:30.040 --> 41:36.200 +And that's proven to be very successful because, you know, sometimes we're modifying things + +41:36.200 --> 41:43.080 +at the engine level and who knows what, what set of button types that affects. + +41:43.080 --> 41:50.520 +So it works really well when we're, and we've had very good success that we have very few, + +41:50.520 --> 41:58.480 +you know, bugs that we don't know about already being found by users once we make a release. + +41:58.480 --> 42:01.760 +It seems like PlasmaStrike wants to jump in. + +42:01.760 --> 42:02.760 +I'm sorry. + +42:02.760 --> 42:03.760 +I didn't, wasn't. + +42:03.760 --> 42:07.120 +I did see your link earlier possibly by the Emacs dashboard and I opened it, it looked + +42:07.120 --> 42:08.120 +pretty cool. + +42:08.120 --> 42:12.560 +Bob, you might, you might, yeah. + +42:12.560 --> 42:23.080 +I've been getting my partner into LogSec with org, which is kind of like org-roam for knowledge + +42:23.080 --> 42:24.080 +bases. + +42:24.080 --> 42:29.920 +And I've been using that, having my knowledge base on LogSec. + +42:29.920 --> 42:36.720 +He could look at it, it's getting synchronized with sync thing and he can see how I do the + +42:36.720 --> 42:37.720 +stuff. + +42:37.720 --> 42:39.480 +He can replicate it if he wants to. + +42:39.480 --> 42:45.640 +Then I'm thinking about putting CRDT with Emacs so that we could both edit the same + +42:45.640 --> 42:50.120 +document in real time. + +42:50.120 --> 42:55.920 +And that way I can get Emacs to work with the same data set as org-roam and that way + +42:55.920 --> 43:01.920 +he doesn't have to learn absolutely everything that Emacs has to offer. + +43:01.920 --> 43:07.800 +There's also, I can use all that stuff if I want to use it. + +43:07.800 --> 43:08.800 +That's cool. + +43:08.800 --> 43:16.120 +I, you know, I've heard of that, but not necessarily, didn't know anything about it. + +43:16.120 --> 43:21.080 +So that's, I'm looking, you know, all I guess all I can say at this point is that it looks + +43:21.080 --> 43:22.080 +really cool. + +43:22.080 --> 43:29.200 +It's, does it sounds like you're saying it's front, it's easy to, easy accessible, easily + +43:29.200 --> 43:30.200 +to get into. + +43:30.200 --> 43:32.360 +Well, you can also put it on your phone too. + +43:32.360 --> 43:39.360 +So it would probably be a really good way of doing that, even though it's harder to + +43:39.360 --> 43:48.160 +get Emacs on your phone and on iPhones as well. + +43:48.160 --> 43:52.400 +You got to figure out, that's what people were asking about, touchscreens. + +43:52.400 --> 43:55.640 +Have we thought about how to use touchscreens? + +43:55.640 --> 44:00.800 +I think it's an interesting challenge for Emacs, you know, you even talk about mouse + +44:00.800 --> 44:07.840 +buttons and people kind of freak out a lot of times because they're so keyboard driven. + +44:07.840 --> 44:14.200 +Well, one of the great things about Emacs is it's a keyboard is a first citizen and + +44:14.200 --> 44:19.200 +mouse can't be a first citizen because you're going to have to switch between it and all + +44:19.200 --> 44:21.200 +the time. + +44:21.200 --> 44:28.560 +If you go back to Engelbart's work, it was one hand on the mouse, one hand on the keyboard. + +44:28.560 --> 44:37.320 +And you know, we do miss some of that, that ability to point at things and make operations + +44:37.320 --> 44:38.320 +on them. + +44:38.320 --> 44:45.160 +We have things like Avi, I believe it is, right, for where you can move around across + +44:45.160 --> 44:47.720 +windows and buffers very rapidly. + +44:47.720 --> 44:53.400 +So you can get to like an exact point in a buffer much faster, and then you could act + +44:53.400 --> 44:55.120 +on it, you know, doing it that way. + +44:55.120 --> 44:57.720 +So it's kind of like a replacement for that. + +44:57.720 --> 45:03.300 +But it's amazing when you start to think a little differently like that. + +45:03.300 --> 45:07.720 +And certainly people have done that with split keyboards and they, some people only use half + +45:07.720 --> 45:09.600 +of the keyboard then. + +45:09.600 --> 45:12.920 +So and they have all the modifier keys, you know, that's what we're doing. + +45:12.920 --> 45:18.080 +In fact, Hyperbole has a module that isn't active, but it's sitting out there. + +45:18.080 --> 45:24.500 +And it turns the mouse keys into two modifier buttons. + +45:24.500 --> 45:28.720 +So it could be control and meta, or whatever have you. + +45:28.720 --> 45:34.400 +And so if you want to operate that way, you can emulate what Engelbart was doing with + +45:34.400 --> 45:38.440 +your regular keyboard and the mouse. + +45:38.440 --> 45:44.520 +Didn't that, didn't he have like a weird mouse where it had like more buttons on it? + +45:44.520 --> 45:47.520 +He was three buttons, actually, yeah. + +45:47.520 --> 45:50.080 +He had the chord keyboard you're thinking of. + +45:50.080 --> 45:56.840 +The keyboard was like five keys that you could press as chords. + +45:56.840 --> 46:02.120 +So you could press all five or three of them, and they would produce different character + +46:02.120 --> 46:03.120 +outputs. + +46:03.120 --> 46:05.880 +I mean, they had a lot of things that we don't have. + +46:05.880 --> 46:13.520 +You know, their file system was node based, and so everything could be hyperlinked to. + +46:13.520 --> 46:17.440 +And they had permanent IDs everywhere, and they had journals. + +46:17.440 --> 46:22.120 +And they had implemented almost all of this in assembly at first, and it was on a time + +46:22.120 --> 46:23.120 +shared machine. + +46:23.120 --> 46:26.800 +So everything was collaborative instead of individual. + +46:26.800 --> 46:30.680 +But you know, so we'll get there eventually. + +46:30.680 --> 46:36.320 +It's a lot of, a lot of things have changed that we've had to, you know, fight against + +46:36.320 --> 46:38.800 +separating people from collaborating. + +46:38.800 --> 46:44.760 +And now everybody's trying to get back to you and say, let's build collaborative software. + +46:44.760 --> 46:50.320 +Yeah, I noticed that's another, another one of those cycles that I noticed was the talk + +46:50.320 --> 46:57.080 +of, I forget who, it was the guy who did the SQLite thing and how he, how he was basically + +46:57.080 --> 47:03.720 +saying, hey, text is great, but these, these somewhat relational databases have a lot of + +47:03.720 --> 47:04.720 +things to offer. + +47:04.720 --> 47:07.200 +And I'm thinking, yeah, of course, I agree. + +47:07.200 --> 47:12.160 +But it's just funny how so much of the Emacs ethos has been, text can do so much, and they + +47:12.160 --> 47:13.160 +were right. + +47:13.160 --> 47:18.560 +And then now, like, this is, it's like a turning point to say, hey, text can't do all these + +47:18.560 --> 47:22.160 +things, but let's use Emacs to take advantage of all this non-text stuff too. + +47:22.160 --> 47:27.600 +That's just, that's just one of those, kind of those cyclical things of where we do what + +47:27.600 --> 47:31.360 +we can with text, and then someone notices that, hey, we, maybe we could do something + +47:31.360 --> 47:35.360 +without text, and then that, that balance might shift and just go back and forth. + +47:35.360 --> 47:39.560 +And it sounds like it's the same, like you're talking about with collaboration. + +47:39.560 --> 47:43.840 +Have you ever seen VisiData? + +47:43.840 --> 47:53.440 +It's a curses program that one guy has written that can manipulate any sort of tabular information. + +47:53.440 --> 48:00.360 +It's the, it's the Emacs of, like, you don't want to use a spreadsheet, and you want to + +48:00.360 --> 48:02.720 +do data analysis. + +48:02.720 --> 48:04.360 +It's pretty unbelievable what's in there. + +48:04.360 --> 48:06.560 +It's written in Python. + +48:06.560 --> 48:15.600 +But he has asynchronous slurping of super large CSVs that are compressed and encrypted. + +48:15.600 --> 48:17.600 +So it's basically like a Unix tool. + +48:17.600 --> 48:23.600 +You can use a command line wise, but then it gives you a curses interface, and you can + +48:23.600 --> 48:27.040 +slice and dice and get histograms. + +48:27.040 --> 48:28.040 +So it's kind of amazing. + +48:28.040 --> 48:30.680 +I tried, the key bindings were so different. + +48:30.680 --> 48:35.560 +I did some work to try to make it more Emacs-like in that. + +48:35.560 --> 48:40.600 +But he would have something that would be so valuable if it wasn't connected to the + +48:40.600 --> 48:41.600 +curses interface. + +48:41.600 --> 48:46.720 +You know, it was an API, and, but he likes it that way. + +48:46.720 --> 48:49.200 +And so he just keeps developing it. + +48:49.200 --> 48:55.440 +But it's really amazing if you have to process a lot of data and don't want to use Excel + +48:55.440 --> 48:56.440 +or something. + +48:56.440 --> 49:00.280 +That's with a Z, Visi or S, or? + +49:00.280 --> 49:02.280 +No, V-I-S-I-D-A-T-A. + +49:02.280 --> 49:05.160 +You'll find it. + +49:05.160 --> 49:12.000 +It's his name is Paul Swanson. + +49:12.000 --> 49:13.200 +It's not Swanson. + +49:13.200 --> 49:17.000 +It's something like that, though. + +49:17.000 --> 49:18.520 +I think it is. + +49:18.520 --> 49:22.640 +I think according to his website, according to the website, it says Saul Pwonson. + +49:22.640 --> 49:23.640 +So I'm guessing that. + +49:23.640 --> 49:24.640 +Yes, Saul Pwonson. + +49:24.640 --> 49:25.640 +I get it backwards. + +49:25.640 --> 49:26.640 +I was Paul Swanson. + +49:26.640 --> 49:31.640 +Yeah, he's a great guy. + +49:31.640 --> 49:32.640 +That's another thing on my list. + +49:32.640 --> 49:33.640 +It'll go. + +49:33.640 --> 49:34.640 +Yeah, check it out. + +49:34.640 --> 49:38.400 +Don't blow your mind what's in there. + +49:38.400 --> 49:43.960 +And again, it's like there's a small community, but it's like all these people that it's such + +49:43.960 --> 49:51.360 +a simple download, you know, it's a standalone executable, but largely, you know, people + +49:51.360 --> 49:52.440 +just don't know about it. + +49:52.440 --> 49:58.680 +I tripped over it and I'm like, my God, how do you get this far without me hearing about + +49:58.680 --> 49:59.680 +it? + +49:59.680 --> 50:01.240 +I think that's one of those. + +50:01.240 --> 50:06.840 +Maybe it's a case where if you don't get a lot of attention, you end up doing things + +50:06.840 --> 50:12.120 +in a way that you take things in the direction that you want to take them. + +50:12.120 --> 50:15.720 +And sometimes that leads to a bad place and sometimes it leads to a really interesting + +50:15.720 --> 50:16.720 +and good place. + +50:16.720 --> 50:23.120 +And it's probably somewhere in between that seems like he's taking this to a place. + +50:23.120 --> 50:28.360 +He had some usability issues and then he got like two other people on the team and they + +50:28.360 --> 50:34.360 +really helped him, I think with that, you know, he takes feedback pretty well and the + +50:34.360 --> 50:36.440 +team takes feedback well. + +50:36.440 --> 50:40.160 +So they've been evolving it, you know, from version one to like, I think they're on three + +50:40.160 --> 50:46.160 +now and you know, it's come a long way that way too. + +50:46.160 --> 50:52.120 +And now he's got a job, I believe, where he can work on it as well. + +50:52.120 --> 50:58.280 +So yeah, that should advance it a lot too. + +50:58.280 --> 51:03.960 +So yeah, there's so much good stuff going on, you know, and it's just what's not going + +51:03.960 --> 51:08.760 +on is sort of what we had long ago was the reusability. + +51:08.760 --> 51:13.560 +Nobody's really building libraries anymore, you know, that people can build on. + +51:13.560 --> 51:20.320 +It's all like, well, we got to wrap a web app around our API and that's it. + +51:20.320 --> 51:24.920 +And we're not going to make the code underlying the API shareable. + +51:24.920 --> 51:28.960 +You have to consume it, but that's all you can do. + +51:28.960 --> 51:35.160 +And so I think where everybody's rebuilding the same things again and again now, because + +51:35.160 --> 51:43.840 +sort of what Stallman talks about, that sharing culture has been snuffed out so broadly, you + +51:43.840 --> 51:49.520 +know, in terms of what people spend most of their waking hours on, right? + +51:49.520 --> 51:54.880 +As professional developers and, you know, you kind of miss it, right? + +51:54.880 --> 52:00.240 +From when you could, because having written that old browser, I mean, what I would do, + +52:00.240 --> 52:03.720 +what I remember doing is saying, okay, here's a thousand classes. + +52:03.720 --> 52:09.040 +I'll just run my browser over it and get to understand the interrelationships. + +52:09.040 --> 52:13.060 +And it's like, well, where are those like, you know, they're out there, there's still + +52:13.060 --> 52:18.540 +numerical libraries and things, but you just don't have the ecosystem because the energy + +52:18.540 --> 52:25.680 +is going somewhere else, you know, to the finished products, more than reusable building + +52:25.680 --> 52:26.680 +blocks. + +52:26.680 --> 52:27.680 +I think. + +52:27.680 --> 52:28.680 +Yeah. + +52:28.680 --> 52:30.480 +Have you heard of Glorious Toolkit? + +52:30.480 --> 52:35.680 +I think that's what it's called, but it's a continuation of Smalltalk and it has a lot + +52:35.680 --> 52:40.840 +of concepts like that where you have multiple representations of the same data. + +52:40.840 --> 52:46.480 +Like the, also that Mother of All Demos where Engelbarton was doing that. + +52:46.480 --> 52:47.480 +Yeah. + +52:47.480 --> 52:48.960 +I know, I've seen that many times. + +52:48.960 --> 52:53.560 +I got to work with Doug maybe for a year or so. + +52:53.560 --> 52:58.320 +By the way, Plasma Strike, I'm going to put that on my queue to watch because I've never + +52:58.320 --> 52:59.320 +actually watched. + +52:59.320 --> 53:00.320 +I know about it. + +53:00.320 --> 53:01.320 +Oh yeah. + +53:01.320 --> 53:02.320 +It's great. + +53:02.320 --> 53:03.320 +It's great. + +53:03.320 --> 53:05.040 +It's nice to see him as a young man too. + +53:05.040 --> 53:09.800 +Like that was 1968, he started like 1957 or something. + +53:09.800 --> 53:13.480 +The stuff they had before 1960 is incredible. + +53:13.480 --> 53:17.880 +There's also another spreadsheet, like what you're talking about, but an Emacs and that + +53:17.880 --> 53:23.240 +talk right there too, but yeah. + +53:23.240 --> 53:28.520 +All this, I mean, just those initial tips, you know, I was finding stuff that I need. + +53:28.520 --> 53:34.960 +So I like that idea, I think might do something with that if we can get a good database and + +53:34.960 --> 53:43.340 +link it into Hyperbole with some simple exposure that kind of gets people into some of this + +53:43.340 --> 53:48.880 +but I'll tell you what I really want that I can't find. + +53:48.880 --> 53:52.560 +There's so much effort at low code environments now. + +53:52.560 --> 54:01.120 +I want a low code environment for spinning up web apps inside a company where it's not + +54:01.120 --> 54:02.880 +your focus. + +54:02.880 --> 54:05.260 +It's just for an internal app, right? + +54:05.260 --> 54:11.520 +Like we want to do say time tracking for one small team and we want to build it ourselves. + +54:11.520 --> 54:16.380 +You know, that's not the real use case, but if you took something like that, so you don't + +54:16.380 --> 54:21.520 +have a lot of resources, you don't have a lot of time, you know how to program, but + +54:21.520 --> 54:28.040 +you want something that lets you operate like you're building a Python command line thing, + +54:28.040 --> 54:30.940 +but you want it to be a web app. + +54:30.940 --> 54:37.320 +There's a cool project I saw for that that would be, that was a peer-to-peer KISS web + +54:37.320 --> 54:42.560 +browser. + +54:42.560 --> 54:48.220 +Because I've looked at a lot of these, you know, there's no code DB. + +54:48.220 --> 54:57.640 +The best one that I came to but has been hard to set up internally was, it's like from a + +54:57.640 --> 55:04.940 +German company, it's like designed in Germany and implemented in China, a lot or pieces + +55:04.940 --> 55:09.260 +of it, and what is it called? + +55:09.260 --> 55:14.200 +I'll have to look at my database. + +55:14.200 --> 55:20.560 +There's like something like Seaborn or something like that. + +55:20.560 --> 55:33.720 +There's a couple of projects that are named that way, but let's see, Seaborn, low code. + +55:33.720 --> 56:01.320 +Let's see something, find it, but, oh, low code, so there's something, it's amazing to + +56:01.320 --> 56:11.560 +me, oh, C table, that's it, C table, SEA table, that's kind of one we've been trying to get + +56:11.560 --> 56:15.400 +to work, but there's still limits. + +56:15.400 --> 56:23.720 +There's an environment where like if Emacs could let you do the mock-up of your web app + +56:23.720 --> 56:33.480 +using Lisp and then could be fully deployable onto a web stack, that would be, I mean, we + +56:33.480 --> 56:41.200 +have a web server, it's just a question of, and we have like C-based fast web servers + +56:41.200 --> 56:49.480 +that you could interface to Lisp, so I don't think like the capacity is the problem, but + +56:49.480 --> 56:56.760 +nobody's gone from providing the web server to here's how you could program the front + +56:56.760 --> 57:00.840 +end and connect it to the back end all in Lisp. + +57:00.840 --> 57:08.960 +That's one of my biggest issues is like, and you see it in the hyperbole work, is I want + +57:08.960 --> 57:10.920 +simplicity and uniformity. + +57:10.920 --> 57:19.080 +I can't like program in three languages at the same time, so I can't use JavaScript on + +57:19.080 --> 57:25.840 +the front end and Python on the back end and then have to deal with CSS as well. + +57:25.840 --> 57:26.840 +And HTML. + +57:26.840 --> 57:27.840 +Yeah. + +57:27.840 --> 57:28.840 +And HTML. + +57:28.840 --> 57:34.840 +It's like my mind just cracks up and I'm like, why do, and even if you were brought up that + +57:34.840 --> 57:42.880 +way, like how can you be a 22-year-old and say, oh, this is so simple, because they do, + +57:42.880 --> 57:43.960 +they say that all the time. + +57:43.960 --> 57:47.240 +Well, this is a really simple thing to do. + +57:47.240 --> 57:54.560 +I mean, yeah, if you're copying and pasting all your code, which is apparently what has + +57:54.560 --> 58:01.040 +become common now, right, is I'll just use this template, then yeah, that's simple. + +58:01.040 --> 58:03.760 +But what about building it originally? + +58:03.760 --> 58:09.720 +It's like, there's just so much for your mind to process. + +58:09.720 --> 58:17.080 +And there was something called Meta HTML, which was really cool when HTML first came + +58:17.080 --> 58:21.800 +out, and you're not going to be able to find this or even a reference to it, probably. + +58:21.800 --> 58:30.600 +But this was two guys from MIT, and they said, okay, instead of programming at the HTML level, + +58:30.600 --> 58:39.720 +let's write a list-like interpreter that uses HTML syntax, but will give you all the higher + +58:39.720 --> 58:42.160 +level programming constructs you need. + +58:42.160 --> 58:47.840 +And so you could write stuff that looked like HTML, but you'd be processing lists of things + +58:47.840 --> 58:55.280 +and manipulating the DOM in these very abstract ways and very little code. + +58:55.280 --> 59:01.800 +And again, you didn't have to mix a different syntax in like you have to now. + +59:01.800 --> 59:09.940 +It was great, and it wasn't a lot of code, and it worked, and nobody cared. + +59:09.940 --> 59:11.280 +Nobody did anything with it. + +59:11.280 --> 59:12.880 +It died on the vine. + +59:12.880 --> 59:21.520 +Well, we didn't need to endlessly measure every little mouse movement and eyeball engagement + +59:21.520 --> 59:23.440 +and then monetize it and analyze it. + +59:23.440 --> 59:27.320 +So you could focus on just doing what you needed to do. + +59:27.320 --> 59:28.320 +Yeah. + +59:28.320 --> 59:29.320 +Well, that's right. + +59:29.320 --> 59:30.320 +Friction drives. + +59:30.320 --> 59:32.200 +That's what I love. + +59:32.200 --> 59:37.280 +I'm stuck in a Microsoft environment now where there's a little bit of Linux here and there, + +59:37.280 --> 59:40.480 +but I'm either a Mac user. + +59:40.480 --> 59:47.840 +I've always been a Unix user, so Windows is enormously painful despite the strides that + +59:47.840 --> 59:50.840 +they've made. + +59:50.840 --> 59:55.440 +I always look at it, and I say, well, it's a brilliant business perspective because they + +59:55.440 --> 01:00:02.280 +know they create so many problems for people, so much friction that it creates enormous + +01:00:02.280 --> 01:00:10.240 +economic opportunities for many, many people, and that's what they do. + +01:00:10.240 --> 01:00:11.640 +They have WSL. + +01:00:11.640 --> 01:00:13.720 +Do you know about that? + +01:00:13.720 --> 01:00:17.720 +The Windows System for Linux, yeah. + +01:00:17.720 --> 01:00:21.840 +They had a guy working on that who was leading it, and they were just making stride after + +01:00:21.840 --> 01:00:30.720 +stride, and apparently some high-level executive probably did not like seeing this, and so + +01:00:30.720 --> 01:00:35.740 +they moved this guy off, and now it's like Microsofty. + +01:00:35.740 --> 01:00:41.360 +So now all you see come out of there is like we've improved Windows Terminal, and the whole + +01:00:41.360 --> 01:00:47.000 +WSL thing moves at a snail's pace now, and you have to think that wasn't just like the + +01:00:47.000 --> 01:00:53.460 +guy got promoted, but that there was a strategic decision that this was helping people too + +01:00:53.460 --> 01:01:00.920 +much to live in a non-Windows environment in their mind, and we can't be supporting + +01:01:00.920 --> 01:01:01.920 +that. + +01:01:01.920 --> 01:01:13.440 +I was going to say, even though if you say, I want to use Kubernetes or in Azure, they + +01:01:13.440 --> 01:01:20.880 +say, okay, use Linux VMs, so they'll do that all day long and tell you not to use Windows, + +01:01:20.880 --> 01:01:26.800 +so there is still parts of the company that are like that and are open to it, but they + +01:01:26.800 --> 01:01:31.560 +have it pretty well locked down. + +01:01:31.560 --> 01:01:37.520 +I think it goes in line with the attention economy where they want to control the computing + +01:01:37.520 --> 01:01:43.520 +experience, and you want to use Microsoft apps, Microsoft Office. + +01:01:43.520 --> 01:01:49.240 +We don't want to make sure that you can reach out too easily into other ecosystems. + +01:01:49.240 --> 01:01:54.800 +Embrace, extend, extinguish, right? + +01:01:54.800 --> 01:01:55.800 +Is that the... + +01:01:55.800 --> 01:01:56.800 +Yep. + +01:01:56.800 --> 01:01:57.800 +That's it. + +01:01:57.800 --> 01:02:04.160 +An interesting Windows feature is you can update Windows, see that it's all the way + +01:02:04.160 --> 01:02:10.040 +up to date, reboot it, wait a day, or wait a day, and all of a sudden you have more updates + +01:02:10.040 --> 01:02:13.040 +for like a week or something along those lines. + +01:02:13.040 --> 01:02:17.600 +I don't know of any other operating system that does that. + +01:02:17.600 --> 01:02:24.900 +You only have two minutes until your reboot is done, and then it's like it comes back. + +01:02:24.900 --> 01:02:29.240 +Now it's an hour, and then another half an hour, right? + +01:02:29.240 --> 01:02:33.400 +They only give you a little snippet. + +01:02:33.400 --> 01:02:38.360 +Is PlasmaStrike, by the way, is that stack that you're describing with LogSec and syncing + +01:02:38.360 --> 01:02:39.360 +and everything? + +01:02:39.360 --> 01:02:41.400 +Is that something that you've published any examples? + +01:02:41.400 --> 01:02:46.080 +I saw you said something in the IRC, but I just lost track of what was going on in IRC, + +01:02:46.080 --> 01:02:49.080 +so I'm sorry if I missed that. + +01:02:49.080 --> 01:02:51.020 +No, I haven't. + +01:02:51.020 --> 01:02:58.880 +This is although now I'm thinking about just putting a whole bunch of some resources together + +01:02:58.880 --> 01:03:06.220 +of HyperBowl does a really good job of showing you a knowledge base, plus enough configuration + +01:03:06.220 --> 01:03:14.760 +to use an EEV does a really good job of showing you enough in-source documentation to play + +01:03:14.760 --> 01:03:19.840 +it out and see how it actually works in practice. + +01:03:19.840 --> 01:03:23.800 +Our Chrome needs something like that, so I don't know if I'll... + +01:03:23.800 --> 01:03:30.080 +But you need some minimal config to work with that, so you can look at the more philosophy + +01:03:30.080 --> 01:03:38.000 +plus packages combination. + +01:03:38.000 --> 01:03:44.560 +How do you guys like the HyperBorg term, if we use that? + +01:03:44.560 --> 01:03:48.200 +Does that strike you as a little... + +01:03:48.200 --> 01:03:50.080 +Was that what you were going for? + +01:03:50.080 --> 01:03:52.480 +Were you trying to conjure up the Borg? + +01:03:52.480 --> 01:03:53.480 +Well, yeah. + +01:03:53.480 --> 01:03:59.960 +Well, Sasha came up with HyperOrg for hyperbole and org, and then I thought, well, it'd be + +01:03:59.960 --> 01:04:09.160 +funnier if we called it HyperBorg, because it kind of is like Stalvan talks about org + +01:04:09.160 --> 01:04:16.580 +wants to take you into this environment, and hyperbole certainly does too, so if we put + +01:04:16.580 --> 01:04:21.240 +the two together, we would definitely have something like the Borg. + +01:04:21.240 --> 01:04:26.800 +My impression, and I said something to Kielaro, I don't know if I spoke wrong, but my impression + +01:04:26.800 --> 01:04:31.920 +was that this was not something that was going to be created, this was just a way, just like + +01:04:31.920 --> 01:04:32.920 +a... + +01:04:32.920 --> 01:04:33.920 +Oh, right. + +01:04:33.920 --> 01:04:34.920 +It's just a... + +01:04:34.920 --> 01:04:39.200 +Yeah, the music kind of term, but I do want to do more work. + +01:04:39.200 --> 01:04:45.080 +I've joined the org mail list, and I mean, just I did a lot of work for that presentation + +01:04:45.080 --> 01:04:53.840 +and that sort of struck me, and I said, there's a certain level of work we need to do. + +01:04:53.840 --> 01:05:00.760 +Years ago, we were thinking we'd put hyperbole into Emacs, now that org is... + +01:05:00.760 --> 01:05:07.600 +There's no reason not to, and were it to be there, there are things that there's namings + +01:05:07.600 --> 01:05:14.360 +that we would correct, and the interface points to org, we would want to do something about + +01:05:14.360 --> 01:05:17.920 +and work out with them, especially the made a return key. + +01:05:17.920 --> 01:05:23.080 +That's the main, if we could resolve that between the two packages better, and we've + +01:05:23.080 --> 01:05:28.180 +done a pretty good job just on hyperboles in, but we've never talked to the org people + +01:05:28.180 --> 01:05:29.180 +about it. + +01:05:29.180 --> 01:05:33.160 +It kind of seems like the term would work better the opposite way, because org wants + +01:05:33.160 --> 01:05:39.400 +to go around and doesn't have that modularity that your package has. + +01:05:39.400 --> 01:05:45.080 +So you're suggesting like, let them give the key over to us, and then we'll support some + +01:05:45.080 --> 01:05:46.080 +of their... + +01:05:46.080 --> 01:05:50.880 +Well, it's more reading the board taking over everything, because org mode comes and they + +01:05:50.880 --> 01:05:51.880 +take over... + +01:05:51.880 --> 01:06:02.040 +All their code works with org mode, not K outline or markdown mode or anything along + +01:06:02.040 --> 01:06:03.040 +those lines. + +01:06:03.040 --> 01:06:08.240 +Yeah, more, so the board part comes more from the hyperbole side, yeah. + +01:06:08.240 --> 01:06:12.520 +Well, but maybe it's fitting in the long run, because no matter... + +01:06:12.520 --> 01:06:18.600 +Perhaps if you provide a, or if hyperbole provides a very convenient enhancement on + +01:06:18.600 --> 01:06:23.320 +top of how people used to use org mode, it'll just become part of org mode eventually. + +01:06:23.320 --> 01:06:31.400 +Yeah, that's something I can see too, is that they just become one big thing that Stallman + +01:06:31.400 --> 01:06:36.880 +doesn't like, because we do have a bit of that in all of them. + +01:06:36.880 --> 01:06:42.280 +I mean, I totally get what he's saying and I buy it, I'm kind of like a functional programmer + +01:06:42.280 --> 01:06:49.800 +and I like bottom up development, but people ask us all the time, okay, if you have four + +01:06:49.800 --> 01:06:55.360 +or five things in hyperbole, why don't you separate them into separate packages? + +01:06:55.360 --> 01:06:57.200 +And it was the same thing for Engelbart. + +01:06:57.200 --> 01:07:02.840 +Well, one, it would be a lot more overhead just in separate manuals and dealing with + +01:07:02.840 --> 01:07:04.480 +separate communities. + +01:07:04.480 --> 01:07:09.840 +We want everyone who uses it to have the same baseline experience. + +01:07:09.840 --> 01:07:15.560 +And so even though, yes, you could separate out the button functionality from the K-outliner + +01:07:15.560 --> 01:07:23.880 +and the Rolodex, and the Rolodex originally was a separate thing by itself, we find putting + +01:07:23.880 --> 01:07:29.200 +them all together gives people the same thing that Emacs provides, it's sort of, you don't + +01:07:29.200 --> 01:07:34.680 +have to use all of the libraries, but having them there ensures you that when somebody + +01:07:34.680 --> 01:07:42.640 +references it, it works and you have a lot fewer of those kinds of, well, I only have + +01:07:42.640 --> 01:07:47.720 +the subsystem, so when I invoke your code, it breaks. + +01:07:47.720 --> 01:07:52.400 +Yeah, I think, and I think, I mean, I don't think there's any, I don't personally have + +01:07:52.400 --> 01:07:56.480 +like a preference as to what the right direction is, I just acknowledge that the downsides + +01:07:56.480 --> 01:08:00.880 +and upsides of each choice, but one thing I have noticed is I think something, I think + +01:08:00.880 --> 01:08:07.280 +it was McGit, that's how I say it, but, you know, initially it was one thing and now I + +01:08:07.280 --> 01:08:13.880 +think it's turned into a dozen or maybe even a couple dozen different packages. + +01:08:13.880 --> 01:08:19.320 +And I remember I went to update it once and they had to, you know, navigate a few different, + +01:08:19.320 --> 01:08:25.640 +like, what's the word, combinatorial, you know, they had to go two or three levels of + +01:08:25.640 --> 01:08:30.560 +dependencies deep in each level or introduce two dishes, yeah. + +01:08:30.560 --> 01:08:37.360 +So yeah, that can happen, there's situations where you can see those downsides, where the + +01:08:37.360 --> 01:08:42.000 +more, you know, splitting things apart is... + +01:08:42.000 --> 01:08:48.280 +We're fighting with that at work right now, it's like, do we create more repos so we can + +01:08:48.280 --> 01:08:54.880 +deliver microservices or, you know, how do we split things out on the containers and + +01:08:54.880 --> 01:09:00.500 +it's very, very complicated and even, you know, with years, we've got years of experience + +01:09:00.500 --> 01:09:08.640 +with our architects and we're all like going back and forth on how far to go because one + +01:09:08.640 --> 01:09:13.360 +of the people is very worried that we get into that dependency hell kind of thing with + +01:09:13.360 --> 01:09:16.120 +some of our new get packages. + +01:09:16.120 --> 01:09:23.920 +So yeah, I wish there were easier solutions and that's, again, for hyperbole, there's, + +01:09:23.920 --> 01:09:28.600 +you know, there's none of it, there's no external dependencies, it's just what version of Emacs + +01:09:28.600 --> 01:09:36.140 +you're using and people don't realize that, yeah, they say, oh, it's so big, like, it's + +01:09:36.140 --> 01:09:43.600 +dependent on all this other stuff, but it's not, it's just, you know, I mean, it will + +01:09:43.600 --> 01:09:48.640 +leverage stuff, again, that's in core Emacs, but it won't require you to load a third party + +01:09:48.640 --> 01:09:52.360 +package just because, you know, it's useful or interesting. + +01:09:52.360 --> 01:10:00.960 +I think Emacs does a really good job on this because unlike the normal GUI apps, if I want + +01:10:00.960 --> 01:10:07.520 +to change my theme in Emacs, I get to change everything to a dark theme or white theme + +01:10:07.520 --> 01:10:17.120 +or whatever and unlike, and you can't really do that very in any way that shares any of + +01:10:17.120 --> 01:10:24.200 +the code or the settings with all your GUI applications, but also with a terminal, you + +01:10:24.200 --> 01:10:34.960 +miss out on a whole bunch more stuff because, well, you don't get GUIs or unless you're + +01:10:34.960 --> 01:10:46.400 +talking about TUI apps, but they're not really CLI apps because they're like a half stepchild, + +01:10:46.400 --> 01:10:50.120 +they don't get near as good themes because they can't integrate into all the packages + +01:10:50.120 --> 01:10:59.000 +near as well, you know, mouse and all the various other things like that. + +01:10:59.000 --> 01:11:02.160 +Where are you guys located? + +01:11:02.160 --> 01:11:04.200 +I'm in, I'm in Virginia. + +01:11:04.200 --> 01:11:07.880 +Oh, I just had guests from West Virginia. + +01:11:07.880 --> 01:11:09.880 +I'm in Connecticut. + +01:11:09.880 --> 01:11:10.880 +Utah. + +01:11:10.880 --> 01:11:11.880 +Oh, wow. + +01:11:11.880 --> 01:11:12.880 +Utah. + +01:11:12.880 --> 01:11:17.160 +So we're almost spanning the entire continent, almost. + +01:11:17.160 --> 01:11:23.200 +If we round up, we can consider it to be the case. + +01:11:23.200 --> 01:11:29.400 +I work with a lot of people in India, so we've got like a 12 hour difference much of the + +01:11:29.400 --> 01:11:30.400 +year. + +01:11:30.400 --> 01:11:37.200 +That's fascinating to try to work through all the time, but on Hyperbole, we have one + +01:11:37.200 --> 01:11:44.240 +guy in Sweden and one guy in Japan, so we're all over the map too. + +01:11:44.240 --> 01:11:51.680 +Yeah, I was involved with a little hobby group for something unrelated and we were in various + +01:11:51.680 --> 01:11:56.400 +countries and it was always, the best thing that we could do was just find the time at + +01:11:56.400 --> 01:12:03.440 +which all of us would be the least miserable and the least tired and not, you know, there + +01:12:03.440 --> 01:12:07.720 +was no good time for a meeting, there was just the least bad time. + +01:12:07.720 --> 01:12:15.840 +Well, I was struggling to finish up my presentation and just, you know, I would like want to show + +01:12:15.840 --> 01:12:21.840 +an example and then I'm like, well, I need to change the code a little bit so I go and, + +01:12:21.840 --> 01:12:26.840 +you know, I'd add capability and Hyperbole and it was just a lot more work than I expected. + +01:12:26.840 --> 01:12:31.900 +So November 4th was the deadline to send in your video. + +01:12:31.900 --> 01:12:36.520 +That came and went and then I couldn't touch anything until the weekend and I get maybe + +01:12:36.520 --> 01:12:38.680 +half a day with the holidays and stuff. + +01:12:38.680 --> 01:12:43.720 +So comes to be last night, still haven't sent the video in. + +01:12:43.720 --> 01:12:49.240 +You know, I had told them though a week ago that I'll do it live if I can't get the video + +01:12:49.240 --> 01:12:53.360 +in, but I'm like, you know, it'd be nice to have it recorded and they do all this stuff + +01:12:53.360 --> 01:12:54.360 +to it. + +01:12:54.360 --> 01:13:04.600 +So I finished the video at 5.30 in the morning and I just, you know, no, I was dead so I + +01:13:04.600 --> 01:13:11.440 +just uploaded it and I figured, you know, I had tested snippets before of how I recorded. + +01:13:11.440 --> 01:13:17.560 +So I sent the two of them, I go to bed, I get up and I have a message waiting. + +01:13:17.560 --> 01:13:23.280 +The video cuts off at 18 minutes and it was 36 minutes long and I'm like, oh, come on, + +01:13:23.280 --> 01:13:28.560 +it must be the software, like just can't handle a file that size and it's stupid. + +01:13:28.560 --> 01:13:32.080 +But I play it back on my system and it plays perfectly fine. + +01:13:32.080 --> 01:13:36.560 +And they gave me the checksum of the file, the size of the file, those matched up. + +01:13:36.560 --> 01:13:38.360 +So we knew we had uploaded a good thing. + +01:13:38.360 --> 01:13:42.320 +So I just went back to them and said, no, it works here. + +01:13:42.320 --> 01:13:47.280 +And then they went and researched and found, you know, it was their software and they were + +01:13:47.280 --> 01:13:48.480 +able to make it work. + +01:13:48.480 --> 01:13:50.580 +So I was good. + +01:13:50.580 --> 01:13:53.760 +But you know, that's like right at the edge. + +01:13:53.760 --> 01:13:56.480 +It's like 5.30 this morning. + +01:13:56.480 --> 01:13:57.480 +Yeah. + +01:13:57.480 --> 01:14:00.440 +And you haven't, and then you got some sleep after that? + +01:14:00.440 --> 01:14:01.440 +Yeah. + +01:14:01.440 --> 01:14:07.080 +I got up at like 9.30 so I'm running on a little, not too much sleep, but no, I was + +01:14:07.080 --> 01:14:14.100 +very happy because I got to, I actually, like Rahman who did his and he sort of had his + +01:14:14.100 --> 01:14:23.200 +face behind an Emacs window, transparency through the Emacs window. + +01:14:23.200 --> 01:14:27.960 +He spent like at least 20 hours, like just on the video part or something. + +01:14:27.960 --> 01:14:30.680 +I literally did one recording. + +01:14:30.680 --> 01:14:35.120 +I mean, I had done samples a little bit, but I sat down, I said, I'm just going to try + +01:14:35.120 --> 01:14:37.800 +to run through the whole thing, no breaks. + +01:14:37.800 --> 01:14:44.680 +I did both my face, you know, they were separating their face video from their audio for some + +01:14:44.680 --> 01:14:45.680 +reason. + +01:14:45.680 --> 01:14:50.800 +And they did all these separate tracks, one recording and threw it over the wall. + +01:14:50.800 --> 01:14:53.800 +So it was pretty good. + +01:14:53.800 --> 01:14:58.800 +I think it's easier to do with a longer video because I was in much the same situation. + +01:14:58.800 --> 01:15:06.800 +And if any organizers are reviewing this recording, you know, I was a day ahead of you, Bob. + +01:15:06.800 --> 01:15:12.960 +I submitted it a day before you and I went to sleep, I think roughly 24 hours before + +01:15:12.960 --> 01:15:15.000 +you did. + +01:15:15.000 --> 01:15:21.120 +But you know, it's, so I was scrambling to do a lot of those things too, but you know, + +01:15:21.120 --> 01:15:22.120 +because of my own fault. + +01:15:22.120 --> 01:15:28.120 +And again, if any organizers are listening, I sincerely apologize and thank you and admire + +01:15:28.120 --> 01:15:32.920 +your saintly level of tolerance and patience there. + +01:15:32.920 --> 01:15:41.840 +And I hope that they spend a lot of time and energy just hitting things with baseball bats + +01:15:41.840 --> 01:15:47.880 +after this conference, because I think that they've probably suppressed a lot of negative + +01:15:47.880 --> 01:15:52.520 +energy from having to process things like that. + +01:15:52.520 --> 01:15:55.520 +They're incredible. + +01:15:55.520 --> 01:16:03.960 +I said thank you like an hour into the conference because it was so, I was looking at all the + +01:16:03.960 --> 01:16:09.240 +detail they had and you know, you see the way it's grown from year to year that you + +01:16:09.240 --> 01:16:13.840 +could just tell there was a tremendous amount of effort put in to have all these different + +01:16:13.840 --> 01:16:15.880 +formats and dealing with it. + +01:16:15.880 --> 01:16:21.480 +People have disabilities and you know, I mean, they're just very thoughtful all around and + +01:16:21.480 --> 01:16:23.480 +a great set of people. + +01:16:23.480 --> 01:16:26.760 +So I think every year they get better at it. + +01:16:26.760 --> 01:16:27.760 +Yeah. + +01:16:27.760 --> 01:16:33.400 +Yeah, they're clearly, I like they took a DevOps kind of approach to it, which you can + +01:16:33.400 --> 01:16:40.580 +also see, I guess they have some people, they're using Ansible to maintain some of their environments. + +01:16:40.580 --> 01:16:44.920 +So it's like, wow, that's a pretty advanced way to do it. + +01:16:44.920 --> 01:16:50.760 +And it shows they struggled in parts, you know, it's like, like this, they had trouble, + +01:16:50.760 --> 01:16:57.320 +you know, I was asking multiple times, it's like, is the video going to be playable? + +01:16:57.320 --> 01:16:59.360 +And there'd like be no answer. + +01:16:59.360 --> 01:17:03.440 +And then it's like, okay, don't worry, we're taking care of it. + +01:17:03.440 --> 01:17:08.080 +But they couldn't say because they hadn't converted it the way they wanted to yet. + +01:17:08.080 --> 01:17:12.720 +And then they finally got there and they like 20 minutes before the presentation is when + +01:17:12.720 --> 01:17:21.760 +I guess I got on with you, right, plasma strike, and we did prep before prep. + +01:17:21.760 --> 01:17:24.880 +So it was a good experience. + +01:17:24.880 --> 01:17:30.920 +But I have to know, yeah, I thought I would have it done, no problem, November 4. + +01:17:30.920 --> 01:17:37.480 +So I think that and I did get very busy at work, but you know, that tells you something + +01:17:37.480 --> 01:17:40.840 +just about and I'm not, I don't do videos much. + +01:17:40.840 --> 01:17:43.040 +So that was part of the problem. + +01:17:43.040 --> 01:17:45.600 +Yeah, it's Yeah. + +01:17:45.600 --> 01:17:50.360 +I mean, I'd say the most concrete lesson that I learned, maybe not even a lesson so much + +01:17:50.360 --> 01:17:57.940 +as a as a punishment is that if I dare to submit anything next year, I'll, I'll make + +01:17:57.940 --> 01:18:01.040 +sure that I'm done recording it before I even propose it. + +01:18:01.040 --> 01:18:07.880 +Because I wouldn't want to have them wonder, is he gonna wait until the very end? + +01:18:07.880 --> 01:18:11.660 +Like, I'm gonna, I'm sure I am. + +01:18:11.660 --> 01:18:15.600 +So I will, I will have it done in the summer of 2023. + +01:18:15.600 --> 01:18:19.080 +And I will include it, I will upload it before I even submit it to them. + +01:18:19.080 --> 01:18:21.480 +Did you not get that message? + +01:18:21.480 --> 01:18:23.000 +Sasha was so nice about it. + +01:18:23.000 --> 01:18:29.200 +She's like, you know, it's really not a problem if you don't have time, you know, we can just + +01:18:29.200 --> 01:18:30.200 +cancel. + +01:18:30.200 --> 01:18:36.320 +And I'm like, I've never canceled on a talk before, so I'm gonna get it done, even if + +01:18:36.320 --> 01:18:38.320 +I have to do it live. + +01:18:38.320 --> 01:18:43.680 +Yeah, you know, I got I got similar ones got go ahead. + +01:18:43.680 --> 01:18:44.680 +How would that work? + +01:18:44.680 --> 01:18:48.040 +If you didn't know exactly how much time that you'd have for the talk? + +01:18:48.040 --> 01:18:50.160 +If you're going to do it all in advance? + +01:18:50.160 --> 01:18:57.640 +Oh, oh, for you, because it Yeah, well, you can take a shot. + +01:18:57.640 --> 01:18:58.640 +Don't give me a slot. + +01:18:58.640 --> 01:19:01.360 +You say I have a 20 minute video ready to go. + +01:19:01.360 --> 01:19:02.360 +Yeah, yeah. + +01:19:02.360 --> 01:19:07.560 +Or, I mean, and plus, I think it's also it would be it doesn't necessarily indicate that + +01:19:07.560 --> 01:19:12.200 +it's the final product, but it could be the final product, you could say, Okay, here's, + +01:19:12.200 --> 01:19:14.720 +here's 10 minutes or 15 minutes. + +01:19:14.720 --> 01:19:16.680 +And I will try to iterate on this. + +01:19:16.680 --> 01:19:21.840 +But if I if I default on this loan, so to speak, it's it serves as collateral, maybe + +01:19:21.840 --> 01:19:24.280 +it's not, not necessarily the final product. + +01:19:24.280 --> 01:19:28.320 +But if it needs to be the final product, they could use it that way. + +01:19:28.320 --> 01:19:33.440 +I think the thing that they're most worried about was just having to having to process + +01:19:33.440 --> 01:19:39.880 +things at the last minute and having to run it live, if necessary. + +01:19:39.880 --> 01:19:49.000 +So I don't think they they, you know, care that much about changing, you know, changing + +01:19:49.000 --> 01:19:50.000 +the length or so. + +01:19:50.000 --> 01:19:51.000 +Well, maybe they would, I don't know. + +01:19:51.000 --> 01:19:53.000 +But I guess that that would mess up the schedule. + +01:19:53.000 --> 01:19:56.520 +Well, the the subtitles were really popular, I understand. + +01:19:56.520 --> 01:20:05.240 +So that's, that's a big thing that would have been nice to have, which I imagine you're + +01:20:05.240 --> 01:20:06.240 +gonna process. + +01:20:06.240 --> 01:20:13.640 +Yeah, yeah, I, I, hopefully, I can, I can help them with with subtitling some of the + +01:20:13.640 --> 01:20:16.160 +things that didn't have them yet. + +01:20:16.160 --> 01:20:20.960 +Because, yeah, there's still a lot of work that I think needs to be done even after after + +01:20:20.960 --> 01:20:21.960 +the fact. + +01:20:21.960 --> 01:20:26.800 +And, you know, with transcribing these sessions, even not all of them, but at least some of + +01:20:26.800 --> 01:20:28.800 +the questions and answers and things. + +01:20:28.800 --> 01:20:35.760 +PlasmaStrike, did you that I hear that I understand you say that you you were a volunteer for + +01:20:35.760 --> 01:20:37.320 +managing the this year? + +01:20:37.320 --> 01:20:42.320 +No, I just I was just asking the question. + +01:20:42.320 --> 01:20:43.320 +I got you. + +01:20:43.320 --> 01:20:44.320 +No, I thought I heard you. + +01:20:44.320 --> 01:20:45.320 +I might have misheard something you said earlier. + +01:20:45.320 --> 01:20:46.320 +Are you Corbin? + +01:20:46.320 --> 01:20:47.320 +Me? + +01:20:47.320 --> 01:20:48.320 +Yeah. + +01:20:48.320 --> 01:20:49.320 +No. + +01:20:49.320 --> 01:20:50.320 +No. + +01:20:50.320 --> 01:20:51.320 +No. + +01:20:51.320 --> 01:20:52.320 +No. + +01:20:52.320 --> 01:20:53.320 +Okay. + +01:20:53.320 --> 01:20:56.560 +I thought you sounded like Corbin. + +01:20:56.560 --> 01:20:57.680 +You know him? + +01:20:57.680 --> 01:20:58.680 +Maybe a little bit. + +01:20:58.680 --> 01:20:59.680 +I can hear it a little bit. + +01:20:59.680 --> 01:21:00.680 +Okay. + +01:21:00.680 --> 01:21:06.360 +But you use, PlasmaStrike, you were saying that you you do use a lot of theming and things + +01:21:06.360 --> 01:21:12.160 +like that in terms of like your like various applications, like color themes and things. + +01:21:12.160 --> 01:21:21.960 +I've used various, I've Solarize, Doom themes, I think there's a Tron theme that I use, but + +01:21:21.960 --> 01:21:26.800 +now I'm just using the Modus themes, just simple black and white that's done really + +01:21:26.800 --> 01:21:27.800 +well. + +01:21:27.800 --> 01:21:28.800 +Yeah. + +01:21:28.800 --> 01:21:29.800 +Yeah. + +01:21:29.800 --> 01:21:30.800 +Simplicity. + +01:21:30.800 --> 01:21:32.680 +That was actually going to be one of the things that I wanted to mention in my talk. + +01:21:32.680 --> 01:21:36.400 +But again, those 10 minutes were turned out to be brutal. + +01:21:36.400 --> 01:21:41.560 +I wanted to mention how how people like like us and when I say us, I just mean I don't + +01:21:41.560 --> 01:21:47.680 +mean necessarily you two, just people that I was speaking for, are maybe a little bit + +01:21:47.680 --> 01:21:48.680 +scared of themes. + +01:21:48.680 --> 01:21:52.400 +You know, like I was going to mention that we like I try to stay the heck away from fonts + +01:21:52.400 --> 01:21:58.600 +and colors and things because I just, it's, I don't know if I have the bandwidth to keep + +01:21:58.600 --> 01:21:59.600 +them. + +01:21:59.600 --> 01:22:02.840 +I kind of just declare advanced bankruptcy on those and say, you know what, whatever + +01:22:02.840 --> 01:22:06.320 +it looks like, I'm going to live with it. + +01:22:06.320 --> 01:22:13.040 +I just look at like 20 themes, pick one that suits my taste and then live with that. + +01:22:13.040 --> 01:22:21.600 +So I found one called Cream Soddy, like cream soda, but S-O-D-Y and that's what I use as + +01:22:21.600 --> 01:22:26.960 +a dark theme and I find it, you know, very appealing in general. + +01:22:26.960 --> 01:22:34.000 +So, but yeah, I was noticing like the org people have so much, tweaking the visuals, + +01:22:34.000 --> 01:22:36.200 +you know, it was kind of amazing. + +01:22:36.200 --> 01:22:42.080 +Some people's presentations, I'm like, I'm really not into that. + +01:22:42.080 --> 01:22:47.600 +But I do have a feature in hyperbole, which is kind of cool. + +01:22:47.600 --> 01:22:52.960 +So there's this subsystem called high control, which lets you control your windows and your + +01:22:52.960 --> 01:22:53.960 +frames interactively. + +01:22:53.960 --> 01:23:00.800 +So it's, it's kind of like you go into a mode and it stays live until you quit. + +01:23:00.800 --> 01:23:04.920 +And so you can use regular insertion keys to manipulate things. + +01:23:04.920 --> 01:23:12.800 +One of the things it has in conjunction with a package called Zoom Frame is you can change + +01:23:12.800 --> 01:23:20.560 +your default face across like all your frames with one key, grow it, shrink it. + +01:23:20.560 --> 01:23:25.960 +And I found that, and not just the default face, but all the related faces so that everything + +01:23:25.960 --> 01:23:28.840 +stays a consistent size. + +01:23:28.840 --> 01:23:34.560 +Every time I would try any of the built-in things, I would always end up changing a face + +01:23:34.560 --> 01:23:38.840 +or multiple and something else would stay tiny. + +01:23:38.840 --> 01:23:40.360 +And it just annoyed the hell out of me. + +01:23:40.360 --> 01:23:43.120 +So I implemented that. + +01:23:43.120 --> 01:23:44.880 +This was in high control or Zoom? + +01:23:44.880 --> 01:23:54.080 +Yeah, it's in high control, the Z keys, you use I guess capital Z for make it bigger and + +01:23:54.080 --> 01:23:56.320 +lowercase Z to make it smaller. + +01:23:56.320 --> 01:23:58.680 +So you're zooming both ways. + +01:23:58.680 --> 01:24:04.600 +And the neat thing is that what high control has is a persistent prefix argument. + +01:24:04.600 --> 01:24:10.920 +So say like you want to move a window, say you want to move a frame two pixels at a time. + +01:24:10.920 --> 01:24:14.920 +So you set the prefix argument to two, and then every time you hit your arrow key or + +01:24:14.920 --> 01:24:17.960 +whatever moves it, it moves by two pixels. + +01:24:17.960 --> 01:24:21.440 +You can change that to 20 and it'll move by 20 pixels. + +01:24:21.440 --> 01:24:26.840 +And the 20 will apply to every successive operation until you change it. + +01:24:26.840 --> 01:24:29.560 +And to change it, you just hit a decimal point. + +01:24:29.560 --> 01:24:34.280 +So you can say period one, zero, and then you get a 10. + +01:24:34.280 --> 01:24:38.920 +Or just set it to zero and then it's off. + +01:24:38.920 --> 01:24:40.240 +And so it's very rapid. + +01:24:40.240 --> 01:24:47.680 +So you're doing these single keys NPF dot one, zero. + +01:24:47.680 --> 01:24:51.960 +And so you can string these together in your key series too. + +01:24:51.960 --> 01:24:54.440 +And you get this incredible operation. + +01:24:54.440 --> 01:25:02.480 +It can place frames at any of the corners or the top center of the screen too. + +01:25:02.480 --> 01:25:10.680 +And on a Mac, it will account for the toolbar and only grow so it doesn't overlap that. + +01:25:10.680 --> 01:25:15.240 +All these kind of fit and finish things are just pre-programmed in there. + +01:25:15.240 --> 01:25:20.360 +So when you're actually doing it, I mean, don't you hate that? + +01:25:20.360 --> 01:25:26.520 +It's like you expand your window programmatically and then half of it's off screen, right? + +01:25:26.520 --> 01:25:27.520 +For no reason at all. + +01:25:27.520 --> 01:25:29.560 +And then you got to go manipulate it. + +01:25:29.560 --> 01:25:36.400 +So I don't know, there was one time when I decided to do this and I just thought of those + +01:25:36.400 --> 01:25:41.200 +pain points and I took care of them all in there. + +01:25:41.200 --> 01:25:45.360 +So that's kind of a useful thing. + +01:25:45.360 --> 01:25:54.640 +And one guy, his fingers, if you saw the presentation, he was losing carpal tunnel like problems + +01:25:54.640 --> 01:25:56.120 +but very severely. + +01:25:56.120 --> 01:26:03.520 +So he went to voice control and he was using Emacs and he discovered high control. + +01:26:03.520 --> 01:26:09.720 +And he said that was like a life changer because he always wanted to manipulate his windows, + +01:26:09.720 --> 01:26:10.720 +his frames. + +01:26:10.720 --> 01:26:14.800 +And now he didn't have a good way because he couldn't hit all these keystrokes. + +01:26:14.800 --> 01:26:25.880 +And now he can just say those key sequences and it does it all for him very rapidly. + +01:26:25.880 --> 01:26:33.360 +Another guy, years ago I was working with, there's this brilliant guy named, oh God, + +01:26:33.360 --> 01:26:35.320 +this is, what is his name? + +01:26:35.320 --> 01:26:40.160 +Works for Google now and it's an Indian name. + +01:26:40.160 --> 01:26:44.340 +I forget his name, but he's been blind since birth. + +01:26:44.340 --> 01:26:50.000 +And he got a PhD in computer science and he's worked before Google. + +01:26:50.000 --> 01:26:54.560 +He worked at like Sun and just all the major companies. + +01:26:54.560 --> 01:27:02.680 +And I guess a lot of his work is on making technology accessible to the blind or disabled. + +01:27:02.680 --> 01:27:13.080 +So he wrote a package called EmacsSpeed, yeah, Raman, Raman is his name, TV Raman. + +01:27:13.080 --> 01:27:22.920 +And so EmacsSpeak is another whole environment that lets a blind person utilize Emacs as + +01:27:22.920 --> 01:27:25.200 +an advanced screen reader. + +01:27:25.200 --> 01:27:31.000 +Instead of reading you the whole screen, it knows what your context is and it just reads + +01:27:31.000 --> 01:27:32.180 +you appropriate stuff. + +01:27:32.180 --> 01:27:35.360 +So like he can understand code very rapidly. + +01:27:35.360 --> 01:27:39.640 +Additionally, he can change the speed of the voice so he can listen to something at five + +01:27:39.640 --> 01:27:41.440 +times speed and absorb it. + +01:27:41.440 --> 01:27:44.700 +So he can actually get a picture of code and manipulate it. + +01:27:44.700 --> 01:27:54.740 +So he and I got together years ago and he integrated it with Hyperbole and he was using + +01:27:54.740 --> 01:27:59.320 +Hyperbole to give a macro kind of capability in a lot of stuff. + +01:27:59.320 --> 01:28:01.120 +So I thought that was very cool. + +01:28:01.120 --> 01:28:06.880 +And he was just a very cool guy out in Silicon Valley. + +01:28:06.880 --> 01:28:10.840 +So glad to see he's done so well all this time. + +01:28:10.840 --> 01:28:17.400 +He's got an example config in his package. + +01:28:17.400 --> 01:28:21.920 +I don't know if it has your package configured inside of it or... + +01:28:21.920 --> 01:28:22.920 +I don't know. + +01:28:22.920 --> 01:28:23.920 +I haven't. + +01:28:23.920 --> 01:28:27.600 +He's got some for using CSS. + +01:28:27.600 --> 01:28:34.120 +I think that he was talking, something I read is it would change how the tones and voices + +01:28:34.120 --> 01:28:37.320 +that the voice was using. + +01:28:37.320 --> 01:28:38.320 +Right. + +01:28:38.320 --> 01:28:45.080 +The funny thing is that he's so devoted to his seeing eye dogs, right? + +01:28:45.080 --> 01:28:48.060 +He's had to have a number of them through his life. + +01:28:48.060 --> 01:28:54.200 +So he writes these fake press releases every time he releases a version and they're all + +01:28:54.200 --> 01:28:59.240 +named after the dog and the dog is making the announcement. + +01:28:59.240 --> 01:29:07.860 +It's like so and so is proud to announce Emacs, the friendliest dog release in history. + +01:29:07.860 --> 01:29:10.520 +So they're kind of fun to read. + +01:29:10.520 --> 01:29:16.920 +I've seen his messages on the mailing lists, rather I've seen his subject lines on the + +01:29:16.920 --> 01:29:21.400 +mailing list because I usually don't have, I don't give myself the time to read a lot + +01:29:21.400 --> 01:29:22.400 +of those messages. + +01:29:22.400 --> 01:29:27.840 +But now that I have that context, I'll dig into his messages and see because it sounds + +01:29:27.840 --> 01:29:28.840 +very interesting. + +01:29:28.840 --> 01:29:29.840 +Yeah. + +01:29:29.840 --> 01:29:30.840 +I mean, it would be. + +01:29:30.840 --> 01:29:39.880 +And if you're like my son has no problem seeing, but he has a bit of trouble processing words + +01:29:39.880 --> 01:29:41.880 +when he's reading. + +01:29:41.880 --> 01:29:46.840 +So he uses audible while he reads and it's too slow for him. + +01:29:46.840 --> 01:29:53.720 +So he uses audible at like twice the speed and finds that that really helps him understand + +01:29:53.720 --> 01:29:54.720 +passages. + +01:29:54.720 --> 01:30:01.040 +So it may have utility for people without visual disabilities too. + +01:30:01.040 --> 01:30:02.520 +Good point. + +01:30:02.520 --> 01:30:03.520 +Yeah. + +01:30:03.520 --> 01:30:09.800 +That's probably so much there that doesn't really get thought about because just think + +01:30:09.800 --> 01:30:11.440 +this is what, how we have to do it. + +01:30:11.440 --> 01:30:15.880 +It's in front of you, consume it, consume it the same way everybody else consumes it. + +01:30:15.880 --> 01:30:18.600 +And if you have trouble, then it's on you. + +01:30:18.600 --> 01:30:24.680 +Well, here's an interesting usability to bit, Robin, a different Robin, the Robin who + +01:30:24.680 --> 01:30:32.040 +works on hyperbole was showing me his presentation and he had the text of the presentation there. + +01:30:32.040 --> 01:30:37.460 +And every time he would say something, the word that he was saying would be highlighted + +01:30:37.460 --> 01:30:38.460 +on the screen. + +01:30:38.460 --> 01:30:41.520 +And I'm like, wow, that's very impressive. + +01:30:41.520 --> 01:30:45.440 +And it followed his speaking perfectly. + +01:30:45.440 --> 01:30:48.520 +I'm like, how did you do that? + +01:30:48.520 --> 01:30:55.920 +And he said, Oh, I'm just highlighting each word manually. + +01:30:55.920 --> 01:30:56.920 +Wow. + +01:30:56.920 --> 01:31:01.760 +Now that it's, it's like being a drummer, you know, he had such perfect cadence that + +01:31:01.760 --> 01:31:07.200 +I couldn't tell that this wasn't automated, that he did it so beautifully while he was + +01:31:07.200 --> 01:31:14.520 +speaking or, or watching him self speak, played back. + +01:31:14.520 --> 01:31:20.040 +It would have been nice if it was an automated thing, but apparently it takes the human to + +01:31:20.040 --> 01:31:21.040 +do it. + +01:31:21.040 --> 01:31:25.460 +I had to rig something up when I was recording my video, cause I, I wrote, I did it, I scripted + +01:31:25.460 --> 01:31:26.460 +it all. + +01:31:26.460 --> 01:31:31.240 +Um, and I, I just couldn't, I wasn't, I didn't have the mental bandwidth to try to memorize + +01:31:31.240 --> 01:31:32.440 +it at that point. + +01:31:32.440 --> 01:31:37.840 +So I just split everything up into, into half paragraphs basically, and tried to get it + +01:31:37.840 --> 01:31:43.720 +up as close to my camera as I could, um, scroll my mouse wheel. + +01:31:43.720 --> 01:31:48.040 +Every time I came to the end of a paragraph, I had to scroll the script with one hand and + +01:31:48.040 --> 01:31:52.200 +my other hand was controlling the slot, the so-called slide show, which was just paging + +01:31:52.200 --> 01:31:54.400 +through my org, my org outline. + +01:31:54.400 --> 01:32:01.240 +Um, and I think about five to 10 times I had to stop recording it because I, I scrolled, + +01:32:01.240 --> 01:32:05.320 +I got off sync with, with either my script or my outline or both. + +01:32:05.320 --> 01:32:10.200 +And just, you know, with 10 minutes, like, Oh, I can't go back and I lost, I lost like + +01:32:10.200 --> 01:32:11.440 +5% of my time. + +01:32:11.440 --> 01:32:13.360 +I have to start over. + +01:32:13.360 --> 01:32:16.680 +So I can't imagine doing it on a word by word basis. + +01:32:16.680 --> 01:32:22.640 +It's strange we're still recording this, but we're getting into just the, you know, interesting + +01:32:22.640 --> 01:32:23.640 +story. + +01:32:23.640 --> 01:32:24.640 +Oh, it's the last thing. + +01:32:24.640 --> 01:32:29.880 +So, you know, this is just kind of like, I feel like this is the, the after party, right? + +01:32:29.880 --> 01:32:31.640 +Maybe they'll cut it off. + +01:32:31.640 --> 01:32:36.720 +So I work with a British guy, brilliant, uh, mathematician kind of guy. + +01:32:36.720 --> 01:32:44.520 +He's a financial guy and, uh, he, he has that, you know, often British kind of capability. + +01:32:44.520 --> 01:32:52.760 +He, he speaks beautifully, but he can speak off the cuff about anything he's working on, + +01:32:52.760 --> 01:32:56.500 +just like he has spent a week, uh, working on it. + +01:32:56.500 --> 01:33:02.040 +So he gets called on like, you know, the bigger bosses will say, we got to show this, do this + +01:33:02.040 --> 01:33:08.600 +demo for this client, literally like five minutes ahead of time, and he'll just go into + +01:33:08.600 --> 01:33:12.240 +it and there won't be an um, there won't be a pause. + +01:33:12.240 --> 01:33:14.840 +It'll just be this fluid sort of thing. + +01:33:14.840 --> 01:33:20.960 +And I'm like, man, if you could bottle that, uh, you know, because do it, what you're saying, + +01:33:20.960 --> 01:33:27.640 +doing, uh, you're on camera, doing a video thing, speaking, managing your thoughts, you + +01:33:27.640 --> 01:33:32.120 +know, keeping your context, it's, uh, super hard, I think. + +01:33:32.120 --> 01:33:37.120 +And, uh, when you see somebody who has that, like Steve Jobs, you know, he would practice + +01:33:37.120 --> 01:33:46.240 +I guess, but he had that ability that he could communicate anything, uh, beautifully. + +01:33:46.240 --> 01:33:47.820 +That's an art. + +01:33:47.820 --> 01:33:48.820 +Maybe not. + +01:33:48.820 --> 01:33:51.240 +Maybe it's just a personality trait. + +01:33:51.240 --> 01:33:56.360 +It's a, yeah, I don't, I don't think you can train, you can definitely improve, but I don't + +01:33:56.360 --> 01:34:02.360 +think you can train people if you're not born with that kind of silver tongue. + +01:34:02.360 --> 01:34:03.360 +Yeah. + +01:34:03.360 --> 01:34:04.360 +Right. + +01:34:04.360 --> 01:34:07.480 +And maybe it has to do with not being conscious of things. + +01:34:07.480 --> 01:34:13.520 +I think a lot of times it has, it's, you've never really thought about what, about what + +01:34:13.520 --> 01:34:19.000 +happens if you mess up or something just hasn't, you're blessed to not be able to worry about + +01:34:19.000 --> 01:34:20.000 +certain things. + +01:34:20.000 --> 01:34:21.000 +Yeah, that's true. + +01:34:21.000 --> 01:34:27.800 +That's why you see all the technical people that struggle, right, is, uh, but he's, you + +01:34:27.800 --> 01:34:29.800 +know, he has that too. + +01:34:29.800 --> 01:34:32.220 +He'll be very self-critical at times and stuff. + +01:34:32.220 --> 01:34:37.320 +But I think when, you know, like all of us, I mean, if I start out, I may be thinking + +01:34:37.320 --> 01:34:43.760 +about a bunch of things, but once I'm into it, you can see, you know, you sort of relax + +01:34:43.760 --> 01:34:50.040 +and you're just focused on that and all those other things kind of fade away, right? + +01:34:50.040 --> 01:34:51.320 +You can get into that zone. + +01:34:51.320 --> 01:34:52.600 +It's there for all of us. + +01:34:52.600 --> 01:34:59.640 +Well, as you become competent in things, the technology more and more disappears because + +01:34:59.640 --> 01:35:05.800 +I don't, as Emacs users, we don't think about what keyboards we, our touch typing is generally + +01:35:05.800 --> 01:35:11.200 +at another level because we split the windows without ever thinking about it. + +01:35:11.200 --> 01:35:12.200 +Muscle memory. + +01:35:12.200 --> 01:35:13.200 +Yeah. + +01:35:13.200 --> 01:35:14.600 +And that's what I'm saying. + +01:35:14.600 --> 01:35:19.680 +It's like, use that for like the value add and then, you know, literally have your muscles + +01:35:19.680 --> 01:35:26.280 +almost take care of the stuff that's silly, like, you know, opening a directory when it's + +01:35:26.280 --> 01:35:29.840 +part of a path, colon, separated, set of things. + +01:35:29.840 --> 01:35:31.080 +I don't want to think about that. + +01:35:31.080 --> 01:35:33.320 +I just want to point and go. + +01:35:33.320 --> 01:35:38.760 +And I don't want to know what the key binding is or any of that kind of stuff, so that we're + +01:35:38.760 --> 01:35:44.800 +definitely trying to like push it down to your unconscious and then see how far we can + +01:35:44.800 --> 01:35:49.120 +take that, you know, like what, how can you fly? + +01:35:49.120 --> 01:35:55.960 +Uh, I, you know, people sometimes have said there's some magic or that's why I mentioned + +01:35:55.960 --> 01:35:59.200 +that term today, but I think that's an important concept. + +01:35:59.200 --> 01:36:06.360 +You know, if it, if it seems like magic, then you've probably got it down to the right level + +01:36:06.360 --> 01:36:12.640 +that people don't have to think about it anymore and they're just, it's in their subconscious + +01:36:12.640 --> 01:36:18.120 +and they can move on to more interesting things, which is sort of why we build software in + +01:36:18.120 --> 01:36:19.120 +the first place. + +01:36:19.120 --> 01:36:20.120 +I think, right. + +01:36:20.120 --> 01:36:26.680 +It's to automate the mundane and let us keep adding value at another level. + +01:36:26.680 --> 01:36:27.680 +Yeah. + +01:36:27.680 --> 01:36:30.640 +Although it's very hard to remember that sometimes. + +01:36:30.640 --> 01:36:31.640 +Right. + +01:36:31.640 --> 01:36:36.560 +When you're, when you're saying, Oh, move this pixel over here. + +01:36:36.560 --> 01:36:37.560 +Right? + +01:36:37.560 --> 01:36:38.560 +Yeah. + +01:36:38.560 --> 01:36:43.840 +Like you were saying about front end development and how hard it can be sometimes that all + +01:36:43.840 --> 01:36:50.040 +the business people want to put their two cents in, it has to be, it has to be making + +01:36:50.040 --> 01:36:52.040 +somebody money at some point. + +01:36:52.040 --> 01:36:53.040 +Yeah. + +01:36:53.040 --> 01:36:59.160 +It's helpful, helpful when it does, but you know, not all you can build. + +01:36:59.160 --> 01:37:03.780 +You can spend a lot of money on things and they, I mean, look at, uh, look at what's + +01:37:03.780 --> 01:37:09.680 +happening to the tech companies now after billions of dollars invested and they're just + +01:37:09.680 --> 01:37:18.120 +throwing away thousands of people and all their knowledge bases and yeah, it's, it's + +01:37:18.120 --> 01:37:19.120 +competitive. + +01:37:19.120 --> 01:37:25.280 +I mean, you know, it's like, we don't need a thousand task management, commercial tools, + +01:37:25.280 --> 01:37:26.280 +right? + +01:37:26.280 --> 01:37:27.640 +Project management tools. + +01:37:27.640 --> 01:37:29.920 +So the market will shake out. + +01:37:29.920 --> 01:37:32.220 +There'll be three big ones maybe. + +01:37:32.220 --> 01:37:36.380 +And then everybody else is, if they exist, they're losing money. + +01:37:36.380 --> 01:37:40.980 +So what, you know, so are you going to be one of those three? + +01:37:40.980 --> 01:37:47.200 +That's that's the problem is that there's not enough room left for a lot of the things + +01:37:47.200 --> 01:37:49.200 +that people are trying to do. + +01:37:49.200 --> 01:37:51.680 +You talked about advancing things. + +01:37:51.680 --> 01:37:55.000 +It's like stuff like hyperbole or this mother of all demos. + +01:37:55.000 --> 01:38:01.800 +It's like sometimes we don't always have to move forward because all this mother of all + +01:38:01.800 --> 01:38:08.680 +demos is in a lot of ways, way ahead of anything we have now. + +01:38:08.680 --> 01:38:16.180 +And seems like it's ahead of hyperbole in a lot of ways and well, I've talked to a lot + +01:38:16.180 --> 01:38:20.520 +of non-technical people and they always say, you know, the problem I have is technology + +01:38:20.520 --> 01:38:21.520 +moves so fast. + +01:38:21.520 --> 01:38:22.520 +I can't keep up. + +01:38:22.520 --> 01:38:31.120 +And I say, well, actually in thinking about it over decades now that I've aged, uh, I + +01:38:31.120 --> 01:38:33.980 +see it as cycles much more, right? + +01:38:33.980 --> 01:38:40.000 +And like a sine wave that, uh, first of all, we, we do lose knowledge. + +01:38:40.000 --> 01:38:42.280 +We don't have a good way of capturing it. + +01:38:42.280 --> 01:38:47.180 +And I mean, I literally knew something about Engelbart's work and it was over a decade + +01:38:47.180 --> 01:38:53.140 +later that I rediscovered it and, and then got in touch and interacted with him. + +01:38:53.140 --> 01:38:58.480 +So, so we're definitely like forgetting about the past and get a new generation in. + +01:38:58.480 --> 01:39:00.380 +They don't know the lessons. + +01:39:00.380 --> 01:39:01.900 +They screwed things up. + +01:39:01.900 --> 01:39:06.720 +And eventually we rediscover that somebody already solved this and we can go and use + +01:39:06.720 --> 01:39:07.720 +it again. + +01:39:07.720 --> 01:39:11.800 +And then we start building on that and then the war happens and it gets destroyed. + +01:39:11.800 --> 01:39:15.080 +And then we got, so, so you actually get a lot of time, right? + +01:39:15.080 --> 01:39:16.680 +Like ethernet, right? + +01:39:16.680 --> 01:39:23.340 +To the masses from when it was invented to when it got deployed, uh, you know, hypertext. + +01:39:23.340 --> 01:39:30.880 +So let's say if Engelbart was showing it in 1968 and before that Ted Nelson was opining + +01:39:30.880 --> 01:39:37.640 +about it a ton, uh, so 1991 or two is when we got the web. + +01:39:37.640 --> 01:39:40.840 +So 25 years at least. + +01:39:40.840 --> 01:39:42.440 +And I think that's sort of cycles. + +01:39:42.440 --> 01:39:47.680 +I don't think there's a lot of technology cycles that are less than 10 years, uh, but + +01:39:47.680 --> 01:39:56.600 +you often see that the 10 to 15 to 20 year cycles from research to, you know, broad consumer + +01:39:56.600 --> 01:40:01.760 +adoption, uh, you've got about that amount of time to deal with it. + +01:40:01.760 --> 01:40:09.320 +So if you can have a research team that stays 10 years ahead of like what's out in the marketplace, + +01:40:09.320 --> 01:40:11.960 +you have lots of time to develop your product. + +01:40:11.960 --> 01:40:14.400 +It's not this, it's gotta be out yesterday. + +01:40:14.400 --> 01:40:17.480 +You only have two months or the market's going to close up. + +01:40:17.480 --> 01:40:23.580 +But it's very difficult to convince business people of that because there's so much chatter + +01:40:23.580 --> 01:40:29.420 +on the business side and people will show their, their mockups and their demos very + +01:40:29.420 --> 01:40:30.420 +broadly. + +01:40:30.420 --> 01:40:34.120 +And then they're like, they've got it, you know, it's like, what have they got? + +01:40:34.120 --> 01:40:36.000 +Well that I saw it, I saw it. + +01:40:36.000 --> 01:40:37.000 +Yeah. + +01:40:37.000 --> 01:40:41.120 +And what's behind that thing that you saw, you know, they just whipped it up right over + +01:40:41.120 --> 01:40:46.400 +a weekend and there's nothing, there's no database, there's no, uh, there's no user + +01:40:46.400 --> 01:40:47.400 +validation. + +01:40:47.400 --> 01:40:53.880 +So you kind of have to contend with that, which is probably why a lot of Emacs users + +01:40:53.880 --> 01:40:59.400 +are in academia and they don't want to deal with those issues. + +01:40:59.400 --> 01:41:00.400 +Yeah. + +01:41:00.400 --> 01:41:07.000 +It's kind of like also advanced by doing the, uh, doubling down on the stuff that works + +01:41:07.000 --> 01:41:12.160 +like for instance, uh, cars like, Oh look, the car's better. + +01:41:12.160 --> 01:41:14.440 +It's got a higher Bluetooth version. + +01:41:14.440 --> 01:41:15.540 +See it's better. + +01:41:15.540 --> 01:41:17.640 +But what about the gas mileage? + +01:41:17.640 --> 01:41:19.200 +How long does the motor last? + +01:41:19.200 --> 01:41:22.520 +But it's got a higher Bluetooth version. + +01:41:22.520 --> 01:41:28.580 +See it's, it's more technology and then, then the job is to create the need and the desire + +01:41:28.580 --> 01:41:30.600 +for that higher Bluetooth version. + +01:41:30.600 --> 01:41:31.600 +Right. + +01:41:31.600 --> 01:41:32.600 +Yeah. + +01:41:32.600 --> 01:41:38.480 +Well, haven't you bought like the same brand of car, even the same model, like a couple + +01:41:38.480 --> 01:41:41.760 +of years later and you're like, what did I just buy? + +01:41:41.760 --> 01:41:45.320 +I really loved the one from five years before. + +01:41:45.320 --> 01:41:51.440 +My, my first job out of school was in Motorola, which had a great engineering culture. + +01:41:51.440 --> 01:41:59.560 +But there came a time when, uh, they, they brought in automotive designers to shape, + +01:41:59.560 --> 01:42:02.720 +uh, the shape, the physical shape of the products. + +01:42:02.720 --> 01:42:08.600 +And we had some very sexy, beautiful looking things that those guys left the company and + +01:42:08.600 --> 01:42:13.560 +they hired a bunch of people pretty much out of college, you know, who had studied the + +01:42:13.560 --> 01:42:14.680 +field. + +01:42:14.680 --> 01:42:21.080 +And all of a sudden we had like these blocky kinds of things that like, nobody would want + +01:42:21.080 --> 01:42:26.440 +to hold in their hand and, uh, and I'm like, what, wait, what just happened? + +01:42:26.440 --> 01:42:29.080 +Didn't they document any of their work or anything? + +01:42:29.080 --> 01:42:35.220 +But that's, you know, we really do need the knowledge base inside people's head because + +01:42:35.220 --> 01:42:38.600 +we're nowhere near documenting it well enough. + +01:42:38.600 --> 01:42:44.320 +Uh, the design principles that people use, you know, you look at, you can see it in Apple + +01:42:44.320 --> 01:42:46.220 +a little bit too, right? + +01:42:46.220 --> 01:42:51.640 +Since Johnny Ive left, it's like, yeah, where's, where's the next design language? + +01:42:51.640 --> 01:42:58.320 +I just got an update to my iPhone and I noticed they changed some of the icons, but they just + +01:42:58.320 --> 01:43:06.600 +made like the time on my home screen, like three times as thick, the font width, you + +01:43:06.600 --> 01:43:12.400 +know, it's like ultra bold and I'm like, yeah, that it doesn't really look right. + +01:43:12.400 --> 01:43:18.440 +It just looks like it's in my face and I'm like, well, somebody, you know, got that through + +01:43:18.440 --> 01:43:24.760 +whatever they're running there now, but I've would have tossed that on the, you know, the + +01:43:24.760 --> 01:43:25.760 +bad idea pile. + +01:43:25.760 --> 01:43:26.760 +I think. + +01:43:26.760 --> 01:43:27.760 +Huh? + +01:43:27.760 --> 01:43:34.000 +It seems like a bit of an obnoxious change to make it for something that is so supposed + +01:43:34.000 --> 01:43:37.520 +to be, it's when you want it, you really want it and when you don't want it, it's supposed + +01:43:37.520 --> 01:43:38.520 +to be unobtrusive. + +01:43:38.520 --> 01:43:42.800 +I don't know that way. + +01:43:42.800 --> 01:43:43.800 +Yeah. + +01:43:43.800 --> 01:43:44.800 +Oh. + +01:43:44.800 --> 01:43:45.800 +Yeah. + +01:43:45.800 --> 01:43:54.480 +I wonder if that uses more power since it's, if it's white using all your, all your pixels + +01:43:54.480 --> 01:43:55.480 +there. + +01:43:55.480 --> 01:43:57.080 +Oh yeah. + +01:43:57.080 --> 01:43:59.280 +So I guess we have time in the end. + +01:43:59.280 --> 01:44:05.080 +I mean that like, you know, we all have these crazy deadlines, but in the end to actually + +01:44:05.080 --> 01:44:10.480 +move the needle forward, it's going to take a while and there's going to be certain steps + +01:44:10.480 --> 01:44:11.480 +backwards. + +01:44:11.480 --> 01:44:16.800 +And I think Emacs is sort of our shared community knowledge base, right? + +01:44:16.800 --> 01:44:21.140 +As long as we have these libraries, even if they get a little out of date, we can update + +01:44:21.140 --> 01:44:24.320 +them to the next generation when we're ready. + +01:44:24.320 --> 01:44:27.440 +And that's something that a lot of people don't have, right? + +01:44:27.440 --> 01:44:33.140 +They're just going from application to applications and they're losing all the core capabilities + +01:44:33.140 --> 01:44:36.760 +every time they transition. + +01:44:36.760 --> 01:44:41.080 +Well I think that's the, like when I was talking about the themes and the modularity and just + +01:44:41.080 --> 01:44:46.840 +using all that stuff is, if you can use all that stuff and especially if you can use a + +01:44:46.840 --> 01:44:53.380 +whole bunch of really old code, that's, that's the tricky question of how do you use as many + +01:44:53.380 --> 01:45:00.600 +things as you, as possible at once without everything clobbering each other? + +01:45:00.600 --> 01:45:13.060 +Well, I learned this lesson, don't, don't add a date created entry to your code files + +01:45:13.060 --> 01:45:21.440 +if you don't also include a last modified date, because we had 1991 entries in hyperbole + +01:45:21.440 --> 01:45:26.640 +files and people would download it and they look and they're like, this thing is ancient. + +01:45:26.640 --> 01:45:33.360 +I'm not going to use this because we had pulled out the modified because you need certain + +01:45:33.360 --> 01:45:37.400 +code to update the modified automatically when you save it. + +01:45:37.400 --> 01:45:41.240 +And you know, not every developer would necessarily have that. + +01:45:41.240 --> 01:45:46.680 +So, but when that started happening, I said, we'll put this back because they didn't want + +01:45:46.680 --> 01:45:54.560 +to get rid of the create date and lose that, that you sort of know how far back it goes. + +01:45:54.560 --> 01:46:02.520 +Yeah, yeah, I've, I've always gotten a little, I always find it interesting when I see working + +01:46:02.520 --> 01:46:06.400 +with something and I, and I realized that it hasn't been touched for, or it appears + +01:46:06.400 --> 01:46:12.040 +not to have been touched for a couple of decades and I think, oh my gosh, either I, if I found + +01:46:12.040 --> 01:46:15.080 +a problem, I'm thinking, oh, I, this can't be right. + +01:46:15.080 --> 01:46:18.080 +I must be missing something here because there's no way that this problem could have existed + +01:46:18.080 --> 01:46:22.680 +for 20 years and no one ever noticed it or cared about it. + +01:46:22.680 --> 01:46:24.120 +And sometimes I'm wrong. + +01:46:24.120 --> 01:46:25.120 +Sometimes I'm right. + +01:46:25.120 --> 01:46:26.120 +It's not a problem. + +01:46:26.120 --> 01:46:32.200 +Well, you have this quote for Emacs, it's like Emacs is you want editors, like you want + +01:46:32.200 --> 01:46:33.200 +wine. + +01:46:33.200 --> 01:46:34.200 +I think it's wine. + +01:46:34.200 --> 01:46:41.040 +It's like, the older it is, the better it gets because you get that composite of all + +01:46:41.040 --> 01:46:50.080 +these philosophies, workflows, workflows and forming packages and if you're going to be + +01:46:50.080 --> 01:46:57.600 +on the cutting edge, 95% of the ideas will probably not be good, 5% of the ideas will + +01:46:57.600 --> 01:47:05.280 +be good, but versus looking at the older stuff where a lot more of the ideas will be good + +01:47:05.280 --> 01:47:08.460 +and you'll get all like matured packages. + +01:47:08.460 --> 01:47:13.160 +Like you were talking about how you have all the window control with the Mac stuff. + +01:47:13.160 --> 01:47:19.000 +You just get the stuff, uh, Streamlint. + +01:47:19.000 --> 01:47:25.760 +And maybe like, you know, if we look at Richard Stallman's Emacs environment and maybe yours, + +01:47:25.760 --> 01:47:30.200 +John, you'd like to keep it simple, like you said, not beaming it because you've gotten, + +01:47:30.200 --> 01:47:32.920 +you know, to a steady state that works well for you. + +01:47:32.920 --> 01:47:40.440 +I visited Xerox park years ago and when I went around looking at all of the workstations, + +01:47:40.440 --> 01:47:48.300 +they were all using like 10 year old window managers, just like the oldest look and feel. + +01:47:48.300 --> 01:47:50.940 +Nobody was touching anything, right? + +01:47:50.940 --> 01:47:59.280 +Because they were creating the future, they thought, and they really didn't care about + +01:47:59.280 --> 01:48:02.760 +keeping up to date on, on their packages. + +01:48:02.760 --> 01:48:04.840 +They had to write their own stuff. + +01:48:04.840 --> 01:48:10.840 +So I thought that was kind of fascinating to learn that a lot of, you know, high level + +01:48:10.840 --> 01:48:18.120 +thinkers don't necessarily treat their tooling environments the same way. + +01:48:18.120 --> 01:48:21.240 +At least not, not every day. + +01:48:21.240 --> 01:48:30.520 +They probably say finish whatever they're doing or, you know, reach five years or something. + +01:48:30.520 --> 01:48:35.120 +That's what I'm sticking with this one Subaru car and I've had a bunch of other things, + +01:48:35.120 --> 01:48:39.840 +but this one has an engine that they don't make anymore, a V6. + +01:48:39.840 --> 01:48:45.920 +Now they're sort of like turboizing things to get the equivalent power and it doesn't + +01:48:45.920 --> 01:48:47.120 +perform the same way. + +01:48:47.120 --> 01:48:52.880 +So I'm like, well, I got to wait until the bottom of this car rusts out before I replace + +01:48:52.880 --> 01:48:56.600 +it because I like so much about it. + +01:48:56.600 --> 01:49:04.440 +Even though I'm missing some of the new technology, I just don't want to change it out. + +01:49:04.440 --> 01:49:12.040 +One of the things I like a lot about how Emacs looks as it looks to me, really nice in a + +01:49:12.040 --> 01:49:20.120 +real bullshit, ultra functional way where it's like, I like that it doesn't do the smooth + +01:49:20.120 --> 01:49:25.880 +scrolling that it scrolls line by line by line, even though that's not as modern and + +01:49:25.880 --> 01:49:34.960 +hip because it's more down or down to earth functional, I don't know, like a more engineering + +01:49:34.960 --> 01:49:40.160 +or something that's just not as flashy normal way. + +01:49:40.160 --> 01:49:44.920 +Yeah, no, I agree. + +01:49:44.920 --> 01:49:52.240 +And it affects, it really affects how it feels like you're somewhere in your brain, you're + +01:49:52.240 --> 01:49:55.480 +some kind of object that your brain thinks that you're dealing with, even if it's not + +01:49:55.480 --> 01:49:59.840 +really an object, you know, part of your brain just has to really to the world that way. + +01:49:59.840 --> 01:50:04.200 +And I think that's just one of those things is that if you can, your brain can actually + +01:50:04.200 --> 01:50:09.640 +feel like you're, you can almost feel each line like passing past, you're going past + +01:50:09.640 --> 01:50:12.640 +your scrolling action. + +01:50:12.640 --> 01:50:18.840 +Your brain is like, you keep helps keep you oriented, like you can, it's like, it's your + +01:50:18.840 --> 01:50:24.200 +visual experience creates a tactile experience for you. + +01:50:24.200 --> 01:50:31.200 +I think that's one of the the VR problems that the industry is suffering from is that + +01:50:31.200 --> 01:50:40.160 +it's so easy to program things that will entirely screw up somebody's, what do you call this + +01:50:40.160 --> 01:50:45.760 +subconscious parts of our, our nerve nervous systems. + +01:50:45.760 --> 01:50:50.800 +So right, I mean, they can scare the hell out of people, they can make them sense something + +01:50:50.800 --> 01:50:52.720 +that's not there. + +01:50:52.720 --> 01:50:58.680 +And it's like, you know, it's just, we're not ready for that in so many ways, and it's + +01:50:58.680 --> 01:51:00.280 +just too easy. + +01:51:00.280 --> 01:51:09.060 +And so if you can't depend that like physics will keep you from like flying off the earth, + +01:51:09.060 --> 01:51:12.400 +you know, anything can happen. + +01:51:12.400 --> 01:51:18.120 +I don't know how many people will want to really, you know, experience that for any + +01:51:18.120 --> 01:51:20.400 +continual amount of time. + +01:51:20.400 --> 01:51:24.280 +The other thing you don't get is like, you don't have to worry about how much time it + +01:51:24.280 --> 01:51:25.280 +does a scroll. + +01:51:25.280 --> 01:51:27.760 +So it's going to be a lot more performant, faster. + +01:51:27.760 --> 01:51:32.720 +I love turn, as a counter example, I love turning off the animations on my phone because + +01:51:32.720 --> 01:51:38.640 +it makes it snappier, faster, and I don't want to just insert animations on my phone + +01:51:38.640 --> 01:51:43.920 +just to slow it down and you open up your contacts, it's like, I want to make, I turn + +01:51:43.920 --> 01:51:51.240 +the DPI on my Android phone down, down, so that I can see more contacts at once. + +01:51:51.240 --> 01:51:59.600 +So I don't have to scroll as many times and I want, I make the home screen have more icons + +01:51:59.600 --> 01:52:01.680 +on it because I'm accurate with my thumbs. + +01:52:01.680 --> 01:52:09.520 +So I want to see as many icons as I can so I don't, so I can much faster see and click + +01:52:09.520 --> 01:52:12.960 +the right one I want to, I scroll less pages. + +01:52:12.960 --> 01:52:19.920 +Yeah, and you probably have a hard time making it do what you want, I'm guessing too, because + +01:52:19.920 --> 01:52:29.780 +it's just the one area where, for phones especially, it's just one area where you are not respected. + +01:52:29.780 --> 01:52:34.920 +You're going to take whatever experience they figured was the right one that week and force + +01:52:34.920 --> 01:52:39.160 +you to eat it, like a head of cattle. + +01:52:39.160 --> 01:52:44.480 +You're eating that experience like it's feed and it'll change whenever you want, whenever + +01:52:44.480 --> 01:52:49.880 +they want, and it's going to, I don't know if you feel the same way. + +01:52:49.880 --> 01:52:55.040 +My first phone was a Windows mobile phone that the person was selling because they wanted + +01:52:55.040 --> 01:53:05.240 +an Android phone and I've always been on custom ROMs, although lately I've been getting annoyed + +01:53:05.240 --> 01:53:11.760 +about it because they've been losing all the, let's see, I remember reading this blog post + +01:53:11.760 --> 01:53:16.320 +about somebody liking custom ROMs and they were saying that Android was becoming more + +01:53:16.320 --> 01:53:22.280 +restrictive because they would be putting an image through the USB port so you could + +01:53:22.280 --> 01:53:29.320 +have a Linux ISO connected to your computer through your phone and they wanted SE Linux + +01:53:29.320 --> 01:53:34.600 +but they'd have to compile the kernel in a different way and have the patch and all that + +01:53:34.600 --> 01:53:42.680 +type of stuff is just becoming more and more of a nightmare and you're not able to do that. + +01:53:42.680 --> 01:53:46.560 +Right now I'm messing with a Linux phone. + +01:53:46.560 --> 01:53:59.440 +Do you guys agree with Stallman and GNU thinking for FFF philosophy in general or sort of like + +01:53:59.440 --> 01:54:03.600 +you're more middle of the road about it? + +01:54:03.600 --> 01:54:11.880 +I mean I personally, I think there's a need for that philosophy. + +01:54:11.880 --> 01:54:22.440 +I don't, at least now, I don't personally 100% dedicate my beliefs and actions to it. + +01:54:22.440 --> 01:54:32.720 +I'm not certain about anything to be honest but I'm not ready to say that everything outside + +01:54:32.720 --> 01:54:41.280 +of it has no place for me or has no place at all but I think about the commonalities. + +01:54:41.280 --> 01:54:47.600 +I think that there's good that will come, there's a truth to it and there's a good that + +01:54:47.600 --> 01:54:56.360 +it will do and there's certainly no reason to not offer. + +01:54:56.360 --> 01:54:59.720 +You don't have to agree that it's the only way to agree that there's something good about + +01:54:59.720 --> 01:55:00.720 +it. + +01:55:00.720 --> 01:55:04.760 +That's my point of view. + +01:55:04.760 --> 01:55:11.760 +I think that you have the philosophy, like the Emacs is a great example of an ecosystem + +01:55:11.760 --> 01:55:17.080 +informed by that philosophy and it's an artifact of that philosophy because you look at an + +01:55:17.080 --> 01:55:22.840 +Emacs package, chances are if you look at any of the Zettelkasten systems, they're not + +01:55:22.840 --> 01:55:29.520 +going to be trying to, it's not going to be, let's see, you have org.roam. + +01:55:29.520 --> 01:55:36.240 +It's not Roam because Roam requires you to pay for a Sass subscription and it's only + +01:55:36.240 --> 01:55:40.520 +accessible online and it's like any Emacs package you use, generally you're going to + +01:55:40.520 --> 01:55:46.120 +have all the data on your local machine and it's... + +01:55:46.120 --> 01:55:50.560 +Is that, I think there was something called Roam, is that Roam research, is that what + +01:55:50.560 --> 01:55:51.560 +you're talking about? + +01:55:51.560 --> 01:55:52.560 +Yes. + +01:55:52.560 --> 01:55:53.560 +That's right. + +01:55:53.560 --> 01:55:55.560 +I thought Roam was just a verb. + +01:55:55.560 --> 01:55:56.560 +Sorry. + +01:55:56.560 --> 01:56:03.480 +They built the interface to be like that, yeah. + +01:56:03.480 --> 01:56:05.000 +It's interesting, right? + +01:56:05.000 --> 01:56:10.080 +Because yeah, you hear all these terms and you don't always know. + +01:56:10.080 --> 01:56:18.400 +Like a lot of people are like, hyperbole has adopted this org thing because they don't + +01:56:18.400 --> 01:56:27.920 +know it existed before org because the org obviously has a much broader reach right now. + +01:56:27.920 --> 01:56:35.400 +So yeah, understanding that history and that Emacs is tied into the FSF philosophy, there's + +01:56:35.400 --> 01:56:42.280 +probably a fraction of the Emacs users that even are very aware of that. + +01:56:42.280 --> 01:56:51.840 +But I think, yeah, Stallman, he's seen a lot and he's somebody who does think a lot from + +01:56:51.840 --> 01:56:55.720 +first principles and is very logical. + +01:56:55.720 --> 01:57:02.000 +He doesn't necessarily want to deal with parts of the world that exist. + +01:57:02.000 --> 01:57:09.440 +But if he makes a statement, it's usually fairly true. + +01:57:09.440 --> 01:57:17.520 +So the fact that he's concluded this and been very definitive about it for decades tells + +01:57:17.520 --> 01:57:22.200 +you that there's some truth in there that you should look into. + +01:57:22.200 --> 01:57:23.200 +Yeah. + +01:57:23.200 --> 01:57:30.120 +I think if I think of like today's earlier session where some of the questions were exposed + +01:57:30.120 --> 01:57:35.920 +some tension there and I think one of the reasons why we see that tension is because + +01:57:35.920 --> 01:57:43.040 +of the success and the kind of the more broad appeal of that org mode has brought Emacs + +01:57:43.040 --> 01:57:46.040 +and it's a healthy sign. + +01:57:46.040 --> 01:57:52.120 +It's a sign that there's people coming into the community who may not be familiar with + +01:57:52.120 --> 01:57:57.000 +the origins, the philosophical origins of the tools that they're using. + +01:57:57.000 --> 01:58:01.640 +I also think that you have a lot of the people who are interested in Emacs are probably interested + +01:58:01.640 --> 01:58:04.640 +in the Free Software Foundation. + +01:58:04.640 --> 01:58:09.080 +So it's something like the philosophy. + +01:58:09.080 --> 01:58:15.800 +I mean, maybe, but right, they could just be interested in what, which is what Stallman + +01:58:15.800 --> 01:58:17.240 +talks about too a lot. + +01:58:17.240 --> 01:58:22.080 +It's like you may just want the functionality that some software has and you may not care + +01:58:22.080 --> 01:58:26.240 +about free licensing, but you should. + +01:58:26.240 --> 01:58:32.080 +And here's why, you know, so yeah, but you start using all the, you start using all the + +01:58:32.080 --> 01:58:37.520 +packages and then the philosophy, then it kicks you into the philosophy from the reverse + +01:58:37.520 --> 01:58:39.800 +direction. + +01:58:39.800 --> 01:58:45.160 +And so I think as if you, if you start resonating with that philosophy, Emacs is the place to + +01:58:45.160 --> 01:58:46.160 +be. + +01:58:46.160 --> 01:58:55.760 +So we'll all be slanted towards wanting the GPL license or at least the BSD license because + +01:58:55.760 --> 01:59:05.920 +it's the place that it's the place in philosophy that exploits all those advantages practically. + +01:59:05.920 --> 01:59:12.600 +It's interesting because maybe, I don't know how many years ago, 10, 15 years ago, there + +01:59:12.600 --> 01:59:18.040 +was that big debate about open source and versus free software. + +01:59:18.040 --> 01:59:24.840 +And you know, it was just raging and it doesn't even seem like it's a topic anymore. + +01:59:24.840 --> 01:59:29.680 +It's like the GPL has done very well. + +01:59:29.680 --> 01:59:38.680 +Other licenses have too, but the model of software being free and open is established + +01:59:38.680 --> 01:59:45.780 +at all levels in the economy and in the technical world. + +01:59:45.780 --> 01:59:54.920 +So you know, Stallman is sort of playing the long game and what did they say, like the + +01:59:54.920 --> 02:00:03.120 +justice system bends towards right, but it's over a really long period of time or something. + +02:00:03.120 --> 02:00:04.760 +Eventually it gets to the right answer. + +02:00:04.760 --> 02:00:08.480 +I think it's sort of like that, you know, it's that we're going to have all these ups + +02:00:08.480 --> 02:00:15.760 +and downs, but eventually you'll have dictators and such, but eventually freedom will win. + +02:00:15.760 --> 02:00:22.440 +People win out over, you know, being crushed under the boot like the Russians are today. + +02:00:22.440 --> 02:00:28.120 +You know, what comes out of their society after they get crushed by the Ukrainians, + +02:00:28.120 --> 02:00:36.920 +I think will be hopefully for them, you know, because they had such great intellectual capacity, + +02:00:36.920 --> 02:00:41.260 +but they've had this broken culture for over a hundred years. + +02:00:41.260 --> 02:00:46.460 +And so if you don't, going back to Engelbart again, if you just evolve your technology + +02:00:46.460 --> 02:00:52.920 +without your process, your culture, you're left with something that may not work well + +02:00:52.920 --> 02:00:54.600 +at all for you. + +02:00:54.600 --> 02:00:57.640 +You have to take stock every now and then you need that time. + +02:00:57.640 --> 02:01:00.960 +And that's another point that I wanted to make in my talk, but I just couldn't find + +02:01:00.960 --> 02:01:10.600 +room for it is that if you know that you're going to make that time in the future, then + +02:01:10.600 --> 02:01:14.480 +you can focus on the present. + +02:01:14.480 --> 02:01:19.040 +But if you never make that time, and I don't mean, you know, it could apply to anything, + +02:01:19.040 --> 02:01:27.880 +but whether it's societal or technical, but don't stop and really think about what you + +02:01:27.880 --> 02:01:36.160 +are, you know, am I doing what I represent or are my actions representing myself and + +02:01:36.160 --> 02:01:40.440 +my needs and my goals? + +02:01:40.440 --> 02:01:47.240 +Every person, every organization of people, every society should really think about that. + +02:01:47.240 --> 02:01:54.500 +And it seems like it just, there's certain ways that society can grow where it becomes, + +02:01:54.500 --> 02:01:58.560 +you can't think about that because when you start to think about that is when you become + +02:01:58.560 --> 02:02:07.080 +vulnerable or you, I don't know, I'm not a philosopher, I'm not an international scholar. + +02:02:07.080 --> 02:02:14.800 +Does ZMAX rank up there on your hierarchy of needs, it's like number two or take that + +02:02:14.800 --> 02:02:19.960 +away from me and my survival will be jeopardized. + +02:02:19.960 --> 02:02:25.840 +And as much as my digital self is, absolutely, it's probably very close to, I mean, it really + +02:02:25.840 --> 02:02:33.320 +did, I think, save me from destruction in terms of organization personally. + +02:02:33.320 --> 02:02:38.680 +I think it was, what was it, it must have been 2008 or so, I was just so disorganized + +02:02:38.680 --> 02:02:46.000 +and I was, you know, missing bills and things like that, just because I had a pile of papers + +02:02:46.000 --> 02:02:50.760 +and I said, you know what, I need to be able to take notes, and I was taking notes, but + +02:02:50.760 --> 02:02:56.080 +I had just a bunch of flat text files and I said, I need to be able to collapse my text + +02:02:56.080 --> 02:03:03.000 +and I want to be able to take outline notes and I ended up, sorry, go ahead, I just ended + +02:03:03.000 --> 02:03:08.880 +up finding, I think it was work mode at the time, I think it was still a separate package + +02:03:08.880 --> 02:03:15.880 +and I was like, okay, finally, just this ability to collapse my notes into hierarchical structure + +02:03:15.880 --> 02:03:19.680 +so that I could have one thing, that I could think about multiple, one file, think about + +02:03:19.680 --> 02:03:24.560 +multiple things and collapse them when I didn't need to think about them anymore, and I was + +02:03:24.560 --> 02:03:30.640 +just like, okay, finally, this is the thing that's going to help me stay organized and + +02:03:30.640 --> 02:03:38.800 +from there on out, it worked, so in terms of whatever I am today, you know, I couldn't + +02:03:38.800 --> 02:03:45.920 +undo that anymore, like that's committed to my identity at this point, so yeah, yeah. + +02:03:45.920 --> 02:03:49.800 +That's a great explanation of it, you know. + +02:03:49.800 --> 02:03:56.080 +Have you looked at the ARG narrowing at all, or Emacs narrowing stuff? + +02:03:56.080 --> 02:04:03.720 +Yeah, I do that a lot, it helps me, it helped me focus on writing some of my notes for the + +02:04:03.720 --> 02:04:04.720 +talk. + +02:04:04.720 --> 02:04:12.560 +Yeah, that's very important because you can end up capturing so much, it makes it so easy + +02:04:12.560 --> 02:04:18.360 +to capture and then you one day said, okay, I captured too much, I need to, you know, + +02:04:18.360 --> 02:04:24.000 +that outline, having all those stars and whatever in your outline can be very distracting and + +02:04:24.000 --> 02:04:30.200 +I use very old stuff, so I still have, you know, just regular, a series of asterisks + +02:04:30.200 --> 02:04:39.120 +aligned to my left side, so I have a lot of visual noise in there, but yeah, yeah, I mean, + +02:04:39.120 --> 02:04:46.960 +do you have any special ways that you use it, like in terms of the narrowing or anything? + +02:04:46.960 --> 02:04:56.240 +I like using the VertiCo package because it allows you to set up different commands to + +02:04:56.240 --> 02:05:01.800 +either like be in a buffer or mini buffer or various things like that, so I can choose + +02:05:01.800 --> 02:05:07.920 +how to do that or change that over time. + +02:05:07.920 --> 02:05:14.720 +For me with Emacs, I think that is the most useful about it is I generally like trying + +02:05:14.720 --> 02:05:22.560 +out new things and Emacs is a program that got onto my computer, never left because anytime + +02:05:22.560 --> 02:05:28.220 +I want to try something new, I can just try out the packages or parts of the configs or + +02:05:28.220 --> 02:05:34.220 +variables and I get to try that stuff out, some stuff has stayed, a lot of stuff doesn't + +02:05:34.220 --> 02:05:40.800 +necessarily stay, draw up my files and... + +02:05:40.800 --> 02:05:47.240 +The first time when I'm bringing up a new system is I always like get some micro Emacs + +02:05:47.240 --> 02:05:53.960 +version just so I can edit my config files and then I get the OS stable enough and then + +02:05:53.960 --> 02:06:02.400 +I install a new Emacs and it's like I never used VI, I never learned VI, I was lucky, + +02:06:02.400 --> 02:06:10.640 +I guess, you know, they taught us first year of college we used Emacs, so all these people + +02:06:10.640 --> 02:06:16.640 +I bet they've gone through 7 to 10 editors and I'm like, well, I've gone through versions + +02:06:16.640 --> 02:06:19.800 +of Emacs and that's it. + +02:06:19.800 --> 02:06:26.080 +So it's been a little different and it is, it's crept into my subconscious, you know, + +02:06:26.080 --> 02:06:34.480 +so much so that the talk about getting Emacs, using Emacs to fill in your web form fields + +02:06:34.480 --> 02:06:42.080 +was very interesting to me because years ago I did that, when Sun was popular there was + +02:06:42.080 --> 02:06:49.600 +also Apollo which had a better networking and a better OS and so we were using some + +02:06:49.600 --> 02:06:58.560 +of their workstations and they had every shell and every window had an editing capability, + +02:06:58.560 --> 02:07:05.400 +was essentially an editor field but it was their own editor so I modified it so it was + +02:07:05.400 --> 02:07:12.040 +Emacs and you know everywhere on Apollo and it was a really beautiful environment and + +02:07:12.040 --> 02:07:20.240 +like then HP bought them and killed the OS in favor of HP UX so that went away and I + +02:07:20.240 --> 02:07:25.160 +couldn't use it anymore but we had built a really cool environment on there but that + +02:07:25.160 --> 02:07:31.360 +again, I wouldn't hand over the workstations, I was setting them up for a research team + +02:07:31.360 --> 02:07:36.120 +and I wouldn't hand them over until I had built this environment so that they all had + +02:07:36.120 --> 02:07:40.800 +the consistent editing experience and they wouldn't go off and just do something random + +02:07:40.800 --> 02:07:43.800 +with it. + +02:07:43.800 --> 02:07:48.760 +It's funny how you describe that bootstrap process because the way that I think about + +02:07:48.760 --> 02:07:54.920 +it is that a lot of times you end up, what's the path they talk about is that you need + +02:07:54.920 --> 02:08:02.240 +to learn enough bash to install Python or something like that and that's the joke is + +02:08:02.240 --> 02:08:10.280 +that that's the only amount of bash that you need to know but if you go to the Emacs path, + +02:08:10.280 --> 02:08:12.160 +you might not even need Python. + +02:08:12.160 --> 02:08:15.840 +You mentioned having it installed to edit configs and things like that and edit what + +02:08:15.840 --> 02:08:20.880 +you need to do to get another version of Emacs installed but I could see, I would love, maybe + +02:08:20.880 --> 02:08:27.840 +that'll be my inspiration for next year's talk is to find a way to, yeah, everything, + +02:08:27.840 --> 02:08:31.520 +just use Emacs as a substitute for Python and Ansible. + +02:08:31.520 --> 02:08:37.760 +I could probably use some of the packages that were out there like, what was it, Anthony + +02:08:37.760 --> 02:08:44.320 +or Tropin, Andrew Tropin, he had the RD, the reproducible Emacs, I could look at that and + +02:08:44.320 --> 02:08:45.320 +use that. + +02:08:45.320 --> 02:08:51.880 +It tells me about living through, we're always manipulating JSON now and I'm like, why does + +02:08:51.880 --> 02:08:59.680 +JavaScript have such a crappy format, it could just be S expressions and then we get rid + +02:08:59.680 --> 02:09:08.460 +of all this noise that we have to keep dealing with and it represents the same things but + +02:09:08.460 --> 02:09:13.420 +instead we settled on this crappier thing that's a little closer to the way we would + +02:09:13.420 --> 02:09:21.920 +have done it in C probably and because it is JavaScript's object format and it's like + +02:09:21.920 --> 02:09:28.120 +it's annoying to know and of course you could write a processor so it converts bi-directionally + +02:09:28.120 --> 02:09:30.140 +but nobody will do it. + +02:09:30.140 --> 02:09:37.740 +If you've ever used Lisp to replace your HTML, same sort of thing, you don't have to deal + +02:09:37.740 --> 02:09:43.840 +with your closing tags and you get all the auto editing and it's just like even without + +02:09:43.840 --> 02:09:50.680 +abstracting above any of the tags, just replacing them one for one, it's so much better but + +02:09:50.680 --> 02:09:53.380 +can you get anybody to do it? + +02:09:53.380 --> 02:10:00.040 +You look at Gix and you have the init system, that's written in Guile or scheme and then + +02:10:00.040 --> 02:10:07.680 +you got the cron program, it's mcron, that's written in Guile and you can use the normal + +02:10:07.680 --> 02:10:12.360 +cron syntax for that or a different one where you can do that and you can start labeling + +02:10:12.360 --> 02:10:15.700 +it with like say how many hours I want to do. + +02:10:15.700 --> 02:10:21.320 +I think the example they give in their documentation is like I want it to do the first Wednesday + +02:10:21.320 --> 02:10:28.160 +of every month or you could put if statements in there or a whole bunch of interesting things + +02:10:28.160 --> 02:10:35.400 +like that and it's like their package definitions are in Guile so it's like the whole operating + +02:10:35.400 --> 02:10:37.200 +system is in Guile. + +02:10:37.200 --> 02:10:39.000 +That's what we're trying to do, right? + +02:10:39.000 --> 02:10:46.120 +That was going to be the scripting language for Canoe, was going to be Guile and they + +02:10:46.120 --> 02:10:50.760 +were doing that which again, this is all like from MIT, right? + +02:10:50.760 --> 02:10:57.600 +Stallman's from the MIT AI lab, all this stuff, scheme, it's all evolved from that environment + +02:10:57.600 --> 02:11:03.600 +and they were right, this stuff is pretty good but it's like it's interesting to listen + +02:11:03.600 --> 02:11:11.600 +to him say if we were to update Emacs and allow another language to be the programming + +02:11:11.600 --> 02:11:16.360 +language, it would be scheme. + +02:11:16.360 --> 02:11:24.760 +It's not even on the radar of anybody in the industry to do that but he doesn't care. + +02:11:24.760 --> 02:11:32.880 +He's like he's the Mekana class, he sees the value, he sees what's technically good. + +02:11:32.880 --> 02:11:39.000 +Have you ever read any of his compiler code or something, I mean read his Emacs code, + +02:11:39.000 --> 02:11:48.120 +it's so clean, it's so beautiful, it's not like super abstract but it's like even the + +02:11:48.120 --> 02:11:52.580 +C code to implement the list of primitives, I mean now you don't know what he wrote versus + +02:11:52.580 --> 02:11:58.160 +somebody else and you can see in Emacs that it's gone away from the sort of stuff you + +02:11:58.160 --> 02:12:06.360 +used to write but his mind is just like so clear when doing things like that, that like + +02:12:06.360 --> 02:12:12.440 +you can learn an infinite number of things from kind of looking at the way he structures + +02:12:12.440 --> 02:12:13.440 +stuff. + +02:12:13.440 --> 02:12:17.920 +I'm going to have to, I'm making a note for myself to go seek that out specifically because + +02:12:17.920 --> 02:12:22.360 +I don't think I've ever, I've seen some of the code that he's written, I've just never + +02:12:22.360 --> 02:12:30.880 +seen it in that context of specifically going in to try to get a sense of what it is. + +02:12:30.880 --> 02:12:37.340 +I mean when you read, like read the Emacs manual, right, I mean at least through version + +02:12:37.340 --> 02:12:48.120 +19 he wrote that, right, and it's like step by step he takes you from what a point is + +02:12:48.120 --> 02:12:55.800 +to marks to windows and it's just, it's very thoughtful and you're like well he's been + +02:12:55.800 --> 02:13:00.120 +embedded in this for years and like this is second nature to him, he doesn't even think + +02:13:00.120 --> 02:13:07.640 +about it but when he talks about it, it all comes out from first principle and I think + +02:13:07.640 --> 02:13:14.120 +that's what made him a master programmer and some of the stuff that they tried to do, build + +02:13:14.120 --> 02:13:18.320 +an operating system from scratch even though they didn't have all the success they wanted + +02:13:18.320 --> 02:13:26.220 +but you look at how good they made the Unix tools compared to what they were in Berkeley + +02:13:26.220 --> 02:13:33.400 +and elsewhere and you know it's fabulous programming as well, I think very impressive. + +02:13:33.400 --> 02:13:39.960 +Cool, I know that he got, at least I saw some people praising that C manual that he recently + +02:13:39.960 --> 02:13:48.720 +published, I think it was in the last, somewhere in the last year, probably more like six months + +02:13:48.720 --> 02:13:57.120 +he released some kind of C documentation so I would wonder if he would ever consider doing + +02:13:57.120 --> 02:14:01.640 +something for Elisp or for Emacs or anything like that. + +02:14:01.640 --> 02:14:07.360 +Yeah he did talk about, that was one of the things he wanted, to update the Emacs list + +02:14:07.360 --> 02:14:16.080 +but I mean I think the intro of it if I remember, right, Chiselle's book right, I wanted to + +02:14:16.080 --> 02:14:24.880 +read it, I think the manual is pretty good but yeah, I mean there's so much to keep up + +02:14:24.880 --> 02:14:32.360 +with, I mean Ellie is so productive and I mean the rate at which they're adding stuff + +02:14:32.360 --> 02:14:39.480 +to Emacs is pretty, and that I mean if you ever look at the developer list it's a massive + +02:14:39.480 --> 02:14:44.720 +number, it's the same with the org, I don't know how people get anything done, they have + +02:14:44.720 --> 02:14:53.400 +so many, and Ehor processes like every message on there, this must be his job to some extent + +02:14:53.400 --> 02:15:01.360 +because it just, it would be so much time and like the hyperbole list, there's nothing, + +02:15:01.360 --> 02:15:06.800 +I mean it's no problem at all, it doesn't take any time but they have so many topics + +02:15:06.800 --> 02:15:11.160 +that people are talking about, it's very impressive. + +02:15:11.160 --> 02:15:18.000 +I don't understand how they get by without a better tracking system, I mean DevBugs is + +02:15:18.000 --> 02:15:28.000 +certainly good but it's not as, trying to find the right words here, I don't think I'm + +02:15:28.000 --> 02:15:35.600 +not trying to insult it but it's like a backlog, like a more kind of elaborate tracking system + +02:15:35.600 --> 02:15:40.520 +that kind of like separates, all right let's put this in our backlog, let's prioritize + +02:15:40.520 --> 02:15:48.520 +it, let's analyze it, but no, it just comes in and gets immediately handled and gets resolved, + +02:15:48.520 --> 02:15:54.880 +whether it's a no or a yes, things tend to be addressed and finished very quickly. + +02:15:54.880 --> 02:15:58.920 +So you're saying it's topics that concern me, I should bring up with them and they'll + +02:15:58.920 --> 02:16:04.120 +actually get dealt with pretty quickly? + +02:16:04.120 --> 02:16:11.680 +Whether to your satisfaction or not, I think so, my sense is in general that things don't + +02:16:11.680 --> 02:16:18.520 +come in and then get planned, they come in and they get done or they don't get done ever. + +02:16:18.520 --> 02:16:25.440 +My issues with the org, I think they've done a lot of great stuff from a user perspective, + +02:16:25.440 --> 02:16:32.960 +my issues have been with the way it was written, was very sloppy code for a long time, now + +02:16:32.960 --> 02:16:39.020 +they've spent a lot of time rewriting stuff so I think it's a lot better but I was looking + +02:16:39.020 --> 02:16:45.080 +at something the other day and it was clear that this should be at least a separate function + +02:16:45.080 --> 02:16:49.960 +or abstracted out and it was all hard coded in the function, so I think they sort of do + +02:16:49.960 --> 02:16:57.680 +that on a piecemeal basis because they've got a lot of legacy code from the way it started + +02:16:57.680 --> 02:17:03.280 +and they knew that it wasn't written the way they wanted, like having to write a totally + +02:17:03.280 --> 02:17:08.600 +new parser is a good example and yeah, we all go through that refactoring and stuff + +02:17:08.600 --> 02:17:16.160 +but I think it's because it was a quick and dirty solution for Karsten to solve, the same + +02:17:16.160 --> 02:17:24.960 +way the web was, right, I mean they just wanted a publishing platform for physicists, so now + +02:17:24.960 --> 02:17:36.300 +the guy who wrote that is a true genius, what's his name, the web inventor, so he took a broader + +02:17:36.300 --> 02:17:41.480 +approach to it but basically they had to get something up fast and running and that just + +02:17:41.480 --> 02:17:49.120 +sort of proved the concept and then you had to have the whole engineering team at Mosaic + +02:17:49.120 --> 02:17:56.800 +come in and actually do a lot more with it but they lost, the original web had full editing + +02:17:56.800 --> 02:18:03.740 +capabilities like in wikis and they lost that almost immediately when they went to the graphical + +02:18:03.740 --> 02:18:11.060 +web and so we've been hurting, you know, like every time I used to go when I was, early + +02:18:11.060 --> 02:18:18.000 +days of the web, I'd look and I'd look at this form and I'd say okay, so this is like + +02:18:18.000 --> 02:18:22.800 +you enter this data and then it runs this program and it does this thing, so how do + +02:18:22.800 --> 02:18:31.920 +I see what the program does, how does it process the form, it was never connected, the code + +02:18:31.920 --> 02:18:39.520 +was never connected to the form of like why would you want this set of inputs that is + +02:18:39.520 --> 02:18:46.920 +totally disconnected from the way it's processed, right, it was hidden in the back end, right, + +02:18:46.920 --> 02:18:52.680 +which you had no access to, it's like I guess good for proprietary vendors but it's like + +02:18:52.680 --> 02:18:58.400 +so for engineers to understand the system, it was very, very difficult, what if I have + +02:18:58.400 --> 02:19:05.480 +a hundred forms, so I see, yeah, that there's like one function that's referred to in the + +02:19:05.480 --> 02:19:11.440 +form but I don't know anything about that, I can't even see it's calling invocation + +02:19:11.440 --> 02:19:18.960 +a lot of times, right, so it's like that's just broken architecture and nobody cared, + +02:19:18.960 --> 02:19:24.240 +they just like let it go on and now you have all these, what, I mean was there an alternative + +02:19:24.240 --> 02:19:31.720 +to that, did it start somewhere else and then, well you encapsulate it as like the processing + +02:19:31.720 --> 02:19:39.800 +is part of the form abstraction, that it's an active entity and they can be separated + +02:19:39.800 --> 02:19:45.480 +if they live, right, like you have the front end and the back end piece of the form behavior + +02:19:45.480 --> 02:19:51.320 +but maybe you want that abstraction to be able to migrate front end to back end across + +02:19:51.320 --> 02:19:59.120 +time and so you need to have these two parts and we see this in building things now, right, + +02:19:59.120 --> 02:20:04.680 +what are we using, we're using TypeScript on the front end and we're using C sharp on + +02:20:04.680 --> 02:20:12.080 +the back end, so I imagine there's some impedance mismatches going on around there but we actually + +02:20:12.080 --> 02:20:17.580 +introduced a Python validation framework, I don't want to get into this too much but + +02:20:17.580 --> 02:20:23.960 +we are using those technologies and we can share those now across the front end and back + +02:20:23.960 --> 02:20:34.520 +end and so, you know, a lot of languages that you need to understand and I just think, so + +02:20:34.520 --> 02:20:40.140 +like closures, right, you're familiar with closures, right, so I mean that's what you're + +02:20:40.140 --> 02:20:49.080 +doing is you're passing around the environment so that you can interpret the data properly + +02:20:49.080 --> 02:20:57.400 +because you have the closure which wraps around it and so many things get, when you want to + +02:20:57.400 --> 02:21:05.380 +deal with unwinding state, you know, through many levels, having the closures allows you + +02:21:05.380 --> 02:21:12.200 +to do that easily, sort of the lexical binding versus the dynamic binding and so, you know, + +02:21:12.200 --> 02:21:20.920 +the callback hell that they talk about in Node.js is reflective of not having a good + +02:21:20.920 --> 02:21:29.880 +closure-based environment, when you look at most of the list-based web environments are + +02:21:29.880 --> 02:21:36.920 +closure-based and they can do much more interesting application building without dealing with + +02:21:36.920 --> 02:21:41.000 +a lot of the plumbing than if they didn't have that. + +02:21:41.000 --> 02:21:49.480 +Interesting and when you refer to closures, are you saying that there's a certain paradigm + +02:21:49.480 --> 02:21:56.760 +of form processing on the web that's more like a closure-based solution? + +02:21:56.760 --> 02:22:04.480 +That's right, yeah, look at the common Lisp, like Hutchin2 and frameworks built on top + +02:22:04.480 --> 02:22:07.400 +of that and you'll see. + +02:22:07.400 --> 02:22:12.480 +I definitely will do that but I meant more like when you're talking about the early days + +02:22:12.480 --> 02:22:20.600 +and how they separated the form from the actions, are you saying that that's a situation where + +02:22:20.600 --> 02:22:26.960 +like something that would be like a closure is more or are you just strictly talking about + +02:22:26.960 --> 02:22:27.960 +that? + +02:22:27.960 --> 02:22:32.640 +That would help solve that problem, I would say, because it gives you, you know, sort + +02:22:32.640 --> 02:22:38.040 +of you're seeing some of it in React now, they're like, oh, we've discovered components + +02:22:38.040 --> 02:22:46.040 +and so, you know, we only have to do partial updates now because we can like walk our tree + +02:22:46.040 --> 02:22:54.080 +and know that only this subcomponent, you know, and it's like, yeah, by building all + +02:22:54.080 --> 02:23:02.400 +these abstractions, you simplify your state management a lot and you simplify that and + +02:23:02.400 --> 02:23:06.720 +you localize where any of your issues can be. + +02:23:06.720 --> 02:23:15.140 +And so, if I have my processing engine totally disconnected from my input state, you know, + +02:23:15.140 --> 02:23:19.600 +it's going to cause a lot of problems and you saw it in the early days of the web where + +02:23:19.600 --> 02:23:26.200 +everything was, what was it, CGI, is that what it was, right? + +02:23:26.200 --> 02:23:32.240 +You just sort of, you had a totally separate back end and there was just this very thin + +02:23:32.240 --> 02:23:39.480 +kind of connection to the front end and everybody's rediscovered, they rediscovered sockets, okay, + +02:23:39.480 --> 02:23:45.160 +we need sockets and then everybody's fighting, well, I have to replicate the data on the + +02:23:45.160 --> 02:23:53.120 +front end and the back end, you know, just handling tables is such a bear on the web + +02:23:53.120 --> 02:23:54.920 +for similar reasons, right? + +02:23:54.920 --> 02:24:02.360 +So you had, what was that company Apollo or that was one of their frameworks who was trying + +02:24:02.360 --> 02:24:11.360 +to do real time front end, back end framework so that you can do all these pushes to a million + +02:24:11.360 --> 02:24:18.160 +clients, right, of any change and you could get like real time updates. + +02:24:18.160 --> 02:24:23.320 +You know, that seems fundamental to me if you're going to have a Facebook like kind + +02:24:23.320 --> 02:24:29.820 +of environment and you look at how much money Facebook had to spend to just build their + +02:24:29.820 --> 02:24:33.560 +basic application that scales at the level that they needed it. + +02:24:33.560 --> 02:24:35.540 +I mean, it's just nymph. + +02:24:35.540 --> 02:24:38.760 +You're talking about hot reloading, right, of data? + +02:24:38.760 --> 02:24:46.560 +Yeah, yeah, but I'm talking about like how it flows and where it's maintained and, you + +02:24:46.560 --> 02:24:50.040 +know, is there a single source of truth, right? + +02:24:50.040 --> 02:24:51.360 +That's what we really want. + +02:24:51.360 --> 02:24:57.000 +So people try to push stuff to the back end, but then you get all of this problem of the + +02:24:57.000 --> 02:24:58.960 +front ends out of date. + +02:24:58.960 --> 02:25:00.640 +So what's your method? + +02:25:00.640 --> 02:25:07.440 +You keep web sockets open, you know, it's like, well, then I have too many of those. + +02:25:07.440 --> 02:25:17.360 +So yeah, and what's your programming model for pushing all that data around anyway, right? + +02:25:17.360 --> 02:25:25.000 +Pushing, pulling, it's complex stuff, but if you solve it, there's a guy who wrote a + +02:25:25.000 --> 02:25:32.120 +web server, like tiny, tiny WB or something. + +02:25:32.120 --> 02:25:38.720 +I could look it up, but it's like, and he shows benchmarks of what he can process from + +02:25:38.720 --> 02:25:41.100 +this one like C-based program. + +02:25:41.100 --> 02:25:48.860 +And it's like five times the speed of other things just based on the algorithms that he + +02:25:48.860 --> 02:25:55.840 +implemented and so, you know, so you get your scale right like that and then you keep adding + +02:25:55.840 --> 02:26:00.600 +on some abstraction layers because now you can afford it. + +02:26:00.600 --> 02:26:06.200 +And then you simplify your programming model and like, we could be building the kinds of + +02:26:06.200 --> 02:26:12.240 +web applications that we want, you know, with menus even without, have you ever figured + +02:26:12.240 --> 02:26:16.640 +out how to do a good menu on a web app, you know? + +02:26:16.640 --> 02:26:22.920 +It's so much energy, right, when like in Emacs it would be just, here's my menu item and + +02:26:22.920 --> 02:26:23.920 +I'm done. + +02:26:23.920 --> 02:26:32.220 +So I think the baseline of what your programming model is matters so much from the syntax down + +02:26:32.220 --> 02:26:40.320 +to like the lexical scoping and, you know, and we're just lucky that Lisp got a lot of + +02:26:40.320 --> 02:26:45.780 +things right, that we have that as sort of like the thinking man's programming environment + +02:26:45.780 --> 02:26:52.460 +while all these other people were stuffed into Java, you know, in the 80s and they built + +02:26:52.460 --> 02:27:01.560 +Java beans and if you've ever looked at J2EE, I mean, that was such a monstrosity that it + +02:27:01.560 --> 02:27:04.880 +just collapsed literally of its own weight sort of. + +02:27:04.880 --> 02:27:11.440 +I mean, people are still using Java but it's like nobody wants to field a new web app, + +02:27:11.440 --> 02:27:16.760 +you know, in J2EE, it's just not done. + +02:27:16.760 --> 02:27:23.340 +So unless you have, you know, a ton of legacy investment that you have to keep up. + +02:27:23.340 --> 02:27:30.480 +So I think these design choices matter a lot and I think Apple's renaissance has been based + +02:27:30.480 --> 02:27:36.860 +on, you know, really saying, well, we'll iterate through our designs before we subject the + +02:27:36.860 --> 02:27:38.360 +users to them. + +02:27:38.360 --> 02:27:45.840 +We're not going to just make everybody one big beta test like Facebook or Microsoft and, + +02:27:45.840 --> 02:27:52.280 +you know, you see that like people have, you know, certainly in the consumer space have, + +02:27:52.280 --> 02:27:58.760 +you know, the shops are always full, I mean, wherever Apple store you go to and, you know, + +02:27:58.760 --> 02:28:04.480 +Microsoft is trying, Sony tries to have stores and stuff but you don't, they're not filled + +02:28:04.480 --> 02:28:10.480 +with this traffic, you know, because people aren't attached to the design aesthetic the + +02:28:10.480 --> 02:28:11.480 +same way. + +02:28:11.480 --> 02:28:12.480 +True, yeah. + +02:28:12.480 --> 02:28:17.120 +Yeah, they got something, they certainly have something that people want. + +02:28:17.120 --> 02:28:24.760 +Every program grows until it's a half a common list implementation or it's got a mail server + +02:28:24.760 --> 02:28:31.120 +in it, like you got those two sayings, oh, have you seen this at all? + +02:28:31.120 --> 02:28:36.240 +It's kind of lets you make desktop like apps with Common Lisp. + +02:28:36.240 --> 02:28:44.160 +I like the name though, Omnificent GUI Builder, you're giving us a lot of great links today, + +02:28:44.160 --> 02:28:45.160 +it's making me happy. + +02:28:45.160 --> 02:28:53.880 +It's for a YouTube video but they also have a GitHub page somewhere. + +02:28:53.880 --> 02:29:02.560 +I wish I did more Common Lisp but this is, and this is pretty new too, this is about + +02:29:02.560 --> 02:29:04.440 +a half a year old only. + +02:29:04.440 --> 02:29:09.320 +Well, does it look decent? + +02:29:09.320 --> 02:29:10.880 +Is it real or is it like? + +02:29:10.880 --> 02:29:18.160 +Well, it seems kind of like React.js where you're not writing, where you're, it's not + +02:29:18.160 --> 02:29:26.320 +the pure HTML post Git model where it's more like an application and like if you look at + +02:29:26.320 --> 02:29:30.240 +the screen, like you have the applications, you can move them around like it is in this + +02:29:30.240 --> 02:29:31.240 +up. + +02:29:31.240 --> 02:29:40.440 +It certainly looks functional, that would be my way to say it. + +02:29:40.440 --> 02:29:45.920 +And then you just write it in all one language. + +02:29:45.920 --> 02:29:50.040 +Just like Smalltalk, like what their environment used to look like. + +02:29:50.040 --> 02:29:57.640 +Oh yeah, and that, the glorious toolkits is the thing I was... + +02:29:57.640 --> 02:30:03.840 +Well there was a time when we had single UI builder environments and then you would just + +02:30:03.840 --> 02:30:11.160 +say what theme you wanted, Windows, Mac OS, and instantly it would look like the other + +02:30:11.160 --> 02:30:14.600 +environment and you had to do no work to get that. + +02:30:14.600 --> 02:30:22.560 +It's like, wow, that would be nice these days. + +02:30:22.560 --> 02:30:27.720 +Another thing with that philosophy of the copying the programs, you had Keanu Reeves + +02:30:27.720 --> 02:30:34.200 +talking about NFTs and it's like, what do you think about these NFTs with the matrix? + +02:30:34.200 --> 02:30:40.000 +You mean we're gonna have a computer, let's see, you mean we're gonna spend all this, + +02:30:40.000 --> 02:30:47.080 +you mean we're gonna have, you want me to be on board with charging people for these + +02:30:47.080 --> 02:30:55.320 +digital things on a computer that's designed to make copies? + +02:30:55.320 --> 02:31:01.520 +The whole person just like completely stopped because they're trying to, yeah, showed you + +02:31:01.520 --> 02:31:04.720 +how the idea was fundamentally wrong. + +02:31:04.720 --> 02:31:09.360 +Yeah, get your baseline, right? + +02:31:09.360 --> 02:31:18.880 +I mean, I've had to, I'm very pro-Ukraine and so I've learned a lot more about Russian + +02:31:18.880 --> 02:31:19.880 +history. + +02:31:19.880 --> 02:31:27.520 +I also have a number of Russian workmates who are very nice people, but they left Russia + +02:31:27.520 --> 02:31:38.560 +as well and a lot of what's going on seems to be from decisions that were made eons ago + +02:31:38.560 --> 02:31:44.280 +in the back to the Mongols and the way they ran their systems. + +02:31:44.280 --> 02:31:49.760 +So it's like when everybody says we've got to run so fast and we don't have time to really + +02:31:49.760 --> 02:31:57.520 +think through the design, they can't see the impact that that's gonna have on their enterprise + +02:31:57.520 --> 02:31:58.520 +or anything else. + +02:31:58.520 --> 02:32:05.520 +And if you're a long-term person, you obviously have to do things fast enough so the company + +02:32:05.520 --> 02:32:11.560 +can survive, but you have to think about that strategic level as well. + +02:32:11.560 --> 02:32:14.960 +Those who don't know history are doomed to repeat it. + +02:32:14.960 --> 02:32:17.520 +Yeah, exactly. + +02:32:17.520 --> 02:32:19.120 +Sometimes very badly. + +02:32:19.120 --> 02:32:27.080 +So how do we get Lisp to be something again? + +02:32:27.080 --> 02:32:28.760 +People are worried about Emacs dying out. + +02:32:28.760 --> 02:32:35.680 +I don't think that's happening so much, but certainly Lisp missed its position in web + +02:32:35.680 --> 02:32:42.680 +development, it seems, even though it can be quite capable there, but because of its + +02:32:42.680 --> 02:32:53.640 +image model and lack of focus on threading, it seems like you can't get anybody to even + +02:32:53.640 --> 02:32:58.400 +look at it now, right? + +02:32:58.400 --> 02:33:04.360 +I mean, unless you're talking about Clojure, like you talked about. + +02:33:04.360 --> 02:33:09.280 +You're talking about how Scheme would have been a lot better for JavaScript when JavaScript + +02:33:09.280 --> 02:33:15.560 +was first released, or like Emacs, because Emacs is good for a platform for distributing + +02:33:15.560 --> 02:33:25.280 +apps versus HTML as a document reader that they shoved applications into. + +02:33:25.280 --> 02:33:28.800 +I like the way you describe things. + +02:33:28.800 --> 02:33:34.080 +Yeah, I can't argue with that. + +02:33:34.080 --> 02:33:37.520 +But it is interesting to me. + +02:33:37.520 --> 02:33:45.120 +A lot of people don't know certain systems that are Lisp based that have been super successful, + +02:33:45.120 --> 02:33:55.240 +like Orbitz was based on the technology of a Cambridge company that implemented the bulk + +02:33:55.240 --> 02:34:05.000 +of their flight scheduling software in Lisp, and they had a very active kind of Lisp community. + +02:34:05.000 --> 02:34:07.280 +So you know, it's still- + +02:34:07.280 --> 02:34:10.040 +Hacker News is another one. + +02:34:10.040 --> 02:34:14.080 +Hacker News, yeah, that's built in Lisp? + +02:34:14.080 --> 02:34:21.040 +Yeah, the person who founded it was using Lisp and Paul Graham. + +02:34:21.040 --> 02:34:23.880 +Sam Altman? + +02:34:23.880 --> 02:34:25.440 +Paul Graham? + +02:34:25.440 --> 02:34:27.440 +Paul Graham. + +02:34:27.440 --> 02:34:28.440 +He founded it. + +02:34:28.440 --> 02:34:29.440 +Oh, I didn't know he was- + +02:34:29.440 --> 02:34:31.440 +Or at least he was involved in it anyway. + +02:34:31.440 --> 02:34:32.440 +Yeah, yeah, yeah. + +02:34:32.440 --> 02:34:33.440 +It was either that or Reddit. + +02:34:33.440 --> 02:34:34.440 +It was one or the other. + +02:34:34.440 --> 02:34:44.400 +He had an interesting Yahoo shopping experience where he wrote about that, how he leveraged + +02:34:44.400 --> 02:34:46.840 +Lisp to his advantage. + +02:34:46.840 --> 02:34:51.840 +So yeah, I think Python was that way until it got discovered. + +02:34:51.840 --> 02:35:02.640 +I worked with those guys back in Silicon Valley for a little while, and when we were trying + +02:35:02.640 --> 02:35:09.680 +to show the world that Python was something good, but it hadn't been noticed yet. + +02:35:09.680 --> 02:35:17.000 +So there's a lot of leverage that you can get if you're careful about it. + +02:35:17.000 --> 02:35:23.920 +One thing that I thought was interesting is you look at the- Google did some survey of + +02:35:23.920 --> 02:35:32.160 +the most efficient programming languages to run, and I think C was number one, and you + +02:35:32.160 --> 02:35:39.280 +look at the list, and the only one that even looks remotely high level is Common Lisp, + +02:35:39.280 --> 02:35:51.200 +where it's sent per the TDP or whatever that would be called, sent per execution or whatever. + +02:35:51.200 --> 02:35:53.760 +Everything else is more like C. + +02:35:53.760 --> 02:35:59.200 +Have you heard of Pico Lisp? + +02:35:59.200 --> 02:36:01.160 +A little bit. + +02:36:01.160 --> 02:36:09.840 +On RosettaCode, where they write the different implementations of algorithms in different + +02:36:09.840 --> 02:36:16.720 +languages, look at any sort of algorithm and the Pico Lisp implementation next to all the + +02:36:16.720 --> 02:36:25.600 +others, and it's always super tiny, and you've got just a ton more code and everything else. + +02:36:25.600 --> 02:36:32.920 +And then Pico Lisp is like Lisp with a database, maybe a triplet database built in, and it's + +02:36:32.920 --> 02:36:35.880 +pretty small and efficient. + +02:36:35.880 --> 02:36:39.160 +But I don't think anybody uses it. + +02:36:39.160 --> 02:36:46.200 +But it's an interesting example of a special case Lisp that you could embed in other things + +02:36:46.200 --> 02:36:48.200 +or use. + +02:36:48.200 --> 02:36:53.720 +One guy in Germany has been doing it for many years. + +02:36:53.720 --> 02:36:57.480 +Is that like an internet rule or a computing rule that we could come up with? + +02:36:57.480 --> 02:37:01.720 +No matter what you could think of, no matter what you find, there's one guy in Germany + +02:37:01.720 --> 02:37:07.440 +who's already done it. + +02:37:07.440 --> 02:37:09.760 +Well, I knew some Dutch people. + +02:37:09.760 --> 02:37:12.080 +I was in embedded systems at Motorola. + +02:37:12.080 --> 02:37:16.560 +We were working with very small microcontrollers with no memory. + +02:37:16.560 --> 02:37:21.960 +So we needed these super efficient cross compilers to build anything for us. + +02:37:21.960 --> 02:37:27.520 +And this company in Amsterdam seemed to have some skills. + +02:37:27.520 --> 02:37:31.600 +And so we started talking to them, and then we flew over there to do due diligence and + +02:37:31.600 --> 02:37:32.600 +check them out. + +02:37:32.600 --> 02:37:38.040 +And God, if they did not have one of the most advanced software development operations I'd + +02:37:38.040 --> 02:37:42.620 +ever seen, total quality assurance, great people. + +02:37:42.620 --> 02:37:46.860 +But everything was like to the T. This is how we do it, boom, boom, boom. + +02:37:46.860 --> 02:37:54.600 +So that's the only way you could get the efficiency out of compilers at the time. + +02:37:54.600 --> 02:37:56.920 +And so we worked with them. + +02:37:56.920 --> 02:38:06.680 +But they had that German kind of culture of the fit and finish has to be just so. + +02:38:06.680 --> 02:38:14.800 +So we used to have to do things like there was 256 bytes of memory. + +02:38:14.800 --> 02:38:18.360 +There's no K in there, of RAM. + +02:38:18.360 --> 02:38:28.400 +And so you would like to use overlays where you're repeating what you store in each word + +02:38:28.400 --> 02:38:33.840 +at different times in the program, and you had to manually keep track of the lifetime + +02:38:33.840 --> 02:38:34.840 +of objects. + +02:38:34.840 --> 02:38:36.720 +And it was a nightmare. + +02:38:36.720 --> 02:38:41.280 +But it was the only way to kind of squeeze some of the stuff in there. + +02:38:41.280 --> 02:38:47.560 +And we started in assembler, and then we went to C. And then we had this one time that was + +02:38:47.560 --> 02:38:55.040 +really fun that we had, God, I'm really dating myself now, but some of the people in product + +02:38:55.040 --> 02:39:02.980 +had these terminals, like 12 inch terminals with eight inch floppy disks on the terminal. + +02:39:02.980 --> 02:39:11.800 +And they were using those to interface to the microcontroller boards for emulator boards, + +02:39:11.800 --> 02:39:17.080 +where we would test out new software for a board that hadn't been released to production + +02:39:17.080 --> 02:39:18.080 +yet. + +02:39:18.080 --> 02:39:20.600 +And we would be able to iterate on that. + +02:39:20.600 --> 02:39:26.960 +And right next to these things were sun workstations that the engineers used for their normal development. + +02:39:26.960 --> 02:39:30.400 +So I was moved from research to product. + +02:39:30.400 --> 02:39:34.960 +And they said, so this is how you're going to have to do your code on this monochrome + +02:39:34.960 --> 02:39:35.960 +terminal. + +02:39:35.960 --> 02:39:40.200 +And I'm like, well, what about using the sun workstation? + +02:39:40.200 --> 02:39:43.880 +And it's just a serial port, so we'll just interface it. + +02:39:43.880 --> 02:39:45.760 +No, we tried that two years ago. + +02:39:45.760 --> 02:39:46.760 +It didn't work. + +02:39:46.760 --> 02:39:48.760 +We can't do it. + +02:39:48.760 --> 02:39:55.080 +I'm like, I am not going to sit here and use this dumpy thing for a week. + +02:39:55.080 --> 02:40:01.200 +So that afternoon, I figured out the protocol and got the thing, the sun workstation, talking + +02:40:01.200 --> 02:40:02.200 +to it. + +02:40:02.200 --> 02:40:09.760 +And then I wrote a disassembler tool so I could work the assembly, the math, behind + +02:40:09.760 --> 02:40:11.320 +it at a higher level. + +02:40:11.320 --> 02:40:13.920 +And I had all that going the first week. + +02:40:13.920 --> 02:40:18.440 +But people came over, and they're like, what are you doing? + +02:40:18.440 --> 02:40:21.600 +How is this possible? + +02:40:21.600 --> 02:40:26.600 +They just had started from the vantage point that they really had to live here, and they + +02:40:26.600 --> 02:40:29.600 +hadn't done enough of an assessment. + +02:40:29.600 --> 02:40:36.760 +So I would just look back at that when people say, this is the only way to do something. + +02:40:36.760 --> 02:40:42.660 +That's one of the great things about computers is it can speak too many languages. + +02:40:42.660 --> 02:40:48.280 +So if you want to just speak Lisp, you can just speak Lisp, relatively, anyway. + +02:40:48.280 --> 02:40:56.520 +Or if everybody else wants to speak that worst language that you don't like as much, you + +02:40:56.520 --> 02:41:03.800 +don't necessarily have to speak that, I guess, except for the www, but anyway. + +02:41:03.800 --> 02:41:11.720 +Omnificent web development language, and tell everybody that this is the be all and all. + +02:41:11.720 --> 02:41:15.320 +I think what I like the most about that is that I don't believe that omnificent is actually + +02:41:15.320 --> 02:41:23.680 +a word, so that can be accused of being incorrect, because there is no definition of omnificent + +02:41:23.680 --> 02:41:26.040 +that they can be shown not to conform to. + +02:41:26.040 --> 02:41:29.720 +I could be talking about that, but that's... + +02:41:29.720 --> 02:41:30.800 +There's a Latin word. + +02:41:30.800 --> 02:41:36.720 +That's why you know what it means, is because omni is everything, efficient is something + +02:41:36.720 --> 02:41:44.440 +about knowing, or everywhere, like the all-knowing GUI builder. + +02:41:44.440 --> 02:41:46.440 +Isn't that kind of how you read the omni-efficient? + +02:41:46.440 --> 02:41:49.080 +I think that's actually omniscient. + +02:41:49.080 --> 02:41:50.080 +I think... + +02:41:50.080 --> 02:41:51.080 +Omniscient, yeah. + +02:41:51.080 --> 02:41:52.080 +Oh, omniscient. + +02:41:52.080 --> 02:41:53.080 +Yeah, that's right. + +02:41:53.080 --> 02:41:54.080 +You're close. + +02:41:54.080 --> 02:41:55.080 +I think, yeah. + +02:41:55.080 --> 02:42:00.520 +C-L-O-G, so it's the clog builder. + +02:42:00.520 --> 02:42:02.960 +That sounds like a Lisp-y kind of thing, you know? + +02:42:02.960 --> 02:42:09.680 +It doesn't have any sexiness to it, but we've invented the clog builder. + +02:42:09.680 --> 02:42:10.680 +You know, that's funny. + +02:42:10.680 --> 02:42:12.480 +That was another thing I wanted to mention when I was writing this. + +02:42:12.480 --> 02:42:15.120 +It's just to clog how everybody else does things. + +02:42:15.120 --> 02:42:16.120 +Just clog it up. + +02:42:16.120 --> 02:42:19.120 +No, you don't have to do it that way. + +02:42:19.120 --> 02:42:24.800 +Is that something that is real? + +02:42:24.800 --> 02:42:32.140 +I feel like a lot of Emacs users are maybe just that type of person in general. + +02:42:32.140 --> 02:42:38.400 +We want things that look, not look, but sound, like clog. + +02:42:38.400 --> 02:42:47.360 +We prefer things that are awkward and are stupid acronyms, and if it seems like effort + +02:42:47.360 --> 02:42:53.720 +has been put into something to make it sound sick or market or anything, it's like, I don't + +02:42:53.720 --> 02:42:54.720 +know. + +02:42:54.720 --> 02:42:55.720 +I'm not sure. + +02:42:55.720 --> 02:43:00.480 +I think that goes back to what I was talking about with the scrolling down. + +02:43:00.480 --> 02:43:03.600 +I want it to not have animations. + +02:43:03.600 --> 02:43:10.600 +It's just spending CPU cycles to make my experience worse. + +02:43:10.600 --> 02:43:15.520 +Why would I want to scroll down half a line so I can read half of a text? + +02:43:15.520 --> 02:43:21.120 +Well, if you scroll half of a finger, that's what it would be, if you just do this. + +02:43:21.120 --> 02:43:22.400 +Oh, is this the guy? + +02:43:22.400 --> 02:43:26.960 +I think this is the guy, the one, the G toolkit, yeah, the glamorous toolkit. + +02:43:26.960 --> 02:43:28.920 +I read about this a while ago. + +02:43:28.920 --> 02:43:31.560 +This was one Google guy. + +02:43:31.560 --> 02:43:40.700 +We had a team, and then I think he left Google, and he's trying to do it, implemented in Faro, + +02:43:40.700 --> 02:43:43.000 +the pure object-oriented language. + +02:43:43.000 --> 02:43:45.760 +Yeah, this sounds like one of those things. + +02:43:45.760 --> 02:43:47.760 +Yeah, that's what it is. + +02:43:47.760 --> 02:43:52.200 +You know, there's, yeah, it's like, just get the base right, right? + +02:43:52.200 --> 02:43:53.240 +That's what Lisp did. + +02:43:53.240 --> 02:44:00.480 +Just give me Kar and Kutter and Lambda Calculus and go for it. + +02:44:00.480 --> 02:44:01.480 +What? + +02:44:01.480 --> 02:44:03.040 +And I will move the world. + +02:44:03.040 --> 02:44:04.040 +Yeah. + +02:44:04.040 --> 02:44:09.080 +Well, when you think, you know, I mean, look at the opportunity that was lost with Lisp + +02:44:09.080 --> 02:44:10.080 +machines. + +02:44:10.080 --> 02:44:11.920 +I was around for those too. + +02:44:11.920 --> 02:44:14.520 +I'm near dead, I guess. + +02:44:14.520 --> 02:44:24.520 +But I was young, at least then, and they microcoded Lisp, right? + +02:44:24.520 --> 02:44:29.480 +So everything atop that was Lisp. + +02:44:29.480 --> 02:44:33.800 +The Windows system was Lisp, you know, sort of like what Jobs was trying to do. + +02:44:33.800 --> 02:44:39.240 +He was trying to do, I don't know, well, when he did display PostScript, or he was trying + +02:44:39.240 --> 02:44:42.920 +to get common experience at different levels. + +02:44:42.920 --> 02:44:48.320 +But like, if you really have a consistent programming model across your whole damn system, + +02:44:48.320 --> 02:44:58.120 +you know, it's probably thousands of man years of work that you just eliminate right there + +02:44:58.120 --> 02:45:02.920 +if you have a decent language, right, and then a debugging environment. + +02:45:02.920 --> 02:45:09.520 +I mean, we still use stuff that there is no debugging environment for, right? + +02:45:09.520 --> 02:45:15.240 +Because it solves some problem that exists in the industry, and we haven't gotten rid + +02:45:15.240 --> 02:45:17.440 +of it yet. + +02:45:17.440 --> 02:45:22.320 +I want to set up some Raspberry Pi lights. + +02:45:22.320 --> 02:45:27.380 +If you have like that with an embedded controller, if you run that with Lisp, you're probably + +02:45:27.380 --> 02:45:33.720 +going to get a REPL for free that is going to allow you to remotely control your lights. + +02:45:33.720 --> 02:45:42.280 +You know, they have MicroPython for that, if you're into Python at all. + +02:45:42.280 --> 02:45:48.500 +That was a physicist, I don't know if he was German, but a physicist who implemented that + +02:45:48.500 --> 02:45:52.840 +to do controller hardware, and it's pretty good. + +02:45:52.840 --> 02:45:59.320 +He's moved a lot of, I think they actually got money behind it, and then started moving + +02:45:59.320 --> 02:46:01.680 +all the libraries into that too. + +02:46:01.680 --> 02:46:02.680 +So that runs pretty well. + +02:46:02.680 --> 02:46:08.340 +And you got stuff like CPython too, but I think part of the thing that makes Python + +02:46:08.340 --> 02:46:14.120 +appealing to people is you got all these libraries that people can use to build their apps with, + +02:46:14.120 --> 02:46:18.360 +and if you're running MicroPython or CPython, do you have access to those? + +02:46:18.360 --> 02:46:19.360 +Right. + +02:46:19.360 --> 02:46:24.120 +Well, that's what I'm saying, they like have been moving on that to get a lot more of the + +02:46:24.120 --> 02:46:31.200 +libraries available, because at first, that's right, that was part of what they were lacking. + +02:46:31.200 --> 02:46:36.720 +But just, you know, being able to put your language at the hardware level without a separate + +02:46:36.720 --> 02:46:41.760 +operating system is kind of an interesting concept too. + +02:46:41.760 --> 02:46:47.280 +And at that time with the Lisp machines, they were making the CPUs in line with, you had + +02:46:47.280 --> 02:46:53.800 +somebody making CPUs specifically for the Lisp machines, and ever since then, we've + +02:46:53.800 --> 02:46:59.960 +always been making CPUs to specifically target C, and I wonder how much that kind of like + +02:46:59.960 --> 02:47:07.800 +the philosophy and artifacts that you design, I wonder if like CPUs would look different + +02:47:07.800 --> 02:47:13.880 +and stuff like that, because we'd be optimizing them for Lambda calculus or something, and + +02:47:13.880 --> 02:47:17.760 +Reples, and if that would result in anything different. + +02:47:17.760 --> 02:47:25.120 +Well, I always ask my friend in London who knows everything, or he knows something about + +02:47:25.120 --> 02:47:38.720 +everything, why I remember the fastest computer I ever used was a DEC Alpha in the 80s, and + +02:47:38.720 --> 02:47:45.720 +it was, or maybe the beginning of the 90s, so it was a 64-bit machine at the time, and + +02:47:45.720 --> 02:47:52.760 +it used SCSI disks, and I would, you know, compilation took a while of programs, but + +02:47:52.760 --> 02:47:57.640 +I would go to compile, and I would just see these messages fly by me, and it would be + +02:47:57.640 --> 02:48:04.400 +like Go is today, right, be done in an instant, and like, how is that possible, I go over + +02:48:04.400 --> 02:48:11.520 +to this other machine, and they were emulating, I thought it had 128-bit data paths, but we + +02:48:11.520 --> 02:48:17.080 +looked it up, it was 64-bit, but they did have 128-bit words. + +02:48:17.080 --> 02:48:22.480 +You're talking about like boot up speed, and like how fast when you press a letter G on + +02:48:22.480 --> 02:48:26.680 +a keyboard, how fast it appears on your screen, and stuff like that, right? + +02:48:26.680 --> 02:48:32.840 +No, compilation of a complex application, how long that would take, and how long I would + +02:48:32.840 --> 02:48:38.560 +have to wait, and it was near instantaneous in many cases, and I had never experienced + +02:48:38.560 --> 02:48:39.600 +that before. + +02:48:39.600 --> 02:48:48.680 +So their disks were super fast, the throughput on the data buses was super fast, and I mean, + +02:48:48.680 --> 02:48:56.120 +it just worked like if you wanted a fast computer, it felt right, and I've not, you know, despite + +02:48:56.120 --> 02:49:02.700 +all the hardware I've had access to, I haven't had that same experience on any other machine + +02:49:02.700 --> 02:49:03.700 +to do. + +02:49:03.700 --> 02:49:11.240 +I know the Zig programming language has recently gotten an incremental compiler for it. + +02:49:11.240 --> 02:49:12.240 +Nice. + +02:49:12.240 --> 02:49:13.240 +So it would. + +02:49:13.240 --> 02:49:15.640 +Yeah, they're doing good work, they're doing good. + +02:49:15.640 --> 02:49:17.640 +Have you seen Vlang too? + +02:49:17.640 --> 02:49:19.760 +That's sort of interesting. + +02:49:19.760 --> 02:49:24.160 +I've seen that a little bit, but I haven't looked too much into it. + +02:49:24.160 --> 02:49:33.720 +There's this one Russian guy, and he's building his own Go-like replacement for C, because + +02:49:33.720 --> 02:49:40.000 +he likes Go a lot, but he wants to solve some other problems that he didn't like in Go, + +02:49:40.000 --> 02:49:43.280 +and the things he says about it are incredible. + +02:49:43.280 --> 02:49:47.640 +It doesn't, well, it didn't have garbage collection at first, right, because he wants to do all + +02:49:47.640 --> 02:49:54.760 +those machine-level things, but they seem to be able to build things that they promote + +02:49:54.760 --> 02:49:59.160 +as doing a lot, like an entire web framework they have already. + +02:49:59.160 --> 02:50:06.760 +They have their own graphics system and, you know, should be able to do very fast compositing. + +02:50:06.760 --> 02:50:13.040 +Who knows, you know, and so a lot of people say that he's over-promising, but he keeps + +02:50:13.040 --> 02:50:21.080 +delivering these snippets about, well, V, originally he had to translate V to C to get it to compile. + +02:50:21.080 --> 02:50:29.800 +Now it's self-hosting, and he can compile the whole language in 1.8 seconds from start, + +02:50:29.800 --> 02:50:39.120 +right, things like that, and so he's bootstrapping these super-efficient things to get to a very + +02:50:39.120 --> 02:50:45.680 +Rust-like systems programming language, but potentially cleaner. + +02:50:45.680 --> 02:50:51.640 +But it doesn't have, you know, people behind it like Rust, and you don't know if what he's + +02:50:51.640 --> 02:50:56.640 +saying is actually true, but if it is, you know, it might be like Zig and be something + +02:50:56.640 --> 02:50:58.640 +really interesting. + +02:50:58.640 --> 02:51:04.560 +Zig did cached compilations, so if you compiled something and then you changed a little bit + +02:51:04.560 --> 02:51:07.800 +and you compile it again, you're not going to compile very much. + +02:51:07.800 --> 02:51:11.680 +Right, so it'll be super-fast that way too. + +02:51:11.680 --> 02:51:20.000 +Yeah, I mean, memoization, that's caching if you can do it right, I'll save your ass + +02:51:20.000 --> 02:51:22.960 +every time, right, that's sort of. + +02:51:22.960 --> 02:51:27.240 +Then they have a self-hosted compiler, so I think that's one that will do the incremental + +02:51:27.240 --> 02:51:34.680 +compilations, so like that one will just be much faster and give you more debug stuff. + +02:51:34.680 --> 02:51:38.720 +But it is interesting, it's like, yeah, start with the REPL, right? + +02:51:38.720 --> 02:51:41.280 +Can you do a REPL in your language or not? + +02:51:41.280 --> 02:51:46.360 +Can you give me an interactive environment, even if everything has to be compiled? + +02:51:46.360 --> 02:51:50.280 +Like Julia, I guess, is going for some of this, right? + +02:51:50.280 --> 02:51:56.040 +They're taking some from LIST, they're taking all these efficient scientific libraries, + +02:51:56.040 --> 02:52:02.600 +and they're trying to meld them into a functional environment that gives you the most efficient + +02:52:02.600 --> 02:52:06.000 +code for any line that you write, right? + +02:52:06.000 --> 02:52:15.440 +Because it compiles it based on the dynamic types or something that it experiences, so + +02:52:15.440 --> 02:52:17.600 +it's very interesting. + +02:52:17.600 --> 02:52:19.920 +Have you seen the JANET Lisp language? + +02:52:19.920 --> 02:52:25.920 +It's kind of like V, where it's a very small language that has a web framework for it as + +02:52:25.920 --> 02:52:26.920 +well. + +02:52:26.920 --> 02:52:29.640 +No, I haven't seen that. + +02:52:29.640 --> 02:52:31.160 +I got a link on it right there. + +02:52:31.160 --> 02:52:34.840 +Yeah, I see it here, JANET Lisp, not too hard to find. + +02:52:34.840 --> 02:52:40.440 +I like their logo, 1950s JANET. + +02:52:40.440 --> 02:52:45.600 +Functional and imperative programming language runs on Windows, Linux, Mac OS, and Steam. + +02:52:45.600 --> 02:52:47.920 +Entire language is less than one megabyte. + +02:52:47.920 --> 02:52:58.000 +This sounds like REBOL, called Sasslerath, it did a lot of FORTH, and then he wrote REBOL, + +02:52:58.000 --> 02:53:02.560 +which has now evolved into REDLANG. + +02:53:02.560 --> 02:53:08.800 +It doesn't seem like a great language, but it's got that FORTH efficiency, and it's super + +02:53:08.800 --> 02:53:15.040 +small with its super small graphics, but it's not that easy to write, I think. + +02:53:15.040 --> 02:53:16.040 +This is cool. + +02:53:16.040 --> 02:53:17.660 +This sounds really interesting. + +02:53:17.660 --> 02:53:22.500 +So who's doing this, JANET? + +02:53:22.500 --> 02:53:27.360 +You know where it comes from? + +02:53:27.360 --> 02:53:28.360 +What source? + +02:53:28.360 --> 02:53:30.760 +They don't have about. + +02:53:30.760 --> 02:53:32.560 +Tell us about JANET. + +02:53:32.560 --> 02:53:37.240 +Oh, Calvin Rose and contributors. + +02:53:37.240 --> 02:53:41.920 +So again, we have one guy and contributor. + +02:53:41.920 --> 02:53:43.960 +That's well, you know, that's modern. + +02:53:43.960 --> 02:53:45.080 +That's how it is. + +02:53:45.080 --> 02:53:51.160 +You know, we talk about repeating the cycles of and how old problems are going to manifest + +02:53:51.160 --> 02:53:57.040 +with new technologies, maybe that's the problem that we're doing is that now everyone will + +02:53:57.040 --> 02:54:02.120 +have their own language and their own system and has become so satisfying and easy to do + +02:54:02.120 --> 02:54:08.240 +that that every single person will write their own programming language, their own architecture, + +02:54:08.240 --> 02:54:11.820 +and everyone will become it's like a it's like a monkey's paw or the genie granting + +02:54:11.820 --> 02:54:13.400 +you a curse. + +02:54:13.400 --> 02:54:18.120 +Everyone will become perfectly competent at this stuff, but not be able to communicate + +02:54:18.120 --> 02:54:20.920 +with each other because everyone's has their personal language. + +02:54:20.920 --> 02:54:23.960 +It's like the new Tower of Babel. + +02:54:23.960 --> 02:54:29.380 +You know, that's the claim that like my my guy in London makes about Lisp, that it's + +02:54:29.380 --> 02:54:35.040 +so efficient in making DSLs that nobody can communicate with each other. + +02:54:35.040 --> 02:54:43.720 +And I've heard that said about groups working in Lisp together, but I've never seen it. + +02:54:43.720 --> 02:54:52.560 +And it doesn't make a lot of sense to me because if you build your DSL for the domain, well, + +02:54:52.560 --> 02:54:58.920 +then it's like if people have any concept of the domain, it's going to be quite understandable. + +02:54:58.920 --> 02:55:04.720 +And because it's representative, you know, they're not going to struggle with it. + +02:55:04.720 --> 02:55:10.680 +It's only if you like, you know, make up terms that don't relate to anything and use that + +02:55:10.680 --> 02:55:11.680 +all over. + +02:55:11.680 --> 02:55:16.100 +Or if you take the scientists and they use their single character variable names, that's + +02:55:16.100 --> 02:55:21.440 +going to be a lot less understandable than something tailored for the domain that you're + +02:55:21.440 --> 02:55:22.440 +working in. + +02:55:22.440 --> 02:55:23.440 +Right? + +02:55:23.440 --> 02:55:24.440 +Good point. + +02:55:24.440 --> 02:55:25.440 +Yeah. + +02:55:25.440 --> 02:55:28.200 +I wonder how much of it has to do with going back and forth. + +02:55:28.200 --> 02:55:32.920 +You know, like if you can't spend all of your time or dedicate a long enough time, if you + +02:55:32.920 --> 02:55:38.760 +just go in and look at whatever this DSL is, switch back to idiomatic stuff. + +02:55:38.760 --> 02:55:44.520 +It's like, oh, you know, my brain is, you have to context switch all the time, maybe. + +02:55:44.520 --> 02:55:54.200 +One of the RACQ talk that was like the best talk for free software, and one of the observations + +02:55:54.200 --> 02:55:59.640 +they made was that most of everything was made by one person. + +02:55:59.640 --> 02:56:05.440 +And even if you look at a lot of the projects that have more than two people, you have one + +02:56:05.440 --> 02:56:07.960 +person and then a maintainer takes over. + +02:56:07.960 --> 02:56:10.760 +So it's still really one person working on it. + +02:56:10.760 --> 02:56:19.520 +It's like, that's going to be like 95% of everything out there, and everybody chooses + +02:56:19.520 --> 02:56:22.760 +a language that's not for that purpose. + +02:56:22.760 --> 02:56:25.460 +This was kind of the law of what they were. + +02:56:25.460 --> 02:56:28.700 +So if you're going to be doing that, you want to, if you're going to be working on a project + +02:56:28.700 --> 02:56:33.640 +over a long period of time, you want a language that has more features that you can master + +02:56:33.640 --> 02:56:39.200 +over a long period of time rather than how fast you can write hello world that can keep + +02:56:39.200 --> 02:56:44.760 +you interested in over a long period of, like Emacs for instance, Emacs can keep you interested + +02:56:44.760 --> 02:56:50.280 +in it for decades. + +02:56:50.280 --> 02:56:53.000 +And I think it's a cognitive mismatch. + +02:56:53.000 --> 02:56:54.000 +Go ahead. + +02:56:54.000 --> 02:57:02.440 +It's good to know that when given the freedom, like in software being such a new technology, + +02:57:02.440 --> 02:57:13.400 +to do whatever you want that humans will still recreate the Tower of Babel every single time. + +02:57:13.400 --> 02:57:20.840 +We'll never be able to agree on what's a good or right looking language. + +02:57:20.840 --> 02:57:25.280 +But I think the reality is that there are better ones. + +02:57:25.280 --> 02:57:35.320 +I think languages, written languages without accent marks are fundamentally better than + +02:57:35.320 --> 02:57:38.120 +those with accent marks. + +02:57:38.120 --> 02:57:44.200 +And so if you're stuck on one with there, you're probably going to get left behind even + +02:57:44.200 --> 02:57:47.120 +though you can produce the same meanings. + +02:57:47.120 --> 02:57:58.480 +And I think languages without Lisp type macros are never going to be able to solve the problems + +02:57:58.480 --> 02:58:07.640 +even though they're computationally equivalent that Lisp people attack because they just + +02:58:07.640 --> 02:58:10.840 +can't wrap the complexity in their mind enough. + +02:58:10.840 --> 02:58:19.680 +You'd have to have somebody who's 100 times better with a weaker language to do what the + +02:58:19.680 --> 02:58:29.600 +essentially average Lisp guy leveraging the macro capability could do. + +02:58:29.600 --> 02:58:36.840 +Like in hyperbole, one of the things that we solve that you can't do, I think very well + +02:58:36.840 --> 02:58:38.880 +in other languages. + +02:58:38.880 --> 02:58:47.880 +So we have our implicit button definitions look like regular defunds, but they have two + +02:58:47.880 --> 02:58:50.080 +parts in them. + +02:58:50.080 --> 02:58:54.640 +One which is the pattern match, am I in the right context? + +02:58:54.640 --> 02:58:59.600 +And then the one that calls the action. + +02:58:59.600 --> 02:59:07.400 +But you need, so to make it look the same, like there's only one path that you're running + +02:59:07.400 --> 02:59:13.480 +through this code, even though you have to do the pattern matching when you're called + +02:59:13.480 --> 02:59:18.040 +one time and you have to do the action invocation when you called another. + +02:59:18.040 --> 02:59:29.440 +There's a macro that we created called the hacked, H-A-C-T, and the macro actually takes + +02:59:29.440 --> 02:59:40.240 +a, there's a function that it uses that's implicit, that is set to different values + +02:59:40.240 --> 02:59:43.840 +at different states in the program. + +02:59:43.840 --> 02:59:50.800 +So when you're just looking for the pattern matching, that's all it does. + +02:59:50.800 --> 02:59:53.360 +And it sort of drops through the other behavior. + +02:59:53.360 --> 03:00:01.600 +And then when it comes back around and you're not doing pattern matching anymore, it executes + +03:00:01.600 --> 03:00:02.800 +the action. + +03:00:02.800 --> 03:00:09.320 +But looking at the code, you only see that one defund straight kind of path through it. + +03:00:09.320 --> 03:00:14.680 +So the engine handles all that, and I don't think you could write anything quite like + +03:00:14.680 --> 03:00:19.280 +that without the macro. + +03:00:19.280 --> 03:00:26.560 +It's magical, it's probably the closest thing to magic that we have, I guess. + +03:00:26.560 --> 03:00:35.360 +Well, you guys have filled up my brain, so I'm going to get some sleep, too. + +03:00:35.360 --> 03:00:36.360 +You deserve it. + +03:00:36.360 --> 03:00:42.720 +I'm a day ahead of you in that respect, so I'm amazed you've made it this long, to be + +03:00:42.720 --> 03:00:43.720 +honest. + +03:00:43.720 --> 03:00:51.040 +I don't know if I, did I, was there any, like, is there anything that you guys had, that + +03:00:51.040 --> 03:00:53.840 +I had neglected or anything that I should focus on? + +03:00:53.840 --> 03:00:57.320 +Well, I don't know, but I'm going to sign off. + +03:00:57.320 --> 03:01:04.500 +It's been a real pleasure talking to you guys, and John, I'll get in touch about, you know, + +03:01:04.500 --> 03:01:10.200 +give you a chance to take a look at Hyperbole a little bit, and then we could talk about, + +03:01:10.200 --> 03:01:15.160 +you know, how you could feedback some stuff, or if you want to interact with, meet some + +03:01:15.160 --> 03:01:19.040 +of the other guys in the team sometime, and just talk. + +03:01:19.040 --> 03:01:24.160 +Yeah, any of that, yeah, and you've got, I think, I mean, I'll email you if I, or you + +03:01:24.160 --> 03:01:26.360 +email me, email me either way. + +03:01:26.360 --> 03:01:33.280 +Okay, and on PlasmaStrike, if you're interested, it's open, too, I mean, we need smart people + +03:01:33.280 --> 03:01:42.080 +like yourself with lots of ideas and understanding of where things come from to just help out + +03:01:42.080 --> 03:01:43.080 +on that. + +03:01:43.080 --> 03:01:48.600 +If you have any cycles and you want to get involved, let me know. + +03:01:48.600 --> 03:01:56.840 +My email address is all over the Hyperbole code, so easy to find, just rsw.cadu.org will + +03:01:56.840 --> 03:01:57.840 +work as well. + +03:01:57.840 --> 03:02:03.640 +Yeah, if, yeah, and either of you guys feel free to, if you have any interesting ideas + +03:02:03.640 --> 03:02:10.840 +or anything, reach out and email me, I'm on the, I'm on the chatroom, thanks so much, + +03:02:10.840 --> 03:02:16.280 +I can't wait till they get this session, and they're like, wait, it's 180,000, it's the + +03:02:16.280 --> 03:02:27.600 +easiest thing I've got out of control, I guess, but, you know, they'll want to keep this because + +03:02:27.600 --> 03:02:31.800 +it's a great wide-ranging conversation, posterity. + +03:02:31.800 --> 03:02:36.520 +I have a feeling they won't run all of it through voice recognition. + +03:02:36.520 --> 03:02:39.280 +It definitely belongs with a 10-minute talk. + +03:02:39.280 --> 03:02:47.160 +Well, I'll tell you this, and I, not to prolong things, but this is, this is very representative + +03:02:47.160 --> 03:02:51.680 +of the amount of time that I, the proportional amount of effort and time that I spent preparing + +03:02:51.680 --> 03:02:57.000 +for this 10-minute talk, because for, I'll tell you something that, first, is when you + +03:02:57.000 --> 03:03:00.640 +realize that you have a 10-minute talk and you say, how am I going to get 10 minutes? + +03:03:00.640 --> 03:03:05.600 +Then you start preparing, and you start, and somehow you wind up with 100 minutes, and + +03:03:05.600 --> 03:03:11.640 +then it takes you 10 times as long to cut out, to choose which 90 minutes to cut out. + +03:03:11.640 --> 03:03:16.360 +So this is appropriate, it's appropriate for me, this is like my bookend, that I can talk + +03:03:16.360 --> 03:03:21.400 +for three hours about that, or at least starting with that time. + +03:03:21.400 --> 03:03:26.440 +You should give a talk about that, sort of like how Michelangelo went from the piece + +03:03:26.440 --> 03:03:32.000 +of marble to the David, and it's like, you know, I had this infinite amount of material + +03:03:32.000 --> 03:03:37.080 +coalescing it to 10 minutes is a 100-hour effort, because it's really true. + +03:03:37.080 --> 03:03:41.240 +I like it, because that's, that's a lot of what these tools do, is they allow you to + +03:03:41.240 --> 03:03:43.160 +capture your stuff. + +03:03:43.160 --> 03:03:47.200 +They allow you to organize it, and they allow you to formalize it, and that organizing part + +03:03:47.200 --> 03:03:52.840 +is what, is what gave me, well, isn't, isn't that what they say, that a professional programmer + +03:03:52.840 --> 03:03:59.880 +is somebody who will spend an hour automate, spend 100 hours automating something that + +03:03:59.880 --> 03:04:02.920 +only takes an hour, one time. + +03:04:02.920 --> 03:04:07.280 +I think that's what, I think maybe some professional programmers may say that. + +03:04:07.280 --> 03:04:11.160 +I don't know if their bosses would agree. + +03:04:11.160 --> 03:04:13.480 +There's some truth to it though, right? + +03:04:13.480 --> 03:04:18.520 +So have a great night guys, appreciate it. + +03:04:18.520 --> 03:04:22.120 +And yeah, and PlasmaStrike, I don't know if you, if you do end up posting anything of + +03:04:22.120 --> 03:04:27.700 +your, of your setup or anything, if you feel like it, just hit me up if you're interested + +03:04:27.700 --> 03:04:31.600 +in any of my shit, looking at it, because if you do, I'd, I'd be interested. + +03:04:31.600 --> 03:04:32.600 +That's all. + +03:04:32.600 --> 03:04:33.600 +No pressure. + +03:04:33.600 --> 03:04:34.600 +Yep. + +03:04:34.600 --> 03:04:35.600 +All right. + +03:04:35.600 --> 03:04:36.600 +Take it easy. + +03:04:36.600 --> 03:04:37.600 +Great, great meeting you. + +03:04:37.600 --> 03:04:38.600 +Great talking to you. + +03:04:38.600 --> 03:04:39.600 +Yep. + +03:04:39.600 --> 03:04:40.600 +You too. + +03:04:40.600 --> 03:04:41.600 +See ya. + +03:04:41.600 --> 03:04:42.600 +See ya. + +03:04:42.600 --> 03:04:58.280 +You're currently the only person in... + +03:04:58.280 --> 03:05:00.340 +you + +03:05:28.280 --> 03:05:30.340 +you + +03:05:58.280 --> 03:06:00.340 +you + -- cgit v1.2.3