summaryrefslogblamecommitdiffstats
path: root/2020/subtitles/emacsconf-2020--33-maxima-a-computer-algebra-system-in-emacs--fermin.sbv
blob: c5edf2c6f837b784af34c8190fb0254257906801 (plain) (tree)
1
2
3
4
5
6
7
8






                              
                                      







                                       
                

                       
                                   




                       
                                        


































                                        
                        

                       
                                        







                                    
                                       

                       
                                        

                       
                










                                        
                              




                                        
                       
















                                       
                
















                                   
                                      




                       
                                







                                  
                                       













                                       
                               













                                      
                                       
















                                        
                                     




                       
        









































































































































































                                        
                        


















































































                                        
                                       

























                                        
                                      













                                        
                      










                                        
                         































                                        
                                       










                                       
                                        




                       
                                






















                                       
                                       










                                       
                        

                       
                                        




                       
                               




                                     
                              

                       
                                    



















                                       
                                       

                       
                            







                                    
                                   




                        
                                      

                       
                                        













                                        
                                        

                       
                                     













                                     
                                       

















































                                        
                    











































                                       
                                     

                       
                                       













                                      
                                     














































                                        
                                     

                       
                                   













                                       
                                       























































                                        
                                    






















                                        
                           







                                        
                                        
















                                      
                        




























                                        
                                      




                        
                                     




                             
                                      




                       
                                        




                                       
                             
















































































































                                        
                                    



















                                       
                                    































                                       
                               

                       
                                      

                       
                                 













                                      
                                    


































                                        
       




                                  
                                       
















                                       
                                

                       
                                        










                                   
                                       










                       
                                        

                       
             

                       
                                    







                                       
                                       




                          
                                      




                       
                                      







                       
                                        













                                        
                                

                       
                                    




                       
                             

                       
                                   




                                       
                 










                               
                                        




                       
                            

                       
                                   

                       
                         










                                      
                                     

                       
                           




                                       
                                        




                       
                            

                       
                                  




                                     
             

                       
                                       

























                                        
                                    







                               
                                    













                                       
                              

                       
                                        













                                      
                                  




                       
                                










                                      
                                     
















                                       
                                      



















                                     
                                    

                       
                            




                                       
                                      



















                                        
                                        







                                      
                                       







                                     
                                 




                       
                        







                                       
                                      













                                      
                                      






















                                        
                                







                                     
                      



























                                       
0:00:01.680,0:00:08.000
you are now unmuted

0:00:04.480,0:00:11.280
okay can you guys hear me yeah

0:00:08.000,0:00:14.480
can you guys hear me sir yep I can and

0:00:11.280,0:00:17.199
we're live so take it away okay

0:00:14.480,0:00:18.400
so um hello everyone my name is ferming

0:00:17.199,0:00:20.960
I'm a programmer

0:00:18.400,0:00:22.400
a math student from spain I've been

0:00:20.960,0:00:24.960
using me e-max for

0:00:22.400,0:00:26.000
two years now more or less and today I'm

0:00:24.960,0:00:28.320
going to talk about

0:00:26.000,0:00:29.199
a maxima computer algebra system in 2

0:00:28.320,0:00:32.239
max

0:00:29.199,0:00:34.239
so let's talk about what is maxima

0:00:32.239,0:00:36.079
well maxim is a system for manipulation

0:00:34.239,0:00:37.920
of symbolic and numerical expression

0:00:36.079,0:00:39.440
and it's similar in some regard to

0:00:37.920,0:00:42.160
octave

0:00:39.440,0:00:45.039
and it's also free software is derived

0:00:42.160,0:00:47.120
from the maxima from the 60 from the m80

0:00:45.039,0:00:48.320
and it's written in common lisp which is

0:00:47.120,0:00:50.719
a language that I really

0:00:48.320,0:00:51.600
like I enjoy writing it so for me it's a

0:00:50.719,0:00:55.039
plus

0:00:51.600,0:00:57.039
okay so let's talk about the initial

0:00:55.039,0:00:59.280
support for maxima when I first started

0:00:57.039,0:01:00.320
using it I looked for support into Emacs

0:00:59.280,0:01:03.120
and I found that

0:01:00.320,0:01:04.640
there's two major modes in the main

0:01:03.120,0:01:07.200
repository of maxima

0:01:04.640,0:01:09.280
for remax the first one is imaxima which

0:01:07.200,0:01:12.000
I don't know too much about it

0:01:09.280,0:01:13.439
and the second one is maxima dot l which

0:01:12.000,0:01:16.640
is the one I took first

0:01:13.439,0:01:18.080
and it was pretty nice has like a major

0:01:16.640,0:01:21.280
mode a minor mode

0:01:18.080,0:01:23.040
a nice ripple but it also has some

0:01:21.280,0:01:25.040
disadvantage

