summaryrefslogblamecommitdiffstats
path: root/2020/subtitles/emacsconf-2020--22-powering-up-special-blocks--musa-al-hassy-autogen.sbv
blob: 4ab5ce202dfdcc76aad6463e20f7cb271ed9d480 (plain) (tree)
1
2
3
4
5
6
7
8






                                     
                                       




                       
                                  



















                                       
                                      







                                        
                                        




                              
                                        

                       
                                        

                       
               

                       
                                      













                                      
                                      










                                     
                                      





















































































                                        
                                     




















































                                        
                                   


































                                       
                                      


















































































                                        
                                      













                                      
                  




































































































































































































                                        
                                      





























































































































































                                        
                                     























































                                        
                                    































                                       
                                     























































                                       
               














































                                        
                         
































































                                        
                                      





















































































                                        
                                       























































                                        
                                      








































                                       
                                      







                                    
                                       




                       
                                   








































































































































                                        
                                        

                       
                     









































































                                        
                                        




                       
                                      




                       
                                     




                       
                                  

























                                     
                         







































































































                                        
                           











































                                        
                                        




                       
                                     





































                                       
                                     
















                                        
                                        

                       
                                  




                       
                                        

                       
                                        



































































                                        
                                      




                       
                      




                               
                                       







                                   
                  

                       
                                        





























































































































































                                        
                                   






































































                                        
                                       







                                    
                                      




























                                       
                                        

                       
                                        

                       
                                    










                                        
                                




                       
                                


































                                        
                            

                       
                                      




                                
                                       













                                       
                                













                                       
                                      

                       
     












































































                                       
                                        




                       
                                   

                       
                                    

                       
                                       













                                      
                               




                                  
                                       

                       
                                        














































                                        
                                        





































                                        
                                       



















                                        
                                       













                                     
                         







                                        
                                        

                       
                     



                       
0:00:01.680,0:00:07.359
oh you are now muted

0:00:04.080,0:00:09.840
all right then well uh hello everyone

0:00:07.359,0:00:11.519
I hope uh you're all enjoying the Emacs

0:00:09.840,0:00:14.480
conf

0:00:11.519,0:00:15.040
my name is musa alhassi and I hope

0:00:14.480,0:00:17.920
you're

0:00:15.040,0:00:19.840
excited to learn about uh powering up

0:00:17.920,0:00:22.880
special blocks

0:00:19.840,0:00:24.800
um so let's let's first off uh find out

0:00:22.880,0:00:27.920
what these special blocks are and

0:00:24.800,0:00:30.240
and see what we can uh go from so

0:00:27.920,0:00:32.719
uh yesterday I saw a lot of cool talks

0:00:30.240,0:00:33.200
and uh people were chatting about how do

0:00:32.719,0:00:35.520
you

0:00:33.200,0:00:37.200
I know how should you present should you

0:00:35.520,0:00:38.640
do it this way or that way and

0:00:37.200,0:00:41.120
I thought maybe I should try a different

0:00:38.640,0:00:42.239
way uh but but I'm talking about special

0:00:41.120,0:00:45.039
blocks and if I

0:00:42.239,0:00:47.039
show you an emax then I have to export

0:00:45.039,0:00:47.840
the html so you can see what it looks

0:00:47.039,0:00:50.800
like

0:00:47.840,0:00:51.920
or export to a pdf so you can see what

0:00:50.800,0:00:54.239
it looks like

0:00:51.920,0:00:56.399
uh so I ended up writing an org reveal

0:00:54.239,0:00:58.960
and

0:00:56.399,0:01:00.879
joyously this this just works you can

0:00:58.960,0:01:02.960
you can just see things here

0:01:00.879,0:01:04.559
uh I was worried that I'd have to take

0:01:02.960,0:01:07.600
pictures and then you know

0:01:04.559,0:01:09.760
uh uh you know insert pings so that that

0:01:07.600,0:01:12.159
was a delight

0:01:09.760,0:01:12.960
okay uh so special blocks are these

0:01:12.159,0:01:16.000
things like

0:01:12.960,0:01:17.280
a center small quote uh that's what a

0:01:16.000,0:01:19.360
special block is

0:01:17.280,0:01:20.720
and with a bit of lisp we can we can

0:01:19.360,0:01:23.200
make special blocks

0:01:20.720,0:01:24.799
and link types right so uh using a

0:01:23.200,0:01:26.720
single interface

0:01:24.799,0:01:27.840
um and the interface is going to be

0:01:26.720,0:01:29.439
similar to one

0:01:27.840,0:01:32.560
many people are familiar with in

0:01:29.439,0:01:35.840
particular org babel's

0:01:32.560,0:01:37.840
source interface as well as using global

0:01:35.840,0:01:39.680
header arguments for link types

0:01:37.840,0:01:41.200
and the idea is to write it once and

0:01:39.680,0:01:44.159
generate many different kinds

0:01:41.200,0:01:44.720
right you write uh an org markup and you

0:01:44.159,0:01:47.680
can have

0:01:44.720,0:01:48.560
uh html you can have pdf and and

0:01:47.680,0:01:51.840
joyously

0:01:48.560,0:01:53.600
uh org reveal so that was uh that was an

0:01:51.840,0:01:56.640
unexpected delight

0:01:53.600,0:01:57.840
um so here is a few that you'll you'll

0:01:56.640,0:02:01.759
just see as we

0:01:57.840,0:02:04.000
uh in this presentation you know some uh

0:02:01.759,0:02:05.040
uh I won't show some of these uh link

0:02:04.000,0:02:06.799
only ones

0:02:05.040,0:02:08.080
but we'll see a few of these other ones

0:02:06.799,0:02:09.920
just to make the uh

0:02:08.080,0:02:11.520
presentation look nice so the

0:02:09.920,0:02:14.000
presentation is really going to

0:02:11.520,0:02:15.120
present these blocks and the mechanism

0:02:14.000,0:02:18.400
at the same time

0:02:15.120,0:02:21.280
so uh so this no no html was written

0:02:18.400,0:02:22.000
look ma no html just pure org mode and

0:02:21.280,0:02:23.520
and

0:02:22.000,0:02:25.840
you get all these beautiful boxes and

0:02:23.520,0:02:27.680
things okay

0:02:25.840,0:02:29.120
so the motivation for this is you know

0:02:27.680,0:02:31.200
what uh

0:02:29.120,0:02:32.239
you're you're online you run into a blog

0:02:31.200,0:02:33.120
and you see something you like and

