From b98df6fbe2a5c48013cfca81a95a5af41e202d07 Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Sun, 13 Dec 2020 00:06:32 -0500 Subject: Actually post subtitles, I think --- ...-a-computer-algebra-system-in-emacs--fermin.vtt | 1708 ++++++++++++++++++++ 1 file changed, 1708 insertions(+) create mode 100644 2020/subtitles/emacsconf-2020--33-maxima-a-computer-algebra-system-in-emacs--fermin.vtt (limited to '2020/subtitles/emacsconf-2020--33-maxima-a-computer-algebra-system-in-emacs--fermin.vtt') diff --git a/2020/subtitles/emacsconf-2020--33-maxima-a-computer-algebra-system-in-emacs--fermin.vtt b/2020/subtitles/emacsconf-2020--33-maxima-a-computer-algebra-system-in-emacs--fermin.vtt new file mode 100644 index 00000000..6810a359 --- /dev/null +++ b/2020/subtitles/emacsconf-2020--33-maxima-a-computer-algebra-system-in-emacs--fermin.vtt @@ -0,0 +1,1708 @@ +WEBVTT + +00:00:01.680 --> 00:00:04.480 +you are now unmuted + +00:00:04.480 --> 00:00:08.000 +okay can you guys hear me yeah + +00:00:08.000 --> 00:00:11.280 +can you guys hear me sir yep I can and + +00:00:11.280 --> 00:00:14.480 +we're live so take it away okay + +00:00:14.480 --> 00:00:17.199 +so um hello everyone my name is ferming + +00:00:17.199 --> 00:00:18.400 +I'm a programmer + +00:00:18.400 --> 00:00:20.960 +a math student from spain I've been + +00:00:20.960 --> 00:00:22.400 +using me e-max for + +00:00:22.400 --> 00:00:24.960 +two years now more or less and today I'm + +00:00:24.960 --> 00:00:26.000 +going to talk about + +00:00:26.000 --> 00:00:28.320 +a maxima computer algebra system in 2 + +00:00:28.320 --> 00:00:29.199 +max + +00:00:29.199 --> 00:00:32.239 +so let's talk about what is maxima + +00:00:32.239 --> 00:00:34.239 +well maxim is a system for manipulation + +00:00:34.239 --> 00:00:36.079 +of symbolic and numerical expression + +00:00:36.079 --> 00:00:37.920 +and it's similar in some regard to + +00:00:37.920 --> 00:00:39.440 +octave + +00:00:39.440 --> 00:00:42.160 +and it's also free software is derived + +00:00:42.160 --> 00:00:45.039 +from the maxima from the 60 from the m80 + +00:00:45.039 --> 00:00:47.120 +and it's written in common lisp which is + +00:00:47.120 --> 00:00:48.320 +a language that I really + +00:00:48.320 --> 00:00:50.719 +like I enjoy writing it so for me it's a + +00:00:50.719 --> 00:00:51.600 +plus + +00:00:51.600 --> 00:00:55.039 +okay so let's talk about the initial + +00:00:55.039 --> 00:00:57.039 +support for maxima when I first started + +00:00:57.039 --> 00:00:59.280 +using it I looked for support into Emacs + +00:00:59.280 --> 00:01:00.320 +and I found that + +00:01:00.320 --> 00:01:03.120 +there's two major modes in the main + +00:01:03.120 --> 00:01:04.640 +repository of maxima + +00:01:04.640 --> 00:01:07.200 +for remax the first one is imaxima which + +00:01:07.200 --> 00:01:09.280 +I don't know too much about it + +00:01:09.280 --> 00:01:12.000 +and the second one is maxima dot l which + +00:01:12.000 --> 00:01:13.439 +is the one I took first + +00:01:13.439 --> 00:01:16.640 +and it was pretty nice has like a major + +00:01:16.640 --> 00:01:18.080 +mode a minor mode + +00:01:18.080 --> 00:01:21.280 +a nice ripple but it also has some + +00:01:21.280 --> 00:01:23.040 +disadvantage + +00:01:23.040 --> 00:01:25.040 +and the first one is that is quite + +00:01:25.040 --> 00:01:26.479 +outdated I think + +00:01:26.479 --> 00:01:29.600 +it was from the 2007 + +00:01:29.600 --> 00:01:30.960 +so it's not tested with the current + +00:01:30.960 --> 00:01:33.280 +email version and the second one + +00:01:33.280 --> 00:01:35.520 +is that it doesn't use modern e-max + +00:01:35.520 --> 00:01:36.320 +capability + +00:01:36.320 --> 00:01:38.640 +I'm talking for example about the last + +00:01:38.640 --> 00:01:40.479 +or more latex preview + +00:01:40.479 --> 00:01:44.720 +from the last a max 27.1 I think + +00:01:44.720 --> 00:01:46.079 +and that's why is that they know + +00:01:46.079 --> 00:01:47.920 +integrated with common third party + +00:01:47.920 --> 00:01:49.600 +extension I'm talking about company for + +00:01:49.600 --> 00:01:51.520 +example third party + +00:01:51.520 --> 00:01:55.360 +yeah you know the alpa melba packages + +00:01:55.360 --> 00:01:57.280 +so uh this stock is going to be divided + +00:01:57.280 --> 00:01:58.719 +in two parts the first one is going to + +00:01:58.719 --> 00:02:00.799 +be how I maximize my date today + +00:02:00.799 --> 00:02:03.040 +in max exercise don't worry it's going + +00:02:03.040 --> 00:02:03.840 +to be + +00:02:03.840 --> 00:02:06.000 +quite easy and the second one is going + +00:02:06.000 --> 00:02:07.680 +to be why for the package + +00:02:07.680 --> 00:02:10.560 +and the list improvement that I did and + +00:02:10.560 --> 00:02:13.200 +a couple of things more maybe the future + +00:02:13.200 --> 00:02:14.480 +and where's the package right now if you + +00:02:14.480 --> 00:02:16.720 +can use it so + +00:02:16.720 --> 00:02:19.440 +let's talk about the workflow so right + +00:02:19.440 --> 00:02:21.360 +out of the box it has like an + +00:02:21.360 --> 00:02:23.040 +orimal support I didn't write this it + +00:02:23.040 --> 00:02:24.400 +was already + +00:02:24.400 --> 00:02:27.680 +in Emacs + +00:02:27.680 --> 00:02:30.319 +so that's pretty nice let's go with a + +00:02:30.319 --> 00:02:32.720 +simple example + +00:02:32.720 --> 00:02:34.480 +okay so this is an array of three + +00:02:34.480 --> 00:02:36.000 +equations and three variables + +00:02:36.000 --> 00:02:37.920 +so it's a system that can be solved and + +00:02:37.920 --> 00:02:39.840 +the solution is unique + +00:02:39.840 --> 00:02:42.560 +um so we're going to solve it right + +00:02:42.560 --> 00:02:44.120 +let's go + +00:02:44.120 --> 00:02:47.519 +solutions okay here's how you define a + +00:02:47.519 --> 00:02:48.080 +variable + +00:02:48.080 --> 00:02:52.640 +in it's called solve okay + +00:02:52.640 --> 00:02:56.480 +it's called implicit explicit + +00:02:56.480 --> 00:03:00.400 +sorry okay and now an array of + +00:03:00.400 --> 00:03:03.680 +our variables actually okay + +00:03:03.680 --> 00:03:05.760 +so first of all we have to send this + +00:03:05.760 --> 00:03:07.599 +variable to the maxima + +00:03:07.599 --> 00:03:10.400 +repo with we can do that with ctrl c + +00:03:10.400 --> 00:03:11.200 +control c + +00:03:11.200 --> 00:03:14.480 +or with the maxima send line + +00:03:14.480 --> 00:03:19.200 +okay so let's um let's put the maxima + +00:03:19.200 --> 00:03:20.560 +buffer right here + +00:03:20.560 --> 00:03:23.680 +okay let's so um + +00:03:23.680 --> 00:03:25.360 +right now we can get the solution like + +00:03:25.360 --> 00:03:27.040 +this so we call already + +00:03:27.040 --> 00:03:29.360 +uh we call this line right now control + +00:03:29.360 --> 00:03:30.239 +sequence to c + +00:03:30.239 --> 00:03:31.920 +as you can see we get like an array + +00:03:31.920 --> 00:03:33.440 +inside an array because + +00:03:33.440 --> 00:03:36.080 +uh let's see why we get this so we can + +00:03:36.080 --> 00:03:38.799 +call maxima + +00:03:38.799 --> 00:03:42.239 +help a point this will open a + +00:03:42.239 --> 00:03:44.879 +dock um buffer with all information + +00:03:44.879 --> 00:03:46.000 +about the + +00:03:46.000 --> 00:03:48.799 +solve function so we can see that this + +00:03:48.799 --> 00:03:51.360 +list of solution equations + +00:03:51.360 --> 00:03:54.560 +you can see it okay so but we no we know + +00:03:54.560 --> 00:03:56.640 +that this system only have one solution + +00:03:56.640 --> 00:03:58.239 +so we're only interested in the first + +00:03:58.239 --> 00:04:00.400 +one we can do this like pretty easily + +00:04:00.400 --> 00:04:02.080 +just to take the first one + +00:04:02.080 --> 00:04:05.120 +we can send it to the buffer so this is + +00:04:05.120 --> 00:04:06.640 +quite easy example as you can see + +00:04:06.640 --> 00:04:09.280 +they have to completion much of the help + +00:04:09.280 --> 00:04:10.400 +facilities that we have + +00:04:10.400 --> 00:04:12.319 +we can also get information about the + +00:04:12.319 --> 00:04:14.720 +symbol for example maxima + +00:04:14.720 --> 00:04:17.440 +symbol doc and we get in the and now you + +00:04:17.440 --> 00:04:17.840 +can see + +00:04:17.840 --> 00:04:19.840 +correctly in the mini buffer all the + +00:04:19.840 --> 00:04:20.959 +possible + +00:04:20.959 --> 00:04:24.080 +um parameter of the function + +00:04:24.080 --> 00:04:28.000 +right so let's continue + +00:04:28.000 --> 00:04:31.440 +okay so let's go to a more well + +00:04:31.440 --> 00:04:34.880 +complicated example to say oops + +00:04:34.880 --> 00:04:38.560 +okay so we have this + +00:04:38.560 --> 00:04:42.400 +equation and we want to go from -1 to 5 + +00:04:42.400 --> 00:04:43.919 +I want to show in a nice + +00:04:43.919 --> 00:04:46.400 +graph right first of all we begin + +00:04:46.400 --> 00:04:47.759 +sending this line to the + +00:04:47.759 --> 00:04:51.759 +maxima ripple hold it button again + +00:04:51.759 --> 00:04:54.880 +okay um so this is not ideal if you want + +00:04:54.880 --> 00:04:56.960 +to write down this equation because + +00:04:56.960 --> 00:05:00.160 +it's quite messy what is when so + +00:05:00.160 --> 00:05:03.039 +uh what's thing are where so we can call + +00:05:03.039 --> 00:05:04.479 +the function maxima + +00:05:04.479 --> 00:05:07.520 +let's say insert form okay + +00:05:07.520 --> 00:05:10.240 +and this is more easy this basically put + +00:05:10.240 --> 00:05:11.280 +text behind + +00:05:11.280 --> 00:05:14.240 +and led or mode to render it and this is + +00:05:14.240 --> 00:05:15.120 +quite easy to + +00:05:15.120 --> 00:05:19.039 +write down you can use it like in every + +00:05:19.039 --> 00:05:22.560 +expression so um first we have to call a + +00:05:22.560 --> 00:05:23.199 +library + +00:05:23.199 --> 00:05:27.280 +let's load the library library draw + +00:05:27.280 --> 00:05:29.199 +we have also completion for local + +00:05:29.199 --> 00:05:31.520 +variable and local + +00:05:31.520 --> 00:05:35.039 +libraries sorry let me try to finish + +00:05:35.039 --> 00:05:38.240 +draw okay and we send the line + +00:05:38.240 --> 00:05:40.320 +so right now we have a leverage and we + +00:05:40.320 --> 00:05:42.240 +should even have auto completion for the + +00:05:42.240 --> 00:05:43.600 +library function + +00:05:43.600 --> 00:05:47.039 +okay we have let's call draw2d + +00:05:47.039 --> 00:05:50.400 +and now we can call implicit we should + +00:05:50.400 --> 00:05:51.199 +have + +00:05:51.199 --> 00:05:54.400 +okay and we can I mean put the variable + +00:05:54.400 --> 00:05:57.520 +of equations we put the first variable d + +00:05:57.520 --> 00:05:58.639 +minus + +00:05:58.639 --> 00:06:02.319 +five d five five + +00:06:02.319 --> 00:06:05.280 +the v variable the minus five and the + +00:06:05.280 --> 00:06:06.639 +five + +00:06:06.639 --> 00:06:09.680 +okay it should be all all good so let me + +00:06:09.680 --> 00:06:11.759 +try to send it + +00:06:11.759 --> 00:06:14.639 +okay you cannot see it right now because + +00:06:14.639 --> 00:06:16.639 +I'm just sharing the maxima screen let + +00:06:16.639 --> 00:06:19.360 +me try to change that + +00:06:19.360 --> 00:06:23.520 +okay um + +00:06:23.520 --> 00:06:31.520 +okay can you plot hello + +00:06:31.520 --> 00:06:33.919 +okay so this is basically the graph that + +00:06:33.919 --> 00:06:35.440 +I can upload generates + +00:06:35.440 --> 00:06:38.800 +uh right now it's not integrated into + +00:06:38.800 --> 00:06:41.039 +into the maximum package but it's a work + +00:06:41.039 --> 00:06:42.240 +in progress + +00:06:42.240 --> 00:06:46.000 +so let's go back to Emacs + +00:06:46.000 --> 00:06:50.160 +uh where are you okay there you are okay + +00:06:50.160 --> 00:06:53.520 +okay so um + +00:06:53.520 --> 00:06:56.639 +let's continue so uh this is some of the + +00:06:56.639 --> 00:06:57.759 +things that you can use + +00:06:57.759 --> 00:07:00.000 +for your day-to-day programming in + +00:07:00.000 --> 00:07:01.919 +maxima + +00:07:01.919 --> 00:07:05.759 +let's go now with the + +00:07:05.759 --> 00:07:07.360 +okay as you can see this is just text + +00:07:07.360 --> 00:07:08.880 +that is render + +00:07:08.880 --> 00:07:11.199 +okay let's go within a slide this is how + +00:07:11.199 --> 00:07:13.440 +I use maxima a simple example you don't + +00:07:13.440 --> 00:07:14.400 +want to + +00:07:14.400 --> 00:07:16.240 +talk too much about it because everyone + +00:07:16.240 --> 00:07:17.919 +use the package in a different way + +00:07:17.919 --> 00:07:19.680 +so right now I'm going to talk about the + +00:07:19.680 --> 00:07:21.039 +original package and + +00:07:21.039 --> 00:07:23.520 +the way I change it right so the + +00:07:23.520 --> 00:07:25.120 +documentation + +00:07:25.120 --> 00:07:27.840 +of the original was great but for me it + +00:07:27.840 --> 00:07:29.680 +wasn't embedded in the code + +00:07:29.680 --> 00:07:31.840 +it was something sometimes hard to read + +00:07:31.840 --> 00:07:33.599 +like it was like a big + +00:07:33.599 --> 00:07:36.319 +chunk of comment it gave me all the + +00:07:36.319 --> 00:07:37.039 +information + +00:07:37.039 --> 00:07:40.400 +like um for me that's too much I prefer + +00:07:40.400 --> 00:07:44.240 +a cohesive small comment and then a big + +00:07:44.240 --> 00:07:45.360 +redmi will order + +00:07:45.360 --> 00:07:47.759 +all the links and information so that's + +00:07:47.759 --> 00:07:48.960 +one of the first thing I + +00:07:48.960 --> 00:07:52.080 +change um then also completion I'm a big + +00:07:52.080 --> 00:07:52.560 +fan + +00:07:52.560 --> 00:07:55.759 +I'm used to slime so I'm I love + +00:07:55.759 --> 00:07:58.639 +great auto completion so um the first + +00:07:58.639 --> 00:08:00.160 +thing that I noticed that well + +00:08:00.160 --> 00:08:01.840 +it uses an absolute function I don't + +00:08:01.840 --> 00:08:04.479 +know if you can see correctly okay + +00:08:04.479 --> 00:08:07.039 +comment dynamic is deprecated and it + +00:08:07.039 --> 00:08:08.800 +also have like this + +00:08:08.800 --> 00:08:10.720 +variable which is maximus symbol which + +00:08:10.720 --> 00:08:12.720 +is basically a big + +00:08:12.720 --> 00:08:16.160 +list of all the possible completions so + +00:08:16.160 --> 00:08:19.280 +if I load the library it's not aware of + +00:08:19.280 --> 00:08:20.960 +the new symbols or even if I + +00:08:20.960 --> 00:08:23.039 +create a variable it's not loaded so + +00:08:23.039 --> 00:08:24.240 +it's not dynamic + +00:08:24.240 --> 00:08:26.160 +so I want the first thing I want is + +00:08:26.160 --> 00:08:28.319 +dynamic completion right + +00:08:28.319 --> 00:08:31.680 +so I improve it which wasn't that hard + +00:08:31.680 --> 00:08:34.159 +I first of all create maximum completion + +00:08:34.159 --> 00:08:36.080 +which we're going to see in a moment + +00:08:36.080 --> 00:08:38.479 +and then it changes completion region so + +00:08:38.479 --> 00:08:39.200 +this is the + +00:08:39.200 --> 00:08:41.039 +improved version but the good thing is + +00:08:41.039 --> 00:08:43.760 +like I decoupled the completion function + +00:08:43.760 --> 00:08:45.839 +so I make that you can use it on your + +00:08:45.839 --> 00:08:47.600 +own so you get a prefix + +00:08:47.600 --> 00:08:50.800 +which is um like + +00:08:50.800 --> 00:08:52.560 +the thing that you're going to also + +00:08:52.560 --> 00:08:55.040 +complete you get the inferior process + +00:08:55.040 --> 00:08:56.959 +which I'm going to talk about later but + +00:08:56.959 --> 00:08:58.959 +basically it's a maxima process you can + +00:08:58.959 --> 00:08:59.760 +work with + +00:08:59.760 --> 00:09:01.760 +and you get an optional argument which + +00:09:01.760 --> 00:09:03.040 +is fuzzy finding + +00:09:03.040 --> 00:09:06.399 +okay so you can easily send a block here + +00:09:06.399 --> 00:09:07.200 +what + +00:09:07.200 --> 00:09:10.399 +uh with the propos which is a maxima + +00:09:10.399 --> 00:09:11.440 +command that gets you + +00:09:11.440 --> 00:09:13.839 +all the auto completion and then you + +00:09:13.839 --> 00:09:14.959 +process the + +00:09:14.959 --> 00:09:18.240 +the output and you return a list + +00:09:18.240 --> 00:09:20.480 +of possible completion this function can + +00:09:20.480 --> 00:09:21.600 +be easily put into + +00:09:21.600 --> 00:09:24.800 +company as you can see you just + +00:09:24.800 --> 00:09:26.640 +get maximum auxiliary inferior process + +00:09:26.640 --> 00:09:28.560 +is a process that just + +00:09:28.560 --> 00:09:32.080 +uses sorry I have of + +00:09:32.080 --> 00:09:35.360 +all the apropos and the get that symbol + +00:09:35.360 --> 00:09:36.480 +it's like uh + +00:09:36.480 --> 00:09:39.440 +like you say auxiliary let's help me uh + +00:09:39.440 --> 00:09:41.360 +for that dirty stuff + +00:09:41.360 --> 00:09:43.680 +so and process manipulation let's talk + +00:09:43.680 --> 00:09:44.640 +about + +00:09:44.640 --> 00:09:46.959 +how the maxima process was in the + +00:09:46.959 --> 00:09:47.920 +beginning + +00:09:47.920 --> 00:09:50.720 +so at first it was just one process and + +00:09:50.720 --> 00:09:52.560 +you send all of the things there + +00:09:52.560 --> 00:09:54.560 +and you move the processor here and + +00:09:54.560 --> 00:09:56.320 +there and + +00:09:56.320 --> 00:09:58.160 +there was a global state right so all + +00:09:58.160 --> 00:09:59.600 +the function depends on + +00:09:59.600 --> 00:10:02.000 +variable global variables and I don't + +00:10:02.000 --> 00:10:05.120 +like that approach I prefer more like a + +00:10:05.120 --> 00:10:07.680 +shirt to say functional like you sense + +00:10:07.680 --> 00:10:09.519 +one of things and you return + +00:10:09.519 --> 00:10:12.000 +something so it's not like a void + +00:10:12.000 --> 00:10:13.440 +function so to say + +00:10:13.440 --> 00:10:16.399 +so I change it recipe uh well this is + +00:10:16.399 --> 00:10:18.079 +the maxima start function now + +00:10:18.079 --> 00:10:20.959 +let's just create a startup process with + +00:10:20.959 --> 00:10:22.560 +this function which is maxima make + +00:10:22.560 --> 00:10:23.680 +inferior + +00:10:23.680 --> 00:10:26.880 +so this function just gets a name + +00:10:26.880 --> 00:10:30.000 +and it return a process of maxima and + +00:10:30.000 --> 00:10:31.519 +you can then manipulate it the way you + +00:10:31.519 --> 00:10:32.240 +want + +00:10:32.240 --> 00:10:35.600 +let's see a better version so this is + +00:10:35.600 --> 00:10:36.800 +the opposite right this + +00:10:36.800 --> 00:10:39.200 +remove an inferior process and delete + +00:10:39.200 --> 00:10:41.760 +the process and kill the buffer + +00:10:41.760 --> 00:10:43.440 +right so let's give an example because + +00:10:43.440 --> 00:10:45.519 +this you can see pretty easily in this + +00:10:45.519 --> 00:10:46.399 +example + +00:10:46.399 --> 00:10:50.079 +so I want to go to the scratch buffer + +00:10:50.079 --> 00:10:51.519 +which I think you can see it better + +00:10:51.519 --> 00:10:54.399 +okay so this is the way you can get a + +00:10:54.399 --> 00:10:55.760 +process with your name + +00:10:55.760 --> 00:10:58.320 +and save it into a variable right let's + +00:10:58.320 --> 00:11:00.880 +execute this so as you can see well + +00:11:00.880 --> 00:11:02.880 +I don't know if you can see big you get + +00:11:02.880 --> 00:11:03.920 +a process + +00:11:03.920 --> 00:11:05.839 +let's go to it the process called my + +00:11:05.839 --> 00:11:07.040 +maxima + +00:11:07.040 --> 00:11:09.519 +as the buffer right and if we can you + +00:11:09.519 --> 00:11:10.079 +can send + +00:11:10.079 --> 00:11:12.240 +stuff to the process right we can call + +00:11:12.240 --> 00:11:14.959 +maximus in block get a block of valid + +00:11:14.959 --> 00:11:16.880 +maxima code and just pass the variable + +00:11:16.880 --> 00:11:17.760 +the process + +00:11:17.760 --> 00:11:20.800 +and we send code to the process right we + +00:11:20.800 --> 00:11:21.519 +can + +00:11:21.519 --> 00:11:23.440 +this is useful if you have some + +00:11:23.440 --> 00:11:25.760 +expensive computation that you want + +00:11:25.760 --> 00:11:28.480 +to process laser to say so the process + +00:11:28.480 --> 00:11:29.680 +can manage it + +00:11:29.680 --> 00:11:32.640 +and when you get the results correctly + +00:11:32.640 --> 00:11:33.920 +you can also get the result from the + +00:11:33.920 --> 00:11:34.399 +process + +00:11:34.399 --> 00:11:35.920 +I mean I don't put it here but quite + +00:11:35.920 --> 00:11:38.000 +easy and then you + +00:11:38.000 --> 00:11:41.200 +removed in favor which is the way to get + +00:11:41.200 --> 00:11:42.079 +rid of the process + +00:11:42.079 --> 00:11:43.600 +and the buffer so if we call this + +00:11:43.600 --> 00:11:45.279 +function we should get rid of the + +00:11:45.279 --> 00:11:48.399 +this process and it works the processing + +00:11:48.399 --> 00:11:49.920 +is no longer + +00:11:49.920 --> 00:11:54.160 +I'm happy to continue so um + +00:11:54.160 --> 00:11:56.160 +other things that improve the package on + +00:11:56.160 --> 00:11:57.680 +my commitment during time + +00:11:57.680 --> 00:11:59.760 +I'm going good okay another thing that I + +00:11:59.760 --> 00:12:01.360 +did to the package was to add + +00:12:01.360 --> 00:12:02.560 +continue integration and continue + +00:12:02.560 --> 00:12:04.959 +delivery right so the package didn't + +00:12:04.959 --> 00:12:06.320 +have any tests + +00:12:06.320 --> 00:12:09.440 +and the code was a little bit messy so + +00:12:09.440 --> 00:12:12.959 +I add integration a test + +00:12:12.959 --> 00:12:16.560 +and test with the test simple framework + +00:12:16.560 --> 00:12:19.519 +from rocky bursting the maintainer of + +00:12:19.519 --> 00:12:20.560 +real + +00:12:20.560 --> 00:12:23.279 +good which is a great package by the way + +00:12:23.279 --> 00:12:24.079 +um + +00:12:24.079 --> 00:12:25.920 +yeah this is one example of the process + +00:12:25.920 --> 00:12:28.079 +so right now because um + +00:12:28.079 --> 00:12:29.760 +the infrastructure of the process + +00:12:29.760 --> 00:12:31.680 +management is decoupled + +00:12:31.680 --> 00:12:33.680 +so I can test it pretty easily this is + +00:12:33.680 --> 00:12:35.200 +the test function of the + +00:12:35.200 --> 00:12:37.519 +inferior running so I can check if an + +00:12:37.519 --> 00:12:39.519 +inferior is running right now + +00:12:39.519 --> 00:12:41.440 +and I can just delete it after and get + +00:12:41.440 --> 00:12:43.200 +the results + +00:12:43.200 --> 00:12:45.279 +and I also did some integration with the + +00:12:45.279 --> 00:12:46.959 +party packages the first one company of + +00:12:46.959 --> 00:12:48.639 +course I love auto completion + +00:12:48.639 --> 00:12:50.880 +the second one was hormone that was + +00:12:50.880 --> 00:12:53.839 +already there and latex with the + +00:12:53.839 --> 00:12:56.880 +um or logic insert form + +00:12:56.880 --> 00:13:00.079 +and with poly mode because um let me + +00:13:00.079 --> 00:13:02.959 +evaluate this maxima can understand lisp + +00:13:02.959 --> 00:13:03.680 +code + +00:13:03.680 --> 00:13:06.959 +well more or less it has like a + +00:13:06.959 --> 00:13:10.000 +function so to say that you can send a + +00:13:10.000 --> 00:13:11.279 +list command to the + +00:13:11.279 --> 00:13:13.600 +maxima rebel and you can understand it + +00:13:13.600 --> 00:13:14.480 +in some way so + +00:13:14.480 --> 00:13:17.839 +we can go to the maxima poly + +00:13:17.839 --> 00:13:20.959 +only maxima right you enable polymaxima + +00:13:20.959 --> 00:13:22.800 +and it creates a polymode + +00:13:22.800 --> 00:13:25.519 +which this is lisp code and this is + +00:13:25.519 --> 00:13:26.399 +maxima code + +00:13:26.399 --> 00:13:28.639 +so we can send this to the maxima ripple + +00:13:28.639 --> 00:13:30.560 +we come to c control r which + +00:13:30.560 --> 00:13:34.240 +it sends the um the current + +00:13:34.240 --> 00:13:37.760 +um area region sorry + +00:13:37.760 --> 00:13:40.160 +and we define a variable which is called + +00:13:40.160 --> 00:13:41.839 +test and as we can see we have the + +00:13:41.839 --> 00:13:44.000 +variable test right here so you can + +00:13:44.000 --> 00:13:47.360 +program in lisp and you can send it to + +00:13:47.360 --> 00:13:48.079 +maxima + +00:13:48.079 --> 00:13:50.399 +so this is pretty good pretty nice um + +00:13:50.399 --> 00:13:51.920 +working integration with + +00:13:51.920 --> 00:13:55.040 +the slime mode and with swank so you can + +00:13:55.040 --> 00:13:57.120 +actually have a completion of + +00:13:57.120 --> 00:13:59.120 +a function inside the maximal list + +00:13:59.120 --> 00:14:00.959 +package but + +00:14:00.959 --> 00:14:02.800 +this is going to take quite a while + +00:14:02.800 --> 00:14:04.399 +because it's not trivial + +00:14:04.399 --> 00:14:07.360 +so um we're the feature of maxima right + +00:14:07.360 --> 00:14:09.440 +now well we have fonts highlighting + +00:14:09.440 --> 00:14:11.519 +smart indentation uh it was already in + +00:14:11.519 --> 00:14:14.480 +the package but now it's quite better + +00:14:14.480 --> 00:14:16.880 +great help functions right now I can + +00:14:16.880 --> 00:14:18.160 +find the recommendation quite + +00:14:18.160 --> 00:14:20.800 +fast and currently the menu integration + +00:14:20.800 --> 00:14:22.160 +this is quite basic it needs to be a + +00:14:22.160 --> 00:14:23.120 +little bit improved + +00:14:23.120 --> 00:14:25.199 +uh latex support also completion the + +00:14:25.199 --> 00:14:26.720 +company and maximizer process + +00:14:26.720 --> 00:14:28.480 +integration and mini buffer I didn't + +00:14:28.480 --> 00:14:29.120 +show you + +00:14:29.120 --> 00:14:32.880 +but basically if you call global maxima + +00:14:32.880 --> 00:14:34.639 +minor mode you have the minor mode you + +00:14:34.639 --> 00:14:36.720 +call maxima mini buffer + +00:14:36.720 --> 00:14:38.399 +how are you okay mini buffer you can + +00:14:38.399 --> 00:14:40.720 +basically just write simple maxima + +00:14:40.720 --> 00:14:42.720 +command and it will give you the result + +00:14:42.720 --> 00:14:45.920 +this is like a permanent version of um + +00:14:45.920 --> 00:14:48.959 +calc so you can do it you write the + +00:14:48.959 --> 00:14:50.560 +command and you get the output uh way + +00:14:50.560 --> 00:14:52.320 +more to come I have like a list + +00:14:52.320 --> 00:14:56.079 +of issues that I put enhancement a new + +00:14:56.079 --> 00:14:58.880 +feature that I'm going to develop + +00:14:58.880 --> 00:15:01.199 +so uh the future under presence of the + +00:15:01.199 --> 00:15:03.120 +package well the package is right now + +00:15:03.120 --> 00:15:06.880 +melpa a melba stable um + +00:15:06.880 --> 00:15:10.720 +in this 0.7.6 version + +00:15:10.720 --> 00:15:13.360 +and I'm planning to include into the + +00:15:13.360 --> 00:15:15.279 +known canoe alpha + +00:15:15.279 --> 00:15:16.720 +this is the url of the package by the + +00:15:16.720 --> 00:15:18.959 +way so you can if you go to metapod you + +00:15:18.959 --> 00:15:20.079 +put maxima and + +00:15:20.079 --> 00:15:22.160 +you can download it it doesn't have too + +00:15:22.160 --> 00:15:23.199 +much dependencies + +00:15:23.199 --> 00:15:26.639 +you aware of that um and thank you very + +00:15:26.639 --> 00:15:27.120 +much + +00:15:27.120 --> 00:15:28.720 +uh this is going to be my talk these are + +00:15:28.720 --> 00:15:30.959 +my uh information + +00:15:30.959 --> 00:15:33.519 +this is my gitlab this is my page which + +00:15:33.519 --> 00:15:34.000 +I don't + +00:15:34.000 --> 00:15:37.120 +love too much and this is my email + +00:15:37.120 --> 00:15:40.240 +so um thank you very much and I will be + +00:15:40.240 --> 00:15:41.839 +answering some questions right now + +00:15:41.839 --> 00:15:45.600 +and happy hacking + +00:15:45.600 --> 00:15:49.600 +you are now unmuted thank you very much + +00:15:49.600 --> 00:15:52.720 +vermin for the great talk um okay yeah + +00:15:52.720 --> 00:15:55.759 +let's see if you have any questions + +00:15:55.759 --> 00:15:58.800 +uh yeah I'm reading like this um + +00:15:58.800 --> 00:16:01.759 +so I'm a buddy october usually right now + +00:16:01.759 --> 00:16:04.560 +okay + +00:16:04.560 --> 00:16:06.880 +maxima over october yep there are a + +00:16:06.880 --> 00:16:08.639 +couple questions + +00:16:08.639 --> 00:16:11.519 +wow maxima we're okay I don't want to I + +00:16:11.519 --> 00:16:12.160 +don't know + +00:16:12.160 --> 00:16:13.940 +october that much um + +00:16:13.940 --> 00:16:15.680 +[Music] + +00:16:15.680 --> 00:16:17.839 +like I use it like a couple of times but + +00:16:17.839 --> 00:16:18.880 +I'm not happy + +00:16:18.880 --> 00:16:24.000 +and I found the octave packets to be + +00:16:24.000 --> 00:16:27.120 +quite a little bit harder to understand + +00:16:27.120 --> 00:16:31.519 +and also that + +00:16:31.519 --> 00:16:33.839 +it didn't have too much features like I + +00:16:33.839 --> 00:16:35.680 +prefer the maximum used to + +00:16:35.680 --> 00:16:37.839 +maybe octave is better I don't I'm not + +00:16:37.839 --> 00:16:38.880 +100 sure + +00:16:38.880 --> 00:16:40.800 +I know that you can use it for similar + +00:16:40.800 --> 00:16:42.079 +stuff but + +00:16:42.079 --> 00:16:47.120 +that's it so sorry + +00:16:47.120 --> 00:16:50.959 +okay I'm in a little bit of a rush sorry + +00:16:50.959 --> 00:16:54.079 +let me drink a little blue okay + +00:16:54.079 --> 00:17:00.639 +okay + +00:17:00.639 --> 00:17:05.280 +okay how does maxima compare to sagemath + +00:17:05.280 --> 00:17:08.959 +in imax + +00:17:08.959 --> 00:17:13.360 +I mean I don't know what is sage + +00:17:13.360 --> 00:17:17.439 +math I'm sorry um so I cannot answer + +00:17:17.439 --> 00:17:18.079 +your question + +00:17:18.079 --> 00:17:21.839 +with your question I think um + +00:17:21.839 --> 00:17:25.039 +sorry but I mean maxima is ready in + +00:17:25.039 --> 00:17:26.720 +combo list that's just a preference for + +00:17:26.720 --> 00:17:28.000 +me because I like + +00:17:28.000 --> 00:17:31.120 +lisp dialect and common lisp is + +00:17:31.120 --> 00:17:36.400 +interesting um + +00:17:36.400 --> 00:17:40.480 +yeah do you plan to + +00:17:40.480 --> 00:17:42.720 +I mean a maximum organization for maxima + +00:17:42.720 --> 00:17:43.840 +code block + +00:17:43.840 --> 00:17:47.360 +yes I want to improve the um + +00:17:47.360 --> 00:17:50.720 +of maxima package but I didn't have + +00:17:50.720 --> 00:17:52.000 +enough time and I want to + +00:17:52.000 --> 00:17:54.400 +clear a little bit of the code because + +00:17:54.400 --> 00:17:58.000 +still right now + +00:17:58.000 --> 00:18:00.080 +the code is quite messy in some areas + +00:18:00.080 --> 00:18:02.080 +because I pretty much implement first + +00:18:02.080 --> 00:18:03.520 +the base function I want to + +00:18:03.520 --> 00:18:05.600 +build on top of so right now it's quite + +00:18:05.600 --> 00:18:07.120 +usable but I still have something that I + +00:18:07.120 --> 00:18:07.919 +want to improve + +00:18:07.919 --> 00:18:11.120 +so when I finish that I will + +00:18:11.120 --> 00:18:14.799 +improve the normal version I think + +00:18:14.799 --> 00:18:16.640 +it's maximizing to get into into your + +00:18:16.640 --> 00:18:18.640 +opinion yes I + +00:18:18.640 --> 00:18:21.200 +I think that the creator of maxima like + +00:18:21.200 --> 00:18:21.919 +have this + +00:18:21.919 --> 00:18:26.640 +lisp mine and probably + +00:18:26.640 --> 00:18:29.520 +that they if you go to a symbol you get + +00:18:29.520 --> 00:18:30.559 +all the information + +00:18:30.559 --> 00:18:33.520 +and that reflects that you can actually + +00:18:33.520 --> 00:18:36.480 +write your program of maxima into + +00:18:36.480 --> 00:18:40.000 +um into lisp literally because they have + +00:18:40.000 --> 00:18:40.799 +a command + +00:18:40.799 --> 00:18:42.480 +so I think that is quite easy to get + +00:18:42.480 --> 00:18:44.880 +into some university use it for + +00:18:44.880 --> 00:18:48.240 +um first um + +00:18:48.240 --> 00:18:51.200 +years so it's quite easy and I think + +00:18:51.200 --> 00:18:53.039 +with my package you can use it + +00:18:53.039 --> 00:18:56.640 +like pretty pretty easily just create a + +00:18:56.640 --> 00:18:58.960 +file and you can start typing and + +00:18:58.960 --> 00:19:00.880 +maximize quite easy to install also + +00:19:00.880 --> 00:19:04.400 +so I think yeah it's crazy and + +00:19:04.400 --> 00:19:07.600 +the page should restart I don't know why + +00:19:07.600 --> 00:19:18.320 +sorry + +00:19:18.320 --> 00:19:22.559 +strict in fixed lisp syntax + +00:19:22.559 --> 00:19:25.440 +you're talking about the maxima itself + +00:19:25.440 --> 00:19:26.240 +syntax + +00:19:26.240 --> 00:19:27.760 +or I don't understand the question + +00:19:27.760 --> 00:19:32.240 +correctly + +00:19:32.240 --> 00:19:33.679 +well I'm going to go to the next + +00:19:33.679 --> 00:19:35.440 +question is there + +00:19:35.440 --> 00:19:37.360 +support for images in maximum mode not + +00:19:37.360 --> 00:19:38.880 +right now + +00:19:38.880 --> 00:19:45.280 +the way I want to implement some imax + +00:19:45.280 --> 00:19:49.120 +things uh is there support for + +00:19:49.120 --> 00:19:51.280 +but right now it doesn't have like a if + +00:19:51.280 --> 00:19:53.360 +you could want to have a new plot + +00:19:53.360 --> 00:19:55.600 +um inside you buffer right now it's not + +00:19:55.600 --> 00:19:56.720 +possible so + +00:19:56.720 --> 00:19:59.360 +that's the thing that I maximized that + +00:19:59.360 --> 00:20:01.200 +maxima.l still doesn't + +00:20:01.200 --> 00:20:03.520 +do which university you start to use + +00:20:03.520 --> 00:20:04.720 +maxima um + +00:20:04.720 --> 00:20:08.799 +in this aragosa university from spain + +00:20:08.799 --> 00:20:11.840 +they used to maximize the um thing in + +00:20:11.840 --> 00:20:12.640 +the engineer + +00:20:12.640 --> 00:20:16.400 +and in the math also so I'm 100 sure + +00:20:16.400 --> 00:20:18.320 +right now but when I started + +00:20:18.320 --> 00:20:19.679 +are you planning to option your package + +00:20:19.679 --> 00:20:22.559 +into maxima um I don't know about that + +00:20:22.559 --> 00:20:25.440 +because uh maybe can be a little bit + +00:20:25.440 --> 00:20:26.320 +messy + +00:20:26.320 --> 00:20:30.720 +um because the maxima ripple is more + +00:20:30.720 --> 00:20:32.960 +built around like maxima itself and they + +00:20:32.960 --> 00:20:33.360 +don't + +00:20:33.360 --> 00:20:37.600 +update the interfaces that much + +00:20:37.600 --> 00:20:42.240 +I have no problem like it's okay it just + +00:20:42.240 --> 00:20:45.360 +you have to um if you want to push you + +00:20:45.360 --> 00:20:46.320 +can push in other + +00:20:46.320 --> 00:20:48.480 +repository I mean it's just changed the + +00:20:48.480 --> 00:20:49.520 +file another way + +00:20:49.520 --> 00:20:52.880 +but also the test um is going to be a + +00:20:52.880 --> 00:20:54.080 +little bit harder because I think + +00:20:54.080 --> 00:20:55.200 +they're using + +00:20:55.200 --> 00:20:59.120 +search for and I'm using + +00:20:59.120 --> 00:21:01.200 +git lab continue integration within the + +00:21:01.200 --> 00:21:02.159 +jury + +00:21:02.159 --> 00:21:06.799 +so yeah I don't think that now unmuted + +00:21:06.799 --> 00:21:10.799 +yeah it will be nice + +00:21:10.799 --> 00:21:12.799 +okay um it's possible to include + +00:21:12.799 --> 00:21:14.840 +maximizing or false similar to jupiter + +00:21:14.840 --> 00:21:16.480 +notebooks + +00:21:16.480 --> 00:21:19.919 +um I mean you can uh use maximize your + +00:21:19.919 --> 00:21:23.280 +or files and you have maximum l mod + +00:21:23.280 --> 00:21:26.320 +integrated and you can like create put + +00:21:26.320 --> 00:21:31.520 +that code into a buffer and then + +00:21:31.520 --> 00:21:34.400 +uh edited correctly but it is now not it + +00:21:34.400 --> 00:21:36.159 +doesn't have like all the features like + +00:21:36.159 --> 00:21:37.679 +other languages because + +00:21:37.679 --> 00:21:40.480 +right now uh as my understanding is + +00:21:40.480 --> 00:21:42.320 +quite basic so I still have some + +00:21:42.320 --> 00:21:45.440 +still needs some some stuff some work + +00:21:45.440 --> 00:21:47.919 +around + +00:21:47.919 --> 00:21:52.320 +okay I think that's it + +00:21:52.320 --> 00:21:56.320 +you are now unmuted + +00:21:56.320 --> 00:21:59.600 +yep so that's it uh thank you very much + +00:21:59.600 --> 00:22:01.919 +fermin for your live talk and for you + +00:22:01.919 --> 00:22:04.640 +know the live q a + +00:22:04.640 --> 00:22:07.679 +thank you all amazing uh max conf + +00:22:07.679 --> 00:22:09.840 +cheers thank you it's thanks to you all + +00:22:09.840 --> 00:22:10.720 +you guys + +00:22:10.720 --> 00:22:16.840 +it's awesome okay thank you cheers bye + +00:22:16.840 --> 00:22:19.840 +bye -- cgit v1.2.3