0:01:23.040,0:01:26.479
and the first one is that is quite

0:01:25.040,0:01:29.600
outdated I think

0:01:26.479,0:01:30.960
it was from the 2007

0:01:29.600,0:01:33.280
so it's not tested with the current

0:01:30.960,0:01:35.520
email version and the second one

0:01:33.280,0:01:36.320
is that it doesn't use modern e-max

0:01:35.520,0:01:38.640
capability

0:01:36.320,0:01:40.479
I'm talking for example about the last

0:01:38.640,0:01:44.720
or more latex preview

0:01:40.479,0:01:46.079
from the last a max 27.1 I think

0:01:44.720,0:01:47.920
and that's why is that they know

0:01:46.079,0:01:49.600
integrated with common third party

0:01:47.920,0:01:51.520
extension I'm talking about company for

0:01:49.600,0:01:55.360
example third party

0:01:51.520,0:01:57.280
yeah you know the alpa melba packages

0:01:55.360,0:01:58.719
so uh this stock is going to be divided

0:01:57.280,0:02:00.799
in two parts the first one is going to

0:01:58.719,0:02:03.040
be how I maximize my date today

0:02:00.799,0:02:03.840
in max exercise don't worry it's going

0:02:03.040,0:02:06.000
to be

0:02:03.840,0:02:07.680
quite easy and the second one is going

0:02:06.000,0:02:10.560
to be why for the package

0:02:07.680,0:02:13.200
and the list improvement that I did and

0:02:10.560,0:02:14.480
a couple of things more maybe the future

0:02:13.200,0:02:16.720
and where's the package right now if you

0:02:14.480,0:02:19.440
can use it so

0:02:16.720,0:02:21.360
let's talk about the workflow so right

0:02:19.440,0:02:23.040
out of the box it has like an

0:02:21.360,0:02:24.400
orimal support I didn't write this it

0:02:23.040,0:02:27.680
was already

0:02:24.400,0:02:30.319
in Emacs

0:02:27.680,0:02:32.720
so that's pretty nice let's go with a

0:02:30.319,0:02:34.480
simple example

0:02:32.720,0:02:36.000
okay so this is an array of three

0:02:34.480,0:02:37.920
equations and three variables

0:02:36.000,0:02:39.840
so it's a system that can be solved and

0:02:37.920,0:02:42.560
the solution is unique

0:02:39.840,0:02:44.120
um so we're going to solve it right

0:02:42.560,0:02:47.519
let's go

0:02:44.120,0:02:48.080
solutions okay here's how you define a

0:02:47.519,0:02:52.400
variable

0:02:48.080,0:02:52.400
in it's called solve okay

0:02:52.640,0:03:00.400
it's called implicit explicit

0:02:56.480,0:03:03.680
sorry okay and now an array of

0:03:00.400,0:03:05.760
our variables actually okay

0:03:03.680,0:03:07.599
so first of all we have to send this

0:03:05.760,0:03:10.400
variable to the maxima

0:03:07.599,0:03:11.200
repo with we can do that with ctrl c

0:03:10.400,0:03:14.480
control c

0:03:11.200,0:03:19.200
or with the maxima send line

0:03:14.480,0:03:20.560
okay so let's um let's put the maxima

0:03:19.200,0:03:23.680
buffer right here

0:03:20.560,0:03:25.360
okay let's so um

0:03:23.680,0:03:27.040
right now we can get the solution like

0:03:25.360,0:03:29.360
this so we call already

0:03:27.040,0:03:30.239
uh we call this line right now control

0:03:29.360,0:03:31.920
sequence to c

0:03:30.239,0:03:33.440
as you can see we get like an array

0:03:31.920,0:03:36.080
inside an array because

0:03:33.440,0:03:38.799
uh let's see why we get this so we can

0:03:36.080,0:03:42.239
call maxima

0:03:38.799,0:03:44.879
help a point this will open a

0:03:42.239,0:03:46.000
dock um buffer with all information

0:03:44.879,0:03:48.799
about the

0:03:46.000,0:03:51.360
solve function so we can see that this

0:03:48.799,0:03:54.560
list of solution equations

0:03:51.360,0:03:56.640
you can see it okay so but we no we know

0:03:54.560,0:03:58.239
that this system only have one solution

0:03:56.640,0:04:00.400
so we're only interested in the first

0:03:58.239,0:04:02.080
one we can do this like pretty easily

0:04:00.400,0:04:05.120
just to take the first one

0:04:02.080,0:04:06.640
we can send it to the buffer so this is

0:04:05.120,0:04:09.280
quite easy example as you can see

0:04:06.640,0:04:10.400
they have to completion much of the help

0:04:09.280,0:04:12.319
facilities that we have

0:04:10.400,0:04:14.720
we can also get information about the

