summaryrefslogtreecommitdiffstats
path: root/2020/subtitles/emacsconf-2020--33-maxima-a-computer-algebra-system-in-emacs--fermin.vtt
diff options
context:
space:
mode:
authorSacha Chua <sacha@sachachua.com>2020-12-13 00:06:32 -0500
committerSacha Chua <sacha@sachachua.com>2020-12-13 00:06:32 -0500
commitb98df6fbe2a5c48013cfca81a95a5af41e202d07 (patch)
treefc20f6aca84b73f50eaae13837e2ce6999c0b841 /2020/subtitles/emacsconf-2020--33-maxima-a-computer-algebra-system-in-emacs--fermin.vtt
parent315add08d9c7f73fb3105940ad5230fb6b050fc2 (diff)
downloademacsconf-wiki-b98df6fbe2a5c48013cfca81a95a5af41e202d07.tar.xz
emacsconf-wiki-b98df6fbe2a5c48013cfca81a95a5af41e202d07.zip
Actually post subtitles, I think
Diffstat (limited to '2020/subtitles/emacsconf-2020--33-maxima-a-computer-algebra-system-in-emacs--fermin.vtt')
-rw-r--r--2020/subtitles/emacsconf-2020--33-maxima-a-computer-algebra-system-in-emacs--fermin.vtt1708
1 files changed, 1708 insertions, 0 deletions
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