0:02:32.239,0:02:35.280
you're like man

0:02:33.120,0:02:36.640
you know I wish I could uh you know

0:02:35.280,0:02:39.519
produce that

0:02:36.640,0:02:40.160
um uh but you you check in the author

0:02:39.519,0:02:44.239
wrote raw

0:02:40.160,0:02:46.800
html you know plus html everywhere

0:02:44.239,0:02:47.840
and uh that's that's you know gonna

0:02:46.800,0:02:49.680
obscure

0:02:47.840,0:02:51.200
your your real content it's going to be

0:02:49.680,0:02:54.239
surrounded by all this uh

0:02:51.200,0:02:56.400
styling information that's unfortunate

0:02:54.239,0:02:58.959
uh the author decides to use an org

0:02:56.400,0:03:01.120
macro all right a bit better

0:02:58.959,0:03:03.360
but then what if you decide hey I want

0:03:01.120,0:03:06.000
to make a

0:03:03.360,0:03:07.840
not pdf great and then the worst of all

0:03:06.000,0:03:10.159
the author doesn't give you the source

0:03:07.840,0:03:10.879
and then you have to view page source

0:03:10.159,0:03:13.760
and

0:03:10.879,0:03:14.239
learn cascading style sheets and and you

0:03:13.760,0:03:16.159
know

0:03:14.239,0:03:18.080
sit in a corner and cry decide to do

0:03:16.159,0:03:20.959
other things with your life

0:03:18.080,0:03:22.640
so uh we want to give you org users

0:03:20.959,0:03:26.000
numerous styles

0:03:22.640,0:03:27.200
and uh and an extensible mechanism to

0:03:26.000,0:03:28.799
add more of these

0:03:27.200,0:03:31.200
aesthetically pleasing styles you know

0:03:28.799,0:03:34.720
to have really nice things

0:03:31.200,0:03:35.599
look one way in the html and look almost

0:03:34.720,0:03:39.120
the same way

0:03:35.599,0:03:41.680
in the pdf and other uh back ends and

0:03:39.120,0:03:42.159
if by having these newer ones you know

0:03:41.680,0:03:44.879
people

0:03:42.159,0:03:45.519
might be encouraged to try making new

0:03:44.879,0:03:47.920
ones

0:03:45.519,0:03:49.040
especially when the interface is uh not

0:03:47.920,0:03:54.080
so difficult

0:03:49.040,0:03:54.080
uh that's the that's the aim okay

0:03:54.159,0:03:59.120
uh so let's let's have a a real story to

0:03:57.360,0:04:02.319
motivate this even more

0:03:59.120,0:04:03.599
um so here's three friends uh I hope I

0:04:02.319,0:04:04.640
don't butcher their names but these

0:04:03.599,0:04:07.040
friends are called

0:04:04.640,0:04:08.720
amin sasha and corwin and then they're

0:04:07.040,0:04:12.080
organizing a conference

0:04:08.720,0:04:14.239
uh EmacsConf 2020.

0:04:12.080,0:04:16.479
so sasha decides to write an org file

0:04:14.239,0:04:19.199
and and she would like some feedback

0:04:16.479,0:04:19.840
okay and and just uh make it clear

0:04:19.199,0:04:22.960
there's no

0:04:19.840,0:04:27.199
uh just how easy this looks

0:04:22.960,0:04:27.199
let's look at the source for this block

0:04:27.280,0:04:30.720
notice it's just the word green then a

0:04:30.000,0:04:34.560
colon

0:04:30.720,0:04:37.759
than amine uh so no

0:04:34.560,0:04:38.479
no div style coloring just just you know

0:04:37.759,0:04:41.520
green color

0:04:38.479,0:04:43.600
immune a very pleasant uh or markup

0:04:41.520,0:04:44.960
so that's that's quite nice put some

0:04:43.600,0:04:47.840
bold around it

0:04:44.960,0:04:49.040
not not too difficult so hopefully uh

0:04:47.840,0:04:51.680
this will be useful to

0:04:49.040,0:04:52.240
other people as well so what kind of

0:04:51.680,0:04:56.639
feedback

0:04:52.240,0:04:59.120
uh would sasha expect to get um so maybe

0:04:56.639,0:04:59.680
she would expect top level remarks

0:04:59.120,0:05:01.759
visible

0:04:59.680,0:05:04.400
in the export you know when she makes an

0:05:01.759,0:05:07.840
html she can see right there a big block

0:05:04.400,0:05:09.840
right maybe

0:05:07.840,0:05:11.120
amin will suggest to sasha please

0:05:09.840,0:05:12.960
replace this part

0:05:11.120,0:05:14.639
with this other part or replace this

0:05:12.960,0:05:16.960
word with this other word

0:05:14.639,0:05:17.680
right um this is not really possible

0:05:16.960,0:05:21.919
with raw

0:05:17.680,0:05:24.000
html or uh yeah or with even latex

0:05:21.919,0:05:25.360
you'd have to have multiple arguments

0:05:24.000,0:05:27.840
the first argument and then

0:05:25.360,0:05:28.800
the replacement argument and it's a bit

0:05:27.840,0:05:30.960
clunky

0:05:28.800,0:05:32.080
um but with our setup you just write

0:05:30.960,0:05:34.479
some text

0:05:32.080,0:05:36.240
write hashtag plus replace with and then

0:05:34.479,0:05:39.440
write more text and you're good to go

0:05:36.240,0:05:40.720
normal uh org markup um

0:05:39.440,0:05:42.479
everyone speaks different languages

0:05:40.720,0:05:45.919
maybe they want to use a

0:05:42.479,0:05:48.000
uh one word or they're arguing about

0:05:45.919,0:05:49.759
whether we talk about frames or windows

0:05:48.000,0:05:50.560
um so maybe they want to have some

0:05:49.759,0:05:52.479
translations

0:05:50.560,0:05:55.360
right so there's different kinds of

0:05:52.479,0:05:59.360
feedbacks uh let's let's take an example

0:05:55.360,0:06:02.560
uh look at what they are okay

0:05:59.360,0:06:06.160
uh so for example sasha might write

0:06:02.560,0:06:08.319
uh this org mode right here and uh

0:06:06.160,0:06:09.759
and then in her html exports you might

0:06:08.319,0:06:12.080
see this

0:06:09.759,0:06:13.840
and uh her feedback might look really

0:06:12.080,0:06:14.560
nicely from anyone who says you know

0:06:13.840,0:06:16.639
let's uh

