summaryrefslogtreecommitdiffstats
path: root/2020
diff options
context:
space:
mode:
authorEmacsConf Organizers <orga@front0.emacsconf.org>2021-01-30 17:00:44 +0000
committerEmacsConf Organizers <orga@front0.emacsconf.org>2021-01-30 17:00:44 +0000
commit0b487f878d36f62b7a29df13e4172cf04243e45f (patch)
tree5202f7dde992fa00dabd0ed90fb620231bc6e57a /2020
parent677d96158e0eb1d975bb76c7a6e0c695b42aabd2 (diff)
parent42831835bf8daf375e9515f84f5f9ff2adac7f94 (diff)
downloademacsconf-wiki-0b487f878d36f62b7a29df13e4172cf04243e45f.tar.xz
emacsconf-wiki-0b487f878d36f62b7a29df13e4172cf04243e45f.zip
Merge branch 'master' of git://git.emacsconf.org/emacsconf-wiki
Diffstat (limited to '2020')
-rw-r--r--2020/info/01.md2
-rw-r--r--2020/info/02.md870
-rw-r--r--2020/info/03.md153
-rw-r--r--2020/info/04.md280
-rw-r--r--2020/info/05.md920
-rw-r--r--2020/info/06.md413
-rw-r--r--2020/info/07.md325
-rw-r--r--2020/info/15.md109
-rw-r--r--2020/info/20.md488
-rw-r--r--2020/info/35.md234
-rw-r--r--2020/info/39.md204
-rw-r--r--2020/organizers-notebook.md12
-rw-r--r--2020/organizers-notebook.org61
-rw-r--r--2020/subtitles/emacsconf-2020--02-an-emacs-developer-story-from-user-to-package-maintainer--leo-vivier.vtt1775
-rw-r--r--2020/subtitles/emacsconf-2020--03-idea-to-novel-superstructure-emacs-for-writing--questions--bala-ramadurai.vtt470
-rw-r--r--2020/subtitles/emacsconf-2020--04-music-in-plain-text--jonathan-gregory.vtt522
-rw-r--r--2020/subtitles/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--grant-shangreaux.vtt1101
-rw-r--r--2020/subtitles/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--questions--grant-shangreaux.vtt606
-rw-r--r--2020/subtitles/emacsconf-2020--06-trivial-emacs-kits--corwin-brust.vtt1033
-rw-r--r--2020/subtitles/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--sid-kasivajhula.vtt1360
-rw-r--r--2020/subtitles/emacsconf-2020--20-omg-macros--corwin-brust.vtt2
-rw-r--r--2020/subtitles/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--questions--zachary-kanfer.vtt (renamed from 2020/subtitles/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--questions--zachary-kanfer-autogen.vtt)296
-rw-r--r--2020/subtitles/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--zachary-kanfer.vtt (renamed from 2020/subtitles/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--zachary-kanfer-autogen.vtt)454
-rw-r--r--2020/subtitles/emacsconf-2020--39-nongnu-elpa--richard-stallman.vtt442
24 files changed, 6654 insertions, 5478 deletions
diff --git a/2020/info/01.md b/2020/info/01.md
index 65b37947..1d575b35 100644
--- a/2020/info/01.md
+++ b/2020/info/01.md
@@ -3,6 +3,7 @@ Sacha Chua
[[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--01-emacs-news-highlights--sacha-chua.webm" subtitles="/2020/subtitles/emacsconf-2020--01-emacs-news-highlights--sacha-chua.vtt" duration="3:58" download="Download with subtitles" size="11MB"]]
[Download compressed .webm video (10M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--01-emacs-news-highlights--sacha-chua--vp9-q56-video-original-audio.webm)
+[View transcript](https://github.com/sachac/emacsconf-2020-emacs-news-highlights)
Quick highlights from Emacs News since the last EmacsConf
@@ -10,7 +11,6 @@ Quick highlights from Emacs News since the last EmacsConf
- <https://github.com/sachac/emacsconf-2020-emacs-news-highlights>
-
# Following up
Got any cool Emacs links you'd like me to share? You can post
diff --git a/2020/info/02.md b/2020/info/02.md
index c6cac107..fab7aa9d 100644
--- a/2020/info/02.md
+++ b/2020/info/02.md
@@ -1,7 +1,7 @@
# An Emacs Developer Story: From User to Package Maintainer
Leo Vivier
-[[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--02-an-emacs-developer-story-from-user-to-package-maintainer--leo-vivier.webm" size="296MB" subtitles="/2020/subtitles/emacsconf-2020--02-an-emacs-developer-story-from-user-to-package-maintainer--leo-vivier.vtt" duration="24:15"]]
+[[!template vidid="mainVideo" id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--02-an-emacs-developer-story-from-user-to-package-maintainer--leo-vivier.webm" size="296MB" subtitles="/2020/subtitles/emacsconf-2020--02-an-emacs-developer-story-from-user-to-package-maintainer--leo-vivier.vtt" duration="24:15"]]
In light of the new development philosophy for Org-mode, I would like
to present my developer story from discovering Org-mode in 2014 to
@@ -81,343 +81,535 @@ development via emacs
resources for learning; the people were SO generous with their time,
to share comments and ideas to improve code.
-<!-- transcript: 2020/subtitles/emacsconf-2020--02-an-emacs-developer-story-from-user-to-package-maintainer--leo-vivier.vtt -->
+<a name="transcript"></a>
# Transcript
-(Amin: Alrighty, Leo Vivier, take it away.) Leo Vivier: Okay, well, thank you. I'm
-in. So you've just had a little roundup of the news, and we're going
-to get started now with some presentations. We're starting with user
-developer stories. I was extremely interested in this section because
-I wanted to get a chance, basically, to tell you a little more about
-who I am and how I got from basically being a user of Emacs to being
-nowadays a package maintainer, and maybe more in the future. I don't
-know.
-
-So, just for the organizers, I'm planning to speak for 15 minutes, and
-I'll have five more minutes of questions at the end. As I told you
-before, if you want to have questions, you know you can use the pad,
-and I'll be reading the questions from there. Okay.
-
-So hi there, as Amin introduced me before, my name is Leo Vivier. I'm
-a freelance software engineer in France, and I have been using Emacs
-now for i believe close to eight years. I can't believe it's been so
-long. But yes, it's been a journey because, in a way, nothing made me
-go for Emacs. You know I'm an-- sorry, I was about to say Emacs major,
-but no, I'm an English major. I went to university to study English
-literature and linguistics, and I just got started in Emacs because I
-was looking for ways to take better notes. I was looking for ways to
-[Applause] structure the way I was learning, structure the way I was
-taking notes. I stumbled one day upon this weird piece of software
-which was called Emacs, and I've been trapped forever since,
-basically, because eight years ago, when I discovered Emacs I just
-couldn't let go. There was just something very interesting about the
-way you configured your setup, and I just wanted to dive deeper and
-deeper.
-
-So the title is of this talk exactly is how I went from user to
-package maintainer, and the package now that I'm maintaining is called
-org-roam. I'm not the only one doing this. I'm helped with many lovely
-people working on org-roam. I got started as a maintainer only this
-year, so that means that for the eight years I've been an Emacs user,
-seven of those years were spent merely being a user trying to be a
-sponge for knowledge, trying to learn as much as I could. I believe it
-would be interesting for me to share my story because I believe that
-I'm far from being the only user who can make the jump to being a
-maintainer.
-
-A lot of you have a lot of knowledge when it comes to Emacs. Some of
-you are at different steps in your journey. Some of you, for instance,
-are just starting to copy stuff out of StackExchange into your Emacs
-configuration. let's say you want to do something very particular and
-you haven't found a way to do so. You go on StackExchange. You find
-something that's interesting. You add it to your Emacs configuration.
-You barely understand anything that's going on. You know that it's
-supposed to be Emacs Lisp. "I hardly know Emacs and I know even less
-what is Lisp supposed to be." But you paste it in and it does what you
-want it to do, and you say "Great, I'll move on to my work now." So
-that's how I got started. I had a very spartan setup for Emacs, which
-a lot of you must know... The first time you launch Emacs, you have
-this feeling that you're jumping 20 years back in time, as far as the
-user interface is concerned. But as you get to spend more time with
-Emacs... Some would call it Stockholm syndrome insofar as you can't
-see how spartan the entire thing is, but it actually is a lovely
-prison so to speak.
-
-That's how I got started eight years ago. I just wanted to find a way
-to do my research properly. I wanted to have a tool that I could use
-to write my notes in plain text, because I was already fairly averse
-to Microsoft solutions when it came to taking notes. So yeah, I got
-started in Emacs. I read a little bit about what plain text was about.
-Just to be clear, at the time, yes, I was very good with computers,
-but I was not a computer science student. I had barely any experience
-with programming and coding, and I was even less of a hacker back
-then. It just goes to show you that at the beginning, I had close to
-no knowledge, whether it be about the free software world, whether it
-be about...
-
-Sacha, do you want to say something? (Sacha: just confirming, you're
-not sharing anything on the screen at the moment, right?) No, I'm not
-sharing anything, I'm just presenting.
-
-So when I started, I had no experience whatsoever. I was just a
-literature major trying to get better at taking notes. I stumbled upon
-LaTeX. As many people who stumble upon LaTeX know, you don't just
-stumble upon LaTeX, you embroil yourself in the turmoil of suffering,
-of late nights tweaking, so that your document is exactly in the
-perfect shape you want it to be.
-
-Soon after, when I got started with Emacs and LaTeX, I discovered
-something that truly changed my life, and it was Org Mode. As you'll
-get a lot of presentations this afternoon about Org Mode, I won't be
-spending too much time on it. But Org Mode, for me, was a revelation.
-It's... There was something that, upon reading articles on how to use
-Org Mode, especially one of the key article that I'd read which really
-made a huge impact on me was the "Organize Your Life in Plain Text"
-one which i'm sure many of you must have stumbled upon in your Emacs
-journey... For me, when I stumbled upon this document, I was starting
-to get interested in Getting Things Done and all the nitty-gritty
-stuff about organization and self-organization. It just felt like
-everything was under my fingertips to make the perfect workflow. There
-was something incredibly satisfying about having a system that gave
-you so many options to configure your experience exactly how you
-wanted. You had this feeling that the people behind Org Mode had
-thought of everything, whichever small adjustment that you needed in
-workflow whether it be more states for your TODOs, whether it be, oh,
-I want my weeks to start on Monday and not on Saturday, oh, it's half
-past one and I need to... in the morning, I mean, and I need to make
-sure that the item that i'm marking as done is done for the day before
-and not for the current day. You see what I'm talking about. So many
-details that were already present in Org Mode. At first you're really
-impressed, because you think, wow, they thought of everything, but
-then you realize that it's just a matter of experience, just a matter
-of people contributing code, because the development of Org Mode,
-Emacs, and everything is just open to the public.
-
-You know, it's like everything is being done with the garage
-door opened. You can just go on Org Mode on Savannah and see
-everything that is being developed. For me, the shift that occurred in
-my mind was when I was reading all the options, I was looking at all
-the variables that i could modify for Org Mode, and there came a time,
-maybe two to three years ago, where I thought, oh wow, maybe for the
-first time in a while, there is no option for me to do what I want to
-be doing with Org Mode. I believe at the time the the key issue that
-triggered this reflex for me was I wanted to do something with the
-agenda. I wanted to have a super category so, you know, in the... for
-those of you who know, in your agenda, you have the ability to have
-many files, and you have the ability to have categories. I wanted
-somehow to group my TODOs in smaller groups, or bigger groups, I
-should say, so that, for instance, I could have one group for my
-professional life, I could have a group for one work, the second
-work... I could have something for university and all this. I thought,
-yeah, I think I'd like this. After having spent so long working with
-Emacs and working with Org Mode, I had some ideas about what was
-within the realm of possibility and what wasn't. Here I thought to
-myself, this is definitely something that I can do. And so thus
-started my journey into the Org Mode libraries.
-
-I won't go too much into details right now, because right now, the
-main objective that I have is just to show you how simple it is to
-become a maintainer, how to become more involved with the development.
-The libraries in Org Mode, they're written in Elisp, which is a
-very... It might seem like an obscure language, and it certainly is,
-but as soon as you get the logic of the language--and what i'm telling
-you is coming from someone who's never studied programming-- it made
-sense. Everything is so verbose when you get into the code. When you
-learn the rudiments of Elisp, you start getting to the code, and you
-start thinking, wow, okay that makes sense, and you start developing a
-logic for all this. So, equipped as I was with this new knowledge, I
-went on my project, i went into the Org agenda code, and I thought,
-okay, is there anything that I can use to do my bidding? Fast forward
-maybe two to three weeks of intense turmoil and many nights which were
-spent single-mindedly working on this project, two weeks after, I had
-something that was working, and I was pretty happy about it. That was
-a key landmark for me, because when that happened, it just felt like,
-okay, I can contribute something to Org Mode, and I can do something
-that would benefit as many people as possible. And to me, that was the
-click. That's when it occurred. That's when I went on my first project
-and I did something that felt useful to the community.
-
-And nowadays, as I told you, I maintain packages, but really, nothing
-has changed. The only thing, maybe, that has changed that I've turned
-my mind onto other problems. Maybe I've got three more minutes and I'd
-like to finish by maybe something a little different.
-
-I've told you my Emacs story and I hope I've stressed how little
-effort it took me to move from steps to steps on the ladder. The
-ladder implies a sense of hierarchy, but it really isn't. Whatever
-your step on the journey of Emacs is... Some of you might be at the
-step where you're really worried about learning Elisp because it feels
-like such a monumental task to be undertaking and you have no
-experience whatsoever, but the thing is, maybe you could try climbing
-this first step on the ladder. Maybe you could try, if you have any
-project, if you've been using Org Mode, maybe one day you thought,
-"oh, yes, I wish I could do this but I can't," or maybe do try to do
-this, maybe do try to change something in a major mode that you're
-using and which you feel might be better. I think Emacs, Org Mode, and
-all free software in general has this tendency to give you this idea
-that I can be a hacker in the sense of the term that you're modifying
-things to do your bidding. For me, I believe this to be a very healthy
-attitude towards software. As Amin said in the very beginning, we are
-doing this entire presentation-- sorry, this entire conference with
-free software. Just see all the things we've been able to do in free
-software. For me, Emacs was my gateway, so to speak, into how to
-contribute to free software, about the philosophy that surrounds it.
-
-What I would like to do... I'll finish on this note and then I'll be
-taking your questions. Just try. You've read on Reddit that you need
-to go through the Elisp manual in Emacs. You might be scared, but just
-do it. Just give it a shot. Just give it maybe one afternoon. Try to
-read it. Try to see if this appeals to your mind. If you've been
-interested enough in my presentation right now, and if you're
-interested enough in any of the talks you're going to have during the
-entire conference, do give it a shot. I'm pretty sure you will like
-the journey on which you will be embarking upon. So
-
-I believe I'm finishing one minute early, but I see quite a bit of
-questions already. I'm not sure. Sacha, should I just be reading the
-questions, or do you want to be feeding me the questions? (Amin: It's
-really up to you. it's completely up to you. If you've got the
-questions open and can take them or read them, by all means please.)
-Okay, well, I'm going to read them because I've got them on the side.
-I'm going to start with the one at the bottom.
-
-"Do you feel that being a white male contributed to your experience?"
-Yeah. I mean, I do believe... There's an idea of privilege. I mean,
-I'm French. I live in... I'm lucky enough to be here at university,
-okay, and I'm fairly aware of the discrepancies that happen, even in
-France, according to this... So, yes, I believe my journey was heavily
-influenced by this. If you would like to specify the question, please
-do, but I don't have really all that much to ask on this.
-
-"What is your advice to start learning Elisp language? Any
-particularly good resource or any other tips?" I finished um my
-presentation by telling you about the Elisp introduction which is
-built into Emacs. What I might do... I'm going to share my screen just
-to show you how this works. I will be sharing this window. I believe
-it's frozen on my end, so I can't see anything. i'm not sure if you
-can see me or if my camera is moving. Okay, so my Firefox is frozen.
-So i'll answer the question, but I won't be able to show you what I
-wanted to show you. There's a built-in guide inside Emacs to learn
-Elisp. Maybe the best chance that you have is just to go open these
-info pages. I'm sure someone will be kind enough to mention this to
-you in the #emacsconf channel on IRC but it's probably the best way to
-get started with Elisp. You know, we tend to get obsessed, with
-software and with programming, about what's the best way to get
-started. You see so many people who are heavily interested in getting
-started with programming but they never managed to get started because
-there's so much choice. My advice would be to just get started. Don't
-get so worried about the first step. Well, if I may still recommend
-the first step, even after saying this, do try to start with the
-built-in guides. I believe they're pretty pretty good.
-
-There was another question. It's the last question that I can read and
-after that, you will have to read the questions for me because
-everything is frozen on my end. I hope I'm not frozen in a very bad
-position so please excuse me if my mouth is open or anything. (Amin:
-no, we just completely lost the video feed, so no worries.) Oh,
-splendid, so I won't have to make a fool out of myself.
-
-So the last question I wanted to answer was "Have you read Dirk
-Gently's Holistic Detective Agency?" No, I haven't. I hope it's not a
-jab at the way i'm dressing for the conference, but yeah, I haven't
-read it. Was there any other question?
-
-(Amin: I see one other question. "Any recommendation for good
-packaging guides or places to start? i get a bit overwhelmed by some
-things. For example, the choice of different test frameworks.") Right.
-Okay. So that's a very good question. I believe alphapapa is in the
-chat right now. As myself a new lisp developer for org-roam, i'd
-really recommend you to look into his package developers' guide
-because you have a list of all the softwares that are extremely useful
-to be using when you're getting started. If you're looking into a
-first step for how to develop elast package, i'd really advise you to
-look into edebug. It's one word, edebug, and you have a section in the
-manual for this, because for me, it was the key step to getting to
-develop good packages. It was understanding basically what the code
-did and having us something like a REPL (read-evaluate-print-loop)
-that allows you to step through the code and see exactly which states
-the variables are at which at this point in the program. That's really
-my biggest advice to you. Any other question? Thanks. Yeah, I
-see one or two more. So there's one.
-
-They ask, "How did the freedom of Emacs help you on your way?" So the
-freedom of Emacs... I mentioned that Emacs, for me, was my gateway
-into free software and the freedom of Emacs was that you could
-maybe... First and foremost, compared to other software, was that you
-had behind Emacs, Elisp, which allows you to read the code, read
-whatever is going on in the background. Surely, if you go deep enough,
-you'll end up on C functions that you might not be able to read if you
-do not have the experience. But for Org Mode, which was my gateway
-into Emacs, most of it is written in Elisp, and all the commands have
-a very verbose name, like something simple as org go to next subtree
-or org go to a parent subtree. You know, things like this. It's so
-elegant. It's verbose. That's a sense of freedom insofar as you can go
-into the code and see, oh, okay, that's how it's implemented. I
-believe in a way that's the freedom and the liberty that is given to
-you to look into the code is something that invites you to do the same
-with your life. As someone who does a little bit of philosophy on the
-side, I believe it's a very healthy message to be gathering from a
-piece of software.
-
-(Amin: Awesome, thank you. Let's see... So we have... I think I saw
-another question pop up.) I'm not sure how we're doing as far as time
-is concerned... I believe we have like one or two minutes more. (Amin:
-Yeah, actually, we're quite a bit ahead of the schedule, so if we take
-a little bit longer, we're fine. If you do have more questions, please
-do.) I'm just sorry that my video is not working anymore. (Amin: No
-problem. Someone was actually saying... What's the most recent...
-Actually, yeah well before that.
-
-"Please show off your three-piece suit before you end your talk, which
-requires fixing your frozen camera. if this is not possible, please
-post suit selfies in an easily accessible location." Okay, I'll make
-sure to do this. But yes, I wanted to hype things up for the
-conference, so yes, I did get the three-piece suit out. I'm very glad
-you like it. By the way when you get a chance to see me live again, do
-appreciate that my tie has both the colors of Emacs purple and also
-Org Mode green. It took me a while to find this one, so I hope you
-will appreciate this.
-
-(Amin: Awesome. Let's see. We have one other question. "What's the
-most recent Emacs package or tool that you've discovered that you've
-added to your repertoire?") Very interesting question. The thing is,
-when you've spent as long as I have on Emacs--and I know that I've
-only spent eight years and some of you might have spent maybe 10, 20,
-maybe even more years on Emacs-- but for me, I believe the the coolest
-neat trick that I found in Emacs was a mode which is called
-beacon-mode. It's something that allows you to show when you're
-jumping between buffers or when you're dropping between windows, it
-shows exactly where your point is in that buffer by making a slight
-ray of light which looks like a beacon, hence the name. It really
-helps you navigate buffers because it always shows in a very visual
-way where your point is. I'll get a chance to show this to you later
-today when i'll be presenting my other talks.
-
-(Amin: AWesome. We have one question from Jonas, the maintainer from
-Magit. He asks, "When you touched your webcam, that blew a fuse at my
-place. How did you do that?") Well, I'm very sorry, Jonas, that it
-happened to you, but i'll make sure not to touch my webcam again.
-(Amin: Do we have any other questions?) I have to trust you on this
-one. I'm really sorry. Everything is frozen on my end. (Amin: No
-problem.)
-
-Yeah I'm more talking to the audience, I guess. I hope my lack of
-slides didn't bother you. I really wanted to have this verbose time
-with people, to be able to... it's a message that i've been trying to
-share with as many people as possible. In france we do have an Emacs
-workshop that we have on a monthly basis. I've been learning a lot
-with those people and I felt like doing the same with Emacs conference
-would be good. That's why i'm really happy, and I'm really lucky to
-have had the chance to do this today. I hope some of you I've
-convinced you of climbing up a step on a ladder or making a step in a
-journey. (Amin: Absolutely. Thank you so much, Leo. I happen to
-completely agree with your not necessarily using a slide when it's not
-really needed and to help give some face-to-face time with the
-audience. Unfortunately your webcam cut out, but I mean before that.)
-Yes, I'll make sure to fix the problems later on, so don't worry about
-it. (Amin: Awesome. Alrighty. I guess we're wrapping up for your talk
-and getting ready for the next talk.) Sure. Well, thank you so much.
-I'll see you all later, I suppose! (Amin: Sounds good. Thank you
-again, Leo. Bye-bye)
-
-<!-- /transcript -->
+[[!template text="(Amin: Alrighty, Leo Vivier, take it away.)" start="00:00:00.000" video="mainVideo" id=subtitle]]
+[[!template text="Okay, well, thank you. I'm in." start="00:00:03.760" video="mainVideo" id=subtitle]]
+[[!template text="So you've just had a little roundup of the news," start="00:00:05.319" video="mainVideo" id=subtitle]]
+[[!template text="and we're going to get started now with some presentations." start="00:00:08.393" video="mainVideo" id=subtitle]]
+[[!template text="We're starting with user developer stories." start="00:00:11.120" video="mainVideo" id=subtitle]]
+[[!template text="I was extremely interested in this section" start="00:00:15.920" video="mainVideo" id=subtitle]]
+[[!template text="because I wanted to get a chance, basically," start="00:00:18.568" video="mainVideo" id=subtitle]]
+[[!template text="to tell you a little more about who I am and" start="00:00:21.133" video="mainVideo" id=subtitle]]
+[[!template text="how I got from basically being a user of Emacs" start="00:00:24.160" video="mainVideo" id=subtitle]]
+[[!template text="to being nowadays a package maintainer," start="00:00:28.160" video="mainVideo" id=subtitle]]
+[[!template text="and maybe more in the future. I don't know." start="00:00:31.279" video="mainVideo" id=subtitle]]
+[[!template new="1" text="So, just for the organizers, I'm planning to speak for 15 minutes," start="00:00:34.156" video="mainVideo" id=subtitle]]
+[[!template text="and I'll have five more minutes of questions at the end." start="00:00:36.954" video="mainVideo" id=subtitle]]
+[[!template text="As I told you before, if you want to have questions," start="00:00:39.680" video="mainVideo" id=subtitle]]
+[[!template text="you know you can use the pad," start="00:00:41.880" video="mainVideo" id=subtitle]]
+[[!template text="and I'll be reading the questions from there." start="00:00:43.440" video="mainVideo" id=subtitle]]
+[[!template new="1" text="Okay. So hi there, as Amin introduced me before," start="00:00:45.871" video="mainVideo" id=subtitle]]
+[[!template text="my name is Leo Vivier." start="00:00:49.600" video="mainVideo" id=subtitle]]
+[[!template text="I'm a freelance software engineer in France," start="00:00:51.280" video="mainVideo" id=subtitle]]
+[[!template text="and I have been using Emacs now for" start="00:00:55.662" video="mainVideo" id=subtitle]]
+[[!template text="I believe close to eight years." start="00:00:59.359" video="mainVideo" id=subtitle]]
+[[!template text="I can't believe it's been so long." start="00:01:00.885" video="mainVideo" id=subtitle]]
+[[!template text="But yes, it's been a journey because, in a way," start="00:01:03.039" video="mainVideo" id=subtitle]]
+[[!template text="nothing made me go for Emacs." start="00:01:09.967" video="mainVideo" id=subtitle]]
+[[!template text="You know I'm an-- sorry, I was about to say Emacs major," start="00:01:13.255" video="mainVideo" id=subtitle]]
+[[!template text="but no, I'm an English major." start="00:01:17.011" video="mainVideo" id=subtitle]]
+[[!template text="I went to university to study English literature and linguistics," start="00:01:18.638" video="mainVideo" id=subtitle]]
+[[!template text="and I just got started in Emacs" start="00:01:23.990" video="mainVideo" id=subtitle]]
+[[!template text="because I was looking for ways to take" start="00:01:26.159" video="mainVideo" id=subtitle]]
+[[!template text="better notes. I was looking for ways to" start="00:01:28.240" video="mainVideo" id=subtitle]]
+[[!template text="structure the way I was learning," start="00:01:32.640" video="mainVideo" id=subtitle]]
+[[!template text="structure the way I was taking notes." start="00:01:34.640" video="mainVideo" id=subtitle]]
+[[!template text="I stumbled one day" start="00:01:38.084" video="mainVideo" id=subtitle]]
+[[!template text="upon this weird piece of software" start="00:01:40.079" video="mainVideo" id=subtitle]]
+[[!template text="which was called Emacs," start="00:01:42.032" video="mainVideo" id=subtitle]]
+[[!template text="and I've been trapped forever since," start="00:01:43.759" video="mainVideo" id=subtitle]]
+[[!template text="basically, because eight years ago," start="00:01:46.479" video="mainVideo" id=subtitle]]
+[[!template text="when I discovered Emacs," start="00:01:48.328" video="mainVideo" id=subtitle]]
+[[!template text="I just couldn't let go." start="00:01:49.515" video="mainVideo" id=subtitle]]
+[[!template text="There was just something very" start="00:01:50.632" video="mainVideo" id=subtitle]]
+[[!template text="interesting about the way" start="00:01:52.720" video="mainVideo" id=subtitle]]
+[[!template text="you configured your setup," start="00:01:54.487" video="mainVideo" id=subtitle]]
+[[!template text="and I just wanted to dive deeper and deeper." start="00:01:56.320" video="mainVideo" id=subtitle]]
+[[!template new="1" text="So the title is of this talk exactly is" start="00:01:59.759" video="mainVideo" id=subtitle]]
+[[!template text="how I went from user to package maintainer," start="00:02:04.320" video="mainVideo" id=subtitle]]
+[[!template text="and the package now that I'm maintaining" start="00:02:07.637" video="mainVideo" id=subtitle]]
+[[!template text="is called org-roam. I'm not the only one doing this." start="00:02:09.686" video="mainVideo" id=subtitle]]
+[[!template text="I'm helped with many lovely people working on org-roam." start="00:02:12.080" video="mainVideo" id=subtitle]]
+[[!template text="I got started as a maintainer only this year," start="00:02:18.720" video="mainVideo" id=subtitle]]
+[[!template text="so that means that for" start="00:02:22.149" video="mainVideo" id=subtitle]]
+[[!template text="the eight years I've been" start="00:02:23.360" video="mainVideo" id=subtitle]]
+[[!template text="an Emacs user, seven of those years were" start="00:02:24.720" video="mainVideo" id=subtitle]]
+[[!template text="spent merely being a user" start="00:02:27.360" video="mainVideo" id=subtitle]]
+[[!template text="trying to be a sponge for knowledge," start="00:02:29.200" video="mainVideo" id=subtitle]]
+[[!template text="trying to learn as much as I could." start="00:02:31.040" video="mainVideo" id=subtitle]]
+[[!template text="I believe it would be" start="00:02:33.920" video="mainVideo" id=subtitle]]
+[[!template text="interesting for me to share my story" start="00:02:36.800" video="mainVideo" id=subtitle]]
+[[!template text="because I believe that I'm far from" start="00:02:39.040" video="mainVideo" id=subtitle]]
+[[!template text="being the only user" start="00:02:40.959" video="mainVideo" id=subtitle]]
+[[!template text="who can make the jump to being a maintainer." start="00:02:42.160" video="mainVideo" id=subtitle]]
+[[!template new="1" text="A lot of you have a lot of knowledge when it comes to Emacs." start="00:02:44.327" video="mainVideo" id=subtitle]]
+[[!template text="Some of you are at different steps in your journey." start="00:02:47.572" video="mainVideo" id=subtitle]]
+[[!template text="Some of you, for instance, are just" start="00:02:51.040" video="mainVideo" id=subtitle]]
+[[!template text="starting to copy stuff out of" start="00:02:52.720" video="mainVideo" id=subtitle]]
+[[!template text="StackExchange into your Emacs configuration." start="00:02:55.680" video="mainVideo" id=subtitle]]
+[[!template text="Let's say you want to do something very particular" start="00:02:59.058" video="mainVideo" id=subtitle]]
+[[!template text="and you haven't found a way to do so." start="00:03:01.599" video="mainVideo" id=subtitle]]
+[[!template text="You go on StackExchange." start="00:03:04.480" video="mainVideo" id=subtitle]]
+[[!template text="You find something that's interesting." start="00:03:05.527" video="mainVideo" id=subtitle]]
+[[!template text="You add it to your Emacs configuration." start="00:03:07.930" video="mainVideo" id=subtitle]]
+[[!template text="You barely understand anything that's going on." start="00:03:10.077" video="mainVideo" id=subtitle]]
+[[!template text="You know that it's supposed to be Emacs Lisp." start="00:03:11.680" video="mainVideo" id=subtitle]]
+[[!template text="&quot;I hardly know Emacs and" start="00:03:14.800" video="mainVideo" id=subtitle]]
+[[!template text="I know even less what is Lisp supposed to be.&quot;" start="00:03:17.200" video="mainVideo" id=subtitle]]
+[[!template text="But you paste it in, and it does what you want it to do," start="00:03:19.440" video="mainVideo" id=subtitle]]
+[[!template text="and you say &quot;Great, I'll move on to my work now.&quot;" start="00:03:22.172" video="mainVideo" id=subtitle]]
+[[!template text="So that's how I got started." start="00:03:26.682" video="mainVideo" id=subtitle]]
+[[!template text="I had a very spartan setup for Emacs, which a lot of you must know..." start="00:03:28.821" video="mainVideo" id=subtitle]]
+[[!template text="The first time you launch Emacs," start="00:03:33.888" video="mainVideo" id=subtitle]]
+[[!template text="you have this feeling" start="00:03:36.000" video="mainVideo" id=subtitle]]
+[[!template text="that you're jumping 20 years back in time," start="00:03:36.920" video="mainVideo" id=subtitle]]
+[[!template text="as far as the user interface is concerned." start="00:03:38.852" video="mainVideo" id=subtitle]]
+[[!template text="But as you get to spend more time with Emacs..." start="00:03:43.260" video="mainVideo" id=subtitle]]
+[[!template text="Some would call it Stockholm syndrome" start="00:03:46.959" video="mainVideo" id=subtitle]]
+[[!template text="insofar as you can't see" start="00:03:49.120" video="mainVideo" id=subtitle]]
+[[!template text="how spartan the entire thing is," start="00:03:50.959" video="mainVideo" id=subtitle]]
+[[!template text="but it actually is a lovely prison, so to speak." start="00:03:52.929" video="mainVideo" id=subtitle]]
+[[!template new="1" text="That's how I got started eight years ago." start="00:03:58.400" video="mainVideo" id=subtitle]]
+[[!template text="I just wanted to find a way to do my research properly." start="00:04:00.400" video="mainVideo" id=subtitle]]
+[[!template text="I wanted to have a tool" start="00:04:04.319" video="mainVideo" id=subtitle]]
+[[!template text="that I could use to write my notes" start="00:04:05.699" video="mainVideo" id=subtitle]]
+[[!template text="in plain text, because I was already" start="00:04:07.280" video="mainVideo" id=subtitle]]
+[[!template text="fairly averse to Microsoft solutions when it came to taking notes." start="00:04:08.959" video="mainVideo" id=subtitle]]
+[[!template text="So yeah, I got started in Emacs." start="00:04:16.320" video="mainVideo" id=subtitle]]
+[[!template text="I read a little bit about what plain text was about." start="00:04:19.180" video="mainVideo" id=subtitle]]
+[[!template text="Just to be clear, at the time, yes," start="00:04:21.651" video="mainVideo" id=subtitle]]
+[[!template text="I was very good with computers," start="00:04:24.364" video="mainVideo" id=subtitle]]
+[[!template text="but I was not a computer science student." start="00:04:27.120" video="mainVideo" id=subtitle]]
+[[!template text="I had barely any experience with programming and coding," start="00:04:30.160" video="mainVideo" id=subtitle]]
+[[!template text="and I was even less of a hacker back then." start="00:04:34.302" video="mainVideo" id=subtitle]]
+[[!template text="It just goes to show you that at the beginning," start="00:04:39.919" video="mainVideo" id=subtitle]]
+[[!template text="I had close to no knowledge," start="00:04:43.052" video="mainVideo" id=subtitle]]
+[[!template text="whether it be about" start="00:04:44.479" video="mainVideo" id=subtitle]]
+[[!template text="the free software world," start="00:04:45.840" video="mainVideo" id=subtitle]]
+[[!template text="whether it be about..." start="00:04:47.457" video="mainVideo" id=subtitle]]
+[[!template new="1" text="Sacha, do you want to say something?" start="00:04:48.880" video="mainVideo" id=subtitle]]
+[[!template text="(Sacha: just confirming, you're not sharing anything" start="00:04:50.290" video="mainVideo" id=subtitle]]
+[[!template text="on the screen at the moment, right?)" start="00:04:52.479" video="mainVideo" id=subtitle]]
+[[!template text="No, I'm not sharing anything," start="00:04:54.080" video="mainVideo" id=subtitle]]
+[[!template text="I'm just presenting." start="00:04:55.204" video="mainVideo" id=subtitle]]
+[[!template new="1" text="So when I started," start="00:04:59.040" video="mainVideo" id=subtitle]]
+[[!template text="I had no experience whatsoever." start="00:05:01.173" video="mainVideo" id=subtitle]]
+[[!template text="I was just a literature major" start="00:05:03.680" video="mainVideo" id=subtitle]]
+[[!template text="trying to get better at taking notes." start="00:05:07.199" video="mainVideo" id=subtitle]]
+[[!template text="I stumbled upon LaTeX." start="00:05:11.039" video="mainVideo" id=subtitle]]
+[[!template text="As many people who stumble upon LaTeX know," start="00:05:12.466" video="mainVideo" id=subtitle]]
+[[!template text="you don't just stumble upon LaTeX," start="00:05:15.280" video="mainVideo" id=subtitle]]
+[[!template text="you embroil yourself in the turmoil of suffering," start="00:05:17.519" video="mainVideo" id=subtitle]]
+[[!template text="of late nights tweaking," start="00:05:21.950" video="mainVideo" id=subtitle]]
+[[!template text="so that your document is exactly" start="00:05:24.560" video="mainVideo" id=subtitle]]
+[[!template text="in the perfect shape you want it to be." start="00:05:26.923" video="mainVideo" id=subtitle]]
+[[!template new="1" text="Soon after, when I got started with Emacs and LaTeX," start="00:05:33.440" video="mainVideo" id=subtitle]]
+[[!template text="I discovered something that truly changed my life," start="00:05:36.639" video="mainVideo" id=subtitle]]
+[[!template text="and it was Org Mode." start="00:05:39.334" video="mainVideo" id=subtitle]]
+[[!template text="As you'll get a lot of presentations" start="00:05:40.560" video="mainVideo" id=subtitle]]
+[[!template text="this afternoon about Org Mode," start="00:05:44.479" video="mainVideo" id=subtitle]]
+[[!template text="I won't be spending too much time on it." start="00:05:46.960" video="mainVideo" id=subtitle]]
+[[!template text="But Org Mode, for me, was a revelation. It's..." start="00:05:49.360" video="mainVideo" id=subtitle]]
+[[!template text="There was something that," start="00:05:53.680" video="mainVideo" id=subtitle]]
+[[!template text="upon reading articles on how to use Org Mode," start="00:05:55.869" video="mainVideo" id=subtitle]]
+[[!template text="especially one of the key articles" start="00:05:59.039" video="mainVideo" id=subtitle]]
+[[!template text="that I'd read which really made" start="00:06:02.453" video="mainVideo" id=subtitle]]
+[[!template text="a huge impact on me" start="00:06:04.160" video="mainVideo" id=subtitle]]
+[[!template text="was the &quot;Organize Your Life in Plain Text&quot; one," start="00:06:06.000" video="mainVideo" id=subtitle]]
+[[!template text="which I'm sure many of you must have stumbled upon" start="00:06:09.199" video="mainVideo" id=subtitle]]
+[[!template text="in your Emacs journey..." start="00:06:12.240" video="mainVideo" id=subtitle]]
+[[!template text="For me, when I stumbled upon this document," start="00:06:15.919" video="mainVideo" id=subtitle]]
+[[!template text="I was starting to get interested" start="00:06:20.307" video="mainVideo" id=subtitle]]
+[[!template text="in Getting Things Done and" start="00:06:22.488" video="mainVideo" id=subtitle]]
+[[!template text="all the nitty-gritty stuff about" start="00:06:24.240" video="mainVideo" id=subtitle]]
+[[!template text="organization and self-organization." start="00:06:26.560" video="mainVideo" id=subtitle]]
+[[!template text="It just felt like everything was under my fingertips" start="00:06:29.199" video="mainVideo" id=subtitle]]
+[[!template text="to make the perfect workflow." start="00:06:32.960" video="mainVideo" id=subtitle]]
+[[!template text="There was something incredibly satisfying about" start="00:06:36.960" video="mainVideo" id=subtitle]]
+[[!template text="having a system that gave you" start="00:06:44.080" video="mainVideo" id=subtitle]]
+[[!template text="so many options to configure your experience" start="00:06:45.834" video="mainVideo" id=subtitle]]
+[[!template text="exactly how you wanted." start="00:06:48.319" video="mainVideo" id=subtitle]]
+[[!template text="You had this feeling that" start="00:06:50.160" video="mainVideo" id=subtitle]]
+[[!template text="the people behind Org Mode had thought of everything," start="00:06:54.479" video="mainVideo" id=subtitle]]
+[[!template text="whichever small adjustment" start="00:06:57.599" video="mainVideo" id=subtitle]]
+[[!template text="that you needed in workflow" start="00:07:00.479" video="mainVideo" id=subtitle]]
+[[!template text="whether it be more states for your TODOs," start="00:07:02.000" video="mainVideo" id=subtitle]]
+[[!template text="whether it be, oh, I want my weeks to" start="00:07:05.440" video="mainVideo" id=subtitle]]
+[[!template text="start on Monday and not on Saturday," start="00:07:07.520" video="mainVideo" id=subtitle]]
+[[!template text="oh, it's half past one and I need to..." start="00:07:09.360" video="mainVideo" id=subtitle]]
+[[!template text="in the morning, I mean, and I need to make" start="00:07:13.520" video="mainVideo" id=subtitle]]
+[[!template text="sure that the item that I'm marking as done" start="00:07:15.280" video="mainVideo" id=subtitle]]
+[[!template text="is done for the day before" start="00:07:17.680" video="mainVideo" id=subtitle]]
+[[!template text="and not for the current day." start="00:07:18.759" video="mainVideo" id=subtitle]]
+[[!template text="You see what I'm talking about." start="00:07:20.233" video="mainVideo" id=subtitle]]
+[[!template text="So many details that were already" start="00:07:21.919" video="mainVideo" id=subtitle]]
+[[!template text="present in Org Mode." start="00:07:25.280" video="mainVideo" id=subtitle]]
+[[!template text="At first you're really impressed, because you think, wow," start="00:07:27.235" video="mainVideo" id=subtitle]]
+[[!template text="they thought of everything," start="00:07:31.335" video="mainVideo" id=subtitle]]
+[[!template text="but then you realize that it's just a matter of experience," start="00:07:33.470" video="mainVideo" id=subtitle]]
+[[!template text="just a matter of people contributing code," start="00:07:36.378" video="mainVideo" id=subtitle]]
+[[!template text="because the development of Org Mode, Emacs," start="00:07:39.712" video="mainVideo" id=subtitle]]
+[[!template text="and everything is just open to the public." start="00:07:42.171" video="mainVideo" id=subtitle]]
+[[!template new="1" text="You know, it's like" start="00:07:44.455" video="mainVideo" id=subtitle]]
+[[!template text="everything is being done with the garage door opened." start="00:07:45.440" video="mainVideo" id=subtitle]]
+[[!template text="You can just go on Org Mode on Savannah" start="00:07:47.685" video="mainVideo" id=subtitle]]
+[[!template text="and see everything that is being developed." start="00:07:50.402" video="mainVideo" id=subtitle]]
+[[!template text="For me, the shift that occurred in my mind was" start="00:07:54.800" video="mainVideo" id=subtitle]]
+[[!template text="when I was reading all the options," start="00:08:01.586" video="mainVideo" id=subtitle]]
+[[!template text="I was looking at all the variables" start="00:08:04.139" video="mainVideo" id=subtitle]]
+[[!template text="that I could modify for Org Mode," start="00:08:05.881" video="mainVideo" id=subtitle]]
+[[!template text="and there came a time, maybe two to three years ago," start="00:08:08.160" video="mainVideo" id=subtitle]]
+[[!template text="where I thought, oh wow," start="00:08:12.560" video="mainVideo" id=subtitle]]
+[[!template text="maybe for the first time in a while," start="00:08:15.599" video="mainVideo" id=subtitle]]
+[[!template text="there is no option for me to do" start="00:08:17.759" video="mainVideo" id=subtitle]]
+[[!template text="what I want to be doing with Org Mode." start="00:08:19.260" video="mainVideo" id=subtitle]]
+[[!template text="I believe at the time," start="00:08:21.440" video="mainVideo" id=subtitle]]
+[[!template text="the key issue that triggered this reflex for me was" start="00:08:23.668" video="mainVideo" id=subtitle]]
+[[!template text="I wanted to do something with the agenda." start="00:08:29.199" video="mainVideo" id=subtitle]]
+[[!template text="I wanted to have a super category so, you know, in the..." start="00:08:31.039" video="mainVideo" id=subtitle]]
+[[!template text="for those of you who know, in your agenda," start="00:08:34.159" video="mainVideo" id=subtitle]]
+[[!template text="you have the ability to have many files," start="00:08:36.606" video="mainVideo" id=subtitle]]
+[[!template text="and you have the ability to have categories." start="00:08:38.376" video="mainVideo" id=subtitle]]
+[[!template text="I wanted somehow to group my" start="00:08:41.200" video="mainVideo" id=subtitle]]
+[[!template text="TODOs in smaller groups, or bigger" start="00:08:47.920" video="mainVideo" id=subtitle]]
+[[!template text="groups, I should say," start="00:08:51.680" video="mainVideo" id=subtitle]]
+[[!template text="so that, for instance, I could have" start="00:08:52.560" video="mainVideo" id=subtitle]]
+[[!template text="one group for my professional life," start="00:08:53.780" video="mainVideo" id=subtitle]]
+[[!template text="I could have a group for one work," start="00:08:55.131" video="mainVideo" id=subtitle]]
+[[!template text="the second work..." start="00:08:57.462" video="mainVideo" id=subtitle]]
+[[!template text="I could have something for university and all this." start="00:08:59.600" video="mainVideo" id=subtitle]]
+[[!template text="I thought, yeah, I think I'd like this." start="00:09:02.800" video="mainVideo" id=subtitle]]
+[[!template text="After having spent so long working" start="00:09:09.600" video="mainVideo" id=subtitle]]
+[[!template text="with Emacs and working with Org Mode," start="00:09:12.959" video="mainVideo" id=subtitle]]
+[[!template text="I had some ideas about" start="00:09:15.519" video="mainVideo" id=subtitle]]
+[[!template text="what was within the realm of possibility and what wasn't." start="00:09:16.766" video="mainVideo" id=subtitle]]
+[[!template text="Here I thought to myself," start="00:09:19.292" video="mainVideo" id=subtitle]]
+[[!template text="this is definitely something that I can do." start="00:09:21.120" video="mainVideo" id=subtitle]]
+[[!template text="And so thus started my journey" start="00:09:24.320" video="mainVideo" id=subtitle]]
+[[!template text="into the Org Mode libraries." start="00:09:27.839" video="mainVideo" id=subtitle]]
+[[!template new="1" text="I won't go too much into details right now," start="00:09:31.360" video="mainVideo" id=subtitle]]
+[[!template text="because right now, the main objective" start="00:09:33.222" video="mainVideo" id=subtitle]]
+[[!template text="that I have is just to show you" start="00:09:34.959" video="mainVideo" id=subtitle]]
+[[!template text="how simple it is to become a maintainer," start="00:09:37.040" video="mainVideo" id=subtitle]]
+[[!template text="how to become more involved with the development." start="00:09:40.240" video="mainVideo" id=subtitle]]
+[[!template text="The libraries in Org Mode," start="00:09:42.800" video="mainVideo" id=subtitle]]
+[[!template text="they're written in Elisp, which is a very..." start="00:09:46.320" video="mainVideo" id=subtitle]]
+[[!template text="It might seem like an obscure language," start="00:09:50.320" video="mainVideo" id=subtitle]]
+[[!template text="and it certainly is," start="00:09:52.080" video="mainVideo" id=subtitle]]
+[[!template text="but as soon as you get the logic of the language--and" start="00:09:54.080" video="mainVideo" id=subtitle]]
+[[!template text="what I'm telling you is coming from someone" start="00:09:57.279" video="mainVideo" id=subtitle]]
+[[!template text="who's never studied programming--" start="00:10:00.136" video="mainVideo" id=subtitle]]
+[[!template text="it made sense." start="00:10:01.760" video="mainVideo" id=subtitle]]
+[[!template text="Everything is so verbose" start="00:10:04.399" video="mainVideo" id=subtitle]]
+[[!template text="when you get into the code." start="00:10:05.534" video="mainVideo" id=subtitle]]
+[[!template text="When you learn the rudiments of Elisp," start="00:10:07.279" video="mainVideo" id=subtitle]]
+[[!template text="you start getting to the code," start="00:10:11.065" video="mainVideo" id=subtitle]]
+[[!template text="and you start thinking, wow," start="00:10:13.360" video="mainVideo" id=subtitle]]
+[[!template text="okay that makes sense," start="00:10:15.229" video="mainVideo" id=subtitle]]
+[[!template text="and you start developing a logic for all this." start="00:10:17.120" video="mainVideo" id=subtitle]]
+[[!template text="So, equipped as I was with this" start="00:10:21.360" video="mainVideo" id=subtitle]]
+[[!template text="new knowledge, I went on my project," start="00:10:24.720" video="mainVideo" id=subtitle]]
+[[!template text="I went into the Org agenda code," start="00:10:27.760" video="mainVideo" id=subtitle]]
+[[!template text="and I thought, okay," start="00:10:30.000" video="mainVideo" id=subtitle]]
+[[!template text="is there anything that I can use to do my bidding?" start="00:10:30.880" video="mainVideo" id=subtitle]]
+[[!template text="Fast forward maybe two to three weeks of intense turmoil" start="00:10:34.640" video="mainVideo" id=subtitle]]
+[[!template text="and many nights which were spent single-mindedly working on this project," start="00:10:39.733" video="mainVideo" id=subtitle]]
+[[!template text="two weeks after, I had something that was working," start="00:10:46.079" video="mainVideo" id=subtitle]]
+[[!template text="and I was pretty happy about it." start="00:10:48.781" video="mainVideo" id=subtitle]]
+[[!template text="That was a key landmark for me," start="00:10:51.680" video="mainVideo" id=subtitle]]
+[[!template text="because when that happened," start="00:10:54.849" video="mainVideo" id=subtitle]]
+[[!template text="it just felt like, okay," start="00:10:56.800" video="mainVideo" id=subtitle]]
+[[!template text="I can contribute something to Org Mode," start="00:10:58.860" video="mainVideo" id=subtitle]]
+[[!template text="and I can do something that would benefit as many people as possible." start="00:11:01.335" video="mainVideo" id=subtitle]]
+[[!template text="And to me, that was the click." start="00:11:07.600" video="mainVideo" id=subtitle]]
+[[!template text="That's when it occurred." start="00:11:08.970" video="mainVideo" id=subtitle]]
+[[!template text="That's when I went on my first project and I did something" start="00:11:10.530" video="mainVideo" id=subtitle]]
+[[!template text="that felt useful to the community." start="00:11:14.640" video="mainVideo" id=subtitle]]
+[[!template new="1" text="And nowadays, as I told you," start="00:11:18.079" video="mainVideo" id=subtitle]]
+[[!template text="I maintain packages, but really, nothing has changed." start="00:11:19.945" video="mainVideo" id=subtitle]]
+[[!template text="The only thing, maybe, that has changed" start="00:11:22.640" video="mainVideo" id=subtitle]]
+[[!template text="is that I've turned my mind onto other problems." start="00:11:24.399" video="mainVideo" id=subtitle]]
+[[!template text="Maybe I've got three more minutes," start="00:11:28.320" video="mainVideo" id=subtitle]]
+[[!template text="and I'd like to finish by" start="00:11:32.000" video="mainVideo" id=subtitle]]
+[[!template text="maybe something a little different." start="00:11:35.279" video="mainVideo" id=subtitle]]
+[[!template new="1" text="I've told you my Emacs story" start="00:11:38.399" video="mainVideo" id=subtitle]]
+[[!template text="and I hope I've stressed how little effort it took me" start="00:11:39.449" video="mainVideo" id=subtitle]]
+[[!template text="to move from steps to steps on the ladder." start="00:11:42.924" video="mainVideo" id=subtitle]]
+[[!template text="The ladder implies a sense of hierarchy, but it really isn't." start="00:11:46.560" video="mainVideo" id=subtitle]]
+[[!template text="Whatever your step on the journey of Emacs is..." start="00:11:48.959" video="mainVideo" id=subtitle]]
+[[!template text="Some of you might be at the step" start="00:11:53.920" video="mainVideo" id=subtitle]]
+[[!template text="where you're really worried" start="00:11:55.830" video="mainVideo" id=subtitle]]
+[[!template text="about learning Elisp because it feels" start="00:11:57.440" video="mainVideo" id=subtitle]]
+[[!template text="like such a monumental task to be undertaking" start="00:11:59.360" video="mainVideo" id=subtitle]]
+[[!template text="and you have no experience whatsoever," start="00:12:02.399" video="mainVideo" id=subtitle]]
+[[!template text="but the thing is," start="00:12:04.720" video="mainVideo" id=subtitle]]
+[[!template text="maybe you could try climbing this first" start="00:12:06.079" video="mainVideo" id=subtitle]]
+[[!template text="step on the ladder. Maybe you could try," start="00:12:07.839" video="mainVideo" id=subtitle]]
+[[!template text="if you have any project," start="00:12:09.600" video="mainVideo" id=subtitle]]
+[[!template text="if you've been using Org Mode," start="00:12:11.200" video="mainVideo" id=subtitle]]
+[[!template text="maybe one day you thought, &quot;oh, yes," start="00:12:13.120" video="mainVideo" id=subtitle]]
+[[!template text="I wish I could do this but I can't,&quot;" start="00:12:15.600" video="mainVideo" id=subtitle]]
+[[!template text="or maybe do try to do this," start="00:12:18.160" video="mainVideo" id=subtitle]]
+[[!template text="maybe do try to change something" start="00:12:19.920" video="mainVideo" id=subtitle]]
+[[!template text="in a major mode that you're using" start="00:12:21.442" video="mainVideo" id=subtitle]]
+[[!template text="and which you feel might be better." start="00:12:23.279" video="mainVideo" id=subtitle]]
+[[!template text="I think Emacs, Org Mode," start="00:12:26.560" video="mainVideo" id=subtitle]]
+[[!template text="and all free software in general" start="00:12:28.722" video="mainVideo" id=subtitle]]
+[[!template text="has this tendency to give you this idea" start="00:12:31.040" video="mainVideo" id=subtitle]]
+[[!template text="that I can be a hacker" start="00:12:34.720" video="mainVideo" id=subtitle]]
+[[!template text="in the sense of the term" start="00:12:38.720" video="mainVideo" id=subtitle]]
+[[!template text="that you're modifying things" start="00:12:41.360" video="mainVideo" id=subtitle]]
+[[!template text="to do your bidding." start="00:12:43.200" video="mainVideo" id=subtitle]]
+[[!template text="For me, I believe this to be" start="00:12:46.320" video="mainVideo" id=subtitle]]
+[[!template text="a very healthy attitude towards software." start="00:12:48.042" video="mainVideo" id=subtitle]]
+[[!template text="As Amin said in the very beginning," start="00:12:50.320" video="mainVideo" id=subtitle]]
+[[!template text="we are doing this entire presentation--" start="00:12:54.079" video="mainVideo" id=subtitle]]
+[[!template text="sorry, this entire conference with free software." start="00:12:57.279" video="mainVideo" id=subtitle]]
+[[!template text="Just see all the things" start="00:13:00.800" video="mainVideo" id=subtitle]]
+[[!template text="we've been able to do in free software." start="00:13:01.686" video="mainVideo" id=subtitle]]
+[[!template text="For me, Emacs was my gateway, so to speak," start="00:13:03.920" video="mainVideo" id=subtitle]]
+[[!template text="into how to contribute to free software," start="00:13:10.399" video="mainVideo" id=subtitle]]
+[[!template text="about the philosophy that surrounds it." start="00:13:14.399" video="mainVideo" id=subtitle]]
+[[!template new="1" text="What I would like to do..." start="00:13:18.639" video="mainVideo" id=subtitle]]
+[[!template text="I'll finish on this note and then" start="00:13:20.003" video="mainVideo" id=subtitle]]
+[[!template text="I'll be taking your questions." start="00:13:21.375" video="mainVideo" id=subtitle]]
+[[!template text="Just try." start="00:13:23.360" video="mainVideo" id=subtitle]]
+[[!template text="You've read on Reddit" start="00:13:26.480" video="mainVideo" id=subtitle]]
+[[!template text="that you need to go through the Elisp manual in Emacs." start="00:13:28.592" video="mainVideo" id=subtitle]]
+[[!template text="You might be scared, but just do it. Just give it a shot." start="00:13:31.807" video="mainVideo" id=subtitle]]
+[[!template text="Just give it maybe one afternoon." start="00:13:35.920" video="mainVideo" id=subtitle]]
+[[!template text="Try to read it." start="00:13:38.560" video="mainVideo" id=subtitle]]
+[[!template text="Try to see if this appeals to your mind." start="00:13:39.199" video="mainVideo" id=subtitle]]
+[[!template text="If you've been interested enough" start="00:13:43.120" video="mainVideo" id=subtitle]]
+[[!template text="in my presentation right now," start="00:13:44.230" video="mainVideo" id=subtitle]]
+[[!template text="and if you're interested enough in any of the talks" start="00:13:45.241" video="mainVideo" id=subtitle]]
+[[!template text="you're going to have during the entire conference," start="00:13:47.199" video="mainVideo" id=subtitle]]
+[[!template text="do give it a shot." start="00:13:49.519" video="mainVideo" id=subtitle]]
+[[!template text="I'm pretty sure you will like the journey" start="00:13:50.747" video="mainVideo" id=subtitle]]
+[[!template text="on which you will be embarking upon." start="00:13:52.959" video="mainVideo" id=subtitle]]
+[[!template new="1" text="So I believe I'm finishing one minute early," start="00:13:55.418" video="mainVideo" id=subtitle]]
+[[!template text="but I see quite a bit of questions already." start="00:13:57.120" video="mainVideo" id=subtitle]]
+[[!template text="I'm not sure. Sacha, should I" start="00:14:01.040" video="mainVideo" id=subtitle]]
+[[!template text="just be reading the questions," start="00:14:04.320" video="mainVideo" id=subtitle]]
+[[!template text="or do you want to be feeding me the questions?" start="00:14:05.847" video="mainVideo" id=subtitle]]
+[[!template text="(Amin: It's really up to you." start="00:14:08.639" video="mainVideo" id=subtitle]]
+[[!template text="It's completely up to you." start="00:14:10.755" video="mainVideo" id=subtitle]]
+[[!template text="If you've got the questions" start="00:14:12.320" video="mainVideo" id=subtitle]]
+[[!template text="open and can take them or read them," start="00:14:13.600" video="mainVideo" id=subtitle]]
+[[!template text="by all means, please.)" start="00:14:15.839" video="mainVideo" id=subtitle]]
+[[!template text="Okay, well, I'm going to read them" start="00:14:18.320" video="mainVideo" id=subtitle]]
+[[!template text="because I've got them on the side." start="00:14:19.420" video="mainVideo" id=subtitle]]
+[[!template text="I'm going to start with the one at the bottom." start="00:14:20.581" video="mainVideo" id=subtitle]]
+[[!template new="1" text="&quot;Do you feel that being a white male" start="00:14:22.800" video="mainVideo" id=subtitle]]
+[[!template text="contributed to your experience?&quot;" start="00:14:24.959" video="mainVideo" id=subtitle]]
+[[!template text="Yeah. I mean, I do believe..." start="00:14:26.959" video="mainVideo" id=subtitle]]
+[[!template text="There's an idea of privilege." start="00:14:29.165" video="mainVideo" id=subtitle]]
+[[!template text="I mean, I'm French. I live in..." start="00:14:30.771" video="mainVideo" id=subtitle]]
+[[!template text="I'm lucky enough to be here at university, okay," start="00:14:33.250" video="mainVideo" id=subtitle]]
+[[!template text="and I'm fairly aware of the discrepancies that happen," start="00:14:36.959" video="mainVideo" id=subtitle]]
+[[!template text="even in France," start="00:14:40.714" video="mainVideo" id=subtitle]]
+[[!template text="according to this..." start="00:14:41.600" video="mainVideo" id=subtitle]]
+[[!template text="So, yes, I believe my journey" start="00:14:42.880" video="mainVideo" id=subtitle]]
+[[!template text="was heavily influenced by this." start="00:14:46.320" video="mainVideo" id=subtitle]]
+[[!template text="If you would like to specify the question, please do," start="00:14:51.199" video="mainVideo" id=subtitle]]
+[[!template text="but I don't have really all that much to ask on this." start="00:14:53.547" video="mainVideo" id=subtitle]]
+[[!template new="1" text="&quot;What is your advice to start learning" start="00:14:56.560" video="mainVideo" id=subtitle]]
+[[!template text="Elisp language? Any particularly good" start="00:14:59.839" video="mainVideo" id=subtitle]]
+[[!template text="resource or any other tips?&quot;" start="00:15:01.279" video="mainVideo" id=subtitle]]
+[[!template text="I finished my presentation by telling you about" start="00:15:03.421" video="mainVideo" id=subtitle]]
+[[!template text="the Elisp introduction which is built into Emacs." start="00:15:07.760" video="mainVideo" id=subtitle]]
+[[!template text="What I might do... I'm going to share my screen" start="00:15:10.937" video="mainVideo" id=subtitle]]
+[[!template text="just to show you how this works." start="00:15:13.936" video="mainVideo" id=subtitle]]
+[[!template text="I will be sharing this window." start="00:15:17.819" video="mainVideo" id=subtitle]]
+[[!template text="I believe it's frozen on my end," start="00:15:22.880" video="mainVideo" id=subtitle]]
+[[!template text="so I can't see anything." start="00:15:24.234" video="mainVideo" id=subtitle]]
+[[!template text="I'm not sure if you can see me" start="00:15:27.199" video="mainVideo" id=subtitle]]
+[[!template text="or if my camera is moving." start="00:15:28.597" video="mainVideo" id=subtitle]]
+[[!template text="Okay, so my Firefox is frozen." start="00:15:32.560" video="mainVideo" id=subtitle]]
+[[!template text="So I'll answer the question," start="00:15:34.387" video="mainVideo" id=subtitle]]
+[[!template text="but I won't be able to show you what I wanted to show you." start="00:15:35.361" video="mainVideo" id=subtitle]]
+[[!template text="There's a built-in guide inside Emacs to learn Elisp." start="00:15:40.000" video="mainVideo" id=subtitle]]
+[[!template text="Maybe the best chance that you have" start="00:15:44.320" video="mainVideo" id=subtitle]]
+[[!template text="is just to go open these info pages." start="00:15:46.880" video="mainVideo" id=subtitle]]
+[[!template text="I'm sure someone will be kind enough to" start="00:15:49.040" video="mainVideo" id=subtitle]]
+[[!template text="mention this to you in the #emacsconf channel on IRC" start="00:15:50.959" video="mainVideo" id=subtitle]]
+[[!template text="but it's probably the best way" start="00:15:54.880" video="mainVideo" id=subtitle]]
+[[!template text="to get started with Elisp." start="00:15:56.880" video="mainVideo" id=subtitle]]
+[[!template text="You know, we tend to get obsessed," start="00:15:59.040" video="mainVideo" id=subtitle]]
+[[!template text="with software and with programming," start="00:16:00.991" video="mainVideo" id=subtitle]]
+[[!template text="about what's the best way to get started." start="00:16:03.013" video="mainVideo" id=subtitle]]
+[[!template text="You see so many people who are heavily interested" start="00:16:04.880" video="mainVideo" id=subtitle]]
+[[!template text="in getting started with programming" start="00:16:08.399" video="mainVideo" id=subtitle]]
+[[!template text="but they never managed to get started" start="00:16:10.409" video="mainVideo" id=subtitle]]
+[[!template text="because there's so much choice." start="00:16:12.320" video="mainVideo" id=subtitle]]
+[[!template text="My advice would be to just get started." start="00:16:14.320" video="mainVideo" id=subtitle]]
+[[!template text="Don't get so worried about the first step." start="00:16:16.320" video="mainVideo" id=subtitle]]
+[[!template text="Well, if I may still recommend the first step," start="00:16:18.800" video="mainVideo" id=subtitle]]
+[[!template text="even after saying this," start="00:16:22.493" video="mainVideo" id=subtitle]]
+[[!template text="do try to start with the built-in guides." start="00:16:23.920" video="mainVideo" id=subtitle]]
+[[!template text="I believe they're pretty, pretty good." start="00:16:27.073" video="mainVideo" id=subtitle]]
+[[!template new="1" text="There was another question." start="00:16:29.600" video="mainVideo" id=subtitle]]
+[[!template text="It's the last question that I can read" start="00:16:31.691" video="mainVideo" id=subtitle]]
+[[!template text="and after that, you will have to" start="00:16:33.055" video="mainVideo" id=subtitle]]
+[[!template text="read the questions for me because everything is frozen on my end." start="00:16:34.564" video="mainVideo" id=subtitle]]
+[[!template text="I hope I'm not frozen in a very bad position," start="00:16:37.920" video="mainVideo" id=subtitle]]
+[[!template text="so please excuse me if my mouth is open or anything." start="00:16:43.935" video="mainVideo" id=subtitle]]
+[[!template text="(Amin: no, we just completely lost the video feed, so no worries.)" start="00:16:47.406" video="mainVideo" id=subtitle]]
+[[!template text="Oh, splendid, so I won't have to make a fool out of myself." start="00:16:51.120" video="mainVideo" id=subtitle]]
+[[!template new="1" text="So the last question I wanted to answer was" start="00:16:54.800" video="mainVideo" id=subtitle]]
+[[!template text="&quot;Have you read Dirk Gently's Holistic Detective Agency?&quot;" start="00:16:56.800" video="mainVideo" id=subtitle]]
+[[!template text="No, I haven't. I hope it's not a jab at the way I'm dressing for the conference," start="00:16:59.199" video="mainVideo" id=subtitle]]
+[[!template text="but yeah, I haven't read it. Was there any other question?" start="00:17:05.741" video="mainVideo" id=subtitle]]
+[[!template new="1" text="(Amin: I see one other question." start="00:17:10.559" video="mainVideo" id=subtitle]]
+[[!template text="&quot;Any recommendation for good packaging guides or places to start?" start="00:17:15.919" video="mainVideo" id=subtitle]]
+[[!template text="I get a bit overwhelmed by some things." start="00:17:19.679" video="mainVideo" id=subtitle]]
+[[!template text="For example, the choice of different test frameworks.&quot;)" start="00:17:23.199" video="mainVideo" id=subtitle]]
+[[!template text="Right. Okay. So that's a very good question." start="00:17:26.799" video="mainVideo" id=subtitle]]
+[[!template text="I believe alphapapa is in the chat right now." start="00:17:29.263" video="mainVideo" id=subtitle]]
+[[!template text="As myself a new Lisp developer for org-roam," start="00:17:33.840" video="mainVideo" id=subtitle]]
+[[!template text="I'd really recommend you to look into" start="00:17:36.314" video="mainVideo" id=subtitle]]
+[[!template text="his package developers' guide," start="00:17:38.320" video="mainVideo" id=subtitle]]
+[[!template text="because you have a list of all the softwares" start="00:17:40.032" video="mainVideo" id=subtitle]]
+[[!template text="that are extremely useful to be using when" start="00:17:42.507" video="mainVideo" id=subtitle]]
+[[!template text="you're getting started." start="00:17:44.559" video="mainVideo" id=subtitle]]
+[[!template text="If you're looking into a first step" start="00:17:45.760" video="mainVideo" id=subtitle]]
+[[!template text="for how to develop elisp packages," start="00:17:48.347" video="mainVideo" id=subtitle]]
+[[!template text="I'd really advise you to" start="00:17:50.947" video="mainVideo" id=subtitle]]
+[[!template text="look into edebug." start="00:17:52.640" video="mainVideo" id=subtitle]]
+[[!template text="It's one word, edebug," start="00:17:53.520" video="mainVideo" id=subtitle]]
+[[!template text="and you have a section in the manual for this," start="00:17:56.559" video="mainVideo" id=subtitle]]
+[[!template text="because for me, it was the key step to" start="00:17:58.400" video="mainVideo" id=subtitle]]
+[[!template text="getting to develop good packages." start="00:18:00.799" video="mainVideo" id=subtitle]]
+[[!template text="It was understanding basically what the code did" start="00:18:03.791" video="mainVideo" id=subtitle]]
+[[!template text="and having us something like" start="00:18:06.160" video="mainVideo" id=subtitle]]
+[[!template text="a REPL (read-evaluate-print-loop)" start="00:18:08.866" video="mainVideo" id=subtitle]]
+[[!template text="that allows you to step through the code" start="00:18:09.919" video="mainVideo" id=subtitle]]
+[[!template text="and see exactly which states" start="00:18:11.760" video="mainVideo" id=subtitle]]
+[[!template text="the variables are at which at this point" start="00:18:13.210" video="mainVideo" id=subtitle]]
+[[!template text="in the program. That's really my biggest advice to you." start="00:18:15.643" video="mainVideo" id=subtitle]]
+[[!template text="Any other question? Thanks. Yeah, I see one or two more." start="00:18:21.200" video="mainVideo" id=subtitle]]
+[[!template new="1" text="So there's one. They ask, &quot;How did the freedom of Emacs help you on your way?&quot;" start="00:18:26.160" video="mainVideo" id=subtitle]]
+[[!template text="So the freedom of Emacs..." start="00:18:33.120" video="mainVideo" id=subtitle]]
+[[!template text="I mentioned that Emacs, for me, was my gateway" start="00:18:35.507" video="mainVideo" id=subtitle]]
+[[!template text="into free software" start="00:18:38.080" video="mainVideo" id=subtitle]]
+[[!template text="and the freedom of Emacs" start="00:18:39.216" video="mainVideo" id=subtitle]]
+[[!template text="was that you could maybe..." start="00:18:40.652" video="mainVideo" id=subtitle]]
+[[!template text="First and foremost," start="00:18:42.551" video="mainVideo" id=subtitle]]
+[[!template text="compared to other software," start="00:18:43.840" video="mainVideo" id=subtitle]]
+[[!template text="was that you had behind Emacs, Elisp," start="00:18:46.385" video="mainVideo" id=subtitle]]
+[[!template text="which allows you to read the code," start="00:18:49.003" video="mainVideo" id=subtitle]]
+[[!template text="read whatever is going on in the background." start="00:18:51.039" video="mainVideo" id=subtitle]]
+[[!template text="Surely, if you go deep enough," start="00:18:53.039" video="mainVideo" id=subtitle]]
+[[!template text="you'll end up in C functions that you might not be able to read" start="00:18:54.380" video="mainVideo" id=subtitle]]
+[[!template text="if you do not have the experience." start="00:18:58.172" video="mainVideo" id=subtitle]]
+[[!template text="But for Org Mode, which was my gateway into Emacs," start="00:18:59.679" video="mainVideo" id=subtitle]]
+[[!template text="most of it is written in Elisp," start="00:19:03.520" video="mainVideo" id=subtitle]]
+[[!template text="and all the commands have a very verbose name," start="00:19:05.883" video="mainVideo" id=subtitle]]
+[[!template text="like something simple as" start="00:19:08.546" video="mainVideo" id=subtitle]]
+[[!template text="org go to next subtree or" start="00:19:10.080" video="mainVideo" id=subtitle]]
+[[!template text="org go to a parent subtree. You know, things like this." start="00:19:13.440" video="mainVideo" id=subtitle]]
+[[!template text="It's so elegant. It's verbose." start="00:19:16.880" video="mainVideo" id=subtitle]]
+[[!template text="That's a sense of freedom" start="00:19:20.240" video="mainVideo" id=subtitle]]
+[[!template text="insofar as you can go into the code and see," start="00:19:22.799" video="mainVideo" id=subtitle]]
+[[!template text="oh, okay, that's how it's implemented." start="00:19:24.491" video="mainVideo" id=subtitle]]
+[[!template text="I believe in a way that's the freedom" start="00:19:26.160" video="mainVideo" id=subtitle]]
+[[!template text="and the liberty that is given to you" start="00:19:28.640" video="mainVideo" id=subtitle]]
+[[!template text="to look into the code" start="00:19:30.264" video="mainVideo" id=subtitle]]
+[[!template text="is something that invites you" start="00:19:31.600" video="mainVideo" id=subtitle]]
+[[!template text="to do the same with your life." start="00:19:32.670" video="mainVideo" id=subtitle]]
+[[!template text="As someone who does a little bit of philosophy on the side," start="00:19:34.460" video="mainVideo" id=subtitle]]
+[[!template text="I believe it's a very healthy message" start="00:19:36.776" video="mainVideo" id=subtitle]]
+[[!template text="to be gathering from a piece of software." start="00:19:38.799" video="mainVideo" id=subtitle]]
+[[!template new="1" text="(Amin: Awesome, thank you." start="00:19:42.320" video="mainVideo" id=subtitle]]
+[[!template text="Let's see... So we have..." start="00:19:45.440" video="mainVideo" id=subtitle]]
+[[!template text="I think I saw another question pop up.)" start="00:19:50.960" video="mainVideo" id=subtitle]]
+[[!template text="I'm not sure how we're doing as far" start="00:19:57.200" video="mainVideo" id=subtitle]]
+[[!template text="as time is concerned... I believe we" start="00:19:58.559" video="mainVideo" id=subtitle]]
+[[!template text="have like one or two minutes more." start="00:19:59.760" video="mainVideo" id=subtitle]]
+[[!template text="(Amin: Yeah, actually, we're quite a bit" start="00:20:02.080" video="mainVideo" id=subtitle]]
+[[!template text="ahead of the schedule, so if we take a" start="00:20:04.240" video="mainVideo" id=subtitle]]
+[[!template text="little bit longer, we're fine." start="00:20:05.679" video="mainVideo" id=subtitle]]
+[[!template text="If you do have more questions, please do.)" start="00:20:07.840" video="mainVideo" id=subtitle]]
+[[!template text="I'm just sorry that my video is not working anymore." start="00:20:10.225" video="mainVideo" id=subtitle]]
+[[!template text="(Amin: No problem. Someone was actually saying..." start="00:20:12.880" video="mainVideo" id=subtitle]]
+[[!template text="What's the most recent... Actually, yeah well before that." start="00:20:17.120" video="mainVideo" id=subtitle]]
+[[!template new="1" text="&quot;Please show off your three-piece suit before you end your talk," start="00:20:24.159" video="mainVideo" id=subtitle]]
+[[!template text="which requires fixing your frozen camera." start="00:20:27.440" video="mainVideo" id=subtitle]]
+[[!template text="If this is not possible," start="00:20:30.080" video="mainVideo" id=subtitle]]
+[[!template text="please post suit selfies in an easily accessible location.&quot;" start="00:20:31.306" video="mainVideo" id=subtitle]]
+[[!template text="Okay, I'll make sure to do this." start="00:20:36.240" video="mainVideo" id=subtitle]]
+[[!template text="But yes, I wanted to hype things up for the conference," start="00:20:38.143" video="mainVideo" id=subtitle]]
+[[!template text="so yes, I did get the three-piece suit out." start="00:20:41.200" video="mainVideo" id=subtitle]]
+[[!template text="I'm very glad you like it." start="00:20:43.039" video="mainVideo" id=subtitle]]
+[[!template text="By the way, when you get" start="00:20:44.563" video="mainVideo" id=subtitle]]
+[[!template text="a chance to see me live again," start="00:20:45.919" video="mainVideo" id=subtitle]]
+[[!template text="do appreciate that my tie has both the" start="00:20:47.760" video="mainVideo" id=subtitle]]
+[[!template text="colors of Emacs purple" start="00:20:50.080" video="mainVideo" id=subtitle]]
+[[!template text="and also Org Mode green." start="00:20:51.280" video="mainVideo" id=subtitle]]
+[[!template text="It took me a while to find this one," start="00:20:53.679" video="mainVideo" id=subtitle]]
+[[!template text="so I hope you will appreciate this." start="00:20:55.556" video="mainVideo" id=subtitle]]
+[[!template new="1" text="(Amin: Awesome. Let's see." start="00:21:00.840" video="mainVideo" id=subtitle]]
+[[!template text="We have one other question. &quot;What's the" start="00:21:03.094" video="mainVideo" id=subtitle]]
+[[!template text="most recent Emacs package or tool that" start="00:21:06.880" video="mainVideo" id=subtitle]]
+[[!template text="you've discovered that you've added to your repertoire?&quot;)" start="00:21:08.960" video="mainVideo" id=subtitle]]
+[[!template text="Very interesting question." start="00:21:14.480" video="mainVideo" id=subtitle]]
+[[!template text="The thing is, when you've spent as long as I have on Emacs--" start="00:21:17.600" video="mainVideo" id=subtitle]]
+[[!template text="and I know that I've only spent" start="00:21:22.614" video="mainVideo" id=subtitle]]
+[[!template text="eight years and some of you" start="00:21:23.919" video="mainVideo" id=subtitle]]
+[[!template text="might have spent maybe 10, 20," start="00:21:25.120" video="mainVideo" id=subtitle]]
+[[!template text="maybe even more years on Emacs--" start="00:21:27.901" video="mainVideo" id=subtitle]]
+[[!template text="but for me, I believe the coolest neat trick that I found in Emacs" start="00:21:30.000" video="mainVideo" id=subtitle]]
+[[!template text="was a mode which is called beacon-mode." start="00:21:34.926" video="mainVideo" id=subtitle]]
+[[!template text="It's something that allows you to show" start="00:21:40.080" video="mainVideo" id=subtitle]]
+[[!template text="when you're jumping between buffers" start="00:21:43.679" video="mainVideo" id=subtitle]]
+[[!template text="or when you're dropping between windows," start="00:21:45.006" video="mainVideo" id=subtitle]]
+[[!template text="it shows exactly where your point is in that buffer" start="00:21:46.960" video="mainVideo" id=subtitle]]
+[[!template text="by making a slight ray of light which looks like a beacon, hence the name." start="00:21:50.681" video="mainVideo" id=subtitle]]
+[[!template text="It really helps you navigate buffers" start="00:21:55.440" video="mainVideo" id=subtitle]]
+[[!template text="because it always shows" start="00:21:57.760" video="mainVideo" id=subtitle]]
+[[!template text="in a very visual way where your point is." start="00:21:58.986" video="mainVideo" id=subtitle]]
+[[!template text="I'll get a chance to show this to you later today" start="00:22:01.760" video="mainVideo" id=subtitle]]
+[[!template text="when I'll be presenting my other talks." start="00:22:04.640" video="mainVideo" id=subtitle]]
+[[!template new="1" text="(Amin: Awesome. We have one question from Jonas, the maintainer of Magit." start="00:22:10.159" video="mainVideo" id=subtitle]]
+[[!template text="He asks, &quot;When you touched your webcam," start="00:22:20.880" video="mainVideo" id=subtitle]]
+[[!template text="that blew a fuse at my place." start="00:22:25.128" video="mainVideo" id=subtitle]]
+[[!template text="How did you do that?&quot;)" start="00:22:26.880" video="mainVideo" id=subtitle]]
+[[!template text="Well, I'm very sorry, Jonas," start="00:22:29.760" video="mainVideo" id=subtitle]]
+[[!template text="that it happened to you, but I'll make sure not to touch my webcam again." start="00:22:31.242" video="mainVideo" id=subtitle]]
+[[!template text="(Amin: Do we have any other questions?)" start="00:22:36.960" video="mainVideo" id=subtitle]]
+[[!template text="I have to trust you on this one." start="00:22:41.600" video="mainVideo" id=subtitle]]
+[[!template text="I'm really sorry. Everything is frozen on my end." start="00:22:43.919" video="mainVideo" id=subtitle]]
+[[!template new="1" text="(Amin: No problem.) Yeah I'm more talking to the audience, I guess." start="00:22:46.960" video="mainVideo" id=subtitle]]
+[[!template text="I hope my lack of slides didn't bother you." start="00:22:51.520" video="mainVideo" id=subtitle]]
+[[!template text="I really wanted to have this verbose time with people," start="00:22:56.018" video="mainVideo" id=subtitle]]
+[[!template text="to be able to..." start="00:23:00.481" video="mainVideo" id=subtitle]]
+[[!template text="It's a message that I've been trying" start="00:23:01.600" video="mainVideo" id=subtitle]]
+[[!template text="to share with as many people as possible." start="00:23:04.880" video="mainVideo" id=subtitle]]
+[[!template text="In France, we do have an Emacs workshop" start="00:23:08.640" video="mainVideo" id=subtitle]]
+[[!template text="that we have on a monthly basis." start="00:23:11.760" video="mainVideo" id=subtitle]]
+[[!template text="I've been learning a lot" start="00:23:14.159" video="mainVideo" id=subtitle]]
+[[!template text="with those people and I felt like" start="00:23:16.000" video="mainVideo" id=subtitle]]
+[[!template text="doing the same with Emacs conference" start="00:23:18.960" video="mainVideo" id=subtitle]]
+[[!template text="would be good. That's why I'm really happy," start="00:23:20.400" video="mainVideo" id=subtitle]]
+[[!template text="and I'm really lucky to have had" start="00:23:22.713" video="mainVideo" id=subtitle]]
+[[!template text="the chance to do this today." start="00:23:24.000" video="mainVideo" id=subtitle]]
+[[!template text="I hope some of you, I've convinced you" start="00:23:26.418" video="mainVideo" id=subtitle]]
+[[!template text="of climbing up a step on a ladder" start="00:23:29.200" video="mainVideo" id=subtitle]]
+[[!template text="or making a step in a journey." start="00:23:31.472" video="mainVideo" id=subtitle]]
+[[!template text="(Amin: Absolutely. Thank you so much, Leo." start="00:23:34.480" video="mainVideo" id=subtitle]]
+[[!template text="I happen to completely agree" start="00:23:38.080" video="mainVideo" id=subtitle]]
+[[!template text="with your not necessarily using a slide" start="00:23:41.279" video="mainVideo" id=subtitle]]
+[[!template text="when it's not really needed" start="00:23:43.600" video="mainVideo" id=subtitle]]
+[[!template text="and to help give some face-to-face time" start="00:23:45.600" video="mainVideo" id=subtitle]]
+[[!template text="with the audience." start="00:23:49.200" video="mainVideo" id=subtitle]]
+[[!template text="Unfortunately, your webcam cut out," start="00:23:50.685" video="mainVideo" id=subtitle]]
+[[!template text="but I mean before that.)" start="00:23:52.923" video="mainVideo" id=subtitle]]
+[[!template text="Yes, I'll make sure to fix the problems later on," start="00:23:55.200" video="mainVideo" id=subtitle]]
+[[!template text="so don't worry about it." start="00:23:57.914" video="mainVideo" id=subtitle]]
+[[!template text="(Amin: Awesome. Alrighty. I guess we're" start="00:23:59.679" video="mainVideo" id=subtitle]]
+[[!template text="wrapping up for your talk and getting ready for the next talk.)" start="00:24:02.240" video="mainVideo" id=subtitle]]
+[[!template text="Sure. Well, thank you so much." start="00:24:08.000" video="mainVideo" id=subtitle]]
+[[!template text="I'll see you all later, I suppose!" start="00:24:09.538" video="mainVideo" id=subtitle]]
+[[!template text="(Amin: Sounds good. Thank you again, Leo. Bye-bye)" start="00:24:11.760" video="mainVideo" id=subtitle]]
diff --git a/2020/info/03.md b/2020/info/03.md
index 07ae6b4f..2eaa404e 100644
--- a/2020/info/03.md
+++ b/2020/info/03.md
@@ -4,8 +4,9 @@ Bala Ramadurai
[[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--03-idea-to-novel-superstructure-emacs-for-writing--bala-ramadurai.webm" subtitles="/2020/subtitles/emacsconf-2020--03-idea-to-novel-superstructure-emacs-for-writing--bala-ramadurai.vtt"]]
[Download compressed .webm video (8.1M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--03-idea-to-novel-superstructure-emacs-for-writing--bala-ramadurai--vp9-q56-video-original-audio.webm)
-[[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--03-idea-to-novel-superstructure-emacs-for-writing--questions--bala-ramadurai.webm" download="Download Q&A .webm video, 720p"]]
-[Download compressed Q&A .webm video (10.3M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--03-idea-to-novel-superstructure-emacs-for-writing--questions--bala-ramadurai--vp9-q56-video-original-audio.webm)
+[[!template id=vid vidid="qnaVideo" src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--03-idea-to-novel-superstructure-emacs-for-writing--questions--bala-ramadurai.webm" download="Download Q&A .webm video, 720p" subtitles="/2020/subtitles/emacsconf-2020--03-idea-to-novel-superstructure-emacs-for-writing--questions--bala-ramadurai.vtt"]]
+[Download compressed Q&A .webm video (10.3M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--03-idea-to-novel-superstructure-emacs-for-writing--questions--bala-ramadurai--vp9-q56-video-original-audio.webm)
+[View transcript](#transcript-questions)
You want to write a novel, but you don't know how to create an
outline. You have a seed idea for a novel, and you intend to expand
@@ -99,3 +100,151 @@ We will use:
- Uses pandoc to export from org
- Author of Karmic Design Thinking (<https://dt.balaramadurai.net/>)
- Uses Spacemacs
+
+<a name="transcript-questions"></a>
+# Transcript (questions)
+
+[[!template new="1" id=subtitle video="qnaVideo" start="00:00:00.000" text="I have the pad open. So, I can start."]]
+
+[[!template new="1" id=subtitle video="qnaVideo" start="00:00:05.333" text="Do you have occasions to use Emacs for multilingual text composition?"]]
+[[!template id=subtitle video="qnaVideo" start="00:00:11.333" text="How do you deal with spell-checking?"]]
+[[!template id=subtitle video="qnaVideo" start="00:00:15.333" text="I have written only in English. For English, Emacs works great."]]
+[[!template id=subtitle video="qnaVideo" start="00:00:15.333" text="Spell-check works great."]]
+[[!template id=subtitle video="qnaVideo" start="00:00:23.767" text="I have not used it for any other languages."]]
+[[!template id=subtitle video="qnaVideo" start="00:00:29.300" text="I have indeed tried local South Indian language, but only the script"]]
+[[!template id=subtitle video="qnaVideo" start="00:00:40.333" text="I could get, but not the spell-checker, really. I've not really figured it out."]]
+[[!template id=subtitle video="qnaVideo" start="00:00:47.567" text="So that was my trial to answer the first question."]]
+
+[[!template new="1" id=subtitle video="qnaVideo" start="00:00:51.067" text="The second question is: &quot;is it possible to align the subcolumns"]]
+[[!template id=subtitle video="qnaVideo" start="00:00:57.031" text="and headings and subheadings?&quot;"]]
+[[!template id=subtitle video="qnaVideo" start="00:00:59.967" text="Oh boy. That's a good one. I actually felt the lack of having the..."]]
+[[!template id=subtitle video="qnaVideo" start="00:01:04.967" text="The theme I had was great for... It looked like a novel"]]
+[[!template id=subtitle video="qnaVideo" start="00:01:11.100" text="when I'm typing on the novel itself,"]]
+[[!template id=subtitle video="qnaVideo" start="00:01:14.533" text="but when I expand into the subtrees,"]]
+[[!template id=subtitle video="qnaVideo" start="00:01:19.800" text="it sort of goes haywire. It's a bit hacky."]]
+[[!template id=subtitle video="qnaVideo" start="00:01:22.233" text="You can probably switch to a monospace font,"]]
+[[!template id=subtitle video="qnaVideo" start="00:01:24.900" text="and that works better than"]]
+[[!template id=subtitle video="qnaVideo" start="00:01:27.133" text="the font that I have demoed it."]]
+[[!template id=subtitle video="qnaVideo" start="00:01:30.967" text="You can perhaps try monospace font"]]
+[[!template id=subtitle video="qnaVideo" start="00:01:36.033" text="and it should work, I think,"]]
+[[!template id=subtitle video="qnaVideo" start="00:01:37.700" text="as far as I know."]]
+[[!template id=subtitle video="qnaVideo" start="00:01:39.600" text="So, that's the second question."]]
+
+[[!template new="1" id=subtitle video="qnaVideo" start="00:01:42.667" text="The third question is maybe there should be an Emacs for Writing"]]
+[[!template id=subtitle video="qnaVideo" start="00:01:47.600" text="mailing list, an online writer's workshop?"]]
+[[!template id=subtitle video="qnaVideo" start="00:01:50.433" text="This is a great one."]]
+[[!template id=subtitle video="qnaVideo" start="00:01:51.300" text="I have conducted an online writer's workshop"]]
+[[!template id=subtitle video="qnaVideo" start="00:01:54.433" text="here in India. Of course, it wasn't"]]
+[[!template id=subtitle video="qnaVideo" start="00:01:58.000" text="an Emacs-focused workshop. We used Notion as the tool. It worked pretty good."]]
+[[!template id=subtitle video="qnaVideo" start="00:02:05.467" text="for people who are not aware of Emacs and how to use Emacs, the keystrokes,"]]
+[[!template id=subtitle video="qnaVideo" start="00:02:12.633" text="the fact that I wasn't using the mouse unnerved them."]]
+[[!template id=subtitle video="qnaVideo" start="00:02:16.200" text="It was a scary experience for most people."]]
+[[!template id=subtitle video="qnaVideo" start="00:02:19.267" text="I had to switch to Notion."]]
+[[!template id=subtitle video="qnaVideo" start="00:02:22.333" text="People used that as a template"]]
+[[!template id=subtitle video="qnaVideo" start="00:02:23.567" text="and then they could type it out."]]
+[[!template id=subtitle video="qnaVideo" start="00:02:28.233" text="It wasn't my perfect experience. I liked the Emacs Org Mode experience much better."]]
+
+[[!template new="1" id=subtitle video="qnaVideo" start="00:02:33.633" text="The next question is, &quot;How do you share drafts of your novel?"]]
+[[!template id=subtitle video="qnaVideo" start="00:02:41.300" text="If you use pandoc to export to Word, etc., how do you incorporate feedback"]]
+[[!template id=subtitle video="qnaVideo" start="00:02:44.867" text="on the document back into Org?&quot;"]]
+[[!template id=subtitle video="qnaVideo" start="00:02:46.867" text="Thank you for the kind words."]]
+[[!template id=subtitle video="qnaVideo" start="00:02:50.767" text="Yes, it is a problem."]]
+[[!template id=subtitle video="qnaVideo" start="00:02:53.100" text="This is my ??, and I have a dedication to Spacemacs also and the Emacs Org Mode"]]
+[[!template id=subtitle video="qnaVideo" start="00:03:02.033" text="community in there. I don't know if you can see it."]]
+[[!template id=subtitle video="qnaVideo" start="00:03:04.433" text="Probably not."]]
+[[!template id=subtitle video="qnaVideo" start="00:03:05.467" text="I did export it to Word."]]
+[[!template id=subtitle video="qnaVideo" start="00:03:10.600" text="My editor did complain that there were a whole bunch of things,"]]
+[[!template id=subtitle video="qnaVideo" start="00:03:13.333" text="that it wasn't convenient for her."]]
+[[!template id=subtitle video="qnaVideo" start="00:03:16.633" text="So I tried having the raw Org Mode itself in a DOC embedded,"]]
+[[!template id=subtitle video="qnaVideo" start="00:03:20.933" text="and I will do a copy and paste."]]
+[[!template id=subtitle video="qnaVideo" start="00:03:26.067" text="Didn't work so well either."]]
+[[!template id=subtitle video="qnaVideo" start="00:03:27.867" text="So I'm still on the edge on how do I do this."]]
+[[!template id=subtitle video="qnaVideo" start="00:03:31.267" text="Should I train my editor to use Org Mode"]]
+[[!template id=subtitle video="qnaVideo" start="00:03:34.933" text="in Gitlab or one of those"]]
+[[!template id=subtitle video="qnaVideo" start="00:03:37.167" text="other tools, which is not a great experience?"]]
+[[!template id=subtitle video="qnaVideo" start="00:03:39.833" text="But... I don't know. It could be tricky for working with people"]]
+[[!template id=subtitle video="qnaVideo" start="00:03:47.633" text="who are not well-versed with Emacs."]]
+[[!template id=subtitle video="qnaVideo" start="00:03:50.867" text="Pandoc is very, very useful in converting it to PDF"]]
+[[!template id=subtitle video="qnaVideo" start="00:04:02.000" text="and integrating it with LaTeX, the styling, formatting into e-reader,"]]
+[[!template id=subtitle video="qnaVideo" start="00:04:02.000" text="EPUB format. For all that, Pandoc works great. You can customize it"]]
+[[!template id=subtitle video="qnaVideo" start="00:04:13.133" text="and of course there's a lot of support in the community"]]
+[[!template id=subtitle video="qnaVideo" start="00:04:16.233" text="for any style changes that you want to make, any images that you want to add."]]
+[[!template id=subtitle video="qnaVideo" start="00:04:20.133" text="It works great."]]
+[[!template id=subtitle video="qnaVideo" start="00:04:22.967" text="That was my trial to answer the pandoc question."]]
+
+[[!template new="1" id=subtitle video="qnaVideo" start="00:04:28.367" text="&quot;Can you show exported PDF of any of your novels?&quot;"]]
+[[!template id=subtitle video="qnaVideo" start="00:04:35.100" text="Unfortunately, it's still not published, so I'm..."]]
+[[!template id=subtitle video="qnaVideo" start="00:04:38.600" text="I will put it and share it on the community,"]]
+[[!template id=subtitle video="qnaVideo" start="00:04:42.067" text="or part of this in the schedule itself. Thank you for the question."]]
+[[!template id=subtitle video="qnaVideo" start="00:04:48.067" text="Unfortunately, it's not yet published, so I'm unable to publish the exported PDF."]]
+[[!template id=subtitle video="qnaVideo" start="00:04:55.000" text="But I'll make a test of an open-source novel that I'm working on"]]
+[[!template id=subtitle video="qnaVideo" start="00:05:01.300" text="I will definitely publish that so that you can see"]]
+[[!template id=subtitle video="qnaVideo" start="00:05:05.767" text="how it works also."]]
+
+[[!template new="1" id=subtitle video="qnaVideo" start="00:05:10.433" text="Can you text-wrap in the columns?"]]
+[[!template id=subtitle video="qnaVideo" start="00:05:13.167" text="I have not found a way to do text-wrap in the columns."]]
+[[!template id=subtitle video="qnaVideo" start="00:05:19.667" text="That only shows my limitation in config setup,"]]
+[[!template id=subtitle video="qnaVideo" start="00:05:23.633" text="but I'm sure people can figure this out"]]
+[[!template id=subtitle video="qnaVideo" start="00:05:27.033" text="That's a good one. I would have loved to have it."]]
+[[!template id=subtitle video="qnaVideo" start="00:05:29.900" text="Every time I want to write more on the headline,"]]
+[[!template id=subtitle video="qnaVideo" start="00:05:34.000" text="I would get out of the column-view mode and I would do the typing and expand it,"]]
+[[!template id=subtitle video="qnaVideo" start="00:05:42.467" text="and then come back into the column view when I want to set the other meta parameters."]]
+[[!template id=subtitle video="qnaVideo" start="00:05:46.700" text="So that's how I manage without the text-wrapping feature built into column."]]
+[[!template id=subtitle video="qnaVideo" start="00:05:54.133" text="But I think it's a great idea to have text wrap."]]
+
+[[!template new="1" id=subtitle video="qnaVideo" start="00:05:58.000" text="Did I leave out any questions? I don't think so."]]
+[[!template id=subtitle video="qnaVideo" start="00:06:05.333" text="Amin: I think there's at least one question on IRC,"]]
+[[!template id=subtitle video="qnaVideo" start="00:06:10.600" text="which I shall read to you."]]
+[[!template id=subtitle video="qnaVideo" start="00:06:14.500" text="Bala: Please, can you do that? Thank you."]]
+
+[[!template new="1" id=subtitle video="qnaVideo" start="00:06:17.300" text="Amin: So they asked, &quot;How do you collaborate with others while writing your novel?"]]
+[[!template id=subtitle video="qnaVideo" start="00:06:21.278" text="For example, sharing your file and getting feedback.&quot;"]]
+[[!template id=subtitle video="qnaVideo" start="00:06:28.100" text="Okay. Good question. So far, I have used... Let's see..."]]
+[[!template id=subtitle video="qnaVideo" start="00:06:37.100" text="What did I use... This is a crazy hack."]]
+[[!template id=subtitle video="qnaVideo" start="00:06:40.833" text="But it's a long-winded way of..."]]
+[[!template id=subtitle video="qnaVideo" start="00:06:44.667" text="Right now we're working on an e-book for sustainability"]]
+[[!template id=subtitle video="qnaVideo" start="00:06:50.300" text="and kids contribute their stories into this long Org Mode file"]]
+[[!template id=subtitle video="qnaVideo" start="00:06:57.767" text="and I want my editors to see it"]]
+[[!template id=subtitle video="qnaVideo" start="00:07:00.233" text="so what we have done, actually, is with the tags and all that, I have actually"]]
+[[!template id=subtitle video="qnaVideo" start="00:07:05.333" text="pasted it into Google Docs"]]
+[[!template id=subtitle video="qnaVideo" start="00:07:08.167" text="so that my collaborators and"]]
+[[!template id=subtitle video="qnaVideo" start="00:07:11.833" text="editors can see it."]]
+[[!template id=subtitle video="qnaVideo" start="00:07:14.000" text="That's my current solution. It's not elegant."]]
+[[!template id=subtitle video="qnaVideo" start="00:07:16.667" text="I'm trying to see if I can use Python code to make the copy and paste work,"]]
+[[!template id=subtitle video="qnaVideo" start="00:07:23.900" text="but it's not so elegant for now."]]
+[[!template id=subtitle video="qnaVideo" start="00:07:26.900" text="I don't know how to work this out,"]]
+[[!template id=subtitle video="qnaVideo" start="00:07:28.933" text="but this is my hack. That is,"]]
+[[!template id=subtitle video="qnaVideo" start="00:07:31.100" text="the entire Org Mode text, I would paste it into"]]
+[[!template id=subtitle video="qnaVideo" start="00:07:34.300" text="Google Docs"]]
+[[!template id=subtitle video="qnaVideo" start="00:07:35.433" text="so that my collaborators and editors"]]
+[[!template id=subtitle video="qnaVideo" start="00:07:37.700" text="can see it. Whenever they edit it, I ask them not to make any changes"]]
+[[!template id=subtitle video="qnaVideo" start="00:07:41.667" text="to the Org Mode tags."]]
+[[!template id=subtitle video="qnaVideo" start="00:07:43.500" text="So just copy the entire text"]]
+[[!template id=subtitle video="qnaVideo" start="00:07:45.633" text="and put it back into my Org Mode file"]]
+[[!template id=subtitle video="qnaVideo" start="00:07:51.167" text="and export it using Pandoc into a PDF"]]
+[[!template id=subtitle video="qnaVideo" start="00:07:53.300" text="and since it's synced to Google Drive"]]
+[[!template id=subtitle video="qnaVideo" start="00:07:56.000" text="it shows up in the Google Drive"]]
+[[!template id=subtitle video="qnaVideo" start="00:07:58.600" text="and then the collaborators can see the PDF/EPUB"]]
+[[!template id=subtitle video="qnaVideo" start="00:08:03.633" text="if they want to open it up"]]
+[[!template id=subtitle video="qnaVideo" start="00:08:05.333" text="in their own space."]]
+[[!template id=subtitle video="qnaVideo" start="00:08:06.200" text="It's very very hacky and I think primitive, Stone Age sort of solution."]]
+[[!template id=subtitle video="qnaVideo" start="00:08:11.467" text="I did see a Python solution."]]
+[[!template id=subtitle video="qnaVideo" start="00:08:15.567" text="to at least help me with the copying and paste."]]
+[[!template id=subtitle video="qnaVideo" start="00:08:18.967" text="I'm still working on how do I convert this."]]
+[[!template id=subtitle video="qnaVideo" start="00:08:21.574" text="Interconvertability is driving me nuts."]]
+[[!template id=subtitle video="qnaVideo" start="00:08:24.300" text="I think most of the questions"]]
+[[!template id=subtitle video="qnaVideo" start="00:08:26.533" text="are around interconvertability."]]
+[[!template id=subtitle video="qnaVideo" start="00:08:29.333" text="This is sort of what I have right now."]]
+
+[[!template new="1" id=subtitle video="qnaVideo" start="00:08:34.767" text="Any other questions, Amin,"]]
+[[!template id=subtitle video="qnaVideo" start="00:08:37.567" text="on IRC or not?"]]
+[[!template id=subtitle video="qnaVideo" start="00:08:40.233" text="Amin: Let's see. I think that's about it."]]
+[[!template id=subtitle video="qnaVideo" start="00:08:46.433" text="Bala: Okay. Cool. That was fun."]]
+[[!template id=subtitle video="qnaVideo" start="00:08:50.033" text="Thank you so much to"]]
+[[!template id=subtitle video="qnaVideo" start="00:08:51.833" text="the organizers of Emacs conference,"]]
+[[!template id=subtitle video="qnaVideo" start="00:08:54.577" text="and the community at large,"]]
+[[!template id=subtitle video="qnaVideo" start="00:08:57.100" text="the Org Mode community and the Emacs community for helping me out."]]
+[[!template id=subtitle video="qnaVideo" start="00:09:01.303" text="Thank you so much."]]
+[[!template id=subtitle video="qnaVideo" start="00:09:02.900" text="Thanks for the opportunity as well."]]
+[[!template id=subtitle video="qnaVideo" start="00:09:05.233" text="Amin: And thank you, Bala, for your awesome talk."]]
+[[!template id=subtitle video="qnaVideo" start="00:09:07.300" text="Bala: Thanks. Thanks a lot, Amin."]]
diff --git a/2020/info/04.md b/2020/info/04.md
index 303cb2a0..e80e7518 100644
--- a/2020/info/04.md
+++ b/2020/info/04.md
@@ -1,7 +1,7 @@
# Music in Plain Text
Jonathan Gregory
-[[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--04-music-in-plain-text--jonathan-gregory.webm" subtitles="/2020/subtitles/emacsconf-2020--04-music-in-plain-text--jonathan-gregory.vtt"]]
+[[!template id=vid vidid=mainVideo src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--04-music-in-plain-text--jonathan-gregory.webm" subtitles="/2020/subtitles/emacsconf-2020--04-music-in-plain-text--jonathan-gregory.vtt"]]
[Download compressed .webm video (13.8M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--04-music-in-plain-text--jonathan-gregory--vp9-q56-video-original-audio.webm)
[View transcript](#transcript)
@@ -68,113 +68,171 @@ No.
<a name="transcript"></a>
# Transcript
-Hello, everyone, and welcome to the EmacsConf. I am Jonathan. In this
-talk, I'm going to demonstrate ways of producing sheet music in Emacs
-using Lilypond, and maybe also convince you to use Emacs for writing
-your scores. I'll start with an overview of the syntax for those who
-are new to using text-based notation as a shallow dive into the deep
-pond of lilies and Lilypond, and move on to showcase some of its
-functionalities using Org Mode and lilypond-mode. One disclaimer,
-however: I am not a Lilypond developer.
-
-(00:40) So what is Lilypond? Lilypond is a file format and music engraving
-system for producing high-quality sheet music. It translates textual
-representations of music to graphical objects. It's similar to LaTeX
-in that its input format describes the visual layouts of the score,
-using commands to define musical expressions. Commands begin with a
-backslash. For example, the formatter command, as shown on the left,
-yields its graphical equivalents on the right, the fermata symbol over
-the low B and so on and so forth. It's also fully extensible, like
-Emacs, allowing users to extend and override Lilypond's
-functionalities using the Scheme scripting language. It can be used
-for early and contemporary music tablature, vocal music lead sheets,
-and so on. Above all, it works with Emacs. In fact, Lilypond ships
-with Emacs Lisp libraries, including a major mode for editing Lilypond
-files.
-
-(01:47) So the input files are similar to source files. They contain
-expressions formed with curly braces, comments that start with the
-percent sign, and the code is indented. Notes are entered using
-lowercase letters, and rests with the letter r. In this case, the
-lowercase r or r4 is the equivalence of a crotchet or quarter note
-rest. Durations are entered using numbers and dots after the note
-name. If you do not specify one, the previous duration is used. You
-can also tie notes together using the tilde symbol (~). In fact, you
-can input chords, lyrics, embellishments, and a lot more. I encourage
-you to read the manual for more information. Now let's switch to a
-terminal window. With Lilypond installed, let's create a test file
-with the extension .ly and open it in Emacs.
-
-(02:50) At the top of the file is the version statement, which tells Lilypond
-which version to use when compiling the file. Here I'm using version
-2.20.0. I've added the clef and time signature. Let's add some notes.
-I'm going to close this now and compile the file by running lilypond
-followed by the file name. So now let's view the output. Okay.
-
-(03:27) So here's a more complex example for randomizing note sequences. The
-idea is to create new reading materials each time the code blocks are
-evaluated. As usual, we begin with a header. I've added the title and
-composer. Then we add the note sequences to use in the composition. In
-this case, sn is a note name just like a b c d and so on, and stands
-for snare drum, the percussion instruments. Now here's a function
-that's going to shuffle the notes in the table. Finally, we expand the
-notes inside the Lilypond source block. So whatever the function
-returns is expanded inside the drums block. Now let's press C-c C-c to
-view the results. Okay. And if I run this again, it should create a
-new composition. Great. You can also audition a piece using the midi
-command, which creates a midi file of the score.
-
-(04:34) Note also that the ob library-- sorry, the ob-lilypond library comes
-with two modes. The one I'm using now is called arrange mode and is
-useful for assembling complete scores. The basic mode on the other
-hand allows you to mix text and music by embedding Lilypond snippets
-and export them using typical Org Mode commands.
-
-(05:00) Now to demonstrate the basic mode in action. I'm going to export this
-document to a PDF file. In this case, the :file header argument is
-required, so you have to provide one and include the file name. Again,
-you can run the code and view the results. Here it is. So now let's
-export this to a PDF file. And here it is, what it generates.
-
-(05:39) Now I'm going to show you the workflow I used to produce music books
-in Emacs, combining Lilypond and LaTeX for a perfect marriage. I begin
-by sketching the first draft of the manuscript using pencil and paper.
-Then I move to Emacs to input the notes in a git repository. This is a
-typical source file. It begins with a stylesheet where I set variables
-and layout settings, although in general, there's no need for tweaking
-the layout unless you have specific requirements to do so. The easiest
-way to compile the file from Emacs is by pressing C-c C-l, so let's do
-this now, and the compilation buffer will tell you if there were any
-errors in the file. Now to automate the process of compiling several
-files and building the PDF, I use GNU Make, so all I have to do is
-open the shell and run the make command. Don't worry, I'll provide a
-link to the source code on the last slide.
-
-(06:41) As I moved forward with the project, I found at least two things
-missing. One, I had no access to a metronome, at least not from the
-editor, so I built one for casual use and made it available in the
-MELPA repository. I also missed bar numbers in the source file. This
-is useful when going back and forth between input and output files
-without getting lost. So I wrote a command for toggling bar numbers,
-which I hope you can see on the left. Also, some expressions are
-difficult or slow to write on the keyboard-- accents and tuplets, for
-example--so I use template expansion extensively for this purpose,
-mainly yasnippet.
-
-(07:23) So what do I think? Well, I think Lilypond can be a
-sharp paradigm shift for people used to GUI alternatives, but the
-results are impressive. You don't have to dive too deeply to start
-using Lilypond. Likewise, the ability to extend the software, I think,
-is especially appealing for music professionals, enthusiasts,
-composers, and the academic community: for example, allowing users to
-create alternative notation systems required in non-Western music
-traditions and other non-conventional requirements. Also, Lilypond and
-Emacs both have extensive and well-written manuals and active
-communities of users. But if you're still not sure where to start and
-when to wedge your feet in the deep but warm pond of lilies, Lilypond,
-and Lilypond users, I invite you to contribute to my Lilypond
-projects, which you can do so from the links on the screen. So, thank
-you all. I look forward to your comments, and I hope you enjoy the
-rest of the conference.
-
-<!-- /transcript -->
+[[!template new="1" text="Hello, everyone, and welcome to the EmacsConf." start="00:00:02.000" video="mainVideo" id=subtitle]]
+[[!template text="I am Jonathan. In this talk," start="00:00:04.799" video="mainVideo" id=subtitle]]
+[[!template text="I'm going to demonstrate ways of producing sheet music in Emacs" start="00:00:06.631" video="mainVideo" id=subtitle]]
+[[!template text="using Lilypond, and maybe also convince you" start="00:00:10.880" video="mainVideo" id=subtitle]]
+[[!template text="to use Emacs for writing your scores." start="00:00:14.636" video="mainVideo" id=subtitle]]
+[[!template text="I'll start with an overview of the syntax" start="00:00:18.640" video="mainVideo" id=subtitle]]
+[[!template text="for those who are new to using" start="00:00:20.698" video="mainVideo" id=subtitle]]
+[[!template text="text-based notation" start="00:00:22.240" video="mainVideo" id=subtitle]]
+[[!template text="as a shallow dive into the deep pond" start="00:00:24.400" video="mainVideo" id=subtitle]]
+[[!template text="of lilies and Lilypond," start="00:00:26.615" video="mainVideo" id=subtitle]]
+[[!template text="and move on to showcase" start="00:00:28.800" video="mainVideo" id=subtitle]]
+[[!template text="some of its functionalities using Org Mode and lilypond-mode." start="00:00:30.171" video="mainVideo" id=subtitle]]
+[[!template text="One disclaimer, however:" start="00:00:34.723" video="mainVideo" id=subtitle]]
+[[!template text="I am not a Lilypond developer." start="00:00:37.173" video="mainVideo" id=subtitle]]
+[[!template new="1" text="So what is Lilypond?" start="00:00:40.480" video="mainVideo" id=subtitle]]
+[[!template text="Lilypond is a file format and music engraving system" start="00:00:42.841" video="mainVideo" id=subtitle]]
+[[!template text="for producing high-quality sheet music." start="00:00:46.800" video="mainVideo" id=subtitle]]
+[[!template text="It translates textual representations" start="00:00:50.000" video="mainVideo" id=subtitle]]
+[[!template text="of music to graphical objects." start="00:00:52.442" video="mainVideo" id=subtitle]]
+[[!template text="It's similar to LaTeX in that" start="00:00:55.120" video="mainVideo" id=subtitle]]
+[[!template text="its input format describes" start="00:00:57.520" video="mainVideo" id=subtitle]]
+[[!template text="the visual layouts of the score," start="00:00:59.329" video="mainVideo" id=subtitle]]
+[[!template text="using commands to define musical expressions." start="00:01:01.600" video="mainVideo" id=subtitle]]
+[[!template text="Commands begin with a backslash." start="00:01:05.119" video="mainVideo" id=subtitle]]
+[[!template text="For example, the formatter command, as shown on the left," start="00:01:07.760" video="mainVideo" id=subtitle]]
+[[!template text="yields its graphical equivalents on the right," start="00:01:10.791" video="mainVideo" id=subtitle]]
+[[!template text="the fermata symbol over the low B" start="00:01:13.920" video="mainVideo" id=subtitle]]
+[[!template text="and so on and so forth." start="00:01:16.345" video="mainVideo" id=subtitle]]
+[[!template text="It's also fully extensible, like Emacs," start="00:01:19.119" video="mainVideo" id=subtitle]]
+[[!template text="allowing users to extend" start="00:01:21.600" video="mainVideo" id=subtitle]]
+[[!template text="and override Lilypond's functionalities" start="00:01:23.119" video="mainVideo" id=subtitle]]
+[[!template text="using the Scheme scripting language." start="00:01:25.600" video="mainVideo" id=subtitle]]
+[[!template text="It can be used for early and contemporary music tablature," start="00:01:28.452" video="mainVideo" id=subtitle]]
+[[!template text="vocal music lead sheets, and so on." start="00:01:32.422" video="mainVideo" id=subtitle]]
+[[!template text="Above all, it works with Emacs." start="00:01:35.200" video="mainVideo" id=subtitle]]
+[[!template text="In fact, Lilypond ships with Emacs Lisp libraries," start="00:01:38.000" video="mainVideo" id=subtitle]]
+[[!template text="including a major mode for editing Lilypond files." start="00:01:41.040" video="mainVideo" id=subtitle]]
+[[!template new="1" text="So the input files are similar to source files." start="00:01:47.360" video="mainVideo" id=subtitle]]
+[[!template text="They contain expressions formed with curly braces," start="00:01:50.560" video="mainVideo" id=subtitle]]
+[[!template text="comments that start with the percent sign," start="00:01:54.079" video="mainVideo" id=subtitle]]
+[[!template text="and the code is indented." start="00:01:56.549" video="mainVideo" id=subtitle]]
+[[!template text="Notes are entered using lowercase letters," start="00:02:00.240" video="mainVideo" id=subtitle]]
+[[!template text="and rests with the letter r." start="00:02:02.903" video="mainVideo" id=subtitle]]
+[[!template text="In this case, the lowercase r or r4" start="00:02:05.600" video="mainVideo" id=subtitle]]
+[[!template text="is the equivalence of a crotchet or" start="00:02:08.800" video="mainVideo" id=subtitle]]
+[[!template text="quarter note rest." start="00:02:11.039" video="mainVideo" id=subtitle]]
+[[!template text="Durations are entered using numbers" start="00:02:14.000" video="mainVideo" id=subtitle]]
+[[!template text="and dots after the note name." start="00:02:15.938" video="mainVideo" id=subtitle]]
+[[!template text="If you do not specify one," start="00:02:18.480" video="mainVideo" id=subtitle]]
+[[!template text="the previous duration is used." start="00:02:20.196" video="mainVideo" id=subtitle]]
+[[!template text="You can also tie notes together using the tilde symbol (~)." start="00:02:22.640" video="mainVideo" id=subtitle]]
+[[!template text="In fact, you can input chords, lyrics," start="00:02:27.360" video="mainVideo" id=subtitle]]
+[[!template text="embellishments, and a lot more." start="00:02:30.000" video="mainVideo" id=subtitle]]
+[[!template text="I encourage you to read the manual for more information." start="00:02:32.080" video="mainVideo" id=subtitle]]
+[[!template text="Now let's switch to a terminal window." start="00:02:36.160" video="mainVideo" id=subtitle]]
+[[!template text="With Lilypond installed," start="00:02:39.680" video="mainVideo" id=subtitle]]
+[[!template text="let's create a test file with the extension .ly and open it in Emacs." start="00:02:41.247" video="mainVideo" id=subtitle]]
+[[!template new="1" text="At the top of the file is the version statement," start="00:02:50.560" video="mainVideo" id=subtitle]]
+[[!template text="which tells Lilypond" start="00:02:53.048" video="mainVideo" id=subtitle]]
+[[!template text="which version to use when compiling the file." start="00:02:54.395" video="mainVideo" id=subtitle]]
+[[!template text="Here I'm using version 2.20.0." start="00:02:57.440" video="mainVideo" id=subtitle]]
+[[!template text="I've added the clef and time signature." start="00:03:00.959" video="mainVideo" id=subtitle]]
+[[!template text="Let's add some notes." start="00:03:04.159" video="mainVideo" id=subtitle]]
+[[!template text="I'm going to close this now" start="00:03:09.280" video="mainVideo" id=subtitle]]
+[[!template text="and compile the file" start="00:03:12.098" video="mainVideo" id=subtitle]]
+[[!template text="by running lilypond followed by the file name." start="00:03:13.765" video="mainVideo" id=subtitle]]
+[[!template text="So now let's view the output." start="00:03:19.760" video="mainVideo" id=subtitle]]
+[[!template new="1" text="Okay. So here's a more complex example" start="00:03:27.360" video="mainVideo" id=subtitle]]
+[[!template text="for randomizing note sequences." start="00:03:29.760" video="mainVideo" id=subtitle]]
+[[!template text="The idea is to create" start="00:03:32.239" video="mainVideo" id=subtitle]]
+[[!template text="new reading materials each time the code blocks are evaluated." start="00:03:33.410" video="mainVideo" id=subtitle]]
+[[!template text="As usual, we begin with a header." start="00:03:37.760" video="mainVideo" id=subtitle]]
+[[!template text="I've added the title and composer." start="00:03:40.640" video="mainVideo" id=subtitle]]
+[[!template text="Then we add the note sequences to use in the composition." start="00:03:43.541" video="mainVideo" id=subtitle]]
+[[!template text="In this case, sn is a note name just like" start="00:03:47.920" video="mainVideo" id=subtitle]]
+[[!template text="a b c d and so on, and stands for snare drum," start="00:03:51.200" video="mainVideo" id=subtitle]]
+[[!template text="the percussion instruments." start="00:03:54.959" video="mainVideo" id=subtitle]]
+[[!template text="Now here's a function that's going to" start="00:03:58.879" video="mainVideo" id=subtitle]]
+[[!template text="shuffle the notes in the table." start="00:04:00.720" video="mainVideo" id=subtitle]]
+[[!template text="Finally, we expand the notes inside" start="00:04:04.080" video="mainVideo" id=subtitle]]
+[[!template text="the Lilypond source block." start="00:04:06.560" video="mainVideo" id=subtitle]]
+[[!template text="So whatever the function returns" start="00:04:08.799" video="mainVideo" id=subtitle]]
+[[!template text="is expanded inside the drums block." start="00:04:10.684" video="mainVideo" id=subtitle]]
+[[!template text="Now let's press C-c C-c to view the results." start="00:04:13.680" video="mainVideo" id=subtitle]]
+[[!template text="Okay. And if I run this again, it should create a new composition." start="00:04:20.079" video="mainVideo" id=subtitle]]
+[[!template text="Great. You can also audition a piece using the midi command," start="00:04:26.840" video="mainVideo" id=subtitle]]
+[[!template text="which creates a midi file of the score." start="00:04:31.360" video="mainVideo" id=subtitle]]
+[[!template new="1" text="Note also that the ob library--" start="00:04:34.320" video="mainVideo" id=subtitle]]
+[[!template text="sorry, the ob-lilypond library comes" start="00:04:36.560" video="mainVideo" id=subtitle]]
+[[!template text="with two modes." start="00:04:39.040" video="mainVideo" id=subtitle]]
+[[!template text="The one I'm using now is called arrange mode" start="00:04:40.400" video="mainVideo" id=subtitle]]
+[[!template text="and is useful for assembling complete scores." start="00:04:43.440" video="mainVideo" id=subtitle]]
+[[!template text="The basic mode, on the other hand," start="00:04:47.120" video="mainVideo" id=subtitle]]
+[[!template text="allows you to mix text and music" start="00:04:49.015" video="mainVideo" id=subtitle]]
+[[!template text="by embedding Lilypond snippets and" start="00:04:51.199" video="mainVideo" id=subtitle]]
+[[!template text="export them using typical Org Mode commands." start="00:04:53.360" video="mainVideo" id=subtitle]]
+[[!template new="1" text="Now to demonstrate the basic mode in action." start="00:05:00.240" video="mainVideo" id=subtitle]]
+[[!template text="I'm going to export this document" start="00:05:02.661" video="mainVideo" id=subtitle]]
+[[!template text="to a PDF file." start="00:05:04.320" video="mainVideo" id=subtitle]]
+[[!template text="In this case, the :file header argument is required," start="00:05:05.120" video="mainVideo" id=subtitle]]
+[[!template text="so you have to provide one" start="00:05:10.077" video="mainVideo" id=subtitle]]
+[[!template text="and include the file name." start="00:05:11.919" video="mainVideo" id=subtitle]]
+[[!template text="Again, you can run the code and view the results." start="00:05:15.600" video="mainVideo" id=subtitle]]
+[[!template text="Here it is. So now let's export this to a PDF file." start="00:05:22.160" video="mainVideo" id=subtitle]]
+[[!template text="And here it is, what it generates." start="00:05:33.680" video="mainVideo" id=subtitle]]
+[[!template new="1" text="Now I'm going to show you the workflow I used" start="00:05:39.680" video="mainVideo" id=subtitle]]
+[[!template text="to produce music books in Emacs," start="00:05:41.716" video="mainVideo" id=subtitle]]
+[[!template text="combining Lilypond and LaTeX for a" start="00:05:44.000" video="mainVideo" id=subtitle]]
+[[!template text="perfect marriage." start="00:05:46.160" video="mainVideo" id=subtitle]]
+[[!template text="I begin by sketching the first draft" start="00:05:48.000" video="mainVideo" id=subtitle]]
+[[!template text="of the manuscript using pencil and paper." start="00:05:49.858" video="mainVideo" id=subtitle]]
+[[!template text="Then I move to Emacs to input the notes" start="00:05:53.039" video="mainVideo" id=subtitle]]
+[[!template text="in a git repository." start="00:05:55.039" video="mainVideo" id=subtitle]]
+[[!template text="This is a typical source file." start="00:05:57.440" video="mainVideo" id=subtitle]]
+[[!template text="It begins with a stylesheet" start="00:05:59.486" video="mainVideo" id=subtitle]]
+[[!template text="where I set variables and layout settings," start="00:06:01.360" video="mainVideo" id=subtitle]]
+[[!template text="although in general," start="00:06:03.690" video="mainVideo" id=subtitle]]
+[[!template text="there's no need for tweaking the layout" start="00:06:04.875" video="mainVideo" id=subtitle]]
+[[!template text="unless you have specific requirements to do so." start="00:06:07.039" video="mainVideo" id=subtitle]]
+[[!template text="The easiest way to compile the file from Emacs is by pressing C-c C-l," start="00:06:11.199" video="mainVideo" id=subtitle]]
+[[!template text="so let's do this now," start="00:06:15.520" video="mainVideo" id=subtitle]]
+[[!template text="and the compilation buffer will tell you" start="00:06:19.280" video="mainVideo" id=subtitle]]
+[[!template text="if there were any errors in the file." start="00:06:21.199" video="mainVideo" id=subtitle]]
+[[!template text="Now to automate the process of" start="00:06:23.759" video="mainVideo" id=subtitle]]
+[[!template text="compiling several files and building the PDF," start="00:06:25.439" video="mainVideo" id=subtitle]]
+[[!template text="I use GNU Make, so all I have to do is" start="00:06:28.560" video="mainVideo" id=subtitle]]
+[[!template text="open the shell and run the make command. Don't worry," start="00:06:31.280" video="mainVideo" id=subtitle]]
+[[!template text="I'll provide a link to the source code" start="00:06:36.000" video="mainVideo" id=subtitle]]
+[[!template text="on the last slide." start="00:06:37.840" video="mainVideo" id=subtitle]]
+[[!template new="1" text="As I moved forward with the project," start="00:06:41.600" video="mainVideo" id=subtitle]]
+[[!template text="I found at least two things missing." start="00:06:43.494" video="mainVideo" id=subtitle]]
+[[!template text="One, I had no access to a metronome," start="00:06:46.000" video="mainVideo" id=subtitle]]
+[[!template text="at least not from the editor," start="00:06:48.720" video="mainVideo" id=subtitle]]
+[[!template text="so I built one for casual use" start="00:06:50.479" video="mainVideo" id=subtitle]]
+[[!template text="and made it available in the MELPA repository." start="00:06:52.437" video="mainVideo" id=subtitle]]
+[[!template text="I also missed bar numbers in the source file." start="00:06:55.919" video="mainVideo" id=subtitle]]
+[[!template text="This is useful when going back and forth" start="00:06:59.039" video="mainVideo" id=subtitle]]
+[[!template text="between input and output files without getting lost." start="00:07:00.880" video="mainVideo" id=subtitle]]
+[[!template text="So I wrote a command for toggling bar numbers," start="00:07:04.479" video="mainVideo" id=subtitle]]
+[[!template text="which I hope you can see on the left." start="00:07:07.290" video="mainVideo" id=subtitle]]
+[[!template text="Also, some expressions are difficult or" start="00:07:10.000" video="mainVideo" id=subtitle]]
+[[!template text="slow to write on the keyboard--" start="00:07:12.080" video="mainVideo" id=subtitle]]
+[[!template text="accents and tuplets, for example--" start="00:07:14.160" video="mainVideo" id=subtitle]]
+[[!template text="so I use template expansion extensively for this purpose," start="00:07:16.490" video="mainVideo" id=subtitle]]
+[[!template text="mainly yasnippet." start="00:07:20.160" video="mainVideo" id=subtitle]]
+[[!template new="1" text="So what do I think?" start="00:07:23.440" video="mainVideo" id=subtitle]]
+[[!template text="Well, I think Lilypond can be a sharp paradigm shift" start="00:07:24.797" video="mainVideo" id=subtitle]]
+[[!template text="for people used to GUI alternatives," start="00:07:28.080" video="mainVideo" id=subtitle]]
+[[!template text="but the results are impressive." start="00:07:30.817" video="mainVideo" id=subtitle]]
+[[!template text="You don't have to dive too deeply to" start="00:07:32.720" video="mainVideo" id=subtitle]]
+[[!template text="start using Lilypond." start="00:07:34.639" video="mainVideo" id=subtitle]]
+[[!template text="Likewise, the ability to extend the software, I think," start="00:07:36.960" video="mainVideo" id=subtitle]]
+[[!template text="is especially appealing for music professionals," start="00:07:39.635" video="mainVideo" id=subtitle]]
+[[!template text="enthusiasts, composers, and the academic community:" start="00:07:42.400" video="mainVideo" id=subtitle]]
+[[!template text="for example, allowing users to create" start="00:07:46.560" video="mainVideo" id=subtitle]]
+[[!template text="alternative notation systems" start="00:07:48.400" video="mainVideo" id=subtitle]]
+[[!template text="required in non-Western music traditions" start="00:07:50.187" video="mainVideo" id=subtitle]]
+[[!template text="and other non-conventional requirements." start="00:07:53.120" video="mainVideo" id=subtitle]]
+[[!template text="Also, Lilypond and Emacs both have" start="00:07:56.160" video="mainVideo" id=subtitle]]
+[[!template text="extensive and well-written manuals" start="00:07:58.400" video="mainVideo" id=subtitle]]
+[[!template text="and active communities of users." start="00:08:00.720" video="mainVideo" id=subtitle]]
+[[!template text="But if you're still not sure" start="00:08:04.639" video="mainVideo" id=subtitle]]
+[[!template text="where to start and when to wedge your feet in the deep but warm pond" start="00:08:05.971" video="mainVideo" id=subtitle]]
+[[!template text="of lilies, Lilypond, and Lilypond users," start="00:08:10.475" video="mainVideo" id=subtitle]]
+[[!template text="I invite you to contribute to my Lilypond projects," start="00:08:13.680" video="mainVideo" id=subtitle]]
+[[!template text="which you can do so from the links on the screen." start="00:08:16.960" video="mainVideo" id=subtitle]]
+[[!template text="So, thank you all. I look forward to your comments," start="00:08:20.720" video="mainVideo" id=subtitle]]
+[[!template text="and I hope you enjoy the rest of the conference." start="00:08:23.271" video="mainVideo" id=subtitle]]
diff --git a/2020/info/05.md b/2020/info/05.md
index 852caff3..30aaf561 100644
--- a/2020/info/05.md
+++ b/2020/info/05.md
@@ -112,390 +112,546 @@ screenshots from within Emacs as SVG (if compiled `--with-cairo`).
<a name="transcript"></a>
# Transcript
-Hello, my name is Grant Shangreaux. This is my talk titled Bard
-Bivou(m)acs: Publishing Music with Emacs. I'm a software developer
-with Unabridged Software in Lincoln, Nebraska. Long time Emacs user,
-relatively new Emacs hacker. Hopefully, I'll be able to show you my
-workflow, with how I publish music with Emacs. All right.
-
-(<a href="#mainVideo" class="time-link">00:30</a>)
-So as a musician, I would like to publish my music online. I could
-publish with popular online music services, but I'm more of a
-DIY-type, so I chose to go ahead and publish with Emacs. What's the
-motivation behind this? A lot of it comes down to some fundamental
-freedoms that Emacs and GNU software represent to me, as well as my
-ideas on culture and my background. I don't believe that music is a
-consumer good. It's a form of knowledge, like an algorithm. And it's
-just such a part of culture, like in tribal cultures, music was seen
-as a gift from the cosmos or the gods. It was a gift maybe through an
-individual vessel, but was shared with the people and shared with
-everyone, kept alive by the culture itself. So to me, music is
-something that should be shared and should be freely enjoyed by
-everyone. Of course, artists should be compensated as well, but that's
-a whole different topic.
-
-(<a href="#mainVideo" class="time-link" data-timestamp="99">01:39</a>)
-So when I want to share my music, I want to do it without
-impacting anyone's freedom. Using GNU software like Emacs is a good
-way that I can ensure that I won't be requiring people to sign away
-their freedoms for anything. There's a lot more I could say about this
-but I don't have time. Feel free to reach out to me by email or IRC.
-Part of the motivation for me, personally, is that Emacs is super
-magical. It's an all-in-one solution. Like I said, the GNU software
-aligns with Creative Commons' ideas. I can do file management. I can
-author HTML, all the web stuff I need even, literate-style. I can
-handle media and metadata. I've got version control, remote server
-access... All the tools I need are right under my fingertips with this
-tool that I use every day for a long time. I don't need to look
-elsewhere.
-
-(<a href="#mainVideo" class="time-link">02:31</a>)
-It was a challenge. I wanted to see if I could do this all
-within Emacs itself. So, how do you use Emacs to publish music? Well,
-for me, I needed a couple of things. I needed to be able to audition
-and label unlabeled audio tracks. I have a lot of files that I don't
-know where they came from. I don't know what they are. I need to be
-able to listen to them, and I need to be able to add metadata to
-whatever audio format it is and rename the files based on that
-metadata, potentially. And in the end, I wanted to take those files
-and programmatically produce a web page for people to consume.
-
-(<a href="#mainVideo" class="time-link">03:08</a>)
-I found out that Emacs scores a hundred percent on all of
-these requirements that I had for this, and a lot of that came from
-EMMS, the Emacs multimedia system. EMMS is great. If you haven't
-checked it out, please do. It's a little bit unintuitive, but once you
-get into it, you know it works. Basically, what EMMS gave me was the
-ability to listen to the tracks, organize playlists. On top of that,
-it gave me super-powered metadata authoring.
-
-(<a href="#mainVideo" class="time-link">03:42</a>)
-I'm going to demonstrate that to you. So in order to do this,
-you have to require markable playlists, so (require 'emms-mark). I'm
-going to go through, and I'm going to open the red... I've got this.
-These files here. So you can see these files are mp3s. They're
-recorded on a digital recorder. If I had the choice, I would have a
-recorder that used a different format, but so be it. I can mark all
-these files and I can do EMMS add to .., and now they've been loaded
-into a playlist. So you can see the playlist here. There's some
-leftover files.
-
-(<a href="#mainVideo" class="time-link">04:30</a>)
-So I've got these three files in my playlist, and as
-you can see, it's just the file name, the path. I don't have any
-metadata associated with them. In this playlist, I can hit E, and
-it'll bring up a buffer showing the tag information that I have. I
-could edit these here. I could edit them one at a time, but that's not
-really great. I want superpower metadata authoring. So, by marking
-them, I can then hit E, and I have all three of the tracks loaded up
-in this tags buffer. On top of that, I can do EMMS tag editor, set
-all, C-c C-r, and I want to set the artist. so these are some
-recordings of my family. So, Shangreaux, set all three of them. I want
-to set the album: Spring Walk with Lap Harp. I want to set the year.
-And then I'm going to go ahead and put these in manually, but with the
-power of Emacs keyboard macros and registers and so on. I could do
-this programmatically as well, which would make it a lot easier if I
-had much more than three files to do this with. Submit the changes
-with C-c C-c, and now we've got the playlist. You can see the artist
-and track number have been updated here.
-
-(<a href="#mainVideo" class="time-link">6:15</a>)
-And then the final piece of this is that if you look at this,
-you can see that the file name is still the same. So if I were looking
-at the directory, I would still have this file name. When packaging
-these up for a release, for people to download, it's nice to be able
-to have that filename reflect the track number and the artist and so
-on. So there's another command, EMMS rename tag editor, rename, so it
-could be just capital R. I think I need to mark all of these, hit
-capital R, and then it's going to ask me to confirm and say yes to all
-of them. And now, if you look in the-- whoops I have to update
-it--you'll see it's been updated with the artist, track number and
-track name. This format is a format string, so it's customizable of
-course. I just decided to go with the default.
-
-(<a href="#mainVideo" class="time-link">7:21</a>)
-So that's pretty great, this workflow just with EMMS. I didn't
-have to do anything. This is all there. It's all built in. It gave me
-exactly what I was looking for in terms of being able to process a lot
-of raw audio files add metadata to them and get them ready for
-publishing. And this is for publishing for playback in any media
-player. It'll be useful. Not just for the web page that I'm building.
-
-(<a href="#mainVideo" class="time-link">7:48</a>)
-So the final part, of course, is to build the web page. Emacs
-makes authoring HTML trivial. As I was going through this, I wanted to
-challenge myself and just be, like, can I do this just all with Emacs?
-Can I just make this? I don't need a... I don't need Ruby. I don't
-need Rails. I don't need Node. I don't need any of this other stuff. I
-have my tool right here. It's a fully... It's a whole operating
-system, basically, plus programming languages. So the first thing I
-started with was buffer scripting for manipulating text. That's kind
-of the easiest way to do it. Basically, anything you can do in a
-buffer, you can do programmatically with Elisp. So this might be a
-good example for beginners. If you haven't done any Elisp yet, a
-simple example is to create this this div output here. You can use
-this with-temp-buffer, so basically creating an imaginary buffer.
-insert is just like typing, so you put strings in, you put new lines
-in, you can build some strings together. Here you can see I'm doing a
-random number, so every time I execute this, my content change. I
-can generate dynamic content in HTML blocks with Elisp.
-
-(<a href="#mainVideo" class="time-link">9:04</a>)
-For my web page builder, It's a little more complex. I'm
-pulling data out using EMMS data structures, so it's pulling that out
-from the track data. And then I'm using some program to generate list
-elements, so each track is going to have the title and track number,
-and then a button for playing it, plus the source of the audio file,
-which will get added here. Right now, this is hard coded for Opus, so
-it won't work for my MP3s. I'm going to skip over snippets. Turns out
-format strings were good enough for me. Snippets could be useful, but
-format is super powerful, and I didn't really even need all that much
-power, basically, just doing string interpolation. So if you haven't
-seen format before, you basically put these control strings or control
-characters inside of a string, and you can generate an output string
-that you want. So in my generator code, basically, it's down here, I'm
-calling format with this Bard Bivou(m)acs template, and that's
-basically a big a big string of HTML. It's just my whole page of HTML
-with those control characters in just four places. One of them
-populates the track list. That's really the meat of the program.
-Again, this is a combination of using buffer scripting, using HTML
-mode, inserting text format strings, and then I can indent-region so
-the HTML actually looks pretty when it comes out of it as well. I will
-show that, just really quick actually. So you can see, this is the
-HTML that got generated. I've got my template. I inserted the title
-here, the style, the font was all inserted, and then this whole list
-of of tracks here. It's kind of messy to look at, but this track list,
-this whole div here, is all generated by my generator code, and it
-works. It's great. Okay, moving on.
-
-(<a href="#mainVideo" class="time-link">11:27</a>)
-So the other thing was that as I was developing this, I
-decided to use Org Babel and some of his its features for
-multi-language things because I needed to style it with CSS and and
-put actions in Javascript, and also I used SVG for authoring stuff. It
-was a little bit complicated. It probably would have been simpler had
-I not used Org Babel, but it's also really fun. I think it's a cool,
-cool idea to use literate programming. My idea was to create HTML
-components. I could name it like this, put a format string inside it,
-and build a function in Elisp to format it and spit out the HTML that
-I want. By doing this, then, I can just change things in my Org file
-which, not getting a whole lot of time to work on it, I can come back
-to it and I have a lot of notes. I can kind of generate things as I'm
-going and keep notes for myself, and keep the... I don't know. It's
-cool. Literate programming is fun. So I don't need to go into that too
-much, but you can see if I execute this here, I get the the div that I
-want. It's a little bit funny. You'll see I have the string like this,
-the way that noweb expands, I can't do this on a single line. It looks
-funny when you do that, so that might be something to work out later.
-CSS blocks can either be tangled out and referenced in the HTML source
-or inlined. Here's an example I have of inlining it. So I've got my
-little CSS block named style, Javascript named script, and then I've
-got this HTML source block with noweb expansion. These double angle
-brackets here are where I'm going to expand the block named style. I'm
-actually calling a function, so I want the result of the function
-here, and then the script will just get expanded here. So
-org-babel-expand-src-block, you can see what it looks like. I've got
-my style here. I've got my title. I've got that main content class I
-showed before, and the script as well. So that's kind of cool. I could
-just run org-babel-tangle and get my thing out and just edit one file
-instead of multiple files. Not for everyone, but I thought it was kind
-of fun. All right.
-
-(<a href="#mainVideo" class="time-link">13:45</a>)
-Oh, and the final thing is that in Emacs, you can author and
-view SVG. So this is just an Org. This SVG, I used to make the play
-and pause buttons. I didn't know this, but if you edit an SVG file,
-you can toggle back and forth between the code and the image. It's
-pretty sweet. So I can iteratively work through this because of how
-Emacs is.
-
-(<a href="#mainVideo" class="time-link">14:20</a>)
-Final considerations here, like when doing this, I want it to
-be all free, so I want to use fonts that use a free license. I found
-GNU Unifont. It's kind of cool. The content license... I chose
-Creative Commons Attribution ShareAlike, which is kind of like the
-GPL. Ideally, I could serve it with Emacs. I'd like to remove
-idiosyncrasy so other people can use it. It's pretty much just my tool
-right now. Not requiring the web browser... I can ship playlists so
-that you can just click or link to a playlist on your favorite player,
-even EMMS if you want, and then packing up those albums in like a ZIP
-or .tar file.
-
-(<a href="#mainVideo" class="time-link">15:04</a>)
-So you can go to churls.world . It just has a link to this
-album. I'll display it here in just a second. You can contact me. I'm
-shoshin on #emacs in IRC and on sourcehut. You can email me
-grant@churls.world, personal, or grant@unabridgedsoftware.com. All
-right, now. Let's see about this... This is up online, so if you want
-to listen to my college band's album from 20 years ago, here it is:
-Casiopeia Basement Days. Whoops. I made this art in Krita. You can
-press play. You can skip around. I do have the playlist up here too.
-So yeah, thanks for listening. I hope you enjoyed it, and enjoy the
-rest of EmacsConf. Goodbye!
-
-<!-- /transcript -->
+[[!template text="Hello, my name is Grant Shangreaux." start="00:00:01.360" video="mainVideo" id=subtitle]]
+[[!template text="This is my talk titled Bard Bivou(m)acs: Publishing Music with Emacs." start="00:00:04.480" video="mainVideo" id=subtitle]]
+[[!template text="I'm a software developer with Unabridged Software in Lincoln, Nebraska." start="00:00:09.519" video="mainVideo" id=subtitle]]
+[[!template text="Long time Emacs user, relatively new Emacs hacker." start="00:00:14.400" video="mainVideo" id=subtitle]]
+[[!template text="Hopefully, I'll be able to show you my workflow," start="00:00:18.720" video="mainVideo" id=subtitle]]
+[[!template text="with how I publish music with Emacs." start="00:00:22.487" video="mainVideo" id=subtitle]]
+[[!template new="1" text="All right. So as a musician, I would like to publish my music online." start="00:00:30.480" video="mainVideo" id=subtitle]]
+[[!template text="I could publish with popular online music services," start="00:00:35.520" video="mainVideo" id=subtitle]]
+[[!template text="but I'm more of a DIY-type," start="00:00:39.040" video="mainVideo" id=subtitle]]
+[[!template text="so I chose to go ahead and publish with Emacs." start="00:00:41.061" video="mainVideo" id=subtitle]]
+[[!template text="What's the motivation behind this?" start="00:00:44.719" video="mainVideo" id=subtitle]]
+[[!template text="A lot of it comes down to some fundamental freedoms" start="00:00:48.160" video="mainVideo" id=subtitle]]
+[[!template text="that Emacs and GNU software represent to me," start="00:00:51.600" video="mainVideo" id=subtitle]]
+[[!template text="as well as my ideas on culture and my background." start="00:00:57.178" video="mainVideo" id=subtitle]]
+[[!template text="I don't believe that music is a consumer good." start="00:01:01.840" video="mainVideo" id=subtitle]]
+[[!template text="It's a form of knowledge, like an algorithm." start="00:01:04.080" video="mainVideo" id=subtitle]]
+[[!template text="And it's just such a part of culture," start="00:01:08.320" video="mainVideo" id=subtitle]]
+[[!template text="like in tribal cultures," start="00:01:11.036" video="mainVideo" id=subtitle]]
+[[!template text="music was seen as a gift from the cosmos or the gods." start="00:01:12.780" video="mainVideo" id=subtitle]]
+[[!template text="It was a gift maybe through an individual vessel," start="00:01:17.405" video="mainVideo" id=subtitle]]
+[[!template text="but was shared with the people" start="00:01:20.288" video="mainVideo" id=subtitle]]
+[[!template text="and shared with everyone," start="00:01:21.920" video="mainVideo" id=subtitle]]
+[[!template text="kept alive by the culture itself." start="00:01:23.520" video="mainVideo" id=subtitle]]
+[[!template text="So to me, music is something that" start="00:01:26.799" video="mainVideo" id=subtitle]]
+[[!template text="should be shared and should be" start="00:01:29.840" video="mainVideo" id=subtitle]]
+[[!template text="freely enjoyed by everyone." start="00:01:31.520" video="mainVideo" id=subtitle]]
+[[!template text="Of course, artists should be compensated as well," start="00:01:33.818" video="mainVideo" id=subtitle]]
+[[!template text="but that's a whole different topic." start="00:01:36.560" video="mainVideo" id=subtitle]]
+[[!template new="1" text="So when I want to share my music," start="00:01:39.040" video="mainVideo" id=subtitle]]
+[[!template text="I want to do it without impacting anyone's freedom." start="00:01:41.040" video="mainVideo" id=subtitle]]
+[[!template text="Using GNU software like Emacs" start="00:01:43.520" video="mainVideo" id=subtitle]]
+[[!template text="is a good way that I can ensure that" start="00:01:45.425" video="mainVideo" id=subtitle]]
+[[!template text="I won't be requiring people" start="00:01:49.200" video="mainVideo" id=subtitle]]
+[[!template text="to sign away their freedoms for anything." start="00:01:52.597" video="mainVideo" id=subtitle]]
+[[!template text="There's a lot more I could say about this" start="00:01:55.840" video="mainVideo" id=subtitle]]
+[[!template text="but I don't have time." start="00:01:57.367" video="mainVideo" id=subtitle]]
+[[!template text="Feel free to reach out to me by email or IRC." start="00:01:58.799" video="mainVideo" id=subtitle]]
+[[!template text="Part of the motivation for me," start="00:02:03.439" video="mainVideo" id=subtitle]]
+[[!template text="personally, is that Emacs is super magical." start="00:02:06.479" video="mainVideo" id=subtitle]]
+[[!template text="It's an all-in-one solution." start="00:02:08.775" video="mainVideo" id=subtitle]]
+[[!template text="Like I said, the GNU software aligns with" start="00:02:10.720" video="mainVideo" id=subtitle]]
+[[!template text="Creative Commons' ideas." start="00:02:12.720" video="mainVideo" id=subtitle]]
+[[!template text="I can do file management." start="00:02:14.480" video="mainVideo" id=subtitle]]
+[[!template text="I can author HTML, all the web stuff I need even, literate-style." start="00:02:16.067" video="mainVideo" id=subtitle]]
+[[!template text="I can handle media and metadata." start="00:02:20.239" video="mainVideo" id=subtitle]]
+[[!template text="I've got version control, remote server access..." start="00:02:22.171" video="mainVideo" id=subtitle]]
+[[!template text="All the tools I need are right under my fingertips with this tool" start="00:02:24.640" video="mainVideo" id=subtitle]]
+[[!template text="that I use every day for a long time." start="00:02:28.080" video="mainVideo" id=subtitle]]
+[[!template text="I don't need to look elsewhere." start="00:02:30.000" video="mainVideo" id=subtitle]]
+[[!template new="1" text="It was a challenge." start="00:02:31.440" video="mainVideo" id=subtitle]]
+[[!template text="I wanted to see if I could do this" start="00:02:34.319" video="mainVideo" id=subtitle]]
+[[!template text="all within Emacs itself." start="00:02:36.319" video="mainVideo" id=subtitle]]
+[[!template text="So, how do you use Emacs to publish music?" start="00:02:39.440" video="mainVideo" id=subtitle]]
+[[!template text="Well, for me, I needed" start="00:02:41.680" video="mainVideo" id=subtitle]]
+[[!template text="a couple of things." start="00:02:43.440" video="mainVideo" id=subtitle]]
+[[!template text="I needed to be able to audition and label unlabeled audio tracks." start="00:02:44.258" video="mainVideo" id=subtitle]]
+[[!template text="I have a lot of files that I don't know where they came from." start="00:02:47.564" video="mainVideo" id=subtitle]]
+[[!template text="I don't know what they are." start="00:02:50.320" video="mainVideo" id=subtitle]]
+[[!template text="I need to be able to listen to them," start="00:02:51.213" video="mainVideo" id=subtitle]]
+[[!template text="and I need to be able to add metadata to" start="00:02:53.840" video="mainVideo" id=subtitle]]
+[[!template text="whatever audio format it is" start="00:02:56.800" video="mainVideo" id=subtitle]]
+[[!template text="and rename the files based on that" start="00:02:58.480" video="mainVideo" id=subtitle]]
+[[!template text="metadata, potentially." start="00:03:00.800" video="mainVideo" id=subtitle]]
+[[!template text="And in the end, I wanted to take those" start="00:03:03.200" video="mainVideo" id=subtitle]]
+[[!template text="files and programmatically produce a web page" start="00:03:05.120" video="mainVideo" id=subtitle]]
+[[!template text="for people to consume." start="00:03:08.319" video="mainVideo" id=subtitle]]
+[[!template new="1" text="I found out that Emacs scores a hundred percent on all of" start="00:03:10.442" video="mainVideo" id=subtitle]]
+[[!template text="these requirements that I had for this," start="00:03:14.879" video="mainVideo" id=subtitle]]
+[[!template text="and a lot of that came from EMMS, the Emacs multimedia system." start="00:03:17.709" video="mainVideo" id=subtitle]]
+[[!template text="EMMS is great." start="00:03:22.640" video="mainVideo" id=subtitle]]
+[[!template text="If you haven't checked it out, please do." start="00:03:26.080" video="mainVideo" id=subtitle]]
+[[!template text="It's a little bit unintuitive," start="00:03:27.760" video="mainVideo" id=subtitle]]
+[[!template text="but once you get into it, you know it works." start="00:03:29.736" video="mainVideo" id=subtitle]]
+[[!template text="Basically, what EMMS gave me was" start="00:03:34.000" video="mainVideo" id=subtitle]]
+[[!template text="the ability to listen to the tracks," start="00:03:36.420" video="mainVideo" id=subtitle]]
+[[!template text="organize playlists." start="00:03:38.720" video="mainVideo" id=subtitle]]
+[[!template text="On top of that, it gave me" start="00:03:39.680" video="mainVideo" id=subtitle]]
+[[!template text="super-powered metadata authoring." start="00:03:41.280" video="mainVideo" id=subtitle]]
+[[!template new="1" text="I'm going to demonstrate that to you." start="00:03:42.959" video="mainVideo" id=subtitle]]
+[[!template text="So in order to do this," start="00:03:45.040" video="mainVideo" id=subtitle]]
+[[!template text="you have to require markable playlists," start="00:03:47.200" video="mainVideo" id=subtitle]]
+[[!template text="so (require 'emms-mark). I'm going to" start="00:03:50.879" video="mainVideo" id=subtitle]]
+[[!template text="go through, and I'm going to open the red..." start="00:03:54.879" video="mainVideo" id=subtitle]]
+[[!template text="I've got this. These files here." start="00:03:59.680" video="mainVideo" id=subtitle]]
+[[!template text="So you can see these files are mp3s." start="00:04:02.092" video="mainVideo" id=subtitle]]
+[[!template text="They're recorded on a digital recorder." start="00:04:04.480" video="mainVideo" id=subtitle]]
+[[!template text="If I had the choice, I would have a" start="00:04:07.599" video="mainVideo" id=subtitle]]
+[[!template text="recorder that used a different format," start="00:04:09.920" video="mainVideo" id=subtitle]]
+[[!template text="but so be it. I can mark all these files" start="00:04:12.319" video="mainVideo" id=subtitle]]
+[[!template text="and I can do EMMS add to .., and now they've been loaded into a playlist." start="00:04:14.640" video="mainVideo" id=subtitle]]
+[[!template text="So you can see the playlist here." start="00:04:27.040" video="mainVideo" id=subtitle]]
+[[!template text="There's some leftover files." start="00:04:28.698" video="mainVideo" id=subtitle]]
+[[!template new="1" text="So I've got these three files" start="00:04:30.400" video="mainVideo" id=subtitle]]
+[[!template text="in my playlist, and as you can see," start="00:04:31.771" video="mainVideo" id=subtitle]]
+[[!template text="it's just the file name, the path." start="00:04:33.361" video="mainVideo" id=subtitle]]
+[[!template text="I don't have any metadata associated with them." start="00:04:35.194" video="mainVideo" id=subtitle]]
+[[!template text="In this playlist, I can hit E," start="00:04:38.560" video="mainVideo" id=subtitle]]
+[[!template text="and it'll bring up a buffer showing" start="00:04:41.360" video="mainVideo" id=subtitle]]
+[[!template text="the tag information that I have." start="00:04:43.440" video="mainVideo" id=subtitle]]
+[[!template text="I could edit these here." start="00:04:47.360" video="mainVideo" id=subtitle]]
+[[!template text="I could edit them one at a time," start="00:04:49.840" video="mainVideo" id=subtitle]]
+[[!template text="but that's not really great. I want superpower metadata authoring." start="00:04:51.129" video="mainVideo" id=subtitle]]
+[[!template text="So, by marking them, I can then hit E," start="00:05:03.101" video="mainVideo" id=subtitle]]
+[[!template text="and I have all three of the tracks loaded up in this tags buffer." start="00:05:07.159" video="mainVideo" id=subtitle]]
+[[!template text="On top of that, I can do EMMS tag editor," start="00:05:12.639" video="mainVideo" id=subtitle]]
+[[!template text="set all, C-c C-r, and I want to set the artist." start="00:05:16.912" video="mainVideo" id=subtitle]]
+[[!template text="so these are some recordings of my family." start="00:05:22.840" video="mainVideo" id=subtitle]]
+[[!template text="So, Shangreaux, set all three of them." start="00:05:26.320" video="mainVideo" id=subtitle]]
+[[!template text="I want to set the album:" start="00:05:31.039" video="mainVideo" id=subtitle]]
+[[!template text="Spring Walk with Lap Harp." start="00:05:35.600" video="mainVideo" id=subtitle]]
+[[!template text="I want to set the year." start="00:05:40.160" video="mainVideo" id=subtitle]]
+[[!template text="And then I'm going to go ahead and put these in manually," start="00:05:45.520" video="mainVideo" id=subtitle]]
+[[!template text="but with the power of Emacs keyboard macros" start="00:05:53.759" video="mainVideo" id=subtitle]]
+[[!template text="and registers and so on. I could do this" start="00:05:56.759" video="mainVideo" id=subtitle]]
+[[!template text="programmatically as well," start="00:05:59.600" video="mainVideo" id=subtitle]]
+[[!template text="which would make it a lot easier" start="00:06:02.319" video="mainVideo" id=subtitle]]
+[[!template text="if I had much more than three files to do this with." start="00:06:03.818" video="mainVideo" id=subtitle]]
+[[!template text="Submit the changes with C-c C-c," start="00:06:07.440" video="mainVideo" id=subtitle]]
+[[!template text="and now we've got the playlist." start="00:06:09.919" video="mainVideo" id=subtitle]]
+[[!template text="You can see the artist and track number have been updated here." start="00:06:11.232" video="mainVideo" id=subtitle]]
+[[!template new="1" text="And then the final piece of this is that" start="00:06:15.039" video="mainVideo" id=subtitle]]
+[[!template text="if you look at this, you can see that" start="00:06:17.360" video="mainVideo" id=subtitle]]
+[[!template text="the file name is still the same." start="00:06:18.875" video="mainVideo" id=subtitle]]
+[[!template text="So if I were looking at the directory," start="00:06:20.479" video="mainVideo" id=subtitle]]
+[[!template text="I would still have this file name." start="00:06:22.639" video="mainVideo" id=subtitle]]
+[[!template text="When packaging these up for a release," start="00:06:24.560" video="mainVideo" id=subtitle]]
+[[!template text="for people to download," start="00:06:26.479" video="mainVideo" id=subtitle]]
+[[!template text="it's nice to be able to have that" start="00:06:28.000" video="mainVideo" id=subtitle]]
+[[!template text="filename reflect the track number" start="00:06:30.319" video="mainVideo" id=subtitle]]
+[[!template text="and the artist and so on." start="00:06:32.044" video="mainVideo" id=subtitle]]
+[[!template text="So there's another command," start="00:06:33.609" video="mainVideo" id=subtitle]]
+[[!template text="EMMS rename tag editor, rename," start="00:06:40.250" video="mainVideo" id=subtitle]]
+[[!template text="so it could be just capital R." start="00:06:42.970" video="mainVideo" id=subtitle]]
+[[!template text="I think I need to mark all of these," start="00:06:45.120" video="mainVideo" id=subtitle]]
+[[!template text="hit capital R, and then it's going to ask me to confirm" start="00:06:46.991" video="mainVideo" id=subtitle]]
+[[!template text="and say yes to all of them." start="00:06:50.000" video="mainVideo" id=subtitle]]
+[[!template text="And now, if you look in the--" start="00:06:54.400" video="mainVideo" id=subtitle]]
+[[!template text="whoops I have to update it--you'll see" start="00:07:02.720" video="mainVideo" id=subtitle]]
+[[!template text="it's been updated with the artist," start="00:07:04.319" video="mainVideo" id=subtitle]]
+[[!template text="track number and track name." start="00:07:06.319" video="mainVideo" id=subtitle]]
+[[!template text="This format is a format string," start="00:07:11.120" video="mainVideo" id=subtitle]]
+[[!template text="so it's customizable of course." start="00:07:14.432" video="mainVideo" id=subtitle]]
+[[!template text="I just decided to go with the default." start="00:07:17.360" video="mainVideo" id=subtitle]]
+[[!template new="1" text="So that's pretty great, this workflow just with EMMS." start="00:07:21.039" video="mainVideo" id=subtitle]]
+[[!template text="I didn't have to do anything. This is all there." start="00:07:24.948" video="mainVideo" id=subtitle]]
+[[!template text="It's all built in. It gave me exactly what I was looking for" start="00:07:27.585" video="mainVideo" id=subtitle]]
+[[!template text="in terms of being able to process a lot of raw audio files," start="00:07:31.673" video="mainVideo" id=subtitle]]
+[[!template text="add metadata to them, and get them ready for publishing." start="00:07:35.599" video="mainVideo" id=subtitle]]
+[[!template text="And this is for publishing for playback" start="00:07:39.280" video="mainVideo" id=subtitle]]
+[[!template text="in any media player. It'll be useful." start="00:07:41.599" video="mainVideo" id=subtitle]]
+[[!template text="Not just for the web page that I'm building." start="00:07:44.026" video="mainVideo" id=subtitle]]
+[[!template new="1" text="So the final part, of course, is to build the web page." start="00:07:47.639" video="mainVideo" id=subtitle]]
+[[!template text="Emacs makes authoring HTML trivial." start="00:07:51.440" video="mainVideo" id=subtitle]]
+[[!template text="As I was going through this," start="00:07:54.960" video="mainVideo" id=subtitle]]
+[[!template text="I wanted to challenge myself and just be, like," start="00:07:57.357" video="mainVideo" id=subtitle]]
+[[!template text="can I do this just all with Emacs? Can I just make this?" start="00:07:59.701" video="mainVideo" id=subtitle]]
+[[!template text="I don't need a... I don't need Ruby." start="00:08:03.520" video="mainVideo" id=subtitle]]
+[[!template text="I don't need Rails. I don't need Node." start="00:08:05.134" video="mainVideo" id=subtitle]]
+[[!template text="I don't need any of this other stuff." start="00:08:06.707" video="mainVideo" id=subtitle]]
+[[!template text="I have my tool right here. It's a fully..." start="00:08:08.528" video="mainVideo" id=subtitle]]
+[[!template text="It's a whole operating system, basically," start="00:08:10.560" video="mainVideo" id=subtitle]]
+[[!template text="plus programming languages." start="00:08:12.560" video="mainVideo" id=subtitle]]
+[[!template text="So the first thing I started with" start="00:08:15.039" video="mainVideo" id=subtitle]]
+[[!template text="was buffer scripting for manipulating text." start="00:08:17.171" video="mainVideo" id=subtitle]]
+[[!template text="That's kind of the easiest way to do it." start="00:08:19.919" video="mainVideo" id=subtitle]]
+[[!template text="Basically, anything you can do in a buffer," start="00:08:22.560" video="mainVideo" id=subtitle]]
+[[!template text="you can do programmatically with Elisp." start="00:08:24.692" video="mainVideo" id=subtitle]]
+[[!template text="So this might be a good example for beginners." start="00:08:27.834" video="mainVideo" id=subtitle]]
+[[!template text="If you haven't done any Elisp yet," start="00:08:30.217" video="mainVideo" id=subtitle]]
+[[!template text="a simple example is to create this div output here." start="00:08:33.919" video="mainVideo" id=subtitle]]
+[[!template text="You can use this with-temp-buffer," start="00:08:39.557" video="mainVideo" id=subtitle]]
+[[!template text="so basically creating an imaginary buffer." start="00:08:41.581" video="mainVideo" id=subtitle]]
+[[!template text="insert is just like typing," start="00:08:44.240" video="mainVideo" id=subtitle]]
+[[!template text="so you put strings in, you put new lines in," start="00:08:45.945" video="mainVideo" id=subtitle]]
+[[!template text="you can build some strings together." start="00:08:48.800" video="mainVideo" id=subtitle]]
+[[!template text="Here you can see I'm doing a random number," start="00:08:50.959" video="mainVideo" id=subtitle]]
+[[!template text="so every time I execute this," start="00:08:53.551" video="mainVideo" id=subtitle]]
+[[!template text="my content changes." start="00:08:55.360" video="mainVideo" id=subtitle]]
+[[!template text="I can generate dynamic content in HTML blocks with Elisp." start="00:08:56.790" video="mainVideo" id=subtitle]]
+[[!template new="1" text="For my web page builder, it's a little more complex." start="00:09:03.685" video="mainVideo" id=subtitle]]
+[[!template text="I'm pulling data out" start="00:09:06.493" video="mainVideo" id=subtitle]]
+[[!template text="using EMMS data structures," start="00:09:08.000" video="mainVideo" id=subtitle]]
+[[!template text="so it's pulling that out from the track data." start="00:09:12.080" video="mainVideo" id=subtitle]]
+[[!template text="And then I'm using some program to" start="00:09:16.080" video="mainVideo" id=subtitle]]
+[[!template text="generate list elements, so each track is" start="00:09:19.440" video="mainVideo" id=subtitle]]
+[[!template text="going to have the title and track number," start="00:09:21.440" video="mainVideo" id=subtitle]]
+[[!template text="and then a button for playing it," start="00:09:24.086" video="mainVideo" id=subtitle]]
+[[!template text="plus the source of the audio file," start="00:09:25.869" video="mainVideo" id=subtitle]]
+[[!template text="which will get added here." start="00:09:28.206" video="mainVideo" id=subtitle]]
+[[!template text="Right now, this is hard coded for Opus," start="00:09:30.480" video="mainVideo" id=subtitle]]
+[[!template text="so it won't work for my MP3s." start="00:09:32.485" video="mainVideo" id=subtitle]]
+[[!template text="I'm going to skip over snippets." start="00:09:37.200" video="mainVideo" id=subtitle]]
+[[!template text="Turns out format strings were good enough for me." start="00:09:38.867" video="mainVideo" id=subtitle]]
+[[!template text="Snippets could be useful," start="00:09:42.017" video="mainVideo" id=subtitle]]
+[[!template text="but format is super powerful," start="00:09:45.035" video="mainVideo" id=subtitle]]
+[[!template text="and I didn't really even need all that much power," start="00:09:47.267" video="mainVideo" id=subtitle]]
+[[!template text="basically, just doing string interpolation." start="00:09:49.839" video="mainVideo" id=subtitle]]
+[[!template text="So if you haven't seen format before," start="00:09:52.187" video="mainVideo" id=subtitle]]
+[[!template text="you basically put these control strings" start="00:09:54.560" video="mainVideo" id=subtitle]]
+[[!template text="or control characters inside of a string," start="00:09:56.720" video="mainVideo" id=subtitle]]
+[[!template text="and you can generate an output string that you want." start="00:09:59.120" video="mainVideo" id=subtitle]]
+[[!template text="So in my generator code, basically," start="00:10:05.040" video="mainVideo" id=subtitle]]
+[[!template text="it's down here," start="00:10:07.344" video="mainVideo" id=subtitle]]
+[[!template text="I'm calling format with this Bard Bivou(m)acs template," start="00:10:08.720" video="mainVideo" id=subtitle]]
+[[!template text="and that's basically a big string of HTML." start="00:10:12.800" video="mainVideo" id=subtitle]]
+[[!template text="It's just my whole page of HTML" start="00:10:17.491" video="mainVideo" id=subtitle]]
+[[!template text="with those control characters in just four places." start="00:10:21.200" video="mainVideo" id=subtitle]]
+[[!template text="One of them populates the track list." start="00:10:24.399" video="mainVideo" id=subtitle]]
+[[!template text="That's really the meat of the program." start="00:10:26.399" video="mainVideo" id=subtitle]]
+[[!template text="Again, this is a combination of using buffer scripting, using HTML mode," start="00:10:29.760" video="mainVideo" id=subtitle]]
+[[!template text="inserting text format strings," start="00:10:34.746" video="mainVideo" id=subtitle]]
+[[!template text="and then I can indent-region" start="00:10:37.279" video="mainVideo" id=subtitle]]
+[[!template text="so the HTML actually looks pretty" start="00:10:39.251" video="mainVideo" id=subtitle]]
+[[!template text="when it comes out of it as well." start="00:10:41.920" video="mainVideo" id=subtitle]]
+[[!template text="I will show that, just really quick actually." start="00:10:45.200" video="mainVideo" id=subtitle]]
+[[!template text="So you can see, this is the HTML that got generated." start="00:10:54.000" video="mainVideo" id=subtitle]]
+[[!template text="I've got my template." start="00:10:57.540" video="mainVideo" id=subtitle]]
+[[!template text="I inserted the title here, the style," start="00:10:58.800" video="mainVideo" id=subtitle]]
+[[!template text="the font was all inserted," start="00:11:02.193" video="mainVideo" id=subtitle]]
+[[!template text="and then this whole list of of tracks here." start="00:11:05.760" video="mainVideo" id=subtitle]]
+[[!template text="It's kind of messy to look at," start="00:11:07.920" video="mainVideo" id=subtitle]]
+[[!template text="but this track list, this whole div here," start="00:11:11.200" video="mainVideo" id=subtitle]]
+[[!template text="is all generated by my generator code, and it works. It's great." start="00:11:14.399" video="mainVideo" id=subtitle]]
+[[!template text="Okay, moving on." start="00:11:22.480" video="mainVideo" id=subtitle]]
+[[!template new="1" text="So the other thing was that as I was developing this," start="00:11:27.120" video="mainVideo" id=subtitle]]
+[[!template text="I decided to use Org Babel" start="00:11:30.945" video="mainVideo" id=subtitle]]
+[[!template text="and some of its features for multi-language things" start="00:11:32.547" video="mainVideo" id=subtitle]]
+[[!template text="because I needed to style it with CSS" start="00:11:35.588" video="mainVideo" id=subtitle]]
+[[!template text="and put actions in Javascript," start="00:11:37.839" video="mainVideo" id=subtitle]]
+[[!template text="and also I used SVG for authoring stuff." start="00:11:39.835" video="mainVideo" id=subtitle]]
+[[!template text="It was a little bit complicated." start="00:11:42.480" video="mainVideo" id=subtitle]]
+[[!template text="It probably would have been simpler" start="00:11:46.079" video="mainVideo" id=subtitle]]
+[[!template text="had I not used Org Babel," start="00:11:47.484" video="mainVideo" id=subtitle]]
+[[!template text="but it's also really fun." start="00:11:48.680" video="mainVideo" id=subtitle]]
+[[!template text="I think it's a cool, cool idea to use literate programming." start="00:11:49.894" video="mainVideo" id=subtitle]]
+[[!template text="My idea was to create HTML components." start="00:11:53.663" video="mainVideo" id=subtitle]]
+[[!template text="I could name it like this," start="00:11:57.001" video="mainVideo" id=subtitle]]
+[[!template text="put a format string inside it," start="00:11:59.519" video="mainVideo" id=subtitle]]
+[[!template text="and build a function" start="00:12:00.959" video="mainVideo" id=subtitle]]
+[[!template text="in Elisp to format it" start="00:12:02.800" video="mainVideo" id=subtitle]]
+[[!template text="and spit out the HTML that I want." start="00:12:04.302" video="mainVideo" id=subtitle]]
+[[!template text="By doing this, then," start="00:12:07.120" video="mainVideo" id=subtitle]]
+[[!template text="I can just change things in my Org file," start="00:12:09.581" video="mainVideo" id=subtitle]]
+[[!template text="which, not getting a whole lot of time to work on it," start="00:12:12.388" video="mainVideo" id=subtitle]]
+[[!template text="I can come back to it" start="00:12:14.814" video="mainVideo" id=subtitle]]
+[[!template text="and I have a lot of notes." start="00:12:16.615" video="mainVideo" id=subtitle]]
+[[!template text="I can kind of generate things as I'm going" start="00:12:19.335" video="mainVideo" id=subtitle]]
+[[!template text="and keep notes for myself, and keep the..." start="00:12:21.695" video="mainVideo" id=subtitle]]
+[[!template text="I don't know. It's cool." start="00:12:24.399" video="mainVideo" id=subtitle]]
+[[!template text="Literate programming is fun." start="00:12:25.308" video="mainVideo" id=subtitle]]
+[[!template text="So I don't need to" start="00:12:26.672" video="mainVideo" id=subtitle]]
+[[!template text="go into that too much, but you can see if" start="00:12:27.519" video="mainVideo" id=subtitle]]
+[[!template text="I execute this here," start="00:12:29.279" video="mainVideo" id=subtitle]]
+[[!template text="I get the the div that I want." start="00:12:31.040" video="mainVideo" id=subtitle]]
+[[!template text="It's a little bit funny." start="00:12:32.983" video="mainVideo" id=subtitle]]
+[[!template text="You'll see I have the string like this," start="00:12:34.013" video="mainVideo" id=subtitle]]
+[[!template text="the way that noweb expands, I can't do this on a single line." start="00:12:35.786" video="mainVideo" id=subtitle]]
+[[!template text="It looks funny when you do that," start="00:12:40.000" video="mainVideo" id=subtitle]]
+[[!template text="so that might be something to work out later." start="00:12:43.839" video="mainVideo" id=subtitle]]
+[[!template text="CSS blocks can either be tangled out" start="00:12:45.931" video="mainVideo" id=subtitle]]
+[[!template text="and referenced in the HTML source, or inlined." start="00:12:48.959" video="mainVideo" id=subtitle]]
+[[!template text="Here's an example I have of inlining it." start="00:12:52.639" video="mainVideo" id=subtitle]]
+[[!template text="So I've got my little CSS block named style," start="00:12:54.639" video="mainVideo" id=subtitle]]
+[[!template text="Javascript named script," start="00:12:57.609" video="mainVideo" id=subtitle]]
+[[!template text="and then I've got this HTML source block" start="00:13:00.320" video="mainVideo" id=subtitle]]
+[[!template text="with noweb expansion." start="00:13:03.040" video="mainVideo" id=subtitle]]
+[[!template text="These double angle brackets here" start="00:13:04.839" video="mainVideo" id=subtitle]]
+[[!template text="are where I'm going to expand" start="00:13:07.920" video="mainVideo" id=subtitle]]
+[[!template text="the block named style. I'm actually calling a function," start="00:13:09.396" video="mainVideo" id=subtitle]]
+[[!template text="so I want the result of the function here," start="00:13:12.639" video="mainVideo" id=subtitle]]
+[[!template text="and then the script will just get expanded here." start="00:13:14.737" video="mainVideo" id=subtitle]]
+[[!template text="So org-babel-expand-src-block," start="00:13:18.881" video="mainVideo" id=subtitle]]
+[[!template text="you can see what it looks like." start="00:13:22.959" video="mainVideo" id=subtitle]]
+[[!template text="I've got my style here. I've got my title." start="00:13:25.360" video="mainVideo" id=subtitle]]
+[[!template text="I've got that main content class I showed before," start="00:13:28.160" video="mainVideo" id=subtitle]]
+[[!template text="and the script as well. So that's kind of cool." start="00:13:31.279" video="mainVideo" id=subtitle]]
+[[!template text="I could just run org-babel-tangle and get my thing out" start="00:13:34.480" video="mainVideo" id=subtitle]]
+[[!template text="and just edit one file instead of multiple files." start="00:13:37.527" video="mainVideo" id=subtitle]]
+[[!template text="Not for everyone, but I thought it was kind of fun. All right." start="00:13:40.480" video="mainVideo" id=subtitle]]
+[[!template new="1" text="Oh, and the final thing is that in Emacs," start="00:13:46.455" video="mainVideo" id=subtitle]]
+[[!template text="you can author and view SVG." start="00:13:48.807" video="mainVideo" id=subtitle]]
+[[!template text="So this is just an Org. This SVG, I used to make the play and pause buttons." start="00:13:51.320" video="mainVideo" id=subtitle]]
+[[!template text="I didn't know this," start="00:13:58.297" video="mainVideo" id=subtitle]]
+[[!template text="but if you edit an SVG file," start="00:13:59.519" video="mainVideo" id=subtitle]]
+[[!template text="you can toggle back and forth" start="00:14:02.162" video="mainVideo" id=subtitle]]
+[[!template text="between the code and the image." start="00:14:08.800" video="mainVideo" id=subtitle]]
+[[!template text="It's pretty sweet. So I can iteratively" start="00:14:13.199" video="mainVideo" id=subtitle]]
+[[!template text="work through this because of how Emacs is." start="00:14:17.360" video="mainVideo" id=subtitle]]
+[[!template new="1" text="Final considerations here," start="00:14:20.560" video="mainVideo" id=subtitle]]
+[[!template text="like when doing this," start="00:14:24.959" video="mainVideo" id=subtitle]]
+[[!template text="I want it to be all free," start="00:14:26.247" video="mainVideo" id=subtitle]]
+[[!template text="so I want to use fonts that use a free license." start="00:14:27.606" video="mainVideo" id=subtitle]]
+[[!template text="I found GNU Unifont. It's kind of cool." start="00:14:30.079" video="mainVideo" id=subtitle]]
+[[!template text="The content license..." start="00:14:32.800" video="mainVideo" id=subtitle]]
+[[!template text="I chose Creative Commons Attribution ShareAlike," start="00:14:34.333" video="mainVideo" id=subtitle]]
+[[!template text="which is kind of like the GPL." start="00:14:37.600" video="mainVideo" id=subtitle]]
+[[!template text="Ideally, I could serve it with Emacs." start="00:14:39.920" video="mainVideo" id=subtitle]]
+[[!template text="I'd like to remove idiosyncrasy so other people can use it." start="00:14:42.663" video="mainVideo" id=subtitle]]
+[[!template text="It's pretty much just my tool right now." start="00:14:46.320" video="mainVideo" id=subtitle]]
+[[!template text="Not requiring the web browser..." start="00:14:48.720" video="mainVideo" id=subtitle]]
+[[!template text="I can ship playlists so that you can just click or link to a playlist" start="00:14:50.734" video="mainVideo" id=subtitle]]
+[[!template text="on your favorite player, even EMMS if you want," start="00:14:56.648" video="mainVideo" id=subtitle]]
+[[!template text="and then packing up those albums in like a ZIP or .tar file." start="00:15:00.068" video="mainVideo" id=subtitle]]
+[[!template new="1" text="So you can go to churls.world ." start="00:15:04.320" video="mainVideo" id=subtitle]]
+[[!template text="It just has a link to this album." start="00:15:08.639" video="mainVideo" id=subtitle]]
+[[!template text="I'll display it here in just a second." start="00:15:10.644" video="mainVideo" id=subtitle]]
+[[!template text="You can contact me. I'm shoshin on #emacs" start="00:15:14.000" video="mainVideo" id=subtitle]]
+[[!template text="in IRC and on sourcehut. You can email me:" start="00:15:17.519" video="mainVideo" id=subtitle]]
+[[!template text="grant@churls.world, personal, or" start="00:15:21.040" video="mainVideo" id=subtitle]]
+[[!template text="grant@unabridgedsoftware.com. All right, now." start="00:15:23.680" video="mainVideo" id=subtitle]]
+[[!template text="Let's see about this..." start="00:15:26.800" video="mainVideo" id=subtitle]]
+[[!template text="This is up online, so if you want to listen" start="00:15:32.079" video="mainVideo" id=subtitle]]
+[[!template text="to my college band's album from 20 years ago," start="00:15:34.316" video="mainVideo" id=subtitle]]
+[[!template text="here it is: Cassiopeia Basement Days." start="00:15:39.199" video="mainVideo" id=subtitle]]
+[[!template text="Whoops. I made this art in Krita." start="00:15:43.040" video="mainVideo" id=subtitle]]
+[[!template text="You can press play. You can skip around." start="00:15:46.887" video="mainVideo" id=subtitle]]
+[[!template text="I do have the playlist up here too." start="00:15:51.199" video="mainVideo" id=subtitle]]
+[[!template text="So yeah, thanks for listening." start="00:15:55.040" video="mainVideo" id=subtitle]]
+[[!template text="I hope you enjoyed it, and enjoy the rest of EmacsConf. Goodbye!" start="00:15:58.560" video="mainVideo" id=subtitle]]
<!-- transcript: 2020/subtitles/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--questions--grant-shangreaux.vtt -->
<a name="transcript-questions"></a>
-# Transcript: Q&A
-
-So first question, what does Bard Bivou(m)acs mean? Good question. In
-one version of my talk, I spent too long explaining it, and decided to
-cut it out. It's basically a bad pun on band camp. A bivouac--I don't
-even know if I'm pronouncing that correctly--it's like a tent or a
-camp that you put up hastily, and a bard is a musician, of course.
-Yeah, I don't know. I like puns. I'm a dad. That's the best I could
-come up with. I'll probably find a different name for it but I liked
-that "bivoaucs," if you stick an m in there, it becomes Bivou(m)acs.
-It's kind of like editor macros for generating some HTML. Yes, it is
-confusing, chatting on IRC at the same time. Great question. (Amin:
-Grant, so right now, you're sharing your screen. Are you planning on
-showing something with it, or for example, should I maximize you?) I
-don't know. I can turn it off for now. Okay. (Amin: You can turn on
-the webcam.) Yeah, okay. (Amin: I'll maximize your webcam.) Okay,
-thanks. I'll get to the answer for my color theme here in a bit in
-IRC.
-
-(<a href="#qnaVideo" class="time-link">1:31</a>)
-Next question on the Etherpad, does this metadata workflow also
-support unsynchronized lyrics within ID3 tags, multi-line metadata? I
-don't know, actually. It's funny because I was trying out different
-things with metadata, and really the biggest thing was to figure out
-how to do mass tag editing. And that was like... It wasn't very
-intuitive, like I said, with EMMS. I think EMMS is really great, but
-its interface is huge. like if you do M-x and type emms, you get I
-don't know, 270-some candidates. There's a lot of functions going on.
-I basically found the features that I needed to get this workflow
-working. I would guess that you probably can do it, and if you don't,
-if you can't do it out of the box, I think you could script EMMS to do
-that. I'd like to know more, and I'm certainly going to be
-investigating it. I will try and post my findings somewhere online.
-
-(<a href="#qnaVideo" class="time-link">2:39</a>)
-Is it possible to import batch metadata? I'm not sure. I would
-guess yes is the answer. EMMS can connect to metadata services. I
-haven't done that because I was just using audio files that I created
-myself. I know that on the back end, it calls out to shell programs
-for tagging things. there's a lot of different options that can shell
-out too. I was using the the vorbis tools to tag the particular files
-I was working with. You can also use tiny tag, and there's some
-other... That might be the python library. I can't remember. There's
-two other libraries that I can shell out to for doing metadata.
-
-(<a href="#qnaVideo" class="time-link">3:24</a>)
-My current workflow for tagging music is to first apply replay
-gain in fubar 2000, fix egregious mistakes, use beats to apply
-metadata from music brains, or discogs, go over remaining albums with
-fubar 2000 again. Is there a chance textual tagging could allow doing
-it all in one program? Have I experimented with mass tag update
-queries? I have not. Again, I was just doing this workflow, taking raw
-files with no tags and doing that. I believe because it calls out to
-the programs in the back end, I'm sure you could work that out. I
-think EMMS would benefit from having something like that because we
-work with text, and being able to use Emacs as a front end for those
-updates would be really fantastic. So really, it's just a matter of
-writing the interface to the external tool.
-
-(<a href="#qnaVideo" class="time-link">4:22</a>)
-Is there a link to some info expanding philosophy of how to
-compensate musicians? No, I don't really have a lot of philosophy
-around that. I guess the first thing I could say would be something
-like a universal income. I feel like that would solve a lot of
-problems, if musicians could just be musicians and not have to worry
-about their pay. I will think about it more. This is one of my first
-forays into getting public with some of these ideas, so I will try to
-do more and let the community know.
-
-(<a href="#qnaVideo" class="time-link">4:54</a>)
-What Emacs theme am I using? Can't remember. It's one of the
-Kaolin themes. I think it was Aurora or or Bubble Gum, maybe, but the
-Kaolin themes are nice. I recommend them. Not using Doom Emacs, Doom
-mode line though. It's very pretty.
-
-(<a href="#qnaVideo" class="time-link">5:17</a>)
-SVG support built into Emacs? I'm using Emacs 27.1, and yes,
-SVG support is built in. I may have had to compile it with some Cairo
-support. I don't remember for sure. But yes, you can even take
-screenshots of your Emacs from within Emacs in SVG. It's pretty great.
-I don't know how much more time we have left for questions. That's
-most of the things on the etherpad. (Amin: I think we have like 10
-more minutes to catch up with the schedule. If there are more
-questions, feel free to answer them.) I'll start looking through IRC.
-(Amin: And keep an eye on the pad too.) Thank you all for listening
-and for enjoying the talk. I'm glad it turned out well. Awesome. Yeah,
-it's been fun so far. How did I manage? I can post a snippet of that,
-or actually I can share my screen, can't I... Okay. I actually have it
-up right here.
-
-(<a href="#qnaVideo" class="time-link">6:49</a>)
-So I think I got this from alphapapa, to be honest. I define
-screenshot-svg. It's an interactive command. Oh yeah, there's
-alphae.papa Okay, there we go. I would like to change this so that I
-can get it into the copy-paste buffer so I don't have to copy the file
-in, but I haven't really hacked on it yet.
-
-(<a href="#qnaVideo" class="time-link">7:20</a>)
-Okay, org heading colors. That might be a good question. I know, the
-presentation... Sorry, it's hard to think and type at the same time.
-Think and talk and type.
-
-(<a href="#qnaVideo" class="time-link">7:41</a>)
-So the presentation is just a normal org file, right, so I have my
-headers, and the author--you can even stick your email and other
-headers in there. But there's a package called org-tree-slide. Whoops,
-why is it not... I must have not required it. Good question. (Amin:
-Grant, can you try sharing your screen maybe?) Oh, is it not shared?
-I'm sorry. (Amin: Thank you.) There we go, should be coming up. (Amin:
-It's coming up. Yep, we see it.) Awesome. All right. Okay. I don't
-know why this isn't working. It was working. Okay, you want to see the
-screenshot. Whoops. Okay, I just took a screenshot. So, org-tree-slide.
-I don't know why it's not launching. I thought that I had required it,
-but I must not have. Maybe I'll try. Okay. So there we go. So
-org-tree-slide is a way that basically uses narrowing and some kind of
-font tricks to... it changes your titles or your metadata into this
-banner for the title here, and it automatically sets the faces for
-you. You can customize that, of course. And then, as you go through
-the Org file, you get these kind of nice animations and-- what's it
-called--breadcrumbs up at the top. So org-tree-slide. I highly
-recommend it. It's really nice because you can give your presentation
-and practice it, and while you're practicing it, you can edit things
-as well, because it's still just an Org document using narrowing, you
-know. It doesn't actually change anything. Definitely recommend
-org-tree-slide mode. Okay, let's see, what else...
-
-(<a href="#qnaVideo" class="time-link">10:29</a>)
-Share my screen to demo. Oh, that's the SVG. Let's see. Okay, so I
-don't know if you can see this now, but I'm actually viewing the SVG
-screenshot that I took with Emacs. See here's the source of it. So
-Emacs made that. And here's the image. It's cool because you can even
-do it again and again, and open more screenshots of screenshots. Yeah,
-definitely Emacsception. Fun stuff. Anything else in chat? Heading
-colors? Oh, yeah. I talked about the themes. This is another Kaolin
-theme. I think the one in the talk was maybe this one, Aurora. Oh,
-here, there's something funny when you start org-tree-slide with a
-different theme. This top header bar gets the faces from that previous
-theme. I have not figured out how to fix that yet. Did I have to
-compile to get the screenshot? I think maybe I did. Yes, if I'm
-remembering correctly. I got Emacs 27. I'm not on a Mac. I saw
-alphapapa's comment on reddit, and then I recompiled it with Cairo
-support. Yes.
-
-(<a href="#qnaVideo" class="time-link">12:18</a>)
-Okay, lots of good conversation on here. Yep, I have like one or two
-more minutes. Okay I guess while I'm here, I might as well say thank
-you to the organizers. I really appreciate everybody's work on this.
-It's fun to be a part of this community. I'm enjoying the other talks
-I've seen so far today, and I'm looking forward to to the rest. It's
-really interesting, just from being on Emacs in IRC for a few months,
-I've already connected with a lot of interesting people and have a lot
-of cool connections already. (Amin: Thank you for being a part of the
-community, Grant.) That's good to be here. I have another talk
-tomorrow as well. Oh, thanks for everyone in the Etherpad for putting
-more comments on these questions here and taking the notes. (Amin: I
-think that's about all the time that we have for the Q&A. Okay. Thank
-you again so much, Grant, for your awesome talk and for popping in for
-questions.) Yeah, thanks again for hosting. See you later. Cheers!
-
-<!-- /transcript -->
+# Transcript (questions)
+
+[[!template new="1" text="So first question, what does Bard Bivou(m)acs mean? Good question." start="00:00:03.360" video="qnaVideo" id=subtitle]]
+[[!template text="In one version of my talk, I spent too long explaining it," start="00:00:07.440" video="qnaVideo" id=subtitle]]
+[[!template text="and decided to cut it out." start="00:00:10.800" video="qnaVideo" id=subtitle]]
+[[!template text="It's basically a bad pun on band camp." start="00:00:14.559" video="qnaVideo" id=subtitle]]
+[[!template text="A bivouac--I don't even know if I'm" start="00:00:20.960" video="qnaVideo" id=subtitle]]
+[[!template text="pronouncing that correctly--it's like" start="00:00:22.480" video="qnaVideo" id=subtitle]]
+[[!template text="a tent or a camp that you put up hastily," start="00:00:25.199" video="qnaVideo" id=subtitle]]
+[[!template text="and a bard is a musician, of course." start="00:00:29.199" video="qnaVideo" id=subtitle]]
+[[!template text="Yeah, I don't know. I like puns. I'm a dad." start="00:00:32.239" video="qnaVideo" id=subtitle]]
+[[!template text="That's the best I could come up with." start="00:00:36.480" video="qnaVideo" id=subtitle]]
+[[!template text="I'll probably find a different name for" start="00:00:40.960" video="qnaVideo" id=subtitle]]
+[[!template text="it but I liked that &quot;bivoaucs,&quot;" start="00:00:42.879" video="qnaVideo" id=subtitle]]
+[[!template text="if you stick an m in there, it becomes Bivou(m)acs." start="00:00:45.039" video="qnaVideo" id=subtitle]]
+[[!template text="It's kind of like editor macros for generating some HTML." start="00:00:48.719" video="qnaVideo" id=subtitle]]
+[[!template text="Yes, it is confusing, chatting on IRC at the same time. Great question." start="00:01:00.160" video="qnaVideo" id=subtitle]]
+[[!template text="(Amin: Grant, so right now, you're sharing your screen." start="00:01:07.782" video="qnaVideo" id=subtitle]]
+[[!template text="Are you planning on showing something with it, or for example," start="00:01:11.398" video="qnaVideo" id=subtitle]]
+[[!template text="should I maximize you?)" start="00:01:14.479" video="qnaVideo" id=subtitle]]
+[[!template text="I don't know. I can turn it off for now. Okay." start="00:01:16.036" video="qnaVideo" id=subtitle]]
+[[!template text="(Amin: You can turn on the webcam.)" start="00:01:20.400" video="qnaVideo" id=subtitle]]
+[[!template text="Yeah, okay." start="00:01:22.299" video="qnaVideo" id=subtitle]]
+[[!template text="(Amin: I'll maximize your webcam.)" start="00:01:22.880" video="qnaVideo" id=subtitle]]
+[[!template text="Okay, thanks." start="00:01:25.694" video="qnaVideo" id=subtitle]]
+[[!template text="I'll get to the answer for my color" start="00:01:28.240" video="qnaVideo" id=subtitle]]
+[[!template text="theme here in a bit in IRC." start="00:01:30.000" video="qnaVideo" id=subtitle]]
+[[!template new="1" text="Next question on the Etherpad," start="00:01:31.360" video="qnaVideo" id=subtitle]]
+[[!template text="does this metadata workflow also support" start="00:01:35.105" video="qnaVideo" id=subtitle]]
+[[!template text="unsynchronized lyrics within ID3 tags," start="00:01:38.479" video="qnaVideo" id=subtitle]]
+[[!template text="multi-line metadata?" start="00:01:41.360" video="qnaVideo" id=subtitle]]
+[[!template text="I don't know, actually." start="00:01:42.720" video="qnaVideo" id=subtitle]]
+[[!template text="It's funny because I was trying out" start="00:01:45.920" video="qnaVideo" id=subtitle]]
+[[!template text="different things with metadata," start="00:01:47.920" video="qnaVideo" id=subtitle]]
+[[!template text="and really the biggest thing was to" start="00:01:49.280" video="qnaVideo" id=subtitle]]
+[[!template text="figure out how to do mass tag editing." start="00:01:52.640" video="qnaVideo" id=subtitle]]
+[[!template text="And that was like..." start="00:01:55.360" video="qnaVideo" id=subtitle]]
+[[!template text="It wasn't very intuitive, like I said, with EMMS." start="00:01:56.399" video="qnaVideo" id=subtitle]]
+[[!template text="I think EMMS is really great, but its interface is huge." start="00:01:59.600" video="qnaVideo" id=subtitle]]
+[[!template text="like if you do M-x and type emms, you get," start="00:02:03.040" video="qnaVideo" id=subtitle]]
+[[!template text="I don't know, 270-some candidates." start="00:02:07.040" video="qnaVideo" id=subtitle]]
+[[!template text="There's a lot of functions going on." start="00:02:10.160" video="qnaVideo" id=subtitle]]
+[[!template text="I basically found the features that I needed to get this workflow working." start="00:02:13.200" video="qnaVideo" id=subtitle]]
+[[!template text="I would guess that you probably can do it, and if you don't," start="00:02:18.879" video="qnaVideo" id=subtitle]]
+[[!template text="if you can't do it out of the box," start="00:02:22.160" video="qnaVideo" id=subtitle]]
+[[!template text="I think you could script EMMS to do that." start="00:02:24.026" video="qnaVideo" id=subtitle]]
+[[!template text="I'd like to know more, and I'm certainly going to be investigating it." start="00:02:28.160" video="qnaVideo" id=subtitle]]
+[[!template text="I will try and post my findings somewhere online." start="00:02:33.268" video="qnaVideo" id=subtitle]]
+[[!template new="1" text="Is it possible to import batch metadata?" start="00:02:39.519" video="qnaVideo" id=subtitle]]
+[[!template text="I'm not sure. I would guess yes is the answer." start="00:02:42.080" video="qnaVideo" id=subtitle]]
+[[!template text="EMMS can connect to metadata services." start="00:02:46.496" video="qnaVideo" id=subtitle]]
+[[!template text="I haven't done that because I was just" start="00:02:50.712" video="qnaVideo" id=subtitle]]
+[[!template text="using audio files that I created myself." start="00:02:53.040" video="qnaVideo" id=subtitle]]
+[[!template text="I know that on the back end, it calls out" start="00:02:56.959" video="qnaVideo" id=subtitle]]
+[[!template text="to shell programs for tagging things." start="00:03:00.165" video="qnaVideo" id=subtitle]]
+[[!template text="There's a lot of different options that can shell out too." start="00:03:02.319" video="qnaVideo" id=subtitle]]
+[[!template text="I was using the vorbis tools to tag the particular files I was working with." start="00:03:06.165" video="qnaVideo" id=subtitle]]
+[[!template text="You can also use tiny tag, and there's some other..." start="00:03:12.239" video="qnaVideo" id=subtitle]]
+[[!template text="That might be the python library." start="00:03:15.840" video="qnaVideo" id=subtitle]]
+[[!template text="I can't remember. There's two other libraries that I can shell out to" start="00:03:17.498" video="qnaVideo" id=subtitle]]
+[[!template text="for doing metadata." start="00:03:20.971" video="qnaVideo" id=subtitle]]
+[[!template new="1" text="My current workflow for tagging music is" start="00:03:24.400" video="qnaVideo" id=subtitle]]
+[[!template text="to first apply replay gain in fubar 2000," start="00:03:26.400" video="qnaVideo" id=subtitle]]
+[[!template text="fix egregious mistakes," start="00:03:29.040" video="qnaVideo" id=subtitle]]
+[[!template text="use beats to apply metadata from music brains or discogs," start="00:03:31.119" video="qnaVideo" id=subtitle]]
+[[!template text="go over remaining albums with fubar 2000 again." start="00:03:35.118" video="qnaVideo" id=subtitle]]
+[[!template text="Is there a chance textual tagging could allow doing it all in one program?" start="00:03:38.400" video="qnaVideo" id=subtitle]]
+[[!template text="Have I experimented with mass tag update queries?" start="00:03:43.280" video="qnaVideo" id=subtitle]]
+[[!template text="I have not." start="00:03:46.400" video="qnaVideo" id=subtitle]]
+[[!template text="Again, I was just doing this workflow," start="00:03:47.280" video="qnaVideo" id=subtitle]]
+[[!template text="taking raw files with no tags and doing that." start="00:03:49.120" video="qnaVideo" id=subtitle]]
+[[!template text="I believe because it calls out to" start="00:03:54.799" video="qnaVideo" id=subtitle]]
+[[!template text="the programs in the back end," start="00:03:58.159" video="qnaVideo" id=subtitle]]
+[[!template text="I'm sure you could work that out." start="00:04:00.811" video="qnaVideo" id=subtitle]]
+[[!template text="I think EMMS would benefit from" start="00:04:03.040" video="qnaVideo" id=subtitle]]
+[[!template text="having something like that because" start="00:04:06.159" video="qnaVideo" id=subtitle]]
+[[!template text="we work with text, and being able" start="00:04:08.239" video="qnaVideo" id=subtitle]]
+[[!template text="to use Emacs as a front end for those" start="00:04:11.280" video="qnaVideo" id=subtitle]]
+[[!template text="updates would be really fantastic." start="00:04:14.000" video="qnaVideo" id=subtitle]]
+[[!template text="So really, it's just a matter of" start="00:04:16.647" video="qnaVideo" id=subtitle]]
+[[!template text="writing the interface to the external tool." start="00:04:18.560" video="qnaVideo" id=subtitle]]
+[[!template new="1" text="Is there a link to some info expanding" start="00:04:22.720" video="qnaVideo" id=subtitle]]
+[[!template text="philosophy of how to compensate musicians?" start="00:04:24.560" video="qnaVideo" id=subtitle]]
+[[!template text="No, I don't really have a lot of" start="00:04:28.479" video="qnaVideo" id=subtitle]]
+[[!template text="philosophy around that." start="00:04:31.199" video="qnaVideo" id=subtitle]]
+[[!template text="I guess the first thing I could say would be" start="00:04:32.052" video="qnaVideo" id=subtitle]]
+[[!template text="something like a universal income." start="00:04:33.919" video="qnaVideo" id=subtitle]]
+[[!template text="I feel like that would solve a lot of problems," start="00:04:36.378" video="qnaVideo" id=subtitle]]
+[[!template text="if musicians could just be musicians" start="00:04:38.960" video="qnaVideo" id=subtitle]]
+[[!template text="and not have to worry about their pay." start="00:04:41.772" video="qnaVideo" id=subtitle]]
+[[!template text="I will think about it more." start="00:04:44.742" video="qnaVideo" id=subtitle]]
+[[!template text="This is one of my first forays into getting public with some of these ideas," start="00:04:46.240" video="qnaVideo" id=subtitle]]
+[[!template text="so I will try to do more" start="00:04:52.015" video="qnaVideo" id=subtitle]]
+[[!template text="and let the community know." start="00:04:53.360" video="qnaVideo" id=subtitle]]
+[[!template new="1" text="What Emacs theme am I using?" start="00:04:55.187" video="qnaVideo" id=subtitle]]
+[[!template text="Can't remember. It's one of the Kaolin themes." start="00:04:57.199" video="qnaVideo" id=subtitle]]
+[[!template text="I think it was Aurora" start="00:05:02.240" video="qnaVideo" id=subtitle]]
+[[!template text="or Bubble Gum, maybe, but the" start="00:05:05.680" video="qnaVideo" id=subtitle]]
+[[!template text="Kaolin themes are nice. I recommend them." start="00:05:09.120" video="qnaVideo" id=subtitle]]
+[[!template text="Not using Doom Emacs, Doom mode line though." start="00:05:12.880" video="qnaVideo" id=subtitle]]
+[[!template text="It's very pretty." start="00:05:16.000" video="qnaVideo" id=subtitle]]
+[[!template new="1" text="SVG support built into Emacs?" start="00:05:17.296" video="qnaVideo" id=subtitle]]
+[[!template text="I'm using Emacs 27.1, and yes, SVG support is built in." start="00:05:20.080" video="qnaVideo" id=subtitle]]
+[[!template text="I may have had to compile it with some Cairo support." start="00:05:25.520" video="qnaVideo" id=subtitle]]
+[[!template text="I don't remember for sure." start="00:05:30.639" video="qnaVideo" id=subtitle]]
+[[!template text="But yes, you can even take screenshots of your Emacs from within Emacs, in SVG." start="00:05:33.840" video="qnaVideo" id=subtitle]]
+[[!template text="It's pretty great." start="00:05:41.199" video="qnaVideo" id=subtitle]]
+[[!template text="I don't know how much more time we have" start="00:05:44.320" video="qnaVideo" id=subtitle]]
+[[!template text="left for questions." start="00:05:46.160" video="qnaVideo" id=subtitle]]
+[[!template text="That's most of the things on the etherpad." start="00:05:48.000" video="qnaVideo" id=subtitle]]
+[[!template text="(Amin: I think we have like 10 more minutes to" start="00:05:52.639" video="qnaVideo" id=subtitle]]
+[[!template text="catch up with the schedule." start="00:05:54.320" video="qnaVideo" id=subtitle]]
+[[!template text="If there are more questions," start="00:05:56.479" video="qnaVideo" id=subtitle]]
+[[!template text="feel free to answer them.)" start="00:05:59.120" video="qnaVideo" id=subtitle]]
+[[!template text="I'll start looking through IRC." start="00:06:01.919" video="qnaVideo" id=subtitle]]
+[[!template text="(Amin: And keep an eye on the pad too.)" start="00:06:05.440" video="qnaVideo" id=subtitle]]
+[[!template text="Thank you all for listening" start="00:06:09.680" video="qnaVideo" id=subtitle]]
+[[!template text="and for enjoying the talk. I'm glad it turned out well." start="00:06:12.688" video="qnaVideo" id=subtitle]]
+[[!template text="Awesome. Yeah, it's been fun so far." start="00:06:19.440" video="qnaVideo" id=subtitle]]
+[[!template text="How did I manage? I can post a snippet of that," start="00:06:36.000" video="qnaVideo" id=subtitle]]
+[[!template text="or actually I can share my screen, can't I..." start="00:06:40.015" video="qnaVideo" id=subtitle]]
+[[!template text="Okay. I actually have it up right here." start="00:06:46.319" video="qnaVideo" id=subtitle]]
+[[!template new="1" text="So I think I got this from alphapapa, to be honest." start="00:06:49.599" video="qnaVideo" id=subtitle]]
+[[!template text="I define screenshot-svg." start="00:06:53.440" video="qnaVideo" id=subtitle]]
+[[!template text="It's an interactive command. Oh yeah, there's alphapapa." start="00:07:00.960" video="qnaVideo" id=subtitle]]
+[[!template text="Okay, there we go." start="00:07:04.960" video="qnaVideo" id=subtitle]]
+[[!template text="I would like to change this so that I can get it into the copy-paste buffer" start="00:07:08.560" video="qnaVideo" id=subtitle]]
+[[!template text="so I don't have to copy the file in, but I haven't really hacked on it yet." start="00:07:13.249" video="qnaVideo" id=subtitle]]
+[[!template new="1" text="Okay, org heading colors." start="00:07:20.560" video="qnaVideo" id=subtitle]]
+[[!template text="That might be a good question." start="00:07:24.400" video="qnaVideo" id=subtitle]]
+[[!template text="I know, the presentation..." start="00:07:26.319" video="qnaVideo" id=subtitle]]
+[[!template text="Sorry, it's hard to think and type at" start="00:07:33.199" video="qnaVideo" id=subtitle]]
+[[!template text="the same time." start="00:07:35.520" video="qnaVideo" id=subtitle]]
+[[!template text="Think and talk and type." start="00:07:36.479" video="qnaVideo" id=subtitle]]
+[[!template new="1" text="So the presentation is just a" start="00:07:41.680" video="qnaVideo" id=subtitle]]
+[[!template text="normal org file, right, so I have my headers," start="00:07:45.120" video="qnaVideo" id=subtitle]]
+[[!template text="and the author--you can even stick" start="00:07:48.960" video="qnaVideo" id=subtitle]]
+[[!template text="your email and other headers in there." start="00:07:50.466" video="qnaVideo" id=subtitle]]
+[[!template text="But there's a package called org-tree-slide." start="00:07:52.560" video="qnaVideo" id=subtitle]]
+[[!template text="Whoops, why is it not..." start="00:07:57.599" video="qnaVideo" id=subtitle]]
+[[!template text="I must have not required it." start="00:08:01.440" video="qnaVideo" id=subtitle]]
+[[!template text="Good question." start="00:08:03.618" video="qnaVideo" id=subtitle]]
+[[!template text="(Amin: Grant, can you try sharing your screen maybe?)" start="00:08:04.594" video="qnaVideo" id=subtitle]]
+[[!template text="Oh, is it not shared? I'm sorry." start="00:08:09.599" video="qnaVideo" id=subtitle]]
+[[!template text="(Amin: Thank you.)" start="00:08:13.199" video="qnaVideo" id=subtitle]]
+[[!template text="There we go, should be coming up." start="00:08:17.039" video="qnaVideo" id=subtitle]]
+[[!template text="(Amin: It's coming up. Yep, we see it.)" start="00:08:22.000" video="qnaVideo" id=subtitle]]
+[[!template text="Awesome. All right. Okay. I don't know why this isn't working." start="00:08:26.720" video="qnaVideo" id=subtitle]]
+[[!template text="It was working." start="00:08:38.800" video="qnaVideo" id=subtitle]]
+[[!template text="Okay, you want to see the screenshot." start="00:08:56.080" video="qnaVideo" id=subtitle]]
+[[!template text="Whoops. Okay, I just took a screenshot." start="00:09:01.839" video="qnaVideo" id=subtitle]]
+[[!template text="So, org-tree-slide." start="00:09:06.839" video="qnaVideo" id=subtitle]]
+[[!template text="I don't know why it's not launching." start="00:09:09.760" video="qnaVideo" id=subtitle]]
+[[!template text="I thought that I had required it, but I must not have." start="00:09:12.800" video="qnaVideo" id=subtitle]]
+[[!template text="Maybe I'll try. Okay." start="00:09:16.000" video="qnaVideo" id=subtitle]]
+[[!template text="So there we go. So org-tree-slide is a way that basically uses" start="00:09:30.959" video="qnaVideo" id=subtitle]]
+[[!template text="narrowing and some kind of font tricks to..." start="00:09:34.560" video="qnaVideo" id=subtitle]]
+[[!template text="it changes your titles or your metadata into" start="00:09:38.880" video="qnaVideo" id=subtitle]]
+[[!template text="this banner for the title here," start="00:09:42.640" video="qnaVideo" id=subtitle]]
+[[!template text="and it automatically sets the faces for you." start="00:09:44.560" video="qnaVideo" id=subtitle]]
+[[!template text="You can customize that, of course. And then, as you go through the Org file," start="00:09:46.560" video="qnaVideo" id=subtitle]]
+[[!template text="you get these kind of nice animations and--" start="00:09:53.938" video="qnaVideo" id=subtitle]]
+[[!template text="what's it called--breadcrumbs up at the top." start="00:09:59.600" video="qnaVideo" id=subtitle]]
+[[!template text="So org-tree-slide. I highly recommend it." start="00:10:04.160" video="qnaVideo" id=subtitle]]
+[[!template text="It's really nice because you can give your presentation and practice it," start="00:10:06.399" video="qnaVideo" id=subtitle]]
+[[!template text="and while you're practicing it, you can edit things as well," start="00:10:10.024" video="qnaVideo" id=subtitle]]
+[[!template text="because it's still just an Org document using narrowing, you know." start="00:10:12.560" video="qnaVideo" id=subtitle]]
+[[!template text="It doesn't actually change anything." start="00:10:16.160" video="qnaVideo" id=subtitle]]
+[[!template text="Definitely recommend org-tree-slide mode." start="00:10:20.079" video="qnaVideo" id=subtitle]]
+[[!template text="Okay, let's see, what else..." start="00:10:24.079" video="qnaVideo" id=subtitle]]
+[[!template new="1" text="Share my screen to demo. Oh, that's the SVG." start="00:10:29.760" video="qnaVideo" id=subtitle]]
+[[!template text="Let's see." start="00:10:32.880" video="qnaVideo" id=subtitle]]
+[[!template text="Okay, so I don't know if you can see this now," start="00:10:39.519" video="qnaVideo" id=subtitle]]
+[[!template text="but I'm actually viewing the SVG screenshot that I took with Emacs." start="00:10:41.279" video="qnaVideo" id=subtitle]]
+[[!template text="See here's the source of it. So Emacs made that." start="00:10:49.360" video="qnaVideo" id=subtitle]]
+[[!template text="And here's the image." start="00:10:52.720" video="qnaVideo" id=subtitle]]
+[[!template text="It's cool because you can even do it again and again," start="00:10:58.160" video="qnaVideo" id=subtitle]]
+[[!template text="and open more screenshots of screenshots." start="00:11:01.570" video="qnaVideo" id=subtitle]]
+[[!template text="Yeah, definitely Emacsception. Fun stuff." start="00:11:05.360" video="qnaVideo" id=subtitle]]
+[[!template text="Anything else in chat?" start="00:11:14.880" video="qnaVideo" id=subtitle]]
+[[!template text="Heading colors? Oh, yeah. I talked about the" start="00:11:18.079" video="qnaVideo" id=subtitle]]
+[[!template text="themes. This is another Kaolin theme." start="00:11:20.160" video="qnaVideo" id=subtitle]]
+[[!template text="I think the one in the talk was maybe this one, Aurora." start="00:11:24.800" video="qnaVideo" id=subtitle]]
+[[!template text="Oh, here, there's something funny when" start="00:11:34.959" video="qnaVideo" id=subtitle]]
+[[!template text="you start org-tree-slide" start="00:11:36.560" video="qnaVideo" id=subtitle]]
+[[!template text="with a different theme." start="00:11:37.785" video="qnaVideo" id=subtitle]]
+[[!template text="This top header bar gets the faces" start="00:11:38.880" video="qnaVideo" id=subtitle]]
+[[!template text="from that previous theme." start="00:11:41.823" video="qnaVideo" id=subtitle]]
+[[!template text="I have not figured out how to fix that yet." start="00:11:43.395" video="qnaVideo" id=subtitle]]
+[[!template text="Did I have to compile to get the" start="00:11:47.760" video="qnaVideo" id=subtitle]]
+[[!template text="screenshot? I think maybe I did." start="00:11:49.200" video="qnaVideo" id=subtitle]]
+[[!template text="Yes, if I'm remembering correctly." start="00:11:51.120" video="qnaVideo" id=subtitle]]
+[[!template text="I got Emacs 27. I'm not on a Mac." start="00:11:54.480" video="qnaVideo" id=subtitle]]
+[[!template text="I saw alphapapa's comment on reddit," start="00:11:58.399" video="qnaVideo" id=subtitle]]
+[[!template text="and then I recompiled it with Cairo support." start="00:12:01.424" video="qnaVideo" id=subtitle]]
+[[!template text="Yes." start="00:12:08.839" video="qnaVideo" id=subtitle]]
+[[!template new="1" text="Okay, lots of good conversation on here." start="00:12:18.000" video="qnaVideo" id=subtitle]]
+[[!template text="Yep, I have like one or two more minutes." start="00:12:21.920" video="qnaVideo" id=subtitle]]
+[[!template text="Okay. I guess while I'm here, I might as" start="00:12:25.839" video="qnaVideo" id=subtitle]]
+[[!template text="well say thank you to the organizers." start="00:12:34.240" video="qnaVideo" id=subtitle]]
+[[!template text="I really appreciate everybody's work on this." start="00:12:36.993" video="qnaVideo" id=subtitle]]
+[[!template text="It's fun to be a part of this community." start="00:12:40.320" video="qnaVideo" id=subtitle]]
+[[!template text="I'm enjoying the other talks I've seen so far today," start="00:12:42.720" video="qnaVideo" id=subtitle]]
+[[!template text="and I'm looking forward to to the rest." start="00:12:45.929" video="qnaVideo" id=subtitle]]
+[[!template text="It's really interesting, just from being on Emacs in IRC for a few months," start="00:12:48.560" video="qnaVideo" id=subtitle]]
+[[!template text="I've already connected" start="00:12:53.570" video="qnaVideo" id=subtitle]]
+[[!template text="with a lot of interesting people" start="00:12:54.720" video="qnaVideo" id=subtitle]]
+[[!template text="and have a lot of cool connections already." start="00:12:56.959" video="qnaVideo" id=subtitle]]
+[[!template text="(Amin: Thank you for being a part of the community, Grant.)" start="00:13:04.079" video="qnaVideo" id=subtitle]]
+[[!template text="That's good to be here." start="00:13:07.519" video="qnaVideo" id=subtitle]]
+[[!template text="I have another talk tomorrow as well." start="00:13:08.883" video="qnaVideo" id=subtitle]]
+[[!template text="Oh, thanks for everyone in the Etherpad" start="00:13:16.560" video="qnaVideo" id=subtitle]]
+[[!template text="for putting more comments on these questions here" start="00:13:18.399" video="qnaVideo" id=subtitle]]
+[[!template text="and taking the notes." start="00:13:21.680" video="qnaVideo" id=subtitle]]
+[[!template text="(Amin: I think that's about all the time" start="00:13:29.360" video="qnaVideo" id=subtitle]]
+[[!template text="that we have for the Q&A." start="00:13:31.680" video="qnaVideo" id=subtitle]]
+[[!template text="Okay. Thank you again so much, Grant," start="00:13:33.040" video="qnaVideo" id=subtitle]]
+[[!template text="for your awesome talk and for popping in for questions.)" start="00:13:36.720" video="qnaVideo" id=subtitle]]
+[[!template text="Yeah, thanks again for hosting. See you later. Cheers!" start="00:13:39.920" video="qnaVideo" id=subtitle]]
diff --git a/2020/info/06.md b/2020/info/06.md
index b9cc0a27..98be1573 100644
--- a/2020/info/06.md
+++ b/2020/info/06.md
@@ -1,16 +1,15 @@
# Trivial Emacs Kits
Corwin Brust
-[[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--06-trivial-emacs-kits--corwin-brust.webm" size="114M" duration="13:41" subtitles="/2020/subtitles/emacsconf-2020--06-trivial-emacs-kits--corwin-brust.vtt"]]
-[Download compressed .webm video (12M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--06-trivial-emacs-kits--corwin-brust--vp9-q56-video-original-audio.webm)
+[[!template id=vid vidid="mainVideo" src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--06-trivial-emacs-kits--corwin-brust.webm" size="114M" duration="13:41" subtitles="/2020/subtitles/emacsconf-2020--06-trivial-emacs-kits--corwin-brust.vtt"]]
+[Download compressed .webm video (12M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--06-trivial-emacs-kits--corwin-brust--vp9-q56-video-original-audio.webm)
+[View transcript](#transcript)
Techniques to help new users bootstrap a more gentle introduction to
Emacs, one (short) init.el file at a time.
[[!inline pages="internal(2020/info/dm-notes)" raw="yes"]]
-[[!inline pages="internal(2020/info/06-transcription)" raw="yes"]]
-
<!-- from the pad --->
- Actual start and end time (EST): Start: 2020-11-28T10.45.48; Q&A
@@ -56,184 +55,240 @@ important problem space in free software, FWIW.
<a name="transcript"></a>
# Transcript
-Following is a somewhat hasty self-transcription of my talk. Please
-don't hesitate to [mailto:corwin@bru.st](ask for clarification) or to
-add any clarifications you feel helpful back into the EmacsConf wiki.
-
There is a visual gimmick underlaying the initial remarks. We are
looking at the first (first-slide ("Welcome") showing how the org
markdown looks on other editors, including cygwin emacs, Notepad++,
Sublime, VS Code, and cygwin vim. As each is closed we see the next,
until we reveal GUI Emacs running org-mode in a full-both frame.
-My name is Corwin Brust and I will be talking about getting started
-with Emacs Today. I have been an Emacs user for a long time-
-
-First of all thanks and a huge welcome to the conference..(_15s_)
-
-On behalf of and back to the other organizers. It has been cool to
-have a peek backstage.
-
-So. I've used a lot of different editors in my time. That's about 25
-years as a professional software engineer. And most of that
-time I've been using Emacs. (~54s_)
-
-I'll talk a little bit in a minute (if I can ever find my slides)
-about how I got into Emacs, but if you've used Emacs and a lot of
-other editors for a long time, something that you notice right away is
-that you get good with it in a way that stays meaningful. You learn
-new things, those things stick with you. You learn how to- how to
-make it do new tricks and then keep doing those tricks. (~1m26s_)
-
-I want to mention this conference isn't about (whoops: "this talk")
-how to adjust your configuration specifically. I don't have a bunch
-of good code samples in here. There are a bunch of other great talks,
-especially Andrew's that I think may be aimed more at that "hey, I'm
-just getting started with Emacs what are some things to try to make it
-more comfortable for me starting?" [subject/audience? cezb]. (~2m07s_)
-
-This is about how to think about the problem space more. (_2m10s_)
-
-Hopefully a good way to warm up as we start thinking about some of the
-lightning talks later on. (I'm going to bring up my IRC buffer
-[offscreen] in case I run into time- I didn't get my stopwatch started
-for this one.) (_2m25s_)
-
-So, alright: let's dive in. (_2m30s_)
-
-We assume that we want to install packages, and maybe configure some
-features. This is particularly from the perspective of where we're
-working with a bunch of others on a team and we want to get something
-done. (_2m42s_)
-
-Some of us probably have mature Emacs workflows, others may be
-installing it for the first time. (_2m50s_)
-
-So the first questions is, you know- in that context: what's the value
-proposition? Why should I mess with my machine, my mature Emacs
-configuration, impose my way of thinking and ideas over the way
-somebody else is learning Emacs? (_3m09m_)
-
-It can be [laugh] I'm off my slides here a little bit.. (_3m13s_)
-
-It can be a little tricky to learn Emacs. One thing that helps us a
-lot is if people that we are working with can tell us, kinda,
-keystroke-for-keystroke at times what to do and explain what
-everything is doing. (_3m30s_)
-
-And using the same packages as others can really help us working
-together on a project. (_3m36s_)
-
-Speaking from my personal experience, it took me decades to get to the
-point where I was excited to program in Emacs Lisp. (_3m26s_)
-
-I've programed in a lot of programming languages, but Lisp wasn't on
-my list. I looked at my config, that I was copy-pasting around from
-generation after generation of .emacs file or re-crafting it by hand
-and from Internet searches, to get things that I needed when I would
-quickly go install Emacs to start some new job or contract, and
-quickly get though that work-flow that caused me to go install the
-program. (_4m15s_)
-
-You know, just simple little one-liners that got committed to memory
-over decades eventually just lead [me] to a sort of "hey, what's going
-on here". (_4m27s_)
-
-And I credit my good friend Jeff Goff who died earlier in 2020 for my
-lifelong love of Emacs. Perhaps Erik and I will talk a little more
-about that at another talk we have scheduled but Jeff was a huge
-influence on us in a number of ways and a huge contributer to the Raku
-programming language which is very cool. (_4m52s_)
-
-So, understanding how to make a good decision about splitting up
-configuration in a way to share it with people with really different
-uses of Emacs. That's actually a complicated topic, and I want to off
-and stare at it for a second: (_5m11s_)
-
-I think Emacs is about people, so that means it is about community.
-And community means we're going to invite disagreement. In fact that
-disagreement isn't necessarily a road-block to our project, in fact
-that some of the work our project can invite us to do is to get closer
-to each other by inviting those disagreements, by learning from people
-of different styles, and from how they argue, and thinking about why
-they have that perspective and what technical benefits that perhaps
-radical point of view might carry away. Some people are really
-aggressive arguers others are very passive and really couch their
-ideas in distancing terms, "well probably this is a good idea" or
-"please double check me". Those don't always indicate how certain a
-person is. Because we're different. We have different ways of
-communicating ideas such as certainty or excitement. (_6m23s_)
-
-When we thinking about a bunch of really diverse programmers
-approaching Emacs probably one of our first really big challenges is
-just to pick what we're going to go after. There are a number of
-existing kit installs and things like this. My argument is that you
-can get pretty far just trading files around. And maybe the more
-value conversation to have is making the hard decisions, e.g. "should
-we have vertical completion", should that be out of the box and those
-that want the traditional splayed-out over a sing line such as the
-mode line will have to add a line to their configuration. (_7m26s)
-
-The way to get there?
-
-How do we find out what works?
-
-We don't want to slow down the people who are super productive with
-Emacs, and ask them to completely break their workflows to make it
-easier for new folks, at the same time we do want to make sure those
-new people. (_7m42s_)
-
-At the same time, we do want to make sure those new people arre
-excited by Emacs and not turned off by having to learn the entire
-jungle of Emacs history in the form of it's unique technical stylings
-in terms of frames, buffers, and other unique Emacs viewpoints on
-interface concepts, especially. (_8m15s_)
-
-The encouragement here is to keep using the project team as a
-crucible. Rather than following the defaults of, um, finding the
-simplest customizations that generally work, what if we tried to look
-for fairly specific configuration that we'll expect basically all of
-our developers to be using, at least when the submit bug
-reports. (_8m48s_)
-
-In particular with this, I think that degree of experimentation can
-drive back into the Emacs development process. In the development
-mailing list.. [] In the context of Emacs development as a greater
-entity, we see this struggle. We have the sense that some things can
-"never" be change. I think one thing that can help us get there is
-evidence that says "hey, my 30-40 person team is using this set of
-bindings and here is what we learned about new Emacs users coming in
-and trying that". (10m)
-
-So let's just recap real quick: in theory Emacs works out of the
-box. That means we are free to throw it all away and start over.
-[trouble with slides, again]
-
-Our goal is to enable users- to unlock our computers, to do as much
-with them as possible. My work of encouragement is experiment with it.
-And think really specifically about how the development users may be
-different from each other, as you are configuring the development
-environment of emacs for developing on a project.
-
-That's my talk, etc, answer any questions.(_12m09s_)
-
-Do you use Emacs as a Community Building Tool? (_13m15s_)
-
-Do /i/ use Emacs a community building tool? Or *how* do I use Emacs as a
-community building tool. [amin: "it doesn't say"]
-
-Yes, absolutely. I think Emacs is an ambassador to the gnu
-tool-chain. in the fullness of time we will see an Emacs that will
-make others, Android and iOS, dream. That's why that mock us and say
-that Emacs is an operating system. It's because it could be, if cared
-for it to be. It's quite a threatening product in terms of the number
-of problem spaces it can address, how many types of users it can
-satisfy. (_13m01s_)
-
-And the things that we can do to make it robust in those environments.
-We're always thinking about the weak points but is Emacs a community
-building tool? Heck yeah. (_13m13s_)
-
-[we agree that I'll write my answers to the remaining questions, I say
-thanks more, and we're done. ps, I'll get to your question or
-comments I can find a response to within the next week, I expect]
+[[!template new="1" text="My name is Corwin Brust" start="00:00:00.399" video="mainVideo" id=subtitle]]
+[[!template text="and I will be talking about getting started with Emacs today." start="00:00:02.683" video="mainVideo" id=subtitle]]
+[[!template text="I have been an Emacs user for a long time." start="00:00:08.960" video="mainVideo" id=subtitle]]
+[[!template new="1" text="First of all, thanks and a huge welcome to the conference" start="00:00:11.448" video="mainVideo" id=subtitle]]
+[[!template text="from me and and on behalf" start="00:00:15.360" video="mainVideo" id=subtitle]]
+[[!template text="and back to the other people" start="00:00:22.400" video="mainVideo" id=subtitle]]
+[[!template text="that have been helping to organize." start="00:00:24.368" video="mainVideo" id=subtitle]]
+[[!template text="It's been amazing just to be involved" start="00:00:26.080" video="mainVideo" id=subtitle]]
+[[!template text="with that and just, kind of, see backstage." start="00:00:30.480" video="mainVideo" id=subtitle]]
+[[!template new="1" text="I've used a lot of different editors in my time." start="00:00:36.399" video="mainVideo" id=subtitle]]
+[[!template text="That's about 25 years as a professional software engineer." start="00:00:42.281" video="mainVideo" id=subtitle]]
+[[!template text="And most of that time I've been using Emacs." start="00:00:52.399" video="mainVideo" id=subtitle]]
+[[!template new="1" text="I'll talk a little bit in a minute" start="00:00:54.247" video="mainVideo" id=subtitle]]
+[[!template text="(if I can ever find my slides)" start="00:00:56.160" video="mainVideo" id=subtitle]]
+[[!template text="about how I got into Emacs," start="00:01:00.960" video="mainVideo" id=subtitle]]
+[[!template text="but I think if you've used Emacs and a" start="00:01:04.479" video="mainVideo" id=subtitle]]
+[[!template text="lot of other editors for a long time," start="00:01:07.200" video="mainVideo" id=subtitle]]
+[[!template text="something that you notice right away" start="00:01:10.240" video="mainVideo" id=subtitle]]
+[[!template text="is that you get good with it in a way that stays meaningful." start="00:01:14.410" video="mainVideo" id=subtitle]]
+[[!template text="You learn new things. Those things stick with you." start="00:01:18.560" video="mainVideo" id=subtitle]]
+[[!template text="You learn how to make it do new tricks and then keep doing those tricks." start="00:01:24.199" video="mainVideo" id=subtitle]]
+[[!template new="1" text="I want to mention that this conference--oops," start="00:01:33.759" video="mainVideo" id=subtitle]]
+[[!template text="this talk isn't about how to adjust" start="00:01:39.439" video="mainVideo" id=subtitle]]
+[[!template text="your configuration specifically." start="00:01:44.829" video="mainVideo" id=subtitle]]
+[[!template text="I don't have a bunch of good code samples in here." start="00:01:46.802" video="mainVideo" id=subtitle]]
+[[!template text="There are other great talks at the conference," start="00:01:50.000" video="mainVideo" id=subtitle]]
+[[!template text="particularly Andrew's, that I looked at," start="00:01:52.451" video="mainVideo" id=subtitle]]
+[[!template text="that looked like they might be more aimed at that" start="00:01:56.411" video="mainVideo" id=subtitle]]
+[[!template text="&quot;hey, I'm just getting started with Emacs," start="00:01:59.920" video="mainVideo" id=subtitle]]
+[[!template text="what are some things to try to make" start="00:02:02.240" video="mainVideo" id=subtitle]]
+[[!template text="it more comfortable for me starting?&quot;" start="00:02:05.280" video="mainVideo" id=subtitle]]
+[[!template new="1" text="This is about how to think about the problem space." start="00:02:07.017" video="mainVideo" id=subtitle]]
+[[!template new="1" text="Hopefully, a good warm up as we start thinking about" start="00:02:09.759" video="mainVideo" id=subtitle]]
+[[!template text="some of the lightning talks a little later on." start="00:02:13.337" video="mainVideo" id=subtitle]]
+[[!template text="I'm just gonna quickly make sure" start="00:02:17.200" video="mainVideo" id=subtitle]]
+[[!template text="I can see my IRC buffer in case" start="00:02:19.835" video="mainVideo" id=subtitle]]
+[[!template text="I run into time. I didn't get my stopwatch started for this one." start="00:02:21.789" video="mainVideo" id=subtitle]]
+[[!template new="1" text="So all right, let's dive in." start="00:02:25.680" video="mainVideo" id=subtitle]]
+[[!template new="1" text="We assume that we want to install packages" start="00:02:29.680" video="mainVideo" id=subtitle]]
+[[!template text="and maybe configure some features." start="00:02:33.840" video="mainVideo" id=subtitle]]
+[[!template text="This is particularly from the perspective of" start="00:02:36.281" video="mainVideo" id=subtitle]]
+[[!template text="where we're working" start="00:02:38.319" video="mainVideo" id=subtitle]]
+[[!template text="with a bunch of people on a team" start="00:02:39.120" video="mainVideo" id=subtitle]]
+[[!template text="and we want to get something done." start="00:02:40.541" video="mainVideo" id=subtitle]]
+[[!template new="1" text="Some of us probably already have mature" start="00:02:42.160" video="mainVideo" id=subtitle]]
+[[!template text="Emacs workflows." start="00:02:44.800" video="mainVideo" id=subtitle]]
+[[!template text="Others are installing it for the first time." start="00:02:46.560" video="mainVideo" id=subtitle]]
+[[!template new="1" text="So the first question is, you know, in that context:" start="00:02:53.519" video="mainVideo" id=subtitle]]
+[[!template text="what's the value proposition?" start="00:02:57.889" video="mainVideo" id=subtitle]]
+[[!template text="Why should I mess with my machine," start="00:02:59.784" video="mainVideo" id=subtitle]]
+[[!template text="my mature Emacs configuration," start="00:03:01.532" video="mainVideo" id=subtitle]]
+[[!template text="and impose my ideas over the way somebody else is learning Emacs?" start="00:03:04.219" video="mainVideo" id=subtitle]]
+[[!template new="1" text="Well, it can be.. I'm off my slides here a little bit." start="00:03:09.815" video="mainVideo" id=subtitle]]
+[[!template new="1" text="It can be a little bit tricky" start="00:03:13.840" video="mainVideo" id=subtitle]]
+[[!template text="to learn Emacs. One thing that helps us a lot" start="00:03:16.959" video="mainVideo" id=subtitle]]
+[[!template text="is if people that we're working with" start="00:03:21.440" video="mainVideo" id=subtitle]]
+[[!template text="can tell us, kinda, keystroke for keystroke at times," start="00:03:24.720" video="mainVideo" id=subtitle]]
+[[!template text="what to do and explain what everything is doing." start="00:03:27.301" video="mainVideo" id=subtitle]]
+[[!template new="1" text="Using the same packages can really help us working together on a project." start="00:03:30.480" video="mainVideo" id=subtitle]]
+[[!template new="1" text="Speaking from my personal experience," start="00:03:35.840" video="mainVideo" id=subtitle]]
+[[!template text="it took me decades to get to the point" start="00:03:40.720" video="mainVideo" id=subtitle]]
+[[!template text="where I was excited to program in Emacs Lisp." start="00:03:42.959" video="mainVideo" id=subtitle]]
+[[!template new="1" text="I've programmed in a lot of programming languages," start="00:03:45.226" video="mainVideo" id=subtitle]]
+[[!template text="but Lisp wasn't on my list." start="00:03:47.840" video="mainVideo" id=subtitle]]
+[[!template text="I looked at my config that I was copy-pasting around" start="00:03:50.252" video="mainVideo" id=subtitle]]
+[[!template text="from generation after generation of .emacs file," start="00:03:53.680" video="mainVideo" id=subtitle]]
+[[!template text="or recrafting it from hand and from Internet searches," start="00:03:57.279" video="mainVideo" id=subtitle]]
+[[!template text="to get the things that I needed when" start="00:04:00.799" video="mainVideo" id=subtitle]]
+[[!template text="I would quickly go install Emacs at some" start="00:04:03.519" video="mainVideo" id=subtitle]]
+[[!template text="new job or contract," start="00:04:05.680" video="mainVideo" id=subtitle]]
+[[!template text="and be able to to quickly get through that workflow" start="00:04:07.680" video="mainVideo" id=subtitle]]
+[[!template text="that caused me to install the program." start="00:04:14.016" video="mainVideo" id=subtitle]]
+[[!template new="1" text="You know, just little simple one-liners that got committed to memory" start="00:04:17.440" video="mainVideo" id=subtitle]]
+[[!template text="over decades eventually just led me to a sort of &quot;hey what's going on here.&quot;" start="00:04:24.049" video="mainVideo" id=subtitle]]
+[[!template new="1" text="And I credit Jeff Goff, my good friend who died earlier in 2020," start="00:04:27.675" video="mainVideo" id=subtitle]]
+[[!template text="for my lifelong love of Emacs." start="00:04:33.520" video="mainVideo" id=subtitle]]
+[[!template text="Perhaps Erik and I will talk about that" start="00:04:37.759" video="mainVideo" id=subtitle]]
+[[!template text="a little bit more in another talk we have scheduled," start="00:04:39.280" video="mainVideo" id=subtitle]]
+[[!template text="but Jeff was a huge influence on us" start="00:04:42.000" video="mainVideo" id=subtitle]]
+[[!template text="in a number of ways," start="00:04:44.400" video="mainVideo" id=subtitle]]
+[[!template text="and a huge contributor" start="00:04:46.027" video="mainVideo" id=subtitle]]
+[[!template text="to the Raku programming language, which is very cool." start="00:04:47.732" video="mainVideo" id=subtitle]]
+[[!template new="1" text="So, understanding how to make a good decision" start="00:04:54.840" video="mainVideo" id=subtitle]]
+[[!template text="about splitting up configuration in a way to share it across" start="00:05:00.153" video="mainVideo" id=subtitle]]
+[[!template text="people with really different uses of Emacs..." start="00:05:03.680" video="mainVideo" id=subtitle]]
+[[!template text="That's actually a complicated topic" start="00:05:06.292" video="mainVideo" id=subtitle]]
+[[!template text="and I want to sort of back off and stare at it for a second." start="00:05:08.546" video="mainVideo" id=subtitle]]
+[[!template new="1" text="I think Emacs is about people, so that means it's about community." start="00:05:12.639" video="mainVideo" id=subtitle]]
+[[!template text="And community means we're going to invite disagreement." start="00:05:18.720" video="mainVideo" id=subtitle]]
+[[!template text="In fact, that disagreement isn't necessarily a road-block to our project." start="00:05:24.960" video="mainVideo" id=subtitle]]
+[[!template text="In fact, some of the work that a community project can invite us to do" start="00:05:32.687" video="mainVideo" id=subtitle]]
+[[!template text="is to get closer to each other" start="00:05:37.759" video="mainVideo" id=subtitle]]
+[[!template text="by inviting those disagreements," start="00:05:39.505" video="mainVideo" id=subtitle]]
+[[!template text="by learning from them--learning from" start="00:05:40.840" video="mainVideo" id=subtitle]]
+[[!template text="different people's styles and from how they argue," start="00:05:42.080" video="mainVideo" id=subtitle]]
+[[!template text="and thinking about why they have that perspective" start="00:05:46.880" video="mainVideo" id=subtitle]]
+[[!template text="and what technical benefits" start="00:05:50.058" video="mainVideo" id=subtitle]]
+[[!template text="that perhaps radical point of view might carry away." start="00:05:53.227" video="mainVideo" id=subtitle]]
+[[!template text="Some people are really aggressive arguers," start="00:05:55.800" video="mainVideo" id=subtitle]]
+[[!template text="and others are very passive and really" start="00:05:58.266" video="mainVideo" id=subtitle]]
+[[!template text="couch their ideas in distancing terms, to say," start="00:06:01.919" video="mainVideo" id=subtitle]]
+[[!template text="&quot;well probably, this is a good idea&quot;" start="00:06:05.824" video="mainVideo" id=subtitle]]
+[[!template text="or &quot;please double check me.&quot;" start="00:06:07.906" video="mainVideo" id=subtitle]]
+[[!template text="Those don't always necessarily indicate" start="00:06:12.479" video="mainVideo" id=subtitle]]
+[[!template text="how certain a person is, because we're different." start="00:06:15.520" video="mainVideo" id=subtitle]]
+[[!template text="We have different ways of communicating" start="00:06:17.497" video="mainVideo" id=subtitle]]
+[[!template text="ideas like certainty or excitement." start="00:06:19.520" video="mainVideo" id=subtitle]]
+[[!template new="1" text="When we think about a bunch of" start="00:06:24.560" video="mainVideo" id=subtitle]]
+[[!template text="really diverse programmers approaching Emacs," start="00:06:26.235" video="mainVideo" id=subtitle]]
+[[!template text="probably one of our first really big challenges is just" start="00:06:30.000" video="mainVideo" id=subtitle]]
+[[!template text="to pick what we're going to go after." start="00:06:36.479" video="mainVideo" id=subtitle]]
+[[!template text="There are a lot of existing kit installs and things like this." start="00:06:40.085" video="mainVideo" id=subtitle]]
+[[!template text="My argument is that you could actually get pretty far" start="00:06:49.599" video="mainVideo" id=subtitle]]
+[[!template text="just trading files around." start="00:06:54.400" video="mainVideo" id=subtitle]]
+[[!template text="Maybe the more valuable conversation to have" start="00:06:56.020" video="mainVideo" id=subtitle]]
+[[!template text="is making the hard decisions about, well," start="00:07:03.698" video="mainVideo" id=subtitle]]
+[[!template text="&quot;should we have vertical completion,&quot;" start="00:07:06.080" video="mainVideo" id=subtitle]]
+[[!template text="should that be the out of the box," start="00:07:08.000" video="mainVideo" id=subtitle]]
+[[!template text="and the people that want" start="00:07:10.080" video="mainVideo" id=subtitle]]
+[[!template text="the traditional splayed out over a single line completion," start="00:07:11.759" video="mainVideo" id=subtitle]]
+[[!template text="for example in the mode line," start="00:07:17.440" video="mainVideo" id=subtitle]]
+[[!template text="those people are going to add a line of config to their own setup?" start="00:07:19.428" video="mainVideo" id=subtitle]]
+[[!template new="1" text="The way to get there?" start="00:07:29.039" video="mainVideo" id=subtitle]]
+[[!template text="I mean, how do we find out what works?" start="00:07:30.979" video="mainVideo" id=subtitle]]
+[[!template new="1" text="We don't want to slow down the people that are super productive with Emacs" start="00:07:33.344" video="mainVideo" id=subtitle]]
+[[!template text="by asking them to completely break their workflows" start="00:07:38.587" video="mainVideo" id=subtitle]]
+[[!template text="and make it easier for new folks." start="00:07:40.879" video="mainVideo" id=subtitle]]
+[[!template new="1" text="At the same time, we do want to make sure those new people" start="00:07:42.560" video="mainVideo" id=subtitle]]
+[[!template text="are excited by Emacs and not turned off by having to learn" start="00:07:48.673" video="mainVideo" id=subtitle]]
+[[!template text="the entire jungle of Emacs history in the form of its unique" start="00:07:52.720" video="mainVideo" id=subtitle]]
+[[!template text="technical stylings for things like frames, buffers," start="00:08:00.363" video="mainVideo" id=subtitle]]
+[[!template text="and other unique Emacs viewpoints" start="00:08:07.610" video="mainVideo" id=subtitle]]
+[[!template text="on important interface concepts, especially." start="00:08:11.668" video="mainVideo" id=subtitle]]
+[[!template new="1" text="The encouragement here is to keep" start="00:08:16.240" video="mainVideo" id=subtitle]]
+[[!template text="the initialization for a project team" start="00:08:19.520" video="mainVideo" id=subtitle]]
+[[!template text="together as a crucible." start="00:08:21.680" video="mainVideo" id=subtitle]]
+[[!template text="Rather than necessarily following" start="00:08:23.280" video="mainVideo" id=subtitle]]
+[[!template text="our defaults of finding the simplest configurations" start="00:08:25.117" video="mainVideo" id=subtitle]]
+[[!template text="that generally work and letting people customize it," start="00:08:33.279" video="mainVideo" id=subtitle]]
+[[!template text="what if we tried to look" start="00:08:37.440" video="mainVideo" id=subtitle]]
+[[!template text="for fairly specific configurations" start="00:08:40.479" video="mainVideo" id=subtitle]]
+[[!template text="that we'll expect essentially all of our" start="00:08:42.346" video="mainVideo" id=subtitle]]
+[[!template text="developers to be using," start="00:08:44.159" video="mainVideo" id=subtitle]]
+[[!template text="at least when they submit bug reports." start="00:08:46.320" video="mainVideo" id=subtitle]]
+[[!template new="1" text="In particular, with this," start="00:08:52.839" video="mainVideo" id=subtitle]]
+[[!template text="I think that degree of experimentation" start="00:08:55.920" video="mainVideo" id=subtitle]]
+[[!template text="can drive back into the Emacs development process." start="00:08:59.839" video="mainVideo" id=subtitle]]
+[[!template text="In the development mailing list..." start="00:09:02.584" video="mainVideo" id=subtitle]]
+[[!template text="I'm hoping I'll get a timing cue here." start="00:09:04.800" video="mainVideo" id=subtitle]]
+[[!template text="In the context of Emacs development as a greater entity," start="00:09:15.120" video="mainVideo" id=subtitle]]
+[[!template text="we see some of these struggles." start="00:09:18.835" video="mainVideo" id=subtitle]]
+[[!template text="Should we change this default?" start="00:09:20.959" video="mainVideo" id=subtitle]]
+[[!template text="Sometimes we can have the sense that defaults in Emacs will never change." start="00:09:22.399" video="mainVideo" id=subtitle]]
+[[!template text="The conversation is too difficult." start="00:09:27.146" video="mainVideo" id=subtitle]]
+[[!template text="I think one thing that can help us get there is evidence" start="00:09:29.279" video="mainVideo" id=subtitle]]
+[[!template text="that says, &quot;hey my 30- to 40-person project" start="00:09:32.560" video="mainVideo" id=subtitle]]
+[[!template text="is using this set of bindings," start="00:09:36.160" video="mainVideo" id=subtitle]]
+[[!template text="and here's what we learned" start="00:09:38.560" video="mainVideo" id=subtitle]]
+[[!template text="about brand new Emacs users trying to come in" start="00:09:40.111" video="mainVideo" id=subtitle]]
+[[!template text="and get work done with that.&quot;" start="00:09:42.240" video="mainVideo" id=subtitle]]
+[[!template text="(Amin: Yeah you still have" start="00:09:46.800" video="mainVideo" id=subtitle]]
+[[!template text="a couple more minutes.)" start="00:09:49.360" video="mainVideo" id=subtitle]]
+[[!template text="Oh, beautiful. Okay, great." start="00:09:50.720" video="mainVideo" id=subtitle]]
+[[!template text="I will try to get through my last few slides that I cut" start="00:09:51.984" video="mainVideo" id=subtitle]]
+[[!template text="in my last walkthrough, but I think I'm" start="00:09:54.720" video="mainVideo" id=subtitle]]
+[[!template text="going quicker today, thank you." start="00:09:56.320" video="mainVideo" id=subtitle]]
+[[!template text="Thank you." start="00:09:58.320" video="mainVideo" id=subtitle]]
+[[!template new="1" text="So let's just recap real quick:" start="00:10:02.000" video="mainVideo" id=subtitle]]
+[[!template text="in theory, Emacs works out of the box." start="00:10:05.120" video="mainVideo" id=subtitle]]
+[[!template text="That means we're free to experiment." start="00:10:08.760" video="mainVideo" id=subtitle]]
+[[!template text="We can throw it all away and start over." start="00:10:12.853" video="mainVideo" id=subtitle]]
+[[!template text="As an organizational principle..." start="00:10:17.120" video="mainVideo" id=subtitle]]
+[[!template text="I don't know what I was thinking on that slide, excuse me." start="00:10:26.000" video="mainVideo" id=subtitle]]
+[[!template new="1" text="Bringing it back around to the free" start="00:10:30.079" video="mainVideo" id=subtitle]]
+[[!template text="and open source software community," start="00:10:33.440" video="mainVideo" id=subtitle]]
+[[!template text="our goal is to enable users" start="00:10:35.680" video="mainVideo" id=subtitle]]
+[[!template text="to unlock their computers, to do as much" start="00:10:39.519" video="mainVideo" id=subtitle]]
+[[!template text="with them as possible." start="00:10:41.440" video="mainVideo" id=subtitle]]
+[[!template text="That's the context to take with project initialization, but sometimes" start="00:10:43.040" video="mainVideo" id=subtitle]]
+[[!template text="it could make sense" start="00:10:47.680" video="mainVideo" id=subtitle]]
+[[!template text="to put some gloves on." start="00:10:50.800" video="mainVideo" id=subtitle]]
+[[!template text="I've thrown up on the screen here" start="00:10:52.032" video="mainVideo" id=subtitle]]
+[[!template text="just a couple of other ideas," start="00:10:53.766" video="mainVideo" id=subtitle]]
+[[!template text="ways to maybe think outside of the box." start="00:10:55.276" video="mainVideo" id=subtitle]]
+[[!template text="As you're putting together project nets," start="00:10:57.920" video="mainVideo" id=subtitle]]
+[[!template text="my words of encouragement are to experiment with it," start="00:11:01.440" video="mainVideo" id=subtitle]]
+[[!template text="try different things, and think really specifically" start="00:11:05.519" video="mainVideo" id=subtitle]]
+[[!template text="about how different the development users might be from each other" start="00:11:09.941" video="mainVideo" id=subtitle]]
+[[!template text="as you define standards for configuring" start="00:11:17.010" video="mainVideo" id=subtitle]]
+[[!template text="the user environment of Emacs" start="00:11:21.680" video="mainVideo" id=subtitle]]
+[[!template text="specifically for developing on a project." start="00:11:23.519" video="mainVideo" id=subtitle]]
+[[!template new="1" text="That's pretty much my talk." start="00:11:26.552" video="mainVideo" id=subtitle]]
+[[!template text="If there's any time, I would take a couple questions." start="00:11:29.120" video="mainVideo" id=subtitle]]
+[[!template text="(Amin: Thank you for your awesome talk, Corwin." start="00:11:32.959" video="mainVideo" id=subtitle]]
+[[!template text="I think we have one or two minutes for a few questions." start="00:11:36.480" video="mainVideo" id=subtitle]]
+[[!template text="Do you have the pad open or would you" start="00:11:49.519" video="mainVideo" id=subtitle]]
+[[!template text="like me to read the questions for you?)" start="00:11:52.000" video="mainVideo" id=subtitle]]
+[[!template text="Corwin: Oh, I managed to close the pad" start="00:11:53.839" video="mainVideo" id=subtitle]]
+[[!template text="and I am trying to open it again." start="00:11:58.000" video="mainVideo" id=subtitle]]
+[[!template text="All right, there it opened." start="00:12:00.352" video="mainVideo" id=subtitle]]
+[[!template text="Bringing it onto a screen where I can see it." start="00:12:03.519" video="mainVideo" id=subtitle]]
+[[!template text="Will you read me the first question while I drag windows around, please?" start="00:12:05.500" video="mainVideo" id=subtitle]]
+[[!template new="1" text="(Amin: Sure. It says, &quot;do you use Emacs as a community building tool?&quot;)" start="00:12:09.360" video="mainVideo" id=subtitle]]
+[[!template text="Do I use Emacs as a community building tool, or how do I?" start="00:12:15.600" video="mainVideo" id=subtitle]]
+[[!template text="(Amin: It just says do you.) Yes, absolutely." start="00:12:19.760" video="mainVideo" id=subtitle]]
+[[!template text="I think Emacs is an ambassador to the GNU tool chain." start="00:12:23.519" video="mainVideo" id=subtitle]]
+[[!template text="I think that in the fullness of time," start="00:12:29.920" video="mainVideo" id=subtitle]]
+[[!template text="we will see an Emacs" start="00:12:33.027" video="mainVideo" id=subtitle]]
+[[!template text="that makes iOS and Android and other closed-source tools dream." start="00:12:36.558" video="mainVideo" id=subtitle]]
+[[!template text="That's why they mock us and call Emacs" start="00:12:43.760" video="mainVideo" id=subtitle]]
+[[!template text="an operating system. It's because" start="00:12:46.689" video="mainVideo" id=subtitle]]
+[[!template text="it could be, if we cared for it to be." start="00:12:49.200" video="mainVideo" id=subtitle]]
+[[!template text="It's quite a threatening product" start="00:12:51.440" video="mainVideo" id=subtitle]]
+[[!template text="from the perspective of how many problem" start="00:12:55.680" video="mainVideo" id=subtitle]]
+[[!template text="spaces it can address," start="00:12:57.440" video="mainVideo" id=subtitle]]
+[[!template text="how many types of users it can satisfy," start="00:12:58.540" video="mainVideo" id=subtitle]]
+[[!template text="the things that we can do to make" start="00:13:01.519" video="mainVideo" id=subtitle]]
+[[!template text="it robust in those environments." start="00:13:04.399" video="mainVideo" id=subtitle]]
+[[!template text="I mean, we're always thinking about the weak points," start="00:13:06.456" video="mainVideo" id=subtitle]]
+[[!template text="but is Emacs a community building tool? Heck yeah." start="00:13:09.524" video="mainVideo" id=subtitle]]
+[[!template new="1" text="(Amin: There's like one or two more questions." start="00:13:14.639" video="mainVideo" id=subtitle]]
+[[!template text="I think they're more long-form so it might be better" start="00:13:18.480" video="mainVideo" id=subtitle]]
+[[!template text="if you took them off stream so you could keep the schedule on time.)" start="00:13:22.480" video="mainVideo" id=subtitle]]
+[[!template text="I would love to take those questions offline." start="00:13:26.880" video="mainVideo" id=subtitle]]
+[[!template text="I will respond to you" start="00:13:29.463" video="mainVideo" id=subtitle]]
+[[!template text="in writing if we don't get to it" start="00:13:30.908" video="mainVideo" id=subtitle]]
+[[!template text="in a breakout room." start="00:13:32.237" video="mainVideo" id=subtitle]]
+[[!template text="Thanks so much for joining us." start="00:13:33.360" video="mainVideo" id=subtitle]]
+[[!template text="I can't wait to see the rest of the" start="00:13:35.451" video="mainVideo" id=subtitle]]
+[[!template text="conference. See you there!" start="00:13:36.639" video="mainVideo" id=subtitle]]
+[[!template text="(Amin: Awesome. Thank you again so much, Corwin.)" start="00:13:38.000" video="mainVideo" id=subtitle]]
diff --git a/2020/info/07.md b/2020/info/07.md
index f4f793e7..1b9e0939 100644
--- a/2020/info/07.md
+++ b/2020/info/07.md
@@ -1,8 +1,9 @@
# Beyond Vim and Emacs: A Scalable UI Paradigm
Sid Kasivajhula
-[[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--sid-kasivajhula.webm" subtitles="/2020/subtitles/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--sid-kasivajhula.vtt" size="161MB"]]
-[Download compressed .webm video (45.1M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--sid-kasivajhula--vp9-q56-video-original-audio.webm)
+[[!template id=vid vidid="mainVideo" src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--sid-kasivajhula.webm" subtitles="/2020/subtitles/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--sid-kasivajhula.vtt" size="161MB"]]
+[Download compressed .webm video (45.1M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--sid-kasivajhula--vp9-q56-video-original-audio.webm)
+[View transcript](#transcript)
[[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--questions--sid-kasivajhula.webm" subtitles="/2020/subtitles/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--questions--sid-kasivajhula.vtt" size="40MB"]]
[Download compressed .webm video (5M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--questions--sid-kasivajhula--vp9-q56-video-original-audio.webm)
@@ -196,3 +197,323 @@ green phosphor.
epistemic-mode, now called rigpa (concept in Tibetan Buddhism, in
Dzogchen teaching, or the great completion).
- Similar idea from <http://emacs-versor.sourceforge.net>
+
+<a name="transcript"></a>
+# Transcript
+
+[[!template new="1" text="&quot;Far away in the heavenly abode" start="00:00:02.960" video="mainVideo" id=subtitle]]
+[[!template text="of the great god Indra," start="00:00:04.644" video="mainVideo" id=subtitle]]
+[[!template text="there is a wonderful net" start="00:00:06.560" video="mainVideo" id=subtitle]]
+[[!template text="which has been hung by some cunning artificer" start="00:00:07.688" video="mainVideo" id=subtitle]]
+[[!template text="in such a manner that it stretches out" start="00:00:10.160" video="mainVideo" id=subtitle]]
+[[!template text="infinitely in all directions." start="00:00:12.080" video="mainVideo" id=subtitle]]
+[[!template text="In accordance with the extravagant tastes of deities," start="00:00:14.320" video="mainVideo" id=subtitle]]
+[[!template text="the artificer has hung" start="00:00:16.938" video="mainVideo" id=subtitle]]
+[[!template text="a single glittering jewel" start="00:00:18.240" video="mainVideo" id=subtitle]]
+[[!template text="in each eye of the net," start="00:00:20.277" video="mainVideo" id=subtitle]]
+[[!template text="and since the net itself is infinite," start="00:00:22.080" video="mainVideo" id=subtitle]]
+[[!template text="the jewels are infinite in number." start="00:00:23.859" video="mainVideo" id=subtitle]]
+[[!template text="There hang the jewels," start="00:00:26.480" video="mainVideo" id=subtitle]]
+[[!template text="glittering like stars in the first magnitude," start="00:00:27.642" video="mainVideo" id=subtitle]]
+[[!template text="a wonderful sight to behold." start="00:00:30.480" video="mainVideo" id=subtitle]]
+[[!template text="Were we to select one of these jewels for inspection," start="00:00:32.681" video="mainVideo" id=subtitle]]
+[[!template text="we would discover that in its polished surface" start="00:00:35.680" video="mainVideo" id=subtitle]]
+[[!template text="there are reflected" start="00:00:38.216" video="mainVideo" id=subtitle]]
+[[!template text="all the other jewels in the net," start="00:00:39.520" video="mainVideo" id=subtitle]]
+[[!template text="infinite in number." start="00:00:41.451" video="mainVideo" id=subtitle]]
+[[!template text="If we look still more closely," start="00:00:43.360" video="mainVideo" id=subtitle]]
+[[!template text="we would see that each of the jewels reflected in this one jewel" start="00:00:45.140" video="mainVideo" id=subtitle]]
+[[!template text="reflects all the others.&quot;" start="00:00:48.960" video="mainVideo" id=subtitle]]
+[[!template text="This is the metaphor of Indra's Net," start="00:00:51.264" video="mainVideo" id=subtitle]]
+[[!template text="which is told in some schools of philosophy." start="00:00:54.000" video="mainVideo" id=subtitle]]
+[[!template text="Let's keep this metaphor in mind," start="00:00:57.615" video="mainVideo" id=subtitle]]
+[[!template text="because it'll help us understand" start="00:01:00.160" video="mainVideo" id=subtitle]]
+[[!template text="the Emacs extension that we're about to discuss." start="00:01:01.773" video="mainVideo" id=subtitle]]
+[[!template new="1" text="In editing text, there's two main paradigms:" start="00:01:06.960" video="mainVideo" id=subtitle]]
+[[!template text="one is editing at the ground level," start="00:01:12.810" video="mainVideo" id=subtitle]]
+[[!template text="where the characters that we type" start="00:01:16.880" video="mainVideo" id=subtitle]]
+[[!template text="actually appear on the screen," start="00:01:19.439" video="mainVideo" id=subtitle]]
+[[!template text="the changes we make actually occur." start="00:01:22.159" video="mainVideo" id=subtitle]]
+[[!template text="The other editing paradigm" start="00:01:28.479" video="mainVideo" id=subtitle]]
+[[!template text="is where we escape to a higher level" start="00:01:30.126" video="mainVideo" id=subtitle]]
+[[!template text="and now the characters that we type are not..." start="00:01:33.439" video="mainVideo" id=subtitle]]
+[[!template text="They don't actually appear on the screen" start="00:01:36.479" video="mainVideo" id=subtitle]]
+[[!template text="because we're not at the ground level with the text," start="00:01:39.040" video="mainVideo" id=subtitle]]
+[[!template text="we are at a higher level" start="00:01:42.748" video="mainVideo" id=subtitle]]
+[[!template text="looking down at the text" start="00:01:44.799" video="mainVideo" id=subtitle]]
+[[!template text="and regarding the text," start="00:01:48.479" video="mainVideo" id=subtitle]]
+[[!template text="referring to this world of text in terms of a language." start="00:01:50.773" video="mainVideo" id=subtitle]]
+[[!template new="1" text="For instance, we could describe this" start="00:01:56.159" video="mainVideo" id=subtitle]]
+[[!template text="world as having words and paragraphs and sentences and lines and so on." start="00:01:57.920" video="mainVideo" id=subtitle]]
+[[!template text="We could reason about this text" start="00:02:03.404" video="mainVideo" id=subtitle]]
+[[!template text="in terms of these textual entities and this textual language." start="00:02:05.985" video="mainVideo" id=subtitle]]
+[[!template text="This is the second paradigm of text editing." start="00:02:13.120" video="mainVideo" id=subtitle]]
+[[!template text="When we're in the second paradigm," start="00:02:18.640" video="mainVideo" id=subtitle]]
+[[!template text="there is a way to go down to ground level." start="00:02:22.800" video="mainVideo" id=subtitle]]
+[[!template text="You hit Enter now--or we'll hit Enter to go down to the ground level," start="00:02:25.304" video="mainVideo" id=subtitle]]
+[[!template text="and you can hit Escape" start="00:02:28.997" video="mainVideo" id=subtitle]]
+[[!template text="to go back out to the referential level." start="00:02:30.480" video="mainVideo" id=subtitle]]
+[[!template text="Enter to go down to ground level" start="00:02:33.200" video="mainVideo" id=subtitle]]
+[[!template text="and Escape to go up to the referential level." start="00:02:35.200" video="mainVideo" id=subtitle]]
+[[!template new="1" text="Now, in Vim, the nouns in this world of text" start="00:02:40.160" video="mainVideo" id=subtitle]]
+[[!template text="all share the same referential plane which we call normal mode." start="00:02:47.565" video="mainVideo" id=subtitle]]
+[[!template text="So in normal mode, all of the nouns" start="00:02:52.319" video="mainVideo" id=subtitle]]
+[[!template text="of the world of text are available," start="00:02:54.959" video="mainVideo" id=subtitle]]
+[[!template text="whether it's words or sentences or paragraphs," start="00:02:57.360" video="mainVideo" id=subtitle]]
+[[!template text="and they all share this same referential plane." start="00:03:00.959" video="mainVideo" id=subtitle]]
+[[!template text="They compete for space on the keyboard." start="00:03:08.319" video="mainVideo" id=subtitle]]
+[[!template new="1" text="An alternative way to structure these modes is" start="00:03:12.720" video="mainVideo" id=subtitle]]
+[[!template text="instead of having a single mode where all the nouns coexist," start="00:03:17.037" video="mainVideo" id=subtitle]]
+[[!template text="peacefully or otherwise," start="00:03:21.840" video="mainVideo" id=subtitle]]
+[[!template text="you instead have a dedicated mode for every noun." start="00:03:24.005" video="mainVideo" id=subtitle]]
+[[!template text="In that case, what happens is" start="00:03:30.400" video="mainVideo" id=subtitle]]
+[[!template text="because your modal spaces are now much smaller," start="00:03:32.540" video="mainVideo" id=subtitle]]
+[[!template text="you're just talking about words or paragraphs or lines or something," start="00:03:35.440" video="mainVideo" id=subtitle]]
+[[!template text="the keys that you use" start="00:03:40.593" video="mainVideo" id=subtitle]]
+[[!template text="can be much more targeted." start="00:03:42.560" video="mainVideo" id=subtitle]]
+[[!template text="You can use the same keystrokes" start="00:03:45.760" video="mainVideo" id=subtitle]]
+[[!template text="in all of your modes and they would have" start="00:03:48.560" video="mainVideo" id=subtitle]]
+[[!template text="the same ideas behind them," start="00:03:50.400" video="mainVideo" id=subtitle]]
+[[!template text="but they would have different effects" start="00:03:51.845" video="mainVideo" id=subtitle]]
+[[!template text="depending on which context you're using." start="00:03:53.280" video="mainVideo" id=subtitle]]
+[[!template text="It's the same keystrokes, different contexts." start="00:03:55.519" video="mainVideo" id=subtitle]]
+[[!template text="The advantage of that is it's often easier to change context" start="00:03:59.120" video="mainVideo" id=subtitle]]
+[[!template text="than it is to learn new key bindings." start="00:04:04.244" video="mainVideo" id=subtitle]]
+[[!template new="1" text="So let's see an example of how that works." start="00:04:07.888" video="mainVideo" id=subtitle]]
+[[!template text="We go into character mode, and if you look at the mode line" start="00:04:11.289" video="mainVideo" id=subtitle]]
+[[!template text="at the bottom of the screen there," start="00:04:14.039" video="mainVideo" id=subtitle]]
+[[!template text="you'll see that we're in character mode." start="00:04:15.439" video="mainVideo" id=subtitle]]
+[[!template text="Now, when we move up, down, left, and right," start="00:04:18.720" video="mainVideo" id=subtitle]]
+[[!template text="we're moving by character." start="00:04:21.955" video="mainVideo" id=subtitle]]
+[[!template text="We can also transform the text," start="00:04:23.919" video="mainVideo" id=subtitle]]
+[[!template text="and the transformations occur in terms of character." start="00:04:28.088" video="mainVideo" id=subtitle]]
+[[!template text="You can also go into word mode." start="00:04:32.400" video="mainVideo" id=subtitle]]
+[[!template text="In word mode, the transformations that you do are on words." start="00:04:34.207" video="mainVideo" id=subtitle]]
+[[!template text="and you try... Your movement is also in terms of words." start="00:04:40.000" video="mainVideo" id=subtitle]]
+[[!template text="So that's the level of granularity that you have." start="00:04:43.440" video="mainVideo" id=subtitle]]
+[[!template text="You could also go to line mode." start="00:04:46.560" video="mainVideo" id=subtitle]]
+[[!template text="When you're in line mode," start="00:04:49.191" video="mainVideo" id=subtitle]]
+[[!template text="you go up and down by line," start="00:04:50.720" video="mainVideo" id=subtitle]]
+[[!template text="and you can move lines" start="00:04:52.901" video="mainVideo" id=subtitle]]
+[[!template text="up and down left and right and so on." start="00:04:54.240" video="mainVideo" id=subtitle]]
+[[!template text="The transformations you do are in" start="00:04:59.120" video="mainVideo" id=subtitle]]
+[[!template text="terms of lines." start="00:05:00.880" video="mainVideo" id=subtitle]]
+[[!template text="You could also go to window mode," start="00:05:02.800" video="mainVideo" id=subtitle]]
+[[!template text="where now the objects that you're referring to are windows." start="00:05:07.682" video="mainVideo" id=subtitle]]
+[[!template text="You can move spatially amongst the windows" start="00:05:11.695" video="mainVideo" id=subtitle]]
+[[!template text="or do transformations on the windows" start="00:05:15.578" video="mainVideo" id=subtitle]]
+[[!template text="using the same keystrokes." start="00:05:17.520" video="mainVideo" id=subtitle]]
+[[!template text="So let's go to..." start="00:05:25.360" video="mainVideo" id=subtitle]]
+[[!template new="1" text="Right. One of the things," start="00:05:28.720" video="mainVideo" id=subtitle]]
+[[!template text="the principles at play here" start="00:05:32.800" video="mainVideo" id=subtitle]]
+[[!template text="is something called the Rumpelstiltskin principle," start="00:05:35.114" video="mainVideo" id=subtitle]]
+[[!template text="which is something that's known in computer science." start="00:05:37.266" video="mainVideo" id=subtitle]]
+[[!template text="If you can name something," start="00:05:40.720" video="mainVideo" id=subtitle]]
+[[!template text="then you have power over it." start="00:05:42.113" video="mainVideo" id=subtitle]]
+[[!template text="This is kind of an adaptation of that principle" start="00:05:45.824" video="mainVideo" id=subtitle]]
+[[!template text="which says that if you can name something" start="00:05:48.560" video="mainVideo" id=subtitle]]
+[[!template text="and if you can talk about it," start="00:05:51.123" video="mainVideo" id=subtitle]]
+[[!template text="then it's a noun in your editing language." start="00:05:52.572" video="mainVideo" id=subtitle]]
+[[!template text="If it's a noun, then it has..." start="00:05:56.334" video="mainVideo" id=subtitle]]
+[[!template text="It's a mode. So if we can talk about it, it's a noun." start="00:05:58.960" video="mainVideo" id=subtitle]]
+[[!template text="If it's a noun, then it's a mode." start="00:06:02.319" video="mainVideo" id=subtitle]]
+[[!template new="1" text="One of the things we've been talking a lot about is modes." start="00:06:04.818" video="mainVideo" id=subtitle]]
+[[!template text="In fact, by this principle," start="00:06:08.919" video="mainVideo" id=subtitle]]
+[[!template text="modes also should be a mode." start="00:06:12.699" video="mainVideo" id=subtitle]]
+[[!template text="You should have a mode that can reason" start="00:06:17.280" video="mainVideo" id=subtitle]]
+[[!template text="in terms of modes as objects," start="00:06:19.039" video="mainVideo" id=subtitle]]
+[[!template text="just like you have modes" start="00:06:20.639" video="mainVideo" id=subtitle]]
+[[!template text="where you can reason in terms of" start="00:06:22.300" video="mainVideo" id=subtitle]]
+[[!template text="words or lines as objects." start="00:06:23.759" video="mainVideo" id=subtitle]]
+[[!template new="1" text="So let's do that. Let's go to mode mode." start="00:06:26.560" video="mainVideo" id=subtitle]]
+[[!template text="When you go to mode mode, you see that" start="00:06:30.479" video="mainVideo" id=subtitle]]
+[[!template text="the objects that are depicted here" start="00:06:34.000" video="mainVideo" id=subtitle]]
+[[!template text="are the modes that are present in the buffer," start="00:06:35.915" video="mainVideo" id=subtitle]]
+[[!template text="which we knew about because" start="00:06:40.960" video="mainVideo" id=subtitle]]
+[[!template text="the style of editing that we had in this buffer" start="00:06:44.500" video="mainVideo" id=subtitle]]
+[[!template text="was the Vim style of editing" start="00:06:46.797" video="mainVideo" id=subtitle]]
+[[!template text="where there's an insert mode at the ground level" start="00:06:48.720" video="mainVideo" id=subtitle]]
+[[!template text="and a normal mode that you can escape to." start="00:06:51.143" video="mainVideo" id=subtitle]]
+[[!template text="You insert, enter the ground level." start="00:06:53.039" video="mainVideo" id=subtitle]]
+[[!template text="Enter to the insert mode and escape to normal mode." start="00:06:57.280" video="mainVideo" id=subtitle]]
+[[!template text="When you look at the mode mode representation," start="00:07:01.352" video="mainVideo" id=subtitle]]
+[[!template text="you see that in fact that" start="00:07:04.647" video="mainVideo" id=subtitle]]
+[[!template text="is the structure that's depicted." start="00:07:06.160" video="mainVideo" id=subtitle]]
+[[!template text="But in different situations, you might find" start="00:07:10.479" video="mainVideo" id=subtitle]]
+[[!template text="that these modes are not the" start="00:07:14.080" video="mainVideo" id=subtitle]]
+[[!template text="ones that you want." start="00:07:16.080" video="mainVideo" id=subtitle]]
+[[!template text="You want something more tailored for the specific application." start="00:07:16.922" video="mainVideo" id=subtitle]]
+[[!template text="For instance, if you're editing Lisp code" start="00:07:20.880" video="mainVideo" id=subtitle]]
+[[!template text="(or code in general, but" start="00:07:25.065" video="mainVideo" id=subtitle]]
+[[!template text="Lisp code is a particular example)," start="00:07:27.360" video="mainVideo" id=subtitle]]
+[[!template text="you might want to take advantage" start="00:07:30.880" video="mainVideo" id=subtitle]]
+[[!template text="of the structure of the code." start="00:07:32.640" video="mainVideo" id=subtitle]]
+[[!template text="For Lisp code in particular," start="00:07:34.852" video="mainVideo" id=subtitle]]
+[[!template text="we have a mode called symex-mode" start="00:07:37.599" video="mainVideo" id=subtitle]]
+[[!template text="which is able to reason about your code" start="00:07:40.960" video="mainVideo" id=subtitle]]
+[[!template text="in terms of its tree structure." start="00:07:45.414" video="mainVideo" id=subtitle]]
+[[!template text="So you can use the same keystrokes: hjkl goes left, right, up, and down," start="00:07:47.919" video="mainVideo" id=subtitle]]
+[[!template text="but you also have other keystrokes that are more specialized to the application." start="00:07:52.397" video="mainVideo" id=subtitle]]
+[[!template text="You can run the code." start="00:07:58.080" video="mainVideo" id=subtitle]]
+[[!template text="We'll see that happen here in a minute." start="00:08:01.520" video="mainVideo" id=subtitle]]
+[[!template text="You can make changes to it really quickly" start="00:08:06.960" video="mainVideo" id=subtitle]]
+[[!template text="and see the effects of those changes." start="00:08:12.240" video="mainVideo" id=subtitle]]
+[[!template text="You're doing this all in a mode" start="00:08:18.000" video="mainVideo" id=subtitle]]
+[[!template text="that's convenient for this particular application," start="00:08:19.440" video="mainVideo" id=subtitle]]
+[[!template text="which is editing Lisp code," start="00:08:22.625" video="mainVideo" id=subtitle]]
+[[!template text="and that is, in this case, symex-mode." start="00:08:25.039" video="mainVideo" id=subtitle]]
+[[!template new="1" text="Typically, when you're editing code like this," start="00:08:28.960" video="mainVideo" id=subtitle]]
+[[!template text="you'd want to be in insert mode" start="00:08:31.631" video="mainVideo" id=subtitle]]
+[[!template text="actually typing out the code," start="00:08:33.435" video="mainVideo" id=subtitle]]
+[[!template text="and then you'd want to escape to symex mode rather than normal mode," start="00:08:36.640" video="mainVideo" id=subtitle]]
+[[!template text="and then you could escape again" start="00:08:40.959" video="mainVideo" id=subtitle]]
+[[!template text="and you'd end up in normal mode." start="00:08:42.021" video="mainVideo" id=subtitle]]
+[[!template text="So this, if we go to mode mode, we see is depicted" start="00:08:44.080" video="mainVideo" id=subtitle]]
+[[!template text="as this tower where insert is at the" start="00:08:48.000" video="mainVideo" id=subtitle]]
+[[!template text="bottom and normal is at the top," start="00:08:51.040" video="mainVideo" id=subtitle]]
+[[!template text="but symex-mode is in between the two." start="00:08:52.604" video="mainVideo" id=subtitle]]
+[[!template text="You could also change that if you like." start="00:08:55.305" video="mainVideo" id=subtitle]]
+[[!template text="If you don't want symex-mode to be there," start="00:08:57.551" video="mainVideo" id=subtitle]]
+[[!template text="you could just move it to the top." start="00:08:59.566" video="mainVideo" id=subtitle]]
+[[!template text="Now you find symex is at the top" start="00:09:02.187" video="mainVideo" id=subtitle]]
+[[!template text="and you enter down to normal." start="00:09:04.392" video="mainVideo" id=subtitle]]
+[[!template text="You can see it on the status bar at the bottom there." start="00:09:06.160" video="mainVideo" id=subtitle]]
+[[!template text="Enter to insert, escape to normal, escape to symex." start="00:09:08.848" video="mainVideo" id=subtitle]]
+[[!template text="In fact, you can even add more modes" start="00:09:13.839" video="mainVideo" id=subtitle]]
+[[!template text="if you don't like the existing ones." start="00:09:16.344" video="mainVideo" id=subtitle]]
+[[!template text="Now we have an additional mode here." start="00:09:21.519" video="mainVideo" id=subtitle]]
+[[!template text="We have window mode. It goes down to symex," start="00:09:23.839" video="mainVideo" id=subtitle]]
+[[!template text="it goes down to normal." start="00:09:25.855" video="mainVideo" id=subtitle]]
+[[!template text="Enter the insert, escape to normal," start="00:09:27.519" video="mainVideo" id=subtitle]]
+[[!template text="escape to symex, escape to window." start="00:09:29.919" video="mainVideo" id=subtitle]]
+[[!template new="1" text="So we've talked... Okay, so another thing actually to note here" start="00:09:33.600" video="mainVideo" id=subtitle]]
+[[!template text="is that in editing modes," start="00:09:41.232" video="mainVideo" id=subtitle]]
+[[!template text="if you look at the mode line" start="00:09:45.360" video="mainVideo" id=subtitle]]
+[[!template text="at the bottom of the screen," start="00:09:46.486" video="mainVideo" id=subtitle]]
+[[!template text="you'll see that we are currently," start="00:09:48.399" video="mainVideo" id=subtitle]]
+[[!template text="in this buffer," start="00:09:50.257" video="mainVideo" id=subtitle]]
+[[!template text="we are currently in line mode." start="00:09:51.519" video="mainVideo" id=subtitle]]
+[[!template text="I'm going to hit Enter now" start="00:09:54.560" video="mainVideo" id=subtitle]]
+[[!template text="and you'll see that when I hit Enter," start="00:09:57.296" video="mainVideo" id=subtitle]]
+[[!template text="nothing is happening." start="00:09:59.119" video="mainVideo" id=subtitle]]
+[[!template text="It's still in line mode." start="00:10:00.627" video="mainVideo" id=subtitle]]
+[[!template text="If you hit Escape, it's still in line mode." start="00:10:02.160" video="mainVideo" id=subtitle]]
+[[!template text="You can find out the reason for that" start="00:10:05.120" video="mainVideo" id=subtitle]]
+[[!template text="by taking another meta jump out of this." start="00:10:07.200" video="mainVideo" id=subtitle]]
+[[!template text="You'll see that, in fact, the reason" start="00:10:10.640" video="mainVideo" id=subtitle]]
+[[!template text="is that we're currently in line mode," start="00:10:12.800" video="mainVideo" id=subtitle]]
+[[!template text="and line mode is the only one available" start="00:10:15.279" video="mainVideo" id=subtitle]]
+[[!template text="in this tower" start="00:10:17.360" video="mainVideo" id=subtitle]]
+[[!template text="for editing the modes that are" start="00:10:19.519" video="mainVideo" id=subtitle]]
+[[!template text="in operation in your ground level." start="00:10:21.556" video="mainVideo" id=subtitle]]
+[[!template text="In fact, line mode is all you need here," start="00:10:24.880" video="mainVideo" id=subtitle]]
+[[!template text="because this is just the nature of how these modes are laid out is in rows." start="00:10:26.898" video="mainVideo" id=subtitle]]
+[[!template text="So line mode is the most appropriate thing here." start="00:10:32.796" video="mainVideo" id=subtitle]]
+[[!template text="But you could change it to something else if you like." start="00:10:36.399" video="mainVideo" id=subtitle]]
+[[!template new="1" text="Now we've seen two towers." start="00:10:40.959" video="mainVideo" id=subtitle]]
+[[!template text="We've seen the Vim tower and we've seen also the symex tower, the Lisp tower." start="00:10:43.659" video="mainVideo" id=subtitle]]
+[[!template text="It turns out that, because we've been talking about towers now," start="00:10:53.680" video="mainVideo" id=subtitle]]
+[[!template text="by the Rumpelstiltskin principle, towers also can be talked about," start="00:10:58.880" video="mainVideo" id=subtitle]]
+[[!template text="and therefore they also are a mode." start="00:11:06.399" video="mainVideo" id=subtitle]]
+[[!template text="So how do we go to tower mode?" start="00:11:09.127" video="mainVideo" id=subtitle]]
+[[!template text="The way we go to tower mode is" start="00:11:11.200" video="mainVideo" id=subtitle]]
+[[!template text="we go in a slightly different direction," start="00:11:14.640" video="mainVideo" id=subtitle]]
+[[!template text="and we find that we are now in tower mode." start="00:11:19.200" video="mainVideo" id=subtitle]]
+[[!template text="We see that there are many towers available. We're now..." start="00:11:23.360" video="mainVideo" id=subtitle]]
+[[!template text="We're seeing several possible towers" start="00:11:29.279" video="mainVideo" id=subtitle]]
+[[!template text="that we have written to be available and for use in different buffers." start="00:11:33.440" video="mainVideo" id=subtitle]]
+[[!template text="You can edit them on the fly." start="00:11:40.344" video="mainVideo" id=subtitle]]
+[[!template text="For instance, let's enter this tower." start="00:11:42.110" video="mainVideo" id=subtitle]]
+[[!template text="Now you see that in the bottom of the..." start="00:11:48.000" video="mainVideo" id=subtitle]]
+[[!template text="In the mode line, you see that we're" start="00:11:50.180" video="mainVideo" id=subtitle]]
+[[!template text="going across all of these different modes" start="00:11:51.519" video="mainVideo" id=subtitle]]
+[[!template text="that were in the tower." start="00:11:53.944" video="mainVideo" id=subtitle]]
+[[!template text="You could escape and you could even move things around." start="00:11:56.480" video="mainVideo" id=subtitle]]
+[[!template text="You could put window mode" start="00:11:59.724" video="mainVideo" id=subtitle]]
+[[!template text="all the way at the bottom," start="00:12:00.880" video="mainVideo" id=subtitle]]
+[[!template text="right above insert mode." start="00:12:02.573" video="mainVideo" id=subtitle]]
+[[!template text="Let's see that happen. There it is," start="00:12:04.079" video="mainVideo" id=subtitle]]
+[[!template text="window is right above insert, and so on." start="00:12:06.479" video="mainVideo" id=subtitle]]
+[[!template text="The tower always reflects your current position," start="00:12:10.444" video="mainVideo" id=subtitle]]
+[[!template text="so if you're in buffer mode here and you go down to line mode," start="00:12:14.240" video="mainVideo" id=subtitle]]
+[[!template text="when you go back to mode mode, you see that we are in line mode." start="00:12:17.600" video="mainVideo" id=subtitle]]
+[[!template text="But in practice, you wouldn't have a tower this elaborate" start="00:12:22.480" video="mainVideo" id=subtitle]]
+[[!template text="because you'd rather have several smaller towers you enter," start="00:12:25.620" video="mainVideo" id=subtitle]]
+[[!template text="that you alternate between." start="00:12:29.440" video="mainVideo" id=subtitle]]
+[[!template new="1" text="Okay. So one other thing of interest here is that" start="00:12:33.360" video="mainVideo" id=subtitle]]
+[[!template text="when you're in tower mode," start="00:12:39.839" video="mainVideo" id=subtitle]]
+[[!template text="if you look at the status line at the bottom there," start="00:12:42.240" video="mainVideo" id=subtitle]]
+[[!template text="we are currently in buffer mode while we are in tower mode." start="00:12:44.740" video="mainVideo" id=subtitle]]
+[[!template text="Tower mode actually isn't a mode really. Neither is mode mode." start="00:12:49.839" video="mainVideo" id=subtitle]]
+[[!template text="They're really referential planes or meta planes." start="00:12:53.151" video="mainVideo" id=subtitle]]
+[[!template text="In any case, you can see that we're in buffer mode." start="00:12:58.000" video="mainVideo" id=subtitle]]
+[[!template text="We can take a meta jump out of this" start="00:13:01.679" video="mainVideo" id=subtitle]]
+[[!template text="to confirm that buffer mode is the only mode available" start="00:13:03.840" video="mainVideo" id=subtitle]]
+[[!template text="when we're editing towers" start="00:13:08.000" video="mainVideo" id=subtitle]]
+[[!template text="because that's the one we need," start="00:13:09.664" video="mainVideo" id=subtitle]]
+[[!template text="given that our towers are represented in individual buffers." start="00:13:11.915" video="mainVideo" id=subtitle]]
+[[!template new="1" text="Right. So let's see where we're at." start="00:13:23.200" video="mainVideo" id=subtitle]]
+[[!template text="Rumpelstiltskin principle..." start="00:13:26.320" video="mainVideo" id=subtitle]]
+[[!template text="We talked about mode mode." start="00:13:27.785" video="mainVideo" id=subtitle]]
+[[!template text="We talked about the strange loop" start="00:13:30.160" video="mainVideo" id=subtitle]]
+[[!template text="application of ground level modes in meta levels." start="00:13:32.240" video="mainVideo" id=subtitle]]
+[[!template text="We saw the different towers," start="00:13:39.600" video="mainVideo" id=subtitle]]
+[[!template text="and in fact, we're currently in Vim tower," start="00:13:41.992" video="mainVideo" id=subtitle]]
+[[!template text="where you can go to Emacs tower." start="00:13:50.720" video="mainVideo" id=subtitle]]
+[[!template text="Now, with a single keystroke, you can" start="00:13:52.860" video="mainVideo" id=subtitle]]
+[[!template text="alternate between Emacs and Vim," start="00:13:54.720" video="mainVideo" id=subtitle]]
+[[!template text="which are represented--" start="00:13:59.695" video="mainVideo" id=subtitle]]
+[[!template text="which are modeled as towers." start="00:14:01.638" video="mainVideo" id=subtitle]]
+[[!template new="1" text="So there's... One thing" start="00:14:13.360" video="mainVideo" id=subtitle]]
+[[!template text="that we've sort of alluded to is that there are two directions" start="00:14:14.760" video="mainVideo" id=subtitle]]
+[[!template text="that you can travel in" start="00:14:18.160" video="mainVideo" id=subtitle]]
+[[!template text="when you're going through this framework." start="00:14:19.494" video="mainVideo" id=subtitle]]
+[[!template text="One direction is--and we'll visualize it like so..." start="00:14:22.399" video="mainVideo" id=subtitle]]
+[[!template text="There's two directions you can travel," start="00:14:33.760" video="mainVideo" id=subtitle]]
+[[!template text="and you can either go sideways or you" start="00:14:35.120" video="mainVideo" id=subtitle]]
+[[!template text="can go up and down." start="00:14:37.040" video="mainVideo" id=subtitle]]
+[[!template text="If you go sideways, you're changing your perspective." start="00:14:38.399" video="mainVideo" id=subtitle]]
+[[!template text="So normal mode, word mode, line mode," start="00:14:41.680" video="mainVideo" id=subtitle]]
+[[!template text="window mode, and so on" start="00:14:45.440" video="mainVideo" id=subtitle]]
+[[!template text="are all different perspectives on your ground editing experience." start="00:14:46.544" video="mainVideo" id=subtitle]]
+[[!template text="The other direction you can travel in" start="00:14:51.680" video="mainVideo" id=subtitle]]
+[[!template text="is up or down, which takes you through meta levels." start="00:14:53.265" video="mainVideo" id=subtitle]]
+[[!template text="So you go from the ground level editing experience," start="00:14:56.811" video="mainVideo" id=subtitle]]
+[[!template text="up to mode mode, and then up to the tower plane, and so on, and so on." start="00:14:59.600" video="mainVideo" id=subtitle]]
+[[!template new="1" text="So this all sounds very complex," start="00:15:07.040" video="mainVideo" id=subtitle]]
+[[!template text="but the truth is it's not really that complicated," start="00:15:12.568" video="mainVideo" id=subtitle]]
+[[!template text="even though it feels that way." start="00:15:18.160" video="mainVideo" id=subtitle]]
+[[!template text="The reason it isn't that complicated" start="00:15:20.699" video="mainVideo" id=subtitle]]
+[[!template text="is because no matter how many levels" start="00:15:22.959" video="mainVideo" id=subtitle]]
+[[!template text="up or down you go and no matter where you are," start="00:15:26.480" video="mainVideo" id=subtitle]]
+[[!template text="whether you're in at the ground level" start="00:15:30.160" video="mainVideo" id=subtitle]]
+[[!template text="editing the actual text" start="00:15:32.399" video="mainVideo" id=subtitle]]
+[[!template text="or whether you're at a meta level," start="00:15:34.079" video="mainVideo" id=subtitle]]
+[[!template text="some unknown meta level and you don't know where you are," start="00:15:35.802" video="mainVideo" id=subtitle]]
+[[!template text="no matter where you are," start="00:15:39.279" video="mainVideo" id=subtitle]]
+[[!template text="the way in which you interact with it" start="00:15:41.133" video="mainVideo" id=subtitle]]
+[[!template text="is the same at every level." start="00:15:44.399" video="mainVideo" id=subtitle]]
+[[!template text="That is the great power of this approach:" start="00:15:47.519" video="mainVideo" id=subtitle]]
+[[!template text="that all of the different levels are the same." start="00:15:54.751" video="mainVideo" id=subtitle]]
+[[!template text="In fact, the complexity of the whole" start="00:16:00.880" video="mainVideo" id=subtitle]]
+[[!template text="is exactly identical to" start="00:16:03.839" video="mainVideo" id=subtitle]]
+[[!template text="the complexity of each part," start="00:16:05.545" video="mainVideo" id=subtitle]]
+[[!template text="so if you know how to edit words" start="00:16:07.657" video="mainVideo" id=subtitle]]
+[[!template text="in the ground level buffer" start="00:16:10.000" video="mainVideo" id=subtitle]]
+[[!template text="and you know how to move lines around using line mode," start="00:16:12.048" video="mainVideo" id=subtitle]]
+[[!template text="then you know how to edit any aspect of your editing experience at any level." start="00:16:15.378" video="mainVideo" id=subtitle]]
+[[!template new="1" text="So this is a pre-release demo." start="00:16:30.079" video="mainVideo" id=subtitle]]
+[[!template text="This doesn't exist on MELPA yet, but you can follow updates at this repo on github." start="00:16:31.780" video="mainVideo" id=subtitle]]
+[[!template text="If you can also be a beta tester" start="00:16:40.079" video="mainVideo" id=subtitle]]
+[[!template text="or something like that, if you like, that would be very helpful." start="00:16:43.850" video="mainVideo" id=subtitle]]
+[[!template text="You can learn more about this at" start="00:16:46.775" video="mainVideo" id=subtitle]]
+[[!template text="drym.org, which is where I house" start="00:16:50.560" video="mainVideo" id=subtitle]]
+[[!template text="the research that I work on." start="00:16:53.920" video="mainVideo" id=subtitle]]
+[[!template text="In particular, the research on epistemic levels" start="00:16:55.726" video="mainVideo" id=subtitle]]
+[[!template text="is what inspired this particular Emacs extension." start="00:17:00.154" video="mainVideo" id=subtitle]]
+[[!template text="You can also learn about" start="00:17:03.600" video="mainVideo" id=subtitle]]
+[[!template text="dialectical inheritance attribution, which is the basis of" start="00:17:05.600" video="mainVideo" id=subtitle]]
+[[!template text="a new economic system that could be fair" start="00:17:10.880" video="mainVideo" id=subtitle]]
+[[!template text="and could lead to a prosperous and happy world." start="00:17:14.559" video="mainVideo" id=subtitle]]
+[[!template text="You can follow me on Twitter at @countvajhula." start="00:17:19.439" video="mainVideo" id=subtitle]]
+[[!template text="That's it! Thank you." start="00:17:26.319" video="mainVideo" id=subtitle]]
diff --git a/2020/info/15.md b/2020/info/15.md
index 98c711e1..297b6cfe 100644
--- a/2020/info/15.md
+++ b/2020/info/15.md
@@ -53,100 +53,27 @@ website.
<a name="transcript"></a>
# Transcript
-00:00:00.080 --> 00:00:03.120
-Adolfo: Okay, excellent.
-
-00:00:03.120 --> 00:00:06.960
-Hello, everyone and
-
-00:00:06.960 --> 00:00:10.080
-nice meeting you. Let me
-
-00:00:10.080 --> 00:00:12.400
-thank the the organizer for all the
-
-00:00:12.400 --> 00:00:13.920
-organization and all the work they are
-
-00:00:13.920 --> 00:00:15.200
-doing to support us.
-
-00:00:15.200 --> 00:00:18.400
-My name is Adolfo Villafiorita.
-
-00:00:18.400 --> 00:00:20.733
-I'm teaching at the University of
-Trento.
-
-00:00:20.733 --> 00:00:24.480
-I will shortly be working at
-
-00:00:24.480 --> 00:00:26.240
-shared.tech, which is
-
-00:00:26.240 --> 00:00:29.359
-a non-profit organization developing
-
-00:00:29.359 --> 00:00:30.530
-applications to
-
-00:00:32.399 --> 00:00:35.680
-recover surplus food.
-
-00:00:35.680 --> 00:00:38.600
-The reason of the talk today
-
-00:00:38.600 --> 00:00:40.079
-and the reason I'm here today
-
-00:00:40.079 --> 00:00:42.719
-is to talk about my experience in moving
-
-00:00:42.719 --> 00:00:47.200
-from Jekyll static website generator to
-Org Mode.
-
-00:00:47.200 --> 00:00:50.700
-The reason I moved to Org Mode
-
-00:00:50.700 --> 00:00:53.100
-is to have better support for
-
-00:00:53.100 --> 00:00:56.800
-literate programming on the websites
-
-00:00:56.800 --> 00:00:58.399
-at the University of Trento, where we
-
-00:00:58.399 --> 00:01:00.480
-make available the content for the
-
-00:01:00.480 --> 00:01:04.720
-the students.
-
-00:01:04.720 --> 00:01:08.900
-First of all, what is a static
-website generator?
-
-00:01:08.900 --> 00:01:10.080
-It is basically a tool which
-
-00:01:10.080 --> 00:01:11.360
-allows you to
-
-00:01:11.360 --> 00:01:15.360
-generate HTML files out of text files
-
-00:01:15.360 --> 00:01:17.439
-containing basically two types of
-
-00:01:17.439 --> 00:01:20.700
-information: metadata and content.
+00:00:00.080 --> 00:00:03.120 Adolfo: Okay, excellent. Hello, everyone
+and nice meeting you. Let me thank the the organizer for all the
+organization and all the work they are doing to support us. My name is
+Adolfo Villafiorita. I'm teaching at the University of Trento. I will
+shortly be working at shared.tech, which is a non-profit organization
+developing applications to recover surplus food.
+
+00:00:35.680 --> 00:00:38.600 The reason of the talk today and the
+reason I'm here today is to talk about my experience in moving from
+Jekyll static website generator to Org Mode. The reason I moved to Org
+Mode is to have better support for literate programming on the
+websites at the University of Trento, where we make available the
+content for the the students.
+
+00:01:04.720 --> 00:01:08.900 First of all, what is a static website
+generator? It is basically a tool which allows you to generate HTML
+files out of text files containing basically two types of information:
+metadata and content.
00:01:20.700 --> 00:01:23.119
Metadata is a
-
-00:01:23.119 --> 00:01:26.159
set of key pairs describing the
00:01:26.159 --> 00:01:28.560
diff --git a/2020/info/20.md b/2020/info/20.md
index 4e346503..51024c41 100644
--- a/2020/info/20.md
+++ b/2020/info/20.md
@@ -1,8 +1,9 @@
# OMG Macros
Corwin Brust
-[[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--20-omg-macros--corwin-brust.webm" subtitles="/2020/subtitles/emacsconf-2020--20-omg-macros--corwin-brust.vtt"]]
-[Download compressed .webm video (24.3M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--20-omg-macros--corwin-brust--vp9-q56-video-original-audio.webm)
+[[!template id=vid vidid="mainVideo" src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--20-omg-macros--corwin-brust.webm" subtitles="/2020/subtitles/emacsconf-2020--20-omg-macros--corwin-brust.vtt"]]
+[Download compressed .webm video (24.3M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--20-omg-macros--corwin-brust--vp9-q56-video-original-audio.webm)
+[View transcript](#transcript)
Macros are a powerful tool. In the context of Emacs Lisp programming
they can also provide us with a "foot-gun" of immense proportions.
@@ -47,3 +48,486 @@ Macros are powerful and necessary. Consider how you use them?
## Do you mind if I use your macro code as inspiration for an elisp uglifier?
Have At! It's GPLv3 and you are welcome; let me know if you have any
trouble finding fruit to throw.
+
+<a name="transcript"></a>
+# Transcript
+
+[[!template id=subtitle video="mainVideo" start="00:00:00.480" text="Good evening again. I think"]]
+[[!template id=subtitle video="mainVideo" start="00:00:02.796" text="I have a little time here"]]
+[[!template id=subtitle video="mainVideo" start="00:00:04.319" text="to talk about macros."]]
+[[!template id=subtitle video="mainVideo" start="00:00:06.447" text="Is there still room in our schedule for that,"]]
+[[!template id=subtitle video="mainVideo" start="00:00:09.440" text="or should I just jump to some of"]]
+[[!template id=subtitle video="mainVideo" start="00:00:11.440" text="my thoughts on the day?"]]
+[[!template id=subtitle video="mainVideo" start="00:00:12.559" text="(Amin: Pretty sure we"]]
+[[!template id=subtitle video="mainVideo" start="00:00:15.920" text="have some time.)"]]
+[[!template id=subtitle video="mainVideo" start="00:00:17.039" text="Corwin: All right. Great. (Amin: Yeah, go for it.)"]]
+[[!template id=subtitle video="mainVideo" start="00:00:19.039" text="Well, I'll just dive into my"]]
+[[!template id=subtitle video="mainVideo" start="00:00:20.720" text="prepared thing here then."]]
+[[!template id=subtitle video="mainVideo" start="00:00:22.384" text="(Amin: yeah, actually, you're right on time, so...)"]]
+[[!template id=subtitle video="mainVideo" start="00:00:24.720" text="Corwin: oh what an amazing thing."]]
+[[!template id=subtitle video="mainVideo" start="00:00:27.664" text="I just... You know, I have been trying to do what I..."]]
+[[!template id=subtitle video="mainVideo" start="00:00:31.199" text="I've got a big thank you planned"]]
+[[!template id=subtitle video="mainVideo" start="00:00:33.040" text="at the end, but let me just say,"]]
+[[!template id=subtitle video="mainVideo" start="00:00:36.239" text="it's been really cool to watch the"]]
+[[!template id=subtitle video="mainVideo" start="00:00:39.200" text="way that people work together."]]
+[[!template id=subtitle video="mainVideo" start="00:00:42.160" text="(Amin: Absolutely. It's... This whole event today has been"]]
+[[!template id=subtitle video="mainVideo" start="00:00:46.800" text="nothing but awesome, and"]]
+[[!template id=subtitle video="mainVideo" start="00:00:50.879" text="no little part thanks to all of the help"]]
+[[!template id=subtitle video="mainVideo" start="00:00:53.120" text="from all of you guys and everyone."]]
+[[!template id=subtitle video="mainVideo" start="00:00:56.909" text="Yeah, it's awesome."]]
+[[!template id=subtitle video="mainVideo" start="00:00:59.120" text="With that, I'll just shut up for now."]]
+[[!template id=subtitle video="mainVideo" start="00:01:03.065" text="Take it away, Corwin.)"]]
+[[!template id=subtitle video="mainVideo" start="00:01:04.891" text="Corwin: Who knows how to make"]]
+[[!template id=subtitle video="mainVideo" start="00:01:06.479" text="make that the default in good old smex?"]]
+
+[[!template id=subtitle video="mainVideo" start="00:01:09.840" text="All right. So I'm gonna try to continue"]]
+[[!template id=subtitle video="mainVideo" start="00:01:12.799" text="my theme from the previous talk."]]
+[[!template id=subtitle video="mainVideo" start="00:01:14.551" text="I'm a longtime Emacs user,"]]
+[[!template id=subtitle video="mainVideo" start="00:01:16.393" text="but I'm a pretty new person"]]
+[[!template id=subtitle video="mainVideo" start="00:01:20.240" text="to trying to really understand"]]
+[[!template id=subtitle video="mainVideo" start="00:01:22.380" text="what's going on within Emacs and make"]]
+[[!template id=subtitle video="mainVideo" start="00:01:24.960" text="my customizations to it--simple for"]]
+[[!template id=subtitle video="mainVideo" start="00:01:28.240" text="what I tend to just think of will work."]]
+[[!template id=subtitle video="mainVideo" start="00:01:30.960" text="And maybe that's a nice bow"]]
+[[!template id=subtitle video="mainVideo" start="00:01:33.566" text="to put on that earlier talk."]]
+[[!template id=subtitle video="mainVideo" start="00:01:40.479" text="Let's see here now. It's C-x M-i."]]
+[[!template id=subtitle video="mainVideo" start="00:01:44.981" text="That's right."]]
+[[!template id=subtitle video="mainVideo" start="00:01:48.159" text="And let's try that again. Okay, good."]]
+[[!template id=subtitle video="mainVideo" start="00:01:52.960" text="So demoing is fun,"]]
+[[!template id=subtitle video="mainVideo" start="00:01:55.240" text="but I will save most of that"]]
+[[!template id=subtitle video="mainVideo" start="00:01:57.192" text="for tomorrow where my"]]
+[[!template id=subtitle video="mainVideo" start="00:01:59.759" text="dear friend and co-collaborator"]]
+[[!template id=subtitle video="mainVideo" start="00:02:02.750" text="in bringing you the dungeon-mode project,"]]
+[[!template id=subtitle video="mainVideo" start="00:02:04.799" text="which is sort of the exciting thing"]]
+[[!template id=subtitle video="mainVideo" start="00:02:07.261" text="that we hope you'll be interested in,"]]
+[[!template id=subtitle video="mainVideo" start="00:02:10.800" text="gets a little more of a reveal."]]
+
+[[!template id=subtitle video="mainVideo" start="00:02:15.680" text="Tonight, I'll just close saying"]]
+[[!template id=subtitle video="mainVideo" start="00:02:19.360" text="a few things about the process of"]]
+[[!template id=subtitle video="mainVideo" start="00:02:22.640" text="making it and continuing my theme of community."]]
+[[!template id=subtitle video="mainVideo" start="00:02:25.680" text="First of all, a specific and upfront shout out"]]
+[[!template id=subtitle video="mainVideo" start="00:02:29.760" text="to tv's wasamasa who"]]
+[[!template id=subtitle video="mainVideo" start="00:02:33.120" text="absolutely shaped and guided this"]]
+[[!template id=subtitle video="mainVideo" start="00:02:36.239" text="this program. I may have taken out"]]
+[[!template id=subtitle video="mainVideo" start="00:02:38.582" text="a slide with your name on it,"]]
+[[!template id=subtitle video="mainVideo" start="00:02:39.898" text="but thank you."]]
+
+[[!template id=subtitle video="mainVideo" start="00:02:43.599" text="So when we think about Emacs macros"]]
+[[!template id=subtitle video="mainVideo" start="00:02:46.479" text="and the power that they give us,"]]
+[[!template id=subtitle video="mainVideo" start="00:02:53.280" text="I think about them as a really"]]
+[[!template id=subtitle video="mainVideo" start="00:02:54.720" text="deep rabbit hole. They confuse"]]
+[[!template id=subtitle video="mainVideo" start="00:02:56.400" text="people a lot. And so, to try to center"]]
+[[!template id=subtitle video="mainVideo" start="00:03:00.239" text="myself on that, I remember first that"]]
+[[!template id=subtitle video="mainVideo" start="00:03:03.599" text="they're going to be talking to us about code."]]
+[[!template id=subtitle video="mainVideo" start="00:03:09.599" text="Excuse me, I realize I hadn't set my timer."]]
+[[!template id=subtitle video="mainVideo" start="00:03:13.519" text="Here we are."]]
+
+[[!template id=subtitle video="mainVideo" start="00:03:18.000" text="So a simple macro syntax is"]]
+[[!template id=subtitle video="mainVideo" start="00:03:20.543" text="going to generate"]]
+[[!template id=subtitle video="mainVideo" start="00:03:22.239" text="something that is implicitly confusing"]]
+[[!template id=subtitle video="mainVideo" start="00:03:25.920" text="to somebody that knows the syntax"]]
+[[!template id=subtitle video="mainVideo" start="00:03:27.657" text="of Emacs Lisp well."]]
+[[!template id=subtitle video="mainVideo" start="00:03:28.988" text="We see something like this"]]
+[[!template id=subtitle video="mainVideo" start="00:03:30.785" text="and a veteran eye says"]]
+[[!template id=subtitle video="mainVideo" start="00:03:32.784" text="&quot;That x isn't quoted. What's going on?&quot;"]]
+[[!template id=subtitle video="mainVideo" start="00:03:36.239" text="but it can be hard to miss."]]
+[[!template id=subtitle video="mainVideo" start="00:03:39.840" text="A lot of the functions (as we'll talk"]]
+[[!template id=subtitle video="mainVideo" start="00:03:43.040" text="about in a moment) that are built into Emacs"]]
+[[!template id=subtitle video="mainVideo" start="00:03:46.640" text="really are macros, so a lot of"]]
+[[!template id=subtitle video="mainVideo" start="00:03:48.572" text="Emacs features work this way."]]
+[[!template id=subtitle video="mainVideo" start="00:03:50.480" text="It might be scary, but we have to look at"]]
+[[!template id=subtitle video="mainVideo" start="00:03:53.040" text="it closely if we really want to get"]]
+[[!template id=subtitle video="mainVideo" start="00:03:54.640" text="friendly with Emacs."]]
+
+[[!template id=subtitle video="mainVideo" start="00:03:58.400" text="Let's just jump right into defmacro,"]]
+[[!template id=subtitle video="mainVideo" start="00:04:01.439" text="which is our key entry point."]]
+[[!template id=subtitle video="mainVideo" start="00:04:04.720" text="The notes from this talk"]]
+[[!template id=subtitle video="mainVideo" start="00:04:05.833" text="include the link to that,"]]
+[[!template id=subtitle video="mainVideo" start="00:04:09.420" text="which... Definitely"]]
+[[!template id=subtitle video="mainVideo" start="00:04:12.000" text="read through a couple of times."]]
+[[!template id=subtitle video="mainVideo" start="00:04:14.640" text="That may take you through"]]
+[[!template id=subtitle video="mainVideo" start="00:04:16.000" text="into the cl-def macro, which adds"]]
+[[!template id=subtitle video="mainVideo" start="00:04:19.440" text="the Common Lisp extensions."]]
+[[!template id=subtitle video="mainVideo" start="00:04:23.440" text="Definitely challenging."]]
+[[!template id=subtitle video="mainVideo" start="00:04:28.080" text="I've struggled there,"]]
+[[!template id=subtitle video="mainVideo" start="00:04:30.560" text="as we'll take a look at"]]
+[[!template id=subtitle video="mainVideo" start="00:04:31.759" text="in a moment."]]
+[[!template id=subtitle video="mainVideo" start="00:04:34.800" text="So I haven't played too much with"]]
+[[!template id=subtitle video="mainVideo" start="00:04:36.266" text="cl-maclet. Perhaps success in"]]
+[[!template id=subtitle video="mainVideo" start="00:04:38.320" text="in that keyword space"]]
+[[!template id=subtitle video="mainVideo" start="00:04:40.804" text="and figuring out what the right balance is there"]]
+[[!template id=subtitle video="mainVideo" start="00:04:44.320" text="will give me the confidence to try"]]
+[[!template id=subtitle video="mainVideo" start="00:04:46.000" text="some more lexical macros."]]
+
+[[!template id=subtitle video="mainVideo" start="00:04:51.680" text="Let me also briefly introduce"]]
+[[!template id=subtitle video="mainVideo" start="00:04:53.402" text="the comma (,) and back quote (`)."]]
+[[!template id=subtitle video="mainVideo" start="00:04:55.134" text="If you have allowed your eyes"]]
+[[!template id=subtitle video="mainVideo" start="00:04:57.389" text="to cross when you see these,"]]
+[[!template id=subtitle video="mainVideo" start="00:04:59.321" text="that's not a shameful, shameful thing."]]
+[[!template id=subtitle video="mainVideo" start="00:05:03.113" text="It's confusing, and we should be"]]
+[[!template id=subtitle video="mainVideo" start="00:05:06.080" text="alerting each other"]]
+[[!template id=subtitle video="mainVideo" start="00:05:07.543" text="when we stick macros in,"]]
+[[!template id=subtitle video="mainVideo" start="00:05:09.520" text="often by putting them in"]]
+[[!template id=subtitle video="mainVideo" start="00:05:11.199" text="different library spaces"]]
+[[!template id=subtitle video="mainVideo" start="00:05:12.255" text="for complicated projects,"]]
+[[!template id=subtitle video="mainVideo" start="00:05:14.160" text="or otherwise warning people"]]
+[[!template id=subtitle video="mainVideo" start="00:05:17.520" text="that this is not an interactive function,"]]
+[[!template id=subtitle video="mainVideo" start="00:05:19.520" text="even if you get away with using it like one."]]
+[[!template id=subtitle video="mainVideo" start="00:05:22.639" text="Watch your back."]]
+
+[[!template id=subtitle video="mainVideo" start="00:05:26.000" text="The manual itself talks about macros"]]
+[[!template id=subtitle video="mainVideo" start="00:05:32.800" text="as being a way of evaluating,"]]
+[[!template id=subtitle video="mainVideo" start="00:05:35.840" text="as being an evaluator that will take"]]
+[[!template id=subtitle video="mainVideo" start="00:05:39.993" text="our Emacs Lisp expression"]]
+[[!template id=subtitle video="mainVideo" start="00:05:42.800" text="and the set of forms that"]]
+[[!template id=subtitle video="mainVideo" start="00:05:44.800" text="will feed to it our code,"]]
+[[!template id=subtitle video="mainVideo" start="00:05:48.960" text="but it also provides us with"]]
+[[!template id=subtitle video="mainVideo" start="00:05:50.792" text="this concept of an environment."]]
+[[!template id=subtitle video="mainVideo" start="00:05:53.467" text="That's really where the power comes in."]]
+[[!template id=subtitle video="mainVideo" start="00:05:57.027" text="Through that, we can have"]]
+[[!template id=subtitle video="mainVideo" start="00:05:58.240" text="lexical variables and"]]
+[[!template id=subtitle video="mainVideo" start="00:06:00.080" text="think about--bring in some of the"]]
+[[!template id=subtitle video="mainVideo" start="00:06:03.199" text="capabilities that"]]
+[[!template id=subtitle video="mainVideo" start="00:06:06.400" text="can be harder to reach with"]]
+[[!template id=subtitle video="mainVideo" start="00:06:09.759" text="a pure declarative statement that"]]
+[[!template id=subtitle video="mainVideo" start="00:06:13.840" text="doesn't allow for top level"]]
+[[!template id=subtitle video="mainVideo" start="00:06:21.440" text="asynchronous... Asynchronicity..."]]
+[[!template id=subtitle video="mainVideo" start="00:06:28.639" text="I'm gonna basically"]]
+[[!template id=subtitle video="mainVideo" start="00:06:33.520" text="ignore the byte-compilation phase"]]
+[[!template id=subtitle video="mainVideo" start="00:06:35.577" text="for this talk"]]
+[[!template id=subtitle video="mainVideo" start="00:06:36.880" text="in order to have any prayer"]]
+[[!template id=subtitle video="mainVideo" start="00:06:38.463" text="of getting through it in the"]]
+[[!template id=subtitle video="mainVideo" start="00:06:39.919" text="remaining 9 or 11 minutes or whatever."]]
+[[!template id=subtitle video="mainVideo" start="00:06:43.600" text="But suffice to say, that's a scary space,"]]
+[[!template id=subtitle video="mainVideo" start="00:06:50.441" text="and that's really"]]
+[[!template id=subtitle video="mainVideo" start="00:06:52.240" text="the thing that you want to"]]
+[[!template id=subtitle video="mainVideo" start="00:06:53.800" text="start learning about"]]
+[[!template id=subtitle video="mainVideo" start="00:06:55.277" text="as you think about"]]
+[[!template id=subtitle video="mainVideo" start="00:06:57.199" text="taking macros on in earnest."]]
+
+[[!template id=subtitle video="mainVideo" start="00:07:02.160" text="Coming back to the comma syntax,"]]
+[[!template id=subtitle video="mainVideo" start="00:07:05.919" text="then, having given ourselves a"]]
+[[!template id=subtitle video="mainVideo" start="00:07:09.759" text="working definition for the Emacs Lisp"]]
+[[!template id=subtitle video="mainVideo" start="00:07:12.479" text="runtime environment, then we can say that"]]
+[[!template id=subtitle video="mainVideo" start="00:07:14.479" text="macros are going to"]]
+[[!template id=subtitle video="mainVideo" start="00:07:15.840" text="inject code back into that stream,"]]
+[[!template id=subtitle video="mainVideo" start="00:07:21.120" text="whereas backquote (`)"]]
+[[!template id=subtitle video="mainVideo" start="00:07:25.280" text="is going to give code back."]]
+[[!template id=subtitle video="mainVideo" start="00:07:28.479" text="to the stream--or interject, sorry,"]]
+[[!template id=subtitle video="mainVideo" start="00:07:31.919" text="it's going to interject"]]
+[[!template id=subtitle video="mainVideo" start="00:07:33.632" text="back into the stream."]]
+[[!template id=subtitle video="mainVideo" start="00:07:35.360" text="Sort of an exclamatory &quot;Excuse me,"]]
+[[!template id=subtitle video="mainVideo" start="00:07:39.840" text="I'd like to have a value here.&quot; We can take that value"]]
+[[!template id=subtitle video="mainVideo" start="00:07:46.966" text="from the environment as it exists"]]
+[[!template id=subtitle video="mainVideo" start="00:07:48.639" text="when our macro is evaluated."]]
+[[!template id=subtitle video="mainVideo" start="00:07:54.160" text="Backquote, on the other hand,"]]
+[[!template id=subtitle video="mainVideo" start="00:07:56.003" text="takes the result from that"]]
+[[!template id=subtitle video="mainVideo" start="00:08:00.560" text="and returns it back to the stream"]]
+[[!template id=subtitle video="mainVideo" start="00:08:02.201" text="for evaluation at the"]]
+[[!template id=subtitle video="mainVideo" start="00:08:03.467" text="processing level that invoked us."]]
+[[!template id=subtitle video="mainVideo" start="00:08:05.680" text="So in other words, perhaps back up to"]]
+[[!template id=subtitle video="mainVideo" start="00:08:08.720" text="a top-level eval expression where our"]]
+[[!template id=subtitle video="mainVideo" start="00:08:10.960" text="macro is invoked."]]
+
+[[!template id=subtitle video="mainVideo" start="00:08:20.080" text="I'm going to briefly bring"]]
+[[!template id=subtitle video="mainVideo" start="00:08:22.560" text="you back to the game"]]
+[[!template id=subtitle video="mainVideo" start="00:08:23.759" text="for just a moment."]]
+[[!template id=subtitle video="mainVideo" start="00:08:30.240" text="I won't linger on this slide,"]]
+[[!template id=subtitle video="mainVideo" start="00:08:32.479" text="but briefly: this is a"]]
+[[!template id=subtitle video="mainVideo" start="00:08:37.039" text="role-playing, pen and pencil,"]]
+[[!template id=subtitle video="mainVideo" start="00:08:41.615" text="physical dice tradition"]]
+[[!template id=subtitle video="mainVideo" start="00:08:43.829" text="that dates back a long time"]]
+[[!template id=subtitle video="mainVideo" start="00:08:46.320" text="from a technology perspective."]]
+[[!template id=subtitle video="mainVideo" start="00:08:48.080" text="It's old in the same way"]]
+[[!template id=subtitle video="mainVideo" start="00:08:50.727" text="that other tools that I like are old."]]
+[[!template id=subtitle video="mainVideo" start="00:08:58.560" text="It's simple to understand."]]
+[[!template id=subtitle video="mainVideo" start="00:09:00.185" text="I can communicate a lot with it"]]
+[[!template id=subtitle video="mainVideo" start="00:09:01.873" text="with a simple amount of typing"]]
+[[!template id=subtitle video="mainVideo" start="00:09:03.952" text="or scribbling something on a piece of paper."]]
+[[!template id=subtitle video="mainVideo" start="00:09:09.120" text="It has a complicated problem space of its own."]]
+
+[[!template id=subtitle video="mainVideo" start="00:09:13.500" text="Again, I don't want to"]]
+[[!template id=subtitle video="mainVideo" start="00:09:15.519" text="get too much into the game here,"]]
+[[!template id=subtitle video="mainVideo" start="00:09:18.212" text="but in this talk,"]]
+[[!template id=subtitle video="mainVideo" start="00:09:20.177" text="for the last five minutes,"]]
+[[!template id=subtitle video="mainVideo" start="00:09:22.590" text="I'll focus on the process"]]
+[[!template id=subtitle video="mainVideo" start="00:09:24.751" text="that we took to"]]
+[[!template id=subtitle video="mainVideo" start="00:09:26.640" text="automate getting data out of"]]
+[[!template id=subtitle video="mainVideo" start="00:09:29.190" text="the Org Mode tables which eventually"]]
+[[!template id=subtitle video="mainVideo" start="00:09:31.564" text="(as we'll talk about more tomorrow)"]]
+[[!template id=subtitle video="mainVideo" start="00:09:33.855" text="are used to draw"]]
+[[!template id=subtitle video="mainVideo" start="00:09:36.000" text="game maps and other things."]]
+[[!template id=subtitle video="mainVideo" start="00:09:39.440" text="Here I talk about why we did that."]]
+[[!template id=subtitle video="mainVideo" start="00:09:42.543" text="I'm going to skip briefly past that,"]]
+[[!template id=subtitle video="mainVideo" start="00:09:45.279" text="and say instead that at a high level,"]]
+[[!template id=subtitle video="mainVideo" start="00:09:49.360" text="it's symbolic informatics."]]
+[[!template id=subtitle video="mainVideo" start="00:09:51.440" text="We're giving a symbolic name"]]
+[[!template id=subtitle video="mainVideo" start="00:09:53.519" text="to a tile set,"]]
+[[!template id=subtitle video="mainVideo" start="00:10:02.000" text="and then assigning that tile set some"]]
+[[!template id=subtitle video="mainVideo" start="00:10:04.000" text="some characteristics"]]
+[[!template id=subtitle video="mainVideo" start="00:10:04.840" text="like physical speeds, screen space"]]
+[[!template id=subtitle video="mainVideo" start="00:10:06.820" text="(a variable that we might"]]
+[[!template id=subtitle video="mainVideo" start="00:10:08.399" text="want to swap in), and so forth."]]
+[[!template id=subtitle video="mainVideo" start="00:10:12.800" text="You know, our project rests heavily on"]]
+[[!template id=subtitle video="mainVideo" start="00:10:15.200" text="Org Mode and its fundamental capabilities."]]
+[[!template id=subtitle video="mainVideo" start="00:10:21.040" text="The code I'm going to show here"]]
+[[!template id=subtitle video="mainVideo" start="00:10:28.320" text="is focused around a sticky"]]
+[[!template id=subtitle video="mainVideo" start="00:10:31.360" text="problem space in"]]
+[[!template id=subtitle video="mainVideo" start="00:10:32.380" text="information technology."]]
+[[!template id=subtitle video="mainVideo" start="00:10:33.861" text="I'm a professional software engineer"]]
+[[!template id=subtitle video="mainVideo" start="00:10:38.240" text="turned technology architect."]]
+[[!template id=subtitle video="mainVideo" start="00:10:40.362" text="I support the websites for"]]
+[[!template id=subtitle video="mainVideo" start="00:10:43.495" text="a recognizable financial services brand"]]
+[[!template id=subtitle video="mainVideo" start="00:10:46.533" text="that I don't identify"]]
+[[!template id=subtitle video="mainVideo" start="00:10:48.500" text="just so I don't accidentally end up"]]
+[[!template id=subtitle video="mainVideo" start="00:10:50.720" text="inadvertently misrepresenting my firm"]]
+[[!template id=subtitle video="mainVideo" start="00:10:54.399" text="in some financial perspective"]]
+[[!template id=subtitle video="mainVideo" start="00:10:56.456" text="if I let some other"]]
+[[!template id=subtitle video="mainVideo" start="00:10:57.760" text="companies' name slip, or my own."]]
+[[!template id=subtitle video="mainVideo" start="00:11:03.300" text="It's certainly no representation"]]
+[[!template id=subtitle video="mainVideo" start="00:11:07.700" text="of an opinion other than my own."]]
+[[!template id=subtitle video="mainVideo" start="00:11:18.800" text="So ETL has to do with moving data around."]]
+[[!template id=subtitle video="mainVideo" start="00:11:22.720" text="We have the idea of"]]
+[[!template id=subtitle video="mainVideo" start="00:11:26.240" text="a pipeline where we'll be able to verify"]]
+[[!template id=subtitle video="mainVideo" start="00:11:29.200" text="certain assumptions,"]]
+[[!template id=subtitle video="mainVideo" start="00:11:30.560" text="nominally about data quality,"]]
+[[!template id=subtitle video="mainVideo" start="00:11:32.106" text="but it could be about anything."]]
+[[!template id=subtitle video="mainVideo" start="00:11:33.600" text="Before the pipeline starts, okay,"]]
+[[!template id=subtitle video="mainVideo" start="00:11:35.630" text="we've got a state where we think"]]
+[[!template id=subtitle video="mainVideo" start="00:11:36.886" text="it should work if we run it."]]
+[[!template id=subtitle video="mainVideo" start="00:11:38.560" text="We have some extraction where we'll"]]
+[[!template id=subtitle video="mainVideo" start="00:11:41.920" text="get our sources, and we may have"]]
+[[!template id=subtitle video="mainVideo" start="00:11:43.973" text="the opportunity to"]]
+[[!template id=subtitle video="mainVideo" start="00:11:45.040" text="make some assertions there."]]
+[[!template id=subtitle video="mainVideo" start="00:11:47.327" text="In the transform stage, as well as the load,"]]
+[[!template id=subtitle video="mainVideo" start="00:11:50.510" text="things get a little dicer,"]]
+[[!template id=subtitle video="mainVideo" start="00:11:52.720" text="to the point where we come out of the"]]
+[[!template id=subtitle video="mainVideo" start="00:11:54.079" text="load stage and we should have some"]]
+[[!template id=subtitle video="mainVideo" start="00:11:55.360" text="really solid assertions again"]]
+[[!template id=subtitle video="mainVideo" start="00:11:56.676" text="that we can even go back"]]
+[[!template id=subtitle video="mainVideo" start="00:11:57.724" text="and compare to the extract stage."]]
+[[!template id=subtitle video="mainVideo" start="00:11:59.680" text="From this, we have the rudimentaries"]]
+[[!template id=subtitle video="mainVideo" start="00:12:02.639" text="of a data quality practice."]]
+[[!template id=subtitle video="mainVideo" start="00:12:04.959" text="In this case, we have a number of"]]
+[[!template id=subtitle video="mainVideo" start="00:12:08.120" text="Org Mode files that will all"]]
+[[!template id=subtitle video="mainVideo" start="00:12:09.360" text="be distributed across a"]]
+[[!template id=subtitle video="mainVideo" start="00:12:12.639" text="number of players' computers,"]]
+[[!template id=subtitle video="mainVideo" start="00:12:16.720" text="so we might not want to update every"]]
+[[!template id=subtitle video="mainVideo" start="00:12:18.959" text="part of every buffer."]]
+[[!template id=subtitle video="mainVideo" start="00:12:20.320" text="I think it's a complicated problem space."]]
+[[!template id=subtitle video="mainVideo" start="00:12:22.720" text="So we tried to take"]]
+[[!template id=subtitle video="mainVideo" start="00:12:24.560" text="a long-term view of"]]
+[[!template id=subtitle video="mainVideo" start="00:12:27.839" text="the solution that we needed."]]
+[[!template id=subtitle video="mainVideo" start="00:12:30.321" text="So I'll go ahead"]]
+[[!template id=subtitle video="mainVideo" start="00:12:32.160" text="and open up the function that..."]]
+[[!template id=subtitle video="mainVideo" start="00:12:36.279" text="Let's actually start with the one"]]
+[[!template id=subtitle video="mainVideo" start="00:12:39.020" text="that's pretty easy to read."]]
+[[!template id=subtitle video="mainVideo" start="00:12:41.680" text="I'm gonna go ahead and just crank it up huge,"]]
+[[!template id=subtitle video="mainVideo" start="00:12:46.800" text="in case anybody's watching in 480."]]
+
+[[!template id=subtitle video="mainVideo" start="00:12:51.680" text="This program is not a work of art."]]
+[[!template id=subtitle video="mainVideo" start="00:12:57.733" text="It's a simple implementation of the idea that"]]
+[[!template id=subtitle video="mainVideo" start="00:13:01.120" text="an alist of functions"]]
+[[!template id=subtitle video="mainVideo" start="00:13:04.000" text="that return maybe some data,"]]
+[[!template id=subtitle video="mainVideo" start="00:13:06.633" text="maybe some data and an entry back into that alist,"]]
+[[!template id=subtitle video="mainVideo" start="00:13:10.399" text="can be done quite extensively with"]]
+[[!template id=subtitle video="mainVideo" start="00:13:13.040" text="very few lines of code."]]
+[[!template id=subtitle video="mainVideo" start="00:13:15.680" text="Neither is it an especially tight"]]
+[[!template id=subtitle video="mainVideo" start="00:13:17.586" text="or thrifty implementation."]]
+[[!template id=subtitle video="mainVideo" start="00:13:19.600" text="It's just trying to get the job done"]]
+[[!template id=subtitle video="mainVideo" start="00:13:22.000" text="with a doc statement for everything."]]
+[[!template id=subtitle video="mainVideo" start="00:13:25.056" text="At the heart, we see a call to"]]
+[[!template id=subtitle video="mainVideo" start="00:13:28.595" text="this macro called dm-coalesce-hash,"]]
+[[!template id=subtitle video="mainVideo" start="00:13:32.067" text="and that's what I'd like to focus in on."]]
+[[!template id=subtitle video="mainVideo" start="00:13:33.714" text="You can see... I think"]]
+[[!template id=subtitle video="mainVideo" start="00:13:35.360" text="that something unpleasant is happening here."]]
+[[!template id=subtitle video="mainVideo" start="00:13:38.800" text="I've got an eval in what is..."]]
+
+[[!template id=subtitle video="mainVideo" start="00:13:43.991" text="I will share a fairly central function"]]
+[[!template id=subtitle video="mainVideo" start="00:13:49.519" text="that those implementing this ETL pattern are"]]
+[[!template id=subtitle video="mainVideo" start="00:13:52.160" text="welcome to derive from."]]
+[[!template id=subtitle video="mainVideo" start="00:13:54.933" text="That is, this is a default transform"]]
+[[!template id=subtitle video="mainVideo" start="00:13:57.680" text="that you can get when loading certain kinds of"]]
+[[!template id=subtitle video="mainVideo" start="00:14:00.959" text="org-mode tables that have been"]]
+[[!template id=subtitle video="mainVideo" start="00:14:04.560" text="properly adorned. Again, we'll get"]]
+[[!template id=subtitle video="mainVideo" start="00:14:06.399" text="into that all tomorrow."]]
+[[!template id=subtitle video="mainVideo" start="00:14:09.120" text="So, keeping an eye on time. Couple minutes left."]]
+
+[[!template id=subtitle video="mainVideo" start="00:14:11.900" text="Let's look at the macro itself."]]
+[[!template id=subtitle video="mainVideo" start="00:14:13.760" text="I have a slide on this,"]]
+[[!template id=subtitle video="mainVideo" start="00:14:15.000" text="but let's go ahead and risk getting off page."]]
+[[!template id=subtitle video="mainVideo" start="00:14:24.639" text="Oh boy. Here we go. So this is my"]]
+[[!template id=subtitle video="mainVideo" start="00:14:27.199" text="utilities bucket."]]
+[[!template id=subtitle video="mainVideo" start="00:14:28.959" text="It has such basic features as &quot;give me a"]]
+[[!template id=subtitle video="mainVideo" start="00:14:31.920" text="hash table with some defaults, I'll think"]]
+[[!template id=subtitle video="mainVideo" start="00:14:34.000" text="about that later,&quot;"]]
+[[!template id=subtitle video="mainVideo" start="00:14:36.000" text="and &quot;add to list,&quot; a special version"]]
+[[!template id=subtitle video="mainVideo" start="00:14:44.720" text="that enables us to be a little cavalier"]]
+[[!template id=subtitle video="mainVideo" start="00:14:47.600" text="in experimenting with alist versus"]]
+[[!template id=subtitle video="mainVideo" start="00:14:49.360" text="hashes versus plists."]]
+[[!template id=subtitle video="mainVideo" start="00:14:50.967" text="We've made a right mess for ourselves"]]
+[[!template id=subtitle video="mainVideo" start="00:14:53.178" text="in the proof of concept area,"]]
+[[!template id=subtitle video="mainVideo" start="00:14:54.399" text="and it's ripe for someone to write a"]]
+[[!template id=subtitle video="mainVideo" start="00:14:57.433" text="whitepaper about"]]
+[[!template id=subtitle video="mainVideo" start="00:14:58.560" text="when to prefer these things."]]
+[[!template id=subtitle video="mainVideo" start="00:15:04.800" text="The merge alist..."]]
+[[!template id=subtitle video="mainVideo" start="00:15:08.000" text="Same work here. Let's get down to business."]]
+
+[[!template id=subtitle video="mainVideo" start="00:15:12.959" text="This function has quite a..."]]
+[[!template id=subtitle video="mainVideo" start="00:15:14.667" text="This macro has quite a doc string."]]
+[[!template id=subtitle video="mainVideo" start="00:15:17.467" text="I think I mentioned earlier that I got myself into"]]
+[[!template id=subtitle video="mainVideo" start="00:15:20.720" text="trouble with the keyword properties."]]
+[[!template id=subtitle video="mainVideo" start="00:15:22.088" text="You can see that we have"]]
+[[!template id=subtitle video="mainVideo" start="00:15:23.519" text="not only quite a number of them,"]]
+[[!template id=subtitle video="mainVideo" start="00:15:27.359" text="but a lot of default values,"]]
+[[!template id=subtitle video="mainVideo" start="00:15:31.155" text="many of which may be relying on"]]
+[[!template id=subtitle video="mainVideo" start="00:15:35.446" text="the values that are passed in here."]]
+[[!template id=subtitle video="mainVideo" start="00:15:37.264" text="This is complicated. As it turns out,"]]
+[[!template id=subtitle video="mainVideo" start="00:15:40.000" text="I wasn't brave enough in most cases"]]
+[[!template id=subtitle video="mainVideo" start="00:15:44.000" text="to try to write a lambda"]]
+[[!template id=subtitle video="mainVideo" start="00:15:45.485" text="that could understand and"]]
+[[!template id=subtitle video="mainVideo" start="00:15:47.279" text="replace its own local variable."]]
+[[!template id=subtitle video="mainVideo" start="00:15:49.300" text="I just didn't..."]]
+[[!template id=subtitle video="mainVideo" start="00:15:50.399" text="It didn't save me enough time. This was"]]
+[[!template id=subtitle video="mainVideo" start="00:15:53.519" text="really easy to read and write and understand"]]
+[[!template id=subtitle video="mainVideo" start="00:15:56.532" text="as I thought through my problem,"]]
+[[!template id=subtitle video="mainVideo" start="00:15:58.240" text="but now, as I use it,"]]
+[[!template id=subtitle video="mainVideo" start="00:16:00.000" text="I've lost a little ground with this."]]
+[[!template id=subtitle video="mainVideo" start="00:16:02.486" text="I'm not even sure"]]
+[[!template id=subtitle video="mainVideo" start="00:16:04.079" text="I like what I got from"]]
+[[!template id=subtitle video="mainVideo" start="00:16:06.453" text="the many keyword properties when it..."]]
+[[!template id=subtitle video="mainVideo" start="00:16:09.341" text="And we can look, perhaps if we have"]]
+[[!template id=subtitle video="mainVideo" start="00:16:11.920" text="the time, at what that looks like in"]]
+[[!template id=subtitle video="mainVideo" start="00:16:19.920" text="Oh, all right, I have to separately"]]
+[[!template id=subtitle video="mainVideo" start="00:16:22.720" text="dismiss and restart that."]]
+
+[[!template id=subtitle video="mainVideo" start="00:16:24.480" text="So that's just about my time."]]
+[[!template id=subtitle video="mainVideo" start="00:16:27.519" text="Being respectful of that, I want"]]
+[[!template id=subtitle video="mainVideo" start="00:16:29.600" text="to invite presenters to just jump in at"]]
+[[!template id=subtitle video="mainVideo" start="00:16:31.920" text="any of the many large pauses I leave."]]
+[[!template id=subtitle video="mainVideo" start="00:16:35.519" text="I'll just leave up the doc string"]]
+[[!template id=subtitle video="mainVideo" start="00:16:38.079" text="for a moment and maybe split the screen"]]
+[[!template id=subtitle video="mainVideo" start="00:16:40.160" text="and pull open an item."]]
+[[!template id=subtitle video="mainVideo" start="00:16:45.199" text="(Amin: Thank you very"]]
+[[!template id=subtitle video="mainVideo" start="00:16:48.720" text="much for your talk, Corwin."]]
+[[!template id=subtitle video="mainVideo" start="00:16:50.720" text="I think you still have"]]
+[[!template id=subtitle video="mainVideo" start="00:16:53.839" text="maybe three or four more minutes,"]]
+[[!template id=subtitle video="mainVideo" start="00:16:55.027" text="if you want to quickly wrap up.)"]]
+[[!template id=subtitle video="mainVideo" start="00:16:57.680" text="Corwin: Okay, so three or four more minutes"]]
+[[!template id=subtitle video="mainVideo" start="00:17:00.644" text="I can easily spend on thank yous."]]
+[[!template id=subtitle video="mainVideo" start="00:17:05.439" text="I might switch to that if there aren't"]]
+[[!template id=subtitle video="mainVideo" start="00:17:07.280" text="questions on the pad."]]
+[[!template id=subtitle video="mainVideo" start="00:17:10.160" text="(Amin: Would you like me to pull up the pad,"]]
+[[!template id=subtitle video="mainVideo" start="00:17:12.559" text="or are you looking at it?)"]]
+[[!template id=subtitle video="mainVideo" start="00:17:14.079" text="Corwin: I am. I bookmarked it."]]
+[[!template id=subtitle video="mainVideo" start="00:17:16.777" text="I am pulling the tab and I'll bring it in."]]
+[[!template id=subtitle video="mainVideo" start="00:17:30.840" text="Okay. All right. This is the wrong Etherpad."]]
+[[!template id=subtitle video="mainVideo" start="00:17:38.799" text="Thanks for the link."]]
+[[!template id=subtitle video="mainVideo" start="00:17:44.480" text="All right. So I think I'm looking for macros."]]
+
+[[!template id=subtitle video="mainVideo" start="00:17:54.880" text="Okay. Key message. Sure."]]
+[[!template id=subtitle video="mainVideo" start="00:17:57.630" text="So, the key message is that it's"]]
+[[!template id=subtitle video="mainVideo" start="00:18:01.679" text="a jungle out there."]]
+[[!template id=subtitle video="mainVideo" start="00:18:02.960" text="Macros, along with any other design,"]]
+[[!template id=subtitle video="mainVideo" start="00:18:05.912" text="can leave you in a position"]]
+[[!template id=subtitle video="mainVideo" start="00:18:08.559" text="where you have a nice API. I can show"]]
+[[!template id=subtitle video="mainVideo" start="00:18:11.919" text="you other examples (you can find them in"]]
+[[!template id=subtitle video="mainVideo" start="00:18:13.600" text="the dungeon-mode source)"]]
+[[!template id=subtitle video="mainVideo" start="00:18:14.960" text="of many, many other places where I use"]]
+[[!template id=subtitle video="mainVideo" start="00:18:18.480" text="this exact same formula,"]]
+[[!template id=subtitle video="mainVideo" start="00:18:20.820" text="quickly sketching out how a character sheet"]]
+[[!template id=subtitle video="mainVideo" start="00:18:23.840" text="or another big data set"]]
+[[!template id=subtitle video="mainVideo" start="00:18:26.180" text="needs to figure out what tables are"]]
+[[!template id=subtitle video="mainVideo" start="00:18:28.480" text="going to be interesting"]]
+[[!template id=subtitle video="mainVideo" start="00:18:29.320" text="from the collection of files,"]]
+[[!template id=subtitle video="mainVideo" start="00:18:30.720" text="and then load up the tile set,"]]
+[[!template id=subtitle video="mainVideo" start="00:18:33.967" text="and the layout file from that."]]
+[[!template id=subtitle video="mainVideo" start="00:18:38.880" text="And I mean, it works."]]
+[[!template id=subtitle video="mainVideo" start="00:18:40.542" text="The project is moving forward with this."]]
+[[!template id=subtitle video="mainVideo" start="00:18:42.677" text="I have the flexibility that I need."]]
+[[!template id=subtitle video="mainVideo" start="00:18:44.799" text="But here I am evaling my own code"]]
+[[!template id=subtitle video="mainVideo" start="00:18:46.559" text="to make darn sure even if I get"]]
+[[!template id=subtitle video="mainVideo" start="00:18:48.640" text="byte-compiled, this macro"]]
+[[!template id=subtitle video="mainVideo" start="00:18:52.400" text="does get evaluated in the user's real"]]
+[[!template id=subtitle video="mainVideo" start="00:18:55.440" text="run time. Clearly a design fail."]]
+[[!template id=subtitle video="mainVideo" start="00:18:57.684" text="So that would be..."]]
+
+[[!template id=subtitle video="mainVideo" start="00:18:58.890" text="The key point of my talk is to"]]
+[[!template id=subtitle video="mainVideo" start="00:19:00.880" text="present this design fail and"]]
+[[!template id=subtitle video="mainVideo" start="00:19:05.600" text="thank the community, but especially"]]
+[[!template id=subtitle video="mainVideo" start="00:19:08.320" text="wasamasa for some patience."]]
+[[!template id=subtitle video="mainVideo" start="00:19:10.942" text="Let me add at this moment that"]]
+[[!template id=subtitle video="mainVideo" start="00:19:13.280" text="he was so frustrated with me."]]
+[[!template id=subtitle video="mainVideo" start="00:19:13.333" text="They were sort of frustrated with me"]]
+[[!template id=subtitle video="mainVideo" start="00:19:17.115" text="(I think I didn't qualify pronouns)"]]
+[[!template id=subtitle video="mainVideo" start="00:19:24.240" text="with doing this. The first..."]]
+[[!template id=subtitle video="mainVideo" start="00:19:26.287" text="This was one of our first interactions,"]]
+[[!template id=subtitle video="mainVideo" start="00:19:27.985" text="and the feedback was,"]]
+[[!template id=subtitle video="mainVideo" start="00:19:29.919" text="&quot;Why is this a macro. Full stop.&quot;"]]
+[[!template id=subtitle video="mainVideo" start="00:19:34.240" text="And that's a great message, actually."]]
+[[!template id=subtitle video="mainVideo" start="00:19:36.640" text="I hope that maybe this can encourage"]]
+[[!template id=subtitle video="mainVideo" start="00:19:39.520" text="further talks across the subject about,"]]
+[[!template id=subtitle video="mainVideo" start="00:19:42.720" text="you know, &quot;Hey, wait a minute,"]]
+[[!template id=subtitle video="mainVideo" start="00:19:43.808" text="macros are really fantastic,&quot;"]]
+[[!template id=subtitle video="mainVideo" start="00:19:45.549" text="as I hope I made clear."]]
+[[!template id=subtitle video="mainVideo" start="00:19:47.018" text="You can do a tremendous amount"]]
+[[!template id=subtitle video="mainVideo" start="00:19:48.559" text="with them, and we rely on them"]]
+[[!template id=subtitle video="mainVideo" start="00:19:51.039" text="for almost all the fun goodies,"]]
+[[!template id=subtitle video="mainVideo" start="00:19:55.200" text="from defun, setq..."]]
+[[!template id=subtitle video="mainVideo" start="00:20:02.159" text="I want to get to my thank yous."]]
+
+[[!template id=subtitle video="mainVideo" start="00:20:04.639" text="Let me just peek back at the pad."]]
+[[!template id=subtitle video="mainVideo" start="00:20:20.000" text="Well, that was actually a scratch buffer,"]]
+[[!template id=subtitle video="mainVideo" start="00:20:22.080" text="so I'll have to read it cold off my notes."]]
+[[!template id=subtitle video="mainVideo" start="00:20:27.919" text="But I'll switch to... I'll also..."]]
+[[!template id=subtitle video="mainVideo" start="00:20:30.320" text="I'll say a couple of thank-yous if you"]]
+[[!template id=subtitle video="mainVideo" start="00:20:31.600" text="don't mind, Amin."]]
+[[!template id=subtitle video="mainVideo" start="00:20:34.320" text="In addition to the big thank you that I"]]
+[[!template id=subtitle video="mainVideo" start="00:20:36.080" text="hope was implied by my shout out to wasamasa,"]]
+[[!template id=subtitle video="mainVideo" start="00:20:39.360" text="I also want to thank you, Amin, for"]]
+[[!template id=subtitle video="mainVideo" start="00:20:42.720" text="your kindness in extending"]]
+[[!template id=subtitle video="mainVideo" start="00:20:46.640" text="to the project as well as to me, the"]]
+[[!template id=subtitle video="mainVideo" start="00:20:51.360" text="the chance to present here."]]
+[[!template id=subtitle video="mainVideo" start="00:20:54.320" text="You've also done a lot of great stuff"]]
+[[!template id=subtitle video="mainVideo" start="00:20:56.358" text="for our project. Thank you very much for that."]]
+[[!template id=subtitle video="mainVideo" start="00:20:59.360" text="Sacha Chua (I'll get there),"]]
+[[!template id=subtitle video="mainVideo" start="00:21:03.400" text="thank you so much for"]]
+[[!template id=subtitle video="mainVideo" start="00:21:15.919" text="the inspiration that you are to our"]]
+[[!template id=subtitle video="mainVideo" start="00:21:17.200" text="whole community."]]
+[[!template id=subtitle video="mainVideo" start="00:21:18.320" text="I also want to thank the presenters"]]
+[[!template id=subtitle video="mainVideo" start="00:21:22.400" text="for just being so flexible and"]]
+[[!template id=subtitle video="mainVideo" start="00:21:25.600" text="nagging back through the whole thing,"]]
+[[!template id=subtitle video="mainVideo" start="00:21:27.600" text="and especially to Leo"]]
+[[!template id=subtitle video="mainVideo" start="00:21:29.120" text="who has done so much to drive the show today."]]
+[[!template id=subtitle video="mainVideo" start="00:21:32.159" text="This is a fractious tent at times,"]]
+[[!template id=subtitle video="mainVideo" start="00:21:37.242" text="and sometimes it is indeed"]]
+[[!template id=subtitle video="mainVideo" start="00:21:39.800" text="a little bit of a circus,"]]
+[[!template id=subtitle video="mainVideo" start="00:21:41.360" text="but I am learning so much so fast."]]
+[[!template id=subtitle video="mainVideo" start="00:21:44.746" text="I'm just inspired by how much"]]
+[[!template id=subtitle video="mainVideo" start="00:21:46.880" text="Emacs can teach us."]]
+[[!template id=subtitle video="mainVideo" start="00:21:49.333" text="(Amin: thank you, Corwin, for your kind words"]]
+[[!template id=subtitle video="mainVideo" start="00:21:52.901" text="about me, of course,"]]
+[[!template id=subtitle video="mainVideo" start="00:21:54.960" text="about all of us"]]
+[[!template id=subtitle video="mainVideo" start="00:21:56.000" text="and the conference..."]]
+[[!template id=subtitle video="mainVideo" start="00:21:58.000" text="Indeed, thanks to everyone who's helped,"]]
+[[!template id=subtitle video="mainVideo" start="00:22:02.400" text="including the speakers, of course,"]]
+[[!template id=subtitle video="mainVideo" start="00:22:04.159" text="without whom EmacsConf really"]]
+[[!template id=subtitle video="mainVideo" start="00:22:05.840" text="wouldn't have been a EmacsConf."]]
+[[!template id=subtitle video="mainVideo" start="00:22:08.960" text="It's been a pleasure"]]
+[[!template id=subtitle video="mainVideo" start="00:22:10.640" text="knowing you and working with you,"]]
+[[!template id=subtitle video="mainVideo" start="00:22:12.366" text="from afar for the most part"]]
+[[!template id=subtitle video="mainVideo" start="00:22:15.743" text="on dungeon-mode,"]]
+[[!template id=subtitle video="mainVideo" start="00:22:17.360" text="helping with small things here and there"]]
+[[!template id=subtitle video="mainVideo" start="00:22:19.937" text="but yeah, it's been my pleasure,"]]
+[[!template id=subtitle video="mainVideo" start="00:22:21.796" text="and it's great to have you and"]]
+[[!template id=subtitle video="mainVideo" start="00:22:23.840" text="everyone else part of the community,"]]
+[[!template id=subtitle video="mainVideo" start="00:22:26.582" text="and for me to be part of the community."]]
+[[!template id=subtitle video="mainVideo" start="00:22:29.180" text="It's been a lot of fun."]]
+[[!template id=subtitle video="mainVideo" start="00:22:30.559" text="Thank you.)"]]
+[[!template id=subtitle video="mainVideo" start="00:22:33.679" text="Corwin: It's an honor."]]
+[[!template id=subtitle video="mainVideo" start="00:22:35.206" text="I don't use that word an awful lot"]]
+[[!template id=subtitle video="mainVideo" start="00:22:37.428" text="because I sort of smirk at it."]]
+[[!template id=subtitle video="mainVideo" start="00:22:39.867" text="It gets us in a lot of trouble, honor does,"]]
+[[!template id=subtitle video="mainVideo" start="00:22:43.941" text="but this will be a sure time to use it."]]
+[[!template id=subtitle video="mainVideo" start="00:22:46.904" text="(Amin: Thank you.)"]]
+[[!template id=subtitle video="mainVideo" start="00:22:48.840" text="Corwin: Likewise."]]
diff --git a/2020/info/35.md b/2020/info/35.md
index 2901eee9..276d24aa 100644
--- a/2020/info/35.md
+++ b/2020/info/35.md
@@ -1,11 +1,13 @@
# WAVEing at Repetitive Repetitive Repetitive Music
Zachary Kanfer
-[[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--zachary-kanfer.webm"]]
+[[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--zachary-kanfer.webm" size="122M" subtitles="/2020/subtitles/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--zachary-kanfer.vtt" duration="9:44"]]
[Download compressed .webm video (12.7M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--zachary-kanfer--vp9-q56-video-original-audio.webm)
+[View transcript](#transcript)
-[[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--questions--zachary-kanfer.webm" download="Download Q&A video"]]
+[[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--questions--zachary-kanfer.webm" download="Download Q&A video" size="89M" subtitles="/2020/subtitles/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--questions--zachary-kanfer.vtt" duration="6:18"]]
[Download compressed Q&A .webm video (6.9M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--questions--zachary-kanfer--vp9-q56-video-original-audio.webm)
+[View transcript for Q&A](#transcript-questions)
During quarantine, I found myself spending time with an Android app.
One of the features this app has is composing music that loops
@@ -77,3 +79,231 @@ something worth looking into.
# Notes
Notes, references, and links at <https://zck.org/emacsconf2020>
+
+
+<!-- transcript: 2020/subtitles/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--zachary-kanfer.vtt -->
+
+<a name="transcript"></a>
+# Transcript
+
+(00:04) Hi. I'm Zachary Kanfer, and this is waving at repetitive
+repetitive repetitive music. Over quarantine, I've been bored, and I
+found this Android app that has a bunch of mini-games, one of which
+lets you compose music. And it works, but I want a little bit more
+functionality than it offers, it's not very flexible. So, I thought
+what if I made this, and what programs could I make this in that are
+really flexible, are really customizable. Emacs. So, I looked into
+it, and Emacs can play sounds, right? If you hit control g a couple of
+times, you'll hear like an error tone, and it turns out that, that is
+actually playing a WAVE file, but what's a WAVE file?
+
+(00:58) Well, it turns out that WAVE is a musical file format, or
+really an annoying file format. So, data in it can be an unsigned
+integer or a signed integer, it's not consistent, and it's
+little-endian by default which is not the way I like to think about
+it. Now, you can set a WAVE file to be big-endian, but if you do
+that, Emacs can't play it. So, little-endian it is. There's also
+duplicate data fields. Here are some fields that are fine, but then
+there's a fourth field that's calculated based on multiplying two of
+the other ones together, and then there's another data field that's…
+you multiply those three ones together. So, it's just repetitive and
+unnecessary, but you have to do it, or it's not a valid WAVE file.
+Also, the last part of the file is described as data or as one website
+I found said, the actual sound data.
+
+(02:04) Now, I don't know about you but when I see that, I think, what
+is data? It turns out that sound is just a wave, and the data is just
+a bunch of measurements of the height of that wave forming each
+sample. So, this wave starts at 8 goes 9, 11, 13, 14, 15, and then
+back down. If you just take those measurements, those numbers, put
+them in a file, that's all your data is.
+
+(02:35) All right. Let's go to a demo of my program. So, this is what
+zmusic looks like. The blue highlighted row is a single beat, there's
+16 of them in this zmusic file, and each dash in the row is a single
+note increasing…, starting really low all the way on the left and
+going up as we go to the right. So, if we started playing, we won't
+hear anything, but we'll see the highlighted beat is the currently
+playing one, and we see that it loops. So, we can stop it, and now we
+can click to add some notes. [Music] Even more than one note at the
+same time works. [Music] And we can even add notes while it's
+playing. [Music]
+
+(04:08) Okay, here are some other features that I didn't have time to
+demo. So, you can save the music to a file, and this is interesting
+because normally if there's no note in a beat, we just don't play that
+beat, but if you're writing to a file you have to put something in, so
+when it's playing it knows to not make a sound there. We can also use
+different scales. We're using the minor pentatonic in the demo, but
+you can use the major scale the minor scale or anything else. And
+there's also keyboard support, but it sounds really bad, and I'll
+explain why later.
+
+(04:48) Here are some things I learned while writing zmusic. Emacs
+has buttons which are great as long as you don't put two of them right
+next to each other. So, if you do that, mousing over one of them
+highlights both of them. Now, that's because a button is really just
+a series of characters with a text property to highlight them. So,
+the fix is, you put another character between the two buttons, then
+mousing over one of them only highlights the one you want, but even
+this doesn't work really great for zmusic, because zmusic has a lot of
+very small buttons in a row. So, it's really easy to accidentally put
+your cursor over the space and click on that instead of the button.
+So, I looked into unicode, and I found this character called a
+zero-width space. So, we should be able to put that between buttons
+and not be able to accidentally click on it. Unfortunately, a
+zero-width space isn't actually zero width. If we put a hundred of
+them between two other characters, you can see there's space there,
+and I think what's happening is, the space is zero width but then
+Emacs `put` uses one pixel between each pair of characters for the
+cursor, so it's almost zero width. Some ways to play sound that don't
+quite work! `play-sound` plays music, but it blocks, you can't do
+things like, set other notes or even pause the music. And if you
+throw it into async.el, it's silent, and I don't know why. So, the
+solution I went with is taking that WAVE file, ran into the file
+system, and then shelling out to a native executable to play the
+sound. And that works fine as long as you only do it once, because if
+you do it a couple of times at the same time like if you have a chord,
+and you want to play three notes simultaneously, you get this weird
+interference, and that's actually why the keyboard from before didn't
+work. Also, side effects have this unexpected impact, when you saw
+the demo it was running pretty smoothly, but if I just add one message
+statement every beat for debugging purposes, I was getting lag and
+jitter.
+
+(07:03) Here's the one thing I learned about music theory, music
+theory is not easy to program. I was looking around to see what
+concepts we can use to code the scales, to code the notes, the first
+thing that I saw is scale degrees, and this when I looked into it, you
+don't want to program in scale degrees. So, you see we have the
+first, second, third, fourth, fifth, sixth, seventh but then it wraps
+around. That octave up is also a first, and that's because both of
+those notes are C, so that didn't work, and also you couldn't really
+easily specify a flat or sharp. You could say a sharp third or you
+know, a flat seventh or whatever, but then you kind of have these two
+pieces of data that indicate the note, and I didn't love that.
+
+(07:55) So, I looked again, and I found intervals, and then I thought
+about it, and you don't really want to program in intervals either.
+It fixes some of the problems with scale degrees, you see, all the way
+on the right you have an octave, so you wrap to 8, and you go 9, 10
+and that works. But you solve the same problem, you see you have a
+major third but below we also have a minor third, so you saw that
+problem of having two pieces of information.
+
+(08:20) So, I thought about it. Music is really frequencies. Like an A
+is 440 hertz. So, at a low level that's what we're going to do, we're
+just going to use frequencies. And then at the one level above that,
+that's a little bit easier for humans to think about, we're going to
+use semitones up from the root, which is kind of like scale degrees,
+but instead of just counting each note as one more, we're going to say
+how many semitones up it is. So, if there's a sharp between two
+notes, that's going to be two steps up instead of just one. And then
+we translate those two frequencies, so your A is 440 hertz, another
+note might be 613.5, or whatever, and that's we use the low level to
+play.
+
+(09:02) Some future work I have, I want to add some drums. I want to
+make that keyboard actually work, and computers and synthesizers are
+the only place you hear a pure sine wave like the one we have here, so
+I want to add overtones or other octaves above it just to make it
+sound a little bit more realistic. I've put notes references and the
+source code up at <https://zck.org/emacsconf2020> [updated]. I'm one
+of the organizers of EmacsNYC check that out. And if you take a look
+or have any thoughts, I'd love to hear them, and thanks so much for
+coming to my talk.
+
+<!-- /transcript -->
+
+
+<!-- transcript: 2020/subtitles/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--questions--zachary-kanfer.vtt -->
+
+<a name="transcript-questions"></a>
+# Transcript: Q&A
+
+(00:09) Okay, yeah, so I'm Zachary Kanfer, let's go to the
+questions. The first question, "Why do we go top to bottom for time
+progression, and left to right for low to high?" Interesting, I
+think…, so the initial thing I was copying, that initial app work this
+way, and yeah, I mean, certainly traditional music, you know, on a
+staff does go left to right like this. I mean, going top to bottom
+does make it easier to add more beats without having to wrap, but
+certainly that could be managed. Yeah, I had not really thought about
+it, but it is definitely something worth looking into.
+
+(01:21) Two, "Will you play us another song?" Not now, I can make some
+recordings of it, or certainly you can try it. I couldn't quite get
+the microphone and the webcam and everything to work with the sound
+playing now. So, I can record some. Also, I have put a link in the
+Etherpad, <https://zck.org/emacsconf2020> [updated], where you can go
+and get the source, and you can try it yourself. There's no
+dependencies needed, so it's just all in Emacs. So, please, you know,
+try it yourself.
+
+(01:57) "Any chance for an Emacs tracker or mod player?" I don't
+really know what a mod player or tracker are, but I mean, I'm sure
+that would be cool, maybe there's one on now, but I don't know.
+
+(02:11) My musical background. So, I've played various instruments
+since about the third grade. Started recorder, play cello, I play
+guitar now. But yeah, so just kind of random instruments, and I guess
+kind of some of those things influence how I think about music.
+
+(02:33) "Are there any open source musical management sample libraries
+that could be used?" Good question, I'm sure there are, I don't know
+any of that integrate really well with Emacs. One of the cool things
+that I liked about this is that there are no dependencies, you know,
+you don't need any external program to generate the music. I mean, it
+does shell out to to play, but that should be able to be done on any
+operating system, as always, you have something that can play WAVE
+files, but yeah, it is interesting to kind of try the different sounds
+and different tones that you could get with different instruments.
+
+(03:14) Have I written any actual songs? Nothing super well put
+together, I kind of just been playing around with this. It's kind of…
+making this was one of those things where once I made it, I was like,
+okay, now I can play with it, and I did a little bit, and was like, I
+don't know if I feel like it right now. You know, which I've found
+that to be the case with some things that I've implemented in Emacs
+where it's… I make it, and then it's the kind of some of the desire to
+use it all the time goes away, but I'm sure I'll circle back around at
+some point especially kind of maybe once I add in different tones or
+something.
+
+(03:54) I guess a similar question for pre-recorded sounds. Yeah, I
+mean, if it's… part of what I did, what I wrote was a WAVE generation
+library, so, if you kind of have the data, you could use those and
+chop them up and take certain lengths of them and make a WAVE file, so
+it's not plug and play right now, but you could certainly add those
+notes to do it.
+
+(04:19) "Any MIDI mapping possibilities?" I haven't looked into it,
+but I'm sure you definitely could output to MIDI which is another
+benefit of having that multiple layers with the top layer is just, you
+know, if the root note is this, we're just two semitones up or seven
+semitones up or whatever it is. It should be relatively simple to
+kind of switch out that layer underneath from WAVE to MIDI or other
+things.
+
+(04:44) "What were some of the challenges with writing a special mode
+for Emacs?" Interested in getting into this, not sure where to start.
+This isn't the first mode I've written, so that's right…, certainly
+that helps. I actually… I have a video that we recorded it as part of
+EmacsNYC on making a major mode. That's basically starts from
+nothing, and kind of builds up to an implementation of tic-tac-toe,
+but so it kind of goes into printing things out and buttons and making
+the mode. I mean, one of the best parts about Emacs is, because it's
+so configurable and so introspectible, you can start pretty simply,
+and just kind of ask Emacs about things, and then make one little
+change. It's really… it's not that bad, so, I'll try to throw a link
+up on that page I put up, or please email me for whoever asked this
+question to get a link to that video, or just look at the source code
+of this or any other major mode. Emacs makes it pretty easy to extend
+major modes.
+
+(05:54) And I think that's the last question in the Etherpad, so,
+thanks so much everybody for coming. (Amin: Thank you so much to
+Zachary for your awesome talk, and for doing live questions. Thank
+you.) Thank you. (Amin: Cheers.)
+
+<!-- /transcript -->
diff --git a/2020/info/39.md b/2020/info/39.md
index 303f553a..4ca2f49d 100644
--- a/2020/info/39.md
+++ b/2020/info/39.md
@@ -1,7 +1,7 @@
# NonGNU ELPA
Richard Stallman
-[[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--39-nongnu-elpa--richard-stallman.webm" size="282M" subtitles="/2020/subtitles/emacsconf-2020--39-nongnu-elpa--richard-stallman.vtt" duration="6:56"]]
+[[!template id=vid vidid="mainVideo" src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--39-nongnu-elpa--richard-stallman.webm" size="282M" subtitles="/2020/subtitles/emacsconf-2020--39-nongnu-elpa--richard-stallman.vtt" duration="6:56"]]
[Download compressed .webm video (20.8M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--39-nongnu-elpa--richard-stallman--vp9-q56-video-original-audio.webm)
[View transcript](#transcript)
@@ -238,83 +238,131 @@ them fit in.
<a name="transcript"></a>
# Transcript
-Hello, I'm Richard Stallman, founder of the GNU project. In 1976, I
-developed the first Emacs editor with some help from Guy Steele.
-Then, shortly after starting to develop the GNU operating system in
-1984, I wanted an Emacs editor for it. So I started writing GNU Emacs
-in September 1984.
-
-(00:29) Several years ago we decided to move many of the Emacs Lisp
-packages outside the core Emacs distribution into a separate package
-archive that we call the Emacs Lisp package archive ELPA. There were
-two main reasons for this. One is to make the Emacs distribution
-smaller so every user wouldn't have to get all the packages and
-install all the packages. And the other reason was to make it possible
-to release individual packages separately from Emacs releases.
-
-(01:08) Now, at that point somehow we decided to support loading
-packages from a variety of different Emacs Lisp package archives and
-ours would be called the GNU ELPA, but ELPA could be any other. Now, I
-think that naming was a mistake. We should have meant, we should have
-decided that ELPA referred to our package archive and any other
-package archive should be called some other name. Oh, well! Uh this is
-a mistake I believe, because it leads to a lot of confusion it would
-have been clearer if we had uh used the other naming.
-
-(01:55) Because the difference between having a package in core Emacs
-and having it in GNU ELPA, is purely a practical convenience matter.
-Convenience of distribution and convenience of maintenance. We wanted
-to be able to move packages between the two whenever that was
-convenient. So, to make that possible we insisted on getting copyright
-assignments for packages in GNU ELPA just the same way we do for
-packages in core Emacs.
-
-(02:31) Having the facility for installing packages from package
-archives, led to a tremendous boost in the development and release of
-Emacs packages. Unfortunately there was a problem with the way that
-was done. For the most part, the developers of these packages wouldn't
-even tell us about them. They posted them in another package archive
-where we didn't know about them and (where they) no attempt was made
-to try to fit them into Emacs so that they could make sense as parts
-of the Emacs distribution. This led to both moral problems, packages
-that depended on non-free software in order to be usable and technical
-problems because the developers of those packages didn't coordinate
-with us about how to make it useful and convenient and clean to have
-them in Emacs.
-
-(03:36) So, the idea of NonGNU ELPA is an effort to smooth these
-things out. The fundamental plan of NonGNU ELPA is that, we won't ask
-for copyright assignments for those packages. So, we won't be able to
-put them into core Emacs; at least not easily, but we will have some
-control over how we distribute them. We can put any package into
-NonGNU ELPA as long as it's free software. If we like it we can set up
-that way for users to get it. We could put the package in exactly as
-it is if there's no problem at all with it. We can make an arrangement
-with the package's developers to work on it with us and maintain it
-directly for distribution by NonGNU ELPA but if they are not
-interested we can put it in ourselves and if we need to make any
-changes we can do so.
-
-(04:52) So, NonGNU ELPA is not meant to be just a way that others can
-distribute their packages. It's meant at least in a minimal technical
-sense to work with GNU Emacs, and we'll make changes if necessary so
-that it works smoothly with Emacs. And this means that we're going to
-maintain it differently from GNU ELPA. Well, GNU ELPA is hosted in a
-way that is actually rather inconvenient. It is one single Git
-repository. And so anybody that has access to write it can write any
-part of it. There are many different packages in there maintained by
-different people, and we have no way to give each one of them access
-to per own package and not to the others. Well, with NonGNU ELPA we
-plan to fix that. The idea is to have a single Git repository where
-you can download various packages from. But, they won't be maintained
-there. Each of those packages will be copied automatically from some
-other place. Probably some other repository where the right people
-have access to work on it. And this way we can avoid giving a gigantic
-number of people access to every part of it. So far NonGNU ELPA is
-just a plan, we need people to implement the plan. So, if you would
-like to help please write to me. I think this is a very important step
-for progress and it's got to be implemented. Thanks and happy hacking!
-
+[[!template new="1" text="Hello, I'm Richard Stallman," start="00:00:00.320" video="mainVideo" id=subtitle]]
+[[!template text="founder of the GNU project." start="00:00:03.280" video="mainVideo" id=subtitle]]
+[[!template text="In 1976, I developed the first" start="00:00:07.816" video="mainVideo" id=subtitle]]
+[[!template text="Emacs editor with some help" start="00:00:09.200" video="mainVideo" id=subtitle]]
+[[!template text="from Guy Steele." start="00:00:12.320" video="mainVideo" id=subtitle]]
+[[!template text="Then, shortly after starting to develop" start="00:00:13.440" video="mainVideo" id=subtitle]]
+[[!template text="the GNU operating system in 1984," start="00:00:15.839" video="mainVideo" id=subtitle]]
+[[!template text="I wanted an Emacs editor for it." start="00:00:19.119" video="mainVideo" id=subtitle]]
+[[!template text="So I started writing GNU Emacs in September 1984." start="00:00:22.240" video="mainVideo" id=subtitle]]
+[[!template new="1" text="Several years ago we decided to move" start="00:00:29.519" video="mainVideo" id=subtitle]]
+[[!template text="many of the Emacs Lisp packages outside" start="00:00:32.640" video="mainVideo" id=subtitle]]
+[[!template text="the core Emacs distribution into" start="00:00:35.920" video="mainVideo" id=subtitle]]
+[[!template text="a separate package archive that we call the Emacs Lisp package archive ELPA." start="00:00:39.866" video="mainVideo" id=subtitle]]
+[[!template text="There were two main reasons for this." start="00:00:46.480" video="mainVideo" id=subtitle]]
+[[!template text="One is to make the Emacs distribution smaller" start="00:00:49.555" video="mainVideo" id=subtitle]]
+[[!template text="so every user wouldn't have to" start="00:00:51.520" video="mainVideo" id=subtitle]]
+[[!template text="get all the packages" start="00:00:54.870" video="mainVideo" id=subtitle]]
+[[!template text="and install all the packages." start="00:00:55.680" video="mainVideo" id=subtitle]]
+[[!template text="And the other reason was to make it possible to" start="00:00:58.820" video="mainVideo" id=subtitle]]
+[[!template text="release individual packages" start="00:01:00.480" video="mainVideo" id=subtitle]]
+[[!template text="separately from Emacs releases." start="00:01:03.485" video="mainVideo" id=subtitle]]
+[[!template new="1" text="Now, at that point somehow we decided to" start="00:01:08.880" video="mainVideo" id=subtitle]]
+[[!template text="support loading packages from" start="00:01:13.119" video="mainVideo" id=subtitle]]
+[[!template text="a variety of different Emacs Lisp package archives" start="00:01:17.040" video="mainVideo" id=subtitle]]
+[[!template text="and ours would be called the GNU ELPA," start="00:01:21.119" video="mainVideo" id=subtitle]]
+[[!template text="but ELPA could be any other." start="00:01:25.520" video="mainVideo" id=subtitle]]
+[[!template text="Now, I think that naming was a mistake." start="00:01:29.280" video="mainVideo" id=subtitle]]
+[[!template text="We should have meant, we should have decided that ELPA" start="00:01:32.945" video="mainVideo" id=subtitle]]
+[[!template text="referred to our package archive" start="00:01:35.119" video="mainVideo" id=subtitle]]
+[[!template text="and any other package archive" start="00:01:37.759" video="mainVideo" id=subtitle]]
+[[!template text="should be called some other name." start="00:01:39.297" video="mainVideo" id=subtitle]]
+[[!template text="Oh, well! Uh this is a mistake," start="00:01:42.479" video="mainVideo" id=subtitle]]
+[[!template text="I believe, because it leads" start="00:01:46.128" video="mainVideo" id=subtitle]]
+[[!template text="to a lot of confusion." start="00:01:48.320" video="mainVideo" id=subtitle]]
+[[!template text="It would have been clearer" start="00:01:49.397" video="mainVideo" id=subtitle]]
+[[!template text="if we had used the other naming." start="00:01:51.119" video="mainVideo" id=subtitle]]
+[[!template new="1" text="Because the difference between" start="00:01:55.759" video="mainVideo" id=subtitle]]
+[[!template text="having a package in core Emacs and having it in GNU ELPA," start="00:01:59.812" video="mainVideo" id=subtitle]]
+[[!template text="is purely a practical convenience matter." start="00:02:04.159" video="mainVideo" id=subtitle]]
+[[!template text="Convenience of distribution" start="00:02:07.840" video="mainVideo" id=subtitle]]
+[[!template text="and convenience of maintenance." start="00:02:10.501" video="mainVideo" id=subtitle]]
+[[!template text="We wanted to be able to move packages" start="00:02:12.000" video="mainVideo" id=subtitle]]
+[[!template text="between the two" start="00:02:14.879" video="mainVideo" id=subtitle]]
+[[!template text="whenever that was convenient." start="00:02:16.800" video="mainVideo" id=subtitle]]
+[[!template text="So, to make that possible" start="00:02:19.258" video="mainVideo" id=subtitle]]
+[[!template text="we insisted on getting copyright" start="00:02:21.200" video="mainVideo" id=subtitle]]
+[[!template text="assignments for packages in GNU ELPA" start="00:02:23.200" video="mainVideo" id=subtitle]]
+[[!template text="just the same way we do for packages in core Emacs." start="00:02:26.319" video="mainVideo" id=subtitle]]
+[[!template new="1" text="Having the facility for installing" start="00:02:31.360" video="mainVideo" id=subtitle]]
+[[!template text="packages from package archives," start="00:02:33.760" video="mainVideo" id=subtitle]]
+[[!template text="led to a tremendous boost in the" start="00:02:36.239" video="mainVideo" id=subtitle]]
+[[!template text="development and release of Emacs packages." start="00:02:39.440" video="mainVideo" id=subtitle]]
+[[!template text="Unfortunately there was a problem with" start="00:02:42.239" video="mainVideo" id=subtitle]]
+[[!template text="the way that was done." start="00:02:44.879" video="mainVideo" id=subtitle]]
+[[!template text="For the most part, the developers of these packages" start="00:02:46.560" video="mainVideo" id=subtitle]]
+[[!template text="wouldn't even tell us about them." start="00:02:50.000" video="mainVideo" id=subtitle]]
+[[!template text="They posted them in another package archive" start="00:02:52.218" video="mainVideo" id=subtitle]]
+[[!template text="where we didn't know about them" start="00:02:56.027" video="mainVideo" id=subtitle]]
+[[!template text="and no attempt was made to try to fit them" start="00:02:58.480" video="mainVideo" id=subtitle]]
+[[!template text="into Emacs so that they could make sense" start="00:03:03.120" video="mainVideo" id=subtitle]]
+[[!template text="as parts of the Emacs distribution." start="00:03:06.560" video="mainVideo" id=subtitle]]
+[[!template text="This led to both moral problems," start="00:03:10.879" video="mainVideo" id=subtitle]]
+[[!template text="(packages that depended on" start="00:03:14.480" video="mainVideo" id=subtitle]]
+[[!template text="non-free software in order to be usable)" start="00:03:16.375" video="mainVideo" id=subtitle]]
+[[!template text="and technical problems," start="00:03:19.599" video="mainVideo" id=subtitle]]
+[[!template text="because the developers of those packages" start="00:03:21.354" video="mainVideo" id=subtitle]]
+[[!template text="didn't coordinate with us" start="00:03:24.877" video="mainVideo" id=subtitle]]
+[[!template text="about how to make it useful and" start="00:03:26.159" video="mainVideo" id=subtitle]]
+[[!template text="convenient and clean to have them in Emacs." start="00:03:29.519" video="mainVideo" id=subtitle]]
+[[!template new="1" text="So, the idea of NonGNU ELPA" start="00:03:36.560" video="mainVideo" id=subtitle]]
+[[!template text="is an effort to smooth these things out." start="00:03:41.120" video="mainVideo" id=subtitle]]
+[[!template text="The fundamental plan of" start="00:03:45.337" video="mainVideo" id=subtitle]]
+[[!template text="NonGNU ELPA is that" start="00:03:48.319" video="mainVideo" id=subtitle]]
+[[!template text="we won't ask for copyright assignments" start="00:03:51.680" video="mainVideo" id=subtitle]]
+[[!template text="for those packages." start="00:03:54.480" video="mainVideo" id=subtitle]]
+[[!template text="So, we won't be able to put them into core Emacs;" start="00:03:56.159" video="mainVideo" id=subtitle]]
+[[!template text="at least not easily," start="00:04:00.000" video="mainVideo" id=subtitle]]
+[[!template text="but we will have some control over how we distribute them." start="00:04:03.550" video="mainVideo" id=subtitle]]
+[[!template text="We can put any package into NonGNU ELPA" start="00:04:09.519" video="mainVideo" id=subtitle]]
+[[!template text="as long as it's free software." start="00:04:14.691" video="mainVideo" id=subtitle]]
+[[!template text="If we like it, we can set up that way for users to get it." start="00:04:16.320" video="mainVideo" id=subtitle]]
+[[!template text="We could put the package in exactly as it is" start="00:04:23.360" video="mainVideo" id=subtitle]]
+[[!template text="if there's no problem at all with it." start="00:04:26.720" video="mainVideo" id=subtitle]]
+[[!template text="We can make an arrangement" start="00:04:29.919" video="mainVideo" id=subtitle]]
+[[!template text="with the package's developers" start="00:04:32.647" video="mainVideo" id=subtitle]]
+[[!template text="to work on it with us and maintain it" start="00:04:34.160" video="mainVideo" id=subtitle]]
+[[!template text="directly for distribution by NonGNU ELPA," start="00:04:38.000" video="mainVideo" id=subtitle]]
+[[!template text="but if they are not interested," start="00:04:42.560" video="mainVideo" id=subtitle]]
+[[!template text="we can put it in ourselves," start="00:04:45.778" video="mainVideo" id=subtitle]]
+[[!template text="and if we need to make any changes," start="00:04:48.729" video="mainVideo" id=subtitle]]
+[[!template text="we can do so." start="00:04:50.453" video="mainVideo" id=subtitle]]
+[[!template text="So, NonGNU ELPA is not meant to be" start="00:04:52.000" video="mainVideo" id=subtitle]]
+[[!template text="just a way that others can distribute their packages." start="00:04:58.688" video="mainVideo" id=subtitle]]
+[[!template text="It's meant, at least in" start="00:05:02.720" video="mainVideo" id=subtitle]]
+[[!template text="a minimal technical sense," start="00:05:04.336" video="mainVideo" id=subtitle]]
+[[!template text="to work with GNU Emacs," start="00:05:07.574" video="mainVideo" id=subtitle]]
+[[!template text="and we'll make changes if necessary," start="00:05:10.686" video="mainVideo" id=subtitle]]
+[[!template text="so that it works smoothly with Emacs." start="00:05:12.305" video="mainVideo" id=subtitle]]
+[[!template text="And this means that we're going to maintain it differently from GNU ELPA." start="00:05:17.928" video="mainVideo" id=subtitle]]
+[[!template new="1" text="Well, GNU ELPA is hosted in a way that is actually rather inconvenient." start="00:05:25.365" video="mainVideo" id=subtitle]]
+[[!template text="It is one single Git repository." start="00:05:31.520" video="mainVideo" id=subtitle]]
+[[!template text="And so anybody that has access to write it" start="00:05:35.600" video="mainVideo" id=subtitle]]
+[[!template text="can write any part of it." start="00:05:39.039" video="mainVideo" id=subtitle]]
+[[!template text="There are many different packages in there, maintained by different people," start="00:05:41.239" video="mainVideo" id=subtitle]]
+[[!template text="and we have no way to give each one of" start="00:05:46.080" video="mainVideo" id=subtitle]]
+[[!template text="them access to per own package" start="00:05:48.080" video="mainVideo" id=subtitle]]
+[[!template text="and not to the others." start="00:05:50.960" video="mainVideo" id=subtitle]]
+[[!template text="Well, with NonGNU ELPA, we plan to fix that." start="00:05:53.122" video="mainVideo" id=subtitle]]
+[[!template text="The idea is to have a single Git repository" start="00:05:57.035" video="mainVideo" id=subtitle]]
+[[!template text="where you can download various packages from." start="00:06:01.411" video="mainVideo" id=subtitle]]
+[[!template text="But they won't be maintained there." start="00:06:05.600" video="mainVideo" id=subtitle]]
+[[!template text="Each of those packages will be" start="00:06:08.400" video="mainVideo" id=subtitle]]
+[[!template text="copied automatically from some other place." start="00:06:10.800" video="mainVideo" id=subtitle]]
+[[!template text="Probably some other repository" start="00:06:15.280" video="mainVideo" id=subtitle]]
+[[!template text="where the right people have access to work on it." start="00:06:18.311" video="mainVideo" id=subtitle]]
+[[!template text="And this way we can avoid giving" start="00:06:22.960" video="mainVideo" id=subtitle]]
+[[!template text="a gigantic number of people" start="00:06:26.375" video="mainVideo" id=subtitle]]
+[[!template new="1" text="access to every part of it." start="00:06:28.160" video="mainVideo" id=subtitle]]
+[[!template text="So far NonGNU ELPA is just a plan," start="00:06:32.240" video="mainVideo" id=subtitle]]
+[[!template text="we need people to implement the plan." start="00:06:37.039" video="mainVideo" id=subtitle]]
+[[!template text="So, if you would like to help," start="00:06:40.479" video="mainVideo" id=subtitle]]
+[[!template text="please write to me." start="00:06:43.825" video="mainVideo" id=subtitle]]
+[[!template text="I think this is a very important step for progress" start="00:06:45.120" video="mainVideo" id=subtitle]]
+[[!template text="and it's got to be implemented." start="00:06:49.520" video="mainVideo" id=subtitle]]
+[[!template text="Thanks and happy hacking!" start="00:06:52.639" video="mainVideo" id=subtitle]]
<!-- /transcript -->
diff --git a/2020/organizers-notebook.md b/2020/organizers-notebook.md
index b2edbf12..e2847847 100644
--- a/2020/organizers-notebook.md
+++ b/2020/organizers-notebook.md
@@ -46,8 +46,8 @@ I modified the `subed` package to work with VTT files. The modified version is a
- [X] sachac <./info/16.md> <./subtitles/emacsconf-2020--16-org-roam-presentation-demonstration-and-whats-on-the-horizon--leo-vivier.vtt>
- [X] sachac <./info/17.md> <./subtitles/emacsconf-2020--17-org-mode-and-org-roam-for-scholars-and-researchers--noorah-alhasan.vtt>
- [X] sachac <./info/18.md> <./subtitles/emacsconf-2020--18-org-roam-technical-presentation--leo-vivier.vtt>
-- [ ] sachac <./subtitles/emacsconf-2020--19-sharing-blogs-and-more-with-org-webring--brett-gilio-autogen.vtt>
-- [ ] sachac <./subtitles/emacsconf-2020--20-omg-macros--corwin-brust-autogen.vtt>
+- [X] sachac <./info/19.md> <./subtitles/emacsconf-2020--19-sharing-blogs-and-more-with-org-webring--brett-gilio-autogen.vtt>
+- [X] sachac <./info/20.md> <./subtitles/emacsconf-2020--20-omg-macros--corwin-brust-autogen.vtt>
- [ ] <./subtitles/emacsconf-2020--21-on-why-most-of-the-best-features-in-eev-look-like-5-minute-hacks--eduardo-ochs-autogen.vtt>
- [ ] sachac <./subtitles/emacsconf-2020--22-powering-up-special-blocks--musa-al-hassy-autogen.vtt>
- [ ] <./subtitles/emacsconf-2020--23-incremental-parsing-with-emacs-tree-sitter--questions--tuan-anh-nguyen-autogen.vtt>
@@ -61,11 +61,11 @@ I modified the `subed` package to work with VTT files. The modified version is a
- [ ] <./subtitles/emacsconf-2020--30-a-tour-of-vterm--questions--gabriele-bozzola-sbozzolo-autogen.vtt>
- [ ] <./subtitles/emacsconf-2020--31-lakota-language-and-emacs--grant-shangreaux-autogen.vtt>
- [ ] <./subtitles/emacsconf-2020--31-lakota-language-and-emacs--questions--grant-shangreaux-autogen.vtt>
-- [ ] <./subtitles/emacsconf-2020--32-object-oriented-code-in-the-gnus-newsreader--eric-abrahamsen-autogen.vtt>
-- [ ] <./subtitles/emacsconf-2020--33-maxima-a-computer-algebra-system-in-emacs--fermin.vtt>
+- [ ] bhavin192 <./subtitles/emacsconf-2020--32-object-oriented-code-in-the-gnus-newsreader--eric-abrahamsen-autogen.vtt>
+- [ ] bhavin192 <./subtitles/emacsconf-2020--33-maxima-a-computer-algebra-system-in-emacs--fermin.vtt>
- [ ] bhavin192 <./subtitles/emacsconf-2020--34-extend-emacs-to-modern-gui-applications-with-eaf--matthew-zeng-autogen.vtt>
-- [ ] bhavin192 <./subtitles/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--zachary-kanfer-autogen.vtt>
-- [ ] bhavin192 <./subtitles/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--questions--zachary-kanfer-autogen.vtt>
+- [X] bhavin192 <./info/35.md> <./subtitles/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--zachary-kanfer-autogen.vtt>
+- [X] bhavin192 <./info/35.md> <./subtitles/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--questions--zachary-kanfer-autogen.vtt>
- [X] bhavin192 <./info/38.md> <./subtitles/emacsconf-2020--38-emacs-development-update--john-wiegley.vtt>
- [X] bhavin192 <./info/39.md> <./subtitles/emacsconf-2020--39-nongnu-elpa--questions--richard-stallman.vtt>
- [X] bhavin192 <./info/39.md> <./subtitles/emacsconf-2020--39-nongnu-elpa--richard-stallman.vtt>
diff --git a/2020/organizers-notebook.org b/2020/organizers-notebook.org
index f3d68cdb..1eb742dd 100644
--- a/2020/organizers-notebook.org
+++ b/2020/organizers-notebook.org
@@ -61,11 +61,11 @@ I modified the =subed= package to work with VTT files. The modified version is a
- [ ] [[./subtitles/emacsconf-2020--30-a-tour-of-vterm--questions--gabriele-bozzola-sbozzolo-autogen.vtt]]
- [ ] [[./subtitles/emacsconf-2020--31-lakota-language-and-emacs--grant-shangreaux-autogen.vtt]]
- [ ] [[./subtitles/emacsconf-2020--31-lakota-language-and-emacs--questions--grant-shangreaux-autogen.vtt]]
-- [ ] [[./subtitles/emacsconf-2020--32-object-oriented-code-in-the-gnus-newsreader--eric-abrahamsen-autogen.vtt]]
-- [ ] [[./subtitles/emacsconf-2020--33-maxima-a-computer-algebra-system-in-emacs--fermin.vtt]]
+- [ ] bhavin192 [[./subtitles/emacsconf-2020--32-object-oriented-code-in-the-gnus-newsreader--eric-abrahamsen-autogen.vtt]]
+- [ ] bhavin192 [[./subtitles/emacsconf-2020--33-maxima-a-computer-algebra-system-in-emacs--fermin.vtt]]
- [ ] bhavin192 [[./subtitles/emacsconf-2020--34-extend-emacs-to-modern-gui-applications-with-eaf--matthew-zeng-autogen.vtt]]
-- [ ] bhavin192 [[./subtitles/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--zachary-kanfer-autogen.vtt]]
-- [ ] bhavin192 [[./subtitles/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--questions--zachary-kanfer-autogen.vtt]]
+- [X] bhavin192 [[./info/35.md]] [[./subtitles/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--zachary-kanfer-autogen.vtt]]
+- [X] bhavin192 [[./info/35.md]] [[./subtitles/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--questions--zachary-kanfer-autogen.vtt]]
- [X] bhavin192 [[./info/38.md]] [[./subtitles/emacsconf-2020--38-emacs-development-update--john-wiegley.vtt]]
- [X] bhavin192 [[./info/39.md]] [[./subtitles/emacsconf-2020--39-nongnu-elpa--questions--richard-stallman.vtt]]
- [X] bhavin192 [[./info/39.md]] [[./subtitles/emacsconf-2020--39-nongnu-elpa--richard-stallman.vtt]]
@@ -823,44 +823,21 @@ If TALK is not specified, do it in the current buffer."
,@body)
,@body))
-(defun conf/add-transcript (&optional talk)
- "Try to add transcript for the current talk."
- (interactive)
- (conf/with-talk-info-file talk
- (goto-char (point-min))
- (let (subtitles subed-auto-find-video all)
- (while (re-search-forward "subtitles=\"/\\(.+?\\)\"" nil t)
- (setq subtitles (cons (match-string 1) subtitles))
- (when (re-search-forward "^$\\|\\[View transcript" nil t)
- (unless (string= (match-string 0) "[View transcript")
- (insert
- (if (string-match "questions" (car subtitles))
- "[View transcript for Q&A](#transcript-questions)\n"
- "[View transcript](#transcript)\n")))))
- (when subtitles
- (mapc
- (lambda (subtitle-file)
- (with-current-buffer (find-file-noselect (expand-file-name subtitle-file conf/wiki-directory))
- (goto-char (point-min))
- (subed-mode)
- (let (text)
- (while (subed-forward-subtitle-text)
- (setq text (cons (subed-subtitle-text) text)))
- (setq all (mapconcat 'identity (reverse text) "\n"))))
- (if (re-search-forward (format "<!-- transcript: %s -->[ \t]*\n\\([.\r\n]*?\\)<!-- /transcript -->" (regexp-quote subtitle-file)) nil t)
- (progn
- (goto-char (match-beginning 1))
- (delete-region (match-beginning 1) (match-end 1)))
- (goto-char (point-max))
- (insert (format "\n\n<!-- transcript: %s -->\n\n" subtitle-file))
- (insert (if (string-match "questions" subtitle-file)
- "<a name=\"transcript-questions\"></a>\n# Transcript: Q&A\n\n"
- "<a name=\"transcript\"></a>\n# Transcript\n\n"))
- (save-excursion (insert "\n\n<!-- /transcript -->\n")))
- (save-excursion (insert all)))
- (reverse subtitles))))))
-
-;; (conf/add-transcript (conf/find-talk "03")), or call from a talk info page
+(defun my/convert-transcript-to-directives (id)
+ (interactive "MID: ")
+ (goto-char (point-min))
+ (kill-new
+ (concat
+ "<a name=\"transcript\"></a>\n# Transcript\n\n"
+ (cl-loop while (subed-forward-subtitle-text)
+ concat (format "[[!template text=\"%s\" start=\"%s\" video=\"%s\" id=subtitle]]\n"
+ (replace-regexp-in-string
+ "\n" " "
+ (replace-regexp-in-string
+ "\"" "&quot;"
+ (replace-regexp-in-string "[][]" "" (subed-subtitle-text))))
+ (subed-vtt--msecs-to-timestamp (subed-subtitle-msecs-start))
+ id)))))
#+end_src
* Other useful tidbits
diff --git a/2020/subtitles/emacsconf-2020--02-an-emacs-developer-story-from-user-to-package-maintainer--leo-vivier.vtt b/2020/subtitles/emacsconf-2020--02-an-emacs-developer-story-from-user-to-package-maintainer--leo-vivier.vtt
index facb16b8..37114bf0 100644
--- a/2020/subtitles/emacsconf-2020--02-an-emacs-developer-story-from-user-to-package-maintainer--leo-vivier.vtt
+++ b/2020/subtitles/emacsconf-2020--02-an-emacs-developer-story-from-user-to-package-maintainer--leo-vivier.vtt
@@ -3,122 +3,103 @@ WEBVTT
00:00:00.000 --> 00:00:03.760
(Amin: Alrighty, Leo Vivier, take it away.)
-00:00:03.760 --> 00:00:05.839
-Okay, well, thank you. I'm in. So you've
+00:00:03.760 --> 00:00:05.319
+Okay, well, thank you. I'm in.
-00:00:05.839 --> 00:00:06.879
-just had a
+00:00:05.319 --> 00:00:08.393
+So you've just had a little roundup of
+the news,
-00:00:06.879 --> 00:00:08.880
-little roundup of the news, and we're
+00:00:08.393 --> 00:00:11.120
+and we're going to get started now with
+some presentations.
-00:00:08.880 --> 00:00:10.320
-going to get started now with some
-
-00:00:10.320 --> 00:00:11.120
-presentations.
-
-00:00:11.120 --> 00:00:13.840
+00:00:11.120 --> 00:00:15.920
We're starting with user
-
-00:00:13.840 --> 00:00:15.920
developer stories.
-00:00:15.920 --> 00:00:18.000
-I was extremely interested in this
-
-00:00:18.000 --> 00:00:19.199
-section because I
+00:00:15.920 --> 00:00:18.568
+I was extremely interested in
+this section
-00:00:19.199 --> 00:00:21.600
-wanted to get a chance, basically, to tell
+00:00:18.568 --> 00:00:21.133
+because I wanted to get
+a chance, basically,
-00:00:21.600 --> 00:00:24.160
-you a little more about who I am and
+00:00:21.133 --> 00:00:24.160
+to tell you a little more about
+who I am and
-00:00:24.160 --> 00:00:27.039
-how I got from basically being a user of
+00:00:24.160 --> 00:00:28.160
+how I got from basically being
+a user of Emacs
-00:00:27.039 --> 00:00:28.160
-Emacs
-
-00:00:28.160 --> 00:00:30.640
-to being nowadays a package
-
-00:00:30.640 --> 00:00:31.279
-maintainer,
+00:00:28.160 --> 00:00:31.279
+to being nowadays a package maintainer,
-00:00:31.279 --> 00:00:33.280
+00:00:31.279 --> 00:00:34.156
and maybe more in the future. I don't
+know.
-00:00:33.280 --> 00:00:34.559
-know. So,
+00:00:34.156 --> 00:00:36.954
+So, just for the organizers, I'm
+planning to speak for 15 minutes,
-00:00:34.559 --> 00:00:36.160
-just for the organizers, I'm planning to
+00:00:36.954 --> 00:00:39.680
+and I'll have five more minutes of
+questions at the end.
-00:00:36.160 --> 00:00:37.760
-speak for 15 minutes, and I'll have five
-
-00:00:37.760 --> 00:00:39.680
-more minutes of questions at the end.
-
-00:00:39.680 --> 00:00:41.360
+00:00:39.680 --> 00:00:41.880
As I told you before, if you want to have
+questions,
-00:00:41.360 --> 00:00:43.440
-questions, you know you can use the pad,
+00:00:41.880 --> 00:00:43.440
+you know you can use the pad,
-00:00:43.440 --> 00:00:44.879
+00:00:43.440 --> 00:00:45.871
and I'll be reading the questions from
+there.
-00:00:44.879 --> 00:00:47.360
-there. Okay. So
-
-00:00:47.360 --> 00:00:49.600
-hi there, as Amin introduced me before,
+00:00:45.871 --> 00:00:49.600
+Okay. So hi there, as Amin introduced me
+before,
00:00:49.600 --> 00:00:51.280
my name is Leo Vivier.
-00:00:51.280 --> 00:00:54.800
+00:00:51.280 --> 00:00:55.662
I'm a freelance software engineer
+in France,
-00:00:54.800 --> 00:00:58.079
-in France, and I have been using Emacs
-
-00:00:58.079 --> 00:00:59.359
-now for
+00:00:55.662 --> 00:00:59.359
+and I have been using Emacs now for
-00:00:59.359 --> 00:01:01.280
-i believe close to eight years. I can't
+00:00:59.359 --> 00:01:00.885
+I believe close to eight years.
-00:01:01.280 --> 00:01:03.039
-believe it's been so long.
+00:01:00.885 --> 00:01:03.039
+I can't believe it's been so long.
-00:01:03.039 --> 00:01:07.680
+00:01:03.039 --> 00:01:09.967
But yes, it's been a journey because,
+in a way,
-00:01:07.680 --> 00:01:12.000
-in a way, nothing
+00:01:09.967 --> 00:01:13.255
+nothing made me go for Emacs.
-00:01:12.000 --> 00:01:15.119
-made me go for Emacs. You know I'm an--
+00:01:13.255 --> 00:01:17.011
+You know I'm an-- sorry, I was about to
+say Emacs major,
-00:01:15.119 --> 00:01:17.280
-sorry, I was about to say Emacs major, but
+00:01:17.011 --> 00:01:18.638
+but no, I'm an English major.
-00:01:17.280 --> 00:01:19.200
-no, I'm an English major. I went to
+00:01:18.638 --> 00:01:23.990
+I went to university to study English
+literature and linguistics,
-00:01:19.200 --> 00:01:21.280
-university to study English literature
-
-00:01:21.280 --> 00:01:24.320
-and linguistics, and
-
-00:01:24.320 --> 00:01:26.159
-I just got started in Emacs
+00:01:23.990 --> 00:01:26.159
+and I just got started in Emacs
00:01:26.159 --> 00:01:28.240
because I was looking for ways to take
@@ -126,80 +107,70 @@ because I was looking for ways to take
00:01:28.240 --> 00:01:31.340
better notes. I was looking for ways to
-00:01:31.340 --> 00:01:32.640
-[Applause]
-
00:01:32.640 --> 00:01:34.640
structure the way I was learning,
-00:01:34.640 --> 00:01:36.720
-structure the way I was
+00:01:34.640 --> 00:01:38.084
+structure the way I was taking notes.
-00:01:36.720 --> 00:01:40.079
-taking notes. I stumbled one day
+00:01:38.084 --> 00:01:40.079
+I stumbled one day
-00:01:40.079 --> 00:01:42.320
-upon this weird piece of software which
+00:01:40.079 --> 00:01:42.032
+upon this weird piece of software
-00:01:42.320 --> 00:01:43.759
-was called Emacs,
+00:01:42.032 --> 00:01:43.759
+which was called Emacs,
00:01:43.759 --> 00:01:46.479
and I've been trapped forever since,
-00:01:46.479 --> 00:01:47.920
-basically, because
+00:01:46.479 --> 00:01:48.328
+basically, because eight years ago,
-00:01:47.920 --> 00:01:49.280
-eight years ago, when I discovered
+00:01:48.328 --> 00:01:49.515
+when I discovered Emacs,
-00:01:49.280 --> 00:01:51.119
-Emacs I just couldn't let go. There was
+00:01:49.515 --> 00:01:50.632
+I just couldn't let go.
-00:01:51.119 --> 00:01:52.720
-just something very
+00:01:50.632 --> 00:01:52.720
+There was just something very
-00:01:52.720 --> 00:01:55.439
-interesting about the way you configured
+00:01:52.720 --> 00:01:54.487
+interesting about the way
-00:01:55.439 --> 00:01:56.320
-your setup,
+00:01:54.487 --> 00:01:56.320
+you configured your setup,
-00:01:56.320 --> 00:01:58.799
-and I just wanted to dive deeper and
-
-00:01:58.799 --> 00:01:59.759
-deeper.
+00:01:56.320 --> 00:01:59.759
+and I just wanted to
+dive deeper and deeper.
00:01:59.759 --> 00:02:04.320
So the title is of this talk exactly is
-00:02:04.320 --> 00:02:06.640
+00:02:04.320 --> 00:02:07.637
how I went from user to package
+maintainer,
-00:02:06.640 --> 00:02:08.000
-maintainer, and
-
-00:02:08.000 --> 00:02:09.840
-the package now that I'm maintaining is
-
-00:02:09.840 --> 00:02:11.599
-called org-roam. I'm not the only one
+00:02:07.637 --> 00:02:09.686
+and the package now that I'm maintaining
-00:02:11.599 --> 00:02:12.080
+00:02:09.686 --> 00:02:12.080
+is called org-roam. I'm not the only one
doing this.
-00:02:12.080 --> 00:02:15.440
+00:02:12.080 --> 00:02:18.720
I'm helped with many lovely people
-
-00:02:15.440 --> 00:02:18.720
working on org-roam.
-00:02:18.720 --> 00:02:21.360
+00:02:18.720 --> 00:02:22.149
I got started as a maintainer
+only this year,
-00:02:21.360 --> 00:02:23.360
-only this year, so that means that for
+00:02:22.149 --> 00:02:23.360
+so that means that for
00:02:23.360 --> 00:02:24.720
the eight years I've been
@@ -228,20 +199,17 @@ because I believe that I'm far from
00:02:40.959 --> 00:02:42.160
being the only user
-00:02:42.160 --> 00:02:43.599
+00:02:42.160 --> 00:02:44.327
who can make the jump to being a
+maintainer.
-00:02:43.599 --> 00:02:45.519
-maintainer. A lot of you have
-
-00:02:45.519 --> 00:02:46.879
-a lot of knowledge when it comes to
-
-00:02:46.879 --> 00:02:48.959
-Emacs. Some of you
+00:02:44.327 --> 00:02:47.572
+A lot of you have a lot of knowledge
+when it comes to Emacs.
-00:02:48.959 --> 00:02:51.040
-are at different steps in your journey.
+00:02:47.572 --> 00:02:51.040
+Some of you are at different steps in
+your journey.
00:02:51.040 --> 00:02:52.720
Some of you, for instance, are just
@@ -249,78 +217,73 @@ Some of you, for instance, are just
00:02:52.720 --> 00:02:55.680
starting to copy stuff out of
-00:02:55.680 --> 00:02:57.040
-StackExchange
+00:02:55.680 --> 00:02:59.058
+StackExchange into your Emacs
+configuration.
-00:02:57.040 --> 00:02:59.519
-into your Emacs configuration. let's
-
-00:02:59.519 --> 00:03:00.720
-say you want to do something very
-
-00:03:00.720 --> 00:03:01.599
+00:02:59.058 --> 00:03:01.599
+Let's say you want to do something very
particular
00:03:01.599 --> 00:03:04.480
and you haven't found a way to do so.
-00:03:04.480 --> 00:03:05.920
-You go on StackExchange. You find
-
-00:03:05.920 --> 00:03:09.040
-something that's interesting. You add it
-to your
+00:03:04.480 --> 00:03:05.527
+You go on StackExchange.
-00:03:09.040 --> 00:03:10.239
-Emacs configuration. You
+00:03:05.527 --> 00:03:07.930
+You find something that's interesting.
-00:03:10.239 --> 00:03:11.680
-barely understand anything that's going on.
+00:03:07.930 --> 00:03:10.077
+You add it to your Emacs configuration.
-00:03:11.680 --> 00:03:13.519
-You know that it's supposed to be
+00:03:10.077 --> 00:03:11.680
+You barely understand anything that's
+going on.
-00:03:13.519 --> 00:03:14.800
-Emacs Lisp.
+00:03:11.680 --> 00:03:14.800
+You know that it's supposed to be Emacs
+Lisp.
00:03:14.800 --> 00:03:17.200
"I hardly know Emacs and
00:03:17.200 --> 00:03:19.440
-I know even less what is Lisp supposed to be."
+I know even less what is Lisp supposed
+to be."
-00:03:19.440 --> 00:03:21.440
-But you paste it in and it does what you
+00:03:19.440 --> 00:03:22.172
+But you paste it in, and it does what
+you want it to do,
-00:03:21.440 --> 00:03:22.800
-want it to do, and you say
+00:03:22.172 --> 00:03:26.682
+and you say "Great, I'll move on to my
+work now."
-00:03:22.800 --> 00:03:26.959
-"Great, I'll move on to my work now." So
+00:03:26.682 --> 00:03:28.821
+So that's how I got started.
-00:03:26.959 --> 00:03:29.280
-that's how I got started. I had
+00:03:28.821 --> 00:03:33.888
+I had a very spartan setup for Emacs,
+which a lot of you must know...
-00:03:29.280 --> 00:03:30.879
-a very spartan
+00:03:33.888 --> 00:03:36.000
+The first time you launch Emacs,
-00:03:30.879 --> 00:03:33.440
-setup for Emacs, which a lot of you must
+00:03:36.000 --> 00:03:36.920
+you have this feeling
-00:03:33.440 --> 00:03:36.000
-know... The first time you launch Emacs,
+00:03:36.920 --> 00:03:38.852
+that you're jumping 20 years
+back in time,
-00:03:36.000 --> 00:03:37.840
-you have this feeling that you're jumping 20
+00:03:38.852 --> 00:03:43.260
+as far as the user interface is
+concerned.
-00:03:37.840 --> 00:03:39.599
-years back in time, as far as the
-
-00:03:39.599 --> 00:03:43.680
-user interface is concerned. But
-
-00:03:43.680 --> 00:03:46.959
-as you get to spend more time with Emacs...
+00:03:43.260 --> 00:03:46.959
+But as you get to spend more time with
+Emacs...
00:03:46.959 --> 00:03:49.120
Some would call it Stockholm syndrome
@@ -328,104 +291,94 @@ Some would call it Stockholm syndrome
00:03:49.120 --> 00:03:50.959
insofar as you can't see
-00:03:50.959 --> 00:03:53.360
-how spartan the entire thing is, but it
-
-00:03:53.360 --> 00:03:54.640
-actually is
+00:03:50.959 --> 00:03:52.929
+how spartan the entire thing is,
-00:03:54.640 --> 00:03:58.400
-a lovely prison, so to speak.
+00:03:52.929 --> 00:03:58.400
+but it actually is a lovely prison,
+so to speak.
00:03:58.400 --> 00:04:00.400
That's how I got started eight years ago.
-00:04:00.400 --> 00:04:01.680
-I just wanted
+00:04:00.400 --> 00:04:04.319
+I just wanted to find a way to do my
+research properly.
-00:04:01.680 --> 00:04:04.319
-to find a way to do my research properly.
+00:04:04.319 --> 00:04:05.699
+I wanted to have a tool
-00:04:04.319 --> 00:04:05.519
-I wanted to have a
-
-00:04:05.519 --> 00:04:07.280
-tool that I could use to write my notes
+00:04:05.699 --> 00:04:07.280
+that I could use to write my notes
00:04:07.280 --> 00:04:08.959
in plain text, because I was already
-00:04:08.959 --> 00:04:11.680
-fairly averse to
-
-00:04:11.680 --> 00:04:14.560
-Microsoft solutions when it
-
-00:04:14.560 --> 00:04:16.320
-came to taking notes.
-
-00:04:16.320 --> 00:04:19.359
-So yeah, I got started in Emacs. I
+00:04:08.959 --> 00:04:16.320
+fairly averse to Microsoft solutions
+when it came to taking notes.
-00:04:19.359 --> 00:04:20.880
-read a little bit about what plain text
+00:04:16.320 --> 00:04:19.180
+So yeah, I got started in Emacs.
-00:04:20.880 --> 00:04:23.040
-was about. Just to be clear,
+00:04:19.180 --> 00:04:21.651
+I read a little bit about what plain
+text was about.
-00:04:23.040 --> 00:04:26.000
-at the time, yes, I was very good with
+00:04:21.651 --> 00:04:24.364
+Just to be clear, at the time, yes,
-00:04:26.000 --> 00:04:27.120
-computers,
+00:04:24.364 --> 00:04:27.120
+I was very good with computers,
00:04:27.120 --> 00:04:30.160
but I was not a computer science student.
-00:04:30.160 --> 00:04:33.520
+00:04:30.160 --> 00:04:34.302
I had barely any experience with
-programming
+programming and coding,
-00:04:33.520 --> 00:04:36.080
-and coding, and I was even less of a
-
-00:04:36.080 --> 00:04:39.919
-hacker
+00:04:34.302 --> 00:04:39.919
+and I was even less of a hacker
back then.
-00:04:39.919 --> 00:04:42.560
-It just goes to show you that at the
+00:04:39.919 --> 00:04:43.052
+It just goes to show you that
+at the beginning,
-00:04:42.560 --> 00:04:44.479
-beginning, I had close to no knowledge,
+00:04:43.052 --> 00:04:44.479
+I had close to no knowledge,
00:04:44.479 --> 00:04:45.840
whether it be about
-00:04:45.840 --> 00:04:48.880
-the free software world, whether it be
-about...
+00:04:45.840 --> 00:04:47.457
+the free software world,
+
+00:04:47.457 --> 00:04:48.880
+whether it be about...
-00:04:48.880 --> 00:04:50.800
-Sacha, do you want to say something? (Sacha: just
+00:04:48.880 --> 00:04:50.290
+Sacha, do you want to say something?
-00:04:50.800 --> 00:04:52.479
-confirming, you're not sharing anything
+00:04:50.290 --> 00:04:52.479
+(Sacha: just confirming, you're not
+sharing anything
00:04:52.479 --> 00:04:54.080
on the screen at the moment, right?)
-00:04:54.080 --> 00:04:55.360
-No, I'm not sharing anything, I'm
+00:04:54.080 --> 00:04:55.204
+No, I'm not sharing anything,
-00:04:55.360 --> 00:04:59.040
-just presenting.
+00:04:55.204 --> 00:04:59.040
+I'm just presenting.
-00:04:59.040 --> 00:05:02.240
-So when I started, I had no
+00:04:59.040 --> 00:05:01.173
+So when I started,
-00:05:02.240 --> 00:05:03.680
-experience whatsoever.
+00:05:01.173 --> 00:05:03.680
+I had no experience whatsoever.
00:05:03.680 --> 00:05:07.199
I was just a literature major
@@ -433,37 +386,39 @@ I was just a literature major
00:05:07.199 --> 00:05:11.039
trying to get better at taking notes.
-00:05:11.039 --> 00:05:13.440
-I stumbled upon LaTeX. As many people
+00:05:11.039 --> 00:05:12.466
+I stumbled upon LaTeX.
-00:05:13.440 --> 00:05:15.280
-who stumble upon LaTeX know,
+00:05:12.466 --> 00:05:15.280
+As many people who stumble upon
+LaTeX know,
-00:05:15.280 --> 00:05:17.039
-you don't just stumble upon
+00:05:15.280 --> 00:05:17.519
+you don't just stumble upon LaTeX,
-00:05:17.039 --> 00:05:19.759
-LaTeX, you embroil yourself in the
+00:05:17.519 --> 00:05:21.950
+you embroil yourself in the turmoil of
+suffering,
-00:05:19.759 --> 00:05:24.560
-turmoil of suffering, of late
-nights tweaking,
+00:05:21.950 --> 00:05:24.560
+of late nights tweaking,
-00:05:24.560 --> 00:05:27.440
-so that your document is exactly in the
+00:05:24.560 --> 00:05:26.923
+so that your document is exactly
-00:05:27.440 --> 00:05:33.440
-perfect shape you want it to be.
+00:05:26.923 --> 00:05:33.440
+in the perfect shape you want it to be.
00:05:33.440 --> 00:05:36.639
Soon after, when I got started with
Emacs and LaTeX,
-00:05:36.639 --> 00:05:38.400
+00:05:36.639 --> 00:05:39.334
I discovered something that truly
+changed my life,
-00:05:38.400 --> 00:05:40.560
-changed my life, and it was Org Mode.
+00:05:39.334 --> 00:05:40.560
+and it was Org Mode.
00:05:40.560 --> 00:05:44.479
As you'll get a lot of presentations
@@ -478,41 +433,43 @@ I won't be spending too much time on it.
But Org Mode, for me, was a
revelation. It's...
-00:05:53.680 --> 00:05:56.880
-There was something that, upon reading
+00:05:53.680 --> 00:05:55.869
+There was something that,
-00:05:56.880 --> 00:05:59.039
-articles on how to use Org Mode,
+00:05:55.869 --> 00:05:59.039
+upon reading articles on
+how to use Org Mode,
-00:05:59.039 --> 00:06:02.080
+00:05:59.039 --> 00:06:02.453
especially one of the key
+articles
-00:06:02.080 --> 00:06:04.160
-article that I'd read which really made
+00:06:02.453 --> 00:06:04.160
+that I'd read which really made
00:06:04.160 --> 00:06:06.000
a huge impact on me
00:06:06.000 --> 00:06:09.199
-was the "Organize Your Life in Plain Text" one
-
-00:06:09.199 --> 00:06:10.720
-which i'm sure many of you must have
+was the "Organize Your Life in Plain
+Text" one,
-00:06:10.720 --> 00:06:12.240
+00:06:09.199 --> 00:06:12.240
+which I'm sure many of you must have
stumbled upon
00:06:12.240 --> 00:06:15.919
in your Emacs journey...
-00:06:15.919 --> 00:06:19.680
+00:06:15.919 --> 00:06:20.307
For me, when I stumbled upon this
+document,
-00:06:19.680 --> 00:06:21.840
-document, I was starting to get
+00:06:20.307 --> 00:06:22.488
+I was starting to get interested
-00:06:21.840 --> 00:06:24.240
-interested in Getting Things Done and
+00:06:22.488 --> 00:06:24.240
+in Getting Things Done and
00:06:24.240 --> 00:06:26.560
all the nitty-gritty stuff about
@@ -520,26 +477,23 @@ all the nitty-gritty stuff about
00:06:26.560 --> 00:06:29.199
organization and self-organization.
-00:06:29.199 --> 00:06:31.919
+00:06:29.199 --> 00:06:32.960
It just felt like everything was under
-
-00:06:31.919 --> 00:06:32.960
my fingertips
00:06:32.960 --> 00:06:36.960
to make the perfect workflow.
-00:06:36.960 --> 00:06:40.880
+00:06:36.960 --> 00:06:44.080
There was something incredibly
-
-00:06:40.880 --> 00:06:44.080
satisfying about
-00:06:44.080 --> 00:06:46.319
-having a system that gave you so many
+00:06:44.080 --> 00:06:45.834
+having a system that gave you
-00:06:46.319 --> 00:06:48.319
-options to configure your experience
+00:06:45.834 --> 00:06:48.319
+so many options to configure your
+experience
00:06:48.319 --> 00:06:50.160
exactly how you wanted.
@@ -547,10 +501,8 @@ exactly how you wanted.
00:06:50.160 --> 00:06:54.479
You had this feeling that
-00:06:54.479 --> 00:06:57.199
+00:06:54.479 --> 00:06:57.599
the people behind Org Mode had thought
-
-00:06:57.199 --> 00:06:57.599
of everything,
00:06:57.599 --> 00:07:00.479
@@ -576,76 +528,76 @@ oh, it's half past one and I need to...
in the morning, I mean, and I need to make
00:07:15.280 --> 00:07:17.680
-sure that the item that i'm marking as done
+sure that the item that I'm marking as done
-00:07:17.680 --> 00:07:19.199
-is done for the day before and not for
+00:07:17.680 --> 00:07:18.759
+is done for the day before
-00:07:19.199 --> 00:07:21.919
-the current day. You see what I'm talking about.
+00:07:18.759 --> 00:07:20.233
+and not for the current day.
+
+00:07:20.233 --> 00:07:21.919
+You see what I'm talking about.
00:07:21.919 --> 00:07:25.280
So many details that were already
-00:07:25.280 --> 00:07:28.800
-present in Org Mode. At first you're
-
-00:07:28.800 --> 00:07:31.039
-really impressed, because you think,
-
-00:07:31.039 --> 00:07:34.080
-wow, they thought of everything, but then
+00:07:25.280 --> 00:07:27.235
+present in Org Mode.
-00:07:34.080 --> 00:07:35.599
-you realize that it's just a matter of
+00:07:27.235 --> 00:07:31.335
+At first you're really impressed,
+because you think, wow,
-00:07:35.599 --> 00:07:38.080
-experience, just a matter of people
+00:07:31.335 --> 00:07:33.470
+they thought of everything,
-00:07:38.080 --> 00:07:40.800
-contributing code, because the
+00:07:33.470 --> 00:07:36.378
+but then you realize that it's just a
+matter of experience,
-00:07:40.800 --> 00:07:42.400
-development of Org Mode, Emacs, and
+00:07:36.378 --> 00:07:39.712
+just a matter of people
+contributing code,
-00:07:42.400 --> 00:07:43.520
-everything is just
+00:07:39.712 --> 00:07:42.171
+because the development of Org Mode,
+Emacs,
-00:07:43.520 --> 00:07:45.440
-open to the public. You know, it's like
+00:07:42.171 --> 00:07:44.455
+and everything is just
+open to the public.
-00:07:45.440 --> 00:07:46.879
-everything is being done with the garage
+00:07:44.455 --> 00:07:45.440
+You know, it's like
-00:07:46.879 --> 00:07:48.560
-door opened. You can just
+00:07:45.440 --> 00:07:47.685
+everything is being done
+with the garage door opened.
-00:07:48.560 --> 00:07:50.960
-go on Org Mode on Savannah and see
+00:07:47.685 --> 00:07:50.402
+You can just go on Org Mode on Savannah
-00:07:50.960 --> 00:07:54.800
-everything that is being developed.
+00:07:50.402 --> 00:07:54.800
+and see everything that is being
+developed.
-00:07:54.800 --> 00:07:58.639
-For me, the shift that occurred
+00:07:54.800 --> 00:08:01.586
+For me, the shift that occurred in my
+mind was
-00:07:58.639 --> 00:08:02.639
-in my mind was when
+00:08:01.586 --> 00:08:04.139
+when I was reading all the options,
-00:08:02.639 --> 00:08:04.240
-I was reading all the options, I
+00:08:04.139 --> 00:08:05.881
+I was looking at all the variables
-00:08:04.240 --> 00:08:06.240
-was looking at all the variables that i
+00:08:05.881 --> 00:08:08.160
+that I could modify for Org Mode,
-00:08:06.240 --> 00:08:08.160
-could modify for Org Mode,
-
-00:08:08.160 --> 00:08:11.440
-and there came a time, maybe two to three
-
-00:08:11.440 --> 00:08:12.560
-years ago,
+00:08:08.160 --> 00:08:12.560
+and there came a time, maybe two to
+three years ago,
00:08:12.560 --> 00:08:15.599
where I thought, oh wow,
@@ -653,35 +605,36 @@ where I thought, oh wow,
00:08:15.599 --> 00:08:17.759
maybe for the first time in a while,
-00:08:17.759 --> 00:08:19.599
-there is no option for me to do what I
+00:08:17.759 --> 00:08:19.260
+there is no option for me to do
-00:08:19.599 --> 00:08:21.440
-want to be doing with Org Mode.
+00:08:19.260 --> 00:08:21.440
+what I want to be doing with Org Mode.
-00:08:21.440 --> 00:08:24.479
-I believe at the time the the key
+00:08:21.440 --> 00:08:23.668
+I believe at the time,
-00:08:24.479 --> 00:08:29.199
-issue that triggered this reflex for me was
+00:08:23.668 --> 00:08:29.199
+the key issue that triggered
+this reflex for me was
00:08:29.199 --> 00:08:31.039
I wanted to do something with the agenda.
-00:08:31.039 --> 00:08:33.599
-I wanted to have a super category so, you
+00:08:31.039 --> 00:08:34.159
+I wanted to have a super category so,
+you know, in the...
-00:08:33.599 --> 00:08:34.159
-know, in the...
+00:08:34.159 --> 00:08:36.606
+for those of you who know,
+in your agenda,
-00:08:34.159 --> 00:08:36.320
-for those of you who know, in your
+00:08:36.606 --> 00:08:38.376
+you have the ability to
+have many files,
-00:08:36.320 --> 00:08:38.000
-agenda, you have the ability to have many
-
-00:08:38.000 --> 00:08:41.200
-files, and you have the ability to have
+00:08:38.376 --> 00:08:41.200
+and you have the ability to have
categories.
00:08:41.200 --> 00:08:47.920
@@ -693,30 +646,24 @@ TODOs in smaller groups, or bigger
00:08:51.680 --> 00:08:52.560
groups, I should say,
-00:08:52.560 --> 00:08:53.920
-so that, for instance, I could have one
-
-00:08:53.920 --> 00:08:55.440
-group for my professional life, I could
+00:08:52.560 --> 00:08:53.780
+so that, for instance, I could have
-00:08:55.440 --> 00:08:56.000
-have a group
+00:08:53.780 --> 00:08:55.131
+one group for my professional life,
-00:08:56.000 --> 00:08:59.600
-for one work, the second
-work...
+00:08:55.131 --> 00:08:57.462
+I could have a group for one work,
-00:08:59.600 --> 00:09:00.800
-I could have something for
+00:08:57.462 --> 00:08:59.600
+the second work...
-00:09:00.800 --> 00:09:02.800
-university and all this.
+00:08:59.600 --> 00:09:02.800
+I could have something for university
+and all this.
-00:09:02.800 --> 00:09:06.000
-I thought, yeah,
-
-00:09:06.000 --> 00:09:09.600
-I think I'd like this.
+00:09:02.800 --> 00:09:09.600
+I thought, yeah, I think I'd like this.
00:09:09.600 --> 00:09:12.959
After having spent so long working
@@ -724,14 +671,15 @@ After having spent so long working
00:09:12.959 --> 00:09:15.519
with Emacs and working with Org Mode,
-00:09:15.519 --> 00:09:17.200
-I had some ideas about what was
+00:09:15.519 --> 00:09:16.766
+I had some ideas about
-00:09:17.200 --> 00:09:18.800
-within the realm of possibility and what
+00:09:16.766 --> 00:09:19.292
+what was within the realm of possibility
+and what wasn't.
-00:09:18.800 --> 00:09:21.120
-wasn't. Here I thought to myself,
+00:09:19.292 --> 00:09:21.120
+Here I thought to myself,
00:09:21.120 --> 00:09:24.320
this is definitely something that I can do.
@@ -742,11 +690,12 @@ And so thus started my journey
00:09:27.839 --> 00:09:31.360
into the Org Mode libraries.
-00:09:31.360 --> 00:09:33.040
-I won't go too much into details right
+00:09:31.360 --> 00:09:33.222
+I won't go too much into details
+right now,
-00:09:33.040 --> 00:09:34.959
-now, because right now, the main objective
+00:09:33.222 --> 00:09:34.959
+because right now, the main objective
00:09:34.959 --> 00:09:37.040
that I have is just to show you
@@ -770,46 +719,41 @@ It might seem like an obscure language,
00:09:52.080 --> 00:09:54.080
and it certainly is,
-00:09:54.080 --> 00:09:56.399
+00:09:54.080 --> 00:09:57.279
but as soon as you get the logic of the
-
-00:09:56.399 --> 00:09:57.279
language--and
-00:09:57.279 --> 00:09:59.360
-what i'm telling you
-
-00:09:59.360 --> 00:10:00.560
-is coming from someone who's never
+00:09:57.279 --> 00:10:00.136
+what I'm telling you is coming from
+someone
-00:10:00.560 --> 00:10:01.760
-studied programming--
+00:10:00.136 --> 00:10:01.760
+who's never studied programming--
00:10:01.760 --> 00:10:04.399
it made sense.
-00:10:04.399 --> 00:10:06.079
-Everything is so verbose when you get
+00:10:04.399 --> 00:10:05.534
+Everything is so verbose
-00:10:06.079 --> 00:10:07.279
-into the code.
+00:10:05.534 --> 00:10:07.279
+when you get into the code.
-00:10:07.279 --> 00:10:10.399
+00:10:07.279 --> 00:10:11.065
When you learn the rudiments
+of Elisp,
-00:10:10.399 --> 00:10:13.360
-of Elisp, you start getting to the code,
+00:10:11.065 --> 00:10:13.360
+you start getting to the code,
-00:10:13.360 --> 00:10:14.079
-and you start
+00:10:13.360 --> 00:10:15.229
+and you start thinking, wow,
-00:10:14.079 --> 00:10:17.120
-thinking, wow, okay that makes sense,
+00:10:15.229 --> 00:10:17.120
+okay that makes sense,
-00:10:17.120 --> 00:10:19.519
+00:10:17.120 --> 00:10:21.360
and you start developing a logic
-
-00:10:19.519 --> 00:10:21.360
for all this.
00:10:21.360 --> 00:10:24.720
@@ -819,76 +763,75 @@ So, equipped as I was with this
new knowledge, I went on my project,
00:10:27.760 --> 00:10:30.000
-i went into the Org agenda code,
+I went into the Org agenda code,
00:10:30.000 --> 00:10:30.880
and I thought, okay,
-00:10:30.880 --> 00:10:33.440
+00:10:30.880 --> 00:10:34.640
is there anything that I can use to do
-
-00:10:33.440 --> 00:10:34.640
my bidding?
-00:10:34.640 --> 00:10:38.560
+00:10:34.640 --> 00:10:39.733
Fast forward maybe two to three weeks of
+intense turmoil
-00:10:38.560 --> 00:10:41.600
-intense turmoil and many nights which
-
-00:10:41.600 --> 00:10:46.079
-were spent single-mindedly working on
-this project,
+00:10:39.733 --> 00:10:46.079
+and many nights which were spent
+single-mindedly working on this project,
-00:10:46.079 --> 00:10:48.079
-two weeks after, I had something that was
+00:10:46.079 --> 00:10:48.781
+two weeks after, I had something
+that was working,
-00:10:48.079 --> 00:10:51.680
-working, and I was pretty happy about it.
+00:10:48.781 --> 00:10:51.680
+and I was pretty happy about it.
-00:10:51.680 --> 00:10:54.640
-That was a key landmark for
+00:10:51.680 --> 00:10:54.849
+That was a key landmark for me,
-00:10:54.640 --> 00:10:56.800
-me, because when that happened,
+00:10:54.849 --> 00:10:56.800
+because when that happened,
-00:10:56.800 --> 00:11:00.320
-it just felt like, okay, I can contribute
+00:10:56.800 --> 00:10:58.860
+it just felt like, okay,
-00:11:00.320 --> 00:11:02.160
-something to Org Mode, and I can do
+00:10:58.860 --> 00:11:01.335
+I can contribute something to Org Mode,
-00:11:02.160 --> 00:11:07.600
-something that would benefit as many
-people as possible.
+00:11:01.335 --> 00:11:07.600
+and I can do something that would
+benefit as many people as possible.
-00:11:07.600 --> 00:11:09.519
-And to me, that was the click. That's when
+00:11:07.600 --> 00:11:08.970
+And to me, that was the click.
-00:11:09.519 --> 00:11:11.440
-it occurred. That's when I
+00:11:08.970 --> 00:11:10.530
+That's when it occurred.
-00:11:11.440 --> 00:11:14.640
-went on my first project and I did something
+00:11:10.530 --> 00:11:14.640
+That's when I went on my first project
+and I did something
00:11:14.640 --> 00:11:18.079
that felt useful to the community.
-00:11:18.079 --> 00:11:20.079
-And nowadays, as I told you, I
+00:11:18.079 --> 00:11:19.945
+And nowadays, as I told you,
-00:11:20.079 --> 00:11:22.640
-maintain packages, but really, nothing
+00:11:19.945 --> 00:11:22.640
+I maintain packages, but really, nothing
has changed.
00:11:22.640 --> 00:11:24.399
The only thing, maybe, that has changed
00:11:24.399 --> 00:11:28.320
-that I've turned my mind onto other problems.
+is that I've turned my mind onto other
+problems.
00:11:28.320 --> 00:11:32.000
-Maybe I've got three more minutes
+Maybe I've got three more minutes,
00:11:32.000 --> 00:11:35.279
and I'd like to finish by
@@ -896,35 +839,30 @@ and I'd like to finish by
00:11:35.279 --> 00:11:38.399
maybe something a little different.
-00:11:38.399 --> 00:11:39.600
-I've told you my Emacs story and
+00:11:38.399 --> 00:11:39.449
+I've told you my Emacs story
-00:11:39.600 --> 00:11:42.079
-I hope I've stressed how little effort
+00:11:39.449 --> 00:11:42.924
+and I hope I've stressed how little
+effort it took me
-00:11:42.079 --> 00:11:43.600
-it took me to
+00:11:42.924 --> 00:11:46.560
+to move from steps to steps on the
+ladder.
-00:11:43.600 --> 00:11:46.560
-move from steps to steps on the ladder.
-
-00:11:46.560 --> 00:11:48.399
+00:11:46.560 --> 00:11:48.959
The ladder implies a sense of hierarchy,
-
-00:11:48.399 --> 00:11:48.959
but it really isn't.
-00:11:48.959 --> 00:11:52.240
-Whatever your step on the
-
-00:11:52.240 --> 00:11:53.920
-journey of Emacs is...
+00:11:48.959 --> 00:11:53.920
+Whatever your step on the journey of
+Emacs is...
-00:11:53.920 --> 00:11:55.600
-Some of you might be at the
+00:11:53.920 --> 00:11:55.830
+Some of you might be at the step
-00:11:55.600 --> 00:11:57.440
-step where you're really worried
+00:11:55.830 --> 00:11:57.440
+where you're really worried
00:11:57.440 --> 00:11:59.360
about learning Elisp because it feels
@@ -960,20 +898,20 @@ I wish I could do this but I can't,"
00:12:18.160 --> 00:12:19.920
or maybe do try to do this,
-00:12:19.920 --> 00:12:21.680
-maybe do try to change something in a
+00:12:19.920 --> 00:12:21.442
+maybe do try to change something
-00:12:21.680 --> 00:12:23.279
-major mode that you're using
+00:12:21.442 --> 00:12:23.279
+in a major mode that you're using
00:12:23.279 --> 00:12:26.560
and which you feel might be better.
-00:12:26.560 --> 00:12:29.760
-I think Emacs, Org Mode, and all free
+00:12:26.560 --> 00:12:28.722
+I think Emacs, Org Mode,
-00:12:29.760 --> 00:12:31.040
-software in general
+00:12:28.722 --> 00:12:31.040
+and all free software in general
00:12:31.040 --> 00:12:34.720
has this tendency to give you this idea
@@ -990,11 +928,12 @@ that you're modifying things
00:12:43.200 --> 00:12:46.320
to do your bidding.
-00:12:46.320 --> 00:12:48.399
-For me, I believe this to be a very
+00:12:46.320 --> 00:12:48.042
+For me, I believe this to be
-00:12:48.399 --> 00:12:50.320
-healthy attitude towards software.
+00:12:48.042 --> 00:12:50.320
+a very healthy attitude towards
+software.
00:12:50.320 --> 00:12:54.079
As Amin said in the very beginning,
@@ -1003,19 +942,18 @@ As Amin said in the very beginning,
we are doing this entire presentation--
00:12:57.279 --> 00:13:00.800
-sorry, this entire conference with free software.
+sorry, this entire conference with
+free software.
-00:13:00.800 --> 00:13:02.240
-Just see all the things we've been able
+00:13:00.800 --> 00:13:01.686
+Just see all the things
-00:13:02.240 --> 00:13:03.920
-to do in free software.
+00:13:01.686 --> 00:13:03.920
+we've been able to do in free software.
-00:13:03.920 --> 00:13:07.360
-For me, Emacs
-
-00:13:07.360 --> 00:13:10.399
-was my gateway, so to speak,
+00:13:03.920 --> 00:13:10.399
+For me, Emacs was my gateway,
+so to speak,
00:13:10.399 --> 00:13:14.399
into how to contribute to free software,
@@ -1023,29 +961,28 @@ into how to contribute to free software,
00:13:14.399 --> 00:13:18.639
about the philosophy that surrounds it.
-00:13:18.639 --> 00:13:20.560
-What I would like to do... I'll finish
+00:13:18.639 --> 00:13:20.003
+What I would like to do...
-00:13:20.560 --> 00:13:22.000
-on this note and then I'll be taking
+00:13:20.003 --> 00:13:21.375
+I'll finish on this note and then
-00:13:22.000 --> 00:13:23.360
-your questions.
+00:13:21.375 --> 00:13:23.360
+I'll be taking your questions.
00:13:23.360 --> 00:13:26.480
Just try.
-00:13:26.480 --> 00:13:29.360
-You've read on Reddit that you
-
-00:13:29.360 --> 00:13:31.279
-need to go through the Elisp manual
+00:13:26.480 --> 00:13:28.592
+You've read on Reddit
-00:13:31.279 --> 00:13:33.040
-in Emacs. You might be scared,
+00:13:28.592 --> 00:13:31.807
+that you need to go through the Elisp
+manual in Emacs.
-00:13:33.040 --> 00:13:35.920
-but just do it. Just give it a shot.
+00:13:31.807 --> 00:13:35.920
+You might be scared, but just do it.
+Just give it a shot.
00:13:35.920 --> 00:13:38.560
Just give it maybe one afternoon.
@@ -1056,30 +993,33 @@ Try to read it.
00:13:39.199 --> 00:13:43.120
Try to see if this appeals to your mind.
-00:13:43.120 --> 00:13:44.399
-If you've been interested enough in my
+00:13:43.120 --> 00:13:44.230
+If you've been interested enough
-00:13:44.399 --> 00:13:45.680
-presentation right now, and if you're
+00:13:44.230 --> 00:13:45.241
+in my presentation right now,
-00:13:45.680 --> 00:13:47.199
-interested enough in any of the talks
+00:13:45.241 --> 00:13:47.199
+and if you're interested enough in any
+of the talks
00:13:47.199 --> 00:13:49.519
you're going to have during the entire
conference,
-00:13:49.519 --> 00:13:51.839
-do give it a shot. I'm pretty sure
+00:13:49.519 --> 00:13:50.747
+do give it a shot.
-00:13:51.839 --> 00:13:52.959
-you will like the journey
+00:13:50.747 --> 00:13:52.959
+I'm pretty sure you will like
+the journey
-00:13:52.959 --> 00:13:55.760
-on which you will be embarking upon. So I
+00:13:52.959 --> 00:13:55.418
+on which you will be embarking upon.
-00:13:55.760 --> 00:13:57.120
-believe I'm finishing one minute early,
+00:13:55.418 --> 00:13:57.120
+So I believe I'm finishing
+one minute early,
00:13:57.120 --> 00:14:01.040
but I see quite a bit of questions already.
@@ -1087,20 +1027,18 @@ but I see quite a bit of questions already.
00:14:01.040 --> 00:14:04.320
I'm not sure. Sacha, should I
-00:14:04.320 --> 00:14:06.000
-just be reading the questions, or
+00:14:04.320 --> 00:14:05.847
+just be reading the questions,
-00:14:06.000 --> 00:14:07.120
-do you want to be feeding me the
-
-00:14:07.120 --> 00:14:08.639
+00:14:05.847 --> 00:14:08.639
+or do you want to be feeding me the
questions?
-00:14:08.639 --> 00:14:11.120
-(Amin: It's really up to you. it's
+00:14:08.639 --> 00:14:10.755
+(Amin: It's really up to you.
-00:14:11.120 --> 00:14:12.320
-completely up to you.
+00:14:10.755 --> 00:14:12.320
+It's completely up to you.
00:14:12.320 --> 00:14:13.600
If you've got the questions
@@ -1109,16 +1047,17 @@ If you've got the questions
open and can take them or read them,
00:14:15.839 --> 00:14:18.320
-by all means please.)
+by all means, please.)
-00:14:18.320 --> 00:14:19.680
-Okay, well, I'm going to read them because
+00:14:18.320 --> 00:14:19.420
+Okay, well, I'm going to read them
-00:14:19.680 --> 00:14:20.880
-I've got them on the side. I'm going
+00:14:19.420 --> 00:14:20.581
+because I've got them on the side.
-00:14:20.880 --> 00:14:22.800
-to start with the one at the bottom.
+00:14:20.581 --> 00:14:22.800
+I'm going to start with the one at the
+bottom.
00:14:22.800 --> 00:14:24.959
"Do you feel that being a white male
@@ -1126,22 +1065,25 @@ to start with the one at the bottom.
00:14:24.959 --> 00:14:26.959
contributed to your experience?"
-00:14:26.959 --> 00:14:29.680
-Yeah. I mean, I do believe... There's
+00:14:26.959 --> 00:14:29.165
+Yeah. I mean, I do believe...
+
+00:14:29.165 --> 00:14:30.771
+There's an idea of privilege.
-00:14:29.680 --> 00:14:31.360
-an idea of privilege. I mean, I'm
+00:14:30.771 --> 00:14:33.250
+I mean, I'm French. I live in...
-00:14:31.360 --> 00:14:35.279
-French. I live in... I'm lucky enough to
-be here
+00:14:33.250 --> 00:14:36.959
+I'm lucky enough to be here at
+university, okay,
-00:14:35.279 --> 00:14:39.120
-at university, okay, and I'm fairly
-aware of the
+00:14:36.959 --> 00:14:40.714
+and I'm fairly aware of the
+discrepancies that happen,
-00:14:39.120 --> 00:14:41.600
-discrepancies that happen, even in France,
+00:14:40.714 --> 00:14:41.600
+even in France,
00:14:41.600 --> 00:14:42.880
according to this...
@@ -1152,14 +1094,13 @@ So, yes, I believe my journey
00:14:46.320 --> 00:14:51.199
was heavily influenced by this.
-00:14:51.199 --> 00:14:52.639
+00:14:51.199 --> 00:14:53.547
If you would like to specify the
+question, please do,
-00:14:52.639 --> 00:14:54.320
-question, please do, but I don't have
-
-00:14:54.320 --> 00:14:56.560
-really all that much to ask on this.
+00:14:53.547 --> 00:14:56.560
+but I don't have really all that much to
+ask on this.
00:14:56.560 --> 00:14:59.839
"What is your advice to start learning
@@ -1167,53 +1108,51 @@ really all that much to ask on this.
00:14:59.839 --> 00:15:01.279
Elisp language? Any particularly good
-00:15:01.279 --> 00:15:04.160
-resource or any other tips?" I finished
-
-00:15:04.160 --> 00:15:07.760
-um my presentation by telling you about
+00:15:01.279 --> 00:15:03.421
+resource or any other tips?"
-00:15:07.760 --> 00:15:10.560
-the Elisp introduction which is built into
+00:15:03.421 --> 00:15:07.760
+I finished my presentation by telling
+you about
-00:15:10.560 --> 00:15:13.519
-Emacs. What I might do... I'm going to share my
+00:15:07.760 --> 00:15:10.937
+the Elisp introduction which is built
+into Emacs.
-00:15:13.519 --> 00:15:15.120
-screen just to show you
+00:15:10.937 --> 00:15:13.936
+What I might do... I'm going to
+share my screen
-00:15:15.120 --> 00:15:22.880
-how this works. I will be sharing
-this window.
+00:15:13.936 --> 00:15:17.819
+just to show you how this works.
-00:15:22.880 --> 00:15:24.399
-I believe it's frozen on my end, so I
+00:15:17.819 --> 00:15:22.880
+I will be sharing this window.
-00:15:24.399 --> 00:15:27.199
-can't see anything.
+00:15:22.880 --> 00:15:24.234
+I believe it's frozen on my end,
-00:15:27.199 --> 00:15:28.959
-i'm not sure if you can see me or if my
+00:15:24.234 --> 00:15:27.199
+so I can't see anything.
-00:15:28.959 --> 00:15:32.560
-camera is moving.
+00:15:27.199 --> 00:15:28.597
+I'm not sure if you can see me
-00:15:32.560 --> 00:15:34.800
-Okay, so my Firefox is frozen. So i'll
+00:15:28.597 --> 00:15:32.560
+or if my camera is moving.
-00:15:34.800 --> 00:15:36.000
-answer the question, but I won't be able
+00:15:32.560 --> 00:15:34.387
+Okay, so my Firefox is frozen.
-00:15:36.000 --> 00:15:36.800
-to show you
+00:15:34.387 --> 00:15:35.361
+So I'll answer the question,
-00:15:36.800 --> 00:15:40.000
-what I wanted to show you.
+00:15:35.361 --> 00:15:40.000
+but I won't be able to show you what I
+wanted to show you.
-00:15:40.000 --> 00:15:42.639
+00:15:40.000 --> 00:15:44.320
There's a built-in guide inside Emacs to
-
-00:15:42.639 --> 00:15:44.320
learn Elisp.
00:15:44.320 --> 00:15:46.880
@@ -1225,11 +1164,9 @@ is just to go open these info pages.
00:15:49.040 --> 00:15:50.959
I'm sure someone will be kind enough to
-00:15:50.959 --> 00:15:53.839
-mention this to you in the #emacsconf channel
-
-00:15:53.839 --> 00:15:54.880
-on IRC
+00:15:50.959 --> 00:15:54.880
+mention this to you in the #emacsconf
+channel on IRC
00:15:54.880 --> 00:15:56.880
but it's probably the best way
@@ -1237,26 +1174,25 @@ but it's probably the best way
00:15:56.880 --> 00:15:59.040
to get started with Elisp.
-00:15:59.040 --> 00:16:01.279
-You know, we tend to get obsessed, with
-
-00:16:01.279 --> 00:16:03.360
-software and with programming, about
+00:15:59.040 --> 00:16:00.991
+You know, we tend to get obsessed,
-00:16:03.360 --> 00:16:04.880
-what's the best way to get started.
+00:16:00.991 --> 00:16:03.013
+with software and with programming,
-00:16:04.880 --> 00:16:06.959
-You see so many people who are
+00:16:03.013 --> 00:16:04.880
+about what's the best way to get
+started.
-00:16:06.959 --> 00:16:08.399
-heavily interested
+00:16:04.880 --> 00:16:08.399
+You see so many people who are heavily
+interested
-00:16:08.399 --> 00:16:10.639
-in getting started with programming but
+00:16:08.399 --> 00:16:10.409
+in getting started with programming
-00:16:10.639 --> 00:16:12.320
-they never managed to get started
+00:16:10.409 --> 00:16:12.320
+but they never managed to get started
00:16:12.320 --> 00:16:14.320
because there's so much choice.
@@ -1267,135 +1203,115 @@ My advice would be to just get started.
00:16:16.320 --> 00:16:18.800
Don't get so worried about the first step.
-00:16:18.800 --> 00:16:21.839
-Well, if I may still recommend the
-
-00:16:21.839 --> 00:16:23.920
-first step, even after saying this,
-
-00:16:23.920 --> 00:16:26.480
-do try to start with the
-
-00:16:26.480 --> 00:16:28.000
-built-in guides. I believe they're pretty
-
-00:16:28.000 --> 00:16:29.600
-pretty good.
+00:16:18.800 --> 00:16:22.493
+Well, if I may still recommend
+the first step,
-00:16:29.600 --> 00:16:32.079
-There was another question. It's
+00:16:22.493 --> 00:16:23.920
+even after saying this,
-00:16:32.079 --> 00:16:33.199
-the last question that I can read and
+00:16:23.920 --> 00:16:27.073
+do try to start with the built-in
+guides.
-00:16:33.199 --> 00:16:34.800
-after that, you will have to read
+00:16:27.073 --> 00:16:29.600
+I believe they're pretty, pretty good.
-00:16:34.800 --> 00:16:36.000
-the questions for me because everything
+00:16:29.600 --> 00:16:31.691
+There was another question.
-00:16:36.000 --> 00:16:37.920
-is frozen on my end.
+00:16:31.691 --> 00:16:33.055
+It's the last question that I can read
-00:16:37.920 --> 00:16:41.600
-I hope I'm not frozen
+00:16:33.055 --> 00:16:34.564
+and after that, you will have to
-00:16:41.600 --> 00:16:44.240
-in a very bad position so
+00:16:34.564 --> 00:16:37.920
+read the questions for me because
+everything is frozen on my end.
-00:16:44.240 --> 00:16:45.680
-please excuse me if
+00:16:37.920 --> 00:16:43.935
+I hope I'm not frozen in a very bad
+position,
-00:16:45.680 --> 00:16:48.240
-my mouth is open or anything. (Amin: no, we
+00:16:43.935 --> 00:16:47.406
+so please excuse me if my mouth is open
+or anything.
-00:16:48.240 --> 00:16:49.759
-just completely lost the video feed, so
+00:16:47.406 --> 00:16:51.120
+(Amin: no, we just completely lost the
+video feed, so no worries.)
-00:16:49.759 --> 00:16:51.120
-no worries.)
-
-00:16:51.120 --> 00:16:52.720
+00:16:51.120 --> 00:16:54.800
Oh, splendid, so I won't have to make a
-
-00:16:52.720 --> 00:16:54.800
fool out of myself.
00:16:54.800 --> 00:16:56.800
So the last question I wanted to answer was
-00:16:56.800 --> 00:16:58.320
+00:16:56.800 --> 00:16:59.199
"Have you read Dirk Gently's Holistic
-
-00:16:58.320 --> 00:16:59.199
Detective Agency?"
-00:16:59.199 --> 00:17:03.519
-No, I haven't. I hope it's not
-
-00:17:03.519 --> 00:17:05.199
-a jab at the way i'm dressing for the
+00:16:59.199 --> 00:17:05.741
+No, I haven't. I hope it's not a jab at
+the way I'm dressing for the conference,
-00:17:05.199 --> 00:17:06.559
-conference, but yeah,
-
-00:17:06.559 --> 00:17:08.559
-I haven't read it. Was there any
-
-00:17:08.559 --> 00:17:10.559
-other question?
+00:17:05.741 --> 00:17:10.559
+but yeah, I haven't read it. Was there
+any other question?
00:17:10.559 --> 00:17:15.919
(Amin: I see one other question.
-00:17:15.919 --> 00:17:17.919
+00:17:15.919 --> 00:17:19.679
"Any recommendation for good packaging
-
-00:17:17.919 --> 00:17:19.679
guides or places to start?
00:17:19.679 --> 00:17:23.199
-i get a bit overwhelmed by some things.
+I get a bit overwhelmed by some things.
00:17:23.199 --> 00:17:26.799
For example, the choice of different test
frameworks.")
-00:17:26.799 --> 00:17:28.240
+00:17:26.799 --> 00:17:29.263
Right. Okay. So that's a very good
+question.
-00:17:28.240 --> 00:17:30.400
-question. I believe
+00:17:29.263 --> 00:17:33.840
+I believe alphapapa is in the chat right
+now.
-00:17:30.400 --> 00:17:33.840
-alphapapa is in the chat right now.
+00:17:33.840 --> 00:17:36.314
+As myself a new Lisp developer for
+org-roam,
-00:17:33.840 --> 00:17:35.840
-As myself a new lisp developer for
+00:17:36.314 --> 00:17:38.320
+I'd really recommend you to look into
-00:17:35.840 --> 00:17:38.320
-org-roam, i'd really recommend you to look into
+00:17:38.320 --> 00:17:40.032
+his package developers' guide,
-00:17:38.320 --> 00:17:40.640
-his package developers' guide because you
+00:17:40.032 --> 00:17:42.507
+because you have a list of
+all the softwares
-00:17:40.640 --> 00:17:42.799
-have a list of all the softwares that
-
-00:17:42.799 --> 00:17:44.559
-are extremely useful to be using when
+00:17:42.507 --> 00:17:44.559
+that are extremely useful to
+be using when
00:17:44.559 --> 00:17:45.760
you're getting started.
-00:17:45.760 --> 00:17:48.000
-If you're looking into a first
+00:17:45.760 --> 00:17:48.347
+If you're looking into a first step
-00:17:48.000 --> 00:17:50.000
-step for how to develop
+00:17:48.347 --> 00:17:50.947
+for how to develop elisp packages,
-00:17:50.000 --> 00:17:52.640
-elast package, i'd really advise you to
+00:17:50.947 --> 00:17:52.640
+I'd really advise you to
00:17:52.640 --> 00:17:53.520
look into edebug.
@@ -1404,111 +1320,108 @@ look into edebug.
It's one word, edebug,
00:17:56.559 --> 00:17:58.400
-and you have a section in the manual for this,
+and you have a section in the
+manual for this,
00:17:58.400 --> 00:18:00.799
because for me, it was the key step to
-00:18:00.799 --> 00:18:04.320
-getting to develop good packages. It was
+00:18:00.799 --> 00:18:03.791
+getting to develop good packages.
-00:18:04.320 --> 00:18:06.160
-understanding basically what the code did
+00:18:03.791 --> 00:18:06.160
+It was understanding basically
+what the code did
-00:18:06.160 --> 00:18:08.960
-and having us something like a
+00:18:06.160 --> 00:18:08.866
+and having us something like
-00:18:08.960 --> 00:18:09.919
-REPL (read-evaluate-print-loop)
+00:18:08.866 --> 00:18:09.919
+a REPL (read-evaluate-print-loop)
00:18:09.919 --> 00:18:11.760
that allows you to step through the code
-00:18:11.760 --> 00:18:13.360
-and see exactly which states the
-
-00:18:13.360 --> 00:18:16.000
-variables are at which at this point in the
+00:18:11.760 --> 00:18:13.210
+and see exactly which states
-00:18:16.000 --> 00:18:20.080
-program. That's really my biggest advice
-to you.
+00:18:13.210 --> 00:18:15.643
+the variables are at which at this point
-00:18:21.200 --> 00:18:24.400
-Any other question? Thanks. Yeah, I see one
+00:18:15.643 --> 00:18:20.080
+in the program. That's really my biggest
+advice to you.
-00:18:24.400 --> 00:18:26.160
-or two more.
+00:18:21.200 --> 00:18:26.160
+Any other question? Thanks. Yeah, I see
+one or two more.
-00:18:26.160 --> 00:18:28.240
+00:18:26.160 --> 00:18:33.120
So there's one. They ask, "How did the
+freedom of Emacs help you on your way?"
-00:18:28.240 --> 00:18:30.080
-freedom of Emacs help you on
+00:18:33.120 --> 00:18:35.507
+So the freedom of Emacs...
-00:18:30.080 --> 00:18:33.120
-your way?"
+00:18:35.507 --> 00:18:38.080
+I mentioned that Emacs, for me,
+was my gateway
-00:18:33.120 --> 00:18:36.480
-So the freedom of Emacs... I mentioned
+00:18:38.080 --> 00:18:39.216
+into free software
-00:18:36.480 --> 00:18:38.080
-that Emacs, for me, was my gateway
+00:18:39.216 --> 00:18:40.652
+and the freedom of Emacs
-00:18:38.080 --> 00:18:40.320
-into free software and the freedom of
+00:18:40.652 --> 00:18:42.551
+was that you could maybe...
-00:18:40.320 --> 00:18:43.840
-Emacs was that you could maybe... First
-and foremost,
+00:18:42.551 --> 00:18:43.840
+First and foremost,
-00:18:43.840 --> 00:18:47.840
-compared to other software, was that
-you had
+00:18:43.840 --> 00:18:46.385
+compared to other software,
-00:18:47.840 --> 00:18:51.039
-behind Emacs, Elisp, which allows you to
-read the code,
+00:18:46.385 --> 00:18:49.003
+was that you had behind Emacs, Elisp,
-00:18:51.039 --> 00:18:52.400
-read whatever is going on in the
+00:18:49.003 --> 00:18:51.039
+which allows you to read the code,
-00:18:52.400 --> 00:18:53.039
+00:18:51.039 --> 00:18:53.039
+read whatever is going on in the
background.
-00:18:53.039 --> 00:18:54.640
-Surely, if you go deep enough, you'll
+00:18:53.039 --> 00:18:54.380
+Surely, if you go deep enough,
-00:18:54.640 --> 00:18:58.000
-end up in C functions that you might not
-be able to
+00:18:54.380 --> 00:18:58.172
+you'll end up in C functions that you
+might not be able to read
-00:18:58.000 --> 00:18:59.679
-read if you do not have the experience.
+00:18:58.172 --> 00:18:59.679
+if you do not have the experience.
-00:18:59.679 --> 00:19:02.000
+00:18:59.679 --> 00:19:03.520
But for Org Mode, which was my gateway
-
-00:19:02.000 --> 00:19:03.520
into Emacs,
-00:19:03.520 --> 00:19:06.400
-most of it is written in Elisp, and all
+00:19:03.520 --> 00:19:05.883
+most of it is written in Elisp,
-00:19:06.400 --> 00:19:08.240
-the commands have a very verbose
+00:19:05.883 --> 00:19:08.546
+and all the commands have a
+very verbose name,
-00:19:08.240 --> 00:19:10.080
-name, like something simple as
+00:19:08.546 --> 00:19:10.080
+like something simple as
00:19:10.080 --> 00:19:13.440
org go to next subtree or
-00:19:13.440 --> 00:19:15.840
-org go to a parent subtree. You know, things
-
-00:19:15.840 --> 00:19:16.880
-like this.
+00:19:13.440 --> 00:19:16.880
+org go to a parent subtree. You know,
+things like this.
00:19:16.880 --> 00:19:20.240
It's so elegant. It's verbose.
@@ -1516,38 +1429,34 @@ It's so elegant. It's verbose.
00:19:20.240 --> 00:19:22.799
That's a sense of freedom
-00:19:22.799 --> 00:19:24.320
-insofar as you can go into the code and
+00:19:22.799 --> 00:19:24.491
+insofar as you can go into
+the code and see,
-00:19:24.320 --> 00:19:26.160
-see, oh, okay, that's how it's implemented.
+00:19:24.491 --> 00:19:26.160
+oh, okay, that's how it's implemented.
00:19:26.160 --> 00:19:28.640
I believe in a way that's the freedom
-00:19:28.640 --> 00:19:30.400
-and the liberty that is given to you to
+00:19:28.640 --> 00:19:30.264
+and the liberty that is given to you
-00:19:30.400 --> 00:19:31.600
-look into the code
+00:19:30.264 --> 00:19:31.600
+to look into the code
-00:19:31.600 --> 00:19:33.039
-is something that invites you to do the
+00:19:31.600 --> 00:19:32.670
+is something that invites you
-00:19:33.039 --> 00:19:34.640
-same with your life. As
+00:19:32.670 --> 00:19:34.460
+to do the same with your life.
-00:19:34.640 --> 00:19:35.200
-someone who
+00:19:34.460 --> 00:19:36.776
+As someone who does a little bit of
+philosophy on the side,
-00:19:35.200 --> 00:19:36.559
-does a little bit of philosophy on the
-
-00:19:36.559 --> 00:19:38.080
-side, I believe it's a very healthy
-
-00:19:38.080 --> 00:19:38.799
-message
+00:19:36.776 --> 00:19:38.799
+I believe it's a very healthy message
00:19:38.799 --> 00:19:42.320
to be gathering from a piece of software.
@@ -1579,56 +1488,51 @@ ahead of the schedule, so if we take a
00:20:05.679 --> 00:20:07.840
little bit longer, we're fine.
-00:20:07.840 --> 00:20:09.440
-If you do have more
-
-00:20:09.440 --> 00:20:11.280
-questions, please do.) I'm just sorry that
-
-00:20:11.280 --> 00:20:12.880
-my video is not working anymore.
+00:20:07.840 --> 00:20:10.225
+If you do have more questions, please
+do.)
-00:20:12.880 --> 00:20:16.000
-(Amin: No problem. Someone was
+00:20:10.225 --> 00:20:12.880
+I'm just sorry that my video is not
+working anymore.
-00:20:16.000 --> 00:20:17.120
-actually saying...
+00:20:12.880 --> 00:20:17.120
+(Amin: No problem. Someone was actually
+saying...
-00:20:17.120 --> 00:20:21.120
-What's the most recent...
+00:20:17.120 --> 00:20:24.159
+What's the most recent... Actually, yeah
+well before that.
-00:20:21.120 --> 00:20:24.159
-Actually, yeah well before that.
-
-00:20:24.159 --> 00:20:25.919
+00:20:24.159 --> 00:20:27.440
"Please show off your three-piece suit
-
-00:20:25.919 --> 00:20:27.440
before you end your talk,
00:20:27.440 --> 00:20:30.080
which requires fixing your frozen camera.
-00:20:30.080 --> 00:20:31.919
-if this is not possible, please post
+00:20:30.080 --> 00:20:31.306
+If this is not possible,
-00:20:31.919 --> 00:20:36.240
-suit selfies in an easily accessible
-location."
+00:20:31.306 --> 00:20:36.240
+please post suit selfies in an easily
+accessible location."
-00:20:36.240 --> 00:20:38.720
-Okay, I'll make sure to do this. But yes, I
+00:20:36.240 --> 00:20:38.143
+Okay, I'll make sure to do this.
-00:20:38.720 --> 00:20:41.200
-wanted to hype things up for the
-conference,
+00:20:38.143 --> 00:20:41.200
+But yes, I wanted to hype things up for
+the conference,
00:20:41.200 --> 00:20:43.039
so yes, I did get the three-piece suit out.
-00:20:43.039 --> 00:20:45.919
-I'm very glad you like it. By the way,
-when you get
+00:20:43.039 --> 00:20:44.563
+I'm very glad you like it.
+
+00:20:44.563 --> 00:20:45.919
+By the way, when you get
00:20:45.919 --> 00:20:47.760
a chance to see me live again,
@@ -1642,128 +1546,104 @@ colors of Emacs purple
00:20:51.280 --> 00:20:53.679
and also Org Mode green.
-00:20:53.679 --> 00:20:55.760
-It took me a while to find this one, so I
+00:20:53.679 --> 00:20:55.556
+It took me a while to find this one,
-00:20:55.760 --> 00:21:00.840
-hope you will appreciate this.
+00:20:55.556 --> 00:21:00.840
+so I hope you will appreciate this.
-00:21:00.840 --> 00:21:03.679
-(Amin: Awesome. Let's see. We have
+00:21:00.840 --> 00:21:03.094
+(Amin: Awesome. Let's see.
-00:21:03.679 --> 00:21:06.880
-one other question. "What's the
+00:21:03.094 --> 00:21:06.880
+We have one other question. "What's the
00:21:06.880 --> 00:21:08.960
most recent Emacs package or tool that
-00:21:08.960 --> 00:21:10.159
-you've discovered
-
-00:21:10.159 --> 00:21:14.480
-that you've added to your repertoire?")
+00:21:08.960 --> 00:21:14.480
+you've discovered that you've added to
+your repertoire?")
00:21:14.480 --> 00:21:17.600
Very interesting question.
-00:21:17.600 --> 00:21:20.799
-The thing is,
-
-00:21:20.799 --> 00:21:22.320
-when you've spent as long as I have on
+00:21:17.600 --> 00:21:22.614
+The thing is, when you've spent as long
+as I have on Emacs--
-00:21:22.320 --> 00:21:23.919
-Emacs--and I know that I've only spent
+00:21:22.614 --> 00:21:23.919
+and I know that I've only spent
00:21:23.919 --> 00:21:25.120
eight years and some of you
-00:21:25.120 --> 00:21:28.799
-might have spent maybe 10, 20, maybe even
+00:21:25.120 --> 00:21:27.901
+might have spent maybe 10, 20,
-00:21:28.799 --> 00:21:30.000
-more years on Emacs--
+00:21:27.901 --> 00:21:30.000
+maybe even more years on Emacs--
-00:21:30.000 --> 00:21:32.799
-but for me, I believe the the coolest
+00:21:30.000 --> 00:21:34.926
+but for me, I believe the coolest neat
+trick that I found in Emacs
-00:21:32.799 --> 00:21:35.120
-neat trick that I found in Emacs was
+00:21:34.926 --> 00:21:40.080
+was a mode which is called beacon-mode.
-00:21:35.120 --> 00:21:40.080
-a mode which is called beacon-mode.
+00:21:40.080 --> 00:21:43.679
+It's something that allows you to show
-00:21:40.080 --> 00:21:42.559
-It's something that allows
+00:21:43.679 --> 00:21:45.006
+when you're jumping between buffers
-00:21:42.559 --> 00:21:43.679
-you to show
+00:21:45.006 --> 00:21:46.960
+or when you're dropping between windows,
-00:21:43.679 --> 00:21:45.120
-when you're jumping between buffers or
-
-00:21:45.120 --> 00:21:46.960
-when you're dropping between windows,
-
-00:21:46.960 --> 00:21:49.760
+00:21:46.960 --> 00:21:50.681
it shows exactly where your point is in
+that buffer
-00:21:49.760 --> 00:21:51.520
-that buffer by making
-
-00:21:51.520 --> 00:21:53.840
-a slight ray of light which looks like a
-
-00:21:53.840 --> 00:21:55.440
-beacon, hence the name.
+00:21:50.681 --> 00:21:55.440
+by making a slight ray of light which
+looks like a beacon, hence the name.
00:21:55.440 --> 00:21:57.760
It really helps you navigate buffers
-00:21:57.760 --> 00:21:59.520
-because it always shows in a very
-
-00:21:59.520 --> 00:22:01.760
-visual way where your point is.
+00:21:57.760 --> 00:21:58.986
+because it always shows
-00:22:01.760 --> 00:22:03.520
-I'll get a chance to show this to
+00:21:58.986 --> 00:22:01.760
+in a very visual way
+where your point is.
-00:22:03.520 --> 00:22:04.640
-you later today
+00:22:01.760 --> 00:22:04.640
+I'll get a chance to show this to you
+later today
00:22:04.640 --> 00:22:10.159
-when i'll be presenting my other talks.
-
-00:22:10.159 --> 00:22:13.840
-(Amin: Aeesome.
-
-00:22:13.840 --> 00:22:16.880
-We have one question
+when I'll be presenting my other talks.
-00:22:16.880 --> 00:22:20.159
-from Jonas, the maintainer
+00:22:10.159 --> 00:22:20.880
+(Amin: Awesome. We have one question
+from Jonas, the maintainer of Magit.
-00:22:20.159 --> 00:22:20.880
-from Magit.
+00:22:20.880 --> 00:22:25.128
+He asks, "When you touched your webcam,
-00:22:20.880 --> 00:22:24.720
-He asks, "When you touched your
-
-00:22:24.720 --> 00:22:26.880
-webcam, that blew a fuse at my place.
+00:22:25.128 --> 00:22:26.880
+that blew a fuse at my place.
00:22:26.880 --> 00:22:29.760
How did you do that?")
-00:22:29.760 --> 00:22:31.600
-Well, I'm very sorry, Jonas, that it
-
-00:22:31.600 --> 00:22:32.960
-happened to you, but i'll make sure not
+00:22:29.760 --> 00:22:31.242
+Well, I'm very sorry, Jonas,
-00:22:32.960 --> 00:22:36.960
-to touch my webcam again.
+00:22:31.242 --> 00:22:36.960
+that it happened to you, but I'll make
+sure not to touch my webcam again.
00:22:36.960 --> 00:22:41.600
(Amin: Do we have any other questions?)
@@ -1771,42 +1651,33 @@ to touch my webcam again.
00:22:41.600 --> 00:22:43.919
I have to trust you on this one.
-00:22:43.919 --> 00:22:45.840
+00:22:43.919 --> 00:22:46.960
I'm really sorry. Everything is frozen
-
-00:22:45.840 --> 00:22:46.960
on my end.
-00:22:46.960 --> 00:22:48.720
-(Amin: No problem.) Yeah I'm more talking
-to the
+00:22:46.960 --> 00:22:49.940
+(Amin: No problem.) Yeah I'm more
+talking to the audience, I guess.
-00:22:48.720 --> 00:22:49.940
-audience, I guess.
+00:22:51.520 --> 00:22:56.018
+I hope my lack of slides didn't bother
+you.
-00:22:51.520 --> 00:22:55.120
-I hope my lack of
+00:22:56.018 --> 00:23:00.481
+I really wanted to have this verbose
+time with people,
-00:22:55.120 --> 00:22:56.960
-slides didn't bother you. I really
-
-00:22:56.960 --> 00:22:58.159
-wanted to have this
-
-00:22:58.159 --> 00:23:01.039
-verbose time with people, to be
-
-00:23:01.039 --> 00:23:01.600
-able to...
+00:23:00.481 --> 00:23:01.600
+to be able to...
00:23:01.600 --> 00:23:04.880
-it's a message that i've been trying
+It's a message that I've been trying
00:23:04.880 --> 00:23:08.640
to share with as many people as possible.
00:23:08.640 --> 00:23:11.760
-In france we do have an Emacs workshop
+In France, we do have an Emacs workshop
00:23:11.760 --> 00:23:14.159
that we have on a monthly basis.
@@ -1820,26 +1691,24 @@ with those people and I felt like
00:23:18.960 --> 00:23:20.400
doing the same with Emacs conference
-00:23:20.400 --> 00:23:22.480
-would be good. That's why i'm really
+00:23:20.400 --> 00:23:22.713
+would be good. That's why I'm
+really happy,
-00:23:22.480 --> 00:23:24.000
-happy, and I'm really lucky to have had
+00:23:22.713 --> 00:23:24.000
+and I'm really lucky to have had
-00:23:24.000 --> 00:23:25.120
-the chance to
+00:23:24.000 --> 00:23:26.418
+the chance to do this today.
-00:23:25.120 --> 00:23:27.919
-do this today. I hope some of you
+00:23:26.418 --> 00:23:29.200
+I hope some of you, I've convinced you
-00:23:27.919 --> 00:23:29.200
-I've convinced you
+00:23:29.200 --> 00:23:31.472
+of climbing up a step on a ladder
-00:23:29.200 --> 00:23:31.679
-of climbing up a step on a ladder or
-
-00:23:31.679 --> 00:23:34.480
-making a step in a journey.
+00:23:31.472 --> 00:23:34.480
+or making a step in a journey.
00:23:34.480 --> 00:23:38.080
(Amin: Absolutely. Thank you so much, Leo.
@@ -1856,38 +1725,34 @@ when it's not really needed
00:23:45.600 --> 00:23:49.200
and to help give some face-to-face time
-00:23:49.200 --> 00:23:51.840
-with the audience. Unfortunately
+00:23:49.200 --> 00:23:50.685
+with the audience.
-00:23:51.840 --> 00:23:53.520
-your webcam cut out, but I mean
+00:23:50.685 --> 00:23:52.923
+Unfortunately, your webcam cut out,
-00:23:53.520 --> 00:23:55.200
-before that.)
+00:23:52.923 --> 00:23:55.200
+but I mean before that.)
-00:23:55.200 --> 00:23:57.279
-Yes, I'll make sure to fix the problems
+00:23:55.200 --> 00:23:57.914
+Yes, I'll make sure to fix
+the problems later on,
-00:23:57.279 --> 00:23:59.679
-later on, so don't worry about it.
+00:23:57.914 --> 00:23:59.679
+so don't worry about it.
00:23:59.679 --> 00:24:02.240
(Amin: Awesome. Alrighty. I guess we're
-00:24:02.240 --> 00:24:03.200
-wrapping up
-
-00:24:03.200 --> 00:24:06.400
-for your talk and getting ready for the
-
-00:24:06.400 --> 00:24:08.000
-next talk.)
+00:24:02.240 --> 00:24:08.000
+wrapping up for your talk and getting
+ready for the next talk.)
-00:24:08.000 --> 00:24:10.000
-Sure. Well, thank you so much. I'll see
+00:24:08.000 --> 00:24:09.538
+Sure. Well, thank you so much.
-00:24:10.000 --> 00:24:11.760
-you all later, I suppose!
+00:24:09.538 --> 00:24:11.760
+I'll see you all later, I suppose!
00:24:11.760 --> 00:24:16.799
(Amin: Sounds good. Thank you again, Leo. Bye-bye)
diff --git a/2020/subtitles/emacsconf-2020--03-idea-to-novel-superstructure-emacs-for-writing--questions--bala-ramadurai.vtt b/2020/subtitles/emacsconf-2020--03-idea-to-novel-superstructure-emacs-for-writing--questions--bala-ramadurai.vtt
new file mode 100644
index 00000000..6a8d12b2
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--03-idea-to-novel-superstructure-emacs-for-writing--questions--bala-ramadurai.vtt
@@ -0,0 +1,470 @@
+WEBVTT
+
+00:00:00.000 --> 00:00:05.333
+I have the pad open. So, I can start.
+
+00:00:05.333 --> 00:00:11.333
+Do you have occasions to use Emacs for
+multilingual text composition?
+
+00:00:11.333 --> 00:00:15.333
+How do you deal with spell-checking?
+
+00:00:15.333 --> 00:00:15.333
+I have written only in English. For
+English, Emacs works great.
+
+00:00:15.333 --> 00:00:23.767
+Spell-check works great.
+
+00:00:23.767 --> 00:00:29.300
+I have not used it for any other languages.
+
+00:00:29.300 --> 00:00:40.333
+I have indeed tried local South Indian
+language, but only the script
+
+00:00:40.333 --> 00:00:47.567
+I could get, but not the spell-checker,
+really. I've not really figured it out.
+
+00:00:47.567 --> 00:00:51.067
+So that was my trial to answer
+the first question.
+
+00:00:51.067 --> 00:00:57.031
+The second question is: "is it possible
+to align the subcolumns
+
+00:00:57.031 --> 00:00:59.967
+and headings and subheadings?"
+
+00:00:59.967 --> 00:01:04.967
+Oh boy. That's a good one. I actually
+felt the lack of having the...
+
+00:01:04.967 --> 00:01:11.100
+The theme I had was great for... It
+looked like a novel
+
+00:01:11.100 --> 00:01:14.533
+when I'm typing on the novel itself,
+
+00:01:14.533 --> 00:01:19.800
+but when I expand into the subtrees,
+
+00:01:19.800 --> 00:01:22.233
+it sort of goes haywire. It's a bit hacky.
+
+00:01:22.233 --> 00:01:24.900
+You can probably switch to a monospace font,
+
+00:01:24.900 --> 00:01:27.133
+and that works better than
+
+00:01:27.133 --> 00:01:30.967
+the font that I have demoed it.
+
+00:01:30.967 --> 00:01:36.033
+You can perhaps try monospace font
+
+00:01:36.033 --> 00:01:37.700
+and it should work, I think,
+
+00:01:37.700 --> 00:01:39.600
+as far as I know.
+
+00:01:39.600 --> 00:01:42.667
+So, that's the second question.
+
+00:01:42.667 --> 00:01:47.600
+The third question is maybe there should
+be an Emacs for Writing
+
+00:01:47.600 --> 00:01:50.433
+mailing list, an online writer's workshop?
+
+00:01:50.433 --> 00:01:51.300
+This is a great one.
+
+00:01:51.300 --> 00:01:54.433
+I have conducted an online writer's workshop
+
+00:01:54.433 --> 00:01:58.000
+here in India. Of course, it wasn't
+
+00:01:58.000 --> 00:02:05.467
+an Emacs-focused workshop. We used
+Notion as the tool. It worked pretty good.
+
+00:02:05.467 --> 00:02:12.633
+for people who are not aware of Emacs
+and how to use Emacs, the keystrokes,
+
+00:02:12.633 --> 00:02:16.200
+the fact that I wasn't using the mouse
+unnerved them.
+
+00:02:16.200 --> 00:02:19.267
+It was a scary experience for most people.
+
+00:02:19.267 --> 00:02:22.333
+I had to switch to Notion.
+
+00:02:22.333 --> 00:02:23.567
+People used that as a template
+
+00:02:23.567 --> 00:02:28.233
+and then they could type it out.
+
+00:02:28.233 --> 00:02:33.633
+It wasn't my perfect experience. I liked
+the Emacs Org Mode experience much better.
+
+00:02:33.633 --> 00:02:41.300
+The next question is, "How do you share
+drafts of your novel?
+
+00:02:41.300 --> 00:02:44.867
+If you use pandoc to export to Word,
+etc., how do you incorporate feedback
+
+00:02:44.867 --> 00:02:46.867
+on the document back into Org?"
+
+00:02:46.867 --> 00:02:50.767
+Thank you for the kind words.
+
+00:02:50.767 --> 00:02:53.100
+Yes, it is a problem.
+
+00:02:53.100 --> 00:03:02.033
+This is my ??, and I have a dedication
+to Spacemacs also and the Emacs Org Mode
+
+00:03:02.033 --> 00:03:04.433
+community in there. I don't know if you
+can see it.
+
+00:03:04.433 --> 00:03:05.467
+Probably not.
+
+00:03:05.467 --> 00:03:10.600
+I did export it to Word.
+
+00:03:10.600 --> 00:03:13.333
+My editor did complain that there were a
+whole bunch of things,
+
+00:03:13.333 --> 00:03:16.633
+that it wasn't convenient for her.
+
+00:03:16.633 --> 00:03:20.933
+So I tried having the raw Org Mode
+itself in a DOC embedded,
+
+00:03:20.933 --> 00:03:26.067
+and I will do a copy and paste.
+
+00:03:26.067 --> 00:03:27.867
+Didn't work so well either.
+
+00:03:27.867 --> 00:03:31.267
+So I'm still on the edge on
+how do I do this.
+
+00:03:31.267 --> 00:03:34.933
+Should I train my editor
+to use Org Mode
+
+00:03:34.933 --> 00:03:37.167
+in Gitlab or one of those
+
+00:03:37.167 --> 00:03:39.833
+other tools, which is not a great
+experience?
+
+00:03:39.833 --> 00:03:47.633
+But... I don't know. It could be
+tricky for working with people
+
+00:03:47.633 --> 00:03:50.867
+who are not well-versed with Emacs.
+
+00:03:50.867 --> 00:04:02.000
+Pandoc is very, very useful in
+converting it to PDF
+
+00:04:02.000 --> 00:04:02.000
+and integrating it with LaTeX, the
+styling, formatting into e-reader,
+
+00:04:02.000 --> 00:04:13.133
+EPUB format. For all that, Pandoc works
+great. You can customize it
+
+00:04:13.133 --> 00:04:16.233
+and of course there's a lot of support
+in the community
+
+00:04:16.233 --> 00:04:20.133
+for any style changes that you want to
+make, any images that you want to add.
+
+00:04:20.133 --> 00:04:22.967
+It works great.
+
+00:04:22.967 --> 00:04:28.367
+That was my trial to answer the pandoc question.
+
+00:04:28.367 --> 00:04:35.100
+"Can you show exported PDF of
+any of your novels?"
+
+00:04:35.100 --> 00:04:38.600
+Unfortunately, it's still
+not published, so I'm...
+
+00:04:38.600 --> 00:04:42.067
+I will put it and
+share it on the community,
+
+00:04:42.067 --> 00:04:48.067
+or part of this in the schedule itself.
+Thank you for the question.
+
+00:04:48.067 --> 00:04:55.000
+Unfortunately, it's not yet published,
+so I'm unable to publish the exported PDF.
+
+00:04:55.000 --> 00:05:01.300
+But I'll make a test of an open-source
+novel that I'm working on
+
+00:05:01.300 --> 00:05:05.767
+I will definitely publish that so that
+you can see
+
+00:05:05.767 --> 00:05:10.433
+how it works also.
+
+00:05:10.433 --> 00:05:13.167
+Can you text-wrap in the columns?
+
+00:05:13.167 --> 00:05:19.667
+I have not found a way to do
+text-wrap in the columns.
+
+00:05:19.667 --> 00:05:23.633
+That only shows my limitation
+in config setup,
+
+00:05:23.633 --> 00:05:27.033
+but I'm sure people can figure this out
+
+00:05:27.033 --> 00:05:29.900
+That's a good one. I would have loved to
+have it.
+
+00:05:29.900 --> 00:05:34.000
+Every time I want to write more on the
+headline,
+
+00:05:34.000 --> 00:05:42.467
+I would get out of the column-view mode
+and I would do the typing and expand it,
+
+00:05:42.467 --> 00:05:46.700
+and then come back into the column view
+when I want to set the other meta parameters.
+
+00:05:46.700 --> 00:05:54.133
+So that's how I manage without the
+text-wrapping feature built into column.
+
+00:05:54.133 --> 00:05:58.000
+But I think it's a great idea to
+have text wrap.
+
+00:05:58.000 --> 00:06:05.333
+Did I leave out any questions?
+I don't think so.
+
+00:06:05.333 --> 00:06:10.600
+[Amin]: I think there's at least one
+question on IRC,
+
+00:06:10.600 --> 00:06:14.500
+which I shall read to you.
+
+00:06:14.500 --> 00:06:17.300
+[Bala]: Please, can you do that? Thank you.
+
+00:06:17.300 --> 00:06:21.278
+[Amin]: So they asked, "How do you collaborate
+with others while writing your novel?
+
+00:06:21.278 --> 00:06:28.100
+For example, sharing your file and
+getting feedback."
+
+00:06:28.100 --> 00:06:37.100
+Okay. Good question. So far, I have
+used... Let's see...
+
+00:06:37.100 --> 00:06:40.833
+What did I use...
+This is a crazy hack.
+
+00:06:40.833 --> 00:06:44.667
+But it's a long-winded way of...
+
+00:06:44.667 --> 00:06:50.300
+Right now we're working on an e-book for
+sustainability
+
+00:06:50.300 --> 00:06:57.767
+and kids contribute their stories into
+this long Org Mode file
+
+00:06:57.767 --> 00:07:00.233
+and I want my editors to see it
+
+00:07:00.233 --> 00:07:05.333
+so what we have done, actually, is with
+the tags and all that, I have actually
+
+00:07:05.333 --> 00:07:08.167
+pasted it into Google Docs
+
+00:07:08.167 --> 00:07:11.833
+so that my collaborators and
+
+00:07:11.833 --> 00:07:14.000
+editors can see it.
+
+00:07:14.000 --> 00:07:16.667
+That's my current solution.
+It's not elegant.
+
+00:07:16.667 --> 00:07:23.900
+I'm trying to see if I can use Python
+code to make the copy and paste work,
+
+00:07:23.900 --> 00:07:26.900
+but it's not so elegant for now.
+
+00:07:26.900 --> 00:07:28.933
+I don't know how to work this out,
+
+00:07:28.933 --> 00:07:31.100
+but this is my hack. That is,
+
+00:07:31.100 --> 00:07:34.300
+the entire Org Mode text, I would paste
+it into
+
+00:07:34.300 --> 00:07:35.433
+Google Docs
+
+00:07:35.433 --> 00:07:37.700
+so that my collaborators and editors
+
+00:07:37.700 --> 00:07:41.667
+can see it. Whenever they edit it, I ask
+them not to make any changes
+
+00:07:41.667 --> 00:07:43.500
+to the Org Mode tags.
+
+00:07:43.500 --> 00:07:45.633
+So just copy the entire text
+
+00:07:45.633 --> 00:07:51.167
+and put it back into my Org Mode file
+
+00:07:51.167 --> 00:07:53.300
+and export it using Pandoc into a PDF
+
+00:07:53.300 --> 00:07:56.000
+and since it's synced to Google Drive
+
+00:07:56.000 --> 00:07:58.600
+it shows up in the Google Drive
+
+00:07:58.600 --> 00:08:03.633
+and then the collaborators can see
+the PDF/EPUB
+
+00:08:03.633 --> 00:08:05.333
+if they want to open it up
+
+00:08:05.333 --> 00:08:06.200
+in their own space.
+
+00:08:06.200 --> 00:08:11.467
+It's very very hacky and I think
+primitive, Stone Age sort of solution.
+
+00:08:11.467 --> 00:08:15.567
+I did see a Python solution.
+
+00:08:15.567 --> 00:08:18.967
+to at least help me with
+the copying and paste.
+
+00:08:18.967 --> 00:08:21.574
+I'm still working on
+how do I convert this.
+
+00:08:21.574 --> 00:08:24.300
+Interconvertability is
+driving me nuts.
+
+00:08:24.300 --> 00:08:26.533
+I think most of the questions
+
+00:08:26.533 --> 00:08:29.333
+are around interconvertability.
+
+00:08:29.333 --> 00:08:34.767
+This is sort of what I have right now.
+
+00:08:34.767 --> 00:08:37.567
+Any other questions, Amin,
+
+00:08:37.567 --> 00:08:40.233
+on IRC or not?
+
+00:08:40.233 --> 00:08:46.433
+[Amin]: Let's see. I think that's about it.
+
+00:08:46.433 --> 00:08:50.033
+[Bala]: Okay. Cool. That was fun.
+
+00:08:50.033 --> 00:08:51.833
+Thank you so much to
+
+00:08:51.833 --> 00:08:54.577
+the organizers of Emacs conference,
+
+00:08:54.577 --> 00:08:57.100
+and the community at large,
+
+00:08:57.100 --> 00:09:01.303
+the Org Mode community and the Emacs
+community for helping me out.
+
+00:09:01.303 --> 00:09:02.900
+Thank you so much.
+
+00:09:02.900 --> 00:09:05.233
+Thanks for the opportunity
+as well.
+
+00:09:05.233 --> 00:09:07.300
+[Amin]: And thank you, Bala, for your
+awesome talk.
+
+00:09:07.300 --> 00:09:14.000
+[Bala]: Thanks. Thanks a lot, Amin.
diff --git a/2020/subtitles/emacsconf-2020--04-music-in-plain-text--jonathan-gregory.vtt b/2020/subtitles/emacsconf-2020--04-music-in-plain-text--jonathan-gregory.vtt
index 773ff31b..b2722c99 100644
--- a/2020/subtitles/emacsconf-2020--04-music-in-plain-text--jonathan-gregory.vtt
+++ b/2020/subtitles/emacsconf-2020--04-music-in-plain-text--jonathan-gregory.vtt
@@ -3,98 +3,94 @@ WEBVTT
00:00:02.000 --> 00:00:04.799
Hello, everyone, and welcome to the EmacsConf.
-00:00:04.799 --> 00:00:07.200
-I am Jonathan. In this talk, I'm going
+00:00:04.799 --> 00:00:06.631
+I am Jonathan. In this talk,
-00:00:07.200 --> 00:00:09.599
-to demonstrate ways of producing sheet
+00:00:06.631 --> 00:00:10.880
+I'm going to demonstrate ways of
+producing sheet music in Emacs
-00:00:09.599 --> 00:00:10.880
-music in Emacs
+00:00:10.880 --> 00:00:14.636
+using Lilypond, and maybe also
+convince you
-00:00:10.880 --> 00:00:14.320
-using Lilypond, and maybe also convince
+00:00:14.636 --> 00:00:18.640
+to use Emacs for writing your scores.
-00:00:14.320 --> 00:00:18.640
-you to use Emacs for writing your scores.
+00:00:18.640 --> 00:00:20.698
+I'll start with an overview
+of the syntax
-00:00:18.640 --> 00:00:20.400
-I'll start with an overview of the
-
-00:00:20.400 --> 00:00:22.240
-syntax for those who are new to using
+00:00:20.698 --> 00:00:22.240
+for those who are new to using
00:00:22.240 --> 00:00:24.400
text-based notation
-00:00:24.400 --> 00:00:26.800
-as a shallow dive into the deep pond of
+00:00:24.400 --> 00:00:26.615
+as a shallow dive into the deep pond
-00:00:26.800 --> 00:00:28.800
-lilies and Lilypond,
+00:00:26.615 --> 00:00:28.800
+of lilies and Lilypond,
-00:00:28.800 --> 00:00:30.800
-and move on to showcase some of its
+00:00:28.800 --> 00:00:30.171
+and move on to showcase
-00:00:30.800 --> 00:00:32.960
-functionalities using Org Mode
+00:00:30.171 --> 00:00:34.723
+some of its functionalities
+using Org Mode and lilypond-mode.
-00:00:32.960 --> 00:00:36.320
-and lilypond-mode. One disclaimer,
+00:00:34.723 --> 00:00:37.173
+One disclaimer, however:
-00:00:36.320 --> 00:00:40.480
-however: I am not a Lilypond developer.
+00:00:37.173 --> 00:00:40.480
+I am not a Lilypond developer.
-00:00:40.480 --> 00:00:44.079
-So what is Lilypond? Lilypond is
+00:00:40.480 --> 00:00:42.841
+So what is Lilypond?
-00:00:44.079 --> 00:00:46.800
-a file format and music engraving system
+00:00:42.841 --> 00:00:46.800
+Lilypond is a file format and music
+engraving system
00:00:46.800 --> 00:00:50.000
for producing high-quality sheet music.
-00:00:50.000 --> 00:00:52.640
-It translates textual representations of
+00:00:50.000 --> 00:00:52.442
+It translates textual representations
-00:00:52.640 --> 00:00:55.120
-music to graphical objects.
+00:00:52.442 --> 00:00:55.120
+of music to graphical objects.
-00:00:55.120 --> 00:00:57.760
-It's similar to LaTeX in that its
+00:00:55.120 --> 00:00:57.520
+It's similar to LaTeX in that
-00:00:57.760 --> 00:01:00.000
-input format describes the visual
+00:00:57.520 --> 00:00:59.329
+its input format describes
-00:01:00.000 --> 00:01:01.600
-layouts of the score,
+00:00:59.329 --> 00:01:01.600
+the visual layouts of the score,
-00:01:01.600 --> 00:01:03.520
+00:01:01.600 --> 00:01:05.119
using commands to define musical
-
-00:01:03.520 --> 00:01:05.119
expressions.
00:01:05.119 --> 00:01:07.760
Commands begin with a backslash.
-00:01:07.760 --> 00:01:08.640
-For example,
-
-00:01:08.640 --> 00:01:10.479
-the formatter command, as shown on the
+00:01:07.760 --> 00:01:10.791
+For example, the formatter command,
+as shown on the left,
-00:01:10.479 --> 00:01:13.040
-left, yields its graphical equivalents on
+00:01:10.791 --> 00:01:13.920
+yields its graphical equivalents
+on the right,
-00:01:13.040 --> 00:01:13.920
-the right,
+00:01:13.920 --> 00:01:16.345
+the fermata symbol over the low B
-00:01:13.920 --> 00:01:16.640
-the fermata symbol over the low B and
-
-00:01:16.640 --> 00:01:19.119
-so on and so forth.
+00:01:16.345 --> 00:01:19.119
+and so on and so forth.
00:01:19.119 --> 00:01:21.600
It's also fully extensible, like Emacs,
@@ -105,59 +101,48 @@ allowing users to extend
00:01:23.119 --> 00:01:25.600
and override Lilypond's functionalities
-00:01:25.600 --> 00:01:26.640
-using the Scheme
-
-00:01:26.640 --> 00:01:29.840
-scripting language. It can be used for
+00:01:25.600 --> 00:01:28.452
+using the Scheme scripting language.
-00:01:29.840 --> 00:01:31.600
-early and contemporary music
+00:01:28.452 --> 00:01:32.422
+It can be used for early and
+contemporary music tablature,
-00:01:31.600 --> 00:01:34.479
-tablature, vocal music lead sheets,
-
-00:01:34.479 --> 00:01:35.200
-and so on.
+00:01:32.422 --> 00:01:35.200
+vocal music lead sheets, and so on.
00:01:35.200 --> 00:01:38.000
Above all, it works with Emacs.
-00:01:38.000 --> 00:01:38.479
-In fact,
-
-00:01:38.479 --> 00:01:41.040
-Lilypond ships with Emacs Lisp libraries,
+00:01:38.000 --> 00:01:41.040
+In fact, Lilypond ships with
+Emacs Lisp libraries,
-00:01:41.040 --> 00:01:43.119
+00:01:41.040 --> 00:01:47.360
including a major mode for editing
-
-00:01:43.119 --> 00:01:47.360
Lilypond files.
-00:01:47.360 --> 00:01:50.000
-So the input files are similar to
-
-00:01:50.000 --> 00:01:50.560
-source files.
+00:01:47.360 --> 00:01:50.560
+So the input files are similar to source
+files.
-00:01:50.560 --> 00:01:52.560
+00:01:50.560 --> 00:01:54.079
They contain expressions formed with
-
-00:01:52.560 --> 00:01:54.079
curly braces,
-00:01:54.079 --> 00:01:55.840
-comments that start with the percent
+00:01:54.079 --> 00:01:56.549
+comments that start with
+the percent sign,
-00:01:55.840 --> 00:02:00.240
-sign, and the code is indented.
+00:01:56.549 --> 00:02:00.240
+and the code is indented.
-00:02:00.240 --> 00:02:02.159
+00:02:00.240 --> 00:02:02.903
Notes are entered using lowercase
+letters,
-00:02:02.159 --> 00:02:05.600
-letters, and rests with the letter r.
+00:02:02.903 --> 00:02:05.600
+and rests with the letter r.
00:02:05.600 --> 00:02:08.800
In this case, the lowercase r or r4
@@ -168,22 +153,20 @@ is the equivalence of a crotchet or
00:02:11.039 --> 00:02:14.000
quarter note rest.
-00:02:14.000 --> 00:02:16.160
-Durations are entered using numbers and
+00:02:14.000 --> 00:02:15.938
+Durations are entered using numbers
-00:02:16.160 --> 00:02:18.480
-dots after the note name.
+00:02:15.938 --> 00:02:18.480
+and dots after the note name.
-00:02:18.480 --> 00:02:20.959
-If you do not specify one, the previous
+00:02:18.480 --> 00:02:20.196
+If you do not specify one,
-00:02:20.959 --> 00:02:22.640
-duration is used.
+00:02:20.196 --> 00:02:22.640
+the previous duration is used.
-00:02:22.640 --> 00:02:24.560
+00:02:22.640 --> 00:02:27.360
You can also tie notes together using
-
-00:02:24.560 --> 00:02:27.360
the tilde symbol (~).
00:02:27.360 --> 00:02:30.000
@@ -192,32 +175,30 @@ In fact, you can input chords, lyrics,
00:02:30.000 --> 00:02:32.080
embellishments, and a lot more.
-00:02:32.080 --> 00:02:33.920
+00:02:32.080 --> 00:02:36.160
I encourage you to read the manual for
-
-00:02:33.920 --> 00:02:36.160
more information.
00:02:36.160 --> 00:02:39.680
Now let's switch to a terminal window.
-00:02:39.680 --> 00:02:42.000
-With Lilypond installed, let's create
-
-00:02:42.000 --> 00:02:43.840
-a test file with the extension
+00:02:39.680 --> 00:02:41.247
+With Lilypond installed,
-00:02:43.840 --> 00:02:50.560
-.ly and open it in Emacs.
+00:02:41.247 --> 00:02:50.560
+let's create a test file with the
+extension .ly and open it in Emacs.
-00:02:50.560 --> 00:02:52.400
-At the top of the file is the version
+00:02:50.560 --> 00:02:53.048
+At the top of the file is
+the version statement,
-00:02:52.400 --> 00:02:54.800
-statement, which tells Lilypond which
+00:02:53.048 --> 00:02:54.395
+which tells Lilypond
-00:02:54.800 --> 00:02:57.440
-version to use when compiling the file.
+00:02:54.395 --> 00:02:57.440
+which version to use when
+compiling the file.
00:02:57.440 --> 00:03:00.959
Here I'm using version 2.20.0.
@@ -228,14 +209,15 @@ I've added the clef and time signature.
00:03:04.159 --> 00:03:09.280
Let's add some notes.
-00:03:09.280 --> 00:03:12.400
-I'm going to close this now and
+00:03:09.280 --> 00:03:12.098
+I'm going to close this now
-00:03:12.400 --> 00:03:14.560
-compile the file by running
+00:03:12.098 --> 00:03:13.765
+and compile the file
-00:03:14.560 --> 00:03:19.760
-lilypond followed by the file name.
+00:03:13.765 --> 00:03:19.760
+by running lilypond followed
+by the file name.
00:03:19.760 --> 00:03:27.360
So now let's view the output.
@@ -246,26 +228,22 @@ Okay. So here's a more complex example
00:03:29.760 --> 00:03:32.239
for randomizing note sequences.
-00:03:32.239 --> 00:03:34.080
-The idea is to create new reading
+00:03:32.239 --> 00:03:33.410
+The idea is to create
-00:03:34.080 --> 00:03:36.239
-materials each time the code blocks are
-
-00:03:36.239 --> 00:03:37.760
-evaluated.
+00:03:33.410 --> 00:03:37.760
+new reading materials each time the code
+blocks are evaluated.
00:03:37.760 --> 00:03:40.640
As usual, we begin with a header.
-00:03:40.640 --> 00:03:41.840
-I've added the title
-
-00:03:41.840 --> 00:03:45.200
-and composer. Then we add the note
+00:03:40.640 --> 00:03:43.541
+I've added the title and composer.
-00:03:45.200 --> 00:03:47.920
-sequences to use in the composition.
+00:03:43.541 --> 00:03:47.920
+Then we add the note sequences to use in
+the composition.
00:03:47.920 --> 00:03:51.200
In this case, sn is a note name just like
@@ -288,28 +266,22 @@ Finally, we expand the notes inside
00:04:06.560 --> 00:04:08.799
the Lilypond source block.
-00:04:08.799 --> 00:04:10.799
-So whatever the function returns is
+00:04:08.799 --> 00:04:10.684
+So whatever the function returns
-00:04:10.799 --> 00:04:13.680
-expanded inside the drums block.
+00:04:10.684 --> 00:04:13.680
+is expanded inside the drums block.
-00:04:13.680 --> 00:04:16.479
-Now let's press C-c C-c to view
+00:04:13.680 --> 00:04:20.079
+Now let's press C-c C-c to view the
+results.
-00:04:16.479 --> 00:04:20.079
-the results.
-
-00:04:20.079 --> 00:04:23.280
+00:04:20.079 --> 00:04:26.840
Okay. And if I run this again, it should
-
-00:04:23.280 --> 00:04:26.840
create a new composition.
-00:04:26.840 --> 00:04:29.680
+00:04:26.840 --> 00:04:31.360
Great. You can also audition a piece
-
-00:04:29.680 --> 00:04:31.360
using the midi command,
00:04:31.360 --> 00:04:34.320
@@ -324,74 +296,64 @@ sorry, the ob-lilypond library comes
00:04:39.040 --> 00:04:40.400
with two modes.
-00:04:40.400 --> 00:04:42.560
+00:04:40.400 --> 00:04:43.440
The one I'm using now is called
-
-00:04:42.560 --> 00:04:43.440
arrange mode
-00:04:43.440 --> 00:04:45.440
+00:04:43.440 --> 00:04:47.120
and is useful for assembling
-
-00:04:45.440 --> 00:04:47.120
complete scores.
-00:04:47.120 --> 00:04:49.360
-The basic mode on the other hand allows
+00:04:47.120 --> 00:04:49.015
+The basic mode, on the other hand,
-00:04:49.360 --> 00:04:51.199
-you to mix text and music
+00:04:49.015 --> 00:04:51.199
+allows you to mix text and music
00:04:51.199 --> 00:04:53.360
by embedding Lilypond snippets and
-00:04:53.360 --> 00:04:55.440
+00:04:53.360 --> 00:05:00.240
export them using typical Org Mode
-
-00:04:55.440 --> 00:05:00.240
commands.
-00:05:00.240 --> 00:05:02.320
+00:05:00.240 --> 00:05:02.661
Now to demonstrate the basic mode in
+action.
-00:05:02.320 --> 00:05:04.320
-action. I'm going to export this document
+00:05:02.661 --> 00:05:04.320
+I'm going to export this document
00:05:04.320 --> 00:05:05.120
to a PDF file.
-00:05:05.120 --> 00:05:08.240
-In this case, the
-
-00:05:08.240 --> 00:05:10.639
-:file header argument is required, so you
+00:05:05.120 --> 00:05:10.077
+In this case, the :file header argument
+is required,
-00:05:10.639 --> 00:05:11.919
-have to provide one
+00:05:10.077 --> 00:05:11.919
+so you have to provide one
00:05:11.919 --> 00:05:15.600
and include the file name.
-00:05:15.600 --> 00:05:17.919
-Again, you can run the code and view
+00:05:15.600 --> 00:05:22.160
+Again, you can run the code and view the
+results.
-00:05:17.919 --> 00:05:22.160
-the results.
-
-00:05:22.160 --> 00:05:25.840
-Here it is. So now let's
-
-00:05:25.840 --> 00:05:33.680
-export this to a PDF file.
+00:05:22.160 --> 00:05:33.680
+Here it is. So now let's export this to
+a PDF file.
00:05:33.680 --> 00:05:39.680
And here it is, what it generates.
-00:05:39.680 --> 00:05:41.440
-Now I'm going to show you the workflow I
+00:05:39.680 --> 00:05:41.716
+Now I'm going to show you
+the workflow I used
-00:05:41.440 --> 00:05:44.000
-used to produce music books in Emacs,
+00:05:41.716 --> 00:05:44.000
+to produce music books in Emacs,
00:05:44.000 --> 00:05:46.160
combining Lilypond and LaTeX for a
@@ -399,11 +361,12 @@ combining Lilypond and LaTeX for a
00:05:46.160 --> 00:05:48.000
perfect marriage.
-00:05:48.000 --> 00:05:50.160
-I begin by sketching the first draft of the
+00:05:48.000 --> 00:05:49.858
+I begin by sketching the first draft
-00:05:50.160 --> 00:05:53.039
-manuscript using pencil and paper.
+00:05:49.858 --> 00:05:53.039
+of the manuscript using
+pencil and paper.
00:05:53.039 --> 00:05:55.039
Then I move to Emacs to input the notes
@@ -411,32 +374,28 @@ Then I move to Emacs to input the notes
00:05:55.039 --> 00:05:57.440
in a git repository.
-00:05:57.440 --> 00:06:00.080
-This is a typical source file. It begins
+00:05:57.440 --> 00:05:59.486
+This is a typical source file.
-00:06:00.080 --> 00:06:01.360
-with a stylesheet
+00:05:59.486 --> 00:06:01.360
+It begins with a stylesheet
-00:06:01.360 --> 00:06:03.199
-where I set variables and layout
+00:06:01.360 --> 00:06:03.690
+where I set variables and layout settings,
-00:06:03.199 --> 00:06:05.440
-settings, although in general, there's no
+00:06:03.690 --> 00:06:04.875
+although in general,
-00:06:05.440 --> 00:06:07.039
-need for tweaking the layout
+00:06:04.875 --> 00:06:07.039
+there's no need for tweaking the layout
-00:06:07.039 --> 00:06:09.280
+00:06:07.039 --> 00:06:11.199
unless you have specific requirements to
-
-00:06:09.280 --> 00:06:11.199
do so.
-00:06:11.199 --> 00:06:13.360
-The easiest way to compile the file from
-
-00:06:13.360 --> 00:06:15.520
-Emacs is by pressing C-c C-l,
+00:06:11.199 --> 00:06:15.520
+The easiest way to compile the file
+from Emacs is by pressing C-c C-l,
00:06:15.520 --> 00:06:19.280
so let's do this now,
@@ -447,20 +406,19 @@ and the compilation buffer will tell you
00:06:21.199 --> 00:06:23.759
if there were any errors in the file.
-00:06:23.759 --> 00:06:26.000
-Now to automate the process of compiling
+00:06:23.759 --> 00:06:25.439
+Now to automate the process of
-00:06:26.000 --> 00:06:28.560
-several files and building the PDF,
+00:06:25.439 --> 00:06:28.560
+compiling several files and
+building the PDF,
00:06:28.560 --> 00:06:31.280
I use GNU Make, so all I have to do is
-00:06:31.280 --> 00:06:32.560
-open the shell
-
-00:06:32.560 --> 00:06:36.000
-and run the make command. Don't worry,
+00:06:31.280 --> 00:06:36.000
+open the shell and run the make command.
+Don't worry,
00:06:36.000 --> 00:06:37.840
I'll provide a link to the source code
@@ -468,11 +426,11 @@ I'll provide a link to the source code
00:06:37.840 --> 00:06:41.600
on the last slide.
-00:06:41.600 --> 00:06:43.600
-As I moved forward with the project, I
+00:06:41.600 --> 00:06:43.494
+As I moved forward with the project,
-00:06:43.600 --> 00:06:46.000
-found at least two things missing.
+00:06:43.494 --> 00:06:46.000
+I found at least two things missing.
00:06:46.000 --> 00:06:48.720
One, I had no access to a metronome,
@@ -480,29 +438,30 @@ One, I had no access to a metronome,
00:06:48.720 --> 00:06:50.479
at least not from the editor,
-00:06:50.479 --> 00:06:52.960
-so I built one for casual use and made
+00:06:50.479 --> 00:06:52.437
+so I built one for casual use
-00:06:52.960 --> 00:06:55.919
-it available in the MELPA repository.
+00:06:52.437 --> 00:06:55.919
+and made it available in the MELPA
+repository.
00:06:55.919 --> 00:06:59.039
-I also missed bar numbers in the source file.
+I also missed bar numbers in the
+source file.
00:06:59.039 --> 00:07:00.880
This is useful when going back and forth
-00:07:00.880 --> 00:07:03.199
+00:07:00.880 --> 00:07:04.479
between input and output files without
-
-00:07:03.199 --> 00:07:04.479
getting lost.
-00:07:04.479 --> 00:07:06.720
+00:07:04.479 --> 00:07:07.290
So I wrote a command for toggling bar
+numbers,
-00:07:06.720 --> 00:07:10.000
-numbers, which I hope you can see on the left.
+00:07:07.290 --> 00:07:10.000
+which I hope you can see on the left.
00:07:10.000 --> 00:07:12.080
Also, some expressions are difficult or
@@ -510,26 +469,28 @@ Also, some expressions are difficult or
00:07:12.080 --> 00:07:14.160
slow to write on the keyboard--
-00:07:14.160 --> 00:07:17.039
-accents and tuplets, for example--so I use
+00:07:14.160 --> 00:07:16.490
+accents and tuplets, for example--
-00:07:17.039 --> 00:07:20.160
-template expansion extensively for this purpose,
+00:07:16.490 --> 00:07:20.160
+so I use template expansion extensively
+for this purpose,
00:07:20.160 --> 00:07:23.440
mainly yasnippet.
-00:07:23.440 --> 00:07:25.680
-So what do I think? Well, I think
+00:07:23.440 --> 00:07:24.797
+So what do I think?
-00:07:25.680 --> 00:07:28.080
-Lilypond can be a sharp paradigm shift
+00:07:24.797 --> 00:07:28.080
+Well, I think Lilypond can be a sharp
+paradigm shift
-00:07:28.080 --> 00:07:31.039
-for people used to GUI alternatives, but
+00:07:28.080 --> 00:07:30.817
+for people used to GUI alternatives,
-00:07:31.039 --> 00:07:32.720
-the results are impressive.
+00:07:30.817 --> 00:07:32.720
+but the results are impressive.
00:07:32.720 --> 00:07:34.639
You don't have to dive too deeply to
@@ -537,29 +498,27 @@ You don't have to dive too deeply to
00:07:34.639 --> 00:07:36.960
start using Lilypond.
-00:07:36.960 --> 00:07:38.880
+00:07:36.960 --> 00:07:39.635
Likewise, the ability to extend the
+software,
+I think,
-00:07:38.880 --> 00:07:40.720
-software, I think, is especially appealing
+00:07:39.635 --> 00:07:42.400
+is especially appealing for music
+professionals,
-00:07:40.720 --> 00:07:42.400
-for music professionals,
-
-00:07:42.400 --> 00:07:45.199
+00:07:42.400 --> 00:07:46.560
enthusiasts, composers, and the academic
-
-00:07:45.199 --> 00:07:46.560
community:
00:07:46.560 --> 00:07:48.400
for example, allowing users to create
-00:07:48.400 --> 00:07:50.800
-alternative notation systems required in
+00:07:48.400 --> 00:07:50.187
+alternative notation systems
-00:07:50.800 --> 00:07:53.120
-non-Western music traditions
+00:07:50.187 --> 00:07:53.120
+required in non-Western music traditions
00:07:53.120 --> 00:07:56.160
and other non-conventional requirements.
@@ -573,35 +532,28 @@ extensive and well-written manuals
00:08:00.720 --> 00:08:04.639
and active communities of users.
-00:08:04.639 --> 00:08:06.400
-But if you're still not sure where to
+00:08:04.639 --> 00:08:05.971
+But if you're still not sure
-00:08:06.400 --> 00:08:09.599
-start and when to wedge your feet in the deep
+00:08:05.971 --> 00:08:10.475
+where to start and when to wedge your
+feet in the deep but warm pond
-00:08:09.599 --> 00:08:12.160
-but warm pond of lilies, Lilypond, and
+00:08:10.475 --> 00:08:13.680
+of lilies, Lilypond, and Lilypond users,
-00:08:12.160 --> 00:08:13.680
-Lilypond users,
-
-00:08:13.680 --> 00:08:15.680
+00:08:13.680 --> 00:08:16.960
I invite you to contribute to my
-
-00:08:15.680 --> 00:08:16.960
Lilypond projects,
-00:08:16.960 --> 00:08:18.800
+00:08:16.960 --> 00:08:20.720
which you can do so from the links on
-
-00:08:18.800 --> 00:08:20.720
the screen.
-00:08:20.720 --> 00:08:22.800
-So, thank you all. I look forward to your
-
-00:08:22.800 --> 00:08:24.639
-comments, and I hope you enjoy the rest
+00:08:20.720 --> 00:08:23.271
+So, thank you all. I look forward to
+your comments,
-00:08:24.639 --> 00:08:27.840
-of the conference.
+00:08:23.271 --> 00:08:27.840
+and I hope you enjoy the rest of the
+conference.
diff --git a/2020/subtitles/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--grant-shangreaux.vtt b/2020/subtitles/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--grant-shangreaux.vtt
index debfa46c..24e598d5 100644
--- a/2020/subtitles/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--grant-shangreaux.vtt
+++ b/2020/subtitles/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--grant-shangreaux.vtt
@@ -3,98 +3,79 @@ WEBVTT
00:00:01.360 --> 00:00:04.480
Hello, my name is Grant Shangreaux.
-00:00:04.480 --> 00:00:07.279
+00:00:04.480 --> 00:00:09.519
This is my talk titled Bard Bivou(m)acs:
+Publishing Music with Emacs.
-00:00:07.279 --> 00:00:07.919
-Publishing Music
+00:00:09.519 --> 00:00:14.400
+I'm a software developer with Unabridged
+Software in Lincoln, Nebraska.
-00:00:07.919 --> 00:00:10.719
-with Emacs. I'm a software
-
-00:00:10.719 --> 00:00:12.799
-developer with Unabridged Software in
-
-00:00:12.799 --> 00:00:14.400
-Lincoln, Nebraska.
-
-00:00:14.400 --> 00:00:16.800
+00:00:14.400 --> 00:00:18.720
Long time Emacs user, relatively new
-
-00:00:16.800 --> 00:00:18.720
Emacs hacker.
-00:00:18.720 --> 00:00:20.480
-Hopefully, I'll be able to show
+00:00:18.720 --> 00:00:22.487
+Hopefully, I'll be able to show you
+my workflow,
-00:00:20.480 --> 00:00:22.960
-you my workflow, with
+00:00:22.487 --> 00:00:30.480
+with how I publish music with Emacs.
-00:00:22.960 --> 00:00:30.480
-how I publish music with Emacs.
+00:00:30.480 --> 00:00:35.520
+All right. So as a musician, I would
+like to publish my music online.
-00:00:30.480 --> 00:00:33.440
-All right. So as a musician, I would like
+00:00:35.520 --> 00:00:39.040
+I could publish with popular online
+music services,
-00:00:33.440 --> 00:00:35.520
-to publish my music online.
+00:00:39.040 --> 00:00:41.061
+but I'm more of a DIY-type,
-00:00:35.520 --> 00:00:37.200
-I could publish with popular
-
-00:00:37.200 --> 00:00:39.040
-online music services,
-
-00:00:39.040 --> 00:00:42.000
-but I'm more of a DIY-type, so I chose to
-
-00:00:42.000 --> 00:00:44.719
-go ahead and publish with Emacs.
+00:00:41.061 --> 00:00:44.719
+so I chose to go ahead and
+publish with Emacs.
00:00:44.719 --> 00:00:48.160
What's the motivation behind this?
-00:00:48.160 --> 00:00:49.760
+00:00:48.160 --> 00:00:51.600
A lot of it comes down to some
-
-00:00:49.760 --> 00:00:51.600
fundamental freedoms
-00:00:51.600 --> 00:00:54.960
+00:00:51.600 --> 00:00:57.178
that Emacs and GNU software
+represent to me,
-00:00:54.960 --> 00:00:59.120
-represent to me, as well as my
-
-00:00:59.120 --> 00:01:01.840
-ideas on culture and my background.
+00:00:57.178 --> 00:01:01.840
+as well as my ideas on culture and my
+background.
00:01:01.840 --> 00:01:04.080
-I don't believe that music is a consumer good.
-
-00:01:04.080 --> 00:01:06.080
-It's a form of knowledge,
+I don't believe that music is
+a consumer good.
-00:01:06.080 --> 00:01:08.320
-like an algorithm.
+00:01:04.080 --> 00:01:08.320
+It's a form of knowledge, like an
+algorithm.
-00:01:08.320 --> 00:01:10.479
-And it's just such a part of
+00:01:08.320 --> 00:01:11.036
+And it's just such a part of culture,
-00:01:10.479 --> 00:01:13.119
-culture, like in tribal cultures, music
+00:01:11.036 --> 00:01:12.780
+like in tribal cultures,
-00:01:13.119 --> 00:01:16.640
-was seen as a gift from the cosmos or
+00:01:12.780 --> 00:01:17.405
+music was seen as a gift from the cosmos
+or the gods.
-00:01:16.640 --> 00:01:18.000
-the gods. It was
+00:01:17.405 --> 00:01:20.288
+It was a gift maybe through an
+individual vessel,
-00:01:18.000 --> 00:01:19.920
-a gift maybe through an individual
-
-00:01:19.920 --> 00:01:21.920
-vessel, but was shared with the people
+00:01:20.288 --> 00:01:21.920
+but was shared with the people
00:01:21.920 --> 00:01:23.520
and shared with everyone,
@@ -108,11 +89,12 @@ So to me, music is something that
00:01:29.840 --> 00:01:31.520
should be shared and should be
-00:01:31.520 --> 00:01:34.640
-freely enjoyed by everyone. Of course,
+00:01:31.520 --> 00:01:33.818
+freely enjoyed by everyone.
-00:01:34.640 --> 00:01:36.560
-artists should be compensated as well,
+00:01:33.818 --> 00:01:36.560
+Of course, artists should be
+compensated as well,
00:01:36.560 --> 00:01:39.040
but that's a whole different topic.
@@ -120,41 +102,43 @@ but that's a whole different topic.
00:01:39.040 --> 00:01:41.040
So when I want to share my music,
-00:01:41.040 --> 00:01:42.720
+00:01:41.040 --> 00:01:43.520
I want to do it without impacting
-
-00:01:42.720 --> 00:01:43.520
anyone's freedom.
-00:01:43.520 --> 00:01:45.680
-Using GNU software like Emacs is a
+00:01:43.520 --> 00:01:45.425
+Using GNU software like Emacs
-00:01:45.680 --> 00:01:49.200
-good way that I can ensure that
+00:01:45.425 --> 00:01:49.200
+is a good way that I can ensure that
-00:01:49.200 --> 00:01:52.840
-I won't be requiring people to
+00:01:49.200 --> 00:01:52.597
+I won't be requiring people
-00:01:52.840 --> 00:01:55.840
-sign away their freedoms for anything.
+00:01:52.597 --> 00:01:55.840
+to sign away their freedoms for
+anything.
-00:01:55.840 --> 00:01:57.119
-There's a lot more I could say about
+00:01:55.840 --> 00:01:57.367
+There's a lot more I could say
+about this
-00:01:57.119 --> 00:01:58.799
-this but I don't have time.
+00:01:57.367 --> 00:01:58.799
+but I don't have time.
00:01:58.799 --> 00:02:03.439
-Feel free to reach out to me by email or IRC.
+Feel free to reach out to me by
+email or IRC.
00:02:03.439 --> 00:02:06.479
Part of the motivation for me,
-00:02:06.479 --> 00:02:08.239
+00:02:06.479 --> 00:02:08.775
personally, is that Emacs is super
+magical.
-00:02:08.239 --> 00:02:10.720
-magical. It's an all-in-one solution.
+00:02:08.775 --> 00:02:10.720
+It's an all-in-one solution.
00:02:10.720 --> 00:02:12.720
Like I said, the GNU software aligns with
@@ -162,25 +146,22 @@ Like I said, the GNU software aligns with
00:02:12.720 --> 00:02:14.480
Creative Commons' ideas.
-00:02:14.480 --> 00:02:16.800
-I can do file management. I can author
+00:02:14.480 --> 00:02:16.067
+I can do file management.
-00:02:16.800 --> 00:02:18.879
-HTML, all the web stuff I need even,
+00:02:16.067 --> 00:02:20.239
+I can author HTML, all the web stuff
+I need even, literate-style.
-00:02:18.879 --> 00:02:20.239
-literate-style.
+00:02:20.239 --> 00:02:22.171
+I can handle media and metadata.
-00:02:20.239 --> 00:02:22.640
-I can handle media and metadata. I've got
+00:02:22.171 --> 00:02:24.640
+I've got version control, remote server
+access...
-00:02:22.640 --> 00:02:24.640
-version control, remote server access...
-
-00:02:24.640 --> 00:02:26.800
+00:02:24.640 --> 00:02:28.080
All the tools I need are right under my
-
-00:02:26.800 --> 00:02:28.080
fingertips with this tool
00:02:28.080 --> 00:02:30.000
@@ -204,23 +185,22 @@ So, how do you use Emacs to publish music?
00:02:41.680 --> 00:02:43.440
Well, for me, I needed
-00:02:43.440 --> 00:02:45.120
-a couple of things. I needed to be able
+00:02:43.440 --> 00:02:44.258
+a couple of things.
-00:02:45.120 --> 00:02:46.480
-to audition and label
+00:02:44.258 --> 00:02:47.564
+I needed to be able to audition and
+label unlabeled audio tracks.
-00:02:46.480 --> 00:02:48.319
-unlabeled audio tracks. I have a lot of
+00:02:47.564 --> 00:02:50.320
+I have a lot of files that
+I don't know where they came from.
-00:02:48.319 --> 00:02:50.000
-files that I don't know where they
+00:02:50.320 --> 00:02:51.213
+I don't know what they are.
-00:02:50.000 --> 00:02:51.280
-came from. I don't know what they are. I
-
-00:02:51.280 --> 00:02:53.840
-need to be able to listen to them,
+00:02:51.213 --> 00:02:53.840
+I need to be able to listen to them,
00:02:53.840 --> 00:02:56.800
and I need to be able to add metadata to
@@ -240,20 +220,19 @@ And in the end, I wanted to take those
00:03:05.120 --> 00:03:08.319
files and programmatically produce a web page
-00:03:08.319 --> 00:03:11.920
-for people to consume. I found out that
-
-00:03:11.920 --> 00:03:14.879
-Emacs scores a hundred percent on all of
+00:03:08.319 --> 00:03:10.442
+for people to consume.
-00:03:14.879 --> 00:03:18.000
-these requirements that I had for this, and
+00:03:10.442 --> 00:03:14.879
+I found out that Emacs scores a hundred
+percent on all of
-00:03:18.000 --> 00:03:20.720
-a lot of that came from EMMS, the Emacs
+00:03:14.879 --> 00:03:17.709
+these requirements that I had for this,
-00:03:20.720 --> 00:03:22.640
-multimedia system.
+00:03:17.709 --> 00:03:22.640
+and a lot of that came from EMMS, the
+Emacs multimedia system.
00:03:22.640 --> 00:03:26.080
EMMS is great.
@@ -261,17 +240,18 @@ EMMS is great.
00:03:26.080 --> 00:03:27.760
If you haven't checked it out, please do.
-00:03:27.760 --> 00:03:30.000
-It's a little bit unintuitive, but
+00:03:27.760 --> 00:03:29.736
+It's a little bit unintuitive,
-00:03:30.000 --> 00:03:34.000
-once you get into it, you know it works.
+00:03:29.736 --> 00:03:34.000
+but once you get into it, you know it
+works.
-00:03:34.000 --> 00:03:36.640
-Basically, what EMMS gave me was the
+00:03:34.000 --> 00:03:36.420
+Basically, what EMMS gave me was
-00:03:36.640 --> 00:03:38.720
-ability to listen to the tracks,
+00:03:36.420 --> 00:03:38.720
+the ability to listen to the tracks,
00:03:38.720 --> 00:03:39.680
organize playlists.
@@ -297,17 +277,14 @@ so (require 'emms-mark). I'm going to
00:03:54.879 --> 00:03:59.680
go through, and I'm going to open the red...
-00:03:59.680 --> 00:04:02.319
-I've got this. These files here. So
+00:03:59.680 --> 00:04:02.092
+I've got this. These files here.
-00:04:02.319 --> 00:04:04.480
-you can see these files are mp3s.
+00:04:02.092 --> 00:04:04.480
+So you can see these files are mp3s.
-00:04:04.480 --> 00:04:06.080
-They're recorded on a
-
-00:04:06.080 --> 00:04:07.599
-digital recorder.
+00:04:04.480 --> 00:04:07.599
+They're recorded on a digital recorder.
00:04:07.599 --> 00:04:09.920
If I had the choice, I would have a
@@ -318,35 +295,28 @@ recorder that used a different format,
00:04:12.319 --> 00:04:14.640
but so be it. I can mark all these files
-00:04:14.640 --> 00:04:16.160
-and I can do EMMS
-
-00:04:16.160 --> 00:04:20.000
-add to .., and now they've been loaded
-
-00:04:20.000 --> 00:04:27.040
-into a playlist.
-
-00:04:27.040 --> 00:04:29.040
-So you can see the playlist here. There's
+00:04:14.640 --> 00:04:27.040
+and I can do EMMS add to .., and now
+they've been loaded into a playlist.
-00:04:29.040 --> 00:04:30.400
-some leftover files.
+00:04:27.040 --> 00:04:28.698
+So you can see the playlist here.
-00:04:30.400 --> 00:04:32.000
-So I've got these three files in my
+00:04:28.698 --> 00:04:30.400
+There's some leftover files.
-00:04:32.000 --> 00:04:33.759
-playlist, and as you can see, it's just
+00:04:30.400 --> 00:04:31.771
+So I've got these three files
-00:04:33.759 --> 00:04:34.639
-the file name,
+00:04:31.771 --> 00:04:33.361
+in my playlist, and as you can see,
-00:04:34.639 --> 00:04:36.800
-the path. I don't have any metadata
+00:04:33.361 --> 00:04:35.194
+it's just the file name, the path.
-00:04:36.800 --> 00:04:38.560
-associated with them.
+00:04:35.194 --> 00:04:38.560
+I don't have any metadata associated
+with them.
00:04:38.560 --> 00:04:41.360
In this playlist, I can hit E,
@@ -360,37 +330,30 @@ the tag information that I have.
00:04:47.360 --> 00:04:49.840
I could edit these here.
-00:04:49.840 --> 00:04:51.520
-I could edit them one at a time, but that's
+00:04:49.840 --> 00:04:51.129
+I could edit them one at a time,
-00:04:51.520 --> 00:04:53.919
-not really great. I want superpower
+00:04:51.129 --> 00:05:03.101
+but that's not really great. I want
+superpower metadata authoring.
-00:04:53.919 --> 00:05:04.479
-metadata authoring. So,
+00:05:03.101 --> 00:05:07.159
+So, by marking them, I can then hit E,
-00:05:04.479 --> 00:05:07.680
-by marking them, I can then hit E, and I
+00:05:07.159 --> 00:05:12.639
+and I have all three of the tracks
+loaded up in this tags buffer.
-00:05:07.680 --> 00:05:10.479
-have all three of the tracks loaded up in
+00:05:12.639 --> 00:05:16.912
+On top of that, I can do EMMS tag
+editor,
-00:05:10.479 --> 00:05:12.639
-this tags buffer.
+00:05:16.912 --> 00:05:22.840
+set all, C-c C-r, and I want to
+set the artist.
-00:05:12.639 --> 00:05:15.759
-On top of that, I can do EMMS
-
-00:05:15.759 --> 00:05:18.800
-tag editor, set all, C-c C-r,
-
-00:05:18.800 --> 00:05:22.840
-and I want to set the artist.
-
-00:05:22.840 --> 00:05:25.680
+00:05:22.840 --> 00:05:26.320
so these are some recordings of my
-
-00:05:25.680 --> 00:05:26.320
family.
00:05:26.320 --> 00:05:31.039
@@ -405,53 +368,45 @@ Spring Walk with Lap Harp.
00:05:40.160 --> 00:05:45.520
I want to set the year.
-00:05:45.520 --> 00:05:48.960
+00:05:45.520 --> 00:05:53.759
And then I'm going to go ahead and put
-
-00:05:48.960 --> 00:05:53.759
these in manually,
-00:05:53.759 --> 00:05:55.840
-but with the power of Emacs keyboard
-
-00:05:55.840 --> 00:05:57.039
-macros and
+00:05:53.759 --> 00:05:56.759
+but with the power of Emacs
+keyboard macros
-00:05:57.039 --> 00:05:59.600
-registers and so on. I could do this
+00:05:56.759 --> 00:05:59.600
+and registers and so on. I could do this
00:05:59.600 --> 00:06:02.319
programmatically as well,
-00:06:02.319 --> 00:06:04.000
-which would make it a lot easier if I
+00:06:02.319 --> 00:06:03.818
+which would make it a lot easier
-00:06:04.000 --> 00:06:06.000
-had much more than three files to
-
-00:06:06.000 --> 00:06:07.440
+00:06:03.818 --> 00:06:07.440
+if I had much more than three files to
do this with.
00:06:07.440 --> 00:06:09.919
Submit the changes with C-c C-c,
-00:06:09.919 --> 00:06:11.520
-and now we've got the playlist. You can
-
-00:06:11.520 --> 00:06:13.120
-see the artist and track number have
+00:06:09.919 --> 00:06:11.232
+and now we've got the playlist.
-00:06:13.120 --> 00:06:15.039
-been updated here.
+00:06:11.232 --> 00:06:15.039
+You can see the artist and track number
+have been updated here.
00:06:15.039 --> 00:06:17.360
And then the final piece of this is that
-00:06:17.360 --> 00:06:19.039
-if you look at this, you can see that the
+00:06:17.360 --> 00:06:18.875
+if you look at this, you can see that
-00:06:19.039 --> 00:06:20.479
-file name is still the same.
+00:06:18.875 --> 00:06:20.479
+the file name is still the same.
00:06:20.479 --> 00:06:22.639
So if I were looking at the directory,
@@ -468,29 +423,27 @@ for people to download,
00:06:28.000 --> 00:06:30.319
it's nice to be able to have that
-00:06:30.319 --> 00:06:32.400
-filename reflect the track number and the
+00:06:30.319 --> 00:06:32.044
+filename reflect the track number
-00:06:32.400 --> 00:06:34.800
-artist and so on. So there's another
+00:06:32.044 --> 00:06:33.609
+and the artist and so on.
-00:06:34.800 --> 00:06:41.199
-command, EMMS
+00:06:33.609 --> 00:06:40.250
+So there's another command,
-00:06:41.199 --> 00:06:44.160
-rename tag editor, rename, so it could be
+00:06:40.250 --> 00:06:42.970
+EMMS rename tag editor, rename,
-00:06:44.160 --> 00:06:45.120
-just capital R.
+00:06:42.970 --> 00:06:45.120
+so it could be just capital R.
-00:06:45.120 --> 00:06:47.199
-I think I need to mark all of these, hit
+00:06:45.120 --> 00:06:46.991
+I think I need to mark all of these,
-00:06:47.199 --> 00:06:48.880
-capital R, and then it's going to ask me
-
-00:06:48.880 --> 00:06:50.000
-to confirm
+00:06:46.991 --> 00:06:50.000
+hit capital R, and then it's going to
+ask me to confirm
00:06:50.000 --> 00:06:54.400
and say yes to all of them.
@@ -504,86 +457,78 @@ whoops I have to update it--you'll see
00:07:04.319 --> 00:07:06.319
it's been updated with the artist,
-00:07:06.319 --> 00:07:09.840
-track number and
-
-00:07:09.840 --> 00:07:11.120
-track name.
+00:07:06.319 --> 00:07:11.120
+track number and track name.
-00:07:11.120 --> 00:07:14.639
-This format is a format string, so
+00:07:11.120 --> 00:07:14.432
+This format is a format string,
-00:07:14.639 --> 00:07:17.360
-it's customizable of course.
+00:07:14.432 --> 00:07:17.360
+so it's customizable of course.
00:07:17.360 --> 00:07:21.039
I just decided to go with the default.
-00:07:21.039 --> 00:07:24.160
+00:07:21.039 --> 00:07:24.948
So that's pretty great, this workflow
+just with EMMS.
-00:07:24.160 --> 00:07:26.000
-just with EMMS. I didn't have to do
-
-00:07:26.000 --> 00:07:28.080
-anything. This is all there. It's all
-
-00:07:28.080 --> 00:07:30.960
-built in. It gave me exactly what
+00:07:24.948 --> 00:07:27.585
+I didn't have to do anything. This is
+all there.
-00:07:30.960 --> 00:07:32.639
-I was looking for in terms of being able
+00:07:27.585 --> 00:07:31.673
+It's all built in. It gave me exactly
+what I was looking for
-00:07:32.639 --> 00:07:35.599
-to process a lot of raw audio files
+00:07:31.673 --> 00:07:35.599
+in terms of being able to process a lot
+of raw audio files,
-00:07:35.599 --> 00:07:37.599
-add metadata to them and get them ready
-
-00:07:37.599 --> 00:07:39.280
+00:07:35.599 --> 00:07:39.280
+add metadata to them, and get them ready
for publishing.
00:07:39.280 --> 00:07:41.599
And this is for publishing for playback
-00:07:41.599 --> 00:07:43.520
-in any media player. It'll be
-
-00:07:43.520 --> 00:07:46.560
-useful. Not just for the web page that I'm
+00:07:41.599 --> 00:07:44.026
+in any media player. It'll be useful.
-00:07:46.560 --> 00:07:48.479
-building. So the
+00:07:44.026 --> 00:07:47.639
+Not just for the web page that I'm
+building.
-00:07:48.479 --> 00:07:50.560
-final part, of course, is to build the
+00:07:47.639 --> 00:07:51.440
+So the final part, of course, is to
+build the web page.
-00:07:50.560 --> 00:07:54.960
-web page. Emacs makes authoring HTML trivial.
+00:07:51.440 --> 00:07:54.960
+Emacs makes authoring HTML trivial.
-00:07:54.960 --> 00:07:57.440
-As I was going through this, I
+00:07:54.960 --> 00:07:57.357
+As I was going through this,
-00:07:57.440 --> 00:07:59.039
-wanted to challenge myself and just be,
+00:07:57.357 --> 00:07:59.701
+I wanted to challenge myself and just
+be, like,
-00:07:59.039 --> 00:08:00.400
-like, can I do this
+00:07:59.701 --> 00:08:03.520
+can I do this just all with Emacs?
+Can I just make this?
-00:08:00.400 --> 00:08:03.520
-just all with Emacs? Can I just make this?
+00:08:03.520 --> 00:08:05.134
+I don't need a... I don't need Ruby.
-00:08:03.520 --> 00:08:05.440
-I don't need a... I don't need Ruby. I don't
+00:08:05.134 --> 00:08:06.707
+I don't need Rails. I don't need Node.
-00:08:05.440 --> 00:08:07.039
-need Rails. I don't need Node. I don't
+00:08:06.707 --> 00:08:08.528
+I don't need any of this other stuff.
-00:08:07.039 --> 00:08:08.960
-need any of this other stuff. I have my
-
-00:08:08.960 --> 00:08:10.560
-tool right here. It's a fully...
+00:08:08.528 --> 00:08:10.560
+I have my tool right here. It's a
+fully...
00:08:10.560 --> 00:08:12.560
It's a whole operating system, basically,
@@ -591,83 +536,78 @@ It's a whole operating system, basically,
00:08:12.560 --> 00:08:15.039
plus programming languages.
-00:08:15.039 --> 00:08:17.360
-So the first thing I started with was
+00:08:15.039 --> 00:08:17.171
+So the first thing I started with
-00:08:17.360 --> 00:08:19.919
-buffer scripting for manipulating text.
+00:08:17.171 --> 00:08:19.919
+was buffer scripting for
+manipulating text.
00:08:19.919 --> 00:08:22.560
That's kind of the easiest way to do it.
-00:08:22.560 --> 00:08:24.319
-Basically, anything you can do in a
-
-00:08:24.319 --> 00:08:25.280
-buffer, you can do
+00:08:22.560 --> 00:08:24.692
+Basically, anything you can do in
+a buffer,
-00:08:25.280 --> 00:08:28.479
-programmatically with Elisp. So this
+00:08:24.692 --> 00:08:27.834
+you can do programmatically with Elisp.
-00:08:28.479 --> 00:08:30.319
-might be a good example for beginners. If
+00:08:27.834 --> 00:08:30.217
+So this might be a good example for
+beginners.
-00:08:30.319 --> 00:08:33.919
-you haven't done any Elisp yet,
+00:08:30.217 --> 00:08:33.919
+If you haven't done any Elisp yet,
-00:08:33.919 --> 00:08:36.000
-a simple example is to create this
+00:08:33.919 --> 00:08:39.557
+a simple example is to create this div
+output here.
-00:08:36.000 --> 00:08:36.959
-this div
+00:08:39.557 --> 00:08:41.581
+You can use this with-temp-buffer,
-00:08:36.959 --> 00:08:40.000
-output here. You
+00:08:41.581 --> 00:08:44.240
+so basically creating an imaginary
+buffer.
-00:08:40.000 --> 00:08:41.760
-can use this with-temp-buffer, so
+00:08:44.240 --> 00:08:45.945
+insert is just like typing,
-00:08:41.760 --> 00:08:44.240
-basically creating an imaginary buffer.
-
-00:08:44.240 --> 00:08:46.640
-insert is just like typing, so you put
-
-00:08:46.640 --> 00:08:48.800
-strings in, you put new lines in,
+00:08:45.945 --> 00:08:48.800
+so you put strings in,
+you put new lines in,
00:08:48.800 --> 00:08:50.959
you can build some strings together.
-00:08:50.959 --> 00:08:52.080
-Here you can see
-
-00:08:52.080 --> 00:08:54.000
-I'm doing a random number, so every time
-
-00:08:54.000 --> 00:08:55.360
-I execute this,
+00:08:50.959 --> 00:08:53.551
+Here you can see I'm doing a random
+number,
-00:08:55.360 --> 00:08:57.920
-my content changes. I can generate
+00:08:53.551 --> 00:08:55.360
+so every time I execute this,
-00:08:57.920 --> 00:09:01.040
-dynamic content in HTML blocks
+00:08:55.360 --> 00:08:56.790
+my content changes.
-00:09:01.040 --> 00:09:04.399
-with Elisp. For my
+00:08:56.790 --> 00:09:03.685
+I can generate dynamic content in HTML
+blocks with Elisp.
-00:09:04.399 --> 00:09:05.920
-web page builder, It's a little more
+00:09:03.685 --> 00:09:06.493
+For my web page builder, it's a little
+more complex.
-00:09:05.920 --> 00:09:08.000
-complex. I'm pulling data out
+00:09:06.493 --> 00:09:08.000
+I'm pulling data out
00:09:08.000 --> 00:09:12.080
using EMMS data structures,
00:09:12.080 --> 00:09:16.080
-so it's pulling that out from the track data.
+so it's pulling that out from
+the track data.
00:09:16.080 --> 00:09:19.440
And then I'm using some program to
@@ -675,50 +615,48 @@ And then I'm using some program to
00:09:19.440 --> 00:09:21.440
generate list elements, so each track is
-00:09:21.440 --> 00:09:23.200
-going to have the title
+00:09:21.440 --> 00:09:24.086
+going to have the title and
+track number,
-00:09:23.200 --> 00:09:25.120
-and track number, and then a button for
+00:09:24.086 --> 00:09:25.869
+and then a button for playing it,
-00:09:25.120 --> 00:09:26.959
-playing it, plus the source
+00:09:25.869 --> 00:09:28.206
+plus the source of the audio file,
-00:09:26.959 --> 00:09:29.519
-of the audio file, which will get added
+00:09:28.206 --> 00:09:30.480
+which will get added here.
-00:09:29.519 --> 00:09:30.480
-here.
+00:09:30.480 --> 00:09:32.485
+Right now, this is hard coded for Opus,
-00:09:30.480 --> 00:09:32.640
-Right now, this is hard coded for Opus, so
+00:09:32.485 --> 00:09:37.200
+so it won't work for my MP3s.
-00:09:32.640 --> 00:09:37.200
-it won't work for my MP3s.
+00:09:37.200 --> 00:09:38.867
+I'm going to skip over snippets.
-00:09:37.200 --> 00:09:39.120
-I'm going to skip over snippets. Turns
+00:09:38.867 --> 00:09:42.017
+Turns out format strings were good
+enough for me.
-00:09:39.120 --> 00:09:41.200
-out format strings were good enough
+00:09:42.017 --> 00:09:45.035
+Snippets could be useful,
-00:09:41.200 --> 00:09:45.519
-for me. Snippets could be useful, but
+00:09:45.035 --> 00:09:47.267
+but format is super powerful,
-00:09:45.519 --> 00:09:48.160
-format is super powerful, and I didn't
+00:09:47.267 --> 00:09:49.839
+and I didn't really even need
+all that much power,
-00:09:48.160 --> 00:09:49.839
-really even need all that much power,
-
-00:09:49.839 --> 00:09:51.279
+00:09:49.839 --> 00:09:52.187
basically, just doing string
+interpolation.
-00:09:51.279 --> 00:09:53.519
-interpolation. So if you haven't seen
-
-00:09:53.519 --> 00:09:54.560
-format before,
+00:09:52.187 --> 00:09:54.560
+So if you haven't seen format before,
00:09:54.560 --> 00:09:56.720
you basically put these control strings
@@ -726,37 +664,29 @@ you basically put these control strings
00:09:56.720 --> 00:09:59.120
or control characters inside of a string,
-00:09:59.120 --> 00:10:03.120
-and you can generate an
+00:09:59.120 --> 00:10:05.040
+and you can generate an output string
+that you want.
-00:10:03.120 --> 00:10:05.040
-output string that you want.
+00:10:05.040 --> 00:10:07.344
+So in my generator code, basically,
-00:10:05.040 --> 00:10:07.600
-So in my generator code, basically, it's
+00:10:07.344 --> 00:10:08.720
+it's down here,
-00:10:07.600 --> 00:10:08.720
-down here,
-
-00:10:08.720 --> 00:10:10.959
+00:10:08.720 --> 00:10:12.800
I'm calling format with this Bard
-
-00:10:10.959 --> 00:10:12.800
Bivou(m)acs template,
-00:10:12.800 --> 00:10:15.920
-and that's basically a big
+00:10:12.800 --> 00:10:17.491
+and that's basically a big string of
+HTML.
-00:10:15.920 --> 00:10:18.240
-a big string of HTML. It's just
+00:10:17.491 --> 00:10:21.200
+It's just my whole page of HTML
-00:10:18.240 --> 00:10:21.200
-my whole page of HTML
-
-00:10:21.200 --> 00:10:22.959
+00:10:21.200 --> 00:10:24.399
with those control characters in just
-
-00:10:22.959 --> 00:10:24.399
four places.
00:10:24.399 --> 00:10:26.399
@@ -765,41 +695,38 @@ One of them populates the track list.
00:10:26.399 --> 00:10:29.760
That's really the meat of the program.
-00:10:29.760 --> 00:10:32.079
+00:10:29.760 --> 00:10:34.746
Again, this is a combination of using
+buffer scripting, using HTML mode,
-00:10:32.079 --> 00:10:33.440
-buffer scripting,
+00:10:34.746 --> 00:10:37.279
+inserting text format strings,
-00:10:33.440 --> 00:10:37.279
-using HTML mode, inserting text format strings,
+00:10:37.279 --> 00:10:39.251
+and then I can indent-region
-00:10:37.279 --> 00:10:40.000
-and then I can indent-region so the HTML
-
-00:10:40.000 --> 00:10:41.920
-actually looks pretty
+00:10:39.251 --> 00:10:41.920
+so the HTML actually looks pretty
00:10:41.920 --> 00:10:45.200
when it comes out of it as well.
-00:10:45.200 --> 00:10:50.160
+00:10:45.200 --> 00:10:54.000
I will show that, just really quick
-
-00:10:50.160 --> 00:10:54.000
actually.
-00:10:54.000 --> 00:10:56.880
-So you can see, this is the HTML that got
+00:10:54.000 --> 00:10:57.540
+So you can see, this is the HTML that
+got generated.
-00:10:56.880 --> 00:10:58.800
-generated. I've got my template.
+00:10:57.540 --> 00:10:58.800
+I've got my template.
-00:10:58.800 --> 00:11:02.560
-I inserted the title here, the style, the
+00:10:58.800 --> 00:11:02.193
+I inserted the title here, the style,
-00:11:02.560 --> 00:11:05.760
-font was all inserted,
+00:11:02.193 --> 00:11:05.760
+the font was all inserted,
00:11:05.760 --> 00:11:07.920
and then this whole list of of tracks here.
@@ -810,98 +737,100 @@ It's kind of messy to look at,
00:11:11.200 --> 00:11:14.399
but this track list, this whole div here,
-00:11:14.399 --> 00:11:15.920
-is all generated by
-
-00:11:15.920 --> 00:11:22.480
-my generator code, and it works. It's great.
+00:11:14.399 --> 00:11:22.480
+is all generated by my generator code,
+and it works. It's great.
00:11:22.480 --> 00:11:27.120
Okay, moving on.
-00:11:27.120 --> 00:11:30.240
+00:11:27.120 --> 00:11:30.945
So the other thing was that as I was
+developing this,
-00:11:30.240 --> 00:11:32.079
-developing this, I decided to use
-
-00:11:32.079 --> 00:11:33.200
-Org Babel and some of his
+00:11:30.945 --> 00:11:32.547
+I decided to use Org Babel
-00:11:33.200 --> 00:11:35.360
-its features for multi-language
+00:11:32.547 --> 00:11:35.588
+and some of its features for
+multi-language things
-00:11:35.360 --> 00:11:36.880
-things because I needed to style it with
+00:11:35.588 --> 00:11:37.839
+because I needed to style it with CSS
-00:11:36.880 --> 00:11:37.839
-CSS and
+00:11:37.839 --> 00:11:39.835
+and put actions in Javascript,
-00:11:37.839 --> 00:11:40.480
-and put actions in Javascript, and also I
-
-00:11:40.480 --> 00:11:42.480
-used SVG for authoring stuff.
+00:11:39.835 --> 00:11:42.480
+and also I used SVG for authoring stuff.
00:11:42.480 --> 00:11:46.079
It was a little bit complicated.
-00:11:46.079 --> 00:11:47.680
-It probably would have been simpler had I
+00:11:46.079 --> 00:11:47.484
+It probably would have been simpler
+
+00:11:47.484 --> 00:11:48.680
+had I not used Org Babel,
-00:11:47.680 --> 00:11:49.600
-not used Org Babel, but it's also really
+00:11:48.680 --> 00:11:49.894
+but it's also really fun.
-00:11:49.600 --> 00:11:51.440
-fun. I think it's a cool,
+00:11:49.894 --> 00:11:53.663
+I think it's a cool, cool idea to use
+literate programming.
-00:11:51.440 --> 00:11:53.839
-cool idea to use literate programming. My
+00:11:53.663 --> 00:11:57.001
+My idea was to create HTML
+components.
-00:11:53.839 --> 00:11:55.839
-idea was to create HTML
+00:11:57.001 --> 00:11:59.519
+I could name it like this,
-00:11:55.839 --> 00:11:59.519
-components. I could name it like this,
+00:11:59.519 --> 00:12:00.959
+put a format string inside it,
-00:11:59.519 --> 00:12:01.440
-put a format string inside it, and build
+00:12:00.959 --> 00:12:02.800
+and build a function
-00:12:01.440 --> 00:12:02.800
-a function
+00:12:02.800 --> 00:12:04.302
+in Elisp to format it
-00:12:02.800 --> 00:12:05.519
-in Elisp to format it and spit out the
+00:12:04.302 --> 00:12:07.120
+and spit out the HTML that I want.
-00:12:05.519 --> 00:12:07.120
-HTML that I want.
+00:12:07.120 --> 00:12:09.581
+By doing this, then,
-00:12:07.120 --> 00:12:10.320
-By doing this, then, I can
+00:12:09.581 --> 00:12:12.388
+I can just change things in my Org file,
-00:12:10.320 --> 00:12:12.880
-just change things in my Org file which,
+00:12:12.388 --> 00:12:14.814
+which, not getting a whole lot of time
+to work on it,
-00:12:12.880 --> 00:12:14.320
-not getting a whole lot of time to work
+00:12:14.814 --> 00:12:16.615
+I can come back to it
-00:12:14.320 --> 00:12:16.959
-on it, I can come back to it and
+00:12:16.615 --> 00:12:19.335
+and I have a lot of notes.
-00:12:16.959 --> 00:12:19.839
-I have a lot of notes. I can
+00:12:19.335 --> 00:12:21.695
+I can kind of generate things as I'm
+going
-00:12:19.839 --> 00:12:21.920
-kind of generate things as I'm going and
+00:12:21.695 --> 00:12:24.399
+and keep notes for myself,
+and keep the...
-00:12:21.920 --> 00:12:24.399
-keep notes for myself, and keep the...
+00:12:24.399 --> 00:12:25.308
+I don't know. It's cool.
-00:12:24.399 --> 00:12:25.600
-I don't know. It's cool. Literate
+00:12:25.308 --> 00:12:26.672
+Literate programming is fun.
-00:12:25.600 --> 00:12:27.519
-programming is fun. So I don't need to
+00:12:26.672 --> 00:12:27.519
+So I don't need to
00:12:27.519 --> 00:12:29.279
go into that too much, but you can see if
@@ -909,41 +838,42 @@ go into that too much, but you can see if
00:12:29.279 --> 00:12:31.040
I execute this here,
-00:12:31.040 --> 00:12:33.360
-I get the the div that I want. It's a
+00:12:31.040 --> 00:12:32.983
+I get the the div that I want.
-00:12:33.360 --> 00:12:34.880
-little bit funny. You'll see I have the
+00:12:32.983 --> 00:12:34.013
+It's a little bit funny.
-00:12:34.880 --> 00:12:36.480
-string like this, the way that
+00:12:34.013 --> 00:12:35.786
+You'll see I have the string like this,
-00:12:36.480 --> 00:12:39.200
-noweb expands, I can't do this on a
-
-00:12:39.200 --> 00:12:40.000
-single line.
+00:12:35.786 --> 00:12:40.000
+the way that noweb expands, I can't do
+this on a single line.
00:12:40.000 --> 00:12:43.839
It looks funny when you do that,
-00:12:43.839 --> 00:12:45.440
-so that might be something to work out
+00:12:43.839 --> 00:12:45.931
+so that might be something
+to work out later.
-00:12:45.440 --> 00:12:48.959
-later. CSS blocks can either be tangled out
+00:12:45.931 --> 00:12:48.959
+CSS blocks can either be tangled out
00:12:48.959 --> 00:12:52.639
-and referenced in the HTML source or inlined.
+and referenced in the HTML source,
+or inlined.
00:12:52.639 --> 00:12:54.639
Here's an example I have of inlining it.
-00:12:54.639 --> 00:12:56.959
-So I've got my little CSS block named
+00:12:54.639 --> 00:12:57.609
+So I've got my little CSS block
+named style,
-00:12:56.959 --> 00:13:00.320
-style, Javascript named script,
+00:12:57.609 --> 00:13:00.320
+Javascript named script,
00:13:00.320 --> 00:13:03.040
and then I've got this HTML source block
@@ -954,20 +884,23 @@ with noweb expansion.
00:13:04.839 --> 00:13:07.920
These double angle brackets here
-00:13:07.920 --> 00:13:09.839
-are where I'm going to expand the block
+00:13:07.920 --> 00:13:09.396
+are where I'm going to expand
-00:13:09.839 --> 00:13:12.639
-named style. I'm actually calling a function,
+00:13:09.396 --> 00:13:12.639
+the block named style. I'm actually
+calling a function,
-00:13:12.639 --> 00:13:14.399
-so I want the result of the function
+00:13:12.639 --> 00:13:14.737
+so I want the result of the
+function here,
-00:13:14.399 --> 00:13:17.040
-here, and then the script will just get
+00:13:14.737 --> 00:13:18.881
+and then the script will just get
+expanded here.
-00:13:17.040 --> 00:13:22.959
-expanded here. So org-babel-expand-src-block,
+00:13:18.881 --> 00:13:22.959
+So org-babel-expand-src-block,
00:13:22.959 --> 00:13:25.360
you can see what it looks like.
@@ -975,50 +908,45 @@ you can see what it looks like.
00:13:25.360 --> 00:13:28.160
I've got my style here. I've got my title.
-00:13:28.160 --> 00:13:29.920
-I've got that main content class
-
-00:13:29.920 --> 00:13:31.279
-I showed before,
+00:13:28.160 --> 00:13:31.279
+I've got that main content class I
+showed before,
00:13:31.279 --> 00:13:34.480
-and the script as well. So that's kind of cool.
+and the script as well.
+So that's kind of cool.
-00:13:34.480 --> 00:13:36.320
+00:13:34.480 --> 00:13:37.527
I could just run org-babel-tangle and
+get my thing out
-00:13:36.320 --> 00:13:38.160
-get my thing out and just
-
-00:13:38.160 --> 00:13:40.480
-edit one file instead of multiple files.
-
-00:13:40.480 --> 00:13:41.600
-Not for everyone,
+00:13:37.527 --> 00:13:40.480
+and just edit one file instead of
+multiple files.
-00:13:41.600 --> 00:13:45.839
-but I thought it was kind of fun.
+00:13:40.480 --> 00:13:46.455
+Not for everyone, but I thought it was
+kind of fun. All right.
-00:13:45.839 --> 00:13:47.760
-All right. Oh, and the final thing is that
+00:13:46.455 --> 00:13:48.807
+Oh, and the final thing is
+that in Emacs,
-00:13:47.760 --> 00:13:49.199
-in Emacs, you can
+00:13:48.807 --> 00:13:51.320
+you can author and view SVG.
-00:13:49.199 --> 00:13:52.880
-author and view SVG. So this is just an
+00:13:51.320 --> 00:13:58.297
+So this is just an Org. This SVG, I used
+to make the play and pause buttons.
-00:13:52.880 --> 00:13:57.199
-Org. This SVG, I used to make the play
+00:13:58.297 --> 00:13:59.519
+I didn't know this,
-00:13:57.199 --> 00:13:59.519
-and pause buttons. I didn't know this,
+00:13:59.519 --> 00:14:02.162
+but if you edit an SVG file,
-00:13:59.519 --> 00:14:02.800
-but if you edit an SVG file, you can
-
-00:14:02.800 --> 00:14:08.800
-toggle back and forth
+00:14:02.162 --> 00:14:08.800
+you can toggle back and forth
00:14:08.800 --> 00:14:13.199
between the code and the image.
@@ -1026,107 +954,102 @@ between the code and the image.
00:14:13.199 --> 00:14:17.360
It's pretty sweet. So I can iteratively
-00:14:17.360 --> 00:14:19.680
-work through this because of how
-
-00:14:19.680 --> 00:14:20.560
-Emacs is.
+00:14:17.360 --> 00:14:20.560
+work through this
+because of how Emacs is.
00:14:20.560 --> 00:14:24.959
Final considerations here,
-00:14:24.959 --> 00:14:27.360
-like when doing this, I want it to be all
+00:14:24.959 --> 00:14:26.247
+like when doing this,
-00:14:27.360 --> 00:14:29.279
-free, so I want to use fonts that use a
+00:14:26.247 --> 00:14:27.606
+I want it to be all free,
-00:14:29.279 --> 00:14:30.079
-free license.
+00:14:27.606 --> 00:14:30.079
+so I want to use fonts that use a free
+license.
00:14:30.079 --> 00:14:32.800
I found GNU Unifont. It's kind of cool.
-00:14:32.800 --> 00:14:34.800
-The content license... I chose
+00:14:32.800 --> 00:14:34.333
+The content license...
-00:14:34.800 --> 00:14:37.600
-Creative Commons Attribution ShareAlike,
+00:14:34.333 --> 00:14:37.600
+I chose Creative Commons Attribution
+ShareAlike,
00:14:37.600 --> 00:14:39.920
which is kind of like the GPL.
-00:14:39.920 --> 00:14:42.880
-Ideally, I could serve it with Emacs. I'd
+00:14:39.920 --> 00:14:42.663
+Ideally, I could serve it with Emacs.
-00:14:42.880 --> 00:14:44.800
-like to remove idiosyncrasy so other
-
-00:14:44.800 --> 00:14:46.320
+00:14:42.663 --> 00:14:46.320
+I'd like to remove idiosyncrasy so other
people can use it.
00:14:46.320 --> 00:14:48.720
It's pretty much just my tool right now.
-00:14:48.720 --> 00:14:51.040
-Not requiring the web browser... I can
-
-00:14:51.040 --> 00:14:54.079
-ship playlists so that you can just
+00:14:48.720 --> 00:14:50.734
+Not requiring the web browser...
-00:14:54.079 --> 00:14:58.000
-click or link to a playlist on your favorite
+00:14:50.734 --> 00:14:56.648
+I can ship playlists so that you can
+just click or link to a playlist
-00:14:58.000 --> 00:15:00.639
-player, even EMMS if you want, and then
+00:14:56.648 --> 00:15:00.068
+on your favorite player, even EMMS if
+you want,
-00:15:00.639 --> 00:15:02.639
-packing up those albums in like a ZIP or
-
-00:15:02.639 --> 00:15:04.320
-.tar file.
+00:15:00.068 --> 00:15:04.320
+and then packing up those albums in like
+a ZIP or .tar file.
00:15:04.320 --> 00:15:08.639
So you can go to churls.world .
-00:15:08.639 --> 00:15:10.880
-It just has a link to this album. I'll
+00:15:08.639 --> 00:15:10.644
+It just has a link to this album.
-00:15:10.880 --> 00:15:14.000
-display it here in just a second.
+00:15:10.644 --> 00:15:14.000
+I'll display it here in just a second.
00:15:14.000 --> 00:15:17.519
You can contact me. I'm shoshin on #emacs
00:15:17.519 --> 00:15:21.040
-in IRC and on sourcehut. You can email me
+in IRC and on sourcehut. You can email me:
00:15:21.040 --> 00:15:23.680
grant@churls.world, personal, or
00:15:23.680 --> 00:15:26.800
-grant@unabridgedsoftware.com. All right, now.
+grant@unabridgedsoftware.com.
+All right, now.
00:15:26.800 --> 00:15:32.079
Let's see about this...
-00:15:32.079 --> 00:15:33.680
-This is up online, so if you want to
-
-00:15:33.680 --> 00:15:35.120
-listen to my
+00:15:32.079 --> 00:15:34.316
+This is up online, so if you
+want to listen
-00:15:35.120 --> 00:15:39.199
-college band's album from 20 years ago,
+00:15:34.316 --> 00:15:39.199
+to my college band's album from
+20 years ago,
00:15:39.199 --> 00:15:43.040
here it is: Cassiopeia Basement Days.
-00:15:43.040 --> 00:15:47.680
-Whoops. I made this art in Krita. You can
+00:15:43.040 --> 00:15:46.887
+Whoops. I made this art in Krita.
-00:15:47.680 --> 00:15:51.199
-press play. You can skip around.
+00:15:46.887 --> 00:15:51.199
+You can press play. You can skip around.
00:15:51.199 --> 00:15:55.040
I do have the playlist up here too.
@@ -1134,8 +1057,6 @@ I do have the playlist up here too.
00:15:55.040 --> 00:15:58.560
So yeah, thanks for listening.
-00:15:58.560 --> 00:16:00.880
-I hope you enjoyed it, and enjoy the rest
-
-00:16:00.880 --> 00:16:07.360
-of EmacsConf. Goodbye!
+00:15:58.560 --> 00:16:07.360
+I hope you enjoyed it, and enjoy the
+rest of EmacsConf. Goodbye!
diff --git a/2020/subtitles/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--questions--grant-shangreaux.vtt b/2020/subtitles/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--questions--grant-shangreaux.vtt
index e5dfd2f7..4d7bfede 100644
--- a/2020/subtitles/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--questions--grant-shangreaux.vtt
+++ b/2020/subtitles/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--questions--grant-shangreaux.vtt
@@ -1,25 +1,18 @@
WEBVTT
-00:00:03.360 --> 00:00:05.359
+00:00:03.360 --> 00:00:07.440
So first question, what does
-
-00:00:05.359 --> 00:00:07.440
Bard Bivou(m)acs mean? Good question.
-00:00:07.440 --> 00:00:09.679
+00:00:07.440 --> 00:00:10.800
In one version of my talk, I spent too
-
-00:00:09.679 --> 00:00:10.800
long explaining it,
00:00:10.800 --> 00:00:14.559
and decided to cut it out.
-00:00:14.559 --> 00:00:17.920
-It's basically a bad pun on
-
-00:00:17.920 --> 00:00:20.960
-band camp.
+00:00:14.559 --> 00:00:20.960
+It's basically a bad pun on band camp.
00:00:20.960 --> 00:00:22.480
A bivouac--I don't even know if I'm
@@ -45,50 +38,44 @@ I'll probably find a different name for
00:00:42.879 --> 00:00:45.039
it but I liked that "bivoaucs,"
-00:00:45.039 --> 00:00:47.520
+00:00:45.039 --> 00:00:48.719
if you stick an m in there, it becomes
-
-00:00:47.520 --> 00:00:48.719
Bivou(m)acs.
-00:00:48.719 --> 00:00:56.239
+00:00:48.719 --> 00:01:00.160
It's kind of like editor macros for
-
-00:00:56.239 --> 00:01:00.160
generating some HTML.
-00:01:00.160 --> 00:01:04.000
-Yes, it is confusing, chatting on IRC
-
-00:01:04.000 --> 00:01:05.920
-at the same time.
+00:01:00.160 --> 00:01:07.782
+Yes, it is confusing, chatting on IRC at
+the same time. Great question.
-00:01:05.920 --> 00:01:09.520
-Great question. (Amin: Grant,
+00:01:07.782 --> 00:01:11.398
+(Amin: Grant, so right now, you're
+sharing your screen.
-00:01:09.520 --> 00:01:10.880
-so right now, you're sharing your
+00:01:11.398 --> 00:01:14.479
+Are you planning on showing something
+with it, or for example,
-00:01:10.880 --> 00:01:12.880
-screen. Are you planning on
+00:01:14.479 --> 00:01:16.036
+should I maximize you?)
-00:01:12.880 --> 00:01:14.479
-showing something with it, or for example,
-
-00:01:14.479 --> 00:01:16.880
-should I maximize you?) I don't know.
+00:01:16.036 --> 00:01:20.400
+I don't know. I can turn it off for now.
+Okay.
-00:01:16.880 --> 00:01:20.400
-I can turn it off for now. Okay.
+00:01:20.400 --> 00:01:22.299
+(Amin: You can turn on the webcam.)
-00:01:20.400 --> 00:01:22.880
-(Amin: You can turn on the webcam.) Yeah, okay.
+00:01:22.299 --> 00:01:22.880
+Yeah, okay.
-00:01:22.880 --> 00:01:24.240
-(Amin: I'll maximize your
+00:01:22.880 --> 00:01:25.694
+(Amin: I'll maximize your webcam.)
-00:01:24.240 --> 00:01:28.240
-webcam.) Okay, thanks.
+00:01:25.694 --> 00:01:28.240
+Okay, thanks.
00:01:28.240 --> 00:01:30.000
I'll get to the answer for my color
@@ -96,14 +83,11 @@ I'll get to the answer for my color
00:01:30.000 --> 00:01:31.360
theme here in a bit in IRC.
-00:01:31.360 --> 00:01:34.640
-Next question on
+00:01:31.360 --> 00:01:35.105
+Next question on the Etherpad,
-00:01:34.640 --> 00:01:37.280
-the Etherpad, does this metadata
-
-00:01:37.280 --> 00:01:38.479
-workflow also support
+00:01:35.105 --> 00:01:38.479
+does this metadata workflow also support
00:01:38.479 --> 00:01:41.360
unsynchronized lyrics within ID3 tags,
@@ -129,20 +113,17 @@ figure out how to do mass tag editing.
00:01:55.360 --> 00:01:56.399
And that was like...
-00:01:56.399 --> 00:01:58.479
+00:01:56.399 --> 00:01:59.600
It wasn't very intuitive, like I said,
-
-00:01:58.479 --> 00:01:59.600
with EMMS.
-00:01:59.600 --> 00:02:01.840
+00:01:59.600 --> 00:02:03.040
I think EMMS is really great, but its
-
-00:02:01.840 --> 00:02:03.040
interface is huge.
00:02:03.040 --> 00:02:07.040
-like if you do M-x and type emms, you get
+like if you do M-x and type emms,
+you get,
00:02:07.040 --> 00:02:10.160
I don't know, 270-some candidates.
@@ -150,92 +131,72 @@ I don't know, 270-some candidates.
00:02:10.160 --> 00:02:13.200
There's a lot of functions going on.
-00:02:13.200 --> 00:02:14.319
-I basically found the
-
-00:02:14.319 --> 00:02:16.319
-features that I needed to get this
+00:02:13.200 --> 00:02:18.879
+I basically found the features that I
+needed to get this workflow working.
-00:02:16.319 --> 00:02:18.879
-workflow working.
-
-00:02:18.879 --> 00:02:21.040
+00:02:18.879 --> 00:02:22.160
I would guess that you probably can do
-
-00:02:21.040 --> 00:02:22.160
it, and if you don't,
-00:02:22.160 --> 00:02:24.080
-if you can't do it out of the box, I
+00:02:22.160 --> 00:02:24.026
+if you can't do it out of the box,
-00:02:24.080 --> 00:02:28.160
-think you could script EMMS to do that.
+00:02:24.026 --> 00:02:28.160
+I think you could script EMMS
+to do that.
-00:02:28.160 --> 00:02:29.840
+00:02:28.160 --> 00:02:33.268
I'd like to know more, and I'm certainly
+going to be investigating it.
-00:02:29.840 --> 00:02:31.840
-going to be
-
-00:02:31.840 --> 00:02:35.200
-investigating it. I will try and post my
-
-00:02:35.200 --> 00:02:39.519
-findings somewhere online.
+00:02:33.268 --> 00:02:39.519
+I will try and post my findings
+somewhere online.
00:02:39.519 --> 00:02:42.080
Is it possible to import batch metadata?
-00:02:42.080 --> 00:02:43.920
-I'm not sure. I would guess
+00:02:42.080 --> 00:02:46.496
+I'm not sure. I would guess yes is the
+answer.
-00:02:43.920 --> 00:02:49.360
-yes is the answer. EMMS can connect to
+00:02:46.496 --> 00:02:50.712
+EMMS can connect to metadata services.
-00:02:49.360 --> 00:02:51.840
-metadata services. I haven't done
-
-00:02:51.840 --> 00:02:53.040
-that because I was just
+00:02:50.712 --> 00:02:53.040
+I haven't done that because I was just
00:02:53.040 --> 00:02:56.959
using audio files that I created myself.
-00:02:56.959 --> 00:03:00.400
-I know that on the back end, it calls out to
-
-00:03:00.400 --> 00:03:02.319
-shell programs for tagging things.
+00:02:56.959 --> 00:03:00.165
+I know that on the back end, it calls out
-00:03:02.319 --> 00:03:04.560
-there's a lot of different options that can
+00:03:00.165 --> 00:03:02.319
+to shell programs for tagging things.
-00:03:04.560 --> 00:03:08.000
-shell out too. I was using the
+00:03:02.319 --> 00:03:06.165
+There's a lot of different options that can
+shell out too.
-00:03:08.000 --> 00:03:10.319
-the vorbis tools to tag the particular
+00:03:06.165 --> 00:03:12.239
+I was using the vorbis tools to tag the
+particular files I was working with.
-00:03:10.319 --> 00:03:12.239
-files I was working with.
-
-00:03:12.239 --> 00:03:15.120
+00:03:12.239 --> 00:03:15.840
You can also use tiny tag, and there's
-
-00:03:15.120 --> 00:03:15.840
some other...
-00:03:15.840 --> 00:03:17.840
-That might be the python library. I can't
+00:03:15.840 --> 00:03:17.498
+That might be the python library.
-00:03:17.840 --> 00:03:19.120
-remember. There's two other libraries
+00:03:17.498 --> 00:03:20.971
+I can't remember. There's two other
+libraries that I can shell out to
-00:03:19.120 --> 00:03:21.120
-that I can shell out to for
-
-00:03:21.120 --> 00:03:24.400
-doing metadata.
+00:03:20.971 --> 00:03:24.400
+for doing metadata.
00:03:24.400 --> 00:03:26.400
My current workflow for tagging music is
@@ -243,29 +204,27 @@ My current workflow for tagging music is
00:03:26.400 --> 00:03:29.040
to first apply replay gain in fubar 2000,
-00:03:29.040 --> 00:03:32.159
-fix egregious mistakes, use beats to
-
-00:03:32.159 --> 00:03:34.560
-apply metadata from music brains,
+00:03:29.040 --> 00:03:31.119
+fix egregious mistakes,
-00:03:34.560 --> 00:03:36.640
-or discogs, go over remaining albums with
+00:03:31.119 --> 00:03:35.118
+use beats to apply metadata from music
+brains or discogs,
-00:03:36.640 --> 00:03:38.400
-fubar 2000 again.
+00:03:35.118 --> 00:03:38.400
+go over remaining albums with fubar 2000
+again.
-00:03:38.400 --> 00:03:40.080
-Is there a chance textual tagging could
+00:03:38.400 --> 00:03:43.280
+Is there a chance textual tagging
+could allow doing it all in one program?
-00:03:40.080 --> 00:03:43.280
-allow doing it all in one program?
-
-00:03:43.280 --> 00:03:45.120
+00:03:43.280 --> 00:03:46.400
Have I experimented with mass tag
+update queries?
-00:03:45.120 --> 00:03:47.280
-update queries? I have not.
+00:03:46.400 --> 00:03:47.280
+I have not.
00:03:47.280 --> 00:03:49.120
Again, I was just doing this workflow,
@@ -276,11 +235,11 @@ taking raw files with no tags and doing that.
00:03:54.799 --> 00:03:58.159
I believe because it calls out to
-00:03:58.159 --> 00:04:01.519
-the programs in the back end, I'm sure
+00:03:58.159 --> 00:04:00.811
+the programs in the back end,
-00:04:01.519 --> 00:04:03.040
-you could work that out.
+00:04:00.811 --> 00:04:03.040
+I'm sure you could work that out.
00:04:03.040 --> 00:04:06.159
I think EMMS would benefit from
@@ -294,11 +253,11 @@ we work with text, and being able
00:04:11.280 --> 00:04:14.000
to use Emacs as a front end for those
-00:04:14.000 --> 00:04:16.799
-updates would be really fantastic. So
+00:04:14.000 --> 00:04:16.647
+updates would be really fantastic.
-00:04:16.799 --> 00:04:18.560
-really, it's just a matter of
+00:04:16.647 --> 00:04:18.560
+So really, it's just a matter of
00:04:18.560 --> 00:04:22.720
writing the interface to the external tool.
@@ -306,59 +265,54 @@ writing the interface to the external tool.
00:04:22.720 --> 00:04:24.560
Is there a link to some info expanding
-00:04:24.560 --> 00:04:26.840
+00:04:24.560 --> 00:04:28.479
philosophy of how to compensate
-
-00:04:26.840 --> 00:04:28.479
musicians?
00:04:28.479 --> 00:04:31.199
No, I don't really have a lot of
-00:04:31.199 --> 00:04:32.720
-philosophy around that. I guess the first
+00:04:31.199 --> 00:04:32.052
+philosophy around that.
-00:04:32.720 --> 00:04:33.919
-thing I could say would be
+00:04:32.052 --> 00:04:33.919
+I guess the first thing
+I could say would be
-00:04:33.919 --> 00:04:36.800
-something like a universal income. I feel
+00:04:33.919 --> 00:04:36.378
+something like a universal income.
-00:04:36.800 --> 00:04:38.960
-like that would solve a lot of problems,
+00:04:36.378 --> 00:04:38.960
+I feel like that would solve
+a lot of problems,
-00:04:38.960 --> 00:04:42.000
-if musicians could just be musicians and
+00:04:38.960 --> 00:04:41.772
+if musicians could just be musicians
-00:04:42.000 --> 00:04:45.199
-not have to worry about their pay. I will
+00:04:41.772 --> 00:04:44.742
+and not have to worry about their pay.
-00:04:45.199 --> 00:04:46.240
-think about it more.
+00:04:44.742 --> 00:04:46.240
+I will think about it more.
-00:04:46.240 --> 00:04:48.720
-This is one of my first
+00:04:46.240 --> 00:04:52.015
+This is one of my first forays into
+getting public with some of these ideas,
-00:04:48.720 --> 00:04:50.160
-forays into getting
+00:04:52.015 --> 00:04:53.360
+so I will try to do more
-00:04:50.160 --> 00:04:52.240
-public with some of these ideas, so I
+00:04:53.360 --> 00:04:55.187
+and let the community know.
-00:04:52.240 --> 00:04:53.360
-will try to do more
-
-00:04:53.360 --> 00:04:55.840
-and let the community know. What Emacs
-
-00:04:55.840 --> 00:04:57.199
-theme am I using?
+00:04:55.187 --> 00:04:57.199
+What Emacs theme am I using?
00:04:57.199 --> 00:05:02.240
Can't remember. It's one of the Kaolin themes.
00:05:02.240 --> 00:05:05.680
-I think it was Aurora or
+I think it was Aurora
00:05:05.680 --> 00:05:09.120
or Bubble Gum, maybe, but the
@@ -369,35 +323,26 @@ Kaolin themes are nice. I recommend them.
00:05:12.880 --> 00:05:16.000
Not using Doom Emacs, Doom mode line though.
-00:05:16.000 --> 00:05:18.880
-It's very pretty. SVG support built into
+00:05:16.000 --> 00:05:17.296
+It's very pretty.
-00:05:18.880 --> 00:05:20.080
-Emacs?
+00:05:17.296 --> 00:05:20.080
+SVG support built into Emacs?
-00:05:20.080 --> 00:05:23.600
-I'm using Emacs 27.1, and yes, SVG support
+00:05:20.080 --> 00:05:25.520
+I'm using Emacs 27.1, and yes, SVG
+support is built in.
-00:05:23.600 --> 00:05:25.520
-is built in.
-
-00:05:25.520 --> 00:05:28.800
+00:05:25.520 --> 00:05:30.639
I may have had to compile it with some
-
-00:05:28.800 --> 00:05:30.639
Cairo support.
00:05:30.639 --> 00:05:33.840
I don't remember for sure.
-00:05:33.840 --> 00:05:36.720
-But yes, you can even take screenshots of
-
-00:05:36.720 --> 00:05:38.080
-your Emacs
-
-00:05:38.080 --> 00:05:41.199
-from within Emacs in SVG.
+00:05:33.840 --> 00:05:41.199
+But yes, you can even take screenshots
+of your Emacs from within Emacs, in SVG.
00:05:41.199 --> 00:05:44.320
It's pretty great.
@@ -429,62 +374,48 @@ I'll start looking through IRC.
00:06:05.440 --> 00:06:09.680
(Amin: And keep an eye on the pad too.)
-00:06:09.680 --> 00:06:13.440
-Thank you all for listening and for
-
-00:06:13.440 --> 00:06:19.440
-enjoying the talk. I'm glad it turned out well.
-
-00:06:19.440 --> 00:06:22.800
-Awesome. Yeah, it's been fun
+00:06:09.680 --> 00:06:12.688
+Thank you all for listening
-00:06:22.800 --> 00:06:36.000
-so far.
+00:06:12.688 --> 00:06:19.440
+and for enjoying the talk. I'm glad it
+turned out well.
-00:06:36.000 --> 00:06:39.199
-How did I manage? I can post a
+00:06:19.440 --> 00:06:36.000
+Awesome. Yeah, it's been fun so far.
-00:06:39.199 --> 00:06:41.120
-snippet of that, or actually I can share
+00:06:36.000 --> 00:06:40.015
+How did I manage? I can post
+a snippet of that,
-00:06:41.120 --> 00:06:46.319
-my screen, can't I...
+00:06:40.015 --> 00:06:46.319
+or actually I can share my screen,
+can't I...
00:06:46.319 --> 00:06:49.599
Okay. I actually have it up right here.
-00:06:49.599 --> 00:06:51.840
+00:06:49.599 --> 00:06:53.440
So I think I got this from alphapapa, to
-
-00:06:51.840 --> 00:06:53.440
be honest.
00:06:53.440 --> 00:07:00.960
I define screenshot-svg.
-00:07:00.960 --> 00:07:03.680
+00:07:00.960 --> 00:07:04.960
It's an interactive command. Oh yeah,
-
-00:07:03.680 --> 00:07:04.960
there's alphapapa.
00:07:04.960 --> 00:07:08.560
Okay, there we go.
-00:07:08.560 --> 00:07:10.639
+00:07:08.560 --> 00:07:13.249
I would like to change this so that I
+can get it into the copy-paste buffer
-00:07:10.639 --> 00:07:11.599
-can get it into
-
-00:07:11.599 --> 00:07:14.000
-the copy-paste buffer so I don't
-
-00:07:14.000 --> 00:07:17.039
-have to copy the file in, but I haven't really
-
-00:07:17.039 --> 00:07:20.560
-hacked on it yet.
+00:07:13.249 --> 00:07:20.560
+so I don't have to copy the file in, but
+I haven't really hacked on it yet.
00:07:20.560 --> 00:07:24.400
Okay, org heading colors.
@@ -510,11 +441,11 @@ So the presentation is just a
00:07:45.120 --> 00:07:48.960
normal org file, right, so I have my headers,
-00:07:48.960 --> 00:07:50.639
-and the author--you can even stick your
+00:07:48.960 --> 00:07:50.466
+and the author--you can even stick
-00:07:50.639 --> 00:07:52.560
-email and other headers in there.
+00:07:50.466 --> 00:07:52.560
+your email and other headers in there.
00:07:52.560 --> 00:07:57.599
But there's a package called org-tree-slide.
@@ -522,14 +453,15 @@ But there's a package called org-tree-slide.
00:07:57.599 --> 00:08:01.440
Whoops, why is it not...
-00:08:01.440 --> 00:08:03.919
-I must have not required it. Good
+00:08:01.440 --> 00:08:03.618
+I must have not required it.
-00:08:03.919 --> 00:08:05.440
-question. (Amin: Grant,
+00:08:03.618 --> 00:08:04.594
+Good question.
-00:08:05.440 --> 00:08:09.599
-can you try sharing your screen maybe?)
+00:08:04.594 --> 00:08:09.599
+(Amin: Grant, can you try sharing your
+screen maybe?)
00:08:09.599 --> 00:08:13.199
Oh, is it not shared? I'm sorry.
@@ -543,14 +475,9 @@ There we go, should be coming up.
00:08:22.000 --> 00:08:26.720
(Amin: It's coming up. Yep, we see it.)
-00:08:26.720 --> 00:08:33.919
-Awesome.
-
-00:08:33.919 --> 00:08:37.599
-All right. Okay. I don't know why this
-
-00:08:37.599 --> 00:08:38.800
-isn't working.
+00:08:26.720 --> 00:08:38.800
+Awesome. All right. Okay. I don't know
+why this isn't working.
00:08:38.800 --> 00:08:56.080
It was working.
@@ -567,47 +494,38 @@ So, org-tree-slide.
00:09:09.760 --> 00:09:12.800
I don't know why it's not launching.
-00:09:12.800 --> 00:09:14.480
+00:09:12.800 --> 00:09:16.000
I thought that I had required it, but I
-
-00:09:14.480 --> 00:09:16.000
must not have.
-00:09:16.000 --> 00:09:26.959
-Maybe I'll try.
+00:09:16.000 --> 00:09:30.959
+Maybe I'll try. Okay.
-00:09:26.959 --> 00:09:30.959
-Okay.
-
-00:09:30.959 --> 00:09:33.040
+00:09:30.959 --> 00:09:34.560
So there we go. So org-tree-slide is a
-
-00:09:33.040 --> 00:09:34.560
way that basically uses
00:09:34.560 --> 00:09:38.880
narrowing and some kind of font tricks to...
-00:09:38.880 --> 00:09:41.680
-it changes your titles or your
-
-00:09:41.680 --> 00:09:42.640
-metadata into
+00:09:38.880 --> 00:09:42.640
+it changes your titles
+or your metadata into
00:09:42.640 --> 00:09:44.560
this banner for the title here,
00:09:44.560 --> 00:09:46.560
-and it automatically sets the faces for you.
+and it automatically sets the
+faces for you.
-00:09:46.560 --> 00:09:51.360
-You can customize that, of course. And then, as you
+00:09:46.560 --> 00:09:53.938
+You can customize that, of course. And
+then, as you go through the Org file,
-00:09:51.360 --> 00:09:55.279
-go through the Org file, you get these
-
-00:09:55.279 --> 00:09:59.600
-kind of nice animations and--
+00:09:53.938 --> 00:09:59.600
+you get these kind of nice animations
+and--
00:09:59.600 --> 00:10:04.160
what's it called--breadcrumbs up at the top.
@@ -615,29 +533,20 @@ what's it called--breadcrumbs up at the top.
00:10:04.160 --> 00:10:06.399
So org-tree-slide. I highly recommend it.
-00:10:06.399 --> 00:10:07.920
+00:10:06.399 --> 00:10:10.024
It's really nice because you can give
+your presentation and practice it,
-00:10:07.920 --> 00:10:09.600
-your presentation
-
-00:10:09.600 --> 00:10:10.880
-and practice it, and while you're
-
-00:10:10.880 --> 00:10:12.560
-practicing it, you can edit things as well,
-
-00:10:12.560 --> 00:10:13.760
-because it's still just
+00:10:10.024 --> 00:10:12.560
+and while you're practicing it, you can
+edit things as well,
-00:10:13.760 --> 00:10:16.160
-an Org document using narrowing, you know.
+00:10:12.560 --> 00:10:16.160
+because it's still just an Org document
+using narrowing, you know.
-00:10:16.160 --> 00:10:16.880
-It doesn't
-
-00:10:16.880 --> 00:10:20.079
-actually change anything.
+00:10:16.160 --> 00:10:20.079
+It doesn't actually change anything.
00:10:20.079 --> 00:10:24.079
Definitely recommend org-tree-slide mode.
@@ -654,34 +563,27 @@ Let's see.
00:10:39.519 --> 00:10:41.279
Okay, so I don't know if you can see this now,
-00:10:41.279 --> 00:10:43.839
+00:10:41.279 --> 00:10:49.360
but I'm actually viewing the SVG
-
-00:10:43.839 --> 00:10:49.360
screenshot that I took with Emacs.
-00:10:49.360 --> 00:10:51.920
+00:10:49.360 --> 00:10:52.720
See here's the source of it. So Emacs
-
-00:10:51.920 --> 00:10:52.720
made that.
00:10:52.720 --> 00:10:58.160
And here's the image.
-00:10:58.160 --> 00:10:59.600
+00:10:58.160 --> 00:11:01.570
It's cool because you can even do it
+again and again,
-00:10:59.600 --> 00:11:01.760
-again and again, and
-
-00:11:01.760 --> 00:11:05.360
-open more screenshots of screenshots.
+00:11:01.570 --> 00:11:05.360
+and open more screenshots of
+screenshots.
-00:11:05.360 --> 00:11:11.200
+00:11:05.360 --> 00:11:14.880
Yeah, definitely Emacsception.
-
-00:11:11.200 --> 00:11:14.880
Fun stuff.
00:11:14.880 --> 00:11:18.079
@@ -693,29 +595,28 @@ Heading colors? Oh, yeah. I talked about the
00:11:20.160 --> 00:11:24.800
themes. This is another Kaolin theme.
-00:11:24.800 --> 00:11:30.560
+00:11:24.800 --> 00:11:34.959
I think the one in the talk was
-
-00:11:30.560 --> 00:11:34.959
maybe this one, Aurora.
00:11:34.959 --> 00:11:36.560
Oh, here, there's something funny when
-00:11:36.560 --> 00:11:38.079
-you start org-tree-slide with a
+00:11:36.560 --> 00:11:37.785
+you start org-tree-slide
-00:11:38.079 --> 00:11:38.880
-different theme.
+00:11:37.785 --> 00:11:38.880
+with a different theme.
-00:11:38.880 --> 00:11:42.160
-This top header bar gets the faces from
+00:11:38.880 --> 00:11:41.823
+This top header bar gets the faces
-00:11:42.160 --> 00:11:44.000
-that previous theme. I have not
+00:11:41.823 --> 00:11:43.395
+from that previous theme.
-00:11:44.000 --> 00:11:47.760
-figured out how to fix that yet.
+00:11:43.395 --> 00:11:47.760
+I have not figured out how to
+fix that yet.
00:11:47.760 --> 00:11:49.200
Did I have to compile to get the
@@ -729,11 +630,12 @@ Yes, if I'm remembering correctly.
00:11:54.480 --> 00:11:58.399
I got Emacs 27. I'm not on a Mac.
-00:11:58.399 --> 00:12:02.079
-I saw alphapapa's comment on reddit, and then
+00:11:58.399 --> 00:12:01.424
+I saw alphapapa's comment on reddit,
-00:12:02.079 --> 00:12:08.839
-I recompiled it with Cairo support.
+00:12:01.424 --> 00:12:08.839
+and then I recompiled it with Cairo
+support.
00:12:08.839 --> 00:12:18.000
Yes.
@@ -744,70 +646,56 @@ Okay, lots of good conversation on here.
00:12:21.920 --> 00:12:25.839
Yep, I have like one or two more minutes.
-00:12:25.839 --> 00:12:31.680
-Okay
-
-00:12:31.680 --> 00:12:34.240
-I guess while I'm here, I might as
-
-00:12:34.240 --> 00:12:35.519
-well say thank you to
+00:12:25.839 --> 00:12:34.240
+Okay. I guess while I'm here, I might as
-00:12:35.519 --> 00:12:38.959
-the organizers. I really appreciate
+00:12:34.240 --> 00:12:36.993
+well say thank you to the organizers.
-00:12:38.959 --> 00:12:40.320
-everybody's work on this.
+00:12:36.993 --> 00:12:40.320
+I really appreciate everybody's
+work on this.
00:12:40.320 --> 00:12:42.720
It's fun to be a part of this community.
-00:12:42.720 --> 00:12:45.279
+00:12:42.720 --> 00:12:45.929
I'm enjoying the other talks I've seen
+so far today,
-00:12:45.279 --> 00:12:47.279
-so far today, and I'm looking forward to
-
-00:12:47.279 --> 00:12:48.560
+00:12:45.929 --> 00:12:48.560
+and I'm looking forward to
to the rest.
-00:12:48.560 --> 00:12:50.480
-It's really interesting, just from
-
-00:12:50.480 --> 00:12:52.720
-being on Emacs in IRC
+00:12:48.560 --> 00:12:53.570
+It's really interesting, just from being
+on Emacs in IRC for a few months,
-00:12:52.720 --> 00:12:54.720
-for a few months, I've already connected
+00:12:53.570 --> 00:12:54.720
+I've already connected
00:12:54.720 --> 00:12:56.959
with a lot of interesting people
-00:12:56.959 --> 00:13:00.720
+00:12:56.959 --> 00:13:04.079
and have a lot of cool connections
-
-00:13:00.720 --> 00:13:04.079
already.
-00:13:04.079 --> 00:13:05.519
+00:13:04.079 --> 00:13:07.519
(Amin: Thank you for being a part of the
-
-00:13:05.519 --> 00:13:07.519
community, Grant.)
-00:13:07.519 --> 00:13:09.680
-That's good to be here. I have another
+00:13:07.519 --> 00:13:08.883
+That's good to be here.
-00:13:09.680 --> 00:13:16.560
-talk tomorrow as well.
+00:13:08.883 --> 00:13:16.560
+I have another talk tomorrow as well.
00:13:16.560 --> 00:13:18.399
Oh, thanks for everyone in the Etherpad
-00:13:18.399 --> 00:13:20.160
+00:13:18.399 --> 00:13:21.680
for putting more comments on these
-
-00:13:20.160 --> 00:13:21.680
questions here
00:13:21.680 --> 00:13:29.360
@@ -822,14 +710,10 @@ that we have for the Q&A.
00:13:33.040 --> 00:13:36.720
Okay. Thank you again so much, Grant,
-00:13:36.720 --> 00:13:38.480
+00:13:36.720 --> 00:13:39.920
for your awesome talk and for popping in
-
-00:13:38.480 --> 00:13:39.920
for questions.)
-00:13:39.920 --> 00:13:42.000
+00:13:39.920 --> 00:13:46.800
Yeah, thanks again for hosting. See you
-
-00:13:42.000 --> 00:13:46.800
later. Cheers!
diff --git a/2020/subtitles/emacsconf-2020--06-trivial-emacs-kits--corwin-brust.vtt b/2020/subtitles/emacsconf-2020--06-trivial-emacs-kits--corwin-brust.vtt
index b1659d7e..588cf43a 100644
--- a/2020/subtitles/emacsconf-2020--06-trivial-emacs-kits--corwin-brust.vtt
+++ b/2020/subtitles/emacsconf-2020--06-trivial-emacs-kits--corwin-brust.vtt
@@ -1,67 +1,56 @@
WEBVTT
-00:00:00.399 --> 00:00:03.280
-My name is Corwin Brust and I
+00:00:00.399 --> 00:00:02.683
+My name is Corwin Brust
-00:00:03.280 --> 00:00:06.240
-will be talking about getting started
+00:00:02.683 --> 00:00:08.960
+and I will be talking about getting
+started with Emacs today.
-00:00:06.240 --> 00:00:08.960
-with Emacs today.
-
-00:00:08.960 --> 00:00:11.200
+00:00:08.960 --> 00:00:11.448
I have been an Emacs user for a long
+time.
-00:00:11.200 --> 00:00:13.040
-time. First of all, thanks and a huge
-
-00:00:13.040 --> 00:00:15.360
-welcome to the conference
-
-00:00:15.360 --> 00:00:18.400
-from me and
+00:00:11.448 --> 00:00:15.360
+First of all, thanks and a huge welcome
+to the conference
-00:00:18.400 --> 00:00:22.400
-and on behalf
+00:00:15.360 --> 00:00:22.400
+from me and and on behalf
-00:00:22.400 --> 00:00:24.720
-and back to the other people that
+00:00:22.400 --> 00:00:24.368
+and back to the other people
-00:00:24.720 --> 00:00:26.080
-have been helping to organize.
+00:00:24.368 --> 00:00:26.080
+that have been helping to organize.
00:00:26.080 --> 00:00:30.480
It's been amazing just to be involved
-00:00:30.480 --> 00:00:32.480
+00:00:30.480 --> 00:00:36.399
with that and just, kind of, see
-
-00:00:32.480 --> 00:00:36.399
backstage.
-00:00:36.399 --> 00:00:39.680
+00:00:36.399 --> 00:00:42.281
So I've used a lot of different editors
+in my time.
-00:00:39.680 --> 00:00:42.960
-in my time. That's
-
-00:00:42.960 --> 00:00:45.440
-about 25 years as a professional
-
-00:00:45.440 --> 00:00:52.399
+00:00:42.281 --> 00:00:52.399
+That's about 25 years as a professional
software engineer.
-00:00:52.399 --> 00:00:53.920
+00:00:52.399 --> 00:00:54.247
And most of that time I've been using
+Emacs.
-00:00:53.920 --> 00:00:56.160
-Emacs. I'll talk a little bit in a minute
+00:00:54.247 --> 00:00:56.160
+I'll talk a little bit in a minute
00:00:56.160 --> 00:01:00.960
(if I can ever find my slides)
00:01:00.960 --> 00:01:04.479
-about how I got into Emacs
+about how I got into Emacs,
00:01:04.479 --> 00:01:07.200
but I think if you've used Emacs and a
@@ -69,56 +58,45 @@ but I think if you've used Emacs and a
00:01:07.200 --> 00:01:10.240
lot of other editors for a long time,
-00:01:10.240 --> 00:01:15.200
-something that you notice right away is that
+00:01:10.240 --> 00:01:14.410
+something that you notice right away
-00:01:15.200 --> 00:01:17.520
-you get good with it in a way that stays
+00:01:14.410 --> 00:01:18.560
+is that you get good with it in a way
+that stays meaningful.
-00:01:17.520 --> 00:01:18.560
-meaningful.
-
-00:01:18.560 --> 00:01:20.799
+00:01:18.560 --> 00:01:24.199
You learn new things. Those things
+stick with you.
-00:01:20.799 --> 00:01:27.600
-stick with you. You learn how to
-
-00:01:27.600 --> 00:01:30.720
-make it do new tricks and then
-
-00:01:30.720 --> 00:01:33.759
-keep doing those tricks.
+00:01:24.199 --> 00:01:33.759
+You learn how to make it do new tricks
+and then keep doing those tricks.
-00:01:33.759 --> 00:01:36.799
+00:01:33.759 --> 00:01:39.439
I want to mention that this
-
-00:01:36.799 --> 00:01:39.439
conference--oops,
-00:01:39.439 --> 00:01:41.439
-this talk isn't about
-
-00:01:41.439 --> 00:01:45.600
-how to adjust your
+00:01:39.439 --> 00:01:44.829
+this talk isn't about how to adjust
-00:01:45.600 --> 00:01:47.520
-configuration specifically. I don't have
+00:01:44.829 --> 00:01:46.802
+your configuration specifically.
-00:01:47.520 --> 00:01:50.000
-a bunch of good code samples in here.
+00:01:46.802 --> 00:01:50.000
+I don't have a bunch of good code
+samples in here.
-00:01:50.000 --> 00:01:51.520
+00:01:50.000 --> 00:01:52.451
There are other great talks at the
+conference,
-00:01:51.520 --> 00:01:54.399
-conference, particularly Andrew's,
-
-00:01:54.399 --> 00:01:57.600
-that I looked at, that looked
+00:01:52.451 --> 00:01:56.411
+particularly Andrew's, that I looked at,
-00:01:57.600 --> 00:01:59.920
-like they might be more aimed at that
+00:01:56.411 --> 00:01:59.920
+that looked like they might be more
+aimed at that
00:01:59.920 --> 00:02:02.240
"hey, I'm just getting started with Emacs,
@@ -126,59 +104,53 @@ like they might be more aimed at that
00:02:02.240 --> 00:02:05.280
what are some things to try to make
-00:02:05.280 --> 00:02:07.200
-it more comfortable for me starting?" This
+00:02:05.280 --> 00:02:07.017
+it more comfortable for me starting?"
-00:02:07.200 --> 00:02:08.879
-is about how to think about the problem
+00:02:07.017 --> 00:02:09.759
+This is about how to think about the
+problem space.
-00:02:08.879 --> 00:02:09.759
-space.
+00:02:09.759 --> 00:02:13.337
+Hopefully, a good warm up as we start
+thinking about
-00:02:09.759 --> 00:02:12.959
-Hopefully, a good warm up as we
+00:02:13.337 --> 00:02:17.200
+some of the lightning talks a little
+later on.
-00:02:12.959 --> 00:02:14.080
-start thinking about some of the
+00:02:17.200 --> 00:02:19.835
+I'm just gonna quickly make sure
-00:02:14.080 --> 00:02:17.200
-lightning talks a little later on.
+00:02:19.835 --> 00:02:21.789
+I can see my IRC buffer in case
-00:02:17.200 --> 00:02:20.000
-I'm just gonna quickly make sure I
-
-00:02:20.000 --> 00:02:22.400
-can see my IRC buffer in case I run into
-
-00:02:22.400 --> 00:02:24.080
-time. I didn't get my stopwatch started
-
-00:02:24.080 --> 00:02:25.680
-for this one.
+00:02:21.789 --> 00:02:25.680
+I run into time. I didn't get my
+stopwatch started for this one.
00:02:25.680 --> 00:02:29.680
So all right, let's dive in.
-00:02:29.680 --> 00:02:32.879
-We assume that we want to install
-
-00:02:32.879 --> 00:02:33.840
-packages
+00:02:29.680 --> 00:02:33.840
+We assume that we want to
+install packages
-00:02:33.840 --> 00:02:36.560
-and maybe configure some features. This
+00:02:33.840 --> 00:02:36.281
+and maybe configure some features.
-00:02:36.560 --> 00:02:38.319
-is particularly from the perspective of
+00:02:36.281 --> 00:02:38.319
+This is particularly from the
+perspective of
00:02:38.319 --> 00:02:39.120
where we're working
-00:02:39.120 --> 00:02:40.800
-with a bunch of people on a team and we
+00:02:39.120 --> 00:02:40.541
+with a bunch of people on a team
-00:02:40.800 --> 00:02:42.160
-want to get something done.
+00:02:40.541 --> 00:02:42.160
+and we want to get something done.
00:02:42.160 --> 00:02:44.800
Some of us probably already have mature
@@ -186,104 +158,81 @@ Some of us probably already have mature
00:02:44.800 --> 00:02:46.560
Emacs workflows.
-00:02:46.560 --> 00:02:49.280
+00:02:46.560 --> 00:02:53.519
Others are installing it for the first
-
-00:02:49.280 --> 00:02:53.519
time.
-00:02:53.519 --> 00:02:56.879
-So the first question is, you know,
-
-00:02:56.879 --> 00:02:59.280
-in that context: what's the value
-
-00:02:59.280 --> 00:03:00.879
-proposition? Why should I mess with my
+00:02:53.519 --> 00:02:57.889
+So the first question is, you know, in
+that context:
-00:03:00.879 --> 00:03:02.840
-machine, my mature Emacs
+00:02:57.889 --> 00:02:59.784
+what's the value proposition?
-00:03:02.840 --> 00:03:05.599
-configuration, and impose my
+00:02:59.784 --> 00:03:01.532
+Why should I mess with my machine,
-00:03:05.599 --> 00:03:07.440
-ideas over the way somebody else is
+00:03:01.532 --> 00:03:04.219
+my mature Emacs configuration,
-00:03:07.440 --> 00:03:10.239
-learning Emacs? Well,
+00:03:04.219 --> 00:03:09.815
+and impose my ideas over the way
+somebody else is learning Emacs?
-00:03:10.239 --> 00:03:12.800
-it can be.. I'm off my slides here a
+00:03:09.815 --> 00:03:13.840
+Well, it can be.. I'm off my slides here
+a little bit.
-00:03:12.800 --> 00:03:13.840
-little bit.
+00:03:13.840 --> 00:03:16.959
+It can be a little bit tricky
-00:03:13.840 --> 00:03:16.400
-It can be a little bit
-
-00:03:16.400 --> 00:03:16.959
-tricky
-
-00:03:16.959 --> 00:03:20.400
+00:03:16.959 --> 00:03:21.440
to learn Emacs. One thing that
-
-00:03:20.400 --> 00:03:21.440
helps us a lot
00:03:21.440 --> 00:03:24.720
is if people that we're working with
-00:03:24.720 --> 00:03:26.239
+00:03:24.720 --> 00:03:27.301
can tell us, kinda, keystroke for
+keystroke at times,
-00:03:26.239 --> 00:03:28.080
-keystroke at times, what to do and
-
-00:03:28.080 --> 00:03:30.480
-explain what everything is doing.
-
-00:03:30.480 --> 00:03:32.400
-Using the same packages can really
-
-00:03:32.400 --> 00:03:35.840
-help us working together on a project.
+00:03:27.301 --> 00:03:30.480
+what to do and explain what everything
+is doing.
-00:03:35.840 --> 00:03:39.840
-Speaking from my personal
+00:03:30.480 --> 00:03:35.840
+Using the same packages can really help
+us working together on a project.
-00:03:39.840 --> 00:03:40.720
-experience,
+00:03:35.840 --> 00:03:40.720
+Speaking from my personal experience,
00:03:40.720 --> 00:03:42.959
it took me decades to get to the point
-00:03:42.959 --> 00:03:45.040
-where I was excited to program in Emacs
+00:03:42.959 --> 00:03:45.226
+where I was excited to program
+in Emacs Lisp.
-00:03:45.040 --> 00:03:46.720
-Lisp. I've programmed in a lot of programming
-
-00:03:46.720 --> 00:03:47.840
+00:03:45.226 --> 00:03:47.840
+I've programmed in a lot of programming
languages,
-00:03:47.840 --> 00:03:51.200
-but Lisp wasn't on my list. I looked at
-
-00:03:51.200 --> 00:03:53.680
-my config that I was copy-pasting around
+00:03:47.840 --> 00:03:50.252
+but Lisp wasn't on my list.
-00:03:53.680 --> 00:03:56.319
-from generation after generation of
+00:03:50.252 --> 00:03:53.680
+I looked at my config that I was
+copy-pasting around
-00:03:56.319 --> 00:03:57.519
-.emacs file or
+00:03:53.680 --> 00:03:57.279
+from generation after generation of
+.emacs file,
-00:03:57.519 --> 00:03:59.519
-recrafting it from hand and from Internet
-
-00:03:59.519 --> 00:04:00.799
-searches,
+00:03:57.279 --> 00:04:00.799
+or recrafting it from hand and from
+Internet searches,
00:04:00.799 --> 00:04:03.519
to get the things that I needed when
@@ -294,230 +243,170 @@ I would quickly go install Emacs at some
00:04:05.680 --> 00:04:07.680
new job or contract,
-00:04:07.680 --> 00:04:10.959
-and
-
-00:04:10.959 --> 00:04:13.680
-be able to to quickly get through that
-
-00:04:13.680 --> 00:04:15.280
-workflow that caused me to install the
-
-00:04:15.280 --> 00:04:17.440
-program.
-
-00:04:17.440 --> 00:04:20.560
-You know, just
+00:04:07.680 --> 00:04:14.016
+and be able to to quickly get through
+that workflow
-00:04:20.560 --> 00:04:23.440
-little simple one-liners that that
+00:04:14.016 --> 00:04:17.440
+that caused me to install the program.
-00:04:23.440 --> 00:04:25.199
-got committed to memory over decades
+00:04:17.440 --> 00:04:24.049
+You know, just little simple one-liners
+that got committed to memory
-00:04:25.199 --> 00:04:27.120
-eventually just led me to a sort of "hey what's going on
+00:04:24.049 --> 00:04:27.675
+over decades eventually just led me to a
+sort of "hey what's going on here."
-00:04:27.120 --> 00:04:28.880
-here." And I credit
-
-00:04:28.880 --> 00:04:31.680
-Jeff Goff, my good friend who died
-
-00:04:31.680 --> 00:04:33.520
-earlier in 2020,
+00:04:27.675 --> 00:04:33.520
+And I credit Jeff Goff, my good friend
+who died earlier in 2020,
00:04:33.520 --> 00:04:37.759
for my lifelong love of Emacs.
00:04:37.759 --> 00:04:39.280
-Perhaps EriK and I will talk about that
+Perhaps Erik and I will talk about that
-00:04:39.280 --> 00:04:40.800
+00:04:39.280 --> 00:04:42.000
a little bit more in another talk we
+have scheduled,
-00:04:40.800 --> 00:04:41.360
-have
-
-00:04:41.360 --> 00:04:43.280
-scheduled, but Jeff was a huge
+00:04:42.000 --> 00:04:44.400
+but Jeff was a huge influence on us
-00:04:43.280 --> 00:04:44.400
-influenceo on us
+00:04:44.400 --> 00:04:46.027
+in a number of ways,
-00:04:44.400 --> 00:04:47.280
-in a number of ways and a huge
+00:04:46.027 --> 00:04:47.732
+and a huge contributor
-00:04:47.280 --> 00:04:48.720
-contributor to the Raku programming
-
-00:04:48.720 --> 00:04:50.720
-language
-
-00:04:50.720 --> 00:04:54.840
+00:04:47.732 --> 00:04:54.840
+to the Raku programming language,
which is very cool.
-00:04:54.840 --> 00:04:58.880
-So, understanding how
-
-00:04:58.880 --> 00:05:01.039
-to make a good decision about splitting
+00:04:54.840 --> 00:05:00.153
+So, understanding how to make
+a good decision
-00:05:01.039 --> 00:05:03.120
-up configuration in a way to share it
+00:05:00.153 --> 00:05:03.680
+about splitting up configuration in a
+way to share it across
-00:05:03.120 --> 00:05:03.680
-across
-
-00:05:03.680 --> 00:05:05.600
+00:05:03.680 --> 00:05:06.292
people with really different uses of
+Emacs...
-00:05:05.600 --> 00:05:07.600
-Emacs... That's actually a
-
-00:05:07.600 --> 00:05:09.360
-complicated topic and I want to
+00:05:06.292 --> 00:05:08.546
+That's actually a complicated topic
-00:05:09.360 --> 00:05:11.039
-sort of back off and stare at it for a
+00:05:08.546 --> 00:05:12.639
+and I want to sort of back off and stare
+at it for a second.
-00:05:11.039 --> 00:05:12.639
-second.
-
-00:05:12.639 --> 00:05:15.840
+00:05:12.639 --> 00:05:18.720
I think Emacs is about people, so that
-
-00:05:15.840 --> 00:05:18.720
means it's about community.
-00:05:18.720 --> 00:05:22.000
+00:05:18.720 --> 00:05:24.960
And community means we're going to
-
-00:05:22.000 --> 00:05:24.960
invite disagreement.
-00:05:24.960 --> 00:05:29.120
-In fact, that disagreement
-
-00:05:29.120 --> 00:05:32.160
-isn't necessarily a road-block to our
-
-00:05:32.160 --> 00:05:33.280
-project. In fact,
+00:05:24.960 --> 00:05:32.687
+In fact, that disagreement isn't
+necessarily a road-block to our project.
-00:05:33.280 --> 00:05:35.680
-some of the work that a community
+00:05:32.687 --> 00:05:37.759
+In fact, some of the work that a
+community project can invite us to do
-00:05:35.680 --> 00:05:37.759
-project can invite us to do
+00:05:37.759 --> 00:05:39.505
+is to get closer to each other
-00:05:37.759 --> 00:05:39.680
-is to get closer to each other by
+00:05:39.505 --> 00:05:40.840
+by inviting those disagreements,
-00:05:39.680 --> 00:05:40.960
-inviting those disagreements, by
+00:05:40.840 --> 00:05:42.080
+by learning from them--learning from
-00:05:40.960 --> 00:05:42.080
-learning from them--learning from
+00:05:42.080 --> 00:05:46.880
+different people's styles and from how
+they argue,
-00:05:42.080 --> 00:05:43.280
-different people's
-
-00:05:43.280 --> 00:05:46.880
-styles and from how they argue,
-
-00:05:46.880 --> 00:05:49.120
+00:05:46.880 --> 00:05:50.058
and thinking about why they have that
+perspective
-00:05:49.120 --> 00:05:50.400
-perspective and
-
-00:05:50.400 --> 00:05:53.680
-what technical benefits that
+00:05:50.058 --> 00:05:53.227
+and what technical benefits
-00:05:53.680 --> 00:05:55.360
-perhaps radical point of view might
+00:05:53.227 --> 00:05:55.800
+that perhaps radical point of view might
+carry away.
-00:05:55.360 --> 00:05:56.720
-carry away. Some people are really
+00:05:55.800 --> 00:05:58.266
+Some people are really aggressive
+arguers,
-00:05:56.720 --> 00:05:59.039
-aggressive arguers, and others
+00:05:58.266 --> 00:06:01.919
+and others are very passive and really
-00:05:59.039 --> 00:06:01.919
-are very passive and really
+00:06:01.919 --> 00:06:05.824
+couch their ideas in distancing terms,
+to say,
-00:06:01.919 --> 00:06:03.120
-couch their ideas
+00:06:05.824 --> 00:06:07.906
+"well probably, this is a good idea"
-00:06:03.120 --> 00:06:06.240
-in distancing terms, to say, "well
-
-00:06:06.240 --> 00:06:08.080
-probably, this is a good idea" or
-
-00:06:08.080 --> 00:06:12.479
-"please double check me."
+00:06:07.906 --> 00:06:12.479
+or "please double check me."
00:06:12.479 --> 00:06:15.520
Those don't always necessarily indicate
-00:06:15.520 --> 00:06:17.120
-how certain a person is, because we're
-
-00:06:17.120 --> 00:06:18.479
-different. We have different ways of
+00:06:15.520 --> 00:06:17.497
+how certain a person is,
+because we're different.
-00:06:18.479 --> 00:06:19.520
-communicating
+00:06:17.497 --> 00:06:19.520
+We have different ways of communicating
00:06:19.520 --> 00:06:23.380
ideas like certainty or excitement.
-00:06:23.380 --> 00:06:24.560
-[Music]
+00:06:24.560 --> 00:06:26.235
+When we think about a bunch of
-00:06:24.560 --> 00:06:26.560
-When we think about a bunch of really
+00:06:26.235 --> 00:06:30.000
+really diverse programmers
+approaching Emacs,
-00:06:26.560 --> 00:06:30.000
-diverse programmers approaching Emacs,
-
-00:06:30.000 --> 00:06:33.280
-probably one of our our first really big
-
-00:06:33.280 --> 00:06:36.479
+00:06:30.000 --> 00:06:36.479
+probably one of our first really big
challenges is just
-00:06:36.479 --> 00:06:39.759
-to pick what we're going to go
-
-00:06:39.759 --> 00:06:41.120
-after. There are a lot of
-
-00:06:41.120 --> 00:06:44.000
-existing kit
+00:06:36.479 --> 00:06:40.085
+to pick what we're going
+to go after.
-00:06:44.000 --> 00:06:49.599
-installs and things like this.
+00:06:40.085 --> 00:06:49.599
+There are a lot of existing kit installs
+and things like this.
-00:06:49.599 --> 00:06:52.880
+00:06:49.599 --> 00:06:54.400
My argument is that you could actually
-
-00:06:52.880 --> 00:06:54.400
get pretty far
-00:06:54.400 --> 00:06:56.560
-just trading files around. Maybe the
-
-00:06:56.560 --> 00:07:02.240
-more valuable
+00:06:54.400 --> 00:06:56.020
+just trading files around.
-00:07:02.240 --> 00:07:04.720
-conversation to have is making the
+00:06:56.020 --> 00:07:03.698
+Maybe the more valuable conversation
+to have
-00:07:04.720 --> 00:07:06.080
-hard decisions about, well,
+00:07:03.698 --> 00:07:06.080
+is making the hard decisions
+about, well,
00:07:06.080 --> 00:07:08.000
"should we have vertical completion,"
@@ -528,77 +417,56 @@ should that be the out of the box,
00:07:10.080 --> 00:07:11.759
and the people that want
-00:07:11.759 --> 00:07:15.680
+00:07:11.759 --> 00:07:17.440
the traditional splayed out over a
+single line completion,
-00:07:15.680 --> 00:07:17.440
-single line completion
-
-00:07:17.440 --> 00:07:19.840
-for example in the mode line, those
-
-00:07:19.840 --> 00:07:20.800
-people are going to
-
-00:07:20.800 --> 00:07:24.160
-add a line of config
-
-00:07:24.160 --> 00:07:29.039
-to their own setup?
-
-00:07:29.039 --> 00:07:32.479
-The way to get there? I mean, how do we
-
-00:07:32.479 --> 00:07:34.080
-find out what works? We don't want to
-
-00:07:34.080 --> 00:07:35.520
-slow down the people that
+00:07:17.440 --> 00:07:19.428
+for example in the mode line,
-00:07:35.520 --> 00:07:38.800
-are super productive with Emacs by
+00:07:19.428 --> 00:07:29.039
+those people are going to add a line of
+config to their own setup?
-00:07:38.800 --> 00:07:40.479
-asking them to completely break their
+00:07:29.039 --> 00:07:30.979
+The way to get there?
-00:07:40.479 --> 00:07:42.080
-workflows and make it easier for new
+00:07:30.979 --> 00:07:33.344
+I mean, how do we find out what works?
-00:07:42.080 --> 00:07:42.560
-folks.
+00:07:33.344 --> 00:07:38.587
+We don't want to slow down the people
+that are super productive with Emacs
-00:07:42.560 --> 00:07:46.240
-At the same time, we do
+00:07:38.587 --> 00:07:40.879
+by asking them to completely
+break their workflows
-00:07:46.240 --> 00:07:48.960
-want to make sure those new people are
+00:07:40.879 --> 00:07:42.560
+and make it easier for new folks.
-00:07:48.960 --> 00:07:51.280
-excited by Emacs and not turned off by
+00:07:42.560 --> 00:07:48.673
+At the same time, we do want to make
+sure those new people
-00:07:51.280 --> 00:07:52.720
-having to learn
+00:07:48.673 --> 00:07:52.720
+are excited by Emacs and not turned off
+by having to learn
-00:07:52.720 --> 00:07:56.319
-the entire jungle of Emacs
+00:07:52.720 --> 00:08:00.363
+the entire jungle of Emacs history in
+the form of its unique
-00:07:56.319 --> 00:07:59.840
-history in the form of its
+00:08:00.363 --> 00:08:07.610
+technical stylings for things like
+frames, buffers,
-00:07:59.840 --> 00:08:03.120
-unique technical stylings for
+00:08:07.610 --> 00:08:11.668
+and other unique Emacs viewpoints
-00:08:03.120 --> 00:08:06.160
-things like frames,
-
-00:08:06.160 --> 00:08:09.840
-buffers, and other unique
-
-00:08:09.840 --> 00:08:12.960
-Emacs viewpoints on important
-
-00:08:12.960 --> 00:08:16.240
-interface concepts, especially.
+00:08:11.668 --> 00:08:16.240
+on important interface concepts,
+especially.
00:08:16.240 --> 00:08:19.520
The encouragement here is to keep
@@ -609,29 +477,25 @@ the initialization for a project team
00:08:21.680 --> 00:08:23.280
together as a crucible.
-00:08:23.280 --> 00:08:25.280
-Rather than necessarily following our
-
-00:08:25.280 --> 00:08:31.440
-defaults of
+00:08:23.280 --> 00:08:25.117
+Rather than necessarily following
-00:08:31.440 --> 00:08:33.279
-finding the simplest configuration
+00:08:25.117 --> 00:08:33.279
+our defaults of finding the simplest
+configurations
-00:08:33.279 --> 00:08:35.120
+00:08:33.279 --> 00:08:37.440
that generally work and letting people
-
-00:08:35.120 --> 00:08:37.440
customize it,
00:08:37.440 --> 00:08:40.479
what if we tried to look
-00:08:40.479 --> 00:08:42.560
-for fairly specific configurations that
+00:08:40.479 --> 00:08:42.346
+for fairly specific configurations
-00:08:42.560 --> 00:08:44.159
-we'll expect essentially all of our
+00:08:42.346 --> 00:08:44.159
+that we'll expect essentially all of our
00:08:44.159 --> 00:08:46.320
developers to be using,
@@ -642,65 +506,52 @@ at least when they submit bug reports.
00:08:52.839 --> 00:08:55.920
In particular, with this,
-00:08:55.920 --> 00:08:58.800
-I think that degree of
-
-00:08:58.800 --> 00:08:59.839
-experimentation
+00:08:55.920 --> 00:08:59.839
+I think that degree of experimentation
-00:08:59.839 --> 00:09:01.680
+00:08:59.839 --> 00:09:02.584
can drive back into the Emacs
+development process.
-00:09:01.680 --> 00:09:03.360
-development process. In the development
-
-00:09:03.360 --> 00:09:04.800
-mailing list...
+00:09:02.584 --> 00:09:04.800
+In the development mailing list...
-00:09:04.800 --> 00:09:07.760
-I'm hoping I'll get a timing cue
+00:09:04.800 --> 00:09:15.120
+I'm hoping I'll get a timing cue here.
-00:09:07.760 --> 00:09:15.120
-here.
-
-00:09:15.120 --> 00:09:17.760
+00:09:15.120 --> 00:09:18.835
In the context of Emacs development as a
+greater entity,
-00:09:17.760 --> 00:09:18.320
-greater
-
-00:09:18.320 --> 00:09:20.959
-entity, we see some of these struggles.
+00:09:18.835 --> 00:09:20.959
+we see some of these struggles.
00:09:20.959 --> 00:09:22.399
Should we change this default?
-00:09:22.399 --> 00:09:24.000
-Sometimes we can have the
-
-00:09:24.000 --> 00:09:26.720
-sense that defaults in Emacs will never
+00:09:22.399 --> 00:09:27.146
+Sometimes we can have the sense that
+defaults in Emacs will never change.
-00:09:26.720 --> 00:09:29.279
-change. The conversation is too difficult.
+00:09:27.146 --> 00:09:29.279
+The conversation is too difficult.
-00:09:29.279 --> 00:09:30.959
+00:09:29.279 --> 00:09:32.560
I think one thing that can help us get
-
-00:09:30.959 --> 00:09:32.560
there is evidence
00:09:32.560 --> 00:09:36.160
that says, "hey my 30- to 40-person project
-00:09:36.160 --> 00:09:38.880
-is using this set of bindings and
+00:09:36.160 --> 00:09:38.560
+is using this set of bindings,
-00:09:38.880 --> 00:09:40.399
-here's what we learned about
+00:09:38.560 --> 00:09:40.111
+and here's what we learned
-00:09:40.399 --> 00:09:42.240
-brand new Emacs users trying to come in
+00:09:40.111 --> 00:09:42.240
+about brand new Emacs users
+trying to come in
00:09:42.240 --> 00:09:46.800
and get work done with that."
@@ -709,22 +560,20 @@ and get work done with that."
(Amin: Yeah you still have
00:09:49.360 --> 00:09:50.720
-a couple more minutes)
-
-00:09:50.720 --> 00:09:52.640
-Oh, beautiful. Okay, great. I will try to
+a couple more minutes.)
-00:09:52.640 --> 00:09:54.160
-get through my last few slides that i
+00:09:50.720 --> 00:09:51.984
+Oh, beautiful. Okay, great.
-00:09:54.160 --> 00:09:54.720
-cut
+00:09:51.984 --> 00:09:54.720
+I will try to get through my last few
+slides that I cut
00:09:54.720 --> 00:09:56.320
-in my last walkthrough, but I think i'm
+in my last walkthrough, but I think I'm
00:09:56.320 --> 00:09:58.320
-going quicker today thank you.
+going quicker today, thank you.
00:09:58.320 --> 00:10:02.000
Thank you.
@@ -732,41 +581,30 @@ Thank you.
00:10:02.000 --> 00:10:05.120
So let's just recap real quick:
-00:10:05.120 --> 00:10:06.800
-in theory, Emacs works
-
-00:10:06.800 --> 00:10:10.720
-out of the box. That means we're
+00:10:05.120 --> 00:10:08.760
+in theory, Emacs works out of the box.
-00:10:10.720 --> 00:10:14.079
-free to experiment. We can
+00:10:08.760 --> 00:10:12.853
+That means we're free to experiment.
-00:10:14.079 --> 00:10:17.120
-throw it all away and start over.
+00:10:12.853 --> 00:10:17.120
+We can throw it all away and start over.
00:10:17.120 --> 00:10:26.000
As an organizational principle...
-00:10:26.000 --> 00:10:27.360
+00:10:26.000 --> 00:10:30.079
I don't know what I was thinking on that
-
-00:10:27.360 --> 00:10:30.079
slide, excuse me.
-00:10:30.079 --> 00:10:32.240
-Bringing it back around
-
-00:10:32.240 --> 00:10:33.440
-to the free
+00:10:30.079 --> 00:10:33.440
+Bringing it back around to the free
00:10:33.440 --> 00:10:35.680
and open source software community,
-00:10:35.680 --> 00:10:36.480
-our goal
-
-00:10:36.480 --> 00:10:39.519
-is to enable users
+00:10:35.680 --> 00:10:39.519
+our goal is to enable users
00:10:39.519 --> 00:10:41.440
to unlock their computers, to do as much
@@ -774,158 +612,118 @@ to unlock their computers, to do as much
00:10:41.440 --> 00:10:43.040
with them as possible.
-00:10:43.040 --> 00:10:45.600
+00:10:43.040 --> 00:10:47.680
That's the context to take with project
-
-00:10:45.600 --> 00:10:47.680
initialization, but sometimes
00:10:47.680 --> 00:10:49.560
-it could make sense to put...
-
-00:10:49.560 --> 00:10:50.800
-[Music]
-
-00:10:50.800 --> 00:10:53.040
-to put some gloves on. I've thrown up on
-
-00:10:53.040 --> 00:10:54.880
-the screen here just a couple of other
+it could make sense
-00:10:54.880 --> 00:10:57.279
-ideas, ways to maybe think outside of the
+00:10:50.800 --> 00:10:52.032
+to put some gloves on.
-00:10:57.279 --> 00:10:57.920
-box.
+00:10:52.032 --> 00:10:53.766
+I've thrown up on the screen here
-00:10:57.920 --> 00:11:00.399
-As you're putting together project
+00:10:53.766 --> 00:10:55.276
+just a couple of other ideas,
-00:11:00.399 --> 00:11:01.440
-nets,
+00:10:55.276 --> 00:10:57.920
+ways to maybe think outside of the box.
-00:11:01.440 --> 00:11:04.959
-my words of encouragement are to experiment
+00:10:57.920 --> 00:11:01.440
+As you're putting together project nets,
-00:11:04.959 --> 00:11:05.519
-with it,
+00:11:01.440 --> 00:11:05.519
+my words of encouragement are to
+experiment with it,
-00:11:05.519 --> 00:11:09.200
+00:11:05.519 --> 00:11:09.941
try different things, and think really
+specifically
-00:11:09.200 --> 00:11:10.560
-specifically about how
+00:11:09.941 --> 00:11:17.010
+about how different the development
+users might be from each other
-00:11:10.560 --> 00:11:14.320
-different the development users
-
-00:11:14.320 --> 00:11:17.760
-might be from each other as you
-
-00:11:17.760 --> 00:11:21.680
-define standards for configuring
+00:11:17.010 --> 00:11:21.680
+as you define standards for configuring
00:11:21.680 --> 00:11:23.519
the user environment of Emacs
-00:11:23.519 --> 00:11:25.360
-specifically for developing
+00:11:23.519 --> 00:11:26.552
+specifically for developing on a
+project.
-00:11:25.360 --> 00:11:29.120
-on a project. That's pretty much my talk.
+00:11:26.552 --> 00:11:29.120
+That's pretty much my talk.
-00:11:29.120 --> 00:11:30.480
+00:11:29.120 --> 00:11:32.959
If there's any time, I would take a
-
-00:11:30.480 --> 00:11:32.959
couple questions.
-00:11:32.959 --> 00:11:35.040
-Thank you for your awesome talk,
+00:11:32.959 --> 00:11:36.480
+(Amin: Thank you for your
+awesome talk, Corwin.
-00:11:35.040 --> 00:11:36.480
-Corwin.
-
-00:11:36.480 --> 00:11:38.160
-I think we have one or two
-
-00:11:38.160 --> 00:11:49.519
-minutes for a few questions.
+00:11:36.480 --> 00:11:49.519
+I think we have one or two minutes for a
+few questions.
00:11:49.519 --> 00:11:52.000
Do you have the pad open or would you
00:11:52.000 --> 00:11:53.839
-like me to read the questions for you?
-
-00:11:53.839 --> 00:11:56.959
-Oh, I managed to close the
+like me to read the questions for you?)
-00:11:56.959 --> 00:11:58.000
-pad
+00:11:53.839 --> 00:11:58.000
+Corwin: Oh, I managed to close the pad
-00:11:58.000 --> 00:12:00.560
-and I am trying to open it again. All
+00:11:58.000 --> 00:12:00.352
+and I am trying to open it again.
-00:12:00.560 --> 00:12:03.519
-right, there it opened.
+00:12:00.352 --> 00:12:03.519
+All right, there it opened.
-00:12:03.519 --> 00:12:05.040
+00:12:03.519 --> 00:12:05.500
Bringing it onto a screen where I can
+see it.
-00:12:05.040 --> 00:12:06.880
-see it. Will you read me the
+00:12:05.500 --> 00:12:09.360
+Will you read me the first question
+while I drag windows around, please?
-00:12:06.880 --> 00:12:08.399
-first question while I drag windows
+00:12:09.360 --> 00:12:15.600
+(Amin: Sure. It says, "do you use Emacs
+as a community building tool?")
-00:12:08.399 --> 00:12:09.360
-around, please?
-
-00:12:09.360 --> 00:12:12.720
-(Amin: Sure. It says, "do you use Emacs as a
-
-00:12:12.720 --> 00:12:15.600
-community building tool?")
-
-00:12:15.600 --> 00:12:17.680
+00:12:15.600 --> 00:12:19.760
Do I use Emacs as a community building
-
-00:12:17.680 --> 00:12:19.760
tool, or how do I?
00:12:19.760 --> 00:12:23.519
(Amin: It just says do you.) Yes, absolutely.
-00:12:23.519 --> 00:12:26.720
-I think Emacs is an ambassador to
-
-00:12:26.720 --> 00:12:29.920
-the GNU tool chain.
-
-00:12:29.920 --> 00:12:33.279
-I think that in the fullness of time, we
-
-00:12:33.279 --> 00:12:34.560
-will see an Emacs
+00:12:23.519 --> 00:12:29.920
+I think Emacs is an ambassador to the
+GNU tool chain.
-00:12:34.560 --> 00:12:38.240
-that makes
+00:12:29.920 --> 00:12:33.027
+I think that in the fullness of time,
-00:12:38.240 --> 00:12:42.000
-and that makes iOS and Android and other
+00:12:33.027 --> 00:12:36.558
+we will see an Emacs
-00:12:42.000 --> 00:12:42.800
-closed-source
+00:12:36.558 --> 00:12:43.760
+that makes iOS and Android and other
+closed-source tools dream.
-00:12:42.800 --> 00:12:45.680
-tools dream. That's why they mock us
+00:12:43.760 --> 00:12:46.689
+That's why they mock us and call Emacs
-00:12:45.680 --> 00:12:46.320
-and call
-
-00:12:46.320 --> 00:12:49.200
-Emacs an operating system. It's because
+00:12:46.689 --> 00:12:49.200
+an operating system. It's because
00:12:49.200 --> 00:12:51.440
it could be, if we cared for it to be.
@@ -936,65 +734,56 @@ It's quite a threatening product
00:12:55.680 --> 00:12:57.440
from the perspective of how many problem
-00:12:57.440 --> 00:12:59.440
-spaces it can address, how many types of
+00:12:57.440 --> 00:12:58.540
+spaces it can address,
-00:12:59.440 --> 00:13:01.519
-users it can satisfy,
+00:12:58.540 --> 00:13:01.519
+how many types of users it can satisfy,
00:13:01.519 --> 00:13:04.399
the things that we can do to make
-00:13:04.399 --> 00:13:05.600
-it robust in those
-
-00:13:05.600 --> 00:13:07.839
-environments. I mean, we're always
-
-00:13:07.839 --> 00:13:09.760
-thinking about the weak points, but
+00:13:04.399 --> 00:13:06.456
+it robust in those environments.
-00:13:09.760 --> 00:13:11.839
-is Emacs a community building tool? Heck
+00:13:06.456 --> 00:13:09.524
+I mean, we're always thinking about the
+weak points,
-00:13:11.839 --> 00:13:14.639
-yeah.
+00:13:09.524 --> 00:13:14.639
+but is Emacs a community building tool?
+Heck yeah.
-00:13:14.639 --> 00:13:17.920
+00:13:14.639 --> 00:13:18.480
(Amin: There's like one or two more
-
-00:13:17.920 --> 00:13:18.480
questions.
-00:13:18.480 --> 00:13:21.519
+00:13:18.480 --> 00:13:22.480
I think they're more long-form so it
-
-00:13:21.519 --> 00:13:22.480
might be better
-00:13:22.480 --> 00:13:24.000
-if you took them off stream so you
-
-00:13:24.000 --> 00:13:26.880
-could keep the schedule on time.)
+00:13:22.480 --> 00:13:26.880
+if you took them off stream so you could
+keep the schedule on time.)
-00:13:26.880 --> 00:13:28.959
-i would love to take those questions
+00:13:26.880 --> 00:13:29.463
+I would love to take those questions
+offline.
-00:13:28.959 --> 00:13:31.040
-offline. I will respond to you in
+00:13:29.463 --> 00:13:30.908
+I will respond to you
-00:13:31.040 --> 00:13:32.399
-writing if we don't get to it in a
+00:13:30.908 --> 00:13:32.237
+in writing if we don't get to it
-00:13:32.399 --> 00:13:33.360
-breakout room.
+00:13:32.237 --> 00:13:33.360
+in a breakout room.
-00:13:33.360 --> 00:13:35.519
-Thanks so much for joining us. I
+00:13:33.360 --> 00:13:35.451
+Thanks so much for joining us.
-00:13:35.519 --> 00:13:36.639
-can't wait to see the rest of the
+00:13:35.451 --> 00:13:36.639
+I can't wait to see the rest of the
00:13:36.639 --> 00:13:38.000
conference. See you there!
diff --git a/2020/subtitles/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--sid-kasivajhula.vtt b/2020/subtitles/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--sid-kasivajhula.vtt
index 14913a32..8bb1e882 100644
--- a/2020/subtitles/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--sid-kasivajhula.vtt
+++ b/2020/subtitles/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--sid-kasivajhula.vtt
@@ -1,16 +1,17 @@
WEBVTT
-00:00:02.960 --> 00:00:04.960
-"Far away in the heavenly abode of the
+00:00:02.960 --> 00:00:04.644
+"Far away in the heavenly abode
-00:00:04.960 --> 00:00:06.560
-great god Indra,
+00:00:04.644 --> 00:00:06.560
+of the great god Indra,
-00:00:06.560 --> 00:00:08.320
-there is a wonderful net which has been
+00:00:06.560 --> 00:00:07.688
+there is a wonderful net
-00:00:08.320 --> 00:00:10.160
-hung by some cunning artificer
+00:00:07.688 --> 00:00:10.160
+which has been hung
+by some cunning artificer
00:00:10.160 --> 00:00:12.080
in such a manner that it stretches out
@@ -18,92 +19,85 @@ in such a manner that it stretches out
00:00:12.080 --> 00:00:14.320
infinitely in all directions.
-00:00:14.320 --> 00:00:15.920
+00:00:14.320 --> 00:00:16.938
In accordance with the extravagant
+tastes of deities,
-00:00:15.920 --> 00:00:18.240
-tastes of deities, the artificer has hung
+00:00:16.938 --> 00:00:18.240
+the artificer has hung
-00:00:18.240 --> 00:00:20.960
-a single glittering jewel in each eye of
+00:00:18.240 --> 00:00:20.277
+a single glittering jewel
-00:00:20.960 --> 00:00:22.080
-the net,
+00:00:20.277 --> 00:00:22.080
+in each eye of the net,
-00:00:22.080 --> 00:00:24.000
-and since the net itself is infinite, the
+00:00:22.080 --> 00:00:23.859
+and since the net itself is infinite,
-00:00:24.000 --> 00:00:26.480
-jewels are infinite in number.
+00:00:23.859 --> 00:00:26.480
+the jewels are infinite in number.
-00:00:26.480 --> 00:00:28.400
-There hang the jewels, glittering like
+00:00:26.480 --> 00:00:27.642
+There hang the jewels,
-00:00:28.400 --> 00:00:30.480
-stars in the first magnitude,
+00:00:27.642 --> 00:00:30.480
+glittering like stars in the first
+magnitude,
-00:00:30.480 --> 00:00:33.440
-a wonderful sight to behold. Were we to
+00:00:30.480 --> 00:00:32.681
+a wonderful sight to behold.
-00:00:33.440 --> 00:00:34.800
-select one of these jewels for
+00:00:32.681 --> 00:00:35.680
+Were we to select one of these jewels
+for inspection,
-00:00:34.800 --> 00:00:35.680
-inspection,
+00:00:35.680 --> 00:00:38.216
+we would discover that in
+its polished surface
-00:00:35.680 --> 00:00:37.760
-we would discover that in its polished
+00:00:38.216 --> 00:00:39.520
+there are reflected
-00:00:37.760 --> 00:00:39.520
-surface there are reflected
+00:00:39.520 --> 00:00:41.451
+all the other jewels in the net,
-00:00:39.520 --> 00:00:41.920
-all the other jewels in the net, infinite
+00:00:41.451 --> 00:00:43.360
+infinite in number.
-00:00:41.920 --> 00:00:43.360
-in number.
+00:00:43.360 --> 00:00:45.140
+If we look still more closely,
-00:00:43.360 --> 00:00:45.600
-If we look still more closely, we would
+00:00:45.140 --> 00:00:48.960
+we would see that each of the jewels
+reflected in this one jewel
-00:00:45.600 --> 00:00:47.840
-see that each of the jewels reflected in
+00:00:48.960 --> 00:00:51.264
+reflects all the others."
-00:00:47.840 --> 00:00:48.960
-this one jewel
+00:00:51.264 --> 00:00:54.000
+This is the metaphor of Indra's Net,
-00:00:48.960 --> 00:00:52.239
-reflects all the others." This is the
-
-00:00:52.239 --> 00:00:54.000
-metaphor of Indra's Net,
-
-00:00:54.000 --> 00:00:56.840
+00:00:54.000 --> 00:00:57.615
which is told in some schools of
+philosophy.
-00:00:56.840 --> 00:00:59.359
-philosophy. Let's keep this metaphor in
-
-00:00:59.359 --> 00:01:00.160
-mind,
-
-00:01:00.160 --> 00:01:01.920
-because it'll help us understand the
+00:00:57.615 --> 00:01:00.160
+Let's keep this metaphor in mind,
-00:01:01.920 --> 00:01:03.760
-Emacs extension that we're about to
+00:01:00.160 --> 00:01:01.773
+because it'll help us understand
-00:01:03.760 --> 00:01:06.960
+00:01:01.773 --> 00:01:06.960
+the Emacs extension that we're about to
discuss.
-00:01:06.960 --> 00:01:10.080
-In editing text, there's two
+00:01:06.960 --> 00:01:12.810
+In editing text, there's two main
+paradigms:
-00:01:10.080 --> 00:01:13.200
-main paradigms: one
-
-00:01:13.200 --> 00:01:16.880
-is editing at the ground level,
+00:01:12.810 --> 00:01:16.880
+one is editing at the ground level,
00:01:16.880 --> 00:01:19.439
where the characters that we type
@@ -114,83 +108,67 @@ actually appear on the screen,
00:01:22.159 --> 00:01:25.960
the changes we make actually occur.
-00:01:28.479 --> 00:01:30.720
-The other editing paradigm is where we
+00:01:28.479 --> 00:01:30.126
+The other editing paradigm
-00:01:30.720 --> 00:01:33.439
-escape to a higher level
+00:01:30.126 --> 00:01:33.439
+is where we escape to a higher level
-00:01:33.439 --> 00:01:36.000
+00:01:33.439 --> 00:01:36.479
and now the characters that we type are
-
-00:01:36.000 --> 00:01:36.479
not...
00:01:36.479 --> 00:01:39.040
They don't actually appear on the screen
-00:01:39.040 --> 00:01:41.600
+00:01:39.040 --> 00:01:42.748
because we're not at the ground level
+with the text,
-00:01:41.600 --> 00:01:44.799
-with the text, we are at a higher level
+00:01:42.748 --> 00:01:44.799
+we are at a higher level
00:01:44.799 --> 00:01:48.479
looking down at the text
-00:01:48.479 --> 00:01:51.920
-and regarding the text, referring to
+00:01:48.479 --> 00:01:50.773
+and regarding the text,
-00:01:51.920 --> 00:01:54.640
-this world of text in terms of a
-
-00:01:54.640 --> 00:01:56.159
-language.
+00:01:50.773 --> 00:01:56.159
+referring to this world of text in terms
+of a language.
00:01:56.159 --> 00:01:57.920
For instance, we could describe this
-00:01:57.920 --> 00:02:00.640
+00:01:57.920 --> 00:02:03.404
world as having words and paragraphs and
+sentences and lines and so on.
-00:02:00.640 --> 00:02:02.079
-sentences and
+00:02:03.404 --> 00:02:05.985
+We could reason about this text
-00:02:02.079 --> 00:02:04.640
-lines and so on. We could reason
+00:02:05.985 --> 00:02:13.120
+in terms of these textual entities and
+this textual language.
-00:02:04.640 --> 00:02:05.360
-about this
-
-00:02:05.360 --> 00:02:08.800
-text in terms of these
-
-00:02:08.800 --> 00:02:11.440
-textual entities and this textual
-
-00:02:11.440 --> 00:02:13.120
-language.
-
-00:02:13.120 --> 00:02:15.920
+00:02:13.120 --> 00:02:18.640
This is the second paradigm of text
-
-00:02:15.920 --> 00:02:18.640
editing.
00:02:18.640 --> 00:02:22.800
When we're in the second paradigm,
-00:02:22.800 --> 00:02:24.800
+00:02:22.800 --> 00:02:25.304
there is a way to go down to ground
+level.
-00:02:24.800 --> 00:02:26.480
-level. You hit Enter
-
-00:02:26.480 --> 00:02:28.160
-now--or we'll hit Enter to go down to the
+00:02:25.304 --> 00:02:28.997
+You hit Enter now--or we'll hit Enter to
+go down to the ground level,
-00:02:28.160 --> 00:02:30.480
-ground level, and you can hit Escape
+00:02:28.997 --> 00:02:30.480
+and you can hit Escape
00:02:30.480 --> 00:02:33.200
to go back out to the referential level.
@@ -198,182 +176,147 @@ to go back out to the referential level.
00:02:33.200 --> 00:02:35.200
Enter to go down to ground level
-00:02:35.200 --> 00:02:37.280
-and Escape to go up to the referential
-
-00:02:37.280 --> 00:02:40.160
-level.
-
-00:02:40.160 --> 00:02:44.879
-Now, in Vim, the nouns
+00:02:35.200 --> 00:02:40.160
+and Escape to go up to the
+referential level.
-00:02:44.879 --> 00:02:48.239
-in this world of text all
+00:02:40.160 --> 00:02:47.565
+Now, in Vim, the nouns in this
+world of text
-00:02:48.239 --> 00:02:50.959
-share the same referential plane which
+00:02:47.565 --> 00:02:52.319
+all share the same referential plane
+which we call normal mode.
-00:02:50.959 --> 00:02:51.519
-we call
-
-00:02:51.519 --> 00:02:54.319
-normal mode. So in normal mode, all of the
-
-00:02:54.319 --> 00:02:54.959
-nouns
+00:02:52.319 --> 00:02:54.959
+So in normal mode, all of the nouns
00:02:54.959 --> 00:02:57.360
of the world of text are available,
-00:02:57.360 --> 00:02:58.959
+00:02:57.360 --> 00:03:00.959
whether it's words or sentences or
-
-00:02:58.959 --> 00:03:00.959
paragraphs,
-00:03:00.959 --> 00:03:04.400
-and they all share this same
-
-00:03:04.400 --> 00:03:08.319
-referential plane.
+00:03:00.959 --> 00:03:08.319
+and they all share this same referential
+plane.
-00:03:08.319 --> 00:03:11.120
-They compete for space on the
+00:03:08.319 --> 00:03:12.720
+They compete for space on the keyboard.
-00:03:11.120 --> 00:03:12.720
-keyboard.
+00:03:12.720 --> 00:03:17.037
+An alternative way to structure these
+modes is
-00:03:12.720 --> 00:03:15.760
-An alternative
+00:03:17.037 --> 00:03:21.840
+instead of having a single mode where
+all the nouns coexist,
-00:03:15.760 --> 00:03:17.680
-way to structure these modes is instead
+00:03:21.840 --> 00:03:24.005
+peacefully or otherwise,
-00:03:17.680 --> 00:03:19.280
-of having a single mode where all the
+00:03:24.005 --> 00:03:30.400
+you instead have a dedicated mode for
+every noun.
-00:03:19.280 --> 00:03:21.840
-nouns coexist,
+00:03:30.400 --> 00:03:32.540
+In that case, what happens is
-00:03:21.840 --> 00:03:24.959
-peacefully or otherwise, you instead
+00:03:32.540 --> 00:03:35.440
+because your modal spaces are
+now much smaller,
-00:03:24.959 --> 00:03:30.400
-have a dedicated mode for every noun.
-
-00:03:30.400 --> 00:03:33.040
-In that case, what happens is because
-
-00:03:33.040 --> 00:03:35.440
-your modal spaces are now much smaller,
-
-00:03:35.440 --> 00:03:37.280
+00:03:35.440 --> 00:03:40.593
you're just talking about words or
+paragraphs or lines or something,
-00:03:37.280 --> 00:03:38.720
-paragraphs or
-
-00:03:38.720 --> 00:03:42.560
-lines or something, the keys that you use
+00:03:40.593 --> 00:03:42.560
+the keys that you use
00:03:42.560 --> 00:03:45.760
can be much more targeted.
00:03:45.760 --> 00:03:48.560
-You can use the same keystrokes in
+You can use the same keystrokes
00:03:48.560 --> 00:03:50.400
in all of your modes and they would have
-00:03:50.400 --> 00:03:52.000
-the same ideas behind them, but
+00:03:50.400 --> 00:03:51.845
+the same ideas behind them,
-00:03:52.000 --> 00:03:53.280
-they would have different effects
+00:03:51.845 --> 00:03:53.280
+but they would have different effects
00:03:53.280 --> 00:03:55.519
depending on which context you're using.
-00:03:55.519 --> 00:03:57.519
+00:03:55.519 --> 00:03:59.120
It's the same keystrokes, different
-
-00:03:57.519 --> 00:03:59.120
contexts.
-00:03:59.120 --> 00:04:01.360
+00:03:59.120 --> 00:04:04.244
The advantage of that is it's often
+easier to change context
-00:04:01.360 --> 00:04:02.480
-easier
-
-00:04:02.480 --> 00:04:05.519
-to change context than it is to
-
-00:04:05.519 --> 00:04:09.040
-learn new key bindings. So let's see
+00:04:04.244 --> 00:04:07.888
+than it is to learn new key bindings.
-00:04:09.040 --> 00:04:12.080
-an example of how that works. We go into
+00:04:07.888 --> 00:04:11.289
+So let's see an example of how
+that works.
-00:04:12.080 --> 00:04:13.680
-character mode, and if you look at the
+00:04:11.289 --> 00:04:14.039
+We go into character mode, and if you
+look at the mode line
-00:04:13.680 --> 00:04:15.439
-mode line at the bottom of the screen there,
+00:04:14.039 --> 00:04:15.439
+at the bottom of the screen there,
00:04:15.439 --> 00:04:18.720
you'll see that we're in character mode.
-00:04:18.720 --> 00:04:21.519
-Now, when we move up, down, left, and
+00:04:18.720 --> 00:04:21.955
+Now, when we move up, down,
+left, and right,
-00:04:21.519 --> 00:04:23.919
-right, we're moving by character.
+00:04:21.955 --> 00:04:23.919
+we're moving by character.
-00:04:23.919 --> 00:04:28.479
-We can also transform the text, and
+00:04:23.919 --> 00:04:28.088
+We can also transform the text,
-00:04:28.479 --> 00:04:30.240
-the transformations occur in terms of
+00:04:28.088 --> 00:04:32.400
+and the transformations occur in terms
+of character.
-00:04:30.240 --> 00:04:32.400
-character.
+00:04:32.400 --> 00:04:34.207
+You can also go into word mode.
-00:04:32.400 --> 00:04:34.320
-You can also go into word mode. In
+00:04:34.207 --> 00:04:40.000
+In word mode, the transformations that
+you do are on words.
-00:04:34.320 --> 00:04:35.520
-word mode,
-
-00:04:35.520 --> 00:04:38.560
-the transformations that you do are on
-
-00:04:38.560 --> 00:04:40.000
-words.
-
-00:04:40.000 --> 00:04:42.320
+00:04:40.000 --> 00:04:43.440
and you try... Your movement is also in
-
-00:04:42.320 --> 00:04:43.440
terms of words.
-00:04:43.440 --> 00:04:45.600
+00:04:43.440 --> 00:04:46.560
So that's the level of granularity that
-
-00:04:45.600 --> 00:04:46.560
you have.
-00:04:46.560 --> 00:04:49.520
-You could also go to line mode. When
+00:04:46.560 --> 00:04:49.191
+You could also go to line mode.
-00:04:49.520 --> 00:04:50.720
-you're in line mode,
+00:04:49.191 --> 00:04:50.720
+When you're in line mode,
-00:04:50.720 --> 00:04:53.759
-you go up and down by line, and you can
+00:04:50.720 --> 00:04:52.901
+you go up and down by line,
-00:04:53.759 --> 00:04:54.240
-move lines
+00:04:52.901 --> 00:04:54.240
+and you can move lines
00:04:54.240 --> 00:04:57.520
up and down left and right and so on.
@@ -384,20 +327,19 @@ The transformations you do are in
00:05:00.880 --> 00:05:02.800
terms of lines.
-00:05:02.800 --> 00:05:08.400
-You could also go to window mode, where
-
-00:05:08.400 --> 00:05:10.639
-now the objects that you're referring to
+00:05:02.800 --> 00:05:07.682
+You could also go to window mode,
-00:05:10.639 --> 00:05:12.400
-are windows. You can
+00:05:07.682 --> 00:05:11.695
+where now the objects that you're
+referring to are windows.
-00:05:12.400 --> 00:05:15.759
-move spatially amongst the windows or
+00:05:11.695 --> 00:05:15.578
+You can move spatially
+amongst the windows
-00:05:15.759 --> 00:05:17.520
-do transformations on the windows
+00:05:15.578 --> 00:05:17.520
+or do transformations on the windows
00:05:17.520 --> 00:05:20.850
using the same keystrokes.
@@ -408,197 +350,170 @@ So let's go to...
00:05:28.720 --> 00:05:32.800
Right. One of the things,
-00:05:32.800 --> 00:05:35.280
-the principles that play here is
-
-00:05:35.280 --> 00:05:36.880
-something called the Rumpelstiltskin
-
-00:05:36.880 --> 00:05:38.000
-principle, which is something
+00:05:32.800 --> 00:05:35.114
+the principles at play here
-00:05:38.000 --> 00:05:40.720
-that's known in computer science.
+00:05:35.114 --> 00:05:37.266
+is something called the
+Rumpelstiltskin principle,
-00:05:40.720 --> 00:05:42.320
-If you can name something, then
+00:05:37.266 --> 00:05:40.720
+which is something that's known in
+computer science.
-00:05:43.759 --> 00:05:46.720
-you have power over it. This is
+00:05:40.720 --> 00:05:42.113
+If you can name something,
-00:05:46.720 --> 00:05:48.560
-kind of an adaptation of that principle
+00:05:42.113 --> 00:05:45.824
+then you have power over it.
-00:05:48.560 --> 00:05:50.479
-which says that if you can
+00:05:45.824 --> 00:05:48.560
+This is kind of an adaptation of that
+principle
-00:05:50.479 --> 00:05:52.320
-name something and if you can talk about
+00:05:48.560 --> 00:05:51.123
+which says that if you can name
+something
-00:05:52.320 --> 00:05:54.000
-it, then it's a noun
+00:05:51.123 --> 00:05:52.572
+and if you can talk about it,
-00:05:55.360 --> 00:05:56.960
-in your editing language. If it's a
+00:05:52.572 --> 00:05:56.334
+then it's a noun in your editing
+language.
-00:05:56.960 --> 00:05:58.960
-noun, then it has...
+00:05:56.334 --> 00:05:58.960
+If it's a noun, then it has...
-00:05:58.960 --> 00:06:01.520
+00:05:58.960 --> 00:06:02.319
It's a mode. So if we can talk about it,
-
-00:06:01.520 --> 00:06:02.319
it's a noun.
-00:06:02.319 --> 00:06:05.039
-If it's a noun, then it's a mode. One
-
-00:06:05.039 --> 00:06:06.479
-of the things we've been talking a lot
-
-00:06:06.479 --> 00:06:07.039
-about
+00:06:02.319 --> 00:06:04.818
+If it's a noun, then it's a mode.
-00:06:07.039 --> 00:06:10.800
-is modes. In fact,
+00:06:04.818 --> 00:06:08.919
+One of the things we've been talking a
+lot about is modes.
-00:06:10.800 --> 00:06:14.240
-by this principle, modes also
+00:06:08.919 --> 00:06:12.699
+In fact, by this principle,
-00:06:14.240 --> 00:06:17.280
-should be a mode.
+00:06:12.699 --> 00:06:17.280
+modes also should be a mode.
00:06:17.280 --> 00:06:19.039
You should have a mode that can reason
-00:06:19.039 --> 00:06:21.120
-in terms of modes as objects, just like
+00:06:19.039 --> 00:06:20.639
+in terms of modes as objects,
-00:06:21.120 --> 00:06:22.080
-you have
+00:06:20.639 --> 00:06:22.300
+just like you have modes
-00:06:22.080 --> 00:06:23.759
-modes where you can reason in terms of
+00:06:22.300 --> 00:06:23.759
+where you can reason in terms of
00:06:23.759 --> 00:06:26.560
words or lines as objects.
-00:06:26.560 --> 00:06:28.800
-So let's do that. Let's go to mode
-
-00:06:28.800 --> 00:06:30.479
-mode.
+00:06:26.560 --> 00:06:30.479
+So let's do that. Let's go to mode mode.
00:06:30.479 --> 00:06:34.000
-When you go to mode mode, you see that
-
-00:06:34.000 --> 00:06:36.080
-the objects that are depicted here are
+When you go to mode mode, you see that
-00:06:36.080 --> 00:06:37.919
-the modes that are
+00:06:34.000 --> 00:06:35.915
+the objects that are depicted here
-00:06:37.919 --> 00:06:40.960
-present in the buffer,
+00:06:35.915 --> 00:06:40.960
+are the modes that are present
+in the buffer,
-00:06:40.960 --> 00:06:44.880
-which we knew about because the
+00:06:40.960 --> 00:06:44.500
+which we knew about because
-00:06:44.880 --> 00:06:46.400
-style of editing that we had in this
+00:06:44.500 --> 00:06:46.797
+the style of editing that we had
+in this buffer
-00:06:46.400 --> 00:06:48.720
-buffer was the Vim style of editing
+00:06:46.797 --> 00:06:48.720
+was the Vim style of editing
-00:06:48.720 --> 00:06:50.479
+00:06:48.720 --> 00:06:51.143
where there's an insert mode at the
+ground level
-00:06:50.479 --> 00:06:52.400
-ground level and a normal mode that you
-
-00:06:52.400 --> 00:06:53.039
-can escape to.
+00:06:51.143 --> 00:06:53.039
+and a normal mode that
+you can escape to.
00:06:53.039 --> 00:06:57.280
You insert, enter the ground level.
-00:06:57.280 --> 00:07:00.479
+00:06:57.280 --> 00:07:01.352
Enter to the insert mode and escape to
+normal mode.
-00:07:00.479 --> 00:07:02.880
-normal mode. When you look at the
-
-00:07:02.880 --> 00:07:03.680
-mode mode
+00:07:01.352 --> 00:07:04.647
+When you look at the mode mode
+representation,
-00:07:03.680 --> 00:07:06.160
-representation, you see that in fact that
+00:07:04.647 --> 00:07:06.160
+you see that in fact that
00:07:06.160 --> 00:07:10.479
is the structure that's depicted.
-00:07:10.479 --> 00:07:12.720
-But in different situations, you might
-
-00:07:12.720 --> 00:07:14.080
-find
+00:07:10.479 --> 00:07:14.080
+But in different situations,
+you might find
00:07:14.080 --> 00:07:16.080
that these modes are not the
-00:07:16.080 --> 00:07:17.680
-ones that you want. You want something
-
-00:07:17.680 --> 00:07:19.360
-more tailored for the specific
+00:07:16.080 --> 00:07:16.922
+ones that you want.
-00:07:19.360 --> 00:07:20.880
-application.
+00:07:16.922 --> 00:07:20.880
+You want something more tailored for the
+specific application.
-00:07:20.880 --> 00:07:23.050
+00:07:20.880 --> 00:07:25.065
For instance, if you're editing
+Lisp code
-00:07:24.240 --> 00:07:27.360
-Lisp code (or code in general, but
+00:07:25.065 --> 00:07:27.360
+(or code in general, but
00:07:27.360 --> 00:07:30.880
Lisp code is a particular example),
-00:07:30.880 --> 00:07:32.960
-you might want to take advantage of the
+00:07:30.880 --> 00:07:32.640
+you might want to take advantage
-00:07:32.960 --> 00:07:34.000
-structure of
+00:07:32.640 --> 00:07:34.852
+of the structure of the code.
-00:07:34.000 --> 00:07:37.599
-the code. For Lisp code in particular,
+00:07:34.852 --> 00:07:37.599
+For Lisp code in particular,
00:07:37.599 --> 00:07:40.960
we have a mode called symex-mode
-00:07:40.960 --> 00:07:44.240
-which is able to reason
+00:07:40.960 --> 00:07:45.414
+which is able to reason about your code
-00:07:44.240 --> 00:07:46.720
-about your code in terms of its tree
+00:07:45.414 --> 00:07:47.919
+in terms of its tree structure.
-00:07:46.720 --> 00:07:47.919
-structure.
-
-00:07:47.919 --> 00:07:50.560
+00:07:47.919 --> 00:07:52.397
So you can use the same keystrokes: hjkl
+goes left, right, up, and down,
-00:07:50.560 --> 00:07:51.120
-goes
-
-00:07:51.120 --> 00:07:53.440
-left, right, up, and down, but you also have
-
-00:07:53.440 --> 00:07:54.960
-other keystrokes that are more
-
-00:07:54.960 --> 00:07:58.080
-specialized to the application.
+00:07:52.397 --> 00:07:58.080
+but you also have other keystrokes that
+are more specialized to the application.
00:07:58.080 --> 00:08:01.520
You can run the code.
@@ -606,11 +521,9 @@ You can run the code.
00:08:01.520 --> 00:08:06.960
We'll see that happen here in a minute.
-00:08:06.960 --> 00:08:10.080
-You can make changes to it really
-
-00:08:10.080 --> 00:08:12.240
-quickly
+00:08:06.960 --> 00:08:12.240
+You can make changes to it
+really quickly
00:08:12.240 --> 00:08:18.000
and see the effects of those changes.
@@ -618,140 +531,128 @@ and see the effects of those changes.
00:08:18.000 --> 00:08:19.440
You're doing this all in a mode
-00:08:19.440 --> 00:08:21.360
-that's convenient for
-
-00:08:21.360 --> 00:08:23.199
-this particular application, which is
+00:08:19.440 --> 00:08:22.625
+that's convenient for this particular
+application,
-00:08:23.199 --> 00:08:25.039
-editing Lisp code,
+00:08:22.625 --> 00:08:25.039
+which is editing Lisp code,
00:08:25.039 --> 00:08:28.960
and that is, in this case, symex-mode.
-00:08:28.960 --> 00:08:31.039
+00:08:28.960 --> 00:08:31.631
Typically, when you're editing code
+like this,
-00:08:31.039 --> 00:08:32.640
-like this, you'd want to be
+00:08:31.631 --> 00:08:33.435
+you'd want to be in insert mode
-00:08:32.640 --> 00:08:34.800
-in insert mode actually typing out the
+00:08:33.435 --> 00:08:36.640
+actually typing out the code,
-00:08:34.800 --> 00:08:36.640
-code,
-
-00:08:36.640 --> 00:08:38.320
+00:08:36.640 --> 00:08:40.959
and then you'd want to escape to symex
-
-00:08:38.320 --> 00:08:40.959
mode rather than normal mode,
-00:08:40.959 --> 00:08:42.159
-and then you could escape again and
+00:08:40.959 --> 00:08:42.021
+and then you could escape again
-00:08:42.159 --> 00:08:44.080
-you'd end up in normal mode.
+00:08:42.021 --> 00:08:44.080
+and you'd end up in normal mode.
-00:08:44.080 --> 00:08:46.720
-So this, if we go to mode mode, we see is
-
-00:08:46.720 --> 00:08:48.000
-depicted
+00:08:44.080 --> 00:08:48.000
+So this, if we go to mode mode, we see
+is depicted
00:08:48.000 --> 00:08:51.040
as this tower where insert is at the
-00:08:51.040 --> 00:08:52.800
-bottom and normal is at the top, but
-
-00:08:52.800 --> 00:08:54.800
-symex-mode is in between
+00:08:51.040 --> 00:08:52.604
+bottom and normal is at the top,
-00:08:54.800 --> 00:08:57.200
-the two. You could also change that if
+00:08:52.604 --> 00:08:55.305
+but symex-mode is in between the two.
-00:08:57.200 --> 00:08:58.800
-you like. If you don't want symex-mode to
+00:08:55.305 --> 00:08:57.551
+You could also change that if you like.
-00:08:58.800 --> 00:09:00.640
-be there, you could just
+00:08:57.551 --> 00:08:59.566
+If you don't want symex-mode
+to be there,
-00:09:00.640 --> 00:09:03.760
-move it to the top. Now you find symex is
+00:08:59.566 --> 00:09:02.187
+you could just move it to the top.
-00:09:03.760 --> 00:09:05.600
-at the top and you enter down to
+00:09:02.187 --> 00:09:04.392
+Now you find symex is at the top
-00:09:05.600 --> 00:09:06.160
-normal.
+00:09:04.392 --> 00:09:06.160
+and you enter down to normal.
-00:09:06.160 --> 00:09:07.600
+00:09:06.160 --> 00:09:08.848
You can see it on the status bar at the
+bottom there.
-00:09:07.600 --> 00:09:10.480
-bottom there. Enter to insert,
-
-00:09:10.480 --> 00:09:13.839
-escape to normal, escape to symex.
+00:09:08.848 --> 00:09:13.839
+Enter to insert, escape to normal,
+escape to symex.
-00:09:13.839 --> 00:09:16.480
-In fact, you can even add more modes if
+00:09:13.839 --> 00:09:16.344
+In fact, you can even add more modes
-00:09:16.480 --> 00:09:19.380
-you don't like the existing ones.
+00:09:16.344 --> 00:09:19.380
+if you don't like the existing ones.
00:09:21.519 --> 00:09:23.839
Now we have an additional mode here.
-00:09:23.839 --> 00:09:25.440
-We have window mode. It goes down to
+00:09:23.839 --> 00:09:25.855
+We have window mode. It goes
+down to symex,
-00:09:25.440 --> 00:09:27.519
-symex, it goes down to normal.
+00:09:25.855 --> 00:09:27.519
+it goes down to normal.
-00:09:27.519 --> 00:09:30.320
-Enter the insert, escape to normal, escape
+00:09:27.519 --> 00:09:29.919
+Enter the insert, escape to normal,
-00:09:30.320 --> 00:09:33.600
-to symex, escape to window.
+00:09:29.919 --> 00:09:33.600
+escape to symex, escape to window.
-00:09:33.600 --> 00:09:37.600
+00:09:33.600 --> 00:09:41.232
So we've talked... Okay, so another thing
+actually to note here
-00:09:37.600 --> 00:09:41.760
-actually to note here is that in editing
+00:09:41.232 --> 00:09:45.360
+is that in editing modes,
-00:09:41.760 --> 00:09:45.360
-modes,
+00:09:45.360 --> 00:09:46.486
+if you look at the mode line
-00:09:45.360 --> 00:09:46.720
-if you look at the mode line at the
+00:09:46.486 --> 00:09:48.399
+at the bottom of the screen,
-00:09:46.720 --> 00:09:48.399
-bottom of the screen,
+00:09:48.399 --> 00:09:50.257
+you'll see that we are currently,
-00:09:48.399 --> 00:09:50.640
-you'll see that we are currently, in this
-
-00:09:50.640 --> 00:09:51.519
-buffer,
+00:09:50.257 --> 00:09:51.519
+in this buffer,
00:09:51.519 --> 00:09:54.560
we are currently in line mode.
-00:09:54.560 --> 00:09:57.600
-I'm going to hit Enter now and
+00:09:54.560 --> 00:09:57.296
+I'm going to hit Enter now
-00:09:57.600 --> 00:09:58.720
-you'll see that when I hit
+00:09:57.296 --> 00:09:59.119
+and you'll see that when I hit Enter,
-00:09:58.720 --> 00:10:01.519
-Enter, nothing is happening. It's still in
+00:09:59.119 --> 00:10:00.627
+nothing is happening.
-00:10:01.519 --> 00:10:02.160
-line mode.
+00:10:00.627 --> 00:10:02.160
+It's still in line mode.
00:10:02.160 --> 00:10:05.120
If you hit Escape, it's still in line mode.
@@ -774,308 +675,232 @@ and line mode is the only one available
00:10:17.360 --> 00:10:19.519
in this tower
-00:10:19.519 --> 00:10:21.760
-for editing the modes that are in
+00:10:19.519 --> 00:10:21.556
+for editing the modes that are
-00:10:21.760 --> 00:10:24.880
-operation in your ground level.
+00:10:21.556 --> 00:10:24.880
+in operation in your ground level.
-00:10:24.880 --> 00:10:26.560
+00:10:24.880 --> 00:10:26.898
In fact, line mode is all you need
+here,
-00:10:26.560 --> 00:10:28.320
-here, because this is just
-
-00:10:28.320 --> 00:10:30.320
-the nature of how these modes are
-
-00:10:30.320 --> 00:10:32.079
-laid out is
-
-00:10:32.079 --> 00:10:35.040
-in rows. So line mode is the most
+00:10:26.898 --> 00:10:32.796
+because this is just the nature of how
+these modes are laid out is in rows.
-00:10:35.040 --> 00:10:36.399
-appropriate thing here.
+00:10:32.796 --> 00:10:36.399
+So line mode is the most appropriate
+thing here.
-00:10:36.399 --> 00:10:37.680
+00:10:36.399 --> 00:10:39.740
But you could change it to something
-
-00:10:37.680 --> 00:10:39.740
else if you like.
-00:10:40.959 --> 00:10:44.160
-Now we've seen two towers. We've
-
-00:10:44.160 --> 00:10:44.560
-seen
+00:10:40.959 --> 00:10:43.659
+Now we've seen two towers.
-00:10:44.560 --> 00:10:48.079
-the Vim tower and we've seen
-
-00:10:48.079 --> 00:10:53.680
+00:10:43.659 --> 00:10:53.680
+We've seen the Vim tower and we've seen
also the symex tower, the Lisp tower.
-00:10:53.680 --> 00:10:56.959
+00:10:53.680 --> 00:10:58.880
It turns out that, because we've been
-
-00:10:56.959 --> 00:10:58.880
talking about towers now,
-00:10:58.880 --> 00:11:01.519
-by the rumpelstiltskin principle, towers
+00:10:58.880 --> 00:11:06.399
+by the Rumpelstiltskin principle, towers
+also can be talked about,
-00:11:01.519 --> 00:11:02.800
-also
+00:11:06.399 --> 00:11:09.127
+and therefore they also are a mode.
-00:11:02.800 --> 00:11:06.399
-can be talked about,
-
-00:11:06.399 --> 00:11:09.279
-and therefore they also are a mode. So
-
-00:11:09.279 --> 00:11:11.200
-how do we go to tower mode?
+00:11:09.127 --> 00:11:11.200
+So how do we go to tower mode?
00:11:11.200 --> 00:11:14.640
-The way we go to tower mode is
+The way we go to tower mode is
00:11:14.640 --> 00:11:19.200
we go in a slightly different direction,
-00:11:19.200 --> 00:11:20.800
+00:11:19.200 --> 00:11:23.360
and we find that we are now in tower
-
-00:11:20.800 --> 00:11:23.360
mode.
-00:11:23.360 --> 00:11:27.440
+00:11:23.360 --> 00:11:29.279
We see that there are many towers
-
-00:11:27.440 --> 00:11:29.279
available. We're now...
-00:11:29.279 --> 00:11:32.640
-We're seeing several possible
+00:11:29.279 --> 00:11:33.440
+We're seeing several possible towers
-00:11:32.640 --> 00:11:36.240
-towers that we have written
+00:11:33.440 --> 00:11:40.344
+that we have written to be available and
+for use in different buffers.
-00:11:36.240 --> 00:11:39.120
-to be available and for use in
+00:11:40.344 --> 00:11:42.110
+You can edit them on the fly.
-00:11:39.120 --> 00:11:41.440
-different buffers. You can edit them
+00:11:42.110 --> 00:11:46.630
+For instance, let's enter this tower.
-00:11:41.440 --> 00:11:44.000
-on the fly. For instance, let's enter this
-
-00:11:44.000 --> 00:11:46.630
-tower.
-
-00:11:48.000 --> 00:11:49.920
+00:11:48.000 --> 00:11:50.180
Now you see that in the bottom of
+the...
-00:11:49.920 --> 00:11:51.519
-the... In the mode line, you see that we're
-
-00:11:51.519 --> 00:11:52.480
-going
+00:11:50.180 --> 00:11:51.519
+In the mode line, you see that we're
-00:11:52.480 --> 00:11:54.240
-across all of these different modes that
+00:11:51.519 --> 00:11:53.944
+going across all of these
+different modes
-00:11:54.240 --> 00:11:56.480
-were in the tower.
+00:11:53.944 --> 00:11:56.480
+that were in the tower.
-00:11:56.480 --> 00:11:58.800
-You could escape and you could even
+00:11:56.480 --> 00:11:59.724
+You could escape and you could even move
+things around.
-00:11:58.800 --> 00:12:00.399
-move things around. You could put window
+00:11:59.724 --> 00:12:00.880
+You could put window mode
-00:12:00.399 --> 00:12:00.880
-mode
+00:12:00.880 --> 00:12:02.573
+all the way at the bottom,
-00:12:00.880 --> 00:12:02.399
-all the way at the bottom, right above
+00:12:02.573 --> 00:12:04.079
+right above insert mode.
-00:12:02.399 --> 00:12:04.079
-insert mode.
+00:12:04.079 --> 00:12:06.479
+Let's see that happen. There it is,
-00:12:04.079 --> 00:12:06.880
-Let's see that happen. There it is, window
+00:12:06.479 --> 00:12:10.444
+window is right above insert, and
+so on.
-00:12:06.880 --> 00:12:09.839
-is right above insert, and
+00:12:10.444 --> 00:12:14.240
+The tower always reflects your current
+position,
-00:12:09.839 --> 00:12:13.040
-so on. The tower always reflects your
-
-00:12:13.040 --> 00:12:14.240
-current position,
-
-00:12:14.240 --> 00:12:15.760
+00:12:14.240 --> 00:12:17.600
so if you're in buffer mode here and you
-
-00:12:15.760 --> 00:12:17.600
go down to line mode,
-00:12:17.600 --> 00:12:19.120
+00:12:17.600 --> 00:12:22.480
when you go back to mode mode, you see
-
-00:12:19.120 --> 00:12:22.480
that we are in line mode.
-00:12:22.480 --> 00:12:24.000
+00:12:22.480 --> 00:12:25.620
But in practice, you wouldn't have a
+tower this elaborate
-00:12:24.000 --> 00:12:26.160
-tower this elaborate because
-
-00:12:26.160 --> 00:12:28.959
-you'd rather have several smaller towers
-
-00:12:28.959 --> 00:12:29.440
-you enter,
+00:12:25.620 --> 00:12:29.440
+because you'd rather have several
+smaller towers you enter,
00:12:29.440 --> 00:12:33.360
that you alternate between.
-00:12:33.360 --> 00:12:36.639
-Okay. So one
-
-00:12:36.639 --> 00:12:39.839
-other thing of interest here is that
+00:12:33.360 --> 00:12:39.839
+Okay. So one other thing of interest
+here is that
00:12:39.839 --> 00:12:42.240
when you're in tower mode,
-00:12:42.240 --> 00:12:43.839
+00:12:42.240 --> 00:12:44.740
if you look at the status line at the
+bottom there,
-00:12:43.839 --> 00:12:45.920
-bottom there, we are currently
+00:12:44.740 --> 00:12:49.839
+we are currently in buffer mode while we
+are in tower mode.
-00:12:45.920 --> 00:12:49.200
-in buffer mode while we are in tower
+00:12:49.839 --> 00:12:53.151
+Tower mode actually isn't a mode really.
+Neither is mode mode.
-00:12:49.200 --> 00:12:49.839
-mode.
+00:12:53.151 --> 00:12:58.000
+They're really referential planes or
+meta planes.
-00:12:49.839 --> 00:12:51.600
-Tower mode actually isn't a mode
-
-00:12:51.600 --> 00:12:53.519
-really. Neither is mode mode. They're
-
-00:12:53.519 --> 00:12:53.920
-really
-
-00:12:53.920 --> 00:12:58.000
-referential planes or meta planes.
-
-00:12:58.000 --> 00:13:00.959
+00:12:58.000 --> 00:13:01.679
In any case, you can see that we're in
+buffer mode.
-00:13:00.959 --> 00:13:03.120
-buffer mode. We can take a meta jump
-
-00:13:03.120 --> 00:13:04.560
-out of this to confirm
-
-00:13:04.560 --> 00:13:07.120
-that buffer mode is the only mode
-
-00:13:07.120 --> 00:13:08.000
-available
+00:13:01.679 --> 00:13:03.840
+We can take a meta jump out of this
-00:13:08.000 --> 00:13:10.560
-when we're editing towers because that's
+00:13:03.840 --> 00:13:08.000
+to confirm that buffer mode is the only
+mode available
-00:13:10.560 --> 00:13:11.200
-the one
+00:13:08.000 --> 00:13:09.664
+when we're editing towers
-00:13:11.200 --> 00:13:14.240
-we need, given that our towers are
+00:13:09.664 --> 00:13:11.915
+because that's the one we need,
-00:13:14.240 --> 00:13:15.200
-represented
+00:13:11.915 --> 00:13:23.200
+given that our towers are represented in
+individual buffers.
-00:13:15.200 --> 00:13:23.200
-in individual buffers.
+00:13:23.200 --> 00:13:26.320
+Right. So let's see where we're at.
-00:13:23.200 --> 00:13:26.000
-Right. So let's see where we're
+00:13:26.320 --> 00:13:27.785
+Rumpelstiltskin principle...
-00:13:26.000 --> 00:13:26.320
-at.
-
-00:13:26.320 --> 00:13:28.240
-Rumpelstiltskin principle... We talked
-
-00:13:28.240 --> 00:13:30.160
-about mode mode.
+00:13:27.785 --> 00:13:30.160
+We talked about mode mode.
00:13:30.160 --> 00:13:32.240
We talked about the strange loop
-00:13:32.240 --> 00:13:33.920
-application of
-
-00:13:33.920 --> 00:13:37.820
-ground level modes in meta levels.
-
-00:13:39.600 --> 00:13:42.240
-We saw the different towers, and
-
-00:13:42.240 --> 00:13:43.199
-in fact,
-
-00:13:43.199 --> 00:13:46.639
-we're currently in
-
-00:13:46.639 --> 00:13:50.720
-Vim tower,
-
-00:13:50.720 --> 00:13:53.120
-where you can go to Emacs tower. Now,
+00:13:32.240 --> 00:13:37.820
+application of ground level modes in
+meta levels.
-00:13:53.120 --> 00:13:54.720
-with a single keystroke, you can
+00:13:39.600 --> 00:13:41.992
+We saw the different towers,
-00:13:54.720 --> 00:13:55.760
-alternate
+00:13:41.992 --> 00:13:50.720
+and in fact, we're currently
+in Vim tower,
-00:13:55.760 --> 00:13:59.040
-between Emacs
+00:13:50.720 --> 00:13:52.860
+where you can go to Emacs tower.
-00:13:59.040 --> 00:14:02.399
-and Vim, which are represented--which are
+00:13:52.860 --> 00:13:54.720
+Now, with a single keystroke, you can
-00:14:02.399 --> 00:14:05.519
-modeled as towers.
+00:13:54.720 --> 00:13:59.695
+alternate between Emacs and Vim,
-00:14:13.360 --> 00:14:15.360
-So there's... One thing that we've
+00:13:59.695 --> 00:14:01.638
+which are represented--
-00:14:15.360 --> 00:14:17.040
-sort of alluded to is that there are two
+00:14:01.638 --> 00:14:05.519
+which are modeled as towers.
-00:14:17.040 --> 00:14:18.160
-directions
+00:14:13.360 --> 00:14:14.760
+So there's... One thing
-00:14:18.160 --> 00:14:20.480
-that you can travel in when you're going
+00:14:14.760 --> 00:14:18.160
+that we've sort of alluded to is that
+there are two directions
-00:14:20.480 --> 00:14:22.399
-through this framework.
+00:14:18.160 --> 00:14:19.494
+that you can travel in
-00:14:22.399 --> 00:14:25.120
-One direction is--and we'll
+00:14:19.494 --> 00:14:22.399
+when you're going through this
+framework.
-00:14:25.120 --> 00:14:33.760
-visualize it like so...
+00:14:22.399 --> 00:14:33.760
+One direction is--and we'll visualize it
+like so...
00:14:33.760 --> 00:14:35.120
There's two directions you can travel,
@@ -1086,67 +911,53 @@ and you can either go sideways or you
00:14:37.040 --> 00:14:38.399
can go up and down.
-00:14:38.399 --> 00:14:40.399
+00:14:38.399 --> 00:14:41.680
If you go sideways, you're changing your
-
-00:14:40.399 --> 00:14:41.680
perspective.
00:14:41.680 --> 00:14:45.440
So normal mode, word mode, line mode,
-00:14:45.440 --> 00:14:47.360
-window mode, and so on are all different
-
-00:14:47.360 --> 00:14:49.120
-perspectives on your
+00:14:45.440 --> 00:14:46.544
+window mode, and so on
-00:14:49.120 --> 00:14:51.680
+00:14:46.544 --> 00:14:51.680
+are all different perspectives on your
ground editing experience.
-00:14:51.680 --> 00:14:53.040
-The other direction you can travel
-
-00:14:53.040 --> 00:14:55.519
-in is up or down, which takes you
-
-00:14:55.519 --> 00:14:57.920
-through meta levels. So you go from the
+00:14:51.680 --> 00:14:53.265
+The other direction you can travel in
-00:14:57.920 --> 00:14:59.600
-ground level editing experience
+00:14:53.265 --> 00:14:56.811
+is up or down, which takes you through
+meta levels.
-00:14:59.600 --> 00:15:01.920
-up to mode mode and then up to the tower
+00:14:56.811 --> 00:14:59.600
+So you go from the ground level
+editing experience,
-00:15:01.920 --> 00:15:03.440
-plane and so on
+00:14:59.600 --> 00:15:07.040
+up to mode mode, and then up to the
+tower plane, and so on, and so on.
-00:15:03.440 --> 00:15:07.040
-and so on.
+00:15:07.040 --> 00:15:12.568
+So this all sounds very complex,
-00:15:07.040 --> 00:15:10.800
-So this all sounds
+00:15:12.568 --> 00:15:18.160
+but the truth is it's not really that
+complicated,
-00:15:10.800 --> 00:15:14.880
-very complex, but the truth is
+00:15:18.160 --> 00:15:20.699
+even though it feels that way.
-00:15:14.880 --> 00:15:18.160
-it's not really that complicated
-
-00:15:18.160 --> 00:15:21.519
-even though it feels that way. The reason
-
-00:15:21.519 --> 00:15:22.959
-it isn't that complicated
+00:15:20.699 --> 00:15:22.959
+The reason it isn't that complicated
00:15:22.959 --> 00:15:26.480
is because no matter how many levels
-00:15:26.480 --> 00:15:28.800
+00:15:26.480 --> 00:15:30.160
up or down you go and no matter where
-
-00:15:28.800 --> 00:15:30.160
you are,
00:15:30.160 --> 00:15:32.399
@@ -1155,131 +966,102 @@ whether you're in at the ground level
00:15:32.399 --> 00:15:34.079
editing the actual text
-00:15:34.079 --> 00:15:36.000
-or whether you're at a meta level, some
+00:15:34.079 --> 00:15:35.802
+or whether you're at a meta level,
-00:15:36.000 --> 00:15:37.600
-unknown meta level and you don't know
+00:15:35.802 --> 00:15:39.279
+some unknown meta level and you don't
+know where you are,
-00:15:37.600 --> 00:15:39.279
-where you are,
+00:15:39.279 --> 00:15:41.133
+no matter where you are,
-00:15:39.279 --> 00:15:42.320
-no matter where you are, the way in which
-
-00:15:42.320 --> 00:15:44.399
-you interact with it
+00:15:41.133 --> 00:15:44.399
+the way in which you interact with it
00:15:44.399 --> 00:15:47.519
is the same at every level.
-00:15:47.519 --> 00:15:52.000
-That is the great power of
-
-00:15:52.000 --> 00:15:55.440
-this approach: that
+00:15:47.519 --> 00:15:54.751
+That is the great power of this
+approach:
-00:15:55.440 --> 00:15:58.720
-all of the different levels are the
-
-00:15:58.720 --> 00:16:00.880
-same.
+00:15:54.751 --> 00:16:00.880
+that all of the different levels
+are the same.
00:16:00.880 --> 00:16:03.839
In fact, the complexity of the whole
-00:16:03.839 --> 00:16:05.759
-is exactly identical to the
-
-00:16:05.759 --> 00:16:08.720
-complexity of each part, so if you know
-
-00:16:08.720 --> 00:16:10.000
-how to edit words
-
-00:16:10.000 --> 00:16:12.959
-in the ground level buffer and you know
-
-00:16:12.959 --> 00:16:13.440
-how to move
+00:16:03.839 --> 00:16:05.545
+is exactly identical to
-00:16:13.440 --> 00:16:15.839
-lines around using line mode, then you
+00:16:05.545 --> 00:16:07.657
+the complexity of each part,
-00:16:15.839 --> 00:16:16.720
-know how to edit
+00:16:07.657 --> 00:16:10.000
+so if you know how to edit words
-00:16:16.720 --> 00:16:19.519
-any aspect of your editing experience at
+00:16:10.000 --> 00:16:12.048
+in the ground level buffer
-00:16:19.519 --> 00:16:22.800
-any level.
+00:16:12.048 --> 00:16:15.378
+and you know how to move lines around
+using line mode,
-00:16:30.079 --> 00:16:32.000
-So this is a pre-release demo. This
+00:16:15.378 --> 00:16:22.800
+then you know how to edit any aspect of
+your editing experience at any level.
-00:16:32.000 --> 00:16:33.839
-doesn't exist on MELPA
+00:16:30.079 --> 00:16:31.780
+So this is a pre-release demo.
-00:16:33.839 --> 00:16:36.880
-yet, but you can follow updates
+00:16:31.780 --> 00:16:40.079
+This doesn't exist on MELPA yet, but you
+can follow updates at this repo on
+github.
-00:16:36.880 --> 00:16:40.079
-at this repo on github.
+00:16:40.079 --> 00:16:43.850
+If you can also be a beta tester
-00:16:40.079 --> 00:16:44.079
-If you can also be a beta tester or
+00:16:43.850 --> 00:16:46.775
+or something like that, if you like,
+that would be very helpful.
-00:16:44.079 --> 00:16:45.199
-something like that, if you like, that
-
-00:16:45.199 --> 00:16:46.000
-would be very
-
-00:16:46.000 --> 00:16:49.199
-helpful. You can learn more about
-
-00:16:49.199 --> 00:16:50.560
-this at
+00:16:46.775 --> 00:16:50.560
+You can learn more about this at
00:16:50.560 --> 00:16:53.920
drym.org, which is where I house
-00:16:53.920 --> 00:16:55.920
-the research that I work on. In
-
-00:16:55.920 --> 00:16:57.279
-particular
+00:16:53.920 --> 00:16:55.726
+the research that I work on.
-00:16:57.279 --> 00:17:00.800
-the research on epistemic levels is what
+00:16:55.726 --> 00:17:00.154
+In particular, the research on epistemic
+levels
-00:17:00.800 --> 00:17:03.600
-inspired this particular Emacs extension.
+00:17:00.154 --> 00:17:03.600
+is what inspired this particular Emacs
+extension.
-00:17:03.600 --> 00:17:06.480
-You can also learn about dialectical
+00:17:03.600 --> 00:17:05.600
+You can also learn about
-00:17:06.480 --> 00:17:08.480
-inheritance attribution, which is the
-
-00:17:08.480 --> 00:17:10.880
-basis of
+00:17:05.600 --> 00:17:10.880
+dialectical inheritance attribution,
+which is the basis of
00:17:10.880 --> 00:17:14.559
a new economic system that could be fair
-00:17:14.559 --> 00:17:16.959
+00:17:14.559 --> 00:17:19.439
and could lead to a prosperous and happy
-
-00:17:16.959 --> 00:17:19.439
world.
-00:17:19.439 --> 00:17:22.799
-You can follow me on
-
-00:17:22.799 --> 00:17:26.319
-Twitter at @countvajhula.
+00:17:19.439 --> 00:17:26.319
+You can follow me on Twitter at
+@countvajhula.
00:17:26.319 --> 00:17:31.919
That's it! Thank you.
diff --git a/2020/subtitles/emacsconf-2020--20-omg-macros--corwin-brust.vtt b/2020/subtitles/emacsconf-2020--20-omg-macros--corwin-brust.vtt
index 21222a11..a2e0ccae 100644
--- a/2020/subtitles/emacsconf-2020--20-omg-macros--corwin-brust.vtt
+++ b/2020/subtitles/emacsconf-2020--20-omg-macros--corwin-brust.vtt
@@ -30,7 +30,7 @@ have some time.)
([Amin:] Yeah, go for it.)
00:00:19.039 --> 00:00:20.720
-Well, I'll just drive into my
+Well, I'll just dive into my
00:00:20.720 --> 00:00:22.384
prepared thing here then.
diff --git a/2020/subtitles/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--questions--zachary-kanfer-autogen.vtt b/2020/subtitles/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--questions--zachary-kanfer.vtt
index 3c8dd20c..c60bd115 100644
--- a/2020/subtitles/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--questions--zachary-kanfer-autogen.vtt
+++ b/2020/subtitles/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--questions--zachary-kanfer.vtt
@@ -1,286 +1,274 @@
WEBVTT
00:00:02.800 --> 00:00:09.200
-I can yes
+I can, yes.
00:00:09.200 --> 00:00:13.120
-okay um yeah so I'm uh zachary canfer
+Okay, yeah, so I'm Zachary Kanfer,
00:00:13.120 --> 00:00:14.920
let's go to the
00:00:14.920 --> 00:00:17.520
-questions uh the first question uh why
+questions. The first question, "Why
00:00:17.520 --> 00:00:19.119
do we go top to bottom for time
00:00:19.119 --> 00:00:19.840
-progression
+progression,
00:00:19.840 --> 00:00:23.920
-uh and left to right uh for low to high
+and left to right for low to high?"
00:00:23.920 --> 00:00:27.279
-interesting I think uh so the initial
+Interesting, I think…, so the initial
00:00:27.279 --> 00:00:30.000
-uh thing I was copying that initial app
+thing I was copying, that initial app
-00:00:30.000 --> 00:00:31.599
-work this way
-
-00:00:31.599 --> 00:00:35.280
-um and
+00:00:30.000 --> 00:00:35.280
+work this way, and
00:00:35.280 --> 00:00:36.960
-yeah I mean certainly traditional music
+yeah, I mean, certainly traditional music,
00:00:36.960 --> 00:00:38.960
-you know on a staff uh
+you know, on a staff
00:00:38.960 --> 00:00:43.040
-does go left to right uh like this
+does go left to right like this.
00:00:43.040 --> 00:00:46.000
-um I mean going top to bottom does make
+I mean, going top to bottom does make
00:00:46.000 --> 00:00:47.440
it easier to add more beats without
00:00:47.440 --> 00:00:48.960
-having to wrap but certainly that could
+having to wrap, but certainly that could
00:00:48.960 --> 00:00:49.920
-be managed
+be managed.
00:00:49.920 --> 00:00:52.239
-um yeah I I had not really thought about
+Yeah, I had not really thought about
00:00:52.239 --> 00:00:53.760
-it but it is definitely something worth
+it, but it is definitely something worth
00:00:53.760 --> 00:00:55.199
-looking into
+looking into.
00:00:55.199 --> 00:01:02.480
-uh yeah you are now unmuted
+Yeah.
00:01:02.480 --> 00:01:05.680
-ah good point thank you let me go ahead
+Ah, good point, thank you. Let me go ahead
00:01:05.680 --> 00:01:06.960
-and do that
+and do that.
00:01:06.960 --> 00:01:14.240
-uh the entire screen
+The entire screen…
00:01:14.240 --> 00:01:16.880
-okay so the screen share should be
+Okay, so the screen share should be
00:01:16.880 --> 00:01:18.320
-starting
+starting,
00:01:18.320 --> 00:01:21.439
-there we go cool all right uh
+there we go. Cool, all right.
00:01:21.439 --> 00:01:24.880
-two will be placed on the song um not
+Two, "Will you play us another song?" Not
00:01:24.880 --> 00:01:26.640
-now I can I can make some recordings of
+now, I can make some recordings of
00:01:26.640 --> 00:01:28.080
-it or certainly you can try it
+it, or certainly you can try it.
00:01:28.080 --> 00:01:30.720
-um I couldn't quite get the the
+I couldn't quite get the
00:01:30.720 --> 00:01:33.119
microphone and the webcam and everything
00:01:33.119 --> 00:01:37.040
-to work with the sound playing now um so
+to work with the sound playing now. So,
00:01:37.040 --> 00:01:40.079
-uh I can record some also please uh
+I can record some. Also, please…
00:01:40.079 --> 00:01:43.520
-I put a link at the uh here in the uh
+I have put a link at the… here in the
00:01:43.520 --> 00:01:46.640
-etherpad https://zck.me/emacsconf2020
+Etherpad, zck.org/emacsconf2020 [updated],
00:01:46.640 --> 00:01:48.479
-where you can go and get the source
+where you can go and get the source,
00:01:48.479 --> 00:01:49.920
-and you can try it yourself uh there's
+and you can try it yourself. There's
00:01:49.920 --> 00:01:51.920
-no dependencies needed so it's just all
+no dependencies needed, so it's just all
00:01:51.920 --> 00:01:54.560
-in Emacs um so please you know try it
+in Emacs. So, please, you know, try it
00:01:54.560 --> 00:01:57.040
-yourself
+yourself.
00:01:57.040 --> 00:02:00.079
-any chance for an Emacs tracker or mod
+"Any chance for an Emacs tracker or mod
00:02:00.079 --> 00:02:01.040
-player
+player?"
00:02:01.040 --> 00:02:03.680
-um I don't really know what a mod player
+I don't really know what a mod player
00:02:03.680 --> 00:02:04.479
or tracker
00:02:04.479 --> 00:02:08.000
-are but I mean I'm sure
+are, but I mean, I'm sure
00:02:08.000 --> 00:02:09.679
-that would be cool uh maybe there's one
+that would be cool, maybe there's one
00:02:09.679 --> 00:02:11.599
-on now but I don't know uh
+on now, but I don't know.
00:02:11.599 --> 00:02:13.920
-my musical background so I've played
+My musical background. So, I've played
00:02:13.920 --> 00:02:15.200
various instruments since about the
00:02:15.200 --> 00:02:15.840
-third grade
+third grade.
00:02:15.840 --> 00:02:18.160
-uh started recorder uh play cello I play
+Started recorder, play cello, I play
00:02:18.160 --> 00:02:19.520
-guitar now
+guitar now.
00:02:19.520 --> 00:02:22.560
-um but yeah so just kind of random
+But yeah, so just kind of random
00:02:22.560 --> 00:02:23.680
-instruments and
+instruments, and
00:02:23.680 --> 00:02:26.959
-uh yeah I guess kind of some of those
+I guess kind of some of those
00:02:26.959 --> 00:02:27.280
things
00:02:27.280 --> 00:02:30.480
-influence how I think about music um
-
-00:02:30.480 --> 00:02:33.519
-uh yeah um
+influence how I think about music.
00:02:33.519 --> 00:02:35.360
-are there any open source musical
+"Are there any open source musical
00:02:35.360 --> 00:02:36.640
management sample libraries that could
00:02:36.640 --> 00:02:37.840
-be used
+be used?"
00:02:37.840 --> 00:02:41.200
-um good question I'm sure there are um I
+Good question, I'm sure there are, I
00:02:41.200 --> 00:02:42.400
-don't know any that integrate really
+don't know any of that integrate really
00:02:42.400 --> 00:02:43.360
-well with Emacs
+well with Emacs.
00:02:43.360 --> 00:02:44.560
-one of the cool things that I liked
+One of the cool things that I liked
00:02:44.560 --> 00:02:45.680
about this is that there are no
00:02:45.680 --> 00:02:47.440
-dependencies
+dependencies,
00:02:47.440 --> 00:02:49.360
-you know you don't need any external
+you know, you don't need any external
00:02:49.360 --> 00:02:50.800
program to
00:02:50.800 --> 00:02:53.040
-uh generate the music I mean it it does
+generate the music. I mean, it does
00:02:53.040 --> 00:02:54.160
shell out to
00:02:54.160 --> 00:02:57.280
-to play um but that
+to play, but that
00:02:57.280 --> 00:02:58.640
should be able to be done on any
00:02:58.640 --> 00:02:59.840
-operating system as always you have
+operating system, as always, you have
00:02:59.840 --> 00:03:03.519
-something that can play wav files
+something that can play WAVE files,
00:03:03.519 --> 00:03:05.599
-um but yeah it is interesting to kind of
-
-00:03:05.599 --> 00:03:06.879
-try the different
+but yeah, it is interesting to kind of
-00:03:06.879 --> 00:03:10.000
-uh different sounds and different
+00:03:05.599 --> 00:03:10.000
+try the different sounds and different
00:03:10.000 --> 00:03:12.239
-tones uh that you could get with
+tones that you could get with
00:03:12.239 --> 00:03:14.400
-different instruments
+different instruments.
00:03:14.400 --> 00:03:16.959
-have I written any actual songs um
+Have I written any actual songs?
-00:03:16.959 --> 00:03:17.599
-nothing
-
-00:03:17.599 --> 00:03:21.040
-super uh
+00:03:16.959 --> 00:03:21.040
+Nothing super
00:03:21.040 --> 00:03:23.680
-uh well put together just I kind of just
+well put together, I kind of just
00:03:23.680 --> 00:03:25.519
-been playing around with this
+been playing around with this.
00:03:25.519 --> 00:03:27.440
-it's kind of I making this was one of
+It's kind of… making this was one of
00:03:27.440 --> 00:03:29.040
-those things where like once I made it I
+those things where once I made it, I
00:03:29.040 --> 00:03:30.080
-was like okay
+was like, okay,
00:03:30.080 --> 00:03:31.280
-now I can play with it and I did a
+now I can play with it, and I did a
00:03:31.280 --> 00:03:32.720
-little bit and was like I don't know if
+little bit, and was like, I don't know if
00:03:32.720 --> 00:03:33.920
-I feel like it right now
+I feel like it right now.
00:03:33.920 --> 00:03:37.280
-you know which I've I've found that to
+You know, which I've found that to
00:03:37.280 --> 00:03:38.720
be the case with some things that I've
@@ -289,7 +277,7 @@ be the case with some things that I've
implemented
00:03:39.599 --> 00:03:41.360
-in Emacs where it's I make it and then
+in Emacs where it's… I make it, and then
00:03:41.360 --> 00:03:43.519
it's the kind of some of the desire to
@@ -298,7 +286,7 @@ it's the kind of some of the desire to
use it all the time
00:03:44.480 --> 00:03:46.879
-goes away but I'm sure I'll circle back
+goes away, but I'm sure I'll circle back
00:03:46.879 --> 00:03:47.760
around
@@ -310,121 +298,118 @@ at some point especially kind of maybe
once I add in different tones or
00:03:52.400 --> 00:03:54.640
-something
+something.
00:03:54.640 --> 00:03:56.400
I guess a similar question for
00:03:56.400 --> 00:03:57.840
-pre-recorded sounds yeah I mean
+pre-recorded sounds. Yeah, I mean,
00:03:57.840 --> 00:04:01.120
-if it's part of what I did what I wrote
+if it's… part of what I did, what I wrote
00:04:01.120 --> 00:04:02.080
was a
00:04:02.080 --> 00:04:04.720
-wave generation library so if you kind
+WAVE generation library, so, if you kind
00:04:04.720 --> 00:04:06.720
-of have the data
+of have the data,
00:04:06.720 --> 00:04:08.400
-you could use those and like chop them
+you could use those and chop them
00:04:08.400 --> 00:04:10.159
up and take certain lengths of them
00:04:10.159 --> 00:04:13.360
-and make a wav file so it's not plug and
+and make a WAVE file, so it's not plug and
00:04:13.360 --> 00:04:14.959
-play right now but you could certainly
+play right now, but you could certainly
00:04:14.959 --> 00:04:19.120
-add those notes uh to do it
-
-00:04:19.120 --> 00:04:21.040
-um any knitting midi mapping
+add those notes to do it.
-00:04:21.040 --> 00:04:22.720
-possibilities um
+00:04:19.120 --> 00:04:22.720
+"Any MIDI mapping possibilities?"
00:04:22.720 --> 00:04:24.560
-I haven't looked into it but I'm sure
+I haven't looked into it, but I'm sure
00:04:24.560 --> 00:04:26.160
-you definitely could output to midi
+you definitely could output to MIDI
00:04:26.160 --> 00:04:28.800
-um which is another benefit of having
+which is another benefit of having
00:04:28.800 --> 00:04:30.400
that multiple layers with the top layer
00:04:30.400 --> 00:04:31.520
-is just like
+is just,
00:04:31.520 --> 00:04:33.360
-um you know if the root note is this
+you know, if the root note is this,
00:04:33.360 --> 00:04:35.120
we're just two semitones up or seven
00:04:35.120 --> 00:04:36.560
-semitones up or whatever it is
+semitones up or whatever it is.
00:04:36.560 --> 00:04:38.160
-uh it should be relatively simple to
+It should be relatively simple to
00:04:38.160 --> 00:04:40.720
kind of switch out that layer underneath
00:04:40.720 --> 00:04:44.479
-uh from wave to midi or other things
+from WAVE to MIDI or other things.
00:04:44.479 --> 00:04:45.759
-what were some of the challenges with
+"What were some of the challenges with
00:04:45.759 --> 00:04:47.520
-writing a special mode for Emacs
+writing a special mode for Emacs?"
00:04:47.520 --> 00:04:49.759
-uh interested in getting into this not
+Interested in getting into this, not
00:04:49.759 --> 00:04:51.040
-sure where to start
+sure where to start.
00:04:51.040 --> 00:04:54.960
-um there uh yeah it so
+There… yeah, it so…
00:04:54.960 --> 00:04:57.120
-this isn't the first mode I've written
+this isn't the first mode I've written,
00:04:57.120 --> 00:04:58.320
-um so that's right
+so that's right…,
00:04:58.320 --> 00:05:01.759
-certainly that helps um I actually
+certainly that helps. I actually…
00:05:01.759 --> 00:05:05.600
-um I have a video that we recorded it
+I have a video that we recorded it
00:05:05.600 --> 00:05:08.240
-as part of Emacs nyc on making a major
+as part of EmacsNYC on making a major
00:05:08.240 --> 00:05:09.039
-mode
+mode.
00:05:09.039 --> 00:05:10.720
-that's basically like starts from
+That's basically starts from
00:05:10.720 --> 00:05:12.639
-nothing and kind of builds up to
+nothing, and kind of builds up to
00:05:12.639 --> 00:05:15.680
-an implementation of tic-tac-toe um
+an implementation of tic-tac-toe,
00:05:15.680 --> 00:05:17.039
but so it kind of goes into printing
@@ -433,76 +418,73 @@ but so it kind of goes into printing
things out and buttons and making the
00:05:19.600 --> 00:05:21.280
-mode
+mode.
00:05:21.280 --> 00:05:22.800
-I mean one of the best parts about Emacs
+I mean, one of the best parts about Emacs
00:05:22.800 --> 00:05:24.560
-is because it's so
+is, because it's so
00:05:24.560 --> 00:05:26.479
-uh configurable and so introspectible
+configurable and so introspectible,
00:05:26.479 --> 00:05:28.479
-you can start pretty simply
+you can start pretty simply,
00:05:28.479 --> 00:05:30.320
-and just kind of asking max about things
+and just kind of ask Emacs about things,
00:05:30.320 --> 00:05:32.320
and then make one little
00:05:32.320 --> 00:05:34.960
-change um it's really it's not that bad
-
-00:05:34.960 --> 00:05:36.479
-so uh
+change. It's really… it's not that bad,
-00:05:36.479 --> 00:05:39.039
-I'll try to throw a link up on that uh
+00:05:34.960 --> 00:05:39.039
+so, I'll try to throw a link up on that
00:05:39.039 --> 00:05:40.560
-on on that page I put up or
+page I put up, or
00:05:40.560 --> 00:05:42.000
please email me for whoever asked this
00:05:42.000 --> 00:05:44.479
-question uh to get a link to that video
+question to get a link to that video,
00:05:44.479 --> 00:05:46.240
-um or just look at look at the source
+or just look at the source
00:05:46.240 --> 00:05:47.919
-code of this or any other major mode
+code of this or any other major mode.
00:05:47.919 --> 00:05:50.479
-um it it's pretty ems breaks it makes it
+Emacs makes it
00:05:50.479 --> 00:05:52.880
-pretty easy to extend uh
+pretty easy to extend
00:05:52.880 --> 00:05:56.479
-major modes and I think that's that's
+major modes. And I think that's
00:05:56.479 --> 00:05:57.600
the last question
00:05:57.600 --> 00:06:00.240
-in the ether pad so uh thanks so much
+in the Etherpad, so, thanks so much
00:06:00.240 --> 00:06:02.479
-everybody for coming
+everybody for coming.
-00:06:02.479 --> 00:06:06.720
-you are now unmuted uh thank you so much
+00:06:04.033 --> 00:06:06.720
+(Amin: Thank you so much
00:06:06.720 --> 00:06:09.039
-to curry for your awesome talk
+to Zachary for your awesome talk,
00:06:09.039 --> 00:06:12.960
-and for doing live questions
+and for doing live questions.
00:06:12.960 --> 00:06:19.840
-thank you thank you cheers
+Thank you.) Thank you. (Amin: Cheers.)
diff --git a/2020/subtitles/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--zachary-kanfer-autogen.vtt b/2020/subtitles/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--zachary-kanfer.vtt
index 8fce6e98..57837210 100644
--- a/2020/subtitles/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--zachary-kanfer-autogen.vtt
+++ b/2020/subtitles/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--zachary-kanfer.vtt
@@ -1,106 +1,109 @@
WEBVTT
00:00:04.080 --> 00:00:04.960
-hi
+Hi.
00:00:04.960 --> 00:00:08.559
-i'm zachary canfer and this is waving
+I'm Zachary Kanfer, and this is waving
00:00:08.559 --> 00:00:11.679
-and repetitive repetitive repetitive
+at repetitive repetitive repetitive
00:00:11.679 --> 00:00:15.759
-music over quarantine i've been bored
+music. Over quarantine, I've been bored,
00:00:15.759 --> 00:00:18.400
-and i found this android app that has a
+and I found this Android app that has a
00:00:18.400 --> 00:00:19.680
-bunch of mini games
+bunch of mini-games,
00:00:19.680 --> 00:00:23.519
-one of which lets you compose music
+one of which lets you compose music.
00:00:23.519 --> 00:00:26.640
-and it works but i
+And it works, but I
00:00:26.640 --> 00:00:28.160
want a little bit more functionality
00:00:28.160 --> 00:00:30.720
-than it offers it's not very flexible
+than it offers, it's not very flexible.
00:00:30.720 --> 00:00:33.760
-so i thought what if i made this
+So, I thought what if I made this,
00:00:33.760 --> 00:00:35.360
-what and what programs could i make this
+and what programs could I make this
00:00:35.360 --> 00:00:37.760
-in that are really flexible are really
+in that are really flexible, are really
00:00:37.760 --> 00:00:40.320
-customizable
+customizable.
00:00:40.320 --> 00:00:44.239
-emacs so i looked into it and
+Emacs. So, I looked into it, and
00:00:44.239 --> 00:00:46.320
-emacs can play sounds right if you hit
+Emacs can play sounds, right? If you hit
00:00:46.320 --> 00:00:47.840
-control g a couple times you'll hear
+control g a couple of times, you'll hear
00:00:47.840 --> 00:00:49.760
-like an error tone
+like an error tone,
00:00:49.760 --> 00:00:51.360
-and it turns out that that is actually
+and it turns out that, that is actually
00:00:51.360 --> 00:00:54.559
-playing a wave file
+playing a WAVE file,
00:00:54.559 --> 00:00:58.960
-but what's a wave file
+but what's a WAVE file?
00:00:58.960 --> 00:01:01.920
-well it turns out that wave is a musical
+Well, it turns out that WAVE is a musical
00:01:01.920 --> 00:01:03.440
-file format
+file format,
00:01:03.440 --> 00:01:07.840
-or really an annoying file format
+or really an annoying file format.
00:01:07.840 --> 00:01:12.080
-so data in it can be an unsigned integer
+So, data in it can be an unsigned integer
00:01:12.080 --> 00:01:15.360
-or a science integer it's not consistent
+or a signed integer, it's not consistent,
00:01:15.360 --> 00:01:17.920
-and it's little ending by default which
+and it's little-endian by default which
00:01:17.920 --> 00:01:20.320
-is not the way i like to think about it
+is not the way I like to think about it.
-00:01:20.320 --> 00:01:23.200
-now you can set a wav file to be big
+00:01:20.320 --> 00:01:21.600
+Now, you can
-00:01:23.200 --> 00:01:25.200
-endian but if you do that
+00:01:21.600 --> 00:01:23.733
+set a WAVE file to be big-endian,
-00:01:25.200 --> 00:01:28.640
-emacs can't play it so little ending it
+00:01:23.733 --> 00:01:25.200
+but if you do that,
-00:01:28.640 --> 00:01:30.479
-is
+00:01:25.200 --> 00:01:26.600
+Emacs can't play it.
+
+00:01:26.600 --> 00:01:30.479
+So, little-endian it is.
00:01:30.479 --> 00:01:33.520
-there's also duplicate data fields
+There's also duplicate data fields.
00:01:33.520 --> 00:01:35.360
-here are some fields that are fine but
+Here are some fields that are fine, but
00:01:35.360 --> 00:01:36.960
then there's a fourth field that's
@@ -109,46 +112,46 @@ then there's a fourth field that's
calculated based on multiplying two of
00:01:38.960 --> 00:01:40.799
-the other ones together
+the other ones together,
00:01:40.799 --> 00:01:42.399
and then there's another data field
00:01:42.399 --> 00:01:44.880
-that's you multiply those three ones
+that's… you multiply those three ones
00:01:44.880 --> 00:01:48.479
-together so it's just repetitive and
+together. So, it's just repetitive and
00:01:48.479 --> 00:01:50.479
-unnecessary but you have to do it or
+unnecessary, but you have to do it, or
00:01:50.479 --> 00:01:54.159
-it's not a valid wave file
+it's not a valid WAVE file.
00:01:54.159 --> 00:01:56.479
-also the last part of the file is
+Also, the last part of the file is
00:01:56.479 --> 00:01:58.159
described as data
00:01:58.159 --> 00:02:01.759
-or as one website i found said
+or as one website I found said,
00:02:01.759 --> 00:02:05.200
-the actual sound data now
+the actual sound data. Now,
00:02:05.200 --> 00:02:06.960
-i don't know about you but when i see
+I don't know about you but when I see
00:02:06.960 --> 00:02:09.039
-that i think
+that, I think,
00:02:09.039 --> 00:02:12.080
-what is a data it turns out
+what is data? It turns out
00:02:12.080 --> 00:02:15.120
-that sound is just a wave and
+that sound is just a wave, and
00:02:15.120 --> 00:02:17.760
the data is just a bunch of measurements
@@ -157,43 +160,43 @@ the data is just a bunch of measurements
of the height of that wave forming each
00:02:19.120 --> 00:02:20.400
-sample
+sample.
00:02:20.400 --> 00:02:24.480
-so this wave starts at 8 goes 9 11 13
+So, this wave starts at 8 goes 9, 11, 13,
00:02:24.480 --> 00:02:27.840
-14 15 and then back down and if you just
+14, 15, and then back down. If you just
00:02:27.840 --> 00:02:29.520
-take those measurements those numbers
+take those measurements, those numbers,
-00:02:29.520 --> 00:02:32.080
-put them in a file that's all your data
+00:02:29.520 --> 00:02:30.700
+put them in a file,
-00:02:32.080 --> 00:02:35.200
-is
+00:02:30.700 --> 00:02:35.200
+that's all your data is.
00:02:35.200 --> 00:02:36.560
-all right let's go to a demo of my
+All right. Let's go to a demo of my
00:02:36.560 --> 00:02:38.959
-program
+program.
00:02:38.959 --> 00:02:41.920
-so this is what z music looks like the
+So, this is what zmusic looks like. The
00:02:41.920 --> 00:02:44.080
-blue highlighted row is a single beat
+blue highlighted row is a single beat,
00:02:44.080 --> 00:02:48.319
-there's 16 of them in this z music file
+there's 16 of them in this zmusic file,
00:02:48.319 --> 00:02:52.000
and each dash in the row
00:02:52.000 --> 00:02:55.040
-is a single note increasing starting
+is a single note increasing…, starting
00:02:55.040 --> 00:02:57.920
really low all the way on the left and
@@ -202,109 +205,112 @@ really low all the way on the left and
going up
00:02:58.959 --> 00:03:01.680
-as we go to the right so if we started
+as we go to the right. So, if we started
00:03:01.680 --> 00:03:02.400
-playing
+playing,
00:03:02.400 --> 00:03:05.040
-we won't hear anything but we'll see the
+we won't hear anything, but we'll see the
00:03:05.040 --> 00:03:06.400
highlighted beat is the currently
00:03:06.400 --> 00:03:07.680
-playing one
+playing one,
+
+00:03:07.680 --> 00:03:09.833
+and we see that it loops.
-00:03:07.680 --> 00:03:11.120
-and we see that it loops so we can stop
+00:03:09.833 --> 00:03:12.720
+So, we can stop it,
-00:03:11.120 --> 00:03:12.720
-it
+00:03:12.720 --> 00:03:20.633
+and now we can click to add some notes.
-00:03:12.720 --> 00:03:30.879
-and now we can click to add some notes
+00:03:20.633 --> 00:03:30.879
+[Music]
00:03:30.879 --> 00:03:33.120
-even more than one note at the same time
+Even more than one note at the same time
-00:03:33.120 --> 00:03:43.920
-works
+00:03:33.120 --> 00:03:37.333
+works.
-00:03:43.920 --> 00:03:56.160
-and we can even add notes while it's
+00:03:37.333 --> 00:03:43.920
+[Music]
-00:03:56.160 --> 00:03:58.840
-[Applause]
+00:03:43.920 --> 00:03:45.567
+And we can even add notes
-00:03:58.840 --> 00:04:00.150
-playing
+00:03:45.567 --> 00:03:56.160
+while it's playing.
-00:04:00.150 --> 00:04:08.239
-[Applause]
+00:03:56.160 --> 00:04:08.239
+[Music]
00:04:08.239 --> 00:04:10.480
-okay here are some other features that i
+Okay, here are some other features that I
00:04:10.480 --> 00:04:12.959
-didn't have time to demo
+didn't have time to demo.
00:04:12.959 --> 00:04:16.000
-so you can save the music to a file and
+So, you can save the music to a file, and
00:04:16.000 --> 00:04:18.239
this is interesting because normally
00:04:18.239 --> 00:04:20.880
-if there's no note in a beat we just
+if there's no note in a beat, we just
00:04:20.880 --> 00:04:22.800
-don't play that beat
+don't play that beat,
00:04:22.800 --> 00:04:24.639
but if you're writing to a file you have
00:04:24.639 --> 00:04:25.919
-to put something in
+to put something in,
00:04:25.919 --> 00:04:27.840
so when it's playing it knows to not
00:04:27.840 --> 00:04:31.360
-make a sound there
+make a sound there.
-00:04:31.360 --> 00:04:34.479
-we can also use different scales we're
+00:04:31.360 --> 00:04:33.800
+We can also use different scales.
-00:04:34.479 --> 00:04:36.240
-using the minor pentatonic
+00:04:33.800 --> 00:04:36.240
+We're using the minor pentatonic
00:04:36.240 --> 00:04:38.080
-in the demo but you can use the major
+in the demo, but you can use the major
00:04:38.080 --> 00:04:39.680
scale the minor scale
-00:04:39.680 --> 00:04:42.400
-or anything else and there's also
+00:04:39.680 --> 00:04:40.967
+or anything else.
-00:04:42.400 --> 00:04:44.400
-keyboard support but it sounds really
+00:04:40.967 --> 00:04:43.367
+And there's also keyboard support,
-00:04:44.400 --> 00:04:45.199
-bad
+00:04:43.367 --> 00:04:45.199
+but it sounds really bad,
00:04:45.199 --> 00:04:48.240
-and i'll explain why later
+and I'll explain why later.
00:04:48.240 --> 00:04:50.800
-here are some things i learned while
+Here are some things I learned while
00:04:50.800 --> 00:04:53.520
-writing z music
+writing zmusic.
00:04:53.520 --> 00:04:56.479
-emacs has buttons which are great as
+Emacs has buttons which are great as
00:04:56.479 --> 00:04:58.240
long
@@ -313,412 +319,412 @@ long
as you don't put two of them right next
00:04:59.919 --> 00:05:02.160
-to each other so if you do that
+to each other. So, if you do that,
00:05:02.160 --> 00:05:04.400
mousing over one of them highlights both
00:05:04.400 --> 00:05:06.160
-of them
+of them.
00:05:06.160 --> 00:05:07.919
-now that's because a button is really
+Now, that's because a button is really
00:05:07.919 --> 00:05:10.080
just a series of characters with a text
00:05:10.080 --> 00:05:11.680
-property to highlight them
+property to highlight them.
00:05:11.680 --> 00:05:15.120
-so the fix is you put another character
+So, the fix is, you put another character
00:05:15.120 --> 00:05:16.479
-between the two buttons
+between the two buttons,
00:05:16.479 --> 00:05:18.080
then mousing over one of them only
00:05:18.080 --> 00:05:19.759
-highlights the one you want
+highlights the one you want,
00:05:19.759 --> 00:05:21.600
but even this doesn't work really great
00:05:21.600 --> 00:05:22.800
-for z music
+for zmusic,
00:05:22.800 --> 00:05:25.440
-because the music has a lot of very
+because zmusic has a lot of very
00:05:25.440 --> 00:05:27.120
-small buttons in a row
+small buttons in a row.
00:05:27.120 --> 00:05:29.840
-so it's really easy to accidentally put
+So, it's really easy to accidentally put
00:05:29.840 --> 00:05:31.600
your cursor over the space
00:05:31.600 --> 00:05:34.639
-and click on that instead of the button
+and click on that instead of the button.
00:05:34.639 --> 00:05:37.120
-so i looked into unicode and i found
+So, I looked into unicode, and I found
00:05:37.120 --> 00:05:38.160
this character called
00:05:38.160 --> 00:05:40.800
-a zero width space so we should be able
+a zero-width space. So, we should be able
00:05:40.800 --> 00:05:42.560
to put that between buttons and not be
00:05:42.560 --> 00:05:45.120
-able to accidentally click on it
+able to accidentally click on it.
00:05:45.120 --> 00:05:46.960
-unfortunately a zeroth space isn't
+Unfortunately, a zero-width space isn't
00:05:46.960 --> 00:05:50.080
-actually zero width
+actually zero width.
00:05:50.080 --> 00:05:51.680
-if we put a hundred of them between two
+If we put a hundred of them between two
00:05:51.680 --> 00:05:53.759
-other characters you can see there's
+other characters, you can see there's
00:05:53.759 --> 00:05:54.880
-space there
+space there,
00:05:54.880 --> 00:05:56.240
-and i think what's happening is the
+and I think what's happening is, the
00:05:56.240 --> 00:05:58.160
space is zero width
00:05:58.160 --> 00:06:01.360
-but then emax put uses one pixel between
+but then Emacs `put` uses one pixel between
00:06:01.360 --> 00:06:02.800
each pair of characters
00:06:02.800 --> 00:06:08.080
-for the cursor so it's almost zero width
+for the cursor, so it's almost zero width.
00:06:08.080 --> 00:06:09.919
-some ways to play sound that don't quite
+Some ways to play sound that don't quite
00:06:09.919 --> 00:06:12.960
-work play sound plays music
+work! `play-sound` plays music,
00:06:12.960 --> 00:06:14.800
-but it blocks you can't do things like
+but it blocks, you can't do things like,
00:06:14.800 --> 00:06:17.280
-set other notes or even pause the music
+set other notes or even pause the music.
00:06:17.280 --> 00:06:19.600
-and if you throw it into async.el it's
+And if you throw it into async.el, it's
00:06:19.600 --> 00:06:21.600
-silent and i don't know why
+silent, and I don't know why.
00:06:21.600 --> 00:06:24.479
-so the solution i went with is taking
+So, the solution I went with is taking
00:06:24.479 --> 00:06:25.440
-that wav file
+that WAVE file,
00:06:25.440 --> 00:06:27.039
-ran into the file system and then
+ran into the file system, and then
00:06:27.039 --> 00:06:29.199
shelling out to a native executable to
00:06:29.199 --> 00:06:30.639
-play the sound
+play the sound.
00:06:30.639 --> 00:06:32.880
-and that works fine as long as you only
+And that works fine as long as you only
00:06:32.880 --> 00:06:34.240
-do it once
+do it once,
00:06:34.240 --> 00:06:36.080
-because if you do it a couple times at
+because if you do it a couple of times at
00:06:36.080 --> 00:06:37.600
-the same time like if you have a chord
+the same time like if you have a chord,
00:06:37.600 --> 00:06:38.639
and you want to play three notes
00:06:38.639 --> 00:06:40.000
-simultaneously
+simultaneously,
00:06:40.000 --> 00:06:42.319
-you get this weird interference and
+you get this weird interference, and
00:06:42.319 --> 00:06:43.680
that's actually why the keyboard from
00:06:43.680 --> 00:06:46.319
-before didn't work
+before didn't work.
00:06:46.319 --> 00:06:49.199
-also side effects have this unexpected
+Also, side effects have this unexpected
00:06:49.199 --> 00:06:50.240
-impact
+impact,
00:06:50.240 --> 00:06:53.039
-uh when you saw the demo it was running
+when you saw the demo it was running
00:06:53.039 --> 00:06:55.120
-pretty smoothly
+pretty smoothly,
00:06:55.120 --> 00:06:57.680
-but if i just add one message statement
+but if I just add one message statement
00:06:57.680 --> 00:06:58.479
every beat for
00:06:58.479 --> 00:07:00.960
-debugging purposes i was getting lag and
+debugging purposes, I was getting lag and
00:07:00.960 --> 00:07:03.759
-jitter
+jitter.
00:07:03.759 --> 00:07:05.440
-here's the one thing i learned about
+Here's the one thing I learned about
00:07:05.440 --> 00:07:08.319
-music theory music theory
+music theory, music theory
00:07:08.319 --> 00:07:11.599
-is not easy to program
+is not easy to program.
00:07:11.599 --> 00:07:12.880
-i was looking around to see what
+I was looking around to see what
00:07:12.880 --> 00:07:15.440
-concepts we can use to code the scales
+concepts we can use to code the scales,
-00:07:15.440 --> 00:07:16.080
-to code the
+00:07:15.440 --> 00:07:16.933
+to code the notes,
-00:07:16.080 --> 00:07:18.160
-notes the first thing that i saw is
+00:07:16.933 --> 00:07:18.160
+the first thing that I saw is
00:07:18.160 --> 00:07:20.240
-scale degrees
+scale degrees,
00:07:20.240 --> 00:07:23.360
-and this when i looked into it you don't
+and this when I looked into it, you don't
00:07:23.360 --> 00:07:26.319
-want to program in scale degrees
+want to program in scale degrees.
00:07:26.319 --> 00:07:28.240
-so you see we have the first second
+So, you see we have the first, second,
00:07:28.240 --> 00:07:29.759
-third fourth fifth sixth seventh but
+third, fourth, fifth, sixth, seventh but
00:07:29.759 --> 00:07:32.080
-then it wraps around that octave up
+then it wraps around. That octave up
00:07:32.080 --> 00:07:33.919
-is also a first and that's because both
+is also a first, and that's because both
00:07:33.919 --> 00:07:36.000
-of those notes are c
+of those notes are C,
00:07:36.000 --> 00:07:38.479
-uh so that didn't work and also you
+so that didn't work, and also you
00:07:38.479 --> 00:07:39.759
couldn't really easily
00:07:39.759 --> 00:07:43.599
-specify a flat or sharp you could say
+specify a flat or sharp. You could say
00:07:43.599 --> 00:07:47.680
-a sharp third uh or
+a sharp third or
00:07:47.680 --> 00:07:50.879
-you know a flat seventh or whatever but
+you know, a flat seventh or whatever, but
00:07:50.879 --> 00:07:52.319
then you kind of have these two pieces
00:07:52.319 --> 00:07:53.759
-of data that indicate the note and i
+of data that indicate the note, and I
00:07:53.759 --> 00:07:55.840
-didn't i didn't love that
+didn't love that.
00:07:55.840 --> 00:07:57.440
-so i looked a little looked again and i
+So, I looked again, and I
00:07:57.440 --> 00:07:59.280
-found intervals
+found intervals,
00:07:59.280 --> 00:08:01.120
-and then i thought about it and you
+and then I thought about it, and you
00:08:01.120 --> 00:08:02.080
don't really want to program in
00:08:02.080 --> 00:08:03.440
-intervals either
+intervals either.
00:08:03.440 --> 00:08:05.520
-it fixes some of the problems with scale
+It fixes some of the problems with scale
00:08:05.520 --> 00:08:07.039
-degrees you see
+degrees, you see,
00:08:07.039 --> 00:08:08.319
all the way on the right you have an
00:08:08.319 --> 00:08:10.319
-octave so you wrap to 8 and you
+octave, so you wrap to 8, and you
00:08:10.319 --> 00:08:13.039
-go 9 10 and that works but you solve the
+go 9, 10 and that works. But you solve the
00:08:13.039 --> 00:08:14.319
-same problem you see you have a major
+same problem, you see you have a major
00:08:14.319 --> 00:08:16.400
third but below we also have a minor
00:08:16.400 --> 00:08:18.080
-third so you saw that problem of having
+third, so you saw that problem of having
00:08:18.080 --> 00:08:20.160
-two pieces of information
+two pieces of information.
00:08:20.160 --> 00:08:23.360
-uh so i thought about it music's really
+So, I thought about it. Music is really
00:08:23.360 --> 00:08:27.120
-frequencies like an a is 440 hertz
+frequencies. Like an A is 440 hertz.
00:08:27.120 --> 00:08:28.400
-so at a low level that's what we're
+So, at a low level that's what we're
00:08:28.400 --> 00:08:29.360
-going to do we're just going to use
+going to do, we're just going to use
00:08:29.360 --> 00:08:30.560
-frequencies
+frequencies.
00:08:30.560 --> 00:08:32.800
-and then at the one level above that uh
+And then at the one level above that,
00:08:32.800 --> 00:08:34.159
that's a little bit easier for humans to
00:08:34.159 --> 00:08:35.360
-think about
+think about,
00:08:35.360 --> 00:08:37.039
we're going to use semitones up from the
00:08:37.039 --> 00:08:39.519
-root which is kind of like scale degrees
+root, which is kind of like scale degrees,
00:08:39.519 --> 00:08:40.959
but instead of just counting each note
00:08:40.959 --> 00:08:42.880
-as one more we're going to say how many
+as one more, we're going to say how many
00:08:42.880 --> 00:08:44.560
-semitones up it is
+semitones up it is.
00:08:44.560 --> 00:08:47.200
-so if there's a sharp between two notes
+So, if there's a sharp between two notes,
00:08:47.200 --> 00:08:48.480
that's going to be two steps up instead
00:08:48.480 --> 00:08:50.000
-of just one
+of just one.
00:08:50.000 --> 00:08:51.279
-and then we translate those two
+And then we translate those two
00:08:51.279 --> 00:08:54.160
-frequencies so your a is 440 hertz
+frequencies, so your A is 440 hertz,
00:08:54.160 --> 00:08:56.920
another note might be
00:08:56.920 --> 00:08:58.480
-613.5
+613.5,
00:08:58.480 --> 00:09:00.720
-or whatever and we that's we use the low
+or whatever, and that's we use the low
00:09:00.720 --> 00:09:02.959
-level to play
+level to play.
00:09:02.959 --> 00:09:05.200
-some future work i have i want to add
+Some future work I have, I want to add
00:09:05.200 --> 00:09:06.480
-some drums
+some drums.
00:09:06.480 --> 00:09:08.240
-i want to make that keyboard actually
+I want to make that keyboard actually
00:09:08.240 --> 00:09:09.680
-work uh
+work,
00:09:09.680 --> 00:09:12.399
-and uh computers and synthesizers are
+and computers and synthesizers are
00:09:12.399 --> 00:09:14.320
the only place you hear a pure sine wave
00:09:14.320 --> 00:09:16.000
-like the one we have here
+like the one we have here,
00:09:16.000 --> 00:09:17.680
-so i want to add overtones or other
+so I want to add overtones or other
00:09:17.680 --> 00:09:19.440
-octaves above it uh just to make it
+octaves above it just to make it
00:09:19.440 --> 00:09:23.120
-sound a little bit more realistic
+sound a little bit more realistic.
00:09:23.120 --> 00:09:25.360
-i've put notes references in the source
+I've put notes references and the source
-00:09:25.360 --> 00:09:28.480
-code up at zck dot me slash emacs conf
+00:09:25.360 --> 00:09:26.000
+code up
-00:09:28.480 --> 00:09:31.839
-2020 i'm one of the organizers of emacs
+00:09:26.000 --> 00:09:30.067
+at zck.org/emacsconf2020 [updated].
-00:09:31.839 --> 00:09:33.040
-nyc
+00:09:30.067 --> 00:09:33.040
+I'm one of the organizers of EmacsNYC
00:09:33.040 --> 00:09:36.080
-check that out and if you take a look
+check that out. And if you take a look
00:09:36.080 --> 00:09:38.240
-or have any thoughts i'd love to hear
+or have any thoughts, I'd love to hear
00:09:38.240 --> 00:09:39.839
-them and
+them, and
00:09:39.839 --> 00:09:46.160
-thanks so much for coming to my talk
+thanks so much for coming to my talk.
diff --git a/2020/subtitles/emacsconf-2020--39-nongnu-elpa--richard-stallman.vtt b/2020/subtitles/emacsconf-2020--39-nongnu-elpa--richard-stallman.vtt
index fd313f52..89dc142e 100644
--- a/2020/subtitles/emacsconf-2020--39-nongnu-elpa--richard-stallman.vtt
+++ b/2020/subtitles/emacsconf-2020--39-nongnu-elpa--richard-stallman.vtt
@@ -3,17 +3,17 @@ WEBVTT
00:00:00.320 --> 00:00:03.280
Hello, I'm Richard Stallman,
-00:00:03.280 --> 00:00:08.080
-founder of the GNU project. In 1976, I
+00:00:03.280 --> 00:00:07.816
+founder of the GNU project.
-00:00:08.080 --> 00:00:09.200
-developed the first
+00:00:07.816 --> 00:00:09.200
+In 1976, I developed the first
-00:00:09.200 --> 00:00:12.000
-Emacs editor with some help from Guy
+00:00:09.200 --> 00:00:12.320
+Emacs editor with some help
-00:00:12.000 --> 00:00:13.440
-Steele.
+00:00:12.320 --> 00:00:13.440
+from Guy Steele.
00:00:13.440 --> 00:00:15.839
Then, shortly after starting to develop
@@ -24,14 +24,9 @@ the GNU operating system in 1984,
00:00:19.119 --> 00:00:22.240
I wanted an Emacs editor for it.
-00:00:22.240 --> 00:00:24.640
+00:00:22.240 --> 00:00:29.519
So I started writing GNU Emacs in
-
-00:00:24.640 --> 00:00:25.560
-September
-
-00:00:25.560 --> 00:00:29.519
-1984.
+September 1984.
00:00:29.519 --> 00:00:32.640
Several years ago we decided to move
@@ -39,47 +34,38 @@ Several years ago we decided to move
00:00:32.640 --> 00:00:35.920
many of the Emacs Lisp packages outside
-00:00:35.920 --> 00:00:36.559
-the core
-
-00:00:36.559 --> 00:00:39.760
-Emacs distribution into a separate
-
-00:00:39.760 --> 00:00:42.960
-package archive that we call the Emacs
+00:00:35.920 --> 00:00:39.866
+the core Emacs distribution into
-00:00:42.960 --> 00:00:43.280
-Lisp
+00:00:39.866 --> 00:00:46.480
+a separate package archive that we call
+the Emacs Lisp package archive ELPA.
-00:00:43.280 --> 00:00:46.480
-package archive ELPA.
+00:00:46.480 --> 00:00:49.555
+There were two main reasons for this.
-00:00:46.480 --> 00:00:48.719
-There were two main reasons for this. One
+00:00:49.555 --> 00:00:51.520
+One is to make the Emacs
+distribution smaller
-00:00:48.719 --> 00:00:51.520
-is to make the Emacs distribution smaller
+00:00:51.520 --> 00:00:54.870
+so every user wouldn't have to
-00:00:51.520 --> 00:00:54.320
-so every user wouldn't have to get all
+00:00:54.870 --> 00:00:55.680
+get all the packages
-00:00:54.320 --> 00:00:55.680
-the packages
+00:00:55.680 --> 00:00:58.820
+and install all the packages.
-00:00:55.680 --> 00:00:58.320
-and install all the packages. And the
+00:00:58.820 --> 00:01:00.480
+And the other reason was to make it
+possible to
-00:00:58.320 --> 00:01:00.480
-other reason was to make it possible to
+00:01:00.480 --> 00:01:03.485
+release individual packages
-00:01:00.480 --> 00:01:01.520
-release
-
-00:01:01.520 --> 00:01:04.559
-individual packages separately
-
-00:01:04.559 --> 00:01:08.880
-from Emacs releases.
+00:01:03.485 --> 00:01:08.880
+separately from Emacs releases.
00:01:08.880 --> 00:01:13.119
Now, at that point somehow we decided to
@@ -87,10 +73,8 @@ Now, at that point somehow we decided to
00:01:13.119 --> 00:01:17.040
support loading packages from
-00:01:17.040 --> 00:01:19.520
+00:01:17.040 --> 00:01:21.119
a variety of different Emacs Lisp
-
-00:01:19.520 --> 00:01:21.119
package archives
00:01:21.119 --> 00:01:25.520
@@ -99,56 +83,52 @@ and ours would be called the GNU ELPA,
00:01:25.520 --> 00:01:29.280
but ELPA could be any other.
-00:01:29.280 --> 00:01:32.079
-Now, I think that naming was a mistake. We
-
-00:01:32.079 --> 00:01:32.799
-should have
+00:01:29.280 --> 00:01:32.945
+Now, I think that naming was a mistake.
-00:01:32.799 --> 00:01:35.119
-meant, we should have decided that ELPA
+00:01:32.945 --> 00:01:35.119
+We should have meant, we should have
+decided that ELPA
00:01:35.119 --> 00:01:37.759
referred to our package archive
-00:01:37.759 --> 00:01:39.759
-and any other package archive should be
+00:01:37.759 --> 00:01:39.297
+and any other package archive
-00:01:39.759 --> 00:01:42.479
-called some other name.
+00:01:39.297 --> 00:01:42.479
+should be called some other name.
-00:01:42.479 --> 00:01:46.079
-Oh, well! Uh this
+00:01:42.479 --> 00:01:46.128
+Oh, well! Uh this is a mistake,
-00:01:46.079 --> 00:01:48.320
-is a mistake I believe, because it leads
+00:01:46.128 --> 00:01:48.320
+I believe, because it leads
-00:01:48.320 --> 00:01:50.240
-to a lot of confusion it would have been
+00:01:48.320 --> 00:01:49.397
+to a lot of confusion.
-00:01:50.240 --> 00:01:51.119
-clearer
+00:01:49.397 --> 00:01:51.119
+It would have been clearer
00:01:51.119 --> 00:01:55.759
-if we had uh used the other naming.
+if we had used the other naming.
-00:01:55.759 --> 00:01:59.600
-Because the difference between having a
+00:01:55.759 --> 00:01:59.812
+Because the difference between
-00:01:59.600 --> 00:02:00.399
-package in
-
-00:02:00.399 --> 00:02:04.159
-core Emacs and having it in GNU ELPA,
+00:01:59.812 --> 00:02:04.159
+having a package in core Emacs and
+having it in GNU ELPA,
00:02:04.159 --> 00:02:07.840
is purely a practical convenience matter.
-00:02:07.840 --> 00:02:09.679
-Convenience of distribution and
+00:02:07.840 --> 00:02:10.501
+Convenience of distribution
-00:02:09.679 --> 00:02:12.000
-convenience of maintenance.
+00:02:10.501 --> 00:02:12.000
+and convenience of maintenance.
00:02:12.000 --> 00:02:14.879
We wanted to be able to move packages
@@ -156,11 +136,11 @@ We wanted to be able to move packages
00:02:14.879 --> 00:02:16.800
between the two
-00:02:16.800 --> 00:02:20.160
-whenever that was convenient. So, to make
+00:02:16.800 --> 00:02:19.258
+whenever that was convenient.
-00:02:20.160 --> 00:02:21.200
-that possible
+00:02:19.258 --> 00:02:21.200
+So, to make that possible
00:02:21.200 --> 00:02:23.200
we insisted on getting copyright
@@ -168,10 +148,8 @@ we insisted on getting copyright
00:02:23.200 --> 00:02:26.319
assignments for packages in GNU ELPA
-00:02:26.319 --> 00:02:28.800
+00:02:26.319 --> 00:02:31.360
just the same way we do for packages in
-
-00:02:28.800 --> 00:02:31.360
core Emacs.
00:02:31.360 --> 00:02:33.760
@@ -192,28 +170,22 @@ Unfortunately there was a problem with
00:02:44.879 --> 00:02:46.560
the way that was done.
-00:02:46.560 --> 00:02:49.120
+00:02:46.560 --> 00:02:50.000
For the most part, the developers of
-
-00:02:49.120 --> 00:02:50.000
these packages
-00:02:50.000 --> 00:02:52.480
-wouldn't even tell us about them. They
-
-00:02:52.480 --> 00:02:53.599
-posted them
+00:02:50.000 --> 00:02:52.218
+wouldn't even tell us about them.
-00:02:53.599 --> 00:02:56.720
-in another package archive where we
+00:02:52.218 --> 00:02:56.027
+They posted them in another package
+archive
-00:02:56.720 --> 00:02:58.480
-didn't know about them
+00:02:56.027 --> 00:02:58.480
+where we didn't know about them
-00:02:58.480 --> 00:03:02.000
-and (where they) no attempt was made to
-
-00:03:02.000 --> 00:03:03.120
+00:02:58.480 --> 00:03:03.120
+and no attempt was made to
try to fit them
00:03:03.120 --> 00:03:06.560
@@ -225,41 +197,40 @@ as parts of the Emacs distribution.
00:03:10.879 --> 00:03:14.480
This led to both moral problems,
-00:03:14.480 --> 00:03:16.959
-packages that depended on non-free
+00:03:14.480 --> 00:03:16.375
+(packages that depended on
-00:03:16.959 --> 00:03:19.599
-software in order to be usable
+00:03:16.375 --> 00:03:19.599
+non-free software in order to be usable)
-00:03:19.599 --> 00:03:22.159
-and technical problems because the
+00:03:19.599 --> 00:03:21.354
+and technical problems,
-00:03:22.159 --> 00:03:24.319
-developers of those packages didn't
+00:03:21.354 --> 00:03:24.877
+because the developers of those packages
-00:03:24.319 --> 00:03:26.159
-coordinate with us
+00:03:24.877 --> 00:03:26.159
+didn't coordinate with us
00:03:26.159 --> 00:03:29.519
about how to make it useful and
-00:03:29.519 --> 00:03:33.040
-convenient and clean to have them
-
-00:03:33.040 --> 00:03:36.560
-in Emacs.
+00:03:29.519 --> 00:03:36.560
+convenient and clean to have them in
+Emacs.
00:03:36.560 --> 00:03:41.120
So, the idea of NonGNU ELPA
-00:03:41.120 --> 00:03:44.840
-is an effort to smooth these things
+00:03:41.120 --> 00:03:45.337
+is an effort to smooth these
+things out.
-00:03:44.840 --> 00:03:48.319
-out. The fundamental plan of
+00:03:45.337 --> 00:03:48.319
+The fundamental plan of
00:03:48.319 --> 00:03:51.680
-NonGNU ELPA is that,
+NonGNU ELPA is that
00:03:51.680 --> 00:03:54.480
we won't ask for copyright assignments
@@ -267,134 +238,101 @@ we won't ask for copyright assignments
00:03:54.480 --> 00:03:56.159
for those packages.
-00:03:56.159 --> 00:03:58.560
+00:03:56.159 --> 00:04:00.000
So, we won't be able to put them into
-
-00:03:58.560 --> 00:04:00.000
core Emacs;
-00:04:00.000 --> 00:04:04.080
-at least not easily, but we will
-
-00:04:04.080 --> 00:04:06.959
-have some control over how we distribute
+00:04:00.000 --> 00:04:03.550
+at least not easily,
-00:04:06.959 --> 00:04:09.519
-them.
+00:04:03.550 --> 00:04:09.519
+but we will have some control over how
+we distribute them.
-00:04:09.519 --> 00:04:12.640
-We can put any package into
+00:04:09.519 --> 00:04:14.691
+We can put any package into NonGNU ELPA
-00:04:12.640 --> 00:04:15.439
-NonGNU ELPA as long as it's free
+00:04:14.691 --> 00:04:16.320
+as long as it's free software.
-00:04:15.439 --> 00:04:16.320
-software.
+00:04:16.320 --> 00:04:23.360
+If we like it, we can set up that way
+for users to get it.
-00:04:16.320 --> 00:04:19.440
-If we like it we can
-
-00:04:19.440 --> 00:04:23.360
-set up that way for users to get it.
-
-00:04:23.360 --> 00:04:25.919
-We could put the package in exactly as
-
-00:04:25.919 --> 00:04:26.720
-it is
+00:04:23.360 --> 00:04:26.720
+We could put the package in
+exactly as it is
00:04:26.720 --> 00:04:29.919
if there's no problem at all with it.
-00:04:29.919 --> 00:04:32.160
-We can make an arrangement with the
+00:04:29.919 --> 00:04:32.647
+We can make an arrangement
-00:04:32.160 --> 00:04:34.160
-package's developers
+00:04:32.647 --> 00:04:34.160
+with the package's developers
00:04:34.160 --> 00:04:38.000
to work on it with us and maintain it
-00:04:38.000 --> 00:04:40.880
-directly for distribution by NonGNU
-
-00:04:40.880 --> 00:04:42.560
-ELPA
-
-00:04:42.560 --> 00:04:45.280
-but if they are not interested we can
-
-00:04:45.280 --> 00:04:46.080
-put it in
-
-00:04:46.080 --> 00:04:49.680
-ourselves and if we need to make any
-
-00:04:49.680 --> 00:04:52.000
-changes we can do so.
+00:04:38.000 --> 00:04:42.560
+directly for distribution by NonGNU ELPA,
-00:04:52.000 --> 00:04:55.120
-So, NonGNU ELPA
+00:04:42.560 --> 00:04:45.778
+but if they are not interested,
-00:04:55.120 --> 00:04:59.040
-is not meant to be just a way
+00:04:45.778 --> 00:04:48.729
+we can put it in ourselves,
-00:04:59.040 --> 00:05:01.360
-that others can distribute their
+00:04:48.729 --> 00:04:50.453
+and if we need to make any changes,
-00:05:01.360 --> 00:05:02.720
-packages.
+00:04:50.453 --> 00:04:52.000
+we can do so.
-00:05:02.720 --> 00:05:05.039
-It's meant at least in a minimal
+00:04:52.000 --> 00:04:58.688
+So, NonGNU ELPA is not meant to be
-00:05:05.039 --> 00:05:06.000
-technical
+00:04:58.688 --> 00:05:02.720
+just a way that others can distribute
+their packages.
-00:05:06.000 --> 00:05:10.479
-sense to work with GNU Emacs, and we'll
+00:05:02.720 --> 00:05:04.336
+It's meant, at least in
-00:05:10.479 --> 00:05:12.800
-make changes if necessary so that it
+00:05:04.336 --> 00:05:07.574
+a minimal technical sense,
-00:05:12.800 --> 00:05:14.240
-works smoothly with
+00:05:07.574 --> 00:05:10.686
+to work with GNU Emacs,
-00:05:14.240 --> 00:05:18.720
-Emacs. And
+00:05:10.686 --> 00:05:12.305
+and we'll make changes if necessary,
-00:05:18.720 --> 00:05:22.160
-this means that we're going to maintain
+00:05:12.305 --> 00:05:17.928
+so that it works smoothly with Emacs.
-00:05:22.160 --> 00:05:23.280
-it differently
+00:05:17.928 --> 00:05:25.365
+And this means that we're going to
+maintain it differently from GNU ELPA.
-00:05:23.280 --> 00:05:27.600
-from GNU ELPA. Well, GNU ELPA
-
-00:05:27.600 --> 00:05:29.759
-is hosted in a way that is actually
-
-00:05:29.759 --> 00:05:31.520
-rather inconvenient.
+00:05:25.365 --> 00:05:31.520
+Well, GNU ELPA is hosted in a way that
+is actually rather inconvenient.
00:05:31.520 --> 00:05:35.600
It is one single Git repository.
-00:05:35.600 --> 00:05:38.639
-And so anybody that has access to write
-
-00:05:38.639 --> 00:05:39.039
-it
-
-00:05:39.039 --> 00:05:42.560
-can write any part of it. There are many
+00:05:35.600 --> 00:05:39.039
+And so anybody that has access
+to write it
-00:05:42.560 --> 00:05:44.639
-different packages in there maintained
+00:05:39.039 --> 00:05:41.239
+can write any part of it.
-00:05:44.639 --> 00:05:46.080
-by different people,
+00:05:41.239 --> 00:05:46.080
+There are many different packages in
+there, maintained by different people,
00:05:46.080 --> 00:05:48.080
and we have no way to give each one of
@@ -402,47 +340,40 @@ and we have no way to give each one of
00:05:48.080 --> 00:05:50.960
them access to per own package
-00:05:50.960 --> 00:05:54.720
-and not to the others. Well, with NonGNU
+00:05:50.960 --> 00:05:53.122
+and not to the others.
-00:05:54.720 --> 00:05:58.400
-ELPA we plan to fix that. The idea is to
+00:05:53.122 --> 00:05:57.035
+Well, with NonGNU ELPA,
+we plan to fix that.
-00:05:58.400 --> 00:05:59.440
-have
+00:05:57.035 --> 00:06:01.411
+The idea is to have
+a single Git repository
-00:05:59.440 --> 00:06:02.479
-a single Git repository where you can
+00:06:01.411 --> 00:06:05.600
+where you can download various packages from.
-00:06:02.479 --> 00:06:05.600
-download various packages from.
+00:06:05.600 --> 00:06:08.400
+But they won't be maintained there.
-00:06:05.600 --> 00:06:08.800
-But, they won't be maintained there. Each
+00:06:08.400 --> 00:06:10.800
+Each of those packages will be
-00:06:08.800 --> 00:06:10.800
-of those packages will be
+00:06:10.800 --> 00:06:15.280
+copied automatically from some other place.
-00:06:10.800 --> 00:06:14.080
-copied automatically from some other
+00:06:15.280 --> 00:06:18.311
+Probably some other repository
-00:06:14.080 --> 00:06:15.280
-place.
+00:06:18.311 --> 00:06:22.960
+where the right people have access to work on it.
-00:06:15.280 --> 00:06:18.800
-Probably some other repository where
+00:06:22.960 --> 00:06:26.375
+And this way we can avoid giving
-00:06:18.800 --> 00:06:21.759
-the right people have access to work on
-
-00:06:21.759 --> 00:06:22.960
-it.
-
-00:06:22.960 --> 00:06:26.479
-And this way we can avoid giving a
-
-00:06:26.479 --> 00:06:28.160
-gigantic number of people
+00:06:26.375 --> 00:06:28.160
+a gigantic number of people
00:06:28.160 --> 00:06:32.240
access to every part of it.
@@ -453,20 +384,17 @@ So far NonGNU ELPA is just a plan,
00:06:37.039 --> 00:06:40.479
we need people to implement the plan.
-00:06:40.479 --> 00:06:43.280
-So, if you would like to help please
-
-00:06:43.280 --> 00:06:45.120
-write to me.
+00:06:40.479 --> 00:06:43.825
+So, if you would like to help,
-00:06:45.120 --> 00:06:47.759
-I think this is a very important step
+00:06:43.825 --> 00:06:45.120
+please write to me.
-00:06:47.759 --> 00:06:49.520
-for progress
+00:06:45.120 --> 00:06:49.520
+I think this is a very important step for progress
00:06:49.520 --> 00:06:52.639
and it's got to be implemented.
00:06:52.639 --> 00:06:57.919
-Thanks and happy hacking! \ No newline at end of file
+Thanks and happy hacking!