0:04:12.319,0:04:17.440
symbol for example maxima

0:04:14.720,0:04:17.840
symbol doc and we get in the and now you

0:04:17.440,0:04:19.840
can see

0:04:17.840,0:04:20.959
correctly in the mini buffer all the

0:04:19.840,0:04:24.080
possible

0:04:20.959,0:04:28.000
um parameter of the function

0:04:24.080,0:04:31.440
right so let's continue

0:04:28.000,0:04:34.880
okay so let's go to a more well

0:04:31.440,0:04:38.560
complicated example to say oops

0:04:34.880,0:04:42.400
okay so we have this

0:04:38.560,0:04:43.919
equation and we want to go from -1 to 5

0:04:42.400,0:04:46.400
I want to show in a nice

0:04:43.919,0:04:47.759
graph right first of all we begin

0:04:46.400,0:04:51.759
sending this line to the

0:04:47.759,0:04:54.880
maxima ripple hold it button again

0:04:51.759,0:04:56.960
okay um so this is not ideal if you want

0:04:54.880,0:05:00.160
to write down this equation because

0:04:56.960,0:05:03.039
it's quite messy what is when so

0:05:00.160,0:05:04.479
uh what's thing are where so we can call

0:05:03.039,0:05:07.520
the function maxima

0:05:04.479,0:05:10.240
let's say insert form okay

0:05:07.520,0:05:11.280
and this is more easy this basically put

0:05:10.240,0:05:14.240
text behind

0:05:11.280,0:05:15.120
and led or mode to render it and this is

0:05:14.240,0:05:19.039
quite easy to

0:05:15.120,0:05:22.560
write down you can use it like in every

0:05:19.039,0:05:23.199
expression so um first we have to call a

0:05:22.560,0:05:27.280
library

0:05:23.199,0:05:29.199
let's load the library library draw

0:05:27.280,0:05:31.520
we have also completion for local

0:05:29.199,0:05:35.039
variable and local

0:05:31.520,0:05:38.240
libraries sorry let me try to finish

0:05:35.039,0:05:40.320
draw okay and we send the line

0:05:38.240,0:05:42.240
so right now we have a leverage and we

0:05:40.320,0:05:43.600
should even have auto completion for the

0:05:42.240,0:05:47.039
library function

0:05:43.600,0:05:50.400
okay we have let's call draw2d

0:05:47.039,0:05:51.199
and now we can call implicit we should

0:05:50.400,0:05:54.400
have

0:05:51.199,0:05:57.520
okay and we can I mean put the variable

0:05:54.400,0:05:58.639
of equations we put the first variable d

0:05:57.520,0:06:02.319
minus

0:05:58.639,0:06:05.280
five d five five

0:06:02.319,0:06:06.639
the v variable the minus five and the

0:06:05.280,0:06:09.680
five

0:06:06.639,0:06:11.759
okay it should be all all good so let me

0:06:09.680,0:06:14.639
try to send it

0:06:11.759,0:06:16.639
okay you cannot see it right now because

0:06:14.639,0:06:19.360
I'm just sharing the maxima screen let

0:06:16.639,0:06:23.520
me try to change that

0:06:19.360,0:06:27.199
okay um

0:06:23.520,0:06:27.199
okay can you plot hello

0:06:31.520,0:06:35.440
okay so this is basically the graph that

0:06:33.919,0:06:38.800
I can upload generates

0:06:35.440,0:06:41.039
uh right now it's not integrated into

0:06:38.800,0:06:42.240
into the maximum package but it's a work

0:06:41.039,0:06:46.000
in progress

0:06:42.240,0:06:50.160
so let's go back to Emacs

0:06:46.000,0:06:53.520
uh where are you okay there you are okay

0:06:50.160,0:06:56.639
okay so um

0:06:53.520,0:06:57.759
let's continue so uh this is some of the

0:06:56.639,0:07:00.000
things that you can use

0:06:57.759,0:07:01.919
for your day-to-day programming in

0:07:00.000,0:07:05.680
maxima

0:07:01.919,0:07:05.680
let's go now with the

0:07:05.759,0:07:08.880
okay as you can see this is just text

0:07:07.360,0:07:11.199
that is render

0:07:08.880,0:07:13.440
okay let's go within a slide this is how

0:07:11.199,0:07:14.400
I use maxima a simple example you don't

0:07:13.440,0:07:16.240
want to

0:07:14.400,0:07:17.919
talk too much about it because everyone

0:07:16.240,0:07:19.680
use the package in a different way

0:07:17.919,0:07:21.039
so right now I'm going to talk about the

0:07:19.680,0:07:23.520
original package and

0:07:21.039,0:07:25.120
the way I change it right so the

0:07:23.520,0:07:27.840
documentation

0:07:25.120,0:07:29.680
of the original was great but for me it