0:06:14.560,0:06:18.560
let's do some lisp instead of uh

0:06:16.639,0:06:20.960
mathematics let's just do some list

0:06:18.560,0:06:22.479
and and corwin says you know let's let's

0:06:20.960,0:06:25.120
not be so silly

0:06:22.479,0:06:27.360
maybe let's just say 9 a.m and move on

0:06:25.120,0:06:27.360
okay

0:06:28.080,0:06:33.039
um so amin likes to export to pdf

0:06:31.360,0:06:34.720
and so he writes his top-level remarks

0:06:33.039,0:06:37.600
using latex that's how

0:06:34.720,0:06:38.960
so to get this uh square I mean please

0:06:37.600,0:06:41.440
change whatever

0:06:38.960,0:06:43.120
he might write like this hashtag you

0:06:41.440,0:06:46.960
know plus latex

0:06:43.120,0:06:50.000
hashtag plus latex right but then

0:06:46.960,0:06:50.880
sasha only exports to p to html uh for

0:06:50.000,0:06:54.880
example

0:06:50.880,0:06:57.199
um and uh so she doesn't look at the pdf

0:06:54.880,0:06:58.560
and she may not see his top-level

0:06:57.199,0:06:59.440
feedback you know with those nice

0:06:58.560,0:07:02.160
brackets and

0:06:59.440,0:07:03.120
and bold right and so she might think

0:07:02.160,0:07:06.160
everything's good

0:07:03.120,0:07:09.039
right and that can be a bit disastrous

0:07:06.160,0:07:09.440
um so maybe sasha will will then uh make

0:07:09.039,0:07:13.199
some

0:07:09.440,0:07:16.160
of her own feedback all right uh but

0:07:13.199,0:07:16.560
and to produce it she might write html

0:07:16.160,0:07:20.639
uh

0:07:16.560,0:07:21.680
um html commands hashtag plus html to

0:07:20.639,0:07:24.240
get that

0:07:21.680,0:07:25.680
uh but then amin will make a pdf and

0:07:24.240,0:07:27.759
this won't stick out

0:07:25.680,0:07:30.160
and then so he might think everything's

0:07:27.759,0:07:33.520
okay even even though it's not

0:07:30.160,0:07:36.240
um then corwin actually decides hey

0:07:33.520,0:07:36.800
uh let me read the exported result and

0:07:36.240,0:07:38.319
these

0:07:36.800,0:07:39.919
there's all those feedback from two

0:07:38.319,0:07:42.080
people who haven't uh

0:07:39.919,0:07:43.840
read anything because maybe they were in

0:07:42.080,0:07:46.400
a russian and didn't

0:07:43.840,0:07:48.160
see the top level feedback and so they

0:07:46.400,0:07:50.000
agree hey let's have a uniform org

0:07:48.160,0:07:53.280
interface that exports

0:07:50.000,0:07:54.080
to both html and pdf make both of us

0:07:53.280,0:07:57.280
happy

0:07:54.080,0:07:58.160
okay so they decide to use org special

0:07:57.280,0:08:01.840
blocks

0:07:58.160,0:08:04.400
right um and to set this up they need to

0:08:01.840,0:08:04.879
you know maybe read a little bit of lisp

0:08:04.400,0:08:08.879
hooks

0:08:04.879,0:08:10.840
advice macros to get all of this set up

0:08:08.879,0:08:12.319
and then they'll use org as the main

0:08:10.840,0:08:14.400
interface okay

0:08:12.319,0:08:16.479
it's a lot of work but it's worth it

0:08:14.400,0:08:19.360
right maybe

0:08:16.479,0:08:19.759
um but then corwin corbin's a bit tears

0:08:19.360,0:08:22.960
so

0:08:19.759,0:08:24.800
uh corwin maybe doesn't want to write

0:08:22.960,0:08:26.080
uh using blocks he thinks they're

0:08:24.800,0:08:29.360
overkill and

0:08:26.080,0:08:31.840
and sasha wants html and uh and

0:08:29.360,0:08:32.560
I mean wants pdf and corwin wants org

0:08:31.840,0:08:34.240
reveal

0:08:32.560,0:08:36.320
so now they have to reformat all their

0:08:34.240,0:08:37.120
code and then they need to use org link

0:08:36.320,0:08:39.599
types to

0:08:37.120,0:08:41.519
reduce the overkill all right so they

0:08:39.599,0:08:44.000
can try to avoid duplication by

0:08:41.519,0:08:46.800
factoring things out into self-contained

0:08:44.000,0:08:50.320
uh defined functions or defunds

0:08:46.800,0:08:53.440
um but now to set up or links

0:08:50.320,0:08:54.399
uh we'll have uh to learn a new

0:08:53.440,0:08:57.040
interface

0:08:54.399,0:08:58.000
org setup link um learn a little bit

0:08:57.040,0:09:02.160
about fonts

0:08:58.000,0:09:05.040
follow links exports handles

0:09:02.160,0:09:06.800
it's so much that's so much but but then

0:09:05.040,0:09:08.399
you know the friends they learn a lot

0:09:06.800,0:09:11.120
you know they learn about defund all

0:09:08.399,0:09:12.480
right so these these words are red

0:09:11.120,0:09:14.320
you get a little explanation I think

0:09:12.480,0:09:16.720
it's a bit too small for anyone to read

0:09:14.320,0:09:18.000
this is lisp documentation right for

0:09:16.720,0:09:19.680
defund

0:09:18.000,0:09:21.600
advice ad there's some list

0:09:19.680,0:09:23.600
documentation right

0:09:21.600,0:09:25.279
they learn about destructuring let's so

0:09:23.600,0:09:26.959
this is from the dash library

0:09:25.279,0:09:28.800
here's all that you know glorious

0:09:26.959,0:09:29.360
glorious documentation with examples

0:09:28.800,0:09:31.680
sorry

0:09:29.360,0:09:33.760
I like that they might make an ad-hoc

0:09:31.680,0:09:36.000
mechanism to simulate

0:09:33.760,0:09:37.040
arguments for special blocks so

0:09:36.000,0:09:40.399
something maybe called

0:09:37.040,0:09:41.920
extract arguments and then of course to

0:09:40.399,0:09:42.480
make new link types they have to learn

0:09:41.920,0:09:45.120
about

0:09:42.480,0:09:46.480
org link set parameters and then it's

0:09:45.120,0:09:49.920
numerous uh

0:09:46.480,0:09:50.720
bits and pieces all right so let's oh

0:09:49.920,0:09:53.600
let's uh

