summaryrefslogtreecommitdiffstats
path: root/2020/subtitles/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--grant-shangreaux.sbv
diff options
context:
space:
mode:
Diffstat (limited to '2020/subtitles/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--grant-shangreaux.sbv')
-rw-r--r--2020/subtitles/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--grant-shangreaux.sbv1251
1 files changed, 1251 insertions, 0 deletions
diff --git a/2020/subtitles/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--grant-shangreaux.sbv b/2020/subtitles/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--grant-shangreaux.sbv
new file mode 100644
index 00000000..db5fd2e7
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--grant-shangreaux.sbv
@@ -0,0 +1,1251 @@
+0:00:01.360,0:00:07.279
+hello my name is grant shangri
+
+0:00:04.480,0:00:07.919
+this is my talk titled bard beavermax
+
+0:00:07.279,0:00:10.719
+publishing
+
+0:00:07.919,0:00:12.799
+music with emacs i'm a software
+
+0:00:10.719,0:00:14.400
+developer with unabridged software in
+
+0:00:12.799,0:00:16.800
+lincoln nebraska
+
+0:00:14.400,0:00:18.720
+long time emacs user relatively new
+
+0:00:16.800,0:00:20.480
+emacs hacker
+
+0:00:18.720,0:00:22.960
+and uh hopefully i'll be able to show
+
+0:00:20.480,0:00:30.480
+you my workflow with
+
+0:00:22.960,0:00:33.440
+how i publish music with emacs
+
+0:00:30.480,0:00:35.520
+all right so as a musician i would like
+
+0:00:33.440,0:00:37.200
+to publish my music online
+
+0:00:35.520,0:00:39.040
+you know i could publish with popular
+
+0:00:37.200,0:00:42.000
+online music services
+
+0:00:39.040,0:00:44.719
+but i'm more of a diy type so i chose to
+
+0:00:42.000,0:00:48.160
+go ahead and publish with emacs
+
+0:00:44.719,0:00:49.760
+so what's the motivation behind this
+
+0:00:48.160,0:00:51.600
+a lot of it comes down to some
+
+0:00:49.760,0:00:54.960
+fundamental freedoms
+
+0:00:51.600,0:00:57.920
+that you know emacs gnu software
+
+0:00:54.960,0:00:59.120
+kind of represent to me as well as kind
+
+0:00:57.920,0:01:01.840
+of my
+
+0:00:59.120,0:01:03.680
+ideas on culture and my background i
+
+0:01:01.840,0:01:04.080
+don't believe that music is a consumer
+
+0:01:03.680,0:01:06.080
+good
+
+0:01:04.080,0:01:08.320
+um it's a form of knowledge like an
+
+0:01:06.080,0:01:10.479
+algorithm
+
+0:01:08.320,0:01:13.119
+and it's just like such a part of
+
+0:01:10.479,0:01:16.640
+culture like in tribal cultures music
+
+0:01:13.119,0:01:18.000
+was seen as a gift from the cosmos or
+
+0:01:16.640,0:01:19.920
+the gods and it was
+
+0:01:18.000,0:01:21.920
+a gift maybe through an individual
+
+0:01:19.920,0:01:23.520
+vessel but was shared with the people
+
+0:01:21.920,0:01:26.799
+and shared with everyone
+
+0:01:23.520,0:01:29.840
+kept alive by the culture itself
+
+0:01:26.799,0:01:31.520
+and so to me music is something that
+
+0:01:29.840,0:01:34.640
+should be shared and should be
+
+0:01:31.520,0:01:36.560
+freely enjoyed by everyone of course
+
+0:01:34.640,0:01:39.040
+artists should be compensated as well
+
+0:01:36.560,0:01:41.040
+but that's a whole different topic
+
+0:01:39.040,0:01:42.720
+and so when i want to share my music i
+
+0:01:41.040,0:01:43.520
+want to do it without impacting anyone's
+
+0:01:42.720,0:01:45.680
+freedom
+
+0:01:43.520,0:01:48.960
+using gnu software like emacs is a good
+
+0:01:45.680,0:01:48.960
+way that i can ensure that
+
+0:01:49.200,0:01:55.840
+i won't be requiring people to
+
+0:01:52.840,0:01:57.119
+uh sign away their freedoms for anything
+
+0:01:55.840,0:01:58.799
+there's a lot more i could say about
+
+0:01:57.119,0:02:00.960
+this but i don't have time
+
+0:01:58.799,0:02:03.439
+feel free to reach out to me by email or
+
+0:02:00.960,0:02:06.479
+irc
+
+0:02:03.439,0:02:08.239
+um and part of the motivation for me
+
+0:02:06.479,0:02:10.720
+personally is that emacs is super
+
+0:02:08.239,0:02:12.720
+magical it's an all-in-one solution
+
+0:02:10.720,0:02:14.480
+like i said the gnu software aligns with
+
+0:02:12.720,0:02:16.800
+creative commons ideas
+
+0:02:14.480,0:02:18.879
+i can do file management i can author
+
+0:02:16.800,0:02:20.239
+html all the web stuff i need even
+
+0:02:18.879,0:02:22.640
+illiterate style
+
+0:02:20.239,0:02:24.640
+i can handle media and metadata i've got
+
+0:02:22.640,0:02:26.800
+version control remote server access
+
+0:02:24.640,0:02:28.080
+all the tools i need are right under my
+
+0:02:26.800,0:02:30.000
+fingertips with this
+
+0:02:28.080,0:02:31.440
+tool that i use every day for a long
+
+0:02:30.000,0:02:34.319
+time i don't need to look
+
+0:02:31.440,0:02:36.319
+elsewhere and it was a challenge i
+
+0:02:34.319,0:02:39.440
+wanted to see if i could do this
+
+0:02:36.319,0:02:41.680
+all within emacs itself so
+
+0:02:39.440,0:02:43.440
+how do you use emacs to publish music
+
+0:02:41.680,0:02:45.120
+well for me i needed
+
+0:02:43.440,0:02:46.480
+a couple of things i needed to be able
+
+0:02:45.120,0:02:48.319
+to audition unlabel
+
+0:02:46.480,0:02:50.000
+unlabeled audio tracks i have a lot of
+
+0:02:48.319,0:02:51.280
+files that i don't know where they
+
+0:02:50.000,0:02:53.840
+came from i don't know what they are i
+
+0:02:51.280,0:02:56.800
+need to be able to listen to them
+
+0:02:53.840,0:02:58.480
+and i need to be able to add metadata to
+
+0:02:56.800,0:03:00.800
+whatever audio format it is
+
+0:02:58.480,0:03:03.200
+and rename the files based on that
+
+0:03:00.800,0:03:05.120
+metadata potentially
+
+0:03:03.200,0:03:07.040
+and in the end i wanted to take those
+
+0:03:05.120,0:03:08.319
+files and programmatically produce a web
+
+0:03:07.040,0:03:11.920
+page
+
+0:03:08.319,0:03:14.159
+for people to consume i found out that
+
+0:03:11.920,0:03:14.879
+emacs scores a hundred percent on all of
+
+0:03:14.159,0:03:18.000
+these
+
+0:03:14.879,0:03:20.720
+requirements that i had for this and
+
+0:03:18.000,0:03:22.640
+a lot of that came from emms the emacs
+
+0:03:20.720,0:03:26.080
+multimedia system
+
+0:03:22.640,0:03:27.760
+um emms is is great um
+
+0:03:26.080,0:03:30.000
+if you haven't checked it out please do
+
+0:03:27.760,0:03:32.959
+it's a little bit unintuitive but
+
+0:03:30.000,0:03:34.000
+once you get into it you know it works
+
+0:03:32.959,0:03:36.640
+um
+
+0:03:34.000,0:03:38.720
+and basically what emms gave me was the
+
+0:03:36.640,0:03:39.680
+ability to listen to the tracks organize
+
+0:03:38.720,0:03:41.280
+playlists
+
+0:03:39.680,0:03:42.959
+and on top of that it gave me super
+
+0:03:41.280,0:03:45.040
+powered metadata authoring
+
+0:03:42.959,0:03:47.200
+and i'm going to demonstrate that to you
+
+0:03:45.040,0:03:50.879
+so in order to do this
+
+0:03:47.200,0:03:54.879
+you have to require markable playlists
+
+0:03:50.879,0:03:58.720
+so require ems mark and so i'm going to
+
+0:03:54.879,0:03:58.720
+go through and i'm going to open the red
+
+0:03:59.680,0:04:04.480
+i've got this this these files here so
+
+0:04:02.319,0:04:06.080
+you can see these files are mp3s
+
+0:04:04.480,0:04:07.599
+um they're recorded on a digital
+
+0:04:06.080,0:04:09.920
+recorder
+
+0:04:07.599,0:04:11.760
+um if i had the choice i would have a
+
+0:04:09.920,0:04:12.319
+recorder that used a different format
+
+0:04:11.760,0:04:14.640
+but
+
+0:04:12.319,0:04:16.160
+so be it so i can mark all these files
+
+0:04:14.640,0:04:20.000
+and i can do ems
+
+0:04:16.160,0:04:22.880
+add to red and now they've been loaded
+
+0:04:20.000,0:04:22.880
+into a playlist
+
+0:04:27.040,0:04:30.400
+so you can see the playlist here there's
+
+0:04:29.040,0:04:32.000
+some leftover files
+
+0:04:30.400,0:04:33.759
+so i've got these three files in my
+
+0:04:32.000,0:04:34.639
+playlist and as you can see it's just
+
+0:04:33.759,0:04:36.800
+the file name
+
+0:04:34.639,0:04:38.560
+the path i don't have any metadata
+
+0:04:36.800,0:04:41.360
+associated with them
+
+0:04:38.560,0:04:43.440
+in this playlist i can hit e capital e
+
+0:04:41.360,0:04:47.360
+and it'll bring up a buffer showing
+
+0:04:43.440,0:04:49.840
+um the tag information that i have
+
+0:04:47.360,0:04:51.520
+and so i could edit these here and i
+
+0:04:49.840,0:04:53.919
+could edit them one at a time but that's
+
+0:04:51.520,0:04:57.440
+not really great i want superpower
+
+0:04:53.919,0:05:00.320
+metadata authoring so
+
+0:04:57.440,0:05:00.320
+by marking them
+
+0:05:04.479,0:05:08.479
+by marking them i can then hit e and i
+
+0:05:07.680,0:05:10.479
+have
+
+0:05:08.479,0:05:12.639
+all three of the tracks loaded up in
+
+0:05:10.479,0:05:15.759
+this tags buffer
+
+0:05:12.639,0:05:18.800
+on top of that i can do emms
+
+0:05:15.759,0:05:22.840
+tag editor set all ctrl c control
+
+0:05:18.800,0:05:25.680
+r and i want to set the artist
+
+0:05:22.840,0:05:26.320
+so these are some recordings of my
+
+0:05:25.680,0:05:31.039
+family
+
+0:05:26.320,0:05:35.600
+so shangri-lux set all three of them
+
+0:05:31.039,0:05:40.160
+i want to set the album um
+
+0:05:35.600,0:05:43.600
+spring walk with lap harp
+
+0:05:40.160,0:05:43.600
+and i want to set the year
+
+0:05:45.520,0:05:50.840
+and then i'm going to go ahead and put
+
+0:05:48.960,0:05:53.759
+these in
+
+0:05:50.840,0:05:55.840
+manually
+
+0:05:53.759,0:05:57.039
+but with the power of emacs keyboard
+
+0:05:55.840,0:05:59.600
+macros and
+
+0:05:57.039,0:06:02.319
+registers and so on i could do this
+
+0:05:59.600,0:06:04.000
+programmatically as well
+
+0:06:02.319,0:06:06.000
+which would make it a lot easier if i
+
+0:06:04.000,0:06:07.440
+hadn't met much more than three files to
+
+0:06:06.000,0:06:09.919
+do this with
+
+0:06:07.440,0:06:11.520
+submit the changes with ctrl c ctrl c
+
+0:06:09.919,0:06:13.120
+and now we've got the playlist you can
+
+0:06:11.520,0:06:15.039
+see the artist and track number have
+
+0:06:13.120,0:06:17.360
+been updated here
+
+0:06:15.039,0:06:19.039
+and then the final piece of this is that
+
+0:06:17.360,0:06:20.479
+if you look at this you can see that the
+
+0:06:19.039,0:06:22.639
+file name is still the same
+
+0:06:20.479,0:06:24.560
+so if i were looking to the directory i
+
+0:06:22.639,0:06:26.479
+would still have this file name
+
+0:06:24.560,0:06:28.000
+when packaging these up for a release
+
+0:06:26.479,0:06:30.319
+for people to download
+
+0:06:28.000,0:06:32.400
+it's nice to be able to have that file
+
+0:06:30.319,0:06:34.800
+name reflect the track number and the
+
+0:06:32.400,0:06:35.680
+artist and so on so there's another
+
+0:06:34.800,0:06:38.240
+command
+
+0:06:35.680,0:06:38.240
+mms
+
+0:06:41.199,0:06:45.120
+rename tag editor rename so it could be
+
+0:06:44.160,0:06:47.199
+just capital r
+
+0:06:45.120,0:06:48.880
+i think i need to mark all of these hit
+
+0:06:47.199,0:06:50.000
+capital r and then it's going to ask me
+
+0:06:48.880,0:06:53.599
+to confirm
+
+0:06:50.000,0:06:53.599
+and say yes to all of them
+
+0:06:54.400,0:07:04.319
+and now if you look in the dread
+
+0:07:02.720,0:07:06.319
+whoops i have to update it you'll see
+
+0:07:04.319,0:07:09.840
+it's been updated with the artist
+
+0:07:06.319,0:07:11.120
+the name track and track number and
+
+0:07:09.840,0:07:14.639
+track name
+
+0:07:11.120,0:07:17.360
+um so this format is a format string so
+
+0:07:14.639,0:07:20.479
+it's customizable of course
+
+0:07:17.360,0:07:21.039
+i just decided to go with the default so
+
+0:07:20.479,0:07:24.160
+that's
+
+0:07:21.039,0:07:26.000
+pretty great this workflow
+
+0:07:24.160,0:07:28.080
+just with emms i didn't have to do
+
+0:07:26.000,0:07:30.960
+anything this is all there it's all
+
+0:07:28.080,0:07:32.639
+all built in um it gave me exactly what
+
+0:07:30.960,0:07:35.599
+i was looking for in terms of being able
+
+0:07:32.639,0:07:37.599
+to process a lot of raw audio files
+
+0:07:35.599,0:07:39.280
+add metadata to them and get them ready
+
+0:07:37.599,0:07:41.599
+for publishing
+
+0:07:39.280,0:07:43.520
+and this is for publishing for playback
+
+0:07:41.599,0:07:44.879
+in any media player it'll it'll be
+
+0:07:43.520,0:07:46.560
+useful
+
+0:07:44.879,0:07:48.479
+not just for the web page that i'm
+
+0:07:46.560,0:07:50.560
+building so the
+
+0:07:48.479,0:07:53.440
+final part of course is um to build the
+
+0:07:50.560,0:07:54.960
+web page and emacs makes authoring html
+
+0:07:53.440,0:07:57.440
+trivial
+
+0:07:54.960,0:07:59.039
+like as i was going through this i
+
+0:07:57.440,0:08:00.400
+wanted to challenge myself and just be
+
+0:07:59.039,0:08:03.120
+like can i do this with all
+
+0:08:00.400,0:08:03.520
+just all with emacs like can i just make
+
+0:08:03.120,0:08:05.440
+this
+
+0:08:03.520,0:08:07.039
+i don't need a i don't need ruby i don't
+
+0:08:05.440,0:08:08.960
+need rails i don't need node i don't
+
+0:08:07.039,0:08:10.560
+need any of this other stuff i have my
+
+0:08:08.960,0:08:12.560
+tool right here it's a fully
+
+0:08:10.560,0:08:15.039
+it's a whole operating system basically
+
+0:08:12.560,0:08:17.360
+plus programming languages
+
+0:08:15.039,0:08:19.919
+so the first thing i started with was
+
+0:08:17.360,0:08:22.560
+buffer scripting for manipulating text
+
+0:08:19.919,0:08:24.319
+that's kind of the easiest way to do it
+
+0:08:22.560,0:08:25.280
+and basically anything you can do in a
+
+0:08:24.319,0:08:28.479
+buffer you can do
+
+0:08:25.280,0:08:30.319
+programmatically with e-lisp so this
+
+0:08:28.479,0:08:33.919
+might be a good example for beginners if
+
+0:08:30.319,0:08:36.000
+you haven't done any e-lisp yet
+
+0:08:33.919,0:08:36.959
+like a simple example is to create this
+
+0:08:36.000,0:08:40.000
+this div
+
+0:08:36.959,0:08:41.760
+output here i can you
+
+0:08:40.000,0:08:44.240
+can use this with temp buffer so
+
+0:08:41.760,0:08:46.640
+basically creating an imaginary buffer
+
+0:08:44.240,0:08:48.800
+insert is just like typing so you put
+
+0:08:46.640,0:08:50.959
+strings in you put new lines in
+
+0:08:48.800,0:08:52.080
+can cap build some strings together and
+
+0:08:50.959,0:08:54.000
+here you can see i'm
+
+0:08:52.080,0:08:55.360
+i'm doing a random number so every time
+
+0:08:54.000,0:08:57.920
+i execute this
+
+0:08:55.360,0:09:01.040
+my content changes so i can generate
+
+0:08:57.920,0:09:04.399
+dynamic content in html blocks
+
+0:09:01.040,0:09:05.920
+with e-lisp for my
+
+0:09:04.399,0:09:08.000
+web page builder it's a little more
+
+0:09:05.920,0:09:12.080
+complex i'm pulling data out
+
+0:09:08.000,0:09:15.440
+using emms data structures
+
+0:09:12.080,0:09:16.080
+so it's pulling that out from the track
+
+0:09:15.440,0:09:18.720
+data
+
+0:09:16.080,0:09:19.440
+and then i'm i'm using some program
+
+0:09:18.720,0:09:21.440
+program to
+
+0:09:19.440,0:09:23.200
+generate list elements so each track is
+
+0:09:21.440,0:09:25.120
+going to have the title
+
+0:09:23.200,0:09:26.959
+and track number and then a button for
+
+0:09:25.120,0:09:29.519
+playing it plus the source
+
+0:09:26.959,0:09:30.480
+of the audio file which will get added
+
+0:09:29.519,0:09:32.640
+here
+
+0:09:30.480,0:09:34.839
+right now this is hard coded for opus so
+
+0:09:32.640,0:09:37.200
+it won't work for my
+
+0:09:34.839,0:09:39.120
+mp3s um
+
+0:09:37.200,0:09:41.200
+i'm going to skip over snippets turns
+
+0:09:39.120,0:09:45.519
+out format strings were good enough
+
+0:09:41.200,0:09:48.160
+for me um snippets could be useful but
+
+0:09:45.519,0:09:49.839
+format is super powerful and i didn't
+
+0:09:48.160,0:09:51.279
+really even need all that much power
+
+0:09:49.839,0:09:53.519
+basically just doing string
+
+0:09:51.279,0:09:54.560
+interpolation so if you haven't seen
+
+0:09:53.519,0:09:56.720
+format before
+
+0:09:54.560,0:09:59.120
+you basically put these control strings
+
+0:09:56.720,0:10:03.120
+or control characters inside of a string
+
+0:09:59.120,0:10:05.040
+and you can generate you can generate an
+
+0:10:03.120,0:10:07.600
+output string that you want
+
+0:10:05.040,0:10:08.720
+so in my generator code basically it's
+
+0:10:07.600,0:10:10.959
+down here
+
+0:10:08.720,0:10:12.800
+um i'm calling format with this sparred
+
+0:10:10.959,0:10:15.920
+vivomax template
+
+0:10:12.800,0:10:18.240
+and that's basically a big
+
+0:10:15.920,0:10:20.399
+a big string of html it's just each you
+
+0:10:18.240,0:10:21.200
+know my whole page of html with a couple
+
+0:10:20.399,0:10:22.959
+places
+
+0:10:21.200,0:10:24.399
+with those control characters in just
+
+0:10:22.959,0:10:26.399
+four places
+
+0:10:24.399,0:10:29.760
+and one of them populates the track list
+
+0:10:26.399,0:10:32.079
+that's really the meat of the program
+
+0:10:29.760,0:10:33.440
+and again this is a combination of using
+
+0:10:32.079,0:10:36.640
+buffer scripting
+
+0:10:33.440,0:10:37.279
+using html mode inserting text format
+
+0:10:36.640,0:10:40.000
+strings
+
+0:10:37.279,0:10:41.920
+and then i can indent region so the html
+
+0:10:40.000,0:10:45.200
+actually looks pretty
+
+0:10:41.920,0:10:50.160
+when it comes out of it as well
+
+0:10:45.200,0:10:52.560
+um i will show that just really quick
+
+0:10:50.160,0:10:52.560
+actually
+
+0:10:54.000,0:10:58.800
+so you can see this is the html that got
+
+0:10:56.880,0:11:02.560
+generated i've got my template
+
+0:10:58.800,0:11:05.760
+i inserted the title here the style the
+
+0:11:02.560,0:11:07.920
+font was all inserted
+
+0:11:05.760,0:11:11.200
+and then this whole list of of tracks
+
+0:11:07.920,0:11:14.399
+here it's kind of messy to look at
+
+0:11:11.200,0:11:15.920
+but this track list this whole div here
+
+0:11:14.399,0:11:18.560
+is all generated by
+
+0:11:15.920,0:11:20.800
+my generator code and it works it's
+
+0:11:18.560,0:11:20.800
+great
+
+0:11:22.480,0:11:26.160
+okay moving on
+
+0:11:27.120,0:11:32.079
+um so the other thing was that as i was
+
+0:11:30.240,0:11:33.200
+developing this i decided to use ort
+
+0:11:32.079,0:11:35.360
+babel and some of his
+
+0:11:33.200,0:11:36.880
+its features um for multi-language
+
+0:11:35.360,0:11:37.839
+things because i needed to style it with
+
+0:11:36.880,0:11:40.480
+css and
+
+0:11:37.839,0:11:42.480
+and put actions in javascript and also i
+
+0:11:40.480,0:11:45.519
+used svg for authoring stuff
+
+0:11:42.480,0:11:46.079
+um and it was a little bit complicated i
+
+0:11:45.519,0:11:47.680
+probably
+
+0:11:46.079,0:11:49.600
+probably would have been simpler had i
+
+0:11:47.680,0:11:51.440
+not used org babble but it's also really
+
+0:11:49.600,0:11:53.839
+fun and it's i think it's a cool
+
+0:11:51.440,0:11:55.839
+cool idea to use literate programming my
+
+0:11:53.839,0:11:57.600
+idea was to create kind of like html
+
+0:11:55.839,0:11:59.519
+components like i could name it like
+
+0:11:57.600,0:12:01.440
+this
+
+0:11:59.519,0:12:02.800
+put a format string inside it and build
+
+0:12:01.440,0:12:05.519
+a function
+
+0:12:02.800,0:12:07.120
+in e-lisp to format it and spit out the
+
+0:12:05.519,0:12:10.320
+html that i want
+
+0:12:07.120,0:12:12.880
+and by doing this then i can like uh
+
+0:12:10.320,0:12:14.320
+just change things in my org file which
+
+0:12:12.880,0:12:16.959
+not getting a whole lot of time to work
+
+0:12:14.320,0:12:19.839
+on it i can come back to it and
+
+0:12:16.959,0:12:21.920
+i have a lot of notes and i can i can
+
+0:12:19.839,0:12:24.399
+kind of generate things as i'm going and
+
+0:12:21.920,0:12:25.600
+keep notes for myself and keep the
+
+0:12:24.399,0:12:27.519
+i don't know it's cool literate
+
+0:12:25.600,0:12:29.279
+programming is fun um so i don't need to
+
+0:12:27.519,0:12:31.040
+go into that too much but you can see if
+
+0:12:29.279,0:12:33.360
+i execute this here
+
+0:12:31.040,0:12:34.880
+i get the the div that i want um it's a
+
+0:12:33.360,0:12:36.480
+little bit funny you'll see i have the
+
+0:12:34.880,0:12:39.200
+string like this the way that
+
+0:12:36.480,0:12:40.000
+no web expands i can't do this on a
+
+0:12:39.200,0:12:43.839
+single line
+
+0:12:40.000,0:12:45.440
+it it it looks funny when you do that
+
+0:12:43.839,0:12:48.560
+so that might be something to work out
+
+0:12:45.440,0:12:48.959
+later css blocks can either be tangled
+
+0:12:48.560,0:12:51.680
+out
+
+0:12:48.959,0:12:52.639
+and referenced in the html source or
+
+0:12:51.680,0:12:54.639
+inlined
+
+0:12:52.639,0:12:56.959
+here's an example i have of inlining it
+
+0:12:54.639,0:13:00.320
+so i've got my little css block name
+
+0:12:56.959,0:13:03.040
+style javascript name script
+
+0:13:00.320,0:13:04.839
+and then i've got this html source block
+
+0:13:03.040,0:13:07.519
+with no web
+
+0:13:04.839,0:13:07.920
+expansion um these double angle brackets
+
+0:13:07.519,0:13:09.839
+here
+
+0:13:07.920,0:13:11.680
+are where i'm going to expand the block
+
+0:13:09.839,0:13:12.639
+name style i'm actually calling a
+
+0:13:11.680,0:13:14.399
+function
+
+0:13:12.639,0:13:17.040
+so i want the result of the function
+
+0:13:14.399,0:13:20.560
+here and then the script will just get
+
+0:13:17.040,0:13:22.959
+expanded here so or babel expand source
+
+0:13:20.560,0:13:25.360
+block
+
+0:13:22.959,0:13:28.160
+you can see what it looks like you know
+
+0:13:25.360,0:13:29.920
+i've got my style here i've got my title
+
+0:13:28.160,0:13:31.279
+i've got that main content class i
+
+0:13:29.920,0:13:33.040
+showed before
+
+0:13:31.279,0:13:34.480
+and the script as well so that's kind of
+
+0:13:33.040,0:13:36.320
+cool like
+
+0:13:34.480,0:13:38.160
+i could just run org babel tangle and
+
+0:13:36.320,0:13:40.480
+get my thing out and just
+
+0:13:38.160,0:13:41.600
+edit one file instead of multiple files
+
+0:13:40.480,0:13:45.120
+not for everyone
+
+0:13:41.600,0:13:45.120
+but i i thought it was kind of fun
+
+0:13:45.839,0:13:49.199
+all right oh and the final thing is that
+
+0:13:47.760,0:13:52.880
+in emacs you can
+
+0:13:49.199,0:13:57.199
+author and view svg so this is just an
+
+0:13:52.880,0:13:59.519
+org um this svg i used to make the play
+
+0:13:57.199,0:14:02.800
+and pause buttons but i didn't know this
+
+0:13:59.519,0:14:04.959
+but if you edit an svg file you can
+
+0:14:02.800,0:14:07.360
+toggle back and forth
+
+0:14:04.959,0:14:07.360
+between
+
+0:14:08.800,0:14:13.120
+between the code and the and the image
+
+0:14:13.199,0:14:17.360
+it's pretty sweet so i can kind of
+
+0:14:16.160,0:14:19.680
+iteratively work
+
+0:14:17.360,0:14:20.560
+work through this because of of how
+
+0:14:19.680,0:14:24.480
+emacs is
+
+0:14:20.560,0:14:24.959
+like that so um final considerations
+
+0:14:24.480,0:14:27.360
+here
+
+0:14:24.959,0:14:29.279
+like when doing this i want it to be all
+
+0:14:27.360,0:14:30.079
+free so i want to use fonts that use a
+
+0:14:29.279,0:14:32.800
+free license
+
+0:14:30.079,0:14:34.800
+i found gnu unifont it's kind of cool
+
+0:14:32.800,0:14:37.600
+the content license i chose
+
+0:14:34.800,0:14:39.920
+creative commons attribution share like
+
+0:14:37.600,0:14:42.880
+which is kind of like the gpl
+
+0:14:39.920,0:14:44.800
+ideally i could serve it with emacs i'd
+
+0:14:42.880,0:14:46.320
+like to remove idiosyncrasy so other
+
+0:14:44.800,0:14:48.720
+people can use it
+
+0:14:46.320,0:14:51.040
+it's pretty much just my tool right now
+
+0:14:48.720,0:14:51.440
+um not requiring the web browser i can
+
+0:14:51.040,0:14:54.079
+ship
+
+0:14:51.440,0:14:54.480
+playlists so that you can just you know
+
+0:14:54.079,0:14:58.000
+click
+
+0:14:54.480,0:15:00.639
+or link to a playlist on your favorite
+
+0:14:58.000,0:15:02.639
+player even emms if you want and then
+
+0:15:00.639,0:15:04.320
+packing up those albums in like a zip or
+
+0:15:02.639,0:15:08.639
+tar file
+
+0:15:04.320,0:15:10.880
+so um you can go to churls.world
+
+0:15:08.639,0:15:14.000
+it just has a link to this album i'll
+
+0:15:10.880,0:15:17.519
+display it here in just a second
+
+0:15:14.000,0:15:21.040
+you can contact me i'm shosheen on emacs
+
+0:15:17.519,0:15:23.680
+in irc and on sourcehut you can email me
+
+0:15:21.040,0:15:26.800
+grant at charles world personal or grant
+
+0:15:23.680,0:15:28.320
+on a bridge software all right now let's
+
+0:15:26.800,0:15:32.000
+see
+
+0:15:28.320,0:15:32.000
+about this
+
+0:15:32.079,0:15:35.120
+this is up online so if you want to
+
+0:15:33.680,0:15:39.199
+listen to my
+
+0:15:35.120,0:15:43.040
+college band's album from 20 years ago
+
+0:15:39.199,0:15:47.680
+here it is cassiopeia basement days
+
+0:15:43.040,0:15:48.000
+whoops i made this art in krita you can
+
+0:15:47.680,0:15:51.199
+press
+
+0:15:48.000,0:15:55.040
+play you can skip around
+
+0:15:51.199,0:15:58.560
+i did i do have the playlist up here too
+
+0:15:55.040,0:16:00.880
+so yeah thanks for listening
+
+0:15:58.560,0:16:04.000
+i hope you enjoyed it and enjoy the rest
+
+0:16:00.880,0:16:04.000
+of emacs conf
+
+0:16:04.360,0:16:07.360
+goodbye
+