0:07:27.840,0:07:31.840
wasn't embedded in the code

0:07:29.680,0:07:33.599
it was something sometimes hard to read

0:07:31.840,0:07:36.319
like it was like a big

0:07:33.599,0:07:37.039
chunk of comment it gave me all the

0:07:36.319,0:07:40.400
information

0:07:37.039,0:07:44.240
like um for me that's too much I prefer

0:07:40.400,0:07:45.360
a cohesive small comment and then a big

0:07:44.240,0:07:47.759
redmi will order

0:07:45.360,0:07:48.960
all the links and information so that's

0:07:47.759,0:07:52.080
one of the first thing I

0:07:48.960,0:07:52.560
change um then also completion I'm a big

0:07:52.080,0:07:55.759
fan

0:07:52.560,0:07:58.639
I'm used to slime so I'm I love

0:07:55.759,0:08:00.160
great auto completion so um the first

0:07:58.639,0:08:01.840
thing that I noticed that well

0:08:00.160,0:08:04.479
it uses an absolute function I don't

0:08:01.840,0:08:07.039
know if you can see correctly okay

0:08:04.479,0:08:08.800
comment dynamic is deprecated and it

0:08:07.039,0:08:10.720
also have like this

0:08:08.800,0:08:12.720
variable which is maximus symbol which

0:08:10.720,0:08:16.160
is basically a big

0:08:12.720,0:08:19.280
list of all the possible completions so

0:08:16.160,0:08:20.960
if I load the library it's not aware of

0:08:19.280,0:08:23.039
the new symbols or even if I

0:08:20.960,0:08:24.240
create a variable it's not loaded so

0:08:23.039,0:08:26.160
it's not dynamic

0:08:24.240,0:08:28.319
so I want the first thing I want is

0:08:26.160,0:08:31.680
dynamic completion right

0:08:28.319,0:08:34.159
so I improve it which wasn't that hard

0:08:31.680,0:08:36.080
I first of all create maximum completion

0:08:34.159,0:08:38.479
which we're going to see in a moment

0:08:36.080,0:08:39.200
and then it changes completion region so

0:08:38.479,0:08:41.039
this is the

0:08:39.200,0:08:43.760
improved version but the good thing is

0:08:41.039,0:08:45.839
like I decoupled the completion function

0:08:43.760,0:08:47.600
so I make that you can use it on your

0:08:45.839,0:08:50.800
own so you get a prefix

0:08:47.600,0:08:52.560
which is um like

0:08:50.800,0:08:55.040
the thing that you're going to also

0:08:52.560,0:08:56.959
complete you get the inferior process

0:08:55.040,0:08:58.959
which I'm going to talk about later but

0:08:56.959,0:08:59.760
basically it's a maxima process you can

0:08:58.959,0:09:01.760
work with

0:08:59.760,0:09:03.040
and you get an optional argument which

0:09:01.760,0:09:06.399
is fuzzy finding

0:09:03.040,0:09:07.200
okay so you can easily send a block here

0:09:06.399,0:09:10.399
what

0:09:07.200,0:09:11.440
uh with the propos which is a maxima

0:09:10.399,0:09:13.839
command that gets you

0:09:11.440,0:09:14.959
all the auto completion and then you

0:09:13.839,0:09:18.240
process the

0:09:14.959,0:09:20.480
the output and you return a list

0:09:18.240,0:09:21.600
of possible completion this function can

0:09:20.480,0:09:24.800
be easily put into

0:09:21.600,0:09:26.640
company as you can see you just

0:09:24.800,0:09:28.560
get maximum auxiliary inferior process

0:09:26.640,0:09:32.080
is a process that just

0:09:28.560,0:09:35.360
uses sorry I have of

0:09:32.080,0:09:36.480
all the apropos and the get that symbol

0:09:35.360,0:09:39.440
it's like uh

0:09:36.480,0:09:41.360
like you say auxiliary let's help me uh

0:09:39.440,0:09:43.680
for that dirty stuff

0:09:41.360,0:09:44.640
so and process manipulation let's talk

0:09:43.680,0:09:46.959
about

0:09:44.640,0:09:47.920
how the maxima process was in the

0:09:46.959,0:09:50.720
beginning

0:09:47.920,0:09:52.560
so at first it was just one process and

0:09:50.720,0:09:54.560
you send all of the things there

0:09:52.560,0:09:56.320
and you move the processor here and

0:09:54.560,0:09:58.160
there and

0:09:56.320,0:09:59.600
there was a global state right so all

0:09:58.160,0:10:02.000
the function depends on

0:09:59.600,0:10:05.120
variable global variables and I don't

0:10:02.000,0:10:07.680
like that approach I prefer more like a

0:10:05.120,0:10:09.519
shirt to say functional like you sense

0:10:07.680,0:10:12.000
one of things and you return