0:09:50.720,0:09:55.040
close all these ones down and and uh of

0:09:53.600,0:09:56.080
course they also need to be uh

0:09:55.040,0:09:58.720
comfortable with

0:09:56.080,0:09:59.920
uh loops and maps and matching and

0:09:58.720,0:10:02.560
string functions

0:09:59.920,0:10:03.360
so it's it's a bit of a pain it's a bit

0:10:02.560,0:10:05.839
of a pain

0:10:03.360,0:10:06.560
um so it's probably not worth it so

0:10:05.839,0:10:09.360
maybe I'll just

0:10:06.560,0:10:10.320
rush things quickly or do an ad hoc you

0:10:09.360,0:10:13.680
know

0:10:10.320,0:10:15.920
we have things to do right

0:10:13.680,0:10:17.839
so maybe maybe the squad wants to have a

0:10:15.920,0:10:21.120
modular

0:10:17.839,0:10:23.040
and unified interface so everyone's

0:10:21.120,0:10:25.279
comfortable with defunct to define a

0:10:23.040,0:10:26.480
function and they say you know what

0:10:25.279,0:10:29.440
it would be nice if we could just you

0:10:26.480,0:10:32.959
know define simultaneously

0:10:29.440,0:10:34.880
both a block and the link type right

0:10:32.959,0:10:36.000
and uh that way we have a single

0:10:34.880,0:10:38.240
interface

0:10:36.000,0:10:39.040
org mode for for these things and it

0:10:38.240,0:10:42.079
would be nice was

0:10:39.040,0:10:43.680
modular so if I defined a

0:10:42.079,0:10:45.519
one kind of block and you defined

0:10:43.680,0:10:47.600
another we could compose them

0:10:45.519,0:10:49.360
right and then get a you know a nice

0:10:47.600,0:10:52.320
bigger block like lego

0:10:49.360,0:10:54.160
that would be nice building box okay and

0:10:52.320,0:10:56.240
uh this is uh what we

0:10:54.160,0:10:57.600
have come up with called death block and

0:10:56.240,0:11:00.240
it also has a

0:10:57.600,0:11:01.760
long documentation string containing

0:11:00.240,0:11:04.800
examples and things

0:11:01.760,0:11:08.320
so that way you can try to be useful

0:11:04.800,0:11:10.880
okay um so let's let's look at a a

0:11:08.320,0:11:12.800
solution to these friends uh trilemma

0:11:10.880,0:11:14.320
all right so here's here's a way to

0:11:12.800,0:11:17.040
define a block

0:11:14.320,0:11:19.200
um it looks it's it doesn't look that

0:11:17.040,0:11:22.320
difficult but this is how they can

0:11:19.200,0:11:25.920
define a block for um

0:11:22.320,0:11:27.680
for uh their top-level feedback right

0:11:25.920,0:11:28.959
so let's let's look at the three main

0:11:27.680,0:11:31.920
parts together

0:11:28.959,0:11:33.040
it's not that uh difficult I hope just

0:11:31.920,0:11:34.720
six lines

0:11:33.040,0:11:36.160
and that's including a documentation

0:11:34.720,0:11:39.440
string and you know

0:11:36.160,0:11:41.279
uh new lines and things okay so in line

0:11:39.440,0:11:42.000
one we just define the block just like

0:11:41.279,0:11:44.880
you define

0:11:42.000,0:11:46.399
a function we define a block the flag

0:11:44.880,0:11:49.680
the block name is going to be called

0:11:46.399,0:11:53.360
feedback it has an author who

0:11:49.680,0:11:56.160
right the author has no default

0:11:53.360,0:11:57.760
value it has a color and the color has a

0:11:56.160,0:12:00.560
default value of red

0:11:57.760,0:12:01.680
okay so just just as when you define

0:12:00.560,0:12:04.880
functions they

0:12:01.680,0:12:08.639
they uh you start by uh define

0:12:04.880,0:12:10.720
or def block than the name some

0:12:08.639,0:12:13.440
mandatory argument and some optional

0:12:10.720,0:12:15.760
arguments okay

0:12:13.440,0:12:18.480
then the next stage is well and

0:12:15.760,0:12:20.880
definition a documentation you know

0:12:18.480,0:12:22.880
uh the people who use this which are

0:12:20.880,0:12:25.519
future you or future me you know

0:12:22.880,0:12:27.839
uh might want to know what this is all

0:12:25.519,0:12:30.560
right so let's get to document this

0:12:27.839,0:12:32.079
uh and uh for for corwin who might want

0:12:30.560,0:12:34.560
to use uh tooltips

0:12:32.079,0:12:35.120
uh when corwin writes feedback whatever

0:12:34.560,0:12:37.120
and

0:12:35.120,0:12:38.639
Emacs they'll see a nice little tooltip

0:12:37.120,0:12:41.279
and the tooltip will have

0:12:38.639,0:12:43.279
this uh documentation string right so

0:12:41.279,0:12:45.200
that'll be nice

0:12:43.279,0:12:46.480
okay and then here's the third part the

0:12:45.200,0:12:49.440
last three lines are

0:12:46.480,0:12:49.680
not not so difficult if the back end is

0:12:49.440,0:12:52.800
in

0:12:49.680,0:12:55.360
is html the backend is html

0:12:52.800,0:12:57.440
please use this template string

0:12:55.360,0:13:00.639
otherwise use the other string

0:12:57.440,0:13:01.279
okay and for each of these uh string

0:13:00.639,0:13:03.600
markers

0:13:01.279,0:13:04.959
please put in the color who wrote it and

0:13:03.600,0:13:07.279
then the contents

0:13:04.959,0:13:08.160
of the special block or the link type

0:13:07.279,0:13:10.639
okay

0:13:08.160,0:13:11.600
um so that's pretty neat not not so

0:13:10.639,0:13:14.639
difficult

0:13:11.600,0:13:15.519
so I thought that was kind of cool and

0:13:14.639,0:13:18.480
then notice it's

0:13:15.519,0:13:19.519
anaphoric it's it's a this this def

0:13:18.480,0:13:21.760
block

0:13:19.519,0:13:22.560
gives you two new names it gives you a

0:13:21.760,0:13:25.120
name called

0:13:22.560,0:13:26.480
uh contents and it gives you a name

0:13:25.120,0:13:29.040
called back end

0:13:26.480,0:13:31.040
right and so even if you're writing a

0:13:29.040,0:13:32.560
def block and you intend it to be used

0:13:31.040,0:13:35.440
only for links

