summaryrefslogtreecommitdiffstats
path: root/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
diff options
context:
space:
mode:
Diffstat (limited to '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')
-rw-r--r--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.vtt1552
1 files changed, 1552 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--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.