0:10:09.519,0:10:13.440
something so it's not like a void

0:10:12.000,0:10:16.399
function so to say

0:10:13.440,0:10:18.079
so I change it recipe uh well this is

0:10:16.399,0:10:20.959
the maxima start function now

0:10:18.079,0:10:22.560
let's just create a startup process with

0:10:20.959,0:10:23.680
this function which is maxima make

0:10:22.560,0:10:26.880
inferior

0:10:23.680,0:10:30.000
so this function just gets a name

0:10:26.880,0:10:31.519
and it return a process of maxima and

0:10:30.000,0:10:32.240
you can then manipulate it the way you

0:10:31.519,0:10:35.600
want

0:10:32.240,0:10:36.800
let's see a better version so this is

0:10:35.600,0:10:39.200
the opposite right this

0:10:36.800,0:10:41.760
remove an inferior process and delete

0:10:39.200,0:10:43.440
the process and kill the buffer

0:10:41.760,0:10:45.519
right so let's give an example because

0:10:43.440,0:10:46.399
this you can see pretty easily in this

0:10:45.519,0:10:50.079
example

0:10:46.399,0:10:51.519
so I want to go to the scratch buffer

0:10:50.079,0:10:54.399
which I think you can see it better

0:10:51.519,0:10:55.760
okay so this is the way you can get a

0:10:54.399,0:10:58.320
process with your name

0:10:55.760,0:11:00.880
and save it into a variable right let's

0:10:58.320,0:11:02.880
execute this so as you can see well

0:11:00.880,0:11:03.920
I don't know if you can see big you get

0:11:02.880,0:11:05.839
a process

0:11:03.920,0:11:07.040
let's go to it the process called my

0:11:05.839,0:11:09.519
maxima

0:11:07.040,0:11:10.079
as the buffer right and if we can you

0:11:09.519,0:11:12.240
can send

0:11:10.079,0:11:14.959
stuff to the process right we can call

0:11:12.240,0:11:16.880
maximus in block get a block of valid

0:11:14.959,0:11:17.760
maxima code and just pass the variable

0:11:16.880,0:11:20.800
the process

0:11:17.760,0:11:21.519
and we send code to the process right we

0:11:20.800,0:11:23.440
can

0:11:21.519,0:11:25.760
this is useful if you have some

0:11:23.440,0:11:28.480
expensive computation that you want

0:11:25.760,0:11:29.680
to process laser to say so the process

0:11:28.480,0:11:32.640
can manage it

0:11:29.680,0:11:33.920
and when you get the results correctly

0:11:32.640,0:11:34.399
you can also get the result from the

0:11:33.920,0:11:35.920
process

0:11:34.399,0:11:38.000
I mean I don't put it here but quite

0:11:35.920,0:11:41.200
easy and then you

0:11:38.000,0:11:42.079
removed in favor which is the way to get

0:11:41.200,0:11:43.600
rid of the process

0:11:42.079,0:11:45.279
and the buffer so if we call this

0:11:43.600,0:11:48.399
function we should get rid of the

0:11:45.279,0:11:49.920
this process and it works the processing

0:11:48.399,0:11:54.160
is no longer

0:11:49.920,0:11:56.160
I'm happy to continue so um

0:11:54.160,0:11:57.680
other things that improve the package on

0:11:56.160,0:11:59.760
my commitment during time

0:11:57.680,0:12:01.360
I'm going good okay another thing that I

0:11:59.760,0:12:02.560
did to the package was to add

0:12:01.360,0:12:04.959
continue integration and continue

0:12:02.560,0:12:06.320
delivery right so the package didn't

0:12:04.959,0:12:09.440
have any tests

0:12:06.320,0:12:12.959
and the code was a little bit messy so

0:12:09.440,0:12:16.560
I add integration a test

0:12:12.959,0:12:19.519
and test with the test simple framework

0:12:16.560,0:12:20.560
from rocky bursting the maintainer of

0:12:19.519,0:12:23.279
real

0:12:20.560,0:12:24.079
good which is a great package by the way

0:12:23.279,0:12:25.920
um

0:12:24.079,0:12:28.079
yeah this is one example of the process

0:12:25.920,0:12:29.760
so right now because um

0:12:28.079,0:12:31.680
the infrastructure of the process

0:12:29.760,0:12:33.680
management is decoupled

0:12:31.680,0:12:35.200
so I can test it pretty easily this is

0:12:33.680,0:12:37.519
the test function of the

0:12:35.200,0:12:39.519
inferior running so I can check if an

0:12:37.519,0:12:41.440
inferior is running right now

0:12:39.519,0:12:43.200
and I can just delete it after and get

0:12:41.440,0:12:45.279
the results

0:12:43.200,0:12:46.959
and I also did some integration with the

