blob: 6810a3597823cd57497063ab6cdbbbbaa791d39b (
plain) (
tree)
|
|
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
|