[[!meta title="The True Frownies are the Friends We Made Along the Way: An Anecdote of Emacs's Malleability"]] [[!meta copyright="Copyright © 2021 Case Duckworth"]] [[!inline pages="internal(2021/info/frownies-nav)" raw="yes"]] <!-- You can manually edit this file to update the abstract, add links, etc. ---> # The True Frownies are the Friends We Made Along the Way: An Anecdote of Emacs's Malleability Case Duckworth [[!inline pages="internal(2021/info/frownies-schedule)" raw="yes"]] Emacs is well-known for being extremely flexible, programmable, and extensible; in fact, that's probably the biggest reason it's still being used after 40+ years of existence, and even has enough clout to generate an entire conference in its name. In this medium-length presentation, I will add another point to the data set proving Emacs's abilities, by narrating the latest package I made, `frowny.el`, from its conception to its current, nearly-completed state. I wrote frowny.el to scratch someone else's itch as a joke on IRC, but it has been called "pretty useful, for a joke package." I feel like that encapsulates the spirit of Emacs and that's why I want to present on this topic. Along the way, I'll discuss just a little of my own history of Emacs, and why I feel it's a great tool for non-technical users to sink their teeth into. ## Speaker information - Name pronunciation: /keɪs ˈdʌkwə(ɹ)θ/ (CASE DUCK-worth) - Prounouns: he/him - Homepage: <https://www.acdw.net> - Preferred contact info: [email](mailto:acdw@acdw.net) - Links: - <https://breadpunk.club>, a shared unix server about bread - [my Mastodon account](https://writing.exchange/@acdw) (though I'm moving to [tiny.tilde.website](https://tiny.tilde.website/@acdw) ... soon™) # Discussion - How do we obtain frowny.el? - A: Please check <https://github.com/duckwork/frowny.el> - What was the funniest time a frown emerged from unintended code? Or any similar occurrence. - A: I frown a lot when I'm problem solving ;) - What packages you used for writing? - A: I just use org-mode for its markup. If you mean the presentation, I think... org-present? - You wrote the package quite fast. Would you say you knew what you were going to program before you did it? Or was it iterative process? - A: pretty iterative, but very fast b/c it's a small project space! - from chat (Cairn): do you have a personal site? - A: <https://www.acdw.net> - not related to the talk, but on a different note: I like the emacs background image used in the video stream. is it available somewhere for download? :-) - A: <https://emacsconf.org/i/emacsconf-logo1-256.png> (nervous laugh) - Why host it on GitHub? or codeberg.org, or sr.ht, or (non-)GNU savannah, or your own server - Does frowny work with ;) - Compulsively C-q anything electric. Don't need a hook when you've got one in your brain. - TBH you should transform it into a patch for electric-pair-mode - So I want to contribute to Emacs, but I don't know enough elisp. Perhaps I could contribute some documentation? But I have no idea what that would be... - From the speaker: i'd love to hear more about licensing, basically i don't care how my stuff is used at all - From [YouTube](https://www.youtube.com/watch?v=CZn_H93wc5A&feature=em-comments): Hey Case! Thanks for the great talk. I feel like I have had a similar experience to yours by also learning from vanilla Emacs. I like how you're showcasing how easy it is to scratch your own itch in Emacs. Feedback: - These kinds of talks are real fun, great job! - For real though, I love the path you took to get to where you are. It's super relatable and I've loved hearing about it. - These ‘how I got suckered into programming emacs by [hilariously trivial thing]’ are always fun. - frowny.el shows how writing a package can help learn things---all sorts of things to consider and lots of "aha!" moments Links: - <https://breadpunk.club> - /r/emacs - <https://old.reddit.com/r/emacs> - Planet Emacs - <https://planet.emacslife.com> - HISTORY.org - <https://github.com/duckwork/frowny.el/blob/main/HISTORY.org> - <https://github.com/duckwork/frowny.el> [[!inline pages="internal(2021/captions/frownies)" raw="yes"]] [[!inline pages="internal(2021/info/frownies-nav)" raw="yes"]]