0:12:45.279,0:12:48.639
party packages the first one company of

0:12:46.959,0:12:50.880
course I love auto completion

0:12:48.639,0:12:53.839
the second one was hormone that was

0:12:50.880,0:12:56.880
already there and latex with the

0:12:53.839,0:13:00.079
um or logic insert form

0:12:56.880,0:13:02.959
and with poly mode because um let me

0:13:00.079,0:13:03.680
evaluate this maxima can understand lisp

0:13:02.959,0:13:06.959
code

0:13:03.680,0:13:10.000
well more or less it has like a

0:13:06.959,0:13:11.279
function so to say that you can send a

0:13:10.000,0:13:13.600
list command to the

0:13:11.279,0:13:14.480
maxima rebel and you can understand it

0:13:13.600,0:13:17.839
in some way so

0:13:14.480,0:13:20.959
we can go to the maxima poly

0:13:17.839,0:13:22.800
only maxima right you enable polymaxima

0:13:20.959,0:13:25.519
and it creates a polymode

0:13:22.800,0:13:26.399
which this is lisp code and this is

0:13:25.519,0:13:28.639
maxima code

0:13:26.399,0:13:30.560
so we can send this to the maxima ripple

0:13:28.639,0:13:34.240
we come to c control r which

0:13:30.560,0:13:37.760
it sends the um the current

0:13:34.240,0:13:40.160
um area region sorry

0:13:37.760,0:13:41.839
and we define a variable which is called

0:13:40.160,0:13:44.000
test and as we can see we have the

0:13:41.839,0:13:47.360
variable test right here so you can

0:13:44.000,0:13:48.079
program in lisp and you can send it to

0:13:47.360,0:13:50.399
maxima

0:13:48.079,0:13:51.920
so this is pretty good pretty nice um

0:13:50.399,0:13:55.040
working integration with

0:13:51.920,0:13:57.120
the slime mode and with swank so you can

0:13:55.040,0:13:59.120
actually have a completion of

0:13:57.120,0:14:00.959
a function inside the maximal list

0:13:59.120,0:14:02.800
package but

0:14:00.959,0:14:04.399
this is going to take quite a while

0:14:02.800,0:14:07.360
because it's not trivial

0:14:04.399,0:14:09.440
so um we're the feature of maxima right

0:14:07.360,0:14:11.519
now well we have fonts highlighting

0:14:09.440,0:14:14.480
smart indentation uh it was already in

0:14:11.519,0:14:16.880
the package but now it's quite better

0:14:14.480,0:14:18.160
great help functions right now I can

0:14:16.880,0:14:20.800
find the recommendation quite

0:14:18.160,0:14:22.160
fast and currently the menu integration

0:14:20.800,0:14:23.120
this is quite basic it needs to be a

0:14:22.160,0:14:25.199
little bit improved

0:14:23.120,0:14:26.720
uh latex support also completion the

0:14:25.199,0:14:28.480
company and maximizer process

0:14:26.720,0:14:29.120
integration and mini buffer I didn't

0:14:28.480,0:14:32.880
show you

0:14:29.120,0:14:34.639
but basically if you call global maxima

0:14:32.880,0:14:36.720
minor mode you have the minor mode you

0:14:34.639,0:14:38.399
call maxima mini buffer

0:14:36.720,0:14:40.720
how are you okay mini buffer you can

0:14:38.399,0:14:42.720
basically just write simple maxima

0:14:40.720,0:14:45.920
command and it will give you the result

0:14:42.720,0:14:48.959
this is like a permanent version of um

0:14:45.920,0:14:50.560
calc so you can do it you write the

0:14:48.959,0:14:52.320
command and you get the output uh way

0:14:50.560,0:14:56.079
more to come I have like a list

0:14:52.320,0:14:58.880
of issues that I put enhancement a new

0:14:56.079,0:15:01.199
feature that I'm going to develop

0:14:58.880,0:15:03.120
so uh the future under presence of the

0:15:01.199,0:15:06.880
package well the package is right now

0:15:03.120,0:15:10.720
melpa a melba stable um

0:15:06.880,0:15:13.360
in this 0.7.6 version

0:15:10.720,0:15:15.279
and I'm planning to include into the

0:15:13.360,0:15:16.720
known canoe alpha

0:15:15.279,0:15:18.959
this is the url of the package by the

0:15:16.720,0:15:20.079
way so you can if you go to metapod you

0:15:18.959,0:15:22.160
put maxima and

0:15:20.079,0:15:23.199
you can download it it doesn't have too

0:15:22.160,0:15:26.639
much dependencies

0:15:23.199,0:15:27.120
you aware of that um and thank you very

0:15:26.639,0:15:28.720
much

0:15:27.120,0:15:30.959
uh this is going to be my talk these are

0:15:28.720,0:15:33.519
my uh information