0:13:32.560,0:13:37.600
uh like the uh these colors for example

0:13:35.440,0:13:38.399
uh these colors were defined using dev

0:13:37.600,0:13:41.279
block

0:13:38.399,0:13:43.360
uh and I used them as links right here

0:13:41.279,0:13:44.880
and you don't need to worry

0:13:43.360,0:13:48.160
where does the text come from in the

0:13:44.880,0:13:48.959
link you know if I say red colon bob uh

0:13:48.160,0:13:50.720
is it bob

0:13:48.959,0:13:52.000
or if I put a description is it the

0:13:50.720,0:13:54.000
description so

0:13:52.000,0:13:56.720
it's whatever is available will will

0:13:54.000,0:13:59.199
become uh the value of contents

0:13:56.720,0:14:00.320
and if you're really you know interested

0:13:59.199,0:14:03.839
and you want to do some

0:14:00.320,0:14:04.959
intricate stuff uh def block also gives

0:14:03.839,0:14:08.160
you something called

0:14:04.959,0:14:09.360
raw dash contents if you really want to

0:14:08.160,0:14:11.920
touch the raw

0:14:09.360,0:14:12.639
uh contents with all of the org markups

0:14:11.920,0:14:16.000
still there

0:14:12.639,0:14:18.320
okay so let's uh let's see

0:14:16.000,0:14:19.440
how uh everyone can uh communicate

0:14:18.320,0:14:22.480
amongst themselves

0:14:19.440,0:14:26.000
using this new interface okay so

0:14:22.480,0:14:28.399
uh uh sasha speculates and she how does

0:14:26.000,0:14:31.440
she speculate for her organ html

0:14:28.399,0:14:34.800
she might just write hey look at that no

0:14:31.440,0:14:37.519
no no html nice and and

0:14:34.800,0:14:39.600
amin wants to have some green and so he

0:14:37.519,0:14:42.240
just says hey here's some color green

0:14:39.600,0:14:42.959
and and uh there you go it looks almost

0:14:42.240,0:14:46.560
the same

0:14:42.959,0:14:49.680
right uh notice that the main argument

0:14:46.560,0:14:52.480
is right here def block took an author

0:14:49.680,0:14:53.920
and here's the author again and now the

0:14:52.480,0:14:57.360
optional argument

0:14:53.920,0:14:58.000
uses the org babel source interface you

0:14:57.360,0:15:00.639
just say

0:14:58.000,0:15:01.440
colon and then a key and then the

0:15:00.639,0:15:05.040
argument

0:15:01.440,0:15:05.519
quite quite nice and and corwin doesn't

0:15:05.040,0:15:07.920
want to

0:15:05.519,0:15:09.760
use blocks it's a bit of an overkill and

0:15:07.920,0:15:12.959
can just write a

0:15:09.760,0:15:16.000
a little um right

0:15:12.959,0:15:17.440
so the main argument is now the uh uh

0:15:16.000,0:15:19.360
the label of the link

0:15:17.440,0:15:21.600
all right and then the description of

0:15:19.360,0:15:24.959
the link is the contents

0:15:21.600,0:15:25.680
of uh of the feedback so that was quite

0:15:24.959,0:15:28.079
nice

0:15:25.680,0:15:29.360
so it looks like uh everyone uses the

0:15:28.079,0:15:32.800
same interface on the left

0:15:29.360,0:15:34.480
and can have varying uh outputs

0:15:32.800,0:15:36.639
and it looks I think it looks quite nice

0:15:34.480,0:15:40.000
and I hope you do too

0:15:36.639,0:15:42.160
um and there's a few more maybe

0:15:40.000,0:15:43.920
as you saw in some previous ones we had

0:15:42.160,0:15:46.800
text side beside side

0:15:43.920,0:15:47.440
right now um or we folded some regions

0:15:46.800,0:15:49.360
away

0:15:47.440,0:15:50.959
that was quite nice we put some things

0:15:49.360,0:15:54.000
in pretty boxes

0:15:50.959,0:15:57.120
um uh we had some spoilers at the very

0:15:54.000,0:15:58.160
beginning that we we uh hit some text uh

0:15:57.120,0:15:59.600
we demoed uh

0:15:58.160,0:16:01.680
some texts right you know here's some

0:15:59.600,0:16:04.480
org and here's what it looks like

0:16:01.680,0:16:05.199
um and and most importantly uh they they

0:16:04.480,0:16:08.320
compose

0:16:05.199,0:16:12.639
right there's uh uh there's a

0:16:08.320,0:16:14.720
a macro called uh uh thread block

0:16:12.639,0:16:16.160
uh thread block a thread block call and

0:16:14.720,0:16:18.000
it lets you thread the

0:16:16.160,0:16:20.639
the contents through a number of blocks

0:16:18.000,0:16:22.480
treating them as if they were functions

0:16:20.639,0:16:23.680
and so really you can think of a block

0:16:22.480,0:16:26.560
as a as a

0:16:23.680,0:16:27.360
as a string valued function so that's

0:16:26.560,0:16:30.959
pretty neat

0:16:27.360,0:16:31.759
I I think and uh thank you for listening

0:16:30.959,0:16:34.320
and uh

0:16:31.759,0:16:34.880
I I hope you've uh enjoyed this little

0:16:34.320,0:16:37.600
uh

0:16:34.880,0:16:38.160
happy fun time with uh with the Emacs

0:16:37.600,0:16:40.720
and friends

0:16:38.160,0:16:41.759
and uh I'll I'm I'll happy happily

0:16:40.720,0:16:43.730
answer questions

0:16:41.759,0:16:45.360
uh right now um

0:16:43.730,0:16:48.160
[Music]

0:16:45.360,0:16:50.480
so uh someone says why did you put

0:16:48.160,0:16:53.600
optional arguments in a separate list

0:16:50.480,0:16:54.560
rather than using cl style argument

0:16:53.600,0:16:58.399
lists

0:16:54.560,0:17:01.680
um so that's a very good question

0:16:58.399,0:17:04.400
and I will answer that by

0:17:01.680,0:17:04.880
showing you a more involved definition

0:17:04.400,0:17:08.959
of

0:17:04.880,0:17:12.079
feedback so let's look at a

0:17:08.959,0:17:12.079
a more involved one

0:17:13.039,0:17:19.280
right right here so for example

0:17:16.079,0:17:21.760
this one is called rural mark all right

0:17:19.280,0:17:23.439
and uh please let me know if my text is

