summaryrefslogtreecommitdiffstats
path: root/2020/subtitles/emacsconf-2020--22-powering-up-special-blocks--musa-al-hassy-autogen.vtt
diff options
context:
space:
mode:
authorSacha Chua <sacha@sachachua.com>2020-12-13 00:06:32 -0500
committerSacha Chua <sacha@sachachua.com>2020-12-13 00:06:32 -0500
commitb98df6fbe2a5c48013cfca81a95a5af41e202d07 (patch)
treefc20f6aca84b73f50eaae13837e2ce6999c0b841 /2020/subtitles/emacsconf-2020--22-powering-up-special-blocks--musa-al-hassy-autogen.vtt
parent315add08d9c7f73fb3105940ad5230fb6b050fc2 (diff)
downloademacsconf-wiki-b98df6fbe2a5c48013cfca81a95a5af41e202d07.tar.xz
emacsconf-wiki-b98df6fbe2a5c48013cfca81a95a5af41e202d07.zip
Actually post subtitles, I think
Diffstat (limited to '2020/subtitles/emacsconf-2020--22-powering-up-special-blocks--musa-al-hassy-autogen.vtt')
-rw-r--r--2020/subtitles/emacsconf-2020--22-powering-up-special-blocks--musa-al-hassy-autogen.vtt2386
1 files changed, 2386 insertions, 0 deletions
diff --git a/2020/subtitles/emacsconf-2020--22-powering-up-special-blocks--musa-al-hassy-autogen.vtt b/2020/subtitles/emacsconf-2020--22-powering-up-special-blocks--musa-al-hassy-autogen.vtt
new file mode 100644
index 00000000..b1831710
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--22-powering-up-special-blocks--musa-al-hassy-autogen.vtt
@@ -0,0 +1,2386 @@
+WEBVTT
+
+00:00:01.680 --> 00:00:04.080
+oh you are now muted
+
+00:00:04.080 --> 00:00:07.359
+all right then well uh hello everyone
+
+00:00:07.359 --> 00:00:09.840
+I hope uh you're all enjoying the Emacs
+
+00:00:09.840 --> 00:00:11.519
+conf
+
+00:00:11.519 --> 00:00:14.480
+my name is musa alhassi and I hope
+
+00:00:14.480 --> 00:00:15.040
+you're
+
+00:00:15.040 --> 00:00:17.920
+excited to learn about uh powering up
+
+00:00:17.920 --> 00:00:19.840
+special blocks
+
+00:00:19.840 --> 00:00:22.880
+um so let's let's first off uh find out
+
+00:00:22.880 --> 00:00:24.800
+what these special blocks are and
+
+00:00:24.800 --> 00:00:27.920
+and see what we can uh go from so
+
+00:00:27.920 --> 00:00:30.240
+uh yesterday I saw a lot of cool talks
+
+00:00:30.240 --> 00:00:32.719
+and uh people were chatting about how do
+
+00:00:32.719 --> 00:00:33.200
+you
+
+00:00:33.200 --> 00:00:35.520
+I know how should you present should you
+
+00:00:35.520 --> 00:00:37.200
+do it this way or that way and
+
+00:00:37.200 --> 00:00:38.640
+I thought maybe I should try a different
+
+00:00:38.640 --> 00:00:41.120
+way uh but but I'm talking about special
+
+00:00:41.120 --> 00:00:42.239
+blocks and if I
+
+00:00:42.239 --> 00:00:45.039
+show you an emax then I have to export
+
+00:00:45.039 --> 00:00:47.039
+the html so you can see what it looks
+
+00:00:47.039 --> 00:00:47.840
+like
+
+00:00:47.840 --> 00:00:50.800
+or export to a pdf so you can see what
+
+00:00:50.800 --> 00:00:51.920
+it looks like
+
+00:00:51.920 --> 00:00:54.239
+uh so I ended up writing an org reveal
+
+00:00:54.239 --> 00:00:56.399
+and
+
+00:00:56.399 --> 00:00:58.960
+joyously this this just works you can
+
+00:00:58.960 --> 00:01:00.879
+you can just see things here
+
+00:01:00.879 --> 00:01:02.960
+uh I was worried that I'd have to take
+
+00:01:02.960 --> 00:01:04.559
+pictures and then you know
+
+00:01:04.559 --> 00:01:07.600
+uh uh you know insert pings so that that
+
+00:01:07.600 --> 00:01:09.760
+was a delight
+
+00:01:09.760 --> 00:01:12.159
+okay uh so special blocks are these
+
+00:01:12.159 --> 00:01:12.960
+things like
+
+00:01:12.960 --> 00:01:16.000
+a center small quote uh that's what a
+
+00:01:16.000 --> 00:01:17.280
+special block is
+
+00:01:17.280 --> 00:01:19.360
+and with a bit of lisp we can we can
+
+00:01:19.360 --> 00:01:20.720
+make special blocks
+
+00:01:20.720 --> 00:01:23.200
+and link types right so uh using a
+
+00:01:23.200 --> 00:01:24.799
+single interface
+
+00:01:24.799 --> 00:01:26.720
+um and the interface is going to be
+
+00:01:26.720 --> 00:01:27.840
+similar to one
+
+00:01:27.840 --> 00:01:29.439
+many people are familiar with in
+
+00:01:29.439 --> 00:01:32.560
+particular org babel's
+
+00:01:32.560 --> 00:01:35.840
+source interface as well as using global
+
+00:01:35.840 --> 00:01:37.840
+header arguments for link types
+
+00:01:37.840 --> 00:01:39.680
+and the idea is to write it once and
+
+00:01:39.680 --> 00:01:41.200
+generate many different kinds
+
+00:01:41.200 --> 00:01:44.159
+right you write uh an org markup and you
+
+00:01:44.159 --> 00:01:44.720
+can have
+
+00:01:44.720 --> 00:01:47.680
+uh html you can have pdf and and
+
+00:01:47.680 --> 00:01:48.560
+joyously
+
+00:01:48.560 --> 00:01:51.840
+uh org reveal so that was uh that was an
+
+00:01:51.840 --> 00:01:53.600
+unexpected delight
+
+00:01:53.600 --> 00:01:56.640
+um so here is a few that you'll you'll
+
+00:01:56.640 --> 00:01:57.840
+just see as we
+
+00:01:57.840 --> 00:02:01.759
+uh in this presentation you know some uh
+
+00:02:01.759 --> 00:02:04.000
+uh I won't show some of these uh link
+
+00:02:04.000 --> 00:02:05.040
+only ones
+
+00:02:05.040 --> 00:02:06.799
+but we'll see a few of these other ones
+
+00:02:06.799 --> 00:02:08.080
+just to make the uh
+
+00:02:08.080 --> 00:02:09.920
+presentation look nice so the
+
+00:02:09.920 --> 00:02:11.520
+presentation is really going to
+
+00:02:11.520 --> 00:02:14.000
+present these blocks and the mechanism
+
+00:02:14.000 --> 00:02:15.120
+at the same time
+
+00:02:15.120 --> 00:02:18.400
+so uh so this no no html was written
+
+00:02:18.400 --> 00:02:21.280
+look ma no html just pure org mode and
+
+00:02:21.280 --> 00:02:22.000
+and
+
+00:02:22.000 --> 00:02:23.520
+you get all these beautiful boxes and
+
+00:02:23.520 --> 00:02:25.840
+things okay
+
+00:02:25.840 --> 00:02:27.680
+so the motivation for this is you know
+
+00:02:27.680 --> 00:02:29.120
+what uh
+
+00:02:29.120 --> 00:02:31.200
+you're you're online you run into a blog
+
+00:02:31.200 --> 00:02:32.239
+and you see something you like and
+
+00:02:32.239 --> 00:02:33.120
+you're like man
+
+00:02:33.120 --> 00:02:35.280
+you know I wish I could uh you know
+
+00:02:35.280 --> 00:02:36.640
+produce that
+
+00:02:36.640 --> 00:02:39.519
+um uh but you you check in the author
+
+00:02:39.519 --> 00:02:40.160
+wrote raw
+
+00:02:40.160 --> 00:02:44.239
+html you know plus html everywhere
+
+00:02:44.239 --> 00:02:46.800
+and uh that's that's you know gonna
+
+00:02:46.800 --> 00:02:47.840
+obscure
+
+00:02:47.840 --> 00:02:49.680
+your your real content it's going to be
+
+00:02:49.680 --> 00:02:51.200
+surrounded by all this uh
+
+00:02:51.200 --> 00:02:54.239
+styling information that's unfortunate
+
+00:02:54.239 --> 00:02:56.400
+uh the author decides to use an org
+
+00:02:56.400 --> 00:02:58.959
+macro all right a bit better
+
+00:02:58.959 --> 00:03:01.120
+but then what if you decide hey I want
+
+00:03:01.120 --> 00:03:03.360
+to make a
+
+00:03:03.360 --> 00:03:06.000
+not pdf great and then the worst of all
+
+00:03:06.000 --> 00:03:07.840
+the author doesn't give you the source
+
+00:03:07.840 --> 00:03:10.159
+and then you have to view page source
+
+00:03:10.159 --> 00:03:10.879
+and
+
+00:03:10.879 --> 00:03:13.760
+learn cascading style sheets and and you
+
+00:03:13.760 --> 00:03:14.239
+know
+
+00:03:14.239 --> 00:03:16.159
+sit in a corner and cry decide to do
+
+00:03:16.159 --> 00:03:18.080
+other things with your life
+
+00:03:18.080 --> 00:03:20.959
+so uh we want to give you org users
+
+00:03:20.959 --> 00:03:22.640
+numerous styles
+
+00:03:22.640 --> 00:03:26.000
+and uh and an extensible mechanism to
+
+00:03:26.000 --> 00:03:27.200
+add more of these
+
+00:03:27.200 --> 00:03:28.799
+aesthetically pleasing styles you know
+
+00:03:28.799 --> 00:03:31.200
+to have really nice things
+
+00:03:31.200 --> 00:03:34.720
+look one way in the html and look almost
+
+00:03:34.720 --> 00:03:35.599
+the same way
+
+00:03:35.599 --> 00:03:39.120
+in the pdf and other uh back ends and
+
+00:03:39.120 --> 00:03:41.680
+if by having these newer ones you know
+
+00:03:41.680 --> 00:03:42.159
+people
+
+00:03:42.159 --> 00:03:44.879
+might be encouraged to try making new
+
+00:03:44.879 --> 00:03:45.519
+ones
+
+00:03:45.519 --> 00:03:47.920
+especially when the interface is uh not
+
+00:03:47.920 --> 00:03:49.040
+so difficult
+
+00:03:49.040 --> 00:03:54.159
+uh that's the that's the aim okay
+
+00:03:54.159 --> 00:03:57.360
+uh so let's let's have a a real story to
+
+00:03:57.360 --> 00:03:59.120
+motivate this even more
+
+00:03:59.120 --> 00:04:02.319
+um so here's three friends uh I hope I
+
+00:04:02.319 --> 00:04:03.599
+don't butcher their names but these
+
+00:04:03.599 --> 00:04:04.640
+friends are called
+
+00:04:04.640 --> 00:04:07.040
+amin sasha and corwin and then they're
+
+00:04:07.040 --> 00:04:08.720
+organizing a conference
+
+00:04:08.720 --> 00:04:12.080
+uh EmacsConf 2020.
+
+00:04:12.080 --> 00:04:14.239
+so sasha decides to write an org file
+
+00:04:14.239 --> 00:04:16.479
+and and she would like some feedback
+
+00:04:16.479 --> 00:04:19.199
+okay and and just uh make it clear
+
+00:04:19.199 --> 00:04:19.840
+there's no
+
+00:04:19.840 --> 00:04:22.960
+uh just how easy this looks
+
+00:04:22.960 --> 00:04:27.280
+let's look at the source for this block
+
+00:04:27.280 --> 00:04:30.000
+notice it's just the word green then a
+
+00:04:30.000 --> 00:04:30.720
+colon
+
+00:04:30.720 --> 00:04:34.560
+than amine uh so no
+
+00:04:34.560 --> 00:04:37.759
+no div style coloring just just you know
+
+00:04:37.759 --> 00:04:38.479
+green color
+
+00:04:38.479 --> 00:04:41.520
+immune a very pleasant uh or markup
+
+00:04:41.520 --> 00:04:43.600
+so that's that's quite nice put some
+
+00:04:43.600 --> 00:04:44.960
+bold around it
+
+00:04:44.960 --> 00:04:47.840
+not not too difficult so hopefully uh
+
+00:04:47.840 --> 00:04:49.040
+this will be useful to
+
+00:04:49.040 --> 00:04:51.680
+other people as well so what kind of
+
+00:04:51.680 --> 00:04:52.240
+feedback
+
+00:04:52.240 --> 00:04:56.639
+uh would sasha expect to get um so maybe
+
+00:04:56.639 --> 00:04:59.120
+she would expect top level remarks
+
+00:04:59.120 --> 00:04:59.680
+visible
+
+00:04:59.680 --> 00:05:01.759
+in the export you know when she makes an
+
+00:05:01.759 --> 00:05:04.400
+html she can see right there a big block
+
+00:05:04.400 --> 00:05:07.840
+right maybe
+
+00:05:07.840 --> 00:05:09.840
+amin will suggest to sasha please
+
+00:05:09.840 --> 00:05:11.120
+replace this part
+
+00:05:11.120 --> 00:05:12.960
+with this other part or replace this
+
+00:05:12.960 --> 00:05:14.639
+word with this other word
+
+00:05:14.639 --> 00:05:16.960
+right um this is not really possible
+
+00:05:16.960 --> 00:05:17.680
+with raw
+
+00:05:17.680 --> 00:05:21.919
+html or uh yeah or with even latex
+
+00:05:21.919 --> 00:05:24.000
+you'd have to have multiple arguments
+
+00:05:24.000 --> 00:05:25.360
+the first argument and then
+
+00:05:25.360 --> 00:05:27.840
+the replacement argument and it's a bit
+
+00:05:27.840 --> 00:05:28.800
+clunky
+
+00:05:28.800 --> 00:05:30.960
+um but with our setup you just write
+
+00:05:30.960 --> 00:05:32.080
+some text
+
+00:05:32.080 --> 00:05:34.479
+write hashtag plus replace with and then
+
+00:05:34.479 --> 00:05:36.240
+write more text and you're good to go
+
+00:05:36.240 --> 00:05:39.440
+normal uh org markup um
+
+00:05:39.440 --> 00:05:40.720
+everyone speaks different languages
+
+00:05:40.720 --> 00:05:42.479
+maybe they want to use a
+
+00:05:42.479 --> 00:05:45.919
+uh one word or they're arguing about
+
+00:05:45.919 --> 00:05:48.000
+whether we talk about frames or windows
+
+00:05:48.000 --> 00:05:49.759
+um so maybe they want to have some
+
+00:05:49.759 --> 00:05:50.560
+translations
+
+00:05:50.560 --> 00:05:52.479
+right so there's different kinds of
+
+00:05:52.479 --> 00:05:55.360
+feedbacks uh let's let's take an example
+
+00:05:55.360 --> 00:05:59.360
+uh look at what they are okay
+
+00:05:59.360 --> 00:06:02.560
+uh so for example sasha might write
+
+00:06:02.560 --> 00:06:06.160
+uh this org mode right here and uh
+
+00:06:06.160 --> 00:06:08.319
+and then in her html exports you might
+
+00:06:08.319 --> 00:06:09.759
+see this
+
+00:06:09.759 --> 00:06:12.080
+and uh her feedback might look really
+
+00:06:12.080 --> 00:06:13.840
+nicely from anyone who says you know
+
+00:06:13.840 --> 00:06:14.560
+let's uh
+
+00:06:14.560 --> 00:06:16.639
+let's do some lisp instead of uh
+
+00:06:16.639 --> 00:06:18.560
+mathematics let's just do some list
+
+00:06:18.560 --> 00:06:20.960
+and and corwin says you know let's let's
+
+00:06:20.960 --> 00:06:22.479
+not be so silly
+
+00:06:22.479 --> 00:06:25.120
+maybe let's just say 9 a.m and move on
+
+00:06:25.120 --> 00:06:28.080
+okay
+
+00:06:28.080 --> 00:06:31.360
+um so amin likes to export to pdf
+
+00:06:31.360 --> 00:06:33.039
+and so he writes his top-level remarks
+
+00:06:33.039 --> 00:06:34.720
+using latex that's how
+
+00:06:34.720 --> 00:06:37.600
+so to get this uh square I mean please
+
+00:06:37.600 --> 00:06:38.960
+change whatever
+
+00:06:38.960 --> 00:06:41.440
+he might write like this hashtag you
+
+00:06:41.440 --> 00:06:43.120
+know plus latex
+
+00:06:43.120 --> 00:06:46.960
+hashtag plus latex right but then
+
+00:06:46.960 --> 00:06:50.000
+sasha only exports to p to html uh for
+
+00:06:50.000 --> 00:06:50.880
+example
+
+00:06:50.880 --> 00:06:54.880
+um and uh so she doesn't look at the pdf
+
+00:06:54.880 --> 00:06:57.199
+and she may not see his top-level
+
+00:06:57.199 --> 00:06:58.560
+feedback you know with those nice
+
+00:06:58.560 --> 00:06:59.440
+brackets and
+
+00:06:59.440 --> 00:07:02.160
+and bold right and so she might think
+
+00:07:02.160 --> 00:07:03.120
+everything's good
+
+00:07:03.120 --> 00:07:06.160
+right and that can be a bit disastrous
+
+00:07:06.160 --> 00:07:09.039
+um so maybe sasha will will then uh make
+
+00:07:09.039 --> 00:07:09.440
+some
+
+00:07:09.440 --> 00:07:13.199
+of her own feedback all right uh but
+
+00:07:13.199 --> 00:07:16.160
+and to produce it she might write html
+
+00:07:16.160 --> 00:07:16.560
+uh
+
+00:07:16.560 --> 00:07:20.639
+um html commands hashtag plus html to
+
+00:07:20.639 --> 00:07:21.680
+get that
+
+00:07:21.680 --> 00:07:24.240
+uh but then amin will make a pdf and
+
+00:07:24.240 --> 00:07:25.680
+this won't stick out
+
+00:07:25.680 --> 00:07:27.759
+and then so he might think everything's
+
+00:07:27.759 --> 00:07:30.160
+okay even even though it's not
+
+00:07:30.160 --> 00:07:33.520
+um then corwin actually decides hey
+
+00:07:33.520 --> 00:07:36.240
+uh let me read the exported result and
+
+00:07:36.240 --> 00:07:36.800
+these
+
+00:07:36.800 --> 00:07:38.319
+there's all those feedback from two
+
+00:07:38.319 --> 00:07:39.919
+people who haven't uh
+
+00:07:39.919 --> 00:07:42.080
+read anything because maybe they were in
+
+00:07:42.080 --> 00:07:43.840
+a russian and didn't
+
+00:07:43.840 --> 00:07:46.400
+see the top level feedback and so they
+
+00:07:46.400 --> 00:07:48.160
+agree hey let's have a uniform org
+
+00:07:48.160 --> 00:07:50.000
+interface that exports
+
+00:07:50.000 --> 00:07:53.280
+to both html and pdf make both of us
+
+00:07:53.280 --> 00:07:54.080
+happy
+
+00:07:54.080 --> 00:07:57.280
+okay so they decide to use org special
+
+00:07:57.280 --> 00:07:58.160
+blocks
+
+00:07:58.160 --> 00:08:01.840
+right um and to set this up they need to
+
+00:08:01.840 --> 00:08:04.400
+you know maybe read a little bit of lisp
+
+00:08:04.400 --> 00:08:04.879
+hooks
+
+00:08:04.879 --> 00:08:08.879
+advice macros to get all of this set up
+
+00:08:08.879 --> 00:08:10.840
+and then they'll use org as the main
+
+00:08:10.840 --> 00:08:12.319
+interface okay
+
+00:08:12.319 --> 00:08:14.400
+it's a lot of work but it's worth it
+
+00:08:14.400 --> 00:08:16.479
+right maybe
+
+00:08:16.479 --> 00:08:19.360
+um but then corwin corbin's a bit tears
+
+00:08:19.360 --> 00:08:19.759
+so
+
+00:08:19.759 --> 00:08:22.960
+uh corwin maybe doesn't want to write
+
+00:08:22.960 --> 00:08:24.800
+uh using blocks he thinks they're
+
+00:08:24.800 --> 00:08:26.080
+overkill and
+
+00:08:26.080 --> 00:08:29.360
+and sasha wants html and uh and
+
+00:08:29.360 --> 00:08:31.840
+I mean wants pdf and corwin wants org
+
+00:08:31.840 --> 00:08:32.560
+reveal
+
+00:08:32.560 --> 00:08:34.240
+so now they have to reformat all their
+
+00:08:34.240 --> 00:08:36.320
+code and then they need to use org link
+
+00:08:36.320 --> 00:08:37.120
+types to
+
+00:08:37.120 --> 00:08:39.599
+reduce the overkill all right so they
+
+00:08:39.599 --> 00:08:41.519
+can try to avoid duplication by
+
+00:08:41.519 --> 00:08:44.000
+factoring things out into self-contained
+
+00:08:44.000 --> 00:08:46.800
+uh defined functions or defunds
+
+00:08:46.800 --> 00:08:50.320
+um but now to set up or links
+
+00:08:50.320 --> 00:08:53.440
+uh we'll have uh to learn a new
+
+00:08:53.440 --> 00:08:54.399
+interface
+
+00:08:54.399 --> 00:08:57.040
+org setup link um learn a little bit
+
+00:08:57.040 --> 00:08:58.000
+about fonts
+
+00:08:58.000 --> 00:09:02.160
+follow links exports handles
+
+00:09:02.160 --> 00:09:05.040
+it's so much that's so much but but then
+
+00:09:05.040 --> 00:09:06.800
+you know the friends they learn a lot
+
+00:09:06.800 --> 00:09:08.399
+you know they learn about defund all
+
+00:09:08.399 --> 00:09:11.120
+right so these these words are red
+
+00:09:11.120 --> 00:09:12.480
+you get a little explanation I think
+
+00:09:12.480 --> 00:09:14.320
+it's a bit too small for anyone to read
+
+00:09:14.320 --> 00:09:16.720
+this is lisp documentation right for
+
+00:09:16.720 --> 00:09:18.000
+defund
+
+00:09:18.000 --> 00:09:19.680
+advice ad there's some list
+
+00:09:19.680 --> 00:09:21.600
+documentation right
+
+00:09:21.600 --> 00:09:23.600
+they learn about destructuring let's so
+
+00:09:23.600 --> 00:09:25.279
+this is from the dash library
+
+00:09:25.279 --> 00:09:26.959
+here's all that you know glorious
+
+00:09:26.959 --> 00:09:28.800
+glorious documentation with examples
+
+00:09:28.800 --> 00:09:29.360
+sorry
+
+00:09:29.360 --> 00:09:31.680
+I like that they might make an ad-hoc
+
+00:09:31.680 --> 00:09:33.760
+mechanism to simulate
+
+00:09:33.760 --> 00:09:36.000
+arguments for special blocks so
+
+00:09:36.000 --> 00:09:37.040
+something maybe called
+
+00:09:37.040 --> 00:09:40.399
+extract arguments and then of course to
+
+00:09:40.399 --> 00:09:41.920
+make new link types they have to learn
+
+00:09:41.920 --> 00:09:42.480
+about
+
+00:09:42.480 --> 00:09:45.120
+org link set parameters and then it's
+
+00:09:45.120 --> 00:09:46.480
+numerous uh
+
+00:09:46.480 --> 00:09:49.920
+bits and pieces all right so let's oh
+
+00:09:49.920 --> 00:09:50.720
+let's uh
+
+00:09:50.720 --> 00:09:53.600
+close all these ones down and and uh of
+
+00:09:53.600 --> 00:09:55.040
+course they also need to be uh
+
+00:09:55.040 --> 00:09:56.080
+comfortable with
+
+00:09:56.080 --> 00:09:58.720
+uh loops and maps and matching and
+
+00:09:58.720 --> 00:09:59.920
+string functions
+
+00:09:59.920 --> 00:10:02.560
+so it's it's a bit of a pain it's a bit
+
+00:10:02.560 --> 00:10:03.360
+of a pain
+
+00:10:03.360 --> 00:10:05.839
+um so it's probably not worth it so
+
+00:10:05.839 --> 00:10:06.560
+maybe I'll just
+
+00:10:06.560 --> 00:10:09.360
+rush things quickly or do an ad hoc you
+
+00:10:09.360 --> 00:10:10.320
+know
+
+00:10:10.320 --> 00:10:13.680
+we have things to do right
+
+00:10:13.680 --> 00:10:15.920
+so maybe maybe the squad wants to have a
+
+00:10:15.920 --> 00:10:17.839
+modular
+
+00:10:17.839 --> 00:10:21.120
+and unified interface so everyone's
+
+00:10:21.120 --> 00:10:23.040
+comfortable with defunct to define a
+
+00:10:23.040 --> 00:10:25.279
+function and they say you know what
+
+00:10:25.279 --> 00:10:26.480
+it would be nice if we could just you
+
+00:10:26.480 --> 00:10:29.440
+know define simultaneously
+
+00:10:29.440 --> 00:10:32.959
+both a block and the link type right
+
+00:10:32.959 --> 00:10:34.880
+and uh that way we have a single
+
+00:10:34.880 --> 00:10:36.000
+interface
+
+00:10:36.000 --> 00:10:38.240
+org mode for for these things and it
+
+00:10:38.240 --> 00:10:39.040
+would be nice was
+
+00:10:39.040 --> 00:10:42.079
+modular so if I defined a
+
+00:10:42.079 --> 00:10:43.680
+one kind of block and you defined
+
+00:10:43.680 --> 00:10:45.519
+another we could compose them
+
+00:10:45.519 --> 00:10:47.600
+right and then get a you know a nice
+
+00:10:47.600 --> 00:10:49.360
+bigger block like lego
+
+00:10:49.360 --> 00:10:52.320
+that would be nice building box okay and
+
+00:10:52.320 --> 00:10:54.160
+uh this is uh what we
+
+00:10:54.160 --> 00:10:56.240
+have come up with called death block and
+
+00:10:56.240 --> 00:10:57.600
+it also has a
+
+00:10:57.600 --> 00:11:00.240
+long documentation string containing
+
+00:11:00.240 --> 00:11:01.760
+examples and things
+
+00:11:01.760 --> 00:11:04.800
+so that way you can try to be useful
+
+00:11:04.800 --> 00:11:08.320
+okay um so let's let's look at a a
+
+00:11:08.320 --> 00:11:10.880
+solution to these friends uh trilemma
+
+00:11:10.880 --> 00:11:12.800
+all right so here's here's a way to
+
+00:11:12.800 --> 00:11:14.320
+define a block
+
+00:11:14.320 --> 00:11:17.040
+um it looks it's it doesn't look that
+
+00:11:17.040 --> 00:11:19.200
+difficult but this is how they can
+
+00:11:19.200 --> 00:11:22.320
+define a block for um
+
+00:11:22.320 --> 00:11:25.920
+for uh their top-level feedback right
+
+00:11:25.920 --> 00:11:27.680
+so let's let's look at the three main
+
+00:11:27.680 --> 00:11:28.959
+parts together
+
+00:11:28.959 --> 00:11:31.920
+it's not that uh difficult I hope just
+
+00:11:31.920 --> 00:11:33.040
+six lines
+
+00:11:33.040 --> 00:11:34.720
+and that's including a documentation
+
+00:11:34.720 --> 00:11:36.160
+string and you know
+
+00:11:36.160 --> 00:11:39.440
+uh new lines and things okay so in line
+
+00:11:39.440 --> 00:11:41.279
+one we just define the block just like
+
+00:11:41.279 --> 00:11:42.000
+you define
+
+00:11:42.000 --> 00:11:44.880
+a function we define a block the flag
+
+00:11:44.880 --> 00:11:46.399
+the block name is going to be called
+
+00:11:46.399 --> 00:11:49.680
+feedback it has an author who
+
+00:11:49.680 --> 00:11:53.360
+right the author has no default
+
+00:11:53.360 --> 00:11:56.160
+value it has a color and the color has a
+
+00:11:56.160 --> 00:11:57.760
+default value of red
+
+00:11:57.760 --> 00:12:00.560
+okay so just just as when you define
+
+00:12:00.560 --> 00:12:01.680
+functions they
+
+00:12:01.680 --> 00:12:04.880
+they uh you start by uh define
+
+00:12:04.880 --> 00:12:08.639
+or def block than the name some
+
+00:12:08.639 --> 00:12:10.720
+mandatory argument and some optional
+
+00:12:10.720 --> 00:12:13.440
+arguments okay
+
+00:12:13.440 --> 00:12:15.760
+then the next stage is well and
+
+00:12:15.760 --> 00:12:18.480
+definition a documentation you know
+
+00:12:18.480 --> 00:12:20.880
+uh the people who use this which are
+
+00:12:20.880 --> 00:12:22.880
+future you or future me you know
+
+00:12:22.880 --> 00:12:25.519
+uh might want to know what this is all
+
+00:12:25.519 --> 00:12:27.839
+right so let's get to document this
+
+00:12:27.839 --> 00:12:30.560
+uh and uh for for corwin who might want
+
+00:12:30.560 --> 00:12:32.079
+to use uh tooltips
+
+00:12:32.079 --> 00:12:34.560
+uh when corwin writes feedback whatever
+
+00:12:34.560 --> 00:12:35.120
+and
+
+00:12:35.120 --> 00:12:37.120
+Emacs they'll see a nice little tooltip
+
+00:12:37.120 --> 00:12:38.639
+and the tooltip will have
+
+00:12:38.639 --> 00:12:41.279
+this uh documentation string right so
+
+00:12:41.279 --> 00:12:43.279
+that'll be nice
+
+00:12:43.279 --> 00:12:45.200
+okay and then here's the third part the
+
+00:12:45.200 --> 00:12:46.480
+last three lines are
+
+00:12:46.480 --> 00:12:49.440
+not not so difficult if the back end is
+
+00:12:49.440 --> 00:12:49.680
+in
+
+00:12:49.680 --> 00:12:52.800
+is html the backend is html
+
+00:12:52.800 --> 00:12:55.360
+please use this template string
+
+00:12:55.360 --> 00:12:57.440
+otherwise use the other string
+
+00:12:57.440 --> 00:13:00.639
+okay and for each of these uh string
+
+00:13:00.639 --> 00:13:01.279
+markers
+
+00:13:01.279 --> 00:13:03.600
+please put in the color who wrote it and
+
+00:13:03.600 --> 00:13:04.959
+then the contents
+
+00:13:04.959 --> 00:13:07.279
+of the special block or the link type
+
+00:13:07.279 --> 00:13:08.160
+okay
+
+00:13:08.160 --> 00:13:10.639
+um so that's pretty neat not not so
+
+00:13:10.639 --> 00:13:11.600
+difficult
+
+00:13:11.600 --> 00:13:14.639
+so I thought that was kind of cool and
+
+00:13:14.639 --> 00:13:15.519
+then notice it's
+
+00:13:15.519 --> 00:13:18.480
+anaphoric it's it's a this this def
+
+00:13:18.480 --> 00:13:19.519
+block
+
+00:13:19.519 --> 00:13:21.760
+gives you two new names it gives you a
+
+00:13:21.760 --> 00:13:22.560
+name called
+
+00:13:22.560 --> 00:13:25.120
+uh contents and it gives you a name
+
+00:13:25.120 --> 00:13:26.480
+called back end
+
+00:13:26.480 --> 00:13:29.040
+right and so even if you're writing a
+
+00:13:29.040 --> 00:13:31.040
+def block and you intend it to be used
+
+00:13:31.040 --> 00:13:32.560
+only for links
+
+00:13:32.560 --> 00:13:35.440
+uh like the uh these colors for example
+
+00:13:35.440 --> 00:13:37.600
+uh these colors were defined using dev
+
+00:13:37.600 --> 00:13:38.399
+block
+
+00:13:38.399 --> 00:13:41.279
+uh and I used them as links right here
+
+00:13:41.279 --> 00:13:43.360
+and you don't need to worry
+
+00:13:43.360 --> 00:13:44.880
+where does the text come from in the
+
+00:13:44.880 --> 00:13:48.160
+link you know if I say red colon bob uh
+
+00:13:48.160 --> 00:13:48.959
+is it bob
+
+00:13:48.959 --> 00:13:50.720
+or if I put a description is it the
+
+00:13:50.720 --> 00:13:52.000
+description so
+
+00:13:52.000 --> 00:13:54.000
+it's whatever is available will will
+
+00:13:54.000 --> 00:13:56.720
+become uh the value of contents
+
+00:13:56.720 --> 00:13:59.199
+and if you're really you know interested
+
+00:13:59.199 --> 00:14:00.320
+and you want to do some
+
+00:14:00.320 --> 00:14:03.839
+intricate stuff uh def block also gives
+
+00:14:03.839 --> 00:14:04.959
+you something called
+
+00:14:04.959 --> 00:14:08.160
+raw dash contents if you really want to
+
+00:14:08.160 --> 00:14:09.360
+touch the raw
+
+00:14:09.360 --> 00:14:11.920
+uh contents with all of the org markups
+
+00:14:11.920 --> 00:14:12.639
+still there
+
+00:14:12.639 --> 00:14:16.000
+okay so let's uh let's see
+
+00:14:16.000 --> 00:14:18.320
+how uh everyone can uh communicate
+
+00:14:18.320 --> 00:14:19.440
+amongst themselves
+
+00:14:19.440 --> 00:14:22.480
+using this new interface okay so
+
+00:14:22.480 --> 00:14:26.000
+uh uh sasha speculates and she how does
+
+00:14:26.000 --> 00:14:28.399
+she speculate for her organ html
+
+00:14:28.399 --> 00:14:31.440
+she might just write hey look at that no
+
+00:14:31.440 --> 00:14:34.800
+no no html nice and and
+
+00:14:34.800 --> 00:14:37.519
+amin wants to have some green and so he
+
+00:14:37.519 --> 00:14:39.600
+just says hey here's some color green
+
+00:14:39.600 --> 00:14:42.240
+and and uh there you go it looks almost
+
+00:14:42.240 --> 00:14:42.959
+the same
+
+00:14:42.959 --> 00:14:46.560
+right uh notice that the main argument
+
+00:14:46.560 --> 00:14:49.680
+is right here def block took an author
+
+00:14:49.680 --> 00:14:52.480
+and here's the author again and now the
+
+00:14:52.480 --> 00:14:53.920
+optional argument
+
+00:14:53.920 --> 00:14:57.360
+uses the org babel source interface you
+
+00:14:57.360 --> 00:14:58.000
+just say
+
+00:14:58.000 --> 00:15:00.639
+colon and then a key and then the
+
+00:15:00.639 --> 00:15:01.440
+argument
+
+00:15:01.440 --> 00:15:05.040
+quite quite nice and and corwin doesn't
+
+00:15:05.040 --> 00:15:05.519
+want to
+
+00:15:05.519 --> 00:15:07.920
+use blocks it's a bit of an overkill and
+
+00:15:07.920 --> 00:15:09.760
+can just write a
+
+00:15:09.760 --> 00:15:12.959
+a little um right
+
+00:15:12.959 --> 00:15:16.000
+so the main argument is now the uh uh
+
+00:15:16.000 --> 00:15:17.440
+the label of the link
+
+00:15:17.440 --> 00:15:19.360
+all right and then the description of
+
+00:15:19.360 --> 00:15:21.600
+the link is the contents
+
+00:15:21.600 --> 00:15:24.959
+of uh of the feedback so that was quite
+
+00:15:24.959 --> 00:15:25.680
+nice
+
+00:15:25.680 --> 00:15:28.079
+so it looks like uh everyone uses the
+
+00:15:28.079 --> 00:15:29.360
+same interface on the left
+
+00:15:29.360 --> 00:15:32.800
+and can have varying uh outputs
+
+00:15:32.800 --> 00:15:34.480
+and it looks I think it looks quite nice
+
+00:15:34.480 --> 00:15:36.639
+and I hope you do too
+
+00:15:36.639 --> 00:15:40.000
+um and there's a few more maybe
+
+00:15:40.000 --> 00:15:42.160
+as you saw in some previous ones we had
+
+00:15:42.160 --> 00:15:43.920
+text side beside side
+
+00:15:43.920 --> 00:15:46.800
+right now um or we folded some regions
+
+00:15:46.800 --> 00:15:47.440
+away
+
+00:15:47.440 --> 00:15:49.360
+that was quite nice we put some things
+
+00:15:49.360 --> 00:15:50.959
+in pretty boxes
+
+00:15:50.959 --> 00:15:54.000
+um uh we had some spoilers at the very
+
+00:15:54.000 --> 00:15:57.120
+beginning that we we uh hit some text uh
+
+00:15:57.120 --> 00:15:58.160
+we demoed uh
+
+00:15:58.160 --> 00:15:59.600
+some texts right you know here's some
+
+00:15:59.600 --> 00:16:01.680
+org and here's what it looks like
+
+00:16:01.680 --> 00:16:04.480
+um and and most importantly uh they they
+
+00:16:04.480 --> 00:16:05.199
+compose
+
+00:16:05.199 --> 00:16:08.320
+right there's uh uh there's a
+
+00:16:08.320 --> 00:16:12.639
+a macro called uh uh thread block
+
+00:16:12.639 --> 00:16:14.720
+uh thread block a thread block call and
+
+00:16:14.720 --> 00:16:16.160
+it lets you thread the
+
+00:16:16.160 --> 00:16:18.000
+the contents through a number of blocks
+
+00:16:18.000 --> 00:16:20.639
+treating them as if they were functions
+
+00:16:20.639 --> 00:16:22.480
+and so really you can think of a block
+
+00:16:22.480 --> 00:16:23.680
+as a as a
+
+00:16:23.680 --> 00:16:26.560
+as a string valued function so that's
+
+00:16:26.560 --> 00:16:27.360
+pretty neat
+
+00:16:27.360 --> 00:16:30.959
+I I think and uh thank you for listening
+
+00:16:30.959 --> 00:16:31.759
+and uh
+
+00:16:31.759 --> 00:16:34.320
+I I hope you've uh enjoyed this little
+
+00:16:34.320 --> 00:16:34.880
+uh
+
+00:16:34.880 --> 00:16:37.600
+happy fun time with uh with the Emacs
+
+00:16:37.600 --> 00:16:38.160
+and friends
+
+00:16:38.160 --> 00:16:40.720
+and uh I'll I'm I'll happy happily
+
+00:16:40.720 --> 00:16:41.759
+answer questions
+
+00:16:41.759 --> 00:16:43.730
+uh right now um
+
+00:16:43.730 --> 00:16:45.360
+[Music]
+
+00:16:45.360 --> 00:16:48.160
+so uh someone says why did you put
+
+00:16:48.160 --> 00:16:50.480
+optional arguments in a separate list
+
+00:16:50.480 --> 00:16:53.600
+rather than using cl style argument
+
+00:16:53.600 --> 00:16:54.560
+lists
+
+00:16:54.560 --> 00:16:58.399
+um so that's a very good question
+
+00:16:58.399 --> 00:17:01.680
+and I will answer that by
+
+00:17:01.680 --> 00:17:04.400
+showing you a more involved definition
+
+00:17:04.400 --> 00:17:04.880
+of
+
+00:17:04.880 --> 00:17:08.959
+feedback so let's look at a
+
+00:17:08.959 --> 00:17:13.039
+a more involved one
+
+00:17:13.039 --> 00:17:16.079
+right right here so for example
+
+00:17:16.079 --> 00:17:19.280
+this one is called rural mark all right
+
+00:17:19.280 --> 00:17:21.760
+and uh please let me know if my text is
+
+00:17:21.760 --> 00:17:23.439
+not sufficiently big
+
+00:17:23.439 --> 00:17:26.799
+so here is here is why uh we have
+
+00:17:26.799 --> 00:17:29.520
+two arguments that takes two arguments
+
+00:17:29.520 --> 00:17:30.720
+uh instead of one
+
+00:17:30.720 --> 00:17:33.360
+for for its argument list right so you
+
+00:17:33.360 --> 00:17:34.799
+you have def block
+
+00:17:34.799 --> 00:17:37.679
+then you have the name right then you
+
+00:17:37.679 --> 00:17:38.400
+have
+
+00:17:38.400 --> 00:17:40.960
+the first uh argument list and the
+
+00:17:40.960 --> 00:17:42.880
+second argument list
+
+00:17:42.880 --> 00:17:46.080
+the first argument list uh takes the
+
+00:17:46.080 --> 00:17:49.280
+takes the text right after the begin
+
+00:17:49.280 --> 00:17:51.760
+right the text right after the begin is
+
+00:17:51.760 --> 00:17:52.320
+the main
+
+00:17:52.320 --> 00:17:55.760
+argument okay and then the remaining key
+
+00:17:55.760 --> 00:17:57.039
+value pairs
+
+00:17:57.039 --> 00:18:00.320
+are in the second argument list okay
+
+00:18:00.320 --> 00:18:03.280
+now the reason we have two is because uh
+
+00:18:03.280 --> 00:18:04.640
+in order to
+
+00:18:04.640 --> 00:18:06.799
+streamline the interface to account for
+
+00:18:06.799 --> 00:18:08.880
+both uh special blocks
+
+00:18:08.880 --> 00:18:12.320
+and or link types uh what we do is we
+
+00:18:12.320 --> 00:18:13.360
+say hey
+
+00:18:13.360 --> 00:18:16.160
+uh in the first argument list uh you can
+
+00:18:16.160 --> 00:18:18.000
+give a name to the first argument
+
+00:18:18.000 --> 00:18:21.039
+give it a default value and anything
+
+00:18:21.039 --> 00:18:24.240
+else you provide will become uh
+
+00:18:24.240 --> 00:18:27.760
+uh part of the I'll co link
+
+00:18:27.760 --> 00:18:30.000
+information so for example this link we
+
+00:18:30.000 --> 00:18:32.000
+decided to make its face
+
+00:18:32.000 --> 00:18:34.799
+angry red um you might want to give
+
+00:18:34.799 --> 00:18:35.840
+other features to
+
+00:18:35.840 --> 00:18:37.919
+links so we're trying to streamline the
+
+00:18:37.919 --> 00:18:39.679
+interface for both
+
+00:18:39.679 --> 00:18:42.320
+special blocks and org link types and we
+
+00:18:42.320 --> 00:18:42.880
+thought
+
+00:18:42.880 --> 00:18:46.240
+this way was quite nice um so
+
+00:18:46.240 --> 00:18:49.840
+that was the main reason uh someone asks
+
+00:18:49.840 --> 00:18:52.480
+uh so if if you uh if that's uh if you
+
+00:18:52.480 --> 00:18:55.039
+need if you have follow-up please ask
+
+00:18:55.039 --> 00:18:57.600
+someone asks do you intend to try to
+
+00:18:57.600 --> 00:19:00.559
+upstream this amazing work into org
+
+00:19:00.559 --> 00:19:03.600
+well I'm glad you like it I I don't know
+
+00:19:03.600 --> 00:19:04.559
+how to upstream
+
+00:19:04.559 --> 00:19:06.880
+but but I I will look into it and any
+
+00:19:06.880 --> 00:19:08.799
+advice or guidance would be
+
+00:19:08.799 --> 00:19:11.840
+much appreciated um you know
+
+00:19:11.840 --> 00:19:14.640
+lisp is awesome and just as defunded as
+
+00:19:14.640 --> 00:19:17.120
+a macro deathblock is a macro and then
+
+00:19:17.120 --> 00:19:20.240
+source blocks are awesome and then now
+
+00:19:20.240 --> 00:19:21.919
+maybe we can have arguments and special
+
+00:19:21.919 --> 00:19:24.080
+blocks and motivate and encourage more
+
+00:19:24.080 --> 00:19:25.280
+people to uh
+
+00:19:25.280 --> 00:19:28.799
+to uh learn lisp right
+
+00:19:28.799 --> 00:19:32.559
+so another person asks
+
+00:19:32.559 --> 00:19:35.280
+um what is used to produce colorful
+
+00:19:35.280 --> 00:19:38.559
+boxes around the cursor
+
+00:19:38.559 --> 00:19:40.400
+I I'm not quite sure if you're asking
+
+00:19:40.400 --> 00:19:41.840
+are you talking about my cursor right
+
+00:19:41.840 --> 00:19:42.559
+here
+
+00:19:42.559 --> 00:19:48.400
+or are you talking about in the slide um
+
+00:19:48.400 --> 00:19:50.559
+so this this this cursor is some
+
+00:19:50.559 --> 00:19:52.400
+application called
+
+00:19:52.400 --> 00:19:55.440
+a stream brush that I had to purchase uh
+
+00:19:55.440 --> 00:19:57.679
+unfortunately I could not find a a
+
+00:19:57.679 --> 00:19:59.039
+suitable free one
+
+00:19:59.039 --> 00:20:02.159
+um and the blocks I can demonstrate some
+
+00:20:02.159 --> 00:20:03.840
+Emacs list but I can open up my Emacs if
+
+00:20:03.840 --> 00:20:05.679
+people like and we can try some things
+
+00:20:05.679 --> 00:20:06.320
+out
+
+00:20:06.320 --> 00:20:09.440
+happy to do that uh
+
+00:20:09.440 --> 00:20:12.480
+you're welcome uh someone asks
+
+00:20:12.480 --> 00:20:14.880
+a side question about org reveal how do
+
+00:20:14.880 --> 00:20:15.520
+you get
+
+00:20:15.520 --> 00:20:17.440
+bespoke or multiple column layouts
+
+00:20:17.440 --> 00:20:19.120
+without using html
+
+00:20:19.120 --> 00:20:22.559
+ah excellent question that's what we do
+
+00:20:22.559 --> 00:20:24.640
+that's that's what this uh project is
+
+00:20:24.640 --> 00:20:26.000
+about so it's not
+
+00:20:26.000 --> 00:20:28.960
+org reveal it's it's our fancy parallel
+
+00:20:28.960 --> 00:20:29.440
+uh
+
+00:20:29.440 --> 00:20:32.240
+uh block so we have this thing you say
+
+00:20:32.240 --> 00:20:33.440
+begin parallel
+
+00:20:33.440 --> 00:20:35.679
+you say how many columns you would like
+
+00:20:35.679 --> 00:20:37.120
+uh do you want a bar
+
+00:20:37.120 --> 00:20:39.679
+or not and then you write some text and
+
+00:20:39.679 --> 00:20:40.960
+then you uh
+
+00:20:40.960 --> 00:20:42.480
+you get some text and according with the
+
+00:20:42.480 --> 00:20:44.400
+bar or not right so that's
+
+00:20:44.400 --> 00:20:47.520
+that's how we achieve that in our slides
+
+00:20:47.520 --> 00:20:50.080
+so I'm not uh I'm not quite sure where
+
+00:20:50.080 --> 00:20:52.880
+this was
+
+00:20:52.880 --> 00:20:59.520
+somewhere here I think
+
+00:20:59.520 --> 00:21:06.240
+let me try to find this for you
+
+00:21:06.240 --> 00:21:08.320
+I can't seem to find where the parallel
+
+00:21:08.320 --> 00:21:09.440
+blocks were
+
+00:21:09.440 --> 00:21:12.159
+apologies let's move on to the next
+
+00:21:12.159 --> 00:21:15.039
+question I suppose
+
+00:21:15.039 --> 00:21:17.760
+uh I'm pretty sure they're here ah there
+
+00:21:17.760 --> 00:21:18.400
+they are
+
+00:21:18.400 --> 00:21:21.360
+yes so these these uh were just
+
+00:21:21.360 --> 00:21:22.640
+instances of using
+
+00:21:22.640 --> 00:21:25.440
+uh the parallel block and it makes
+
+00:21:25.440 --> 00:21:26.480
+things parallel
+
+00:21:26.480 --> 00:21:29.600
+so that's quite nice um another person
+
+00:21:29.600 --> 00:21:33.360
+asks uh yes
+
+00:21:33.360 --> 00:21:36.720
+excellent um how does this relate to
+
+00:21:36.720 --> 00:21:37.840
+banda pandoc
+
+00:21:37.840 --> 00:21:39.360
+which is used for converting between
+
+00:21:39.360 --> 00:21:40.960
+markup formats
+
+00:21:40.960 --> 00:21:43.919
+so all we're doing is we're we're saying
+
+00:21:43.919 --> 00:21:44.400
+hey
+
+00:21:44.400 --> 00:21:46.799
+please write org because org is just
+
+00:21:46.799 --> 00:21:47.679
+fantastic
+
+00:21:47.679 --> 00:21:50.400
+and we love it and it's the dream and if
+
+00:21:50.400 --> 00:21:51.760
+you would like to view things
+
+00:21:51.760 --> 00:21:55.039
+in html or in org reveal or
+
+00:21:55.039 --> 00:21:58.559
+in pdf that's up to the user so
+
+00:21:58.559 --> 00:22:02.320
+here is a um oh
+
+00:22:02.320 --> 00:22:05.039
+made it too small now so here is a an
+
+00:22:05.039 --> 00:22:06.080
+example
+
+00:22:06.080 --> 00:22:08.880
+so here's an uh how here's how parallel
+
+00:22:08.880 --> 00:22:10.240
+is implemented
+
+00:22:10.240 --> 00:22:13.120
+uh just as a quick example uh not too
+
+00:22:13.120 --> 00:22:14.320
+long
+
+00:22:14.320 --> 00:22:16.880
+uh about half of the implementation is
+
+00:22:16.880 --> 00:22:18.400
+documentation so
+
+00:22:18.400 --> 00:22:20.720
+uh hopefully that speaks for for how
+
+00:22:20.720 --> 00:22:22.720
+useful this feature is
+
+00:22:22.720 --> 00:22:25.280
+uh so we decide if there's a rule or not
+
+00:22:25.280 --> 00:22:28.080
+um we look for the column break
+
+00:22:28.080 --> 00:22:29.760
+and really here we're looking at the
+
+00:22:29.760 --> 00:22:31.840
+back end if the back end is latex
+
+00:22:31.840 --> 00:22:34.960
+uh please use this uh incantation with
+
+00:22:34.960 --> 00:22:37.679
+multi columns mini pages what have you
+
+00:22:37.679 --> 00:22:38.559
+and if the
+
+00:22:38.559 --> 00:22:41.039
+back end is something else uh please uh
+
+00:22:41.039 --> 00:22:41.600
+do this
+
+00:22:41.600 --> 00:22:44.960
+uh div and style and uh other uh
+
+00:22:44.960 --> 00:22:46.640
+gibberish that we don't really wanna
+
+00:22:46.640 --> 00:22:48.080
+look at uh so
+
+00:22:48.080 --> 00:22:51.760
+uh when you pandoc works from org
+
+00:22:51.760 --> 00:22:55.280
+so it might not work directly since our
+
+00:22:55.280 --> 00:22:58.080
+interface the way we set it up is when
+
+00:22:58.080 --> 00:22:59.679
+you try to export
+
+00:22:59.679 --> 00:23:01.919
+uh we hook in and we do a bunch of
+
+00:23:01.919 --> 00:23:03.039
+pre-processing
+
+00:23:03.039 --> 00:23:05.919
+so this this uh def block is a is a
+
+00:23:05.919 --> 00:23:07.440
+string valued function
+
+00:23:07.440 --> 00:23:10.880
+and so whenever we see these uh begin
+
+00:23:10.880 --> 00:23:13.919
+parallel uh when you do an export
+
+00:23:13.919 --> 00:23:16.480
+I tell Emacs hold up look for those
+
+00:23:16.480 --> 00:23:16.960
+begin
+
+00:23:16.960 --> 00:23:19.360
+parallels please oh you found them grab
+
+00:23:19.360 --> 00:23:20.320
+that text
+
+00:23:20.320 --> 00:23:22.400
+you grabbed it great now please apply
+
+00:23:22.400 --> 00:23:24.080
+this person's uh function
+
+00:23:24.080 --> 00:23:27.120
+onto that text and splice in the result
+
+00:23:27.120 --> 00:23:29.760
+okay so so when you export uh we're
+
+00:23:29.760 --> 00:23:30.400
+performing
+
+00:23:30.400 --> 00:23:33.600
+arbitrary computations on your uh uh on
+
+00:23:33.600 --> 00:23:35.120
+your text
+
+00:23:35.120 --> 00:23:38.799
+so uh um some people might not find that
+
+00:23:38.799 --> 00:23:40.159
+comforting to have
+
+00:23:40.159 --> 00:23:43.039
+arbitrary uh computations happening so
+
+00:23:43.039 --> 00:23:45.039
+in this article there's a few where
+
+00:23:45.039 --> 00:23:47.520
+uh we change your text upon export we
+
+00:23:47.520 --> 00:23:48.320
+translate it
+
+00:23:48.320 --> 00:23:51.760
+we do other things to it um
+
+00:23:51.760 --> 00:23:55.360
+so someone says uh if you export to
+
+00:23:55.360 --> 00:23:57.360
+latex to pdf does that work well with
+
+00:23:57.360 --> 00:23:58.640
+beamer as well
+
+00:23:58.640 --> 00:24:00.320
+to create slides with columns for
+
+00:24:00.320 --> 00:24:02.080
+example for uh
+
+00:24:02.080 --> 00:24:05.200
+um so uh actually uh
+
+00:24:05.200 --> 00:24:08.000
+so uh I I made a bunch of these changes
+
+00:24:08.000 --> 00:24:09.200
+earlier this morning
+
+00:24:09.200 --> 00:24:12.320
+and it just says latex right here um
+
+00:24:12.320 --> 00:24:14.480
+so if you want to go to beamer I think
+
+00:24:14.480 --> 00:24:15.360
+the back end for me
+
+00:24:15.360 --> 00:24:18.240
+beamer is called well beamer so instead
+
+00:24:18.240 --> 00:24:18.960
+of a
+
+00:24:18.960 --> 00:24:21.200
+a p case what we would do is we would
+
+00:24:21.200 --> 00:24:22.000
+say oh
+
+00:24:22.000 --> 00:24:25.360
+if it's a latex or it's a beamer
+
+00:24:25.360 --> 00:24:29.279
+then uh use this uh otherwise
+
+00:24:29.279 --> 00:24:31.120
+it's not a latex it will simply default
+
+00:24:31.120 --> 00:24:33.039
+to this one which could be
+
+00:24:33.039 --> 00:24:36.400
+dangerous for your needs um I think it's
+
+00:24:36.400 --> 00:24:39.679
+a bad practice to put a underscore but I
+
+00:24:39.679 --> 00:24:41.279
+did it really quickly because I just
+
+00:24:41.279 --> 00:24:43.679
+wanted to show you that it works fine in
+
+00:24:43.679 --> 00:24:46.559
+org reveal contributions are more than
+
+00:24:46.559 --> 00:24:47.440
+welcome
+
+00:24:47.440 --> 00:24:51.039
+I I uh happily uh would love any
+
+00:24:51.039 --> 00:24:52.240
+assistance
+
+00:24:52.240 --> 00:24:56.080
+um and and I have a uh we have a
+
+00:24:56.080 --> 00:24:58.640
+list a reference cheat sheet here to to
+
+00:24:58.640 --> 00:25:00.159
+learn a little bit about lisp if you're
+
+00:25:00.159 --> 00:25:02.000
+not comfortable or to
+
+00:25:02.000 --> 00:25:04.640
+ask some questions lots of helpful
+
+00:25:04.640 --> 00:25:06.400
+people
+
+00:25:06.400 --> 00:25:09.440
+so there's another question that says uh
+
+00:25:09.440 --> 00:25:11.679
+does typing in a block mess up with a
+
+00:25:11.679 --> 00:25:13.120
+syntax highlighting
+
+00:25:13.120 --> 00:25:15.679
+usually you use a single color inside an
+
+00:25:15.679 --> 00:25:17.279
+example block for example
+
+00:25:17.279 --> 00:25:21.279
+ah you found my crutch you found
+
+00:25:21.279 --> 00:25:25.279
+my crutch um so I so there's
+
+00:25:25.279 --> 00:25:27.440
+emax's is all encompassing and I'm not
+
+00:25:27.440 --> 00:25:29.760
+quite sure how fonts work or are
+
+00:25:29.760 --> 00:25:32.559
+you know I I learned enough to get by I
+
+00:25:32.559 --> 00:25:33.840
+learned enough to get by
+
+00:25:33.840 --> 00:25:37.440
+so let me um but here's
+
+00:25:37.440 --> 00:25:39.760
+here's how links work they're they're a
+
+00:25:39.760 --> 00:25:40.799
+bit complicated
+
+00:25:40.799 --> 00:25:42.960
+this this is a bit scary I don't
+
+00:25:42.960 --> 00:25:43.919
+recommend anyone
+
+00:25:43.919 --> 00:25:47.039
+uh read it um
+
+00:25:47.039 --> 00:25:49.840
+but uh actually let me open up an email
+
+00:25:49.840 --> 00:25:50.559
+and you can
+
+00:25:50.559 --> 00:25:53.600
+you can see what I see uh so here's an
+
+00:25:53.600 --> 00:25:54.799
+Emacs
+
+00:25:54.799 --> 00:25:56.799
+all right let's make that a bit bigger
+
+00:25:56.799 --> 00:25:58.400
+uh let's change this
+
+00:25:58.400 --> 00:26:01.200
+slightly nope that's worse there you go
+
+00:26:01.200 --> 00:26:01.919
+so
+
+00:26:01.919 --> 00:26:05.760
+here's here's some words um so here's
+
+00:26:05.760 --> 00:26:09.360
+red hello um
+
+00:26:09.360 --> 00:26:12.000
+but you're worried about uh preserving
+
+00:26:12.000 --> 00:26:12.400
+uh
+
+00:26:12.400 --> 00:26:15.679
+uh uh um quantification
+
+00:26:15.679 --> 00:26:18.480
+so let's make an emax list block all
+
+00:26:18.480 --> 00:26:18.880
+right
+
+00:26:18.880 --> 00:26:22.840
+and let's say plus one two ah
+
+00:26:22.840 --> 00:26:28.000
+where's the fun hello
+
+00:26:28.000 --> 00:26:32.080
+um bye okay where's the coloring
+
+00:26:32.080 --> 00:26:34.880
+if we if we zoom in on this on this
+
+00:26:34.880 --> 00:26:36.000
+begin source block
+
+00:26:36.000 --> 00:26:39.200
+if we zoom in you can see down here
+
+00:26:39.200 --> 00:26:42.159
+uh we have our our coloring all right
+
+00:26:42.159 --> 00:26:43.279
+when we zoom in
+
+00:26:43.279 --> 00:26:46.960
+if we if we zoom out ah no coloring
+
+00:26:46.960 --> 00:26:50.080
+zoom in coloring it's about ah no
+
+00:26:50.080 --> 00:26:50.880
+coloring
+
+00:26:50.880 --> 00:26:53.840
+let's take off these bad boys and oh
+
+00:26:53.840 --> 00:26:55.679
+look my coloring's back
+
+00:26:55.679 --> 00:26:59.360
+so um in a previous
+
+00:26:59.360 --> 00:27:02.320
+uh iteration of the system I was able to
+
+00:27:02.320 --> 00:27:03.760
+maintain coloring
+
+00:27:03.760 --> 00:27:06.400
+uh in this new iteration I am not I
+
+00:27:06.400 --> 00:27:08.559
+don't know how to do it I haven't uh
+
+00:27:08.559 --> 00:27:11.039
+had the time to to implement it I spent
+
+00:27:11.039 --> 00:27:13.279
+a lot of time writing this uh
+
+00:27:13.279 --> 00:27:17.279
+48 page uh documentation uh with uh
+
+00:27:17.279 --> 00:27:19.679
+with some fun examples to to to try to
+
+00:27:19.679 --> 00:27:20.320
+help
+
+00:27:20.320 --> 00:27:21.760
+people learn so but but I would
+
+00:27:21.760 --> 00:27:23.760
+appreciate any help or guidance on
+
+00:27:23.760 --> 00:27:26.240
+how to uh maintain the quantification I
+
+00:27:26.240 --> 00:27:28.000
+I really would like to keep those colors
+
+00:27:28.000 --> 00:27:29.200
+in
+
+00:27:29.200 --> 00:27:31.840
+um musa we have time for maybe one more
+
+00:27:31.840 --> 00:27:32.640
+question
+
+00:27:32.640 --> 00:27:34.960
+um one or two more questions and then we
+
+00:27:34.960 --> 00:27:37.039
+have to move on to the next talk
+
+00:27:37.039 --> 00:27:39.120
+um but yeah you're more than welcome to
+
+00:27:39.120 --> 00:27:40.799
+take continue taking the questions via
+
+00:27:40.799 --> 00:27:42.559
+irc or the pad
+
+00:27:42.559 --> 00:27:45.760
+okay thank you thank you
+
+00:27:45.760 --> 00:27:48.480
+let's uh the final question we'll take
+
+00:27:48.480 --> 00:27:48.880
+is
+
+00:27:48.880 --> 00:27:52.320
+um should packages implement
+
+00:27:52.320 --> 00:27:54.399
+interface to one specific format or
+
+00:27:54.399 --> 00:27:55.840
+attempt to be conclusive to all the
+
+00:27:55.840 --> 00:27:57.279
+potential output targets
+
+00:27:57.279 --> 00:27:58.880
+I think you should just make them as you
+
+00:27:58.880 --> 00:28:01.120
+go and you know add them as you need
+
+00:28:01.120 --> 00:28:02.559
+them we'll make uh
+
+00:28:02.559 --> 00:28:05.600
+help requests or things and uh
+
+00:28:05.600 --> 00:28:07.840
+we can we can share recipes in this uh
+
+00:28:07.840 --> 00:28:09.279
+document and then
+
+00:28:09.279 --> 00:28:12.799
+try to add other uh techniques and then
+
+00:28:12.799 --> 00:28:16.000
+and we can uh use these blocks as a
+
+00:28:16.000 --> 00:28:19.200
+common uh interface for
+
+00:28:19.200 --> 00:28:22.240
+for exporting to pdf and other things
+
+00:28:22.240 --> 00:28:26.000
+and since someone asked here is a um
+
+00:28:26.000 --> 00:28:28.399
+here is uh what a pdf looks like this is
+
+00:28:28.399 --> 00:28:30.159
+the same pdf and
+
+00:28:30.159 --> 00:28:33.840
+uh rendered uh just I made no effort to
+
+00:28:33.840 --> 00:28:34.960
+make it look good
+
+00:28:34.960 --> 00:28:37.840
+but it surprisingly does look good so so
+
+00:28:37.840 --> 00:28:38.559
+uh that was
+
+00:28:38.559 --> 00:28:41.600
+uh that was nice um that was a
+
+00:28:41.600 --> 00:28:44.320
+terrible magenta but that is life uh
+
+00:28:44.320 --> 00:28:44.880
+anyhow
+
+00:28:44.880 --> 00:28:47.279
+I hope you all enjoyed this talk I hope
+
+00:28:47.279 --> 00:28:48.960
+you will find um
+
+00:28:48.960 --> 00:28:51.679
+death block uh useful to you it is
+
+00:28:51.679 --> 00:28:52.799
+available on melbourne
+
+00:28:52.799 --> 00:28:54.960
+uh in a rush to make it available for
+
+00:28:54.960 --> 00:28:57.679
+EmacsConf 2020 some melba
+
+00:28:57.679 --> 00:29:00.159
+guidelines may not have been in here too
+
+00:29:00.159 --> 00:29:00.960
+please do not
+
+00:29:00.960 --> 00:29:03.200
+hit me um and I hope everyone enjoys the
+
+00:29:03.200 --> 00:29:04.720
+rest of the EmacsConf
+
+00:29:04.720 --> 00:29:08.559
+2020 thank you