0:15:30.959,0:15:34.000
this is my gitlab this is my page which

0:15:33.519,0:15:37.120
I don't

0:15:34.000,0:15:40.240
love too much and this is my email

0:15:37.120,0:15:41.839
so um thank you very much and I will be

0:15:40.240,0:15:44.720
answering some questions right now

0:15:41.839,0:15:44.720
and happy hacking

0:15:45.600,0:15:52.720
you are now unmuted thank you very much

0:15:49.600,0:15:55.759
vermin for the great talk um okay yeah

0:15:52.720,0:15:58.800
let's see if you have any questions

0:15:55.759,0:16:01.759
uh yeah I'm reading like this um

0:15:58.800,0:16:04.079
so I'm a buddy october usually right now

0:16:01.759,0:16:04.079
okay

0:16:04.560,0:16:08.639
maxima over october yep there are a

0:16:06.880,0:16:11.519
couple questions

0:16:08.639,0:16:12.160
wow maxima we're okay I don't want to I

0:16:11.519,0:16:13.940
don't know

0:16:12.160,0:16:15.680
october that much um

0:16:13.940,0:16:17.839
[Music]

0:16:15.680,0:16:18.880
like I use it like a couple of times but

0:16:17.839,0:16:24.000
I'm not happy

0:16:18.880,0:16:27.120
and I found the octave packets to be

0:16:24.000,0:16:31.519
quite a little bit harder to understand

0:16:27.120,0:16:33.839
and also that

0:16:31.519,0:16:35.680
it didn't have too much features like I

0:16:33.839,0:16:37.839
prefer the maximum used to

0:16:35.680,0:16:38.880
maybe octave is better I don't I'm not

0:16:37.839,0:16:40.800
100 sure

0:16:38.880,0:16:42.079
I know that you can use it for similar

0:16:40.800,0:16:45.920
stuff but

0:16:42.079,0:16:45.920
that's it so sorry

0:16:47.120,0:16:54.079
okay I'm in a little bit of a rush sorry

0:16:50.959,0:16:56.399
let me drink a little blue okay

0:16:54.079,0:16:56.399
okay

0:17:00.639,0:17:08.000
okay how does maxima compare to sagemath

0:17:05.280,0:17:08.000
in imax

0:17:08.959,0:17:17.439
I mean I don't know what is sage

0:17:13.360,0:17:18.079
math I'm sorry um so I cannot answer

0:17:17.439,0:17:21.839
your question

0:17:18.079,0:17:25.039
with your question I think um

0:17:21.839,0:17:26.720
sorry but I mean maxima is ready in

0:17:25.039,0:17:28.000
combo list that's just a preference for

0:17:26.720,0:17:31.120
me because I like

0:17:28.000,0:17:35.520
lisp dialect and common lisp is

0:17:31.120,0:17:35.520
interesting um

0:17:36.400,0:17:42.720
yeah do you plan to

0:17:40.480,0:17:43.840
I mean a maximum organization for maxima

0:17:42.720,0:17:47.360
code block

0:17:43.840,0:17:50.720
yes I want to improve the um

0:17:47.360,0:17:52.000
of maxima package but I didn't have

0:17:50.720,0:17:54.400
enough time and I want to

0:17:52.000,0:17:57.200
clear a little bit of the code because

0:17:54.400,0:17:57.200
still right now

0:17:58.000,0:18:02.080
the code is quite messy in some areas

0:18:00.080,0:18:03.520
because I pretty much implement first

0:18:02.080,0:18:05.600
the base function I want to

0:18:03.520,0:18:07.120
build on top of so right now it's quite

0:18:05.600,0:18:07.919
usable but I still have something that I

0:18:07.120,0:18:11.120
want to improve

0:18:07.919,0:18:14.799
so when I finish that I will

0:18:11.120,0:18:16.640
improve the normal version I think

0:18:14.799,0:18:18.640
it's maximizing to get into into your

0:18:16.640,0:18:21.200
opinion yes I

0:18:18.640,0:18:21.919
I think that the creator of maxima like

0:18:21.200,0:18:26.400
have this

0:18:21.919,0:18:26.400
lisp mine and probably

0:18:26.640,0:18:30.559
that they if you go to a symbol you get

0:18:29.520,0:18:33.520
all the information

0:18:30.559,0:18:36.480
and that reflects that you can actually

0:18:33.520,0:18:40.000
write your program of maxima into

0:18:36.480,0:18:40.799
um into lisp literally because they have

0:18:40.000,0:18:42.480
a command

0:18:40.799,0:18:44.880
so I think that is quite easy to get

0:18:42.480,0:18:48.240
into some university use it for

0:18:44.880,0:18:51.200
um first um

0:18:48.240,0:18:53.039
years so it's quite easy and I think

0:18:51.200,0:18:56.640
with my package you can use it