0:17:21.760,0:17:26.799
not sufficiently big

0:17:23.439,0:17:29.520
so here is here is why uh we have

0:17:26.799,0:17:30.720
two arguments that takes two arguments

0:17:29.520,0:17:33.360
uh instead of one

0:17:30.720,0:17:34.799
for for its argument list right so you

0:17:33.360,0:17:37.679
you have def block

0:17:34.799,0:17:38.400
then you have the name right then you

0:17:37.679,0:17:40.960
have

0:17:38.400,0:17:42.880
the first uh argument list and the

0:17:40.960,0:17:46.080
second argument list

0:17:42.880,0:17:49.280
the first argument list uh takes the

0:17:46.080,0:17:51.760
takes the text right after the begin

0:17:49.280,0:17:52.320
right the text right after the begin is

0:17:51.760,0:17:55.760
the main

0:17:52.320,0:17:57.039
argument okay and then the remaining key

0:17:55.760,0:18:00.320
value pairs

0:17:57.039,0:18:03.280
are in the second argument list okay

0:18:00.320,0:18:04.640
now the reason we have two is because uh

0:18:03.280,0:18:06.799
in order to

0:18:04.640,0:18:08.880
streamline the interface to account for

0:18:06.799,0:18:12.320
both uh special blocks

0:18:08.880,0:18:13.360
and or link types uh what we do is we

0:18:12.320,0:18:16.160
say hey

0:18:13.360,0:18:18.000
uh in the first argument list uh you can

0:18:16.160,0:18:21.039
give a name to the first argument

0:18:18.000,0:18:24.240
give it a default value and anything

0:18:21.039,0:18:27.760
else you provide will become uh

0:18:24.240,0:18:30.000
uh part of the I'll co link

0:18:27.760,0:18:32.000
information so for example this link we

0:18:30.000,0:18:34.799
decided to make its face

0:18:32.000,0:18:35.840
angry red um you might want to give

0:18:34.799,0:18:37.919
other features to

0:18:35.840,0:18:39.679
links so we're trying to streamline the

0:18:37.919,0:18:42.320
interface for both

0:18:39.679,0:18:42.880
special blocks and org link types and we

0:18:42.320,0:18:46.240
thought

0:18:42.880,0:18:49.840
this way was quite nice um so

0:18:46.240,0:18:52.480
that was the main reason uh someone asks

0:18:49.840,0:18:55.039
uh so if if you uh if that's uh if you

0:18:52.480,0:18:57.600
need if you have follow-up please ask

0:18:55.039,0:19:00.559
someone asks do you intend to try to

0:18:57.600,0:19:03.600
upstream this amazing work into org

0:19:00.559,0:19:04.559
well I'm glad you like it I I don't know

0:19:03.600,0:19:06.880
how to upstream

0:19:04.559,0:19:08.799
but but I I will look into it and any

0:19:06.880,0:19:11.840
advice or guidance would be

0:19:08.799,0:19:14.640
much appreciated um you know

0:19:11.840,0:19:17.120
lisp is awesome and just as defunded as

0:19:14.640,0:19:20.240
a macro deathblock is a macro and then

0:19:17.120,0:19:21.919
source blocks are awesome and then now

0:19:20.240,0:19:24.080
maybe we can have arguments and special

0:19:21.919,0:19:25.280
blocks and motivate and encourage more

0:19:24.080,0:19:28.799
people to uh

0:19:25.280,0:19:32.559
to uh learn lisp right

0:19:28.799,0:19:35.280
so another person asks

0:19:32.559,0:19:38.559
um what is used to produce colorful

0:19:35.280,0:19:40.400
boxes around the cursor

0:19:38.559,0:19:41.840
I I'm not quite sure if you're asking

0:19:40.400,0:19:42.559
are you talking about my cursor right

0:19:41.840,0:19:47.840
here

0:19:42.559,0:19:47.840
or are you talking about in the slide um

0:19:48.400,0:19:52.400
so this this this cursor is some

0:19:50.559,0:19:55.440
application called

0:19:52.400,0:19:57.679
a stream brush that I had to purchase uh

0:19:55.440,0:19:59.039
unfortunately I could not find a a

0:19:57.679,0:20:02.159
suitable free one

0:19:59.039,0:20:03.840
um and the blocks I can demonstrate some

0:20:02.159,0:20:05.679
Emacs list but I can open up my Emacs if

0:20:03.840,0:20:06.320
people like and we can try some things

0:20:05.679,0:20:09.440
out

0:20:06.320,0:20:12.480
happy to do that uh

0:20:09.440,0:20:14.880
you're welcome uh someone asks

0:20:12.480,0:20:15.520
a side question about org reveal how do

0:20:14.880,0:20:17.440
you get

0:20:15.520,0:20:19.120
bespoke or multiple column layouts

0:20:17.440,0:20:22.559
without using html

0:20:19.120,0:20:24.640
ah excellent question that's what we do

0:20:22.559,0:20:26.000
that's that's what this uh project is

0:20:24.640,0:20:28.960
about so it's not

0:20:26.000,0:20:29.440
org reveal it's it's our fancy parallel

0:20:28.960,0:20:32.240
uh

0:20:29.440,0:20:33.440
uh block so we have this thing you say

0:20:32.240,0:20:35.679
begin parallel

0:20:33.440,0:20:37.120
you say how many columns you would like

0:20:35.679,0:20:39.679
uh do you want a bar

0:20:37.120,0:20:40.960
or not and then you write some text and

0:20:39.679,0:20:42.480
then you uh

0:20:40.960,0:20:44.400
you get some text and according with the

0:20:42.480,0:20:47.520
bar or not right so that's

0:20:44.400,0:20:50.080
that's how we achieve that in our slides

0:20:47.520,0:20:52.559
so I'm not uh I'm not quite sure where

0:20:50.080,0:20:52.559
this was

0:20:52.880,0:20:55.919
somewhere here I think

0:20:59.520,0:21:03.840
let me try to find this for you

0:21:06.240,0:21:09.440
I can't seem to find where the parallel

0:21:08.320,0:21:12.159
blocks were

0:21:09.440,0:21:15.039
apologies let's move on to the next

0:21:12.159,0:21:17.760
question I suppose

0:21:15.039,0:21:18.400
uh I'm pretty sure they're here ah there

0:21:17.760,0:21:21.360
they are

0:21:18.400,0:21:22.640
yes so these these uh were just

0:21:21.360,0:21:25.440
instances of using

0:21:22.640,0:21:26.480
uh the parallel block and it makes

