diff options
Diffstat (limited to '')
35 files changed, 4355 insertions, 331 deletions
@@ -6,8 +6,9 @@ <p class="center">[[!img /i/emacsconf-logo1-256.png alt="EmacsConf logo"]]</p> -<p class="center">[[Call for Proposals|cfp]] | -[[Ideas]] | [[Submit]] | [[Prepare]] | [[Planning]] | +<p class="center">[[<strong>Program</strong>|schedule]] | +[[<strong>Posters</strong>|poster]] | [[Call for Proposals|cfp]] | +[[Ideas]] | [[Submit]] | [[Prepare]] | [[Planning]] | [[Guidelines for Conduct|conduct]]</p> <p class="center">EmacsConf is the conference about the joy of @@ -40,9 +41,11 @@ Come hang out with us in the `#emacsconf` channel on `irc.libera.chat` ## Thanks - Volunteers: - - bandali: Amin Bandali - main organization, communications - - zaeph: Leo Vivier - meeting chair, notes, communications - - mplsCorwin: Corwin Brust - FOSSHost - - sachac: Sacha Chua - schedule - - seabass: Sebastian Crane - ideas - - zleap - poster + - bandali (Amin Bandali): main organization, communications + - zaeph (Leo Vivier): meeting chair, notes, communications + - mplsCorwin (Corwin Brust): FOSSHost + - sachac (Sacha Chua): schedule, captions + - seabass (Sebastian Crane), dto (David O'Toole): ideas + - zleap (Paul Sutton), garulfo (Garulfo Azules), + alphapapa (Adam Porter): beautiful posters for EmacsConf 2021 + - bhavin192 (Bhavin Gandhi): captions diff --git a/2021/captions/emacsconf-2021-news--emacs-news-highlights--sacha-chua.vtt b/2021/captions/emacsconf-2021-news--emacs-news-highlights--sacha-chua.vtt new file mode 100644 index 00000000..cae57e66 --- /dev/null +++ b/2021/captions/emacsconf-2021-news--emacs-news-highlights--sacha-chua.vtt @@ -0,0 +1,481 @@ +WEBVTT + +00:00.003 --> 00:01.519 +I'm Sacha Chua, and here are + +00:01.519 --> 00:03.754 +ten Emacs News highlights for 2021. + +00:03.754 --> 00:05.305 +If you want to follow the links, + +00:05.305 --> 00:06.846 +check out the wiki page at + +00:06.846 --> 00:11.024 +https://emacsconf.org/2021/talks/news/ . + +00:11.024 --> 00:13.442 +1. The Emacs developers are currently + +00:13.442 --> 00:15.346 +working on Emacs 28.1, + +00:15.346 --> 00:17.119 +which will be the next major release. + +00:17.119 --> 00:18.442 +Native compilation should + +00:18.442 --> 00:19.959 +make everything way faster, + +00:19.959 --> 00:21.476 +and emoji support will probably + +00:21.476 --> 00:22.549 +make things more fun. 😎👍 + +00:22.549 --> 00:25.133 +John Wiegley will share more Emacs 28 details + +00:25.133 --> 00:26.913 +in his update, so check out his talk. + +00:26.913 --> 00:28.783 +Andrea Corallo's giving a talk + +00:28.783 --> 00:30.418 +on native compilation too. + +00:30.418 --> 00:31.206 +2. + +00:31.206 --> 00:33.732 +Org Mode is now at version 9.5. + +00:33.732 --> 00:35.086 +New features include + +00:35.086 --> 00:36.935 +a library for managing citations, + +00:36.935 --> 00:38.414 +asynchronous session support + +00:38.414 --> 00:39.375 +for code blocks, + +00:39.375 --> 00:40.342 +and better control + +00:40.342 --> 00:41.595 +of your agenda's appearance. + +00:41.595 --> 00:43.372 +If you've been getting your Org packages + +00:43.372 --> 00:44.506 +from Org ELPA, + +00:44.506 --> 00:46.128 +you can update your configuration + +00:46.128 --> 00:47.896 +to get Org from GNU ELPA + +00:47.896 --> 00:50.155 +and org-contrib from NonGNU ELPA. + +00:50.155 --> 00:52.278 +The new release of the Org Roam package + +00:52.278 --> 00:54.185 +should be a faster and more consistent way + +00:54.185 --> 00:56.060 +to use Org to manage a knowledgebase, + +00:56.060 --> 00:58.423 +and org-roam-ui looks pretty snazzy. + +00:58.423 --> 01:00.531 +The best way to keep up with Org changes + +01:00.531 --> 01:02.556 +is to check out the blog This Month in Org. + +01:02.556 --> 01:03.439 +3. + +01:03.439 --> 01:05.469 +New Magit major release! + +01:05.469 --> 01:07.781 +Jonas Bernoulli has split some functionality + +01:07.781 --> 01:09.557 +into other packages so that + +01:09.557 --> 01:11.719 +Emacs Lisp developers can use them, such as + +01:11.719 --> 01:14.049 +magit-section, transient, and forge. + +01:14.049 --> 01:16.502 +Here's an example of using magit-section + +01:16.502 --> 01:17.773 +to manage groups of buffers. + +01:17.773 --> 01:19.333 +You can learn more about Transient + +01:19.333 --> 01:20.842 +in the talk on self-describing + +01:20.842 --> 01:23.538 +smart domain-specific languages or DSLs. + +01:23.538 --> 01:24.320 +4. + +01:24.320 --> 01:26.545 +In terms of smaller packages, there's been + +01:26.545 --> 01:28.625 +a lot of activity around completion. + +01:28.625 --> 01:30.292 +Karthik has a great diagram, + +01:30.292 --> 01:32.459 +and Prot explains how things work together. + +01:32.459 --> 01:34.414 +I think the idea is that instead of having + +01:34.414 --> 01:36.066 +one large completion system + +01:36.066 --> 01:38.344 +like Helm or Icicles, you can choose + +01:38.344 --> 01:40.110 +a few different, smaller packages + +01:40.110 --> 01:41.869 +and configure them to work together. + +01:41.869 --> 01:43.129 +If you're curious about this, + +01:43.129 --> 01:45.159 +you might start with either selectrum + +01:45.159 --> 01:47.871 +or vertico, which are both completion interfaces, + +01:47.871 --> 01:50.443 +add marginalia for more information, + +01:50.443 --> 01:52.222 +and try consult for many useful + +01:52.222 --> 01:53.233 +completing commands. + +01:53.233 --> 01:54.279 +There are so many options, + +01:54.279 --> 01:55.867 +so it might be useful to check out + +01:55.867 --> 01:56.714 +some discussions. + +01:56.714 --> 01:57.477 +5. + +01:57.477 --> 01:59.531 +Embark is usually mentioned as part of + +01:59.531 --> 02:00.607 +that group of packages, + +02:00.607 --> 02:02.196 +but it's well worth looking into + +02:02.196 --> 02:03.895 +even if you use a different system. + +02:03.895 --> 02:06.417 +Embark lets you have context-sensitive shortcuts + +02:06.417 --> 02:08.796 +that work on things in buffers, minibuffers, + +02:08.796 --> 02:10.768 +and even collections of things. + +02:10.768 --> 02:11.737 +You can also use it + +02:11.737 --> 02:12.912 +when you start doing one command + +02:12.912 --> 02:15.012 +and then decide to do a different one instead. + +02:15.012 --> 02:16.271 +For more ideas, check out + +02:16.271 --> 02:17.495 +Fifteen Ways to Use Embark. + +02:17.495 --> 02:18.285 +6. + +02:18.285 --> 02:20.163 +Now that there are Emacs Lisp bindings + +02:20.163 --> 02:22.139 +for tree-sitter, we can work more easily + +02:22.139 --> 02:23.799 +with the structure of code instead of + +02:23.799 --> 02:25.461 +just using regular expressions. + +02:25.461 --> 02:26.209 +Check out the talk + +02:26.209 --> 02:27.804 +on Tree-edit and structural editing + +02:27.804 --> 02:28.593 +to learn more. + +02:28.593 --> 02:30.056 +You can use tree-sitter for + +02:30.056 --> 02:31.951 +intelligent snippets that get information + +02:31.951 --> 02:33.169 +from the code around them, + +02:33.169 --> 02:35.064 +editing Lisp expressions, + +02:35.064 --> 02:37.401 +and navigating text objects in Evil mode. + +02:37.401 --> 02:39.670 +(That's when Emacs is pretending to be Vi.) + +02:39.670 --> 02:42.563 +Dynamic modules help us add more to Emacs + +02:42.563 --> 02:44.388 +than Emacs Lisp easily offers, + +02:44.388 --> 02:46.804 +such as structural editing in OCaml + +02:46.804 --> 02:48.729 +and using Rust to figure out parentheses + +02:48.729 --> 02:50.086 +and indentation for Lisp. + +02:50.086 --> 02:50.999 +If you're curious, + +02:50.999 --> 02:51.923 +check out the talk on + +02:51.923 --> 02:54.336 +Extending Emacs in Rust with Dynamic Modules. + +02:54.336 --> 02:55.239 +7. + +02:55.239 --> 02:57.294 +Collaborative editing is now much easier + +02:57.294 --> 02:59.890 +since the CRDT package is in GNU ELPA. + +02:59.890 --> 03:01.632 +It allows multiple people to edit + +03:01.632 --> 03:03.285 +the same file over the network, + +03:03.285 --> 03:05.025 +using their own Emacs. + +03:05.025 --> 03:06.850 +This means you can keep your own config + +03:06.850 --> 03:08.674 +and keybindings, yay! + +03:08.674 --> 03:10.400 +Watch the Emacs Research Group talk + +03:10.400 --> 03:12.185 +for an example of how several people + +03:12.185 --> 03:13.337 +used it to work together. + +03:13.337 --> 03:13.838 +8. + +03:13.838 --> 03:15.401 +In case you're still under the impression + +03:15.401 --> 03:17.049 +that Emacs is just a text editor, + +03:17.049 --> 03:18.560 +some folks have been working on + +03:18.560 --> 03:20.254 +pretty neat graphical experiments. + +03:20.254 --> 03:22.432 +These OpenGL bindings for Emacs Lisp + +03:22.432 --> 03:24.195 +use an embedded xwidget, + +03:24.195 --> 03:26.607 +while other prototypes use the SVG support + +03:26.607 --> 03:27.700 +that's built into Emacs + +03:27.700 --> 03:29.047 +for Gantt charts, + +03:29.047 --> 03:29.819 +scribbles, + +03:29.819 --> 03:31.320 +and even diagrams. + +03:31.320 --> 03:32.790 +The color-picker from that one + +03:32.790 --> 03:34.841 +looks particularly useful for CSS. + +03:34.841 --> 03:37.043 +If you want to play around with adding SVGs + +03:37.043 --> 03:38.722 +to your files and interfaces, + +03:38.722 --> 03:39.762 +svg-icon + +03:39.762 --> 03:40.679 +and svg-lib + +03:40.679 --> 03:42.733 +might be good places to start. (Reddit) + +03:42.733 --> 03:44.207 +Of course, there's always a place + +03:44.207 --> 03:45.209 +for ASCII art, + +03:45.209 --> 03:46.933 +especially with the new boxy package + +03:46.933 --> 03:48.433 +that you can use for org files, + +03:48.433 --> 03:49.753 +imenu navigation, + +03:49.753 --> 03:51.418 +and even things in real life. + +03:51.418 --> 03:52.208 +9. + +03:52.208 --> 03:54.411 +There have been a lot of great posts, videos, + +03:54.411 --> 03:56.312 +and livestreams about Emacs this year. + +03:56.312 --> 03:57.574 +In addition to the ones + +03:57.574 --> 03:58.973 +from System Crafters, + +03:58.973 --> 04:00.153 +Emacs Elements, + +04:00.153 --> 04:01.664 +and Protesilaos, + +04:01.664 --> 04:02.474 +John Kitchin + +04:02.474 --> 04:03.220 +and Mike Zamansky + +04:03.220 --> 04:04.255 +are back, hooray! + +04:04.255 --> 04:04.926 +10. + +04:04.926 --> 04:06.433 +Lastly, if you want to chat + +04:06.433 --> 04:07.587 +with other Emacs folks + +04:07.587 --> 04:09.788 +and get help on Emacs, Org Mode, + +04:09.788 --> 04:10.715 +or other topics, + +04:10.715 --> 04:11.940 +the #emacs and #org-mode + +04:11.940 --> 04:14.365 +Internet Relay Chat or IRC channels + +04:14.365 --> 04:16.251 +are now on the libera.chat network + +04:16.251 --> 04:17.517 +instead of Freenode. + +04:17.517 --> 04:19.392 +If you'd like to add something I've missed, + +04:19.392 --> 04:21.087 +please add them to the wiki page, + +04:21.087 --> 04:23.538 +or e-mail me at sacha@sachachua.com . + +04:23.538 --> 04:25.058 +That's all for this quick review. + +04:25.058 --> 04:27.608 +Enjoy the rest of EmacsConf 2021! diff --git a/2021/contribute.md b/2021/contribute.md new file mode 100644 index 00000000..8c351cd8 --- /dev/null +++ b/2021/contribute.md @@ -0,0 +1,71 @@ +[[!meta title="Contribute to EmacsConf 2021"]] +[[!meta copyright="Copyright © 2021 Sacha Chua, Leo Vivier"]] + +Want to help with EmacsConf 2021? Here's how you can make it even better! + +The tasks are ordered by decreasing priority. + +# Editing & Reviewing Captions + +Want to help make videos easier for people to enjoy during the +conference, or find and learn from afterwards? Please volunteer to +help caption recorded talks! You'll get a sneak preview of a talk, +and possibly auto-generated captions that you can use as a starting +point. + +We’d like to get started on this as soon as possible because the +pre-recordings will start trickling in until the conference, and doing it +progressively is a good way to keep the work-load low. + +For an Emacs-based solution, [subed.el](https://github.com/rndusr/subed/) mode +makes it easier to adjust the timings or edit the text. + +# Tech-checks with Speakers + +Many sessions will have live question and answer sessions via BigBlueButton +(BBB). Everything works more smoothly when the speakers are all set up and +ready to go: their audio works, their screen can be shared properly, and so +on. You can help by testing their setup beforehand. + +You can test your own connection at <https://test.bigbluebutton.org> +. If that works for you, you can be a tech-check volunteer. Let us +know what your availability is and we can match you up with speakers +who want to doublecheck their setup before the conference. All you'd +need to do is to go through a checklist with them and send us a quick +email afterwards. + +Here are some notes on the process: + +- Can you hear me? Can I hear you? +- Explain process +- Test audio, webcam, screensharing, collaborative pad + - Music demos and other things that use system audio will need to be + prerecorded (or done through virtual loopback device, maybe? + Technical risk.) + - Multi-monitor setups might not be handled well by BBB; share + window instead of desktop + - Possible picture-in-picture approach to maximize screen real estate if + needed + - Linux: share desktop, run cheese, set Always on Top +- Check if comfortable checking into IRC: #emacsconf-org +- Get phone number for emergency contact, store in private wiki +- Write down IRC nick, name pronunciation, and pronouns for inclusion in the + public wiki +- Encourage webcam for Q&A, although make it clear that it's totally optional + +# Running Alternate Streams + +Do you have a pretty good network connection and a computer capable of +livestreaming? Consider becoming an alternate streamer! You can pick +one or more of your favorite sessions from the [[schedule]] and get +set up for doing an extended stream, allowing more time for Q&A and +live demonstrations. + +# Volunteer + +Thought of another way to help? Sure, suggest away. + +To volunteer, please e-mail <emacsconf-submit@gnu.org>. We'd love to +hear from you! + +Thanks for contributing to EmacsConf 2021! diff --git a/2021/emacsconf-pentabarf.xml b/2021/emacsconf-pentabarf.xml new file mode 100644 index 00000000..9e4c9bf6 --- /dev/null +++ b/2021/emacsconf-pentabarf.xml @@ -0,0 +1,1487 @@ +<schedule><generator name="EmacsConf" version="0.1"></generator><version>20211104092648</version><conference><acronym>emacsconf2021</acronym><title>EmacsConf 2021</title><start>2021-11-27</start><end>2021-11-28</end><time_zone_name>America/Toronto</time_zone_name><base_url>https://emacsconf.org/2021</base_url></conference><day date="2021-11-27" start="2021-11-27T14:00:00Z" end="2021-11-27T21:58:00Z" index="1"><room name="Main"><event id="01" guid="dc07efcd-6d79-cfd4-fed3-59c885fe2922"><date>2021-11-27T14:00:00Z</date><start>09:00</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-day1-open</slug><duration>0:05</duration><title>Opening remarks</title><abstract></abstract><description>Times are approximate and will probably change. + +# Opening remarks</description><url>https://emacsconf.org/2021/talks/day1-open</url><persons><person>EmacsConf</person></persons></event><event id="02" guid="393ba3c2-b2a6-6a84-44eb-872aa333d08d"><date>2021-11-27T14:05:00Z</date><start>09:05</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-news</slug><duration>0:05</duration><title>Emacs News Highlights</title><abstract></abstract><description>Times are approximate and will probably change. + +# Emacs News Highlights +Sacha Chua <mailto:sacha@sachachua.com> - pronouns: she/her + +Quick overview of Emacs community highlights since the last conference + +<https://github.com/sachac/emacsconf-2021-emacs-news-highlights></description><url>https://emacsconf.org/2021/talks/news</url><persons><person>Sacha Chua</person></persons></event><event id="03" guid="06df8309-bd04-eb24-d443-a780c56adc0a"><date>2021-11-27T14:11:00Z</date><start>09:11</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-frownies</slug><duration>0:20</duration><title>The True Frownies are the Friends We Made Along the Way: An Anecdote of Emacs's Malleability</title><abstract></abstract><description>Times are approximate and will probably change. + +# The True Frownies are the Friends We Made Along the Way: An Anecdote of Emacs's Malleability +Case Duckworth + +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.</description><url>https://emacsconf.org/2021/talks/frownies</url><persons><person>Case Duckworth</person></persons></event><event id="51" guid="fe959e43-441b-ed34-854b-87f6f481f55a"><date>2021-11-27T14:34:00Z</date><start>09:34</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-adventure</slug><duration>0:20</duration><title>Choose Your Own (Technology-Enhanced Learning) Adventure</title><abstract></abstract><description>Times are approximate and will probably change. + +# Choose Your Own (Technology-Enhanced Learning) Adventure +Greta Goetz + +This presentation will first illustrate possible paths for beginners and then mapping out the significance of the enhanced learning potential of Emacs (Caillet in Andler & Guerry, Markauskaite & Goodyear). The technology-enhanced learning (TEL) that Emacs affords departs from the 'many, many features' (Stallman) which surpass the confines of a pre-fabricated environment (Stiegler). This affords diverse possibilities for individuals to interact creatively and autonomously to satisfy their own needs alongside others who share use of the tool (Illich). Its adaptability will be shown to be an asset in support of the learning trends identified by the latest pedagogical research (Guo). + +1. Setting out as beginners who may be overwhelmed by formal Emacs documentation. Some inroads. No trace is too small. +2. Emacs as common ground between people and technology. +3. Emacs modularity and TEL design. +4. Emacs as personal, creative, autonomous. +5. Emacs and cognitive democracy. + + +# References + +## General workflow, inspiration, fun: +- Bin, C. (2020). Mastering Emacs in one year. <https://github.com/redguardtoo/mastering-emacs-in-one-year-guide/blob/master/guide-en.org#on-the-shoulders-of-giants>. Accessed 25 October 2021. +- Chua, S. https://sachachua.com/blog/ +- Goetz, G. (2021). Additional references: A back-to-school/GTD Emacs journey. <https://gretzuni.com/articles/a-back-to-school-gtd-emacs-journey>. Accessed 25 October 2021. +- Guerry, B. (2020). Org-mode features you may not know. <https://bzg.fr/en/some-emacs-org-mode-features-you-may-not-know/>. Accessed 25 October 2021. +- Kaiser, K. (2017). Writing a technical book in Emacs and Org-mode. <https://www.kpkaiser.com/programming/writing-a-technical-book-in-emacs-and-org-mode/>. Accessed 25 October 2021. +- Planet Emacs Life. <https://planet.emacslife.com/>. Accessed 25 October 2021. +- Stavrou, P. My packages for GNU Emacs. <https://protesilaos.com/emacs/>. Accessed 25 October 2021. +- Wellons, C. Emacs articles. <https://nullprogram.com/tags/emacs/>. Accessed 25 October 2021. + +## On TEL design and learning: +- Andler, D. & Guerry, B. (Eds.). *Apprendre demain: Sciences cognitives et éducation à l’ère numérique*, 137-154. Paris: Hatier. +- Crichton, M. (1983). *Electronic life*. New York: Knopf. +- De Bono, E. (2009). *Think! Before it's too late*. London: Random House. +- Drosos, I. & Guo, P. (2021). Streamers teaching programming, art, and gaming: Cognitive apprenticeship, serendipitous teachable moments, and tacit expert knowledge. IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), short paper, 2021. <https://pg.ucsd.edu/pubs.htm>. Accessed 25 October 2021. +- Gabriel, R. (1996). *Patterns of software*. New York, Oxford: Oxford University Press. +- Goodyear, P. & Retalis, S. (2010). Learning, technology and design. In Goodyear, P. & Retalis, S. (Eds.). *Technology-enhanced learning: Design patterns and pattern languages*, 1-27. Rotterdam, Boston: Sense Publishers. +- Guo, P. (2018). Students, systems, and interactions: Synthesizing the first +four years of Learning@Scale and charting the future. L@S 2018, June 26–28, 2018, London, United Kingdom. DOI: https://doi.org/10.1145/3231644.3231662. <https://pg.ucsd.edu/pubs.htm>. Accessed 25 October 2021. +- Guo, P., Kim, J. & Rubin, R. (2014). How video production affects student engagement: An empirical study of MOOC videos. ACM Conference on Learning at Scale. <https://pg.ucsd.edu/pubs.htm>. Accessed 25 October 2021. +- Illich, I. (1973). *Tools of conviviality*. New York: Harper & Row. +- Kim, J., Guo, P., Seaton, D., Mitros, P., Gajos, K. & Miller, R. (2014). Understanding in-video dropouts and interaction peaks in online lecture videos. ACM Conference on Learning at Scale. <https://pg.ucsd.edu/pubs.htm>. Accessed 25 October 2021. +- Markauskaite, L. & Goodyear, P. (2017). *Epistemic fluency and professional education: innovation, knowledgeable action and actionable knowledge*. Dordrecht: Springer. +- Markel, J. & Guo, P. (2020). Designing the future of experiential learning environments for a post-COVID world: A preliminary case study. NFW ’20 (Symposium on the New Future of Work), August 3–5, 2020, Virtual Event. <https://pg.ucsd.edu/pubs.htm>. Accessed 25 October 2021. +- Morin, E. ([2004] 2008). *La Méthode - tome 6: Éthique*. Éditions du Seuil: Paris. +- Stallman, R. (2002). *Free software, free society*. GNU Press, Free Software Foundation. +- Stiegler, B. (2018). *The neganthropocene*. Open Humanities Press. +- Trocmé-Fabre, H. (1999). *Réinventer le métier d’apprendre*. Paris: Éditions d’organisation. + + +# Availability and preferred Q&A approach + +Due to the pandemic situation, my teaching schedule fluctuates so I +will not know my availability until much closer to the +date. Therefore, I can only guarantee delayed answer response +(whatever you request), but if available, will join live. +May I please note that I will be pre-recording my video if this submission is accepted. + + +# Speaker release + +By submitting this proposal, I agree that my presentation at +EmacsConf 2021 is subject to the following terms and conditions: + +The EmacsConf organizers may capture audio and video (a "Recording") +of my presentation and any associated materials, which may include +slides, notes, transcripts, and prerecording(s) of my presentation +that I provide to the EmacsConf organizers. + +I authorize the EmacsConf organizers to distribute, reproduce, +publicly display, and prepare derivative works of the Recording and +any derivative works of the Recording (the "Licensed Materials") +under the terms of the Creative Commons Attribution-ShareAlike 4.0 +International (CC BY-SA 4.0) license. + +I grant to the EmacsConf organizers permission to use my name, +likeness, and biographic information in association with their use +of the Licensed Materials under the above license. + +I represent that I have the authority to grant the above license to +the EmacsConf organizers. If my presentation incorporates any +material owned by third parties, I represent that the material is +sublicensable to the EmacsConf organizers or that my use of them is +fair use.</description><url>https://emacsconf.org/2021/talks/adventure</url><persons><person>Greta Goetz</person></persons></event><event id="11" guid="ea5bab3c-f31e-68a4-fa23-81ca67fa1990"><date>2021-11-27T14:56:00Z</date><start>09:56</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-unix</slug><duration>0:10</duration><title>GNU's Not UNIX: Why Emacs Demonstrates The UNIX Philosophy Isn't Always The Only Answer</title><abstract></abstract><description>Times are approximate and will probably change. + +# GNU's Not UNIX: Why Emacs Demonstrates The UNIX Philosophy Isn't Always The Only Answer +Daniel Rose + +The talk targets users who are curious about computational philosophies, +or those who might not know how to best utilise Emacs conceptually. The +talk will cover what the UNIX philosophy is, the GNU Free Software +principles, a typical (Neo)Vi(m) user's approach, and then how one might +accomplish this in Emacs combining the aformentioned ideals. The +listeners will learn how they can approach Emacs ideologically, and how +blocking themselves into one philosophy or the other will limit their +efficiency. Although you may be a veteran GNU/Linux and Emacs user, +understanding how to use both philosophies together will still allow you +to be more performant than without. + + + +# Outline + +- How can one limit their usage of CLI tools while still maintaining + the ideals of both. +- How using CLI tools can still perfectly flow into Emacs. +- How having all programs in Emacs and unified keybindings is akin + to a terminal user. +- Why thinking about computational philosophies might itself be an + impediment.</description><url>https://emacsconf.org/2021/talks/unix</url><persons><person>Daniel Rose</person></persons></event><event id="04" guid="db4ccb28-867f-df24-c073-eaca6edad438"><date>2021-11-27T15:09:00Z</date><start>10:09</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-omegat</slug><duration>0:10</duration><title>Emacs manuals translation and OmegaT</title><abstract></abstract><description>Times are approximate and will probably change. + +# Emacs manuals translation and OmegaT +Jean-Christophe Helary + +Even if it is generally agreed that software localization is a good thing, Emacs is lacking in that respect for a number of technical reasons. Nonetheless, the free software using public could greatly benefit from Emacs manuals translations, even if the interface were to remain in English. + +OmegaT is a multiplatform GPL3+ "computer aided translation" (CAT) tool running on OpenJDK 8. CATs are roughly equivalent for translators to what IDEs are for code writers. Casual translators can benefit from their features but professionals or commited amateurs are the most likely to make the most use of such tools. + +When OmegaT, free software based forges and Emacs meet, we have a free multi-user translation environment that can easily sustain the (close to) 2 million words load that comprise the manuals distributed with Emacs, along with powerful features like arbitrary string protection for easy typing and QA (quality assurance), automatic legacy translation handling, glossary management, history based or predictive autocompletion, etc. + +The current trial project for French is hosted on 2 different forges: + +1. sr.ht hosts the source files + <https://sr.ht/~brandelune/documentation_emacs/> +2. chapril hosts the OmegaT team project architecture + <https://sr.ht/~brandelune/documentation_emacs/> + +The sources are regularly updated with a po4a based shell script. + +# Outline + +- Duration: 10 minutes +- Software used during the presentation + - [po4a](https://po4a.org) a tool to convert documentation formats to and from the commonly used `gettext` **PO** format. + po4a supports the `texinfo` format along with many others. + - [OmegaT](https://omegat.org) a "computer aided translation" tool used by translators to efficiently combine translation ressources (legacy translations, glossaries, etc.) so as to produce more consistent translations. + +During the presentation, I will show: + +- How to use po4a to convert the texi files to the PO format (the org.org file is also converted) +- What are the specificities of the Emacs manuals and what difficulties they present to the tanslator +- How to address those specificities in OmegaT, with regular expressions +- How to use OmegaT features such as arbitrary string protection, legacy translation handling, glossaries, autocompletion, QA, etc. +- How to use OmegaT with a team of 2 (or more) translators working at the same time +- How to solve translation conflicts + +I will *not* show: + +- How to create an OmegaT project +- How to setup an OmegaT team project +- How to use OmegaT from the command line to work in localization pipelines +- How to use machine translation and MT "post-edit" +- How to convert back the translated files to texi format +- How to install translated texi files for use in Emacs</description><url>https://emacsconf.org/2021/talks/omegat</url><persons><person>Jean-Christophe Helary</person></persons></event><event id="05" guid="525d972d-1e34-bcb4-e9c3-861942549357"><date>2021-11-27T15:22:00Z</date><start>10:22</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-nongnu</slug><duration>0:07</duration><title>NonGNU ELPA Update</title><abstract></abstract><description>Times are approximate and will probably change. + +# NonGNU ELPA Update +Philip Kaludercic + +NonGNU ELPA was announced last year, as a package repository +that will be enabled by default in Emacs, but doesn't require +any copyright assignment. This means that a lot of popular +packages can now be installed easier, without any additional +configuration. + +In this talk I would like the give a reminder of what NonGNU +ELPA is and how it works, update the participants on what has +happened since last year and what maintainers have to do if they +want their packages to be added to the repository.</description><url>https://emacsconf.org/2021/talks/nongnu</url><persons><person>Philip Kaludercic</person></persons></event><event id="06" guid="245a575a-965a-caa4-8d3b-75f8519c2f3e"><date>2021-11-27T15:35:00Z</date><start>10:35</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-borg</slug><duration>0:10</duration><title>Manual Package Management in The Era of Repositories - Why and How</title><abstract></abstract><description>Times are approximate and will probably change. + +# Manual Package Management in The Era of Repositories - Why and How +Dhavan (codingquark) + +Emacs now has many package repositories - enought to have conflicts +and arguments about. The packages are becoming big, they depend on many +other packages and it is not easy to keep track of what all is being +installed in our Emacsen. An aggressive way out of this is to use Yet +Another Package and install all elisp code manually - with borg[1]. + +[1]: <https://github.com/emacscollective/borg> + + + +# Outline + +- 5-10 minutes: (brief description/outline) + 1. What are we trying to solve? + 2. What is borg? + 3. How to use it? + 4. Assimilate a package for demo</description><url>https://emacsconf.org/2021/talks/borg</url><persons><person>Dhavan (codingquark)</person></persons></event><event id="07" guid="86158391-53a2-7cb4-d7d3-020afbf6d8d9"><date>2021-11-27T15:48:00Z</date><start>10:48</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-telega</slug><duration>0:08</duration><title>telega.el and the Emacs community on Telegram</title><abstract></abstract><description>Times are approximate and will probably change. + +# telega.el and the Emacs community on Telegram +Gabriele Bozzola and Evgeny Zajcev + +Telegram is a cross-platform instant messaging system. The large number of +features and the widespread adoption make it a good choice for both private +conversations with friends and for large online communities. In this talk, I +am going to present the Emacs community on Telegram and its initiatives. I +am also going to discuss telega.el, the Emacs client for Telegram. telega.el +is a high-quality package that perfectly integrates in Emacs. It supports +the vast majority of the features supported by the official clients, while +adding several unique ones. In the talk, I will present the package and +highlight some of the most important features.</description><url>https://emacsconf.org/2021/talks/telega</url><persons><person>Gabriele Bozzola and Evgeny Zajcev</person></persons></event><event id="08" guid="e4bdc2c1-e4b6-67e4-aafb-87ec9aaf846b"><date>2021-11-27T16:01:00Z</date><start>11:01</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-nangulator</slug><duration>0:10</duration><title>Introducing N-Angulator</title><abstract></abstract><description>Times are approximate and will probably change. + +# Introducing N-Angulator +Kevin Haddock + +The Unix file system is essentially an N-dimentional sparse array that +currently lacks a decent editor and browser which +can effectively leverage the logical tri-angulation (or, more properly +"n-angulation") of atoms/blobs within it. + +N-Angulator is the genesis, to wit, the "Model-T," of such a program. + +(see google drive link below for a very old uncirculated prototype +video demo. Be sure and turn the volume UP!) + +na.intro.flv +<https://drive.google.com/file/d/1EZN0Xs8eGlEbSIYFml2lp3GCNnmLQa98/view?usp=drive_web> + + + +# Outline + +- 5-10 minutes: (brief description/outline) + +The reconceptualization of the Unix file system as the N-Dimensional +sparse array will be discussed. + +A simple pre-existing database will be queried. + +If time, questions will be entertained by video/audio and/or IRC.</description><url>https://emacsconf.org/2021/talks/nangulator</url><persons><person>Kevin Haddock</person></persons></event><event id="09" guid="14ab7a54-d75d-45e4-85ab-8fd2e391ea41"><date>2021-11-27T16:14:00Z</date><start>11:14</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-janitor</slug><duration>0:20</duration><title>A day in the life of a janitor</title><abstract></abstract><description>Times are approximate and will probably change. + +# A day in the life of a janitor +Stefan Monnier + +Because of a reckless former Emacs maintainer that shall + better stay unnamed, ELisp has seen a fair bit of churn in the last 10 + years, making it necessary to clean up "old" code [in order to open up + the road for yet more recklessness? ]. + In this documentary we will follow a famous janitor in his every day job + dealing with the aftermath of the cl-lib / lexical-binding party. + +- ~20 minutes + Here really, I'm not sure how much time this will take. I put 20 + minutes because I think I might be able to fill that and I think more + than that could turn too boring. I intend to make it a "live coding" + kind of thing, without anything like an outline: it's basically "make" + followed by fixing the warnings.</description><url>https://emacsconf.org/2021/talks/janitor</url><persons><person>Stefan Monnier</person></persons></event><event id="10" guid="51c360e6-188f-9a34-05bb-0a8d2eb09cdc"><date>2021-11-27T16:39:00Z</date><start>11:39</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-maintainers</slug><duration>0:10</duration><title>How to help Emacs maintainers?</title><abstract></abstract><description>Times are approximate and will probably change. + +# How to help Emacs maintainers? +Bastien Guerry + +After 11 years of helping as the Org maintainer, I would +like to share a few lessons learned. My goal is help everyone take +care of Emacs maintainance by taking care of Emacs maintainers. + + + +# Outline + +- 5-10 minutes</description><url>https://emacsconf.org/2021/talks/maintainers</url><persons><person>Bastien Guerry</person></persons></event><event id="12" guid="716d913f-de8b-91a4-5f33-e04ba0905fa5"><date>2021-11-27T16:52:00Z</date><start>11:52</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-gregorian</slug><duration>0:10</duration><title>Typesetting Gregorian Chant with Emacs</title><abstract></abstract><description>Times are approximate and will probably change. + +# Typesetting Gregorian Chant with Emacs +Spencer King + +There are a variety of methods for typesetting gregorian +chant scores and outputting high-quality sheet music. One of these is +a tool called Gregorio, which integrates with LaTeX allowing scores to +be cleanly inserted into other documents. All Gregorio files are plain +text, allowing them to easily be shared with other users and managed +with a version control system. In this talk, I will give a brief +overview of the Gregorio tool and then show how it can be used in +Emacs by typesetting a simple score. All code and examples will be +made available to help new users get started with typesetting their +own scores. + + + +# Outline + +- 5-10 minutes: (brief description/outline) + 1. Introduction to chant music + 2. Introduction to Gregorio + 3. Example of typesetting a score in Emacs + 4. Code and example availability</description><url>https://emacsconf.org/2021/talks/gregorian</url><persons><person>Spencer King</person></persons></event><event id="29" guid="6fccae45-04b5-5524-662b-fdba87754d06"><date>2021-11-27T17:30:00Z</date><start>12:30</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-montessori</slug><duration>0:10</duration><title>Emacs and Montessori Philosophy</title><abstract></abstract><description>Times are approximate and will probably change. + +# Emacs and Montessori Philosophy + + +As a former Montessori guide and now parent, I often think about the +relationship of this particular educational philosophy and how it manifests +in my work with software, Emacs in particular. This talk introduces the +concept of Emacs as an educational environment and how it expresses elements of +Montessori psychology regarding "Human Tendencies". Human tendencies are innate +drives present in everybody that allow us to explore and make sense of our world. + + + +# Outline + +- 5-10 minutes: (brief description/outline) + Quick overview of a Montessori classroom environment: + + - the adults or guides primarily observe and present material + - the children are free to explore materials as they choose (within limits) + - the environment itself is prepared specifically to foster engagement + + Enumerate the "Human Tendencies": + + - Abstraction + - Activity + - Communication + - Exactness + - Exploration + - Manipulation (of the environment) + - Order + - Orientation + - Repetition + - Self-Perfection + - Work (also described as "purposeful activity") + + How does Emacs express these things? + + - in the short version, pose the question, and perhaps give one example. + - Emacs is an environment that provides facilities for individuals to + find their way to proficiency through their Human Tendencies. + - We are all both learners and guides, Emacs is our classroom</description><url>https://emacsconf.org/2021/talks/montessori</url><persons><person>Grant Shangreaux</person></persons></event><event id="52" guid="9cee7e43-bcb1-7f64-c40b-5f9ea938d11a"><date>2021-11-27T17:43:00Z</date><start>12:43</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-erg</slug><duration>0:15</duration><title>Emacs Research Group, Season Zero: What we did together with Emacs in 2 hours a week for a year</title><abstract></abstract><description>Times are approximate and will probably change. + +# Emacs Research Group, Season Zero: What we did together with Emacs in 2 hours a week for a year +Noorah Alhasan, Joe Corneli, Raymond Puzio, Leo Vivier + +The four of us met at EmacsConf 2020, and joined together around a +common interest in Emacs and research. Since then, we have convened as +the Emacs Research Group for weekly meetings. During these meetings, we +took notes collaboratively, using a ‘conflict-free replicated data type’ +package (crdt.el); at the end of each session, we debriefed using a +template that we call a Project Action Review (PAR). As as a +meta-review of our sessions, every six weeks we prepared a Causal +Layered Analysis (CLA), which gave us a different perspective on what we +had done. We reflected further on our experiences and methods, linking +our CLA to plans and design patterns. As a formal research output, we +contributed a write-up of these matters to a joint paper which we +presented at the Pattern Languages of Programs Conference (PLoP 2021). +The paper included an interactive workshop, in which we explored roles +in real-time problem solving and collaboration. + +In our short talk we share information about these methods, making a +case for other people getting together and creating their own small +research communities similar to ours.</description><url>https://emacsconf.org/2021/talks/erg</url><persons><person>Noorah Alhasan</person><person>Joe Corneli</person><person>Raymond Puzio</person><person>Leo Vivier</person></persons></event><event id="13" guid="0f98a5bb-53ce-fb74-1003-0b1f320d414e"><date>2021-11-27T18:01:00Z</date><start>13:01</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-cs</slug><duration>0:10</duration><title>One effective CS grad student workflow</title><abstract></abstract><description>Times are approximate and will probably change. + +# One effective CS grad student workflow +Greg Coladonato + +When I was an undergrad, I learned many things, most of +which I forgot. In the time since then, I've discovered Org Mode, Org +Roam, Org Noter, Org Ref. PDF Tools, and Anki. I would like to share +my approach for capturing all the information that comes my way as a +MS CS student at Georgia Tech, in the hopes that I can both get +feedback on ways to improve the system I use, as well as hopefully +inspire others to build workflows that make them more productive. + + + +# Outline + +- 5-10 minutes: Go through some typical workflows associated with being a grad student, using the packages mentioned in the abstract.</description><url>https://emacsconf.org/2021/talks/cs</url><persons><person>Greg Coladonato</person></persons></event><event id="16" guid="43cc5db4-e26f-fb44-9aeb-b16c38d8cef3"><date>2021-11-27T18:14:00Z</date><start>13:14</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-professional</slug><duration>0:11</duration><title>Using Org-Mode For Recording Continuous Professional Development</title><abstract></abstract><description>Times are approximate and will probably change. + +# Using Org-Mode For Recording Continuous Professional Development +Philip Beadling + +I recently had the pleasure of being audited for my CPD record with one +of the large engineering professional bodies. I decided to harness +org-mode's TODO lists to record CPD items and my progress against them +completely within Emacs. I also wanted the ability to export the data +in a well presented, compact format for auditing submission. + +The project was a success (I passed the audit) and the resulting system +integrates really well into my wider daily Emacs workflow, making future +CPD recording seamless. + +The talk will explain how I tweaked and extended org-mode to get it to +record the data I wanted, followed by a demo. + +A basic demo org file with embedded elisp can be seen here: +<https://raw.githubusercontent.com/falloutphil/Misc/master/cpd.org> + +A basic generated PDF from the basic demo is here: +![img](https://preview.redd.it/nvdpmityhuw51.png?width=1169&format=png&auto=webp&s=e0c5080560c877aa02933a40c224e52b8a1fed3b) + +I have a much more involved example I could also use for the demo. + +The template contains a few examples. Examples are Goals that are split +up into Activities. All Activities must have a Goal, and within a Goal +all activities must be complete for the Goal to be automatically set to +complete. + +It's basically leveraging Org Capture Templates to create custom Goals +and Activities. + +On save or update these are then rendered into a table using Column View. + +Activities are sorted by date they were completed on. + +The Column View is pre-configured to be exported to PDF in a condensed +but readable format for submission. It stays fairly readable even when +the pages get busy. + +The elisp required is all under the "Config" bullet and Emacs will ask +to execute it on opening the Org file. The elisp concerns itself with +nice custom org capture functions and a few functions to ensure nice +formatting on export, etc. + + + +# Outline + +- 5-10 minutes: + +A quick walkthrough of the setup and functions, followed by a demo of how +to add CPD items, and update them. Finally show generation of a PDF +containing all the items tabulated and ready for audit review. I +estimate this at approx 10 minutes.</description><url>https://emacsconf.org/2021/talks/professional</url><persons><person>Philip Beadling</person></persons></event><event id="23" guid="a10ce62e-6454-d784-21bb-f6a0488e883c"><date>2021-11-27T18:28:00Z</date><start>13:28</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-tech</slug><duration>0:11</duration><title>Creating technical API documentation and presentations using org-babel, restclient, and org-treeslide</title><abstract></abstract><description>Times are approximate and will probably change. + +# Creating technical API documentation and presentations using org-babel, restclient, and org-treeslide +Jan Ypma + +The emacs org-babel package is often mentioned in conjunction with +literate programming. The ability to mix code segments with prose +indeed offers an intuitive way to augment semantic code pieces with +textual descriptions. + +In recent projects, I've started to turn to org-mode as the primary +format to maintain technical documentation, as well as slides for a +technical language course. By using org-babel to pull in "live" code +for REST requests, language examples, and shell scripts, one can be +sure that the documentation and slides are never out of date. + +The session will show how leverage org-babel, restclient and +org-treeslide to write and present technical documentation with style. + + +# Outline + +- Introduction +- Demo: Developer guide +- Demo: REST API guide +- Demo: Presentations +- Used packages and configuration</description><url>https://emacsconf.org/2021/talks/tech</url><persons><person>Jan Ypma</person></persons></event><event id="18" guid="b092bc88-e74c-a9c4-611b-d47c99ef578c"><date>2021-11-27T18:42:00Z</date><start>13:42</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-exec</slug><duration>0:10</duration><title>Org as an executable format</title><abstract></abstract><description>Times are approximate and will probably change. + +# Org as an executable format +Tom Gillespie + +Org mode is known for its flexibility, power, and staggeringly diverse +number of workflows, users, and use cases. + +This talk explores just how far we can push the boundaries of the sane +and sensible with regard to Org workflows. + +In particular it will discuss shebang blocks, and elvs: two parts of a +complete system for creating executable Org files. + +Org syntax does not support shebang lines. However, it turns out that +Org syntax enables something even better &#x2014; shebang blocks. + +Org is also (supposedly) not an executable file format. However, by +combining a shebang block with a Org babel source block, and eval +local variables (elvs) Org becomes a multi-language executable format. + +In this talk we introduce shebang blocks and elvs as a two part system +that transforms Org files into executable documents that can run on any +recent version of Emacs. + +These ideas are implemented in +<https://github.com/tgbugs/orgstrap/blob/master/README.org> and +<https://github.com/tgbugs/orgstrap/blob/master/shebang.org>, and +orgstrap.el is available as a package on MELPA and can be installed +via M-x install-package orgstrap. + +The talk will open with a demo of how to create an executable Org file +using the orgstrap machinery. + +We then discuss security considerations, and show example use cases. + +Finally the talk will cover the details and development of the +portable shebang block for Org mode that works on a wide variety of +systems and shells, and on the development of a formal specification +and a reference implementation for using Org source blocks to +transform Org files from plain text documents with a bit of markup +into self describing computational documents, or interactive +applications. + + + +# Outline + +- 5-10 minutes: + +A demo of adding the orgstrap block and elvs, +adding a shebang block, and then running an org file.</description><url>https://emacsconf.org/2021/talks/exec</url><persons><person>Tom Gillespie</person></persons></event><event id="17" guid="69763d57-be4e-7e74-509b-92e48a0e7ba6"><date>2021-11-27T18:55:00Z</date><start>13:55</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-org-outside</slug><duration>0:10</duration><title>The use of Org mode syntax outside of GNU/Emacs</title><abstract></abstract><description>Times are approximate and will probably change. + +# The use of Org mode syntax outside of GNU/Emacs +Karl Voit + +With the rising interest in Org mode, the GNU/Emacs community gained +much momentum in the last decade. Being a nicely designed lightweight +markup language, Org mode does not only benefit users of GNU/Emacs. +There are many tools and services supporting Org mode syntax documents +that do have no direct connection to GNU/Emacs. I would like to +elaborate on the advantages on using Org mode syntax for arbitrary +text outside of GNU/Emacs for better typing usability and +collaboration tasks. + + + +# Outline + +- 5-10 minutes: (brief description/outline) + +This can only be a short teaser for the use of Org mode syntax without +much comparison to other lightweight markup languages. For this +audience, I do think that this would be too short because most +attendees might already have heard the rumors that Org mode is great +or they have adapted Org mode in their workflows already.</description><url>https://emacsconf.org/2021/talks/org-outside</url><persons><person>Karl Voit</person></persons></event><event id="22" guid="aed5e190-66a0-3dd4-e5eb-be09be94e6c3"><date>2021-11-27T19:08:00Z</date><start>14:08</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-teach</slug><duration>0:20</duration><title>Using Org-mode to teach programming</title><abstract></abstract><description>Times are approximate and will probably change. + +# Using Org-mode to teach programming +Daniel German + +In this presentation I will explain how to use org-mode effectively to +prepare teaching materials, and how to present them. + +For the last 5 years I have been using org-mode to teach programming +in different languages: C++, SQL, Ruby, Python, SML +and Scheme. Org-mode has three key advantages: + +1. it supports most programming languages with a common interface, +2. it is an interactive medium for delivering teaching materials; and +3. it is an always-up-to-date format that does not need to be exported in order to be published. + +I explain how I use org-mode in my courses and how I combine org-mode +notes other tools such as github org-mode to get +always up-to-date teaching materials that one can use for both +teaching and studying (see +<https://github.com/dmgerman/csc116ModernCplusplus/blob/master/lectures/l-01-1-intro/01_1_intro.org> +for an example). + +Finally, I will discuss some important aspects to consider when using +org-mode for this purpose. + + + +# Outline + +20 minutes: + +- Introduction +- Quick demonstration +- Workflow +- Emacs configuration +- Important considerations +- How to get started + +Oh, I made a small mistake. I meant to propose a 40 minutes presentation. +But I can give a quicker 20 minutes too.</description><url>https://emacsconf.org/2021/talks/teach</url><persons><person>Daniel German</person></persons></event><event id="20" guid="fd246cee-b5d6-7cc4-2b63-20e87bb7d750"><date>2021-11-27T19:33:00Z</date><start>14:33</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-research</slug><duration>0:05</duration><title>Managing a research workflow (bibliographies, note-taking, and arXiv)</title><abstract></abstract><description>Times are approximate and will probably change. + +# Managing a research workflow (bibliographies, note-taking, and arXiv) +Ahmed Khaled + +Researchers and knowledge workers have to read and discover new papers, +ask questions about what they read, write notes and scratchwork, and store +much of this information for use in writing papers and/or code. Emacs allows +us to do all of this (and more) using simple text interfaces that integrate +well together. In this talk I will talk about the following: + +a. Using elfeed and elfeed-score to read new papers from arXiv. +b. Using org-ref to import arXiv papers of interest into a local +bibliography. +c. Using Emacs hooks with biber and rebiber in order to keep the local + bibliography clean and up-to-date with conference versions of papers. +d. Using org-roam and org-roam-bibtex to take linked, searchable notes in +org on research papers. + +This text-based workflow allows for keeping everything accessible under +version +control and avoids the platform lock-in of binary formats (e.g. Mendeley). I +will share my Doom Emacs configuration for this workflow, but it is not +limited +to Doom. + + + +# Outline + +- 5-10 minutes: I will demo the packages I use in 5 minutes.</description><url>https://emacsconf.org/2021/talks/research</url><persons><person>Ahmed Khaled</person></persons></event><event id="19" guid="db5821ed-fef4-4934-8fb3-87a0282714de"><date>2021-11-27T19:42:00Z</date><start>14:42</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-babel</slug><duration>0:10</duration><title>Babel for academics</title><abstract></abstract><description>Times are approximate and will probably change. + +# Babel for academics +Asilata Bapat + +Plain org-mode is already an extremely powerful and +customisable tool for task and time management, note-taking, calendar +and agenda management, and much more. Babel takes org a step further +by letting you write, evaluate, and export code in different languages +from within a single file. In this talk, I will highlight some +features of babel that I find exciting and extremely useful, +particularly for an academic workflow. + +Getting started with babel can be intimidating, but it's hard to stop +using it once you start. As an academic, I typically don't manage +large coding projects. My primary purpose is writing lecture notes, +assignments, and papers, and managing related admin. Typically, I want +to try and automate the boring portions of my workflow without extra +overhead. I also tend to find various tasks easier in some programming +languages and harder in others, and prefer to mix and match languages +as the task dictates. Babel makes this process seamless. + +A basic use case is writing a document in org-mode and exporting it to +LaTeX or HTML. Org-mode even lets you write multiple documents in a +single org file, which can be convenient. Babel lets you add all sorts +of enhancements to the same file. For example, suppose we have a +single org document with all the problem sets for a course. Within +this single file, we could now: + +- draw pictures in ditaa, graphviz, or python instead of LaTeX, +- use python to do complex calculations and then output the result as LaTeX, +- define skeletons to quickly draw up assignment templates, +- toggle exporting of assignments with or without solutions based on tags, +- locally change export settings or run a post-export hook, +- automatically export to LaTeX after saving, +- tangle code blocks from some or all of the languages to external files. + +I will try to showcase features of babel that academics could find +helpful, by presenting some ways in which I have tried to use babel. I +would also like to be inspired by other people's babel workflows! + + + +# Outline + +- 5-10 minutes: (brief description/outline) + +For a 5-10 minute presentation I will give a brief intro and present one or two example files that heavily use babel. I will use these +examples to highlight some of the features mentioned in the abstract.</description><url>https://emacsconf.org/2021/talks/babel</url><persons><person>Asilata Bapat</person></persons></event><event id="21" guid="1fc4917c-aab4-1924-2983-e78f8bca6af9"><date>2021-11-27T19:54:00Z</date><start>14:54</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-molecular</slug><duration>0:10</duration><title>Reproducible molecular graphics with Org-mode</title><abstract></abstract><description>Times are approximate and will probably change. + +# Reproducible molecular graphics with Org-mode +Blaine Mooers + +Research papers in structural biology should include the code used to make +the images of molecules in the article in the supplemental materials. +Some structural bioinformaticists have started to include +their computer code in the supplemental materials to allow readers +to reproduce their analyses. However, authors of papers reporting new +molecular structures often overlook the inclusion of the code that makes +the images of the molecules reported in their articles. Nonetheless, +this aspect of reproducible research needs to become the standard practice +to improve the rigor of the science. + +In a literate programming document, the author interleaves blocks +of explanatory prose between code blocks that make the images of molecules. +The document allows the reader to reproduce the images in the manuscript by running the code. +The reader can also explore the effect of altering the parameters in the +code. Org files are one alternative for making such literate programming +documents. + +We developed a **yasnippet** snippet library called **orgpymolpysnips** for +structural biologists (<https://github.com/MooersLab/orgpymolpysnips>). +This library facilitates the assembly of literate programming documents +with molecular images made by PyMOL. PyMOL is the most popular +molecular graphics program for creating images for publication; it has +over 100,000 users, which is a lot of users in molecular biology. PyMOL +has been used to make many of the images of biological molecules found +on the covers of many Cell, Nature, and Science issues. + +We used the **jupyter** language in **org-babel** to send commands from +code blocks in Org files to PyMOL's Python API. PyMOL returns the +molecular image to the output block below the code block. An Emacs +user can convert the Org file into a PDF, `tangle' the code blocks +into a script file, and submit these for non-Emacs users. We describe +the content of the library and provide examples of the running PyMOL +from Org-mode documents. + + +# Outline + +- 5-10 minutes: (brief description/outline) + - Title slide + - Structural Biolog Workflow in the Mooers Lab + - Cover images made with PyMOL + + - Why develop a snippet library for your field? + - PyMOL in Org: kernel specification + - Creating a conda env and installing PyMOL + - Example code block in Org to make DSSR block model of tRNA + - Resulting image + - Summary + - Acknowledgements</description><url>https://emacsconf.org/2021/talks/molecular</url><persons><person>Blaine Mooers</person></persons></event><event id="14" guid="c54c7930-51cc-5184-9dfb-5033e577b95e"><date>2021-11-27T20:07:00Z</date><start>15:07</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-project</slug><duration>0:10</duration><title>Budgeting, Project Monitoring and Invoicing with Org Mode</title><abstract></abstract><description>Times are approximate and will probably change. + +# Budgeting, Project Monitoring and Invoicing with Org Mode +Adolfo Villafiorita + +In this talk I will present how we use Org Mode at Shair.Tech for +budgeting, project monitoring, and invoicing. + +We are a small company and we are still tuning and improving the +process, but with a bit of Emacs Lisp, the functions Org Mode +provides, and reading here and there what other users do, we +implemented an effective workflow we have been using for nearly a +year, now, and with which we are very happy. Talk duration: + +&#x2013;> 20 minutes seems to be right (15 talk + questions) +&#x2013;> I can also make in 10 minutes, by focusing the talk on + budgeting (or monitoring)</description><url>https://emacsconf.org/2021/talks/project</url><persons><person>Adolfo Villafiorita</person></persons></event><event id="15" guid="c9870e10-2600-85a4-24fb-793dfc51164e"><date>2021-11-27T20:20:00Z</date><start>15:20</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-invoice</slug><duration>0:10</duration><title>Find Your (In)voice: Emacs for Invoicing</title><abstract></abstract><description>Times are approximate and will probably change. + +# Find Your (In)voice: Emacs for Invoicing +Bala Ramadurai + +Ye Freelance warriors, please lend me your I/O devices for 5 minutes. + +Your time is your money! Do you find it a pain to generate an invoice, +record the details into your accounting software and keep track of +taxes and payments? You are not alone, I found the whole invoice +thingy to be extremely painful. + +But worry not, Emacs comes to our rescue. + +My talk will give you a basic intro on how to use org mode, some embedded python code and file jugglery to generate stylistic and professional invoices. + +What you will learn during the session: + +- How to track your freelance time using orgmode +- How to create the basic infrastructure for invoice generation +- How to generate the invoice +- How to manage multiple clients +- How to enter the finance details into your accounting software +- How to track invoice payments + +We will use the following packages: + +- Emacs+orgmode (duh?) +- yasnippet +- python layer (I use spacemacs, so whatever is the equivalent in your config) +- Some unnecessary Shakespearean references</description><url>https://emacsconf.org/2021/talks/invoice</url><persons><person>Bala Ramadurai</person></persons></event><event id="24" guid="e4e995c0-6e06-8544-a8c3-5f9a06c856fb"><date>2021-11-27T20:33:00Z</date><start>15:33</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-dashboard</slug><duration>0:10</duration><title>Productivity Dashboards with Emacs and Kindle</title><abstract></abstract><description>Times are approximate and will probably change. + +# Productivity Dashboards with Emacs and Kindle +Mehmet Tekman + +Since 2008, Amazon have released a new Kindle device every year, +supplanting each generation with a newer model that boasts highly +promoted incremental features which greatly devalues the price of +their older models. These forgotten models are sold on Ebay and +other secondhand websites at highly discount prices by owners who +do not see the true potential of these devices: Kindles are +excellent high contrast low-refresh display rate E-Ink devices, +with Wifi capability, that run embedded Linux in the +background. Depending on the model, an idle Kindle can last weeks +before needing a recharge. This makes them ideal as passive image +devices that can be configured easily using a few shell +scripts. Indeed, efforts have been made in dedicated hacker forums +to expose the Linux filesystem and to enable features such as +custom screensavers, SSH networking, and more. By exploiting these +features, and by carefully disabling the software/bloatware that +comes with the device, these Kindles have found new life as online +dashboard devices which can fetch and display information from the +internet at timely intervals. + +Here we describe a tool to control multiple Kindle devices with a +single org-mode/shell-based tool, built initially to periodically +serve updated Emacs Org-Agenda views, but later expanded to produce +online local weather reports and work calendar, Emacs calendars +(calfw, org-gcal), daily dietary information (org-calories), +Org-Mode sparse TODO trees, miscellaneous image and text content +(via imagemagick), small messages, and much more. + +In this talk, we show how to configure multiple Kindles with any +desired custom content, following any daily/weekly schedule, all +easily managed from Emacs within a single Org-Mode file. + + + +# Outline + +- 5-10 minutes: + + 1-3 mins + Talk about repurposing Kindles: + + - Cheap second-hand wifi device, hackable + - Low-powered, long battery life, low refresh rate &#x2013; perfect + for a dashboard + - Timely updated Org-Mode Agendas anyone? + - Reference to inspired projects (kindle-dashboard) + + 2-3 mins + Generate content + + - A static text+picture image easily generated with imagemagick + wrapper + - An image of a sparse tree of org-mode TODO file + - An image of another emacs view (e.g. Calfw, or org-calories) + - Show post-processing for optimizing image for Kindles + + 1-2 mins + Configuration in a single org-mode file + + - Defining Machines + - Defining Commands to generate content + - Defining Schedules to run Commands on multiple Machines at + specific points in the day + + 1-2 mins + Export and Run: + + - Show exported shell configs and generated cronjobs + - Witness multiple Kindles producing desired content with wakeup + timers</description><url>https://emacsconf.org/2021/talks/dashboard</url><persons><person>Mehmet Tekman</person></persons></event><event id="25" guid="33776e08-e815-db94-971b-a151236e11be"><date>2021-11-27T20:46:00Z</date><start>15:46</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-nyxt</slug><duration>0:10</duration><title>Emacs with Nyxt: extend your editor with the power of a Lisp browser</title><abstract></abstract><description>Times are approximate and will probably change. + +# Emacs with Nyxt: extend your editor with the power of a Lisp browser +Andrea + +In 2021 browsers are essential if you use a computer. Even if Emacs +users love text as a format, they may need to shop and video call from +time to time (even more so in a pandemic!). Some of us modified their +browsers to at least have the same keybindings as our editor of +choice. What if I told you there is an Emacsy browser in the making? +What if you could "ace-jump" within a web page? What if you could run +a REPL to extend your browser while browsing? What if you could record +macros?! The browser exists: its name is Nyxt! + +In this talk I will share why it has great potential, how you can +integrate it with Emacs, and how you can migrate your Emacs mastery to +the web! + +If you were wishing for a Lispy and Emacsy browser, you should not +miss this talk! + +You can learn more about this at: <https://github.com/ag91/emacs-with-nyxt> + + + +# Outline + +- 5-10 minutes: quick demo of running Nyxt from Emacs and a little explanation of the code necessary for integration</description><url>https://emacsconf.org/2021/talks/nyxt</url><persons><person>Andrea</person></persons></event><event id="26" guid="86d4470a-8d19-7bd4-0c53-6aba1b49baef"><date>2021-11-27T20:59:00Z</date><start>15:59</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-design</slug><duration>0:10</duration><title>On the design of text editors</title><abstract></abstract><description>Times are approximate and will probably change. + +# On the design of text editors +Nicolas P. Rougier + +Text editors are written by and for developers. They come +with a large set of default and implicit choices in terms of layout, +typography, colorization and interaction that hardly change from one +editor to the other. It is not clear if these implicit choices derive +from the ignorance of alternatives or if they derive from developers' +habits, reproducing what they are used to. Durint this talk, I will +characterize these implicit choices and illustrate what are some +alternatives using GNU Emacs. + + + +# Outline + + +- 10 minutes alternative + +Mostly a live demo of my environment with pointers to the different +packages</description><url>https://emacsconf.org/2021/talks/design</url><persons><person>Nicolas P. Rougier</person></persons></event><event id="27" guid="48a8580f-52ce-cc84-6a23-1eddf720ae02"><date>2021-11-27T21:13:00Z</date><start>16:13</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-freedom</slug><duration>0:40</duration><title>How Emacs made me appreciate software freedom</title><abstract></abstract><description>Times are approximate and will probably change. + +# How Emacs made me appreciate software freedom +Protesilaos Stavrou + +The theme will be "how Emacs empowered my software freedom". +I will outline the key moments in my transition to a GNU/Linux operating +system and mark those which eventually contributed towards me becoming +an Emacs user, maintainer of a&#x2014;dare I say&#x2014;popular package, and +contributor to upstream Emacs (among others). By alluding to personal +experiences, I will draw generalisable insights and connect them to what +I believe are irreducible qualities of Emacs qua software and Emacs as a +community of like-minded people. The talk will be theoretical in +nature: there won't be any code-related demonstration nor technical +references that only people with a background in computer science would +likely recognise. Personal anecdotes shall be tangential to the point +and considered as ancillary to the thesis of what Emacs represents from +the standpoint of software freedom and user empowerment. The +presentation is intended for a general audience that is interested in +GNU software in general and Emacs in particular. My formal educational +background as a social scientist (i.e. not a programmer) and later as a +philosopher informs my approach to this topic. + +The presentation shall be 40 minutes long. Its text will be in essay +form and shall be supplied as complementary material to the video. The +notation will be in Org mode. I cannot provide an outline in advance, +as it will most likely not be consistent with the actual presentation. +If, however, this is absolutely required for administrative purposes I +shall furnish one regardless with the proviso that I am in no way bound +by it and thus reserve the right to modify it ahead of the main event.</description><url>https://emacsconf.org/2021/talks/freedom</url><persons><person>Protesilaos Stavrou</person></persons></event><event id="28" guid="5287b003-f368-36c4-4f9b-8135734cad39"><date>2021-11-27T21:53:00Z</date><start>16:53</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-day1-close</slug><duration>0:05</duration><title>Closing remarks day 1</title><abstract></abstract><description>Times are approximate and will probably change. + +# Closing remarks day 1</description><url>https://emacsconf.org/2021/talks/day1-close</url><persons><person>EmacsConf</person></persons></event></room></day><day date="2021-11-28" start="2021-11-28T14:00:00Z" end="2021-11-28T22:00:00Z" index="2"><room name="Main"><event id="30" guid="d877a57a-14cf-a194-99c3-a344ecb24acc"><date>2021-11-28T14:00:00Z</date><start>09:00</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-day2-open</slug><duration>0:05</duration><title>Opening remarks day 2</title><abstract></abstract><description>Times are approximate and will probably change. + +# Opening remarks day 2</description><url>https://emacsconf.org/2021/talks/day2-open</url><persons><person>EmacsConf</person></persons></event><event id="31" guid="35d1d9e4-dfdf-f254-6aab-7a466fbfaf09"><date>2021-11-28T14:05:00Z</date><start>09:05</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-faster</slug><duration>0:20</duration><title>How to write faster Emacs Lisp</title><abstract></abstract><description>Times are approximate and will probably change. + +# How to write faster Emacs Lisp +Dmitry Gutov + +- Before optimizing, benchmark first. +- Different benchmarking approaches. +- Live evaluation, step-debugging, measuring from a debugger breakpoint. +- How to determine if a function is expensive. How to pick one from + competing alternatives (cl-lib, seq, dash, lean core). +- Print-benchmarking. +- Byte-compiled code can give a very different picture, changing where + the bottleneck is. How to quickly load a byte-compiled version. +- Steps taken to speed up the Xref package recently.</description><url>https://emacsconf.org/2021/talks/faster</url><persons><person>Dmitry Gutov</person></persons></event><event id="33" guid="599ef3fa-4c73-6c94-4953-75bbc7830681"><date>2021-11-28T14:30:00Z</date><start>09:30</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-structural</slug><duration>0:10</duration><title>Tree-edit: Structural editing for Java, Python, C, and beyond!</title><abstract></abstract><description>Times are approximate and will probably change. + +# Tree-edit: Structural editing for Java, Python, C, and beyond! +Ethan Leba + +In this talk, I'll discuss a vision for how writing code could be, where the +editing operations map directly to the primitives of the language itself -- and +my humble attempt of implementing this vision. _tree-edit_ seeks to provides a +structural editing plugin supporting conceivably any language with a tree-sitter +parser. + +**Structural editing does not have to be relegated to lisps or niche DSLs.** + +I liken the state of code editing today to writing assembly. The reason why +people like Python more than assembly is that for most purposes, the building +blocks of the language are mismatched with our thought process. We don't think +in terms of registers and addresses, we think in terms of variables, functions, +etc. So when we write and edit code, why do we edit in terms of deleting, +inserting, replacing characters &#x2013; not wrapping, inserting, raising, +deleting expressions and statements? + +I'll also discuss the implementation of tree-edit, which uses a novel +combination of the fantastic +[tree-sitter](https://github.com/emacs-tree-sitter/elisp-tree-sitter) parser +with an embedded logic programming DSL ([miniKanren](http://minikanren.org/), +using elisp port [reazon](https://github.com/nickdrozd/reazon)) to power it's +syntax tree generation. + +Check out the GitHub repo [here](https://github.com/ethan-leba/tree-edit)! + +# Outline + +- Discuss motivation (Why should I care?) +- Demonstrate tree-edit (Live-coding with tree-edit) +- Demonstrate tree-edit syntax tree generator (Elevator pitch on miniKanren)</description><url>https://emacsconf.org/2021/talks/structural</url><persons><person>Ethan Leba</person></persons></event><event id="32" guid="29d45a6f-9425-f5a4-bd23-297292e4ab7a"><date>2021-11-28T14:43:00Z</date><start>09:43</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-dsl</slug><duration>0:20</duration><title>Self-Describing Smart DSL's: The Next Magits</title><abstract></abstract><description>Times are approximate and will probably change. + +# Self-Describing Smart DSL's: The Next Magits +Psionic + +When we begin programming, the promise is to automate away repetitive +tasks in life. As those program's capability grows, we begin to need +configuration UI's. We can start with a CLI, but as any CLI grows, we +run into the following issues: + +- As options pile up, the intuition of simplicity is lost in helps and +manpages + +- Stateless operation has no idea what to do next and loses terseness +- Frequent dispatch of commands to interrogate state required for the +operator to decide what action to perform + +- Composition compounds with all of these issues + +Magit has the UI trifecta of being terse, intuitive, and intelligent. +Magit's UI input library, Transient, is a standalone package for +developing more killer UI's, and not just for CLI applications, but +also for server applications, Emacs applications, and Emacs itself. + +While Transient's potential is to create the most highly productive +UI's short of thought control, going beyond simple command dispatchers +requires a deeper dive. When we think like constructing a DSL for the +task and using transient to input that DSL, we get an intelligent, +self-describing modal programming system. + + +# Outline + +- Updates to Transient documentation and demos of API examples +- Wrapping a custom CLI tool in Transient</description><url>https://emacsconf.org/2021/talks/dsl</url><persons><person>Psionic</person></persons></event><event id="34" guid="8f62e571-91da-bd14-e7c3-b445c7b19d23"><date>2021-11-28T15:06:00Z</date><start>10:06</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-ui</slug><duration>0:10</duration><title>"Yak-shaving to a UI framework" (/"Help! I accidentally yak-shaved my way to writing a UI framework because overlays were slow")</title><abstract></abstract><description>Times are approximate and will probably change. + +# "Yak-shaving to a UI framework" (/"Help! I accidentally yak-shaved my way to writing a UI framework because overlays were slow") +Erik Anderson + +Tui.el is a textual User Interface (UI) framework for Emacs Lisp +modeled after the popular JavaScript 'React' framework. This package +implements React Component API's with the goal of simplifying +development of interactive UI's for all Emacs users- regardless of +their prior experience with React or web programming. Components +provide a useful functional unit for constructing complex interfaces +declaratively and also eliminate much of the burden associated with +updating textual content as application state changes. This talk will +cover use of the tui.el API and its operation in a textual environment +by implementing some basic UI's. + + + +# Outline + +- 5-10 minutes: + - Problem space: UI implementation complexity. + - API introduction: Displaying content, Components. + - Visual taste of dashboards and applications built with tui.</description><url>https://emacsconf.org/2021/talks/ui</url><persons><person>Erik Anderson</person></persons></event><event id="35" guid="b073d391-6c37-6bf4-7afb-47edc79631a9"><date>2021-11-28T15:19:00Z</date><start>10:19</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-rust</slug><duration>0:20</duration><title>Extending Emacs in Rust with Dynamic Modules</title><abstract></abstract><description>Times are approximate and will probably change. + +# Extending Emacs in Rust with Dynamic Modules +Tuấn-Anh Nguyễn + +Dynamic module support has been available since Emacs 25. It can be +used to extend Emacs with native libraries, for performance, +OS-specific features, or other functionalities that would take a lot +of time to re-implement in Lisp. The officially supported language is +C, which is tedious and error-prone to use. This talk discusses a +**safe** alternative that is also a lot **more convenient**: writing these +dynamic modules in Rust. + + + +# Outline + +- Walking through creating **a simple dynamic module** in + Rust, including setting up CI. +- Going through and explaining the **available APIs**.</description><url>https://emacsconf.org/2021/talks/rust</url><persons><person>Tuấn-Anh Nguyễn</person></persons></event><event id="38" guid="e7981936-6d72-93d4-8783-5ac64a0ae5bb"><date>2021-11-28T15:44:00Z</date><start>10:44</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-eaf</slug><duration>0:10</duration><title>Emacs Application Framework: A 2021 Update</title><abstract></abstract><description>Times are approximate and will probably change. + +# Emacs Application Framework: A 2021 Update +Matthew Zeng + +Emacs Application Framework (EAF) is a customizable and extensible GUI +application framework that extends Emacs graphical capabilities using +PyQt5. There are many new but important updates since EmacsConf2020 +last year, this talk will briefly go over them. + + + +# Outline + +- 5-10 minutes: (brief description/outline)</description><url>https://emacsconf.org/2021/talks/eaf</url><persons><person>Matthew Zeng</person></persons></event><event id="47" guid="5e1baaaf-56a3-b5b4-31cb-5437cf465cf9"><date>2021-11-28T15:58:00Z</date><start>10:58</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-model</slug><duration>0:10</duration><title>Extending the "model" of Emacs to other applications</title><abstract></abstract><description>Times are approximate and will probably change. + +# Extending the "model" of Emacs to other applications +Laszlo Krajnikovszkij + +Emacs is a great operating environment in a sense that it provides consistency +across different tools and applications within the Emacs ecosystem, as well as +external apps that can be integrated into it. It is also the most truly +malleable environment, each element of which can be adjusted or extended, +therefore providing the user with more power and freedom in personal computing. +Emacs definitely can be considered one of greatest software products in +existence. + +As a non-programmer, having had the chance to stumble upon Emacs a couple of +years ago, the only regret to have is that it didn't happen earlier. The definite +killer feature of Emacs - Org-mode, is what draws many of the less technical +folks to join the party and gradually start to use Emacs for writing documents, +whether personal or work related, manage tasks, emails and potentially everything +else. The learning curve and difference in approach, however, leaves some +potential users too scared of the arcane interface even with all it's quirks and +features because it requires at least some technical skills to understand and +use properly, and does not have an easy way to connect with external tools that +most people are forced to use for work. + +This talk proposes some ideas about how the model of Emacs, it's focus on +consistency, extensibility, as well as it's powerful interaction model can be +carried over to make modern interfaces, whether desktop or web applications, +that would be designed with a goal of reflecting the spirit of Emacs in terms of +the aforementioned features it possesses, and therefore enhance the capabilities +of the Emacs, while at the same time utilizing it as a backend for +text-processing and editing to a large extent. It would be really great to have +a personal web-interface for using modern task management tools, chats, emails +and such, but from a UI defined by the user. The goal is to use it on a desktop +or mobile, locally or self-hosted on a server, with support for touch and +gesture-based workflows, while preserving the Emacs philosophy and allowing to +seamlessly switch between Emacs and its web extension + +The proposed solution is to integrate more of the modern tools with Emacs, +utilize Org-mode as a way to define application-specific parameters for these +tools through Org properties, and then utilize these parameters for making a +modern local frontend that would enhance Emacs UI while allowing to use external +tools in a more personal and freedom respecting way (making the originals +obsolete over time). The talk serves the purpose of inviting community members to +a discussion about how Emacs can become more modern, more approachable by people +who don't possess the neccessarry technical skills to adjust it themselves, but +are keen to learn it, and potentially how to attract more users to greater +productivity, computer literacy and the ideas of free software. + + + +# Outline + +- 5-10 minutes + - Introduction + - Issues with most modern tools for work + - Issues with Emacs as a tool for work + - In search for a hybrid approach + - User controlled web-apps + - Opinions encouraged + - Contacts</description><url>https://emacsconf.org/2021/talks/model</url><persons><person>Laszlo Krajnikovszkij</person></persons></event><event id="50" guid="4cd6de26-cf48-95c4-9d3b-28895a43ec53"><date>2021-11-28T16:11:00Z</date><start>11:11</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-devel</slug><duration>0:20</duration><title>Don't write that package! or: How I learned to stop worrying and love emacs-devel</title><abstract></abstract><description>Times are approximate and will probably change. + +# Don't write that package! or: How I learned to stop worrying and love emacs-devel +Stefan Kangas + +We need a successful Emacs on this planet. This means that we need an +excellent out-of-the-box experience -- one that just works, but that you +can still hack and customize. There is so much great experimentation +and work going on out there in the wider Emacs community, but we would +be even better off if more of that could go into Emacs itself. + +Emacs' greatest strength is unfortunately sometimes also its greatest +weakness: it is *too* hackable. + +On occasion, people out there add stuff to their Init file to fix this +or that annoyance, or even bug. The more ambitious might go on to +package up such fixes: "Hey, 'foo-mode' doesn't have support for +'bookmark-set', let's write a package!" I am here to suggest that you +should not do that. + +You should submit a patch to Emacs! Maybe more people have that same +problem or annoyance, and would benefit from your solution? + +It is sometimes perceived as hard to contribute to Emacs core. I want +to encourage more people to get involved, and show that the barrier to +entry is really not that high. If I can do it, you can do it too! + +So should you really write that package, or should you stop worrying and +learn to love emacs-devel? Listen to my talk to find out more!</description><url>https://emacsconf.org/2021/talks/devel</url><persons><person>Stefan Kangas</person></persons></event><event id="36" guid="49a35f05-b71f-1d14-2343-a6638bec0d08"><date>2021-11-28T16:36:00Z</date><start>11:36</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-bindat</slug><duration>0:20</duration><title>Turbo Bindat</title><abstract></abstract><description>Times are approximate and will probably change. + +# Turbo Bindat +Stefan Monnier + + +# Table of Contents + + + +Bindat is an ELisp library to help manipulate binary data. This is a +niche library that is used by packages such as Websocket, EMMS, and +cpio-mode. Its implementation was repeatedly caught harassing hapless +kitten while at the same time providing poor service slowly. For +Emacs-28, Bindat was rewritten so as to make it more efficient and +flexible while respecting the kitten. In this presentation I intent to +show how we saved those. Not recommended for birds. + +- ~20 minutes: + 5 min: Intro and presentation of Bindat + 5 min: Showcase some of its problems + 5 min: Present the new design + 5 min: Examples of what can be done with it</description><url>https://emacsconf.org/2021/talks/bindat</url><persons><person>Stefan Monnier</person></persons></event><event id="39" guid="1ddbe380-b4f3-2b84-3cc3-9e799536db8e"><date>2021-11-28T17:40:00Z</date><start>12:40</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-native</slug><duration>0:40</duration><title>Emacs Lisp native compiler, current status and future developments</title><abstract></abstract><description>Times are approximate and will probably change. + +# Emacs Lisp native compiler, current status and future developments +Andrea Corallo + +Emacs Lisp (Elisp) is the Lisp dialect used by the Emacs text editor +family. GNU Emacs is traditionally capable of executing Elisp code +either interpreted or byte-interpreted after it has been compiled to +byte-code. + +In this talk I'll discuss the Emacs Lisp native compiler. This feature +recently merged into the main Emacs development line allow for +automatically compiling and executing Elisp as native code. + +During the presentation I'll touch on: + +- design goals +- compiler and runtime design and implementation +- performance implications +- upstream process +- area of improvements and future developments + +Format: 40 minutes</description><url>https://emacsconf.org/2021/talks/native</url><persons><person>Andrea Corallo</person></persons></event><event id="40" guid="5947c3e9-93c1-1014-7ffb-aa0e0097e3e4"><date>2021-11-28T18:27:00Z</date><start>13:27</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-form</slug><duration>0:10</duration><title>Old McCarthy Had a Form</title><abstract></abstract><description>Times are approximate and will probably change. + +# Old McCarthy Had a Form +Ian Eure + +Most practical languages are multi-paradigm, offering several +abstractions for the programmer. But did you know that Emacs Lisp +comes with a powerful system for object-oriented programming? Join me +for a discussion of EIEIO, and learn how it can help you write more +modular, flexible Emacs Lisp. + + + +# Outline + +- 5-10 minutes: (brief description/outline) + - What is CLOS/EIEIO? + - Why would I want OOP in Emacs Lisp? + - How is the CLOS object model different from C++/Java/.NET? + - Further reading</description><url>https://emacsconf.org/2021/talks/form</url><persons><person>Ian Eure</person></persons></event><event id="37" guid="5e162d34-ea19-8544-b693-dd6da0e885cd"><date>2021-11-28T18:41:00Z</date><start>13:41</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-test</slug><duration>0:05</duration><title>Test blocks</title><abstract></abstract><description>Times are approximate and will probably change. + +# Test blocks +Eduardo Ochs + +In this presentation I will show an idea that feels completely obvious +once we see it, but that only occured to me after after using Emacs +and eev as my main interface to the computer for more than 20 years. +Take any interpreted language that supports multi-line comments, and +whose interpreter can be run in an Emacs buffer - for example Lua, +Haskell, Python, or Julia; let's say just "Lua" from here on for +simplicity. So: suppose that we have a Lua script that we wrote, that +is called "foo.lua" and that defines lots of functions and defines the +classes Bar and Bletch. We can put after the definition of the class +Bar a multi-line comment that contains an eepitch block that when +executed starts a Lua interpreter, loads the script foo.lua (by +running 'dofile "foo.lua"'), and then has several tests for that class +and its methods; and we can put another block with tests like that +after the class Bletch, and other blocks after some functions. Eepitch +allows sending these tests line by line to the Lua interpreter by +typing <f8\> on each line that we want to send, and this lets us create +tests that are very easy to understand even without writing comments; +this gives us a very quick way to document code by executable tests, +that is super-great for experimental code that is still going to +change a lot before running the risk of being read by other people. + +These multi-line comments with eepitch blocks that run an interpreter +and make it load the current file are called "test blocks". The +command \`M-x eeit' inserts a test block at point, using the major mode +to decide the right syntax to use for the multi-line comments and for +the "dofile". We can configure the syntax of the test blocks for the +current major mode by running \`M-x find-eeit-links'; this can also be +used to add support for test blocks to more languages (or, more +precisely: to more major modes). + +Eduardo Ochs <http://angg.twu.net/emacsconf2021.html></description><url>https://emacsconf.org/2021/talks/test</url><persons><person>Eduardo Ochs</person></persons></event><event id="41" guid="51023225-018f-cf24-9d73-3c267907c13e"><date>2021-11-28T18:49:00Z</date><start>13:49</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-bug</slug><duration>0:20</duration><title>Let's talk about bug trackers</title><abstract></abstract><description>Times are approximate and will probably change. + +# Let's talk about bug trackers +Bastien Guerry + +For 17 years, the Org developers didn't use a bug tracker, +shamelessly failing the Joel Spolsky test. Why was it "good enough"? +Why was it wrong? Why did we move to Woof!? Why Woof! is not a bug +tracker? + +- 20 minutes</description><url>https://emacsconf.org/2021/talks/bug</url><persons><person>Bastien Guerry</person></persons></event><event id="42" guid="1407591a-29fd-3f64-1beb-01dea6e9d7d2"><date>2021-11-28T19:16:00Z</date><start>14:16</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-bidi</slug><duration>0:20</duration><title>Perso-Arabic Input Methods And Making More Emacs Apps BIDI Aware</title><abstract></abstract><description>Times are approximate and will probably change. + +# Perso-Arabic Input Methods And BIDI Aware Apps +Mohsen BANAN -- محسن بنان + +Emacs is a multilingual user environment. A true multilingual editor must +support bidirectionality and shaping of characters. Perso-Arabic scripts require +both of these features. + +Starting with Emacs 24, full native bidi +(bidirectional) support became available. For +many years prior to that Unicode support was +available and by around year 2000, reasonable +open-source shaping libraries were also available. + +With these in place at around 2012, I developed +two Persian input methods for emacs. These input +methods or variations of them can also be used for +Arabic and other Perso-Arabic scripts. + +With all of these in place, Emacs has now become +the ne plus ultra Libre-Halaal and Convivial usage +environment for Perso-Arabic users. + +Since emacs comes loaded with everything (Gnus +for email, Bbdb for address books, XeLaTeX modes +for typesetting, org-mode for organization, spell +checkers, completion systems, calendar, etc.), all basic +computing and communication needs of Perso-Arabic +users can be addressed in one place and +cohesively. + +In this talk I will demonstrate what a wonderful +environment that can be. + +My talk will be in two parts. + +In Part 1, I cover Persian input methods. With an emphasis on "Banan +Multi-Character (Reverse) Transliteration Persian Input Method". The +software is part of base emacs distribution. Full documentation is available +at: + + Persian Input Methods + For Emacs And More Broadly Speaking + شیوه‌هایِ درج به فارسی‌ + <http://mohsen.1.banan.byname.net/PLPC/120036> + +In Part 2, I'll demonstrate that Emacs is far more than an editor. Emacs can be +a complete Perso-Arabic usage environment. I will also cover the ramifications +of bidi on existing emacs applications, including: + +- Spell Checking, Dictionaries And Completion Frameworks: + - Existing emacs facilities can be extended to cover Perso-Arabic. + +- Gnus: + - Perso-Arabic rich email sending in HTML. + - Ramifications of bidi on from:, to: and subject: lines. + +- Bbdb: Ramifications of bidi on display and completion. + +- Calendar: + - Ramifications of bidi on display. + - Use of Persian text for Persian (solar) calendar. + - Use of Arabic text for Muslem (lunar) calendar. + +- AUCTeX: Persian typesetting with XeLaTeX + - Option of having right-to-left Perso-Arabic aliases for all latex commands. + +References: + + - Persian Input Methods: + <http://mohsen.1.banan.byname.net/PLPC/120036> + <http://www.persoarabic.org/PLPC/120036> -- Persian Input Methods Access Page + <http://www.persoarabic.org> -- Various Perso-Arabic resources + <http://www.freeprotocols.org/Repub/fpf-isiri-6219> -- Re-Publication Of + Persian Information Interchange and Display Mechanism, using Unicode + <https://github.com/bx-blee/persian-input-method> -- Git repo for + persian.el -- Quail package for inputting Persian/Farsi keyboards + + - BIDI: + <http://www.unicode.org/reports/tr9/> -- Annex #9 of the Unicode standard + <https://www.gnu.org/software/emacs/manual/html_node/elisp/Bidirectional-Display.html> + Emacs Bidirectional Display + + - Blee and Persian-Blee: + <https://github.com/bx-blee/env2> -- Very messy work-in-progress git repo for: + Blee: By* Libre-Halaal Emacs Environment + <http://www.by-star.net> -- A Moral Alternative To The Proprietary American Digital Ecosystem + <http://mohsen.1.banan.byname.net/PLPC/120033> -- + Nature of Polyexistentials: + Basis for Abolishment of The Western Intellectual Property Rights Regime + <http://mohsen.1.banan.byname.net/PLPC/120039> -- Defining The Libre-Halaal Label + + - Mohsen BANAN -- محسن بنان: + <http://mohsen.1.banan.byname.net/> -- Globish + <http://mohsen.1.banan.byname.net/persian> -- Farsi + <http://mohsen.1.banan.byname.net/french> -- French</description><url>https://emacsconf.org/2021/talks/bidi</url><persons><person>Mohsen BANAN</person></persons></event><event id="43" guid="3364aedb-a496-5c64-5383-b0080afa6d7b"><date>2021-11-28T19:41:00Z</date><start>14:41</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-mold</slug><duration>0:10</duration><title>Moldable Emacs, a step towards sustainable software</title><abstract></abstract><description>Times are approximate and will probably change. + +# Moldable Emacs, a step towards sustainable software +Andrea + +We could learn about things better. Mountains of knowledge hide in +places we cannot access or use. The more we write down, the more it +takes to find and understand things we find useful. + +Knowledge (web, software, books) keeps growing faster and faster! This +is not sustainable: we cannot keep up with it! What if we repeat the +error of somebody else, only because it would take too much reading to +know? What if that knowledge is in some code we work with everyday? + +Moldable development is a paradigm shift that attempts to solve this +problem. In a gist, the tool you use should let you create special tools +to learn smartly from what you have already. + +Since we use Emacs, let's make our great editor moldable! + +This talk shows my progress in making Emacs closer to such a tool. We +are going to see how we can mold structured (and maybe even natural) +text to learn better, how we can inject notes in our projects and how +self documenting this tool is! + +I aim to inspire you to find a quicker way to learn from our digital +world! + +You can learn more about this at: <https://github.com/ag91/moldable-emacs> + + + +# Outline + +- 5-10 minutes: quick demo of moldable-emacs</description><url>https://emacsconf.org/2021/talks/mold</url><persons><person>Andrea</person></persons></event><event id="44" guid="daf3570b-3df3-9db4-a1f3-ce98d9863717"><date>2021-11-28T19:55:00Z</date><start>14:55</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-clede</slug><duration>0:20</duration><title>CLEDE the Common Lisp Emacs Development Environment.</title><abstract></abstract><description>Times are approximate and will probably change. + +# CLEDE the Common Lisp Emacs Development Environment. +Fermin MF + +I've been developing a package that helps with the development of +Common Lisp's software, +it's uses the internal semantic framework, it has a custom reader +and integration for +common Emacs packages (like Sly and the internal inferior-lisp-mode). + +The idea is to supply features that other language with and static +analyzer have, +like refactoring and code generation. + +For more details: <https://gitlab.com/sasanidas/clede> + +- 20 minutes: + It seems like not too much people knows about semantic, so I can + summarize some of it in 10 minutes + and then An explanation on how to use the package, how to extend it + and the future of it.</description><url>https://emacsconf.org/2021/talks/clede</url><persons><person>Fermin MF</person></persons></event><event id="45" guid="f03ae971-4d2b-ccc4-2643-4ae2391ce1ab"><date>2021-11-28T20:22:00Z</date><start>15:22</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-imaginary</slug><duration>0:10</duration><title>Imaginary Programming</title><abstract></abstract><description>Times are approximate and will probably change. + +# Imaginary Programming +Shane Mulligan + +Imaginary Programming (IP) is both methodology and paradigm. It is an +extension of literate programming and a way of creating software without +the use of imperative, functional or even declarative code. Yet IP employs +all disciplines to achieve the miraculous. The only contingency is on one +or more language models, known as foundation models. The real value of IP +is not found by abandoning sound logic altogether, but in weaving the real +with the imaginary. The future of imaginary programming is one in which +almost all of computing is inferred. I have built a suite of tools based on +emacs for interfacing real programming languages with imaginary ones; all +of this in order to demonstrate what I mean; a ‘complex’ terminal that lets +you imagine what happens no matter how nested you are within interpreters, +an example-oriented language, a file format that encodes the provenance of +text and a library for imaginary functional programming primitives called +iLambda. It is important to recognise IP because, for lack of a better +term, it has far-reaching implications for intellectual property and the +GPL. Please keep an open mind. + + + +# Outline + +- 5-10 minutes: +- a 5 minute introduction to imaginary programming, followed by + - a demonstration of iLambda. + - iλ, a family of imaginary programming libraries + <https://mullikine.github.io/posts/designing-an-imaginary-programming-ip-library-for-emacs/> + + + +IRC libertyprime at #emacs on libera + +Shane Mulligan</description><url>https://emacsconf.org/2021/talks/imaginary</url><persons><person>Shane Mulligan</person></persons></event><event id="46" guid="27595637-b6b9-f764-805b-ff1b7f009006"><date>2021-11-28T20:36:00Z</date><start>15:36</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-build</slug><duration>0:20</duration><title>How to build an Emacs</title><abstract></abstract><description>Times are approximate and will probably change. + +# How to build an Emacs +Fermin MF + +This is a deep dive in the Emacs philosophical and technical +aspect on what makes our beloved GNU Emacs +what it it. It's also a talk about the early LISP machines and +fascinating were those days of experimentation and engineering. + +It will continue with the Emacs benefits/trade-offs from an +user/developer stand points, what things can be improved and +what can be an hypothetical path on how to build a software that +can also be called Emacs. + +As a last part, I'll talk about CEDAR, an Emacs that I've been +developing in Common Lisp, the project goals +and the challenges. + +For more details about CEDAR: <https://gitlab.com/sasanidas/cedar> + +- 40 minutes: + A dive into the Emacs/Lisp machines history, what makes GNU Emacs + an Emacs and how you can build an Emacs.</description><url>https://emacsconf.org/2021/talks/build</url><persons><person>Fermin MF</person></persons></event><event id="48" guid="80d1ad02-5fe4-03b4-c573-17ea6cdb61aa"><date>2021-11-28T21:03:00Z</date><start>16:03</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-forever</slug><duration>0:40</duration><title>M-x Forever: Why Emacs will outlast text editor trends</title><abstract></abstract><description>Times are approximate and will probably change. + +# M-x Forever: Why Emacs will outlast text editor trends +David Wilson + +The computer software industry has seen many "popular" text editors come +and go, often due to the mercurial fashions of software development. In +this talk, we'll take a look at why popular editors fade and the +specific aspects of Emacs that will ensure it remains relevant +regardless of mainstream popularity. + + + +# Outline + +- Discuss the core thesis, the features that make Emacs + desirable for long-term use (extensibility, day-to-day 'life' features) + +- Include more background on the text editor landscape and + how the scope of various editors is more narrow and doesn't compare to Emacs. + +- Talk about specific instances where editors were popular, fell out + of popularity, and why (due to changing fashions, not usually + better features).</description><url>https://emacsconf.org/2021/talks/forever</url><persons><person>David Wilson (System Crafters)</person></persons></event><event id="49" guid="828e7c62-8430-f1a4-431b-63c308d58688"><date>2021-11-28T21:50:00Z</date><start>16:50</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-talk-day2-close</slug><duration>0:10</duration><title>Closing remarks day 2</title><abstract></abstract><description>Times are approximate and will probably change. + +# Closing remarks day 2</description><url>https://emacsconf.org/2021/talks/day2-close</url><persons><person>EmacsConf</person></persons></event></room></day></schedule>
\ No newline at end of file diff --git a/2021/emacsconf.ics b/2021/emacsconf.ics new file mode 100644 index 00000000..538f6c68 --- /dev/null +++ b/2021/emacsconf.ics @@ -0,0 +1,1504 @@ +BEGIN:VCALENDAR +VERSION:2.0 +PRODID:EmacsConf +X-WR-CALNAME:EmacsConf 2021 +X-WR-TIMEZONE:America/Toronto +X-WR-CALNAME:EmacsConf +CALSCALE:GREGORIAN +METHOD:PUBLISH +BEGIN:VTIMEZONE +TZID:America/Toronto +BEGIN:DAYLIGHT +TZOFFSETFROM:-0500 +TZOFFSETTO:-0400 +TZNAME:EDT +DTSTART:20210314T070000 +END:DAYLIGHT +BEGIN:STANDARD +TZOFFSETFROM:-0400 +TZOFFSETTO:-0500 +TZNAME:EST +DTSTART:20211107T060000 +END:STANDARD +BEGIN:DAYLIGHT +TZOFFSETFROM:-0500 +TZOFFSETTO:-0400 +TZNAME:EDT +DTSTART:20220313T070000 +END:DAYLIGHT +BEGIN:STANDARD +TZOFFSETFROM:-0400 +TZOFFSETTO:-0500 +TZNAME:EST +DTSTART:20221106T060000 +END:STANDARD +END:VTIMEZONE +BEGIN:VEVENT +SUMMARY:Opening remarks +LOCATION:https://emacsconf.org/ +UID:dc07efcd-6d79-cfd4-fed3-59c885fe2922 +URL:https://emacsconf.org/2021/talks/day1-open +DTSTART;TZID=America/Toronto:20211127T090000 +DTEND;TZID=America/Toronto:20211127T090500 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/day1-open\n# Opening remarks +END:VEVENT +BEGIN:VEVENT +SUMMARY:Emacs News Highlights +LOCATION:https://emacsconf.org/ +UID:393ba3c2-b2a6-6a84-44eb-872aa333d08d +URL:https://emacsconf.org/2021/talks/news +DTSTART;TZID=America/Toronto:20211127T090500 +DTEND;TZID=America/Toronto:20211127T091000 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/news\n# Emacs News Highlights\nSacha Chua <mailto:sach + a@sachachua.com> - pronouns: she/her\n\nQuick overview of Emacs community + highlights since the last conference\n\n<https://github.com/sachac/emacsco + nf-2021-emacs-news-highlights> +END:VEVENT +BEGIN:VEVENT +SUMMARY:The True Frownies are the Friends We Made Along the Way: An Anecdot + e of Emacs's Malleability +LOCATION:https://emacsconf.org/ +UID:06df8309-bd04-eb24-d443-a780c56adc0a +URL:https://emacsconf.org/2021/talks/frownies +DTSTART;TZID=America/Toronto:20211127T091100 +DTEND;TZID=America/Toronto:20211127T093100 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/frownies\n# The True Frownies are the Friends We Made + Along the Way: An Anecdote of Emacs's Malleability\nCase Duckworth\n\nEmac + s is well-known for being extremely flexible\, programmable\, and\nextensi + ble\; in fact\, that's probably the biggest reason it's still\nbeing used + after 40+ years of existence\, and even has enough clout to\ngenerate an e + ntire conference in its name. In this medium-length\npresentation\, I wil + l add another point to the data set proving Emacs's\nabilities\, by narrat + ing the latest package I made\, \\`frowny.el\\`\, from\nits conception to + its current\, nearly-completed state.\n\nI wrote frowny.el to scratch some + one else's itch as a joke on IRC\, but\nit has been called "pretty useful\ + , for a joke package." I feel like\nthat encapsulates the spirit of Emacs + and that's why I want to present\non this topic.\n\nAlong the way\, I'll + discuss just a little of my own history of Emacs\,\nand why I feel it's a + great tool for non-technical users to sink their\nteeth into. +END:VEVENT +BEGIN:VEVENT +SUMMARY:Choose Your Own (Technology-Enhanced Learning) Adventure +LOCATION:https://emacsconf.org/ +UID:fe959e43-441b-ed34-854b-87f6f481f55a +URL:https://emacsconf.org/2021/talks/adventure +DTSTART;TZID=America/Toronto:20211127T093400 +DTEND;TZID=America/Toronto:20211127T095400 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/adventure\n# Choose Your Own (Technology-Enhanced Lear + ning) Adventure\nGreta Goetz\n\nThis presentation will first illustrate po + ssible paths for beginners and then mapping out the significance of the en + hanced learning potential of Emacs (Caillet in Andler & Guerry\, Markauska + ite & Goodyear). The technology-enhanced learning (TEL) that Emacs affords + departs from the 'many\, many features' (Stallman) which surpass the conf + ines of a pre-fabricated environment (Stiegler). This affords diverse poss + ibilities for individuals to interact creatively and autonomously to satis + fy their own needs alongside others who share use of the tool (Illich). It + s adaptability will be shown to be an asset in support of the learning tre + nds identified by the latest pedagogical research (Guo).\n\n1. Setting ou + t as beginners who may be overwhelmed by formal Emacs documentation. Some + inroads. No trace is too small.\n2. Emacs as common ground between people + and technology.\n3. Emacs modularity and TEL design.\n4. Emacs as perso + nal\, creative\, autonomous.\n5. Emacs and cognitive democracy.\n\n\n# Re + ferences\n\n## General workflow\, inspiration\, fun:\n- Bin\, C. (2020). + Mastering Emacs in one year. <https://github.com/redguardtoo/mastering-em + acs-in-one-year-guide/blob/master/guide-en.org#on-the-shoulders-of-giants> + . Accessed 25 October 2021.\n- Chua\, S. https://sachachua.com/blog/\n- + Goetz\, G. (2021). Additional references: A back-to-school/GTD Emacs jou + rney. <https://gretzuni.com/articles/a-back-to-school-gtd-emacs-journey>. + Accessed 25 October 2021.\n- Guerry\, B. (2020). Org-mode features you m + ay not know. <https://bzg.fr/en/some-emacs-org-mode-features-you-may-not-k + now/>. Accessed 25 October 2021.\n- Kaiser\, K. (2017). Writing a techni + cal book in Emacs and Org-mode. <https://www.kpkaiser.com/programming/writ + ing-a-technical-book-in-emacs-and-org-mode/>. Accessed 25 October 2021.\n- + Planet Emacs Life. <https://planet.emacslife.com/>. Accessed 25 October + 2021.\n- Stavrou\, P. My packages for GNU Emacs. <https://protesilaos.c + om/emacs/>. Accessed 25 October 2021.\n- Wellons\, C. Emacs articles. <h + ttps://nullprogram.com/tags/emacs/>. Accessed 25 October 2021.\n\n## On T + EL design and learning:\n- Andler\, D. & Guerry\, B. (Eds.). *Apprendre + demain: Sciences cognitives et éducation à l’ère numérique*\, 137-154. Par + is: Hatier.\n- Crichton\, M. (1983). *Electronic life*. New York: Knopf. + \n- De Bono\, E. (2009). *Think! Before it's too late*. London: Random H + ouse.\n- Drosos\, I. & Guo\, P. (2021). Streamers teaching programming\, + art\, and gaming: Cognitive apprenticeship\, serendipitous teachable mome + nts\, and tacit expert knowledge. IEEE Symposium on Visual Languages and H + uman-Centric Computing (VL/HCC)\, short paper\, 2021. <https://pg.ucsd.edu + /pubs.htm>. Accessed 25 October 2021.\n- Gabriel\, R. (1996). *Patterns + of software*. New York\, Oxford: Oxford University Press.\n- Goodyear\, + P. & Retalis\, S. (2010). Learning\, technology and design. In Goodyear\, + P. & Retalis\, S. (Eds.). *Technology-enhanced learning: Design patterns a + nd pattern languages*\, 1-27. Rotterdam\, Boston: Sense Publishers.\n- G + uo\, P. (2018). Students\, systems\, and interactions: Synthesizing the fi + rst\nfour years of Learning@Scale and charting the future. L@S 2018\, June + 26–28\, 2018\, London\, United Kingdom. DOI: https://doi.org/10.1145/3231 + 644.3231662. <https://pg.ucsd.edu/pubs.htm>. Accessed 25 October 2021.\n- + Guo\, P.\, Kim\, J. & Rubin\, R. (2014). How video production affects st + udent engagement: An empirical study of MOOC videos. ACM Conference on Lea + rning at Scale. <https://pg.ucsd.edu/pubs.htm>. Accessed 25 October 2021.\ + n- Illich\, I. (1973). *Tools of conviviality*. New York: Harper & Row.\ + n- Kim\, J.\, Guo\, P.\, Seaton\, D.\, Mitros\, P.\, Gajos\, K. & Miller + \, R. (2014). Understanding in-video dropouts and interaction peaks in onl + ine lecture videos. ACM Conference on Learning at Scale. <https://pg.ucsd. + edu/pubs.htm>. Accessed 25 October 2021.\n- Markauskaite\, L. & Goodyear + \, P. (2017). *Epistemic fluency and professional education: innovation\, + knowledgeable action and actionable knowledge*. Dordrecht: Springer.\n- + Markel\, J. & Guo\, P. (2020). Designing the future of experiential learni + ng environments for a post-COVID world: A preliminary case study. NFW ’20 + (Symposium on the New Future of Work)\, August 3–5\, 2020\, Virtual Event. + <https://pg.ucsd.edu/pubs.htm>. Accessed 25 October 2021.\n- Morin\, E. + ([2004] 2008). *La Méthode - tome 6: Éthique*. Éditions du Seuil: Paris.\ + n- Stallman\, R. (2002). *Free software\, free society*. GNU Press\, Fre + e Software Foundation.\n- Stiegler\, B. (2018). *The neganthropocene*. O + pen Humanities Press.\n- Trocmé-Fabre\, H. (1999). *Réinventer le métier + d’apprendre*. Paris: Éditions d’organisation.\n\n\n# Availability and pre + ferred Q&A approach\n\nDue to the pandemic situation\, my teaching schedul + e fluctuates so I\nwill not know my availability until much closer to the\ + ndate. Therefore\, I can only guarantee delayed answer response\n(whatever + you request)\, but if available\, will join live.\nMay I please note that + I will be pre-recording my video if this submission is accepted.\n\n\n# S + peaker release\n\nBy submitting this proposal\, I agree that my presentati + on at\nEmacsConf 2021 is subject to the following terms and conditions:\n\ + nThe EmacsConf organizers may capture audio and video (a "Recording")\nof + my presentation and any associated materials\, which may include\nslides\, + notes\, transcripts\, and prerecording(s) of my presentation\nthat I prov + ide to the EmacsConf organizers.\n\nI authorize the EmacsConf organizers t + o distribute\, reproduce\,\npublicly display\, and prepare derivative work + s of the Recording and\nany derivative works of the Recording (the "Licens + ed Materials")\nunder the terms of the Creative Commons Attribution-ShareA + like 4.0\nInternational (CC BY-SA 4.0) license.\n\nI grant to the EmacsCon + f organizers permission to use my name\,\nlikeness\, and biographic inform + ation in association with their use\nof the Licensed Materials under the a + bove license.\n\nI represent that I have the authority to grant the above + license to\nthe EmacsConf organizers. If my presentation incorporates any\ + nmaterial owned by third parties\, I represent that the material is\nsubli + censable to the EmacsConf organizers or that my use of them is\nfair use. +END:VEVENT +BEGIN:VEVENT +SUMMARY:GNU's Not UNIX: Why Emacs Demonstrates The UNIX Philosophy Isn't Al + ways The Only Answer +LOCATION:https://emacsconf.org/ +UID:ea5bab3c-f31e-68a4-fa23-81ca67fa1990 +URL:https://emacsconf.org/2021/talks/unix +DTSTART;TZID=America/Toronto:20211127T095600 +DTEND;TZID=America/Toronto:20211127T100600 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/unix\n# GNU's Not UNIX: Why Emacs Demonstrates The UNI + X Philosophy Isn't Always The Only Answer\nDaniel Rose\n\nThe talk targets + users who are curious about computational philosophies\,\nor those who mi + ght not know how to best utilise Emacs conceptually. The\ntalk will cover + what the UNIX philosophy is\, the GNU Free Software\nprinciples\, a typica + l (Neo)Vi(m) user's approach\, and then how one might\naccomplish this in + Emacs combining the aformentioned ideals. The\nlisteners will learn how th + ey can approach Emacs ideologically\, and how\nblocking themselves into on + e philosophy or the other will limit their\nefficiency. Although you may b + e a veteran GNU/Linux and Emacs user\,\nunderstanding how to use both phil + osophies together will still allow you\nto be more performant than without + .\n\n\n\n# Outline\n\n- How can one limit their usage of CLI tools while + still maintaining\n the ideals of both.\n- How using CLI tools c + an still perfectly flow into Emacs.\n- How having all programs in Emacs + and unified keybindings is akin\n to a terminal user.\n- Why thin + king about computational philosophies might itself be an\n impedime + nt. +END:VEVENT +BEGIN:VEVENT +SUMMARY:Emacs manuals translation and OmegaT +LOCATION:https://emacsconf.org/ +UID:db4ccb28-867f-df24-c073-eaca6edad438 +URL:https://emacsconf.org/2021/talks/omegat +DTSTART;TZID=America/Toronto:20211127T100900 +DTEND;TZID=America/Toronto:20211127T101900 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/omegat\n# Emacs manuals translation and OmegaT\nJean-C + hristophe Helary\n\nEven if it is generally agreed that software localizat + ion is a good thing\, Emacs is lacking in that respect for a number of tec + hnical reasons. Nonetheless\, the free software using public could greatly + benefit from Emacs manuals translations\, even if the interface were to r + emain in English.\n\nOmegaT is a multiplatform GPL3+ "computer aided trans + lation" (CAT) tool running on OpenJDK 8. CATs are roughly equivalent for t + ranslators to what IDEs are for code writers. Casual translators can benef + it from their features but professionals or commited amateurs are the most + likely to make the most use of such tools.\n\nWhen OmegaT\, free software + based forges and Emacs meet\, we have a free multi-user translation envir + onment that can easily sustain the (close to) 2 million words load that co + mprise the manuals distributed with Emacs\, along with powerful features l + ike arbitrary string protection for easy typing and QA (quality assurance) + \, automatic legacy translation handling\, glossary management\, history b + ased or predictive autocompletion\, etc.\n\nThe current trial project for + French is hosted on 2 different forges:\n\n1. sr.ht hosts the source file + s\n <https://sr.ht/~brandelune/documentation_emacs/>\n2. chapril hosts + the OmegaT team project architecture\n <https://sr.ht/~brandelune/docu + mentation_emacs/>\n\nThe sources are regularly updated with a po4a based s + hell script.\n\n# Outline\n\n- Duration: 10 minutes\n- Software used durin + g the presentation\n - [po4a](https://po4a.org) a tool to convert documen + tation formats to and from the commonly used `gettext` **PO** format.\n + po4a supports the `texinfo` format along with many others.\n - [OmegaT]( + https://omegat.org) a "computer aided translation" tool used by translator + s to efficiently combine translation ressources (legacy translations\, glo + ssaries\, etc.) so as to produce more consistent translations.\n\nDuring t + he presentation\, I will show:\n\n- How to use po4a to convert the texi fi + les to the PO format (the org.org file is also converted)\n- What are the + specificities of the Emacs manuals and what difficulties they present to t + he tanslator\n- How to address those specificities in OmegaT\, with regula + r expressions\n- How to use OmegaT features such as arbitrary string prote + ction\, legacy translation handling\, glossaries\, autocompletion\, QA\, e + tc.\n- How to use OmegaT with a team of 2 (or more) translators working at + the same time\n- How to solve translation conflicts\n\nI will *not* show: + \n\n- How to create an OmegaT project\n- How to setup an OmegaT team proje + ct\n- How to use OmegaT from the command line to work in localization pipe + lines\n- How to use machine translation and MT "post-edit"\n- How to conve + rt back the translated files to texi format\n- How to install translated t + exi files for use in Emacs +END:VEVENT +BEGIN:VEVENT +SUMMARY:NonGNU ELPA Update +LOCATION:https://emacsconf.org/ +UID:525d972d-1e34-bcb4-e9c3-861942549357 +URL:https://emacsconf.org/2021/talks/nongnu +DTSTART;TZID=America/Toronto:20211127T102200 +DTEND;TZID=America/Toronto:20211127T102900 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/nongnu\n# NonGNU ELPA Update\nPhilip Kaludercic\n\nNon + GNU ELPA was announced last year\, as a package repository\nthat will be e + nabled by default in Emacs\, but doesn't require\nany copyright assignment + . This means that a lot of popular\npackages can now be installed easier\, + without any additional\nconfiguration.\n\nIn this talk I would like the g + ive a reminder of what NonGNU\nELPA is and how it works\, update the parti + cipants on what has\nhappened since last year and what maintainers have to + do if they\nwant their packages to be added to the repository. +END:VEVENT +BEGIN:VEVENT +SUMMARY:Manual Package Management in The Era of Repositories - Why and How +LOCATION:https://emacsconf.org/ +UID:245a575a-965a-caa4-8d3b-75f8519c2f3e +URL:https://emacsconf.org/2021/talks/borg +DTSTART;TZID=America/Toronto:20211127T103500 +DTEND;TZID=America/Toronto:20211127T104500 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/borg\n# Manual Package Management in The Era of Reposi + tories - Why and How\nDhavan (codingquark)\n\nEmacs now has many package r + epositories - enought to have conflicts\nand arguments about. The packages + are becoming big\, they depend on many\nother packages and it is not easy + to keep track of what all is being\ninstalled in our Emacsen. An aggressi + ve way out of this is to use Yet\nAnother Package and install all elisp co + de manually - with borg[1].\n\n[1]: <https://github.com/emacscollective/bo + rg>\n\n\n\n# Outline\n\n- 5-10 minutes: (brief description/outline)\n + 1. What are we trying to solve?\n 2. What is borg?\n 3. How to u + se it?\n 4. Assimilate a package for demo +END:VEVENT +BEGIN:VEVENT +SUMMARY:telega.el and the Emacs community on Telegram +LOCATION:https://emacsconf.org/ +UID:86158391-53a2-7cb4-d7d3-020afbf6d8d9 +URL:https://emacsconf.org/2021/talks/telega +DTSTART;TZID=America/Toronto:20211127T104800 +DTEND;TZID=America/Toronto:20211127T105600 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/telega\n# telega.el and the Emacs community on Telegra + m\nGabriele Bozzola and Evgeny Zajcev\n\nTelegram is a cross-platform inst + ant messaging system. The large number of\nfeatures and the widespread ado + ption make it a good choice for both private\nconversations with friends a + nd for large online communities. In this talk\, I\nam going to present the + Emacs community on Telegram and its initiatives. I\nam also going to disc + uss telega.el\, the Emacs client for Telegram. telega.el\nis a high-qualit + y package that perfectly integrates in Emacs. It supports\nthe vast majori + ty of the features supported by the official clients\, while\nadding sever + al unique ones. In the talk\, I will present the package and\nhighlight so + me of the most important features. +END:VEVENT +BEGIN:VEVENT +SUMMARY:Introducing N-Angulator +LOCATION:https://emacsconf.org/ +UID:e4bdc2c1-e4b6-67e4-aafb-87ec9aaf846b +URL:https://emacsconf.org/2021/talks/nangulator +DTSTART;TZID=America/Toronto:20211127T110100 +DTEND;TZID=America/Toronto:20211127T111100 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/nangulator\n# Introducing N-Angulator\nKevin Haddock\n + \nThe Unix file system is essentially an N-dimentional sparse array that\n + currently lacks a decent editor and browser which\ncan effectively leverag + e the logical tri-angulation (or\, more properly\n"n-angulation") of atoms + /blobs within it.\n\nN-Angulator is the genesis\, to wit\, the "Model-T\," + of such a program.\n\n(see google drive link below for a very old uncircu + lated prototype\nvideo demo. Be sure and turn the volume UP!)\n\nna.intr + o.flv\n<https://drive.google.com/file/d/1EZN0Xs8eGlEbSIYFml2lp3GCNnmLQa98/ + view?usp=drive_web>\n\n\n\n# Outline\n\n- 5-10 minutes: (brief descripti + on/outline)\n\nThe reconceptualization of the Unix file system as the N-Di + mensional\nsparse array will be discussed.\n\nA simple pre-existing databa + se will be queried.\n\nIf time\, questions will be entertained by video/au + dio and/or IRC. +END:VEVENT +BEGIN:VEVENT +SUMMARY:A day in the life of a janitor +LOCATION:https://emacsconf.org/ +UID:14ab7a54-d75d-45e4-85ab-8fd2e391ea41 +URL:https://emacsconf.org/2021/talks/janitor +DTSTART;TZID=America/Toronto:20211127T111400 +DTEND;TZID=America/Toronto:20211127T113400 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/janitor\n# A day in the life of a janitor\nStefan Monn + ier\n\nBecause of a reckless former Emacs maintainer that shall\n better + stay unnamed\, ELisp has seen a fair bit of churn in the last 10\n years\ + , making it necessary to clean up "old" code [in order to open up\n the r + oad for yet more recklessness? ].\n In this documentary we will follow a + famous janitor in his every day job\n dealing with the aftermath of the c + l-lib / lexical-binding party.\n\n- ~20 minutes\n Here really\, I'm n + ot sure how much time this will take. I put 20\n minutes because I thi + nk I might be able to fill that and I think more\n than that could turn + too boring. I intend to make it a "live coding"\n kind of thing\, wit + hout anything like an outline: it's basically "make"\n followed by fixi + ng the warnings. +END:VEVENT +BEGIN:VEVENT +SUMMARY:How to help Emacs maintainers? +LOCATION:https://emacsconf.org/ +UID:51c360e6-188f-9a34-05bb-0a8d2eb09cdc +URL:https://emacsconf.org/2021/talks/maintainers +DTSTART;TZID=America/Toronto:20211127T113900 +DTEND;TZID=America/Toronto:20211127T114900 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/maintainers\n# How to help Emacs maintainers?\nBastien + Guerry\n\nAfter 11 years of helping as the Org maintainer\, I would\nlike + to share a few lessons learned. My goal is help everyone take\ncare of E + macs maintainance by taking care of Emacs maintainers.\n\n\n\n# Outline\n\ + n- 5-10 minutes +END:VEVENT +BEGIN:VEVENT +SUMMARY:Typesetting Gregorian Chant with Emacs +LOCATION:https://emacsconf.org/ +UID:716d913f-de8b-91a4-5f33-e04ba0905fa5 +URL:https://emacsconf.org/2021/talks/gregorian +DTSTART;TZID=America/Toronto:20211127T115200 +DTEND;TZID=America/Toronto:20211127T120200 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/gregorian\n# Typesetting Gregorian Chant with Emacs\nS + pencer King\n\nThere are a variety of methods for typesetting gregorian\nc + hant scores and outputting high-quality sheet music. One of these is\na to + ol called Gregorio\, which integrates with LaTeX allowing scores to\nbe cl + eanly inserted into other documents. All Gregorio files are plain\ntext\, + allowing them to easily be shared with other users and managed\nwith a ver + sion control system. In this talk\, I will give a brief\noverview of the G + regorio tool and then show how it can be used in\nEmacs by typesetting a s + imple score. All code and examples will be\nmade available to help new use + rs get started with typesetting their\nown scores.\n\n\n\n# Outline\n\n- + 5-10 minutes: (brief description/outline)\n 1. Introduction to chant + music\n 2. Introduction to Gregorio\n 3. Example of typesetting a + score in Emacs\n 4. Code and example availability +END:VEVENT +BEGIN:VEVENT +SUMMARY:Emacs and Montessori Philosophy +LOCATION:https://emacsconf.org/ +UID:6fccae45-04b5-5524-662b-fdba87754d06 +URL:https://emacsconf.org/2021/talks/montessori +DTSTART;TZID=America/Toronto:20211127T123000 +DTEND;TZID=America/Toronto:20211127T124000 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/montessori\n# Emacs and Montessori Philosophy\n\n\nAs + a former Montessori guide and now parent\, I often think about the\nrelati + onship of this particular educational philosophy and how it manifests\nin + my work with software\, Emacs in particular. This talk introduces the\ncon + cept of Emacs as an educational environment and how it expresses elements + of\nMontessori psychology regarding "Human Tendencies". Human tendencies a + re innate\ndrives present in everybody that allow us to explore and make s + ense of our world.\n\n\n\n# Outline\n\n- 5-10 minutes: (brief descriptio + n/outline)\n Quick overview of a Montessori classroom environment:\n\n + - the adults or guides primarily observe and present material\n - + the children are free to explore materials as they choose (within limits + )\n - the environment itself is prepared specifically to foster engag + ement\n\n Enumerate the "Human Tendencies":\n\n - Abstraction\n + - Activity\n - Communication\n - Exactness\n - Explorati + on\n - Manipulation (of the environment)\n - Order\n - Orie + ntation\n - Repetition\n - Self-Perfection\n - Work (also d + escribed as "purposeful activity")\n\n How does Emacs express these thi + ngs?\n\n - in the short version\, pose the question\, and perhaps giv + e one example.\n - Emacs is an environment that provides facilities f + or individuals to\n find their way to proficiency through their Hum + an Tendencies.\n - We are all both learners and guides\, Emacs is our + classroom +END:VEVENT +BEGIN:VEVENT +SUMMARY:Emacs Research Group\, Season Zero: What we did together with Emacs + in 2 hours a week for a year +LOCATION:https://emacsconf.org/ +UID:9cee7e43-bcb1-7f64-c40b-5f9ea938d11a +URL:https://emacsconf.org/2021/talks/erg +DTSTART;TZID=America/Toronto:20211127T124300 +DTEND;TZID=America/Toronto:20211127T125800 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/erg\n# Emacs Research Group\, Season Zero: What we did + together with Emacs in 2 hours a week for a year\nNoorah Alhasan\, Joe Co + rneli\, Raymond Puzio\, Leo Vivier\n\nThe four of us met at EmacsConf 2020 + \, and joined together around a\ncommon interest in Emacs and research. S + ince then\, we have convened as\nthe Emacs Research Group for weekly meeti + ngs. During these meetings\, we\ntook notes collaboratively\, using a ‘co + nflict-free replicated data type’\npackage (crdt.el)\; at the end of each + session\, we debriefed using a\ntemplate that we call a Project Action Rev + iew (PAR). As as a\nmeta-review of our sessions\, every six weeks we prep + ared a Causal\nLayered Analysis (CLA)\, which gave us a different perspect + ive on what we\nhad done. We reflected further on our experiences and met + hods\, linking\nour CLA to plans and design patterns. As a formal researc + h output\, we\ncontributed a write-up of these matters to a joint paper wh + ich we\npresented at the Pattern Languages of Programs Conference (PLoP 20 + 21).\nThe paper included an interactive workshop\, in which we explored ro + les\nin real-time problem solving and collaboration.\n\nIn our short talk + we share information about these methods\, making a\ncase for other people + getting together and creating their own small\nresearch communities simil + ar to ours. +END:VEVENT +BEGIN:VEVENT +SUMMARY:One effective CS grad student workflow +LOCATION:https://emacsconf.org/ +UID:0f98a5bb-53ce-fb74-1003-0b1f320d414e +URL:https://emacsconf.org/2021/talks/cs +DTSTART;TZID=America/Toronto:20211127T130100 +DTEND;TZID=America/Toronto:20211127T131100 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/cs\n# One effective CS grad student workflow\nGreg Col + adonato\n\nWhen I was an undergrad\, I learned many things\, most of\nwhic + h I forgot. In the time since then\, I've discovered Org Mode\, Org\nRoam\ + , Org Noter\, Org Ref. PDF Tools\, and Anki. I would like to share\nmy app + roach for capturing all the information that comes my way as a\nMS CS stud + ent at Georgia Tech\, in the hopes that I can both get\nfeedback on ways t + o improve the system I use\, as well as hopefully\ninspire others to build + workflows that make them more productive.\n\n\n\n# Outline\n\n- 5-10 mi + nutes: Go through some typical workflows associated with being a grad stud + ent\, using the packages mentioned in the abstract. +END:VEVENT +BEGIN:VEVENT +SUMMARY:Using Org-Mode For Recording Continuous Professional Development +LOCATION:https://emacsconf.org/ +UID:43cc5db4-e26f-fb44-9aeb-b16c38d8cef3 +URL:https://emacsconf.org/2021/talks/professional +DTSTART;TZID=America/Toronto:20211127T131400 +DTEND;TZID=America/Toronto:20211127T132500 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/professional\n# Using Org-Mode For Recording Continuou + s Professional Development\nPhilip Beadling\n\nI recently had the pleasure + of being audited for my CPD record with one\nof the large engineering pro + fessional bodies. I decided to harness\norg-mode's TODO lists to record C + PD items and my progress against them\ncompletely within Emacs. I also wa + nted the ability to export the data\nin a well presented\, compact format + for auditing submission.\n\nThe project was a success (I passed the audit) + and the resulting system\nintegrates really well into my wider daily Emac + s workflow\, making future\nCPD recording seamless.\n\nThe talk will expla + in how I tweaked and extended org-mode to get it to\nrecord the data I wan + ted\, followed by a demo.\n\nA basic demo org file with embedded elisp can + be seen here:\n<https://raw.githubusercontent.com/falloutphil/Misc/master + /cpd.org>\n\nA basic generated PDF from the basic demo is here:\n![img](ht + tps://preview.redd.it/nvdpmityhuw51.png?width=1169&format=png&auto=webp&s= + e0c5080560c877aa02933a40c224e52b8a1fed3b)\n\nI have a much more involved e + xample I could also use for the demo.\n\nThe template contains a few examp + les. Examples are Goals that are split\nup into Activities. All Activitie + s must have a Goal\, and within a Goal\nall activities must be complete fo + r the Goal to be automatically set to\ncomplete.\n\nIt's basically leverag + ing Org Capture Templates to create custom Goals\nand Activities.\n\nOn sa + ve or update these are then rendered into a table using Column View.\n\nAc + tivities are sorted by date they were completed on.\n\nThe Column View is + pre-configured to be exported to PDF in a condensed\nbut readable format f + or submission. It stays fairly readable even when\nthe pages get busy.\n\n + The elisp required is all under the "Config" bullet and Emacs will ask\nto + execute it on opening the Org file. The elisp concerns itself with\nnice + custom org capture functions and a few functions to ensure nice\nformattin + g on export\, etc.\n\n\n\n# Outline\n\n- 5-10 minutes:\n\nA quick walkth + rough of the setup and functions\, followed by a demo of how\nto add CPD i + tems\, and update them. Finally show generation of a PDF\ncontaining all + the items tabulated and ready for audit review. I\nestimate this at appro + x 10 minutes. +END:VEVENT +BEGIN:VEVENT +SUMMARY:Creating technical API documentation and presentations using org-ba + bel\, restclient\, and org-treeslide +LOCATION:https://emacsconf.org/ +UID:a10ce62e-6454-d784-21bb-f6a0488e883c +URL:https://emacsconf.org/2021/talks/tech +DTSTART;TZID=America/Toronto:20211127T132800 +DTEND;TZID=America/Toronto:20211127T133900 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/tech\n# Creating technical API documentation and prese + ntations using org-babel\, restclient\, and org-treeslide\nJan Ypma\n\nThe + emacs org-babel package is often mentioned in conjunction with\nliterate + programming. The ability to mix code segments with prose\nindeed offers an + intuitive way to augment semantic code pieces with\ntextual descriptions. + \n\nIn recent projects\, I've started to turn to org-mode as the primary\n + format to maintain technical documentation\, as well as slides for a\ntech + nical language course. By using org-babel to pull in "live" code\nfor REST + requests\, language examples\, and shell scripts\, one can be\nsure that + the documentation and slides are never out of date.\n\nThe session will sh + ow how leverage org-babel\, restclient and\norg-treeslide to write and pre + sent technical documentation with style.\n\n\n# Outline\n\n- Introduction\ + n- Demo: Developer guide\n- Demo: REST API guide\n- Demo: Presentations\n- + Used packages and configuration +END:VEVENT +BEGIN:VEVENT +SUMMARY:Org as an executable format +LOCATION:https://emacsconf.org/ +UID:b092bc88-e74c-a9c4-611b-d47c99ef578c +URL:https://emacsconf.org/2021/talks/exec +DTSTART;TZID=America/Toronto:20211127T134200 +DTEND;TZID=America/Toronto:20211127T135200 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/exec\n# Org as an executable format\nTom Gillespie\n\n + Org mode is known for its flexibility\, power\, and staggeringly diverse\n + number of workflows\, users\, and use cases.\n\nThis talk explores just ho + w far we can push the boundaries of the sane\nand sensible with regard to + Org workflows.\n\nIn particular it will discuss shebang blocks\, and elvs: + two parts of a\ncomplete system for creating executable Org files.\n\nOrg + syntax does not support shebang lines. However\, it turns out that\nOrg s + yntax enables something even better —\; shebang blocks.\n\nOrg is al + so (supposedly) not an executable file format. However\, by\ncombining a + shebang block with a Org babel source block\, and eval\nlocal variables (e + lvs) Org becomes a multi-language executable format.\n\nIn this talk we in + troduce shebang blocks and elvs as a two part system\nthat transforms Org + files into executable documents that can run on any\nrecent version of Ema + cs.\n\nThese ideas are implemented in\n<https://github.com/tgbugs/orgstrap + /blob/master/README.org> and\n<https://github.com/tgbugs/orgstrap/blob/mas + ter/shebang.org>\, and\norgstrap.el is available as a package on MELPA and + can be installed\nvia M-x install-package orgstrap.\n\nThe talk will open + with a demo of how to create an executable Org file\nusing the orgstrap m + achinery.\n\nWe then discuss security considerations\, and show example us + e cases.\n\nFinally the talk will cover the details and development of the + \nportable shebang block for Org mode that works on a wide variety of\nsys + tems and shells\, and on the development of a formal specification\nand a + reference implementation for using Org source blocks to\ntransform Org fil + es from plain text documents with a bit of markup\ninto self describing co + mputational documents\, or interactive\napplications.\n\n\n\n# Outline\n\n + - 5-10 minutes:\n\nA demo of adding the orgstrap block and elvs\,\naddin + g a shebang block\, and then running an org file. +END:VEVENT +BEGIN:VEVENT +SUMMARY:The use of Org mode syntax outside of GNU/Emacs +LOCATION:https://emacsconf.org/ +UID:69763d57-be4e-7e74-509b-92e48a0e7ba6 +URL:https://emacsconf.org/2021/talks/org-outside +DTSTART;TZID=America/Toronto:20211127T135500 +DTEND;TZID=America/Toronto:20211127T140500 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/org-outside\n# The use of Org mode syntax outside of G + NU/Emacs\nKarl Voit\n\nWith the rising interest in Org mode\, the GNU/Emac + s community gained\nmuch momentum in the last decade. Being a nicely desig + ned lightweight\nmarkup language\, Org mode does not only benefit users of + GNU/Emacs.\nThere are many tools and services supporting Org mode syntax + documents\nthat do have no direct connection to GNU/Emacs. I would like to + \nelaborate on the advantages on using Org mode syntax for arbitrary\ntext + outside of GNU/Emacs for better typing usability and\ncollaboration tasks + .\n\n\n\n# Outline\n\n- 5-10 minutes: (brief description/outline)\n\nThi + s can only be a short teaser for the use of Org mode syntax without\nmuch + comparison to other lightweight markup languages. For this\naudience\, I d + o think that this would be too short because most\nattendees might already + have heard the rumors that Org mode is great\nor they have adapted Org mo + de in their workflows already. +END:VEVENT +BEGIN:VEVENT +SUMMARY:Using Org-mode to teach programming +LOCATION:https://emacsconf.org/ +UID:aed5e190-66a0-3dd4-e5eb-be09be94e6c3 +URL:https://emacsconf.org/2021/talks/teach +DTSTART;TZID=America/Toronto:20211127T140800 +DTEND;TZID=America/Toronto:20211127T142800 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/teach\n# Using Org-mode to teach programming\nDaniel G + erman\n\nIn this presentation I will explain how to use org-mode effective + ly to\nprepare teaching materials\, and how to present them.\n\nFor the la + st 5 years I have been using org-mode to teach programming\nin different l + anguages: C++\, SQL\, Ruby\, Python\, SML\nand Scheme. Org-mode has three + key advantages:\n\n1. it supports most programming languages with a commo + n interface\,\n2. it is an interactive medium for delivering teaching mat + erials\; and\n3. it is an always-up-to-date format that does not need to + be exported in order to be published.\n\nI explain how I use org-mode in m + y courses and how I combine org-mode\nnotes other tools such as github org + -mode to get\nalways up-to-date teaching materials that one can use for bo + th\nteaching and studying (see\n<https://github.com/dmgerman/csc116ModernC + plusplus/blob/master/lectures/l-01-1-intro/01_1_intro.org>\nfor an example + ).\n\nFinally\, I will discuss some important aspects to consider when usi + ng\norg-mode for this purpose.\n\n\n\n# Outline\n\n20 minutes:\n\n- Intr + oduction\n- Quick demonstration\n- Workflow\n- Emacs configuration\n + - Important considerations\n- How to get started\n\nOh\, I made a smal + l mistake. I meant to propose a 40 minutes presentation.\nBut I can give a + quicker 20 minutes too. +END:VEVENT +BEGIN:VEVENT +SUMMARY:Managing a research workflow (bibliographies\, note-taking\, and ar + Xiv) +LOCATION:https://emacsconf.org/ +UID:fd246cee-b5d6-7cc4-2b63-20e87bb7d750 +URL:https://emacsconf.org/2021/talks/research +DTSTART;TZID=America/Toronto:20211127T143300 +DTEND;TZID=America/Toronto:20211127T143800 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/research\n# Managing a research workflow (bibliographi + es\, note-taking\, and arXiv)\nAhmed Khaled\n\nResearchers and knowledge w + orkers have to read and discover new papers\,\nask questions about what th + ey read\, write notes and scratchwork\, and store\nmuch of this informatio + n for use in writing papers and/or code. Emacs allows\nus to do all of thi + s (and more) using simple text interfaces that integrate\nwell together. I + n this talk I will talk about the following:\n\na. Using elfeed and elfeed + -score to read new papers from arXiv.\nb. Using org-ref to import arXiv pa + pers of interest into a local\nbibliography.\nc. Using Emacs hooks with bi + ber and rebiber in order to keep the local\n bibliography clean and up-t + o-date with conference versions of papers.\nd. Using org-roam and org-roam + -bibtex to take linked\, searchable notes in\norg on research papers.\n\nT + his text-based workflow allows for keeping everything accessible under\nve + rsion\ncontrol and avoids the platform lock-in of binary formats (e.g. Men + deley). I\nwill share my Doom Emacs configuration for this workflow\, but + it is not\nlimited\nto Doom.\n\n\n\n# Outline\n\n- 5-10 minutes: I will + demo the packages I use in 5 minutes. +END:VEVENT +BEGIN:VEVENT +SUMMARY:Babel for academics +LOCATION:https://emacsconf.org/ +UID:db5821ed-fef4-4934-8fb3-87a0282714de +URL:https://emacsconf.org/2021/talks/babel +DTSTART;TZID=America/Toronto:20211127T144200 +DTEND;TZID=America/Toronto:20211127T145200 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/babel\n# Babel for academics\nAsilata Bapat\n\nPlain o + rg-mode is already an extremely powerful and\ncustomisable tool for task a + nd time management\, note-taking\, calendar\nand agenda management\, and m + uch more. Babel takes org a step further\nby letting you write\, evaluate\ + , and export code in different languages\nfrom within a single file. In th + is talk\, I will highlight some\nfeatures of babel that I find exciting an + d extremely useful\,\nparticularly for an academic workflow.\n\nGetting st + arted with babel can be intimidating\, but it's hard to stop\nusing it onc + e you start. As an academic\, I typically don't manage\nlarge coding proje + cts. My primary purpose is writing lecture notes\,\nassignments\, and pape + rs\, and managing related admin. Typically\, I want\nto try and automate t + he boring portions of my workflow without extra\noverhead. I also tend to + find various tasks easier in some programming\nlanguages and harder in oth + ers\, and prefer to mix and match languages\nas the task dictates. Babel m + akes this process seamless.\n\nA basic use case is writing a document in o + rg-mode and exporting it to\nLaTeX or HTML. Org-mode even lets you write m + ultiple documents in a\nsingle org file\, which can be convenient. Babel l + ets you add all sorts\nof enhancements to the same file. For example\, sup + pose we have a\nsingle org document with all the problem sets for a course + . Within\nthis single file\, we could now:\n\n- draw pictures in ditaa\, + graphviz\, or python instead of LaTeX\,\n- use python to do complex cal + culations and then output the result as LaTeX\,\n- define skeletons to q + uickly draw up assignment templates\,\n- toggle exporting of assignments + with or without solutions based on tags\,\n- locally change export sett + ings or run a post-export hook\,\n- automatically export to LaTeX after + saving\,\n- tangle code blocks from some or all of the languages to exte + rnal files.\n\nI will try to showcase features of babel that academics cou + ld find\nhelpful\, by presenting some ways in which I have tried to use ba + bel. I\nwould also like to be inspired by other people's babel workflows!\ + n\n\n\n# Outline\n\n- 5-10 minutes: (brief description/outline)\n\nFor a + 5-10 minute presentation I will give a brief intro and present one or two + example files that heavily use babel. I will use these\nexamples to highl + ight some of the features mentioned in the abstract. +END:VEVENT +BEGIN:VEVENT +SUMMARY:Reproducible molecular graphics with Org-mode +LOCATION:https://emacsconf.org/ +UID:1fc4917c-aab4-1924-2983-e78f8bca6af9 +URL:https://emacsconf.org/2021/talks/molecular +DTSTART;TZID=America/Toronto:20211127T145400 +DTEND;TZID=America/Toronto:20211127T150400 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/molecular\n# Reproducible molecular graphics with Org- + mode\nBlaine Mooers\n\nResearch papers in structural biology should includ + e the code used to make\nthe images of molecules in the article in the sup + plemental materials.\nSome structural bioinformaticists have started to in + clude\ntheir computer code in the supplemental materials to allow readers\ + nto reproduce their analyses. However\, authors of papers reporting new\nm + olecular structures often overlook the inclusion of the code that makes\nt + he images of the molecules reported in their articles. Nonetheless\,\nthis + aspect of reproducible research needs to become the standard practice\nto + improve the rigor of the science.\n\nIn a literate programming document\, + the author interleaves blocks\nof explanatory prose between code blocks t + hat make the images of molecules.\nThe document allows the reader to repro + duce the images in the manuscript by running the code.\nThe reader can als + o explore the effect of altering the parameters in the\ncode. Org files ar + e one alternative for making such literate programming\ndocuments.\n\nWe d + eveloped a **yasnippet** snippet library called **orgpymolpysnips** for\ns + tructural biologists (<https://github.com/MooersLab/orgpymolpysnips>).\nTh + is library facilitates the assembly of literate programming documents\nwit + h molecular images made by PyMOL. PyMOL is the most popular\nmolecular gra + phics program for creating images for publication\; it has\nover 100\,000 + users\, which is a lot of users in molecular biology. PyMOL\nhas been used + to make many of the images of biological molecules found\non the covers o + f many Cell\, Nature\, and Science issues.\n\nWe used the **jupyter** lang + uage in **org-babel** to send commands from\ncode blocks in Org files to P + yMOL's Python API. PyMOL returns the\nmolecular image to the output block + below the code block. An Emacs\nuser can convert the Org file into a PDF\, + `tangle' the code blocks\ninto a script file\, and submit these for non-E + macs users. We describe\nthe content of the library and provide examples o + f the running PyMOL\nfrom Org-mode documents.\n\n\n# Outline\n\n- 5-10 m + inutes: (brief description/outline)\n - Title slide\n - Structur + al Biolog Workflow in the Mooers Lab\n - Cover images made with PyMOL + \n\n - Why develop a snippet library for your field?\n - PyMOL i + n Org: kernel specification\n - Creating a conda env and installing P + yMOL\n - Example code block in Org to make DSSR block model of tRNA\n + - Resulting image\n - Summary\n - Acknowledgements +END:VEVENT +BEGIN:VEVENT +SUMMARY:Budgeting\, Project Monitoring and Invoicing with Org Mode +LOCATION:https://emacsconf.org/ +UID:c54c7930-51cc-5184-9dfb-5033e577b95e +URL:https://emacsconf.org/2021/talks/project +DTSTART;TZID=America/Toronto:20211127T150700 +DTEND;TZID=America/Toronto:20211127T151700 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/project\n# Budgeting\, Project Monitoring and Invoicin + g with Org Mode\nAdolfo Villafiorita\n\nIn this talk I will present how we + use Org Mode at Shair.Tech for\nbudgeting\, project monitoring\, and invo + icing.\n\nWe are a small company and we are still tuning and improving the + \nprocess\, but with a bit of Emacs Lisp\, the functions Org Mode\nprovide + s\, and reading here and there what other users do\, we\nimplemented an ef + fective workflow we have been using for nearly a\nyear\, now\, and with wh + ich we are very happy. Talk duration:\n\n–\;> 20 minutes seems to be + right (15 talk + questions)\n–\;> I can also make in 10 minutes\, b + y focusing the talk on\n budgeting (or monitoring) +END:VEVENT +BEGIN:VEVENT +SUMMARY:Find Your (In)voice: Emacs for Invoicing +LOCATION:https://emacsconf.org/ +UID:c9870e10-2600-85a4-24fb-793dfc51164e +URL:https://emacsconf.org/2021/talks/invoice +DTSTART;TZID=America/Toronto:20211127T152000 +DTEND;TZID=America/Toronto:20211127T153000 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/invoice\n# Find Your (In)voice: Emacs for Invoicing\nB + ala Ramadurai\n\nYe Freelance warriors\, please lend me your I/O devices f + or 5 minutes.\n\nYour time is your money! Do you find it a pain to generat + e an invoice\,\nrecord the details into your accounting software and keep + track of\ntaxes and payments? You are not alone\, I found the whole invoic + e\nthingy to be extremely painful.\n\nBut worry not\, Emacs comes to our r + escue.\n\nMy talk will give you a basic intro on how to use org mode\, som + e embedded python code and file jugglery to generate stylistic and profess + ional invoices.\n\nWhat you will learn during the session:\n\n- How to t + rack your freelance time using orgmode\n- How to create the basic infras + tructure for invoice generation\n- How to generate the invoice\n- How + to manage multiple clients\n- How to enter the finance details into your + accounting software\n- How to track invoice payments\n\nWe will use the + following packages:\n\n- Emacs+orgmode (duh?)\n- yasnippet\n- pytho + n layer (I use spacemacs\, so whatever is the equivalent in your config)\n + - Some unnecessary Shakespearean references +END:VEVENT +BEGIN:VEVENT +SUMMARY:Productivity Dashboards with Emacs and Kindle +LOCATION:https://emacsconf.org/ +UID:e4e995c0-6e06-8544-a8c3-5f9a06c856fb +URL:https://emacsconf.org/2021/talks/dashboard +DTSTART;TZID=America/Toronto:20211127T153300 +DTEND;TZID=America/Toronto:20211127T154300 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/dashboard\n# Productivity Dashboards with Emacs and Ki + ndle\nMehmet Tekman\n\nSince 2008\, Amazon have released a new Kindle devi + ce every year\,\nsupplanting each generation with a newer model that boast + s highly\npromoted incremental features which greatly devalues the price o + f\ntheir older models. These forgotten models are sold on Ebay and\nother + secondhand websites at highly discount prices by owners who\ndo not see th + e true potential of these devices: Kindles are\nexcellent high contrast lo + w-refresh display rate E-Ink devices\,\nwith Wifi capability\, that run em + bedded Linux in the\nbackground. Depending on the model\, an idle Kindle c + an last weeks\nbefore needing a recharge. This makes them ideal as passive + image\ndevices that can be configured easily using a few shell\nscripts. + Indeed\, efforts have been made in dedicated hacker forums\nto expose the + Linux filesystem and to enable features such as\ncustom screensavers\, SSH + networking\, and more. By exploiting these\nfeatures\, and by carefully d + isabling the software/bloatware that\ncomes with the device\, these Kindle + s have found new life as online\ndashboard devices which can fetch and dis + play information from the\ninternet at timely intervals.\n\nHere we descri + be a tool to control multiple Kindle devices with a\nsingle org-mode/shell + -based tool\, built initially to periodically\nserve updated Emacs Org-Age + nda views\, but later expanded to produce\nonline local weather reports an + d work calendar\, Emacs calendars\n(calfw\, org-gcal)\, daily dietary info + rmation (org-calories)\,\nOrg-Mode sparse TODO trees\, miscellaneous image + and text content\n(via imagemagick)\, small messages\, and much more.\n\n + In this talk\, we show how to configure multiple Kindles with any\ndesired + custom content\, following any daily/weekly schedule\, all\neasily manage + d from Emacs within a single Org-Mode file.\n\n\n\n# Outline\n\n- 5-10 m + inutes:\n\n 1-3 mins\n Talk about repurposing Kindles:\n\n + - Cheap second-hand wifi device\, hackable\n - Low-powered\, long b + attery life\, low refresh rate –\; perfect\n for a dashboard\ + n - Timely updated Org-Mode Agendas anyone?\n - Reference to + inspired projects (kindle-dashboard)\n\n 2-3 mins\n Generate + content\n\n - A static text+picture image easily generated with image + magick\n wrapper\n - An image of a sparse tree of org-mode TOD + O file\n - An image of another emacs view (e.g. Calfw\, or org-calori + es)\n - Show post-processing for optimizing image for Kindles\n\n + 1-2 mins\n Configuration in a single org-mode file\n\n - Def + ining Machines\n - Defining Commands to generate content\n - Def + ining Schedules to run Commands on multiple Machines at\n specific + points in the day\n\n 1-2 mins\n Export and Run:\n\n - Sh + ow exported shell configs and generated cronjobs\n - Witness multiple + Kindles producing desired content with wakeup\n timers +END:VEVENT +BEGIN:VEVENT +SUMMARY:Emacs with Nyxt: extend your editor with the power of a Lisp browse + r +LOCATION:https://emacsconf.org/ +UID:33776e08-e815-db94-971b-a151236e11be +URL:https://emacsconf.org/2021/talks/nyxt +DTSTART;TZID=America/Toronto:20211127T154600 +DTEND;TZID=America/Toronto:20211127T155600 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/nyxt\n# Emacs with Nyxt: extend your editor with the p + ower of a Lisp browser\nAndrea\n\nIn 2021 browsers are essential if you us + e a computer. Even if Emacs\nusers love text as a format\, they may need t + o shop and video call from\ntime to time (even more so in a pandemic!). So + me of us modified their\nbrowsers to at least have the same keybindings as + our editor of\nchoice. What if I told you there is an Emacsy browser in t + he making?\nWhat if you could "ace-jump" within a web page? What if you co + uld run\na REPL to extend your browser while browsing? What if you could r + ecord\nmacros?! The browser exists: its name is Nyxt!\n\nIn this talk I wi + ll share why it has great potential\, how you can\nintegrate it with Emacs + \, and how you can migrate your Emacs mastery to\nthe web!\n\nIf you were + wishing for a Lispy and Emacsy browser\, you should not\nmiss this talk!\n + \nYou can learn more about this at: <https://github.com/ag91/emacs-with-ny + xt>\n\n\n\n# Outline\n\n- 5-10 minutes: quick demo of running Nyxt from + Emacs and a little explanation of the code necessary for integration +END:VEVENT +BEGIN:VEVENT +SUMMARY:On the design of text editors +LOCATION:https://emacsconf.org/ +UID:86d4470a-8d19-7bd4-0c53-6aba1b49baef +URL:https://emacsconf.org/2021/talks/design +DTSTART;TZID=America/Toronto:20211127T155900 +DTEND;TZID=America/Toronto:20211127T160900 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/design\n# On the design of text editors\nNicolas P. Ro + ugier\n\nText editors are written by and for developers. They come\nwith + a large set of default and implicit choices in terms of layout\,\ntypograp + hy\, colorization and interaction that hardly change from one\neditor to t + he other. It is not clear if these implicit choices derive\nfrom the ignor + ance of alternatives or if they derive from developers'\nhabits\, reproduc + ing what they are used to. Durint this talk\, I will\ncharacterize these i + mplicit choices and illustrate what are some\nalternatives using GNU Emacs + .\n\n\n\n# Outline\n\n\n- 10 minutes alternative\n\nMostly a live demo o + f my environment with pointers to the different\npackages +END:VEVENT +BEGIN:VEVENT +SUMMARY:How Emacs made me appreciate software freedom +LOCATION:https://emacsconf.org/ +UID:48a8580f-52ce-cc84-6a23-1eddf720ae02 +URL:https://emacsconf.org/2021/talks/freedom +DTSTART;TZID=America/Toronto:20211127T161300 +DTEND;TZID=America/Toronto:20211127T165300 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/freedom\n# How Emacs made me appreciate software freed + om\nProtesilaos Stavrou\n\nThe theme will be "how Emacs empowered my softw + are freedom".\nI will outline the key moments in my transition to a GNU/Li + nux operating\nsystem and mark those which eventually contributed towards + me becoming\nan Emacs user\, maintainer of a—\;dare I say—\;po + pular package\, and\ncontributor to upstream Emacs (among others). By all + uding to personal\nexperiences\, I will draw generalisable insights and co + nnect them to what\nI believe are irreducible qualities of Emacs qua softw + are and Emacs as a\ncommunity of like-minded people. The talk will be the + oretical in\nnature: there won't be any code-related demonstration nor tec + hnical\nreferences that only people with a background in computer science + would\nlikely recognise. Personal anecdotes shall be tangential to the po + int\nand considered as ancillary to the thesis of what Emacs represents fr + om\nthe standpoint of software freedom and user empowerment. The\npresent + ation is intended for a general audience that is interested in\nGNU softwa + re in general and Emacs in particular. My formal educational\nbackground + as a social scientist (i.e. not a programmer) and later as a\nphilosopher + informs my approach to this topic.\n\nThe presentation shall be 40 minutes + long. Its text will be in essay\nform and shall be supplied as complemen + tary material to the video. The\nnotation will be in Org mode. I cannot + provide an outline in advance\,\nas it will most likely not be consistent + with the actual presentation.\nIf\, however\, this is absolutely required + for administrative purposes I\nshall furnish one regardless with the provi + so that I am in no way bound\nby it and thus reserve the right to modify i + t ahead of the main event. +END:VEVENT +BEGIN:VEVENT +SUMMARY:Closing remarks day 1 +LOCATION:https://emacsconf.org/ +UID:5287b003-f368-36c4-4f9b-8135734cad39 +URL:https://emacsconf.org/2021/talks/day1-close +DTSTART;TZID=America/Toronto:20211127T165300 +DTEND;TZID=America/Toronto:20211127T165800 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/day1-close\n# Closing remarks day 1 +END:VEVENT +BEGIN:VEVENT +SUMMARY:Opening remarks day 2 +LOCATION:https://emacsconf.org/ +UID:d877a57a-14cf-a194-99c3-a344ecb24acc +URL:https://emacsconf.org/2021/talks/day2-open +DTSTART;TZID=America/Toronto:20211128T090000 +DTEND;TZID=America/Toronto:20211128T090500 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/day2-open\n# Opening remarks day 2 +END:VEVENT +BEGIN:VEVENT +SUMMARY:How to write faster Emacs Lisp +LOCATION:https://emacsconf.org/ +UID:35d1d9e4-dfdf-f254-6aab-7a466fbfaf09 +URL:https://emacsconf.org/2021/talks/faster +DTSTART;TZID=America/Toronto:20211128T090500 +DTEND;TZID=America/Toronto:20211128T092500 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/faster\n# How to write faster Emacs Lisp\nDmitry Gutov + \n\n- Before optimizing\, benchmark first.\n- Different benchmarking a + pproaches.\n- Live evaluation\, step-debugging\, measuring from a debugg + er breakpoint.\n- How to determine if a function is expensive. How to pi + ck one from\n competing alternatives (cl-lib\, seq\, dash\, lean core). + \n- Print-benchmarking.\n- Byte-compiled code can give a very differen + t picture\, changing where\n the bottleneck is. How to quickly load a b + yte-compiled version.\n- Steps taken to speed up the Xref package recent + ly. +END:VEVENT +BEGIN:VEVENT +SUMMARY:Tree-edit: Structural editing for Java\, Python\, C\, and beyond! +LOCATION:https://emacsconf.org/ +UID:599ef3fa-4c73-6c94-4953-75bbc7830681 +URL:https://emacsconf.org/2021/talks/structural +DTSTART;TZID=America/Toronto:20211128T093000 +DTEND;TZID=America/Toronto:20211128T094000 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/structural\n# Tree-edit: Structural editing for Java\, + Python\, C\, and beyond!\nEthan Leba\n\nIn this talk\, I'll discuss a vis + ion for how writing code could be\, where the\nediting operations map dire + ctly to the primitives of the language itself -- and\nmy humble attempt of + implementing this vision. _tree-edit_ seeks to provides a\nstructural edi + ting plugin supporting conceivably any language with a tree-sitter\nparser + .\n\n**Structural editing does not have to be relegated to lisps or niche + DSLs.**\n\nI liken the state of code editing today to writing assembly. Th + e reason why\npeople like Python more than assembly is that for most purpo + ses\, the building\nblocks of the language are mismatched with our thought + process. We don't think\nin terms of registers and addresses\, we think i + n terms of variables\, functions\,\netc. So when we write and edit code\, + why do we edit in terms of deleting\,\ninserting\, replacing characters &# + x2013\; not wrapping\, inserting\, raising\,\ndeleting expressions and sta + tements?\n\nI'll also discuss the implementation of tree-edit\, which uses + a novel\ncombination of the fantastic\n[tree-sitter](https://github.com/e + macs-tree-sitter/elisp-tree-sitter) parser\nwith an embedded logic program + ming DSL ([miniKanren](http://minikanren.org/)\,\nusing elisp port [reazon + ](https://github.com/nickdrozd/reazon)) to power it's\nsyntax tree generat + ion.\n\nCheck out the GitHub repo [here](https://github.com/ethan-leba/tre + e-edit)!\n\n# Outline\n\n- Discuss motivation ( + Why should I care?)\n- Demonstrate tree-edit (Live + -coding with tree-edit)\n- Demonstrate tree-edit syntax tree generator ( + Elevator pitch on miniKanren) +END:VEVENT +BEGIN:VEVENT +SUMMARY:Self-Describing Smart DSL's: The Next Magits +LOCATION:https://emacsconf.org/ +UID:29d45a6f-9425-f5a4-bd23-297292e4ab7a +URL:https://emacsconf.org/2021/talks/dsl +DTSTART;TZID=America/Toronto:20211128T094300 +DTEND;TZID=America/Toronto:20211128T100300 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/dsl\n# Self-Describing Smart DSL's: The Next Magits\nP + sionic\n\nWhen we begin programming\, the promise is to automate away repe + titive\ntasks in life. As those program's capability grows\, we begin to + need\nconfiguration UI's. We can start with a CLI\, but as any CLI grows\ + , we\nrun into the following issues:\n\n- As options pile up\, the intui + tion of simplicity is lost in helps and\nmanpages\n\n- Stateless operati + on has no idea what to do next and loses terseness\n- Frequent dispatch of + commands to interrogate state required for the\noperator to decide what a + ction to perform\n\n- Composition compounds with all of these issues\n\n + Magit has the UI trifecta of being terse\, intuitive\, and intelligent.\nM + agit's UI input library\, Transient\, is a standalone package for\ndevelop + ing more killer UI's\, and not just for CLI applications\, but\nalso for s + erver applications\, Emacs applications\, and Emacs itself.\n\nWhile Trans + ient's potential is to create the most highly productive\nUI's short of th + ought control\, going beyond simple command dispatchers\nrequires a deeper + dive. When we think like constructing a DSL for the\ntask and using tran + sient to input that DSL\, we get an intelligent\,\nself-describing modal p + rogramming system.\n\n\n# Outline\n\n- Updates to Transient documentation + and demos of API examples\n- Wrapping a custom CLI tool in Transient +END:VEVENT +BEGIN:VEVENT +SUMMARY:"Yak-shaving to a UI framework" (/"Help! I accidentally yak-shaved + my way to writing a UI framework because overlays were slow") +LOCATION:https://emacsconf.org/ +UID:8f62e571-91da-bd14-e7c3-b445c7b19d23 +URL:https://emacsconf.org/2021/talks/ui +DTSTART;TZID=America/Toronto:20211128T100600 +DTEND;TZID=America/Toronto:20211128T101600 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/ui\n# "Yak-shaving to a UI framework" (/"Help! I accid + entally yak-shaved my way to writing a UI framework because overlays were + slow")\nErik Anderson\n\nTui.el is a textual User Interface (UI) framework + for Emacs Lisp\nmodeled after the popular JavaScript 'React' framework. + This package\nimplements React Component API's with the goal of simplifyin + g\ndevelopment of interactive UI's for all Emacs users- regardless of\nthe + ir prior experience with React or web programming. Components\nprovide a + useful functional unit for constructing complex interfaces\ndeclaratively + and also eliminate much of the burden associated with\nupdating textual co + ntent as application state changes. This talk will\ncover use of the tui. + el API and its operation in a textual environment\nby implementing some ba + sic UI's.\n\n\n\n# Outline\n\n- 5-10 minutes:\n - Problem space: UI + implementation complexity.\n - API introduction: Displaying content\ + , Components.\n - Visual taste of dashboards and applications built w + ith tui. +END:VEVENT +BEGIN:VEVENT +SUMMARY:Extending Emacs in Rust with Dynamic Modules +LOCATION:https://emacsconf.org/ +UID:b073d391-6c37-6bf4-7afb-47edc79631a9 +URL:https://emacsconf.org/2021/talks/rust +DTSTART;TZID=America/Toronto:20211128T101900 +DTEND;TZID=America/Toronto:20211128T103900 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/rust\n# Extending Emacs in Rust with Dynamic Modules\n + Tuấn-Anh Nguyễn\n\nDynamic module support has been available since Emacs 2 + 5. It can be\nused to extend Emacs with native libraries\, for performance + \,\nOS-specific features\, or other functionalities that would take a lot\ + nof time to re-implement in Lisp. The officially supported language is\nC\ + , which is tedious and error-prone to use. This talk discusses a\n**safe** + alternative that is also a lot **more convenient**: writing these\ndynami + c modules in Rust.\n\n\n\n# Outline\n\n- Walking through creating **a sim + ple dynamic module** in\n Rust\, including setting up CI.\n- Going thr + ough and explaining the **available APIs**. +END:VEVENT +BEGIN:VEVENT +SUMMARY:Emacs Application Framework: A 2021 Update +LOCATION:https://emacsconf.org/ +UID:e7981936-6d72-93d4-8783-5ac64a0ae5bb +URL:https://emacsconf.org/2021/talks/eaf +DTSTART;TZID=America/Toronto:20211128T104400 +DTEND;TZID=America/Toronto:20211128T105400 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/eaf\n# Emacs Application Framework: A 2021 Update\nMat + thew Zeng\n\nEmacs Application Framework (EAF) is a customizable and exten + sible GUI\napplication framework that extends Emacs graphical capabilities + using\nPyQt5. There are many new but important updates since EmacsConf202 + 0\nlast year\, this talk will briefly go over them.\n\n\n\n# Outline\n\n- + 5-10 minutes: (brief description/outline) +END:VEVENT +BEGIN:VEVENT +SUMMARY:Extending the "model" of Emacs to other applications +LOCATION:https://emacsconf.org/ +UID:5e1baaaf-56a3-b5b4-31cb-5437cf465cf9 +URL:https://emacsconf.org/2021/talks/model +DTSTART;TZID=America/Toronto:20211128T105800 +DTEND;TZID=America/Toronto:20211128T110800 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/model\n# Extending the "model" of Emacs to other appli + cations\nLaszlo Krajnikovszkij\n\nEmacs is a great operating environment i + n a sense that it provides consistency\nacross different tools and applica + tions within the Emacs ecosystem\, as well as\nexternal apps that can be i + ntegrated into it. It is also the most truly\nmalleable environment\, each + element of which can be adjusted or extended\,\ntherefore providing the u + ser with more power and freedom in personal computing.\nEmacs definitely c + an be considered one of greatest software products in\nexistence.\n\nAs a + non-programmer\, having had the chance to stumble upon Emacs a couple of\n + years ago\, the only regret to have is that it didn't happen earlier. The + definite\nkiller feature of Emacs - Org-mode\, is what draws many of the l + ess technical\nfolks to join the party and gradually start to use Emacs fo + r writing documents\,\nwhether personal or work related\, manage tasks\, e + mails and potentially everything\nelse. The learning curve and difference + in approach\, however\, leaves some\npotential users too scared of the arc + ane interface even with all it's quirks and\nfeatures because it requires + at least some technical skills to understand and\nuse properly\, and does + not have an easy way to connect with external tools that\nmost people are + forced to use for work.\n\nThis talk proposes some ideas about how the mod + el of Emacs\, it's focus on\nconsistency\, extensibility\, as well as it's + powerful interaction model can be\ncarried over to make modern interfaces + \, whether desktop or web applications\,\nthat would be designed with a go + al of reflecting the spirit of Emacs in terms of\nthe aforementioned featu + res it possesses\, and therefore enhance the capabilities\nof the Emacs\, + while at the same time utilizing it as a backend for\ntext-processing and + editing to a large extent. It would be really great to have\na personal we + b-interface for using modern task management tools\, chats\, emails\nand s + uch\, but from a UI defined by the user. The goal is to use it on a deskto + p\nor mobile\, locally or self-hosted on a server\, with support for touch + and\ngesture-based workflows\, while preserving the Emacs philosophy and + allowing to\nseamlessly switch between Emacs and its web extension\n\nThe + proposed solution is to integrate more of the modern tools with Emacs\,\nu + tilize Org-mode as a way to define application-specific parameters for the + se\ntools through Org properties\, and then utilize these parameters for m + aking a\nmodern local frontend that would enhance Emacs UI while allowing + to use external\ntools in a more personal and freedom respecting way (maki + ng the originals\nobsolete over time). The talk serves the purpose of invi + ting community members to\na discussion about how Emacs can become more mo + dern\, more approachable by people\nwho don't possess the neccessarry tech + nical skills to adjust it themselves\, but\nare keen to learn it\, and pot + entially how to attract more users to greater\nproductivity\, computer lit + eracy and the ideas of free software.\n\n\n\n# Outline\n\n- 5-10 minutes + \n - Introduction\n - Issues with most modern tools for work\n + - Issues with Emacs as a tool for work\n - In search for a hybrid + approach\n - User controlled web-apps\n - Opinions encouraged\n + - Contacts +END:VEVENT +BEGIN:VEVENT +SUMMARY:Don't write that package! or: How I learned to stop worrying and lo + ve emacs-devel +LOCATION:https://emacsconf.org/ +UID:4cd6de26-cf48-95c4-9d3b-28895a43ec53 +URL:https://emacsconf.org/2021/talks/devel +DTSTART;TZID=America/Toronto:20211128T111100 +DTEND;TZID=America/Toronto:20211128T113100 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/devel\n# Don't write that package! or: How I learned t + o stop worrying and love emacs-devel\nStefan Kangas\n\nWe need a successfu + l Emacs on this planet. This means that we need an\nexcellent out-of-the- + box experience -- one that just works\, but that you\ncan still hack and c + ustomize. There is so much great experimentation\nand work going on out t + here in the wider Emacs community\, but we would\nbe even better off if mo + re of that could go into Emacs itself.\n\nEmacs' greatest strength is unfo + rtunately sometimes also its greatest\nweakness: it is *too* hackable.\n\n + On occasion\, people out there add stuff to their Init file to fix this\no + r that annoyance\, or even bug. The more ambitious might go on to\npackag + e up such fixes: "Hey\, 'foo-mode' doesn't have support for\n'bookmark-set + '\, let's write a package!" I am here to suggest that you\nshould not do + that.\n\nYou should submit a patch to Emacs! Maybe more people have that + same\nproblem or annoyance\, and would benefit from your solution?\n\nIt i + s sometimes perceived as hard to contribute to Emacs core. I want\nto enc + ourage more people to get involved\, and show that the barrier to\nentry i + s really not that high. If I can do it\, you can do it too!\n\nSo should + you really write that package\, or should you stop worrying and\nlearn to + love emacs-devel? Listen to my talk to find out more! +END:VEVENT +BEGIN:VEVENT +SUMMARY:Turbo Bindat +LOCATION:https://emacsconf.org/ +UID:49a35f05-b71f-1d14-2343-a6638bec0d08 +URL:https://emacsconf.org/2021/talks/bindat +DTSTART;TZID=America/Toronto:20211128T113600 +DTEND;TZID=America/Toronto:20211128T115600 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/bindat\n# Turbo Bindat\nStefan Monnier\n\n\n# Table of + Contents\n\n\n\nBindat is an ELisp library to help manipulate binary data + . This is a\nniche library that is used by packages such as Websocket\, EM + MS\, and\ncpio-mode. Its implementation was repeatedly caught harassing ha + pless\nkitten while at the same time providing poor service slowly. For\nE + macs-28\, Bindat was rewritten so as to make it more efficient and\nflexib + le while respecting the kitten. In this presentation I intent to\nshow how + we saved those. Not recommended for birds.\n\n- ~20 minutes:\n 5 min + : Intro and presentation of Bindat\n 5 min: Showcase some of its proble + ms\n 5 min: Present the new design\n 5 min: Examples of what can be + done with it +END:VEVENT +BEGIN:VEVENT +SUMMARY:Emacs Lisp native compiler\, current status and future developments +LOCATION:https://emacsconf.org/ +UID:1ddbe380-b4f3-2b84-3cc3-9e799536db8e +URL:https://emacsconf.org/2021/talks/native +DTSTART;TZID=America/Toronto:20211128T124000 +DTEND;TZID=America/Toronto:20211128T132000 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/native\n# Emacs Lisp native compiler\, current status + and future developments\nAndrea Corallo\n\nEmacs Lisp (Elisp) is the Lisp + dialect used by the Emacs text editor\nfamily. GNU Emacs is traditionally + capable of executing Elisp code\neither interpreted or byte-interpreted a + fter it has been compiled to\nbyte-code.\n\nIn this talk I'll discuss the + Emacs Lisp native compiler. This feature\nrecently merged into the main E + macs development line allow for\nautomatically compiling and executing Eli + sp as native code.\n\nDuring the presentation I'll touch on:\n\n- design + goals\n- compiler and runtime design and implementation\n- performanc + e implications\n- upstream process\n- area of improvements and future + developments\n\nFormat: 40 minutes +END:VEVENT +BEGIN:VEVENT +SUMMARY:Old McCarthy Had a Form +LOCATION:https://emacsconf.org/ +UID:5947c3e9-93c1-1014-7ffb-aa0e0097e3e4 +URL:https://emacsconf.org/2021/talks/form +DTSTART;TZID=America/Toronto:20211128T132700 +DTEND;TZID=America/Toronto:20211128T133700 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/form\n# Old McCarthy Had a Form\nIan Eure\n\nMost prac + tical languages are multi-paradigm\, offering several\nabstractions for th + e programmer. But did you know that Emacs Lisp\ncomes with a powerful sys + tem for object-oriented programming? Join me\nfor a discussion of EIEIO\, + and learn how it can help you write more\nmodular\, flexible Emacs Lisp.\n + \n\n\n# Outline\n\n- 5-10 minutes: (brief description/outline)\n - + What is CLOS/EIEIO?\n - Why would I want OOP in Emacs Lisp?\n - + How is the CLOS object model different from C++/Java/.NET?\n - Furthe + r reading +END:VEVENT +BEGIN:VEVENT +SUMMARY:Test blocks +LOCATION:https://emacsconf.org/ +UID:5e162d34-ea19-8544-b693-dd6da0e885cd +URL:https://emacsconf.org/2021/talks/test +DTSTART;TZID=America/Toronto:20211128T134100 +DTEND;TZID=America/Toronto:20211128T134600 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/test\n# Test blocks\nEduardo Ochs\n\nIn this presentat + ion I will show an idea that feels completely obvious\nonce we see it\, bu + t that only occured to me after after using Emacs\nand eev as my main inte + rface to the computer for more than 20 years.\nTake any interpreted langua + ge that supports multi-line comments\, and\nwhose interpreter can be run i + n an Emacs buffer - for example Lua\,\nHaskell\, Python\, or Julia\; let's + say just "Lua" from here on for\nsimplicity. So: suppose that we have a L + ua script that we wrote\, that\nis called "foo.lua" and that defines lots + of functions and defines the\nclasses Bar and Bletch. We can put after the + definition of the class\nBar a multi-line comment that contains an eepitc + h block that when\nexecuted starts a Lua interpreter\, loads the script fo + o.lua (by\nrunning 'dofile "foo.lua"')\, and then has several tests for th + at class\nand its methods\; and we can put another block with tests like t + hat\nafter the class Bletch\, and other blocks after some functions. Eepit + ch\nallows sending these tests line by line to the Lua interpreter by\ntyp + ing <f8\\> on each line that we want to send\, and this lets us create\nte + sts that are very easy to understand even without writing comments\;\nthis + gives us a very quick way to document code by executable tests\,\nthat is + super-great for experimental code that is still going to\nchange a lot be + fore running the risk of being read by other people.\n\nThese multi-line c + omments with eepitch blocks that run an interpreter\nand make it load the + current file are called "test blocks". The\ncommand \\`M-x eeit' inserts a + test block at point\, using the major mode\nto decide the right syntax to + use for the multi-line comments and for\nthe "dofile". We can configure t + he syntax of the test blocks for the\ncurrent major mode by running \\`M-x + find-eeit-links'\; this can also be\nused to add support for test blocks + to more languages (or\, more\nprecisely: to more major modes).\n\nEduardo + Ochs <http://angg.twu.net/emacsconf2021.html> +END:VEVENT +BEGIN:VEVENT +SUMMARY:Let's talk about bug trackers +LOCATION:https://emacsconf.org/ +UID:51023225-018f-cf24-9d73-3c267907c13e +URL:https://emacsconf.org/2021/talks/bug +DTSTART;TZID=America/Toronto:20211128T134900 +DTEND;TZID=America/Toronto:20211128T140900 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/bug\n# Let's talk about bug trackers\nBastien Guerry\n + \nFor 17 years\, the Org developers didn't use a bug tracker\,\nshamelessl + y failing the Joel Spolsky test. Why was it "good enough"?\nWhy was it wr + ong? Why did we move to Woof!? Why Woof! is not a bug\ntracker?\n\n- 2 + 0 minutes +END:VEVENT +BEGIN:VEVENT +SUMMARY:Perso-Arabic Input Methods And Making More Emacs Apps BIDI Aware +LOCATION:https://emacsconf.org/ +UID:1407591a-29fd-3f64-1beb-01dea6e9d7d2 +URL:https://emacsconf.org/2021/talks/bidi +DTSTART;TZID=America/Toronto:20211128T141600 +DTEND;TZID=America/Toronto:20211128T143600 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/bidi\n# Perso-Arabic Input Methods And BIDI Aware Apps + \nMohsen BANAN -- محسن بنان\n\nEmacs is a multilingual user environment. + A true multilingual editor must\nsupport bidirectionality and shaping of c + haracters. Perso-Arabic scripts require\nboth of these features.\n\nStarti + ng with Emacs 24\, full native bidi\n(bidirectional) support became availa + ble. For\nmany years prior to that Unicode support was\navailable and by + around year 2000\, reasonable\nopen-source shaping libraries were also ava + ilable.\n\nWith these in place at around 2012\, I developed\ntwo Persian i + nput methods for emacs. These input\nmethods or variations of them can als + o be used for\nArabic and other Perso-Arabic scripts.\n\nWith all of these + in place\, Emacs has now become\nthe ne plus ultra Libre-Halaal and Convi + vial usage\nenvironment for Perso-Arabic users.\n\nSince emacs comes loade + d with everything (Gnus\nfor email\, Bbdb for address books\, XeLaTeX mode + s\nfor typesetting\, org-mode for organization\, spell\ncheckers\, complet + ion systems\, calendar\, etc.)\, all basic\ncomputing and communication ne + eds of Perso-Arabic\nusers can be addressed in one place and\ncohesively.\ + n\nIn this talk I will demonstrate what a wonderful\nenvironment that can + be.\n\nMy talk will be in two parts.\n\nIn Part 1\, I cover Persian input + methods. With an emphasis on "Banan\nMulti-Character (Reverse) Translitera + tion Persian Input Method". The\nsoftware is part of base emacs distributi + on. Full documentation is available\nat:\n\n Persian Input Metho + ds\n For Emacs And More Broadly Speaking\n شیوههایِ د + رج به فارسی\n <http://mohsen.1.banan.byname.net/PLPC/120036>\n\ + nIn Part 2\, I'll demonstrate that Emacs is far more than an editor. Emacs + can be\na complete Perso-Arabic usage environment. I will also cover the + ramifications\nof bidi on existing emacs applications\, including:\n\n- + Spell Checking\, Dictionaries And Completion Frameworks:\n - Existing e + macs facilities can be extended to cover Perso-Arabic.\n\n- Gnus:\n - + Perso-Arabic rich email sending in HTML.\n - Ramifications of bidi + on from:\, to: and subject: lines.\n\n- Bbdb: Ramifications of bidi on + display and completion.\n\n- Calendar:\n - Ramifications of bidi on + display.\n - Use of Persian text for Persian (solar) calendar.\n + - Use of Arabic text for Muslem (lunar) calendar.\n\n- AUCTeX: Persia + n typesetting with XeLaTeX\n - Option of having right-to-left Perso- + Arabic aliases for all latex commands.\n\nReferences:\n\n - Persian Inp + ut Methods:\n <http://mohsen.1.banan.byname.net/PLPC/120036>\n < + http://www.persoarabic.org/PLPC/120036> -- Persian Input Methods Access Pa + ge\n <http://www.persoarabic.org> -- Various Perso-Arabic resources\n + <http://www.freeprotocols.org/Repub/fpf-isiri-6219> -- Re-Publicatio + n Of\n Persian Information Interchange and Display Mechanism\, us + ing Unicode\n <https://github.com/bx-blee/persian-input-method> -- Gi + t repo for\n persian.el -- Quail package for inputting Persian/Fa + rsi keyboards\n\n - BIDI:\n <http://www.unicode.org/reports/tr9/> + -- Annex #9 of the Unicode standard\n <https://www.gnu.org/software/e + macs/manual/html_node/elisp/Bidirectional-Display.html>\n Emacs B + idirectional Display\n\n - Blee and Persian-Blee:\n <https://githu + b.com/bx-blee/env2> -- Very messy work-in-progress git repo for:\n + Blee: By* Libre-Halaal Emacs Environment\n <http://www.by-star.net> + -- A Moral Alternative To The Proprietary American Digital Ecosystem\n + <http://mohsen.1.banan.byname.net/PLPC/120033> --\n Nature o + f Polyexistentials:\n Basis for Abolishment of The Western Inte + llectual Property Rights Regime\n <http://mohsen.1.banan.byname.net/P + LPC/120039> -- Defining The Libre-Halaal Label\n\n - Mohsen BANAN -- مح + سن بنان:\n <http://mohsen.1.banan.byname.net/> -- Globish\n <htt + p://mohsen.1.banan.byname.net/persian> -- Farsi\n <http://mohsen.1.ba + nan.byname.net/french> -- French +END:VEVENT +BEGIN:VEVENT +SUMMARY:Moldable Emacs\, a step towards sustainable software +LOCATION:https://emacsconf.org/ +UID:3364aedb-a496-5c64-5383-b0080afa6d7b +URL:https://emacsconf.org/2021/talks/mold +DTSTART;TZID=America/Toronto:20211128T144100 +DTEND;TZID=America/Toronto:20211128T145100 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/mold\n# Moldable Emacs\, a step towards sustainable so + ftware\nAndrea\n\nWe could learn about things better. Mountains of knowled + ge hide in\nplaces we cannot access or use. The more we write down\, the m + ore it\ntakes to find and understand things we find useful.\n\nKnowledge ( + web\, software\, books) keeps growing faster and faster! This\nis not sust + ainable: we cannot keep up with it! What if we repeat the\nerror of somebo + dy else\, only because it would take too much reading to\nknow? What if th + at knowledge is in some code we work with everyday?\n\nMoldable developmen + t is a paradigm shift that attempts to solve this\nproblem. In a gist\, th + e tool you use should let you create special tools\nto learn smartly from + what you have already.\n\nSince we use Emacs\, let's make our great editor + moldable!\n\nThis talk shows my progress in making Emacs closer to such a + tool. We\nare going to see how we can mold structured (and maybe even nat + ural)\ntext to learn better\, how we can inject notes in our projects and + how\nself documenting this tool is!\n\nI aim to inspire you to find a quic + ker way to learn from our digital\nworld!\n\nYou can learn more about this + at: <https://github.com/ag91/moldable-emacs>\n\n\n\n# Outline\n\n- 5-10 + minutes: quick demo of moldable-emacs +END:VEVENT +BEGIN:VEVENT +SUMMARY:CLEDE the Common Lisp Emacs Development Environment. +LOCATION:https://emacsconf.org/ +UID:daf3570b-3df3-9db4-a1f3-ce98d9863717 +URL:https://emacsconf.org/2021/talks/clede +DTSTART;TZID=America/Toronto:20211128T145500 +DTEND;TZID=America/Toronto:20211128T151500 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/clede\n# CLEDE the Common Lisp Emacs Development Envir + onment.\nFermin MF\n\nI've been developing a package that helps with the d + evelopment of\nCommon Lisp's software\,\nit's uses the internal semantic f + ramework\, it has a custom reader\nand integration for\ncommon Emacs packa + ges (like Sly and the internal inferior-lisp-mode).\n\nThe idea is to supp + ly features that other language with and static\nanalyzer have\,\nlike ref + actoring and code generation.\n\nFor more details: <https://gitlab.com/sas + anidas/clede>\n\n- 20 minutes:\n It seems like not too much people kn + ows about semantic\, so I can\n summarize some of it in 10 minutes\n + and then An explanation on how to use the package\, how to extend it\n + and the future of it. +END:VEVENT +BEGIN:VEVENT +SUMMARY:Imaginary Programming +LOCATION:https://emacsconf.org/ +UID:f03ae971-4d2b-ccc4-2643-4ae2391ce1ab +URL:https://emacsconf.org/2021/talks/imaginary +DTSTART;TZID=America/Toronto:20211128T152200 +DTEND;TZID=America/Toronto:20211128T153200 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/imaginary\n# Imaginary Programming\nShane Mulligan\n\n + Imaginary Programming (IP) is both methodology and paradigm. It is an\next + ension of literate programming and a way of creating software without\nthe + use of imperative\, functional or even declarative code. Yet IP employs\n + all disciplines to achieve the miraculous. The only contingency is on one\ + nor more language models\, known as foundation models. The real value of I + P\nis not found by abandoning sound logic altogether\, but in weaving the + real\nwith the imaginary. The future of imaginary programming is one in wh + ich\nalmost all of computing is inferred. I have built a suite of tools ba + sed on\nemacs for interfacing real programming languages with imaginary on + es\; all\nof this in order to demonstrate what I mean\; a ‘complex’ termin + al that lets\nyou imagine what happens no matter how nested you are within + interpreters\,\nan example-oriented language\, a file format that encodes + the provenance of\ntext and a library for imaginary functional programmin + g primitives called\niLambda. It is important to recognise IP because\, fo + r lack of a better\nterm\, it has far-reaching implications for intellectu + al property and the\nGPL. Please keep an open mind.\n\n\n\n# Outline\n\n- + 5-10 minutes:\n- a 5 minute introduction to imaginary programming\, fo + llowed by\n - a demonstration of iLambda.\n - iλ\, a family + of imaginary programming libraries\n <https://mullikine.github.io/p + osts/designing-an-imaginary-programming-ip-library-for-emacs/>\n\n\n\nIRC + libertyprime at #emacs on libera\n\nShane Mulligan +END:VEVENT +BEGIN:VEVENT +SUMMARY:How to build an Emacs +LOCATION:https://emacsconf.org/ +UID:27595637-b6b9-f764-805b-ff1b7f009006 +URL:https://emacsconf.org/2021/talks/build +DTSTART;TZID=America/Toronto:20211128T153600 +DTEND;TZID=America/Toronto:20211128T155600 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/build\n# How to build an Emacs\nFermin MF\n\nThis is a + deep dive in the Emacs philosophical and technical\naspect on what makes + our beloved GNU Emacs\nwhat it it. It's also a talk about the early LISP m + achines and\nfascinating were those days of experimentation and engineerin + g.\n\nIt will continue with the Emacs benefits/trade-offs from an\nuser/de + veloper stand points\, what things can be improved and\nwhat can be an hyp + othetical path on how to build a software that\ncan also be called Emacs.\ + n\nAs a last part\, I'll talk about CEDAR\, an Emacs that I've been\ndevel + oping in Common Lisp\, the project goals\nand the challenges.\n\nFor more + details about CEDAR: <https://gitlab.com/sasanidas/cedar>\n\n- 40 minute + s:\n A dive into the Emacs/Lisp machines history\, what makes GNU Emacs + \n an Emacs and how you can build an Emacs. +END:VEVENT +BEGIN:VEVENT +SUMMARY:M-x Forever: Why Emacs will outlast text editor trends +LOCATION:https://emacsconf.org/ +UID:80d1ad02-5fe4-03b4-c573-17ea6cdb61aa +URL:https://emacsconf.org/2021/talks/forever +DTSTART;TZID=America/Toronto:20211128T160300 +DTEND;TZID=America/Toronto:20211128T164300 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/forever\n# M-x Forever: Why Emacs will outlast text ed + itor trends\nDavid Wilson\n\nThe computer software industry has seen many + "popular" text editors come\nand go\, often due to the mercurial fashions + of software development. In\nthis talk\, we'll take a look at why popular + editors fade and the\nspecific aspects of Emacs that will ensure it remai + ns relevant\nregardless of mainstream popularity.\n\n\n\n# Outline\n\n- Di + scuss the core thesis\, the features that make Emacs\n desirable for long + -term use (extensibility\, day-to-day 'life' features)\n\n- Include more b + ackground on the text editor landscape and\n how the scope of various edi + tors is more narrow and doesn't compare to Emacs.\n\n- Talk about specific + instances where editors were popular\, fell out\n of popularity\, and wh + y (due to changing fashions\, not usually\n better features). +END:VEVENT +BEGIN:VEVENT +SUMMARY:Closing remarks day 2 +LOCATION:https://emacsconf.org/ +UID:828e7c62-8430-f1a4-431b-63c308d58688 +URL:https://emacsconf.org/2021/talks/day2-close +DTSTART;TZID=America/Toronto:20211128T165000 +DTEND;TZID=America/Toronto:20211128T170000 +DTSTAMP:20211104T092648 +DESCRIPTION: Times are approximate and will probably change.\nhttps://emacs + conf.org/2021/talks/day2-close\n# Closing remarks day 2 +END:VEVENT +END:VCALENDAR
\ No newline at end of file diff --git a/2021/info/adventure-nav.md b/2021/info/adventure-nav.md index e83ae6d4..13d1bf25 100644 --- a/2021/info/adventure-nav.md +++ b/2021/info/adventure-nav.md @@ -1,3 +1,3 @@ Back to the [[schedule]] Previous: <a href="/2021/talks/frownies">The True Frownies are the Friends We Made Along the Way: An Anecdote of Emacs's Malleability</a> -Next: <a href="/2021/talks/unix">"GNU's Not UNIX: Why Emacs Demonstrates The UNIX Philosophy Isn't Always The Only Answer"</a> +Next: <a href="/2021/talks/unix">GNU's Not UNIX: Why Emacs Demonstrates The UNIX Philosophy Isn't Always The Only Answer</a> diff --git a/2021/info/dsl-nav.md b/2021/info/dsl-nav.md index a29effef..df0175ce 100644 --- a/2021/info/dsl-nav.md +++ b/2021/info/dsl-nav.md @@ -1,3 +1,3 @@ Back to the [[schedule]] -Previous: <a href="/2021/talks/structural">Why structural editing is the future of code editing, and a novel approach for editing everyday languages</a> +Previous: <a href="/2021/talks/structural">Tree-edit: Structural editing for Java, Python, C, and beyond!</a> Next: <a href="/2021/talks/ui">"Yak-shaving to a UI framework" (/"Help! I accidentally yak-shaved my way to writing a UI framework because overlays were slow")</a> diff --git a/2021/info/faster-nav.md b/2021/info/faster-nav.md index 21324165..460ebc9c 100644 --- a/2021/info/faster-nav.md +++ b/2021/info/faster-nav.md @@ -1,3 +1,3 @@ Back to the [[schedule]] Previous: <a href="/2021/talks/day2-open">Opening remarks day 2</a> -Next: <a href="/2021/talks/structural">Why structural editing is the future of code editing, and a novel approach for editing everyday languages</a> +Next: <a href="/2021/talks/structural">Tree-edit: Structural editing for Java, Python, C, and beyond!</a> diff --git a/2021/info/freedom-schedule.md b/2021/info/freedom-schedule.md index 9700ca40..09a66236 100644 --- a/2021/info/freedom-schedule.md +++ b/2021/info/freedom-schedule.md @@ -2,7 +2,7 @@ # Status -Waiting for speaker to send prerecorded video +Captions added to video # Schedule diff --git a/2021/info/mold-schedule.md b/2021/info/mold-schedule.md index 54a253ed..a01b5dbe 100644 --- a/2021/info/mold-schedule.md +++ b/2021/info/mold-schedule.md @@ -2,7 +2,7 @@ # Status -Waiting for speaker to send prerecorded video +Captions added to video # Schedule diff --git a/2021/info/native-schedule.md b/2021/info/native-schedule.md index a36fef40..00e0666e 100644 --- a/2021/info/native-schedule.md +++ b/2021/info/native-schedule.md @@ -6,7 +6,7 @@ Waiting for speaker to send prerecorded video # Schedule -Allocated 20 minutes +Allocated 40 minutes diff --git a/2021/info/news-schedule.md b/2021/info/news-schedule.md index ea2dd5a9..ce9cf23a 100644 --- a/2021/info/news-schedule.md +++ b/2021/info/news-schedule.md @@ -2,7 +2,7 @@ # Status -Waiting for speaker to send prerecorded video +Captions added to video # Schedule diff --git a/2021/info/nongnu-schedule.md b/2021/info/nongnu-schedule.md index 74e71a21..43e04a6e 100644 --- a/2021/info/nongnu-schedule.md +++ b/2021/info/nongnu-schedule.md @@ -2,11 +2,11 @@ # Status -Waiting for speaker to send prerecorded video +Captions added to video # Schedule -Allocated 10 minutes +Allocated 7 minutes diff --git a/2021/info/nyxt-schedule.md b/2021/info/nyxt-schedule.md index 644430df..692f0df4 100644 --- a/2021/info/nyxt-schedule.md +++ b/2021/info/nyxt-schedule.md @@ -2,7 +2,7 @@ # Status -Waiting for confirmation from the speaker(s) +Prerecorded video received, waiting for captions # Schedule diff --git a/2021/info/omegat-nav.md b/2021/info/omegat-nav.md index d021dacf..bbb1da5c 100644 --- a/2021/info/omegat-nav.md +++ b/2021/info/omegat-nav.md @@ -1,3 +1,3 @@ Back to the [[schedule]] -Previous: <a href="/2021/talks/unix">"GNU's Not UNIX: Why Emacs Demonstrates The UNIX Philosophy Isn't Always The Only Answer"</a> +Previous: <a href="/2021/talks/unix">GNU's Not UNIX: Why Emacs Demonstrates The UNIX Philosophy Isn't Always The Only Answer</a> Next: <a href="/2021/talks/nongnu">NonGNU ELPA Update</a> diff --git a/2021/info/org-outside-schedule.md b/2021/info/org-outside-schedule.md index 1ab76033..c938c65b 100644 --- a/2021/info/org-outside-schedule.md +++ b/2021/info/org-outside-schedule.md @@ -2,7 +2,7 @@ # Status -Waiting for confirmation from the speaker(s) +Captions added to video # Schedule diff --git a/2021/info/professional-schedule.md b/2021/info/professional-schedule.md index 3a7e5a61..63541012 100644 --- a/2021/info/professional-schedule.md +++ b/2021/info/professional-schedule.md @@ -2,11 +2,11 @@ # Status -Waiting for speaker to send prerecorded video +Prerecorded video received, waiting for captions # Schedule -Allocated 10 minutes +Allocated 11 minutes diff --git a/2021/info/tech-schedule.md b/2021/info/tech-schedule.md index 19304c4e..cd6293da 100644 --- a/2021/info/tech-schedule.md +++ b/2021/info/tech-schedule.md @@ -2,11 +2,11 @@ # Status -Waiting for speaker to send prerecorded video +Captions added to video # Schedule -Allocated 10 minutes +Allocated 11 minutes diff --git a/2021/info/telega-schedule.md b/2021/info/telega-schedule.md index e417ef4c..50737950 100644 --- a/2021/info/telega-schedule.md +++ b/2021/info/telega-schedule.md @@ -2,11 +2,11 @@ # Status -Waiting for speaker to send prerecorded video +Captions added to video # Schedule -Allocated 10 minutes +Allocated 8 minutes diff --git a/2021/meetings.org b/2021/meetings.org index e6588a0a..e33e8e38 100644 --- a/2021/meetings.org +++ b/2021/meetings.org @@ -18,7 +18,9 @@ - Tech - Figuring out a better streaming workflow (speakers & OBS) - CDN with Nate Sales: mplsCorwin, bandali - - Stand-by until late-April + - maybe also FTP upload for speakers + - Stand-by for now + - Separate from Fosshost - Documenting our infrastructure - bandali and gopar's podcast: bandali, gopar @@ -91,15 +93,330 @@ - It might be hard to jump from 2-day to full-week. - It’s hard to have people available across the entire period. - We should make it easier for other people to edit the conf.org for publishing the schedule; for 2021, sachac and zaeph were able to do it, but we should make it more our functions more robust. + - Add edit-in-place functionality to ikiwiki + - An alternative would be to enable push-via-https, but bandali isn’t enthused by it. - EmacsVerse - Vet Mailman and exim instance for usergroups: bandali + - Figure out the interactions between (potential) emacsverse.org and emacs.org + - It’s about control domains and sources of truth - Misc - Writing about Emacs: zaeph - mplsCorwin's livestreaming project, working on trimming - Diversity outreach: gopar, sachac, zaeph, mplsCorwin +* EmacsConf 2021: Long-running TODOs + +* November 6, 2021 +- Check-ins + - zaeph is dealing with TZ change + +- TODOs: + - Everyone: + - [X] Get working on contribute.md by Tue-Wed + - Non-exhaustive list of tasks to mention (relevant for this year): + 1. Editing captions or writing new ones + 2. Helping with tech-checks + 3. Looking at the schedule, and if there’s something they particularly like, they could run get ready for a prolonged Q&A session + - bandali: + - [X] ASAP: Give SSH access to sachac on ftp-upload@emacsconf.org + - Ping corwin to get another distro installed on vm02 (possibly Trisquel or Alpine) + - [X] Look into making TLS/SSL optional + - sachac: Right now, the configuration for the ftp server forces it. + - bandali is looking into FTP for resume, no worries about being able to see filenames (not allowed to download files) + - probably no risk from other people maliciously "resuming" other people's files + - ideas for the future: + - can have speaker accounts for FTP (... maybe if Amin gets the hang of automating e-mails =) ) + - region servers to upload to, maybe as part of CDN project + - TODO enable continuation for FTP + - Fosshost: Drop an application for another storage-server for the prerecs + - zaeph: + - [X] ASAP: Email designated volunteers + - Create BBB accounts for new tech-checkers + - Publicise contribute.md on r/emacs when it’s published + - Make a pinned comment on the program announcement asking for volunteers, linking to contribute.md, and maybe keeping it up to date by editing it to reflect current needs + - corwin: + - Record a 6-second video ad + - Go through the script together +- sachac: Status update: 9 prerecs received + - 7 talks captioned + - Emacs News Highlights + - NonGNU ELPA Update + - telega.el and the Emacs community on Telegram + - Creating technical API documentation and presentations using org-babel, restclient, and org-treeslide (thanks bhavin!) + - The use of Org mode syntax outside of GNU/Emacs - checked with speaker + - How Emacs made me appreciate software freedom + - Moldable Emacs, a step towards sustainable software - checked with speaker + - 2 more talks waiting for captions from bhavin: + - Using Org-Mode For Recording Continuous Professional Development + - Emacs with Nyxt: extend your editor with the power of a Lisp browser + - Compressed with q=56 script from last year, uploaded to front:/var/www/media.emacsconf.org/2021/protected , see private wiki for password + - Things to consider: + - Broadcast with open captions or direct people who need closed + captions to the wiki page? Spam #emacsconf-accessible with + caption text? + - Sample: https://emacsconf.org/2021/talks/news/ + - Compression okay? Do we need to dial it back? + - Plan for handling compression for the talks coming in this weekend; can we run it on the VM? + - Audio normalization? + - Low-res version? + - More proof-reading welcome + - Start thinking about workflow for publishing talks, maybe even concurrently with the stream + - No reason not to make them public right away, so if we want them to be available on something else in addition to emacsconf.org and Youtube (Toobnix?), we can plan ahead +- TODO bandali also, icecast fallback override possibility so that bandali might be + able to use ffmpeg to broadcast directly to icecast while handling + continuity? Does anyone want to experiment with that? +- does anyone want to write an ICS to Org thing that can handle + schedule updates, maybe taking advantage of icalendar? +- pronouns/website/sponsor info can probably be an e-mail to speakers +- e-mail to send on the deadline (tomorrow) + - reminder to send it + - let's use a carrot approach, not stick (10 talks have already been submitted, yay, and most of them have been captioned!); we're actually okay with dealing with prerecs or live on the day of the event + - nudge script submission esp. close to the deadline to help with captions +- publishing the schedule with the times, ICS; maybe Nov 14? + - probably can do even with the uncertainty +- 10 minutes hard to do live (or record); 15 min next time? +- maybe postpone letting people plan for live presentation until a little bit later +- future: shorter CFP, longer prep period + +#+begin_example +Hello, ____! + +,* TODO [#A] Send pre-recording to EmacsConf + +Lots of speakers have already submitted their talks for EmacsConf +2021, and we've even be able to caption them. Yay! Here are some of +the presentations that have already come in: + + - Emacs News Highlights + - NonGNU ELPA Update + - telega.el and the Emacs community on Telegram + - Creating technical API documentation and presentations using org-babel, restclient, and org-treeslide + - The use of Org mode syntax outside of GNU/Emacs + - How Emacs made me appreciate software freedom + - Moldable Emacs, a step towards sustainable software + +We're looking forward to getting your presentation. If you send it in +as soon as you can, we can add it to the queue for captioning. We'd +like to stream as many talks with captions to make things more +accessible, and the text makes it easier to search too. Also, sending +the prerecorded video will make the conference day less stressful for +everyone. =) If you need extra time to get your prerecorded video, no +worries, we'll figure it out somehow. Please try to do it as soon as +you can! + +,* TODO Send page information (name pronunciation, pronouns, homepage, contact, sponsor links) + +We'd also like to add some standard information to the talk +information page to make it easier for people to talk about your talk, +find more information, contact you, or support you. + +Name pronunciation: +Pronouns: +Homepage: +Preferred contact info: +Links for sponsoring/supporting (if any): + +For example, Sacha's is: + +Name pronunciation: SA-sha CHEW-ah +Pronouns: she/her +Homepage: https://sachachua.com +Preferred contact info: sacha@sachachua.com +Links for sponsoring/supporting (if any): + +,* TODO Plan tech check if you're doing live Q&A + +Also, if you are planning to do live Q&A and you've already done the +tech check at test.bigbluebutton.org, we can set up a tech check call +with an organizer or volunteer. Sometimes there are technical issues +with sharing desktops or hearing audio, so it's good to get it sorted +out as soon as possible. Please check _____ for some options for a +live tech check and reach out to someone who's available when you are. +We hope to get more volunteers for tech checks, so if you can't find +someone whose availability matches yours, please e-mail us at _____ +and we'll try to find something that works. + +,* Also, sneak preview of talks =) + +As a thank-you for working on a talk for EmacsConf, here's a sneak +preview of the talks that have been submitted so far. Please don't +share it widely. If you want to refer to other people's talks in +yours, it's a good time to check out related talks! + +(TODO - info not in here) + +Thank you so much! + +Amin +#+end_example + +--- +TODO Sneak preview e-mail for people who have already submitted + + +--- +- Also do we want to give speakers early access to each other's talks? + - OK, ask them not to share yet +- ffmpeg installed on FTP upload +- TODO bandali to check compressed video and see if we want to change the settings +- TODO: Sacha - Make Etherpad template for speakers? Actually, e-mail might be easier to copy and paste from + - Name pronunciation + - Pronouns + - Links + - Homepage, socials + - Sponsor +- TODO: Sacha - send bandali Bcc list for nudge e-mails +- How many people did we do live tech checks last year? +- zaeph will not be very available. +- TODO maybe seabass? zaeph will e-mail. +- publicize contribute page to the mailing list? and stress the need for tech checkers +- TODO sachac: add current captioning results +- Future: bake it into the submission process (when will be a good time over the next 1-2 months) +- If we don't have enough people to do the tech checks, Leo will step up and maybe do some kind of office hours thing +- Process: + 1. E-mail the volunteers + 2. Update the table on the page + 3. If anyone wants to get started now, you can e-mail us +- BBB slide presentation feature broken, may be related to LetsEncrypt, can't leave messages on the screen; probably won't need it for EmacsConf +- DECISION Yes, broadcast open captions; published videos can be CC +- TODO zaeph will come up with the MPV settings for displaying open captions +- EmacsConf: friendly and relaxed =) + +- Summary + - #A zaeph: Set up tech check information, e-mail volunteers + - #A zaeph: Finish draft of e-mail for tomorrow or the day after + - zaeph: Figure out mpv settings + - bandali: Check video settings, see if we need to tweak compression/audio + - sachac: Keep captioning + +* October 30, 2021 meeting + +- Check-ins + - sachac: + - Using Emacs itself to record her talk, and has even managed to get a spectrum analyser right into it! + - [[https://github.com/sachac/subed-waveform][sachac/subed-waveform: Minor mode for displaying the waveform for the current subtitle in an Emacs subed-mode buffer]] + - bandali: + - Busy with the emails and around GNU in general + - Almost finished with a paper building on parts of his MA dissertation + - Last week’s presentation went well despite some minor hiccups + - It was a *long* session, so a 5-min break can be glossed over + - zaeph: + - All is well! A lot of swimming and fun experimentations! + - corwin: + - Pretty rested! + - Lots of stuff brewing with Fosshost + +- FTP: + - sachac: Where can I find the recordings? + - If we get talks early, we might get started on the subtitling + - bandali: Tried to setup the 2nd upload server + - Couldn’t get it to work; the same configuration on front0 for testing was working, but not onl + - The FSF sysadmins gave us access to a session/server which we might use as replacement + - sachac: Where can we keep the talks on front0? + - Reasoning: + - Last year, one of the issue that th epeople who had missed a talk wished they could have watched it + - Whilst the prerec is playing on the stream, we could put in a public directory to be able to watch it + - It’d be amazing if we could get the recordings ASAP this year, since most of them will be prerecs + - People need to be uploading files to the very server that we will be storing them on. + - Discussion: + - bandali: The main VMs that we have (live0 and front0) are fairly small, 20-25GB each. What we’ve been doing for the past couple EmacsConf has been to upload to a server provided Computer Science of the University of Waterloo + - Options: + - Fosshost + - corwin: Disk-space comes super-cheap to Fosshost, which means that it might be a good option. + - Could become our primary source (vs. CS Club which we use currently) + - CS Club (University of Waterloo); we might not have it eternally + - At the moment, it is our primary source + - We can still use it as a mirror + - audio-video.gnu.org (FSF) + - yang’s 2 mirrors in Europe + - Other options that we might consider for other editions: + - Justification: + - corwin: The footprint of EmacsConf will always grow as long as we maintain older publications for posterity, even if the grow is fairly linear. + - Linode block storage + - 1$/month for 10 GB + - corwin’s favourite provider + - Meta: + - Having 3 ISP is better than having 2 + - From a growth perspective, it’s good to have some cash outlay to help people understand that we have a need for money + - This also appeared with the android-app + - Other considerations + - Using emacsconf.org for redirections + - bandali: Someone set up two mirrors for us in Europe; it’d be nice to have mirror-resolve/-rotator that we could put in front to do the redirecting + - sachac: That would put more sysad work on bandali, though + - How do we handle the private→public publishing of the recording? + 1. Upload all the files to the public server + 2. chmod o-r on all the talks + 3. When a talk goes live: chmod o+r + - Handling redirections à la CDN + - bandali: + - We might want to add A records pointing to all the servers that we’re using as mirrors (in a round-robin fashion) + - GNU might have solutions + +- Asking new domains to the FSF sysadmins, especially on .emacs.org + - Have we considered having a .gnu.org domain linking to emacs.org? + - conf.emacs.org could be very nice for visibility. + - corwin: Could we do the same with orgmode.org? + - Imagine if the org-mode website had a featured talk from the EmacsConf! + - corwin: Once the relationship exists between emacs.org and orgmode.org, a lot of bridges can be built between the communities with mutual benefits + +- Alternate streams & Rebroadcasts + - APAC: + - sachac: As the prerecs come in, we can touch base with dragestil re: APAC event + - Other streamers: + - sachac: These next few weeks are also the best time to onboard alternate streamers + - corwin: Our must important work right now is bringing more talents/newcommers, and get them to the level where they feel technically-competent and empowered to help us further. + +- How to get new organisers involved as well they could be with the project? + - Doing tech-checks is a pretty good and easy to get started with volunteers. + - sachac: When we activate the other volunteers, what should we be asking them to consider? *Ordered by priority*, and which we should mention on the ~contribute.md~: + 1. Editing captions or writing new ones + 2. Helping with tech-checks + 3. Looking at the schedule, and if there’s something they particularly like, they could run get ready for a prolonged Q&A session + - sachac: We might have a ~contribute.md~ page similar to the prepare.md page + - We should link from /2021 to /2021/contribute.md. + - Also, other people who could come across it rather than just our current volunteers. + - corwin: ~contribute.md~ is the invitation, and the ~prepare.md~ is the directions to the party. + - How do we publicise this contribue.md? + - zaeph: Could we publicise contribute.md on r/emacs + - corwin: Yes! It’s a great piece of promotion to do. + - bandali: It might make sense to mention contribute.md to speakers + - Our next email to speakers should link to contribute.md + +- Tech-checks + - Getting organisers on board with tech-checks + - Which new volunteers could be bring along on this project? + - acdw (AM) + - dragestil (APAC) + - bhavin192 (APAC) + - seabass (EU) + - zleap (EU) + - ullbeking (?) + - zaeph (EU) + - corwin (AM) + - ??? + - bandali (AM) + - Putting the finishing touches on the checklist + #+begin_quote + - Would you please share your pronouns? + - Can you tell us how to pronounce your name? + - Can you speak and be heard? Is there echo? + - Can you hear the organizer (me)? + - Can you share your screen? Is the screen readable? + - If you plan to show your keystrokes, is that display visible? + - If you want to share your webcam (optional), can you enable it? Is it visible? Will there likely be distractions in the background? + - Can you view the collaborative pad? Will you be comfortable reviewing questions on your own (perhaps by keeping it open beside your shared window), or will you need a volunteer to relay questions to you? + - Can you share contact information (ex: phone number) so that we can get in touch with you in case of technical issues or scheduling changes? + - Do you need help finding your way around IRC so that you can check into `#emacsconf-org`? What is your IRC nickname? + #+end_quote + +- What to mention in our closing remarks + - Acknowledging volunteers + - Inviting other volunteers + - Alternate streams / Multiple tracks + + * October 23, 2021 meeting - TODO @@ -1708,7 +2025,8 @@ Which again could be somewhere to promote emacs / emacs conf - mplsCorwin: Talk with Nate Sales - We want to talk with Nate Sales about CDN stuff - mplsCorwin will be asking Nate Sales to come again on [2021-05-01 Sat] - + - Also to be used for FTP uploads + - mplsCorwin update on FH - mplsCorwin is mentioning that we might get another server to handle - Depending on the location diff --git a/2021/poster.md b/2021/poster.md new file mode 100644 index 00000000..549e6f25 --- /dev/null +++ b/2021/poster.md @@ -0,0 +1,58 @@ +[[!meta title="EmacsConf 2021 posters"]] +[[!meta copyright="Copyright © 2020 Paul Sutton, Amin Bandali<br />Copyright © 2021 Paul Sutton, Amin Bandali, Garulfo Azules, Adam Porter"]] + +[[Paul Sutton|poster#zleap]], [[Garulfo Azules|poster#garulfo]], and +[[Adam Porter|poster#alphapapa]] have created beautiful posters for +EmacsConf 2021 for folks to share with others to help spread the word +about the conference! All three posters are licensed freely, under +the same terms as the rest of the EmacsConf wiki (see [[COPYING]]). + +Please see below for previews and details about each of the posters. + + +<a name="zleap"></a> +## Paul Sutton + +The poster and its accompanying sources are available from Paul's +repository on Debian Salsa, at +<https://salsa.debian.org/zleap-guest/emacsconf>. + +The poster is available in the PDF and PNG formats, along with the +original ODG source file for it. Direct download links: + +- <https://salsa.debian.org/zleap-guest/emacsconf/-/raw/master/emacsconf.pdf> +- <https://salsa.debian.org/zleap-guest/emacsconf/-/raw/master/emacsconf.png> +- <https://salsa.debian.org/zleap-guest/emacsconf/-/raw/master/emacsconf.odg> + +[[!img /i/emacsconf-2021-poster-zleap.png + size=600x + alt="EmacsConf 2021 poster by Paul Sutton" class="center"]] + + +<a name="garulfo"></a> +## Garulfo Azules + +The poster and its accompanying sources are available from the +following repository on Debian Salsa: +<https://salsa.debian.org/zleap-guest/emacsconfposter> + +The poster is available in the PDF format, along with the original ConTeXt +source file. Direct download links: + +- <https://salsa.debian.org/zleap-guest/emacsconfposter/-/raw/master/ConTeXt_version/poster_emacs_v02.pdf> +- <https://salsa.debian.org/zleap-guest/emacsconfposter/-/raw/master/ConTeXt_version/poster_emacs_v02.tex> + +[[!img /i/emacsconf-2021-poster-garulfo.png + size=600x + alt="EmacsConf 2021 poster by Garulfo Azules" class="center"]] + + +<a name="alphapapa"></a> +## Adam Porter + +Adam's poster is available +[here](/i/emacsconf-2021-poster-alphapapa.svg) in SVG format. + +[[!img /i/emacsconf-2021-poster-alphapapa.png + size=600x + alt="EmacsConf 2021 poster by Adam Porter" class="center"]] diff --git a/2021/prepare.md b/2021/prepare.md index 4cadc5cf..3d78a407 100644 --- a/2021/prepare.md +++ b/2021/prepare.md @@ -38,8 +38,7 @@ your name, please start your video with something along the lines of: "Hi! I'm ${NAME} and I'll be talking about ${TOPIC}." -Please **upload your prerecording(s) via FTP** to the FTP server -we are setting up with the following details: +Please **upload your prerecording(s) (and script/notes if any) via FTP** to the FTP server we have set up with the following details: - host: ftp-upload.emacsconf.org - username: anonymous @@ -101,9 +100,26 @@ WebM format if possible.* > format. The closer to this format submitted video files arrive in, > the easier it will be to process and upload them. -After you send in your video, if you've indicated that you'd like to -do live Q&A, we'll set up a tech-check call with you. We'll post -details here closer to that time. +# Compression + +If you would like to compress your video before uploading, the following shell script may be useful: + + Q=56 + ffmpeg -y -i "$1" -c:v libvpx-vp9 -b:v 0 -crf $Q -aq-mode 2 -an -tile-columns 0 -tile-rows 0 -frame-parallel 0 -cpu-used 8 -auto-alt-ref 1 -lag-in-frames 25 -g 240 -pass 1 -f webm -threads 8 /dev/null && + ffmpeg -y -i "$1" -c:v libvpx-vp9 -b:v 0 -crf $Q -c:a copy -tile-columns 2 -tile-rows 2 -frame-parallel 0 -cpu-used -5 -auto-alt-ref 1 -lag-in-frames 25 -pass 2 -g 240 -threads 8 "$2" + +If you put it in a file called `compress-video.sh`, you can execute it +from the command line with something like `sh compress-video.sh +input-file.webm output-file.webm`. It will compress the file in two +passes. During the first pass, the frame count will increase, but the +speed will be 0. After the first pass, it will display proper progress +information. + +# Tech check + +If you're planning to do live Q&A, you can check your system setup at +https://test.bigbluebutton.org/ . We'll set up a tech-check call with +you, too. We'll post details here closer to that time. Thank you so much for helping with EmacsConf 2021! @@ -157,6 +173,17 @@ up the talk wiki pages. That way, you can see what else is going on in the conference and maybe coordinate with other speakers in order to minimize overlap and maximize awesomeness. +## What if there are lots of great questions during Q&A and we run out of time? + +You can continue answering questions on the collaborative pad or IRC, +and we'll copy questions and answers onto the wiki page +afterwards. You can also answer questions on the wiki page even after the event. + +An extended live demo or Q&A session might be possible if someone +volunteers to broadcast it on an alternative stream. If you or a +volunteer is interested in helping with this, please feel free to +contact us at <emacsconf-submit@gnu.org>. + ## More questions? Please email <emacsconf-submit@gnu.org>. We'd love to hear from you. diff --git a/2021/schedule-details.md b/2021/schedule-details.md index 8f117bed..fe3fa139 100644 --- a/2021/schedule-details.md +++ b/2021/schedule-details.md @@ -4,9 +4,9 @@ <tr><td><a href="/2021/talks/news">Emacs News Highlights</a></td><td>Sacha Chua</td></tr> <tr><td><a href="/2021/talks/frownies">The True Frownies are the Friends We Made Along the Way: An Anecdote of Emacs's Malleability</a></td><td>Case Duckworth</td></tr> <tr><td><a href="/2021/talks/adventure">Choose Your Own (Technology-Enhanced Learning) Adventure</a></td><td>Greta Goetz</td></tr> -<tr><td><a href="/2021/talks/unix">"GNU's Not UNIX: Why Emacs Demonstrates The UNIX Philosophy Isn't Always The Only Answer"</a></td><td>Daniel Rose</td></tr> +<tr><td><a href="/2021/talks/unix">GNU's Not UNIX: Why Emacs Demonstrates The UNIX Philosophy Isn't Always The Only Answer</a></td><td>Daniel Rose</td></tr> <tr><td><a href="/2021/talks/omegat">Emacs manuals translation and OmegaT</a></td><td>Jean-Christophe Helary</td></tr> -<tr><td><a href="/2021/talks/nongnu">NonGNU ELPA Update</a></td><td>Kaluđerčić, Philip</td></tr> +<tr><td><a href="/2021/talks/nongnu">NonGNU ELPA Update</a></td><td>Philip Kaludercic</td></tr> <tr><td><a href="/2021/talks/borg">Manual Package Management in The Era of Repositories - Why and How</a></td><td>Dhavan (codingquark)</td></tr> <tr><td><a href="/2021/talks/telega">telega.el and the Emacs community on Telegram</a></td><td>Gabriele Bozzola and Evgeny Zajcev</td></tr> <tr><td><a href="/2021/talks/nangulator">Introducing N-Angulator</a></td><td>Kevin Haddock</td></tr> @@ -36,7 +36,7 @@ <tr><td colspan="3"><strong>Sunday morning<strong></td></tr> <tr><td><a href="/2021/talks/day2-open">Opening remarks day 2</a></td><td></td></tr> <tr><td><a href="/2021/talks/faster">How to write faster Emacs Lisp</a></td><td>Dmitry Gutov</td></tr> -<tr><td><a href="/2021/talks/structural">Why structural editing is the future of code editing, and a novel approach for editing everyday languages</a></td><td>Ethan Leba</td></tr> +<tr><td><a href="/2021/talks/structural">Tree-edit: Structural editing for Java, Python, C, and beyond!</a></td><td>Ethan Leba</td></tr> <tr><td><a href="/2021/talks/dsl">Self-Describing Smart DSL's: The Next Magits</a></td><td>Psionic</td></tr> <tr><td><a href="/2021/talks/ui">"Yak-shaving to a UI framework" (/"Help! I accidentally yak-shaved my way to writing a UI framework because overlays were slow")</a></td><td>Erik Anderson</td></tr> <tr><td><a href="/2021/talks/rust">Extending Emacs in Rust with Dynamic Modules</a></td><td>Tuấn-Anh Nguyễn</td></tr> diff --git a/2021/sidebar.md b/2021/sidebar.md index 6a662b8b..7b0c531d 100644 --- a/2021/sidebar.md +++ b/2021/sidebar.md @@ -4,6 +4,8 @@ --- +* [[**Program**|schedule]] +* [[**Posters**|poster]] * [[Call for Proposals|cfp]] * [[Ideas]] * [[Submit]] diff --git a/2021/talks/adventure.md b/2021/talks/adventure.md index 7b06e9b0..a17e331c 100644 --- a/2021/talks/adventure.md +++ b/2021/talks/adventure.md @@ -8,90 +8,45 @@ # Choose Your Own (Technology-Enhanced Learning) Adventure Greta Goetz -This presentation will move through Emacs artifacts illustrating -possible paths for beginners and then map out some supportive roles -for the enhanced learning potential (cf. Caillet in Andler & Guerry, -Engelbart) of Emacs. Emacs affords diverse possibilities for -individuals to interact creatively and autonomously with their digital -environment and others to satisfy their own needs (Illich) and -fulfills the promise of digital tools to help enhance our learning -(e.g. Engelbart), balancing creativity with guidance (Goodyear & -Retalis). - - -# Intro - -Emacs allows for play with formality and does not limit imaginable -types of interactivity, supporting both formal and informal learning -(cf. Caillet in Andler & Guerry 2008), therefore it can function as a -scaffold for development (cf. Vygotsky 1979: 86) and the creative and -autonomous ability of individuals to interact with their digital -environment and others who equally share the ability to use this tool -(Illich 1973). Individuals can use Emacs as often or seldom as they -want to express their needs and meaning in action, with no obligation -to use it (cf. Illich 1973: 22). - -The formal learning involved pertains to Emacs documentation (the -'temple') while related discussion and copying of or composing parts -of inits or smaller task-based problem solving represents the -'forum'. The latter, demonstrative of technology-enhanced learning, -allows for engagement in diverse and individual levels of learning, -balancing creativity with guidance (Goodyear & Retalis 2010: 4). - -1. What if we are beginners overwhelmed by formal Emacs documentation? Two possible learning paths: - - - a. Build on a needs-basis. Brief explanation and rationale [1 para]. - - b. Study others' inits and use-cases; Read Planet EmacsLife; Consult what programmers or power users say [1 link example for each]. - -2. Emacs as technological networks for enhanced learning with boundaries through [section supplemented by some examples, and illustrated by a mind-map to bring coherence]: - -- The 'wise' use of computers (Crichton) to manage and organize workflow -- Fun use of computers - 'there are people who want to put a stop to that' (Crichton) -- Disciplinary use-cases can give insight into how various Emacs capabilities fit into the mental models particular to disciplinary context. This can improve design performance while educating the designer (Goodyear & Retalis 2010). - -- Allows for multiple and organically changing organization of knowledge. This is opposed to relegating it to pre-fabricated fields, which is the case when using apps (as if all learners have the same spatial/visual needs?! - -- Emacs is developed and maintained by a community dedicated to keeping this freedom of use in these multiple contexts (cf. Illich 1973). -- Emacs thus allows us to control our tools and tasks (Illich 1973: -- in order to release ourselves from the tasks of *automatic* maintenance (cf. Latour's 1987 simple customers'). By contrast, the care-less use of automatizing pre-fabricated apps leads to knowledge loss and loss of know-how in life (Stiegler 2018). - -- Emacs fulfills the promise of the value of technology-enhanced learning (Goodyear & Retalis 2010) e.g. by augmenting OUR intellect (cf. Engelbart 1962), not automatizing our knowledge to smaller repetitive tasks that contribute to a larger picture we cannot see. - -# Conclusion - -Emacs does not limit any imaginable type of interactivity and promotes -a diversity of related content, further supporting pursuit of more -advanced technology-enhanced learning (TEL). TEL, with its current -*general* reliance on pre-fabricated one-size-fits-all software, does -not reach its potential where it uses apps or tools that automatize -knowledge. By contrast, Emacs enables us to learn this knowledge work, -and supports informal learning at all levels. This includes the most -basic needs-use level while also inviting us through its myriad -use-case examples to learn how work is managed, organized, and -coordinated for the benefit of the diverse community made possible by -maintainers and developers. Using Emacs not only means being able to -use this digital tool, but to learn about the structure of digital -learning and learning in general. +This presentation will first illustrate possible paths for beginners and then mapping out the significance of the enhanced learning potential of Emacs (Caillet in Andler & Guerry, Markauskaite & Goodyear). The technology-enhanced learning (TEL) that Emacs affords departs from the 'many, many features' (Stallman) which surpass the confines of a pre-fabricated environment (Stiegler). This affords diverse possibilities for individuals to interact creatively and autonomously to satisfy their own needs alongside others who share use of the tool (Illich). Its adaptability will be shown to be an asset in support of the learning trends identified by the latest pedagogical research (Guo). + +1. Setting out as beginners who may be overwhelmed by formal Emacs documentation. Some inroads. No trace is too small. +2. Emacs as common ground between people and technology. +3. Emacs modularity and TEL design. +4. Emacs as personal, creative, autonomous. +5. Emacs and cognitive democracy. # References -- <https://github.com/redguardtoo/mastering-emacs-in-one-year-guide/blob/master/guide-en.org#on-the-shoulders-of-giants> -- <https://planet.emacslife.com/> -- <https://bzg.fr/en/some-emacs-org-mode-features-you-may-not-know/> -- <https://www.kpkaiser.com/programming/writing-a-technical-book-in-emacs-and-org-mode/> -- <https://github.com/zzkt/oblique-strategies> -- <https://kitchingroup.cheme.cmu.edu/blog/2014/08/08/What-we-are-using-org-mode-for/> -- Bruce, B. & Levin, J. (1997). Educational technology: media for inquiry, communication, construction, and expression. J. Educ. Comput. Res. 17(1), pp. 79–102. -- Caillet, E. (2008). L’exposition, le musée: L’éducation informelle comme école de l’éducation formelle, pp. 137-154. In Andler, D. & Guerry, B., Eds., Apprendre Demain: Sciences cognitives et éducation à l’ère numérique. Paris: Hatier. -- Crichton, M. (1983). Electronic Life. New York: Knopf. -- Engelbart, D. (1962). Augmenting human intellect: A conceptual framework. Menlo Park: Stanford Research Institute. -- Goodyear, P. & Retalis, S. (2010). Learning, Technology and Design, pp. 1-27. In Goodyear, P. & Retalis, S. (Eds.) Technology-Enhanced Learning: Design Patterns and Pattern Languages. Rotterdam, Boston: Sense Publishers. -- Illich, I. (1973). Tools of conviviality. New York: Harper & Row. -- Latour, B. (1987). Science in Action. Cambridge and London: Harvard University Press. -- Stiegler, B. (2018). The neganthropocene. Open Humanities Press. -- Vygotsky, L. (1979). Mind in Society: The Development of Higher Psychological -- Processes. Cambridge and London: Harvard University Press. +## General workflow, inspiration, fun: +- Bin, C. (2020). Mastering Emacs in one year. <https://github.com/redguardtoo/mastering-emacs-in-one-year-guide/blob/master/guide-en.org#on-the-shoulders-of-giants>. Accessed 25 October 2021. +- Chua, S. https://sachachua.com/blog/ +- Goetz, G. (2021). Additional references: A back-to-school/GTD Emacs journey. <https://gretzuni.com/articles/a-back-to-school-gtd-emacs-journey>. Accessed 25 October 2021. +- Guerry, B. (2020). Org-mode features you may not know. <https://bzg.fr/en/some-emacs-org-mode-features-you-may-not-know/>. Accessed 25 October 2021. +- Kaiser, K. (2017). Writing a technical book in Emacs and Org-mode. <https://www.kpkaiser.com/programming/writing-a-technical-book-in-emacs-and-org-mode/>. Accessed 25 October 2021. +- Planet Emacs Life. <https://planet.emacslife.com/>. Accessed 25 October 2021. +- Stavrou, P. My packages for GNU Emacs. <https://protesilaos.com/emacs/>. Accessed 25 October 2021. +- Wellons, C. Emacs articles. <https://nullprogram.com/tags/emacs/>. Accessed 25 October 2021. + +## On TEL design and learning: +- Andler, D. & Guerry, B. (Eds.). *Apprendre demain: Sciences cognitives et éducation à l’ère numérique*, 137-154. Paris: Hatier. +- Crichton, M. (1983). *Electronic life*. New York: Knopf. +- De Bono, E. (2009). *Think! Before it's too late*. London: Random House. +- Drosos, I. & Guo, P. (2021). Streamers teaching programming, art, and gaming: Cognitive apprenticeship, serendipitous teachable moments, and tacit expert knowledge. IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), short paper, 2021. <https://pg.ucsd.edu/pubs.htm>. Accessed 25 October 2021. +- Gabriel, R. (1996). *Patterns of software*. New York, Oxford: Oxford University Press. +- Goodyear, P. & Retalis, S. (2010). Learning, technology and design. In Goodyear, P. & Retalis, S. (Eds.). *Technology-enhanced learning: Design patterns and pattern languages*, 1-27. Rotterdam, Boston: Sense Publishers. +- Guo, P. (2018). Students, systems, and interactions: Synthesizing the first +four years of Learning@Scale and charting the future. L@S 2018, June 26–28, 2018, London, United Kingdom. DOI: https://doi.org/10.1145/3231644.3231662. <https://pg.ucsd.edu/pubs.htm>. Accessed 25 October 2021. +- Guo, P., Kim, J. & Rubin, R. (2014). How video production affects student engagement: An empirical study of MOOC videos. ACM Conference on Learning at Scale. <https://pg.ucsd.edu/pubs.htm>. Accessed 25 October 2021. +- Illich, I. (1973). *Tools of conviviality*. New York: Harper & Row. +- Kim, J., Guo, P., Seaton, D., Mitros, P., Gajos, K. & Miller, R. (2014). Understanding in-video dropouts and interaction peaks in online lecture videos. ACM Conference on Learning at Scale. <https://pg.ucsd.edu/pubs.htm>. Accessed 25 October 2021. +- Markauskaite, L. & Goodyear, P. (2017). *Epistemic fluency and professional education: innovation, knowledgeable action and actionable knowledge*. Dordrecht: Springer. +- Markel, J. & Guo, P. (2020). Designing the future of experiential learning environments for a post-COVID world: A preliminary case study. NFW ’20 (Symposium on the New Future of Work), August 3–5, 2020, Virtual Event. <https://pg.ucsd.edu/pubs.htm>. Accessed 25 October 2021. +- Morin, E. ([2004] 2008). *La Méthode - tome 6: Éthique*. Éditions du Seuil: Paris. +- Stallman, R. (2002). *Free software, free society*. GNU Press, Free Software Foundation. +- Stiegler, B. (2018). *The neganthropocene*. Open Humanities Press. +- Trocmé-Fabre, H. (1999). *Réinventer le métier d’apprendre*. Paris: Éditions d’organisation. # Availability and preferred Q&A approach diff --git a/2021/talks/bidi.md b/2021/talks/bidi.md index 2bfd13d7..7bff4e8f 100644 --- a/2021/talks/bidi.md +++ b/2021/talks/bidi.md @@ -1,17 +1,16 @@ -[[!meta title="Perso-Arabic Input Methods And Making More Emacs Apps BIDI Aware"]] +[[!meta title="Perso-Arabic Input Methods And BIDI Aware Apps"]] [[!meta copyright="Copyright © 2021 Mohsen BANAN"]] [[!inline pages="internal(2021/info/bidi-nav)" raw="yes"]] <!-- You can manually edit this file to update the abstract, add links, etc. ---> -# Perso-Arabic Input Methods And Making More Emacs Apps BIDI Aware -Mohsen BANAN - - -# Table of Contents - +# Perso-Arabic Input Methods And BIDI Aware Apps +Mohsen BANAN -- محسن بنان +Emacs is a multilingual user environment. A true multilingual editor must +support bidirectionality and shaping of characters. Perso-Arabic scripts require +both of these features. Starting with Emacs 24, full native bidi (bidirectional) support became available. For @@ -21,57 +20,86 @@ open-source shaping libraries were also available. With these in place at around 2012, I developed two Persian input methods for emacs. These input -methods or variations of them can also be used -Arabic and other persoarabic scripts. +methods or variations of them can also be used for +Arabic and other Perso-Arabic scripts. With all of these in place, Emacs has now become -the ne plus ultra Halaal/Convivial usage -environment for persoarabic users. +the ne plus ultra Libre-Halaal and Convivial usage +environment for Perso-Arabic users. Since emacs comes loaded with everything (Gnus for email, Bbdb for address books, XeLaTeX modes for typesetting, org-mode for organization, spell -checkers, completions, calendar, etc.), all basic -computing and communication needs of persoarabic +checkers, completion systems, calendar, etc.), all basic +computing and communication needs of Perso-Arabic users can be addressed in one place and cohesively. In this talk I will demonstrate what a wonderful environment that can be. - -- 40 minutes: (brief description/outline) - My talk will be in two parts. +My talk will be in two parts. + +In Part 1, I cover Persian input methods. With an emphasis on "Banan +Multi-Character (Reverse) Transliteration Persian Input Method". The +software is part of base emacs distribution. Full documentation is available +at: - In Part 1, I cover persian input methods. With an - emphasis on &lsquo ;Banan Multi-Character (Reverse) - Transliteration Persian Input Method’. The - software is part of base emacs distribution. - Full documentation is available at: Persian Input Methods For Emacs And More Broadly Speaking شیوههایِ درج به فارسی <http://mohsen.1.banan.byname.net/PLPC/120036> - In Part 2, I will cover the ramifications of bidi - on existing emacs applications, including: +In Part 2, I'll demonstrate that Emacs is far more than an editor. Emacs can be +a complete Perso-Arabic usage environment. I will also cover the ramifications +of bidi on existing emacs applications, including: - - Gnus: - - Persoarabic rich email sending in HTML. - - Ramifications of bidi on from, to and - subject lines. +- Spell Checking, Dictionaries And Completion Frameworks: + - Existing emacs facilities can be extended to cover Perso-Arabic. - - Bbdb: Ramifications of bidi on display and - completion. +- Gnus: + - Perso-Arabic rich email sending in HTML. + - Ramifications of bidi on from:, to: and subject: lines. - - Calendar: - - Ramifications of bidi on display. - - Use of persian text for Persian (solar) calendar. - - Use of arabic text for Muslem (lunar) calendar. +- Bbdb: Ramifications of bidi on display and completion. - - AUCTeX: Persian typesetting with XeLaTeX - - +- Calendar: + - Ramifications of bidi on display. + - Use of Persian text for Persian (solar) calendar. + - Use of Arabic text for Muslem (lunar) calendar. + +- AUCTeX: Persian typesetting with XeLaTeX + - Option of having right-to-left Perso-Arabic aliases for all latex commands. + +References: + + - Persian Input Methods: + <http://mohsen.1.banan.byname.net/PLPC/120036> + <http://www.persoarabic.org/PLPC/120036> -- Persian Input Methods Access Page + <http://www.persoarabic.org> -- Various Perso-Arabic resources + <http://www.freeprotocols.org/Repub/fpf-isiri-6219> -- Re-Publication Of + Persian Information Interchange and Display Mechanism, using Unicode + <https://github.com/bx-blee/persian-input-method> -- Git repo for + persian.el -- Quail package for inputting Persian/Farsi keyboards + + - BIDI: + <http://www.unicode.org/reports/tr9/> -- Annex #9 of the Unicode standard + <https://www.gnu.org/software/emacs/manual/html_node/elisp/Bidirectional-Display.html> + Emacs Bidirectional Display + + - Blee and Persian-Blee: + <https://github.com/bx-blee/env2> -- Very messy work-in-progress git repo for: + Blee: By* Libre-Halaal Emacs Environment + <http://www.by-star.net> -- A Moral Alternative To The Proprietary American Digital Ecosystem + <http://mohsen.1.banan.byname.net/PLPC/120033> -- + Nature of Polyexistentials: + Basis for Abolishment of The Western Intellectual Property Rights Regime + <http://mohsen.1.banan.byname.net/PLPC/120039> -- Defining The Libre-Halaal Label + + - Mohsen BANAN -- محسن بنان: + <http://mohsen.1.banan.byname.net/> -- Globish + <http://mohsen.1.banan.byname.net/persian> -- Farsi + <http://mohsen.1.banan.byname.net/french> -- French [[!inline pages="internal(2021/info/bidi-schedule)" raw="yes"]] diff --git a/2021/talks/devel.md b/2021/talks/devel.md index b3c197f4..461f64f3 100644 --- a/2021/talks/devel.md +++ b/2021/talks/devel.md @@ -8,80 +8,30 @@ # Don't write that package! or: How I learned to stop worrying and love emacs-devel Stefan Kangas -Emacs' greatest strength is also its greatest weakness: it is **too** hackable. - -We have a great community that experiment with new features that are still -lacking in Emacs core. They write up a package and develop the living daylights -out of it, until it is basically amazing. (I'm looking at you Magit.) - -There are other examples such as helpful.el - great package, but why are those -features not in core? What about projectile? And so on. - -Core demands copyright assignments (CLA). This is a fact of life. While I -mostly agree with the people saying it is not helful, they are there to protect -Emacs from copyright issues in the future. So my suggestion here is simple: -just **sign the papers**. It is just a formality, and you should only need to do -it once. - -I suggest that any ambitious feature that we **might** want to see shipped in the -default Emacs distribution should by default go to GNU ELPA. You don't need to -do this, of course, and I respect your decision, but I urge you to do it. - -GNU ELPA does not have an exceptionally high standard, but we do try to give any -new package a proper code review. - -MELPA is excellent. We love MELPA. They don't have a criterion for their -packages that is important to the FSF, which is to not recommend non-free -software. Therefore, we could not recommend it by default, and had to build -NonGNU ELPA. - -NonGNU ELPA will be used for packages that we don't have an assignment for but -would still like to distribute. It should ideally only be for old packages -where getting a CLA is impractical. - -It is sometimes perceived as hard to contribute to Emacs core. This impression -is largely wrong. If I can do it, you can too. - -We do have a problem in that our tools and methods (mailing lists, the bug -tracker) are out-dated. This is largely correct. We want to migrate to -something else, and the best candidate is probably Sourcehut. Please volunteer -to help! - -We sometimes see people adding stuff to their Init file to fix this or that -annoyance, or even bug. The more ambitious would go on to package up such fixes -in what I call "patch packages". "Hey, foo-mode doesn't have support for -'bookmark-set', let's write a package!" I am here to suggest that you submit a -patch to Emacs instead. - -Fixing an issue for one person is good, and fixing it for more people is even -better. Fixing it for everyone? Priceless. - -emacs-devel is not that scary, nor is email. We are really quite friendly and -easy going, but the communication we prefer (for reasons of efficiency - the -volume is very high) is often very brief and to the point. We are trying our -best at communicating, but sometimes fail. - -And we need more contributors. We need a successful Emacs on this planet. - -So should you really write a package, or should YOU become a core contributor? - - - -# Outline - -- I will urge people to consider contributing to Emacs instead of - writing small packages, and explain GNU ELPA, MELPA, CLA. -- I will go into greater detail about emacs-devel, how it "works" - (e.g. is Emacs conservative without reason?), how to get things - done and the necessary mindset. - -<!-- -- 40 minutes: (brief description/outline): All of the above, and I will show a - demonstration and give instructions for how to use M-x debbugs to read the bug - tracker, how to send emails, patches, and our workflows. More on what to - expect. ---> - +We need a successful Emacs on this planet. This means that we need an +excellent out-of-the-box experience -- one that just works, but that you +can still hack and customize. There is so much great experimentation +and work going on out there in the wider Emacs community, but we would +be even better off if more of that could go into Emacs itself. + +Emacs' greatest strength is unfortunately sometimes also its greatest +weakness: it is *too* hackable. + +On occasion, people out there add stuff to their Init file to fix this +or that annoyance, or even bug. The more ambitious might go on to +package up such fixes: "Hey, 'foo-mode' doesn't have support for +'bookmark-set', let's write a package!" I am here to suggest that you +should not do that. + +You should submit a patch to Emacs! Maybe more people have that same +problem or annoyance, and would benefit from your solution? + +It is sometimes perceived as hard to contribute to Emacs core. I want +to encourage more people to get involved, and show that the barrier to +entry is really not that high. If I can do it, you can do it too! + +So should you really write that package, or should you stop worrying and +learn to love emacs-devel? Listen to my talk to find out more! [[!inline pages="internal(2021/info/devel-schedule)" raw="yes"]] diff --git a/2021/talks/mold.md b/2021/talks/mold.md index a2cc99be..26188625 100644 --- a/2021/talks/mold.md +++ b/2021/talks/mold.md @@ -13,14 +13,13 @@ places we cannot access or use. The more we write down, the more it takes to find and understand things we find useful. Knowledge (web, software, books) keeps growing faster and faster! This -is not sustainable: we cannot keep up! What if we repeat a terrible -error that somebody else has written about, only because we could not -find that? What if that knowledge is in some code we work with -everyday? +is not sustainable: we cannot keep up with it! What if we repeat the +error of somebody else, only because it would take too much reading to +know? What if that knowledge is in some code we work with everyday? Moldable development is a paradigm shift that attempts to solve this problem. In a gist, the tool you use should let you create special tools -to learn smartly from the what you have. +to learn smartly from what you have already. Since we use Emacs, let's make our great editor moldable! diff --git a/2021/talks/molecular.md b/2021/talks/molecular.md index ecfaec10..c319114a 100644 --- a/2021/talks/molecular.md +++ b/2021/talks/molecular.md @@ -8,40 +8,39 @@ # Reproducible molecular graphics with Org-mode Blaine Mooers -Research papers in structural biology should include the code used -to make the images of molecules in the article in the supplemental -materials. Some structural bioinformaticists have started to include +Research papers in structural biology should include the code used to make +the images of molecules in the article in the supplemental materials. +Some structural bioinformaticists have started to include their computer code in the supplemental materials to allow readers to reproduce their analyses. However, authors of papers reporting new -structures have overlooked the inclusion of the code that makes the -images of the molecules in their articles. Nonetheless, this aspect of -reproducible research needs to become the standard practice to improve -the rigor of the science. +molecular structures often overlook the inclusion of the code that makes +the images of the molecules reported in their articles. Nonetheless, +this aspect of reproducible research needs to become the standard practice +to improve the rigor of the science. -In a literate programming document, the author interleaves the code -that makes the images of molecules in the explanatory text. Such a -document allows the reader to reproduce the images in the manuscript. -The reader can also explore the effect of altering the parameters in -the code. Org files are one alternative for making such literate -programming documents. +In a literate programming document, the author interleaves blocks +of explanatory prose between code blocks that make the images of molecules. +The document allows the reader to reproduce the images in the manuscript by running the code. +The reader can also explore the effect of altering the parameters in the +code. Org files are one alternative for making such literate programming +documents. -We developed a yasnippet library called orgpymolpysnips for structural -biologists (<https://github.com/MooersLab/orgpymolpysnips>). This -library facilitates the assembly of literate programming documents +We developed a **yasnippet** snippet library called **orgpymolpysnips** for +structural biologists (<https://github.com/MooersLab/orgpymolpysnips>). +This library facilitates the assembly of literate programming documents with molecular images made by PyMOL. PyMOL is the most popular -molecular graphics program for making images for publication; it has -over 100,000 users, which is a lot of users in the sciences. PyMOL was -used to make many of the striking images of biological molecules on -the cover of Nature and Science. We use the emacs-jupyter package to -send commands from a code block in Org files to PyMOL's Python API. -PyMOL returns the molecular image to the output block below the -code block. Of course, an Emacs user can convert the Org file into a -PDF, convert the code blocks to script files, and submit these for -non-Emacs users. We describe the content of the library and provide -examples of the running PyMOL from Org-mode. We compare using Org, -Jupyter Notebook, Jupyter Lab, and RStudio with PyMOL to do -literate programming in structural biology. +molecular graphics program for creating images for publication; it has +over 100,000 users, which is a lot of users in molecular biology. PyMOL +has been used to make many of the images of biological molecules found +on the covers of many Cell, Nature, and Science issues. +We used the **jupyter** language in **org-babel** to send commands from +code blocks in Org files to PyMOL's Python API. PyMOL returns the +molecular image to the output block below the code block. An Emacs +user can convert the Org file into a PDF, `tangle' the code blocks +into a script file, and submit these for non-Emacs users. We describe +the content of the library and provide examples of the running PyMOL +from Org-mode documents. # Outline diff --git a/2021/talks/news.md b/2021/talks/news.md index 7d3dd095..d2e4f103 100644 --- a/2021/talks/news.md +++ b/2021/talks/news.md @@ -4,14 +4,184 @@ <!-- You can manually edit this file to update the abstract, add links, etc. ---> - # Emacs News Highlights Sacha Chua <mailto:sacha@sachachua.com> - pronouns: she/her Quick overview of Emacs community highlights since the last conference +You can find the links and images at <https://github.com/sachac/emacsconf-2021-emacs-news-highlights> +Posting the video early to help test formatting. + +[[!template vidid="mainVideo" id=vid src="https://media.emacsconf.org/2021/emacsconf-2021-news--emacs-news-highlights--sacha-chua--captioned.webm" size="16MB" subtitles="../../captions/emacsconf-2021-news--emacs-news-highlights--sacha-chua.vtt" duration="04:27"]] + +# Questions, answers, and community-provided links + +<a name="transcript"></a> +# Transcript + +[[!template text="I'm Sacha Chua, and here are" start="00:00:00.003" video="mainVideo" id=subtitle]] +[[!template text="ten Emacs News highlights for 2021." start="00:00:01.519" video="mainVideo" id=subtitle]] +[[!template text="If you want to follow the links," start="00:00:03.754" video="mainVideo" id=subtitle]] +[[!template text="check out the wiki page at" start="00:00:05.305" video="mainVideo" id=subtitle]] +[[!template text="https://emacsconf.org/2021/talks/news/ ." start="00:00:06.846" video="mainVideo" id=subtitle]] +[[!template new="1" text="1\. The Emacs developers are currently" start="00:00:11.024" video="mainVideo" id=subtitle]] +[[!template text="working on Emacs 28.1," start="00:00:13.442" video="mainVideo" id=subtitle]] +[[!template text="which will be the next major release." start="00:00:15.346" video="mainVideo" id=subtitle]] +[[!template text="Native compilation should" start="00:00:17.119" video="mainVideo" id=subtitle]] +[[!template text="make everything way faster," start="00:00:18.442" video="mainVideo" id=subtitle]] +[[!template text="and emoji support will probably" start="00:00:19.959" video="mainVideo" id=subtitle]] +[[!template text="make things more fun. 😎👍" start="00:00:21.476" video="mainVideo" id=subtitle]] +[[!template text="John Wiegley will share more Emacs 28 details" start="00:00:22.549" video="mainVideo" id=subtitle]] +[[!template text="in his update, so check out his talk." start="00:00:25.133" video="mainVideo" id=subtitle]] +[[!template text="Andrea Corallo's giving a talk" start="00:00:26.913" video="mainVideo" id=subtitle]] +[[!template text="on native compilation too." start="00:00:28.783" video="mainVideo" id=subtitle]] +[[!template new="1" text="2\." start="00:00:30.418" video="mainVideo" id=subtitle]] +[[!template text="Org Mode is now at version 9.5." start="00:00:31.206" video="mainVideo" id=subtitle]] +[[!template text="New features include" start="00:00:33.732" video="mainVideo" id=subtitle]] +[[!template text="a library for managing citations," start="00:00:35.086" video="mainVideo" id=subtitle]] +[[!template text="asynchronous session support" start="00:00:36.935" video="mainVideo" id=subtitle]] +[[!template text="for code blocks," start="00:00:38.414" video="mainVideo" id=subtitle]] +[[!template text="and better control" start="00:00:39.375" video="mainVideo" id=subtitle]] +[[!template text="of your agenda's appearance." start="00:00:40.342" video="mainVideo" id=subtitle]] +[[!template text="If you've been getting your Org packages" start="00:00:41.595" video="mainVideo" id=subtitle]] +[[!template text="from Org ELPA," start="00:00:43.372" video="mainVideo" id=subtitle]] +[[!template text="you can update your configuration" start="00:00:44.506" video="mainVideo" id=subtitle]] +[[!template text="to get Org from GNU ELPA" start="00:00:46.128" video="mainVideo" id=subtitle]] +[[!template text="and org-contrib from NonGNU ELPA." start="00:00:47.896" video="mainVideo" id=subtitle]] +[[!template text="The new release of the Org Roam package" start="00:00:50.155" video="mainVideo" id=subtitle]] +[[!template text="should be a faster and more consistent way" start="00:00:52.278" video="mainVideo" id=subtitle]] +[[!template text="to use Org to manage a knowledgebase," start="00:00:54.185" video="mainVideo" id=subtitle]] +[[!template text="and org-roam-ui looks pretty snazzy." start="00:00:56.060" video="mainVideo" id=subtitle]] +[[!template text="The best way to keep up with Org changes" start="00:00:58.423" video="mainVideo" id=subtitle]] +[[!template text="is to check out the blog This Month in Org." start="00:01:00.531" video="mainVideo" id=subtitle]] +[[!template new="1" text="3\." start="00:01:02.556" video="mainVideo" id=subtitle]] +[[!template text="New Magit major release!" start="00:01:03.439" video="mainVideo" id=subtitle]] +[[!template text="Jonas Bernoulli has split some functionality" start="00:01:05.469" video="mainVideo" id=subtitle]] +[[!template text="into other packages so that" start="00:01:07.781" video="mainVideo" id=subtitle]] +[[!template text="Emacs Lisp developers can use them, such as" start="00:01:09.557" video="mainVideo" id=subtitle]] +[[!template text="magit-section, transient, and forge." start="00:01:11.719" video="mainVideo" id=subtitle]] +[[!template text="Here's an example of using magit-section" start="00:01:14.049" video="mainVideo" id=subtitle]] +[[!template text="to manage groups of buffers." start="00:01:16.502" video="mainVideo" id=subtitle]] +[[!template text="You can learn more about Transient" start="00:01:17.773" video="mainVideo" id=subtitle]] +[[!template text="in the talk on self-describing" start="00:01:19.333" video="mainVideo" id=subtitle]] +[[!template text="smart domain-specific languages or DSLs." start="00:01:20.842" video="mainVideo" id=subtitle]] +[[!template new="1" text="4\." start="00:01:23.538" video="mainVideo" id=subtitle]] +[[!template text="In terms of smaller packages, there's been" start="00:01:24.320" video="mainVideo" id=subtitle]] +[[!template text="a lot of activity around completion." start="00:01:26.545" video="mainVideo" id=subtitle]] +[[!template text="Karthik has a great diagram," start="00:01:28.625" video="mainVideo" id=subtitle]] +[[!template text="and Prot explains how things work together." start="00:01:30.292" video="mainVideo" id=subtitle]] +[[!template text="I think the idea is that instead of having" start="00:01:32.459" video="mainVideo" id=subtitle]] +[[!template text="one large completion system" start="00:01:34.414" video="mainVideo" id=subtitle]] +[[!template text="like Helm or Icicles, you can choose" start="00:01:36.066" video="mainVideo" id=subtitle]] +[[!template text="a few different, smaller packages" start="00:01:38.344" video="mainVideo" id=subtitle]] +[[!template text="and configure them to work together." start="00:01:40.110" video="mainVideo" id=subtitle]] +[[!template text="If you're curious about this," start="00:01:41.869" video="mainVideo" id=subtitle]] +[[!template text="you might start with either selectrum" start="00:01:43.129" video="mainVideo" id=subtitle]] +[[!template text="or vertico, which are both completion interfaces," start="00:01:45.159" video="mainVideo" id=subtitle]] +[[!template text="add marginalia for more information," start="00:01:47.871" video="mainVideo" id=subtitle]] +[[!template text="and try consult for many useful" start="00:01:50.443" video="mainVideo" id=subtitle]] +[[!template text="completing commands." start="00:01:52.222" video="mainVideo" id=subtitle]] +[[!template text="There are so many options," start="00:01:53.233" video="mainVideo" id=subtitle]] +[[!template text="so it might be useful to check out" start="00:01:54.279" video="mainVideo" id=subtitle]] +[[!template text="some discussions." start="00:01:55.867" video="mainVideo" id=subtitle]] +[[!template new="1" text="5\." start="00:01:56.714" video="mainVideo" id=subtitle]] +[[!template text="Embark is usually mentioned as part of" start="00:01:57.477" video="mainVideo" id=subtitle]] +[[!template text="that group of packages," start="00:01:59.531" video="mainVideo" id=subtitle]] +[[!template text="but it's well worth looking into" start="00:02:00.607" video="mainVideo" id=subtitle]] +[[!template text="even if you use a different system." start="00:02:02.196" video="mainVideo" id=subtitle]] +[[!template text="Embark lets you have context-sensitive shortcuts" start="00:02:03.895" video="mainVideo" id=subtitle]] +[[!template text="that work on things in buffers, minibuffers," start="00:02:06.417" video="mainVideo" id=subtitle]] +[[!template text="and even collections of things." start="00:02:08.796" video="mainVideo" id=subtitle]] +[[!template text="You can also use it" start="00:02:10.768" video="mainVideo" id=subtitle]] +[[!template text="when you start doing one command" start="00:02:11.737" video="mainVideo" id=subtitle]] +[[!template text="and then decide to do a different one instead." start="00:02:12.912" video="mainVideo" id=subtitle]] +[[!template text="For more ideas, check out" start="00:02:15.012" video="mainVideo" id=subtitle]] +[[!template text="Fifteen Ways to Use Embark." start="00:02:16.271" video="mainVideo" id=subtitle]] +[[!template new="1" text="6\." start="00:02:17.495" video="mainVideo" id=subtitle]] +[[!template text="Now that there are Emacs Lisp bindings" start="00:02:18.285" video="mainVideo" id=subtitle]] +[[!template text="for tree-sitter, we can work more easily" start="00:02:20.163" video="mainVideo" id=subtitle]] +[[!template text="with the structure of code instead of" start="00:02:22.139" video="mainVideo" id=subtitle]] +[[!template text="just using regular expressions." start="00:02:23.799" video="mainVideo" id=subtitle]] +[[!template text="Check out the talk" start="00:02:25.461" video="mainVideo" id=subtitle]] +[[!template text="on Tree-edit and structural editing" start="00:02:26.209" video="mainVideo" id=subtitle]] +[[!template text="to learn more." start="00:02:27.804" video="mainVideo" id=subtitle]] +[[!template text="You can use tree-sitter for" start="00:02:28.593" video="mainVideo" id=subtitle]] +[[!template text="intelligent snippets that get information" start="00:02:30.056" video="mainVideo" id=subtitle]] +[[!template text="from the code around them," start="00:02:31.951" video="mainVideo" id=subtitle]] +[[!template text="editing Lisp expressions," start="00:02:33.169" video="mainVideo" id=subtitle]] +[[!template text="and navigating text objects in Evil mode." start="00:02:35.064" video="mainVideo" id=subtitle]] +[[!template text="(That's when Emacs is pretending to be Vi.)" start="00:02:37.401" video="mainVideo" id=subtitle]] +[[!template text="Dynamic modules help us add more to Emacs" start="00:02:39.670" video="mainVideo" id=subtitle]] +[[!template text="than Emacs Lisp easily offers," start="00:02:42.563" video="mainVideo" id=subtitle]] +[[!template text="such as structural editing in OCaml" start="00:02:44.388" video="mainVideo" id=subtitle]] +[[!template text="and using Rust to figure out parentheses" start="00:02:46.804" video="mainVideo" id=subtitle]] +[[!template text="and indentation for Lisp." start="00:02:48.729" video="mainVideo" id=subtitle]] +[[!template text="If you're curious," start="00:02:50.086" video="mainVideo" id=subtitle]] +[[!template text="check out the talk on" start="00:02:50.999" video="mainVideo" id=subtitle]] +[[!template text="Extending Emacs in Rust with Dynamic Modules." start="00:02:51.923" video="mainVideo" id=subtitle]] +[[!template new="1" text="7\." start="00:02:54.336" video="mainVideo" id=subtitle]] +[[!template text="Collaborative editing is now much easier" start="00:02:55.239" video="mainVideo" id=subtitle]] +[[!template text="since the CRDT package is in GNU ELPA." start="00:02:57.294" video="mainVideo" id=subtitle]] +[[!template text="It allows multiple people to edit" start="00:02:59.890" video="mainVideo" id=subtitle]] +[[!template text="the same file over the network," start="00:03:01.632" video="mainVideo" id=subtitle]] +[[!template text="using their own Emacs." start="00:03:03.285" video="mainVideo" id=subtitle]] +[[!template text="This means you can keep your own config" start="00:03:05.025" video="mainVideo" id=subtitle]] +[[!template text="and keybindings, yay!" start="00:03:06.850" video="mainVideo" id=subtitle]] +[[!template text="Watch the Emacs Research Group talk" start="00:03:08.674" video="mainVideo" id=subtitle]] +[[!template text="for an example of how several people" start="00:03:10.400" video="mainVideo" id=subtitle]] +[[!template text="used it to work together." start="00:03:12.185" video="mainVideo" id=subtitle]] +[[!template new="1" text="8\." start="00:03:13.337" video="mainVideo" id=subtitle]] +[[!template text="In case you're still under the impression" start="00:03:13.838" video="mainVideo" id=subtitle]] +[[!template text="that Emacs is just a text editor," start="00:03:15.401" video="mainVideo" id=subtitle]] +[[!template text="some folks have been working on" start="00:03:17.049" video="mainVideo" id=subtitle]] +[[!template text="pretty neat graphical experiments." start="00:03:18.560" video="mainVideo" id=subtitle]] +[[!template text="These OpenGL bindings for Emacs Lisp" start="00:03:20.254" video="mainVideo" id=subtitle]] +[[!template text="use an embedded xwidget," start="00:03:22.432" video="mainVideo" id=subtitle]] +[[!template text="while other prototypes use the SVG support" start="00:03:24.195" video="mainVideo" id=subtitle]] +[[!template text="that's built into Emacs" start="00:03:26.607" video="mainVideo" id=subtitle]] +[[!template text="for Gantt charts," start="00:03:27.700" video="mainVideo" id=subtitle]] +[[!template text="scribbles," start="00:03:29.047" video="mainVideo" id=subtitle]] +[[!template text="and even diagrams." start="00:03:29.819" video="mainVideo" id=subtitle]] +[[!template text="The color-picker from that one" start="00:03:31.320" video="mainVideo" id=subtitle]] +[[!template text="looks particularly useful for CSS." start="00:03:32.790" video="mainVideo" id=subtitle]] +[[!template text="If you want to play around with adding SVGs" start="00:03:34.841" video="mainVideo" id=subtitle]] +[[!template text="to your files and interfaces," start="00:03:37.043" video="mainVideo" id=subtitle]] +[[!template text="svg-icon" start="00:03:38.722" video="mainVideo" id=subtitle]] +[[!template text="and svg-lib" start="00:03:39.762" video="mainVideo" id=subtitle]] +[[!template text="might be good places to start. (Reddit)" start="00:03:40.679" video="mainVideo" id=subtitle]] +[[!template text="Of course, there's always a place" start="00:03:42.733" video="mainVideo" id=subtitle]] +[[!template text="for ASCII art," start="00:03:44.207" video="mainVideo" id=subtitle]] +[[!template text="especially with the new boxy package" start="00:03:45.209" video="mainVideo" id=subtitle]] +[[!template text="that you can use for org files," start="00:03:46.933" video="mainVideo" id=subtitle]] +[[!template text="imenu navigation," start="00:03:48.433" video="mainVideo" id=subtitle]] +[[!template text="and even things in real life." start="00:03:49.753" video="mainVideo" id=subtitle]] +[[!template new="1" text="9\." start="00:03:51.418" video="mainVideo" id=subtitle]] +[[!template text="There have been a lot of great posts, videos," start="00:03:52.208" video="mainVideo" id=subtitle]] +[[!template text="and livestreams about Emacs this year." start="00:03:54.411" video="mainVideo" id=subtitle]] +[[!template text="In addition to the ones" start="00:03:56.312" video="mainVideo" id=subtitle]] +[[!template text="from System Crafters," start="00:03:57.574" video="mainVideo" id=subtitle]] +[[!template text="Emacs Elements," start="00:03:58.973" video="mainVideo" id=subtitle]] +[[!template text="and Protesilaos," start="00:04:00.153" video="mainVideo" id=subtitle]] +[[!template text="John Kitchin" start="00:04:01.664" video="mainVideo" id=subtitle]] +[[!template text="and Mike Zamansky" start="00:04:02.474" video="mainVideo" id=subtitle]] +[[!template text="are back, hooray!" start="00:04:03.220" video="mainVideo" id=subtitle]] +[[!template new="1" text="10\." start="00:04:04.255" video="mainVideo" id=subtitle]] +[[!template text="Lastly, if you want to chat" start="00:04:04.926" video="mainVideo" id=subtitle]] +[[!template text="with other Emacs folks" start="00:04:06.433" video="mainVideo" id=subtitle]] +[[!template text="and get help on Emacs, Org Mode," start="00:04:07.587" video="mainVideo" id=subtitle]] +[[!template text="or other topics," start="00:04:09.788" video="mainVideo" id=subtitle]] +[[!template text="the #emacs and #org-mode" start="00:04:10.715" video="mainVideo" id=subtitle]] +[[!template text="Internet Relay Chat or IRC channels" start="00:04:11.940" video="mainVideo" id=subtitle]] +[[!template text="are now on the libera.chat network" start="00:04:14.365" video="mainVideo" id=subtitle]] +[[!template text="instead of Freenode." start="00:04:16.251" video="mainVideo" id=subtitle]] +[[!template text="If you'd like to add something I've missed," start="00:04:17.517" video="mainVideo" id=subtitle]] +[[!template text="please add them to the wiki page," start="00:04:19.392" video="mainVideo" id=subtitle]] +[[!template text="or e-mail me at sacha@sachachua.com ." start="00:04:21.087" video="mainVideo" id=subtitle]] +[[!template text="That's all for this quick review." start="00:04:23.538" video="mainVideo" id=subtitle]] +[[!template text="Enjoy the rest of EmacsConf 2021!" start="00:04:25.058" video="mainVideo" id=subtitle]] + [[!inline pages="internal(2021/info/news-schedule)" raw="yes"]] [[!inline pages="internal(2021/info/news-nav)" raw="yes"]] diff --git a/2021/talks/nongnu.md b/2021/talks/nongnu.md index 1f88f610..00eb1a15 100644 --- a/2021/talks/nongnu.md +++ b/2021/talks/nongnu.md @@ -1,12 +1,12 @@ [[!meta title="NonGNU ELPA Update"]] -[[!meta copyright="Copyright © 2021 Kaluđerčić, Philip"]] +[[!meta copyright="Copyright © 2021 Philip Kaludercic"]] [[!inline pages="internal(2021/info/nongnu-nav)" raw="yes"]] <!-- You can manually edit this file to update the abstract, add links, etc. ---> # NonGNU ELPA Update -Kaluđerčić, Philip +Philip Kaludercic NonGNU ELPA was announced last year, as a package repository that will be enabled by default in Emacs, but doesn't require diff --git a/2021/talks/structural.md b/2021/talks/structural.md index 1c9618f8..d1fca711 100644 --- a/2021/talks/structural.md +++ b/2021/talks/structural.md @@ -1,57 +1,43 @@ -[[!meta title="Why structural editing is the future of code editing, and a novel approach for editing everyday languages"]] +[[!meta title="Tree-edit: Structural editing for Java, Python, C, and beyond"]] [[!meta copyright="Copyright © 2021 Ethan Leba"]] [[!inline pages="internal(2021/info/structural-nav)" raw="yes"]] <!-- You can manually edit this file to update the abstract, add links, etc. ---> -# Why structural editing is the future of code editing, and a novel approach for editing everyday languages +# Tree-edit: Structural editing for Java, Python, C, and beyond! Ethan Leba -I liken the state of code editing today to the early days of computer -science, -when assembly was the only language available. When writing assembly, first -we -think of how they want the logic of the program to behave, and then secondly -translate this logic into Assembly. A tedious and error-prone process – -like -shoving a square peg into a round hole. But how could it be otherwise? -That's -simply what 'programming' was… until we realized there were far better -ways to -suit our languages to fit the way that we humans think. - -The problem with assembly is that fundamental building blocks of the -language don't match the way we think of programs: we don't think in -terms of pushing and popping registers, we think in terms of -variables, functions, etc. So when we write and edit code, why do we -edit in terms of deleting, inserting, replacing characters – -not wrapping, inserting, raising and deleting expressions and -statements? Because of the mismatch between the way we reason about -code and the way that we edit it, we must translate our intents into -the sequence of character manipulations that achieve it. - -In this talk, I'd like to discuss a vision for how writing code could be – -A -paradigm where the editing operations match the way that we think. I'll also -demonstrate a work-in-progress package 'tree-edit', which seeks to achieve -this -vision, providing a framework for structural editing in any language that -the -tree-sitter package supports. - -I'd also like to discuss the implementation of 'tree-edit', which uses an -embedded logic programming DSL in a novel way to power it's syntax tree -generation. +In this talk, I'll discuss a vision for how writing code could be, where the +editing operations map directly to the primitives of the language itself -- and +my humble attempt of implementing this vision. _tree-edit_ seeks to provides a +structural editing plugin supporting conceivably any language with a tree-sitter +parser. +**Structural editing does not have to be relegated to lisps or niche DSLs.** +I liken the state of code editing today to writing assembly. The reason why +people like Python more than assembly is that for most purposes, the building +blocks of the language are mismatched with our thought process. We don't think +in terms of registers and addresses, we think in terms of variables, functions, +etc. So when we write and edit code, why do we edit in terms of deleting, +inserting, replacing characters – not wrapping, inserting, raising, +deleting expressions and statements? + +I'll also discuss the implementation of tree-edit, which uses a novel +combination of the fantastic +[tree-sitter](https://github.com/emacs-tree-sitter/elisp-tree-sitter) parser +with an embedded logic programming DSL ([miniKanren](http://minikanren.org/), +using elisp port [reazon](https://github.com/nickdrozd/reazon)) to power it's +syntax tree generation. + +Check out the GitHub repo [here](https://github.com/ethan-leba/tree-edit)! # Outline -- 5-10 minutes: (brief description/outline) - - discuss motivation - - demonstrate tree-edit - - demonstrate tree-edit syntax tree generation engine +- Discuss motivation (Why should I care?) +- Demonstrate tree-edit (Live-coding with tree-edit) +- Demonstrate tree-edit syntax tree generator (Elevator pitch on miniKanren) <!-- - 20 minutes: (brief description/outline) diff --git a/2021/talks/tech.md b/2021/talks/tech.md index 4a46c629..d091d132 100644 --- a/2021/talks/tech.md +++ b/2021/talks/tech.md @@ -19,28 +19,17 @@ technical language course. By using org-babel to pull in "live" code for REST requests, language examples, and shell scripts, one can be sure that the documentation and slides are never out of date. -Two cases are presented: - -- API documentation for a REST service (exported from org to html - and PDF) -- Slides for a Java Microservice course (presented within emacs, - handouts in 2 styles as PDF) - -The session will show how leverage org-babel, restclient, -org-treeslide, as well as show how to create your own language backend -for org-babel to make sure your own preferred workflow is used. - +The session will show how leverage org-babel, restclient and +org-treeslide to write and present technical documentation with style. # Outline -- 5-10 minutes: We'll pick one of the two use cases and briefly show - it and its result. -<!--- 20 minutes: We'll briefly show both use cases. -- 40 minutes: We'll show the details how to combine the mentioned - packages, as well as showing the custom org-babel backend. ---> - +- Introduction +- Demo: Developer guide +- Demo: REST API guide +- Demo: Presentations +- Used packages and configuration [[!inline pages="internal(2021/info/tech-schedule)" raw="yes"]] diff --git a/2021/talks/test.md b/2021/talks/test.md index 9766b3b6..06286b7c 100644 --- a/2021/talks/test.md +++ b/2021/talks/test.md @@ -23,7 +23,7 @@ running 'dofile "foo.lua"'), and then has several tests for that class and its methods; and we can put another block with tests like that after the class Bletch, and other blocks after some functions. Eepitch allows sending these tests line by line to the Lua interpreter by -typing <f8> on each line that we want to send, and this lets us create +typing <f8\> on each line that we want to send, and this lets us create tests that are very easy to understand even without writing comments; this gives us a very quick way to document code by executable tests, that is super-great for experimental code that is still going to @@ -38,9 +38,7 @@ current major mode by running \`M-x find-eeit-links'; this can also be used to add support for test blocks to more languages (or, more precisely: to more major modes). -Cheers =), - Eduardo Ochs - <http://angg.twu.net/#eev> +Eduardo Ochs <http://angg.twu.net/emacsconf2021.html> diff --git a/2021/talks/unix.md b/2021/talks/unix.md index 2516aaec..947730b1 100644 --- a/2021/talks/unix.md +++ b/2021/talks/unix.md @@ -23,14 +23,13 @@ to be more performant than without. # Outline -- 5-10 minutes: - Cut out the portions of explaining the whole UNIX and GNU philosophies - and instead talk about concrete examples: - - How can one limit their usage of CLI tools while still maintaining +- How can one limit their usage of CLI tools while still maintaining the ideals of both. - - How using CLI tools can still perfectly flow into Emacs. - - How having all programs in Emacs and unified keybindings is akin +- How using CLI tools can still perfectly flow into Emacs. +- How having all programs in Emacs and unified keybindings is akin to a terminal user. +- Why thinking about computational philosophies might itself be an + impediment. <!-- - 20 minutes: |