0:18:53.039,0:18:58.960
like pretty pretty easily just create a

0:18:56.640,0:19:00.880
file and you can start typing and

0:18:58.960,0:19:04.400
maximize quite easy to install also

0:19:00.880,0:19:07.600
so I think yeah it's crazy and

0:19:04.400,0:19:10.080
the page should restart I don't know why

0:19:07.600,0:19:10.080
sorry

0:19:18.320,0:19:25.440
strict in fixed lisp syntax

0:19:22.559,0:19:26.240
you're talking about the maxima itself

0:19:25.440,0:19:27.760
syntax

0:19:26.240,0:19:30.160
or I don't understand the question

0:19:27.760,0:19:30.160
correctly

0:19:32.240,0:19:35.440
well I'm going to go to the next

0:19:33.679,0:19:37.360
question is there

0:19:35.440,0:19:38.880
support for images in maximum mode not

0:19:37.360,0:19:43.840
right now

0:19:38.880,0:19:43.840
the way I want to implement some imax

0:19:45.280,0:19:51.280
things uh is there support for

0:19:49.120,0:19:53.360
but right now it doesn't have like a if

0:19:51.280,0:19:55.600
you could want to have a new plot

0:19:53.360,0:19:56.720
um inside you buffer right now it's not

0:19:55.600,0:19:59.360
possible so

0:19:56.720,0:20:01.200
that's the thing that I maximized that

0:19:59.360,0:20:03.520
maxima.l still doesn't

0:20:01.200,0:20:04.720
do which university you start to use

0:20:03.520,0:20:08.799
maxima um

0:20:04.720,0:20:11.840
in this aragosa university from spain

0:20:08.799,0:20:12.640
they used to maximize the um thing in

0:20:11.840,0:20:16.400
the engineer

0:20:12.640,0:20:18.320
and in the math also so I'm 100 sure

0:20:16.400,0:20:19.679
right now but when I started

0:20:18.320,0:20:22.559
are you planning to option your package

0:20:19.679,0:20:25.440
into maxima um I don't know about that

0:20:22.559,0:20:26.320
because uh maybe can be a little bit

0:20:25.440,0:20:30.720
messy

0:20:26.320,0:20:32.960
um because the maxima ripple is more

0:20:30.720,0:20:33.360
built around like maxima itself and they

0:20:32.960,0:20:37.600
don't

0:20:33.360,0:20:42.240
update the interfaces that much

0:20:37.600,0:20:45.360
I have no problem like it's okay it just

0:20:42.240,0:20:46.320
you have to um if you want to push you

0:20:45.360,0:20:48.480
can push in other

0:20:46.320,0:20:49.520
repository I mean it's just changed the

0:20:48.480,0:20:52.880
file another way

0:20:49.520,0:20:54.080
but also the test um is going to be a

0:20:52.880,0:20:55.200
little bit harder because I think

0:20:54.080,0:20:59.120
they're using

0:20:55.200,0:21:01.200
search for and I'm using

0:20:59.120,0:21:02.159
git lab continue integration within the

0:21:01.200,0:21:06.799
jury

0:21:02.159,0:21:09.679
so yeah I don't think that now unmuted

0:21:06.799,0:21:09.679
yeah it will be nice

0:21:10.799,0:21:14.840
okay um it's possible to include

0:21:12.799,0:21:16.480
maximizing or false similar to jupiter

0:21:14.840,0:21:19.919
notebooks

0:21:16.480,0:21:23.280
um I mean you can uh use maximize your

0:21:19.919,0:21:26.320
or files and you have maximum l mod

0:21:23.280,0:21:31.520
integrated and you can like create put

0:21:26.320,0:21:34.400
that code into a buffer and then

0:21:31.520,0:21:36.159
uh edited correctly but it is now not it

0:21:34.400,0:21:37.679
doesn't have like all the features like

0:21:36.159,0:21:40.480
other languages because

0:21:37.679,0:21:42.320
right now uh as my understanding is

0:21:40.480,0:21:45.440
quite basic so I still have some

0:21:42.320,0:21:47.679
still needs some some stuff some work

0:21:45.440,0:21:47.679
around

0:21:47.919,0:21:51.760
okay I think that's it

0:21:52.320,0:21:55.440
you are now unmuted

0:21:56.320,0:22:01.919
yep so that's it uh thank you very much

0:21:59.600,0:22:04.640
fermin for your live talk and for you

0:22:01.919,0:22:07.679
know the live q a

0:22:04.640,0:22:09.840
thank you all amazing uh max conf

0:22:07.679,0:22:10.720
cheers thank you it's thanks to you all

0:22:09.840,0:22:16.240
you guys

0:22:10.720,0:22:16.240
it's awesome okay thank you cheers bye

0:22:16.840,0:22:19.840
bye