0:21:25.440,0:21:29.600
things parallel

0:21:26.480,0:21:33.360
so that's quite nice um another person

0:21:29.600,0:21:36.720
asks uh yes

0:21:33.360,0:21:37.840
excellent um how does this relate to

0:21:36.720,0:21:39.360
banda pandoc

0:21:37.840,0:21:40.960
which is used for converting between

0:21:39.360,0:21:43.919
markup formats

0:21:40.960,0:21:44.400
so all we're doing is we're we're saying

0:21:43.919,0:21:46.799
hey

0:21:44.400,0:21:47.679
please write org because org is just

0:21:46.799,0:21:50.400
fantastic

0:21:47.679,0:21:51.760
and we love it and it's the dream and if

0:21:50.400,0:21:55.039
you would like to view things

0:21:51.760,0:21:58.559
in html or in org reveal or

0:21:55.039,0:22:02.320
in pdf that's up to the user so

0:21:58.559,0:22:05.039
here is a um oh

0:22:02.320,0:22:06.080
made it too small now so here is a an

0:22:05.039,0:22:08.880
example

0:22:06.080,0:22:10.240
so here's an uh how here's how parallel

0:22:08.880,0:22:13.120
is implemented

0:22:10.240,0:22:14.320
uh just as a quick example uh not too

0:22:13.120,0:22:16.880
long

0:22:14.320,0:22:18.400
uh about half of the implementation is

0:22:16.880,0:22:20.720
documentation so

0:22:18.400,0:22:22.720
uh hopefully that speaks for for how

0:22:20.720,0:22:25.280
useful this feature is

0:22:22.720,0:22:28.080
uh so we decide if there's a rule or not

0:22:25.280,0:22:29.760
um we look for the column break

0:22:28.080,0:22:31.840
and really here we're looking at the

0:22:29.760,0:22:34.960
back end if the back end is latex

0:22:31.840,0:22:37.679
uh please use this uh incantation with

0:22:34.960,0:22:38.559
multi columns mini pages what have you

0:22:37.679,0:22:41.039
and if the

0:22:38.559,0:22:41.600
back end is something else uh please uh

0:22:41.039,0:22:44.960
do this

0:22:41.600,0:22:46.640
uh div and style and uh other uh

0:22:44.960,0:22:48.080
gibberish that we don't really wanna

0:22:46.640,0:22:51.760
look at uh so

0:22:48.080,0:22:55.280
uh when you pandoc works from org

0:22:51.760,0:22:58.080
so it might not work directly since our

0:22:55.280,0:22:59.679
interface the way we set it up is when

0:22:58.080,0:23:01.919
you try to export

0:22:59.679,0:23:03.039
uh we hook in and we do a bunch of

0:23:01.919,0:23:05.919
pre-processing

0:23:03.039,0:23:07.440
so this this uh def block is a is a

0:23:05.919,0:23:10.880
string valued function

0:23:07.440,0:23:13.919
and so whenever we see these uh begin

0:23:10.880,0:23:16.480
parallel uh when you do an export

0:23:13.919,0:23:16.960
I tell Emacs hold up look for those

0:23:16.480,0:23:19.360
begin

0:23:16.960,0:23:20.320
parallels please oh you found them grab

0:23:19.360,0:23:22.400
that text

0:23:20.320,0:23:24.080
you grabbed it great now please apply

0:23:22.400,0:23:27.120
this person's uh function

0:23:24.080,0:23:29.760
onto that text and splice in the result

0:23:27.120,0:23:30.400
okay so so when you export uh we're

0:23:29.760,0:23:33.600
performing

0:23:30.400,0:23:35.120
arbitrary computations on your uh uh on

0:23:33.600,0:23:38.799
your text

0:23:35.120,0:23:40.159
so uh um some people might not find that

0:23:38.799,0:23:43.039
comforting to have

0:23:40.159,0:23:45.039
arbitrary uh computations happening so

0:23:43.039,0:23:47.520
in this article there's a few where

0:23:45.039,0:23:48.320
uh we change your text upon export we

0:23:47.520,0:23:51.760
translate it

0:23:48.320,0:23:55.360
we do other things to it um

0:23:51.760,0:23:57.360
so someone says uh if you export to

0:23:55.360,0:23:58.640
latex to pdf does that work well with

0:23:57.360,0:24:00.320
beamer as well

0:23:58.640,0:24:02.080
to create slides with columns for

0:24:00.320,0:24:05.200
example for uh

0:24:02.080,0:24:08.000
um so uh actually uh

0:24:05.200,0:24:09.200
so uh I I made a bunch of these changes

0:24:08.000,0:24:12.320
earlier this morning

0:24:09.200,0:24:14.480
and it just says latex right here um

0:24:12.320,0:24:15.360
so if you want to go to beamer I think

0:24:14.480,0:24:18.240
the back end for me

0:24:15.360,0:24:18.960
beamer is called well beamer so instead

0:24:18.240,0:24:21.200
of a

0:24:18.960,0:24:22.000
a p case what we would do is we would

0:24:21.200,0:24:25.360
say oh

0:24:22.000,0:24:29.279
if it's a latex or it's a beamer

0:24:25.360,0:24:31.120
then uh use this uh otherwise

0:24:29.279,0:24:33.039
it's not a latex it will simply default

0:24:31.120,0:24:36.400
to this one which could be

0:24:33.039,0:24:39.679
dangerous for your needs um I think it's

0:24:36.400,0:24:41.279
a bad practice to put a underscore but I

0:24:39.679,0:24:43.679
did it really quickly because I just

0:24:41.279,0:24:46.559
wanted to show you that it works fine in

0:24:43.679,0:24:47.440
org reveal contributions are more than

0:24:46.559,0:24:51.039
welcome

0:24:47.440,0:24:52.240
I I uh happily uh would love any

0:24:51.039,0:24:56.080
assistance

0:24:52.240,0:24:58.640
um and and I have a uh we have a

0:24:56.080,0:25:00.159
list a reference cheat sheet here to to

0:24:58.640,0:25:02.000
learn a little bit about lisp if you're

0:25:00.159,0:25:04.640
not comfortable or to

0:25:02.000,0:25:06.400
ask some questions lots of helpful

0:25:04.640,0:25:09.440
people

0:25:06.400,0:25:11.679
so there's another question that says uh

0:25:09.440,0:25:13.120
does typing in a block mess up with a

0:25:11.679,0:25:15.679
syntax highlighting

0:25:13.120,0:25:17.279
usually you use a single color inside an

