Afrikaans
Akan
Albanian
Amharic
Arabic
Armenian
Azerbaijani
Basque
Belarusian
Bemba
Bengali
Bihari
Bosnian
Breton
Bulgarian
Cambodian
Catalan
Cebuano
Cherokee
Chichewa
Chinese (Traditional)
Corsican
Croatian
Czech
Danish
Dutch
English
Esperanto
Estonian
Ewe
Faroese
Filipino
Finnish
French
Frisian
Ga
Galician
Georgian
German
Greek
Guarani
Gujarati
Haitian Creole
Hausa
Hawaiian
Hebrew
Hindi
Hmong
Hungarian
Icelandic
Igbo
Indonesian
Interlingua
Irish
Italian
Japanese
Javanese
Kannada
Kazakh
Kinyarwanda
Kirundi
Kongo
Korean
Krio (Sierra Leone)
Kurdish
Kurdish (Soranî)
Kyrgyz
Laothian
Latin
Latvian
Lingala
Lithuanian
Lozi
Luganda
Luo
Luxembourgish
Macedonian
Malagasy
Malay
Malayalam
Maltese
Maori
Marathi
Mauritian Creole
Moldavian
Mongolian
Myanmar (Burmese)
Montenegrin
Nepali
Nigerian Pidgin
Northern Sotho
Norwegian
Norwegian (Nynorsk)
Occitan
Oriya
Oromo
Pashto
Persian
Polish
Portuguese (Brazil)
Portuguese (Portugal)
Punjabi
Quechua
Romanian
Romansh
Runyakitara
Russian
Samoan
Scots Gaelic
Serbian
Serbo-Croatian
Sesotho
Setswana
Seychellois Creole
Shona
Sindhi
Sinhalese
Slovak
Slovenian
Somali
Spanish
Spanish (Latin American)
Sundanese
Swahili
Swedish
Tajik
Tamil
Tatar
Telugu
Thai
Tigrinya
Tonga
Tshiluba
Tumbuka
Turkish
Turkmen
Twi
Uighur
Ukrainian
Urdu
Uzbek
Vietnamese
Welsh
Wolof
Xhosa
Yiddish
Yoruba
Zulu
so welcome to this presentation which I
so welcome to this presentation which I
so welcome to this presentation which I called or mode literate programming Emax
called or mode literate programming Emax
called or mode literate programming Emax and this is a recording of a talk I had
and this is a recording of a talk I had
and this is a recording of a talk I had the other week and I would just start by
the other week and I would just start by
the other week and I would just start by saying that I'm using Emacs version 27
saying that I'm using Emacs version 27
saying that I'm using Emacs version 27 and I'm using a configuration called
and I'm using a configuration called
and I'm using a configuration called doom and it's available when github it's
doom and it's available when github it's
doom and it's available when github it's an Emacs configuration for the stubborn
an Emacs configuration for the stubborn
an Emacs configuration for the stubborn Martian Beamer so it has a lot of
Martian Beamer so it has a lot of
Martian Beamer so it has a lot of support for for evil and the usage of VI
support for for evil and the usage of VI
support for for evil and the usage of VI emulation in Emacs
emulation in Emacs
emulation in Emacs so the in case I've mentioned any key
so the in case I've mentioned any key
so the in case I've mentioned any key bindings some of them might be native
bindings some of them might be native
bindings some of them might be native Emacs key bindings some of them could be
VI just Reno and actually odd mode was
VI just Reno and actually odd mode was
VI just Reno and actually odd mode was the the thing that brought me to Emacs
the the thing that brought me to Emacs
the the thing that brought me to Emacs and I started using it
and I started using it
and I started using it advanced note-taking program so
advanced note-taking program so
advanced note-taking program so hopefully we will see why but if you're
hopefully we will see why but if you're
hopefully we will see why but if you're not familiar with Emacs I would start to
not familiar with Emacs I would start to
not familiar with Emacs I would start to say that Emacs has these different modes
say that Emacs has these different modes
say that Emacs has these different modes and some of them are called major modes
and some of them are called major modes
and some of them are called major modes so if you open a C++ file for example
so if you open a C++ file for example
so if you open a C++ file for example there will be the C++ mode which kicks
there will be the C++ mode which kicks
there will be the C++ mode which kicks them provides you with the syntax
them provides you with the syntax
them provides you with the syntax highlighting or completion statements
highlighting or completion statements
highlighting or completion statements etc and or move them naturally yes
etc and or move them naturally yes
etc and or move them naturally yes activate it when you open work files so
activate it when you open work files so
activate it when you open work files so work files are these special files and I
work files are these special files and I
work files are these special files and I thought book starts by looking at the
thought book starts by looking at the
thought book starts by looking at the content of one of these files so here I
content of one of these files so here I
content of one of these files so here I have the content of an order filed and
have the content of an order filed and
have the content of an order filed and in the right bottom corner you will see
in the right bottom corner you will see
in the right bottom corner you will see fundamental that indicates that I mean
fundamental that indicates that I mean
fundamental that indicates that I mean fundamental mode and now I'm actually
fundamental mode and now I'm actually
fundamental mode and now I'm actually just just seeing plain text here because
just just seeing plain text here because
just just seeing plain text here because that's that's what an org file is and
that's that's what an org file is and
that's that's what an org file is and we're using these asterisks to signal
we're using these asterisks to signal
we're using these asterisks to signal that this is a heading we can include
that this is a heading we can include
that this is a heading we can include links to to decide
at least like this weekend on a numbered
at least like this weekend on a numbered
at least like this weekend on a numbered list
list
list tables etc and the fact that it's plain
tables etc and the fact that it's plain
tables etc and the fact that it's plain text makes it very easy to work with
text makes it very easy to work with
text makes it very easy to work with it's easy to grab for content or open it
it's easy to grab for content or open it
it's easy to grab for content or open it in another editor or your version
in another editor or your version
in another editor or your version control for example so so this is the
control for example so so this is the
control for example so so this is the this is what it actually is but I will
this is what it actually is but I will
this is what it actually is but I will activate all the holder and now I've got
activate all the holder and now I've got
activate all the holder and now I've got everything got folded here so here's the
everything got folded here so here's the
everything got folded here so here's the top heading I press shift and it will
top heading I press shift and it will
top heading I press shift and it will expand press shift again and we'll close
expand press shift again and we'll close
expand press shift again and we'll close the D content like this then move to the
the D content like this then move to the
the D content like this then move to the to the link I'll press ENTER and it will
to the link I'll press ENTER and it will
to the link I'll press ENTER and it will open up linkie browser here go back the
open up linkie browser here go back the
open up linkie browser here go back the subheading there's list press meta
subheading there's list press meta
subheading there's list press meta answer I turn my turn next one meta
answer I turn my turn next one meta
answer I turn my turn next one meta answer again over some new
maybe I want to add another heading you
maybe I want to add another heading you
maybe I want to add another heading you know I press control enter this gives me
know I press control enter this gives me
know I press control enter this gives me a new heading I can press tab to denote
a new heading I can press tab to denote
a new heading I can press tab to denote the adding shift to either a table
the adding shift to either a table
the adding shift to either a table containing some text so time heading the
containing some text so time heading the
containing some text so time heading the mom's heading shift time adding promotes
mom's heading shift time adding promotes
mom's heading shift time adding promotes hanging content there you know I think
hanging content there you know I think
hanging content there you know I think we got too long again but of course
we got too long again but of course
we got too long again but of course email solstice for us so it's just tab
email solstice for us so it's just tab
email solstice for us so it's just tab and will correct the the table for us
and will correct the the table for us
and will correct the the table for us enter sweet we can move to the top here
enter sweet we can move to the top here
enter sweet we can move to the top here these guys the Emax and one more here
these guys the Emax and one more here
these guys the Emax and one more here that's tags tagging headings could be
that's tags tagging headings could be
that's tags tagging headings could be can be useful for fine
can be useful for fine
can be useful for fine or filtering content later I can change
or filtering content later I can change
or filtering content later I can change this heading to to do and now I think
this heading to to do and now I think
this heading to to do and now I think I've gone through like the basics here I
I've gone through like the basics here I
I've gone through like the basics here I mean one thing to know is that the org
mean one thing to know is that the org
mean one thing to know is that the org movement is massive it's really this
movement is massive it's really this
movement is massive it's really this huge universe of possibilities so these
huge universe of possibilities so these
huge universe of possibilities so these are your summary and rudimentary basics
are your summary and rudimentary basics
are your summary and rudimentary basics that that you can do but now when I have
that that you can do but now when I have
that that you can do but now when I have this to do adding I can just press enter
this to do adding I can just press enter
this to do adding I can just press enter and it will mark it as done and I will
and it will mark it as done and I will
and it will mark it as done and I will get a timestamp to where I closed it
get a timestamp to where I closed it
get a timestamp to where I closed it this is nice if we now look at the mode
this is nice if we now look at the mode
this is nice if we now look at the mode line at the bottom here we can see the
line at the bottom here we can see the
line at the bottom here we can see the number 978 and then there's this symbol
number 978 and then there's this symbol
number 978 and then there's this symbol with two arrows pointing inwards and
with two arrows pointing inwards and
with two arrows pointing inwards and that indicates that I've actually
that indicates that I've actually
that indicates that I've actually narrowed the content of this file called
narrowed the content of this file called
narrowed the content of this file called live presentation of org so we're not
live presentation of org so we're not
live presentation of org so we're not seeing the whole buffer here I can use
seeing the whole buffer here I can use
seeing the whole buffer here I can use the command item and here's the
the command item and here's the
the command item and here's the presentation as it was there all along
presentation as it was there all along
presentation as it was there all along but I was hiding it and that's not a
but I was hiding it and that's not a
but I was hiding it and that's not a great feature because makes it much
great feature because makes it much
great feature because makes it much easier to focus you know
easier to focus you know
easier to focus you know I say yeah let's go to the next one
I say yeah let's go to the next one
I say yeah let's go to the next one versus a literate program and obviously
versus a literate program and obviously
versus a literate program and obviously it's now yeah so now sub-tree control
it's now yeah so now sub-tree control
it's now yeah so now sub-tree control xns so here's little programming and I
xns so here's little programming and I
xns so here's little programming and I will start by saying that there's a lot
will start by saying that there's a lot
will start by saying that there's a lot of great content out there a lot of good
of great content out there a lot of good
of great content out there a lot of good ideas to watch on YouTube for example so
ideas to watch on YouTube for example so
ideas to watch on YouTube for example so I'm really inspired by the work of
I'm really inspired by the work of
I'm really inspired by the work of Howard Abrams I like the presentation of
Howard Abrams I like the presentation of
Howard Abrams I like the presentation of normo by harris warts
normo by harris warts
normo by harris warts mike Szymanski's video series or the
mike Szymanski's video series or the
mike Szymanski's video series or the Emacs rock video series as well as your
Emacs rock video series as well as your
Emacs rock video series as well as your some of the interesting content out
some of the interesting content out
some of the interesting content out there but I think it's always
there but I think it's always
there but I think it's always interesting to see other people's
interesting to see other people's
interesting to see other people's workflows and the usage of this tool
workflows and the usage of this tool
workflows and the usage of this tool because it's it's really massive I mean
because it's it's really massive I mean
because it's it's really massive I mean sometimes it's in axis mention as a text
sometimes it's in axis mention as a text
sometimes it's in axis mention as a text editor and that's a huge understatement
editor and that's a huge understatement
editor and that's a huge understatement I mean it transcends what a text editor
I mean it transcends what a text editor
I mean it transcends what a text editor is it's I think some are calling it
is it's I think some are calling it
is it's I think some are calling it almost like a list machine and these
almost like a list machine and these
almost like a list machine and these machines were popular computers back in
machines were popular computers back in
machines were popular computers back in the eighties where they were completely
the eighties where they were completely
the eighties where they were completely hackable so you could hack the operating
hackable so you could hack the operating
hackable so you could hack the operating system while I was running and
system while I was running and
system while I was running and everything everything was built on Lisp
everything everything was built on Lisp
everything everything was built on Lisp now it's not fully that but he's much
now it's not fully that but he's much
now it's not fully that but he's much closer to that for me than a text editor
closer to that for me than a text editor
closer to that for me than a text editor and that takes some time to wrap your
and that takes some time to wrap your
and that takes some time to wrap your mind around because I wasn't used to
mind around because I wasn't used to
mind around because I wasn't used to thinking about a tool like this so it's
thinking about a tool like this so it's
thinking about a tool like this so it's more like this massive programming
more like this massive programming
more like this massive programming environment where everything is
environment where everything is
environment where everything is programmable so hopefully you will find
programmable so hopefully you will find
programmable so hopefully you will find this some finds I mean new inspiration
this some finds I mean new inspiration
this some finds I mean new inspiration from this presentation but if you focus
from this presentation but if you focus
from this presentation but if you focus on literate programming this is for me
on literate programming this is for me
on literate programming this is for me the great thing is that you can you can
the great thing is that you can you can
the great thing is that you can you can mix code and regular text so it makes it
mix code and regular text so it makes it
mix code and regular text so it makes it very easy to like if you do something
very easy to like if you do something
very easy to like if you do something for the first time just you know
for the first time just you know
for the first time just you know document what commands you're using and
document what commands you're using and
document what commands you're using and what they're actually doing
what they're actually doing
what they're actually doing or if you're digging into like some
or if you're digging into like some
or if you're digging into like some programming construct or or an algorithm
programming construct or or an algorithm
programming construct or or an algorithm you can can have blocks of code and
you can can have blocks of code and
you can can have blocks of code and notes associated to it so what makes it
notes associated to it so what makes it
notes associated to it so what makes it possible to bring the context together
possible to bring the context together
possible to bring the context together you can have the code and you can have
you can have the code and you can have
you can have the code and you can have the notes now in work mode little
the notes now in work mode little
the notes now in work mode little programming is provided by an extension
programming is provided by an extension
programming is provided by an extension called Babel so and we can create source
called Babel so and we can create source
called Babel so and we can create source code blocks and then us type less than s
code blocks and then us type less than s
code blocks and then us type less than s tab and create these beginning as first
tab and create these beginning as first
tab and create these beginning as first and SRC and everything perhaps at a node
and SRC and everything perhaps at a node
and SRC and everything perhaps at a node so before doing terminal now this source
so before doing terminal now this source
so before doing terminal now this source code box we can actually specify the
code box we can actually specify the
code box we can actually specify the language the simplest and I think
language the simplest and I think
language the simplest and I think changed a bit
changed a bit
changed a bit but that's not the only thing here it
but that's not the only thing here it
but that's not the only thing here it actually makes this code block
actually makes this code block
actually makes this code block executable so if I press ENTER it will
executable so if I press ENTER it will
executable so if I press ENTER it will actually run these commands and take the
actually run these commands and take the
actually run these commands and take the output and put it in this result over
output and put it in this result over
output and put it in this result over here so that's really awesome
here so that's really awesome
here so that's really awesome I mean Quranic man automatically get it
I mean Quranic man automatically get it
I mean Quranic man automatically get it documented what it did and of course it
documented what it did and of course it
documented what it did and of course it supports other languages as well so
let's look at this please so and that's
let's look at this please so and that's
let's look at this please so and that's a at least dialect that's really one of
a at least dialect that's really one of
a at least dialect that's really one of the cool features of Emacs is that is
the cool features of Emacs is that is
the cool features of Emacs is that is written in any list so I couldn't write
written in any list so I couldn't write
written in any list so I couldn't write some examples out there and run Python
supreme but the resource is not and
supreme but the resource is not and
supreme but the resource is not and that's because some language is by
that's because some language is by
that's because some language is by default it doesn't really
there are some there are some settings
there are some there are some settings
there are some there are some settings here that we unset and the default
here that we unset and the default
here that we unset and the default wonderful person is that results will
wonderful person is that results will
wonderful person is that results will show a value so what we need to do is
show a value so what we need to do is
show a value so what we need to do is actually turn around and then we get
actually turn around and then we get
actually turn around and then we get hello there
hello there
hello there however this is this is not really
however this is this is not really
however this is this is not really showing what print does in Python so
showing what print does in Python so
showing what print does in Python so instead we can undo this part and I can
instead we can undo this part and I can
instead we can undo this part and I can change this to value and then you get it
change this to value and then you get it
change this to value and then you get it quick let's take a look at another
quick let's take a look at another
quick let's take a look at another language like six plus specifies a CPP
language like six plus specifies a CPP
language like six plus specifies a CPP [Music]
[Music]
[Music] and of course I need to type some water
and of course I need to type some water
and of course I need to type some water and I find it more comfortable to write
to do in something like there's a we can
to do in something like there's a we can
to do in something like there's a we can press control-c and single point and
press control-c and single point and
press control-c and single point and that brings the content up in this
that brings the content up in this
that brings the content up in this pop-up to the buffer and here I will
pop-up to the buffer and here I will
pop-up to the buffer and here I will have the crate syntax highlighting and I
have the crate syntax highlighting and I
have the crate syntax highlighting and I have that as well but I could have
have that as well but I could have
have that as well but I could have access to to the formatting or snippets
access to to the formatting or snippets
access to to the formatting or snippets if I'd like to use that etc so that's
if I'd like to use that etc so that's
if I'd like to use that etc so that's really useful
yeah it's all very for example here I
yeah it's all very for example here I
yeah it's all very for example here I got some expected function body off the
got some expected function body off the
got some expected function body off the fraction decorator so it is it's
fraction decorator so it is it's
fraction decorator so it is it's limiting the code for me
so that's nice of course we can work
so that's nice of course we can work
so that's nice of course we can work with the wind more advanced examples as
with the wind more advanced examples as
with the wind more advanced examples as well we're not only restricted to to
well we're not only restricted to to
well we're not only restricted to to something yet a CCS and I know they're
something yet a CCS and I know they're
something yet a CCS and I know they're so let's have a look at how that could
so let's have a look at how that could
so let's have a look at how that could work
so here I have the C++ and here pass
so here I have the C++ and here pass
so here I have the C++ and here pass something an argument flags and here can
something an argument flags and here can
something an argument flags and here can specify like two paths to see the
specify like two paths to see the
specify like two paths to see the library hi again I can specify the
library hi again I can specify the
library hi again I can specify the version that the compiler should use so
version that the compiler should use so
version that the compiler should use so C dot plus 17 and I'm including some
C dot plus 17 and I'm including some
C dot plus 17 and I'm including some stuff here I again I created matrix and
stuff here I again I created matrix and
stuff here I again I created matrix and creating a vector multiply the matrix
creating a vector multiply the matrix
creating a vector multiply the matrix and vector just run this code I get some
and vector just run this code I get some
and vector just run this code I get some numbers
so what not only it have we support here
so what not only it have we support here
so what not only it have we support here for it for four simple simple blocks but
for it for four simple simple blocks but
for it for four simple simple blocks but we can make them quite advanced as well
[Music]
[Music]
[Music] now I will provide in a presentation
now I will provide in a presentation
now I will provide in a presentation again and go to the next country this is
again and go to the next country this is
again and go to the next country this is chaining acoustics this is another
chaining acoustics this is another
chaining acoustics this is another important feature to know and that is if
important feature to know and that is if
important feature to know and that is if if we have this for example can we
if we have this for example can we
if we have this for example can we create a variable called name and we
create a variable called name and we
create a variable called name and we echo the value but let's say we are
echo the value but let's say we are
echo the value but let's say we are totally beginner if we really want to
totally beginner if we really want to
totally beginner if we really want to document what what happens in different
document what what happens in different
document what what happens in different steps we need to split up the code so we
steps we need to split up the code so we
steps we need to split up the code so we can do that we can create a variable and
first around that block and then we have
first around that block and then we have
first around that block and then we have some more tapes and the next box
some more tapes and the next box
some more tapes and the next box unfortunately though the the output is
unfortunately though the the output is
unfortunately though the the output is something because this variable minor
something because this variable minor
something because this variable minor him that's not set in this block and in
him that's not set in this block and in
him that's not set in this block and in these blocks are not connected in any
these blocks are not connected in any
these blocks are not connected in any way so that's what's missing here and
way so that's what's missing here and
way so that's what's missing here and then enclosed a whole session so that's
then enclosed a whole session so that's
then enclosed a whole session so that's a head of argument so if you give this
a head of argument so if you give this
a head of argument so if you give this block our session and the session name
block our session and the session name
block our session and the session name session shall chain the first execute
session shall chain the first execute
session shall chain the first execute this then moved
this then moved
this then moved and we lurk and we can see in background
and we lurk and we can see in background
and we lurk and we can see in background that's we have this system fishin shall
that's we have this system fishin shall
that's we have this system fishin shall chain that need something same and so
chain that need something same and so
chain that need something same and so here's here's the deer running shell
here's here's the deer running shell
here's here's the deer running shell obsession
obsession
obsession she's running there in the background so
she's running there in the background so
she's running there in the background so we can write the new box and execute in
we can write the new box and execute in
we can write the new box and execute in the same sort of like environment and we
the same sort of like environment and we
the same sort of like environment and we have support for for under languages as
have support for for under languages as
have support for for under languages as well which have these sort of like rebel
well which have these sort of like rebel
well which have these sort of like rebel based like Python which has the ipython
based like Python which has the ipython
based like Python which has the ipython so you can start Python and work
so you can start Python and work
so you can start Python and work interactively Sara have some Python code
interactively Sara have some Python code
interactively Sara have some Python code it is create a function called calculate
it is create a function called calculate
it is create a function called calculate sum and in the next block I want to use
sum and in the next block I want to use
sum and in the next block I want to use this some calling calculate sum over
this some calling calculate sum over
this some calling calculate sum over here but I don't have a session command
here but I don't have a session command
here but I don't have a session command specifically so I need to do that for
specifically so I need to do that for
specifically so I need to do that for each block and instead of doing it for
each block and instead of doing it for
each block and instead of doing it for each bug I can do
using the same terminology here so
using the same terminology here so
using the same terminology here so execute this command throw something
execute this command throw something
execute this command throw something warning there that I haven't looked into
warning there that I haven't looked into
warning there that I haven't looked into so that seemed to work I can press ENTER
so that seemed to work I can press ENTER
so that seemed to work I can press ENTER on this block and it can actually call
on this block and it can actually call
on this block and it can actually call the calculation so this is a really
the calculation so this is a really
the calculation so this is a really really nice feature for languages which
really nice feature for languages which
really nice feature for languages which supports this argument or work for
supports this argument or work for
supports this argument or work for shells I mean it comes naturally but
shells I mean it comes naturally but
shells I mean it comes naturally but that's not this true for all languages
that's not this true for all languages
that's not this true for all languages so what other things do we have in our
so what other things do we have in our
so what other things do we have in our toolbox we can do some composing of
toolbox we can do some composing of
toolbox we can do some composing of blocks is that so there is a feature
blocks is that so there is a feature
blocks is that so there is a feature called in a know web so we can take a
called in a know web so we can take a
called in a know web so we can take a look at the previous Python example if
look at the previous Python example if
look at the previous Python example if so I guess the function again and here's
so I guess the function again and here's
so I guess the function again and here's the other block the one has changed here
the other block the one has changed here
the other block the one has changed here is that I've given it a name so this
is that I've given it a name so this
is that I've given it a name so this block has the name - calc and that makes
block has the name - calc and that makes
block has the name - calc and that makes it possible for us to reference that
it possible for us to reference that
it possible for us to reference that block in other blocks another key
block in other blocks another key
block in other blocks another key feature is to enable this know web and
feature is to enable this know web and
feature is to enable this know web and here is the syntax - its reference not a
here is the syntax - its reference not a
here is the syntax - its reference not a block so less than less than PI some job
block so less than less than PI some job
block so less than less than PI some job great to anchor it down yeah
great to anchor it down yeah
great to anchor it down yeah and that's actually what will happen
and that's actually what will happen
and that's actually what will happen here is test you will take the decode
here is test you will take the decode
here is test you will take the decode from the other block and in line it's
from the other block and in line it's
from the other block and in line it's behind the scenes in this block so
behind the scenes in this block so
behind the scenes in this block so pressing enter here will execute now
pressing enter here will execute now
pressing enter here will execute now another feature of this which I
another feature of this which I
another feature of this which I personally find very cool is that we can
personally find very cool is that we can
personally find very cool is that we can actually also mix languages with some
actually also mix languages with some
actually also mix languages with some some restrictions so we can do something
some restrictions so we can do something
some restrictions so we can do something like this so we mix price on and here
like this so we mix price on and here
like this so we mix price on and here this code now this block is very similar
this code now this block is very similar
this code now this block is very similar to to the one out there we're including
to to the one out there we're including
to to the one out there we're including title calc
title calc
title calc but when we enter it in the numbers here
but when we enter it in the numbers here
but when we enter it in the numbers here we are actually calling the illest code
we are actually calling the illest code
we are actually calling the illest code now of course these code can be inlined
now of course these code can be inlined
now of course these code can be inlined hirako start
hirako start
hirako start not run in Python but when we had the
not run in Python but when we had the
not run in Python but when we had the trans diseases to the to the name we are
trans diseases to the to the name we are
trans diseases to the to the name we are not in line in the code that in lining
not in line in the code that in lining
not in line in the code that in lining the result of the other block so this
the result of the other block so this
the result of the other block so this block for example evaluates to 74
block for example evaluates to 74
block for example evaluates to 74 therefore this one which is a much
therefore this one which is a much
therefore this one which is a much larger number because here's the sum
larger number because here's the sum
larger number because here's the sum becomes much bigger than before because
becomes much bigger than before because
becomes much bigger than before because we were using the Forex in range 20
we were using the Forex in range 20
we were using the Forex in range 20 before now it's in 74 so that's that's a
before now it's in 74 so that's that's a
before now it's in 74 so that's that's a way to to actually mix languages as well
way to to actually mix languages as well
way to to actually mix languages as well I found it useful sometimes actually
I found it useful sometimes actually
I found it useful sometimes actually otherwise
yeah so I'll stop here note-taking
yeah so I'll stop here note-taking
yeah so I'll stop here note-taking well obviously mixing mixing code and
well obviously mixing mixing code and
well obviously mixing mixing code and you know words it's really great here
you know words it's really great here
you know words it's really great here and this makes also for me at least or
and this makes also for me at least or
and this makes also for me at least or more to be a super great tool for for
more to be a super great tool for for
more to be a super great tool for for learning for learning new things
learning for learning new things
learning for learning new things especially if you're if you're studying
especially if you're if you're studying
especially if you're if you're studying a program for example because then you
a program for example because then you
a program for example because then you might have might have some man a book
might have might have some man a book
might have might have some man a book that you're following and there might be
that you're following and there might be
that you're following and there might be things that you wanna take notes on
things that you wanna take notes on
things that you wanna take notes on examples that you wanna play around with
examples that you wanna play around with
examples that you wanna play around with yourself I mean you can learn a lot by
yourself I mean you can learn a lot by
yourself I mean you can learn a lot by like experimented with examples and see
like experimented with examples and see
like experimented with examples and see what happens it should change something
what happens it should change something
what happens it should change something right so it makes it natural for that
right so it makes it natural for that
right so it makes it natural for that and I can show you some notes that I've
and I can show you some notes that I've
and I can show you some notes that I've taken
so here's our not cool thing in normal I
so here's our not cool thing in normal I
so here's our not cool thing in normal I have a link here and that is a link that
have a link here and that is a link that
have a link here and that is a link that links me to another another file so when
links me to another another file so when
links me to another another file so when I press enter here it brings me from
I press enter here it brings me from
I press enter here it brings me from live presentation another word into a
live presentation another word into a
live presentation another word into a file called hacking notebook and you
file called hacking notebook and you
file called hacking notebook and you brought me into this
brought me into this
brought me into this if special form and that because when I
if special form and that because when I
if special form and that because when I was here I actually took and when I
was here I actually took and when I
was here I actually took and when I store a link and then later reference it
store a link and then later reference it
store a link and then later reference it it will bring me back to an exact
it will bring me back to an exact
it will bring me back to an exact position as well so it brings me back to
position as well so it brings me back to
position as well so it brings me back to this section because this is where I
this section because this is where I
this section because this is where I took the link so I could for example
took the link so I could for example
took the link so I could for example like evaluate
although one thing that I realized was
although one thing that I realized was
although one thing that I realized was that we were missing one piece of the
that we were missing one piece of the
that we were missing one piece of the puzzle here because to really grasp the
puzzle here because to really grasp the
puzzle here because to really grasp the the notes are missing the context of
the notes are missing the context of
the notes are missing the context of where I took it if I would have access
where I took it if I would have access
where I took it if I would have access to the page where a word that has extra
to the page where a word that has extra
to the page where a word that has extra context which makes the
context which makes the
context which makes the send the code makes more sense now in in
send the code makes more sense now in in
send the code makes more sense now in in or mode there is a great package so this
or mode there is a great package so this
or mode there is a great package so this package called or notor
package called or notor
package called or notor that you can install and here org Noctor
that you can install and here org Noctor
that you can install and here org Noctor has added some metadata for me so it
has added some metadata for me so it
has added some metadata for me so it added the path to the to the book an
added the path to the to the book an
added the path to the to the book an introduction to e list which these notes
introduction to e list which these notes
introduction to e list which these notes comes from and since I have that here as
comes from and since I have that here as
comes from and since I have that here as a property I can just call it and it
a property I can just call it and it
a property I can just call it and it opens up the the PDF on the left hand
opens up the the PDF on the left hand
opens up the the PDF on the left hand side and my notes on the right hand side
side and my notes on the right hand side
side and my notes on the right hand side so I can I can navigate through the
so I can I can navigate through the
so I can I can navigate through the document here and it will go through my
document here and it will go through my
document here and it will go through my notes it will expand and contract the
notes it will expand and contract the
notes it will expand and contract the notes on the right hand side as we go
notes on the right hand side as we go
notes on the right hand side as we go through them and I could go here and go
through them and I could go here and go
through them and I could go here and go somewhere else and say sync to to this
somewhere else and say sync to to this
somewhere else and say sync to to this location and it synchronizes the the
location and it synchronizes the the
location and it synchronizes the the left hand side and said and I can jump
left hand side and said and I can jump
left hand side and said and I can jump between the different headings
the left-hand side so that's a great
the left-hand side so that's a great
the left-hand side so that's a great tool for for taking notes just back and
tool for for taking notes just back and
tool for for taking notes just back and the around its presentation in yellow so
the around its presentation in yellow so
the around its presentation in yellow so it's easy to like navigate around I mean
it's easy to like navigate around I mean
it's easy to like navigate around I mean if this doesn't matter that the the
if this doesn't matter that the the
if this doesn't matter that the the files are located in different paths we
files are located in different paths we
files are located in different paths we can create links and Link the
can create links and Link the
can create links and Link the information together now linking to a
information together now linking to a
information together now linking to a specific file that's as informative of
specific file that's as informative of
specific file that's as informative of course but usually you're interested in
course but usually you're interested in
course but usually you're interested in like a small section of five so and
like a small section of five so and
like a small section of five so and that's where organic capture can
that's where organic capture can
that's where organic capture can actually be used so in Emacs all
actually be used so in Emacs all
actually be used so in Emacs all functions are globally defined and we
functions are globally defined and we
functions are globally defined and we can use something called find function
can use something called find function
can use something called find function so I can jump to order maybe to the
so I can jump to order maybe to the
so I can jump to order maybe to the insert heading and it takes me to where
insert heading and it takes me to where
insert heading and it takes me to where this is the factor
and I maybe I think that this part is
and I maybe I think that this part is
and I maybe I think that this part is interesting the two times here so I want
interesting the two times here so I want
interesting the two times here so I want to you know create the notes whether
to you know create the notes whether
to you know create the notes whether goes to this part so I can open up one
goes to this part so I can open up one
goes to this part so I can open up one capture and specify code snippet now
capture and specify code snippet now
capture and specify code snippet now this is a template which I got from
this is a template which I got from
this is a template which I got from Howard Abrams his his excellent blog so
two times is way too long in Emacs and I
two times is way too long in Emacs and I
two times is way too long in Emacs and I mean that's also one great text control
mean that's also one great text control
mean that's also one great text control C twice the note is stored
C twice the note is stored
C twice the note is stored but where is restored well it's actually
but where is restored well it's actually
but where is restored well it's actually stored in steepest
so here's our example of Duff do times
so here's our example of Duff do times
so here's our example of Duff do times and I will have the name of the function
and I will have the name of the function
and I will have the name of the function where the statement was taken from
where the statement was taken from
where the statement was taken from I'll have the highlight that I did link
I'll have the highlight that I did link
I'll have the highlight that I did link to the actual source code and press
to the actual source code and press
to the actual source code and press enter here it brings me back to the
enter here it brings me back to the
enter here it brings me back to the starting line of maja lighting and you
starting line of maja lighting and you
starting line of maja lighting and you can see that the line 5 3 6 is how about
can see that the line 5 3 6 is how about
can see that the line 5 3 6 is how about in the dark so that was the end of my
in the dark so that was the end of my
in the dark so that was the end of my highlight now another cool feature of
highlight now another cool feature of
highlight now another cool feature of course in in the Maxis that we can just
course in in the Maxis that we can just
course in in the Maxis that we can just ask Emacs what what the assists so help
ask Emacs what what the assists so help
ask Emacs what what the assists so help me with this one
me with this one
me with this one do x doesn't back row so you loop a
do x doesn't back row so you loop a
do x doesn't back row so you loop a certain number of times okay good to
certain number of times okay good to
certain number of times okay good to know
know
know back to the presentation
so we were captured makes it easy to
so we were captured makes it easy to
so we were captured makes it easy to light also automatically create these
light also automatically create these
light also automatically create these links extract snippets
[Music]
now for the next next thing I was
now for the next next thing I was
now for the next next thing I was thinking of an example where we want to
thinking of an example where we want to
thinking of an example where we want to document something so we want to know
document something so we want to know
document something so we want to know how to build our own doctor image and
how to build our own doctor image and
how to build our own doctor image and the first thing we need to do is start
the first thing we need to do is start
the first thing we need to do is start the doctor service because here I'm
the doctor service because here I'm
the doctor service because here I'm running arch linux and doctor I haven't
running arch linux and doctor I haven't
running arch linux and doctor I haven't enabled a strong start start up I mean
enabled a strong start start up I mean
enabled a strong start start up I mean so I need to I need to start it and I
so I need to I need to start it and I
so I need to I need to start it and I need to have a elevator wants to do it
need to have a elevator wants to do it
need to have a elevator wants to do it so I will need to use the sudo command
so I will need to use the sudo command
so I will need to use the sudo command and we can do that in sort of a box as
and we can do that in sort of a box as
and we can do that in sort of a box as well if you specify is pseudo has this
well if you specify is pseudo has this
well if you specify is pseudo has this now if I execute the block
do something
if it works on the lab access to the
if it works on the lab access to the
if it works on the lab access to the doctor commander and I have now there
doctor commander and I have now there
doctor commander and I have now there are no doctors running at the moment
are no doctors running at the moment
are no doctors running at the moment about we'll get to that
about we'll get to that
about we'll get to that so build an image we'd like to build an
so build an image we'd like to build an
so build an image we'd like to build an image and should should have Python 3
image and should should have Python 3
image and should should have Python 3 will be a minimal in the Python 3
will be a minimal in the Python 3
will be a minimal in the Python 3 environments the first thing we need to
environments the first thing we need to
environments the first thing we need to do is specify something called
do is specify something called
do is specify something called requirements so there should be some
requirements so there should be some
requirements so there should be some requirements that needs to be installed
requirements that needs to be installed
requirements that needs to be installed in these in the story image now having
in these in the story image now having
in these in the story image now having them here is great of course but we will
them here is great of course but we will
them here is great of course but we will need to specify an actual file on the on
need to specify an actual file on the on
need to specify an actual file on the on the computer which we can use in the in
the computer which we can use in the in
the computer which we can use in the in the build step so we could do manual
the build step so we could do manual
the build step so we could do manual work and copy the content of this block
work and copy the content of this block
work and copy the content of this block into an actual file etc yeah that's as
into an actual file etc yeah that's as
into an actual file etc yeah that's as to manual so we can use another header
to manual so we can use another header
to manual so we can use another header argument which is called back and we
argument which is called back and we
argument which is called back and we tango we can specify a path
the pathway specify here will be will be
the pathway specify here will be will be
the pathway specify here will be will be relative to to the ordinal document so I
relative to to the ordinal document so I
relative to to the ordinal document so I can open up D read that's the director
can open up D read that's the director
can open up D read that's the director editor in Emacs so here here we are
editor in Emacs so here here we are
editor in Emacs so here here we are now the thing is we want to create it
now the thing is we want to create it
now the thing is we want to create it inside a folder called docker image now
inside a folder called docker image now
inside a folder called docker image now to make that work and I added had an
to make that work and I added had an
to make that work and I added had an argument here which is M Kentucky and
argument here which is M Kentucky and
argument here which is M Kentucky and that makes it so that it creates all the
that makes it so that it creates all the
that makes it so that it creates all the necessary directories that is needed to
necessary directories that is needed to
necessary directories that is needed to tangle this file enough to take only
tangle this file enough to take only
tangle this file enough to take only this this block I first control press
this this block I first control press
this this block I first control press control U and then tangled one code
control U and then tangled one code
control U and then tangled one code block from my present to you
block from my present to you
block from my present to you okay now T read and hear stiphu right
okay now T read and hear stiphu right
okay now T read and hear stiphu right word doc that's the next to complete
word doc that's the next to complete
word doc that's the next to complete okay here's the step or the content of
okay here's the step or the content of
okay here's the step or the content of doctor file now how many times sure what
doctor file now how many times sure what
doctor file now how many times sure what everything does
everything does
everything does so I will like to have an example of
so I will like to have an example of
so I will like to have an example of that
it's my cellphone so this content appear
it's my cellphone so this content appear
it's my cellphone so this content appear I decided to split it it's the first I
I decided to split it it's the first I
I decided to split it it's the first I creates I'm from and specifically that
creates I'm from and specifically that
creates I'm from and specifically that is coffee run and come on now I can
is coffee run and come on now I can
is coffee run and come on now I can create this occupy over here where I
create this occupy over here where I
create this occupy over here where I used nice to know when simplex data so
used nice to know when simplex data so
used nice to know when simplex data so before you reference these are the
before you reference these are the
before you reference these are the blocks and of course no web can be
blocks and of course no web can be
blocks and of course no web can be combined with tangled so when I tangle
combined with tangled so when I tangle
combined with tangled so when I tangle this file their souls becomes this
this file their souls becomes this
this file their souls becomes this that's perfect
then the application is a very simple
then the application is a very simple
then the application is a very simple application so it's just a little Python
application so it's just a little Python
application so it's just a little Python for loop which prints the value of the
for loop which prints the value of the
for loop which prints the value of the loop
and inch cells around the docket builder
and inch cells around the docket builder
and inch cells around the docket builder command it's successfully built we can
command it's successfully built we can
command it's successfully built we can verify we have a talkative magical
verify we have a talkative magical
verify we have a talkative magical minimal Python yeah we do
minimal Python yeah we do
minimal Python yeah we do I haven't changed it since I built it
I haven't changed it since I built it
I haven't changed it since I built it the first time so I guess that's why it
the first time so I guess that's why it
the first time so I guess that's why it has the timestamp here and now let's
has the timestamp here and now let's
has the timestamp here and now let's execute the minimal Python and as we saw
execute the minimal Python and as we saw
execute the minimal Python and as we saw in the doctor took a file it will when
in the doctor took a file it will when
in the doctor took a file it will when we start the doctor will run the command
we start the doctor will run the command
we start the doctor will run the command Python followed by a papaya so all right
we have an error so the error is due to
we have an error so the error is due to
we have an error so the error is due to the invalid syntax and that's because
the invalid syntax and that's because
the invalid syntax and that's because our application was written with Python
our application was written with Python
our application was written with Python 2 and we expect that history was Python
2 and we expect that history was Python
2 and we expect that history was Python 3 environment so that's why it doesn't
3 environment so that's why it doesn't
3 environment so that's why it doesn't work now it would have cost be easy for
work now it would have cost be easy for
work now it would have cost be easy for us to go back to the home block and make
us to go back to the home block and make
us to go back to the home block and make some changes tangle again rebuild and
some changes tangle again rebuild and
some changes tangle again rebuild and verify
verify
verify let's say we run into some problems that
let's say we run into some problems that
let's say we run into some problems that is bigger than this then this moved for
is bigger than this then this moved for
is bigger than this then this moved for just like trying something new becomes a
just like trying something new becomes a
just like trying something new becomes a little bit tedious if we need to do it a
little bit tedious if we need to do it a
little bit tedious if we need to do it a lot of times right
so we want something want something else
so we want something want something else
so we want something want something else here right so the first thing I will do
here right so the first thing I will do
here right so the first thing I will do is that will create a block which starts
is that will create a block which starts
is that will create a block which starts the image and keeps it running because
the image and keeps it running because
the image and keeps it running because it's running in a session so that will
it's running in a session so that will
it's running in a session so that will be alive start at one and have any
be alive start at one and have any
be alive start at one and have any output we can verify with dr. PS it's
output we can verify with dr. PS it's
output we can verify with dr. PS it's actually running and it seems to be
actually running and it seems to be
actually running and it seems to be doing that we have mean about passing
doing that we have mean about passing
doing that we have mean about passing there and it's called it has the name
there and it's called it has the name
there and it's called it has the name currently romantic slice strange one
currently romantic slice strange one
currently romantic slice strange one now we could actually in Emacs there's
now we could actually in Emacs there's
now we could actually in Emacs there's something called trap this transparent
something called trap this transparent
something called trap this transparent remote access
multiple protocols and and that's a
multiple protocols and and that's a
multiple protocols and and that's a feature that makes it possible for us to
feature that makes it possible for us to
feature that makes it possible for us to is for example edits remotes on edit
is for example edits remotes on edit
is for example edits remotes on edit files on a remote computer and there is
files on a remote computer and there is
files on a remote computer and there is a package called docker trend and that
a package called docker trend and that
a package called docker trend and that makes it possible to actually edit files
makes it possible to actually edit files
makes it possible to actually edit files that is running that exists in a running
that is running that exists in a running
that is running that exists in a running docker image that sounds like something
docker image that sounds like something
docker image that sounds like something and that's useful right now so I can use
and that's useful right now so I can use
and that's useful right now so I can use fine file remove everything here
fine file remove everything here
fine file remove everything here then I use a syntax and here's the form
yeah we're actually openly and they file
yeah we're actually openly and they file
yeah we're actually openly and they file that remote we could also do something
that remote we could also do something
that remote we could also do something like this we could spit a window here
like this we could spit a window here
like this we could spit a window here and opening a shelf it's not a regular
and opening a shelf it's not a regular
and opening a shelf it's not a regular show it's a show so you might've heard
show it's a show so you might've heard
show it's a show so you might've heard about the hash of the seashell I mean
about the hash of the seashell I mean
about the hash of the seashell I mean she sure is really awesome
she sure is really awesome
she sure is really awesome khadeem access something called Isha
khadeem access something called Isha
khadeem access something called Isha performance-wise might be lacking when
performance-wise might be lacking when
performance-wise might be lacking when it comes to like having large amount of
it comes to like having large amount of
it comes to like having large amount of text output etc but the really cool
text output etc but the really cool
text output etc but the really cool thing is here that we have access to
thing is here that we have access to
thing is here that we have access to everything that team access all the
everything that team access all the
everything that team access all the functions and everything are recordable
functions and everything are recordable
functions and everything are recordable from the command line so we can do
from the command line so we can do
from the command line so we can do something like this we could CD and then
something like this we could CD and then
something like this we could CD and then say that we wanna see the into talk and
say that we wanna see the into talk and
say that we wanna see the into talk and then we serve
and here is all the completes this one
and now I'm actually here inside there
and now I'm actually here inside there
and now I'm actually here inside there there's my requirements yeah that's this
there's my requirements yeah that's this
there's my requirements yeah that's this that's all great but now we're we're
that's all great but now we're we're
that's all great but now we're we're focusing on man haul road so how can we
focusing on man haul road so how can we
focusing on man haul road so how can we make our mounts in with the medaka as
make our mounts in with the medaka as
make our mounts in with the medaka as well well we can actually just buy deer
well well we can actually just buy deer
well well we can actually just buy deer and use tram pair as well so we're going
and use tram pair as well so we're going
and use tram pair as well so we're going to say that
yes yeah so this block is running
remotely in the in the docker image now
remotely in the in the docker image now
remotely in the in the docker image now one thing here the holder is a bit
one thing here the holder is a bit
one thing here the holder is a bit problematic is that I needed to specify
problematic is that I needed to specify
problematic is that I needed to specify the nickname sort of of the image and
the nickname sort of of the image and
the nickname sort of of the image and when I will restart the or start the
when I will restart the or start the
when I will restart the or start the image later you will get a non nickname
image later you will get a non nickname
image later you will get a non nickname so hard coding here might not be the
so hard coding here might not be the
so hard coding here might not be the smartest thing so I want like a more
smartest thing so I want like a more
smartest thing so I want like a more general approach to it so for that I
general approach to it so for that I
general approach to it so for that I wrote some illest code which we have
wrote some illest code which we have
wrote some illest code which we have here and that's two functions the talk
here and that's two functions the talk
here and that's two functions the talk imagine walking path over here I'm
imagine walking path over here I'm
imagine walking path over here I'm calling dr. path with the name of our
calling dr. path with the name of our
calling dr. path with the name of our image which is minimal person and you
image which is minimal person and you
image which is minimal person and you won't get me this compliant
doctor name I mean the output really
doctor name I mean the output really
doctor name I mean the output really looks like what was inside these quotes
looks like what was inside these quotes
looks like what was inside these quotes here - now we'll see another cool
here - now we'll see another cool
here - now we'll see another cool feature of of org-mode and of Emax in
feature of of org-mode and of Emax in
feature of of org-mode and of Emax in general and that's the users of helix so
we can make a book here which face
we can make a book here which face
we can make a book here which face secession associate evident in directory
secession associate evident in directory
secession associate evident in directory and then we're actually calling code
and then we're actually calling code
and then we're actually calling code inside these parentheses now this my
inside these parentheses now this my
inside these parentheses now this my doctor path that's the kind of doctor
doctor path that's the kind of doctor
doctor path that's the kind of doctor path we saw about but I've installed it
path we saw about but I've installed it
path we saw about but I've installed it on my on my Emacs in my configuration so
on my on my Emacs in my configuration so
on my on my Emacs in my configuration so now I just need to run this it just
now I just need to run this it just
now I just need to run this it just worked and now I have a running running
worked and now I have a running running
worked and now I have a running running sessions that other folks can just
sessions that other folks can just
sessions that other folks can just connect it you know so let's let's solve
connect it you know so let's let's solve
connect it you know so let's let's solve the the syntax
right here it was so I can actually use
right here it was so I can actually use
right here it was so I can actually use this function again and provide the
this function again and provide the
this function again and provide the image and name and application and you
image and name and application and you
image and name and application and you sit inside tangled this is a hopefully a
sit inside tangled this is a hopefully a
sit inside tangled this is a hopefully a solution untangled and now we have
solution untangled and now we have
solution untangled and now we have tangle it into the running local image
tangle it into the running local image
tangle it into the running local image so now we just want to create a another
so now we just want to create a another
so now we just want to create a another session block which uses the session
session block which uses the session
session block which uses the session token' agent and try out our solution
token' agent and try out our solution
token' agent and try out our solution now when I originally held this talk
now when I originally held this talk
now when I originally held this talk there was a great question at the end
there was a great question at the end
there was a great question at the end which was if I would like to create a
which was if I would like to create a
which was if I would like to create a new block which uses the same session as
new block which uses the same session as
new block which uses the same session as a previous block can I do that and
that's something that I would like to
that's something that I would like to
that's something that I would like to show how that can actually be done
show how that can actually be done
show how that can actually be done because if we look here you can see that
because if we look here you can see that
because if we look here you can see that it's not that simple cuz right now we're
it's not that simple cuz right now we're
it's not that simple cuz right now we're our cursor is the previous block is a
our cursor is the previous block is a
our cursor is the previous block is a Python block and it doesn't have a
Python block and it doesn't have a
Python block and it doesn't have a session so we don't want that block but
session so we don't want that block but
session so we don't want that block but the doc before that one is a shell dog
the doc before that one is a shell dog
the doc before that one is a shell dog and it has the session that we were
and it has the session that we were
and it has the session that we were after so we would like to use sort of
after so we would like to use sort of
after so we would like to use sort of like the same name as that block so how
like the same name as that block so how
like the same name as that block so how can we do that
again solution used to write some code
so here I have a function and what
so here I have a function and what
so here I have a function and what difference does is that a it goes from
difference does is that a it goes from
difference does is that a it goes from from where the cursor is moves backwards
from where the cursor is moves backwards
from where the cursor is moves backwards in the buffer through only source code
in the buffer through only source code
in the buffer through only source code blocks and once it finds a block that
blocks and once it finds a block that
blocks and once it finds a block that has the decision argument it will return
has the decision argument it will return
has the decision argument it will return that session name together with the
that session name together with the
that session name together with the language that it uses so if I execute
language that it uses so if I execute
language that it uses so if I execute this block you can see that it finds
this block you can see that it finds
this block you can see that it finds this previous block Twist was using
this previous block Twist was using
this previous block Twist was using shell and had a session session document
shell and had a session session document
shell and had a session session document right that's perfect
right that's perfect
right that's perfect light but it will be really cool if we
light but it will be really cool if we
light but it will be really cool if we can actually use it in some kind of snip
can actually use it in some kind of snip
can actually use it in some kind of snip that way because when we create the
that way because when we create the
that way because when we create the block in general we just write less than
block in general we just write less than
block in general we just write less than s I won't take the solution as well for
s I won't take the solution as well for
s I won't take the solution as well for this and the solution
registered like this so it will use the
registered like this so it will use the
registered like this so it will use the less than SS instead and begin associate
less than SS instead and begin associate
less than SS instead and begin associate associate right but really for provides
associate right but really for provides
associate right but really for provides here and most think that languages uses
here and most think that languages uses
here and most think that languages uses some kind of templating and I mean that
some kind of templating and I mean that
some kind of templating and I mean that can be powerful but it's not as powerful
can be powerful but it's not as powerful
can be powerful but it's not as powerful as here in Emacs because in Emacs we can
as here in Emacs because in Emacs we can
as here in Emacs because in Emacs we can get a snippet that actually embed in
get a snippet that actually embed in
get a snippet that actually embed in code so here we can call my and just by
code so here we can call my and just by
code so here we can call my and just by writing like this it will extend and
writing like this it will extend and
writing like this it will extend and creates a block like we want so less
creates a block like we want so less
creates a block like we want so less than SS of course I would need to
than SS of course I would need to
than SS of course I would need to install a snippet and I've done that
install a snippet and I've done that
install a snippet and I've done that before
expands to this previous session now
any words so now we we know that our
any words so now we we know that our
any words so now we we know that our code is working in the in the doctor
code is working in the in the doctor
code is working in the in the doctor environment that is so now we can safely
environment that is so now we can safely
environment that is so now we can safely tangle and give the new image now I have
tangle and give the new image now I have
tangle and give the new image now I have one more example and I've done an
one more example and I've done an
one more example and I've done an example here where we want to do some
example here where we want to do some
example here where we want to do some performance analysis of often algorithm
performance analysis of often algorithm
performance analysis of often algorithm and of course we don't have time to
and of course we don't have time to
and of course we don't have time to generate actual algorithm and get some
generate actual algorithm and get some
generate actual algorithm and get some real data so how will you synthesize the
real data so how will you synthesize the
real data so how will you synthesize the data and synthesize to here just a
data and synthesize to here just a
data and synthesize to here just a minute as well so I have this simple
minute as well so I have this simple
minute as well so I have this simple algorithm in mind we just have a 1
algorithm in mind we just have a 1
algorithm in mind we just have a 1 dimensional signal we want to track that
dimensional signal we want to track that
dimensional signal we want to track that out we say that we have some algorithm
out we say that we have some algorithm
out we say that we have some algorithm that does that and now we want the true
that does that and now we want the true
that does that and now we want the true data and we want the estimated data so
data and we want the estimated data so
data and we want the estimated data so to do that I'll create this sort of
to do that I'll create this sort of
to do that I'll create this sort of block which contains Emacs Lisp code and
block which contains Emacs Lisp code and
block which contains Emacs Lisp code and I'll specify that the helpful result
I'll specify that the helpful result
I'll specify that the helpful result should be put in a table
should be put in a table
should be put in a table so the first called meager that contains
so the first called meager that contains
so the first called meager that contains the true value the second one is the
the true value the second one is the
the true value the second one is the estimated it's it's following but it's
estimated it's it's following but it's
estimated it's it's following but it's very bit off but looking at the table
very bit off but looking at the table
very bit off but looking at the table here don't really mean the squad numbers
here don't really mean the squad numbers
here don't really mean the squad numbers and if I go back later I might like
and if I go back later I might like
and if I go back later I might like wonder okay but which data was what so
wonder okay but which data was what so
wonder okay but which data was what so can I improve that well I can break its
can I improve that well I can break its
can I improve that well I can break its other block here so that's also you max
other block here so that's also you max
other block here so that's also you max this build and I go to my previous one
this build and I go to my previous one
this build and I go to my previous one at a post argument and then I reference
at a post argument and then I reference
at a post argument and then I reference my new adder block and pass this in a
my new adder block and pass this in a
my new adder block and pass this in a post command will run after the cool
post command will run after the cool
post command will run after the cool puppies evaluated but before the results
puppies evaluated but before the results
puppies evaluated but before the results are actually printed so it will take you
are actually printed so it will take you
are actually printed so it will take you out with from this block and go back
out with from this block and go back
out with from this block and go back down here and it will add a horizontal
down here and it will add a horizontal
down here and it will add a horizontal line and add the label to if an estimate
line and add the label to if an estimate
line and add the label to if an estimate and a horizontal line and Danny will
and a horizontal line and Danny will
and a horizontal line and Danny will come back so running it will show me
come back so running it will show me
come back so running it will show me that's much better I'll also estimate
that's much better I'll also estimate
that's much better I'll also estimate all right looking at the data this way I
all right looking at the data this way I
all right looking at the data this way I mean it makes sense but I also find it
mean it makes sense but I also find it
mean it makes sense but I also find it very useful to be sure I said of course
very useful to be sure I said of course
very useful to be sure I said of course so I don't know how to do that in Exodus
so I don't know how to do that in Exodus
so I don't know how to do that in Exodus but I don't and I do know how to do that
but I don't and I do know how to do that
but I don't and I do know how to do that in Python so I can use this block here I
in Python so I can use this block here I
in Python so I can use this block here I create a variable called data which has
create a variable called data which has
create a variable called data which has the value of T table as the truth table
the value of T table as the truth table
the value of T table as the truth table now the results here will be a farm
now the results here will be a farm
now the results here will be a farm so if R on this
the output is a broken link comes read
the output is a broken link comes read
the output is a broken link comes read as open D read I'm missing the folder
as open D read I'm missing the folder
as open D read I'm missing the folder I'm trying to write it so just execute
I'm trying to write it so just execute
I'm trying to write it so just execute it and the image is transferred back
it and the image is transferred back
it and the image is transferred back YouTube into our buffer here which is
YouTube into our buffer here which is
YouTube into our buffer here which is pretty close
pretty close
pretty close [Music]
now I can do something else as well I
now I can do something else as well I
now I can do something else as well I could for example use that so that's
could for example use that so that's
could for example use that so that's this is great I mean have we 10 we can
this is great I mean have we 10 we can
this is great I mean have we 10 we can use the power of other languages to
use the power of other languages to
use the power of other languages to visualize what we want here i well i
visualize what we want here i well i
visualize what we want here i well i ever tried to make some kind of a table
ever tried to make some kind of a table
ever tried to make some kind of a table a year we read the data and we saw
a year we read the data and we saw
a year we read the data and we saw earlier in the beginning of the
earlier in the beginning of the
earlier in the beginning of the presentation that tables are pretty
presentation that tables are pretty
presentation that tables are pretty awesome at least it has this also
awesome at least it has this also
awesome at least it has this also feature of auto adjusting the boundaries
feature of auto adjusting the boundaries
feature of auto adjusting the boundaries but it has also the possibility to table
but it has also the possibility to table
but it has also the possibility to table formulas so by pressing ctrl c and c a
formulas so by pressing ctrl c and c a
formulas so by pressing ctrl c and c a quote we bring up this field and range
quote we bring up this field and range
quote we bring up this field and range for winners pop up and first one we see
for winners pop up and first one we see
for winners pop up and first one we see here it takes the data from the remote
remote table as tooth data and copies it
remote table as tooth data and copies it
remote table as tooth data and copies it over here same goes for estimate error
over here same goes for estimate error
over here same goes for estimate error however and calculates the
however and calculates the
however and calculates the the first column - the second one this
the first column - the second one this
the first column - the second one this same taxes called emails calc syntax and
same taxes called emails calc syntax and
same taxes called emails calc syntax and this block however uses Emacs Lisp code
this block however uses Emacs Lisp code
this block however uses Emacs Lisp code so here we're calling the ABS function
so here we're calling the ABS function
so here we're calling the ABS function the it is absent and the - function so
the it is absent and the - function so
the it is absent and the - function so that is the absolute error this one uses
that is the absolute error this one uses
that is the absolute error this one uses against and illest codes you calculate
against and illest codes you calculate
against and illest codes you calculate the length of list here so it gets us
the length of list here so it gets us
the length of list here so it gets us number values then I want to calculate
number values then I want to calculate
number values then I want to calculate the mean error and for some reason I'm
the mean error and for some reason I'm
the mean error and for some reason I'm referring to something called me so
referring to something called me so
referring to something called me so what's that
what's that
what's that [Music]
so here I have an electrical box column
so here I have an electrical box column
so here I have an electrical box column beam and that's the calculations which
beam and that's the calculations which
beam and that's the calculations which is a mean value the returns it so here
is a mean value the returns it so here
is a mean value the returns it so here we can actually call another block to
we can actually call another block to
we can actually call another block to make that work perform a calculation for
make that work perform a calculation for
make that work perform a calculation for us
us
us now I also calculate the or MSE I would
now I also calculate the or MSE I would
now I also calculate the or MSE I would mean square
mean square
mean square [Music]
and use this is a box with Python code
and use this is a box with Python code
and use this is a box with Python code and using numpy and if I go back to the
and using numpy and if I go back to the
and using numpy and if I go back to the table formula press control-c twice and
table formula press control-c twice and
table formula press control-c twice and it actually performs all the
it actually performs all the
it actually performs all the calculations and gets me narrow and I
calculations and gets me narrow and I
calculations and gets me narrow and I see another thing which is seriously
see another thing which is seriously
see another thing which is seriously cool so it's yeah you can really do a
cool so it's yeah you can really do a
cool so it's yeah you can really do a lot of things with these these tables I
lot of things with these these tables I
lot of things with these these tables I have actually no idea that they were
have actually no idea that they were
have actually no idea that they were that powerful now I would like to
that powerful now I would like to
that powerful now I would like to describe the flow that we have had here
describe the flow that we have had here
describe the flow that we have had here in our investigation so far that I will
in our investigation so far that I will
in our investigation so far that I will be using thank you well and I collect we
be using thank you well and I collect we
be using thank you well and I collect we evaluate this block of Pangea barcode
evaluate this block of Pangea barcode
evaluate this block of Pangea barcode and we'll get this image back so it
and we'll get this image back so it
and we'll get this image back so it describes how we firstly synthesize the
describes how we firstly synthesize the
describes how we firstly synthesize the data with Emacs Lisp and then improve
data with Emacs Lisp and then improve
data with Emacs Lisp and then improve this results with the post command we
this results with the post command we
this results with the post command we use Python to slice the data we process
use Python to slice the data we process
use Python to slice the data we process the data through our table formulas
the data through our table formulas
the data through our table formulas which uses email elese the Emacs calc
which uses email elese the Emacs calc
which uses email elese the Emacs calc and old blocks and we initialize the
and old blocks and we initialize the
and old blocks and we initialize the flow we plant you now that's really nice
caption now I mentioned that there was
caption now I mentioned that there was
caption now I mentioned that there was something called Emacs calc and at first
something called Emacs calc and at first
something called Emacs calc and at first I just thought that
I just thought that
I just thought that I'll just simple like that windows
I'll just simple like that windows
I'll just simple like that windows calculator or something of course I was
calculator or something of course I was
calculator or something of course I was wrong
wrong
wrong turned out to be much more powerful so
turned out to be much more powerful so
turned out to be much more powerful so we can do some not only can we use it in
we can do some not only can we use it in
we can do some not only can we use it in in formulas in tables but we can also
in formulas in tables but we can also
in formulas in tables but we can also use a source of course because threes
use a source of course because threes
use a source of course because threes one some reason the default seems to be
one some reason the default seems to be
one some reason the default seems to be degrees since the freedoms for business
degrees since the freedoms for business
degrees since the freedoms for business setting somewhere what about equation
yeah and simplifying actually the
yeah and simplifying actually the
yeah and simplifying actually the equation there but what we actually can
equation there but what we actually can
equation there but what we actually can do is to solve it so we can call F with
respect to X and then we get to matter X
it'll also take an equation like the
it'll also take an equation like the
it'll also take an equation like the square root of x this with regards to
square root of x this with regards to
square root of x this with regards to this it makes an abbreviation this is
this it makes an abbreviation this is
this it makes an abbreviation this is what I found fascinating with Oakland
what I found fascinating with Oakland
what I found fascinating with Oakland it's like how how easy it is to like
it's like how how easy it is to like
it's like how how easy it is to like what if this is true so can I do this
what if this is true so can I do this
what if this is true so can I do this and then usually you can wear if you
and then usually you can wear if you
and then usually you can wear if you can't you can write some Emacs Lisp code
can't you can write some Emacs Lisp code
can't you can write some Emacs Lisp code that it makes you it makes it possible
that it makes you it makes it possible
that it makes you it makes it possible so my my fault when I saw this was that
so my my fault when I saw this was that
so my my fault when I saw this was that okay but if if that is actually possible
okay but if if that is actually possible
okay but if if that is actually possible then I should be able to create a table
long signal a table okay like this and I
long signal a table okay like this and I
long signal a table okay like this and I should be able to survive it to
should be able to survive it to
should be able to survive it to calculate the derivatives so I could say
calculate the derivatives so I could say
calculate the derivatives so I could say that you know the second color should be
that you know the second color should be
that you know the second color should be the derivative of 2x it just makes it so
the derivative of 2x it just makes it so
the derivative of 2x it just makes it so common somewhere that the Emacs calc is
common somewhere that the Emacs calc is
common somewhere that the Emacs calc is really a formal mathematical probably
really a formal mathematical probably
really a formal mathematical probably that's a more accurate description
that's a more accurate description
that's a more accurate description rather that but it's the Emacs
rather that but it's the Emacs
rather that but it's the Emacs equivalent to two windows calculator but
equivalent to two windows calculator but
equivalent to two windows calculator but now I have a well a lot of things here
now I have a well a lot of things here
now I have a well a lot of things here and it would be really nice if we could
and it would be really nice if we could
and it would be really nice if we could could share the results you know with
could share the results you know with
could share the results you know with with others and unfortunately we live in
with others and unfortunately we live in
with others and unfortunately we live in a world where not everybody has a world
a world where not everybody has a world
a world where not everybody has a world so we would need some kind of other
documenter shadow right you what could
documenter shadow right you what could
documenter shadow right you what could you look smart down it's easy to export
you look smart down it's easy to export
you look smart down it's easy to export org to march down but again that's a bit
org to march down but again that's a bit
org to march down but again that's a bit limited
limited
limited so what lots for for PDF Excel and PDF
so what lots for for PDF Excel and PDF
so what lots for for PDF Excel and PDF and that's nice but this is a bit
and that's nice but this is a bit
and that's nice but this is a bit technical so ideally it would be using
technical so ideally it would be using
technical so ideally it would be using PDF right so that's what I want and I
PDF right so that's what I want and I
PDF right so that's what I want and I would use here we have some command call
would use here we have some command call
would use here we have some command call or ability to export to PDF or or upon
or ability to export to PDF or or upon
or ability to export to PDF or or upon or export to Matic PF right
and a PDF was produced can watch it here
and a PDF was produced can watch it here
and a PDF was produced can watch it here yeah yes however there is something that
yeah yes however there is something that
yeah yes however there is something that that haunted me when I was sleeping
that haunted me when I was sleeping
that haunted me when I was sleeping through those commands yeah there is
through those commands yeah there is
through those commands yeah there is panic version as well and there was a
panic version as well and there was a
panic version as well and there was a pen operation that had and opened and
pen operation that had and opened and
pen operation that had and opened and that's really what I want I mean I want
that's really what I want I mean I want
that's really what I want I mean I want to create PDF and have it automatically
to create PDF and have it automatically
to create PDF and have it automatically opened or at least had the option to it
opened or at least had the option to it
opened or at least had the option to it so let's see through that and I don't
so let's see through that and I don't
so let's see through that and I don't want to export this one I will do so
want to export this one I will do so
want to export this one I will do so here I've written some tea like this but
here I've written some tea like this but
here I've written some tea like this but it's um it's a function called Orlick
it's um it's a function called Orlick
it's um it's a function called Orlick export to PDF and open which is what I
export to PDF and open which is what I
export to PDF and open which is what I want and it figures out the the file
want and it figures out the the file
want and it figures out the the file name and cause the whole attic export
name and cause the whole attic export
name and cause the whole attic export yes and then opens the mp4 what I need
yes and then opens the mp4 what I need
yes and then opens the mp4 what I need to do to be able to use this in my Emacs
to do to be able to use this in my Emacs
to do to be able to use this in my Emacs now is to evaluate this function and now
now is to evaluate this function and now
now is to evaluate this function and now it becomes part of this running list
it becomes part of this running list
it becomes part of this running list machine as we have here oh it's here I
machine as we have here oh it's here I
machine as we have here oh it's here I run it
and I guess the outputs so here we have
and I guess the outputs so here we have
and I guess the outputs so here we have the performance analysis we have the
the performance analysis we have the
the performance analysis we have the cold if we use the under-18 data it has
cold if we use the under-18 data it has
cold if we use the under-18 data it has simplex highlighting more color we see
simplex highlighting more color we see
simplex highlighting more color we see looks highlighting there's a table it's
looks highlighting there's a table it's
looks highlighting there's a table it's our tracking performance the bother our
our tracking performance the bother our
our tracking performance the bother our flow there's something examples off of
flow there's something examples off of
flow there's something examples off of town our table over there yeah of course
town our table over there yeah of course
town our table over there yeah of course you can you can do some tweaking of the
you can you can do some tweaking of the
you can you can do some tweaking of the these things to get the results they
these things to get the results they
these things to get the results they basically know if you want like take
basically know if you want like take
basically know if you want like take questions we can just write them in
questions we can just write them in
questions we can just write them in plain plain text here
plain plain text here
plain plain text here export him there will be correctly
export him there will be correctly
export him there will be correctly formatted in the PDF summary yeah and
formatted in the PDF summary yeah and
formatted in the PDF summary yeah and for the summary I think it's a good
for the summary I think it's a good
for the summary I think it's a good opportunity to show that we can if we
opportunity to show that we can if we
opportunity to show that we can if we can go beyond org as well for for our
can go beyond org as well for for our
can go beyond org as well for for our presentation to this one so order meat
presentation to this one so order meat
presentation to this one so order meat export to HTML and browse will take that
export to HTML and browse will take that
export to HTML and browse will take that part of my document and create HTML
part of my document and create HTML
part of my document and create HTML presentation so here's the summary of
presentation so here's the summary of
presentation so here's the summary of what we have seen or mode a major
what we have seen or mode a major
what we have seen or mode a major program I think one of the things here
program I think one of the things here
program I think one of the things here that we've seen is context so or mode
that we've seen is context so or mode
that we've seen is context so or mode and Emacs makes it easy to bring
and Emacs makes it easy to bring
and Emacs makes it easy to bring everything into context you can have
everything into context you can have
everything into context you can have nodes together with your
PDF files together with the code you can
PDF files together with the code you can
PDF files together with the code you can have links that makes it easiest
have links that makes it easiest
have links that makes it easiest transition to other files and actually
transition to other files and actually
transition to other files and actually are not located nearby on the computer
are not located nearby on the computer
are not located nearby on the computer but logical sense and it also makes
documentation easy because you know
documentation easy because you know
documentation easy because you know documenting the steps that you take for
documenting the steps that you take for
documenting the steps that you take for example well maybe a darker image we
example well maybe a darker image we
example well maybe a darker image we don't need to have that much extra work
don't need to have that much extra work
don't need to have that much extra work in order to actually have something that
in order to actually have something that
in order to actually have something that makes our repeatable and these for
makes our repeatable and these for
makes our repeatable and these for ourselves maybe we'll add some more
ourselves maybe we'll add some more
ourselves maybe we'll add some more notes to describe it for others but
notes to describe it for others but
notes to describe it for others but that's easy to do means use text and
that's easy to do means use text and
that's easy to do means use text and another great feature here that we've
another great feature here that we've
another great feature here that we've seen is that old mode is part of Emacs
seen is that old mode is part of Emacs
seen is that old mode is part of Emacs and Emacs is really this tool which is
and Emacs is really this tool which is
and Emacs is really this tool which is not only something that works for you
not only something that works for you
not only something that works for you what's wrong around can you make it work
what's wrong around can you make it work
what's wrong around can you make it work for you so
for you so
for you so if there is something that we don't like
if there is something that we don't like
if there is something that we don't like or a song feature that we are lacking I
or a song feature that we are lacking I
or a song feature that we are lacking I can just you know easily extend it we
can just you know easily extend it we
can just you know easily extend it we write some more Emacs Lisp code and
that's just super easy to install into
that's just super easy to install into
that's just super easy to install into into a running session you know and then
into a running session you know and then
into a running session you know and then of course exporting features so this
of course exporting features so this
of course exporting features so this really makes it easy for you as a user
really makes it easy for you as a user
really makes it easy for you as a user to attend a flight not needed to use as
to attend a flight not needed to use as
to attend a flight not needed to use as many as many applications or we can
many as many applications or we can
many as many applications or we can remove some of that this restructure
remove some of that this restructure
remove some of that this restructure these limitations so and there the
these limitations so and there the
these limitations so and there the concert great benefits of tying things
concert great benefits of tying things
concert great benefits of tying things together because of the context you know
together because of the context you know
together because of the context you know as we can just explore you to marked PDF
as we can just explore you to marked PDF
as we can just explore you to marked PDF or HTML etc super useful
or HTML etc super useful
or HTML etc super useful [Music]
[Music]
[Music] yeah so that was all thanks for
yeah so that was all thanks for
yeah so that was all thanks for listening I only got one more thing to
listening I only got one more thing to
listening I only got one more thing to show you though so let's go back to the
show you though so let's go back to the
show you though so let's go back to the presentation there was something at the
presentation there was something at the
presentation there was something at the end of the picture the insurance' and
end of the picture the insurance' and
end of the picture the insurance' and that's blogging so let's turn something
that's blogging so let's turn something
that's blogging so let's turn something of what we have made international blog
of what we have made international blog
of what we have made international blog post so I'll go through this link into
post so I'll go through this link into
post so I'll go through this link into my Emacs based God and what we'll do is
my Emacs based God and what we'll do is
my Emacs based God and what we'll do is start
firefox and here's actually the content
firefox and here's actually the content
firefox and here's actually the content of 50 or more files yes they will move
of 50 or more files yes they will move
of 50 or more files yes they will move out
out
out here's statically and generated website
here's statically and generated website
here's statically and generated website so let's look at how we can actually
so let's look at how we can actually
so let's look at how we can actually create a new blog post so I would like
create a new blog post so I would like
create a new blog post so I would like to generate a new entry which will show
to generate a new entry which will show
to generate a new entry which will show how to Emacs attack with Emacs
[Music]
should be unique oh wow did you see that
should be unique oh wow did you see that
should be unique oh wow did you see that I saved and it popped up here so here is
I saved and it popped up here so here is
I saved and it popped up here so here is you got the tags the Emax nice and just
you got the tags the Emax nice and just
you got the tags the Emax nice and just text save pops up there and then the
text save pops up there and then the
text save pops up there and then the code that I wrote and now it's exported
code that I wrote and now it's exported
code that I wrote and now it's exported here and we got cold block syntax
here and we got cold block syntax
here and we got cold block syntax highlighting showcasing the so that's
highlighting showcasing the so that's
highlighting showcasing the so that's nice and actually I need to do is I need
nice and actually I need to do is I need
nice and actually I need to do is I need to mark this one is to do and then we
to mark this one is to do and then we
to mark this one is to do and then we need to just spam and then it will be
need to just spam and then it will be
need to just spam and then it will be treated as
treated as
treated as Melissa draught which it would be if it
Melissa draught which it would be if it
Melissa draught which it would be if it had the the to do island but when it's
had the the to do island but when it's
had the the to do island but when it's done it will get this time stamp it will
done it will get this time stamp it will
done it will get this time stamp it will get yeah he considered an action post
get yeah he considered an action post
get yeah he considered an action post driver it's not on the actual site yet
driver it's not on the actual site yet
driver it's not on the actual site yet because I'm running this localhost here
push it so era was using Manjit another
push it so era was using Manjit another
push it so era was using Manjit another great feature of Emax super easy to work
great feature of Emax super easy to work
great feature of Emax super easy to work with get their customers now if I look
with get their customers now if I look
with get their customers now if I look here I have Sanskrit of the glory if
here I have Sanskrit of the glory if
here I have Sanskrit of the glory if this works
I should be able to see
I would have expected it to show out
take some time still and there it is
take some time still and there it is
take some time still and there it is it's a blog post automatically open PDF
it's a blog post automatically open PDF
it's a blog post automatically open PDF on exports perfect citation that's it
on exports perfect citation that's it
on exports perfect citation that's it thanks for watching
Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.