diff options
Diffstat (limited to '')
2 files changed, 1589 insertions, 0 deletions
diff --git a/2021/captions/emacsconf-2021-frownies--the-true-frownies-are-the-friends-we-made-along-the-way-an-anecdote-of-emacs-s-malleability--case-duckworth--chapters.vtt b/2021/captions/emacsconf-2021-frownies--the-true-frownies-are-the-friends-we-made-along-the-way-an-anecdote-of-emacs-s-malleability--case-duckworth--chapters.vtt new file mode 100644 index 00000000..a8ce6623 --- /dev/null +++ b/2021/captions/emacsconf-2021-frownies--the-true-frownies-are-the-friends-we-made-along-the-way-an-anecdote-of-emacs-s-malleability--case-duckworth--chapters.vtt @@ -0,0 +1,37 @@ +WEBVTT + +00:00:00.000 --> 00:01:01.569 +Introduction + +00:01:01.570 --> 00:02:07.635 +Before the beginning, the Beginning + +00:02:07.636 --> 00:02:56.169 +Oops + +00:02:56.170 --> 00:04:52.935 +Yada yada yada + +00:04:52.936 --> 00:06:51.802 +During all this time... + +00:06:51.803 --> 00:07:29.769 +Pandemic + +00:07:29.770 --> 00:08:50.002 +Anyway + +00:08:50.003 --> 00:09:38.235 +A growing obsession + +00:09:38.236 --> 00:10:32.735 +What is the point of all of this? I thought we were talking about frowing. + +00:10:32.736 --> 00:11:14.669 +Conversation + +00:11:14.670 --> 00:11:33.069 +Later... + +00:11:33.070 --> 00:11:34.070 +frowny.el diff --git a/2021/captions/emacsconf-2021-frownies--the-true-frownies-are-the-friends-we-made-along-the-way-an-anecdote-of-emacs-s-malleability--case-duckworth--main.vtt b/2021/captions/emacsconf-2021-frownies--the-true-frownies-are-the-friends-we-made-along-the-way-an-anecdote-of-emacs-s-malleability--case-duckworth--main.vtt new file mode 100644 index 00000000..41e5e248 --- /dev/null +++ b/2021/captions/emacsconf-2021-frownies--the-true-frownies-are-the-friends-we-made-along-the-way-an-anecdote-of-emacs-s-malleability--case-duckworth--main.vtt @@ -0,0 +1,1552 @@ +WEBVTT + +00:00.000 --> 00:02.770 +Hi everyone! My name is Case Duckworth + +00:02.770 --> 00:04.070 +and I've been using Emacs + +00:04.070 --> 00:05.536 +for about a year and a half. + +00:05.536 --> 00:06.736 +If you do the math, + +00:06.736 --> 00:08.403 +you'll see that was pretty soon + +00:08.403 --> 00:11.470 +after the pandemic hit us in the U.S. + +00:11.470 --> 00:13.970 +While I was busy making bread + +00:13.970 --> 00:14.970 +and walking my dogs, + +00:14.970 --> 00:17.936 +trying not to drive myself crazy + +00:17.936 --> 00:18.970 +in the house, + +00:18.970 --> 00:20.603 +I tried Emacs again. + +00:20.603 --> 00:23.270 +I don't know if I was successful in that, + +00:23.270 --> 00:26.936 +going crazy... I mean, I still use Emacs. + +00:26.936 --> 00:30.436 +But I have been able to enjoy + +00:30.436 --> 00:31.670 +the infinitely-malleable, + +00:31.670 --> 00:32.870 +immensely enjoyable, + +00:32.870 --> 00:34.936 +and sublimely parenthetical world + +00:34.936 --> 00:36.470 +of Emacs the editor, + +00:36.470 --> 00:37.570 +the community, + +00:37.570 --> 00:39.470 +and of course, the Lisp language. + +00:39.470 --> 00:42.270 +So. And in this I'm going to + +00:42.270 --> 00:46.103 +explore just a little anecdote of that, + +00:46.103 --> 00:48.536 +a little nugget of what I think + +00:48.536 --> 00:50.870 +makes Emacs so great, + +00:50.870 --> 00:53.703 +using the lens of a package that I wrote + +00:53.703 --> 00:57.370 +about a month ago now + +00:57.370 --> 00:59.536 +called frowny.el. + +00:59.536 --> 00:01:01.569 +So yeah, let's go ahead and jump in. + +01:01.570 --> 01:08.236 +So, before the beginning, + +01:08.236 --> 01:09.036 +I want to talk about + +01:09.036 --> 01:10.770 +my very beginning with Linux. + +01:10.770 --> 01:12.136 +I first installed Linux + +01:12.136 --> 01:13.170 +for the first time + +01:13.170 --> 01:15.703 +as a freshman in college, way back in 2008. + +01:15.703 --> 01:17.703 +I don't know if you were around, + +01:17.703 --> 01:19.503 +but 2008 was not + +01:19.503 --> 01:21.570 +the year of the Linux desktop. + +01:21.570 --> 01:26.803 +WiFi was weird. Sound was weird. + +01:26.803 --> 01:30.136 +Everything was odd and strange and weird. + +01:30.136 --> 01:31.670 +I mean, it wasn't good. + +01:31.670 --> 01:33.603 +So, at that time, + +01:33.603 --> 01:36.203 +I knew absolutely nothing about anything. + +01:36.203 --> 01:41.203 +I installed this terrible + +01:41.203 --> 01:43.470 +distro called gOS. + +01:43.470 --> 01:44.803 +I always forget what it's called + +01:44.803 --> 01:45.703 +and then I looked it up. + +01:45.703 --> 01:47.636 +And this is what I looked at + +01:47.636 --> 01:49.836 +when I signed in. + +01:49.836 --> 01:51.903 +It wasn't good. + +01:51.903 --> 01:53.203 +I think it was trying to + +01:53.203 --> 01:57.003 +integrate better with Google tools? + +01:57.003 --> 01:58.870 +So I was, like, oh, yeah, you know, + +01:58.870 --> 02:00.870 +Gmail and Google Calendar, + +02:00.870 --> 02:02.436 +so this will have it all there. + +02:02.436 --> 02:04.536 +Anyway, the company's defunct now + +02:04.536 --> 02:07.003 +and it's pretty obvious why. + +02:07.003 --> 00:02:07.635 +It was really bad. + +02:07.636 --> 02:08.903 +So I thought to myself, + +02:08.903 --> 02:11.670 +I'll delete the partition. + +02:11.670 --> 02:12.903 +Easy peasy. So I did, + +02:12.903 --> 02:13.770 +and I rebooted, + +02:13.770 --> 02:15.336 +and the Master Boot Record was gone, + +02:15.336 --> 02:16.370 +so I couldn't boot Windows, + +02:16.370 --> 02:17.936 +and it was all, bleah, and I was like, + +02:17.936 --> 02:22.103 +oh, shit, I have to do my schoolwork. + +02:24.536 --> 02:26.203 +So I thought I was terribly hosed + +02:26.203 --> 02:28.870 +so I just installed Linux. + +02:28.870 --> 02:31.970 +I think I installed Crunchbang Linux first. + +02:31.970 --> 02:33.270 +It looked like this. + +02:33.270 --> 02:35.203 +It's not super exciting. + +02:35.203 --> 02:41.303 +It was an Openbox-based, Debian-based distro + +02:41.303 --> 02:43.403 +run by this one guy out in England. + +02:43.403 --> 02:46.570 +It was great. I really enjoyed it. + +02:46.570 --> 02:47.970 +The forums were amazing. + +02:47.970 --> 02:50.603 +It still kind of lives on + +02:50.603 --> 02:53.003 +through a project called BunsenLabs + +02:53.003 --> 02:54.936 +so go check them out if you want. + +02:54.936 --> 00:02:56.169 +It was a good time. Anyway. + +02:56.170 --> 02:58.803 +I was using that for a long time, + +02:58.803 --> 03:00.436 +and, you know, probably familiar + +03:00.436 --> 03:01.670 +to many of you, + +03:01.670 --> 03:02.903 +I hopped around + +03:02.903 --> 03:03.836 +from distro to distro, + +03:03.836 --> 03:08.970 +from WM to DE, just on and on and on, + +03:08.970 --> 03:10.270 +trying different things. + +03:10.270 --> 03:12.003 +I'm not a programmer. + +03:12.003 --> 03:12.736 +I actually went to school + +03:12.736 --> 03:15.136 +for English writing, + +03:15.136 --> 03:17.536 +and so I learned programming + +03:17.536 --> 03:19.636 +mostly from configuring + +03:19.636 --> 03:20.836 +different window managers. + +03:20.836 --> 03:23.803 +I learned Lua with AwesomeWM. + +03:23.803 --> 03:25.836 +I learned Haskell with Xmonad. + +03:25.836 --> 03:28.070 +Sort of Haskell. I mean, I liked Haskell. + +03:28.070 --> 03:30.770 +I like Haskell a lot, + +03:30.770 --> 03:32.536 +at least the syntax. + +03:32.536 --> 03:36.070 +It looks like words. + +03:36.070 --> 03:40.103 +You can define functions multiple times + +03:40.103 --> 03:41.670 +for different inputs. + +03:41.670 --> 03:42.703 +It has that really great pattern matching. + +03:42.703 --> 03:45.270 +The thing I really didn't get was monads. + +03:45.270 --> 03:46.570 +What is a monad? + +03:46.570 --> 03:48.103 +Is it a burrito? Is it a box? + +03:48.103 --> 03:49.770 +Is it a burrito inside of a box? + +03:49.770 --> 03:51.370 +Is it a box inside of a burrito? + +03:51.370 --> 03:53.203 +Is there a cat involved, + +03:53.203 --> 03:55.336 +or a superposition of such? + +03:55.336 --> 03:58.936 +I don't know. Anyway, it got confusing. + +03:58.936 --> 04:01.436 +That's really where I lost me. + +04:01.436 --> 04:05.170 +Again, you know, if you like Haskell, + +04:05.170 --> 04:05.970 +if you write Haskell, + +04:05.970 --> 04:08.136 +more power to you. + +04:08.136 --> 04:11.370 +It didn't fit my brain right. + +04:11.370 --> 04:14.403 +So that was that, + +04:14.403 --> 04:15.436 +but it kinda ruined me + +04:15.436 --> 04:17.003 +for a lot of other programming languages, + +04:17.003 --> 04:19.970 +because the functional style + +04:19.970 --> 04:22.403 +I really get. That part I did get. + +04:22.403 --> 04:25.703 +And stuff like Python, really, + +04:25.703 --> 04:27.070 +object orientation... + +04:27.070 --> 04:32.570 +I would always get way too into classes + +04:32.570 --> 04:34.703 +and figuring out this and that. + +04:34.703 --> 04:35.870 +It just didn't work for me. + +04:35.870 --> 04:37.870 +I was kind of floating. + +04:37.870 --> 04:41.503 +Learned Bash, which is, you know, Bash. + +04:41.503 --> 04:43.603 +It's fine, but it's Bash. + +04:43.603 --> 04:46.703 +It wasn't great either. + +04:46.703 --> 04:51.470 +Anyway. That was six years or so, + +04:51.470 --> 00:04:52.935 +just kind of did that, right. + +04:52.936 --> 04:55.870 +And yes, I was using Vim. + +04:55.870 --> 04:58.370 +I mean... Keeps you clean, right? + +04:58.370 --> 04:59.636 +I'm just kidding. + +04:59.636 --> 05:02.536 +I was using Vim, the editor. + +05:02.536 --> 05:03.470 +It was fine. + +05:03.470 --> 05:05.936 +It was great. I mean... + +05:05.936 --> 05:08.203 +Emacs and Vim, they go head to head + +05:08.203 --> 05:10.536 +because they're both 40 years old. + +05:10.536 --> 05:13.270 +They both are super powerful. + +05:13.270 --> 05:15.336 +They both have their own paradigms. + +05:15.336 --> 05:16.836 +If you get into it, then it's like + +05:16.836 --> 05:19.236 +powpowpow, you're doing all this stuff + +05:19.236 --> 05:20.503 +it's great. + +05:20.503 --> 05:22.036 +I wrote some plugins with Vim, + +05:22.036 --> 05:25.536 +a couple of themes, this and that, + +05:25.536 --> 05:28.636 +but you know, VimScript is not great. + +05:28.636 --> 05:31.803 +I think one of the common + +05:31.803 --> 05:34.936 +criticisms of Elisp + +05:34.936 --> 05:37.170 +it's like, oh, it's this weird kind of... + +05:37.170 --> 05:38.536 +It's written for (inaudible)... + +05:38.536 --> 05:43.336 +Tell you, it's way less than + +05:43.336 --> 05:44.470 +VimScript is. Oof. + +05:44.470 --> 05:49.670 +Anyway. That, also, really terminal-first, + +05:49.670 --> 05:52.570 +which I used for a long time and then + +05:52.570 --> 05:54.436 +I only think I started noticing + +05:54.436 --> 05:56.236 +now that I'm using Emacs more, + +05:56.236 --> 05:57.803 +like, that terminal-first workflow, + +05:57.803 --> 06:01.136 +again, for my brain, + +06:01.136 --> 06:02.803 +it doesn't super work for me. + +06:02.803 --> 06:06.636 +I always had this Platonic ideal + +06:06.636 --> 06:08.470 +of what a workflow should look like, + +06:08.470 --> 06:10.836 +and I was always working towards it. + +06:10.836 --> 06:12.803 +I would run into this problem + +06:12.803 --> 06:14.003 +and I wouldn't know how to solve it. + +06:14.003 --> 06:15.736 +so I kind of quit. Do something else. + +06:15.736 --> 06:17.003 +I think that's part of why + +06:17.003 --> 06:17.836 +I had so much churn + +06:17.836 --> 06:18.670 +for such a long time. + +06:18.670 --> 06:20.336 +Because at the end of the day, + +06:20.336 --> 06:23.936 +window managing, you're just + +06:23.936 --> 06:26.567 +moving around little boxes on your screen. + +06:26.567 --> 06:30.536 +So I was spinning wheels + +06:30.536 --> 06:31.203 +for a long time. + +06:31.203 --> 06:36.203 +But yes. And it wasn't like + +06:36.203 --> 06:36.803 +it was all bad. + +06:36.803 --> 06:38.036 +Most of this stuff + +06:38.036 --> 06:39.603 +just came out now that + +06:39.603 --> 06:40.236 +I'm thinking about it, + +06:40.236 --> 06:42.970 +now that I'm kind of going through this + +06:42.970 --> 06:45.736 +in my head, like, that part of it wasn't great. + +06:45.736 --> 06:46.703 +I was having a good time. + +06:46.703 --> 06:48.670 +I was still... Open source, + +06:48.670 --> 06:49.936 +I was getting in the community. + +06:49.936 --> 06:50.603 +I was doing all this stuff. + +06:50.603 --> 00:06:51.802 +It was all great. + +06:51.803 --> 06:56.336 +But anyway, the pandemic hit, obviously, + +06:56.336 --> 06:58.736 +really hard, last spring, in the US. + +06:58.736 --> 07:00.870 +And here we are, + +07:00.870 --> 07:03.070 +talking about the pandemic in 2021. + +07:03.070 --> 07:04.370 +Can you imagine? + +07:04.370 --> 07:05.836 +So, I didn't lose my job. + +07:05.836 --> 07:06.903 +Thank goodness. + +07:06.903 --> 07:09.236 +But I did... I work for the government, + +07:09.236 --> 07:10.236 +I was sent home for two months. + +07:10.236 --> 07:11.803 +I had all this free time on my hands. + +07:11.803 --> 07:13.903 +I got into baking, + +07:13.903 --> 07:16.236 +I bought a 50-pound bag of flour. + +07:16.236 --> 07:18.470 +I started a bread-themed tilde server, + +07:18.470 --> 07:20.436 +you know, those shared Unix servers + +07:20.436 --> 07:21.803 +all the cool kids talk about? + +07:21.803 --> 07:26.970 +Yeah, it's breadpunk.club, go check it out! + +07:26.970 --> 00:07:29.769 +Join if you want. Anyway. Yeah. + +07:29.770 --> 07:32.703 +So I decided to try Emacs again. + +07:32.703 --> 07:33.803 +Kind of on a whim, I think. + +07:33.803 --> 07:36.170 +I don't super remember, but I think I did. + +07:36.170 --> 07:42.103 +I tried Spacemacs. It didn't stick. + +07:42.103 --> 07:44.036 +Spacemacs was trying to be Vim, + +07:44.036 --> 07:46.403 +but enough things didn't fit in + +07:46.403 --> 07:48.636 +with what I was expecting + +07:48.636 --> 07:50.603 +with my Vim workflow. + +07:50.603 --> 07:53.836 +All sorts of plugins that did certain things + +07:53.836 --> 07:57.270 +and I didn't know to just get into Spacemacs. + +07:57.270 --> 08:01.070 +It just didn't work for me. + +08:01.070 --> 08:05.436 +I tried Emacs. This time, it stuck. + +08:05.436 --> 08:07.370 +I started out just vanilla, + +08:07.370 --> 08:09.470 +basic no init.el, + +08:09.470 --> 08:11.103 +then I wrote an init.el, + +08:11.103 --> 08:12.636 +and then I rewrote my init.el, + +08:12.636 --> 08:16.570 +and then I took my init.el, crumpled it up, + +08:16.570 --> 08:17.736 +threw it in the trash can, + +08:17.736 --> 08:19.603 +wrote it again from scratch. + +08:19.603 --> 08:21.203 +I'm actually currently + +08:21.203 --> 08:23.036 +in the middle of Bankruptcy #8, + +08:23.036 --> 08:25.136 +which I think I really got this time. + +08:25.136 --> 08:29.036 +It's either that or Number 9. + +08:29.036 --> 08:32.936 +So I have 1700-ish commits. + +08:32.936 --> 08:37.536 +I also have like, 3 or 4 .emacs repositories + +08:37.536 --> 08:41.500 +around my various Git hosting platforms + +08:41.500 --> 08:42.270 +that I use. + +08:42.270 --> 08:44.103 +I was on GitHub, GitLab, ~/git... + +08:44.103 --> 08:47.403 +I don't use Git very well. + +08:47.403 --> 00:08:50.002 +I'm very much amateur in that entire thing. + +08:50.003 --> 08:52.970 +Anyway, that is all to say + +08:52.970 --> 08:55.170 +I got into it, right. + +08:55.170 --> 08:57.470 +Like, really into it. + +08:57.470 --> 08:59.000 +I was watching + +08:59.000 --> 09:02.136 +Emacs Conference videos. Live. + +09:02.136 --> 09:06.003 +I was reading /r/emacs. + +09:06.003 --> 09:07.036 +I was reading Planet Emacs. + +09:07.036 --> 09:09.036 +I subscribed to both. + +09:09.036 --> 09:11.603 +I have other blogs that I read. + +09:11.603 --> 09:13.570 +All the greats. + +09:13.570 --> 09:16.203 +Everyone who's presenting here, probably. + +09:16.203 --> 09:18.836 +I started watching people on YouTube + +09:18.836 --> 09:20.803 +like Prot, like David Wilson + +09:20.803 --> 09:23.003 +who does System Crafters. + +09:23.003 --> 09:25.336 +I was already on IRC + +09:25.336 --> 09:26.836 +with the tildeverse, + +09:26.836 --> 09:29.670 +and so I hopped over to #emacs on Freenode + +09:29.670 --> 09:30.936 +(remember Freenode?). + +09:30.936 --> 09:34.403 +Anyway, it was a good time. + +09:34.403 --> 09:36.003 +So I was doing all this stuff. + +09:36.003 --> 00:09:38.235 +And... oh yeah. Right. + +09:38.236 --> 09:40.636 +Anyway, so that's all to say... + +09:40.636 --> 09:46.736 +Frowns. I was on #systemcrafters channel + +09:46.736 --> 09:47.970 +on libera.chat, + +09:47.970 --> 09:51.203 +the channel for the YouTube channel + +09:51.203 --> 09:53.403 +System Crafters by David Wilson. + +09:53.403 --> 09:55.436 +I think he's on later. + +09:55.436 --> 09:57.070 +I'm sure he'll talk about it. + +09:57.070 --> 09:58.370 +I don't know what he's talking about. + +09:58.370 --> 10:01.270 +Anyway, one day we were chatting + +10:01.270 --> 10:02.770 +and this guy alphapapa, who also + +10:02.770 --> 10:08.236 +has written a lot of these packages, said + +10:08.236 --> 10:09.370 +"electric-pair-mode messes up + +10:09.370 --> 10:10.733 +my frowny faces sometimes." + +10:10.733 --> 10:14.036 +You can see here + +10:14.036 --> 10:15.170 +this frowny, what is this... + +10:15.170 --> 10:23.136 +You can see it there on the screen. + +10:23.136 --> 10:24.303 +What is that, right? + +10:24.303 --> 10:27.070 +It's terrifying. + +10:27.070 --> 10:28.203 +What is this? + +10:28.203 --> 10:30.970 +What is that? + +10:30.970 --> 10:31.803 +I don't know. + +10:31.803 --> 00:10:32.735 +I don't know what that is. + +10:32.736 --> 10:34.736 +And then I said, you know, + +10:34.736 --> 10:35.567 +"I have a hook + +10:35.567 --> 10:36.536 +that disables electric-pair-mode + +10:36.536 --> 10:37.970 +for chat buffers." + +10:37.970 --> 10:39.136 +Which, actually, fun fact, + +10:39.136 --> 10:40.167 +I was lying. + +10:40.167 --> 10:41.836 +Not that that matters. + +10:41.836 --> 10:43.370 +I have a hook. + +10:43.370 --> 10:44.436 +You could have a hook + +10:44.436 --> 10:46.203 +that just disables electric-pair-mode + +10:46.203 --> 10:46.800 +in chat buffers. + +10:46.800 --> 10:47.803 +To which he replied, + +10:47.803 --> 10:50.667 +"Yeah, but I want electric-pair-mode + +10:50.667 --> 10:51.900 +everywhere, except for + +10:51.900 --> 10:53.670 +when I type a frowny face." + +10:53.670 --> 10:56.503 +And this sandwich face. What is that? + +10:56.503 --> 10:59.870 +He said, "I could stop typing frowny faces." + +10:59.870 --> 11:01.270 +And then I said, "Hmm..." + +11:01.270 --> 11:02.533 +And then I said, "I feel like + +11:02.533 --> 11:03.200 +you're in the best position + +11:03.200 --> 11:05.336 +to write a package, like frowny.el," + +11:05.336 --> 11:07.270 +I said as a joke. + +11:07.270 --> 11:10.636 +And then conversation went on, + +11:10.636 --> 11:12.636 +we talked about... made some jokes + +11:12.636 --> 00:11:14.669 +about Lisp and all that stuff. + +11:14.670 --> 11:18.370 +So anyway, went on, went on, + +11:18.370 --> 11:20.503 +and then apparently, + +11:20.503 --> 11:21.703 +23 minutes later, + +11:21.703 --> 11:24.603 +I had a frowny.el package + +11:24.603 --> 11:26.770 +just wrote up real quick. + +11:26.770 --> 11:30.903 +And yeah. That was it. + +11:30.903 --> 11:31.803 +I said, you know, buddy, + +11:31.803 --> 00:11:33.069 +anyway... + +11:33.070 --> 11:34.270 +So now we're going to look at + +11:34.270 --> 11:35.803 +the package that I wrote. + +11:35.803 --> 11:36.970 +frowny.el. + +11:36.970 --> 11:40.070 +It was actually pretty easy. + +11:40.070 --> 11:41.936 +Let's see here. + +11:41.936 --> 11:44.170 +This is it now. + +11:44.170 --> 11:50.203 +I kind of want to go back into... + +11:50.203 --> 11:53.236 +Let's go back to the very beginning. + +11:53.236 --> 11:56.536 +We'll see what we have here. + +11:56.536 --> 11:57.303 +Here's our very first, + +11:57.303 --> 11:59.370 +my very first commit. + +11:59.370 --> 12:03.370 +I already had all of this crap. + +12:03.370 --> 12:05.736 +Oh, I already did have a... + +12:05.736 --> 12:08.336 +I had a defgroup, I had frowny-eyes... + +12:08.336 --> 12:11.236 +This is basically the way I thought it was. + +12:11.236 --> 12:14.736 +You want to insert a frowny face. + +12:14.736 --> 12:16.670 +You type in the colon, + +12:16.670 --> 12:18.670 +or the equal sign, or whatever. + +12:18.670 --> 12:19.836 +for the eyes, + +12:19.836 --> 12:21.436 +and then you type the open parenthesis + +12:21.436 --> 12:22.836 +for the frown. + +12:22.836 --> 12:25.703 +And the problem is that + +12:25.703 --> 12:27.870 +the parenthesis then triggers + +12:27.870 --> 12:29.170 +electric-pair-mode. + +12:29.170 --> 12:30.303 +It's like, oh, no, I got + +12:30.303 --> 12:32.503 +a close parenthesis. + +12:32.503 --> 12:33.836 +So we just short-circuit that + +12:33.836 --> 12:36.270 +whenever there's a thing, + +12:36.270 --> 12:38.636 +a colon or equals sign before, + +12:38.636 --> 12:40.136 +and just insert the thing. + +12:40.136 --> 12:41.736 +Where did it go? + +12:41.736 --> 12:43.303 +That's kind of what I did. + +12:43.303 --> 12:45.370 +So I wrote out... This is it. + +12:45.370 --> 12:46.603 +This is the whole package. + +12:46.603 --> 12:49.803 +It's one function, one minor mode, + +12:49.803 --> 12:52.536 +one defcustom, and one group. That's it. + +12:52.536 --> 12:54.303 +Super simple. + +12:54.303 --> 12:56.970 +Basically, all it does is + +12:56.970 --> 12:59.803 +it inserts a frowny + +12:59.803 --> 13:04.603 +if it looks back and sees frowny eyes + +13:04.603 --> 13:07.536 +which are up here. + +13:07.536 --> 13:08.136 +The eyes are up here. + +13:08.136 --> 13:11.536 +Colon, equals sign... + +13:11.536 --> 13:13.336 +and then it inserts it + +13:13.336 --> 13:15.970 +or it does a self insert command. + +13:15.970 --> 13:17.636 +That simple. + +13:17.636 --> 13:18.803 +self-insert-command is what + +13:18.803 --> 13:22.770 +electric-pair-mode hooks into. + +13:22.770 --> 13:24.370 +So that's it. + +13:24.370 --> 13:25.503 +And then the minor mode + +13:25.503 --> 13:27.070 +just makes it a minor mode. + +13:27.070 --> 13:28.503 +So that was that. + +13:28.503 --> 13:32.436 +And you know, that worked just fine. + +13:32.436 --> 13:35.670 +That's the thing. It works just fine. + +13:35.670 --> 13:37.270 +Of course, after that, + +13:37.270 --> 13:39.103 +I had it do a couple of different things. + +13:39.103 --> 13:40.236 +I added a mascot. + +13:40.236 --> 13:42.370 +I had to add a README. + +13:42.370 --> 13:45.070 +I added a global-frowny-mode + +13:45.070 --> 13:49.036 +which was kind of interesting + +13:49.036 --> 13:49.870 +because I had to figure out + +13:49.870 --> 13:51.603 +turn on the frowny mode, + +13:51.603 --> 13:56.336 +I wrote this define-globalized-minor-mode + +13:56.336 --> 13:58.603 +which... is that the one + +13:58.603 --> 14:00.870 +No, that one's not super new. + +14:00.870 --> 14:04.203 +There was another one. Something else + +14:04.203 --> 14:07.170 +that was actually for 28 or 27, + +14:07.170 --> 14:09.036 +and I tried using it at work, + +14:09.036 --> 14:10.970 +where I have Windows + +14:10.970 --> 14:13.436 +and it was 27, + +14:13.436 --> 14:14.670 +so it must have been for 28. + +14:14.670 --> 14:16.103 +Anyway, something didn't work + +14:16.103 --> 14:17.170 +and I had to do all this stuff. + +14:17.170 --> 14:20.870 +Oops, sorry. + +14:20.870 --> 14:23.070 +I added some customization options, + +14:23.070 --> 14:25.370 +made package-lint happy... + +14:25.370 --> 14:27.336 +So yeah, let's see. + +14:27.336 --> 14:30.170 +That's 0.1. + +14:30.170 --> 14:33.370 +This version 0.1 was basically + +14:33.370 --> 14:36.770 +basic information. + +14:36.770 --> 14:39.670 +So then somebody... I put it on GitHub, + +14:39.670 --> 14:40.270 +good to go. + +14:40.270 --> 14:43.103 +It actually got some traction on Reddit. + +14:43.103 --> 14:45.903 +alphapapa, shout out to you + +14:45.903 --> 14:47.303 +who posted it there. + +14:47.303 --> 14:50.636 +But then I got an issue. + +14:50.636 --> 14:51.770 +Somebody said, hey, could you add + +14:51.770 --> 14:52.936 +smiley support? + +14:52.936 --> 14:54.403 +I was, like, well, + +14:54.403 --> 14:55.070 +I don't really understand + +14:55.070 --> 14:56.003 +why that's important. + +14:56.003 --> 14:58.236 +Well, you know, why not? + +14:58.236 --> 15:01.270 +They had a use case for it, I forget, + +15:01.270 --> 15:02.270 +but they had a use case for it. + +15:02.270 --> 15:03.770 +So, okay, fine. + +15:03.770 --> 15:05.270 +So I added smiley support right here. + +15:05.270 --> 15:12.570 +Oh, and I added some more eyes + +15:12.570 --> 15:13.670 +at some point. + +15:13.670 --> 15:16.736 +Now you have... you can do a tear. + +15:16.736 --> 15:18.103 +You can do a nose. + +15:18.103 --> 15:23.603 +Let's see... + +15:23.603 --> 15:27.270 +I had to change frowny-self-insert + +15:27.270 --> 15:28.803 +to frowny-insert-character, + +15:28.803 --> 15:33.400 +I added frowny-self-insert-frowny + +15:33.400 --> 15:34.170 +right here. + +15:34.170 --> 15:38.536 +I added... I had an obsolete function alias. + +15:38.536 --> 15:39.503 +That was super fun. + +15:39.503 --> 15:40.870 +That was a cool thing to do. + +15:40.870 --> 15:43.970 +I have insert-smiley as well. + +15:43.970 --> 15:45.536 +They're both very similar. + +15:45.536 --> 15:47.336 +They're all still there. + +15:47.336 --> 15:49.403 +I added a keymap. + +15:49.403 --> 15:50.833 +That was pretty much it. + +15:50.833 --> 15:51.303 +And you know, again, + +15:51.303 --> 15:54.203 +super simple, very small. + +15:54.203 --> 15:56.270 +Let me try this again. + +15:56.270 --> 15:58.336 +I added comments and docstrings. + +15:58.336 --> 15:59.170 +At some point, I decided + +15:59.170 --> 16:03.870 +let me try to make a frowny prog mode + +16:03.870 --> 16:06.236 +that only works in programming modes, + +16:06.236 --> 16:07.536 +that only works in strings + +16:07.536 --> 16:09.303 +and in comments, but... + +16:09.303 --> 16:11.803 +There's still a branch for it, + +16:11.803 --> 16:14.003 +if you want to go check it out. + +16:14.003 --> 16:15.303 +It wasn't super useful, + +16:15.303 --> 16:16.336 +and I think, actually, + +16:16.336 --> 16:18.136 +electric-pair-mode already does that. + +16:18.136 --> 16:19.070 +I'm not a hundred percent sure. + +16:19.070 --> 16:21.503 +I got a pull request + +16:21.503 --> 16:23.903 +from alphapapa, adding HISTORY.org. + +16:23.903 --> 16:26.170 +So you can go read the IRC logs about it. + +16:26.170 --> 16:29.703 +There's... Let's see... + +16:29.703 --> 16:31.236 +And then just recently, + +16:31.236 --> 16:33.636 +I actually had to add frowny-inhibit-modes + +16:33.636 --> 16:39.603 +because with dired, I kept getting this... + +16:39.603 --> 16:43.236 +I would try to hit open parenthesis + +16:43.236 --> 16:47.536 +which is my dired-hide-details-mode, + +16:47.536 --> 16:50.536 +but it kept saying, hey, + +16:50.536 --> 16:51.903 +it's a read-only buffer. I'm, like, what? + +16:51.903 --> 16:55.303 +Oh yeah! Right! It's Emacs. I can C-h k + +16:55.303 --> 16:59.703 +and then (, and oh, frowny-self-insert. + +16:59.703 --> 17:01.636 +Oh, duh. So I had to add + +17:01.636 --> 17:05.036 +this little frowny-inhibit-modes bit. + +17:05.036 --> 17:06.836 +So now there's a little custom in here. + +17:06.836 --> 17:09.136 +Right now, it just defaults to special-mode. + +17:09.136 --> 17:12.170 +I added dired myself on my config. + +17:12.170 --> 17:14.236 +I might add that as a default as well. + +17:14.236 --> 17:15.270 +I'm going to think about it. + +17:15.270 --> 17:21.536 +And then, yeah. So now we're at version 0.3, + +17:21.536 --> 17:23.470 +that's where we're at now. + +17:23.470 --> 17:26.070 +I just updated the README with the last one. + +17:26.070 --> 17:28.603 +Basically, lots of functionality, + +17:28.603 --> 17:30.303 +plus this frowny-inhibit-mode, + +17:30.303 --> 17:32.836 +and yeah, now it is just... + +17:32.836 --> 17:34.503 +This is it. This is the whole thing + +17:34.503 --> 17:36.736 +right here. It's pretty short. + +17:36.736 --> 17:39.103 +I think it's a total of 113 lines. + +17:39.103 --> 17:42.203 +But you know what, it's got... + +17:42.203 --> 17:43.803 +It's useful for people, + +17:43.803 --> 17:45.136 +and it's something where + +17:45.136 --> 17:47.770 +I never thought I would write + +17:47.770 --> 17:49.470 +software that people would use. + +17:49.470 --> 17:51.136 +As I said, I'm not a programmer. + +17:51.136 --> 17:54.003 +I'm just this guy. + +17:54.003 --> 17:55.070 +I like using Emacs + +17:55.070 --> 17:56.103 +because I'm kind of a nerd. + +17:56.103 --> 17:57.436 +I like tinkering around + +17:57.436 --> 17:58.436 +and doing things the hard way. + +17:58.436 --> 18:02.570 +I don't... I could use Microsoft Word. + +18:02.570 --> 18:04.136 +I should. I was trying to + +18:04.136 --> 18:06.136 +write this presentation up + +18:06.136 --> 18:07.500 +and my wife said, "Why don't you just + +18:07.500 --> 18:08.903 +write it in Google Docs?" + +18:08.903 --> 18:11.503 +And I said, "I don't want to." + +18:11.503 --> 18:13.036 +I mean, that's really it. + +18:13.036 --> 18:15.036 +Isn't that why we're all here? + +18:15.036 --> 18:18.936 +So yeah, you know, + +18:18.936 --> 18:21.003 +so anyway, that's the story about frowny + +18:21.003 --> 18:22.270 +That's the story about me, + +18:22.270 --> 18:25.436 +my journey to Emacs, + +18:25.436 --> 18:27.136 +my journey to this conference, + +18:27.136 --> 18:30.636 +and the journey of this package. + +18:30.636 --> 18:32.536 +I think it's about done. + +18:32.536 --> 18:36.136 +I'm not sure what else needs to go in there. + +18:36.136 --> 18:38.103 +If you have any suggestions, + +18:38.103 --> 18:39.803 +pull requests, comments, + +18:39.803 --> 18:43.370 +there's a GitHub right here, + +18:43.370 --> 18:45.436 +frowny.el. + +18:45.436 --> 18:49.236 +Let's see if I can pull it up. + +18:49.236 --> 18:52.370 +frowny.el. + +18:52.370 --> 18:55.236 +I'll put it on (inaudible). + +18:55.236 --> 18:57.336 +That's something I still don't understand. + +18:57.336 --> 18:59.203 +Packages, the whole keywords thing... + +18:59.203 --> 19:00.236 +I'm still confused on that. + +19:00.236 --> 19:04.636 +But yeah. Just requires Emacs 24. + +19:04.636 --> 19:09.970 +That's it. So anyway, + +19:09.970 --> 19:12.470 +I'm not sure if I'm going to be + +19:12.470 --> 19:13.803 +live for questions. + +19:13.803 --> 19:14.736 +I'm recording this, obviously, + +19:14.736 --> 19:15.903 +a bit before, + +19:15.903 --> 19:18.636 +and I will be travelling that weekend, + +19:18.636 --> 19:20.303 +this weekend, when you're watching this, + +19:20.303 --> 19:25.236 +so I'm going to... But right now, + +19:25.236 --> 19:26.836 +I'm recording it, I'm not 100% sure. + +19:26.836 --> 19:28.636 +I will know obviously by then. + +19:28.636 --> 19:30.003 +So maybe I'll talk to you + +19:30.003 --> 19:31.070 +in a moment, maybe not. + +19:31.070 --> 19:33.300 +Otherwise, have a + +19:33.300 --> 19:34.336 +great conference, everybody. + +19:34.336 --> 19:38.303 +I'm really excited to see everyone's talks. |