0:25:15.679,0:25:21.279
example block for example

0:25:17.279,0:25:25.279
ah you found my crutch you found

0:25:21.279,0:25:27.440
my crutch um so I so there's

0:25:25.279,0:25:29.760
emax's is all encompassing and I'm not

0:25:27.440,0:25:32.559
quite sure how fonts work or are

0:25:29.760,0:25:33.840
you know I I learned enough to get by I

0:25:32.559,0:25:37.440
learned enough to get by

0:25:33.840,0:25:39.760
so let me um but here's

0:25:37.440,0:25:40.799
here's how links work they're they're a

0:25:39.760,0:25:42.960
bit complicated

0:25:40.799,0:25:43.919
this this is a bit scary I don't

0:25:42.960,0:25:47.039
recommend anyone

0:25:43.919,0:25:49.840
uh read it um

0:25:47.039,0:25:50.559
but uh actually let me open up an email

0:25:49.840,0:25:53.600
and you can

0:25:50.559,0:25:54.799
you can see what I see uh so here's an

0:25:53.600,0:25:56.799
Emacs

0:25:54.799,0:25:58.400
all right let's make that a bit bigger

0:25:56.799,0:26:01.200
uh let's change this

0:25:58.400,0:26:01.919
slightly nope that's worse there you go

0:26:01.200,0:26:05.760
so

0:26:01.919,0:26:09.360
here's here's some words um so here's

0:26:05.760,0:26:12.000
red hello um

0:26:09.360,0:26:12.400
but you're worried about uh preserving

0:26:12.000,0:26:15.679
uh

0:26:12.400,0:26:18.480
uh uh um quantification

0:26:15.679,0:26:18.880
so let's make an emax list block all

0:26:18.480,0:26:22.840
right

0:26:18.880,0:26:27.520
and let's say plus one two ah

0:26:22.840,0:26:27.520
where's the fun hello

0:26:28.000,0:26:34.880
um bye okay where's the coloring

0:26:32.080,0:26:36.000
if we if we zoom in on this on this

0:26:34.880,0:26:39.200
begin source block

0:26:36.000,0:26:42.159
if we zoom in you can see down here

0:26:39.200,0:26:43.279
uh we have our our coloring all right

0:26:42.159,0:26:46.960
when we zoom in

0:26:43.279,0:26:50.080
if we if we zoom out ah no coloring

0:26:46.960,0:26:50.880
zoom in coloring it's about ah no

0:26:50.080,0:26:53.840
coloring

0:26:50.880,0:26:55.679
let's take off these bad boys and oh

0:26:53.840,0:26:59.360
look my coloring's back

0:26:55.679,0:27:02.320
so um in a previous

0:26:59.360,0:27:03.760
uh iteration of the system I was able to

0:27:02.320,0:27:06.400
maintain coloring

0:27:03.760,0:27:08.559
uh in this new iteration I am not I

0:27:06.400,0:27:11.039
don't know how to do it I haven't uh

0:27:08.559,0:27:13.279
had the time to to implement it I spent

0:27:11.039,0:27:17.279
a lot of time writing this uh

0:27:13.279,0:27:19.679
48 page uh documentation uh with uh

0:27:17.279,0:27:20.320
with some fun examples to to to try to

0:27:19.679,0:27:21.760
help

0:27:20.320,0:27:23.760
people learn so but but I would

0:27:21.760,0:27:26.240
appreciate any help or guidance on

0:27:23.760,0:27:28.000
how to uh maintain the quantification I

0:27:26.240,0:27:29.200
I really would like to keep those colors

0:27:28.000,0:27:31.840
in

0:27:29.200,0:27:32.640
um musa we have time for maybe one more

0:27:31.840,0:27:34.960
question

0:27:32.640,0:27:37.039
um one or two more questions and then we

0:27:34.960,0:27:39.120
have to move on to the next talk

0:27:37.039,0:27:40.799
um but yeah you're more than welcome to

0:27:39.120,0:27:42.559
take continue taking the questions via

0:27:40.799,0:27:45.760
irc or the pad

0:27:42.559,0:27:48.480
okay thank you thank you

0:27:45.760,0:27:48.880
let's uh the final question we'll take

0:27:48.480,0:27:52.320
is

0:27:48.880,0:27:54.399
um should packages implement

0:27:52.320,0:27:55.840
interface to one specific format or

0:27:54.399,0:27:57.279
attempt to be conclusive to all the

0:27:55.840,0:27:58.880
potential output targets

0:27:57.279,0:28:01.120
I think you should just make them as you

0:27:58.880,0:28:02.559
go and you know add them as you need

0:28:01.120,0:28:05.600
them we'll make uh

0:28:02.559,0:28:07.840
help requests or things and uh

0:28:05.600,0:28:09.279
we can we can share recipes in this uh

0:28:07.840,0:28:12.799
document and then

0:28:09.279,0:28:16.000
try to add other uh techniques and then

0:28:12.799,0:28:19.200
and we can uh use these blocks as a

0:28:16.000,0:28:22.240
common uh interface for

0:28:19.200,0:28:26.000
for exporting to pdf and other things

0:28:22.240,0:28:28.399
and since someone asked here is a um

0:28:26.000,0:28:30.159
here is uh what a pdf looks like this is

0:28:28.399,0:28:33.840
the same pdf and

0:28:30.159,0:28:34.960
uh rendered uh just I made no effort to

0:28:33.840,0:28:37.840
make it look good

0:28:34.960,0:28:38.559
but it surprisingly does look good so so

0:28:37.840,0:28:41.600
uh that was

0:28:38.559,0:28:44.320
uh that was nice um that was a

0:28:41.600,0:28:44.880
terrible magenta but that is life uh

0:28:44.320,0:28:47.279
anyhow

0:28:44.880,0:28:48.960
I hope you all enjoyed this talk I hope

0:28:47.279,0:28:51.679
you will find um

0:28:48.960,0:28:52.799
death block uh useful to you it is

0:28:51.679,0:28:54.960
available on melbourne

0:28:52.799,0:28:57.679
uh in a rush to make it available for

0:28:54.960,0:29:00.159
EmacsConf 2020 some melba

0:28:57.679,0:29:00.960
guidelines may not have been in here too

0:29:00.159,0:29:03.200
please do not

0:29:00.960,0:29:04.720
hit me um and I hope everyone enjoys the

0:29:03.200,0:29:08.559
rest of the EmacsConf

0:29:04.720,0:29:08.559
2020 thank you