diff options
39 files changed, 1528 insertions, 143 deletions
diff --git a/2020/schedule-details.txt b/2020/schedule-details.txt new file mode 100644 index 00000000..6d26abec --- /dev/null +++ b/2020/schedule-details.txt @@ -0,0 +1,51 @@ +<table width="100%"><tr><td colspan="4"><strong>NOVEMBER 28 (Saturday)<strong></td></tr> +<tr><td colspan="4"><strong>9:00 - 9:30 Opening remarks<strong></td></tr> +<tr><td colspan="4"><strong>9:30 - 12:00 User talks<strong></td></tr> +<tr><td colspan="4"><strong>User stories<strong></td></tr> +<tr><td width=100> 9:33 AM</td><td width=100> 9:43 AM</td><td><a href="./01">Emacs News Highlights</a></td><td>Sacha Chua</td></tr> +<tr><td width=100> 9:46 AM</td><td width=100>10:06 AM</td><td><a href="./02">An Emacs Developer Story: From User to Maintainer</a></td><td>Leo Vivier</td></tr> +<tr><td colspan="4"><strong>Exploring Emacs's flexibility<strong></td></tr> +<tr><td width=100>10:09 AM</td><td width=100>10:19 AM</td><td><a href="./03">Idea to Novel Superstructure: Emacs for Writing</a></td><td>Bala Ramadurai</td></tr> +<tr><td width=100>10:22 AM</td><td width=100>10:32 AM</td><td><a href="./04">Music in Plain Text</a></td><td>Jonathan Gregory</td></tr> +<tr><td width=100>10:35 AM</td><td width=100>10:45 AM</td><td><a href="./05">Bard Bivou(m)acs - Building a bandcamp-like page for an album of music</a></td><td>Grant Shangreaux</td></tr> +<tr><td colspan="4"><strong>Emacs configuration<strong></td></tr> +<tr><td width=100>10:48 AM</td><td width=100>10:58 AM</td><td><a href="./06">Trivial Emacs Kits</a></td><td>Corwin Brust</td></tr> +<tr><td width=100>11:01 AM</td><td width=100>11:21 AM</td><td><a href="./07">Beyond Vim and Emacs: A Scalable UI Paradigm</a></td><td>Sid Kasivajhula</td></tr> +<tr><td width=100>11:24 AM</td><td width=100>11:44 AM</td><td><a href="./08">Building reproducible Emacs</a></td><td>Andrew Tropin</td></tr> +<tr><td colspan="4"><strong>12:00 - 13:00 Lunch<strong></td></tr> +<tr><td colspan="4"><strong>13:00 - 16:30 Afternoon talks<strong></td></tr> +<tr><td width=100> 1:03 PM</td><td width=100> 1:13 PM</td><td><a href="./09">Orgmode - your life in plain text</a></td><td>Rainer König</td></tr> +<tr><td width=100> 1:16 PM</td><td width=100> 1:26 PM</td><td><a href="./10">Lead your future with Org</a></td><td>Andrea</td></tr> +<tr><td width=100> 1:29 PM</td><td width=100> 1:49 PM</td><td><a href="./11">the org-gtd package: opinions about Getting Things Done</a></td><td>Aldric</td></tr> +<tr><td width=100> 1:52 PM</td><td width=100> 2:02 PM</td><td><a href="./12">One Big-ass Org File or multiple tiny ones? Finally, the End of the debate!</a></td><td>Leo Vivier</td></tr> +<tr><td width=100> 2:05 PM</td><td width=100> 2:15 PM</td><td><a href="./13">Experience Report: Steps to "Emacs Hyper Notebooks"</a></td><td>Joseph Corneli, Raymond Puzio, and Cameron Ray Smith</td></tr> +<tr><td width=100> 2:18 PM</td><td width=100> 2:38 PM</td><td><a href="./14">Literate Programming in Emacs Org-Mode</a></td><td>Adam Ard</td></tr> +<tr><td width=100> 2:41 PM</td><td width=100> 2:51 PM</td><td><a href="./15">Moving from Jekyll to OrgMode, an experience report</a></td><td>Adolfo Villafiorita</td></tr> +<tr><td width=100> 2:54 PM</td><td width=100> 3:14 PM</td><td><a href="./16">Org-roam: Presentation, Demonstration, and What's on the Horizon</a></td><td>Leo Vivier</td></tr> +<tr><td width=100> 3:17 PM</td><td width=100> 3:37 PM</td><td><a href="./17">Org-mode and Org-Roam for Scholars and Researchers</a></td><td>Noorah Alhasan</td></tr> +<tr><td width=100> 3:40 PM</td><td width=100> 4:00 PM</td><td><a href="./18">Org-roam: Technical Presentation</a></td><td>Leo Vivier</td></tr> +<tr><td width=100> 4:03 PM</td><td width=100> 4:13 PM</td><td><a href="./19">Sharing blogs (and more) with org-webring</a></td><td>Brett Gilio</td></tr> +<tr><td width=100> 4:16 PM</td><td width=100> 4:36 PM</td><td><a href="./20">OMG Macros</a></td><td>Corwin Brust</td></tr> +<tr><td colspan="4"><strong>16:30 - 17:00 Closing remarks<strong></td></tr> +<tr><td colspan="4"><strong>17:00 Overflow talks<strong></td></tr> +<tr><td width=100> 5:03 PM</td><td width=100> 5:43 PM</td><td><a href="./21">On why most of the best features in eev look like 5-minute hacks</a></td><td>Eduardo Ochs</td></tr> +<tr><td colspan="4"><strong>NOVEMBER 29 (Sunday)<strong></td></tr> +<tr><td colspan="4"><strong>9:00 - 9:30 Opening remarks<strong></td></tr> +<tr><td colspan="4"><strong>9:30 - 12:00 Morning talks<strong></td></tr> +<tr><td width=100> 9:33 AM</td><td width=100> 9:53 AM</td><td><a href="./22">Powering-up Special Blocks</a></td><td>Musa Al-hassy</td></tr> +<tr><td width=100> 9:56 AM</td><td width=100>10:46 AM</td><td><a href="./23">Incremental Parsing with emacs-tree-sitter</a></td><td>Tuấn-Anh Nguyễn</td></tr> +<tr><td width=100>10:49 AM</td><td width=100>11:09 AM</td><td><a href="./24">Analyze code quality through Emacs: a smart forensics approach and the story of a hack</a></td><td>Andrea</td></tr> +<tr><td width=100>11:12 AM</td><td width=100>11:22 AM</td><td><a href="./25">Traverse complex JSON structures with live feedback</a></td><td>Zen Monk Alain M. Lafon</td></tr> +<tr><td colspan="4"><strong>12:00 - 13:00 Lunch<strong></td></tr> +<tr><td colspan="4"><strong>13:00 - 16:30 Afternoon talks<strong></td></tr> +<tr><td width=100> 1:03 PM</td><td width=100> 1:13 PM</td><td><a href="./26">Emacs as a Highschooler: How It Changed My Life</a></td><td>Pierce Wang</td></tr> +<tr><td width=100> 1:16 PM</td><td width=100> 1:26 PM</td><td><a href="./27">State of Retro Gaming in Emacs</a></td><td>Vasilij "wasamasa" Schneidermann</td></tr> +<tr><td width=100> 1:29 PM</td><td width=100> 2:19 PM</td><td><a href="./28">Welcome To The Dungeon</a></td><td>Erik Elmshauser and Corwin Brust</td></tr> +<tr><td width=100> 2:22 PM</td><td width=100> 2:42 PM</td><td><a href="./29">Pathing of Least Resistance</a></td><td>Corwin Brust</td></tr> +<tr><td width=100> 2:45 PM</td><td width=100> 2:55 PM</td><td><a href="./30">A tour of vterm</a></td><td>Gabriele Bozzola (@sbozzolo)</td></tr> +<tr><td width=100> 2:58 PM</td><td width=100> 3:08 PM</td><td><a href="./31">Lakota Language and Emacs</a></td><td>Grant Shangreaux</td></tr> +<tr><td width=100> 3:11 PM</td><td width=100> 3:31 PM</td><td><a href="./32">Object Oriented Code in the Gnus Newsreader</a></td><td>Eric Abrahamsen</td></tr> +<tr><td width=100> 3:34 PM</td><td width=100> 3:54 PM</td><td><a href="./33">Maxima a computer algebra system in Emacs</a></td><td>Fermin MF</td></tr> +<tr><td width=100> 3:57 PM</td><td width=100> 4:17 PM</td><td><a href="./34">Extend Emacs to Modern GUI Applications with EAF</a></td><td>Matthew Zeng</td></tr> +<tr><td width=100> 4:20 PM</td><td width=100> 4:30 PM</td><td><a href="./35">WAVEing at Repetitive Repetitive Repetitive Music</a></td><td>Zachary Kanfer</td></tr> +<tr><td colspan="4"><strong>16:30 - 17:00 Closing remarks<strong></td></tr></table> diff --git a/2020/schedule.md b/2020/schedule.md new file mode 100644 index 00000000..6eba9660 --- /dev/null +++ b/2020/schedule.md @@ -0,0 +1,63 @@ + +# Schedule + +[[!meta title="Schedule"]] +[[!meta copyright="Copyright © 2020 Amin Bandali and Sacha Chua"]] +<!--- schedule.md is automatically exported from schedule.org. Please do not edit schedule.md directly. ---> + +EmacsConf 2020 will be on November 28 (Sat) and November 29 (Sun), 2020 from 9am-5pm Toronto/EST time; equivalently, 6am-2pm PST, 2pm-10pm UTC, 3pm-11pm Zurich/CET. Instructions on how to watch/participate will be posted at <https://emacsconf.org/2020> closer to the day of the virtual conference. + +Please note that the times on this schedule are a rough approximation, and that the talks might be rearranged or dropped depending on speaker availability. We are aiming for having most talks presented live, but some may be presented prerecorded to reduce technical risks. Further, the speakers will try to be available on the IRC backchannel, #emacsconf on irc.freenode.net, to answer questions. If there’s not enough time in the day for all the talks that are available, we will play any remaining prerecorded talks over the lunch break or after the conference ends as time permits, and they will made available with the rest of the talks in the following days/weeks after the event. + +<table width="100%"><tr><td colspan="4"><strong>NOVEMBER 28 (Saturday)<strong></td></tr> +<tr><td colspan="4"><strong>9:00 - 9:30 Opening remarks<strong></td></tr> +<tr><td colspan="4"><strong>9:30 - 12:00 User talks<strong></td></tr> +<tr><td colspan="4"><strong>User stories<strong></td></tr> +<tr><td width=100> 9:33 AM</td><td width=100> 9:43 AM</td><td><a href="./01">Emacs News Highlights</a></td><td>Sacha Chua</td></tr> +<tr><td width=100> 9:46 AM</td><td width=100>10:06 AM</td><td><a href="./02">An Emacs Developer Story: From User to Maintainer</a></td><td>Leo Vivier</td></tr> +<tr><td colspan="4"><strong>Exploring Emacs's flexibility<strong></td></tr> +<tr><td width=100>10:09 AM</td><td width=100>10:19 AM</td><td><a href="./03">Idea to Novel Superstructure: Emacs for Writing</a></td><td>Bala Ramadurai</td></tr> +<tr><td width=100>10:22 AM</td><td width=100>10:32 AM</td><td><a href="./04">Music in Plain Text</a></td><td>Jonathan Gregory</td></tr> +<tr><td width=100>10:35 AM</td><td width=100>10:45 AM</td><td><a href="./05">Bard Bivou(m)acs - Building a bandcamp-like page for an album of music</a></td><td>Grant Shangreaux</td></tr> +<tr><td colspan="4"><strong>Emacs configuration<strong></td></tr> +<tr><td width=100>10:48 AM</td><td width=100>10:58 AM</td><td><a href="./06">Trivial Emacs Kits</a></td><td>Corwin Brust</td></tr> +<tr><td width=100>11:01 AM</td><td width=100>11:21 AM</td><td><a href="./07">Beyond Vim and Emacs: A Scalable UI Paradigm</a></td><td>Sid Kasivajhula</td></tr> +<tr><td width=100>11:24 AM</td><td width=100>11:44 AM</td><td><a href="./08">Building reproducible Emacs</a></td><td>Andrew Tropin</td></tr> +<tr><td colspan="4"><strong>12:00 - 13:00 Lunch<strong></td></tr> +<tr><td colspan="4"><strong>13:00 - 16:30 Afternoon talks<strong></td></tr> +<tr><td width=100> 1:03 PM</td><td width=100> 1:13 PM</td><td><a href="./09">Orgmode - your life in plain text</a></td><td>Rainer König</td></tr> +<tr><td width=100> 1:16 PM</td><td width=100> 1:26 PM</td><td><a href="./10">Lead your future with Org</a></td><td>Andrea</td></tr> +<tr><td width=100> 1:29 PM</td><td width=100> 1:49 PM</td><td><a href="./11">the org-gtd package: opinions about Getting Things Done</a></td><td>Aldric</td></tr> +<tr><td width=100> 1:52 PM</td><td width=100> 2:02 PM</td><td><a href="./12">One Big-ass Org File or multiple tiny ones? Finally, the End of the debate!</a></td><td>Leo Vivier</td></tr> +<tr><td width=100> 2:05 PM</td><td width=100> 2:15 PM</td><td><a href="./13">Experience Report: Steps to "Emacs Hyper Notebooks"</a></td><td>Joseph Corneli, Raymond Puzio, and Cameron Ray Smith</td></tr> +<tr><td width=100> 2:18 PM</td><td width=100> 2:38 PM</td><td><a href="./14">Literate Programming in Emacs Org-Mode</a></td><td>Adam Ard</td></tr> +<tr><td width=100> 2:41 PM</td><td width=100> 2:51 PM</td><td><a href="./15">Moving from Jekyll to OrgMode, an experience report</a></td><td>Adolfo Villafiorita</td></tr> +<tr><td width=100> 2:54 PM</td><td width=100> 3:14 PM</td><td><a href="./16">Org-roam: Presentation, Demonstration, and What's on the Horizon</a></td><td>Leo Vivier</td></tr> +<tr><td width=100> 3:17 PM</td><td width=100> 3:37 PM</td><td><a href="./17">Org-mode and Org-Roam for Scholars and Researchers</a></td><td>Noorah Alhasan</td></tr> +<tr><td width=100> 3:40 PM</td><td width=100> 4:00 PM</td><td><a href="./18">Org-roam: Technical Presentation</a></td><td>Leo Vivier</td></tr> +<tr><td width=100> 4:03 PM</td><td width=100> 4:13 PM</td><td><a href="./19">Sharing blogs (and more) with org-webring</a></td><td>Brett Gilio</td></tr> +<tr><td width=100> 4:16 PM</td><td width=100> 4:36 PM</td><td><a href="./20">OMG Macros</a></td><td>Corwin Brust</td></tr> +<tr><td colspan="4"><strong>16:30 - 17:00 Closing remarks<strong></td></tr> +<tr><td colspan="4"><strong>17:00 Overflow talks<strong></td></tr> +<tr><td width=100> 5:03 PM</td><td width=100> 5:43 PM</td><td><a href="./21">On why most of the best features in eev look like 5-minute hacks</a></td><td>Eduardo Ochs</td></tr> +<tr><td colspan="4"><strong>NOVEMBER 29 (Sunday)<strong></td></tr> +<tr><td colspan="4"><strong>9:00 - 9:30 Opening remarks<strong></td></tr> +<tr><td colspan="4"><strong>9:30 - 12:00 Morning talks<strong></td></tr> +<tr><td width=100> 9:33 AM</td><td width=100> 9:53 AM</td><td><a href="./22">Powering-up Special Blocks</a></td><td>Musa Al-hassy</td></tr> +<tr><td width=100> 9:56 AM</td><td width=100>10:46 AM</td><td><a href="./23">Incremental Parsing with emacs-tree-sitter</a></td><td>Tuấn-Anh Nguyễn</td></tr> +<tr><td width=100>10:49 AM</td><td width=100>11:09 AM</td><td><a href="./24">Analyze code quality through Emacs: a smart forensics approach and the story of a hack</a></td><td>Andrea</td></tr> +<tr><td width=100>11:12 AM</td><td width=100>11:22 AM</td><td><a href="./25">Traverse complex JSON structures with live feedback</a></td><td>Zen Monk Alain M. Lafon</td></tr> +<tr><td colspan="4"><strong>12:00 - 13:00 Lunch<strong></td></tr> +<tr><td colspan="4"><strong>13:00 - 16:30 Afternoon talks<strong></td></tr> +<tr><td width=100> 1:03 PM</td><td width=100> 1:13 PM</td><td><a href="./26">Emacs as a Highschooler: How It Changed My Life</a></td><td>Pierce Wang</td></tr> +<tr><td width=100> 1:16 PM</td><td width=100> 1:26 PM</td><td><a href="./27">State of Retro Gaming in Emacs</a></td><td>Vasilij "wasamasa" Schneidermann</td></tr> +<tr><td width=100> 1:29 PM</td><td width=100> 2:19 PM</td><td><a href="./28">Welcome To The Dungeon</a></td><td>Erik Elmshauser and Corwin Brust</td></tr> +<tr><td width=100> 2:22 PM</td><td width=100> 2:42 PM</td><td><a href="./29">Pathing of Least Resistance</a></td><td>Corwin Brust</td></tr> +<tr><td width=100> 2:45 PM</td><td width=100> 2:55 PM</td><td><a href="./30">A tour of vterm</a></td><td>Gabriele Bozzola (@sbozzolo)</td></tr> +<tr><td width=100> 2:58 PM</td><td width=100> 3:08 PM</td><td><a href="./31">Lakota Language and Emacs</a></td><td>Grant Shangreaux</td></tr> +<tr><td width=100> 3:11 PM</td><td width=100> 3:31 PM</td><td><a href="./32">Object Oriented Code in the Gnus Newsreader</a></td><td>Eric Abrahamsen</td></tr> +<tr><td width=100> 3:34 PM</td><td width=100> 3:54 PM</td><td><a href="./33">Maxima a computer algebra system in Emacs</a></td><td>Fermin MF</td></tr> +<tr><td width=100> 3:57 PM</td><td width=100> 4:17 PM</td><td><a href="./34">Extend Emacs to Modern GUI Applications with EAF</a></td><td>Matthew Zeng</td></tr> +<tr><td width=100> 4:20 PM</td><td width=100> 4:30 PM</td><td><a href="./35">WAVEing at Repetitive Repetitive Repetitive Music</a></td><td>Zachary Kanfer</td></tr> +<tr><td colspan="4"><strong>16:30 - 17:00 Closing remarks<strong></td></tr></table> + diff --git a/2020/schedule.org b/2020/schedule.org new file mode 100644 index 00000000..1f5348ce --- /dev/null +++ b/2020/schedule.org @@ -0,0 +1,11 @@ +#+begin_export md +[[!meta title="Schedule"]] +[[!meta copyright="Copyright © 2020 Amin Bandali and Sacha Chua"]] +<!--- schedule.md is automatically exported from schedule.org. Please do not edit schedule.md directly. ---> +#+end_export + +EmacsConf 2020 will be on November 28 (Sat) and November 29 (Sun), 2020 from 9am-5pm Toronto/EST time; equivalently, 6am-2pm PST, 2pm-10pm UTC, 3pm-11pm Zurich/CET. Instructions on how to watch/participate will be posted at https://emacsconf.org/2020 closer to the day of the virtual conference. + +Please note that the times on this schedule are a rough approximation, and that the talks might be rearranged or dropped depending on speaker availability. We are aiming for having most talks presented live, but some may be presented prerecorded to reduce technical risks. Further, the speakers will try to be available on the IRC backchannel, #emacsconf on irc.freenode.net, to answer questions. If there’s not enough time in the day for all the talks that are available, we will play any remaining prerecorded talks over the lunch break or after the conference ends as time permits, and they will made available with the rest of the talks in the following days/weeks after the event. + +#+INCLUDE: "schedule-details.txt" export md diff --git a/2020/schedule/01.md b/2020/schedule/01.md new file mode 100644 index 00000000..79be6e7a --- /dev/null +++ b/2020/schedule/01.md @@ -0,0 +1,14 @@ +# Emacs News Highlights +Saturday, Nov 28 2020, 9:33 AM - 9:43 AM +Sacha Chua + +Quick highlights from Emacs News since the last EmacsConf + + + + +Back to the [[schedule]] + +All times are approximate, and we might shuffle talks around as needed. Please check https://emacsconf.org/2020 a few days before the start of the conference for instructions on how to watch and participate. +<!-- automatically generated from submissions.org ---> +[[!meta title="Emacs News Highlights"]] diff --git a/2020/schedule/02.md b/2020/schedule/02.md new file mode 100644 index 00000000..04ffe779 --- /dev/null +++ b/2020/schedule/02.md @@ -0,0 +1,31 @@ +# An Emacs Developer Story: From User to Maintainer +Saturday, Nov 28 2020, 9:46 AM - 10:06 AM +Leo Vivier + +In light of the new development philosophy for Org-mode, I would like +to present my developer story from discovering Org-mode in 2014 to +becoming a maintainer for a big project in 2020. The goal is to show +the logical progression between interest, gaining skills, becoming an +expert, authoring, contributing and maintaining, in hope that it would +bolster people to do the same. + +As someone who majored in a non CS-related degree, I feel that my +story has a potential to grasp the attention of many attendees, since +I basically started from the bottom of the ladder. Most people should +be able to relate to one step on that ladder, which should hopefully +encourage them to reach for the next step. + +My init files, which show the organic growth of my configuration: +<https://github.com/zaeph/.emacs.d> + +Org-roam, the software which I am maintaining +<https://github.com/org-roam/org-roam> + + + + +Back to the [[schedule]] + +All times are approximate, and we might shuffle talks around as needed. Please check https://emacsconf.org/2020 a few days before the start of the conference for instructions on how to watch and participate. +<!-- automatically generated from submissions.org ---> +[[!meta title="An Emacs Developer Story: From User to Maintainer"]] diff --git a/2020/schedule/03.md b/2020/schedule/03.md new file mode 100644 index 00000000..07500811 --- /dev/null +++ b/2020/schedule/03.md @@ -0,0 +1,56 @@ +# Idea to Novel Superstructure: Emacs for Writing +Saturday, Nov 28 2020, 10:09 AM - 10:19 AM +Bala Ramadurai + +You want to write a novel, but you don't know how to create an +outline. You have a seed idea for a novel, and you intend to expand +it into a complete story. You have many ideas for a novel, and you +are wondering how to proceed. You started writing your heart out, and +you now feel the need to create a framework for a novel. + +Worry not, Emacs is here to the rescue. + +Listen to this talk to find out how to develop your story idea into a +framework for a novel, all within your favourite text editor, Emacs. + +What you will learn during the session: + +- How to write a single-line plot for a novel +- How to write the backbone of the novel, the main character arc +- How to create characters and write their arcs +- How to create a story design +- How to create the scenes design +- How to plan your novel writing project +- How to track your project + +The modified Emacs template has all the ingredients and flow to start +from a basic idea to a full fledged thrashed out novel superstructure. + +Once you are done with the superstructure, you can use the planning +and clocking infrastructure to finish scene after scene, thus +finishing your masterpiece. + +We will use: + +- The snowflake method - + +<https://www.advancedfictionwriting.com/articles/snowflake-method/> + +- The seven-point story structure - + +<https://invidious.snopyta.org/watch?v=KcmiqQ9NpPE&list=PLL7D_RCJrhcLzLiO17m7KcnG5WrjcUxGz> + +- The original emacs writing template - + +<https://tonyballantyne.com/EmacsWritingTips.html> + +- Some spices from the speaker's kitchen + + + + +Back to the [[schedule]] + +All times are approximate, and we might shuffle talks around as needed. Please check https://emacsconf.org/2020 a few days before the start of the conference for instructions on how to watch and participate. +<!-- automatically generated from submissions.org ---> +[[!meta title="Idea to Novel Superstructure: Emacs for Writing"]] diff --git a/2020/schedule/04.md b/2020/schedule/04.md new file mode 100644 index 00000000..50315994 --- /dev/null +++ b/2020/schedule/04.md @@ -0,0 +1,24 @@ +# Music in Plain Text +Saturday, Nov 28 2020, 10:22 AM - 10:32 AM +Jonathan Gregory + +LilyPond is an extensible program for producing high-quality sheet +music engraved with traditional layout rules. Similar to LaTeX and +other typesetting programs, its input format simply describes the +visual layout of the score using commands to define musical +expressions. This makes collaboration easier, prevents users from +having to adjust layout settings manually, and faciliates digital +archiving and distribution of musical scores. In this talk, I begin +by showcasing LilyPond syntax and mode using literate programming +techniques as examples for building sheet music in Emacs, and proceed +with an overview of the setup I use for producing music books with GNU +Make, LilyPond, and LilyPond-mode. + + + + +Back to the [[schedule]] + +All times are approximate, and we might shuffle talks around as needed. Please check https://emacsconf.org/2020 a few days before the start of the conference for instructions on how to watch and participate. +<!-- automatically generated from submissions.org ---> +[[!meta title="Music in Plain Text"]] diff --git a/2020/schedule/05.md b/2020/schedule/05.md new file mode 100644 index 00000000..c05933d9 --- /dev/null +++ b/2020/schedule/05.md @@ -0,0 +1,28 @@ +# Bard Bivou(m)acs - Building a bandcamp-like page for an album of music +Saturday, Nov 28 2020, 10:35 AM - 10:45 AM +Grant Shangreaux + +I hoped to become a successful musician someday, and while that has +yet to happen, I've recorded a fair share of unreleased music over the +years. I decided it was time to share some of it with the world +through the power of Emacs! + +Rather than using the available non-free (or even free?) platforms out +there, I decided to build a Bandcamp-like page from scratch. While I +could have chosen many of the static-site building tools, I decided to +use the tool closest to my heart and automate the process of building +a web page from a directory of audio files with Emacs Lisp. + +I will share with you how I managed to create a personal workflow for +releasing an album without leaving the One True Editor that includes +editing audio metadata with EMMS and generating HTML while cobbling +together yasnippet and the format macro. + + + + +Back to the [[schedule]] + +All times are approximate, and we might shuffle talks around as needed. Please check https://emacsconf.org/2020 a few days before the start of the conference for instructions on how to watch and participate. +<!-- automatically generated from submissions.org ---> +[[!meta title="Bard Bivou(m)acs - Building a bandcamp-like page for an album of music"]] diff --git a/2020/schedule/06.md b/2020/schedule/06.md new file mode 100644 index 00000000..9989ed77 --- /dev/null +++ b/2020/schedule/06.md @@ -0,0 +1,15 @@ +# Trivial Emacs Kits +Saturday, Nov 28 2020, 10:48 AM - 10:58 AM +Corwin Brust + +Techniques to help new users bootstrap a more gentle introduction to +Emacs, one (short) init.el file at a time. + + + + +Back to the [[schedule]] + +All times are approximate, and we might shuffle talks around as needed. Please check https://emacsconf.org/2020 a few days before the start of the conference for instructions on how to watch and participate. +<!-- automatically generated from submissions.org ---> +[[!meta title="Trivial Emacs Kits"]] diff --git a/2020/schedule/07.md b/2020/schedule/07.md new file mode 100644 index 00000000..7651232a --- /dev/null +++ b/2020/schedule/07.md @@ -0,0 +1,47 @@ +# Beyond Vim and Emacs: A Scalable UI Paradigm +Saturday, Nov 28 2020, 11:01 AM - 11:21 AM +Sid Kasivajhula + +A practiced dexterity with the arcane incantations known as keybindings is +the true mark of the veteran Emacs user. Yet, it takes years to get there, +and if you tried to explain what you were doing there, nobody would +understand, least of all those Vim users who would say that the whole +enterprise was foolhardy to begin with. They don't get it, those fools. Let +them flounder about in their "normal mode." Normal isn't good enough for +me! I want exceptional, IDEAL, I want… glorious mode, that's what I want. +And the only thing that'll cut it is if I do it … my way. Why, with my +precious emacs.d, I'm invincible! Well… just between you and me, there +are times when learning new keybindings every time someone makes a new toy +gets to be a bit of a drag, and some days I can't keep my C-c's and my C-c +C-c's straight if I'm being honest with you, but you'll never catch me +admitting it! I do wonder if there's a better way to get to glorious mode, +even though my .emacs.d is already perfect (of course). + +If this secretly sounds like you, then rejoice, there just might be a new +way, a better way! And you could potentially get there in days instead of +years, so that even your script kiddie coworker with their "VSCode" (groan) +may at last come around to your way of looking at things, and, maybe, just +maybe, even those Vim users (hiss!)! + +"Epistemic" Emacs is a user interface paradigm based on treating aspects of +the user interface as conceptual entities that can be reasoned about in +terms of a standard language. Essentially, instead of learning keybindings +for each specific action, you learn keybindings for general, conceptual +habits, kind of like Vim, except that instead of reasoning only about text, +you reason about any aspect of your interaction with the machine, whether +it's windows or buffers or even those interactions themselves. The promise +of this approach is that you just learn a simple language once, and you can +then apply it to vastly different aspects of your user interface, with the +same keybindings doing different things in different contexts, in sensible +and predictable ways. And in principle, whenever that new toy technology +comes around, anyone could extend the UI language to apply to it in a +matter of minutes, and you'd already know how to use it. + + + + +Back to the [[schedule]] + +All times are approximate, and we might shuffle talks around as needed. Please check https://emacsconf.org/2020 a few days before the start of the conference for instructions on how to watch and participate. +<!-- automatically generated from submissions.org ---> +[[!meta title="Beyond Vim and Emacs: A Scalable UI Paradigm"]] diff --git a/2020/schedule/08.md b/2020/schedule/08.md new file mode 100644 index 00000000..a0b4c5c4 --- /dev/null +++ b/2020/schedule/08.md @@ -0,0 +1,32 @@ +# Building reproducible Emacs +Saturday, Nov 28 2020, 11:24 AM - 11:44 AM +Andrew Tropin + +It's not always easy to take part of someone's configuration and make +it work, it's almost never easy to move your configuration to fresh OS +installation or hardware. Not sure that this snippet is enough to +make package work? Forgot to install ripgrep in your system for +rg.el? Got a broken version of package on package-install? + +There is a way to make an Emacs configuration reliable, composable and +self-contained. It's possible to freeze package versions, create +systemd unit for emacs daemon, maintain system dependencies and +package subconfigurations in one place with one tool. + +The talk explains how to leverage the power of nix package manager and +use-package to make pretty good emacs configuration. + +There is a stream record on the same topic: +<https://youtu.be/2_e3kPJQ93s>. It lacks few interesting points about +composability of such configuration approach, but already have enough +interesting information. The talk will be a little more structured +and more Emacs-users oriented. + + + + +Back to the [[schedule]] + +All times are approximate, and we might shuffle talks around as needed. Please check https://emacsconf.org/2020 a few days before the start of the conference for instructions on how to watch and participate. +<!-- automatically generated from submissions.org ---> +[[!meta title="Building reproducible Emacs"]] diff --git a/2020/schedule/09.md b/2020/schedule/09.md new file mode 100644 index 00000000..abb421ce --- /dev/null +++ b/2020/schedule/09.md @@ -0,0 +1,38 @@ +# Orgmode - your life in plain text +Saturday, Nov 28 2020, 1:03 PM - 1:13 PM +Rainer König + +This is a talk about Orgmode, my favorite Emacs application. The goal +is to show you the power of Emacs when you want to manage and organize +your life. Orgmode is your swiss army knife for that job, and so far +the only tool that you can customize for your needs and you need to +customize yourself to fit the restrictions of a "ToDo list tool". + +Background info: I'm using Orgmode for many years now, and I'm not +exaggerating if I tell you that it saved me from a nervous breakdown +when my wife got diagonosed with severe illness and I was suddenly in +charge of everything. Orgmode was there and reminded me of the +important things so nothing was forgotten and I could focus on what +really matters. + +This talk should introduce people to Orgmode, showing them what they +can do and how it makes your life easier, freeing time for the things +that matter to you. + +I was holding a similar talk at the local Linux Day in our town in + +1. In 2016 I recorded a set of tutorial videos which are available + +on my YouTube channel which gained more than 3500 subcribers because +of those tutorials. In Summer 2020 I recorded the tutorials again for +a course at Udemy which went online in October 2020 and is +supplemented by a 100+ pages course book. + + + + +Back to the [[schedule]] + +All times are approximate, and we might shuffle talks around as needed. Please check https://emacsconf.org/2020 a few days before the start of the conference for instructions on how to watch and participate. +<!-- automatically generated from submissions.org ---> +[[!meta title="Orgmode - your life in plain text"]] diff --git a/2020/schedule/10.md b/2020/schedule/10.md new file mode 100644 index 00000000..24379a1f --- /dev/null +++ b/2020/schedule/10.md @@ -0,0 +1,26 @@ +# Lead your future with Org +Saturday, Nov 28 2020, 1:16 PM - 1:26 PM +Andrea + +The world is full of possibilities. A person life is rather short +though, and one can easily end up carry on without focus. + +In this short talk I want to share how Org mode empowers me into +organizing and monitoring my tasks to make sure I am working towards +achieving my vision. + +The emphasis of the talk is on defining a direction, monitoring the +progress towards your planned destination, and keeping a trail of your +actions to review and set up a healthy feedback loop. + +Tools for the job that I will (at least) mention: Org files, Org +agenda, Org archive, org-ql, and Org-roam. + + + + +Back to the [[schedule]] + +All times are approximate, and we might shuffle talks around as needed. Please check https://emacsconf.org/2020 a few days before the start of the conference for instructions on how to watch and participate. +<!-- automatically generated from submissions.org ---> +[[!meta title="Lead your future with Org"]] diff --git a/2020/schedule/11.md b/2020/schedule/11.md new file mode 100644 index 00000000..9711c471 --- /dev/null +++ b/2020/schedule/11.md @@ -0,0 +1,18 @@ +# the org-gtd package: opinions about Getting Things Done +Saturday, Nov 28 2020, 1:29 PM - 1:49 PM +Aldric + +Come see how org-gtd leverages org-mode to automate the GTD inbox +management. Stick around to see how the various org-mode tools get +connected by the package and how you can leverage them for yourself. +Bonus: there's even a few tests written for the package! We'll go +over those too. + + + + +Back to the [[schedule]] + +All times are approximate, and we might shuffle talks around as needed. Please check https://emacsconf.org/2020 a few days before the start of the conference for instructions on how to watch and participate. +<!-- automatically generated from submissions.org ---> +[[!meta title="the org-gtd package: opinions about Getting Things Done"]] diff --git a/2020/schedule/12.md b/2020/schedule/12.md new file mode 100644 index 00000000..3a5bca3a --- /dev/null +++ b/2020/schedule/12.md @@ -0,0 +1,35 @@ +# One Big-ass Org File or multiple tiny ones? Finally, the End of the debate! +Saturday, Nov 28 2020, 1:52 PM - 2:02 PM +Leo Vivier + +Many discussions have been had over the years on the debate between +using few big files versus many small files. However, more often than +not, those discussions devolve in a collection of anecdotes with +barely any science to them. + +Once and for all (or, at least until org-element.el get overhauled), I +would like to settle the debate by explaining why the way we parse +Org-mode files becomes slower as our files grow in size or numbers, +and how that affects their browsing and the building of custom-agenda +views. + +I feel qualified to talk about this topic for two reasons: + +- I went through the trouble of optimising my agenda-views by + implementing clever regex-based skips, so I know the ceiling that + can be reached with the current tech. +- My work on Org-roam has led me to consider the use of an external + parser for Org-mode files, and whilst we are only at the prototyping + stage, we know what is at stake. + +I intend the talk to be fairly light-hearted and humorous, which is the +only way we can do true justice to the topic. + + + + +Back to the [[schedule]] + +All times are approximate, and we might shuffle talks around as needed. Please check https://emacsconf.org/2020 a few days before the start of the conference for instructions on how to watch and participate. +<!-- automatically generated from submissions.org ---> +[[!meta title="One Big-ass Org File or multiple tiny ones? Finally, the End of the debate!"]] diff --git a/2020/schedule/13.md b/2020/schedule/13.md new file mode 100644 index 00000000..47cebac2 --- /dev/null +++ b/2020/schedule/13.md @@ -0,0 +1,39 @@ +# Experience Report: Steps to "Emacs Hyper Notebooks" +Saturday, Nov 28 2020, 2:05 PM - 2:15 PM +Joseph Corneli, Raymond Puzio, and Cameron Ray Smith + +We present a short experience report from the perspective of two +long-time Emacs users and one relative newcomer. Our motivations +relate, broadly, to reproducibility of research in science. We +reflect on our experiences with off-the-self solutions available +through the Emacs package manager, and describe some of our custom +extensions. + +When working on a scientific research project, one typically has +multiple different computer programs running at the same time. For +example, we may use a computer algebra system such as Maxima for +calculations, an interactive language such as Julia for numerical +computations, TeX for writing up results, a reference manger such as +Zotero for the bibliography, Roam for note-taking, and Jekyll for +blogging. Switching and moving content among these programs can be +distracting, time-consuming, and prone to error. These issues are +compounded when there are several collaborators involved. + +We explore a solution that looks toward building better "computational +notebooks" using Emacs. We take Org mode as our foundation. As many +in this audience will know, Org mode integrates features such as +writing, task management, program evaluation, typesetting, +presentation, and navigation. Tightly integrated add-on packages +round out the picture either by directly replacing the functionality +of the other programs mentioned above or automatically dispatching +commands to them. We outline both the pleasure and pain involved in +this experience. + + + + +Back to the [[schedule]] + +All times are approximate, and we might shuffle talks around as needed. Please check https://emacsconf.org/2020 a few days before the start of the conference for instructions on how to watch and participate. +<!-- automatically generated from submissions.org ---> +[[!meta title="Experience Report: Steps to \"Emacs Hyper Notebooks\""]] diff --git a/2020/schedule/14.md b/2020/schedule/14.md new file mode 100644 index 00000000..06e4f8fd --- /dev/null +++ b/2020/schedule/14.md @@ -0,0 +1,37 @@ +# Literate Programming in Emacs Org-Mode +Saturday, Nov 28 2020, 2:18 PM - 2:38 PM +Adam Ard + +Org mode, among its numerous features, has the ability to do full +literate programming (with tangling and weaving the way Donald Knuth +originally intended). As a programmer, you can work comfortably, +completely inside an org-mode buffer. When you are ready, emacs will +generate the appropriate documentation and source code files for you. +If you are a lone emacs user on your project, simply commit these +exported files and keep your org file to yourself – no one is the +wiser. + +Watch "Literate Programming in Emacs Org-mode" to learn how you can +annotate code snippets in an org file so they can be automatically +exported to their proper locations in your source tree. Keep +important information about your project where it should be: right +next to the code itself. Not as ugly, out-of-date notes sitting +behind comment characters in your source files, but front and center +in well-formatted markdown and pdf files. + +And, for advanced use cases, see how you can even use a full-fledged +macro processor like m4 to personalize your workflow even more. +Literate programming on steroids! + +I'll walk you through the whole process, starting from an empty +project README.org to a simple example that generates source and +documentation. + + + + +Back to the [[schedule]] + +All times are approximate, and we might shuffle talks around as needed. Please check https://emacsconf.org/2020 a few days before the start of the conference for instructions on how to watch and participate. +<!-- automatically generated from submissions.org ---> +[[!meta title="Literate Programming in Emacs Org-Mode"]] diff --git a/2020/schedule/15.md b/2020/schedule/15.md new file mode 100644 index 00000000..3bc093a2 --- /dev/null +++ b/2020/schedule/15.md @@ -0,0 +1,23 @@ +# Moving from Jekyll to OrgMode, an experience report +Saturday, Nov 28 2020, 2:41 PM - 2:51 PM +Adolfo Villafiorita + +I have been a long time user of static site generators, such as +Jekyll. + +I recently discovered Org Mode's publishing features and started +appreciating flexibility and capabilities, especially when literate +programming comes into play to generate "dynamic" content. + +In this talk/tutorial I will present the challenges I faced and how I +finally moved my homepage and the University of Trento's Computational +Logic website to Org Mode. + + + + +Back to the [[schedule]] + +All times are approximate, and we might shuffle talks around as needed. Please check https://emacsconf.org/2020 a few days before the start of the conference for instructions on how to watch and participate. +<!-- automatically generated from submissions.org ---> +[[!meta title="Moving from Jekyll to OrgMode, an experience report"]] diff --git a/2020/schedule/16.md b/2020/schedule/16.md new file mode 100644 index 00000000..9052f750 --- /dev/null +++ b/2020/schedule/16.md @@ -0,0 +1,36 @@ +# Org-roam: Presentation, Demonstration, and What's on the Horizon +Saturday, Nov 28 2020, 2:54 PM - 3:14 PM +Leo Vivier + +Org-roam is a Roam replica built on top of the all-powerful Org-mode. + +Org-roam is a solution for effortless non-hierarchical note-taking with +Org-mode. With Org-roam, notes flow naturally, making note-taking fun +and easy. Org-roam should also work as a plug-and-play solution for +anyone already using Org-mode for their personal wiki. + +Org-roam aims to implement the core features of Roam, leveraging the +mature ecosystem around Org-mode where possible. Eventually, we hope to +further introduce features enabled by the Emacs ecosystem. + +The purpose of the talk is to introduce people to Org-roam, whether +they be Org-mode connoisseurs or newcomers. A lot of people have +found value in adopting Org-roam and the Zettelkasten method in their +workflows, and the goal is to demonstrate how they achieved it. The +last part will present the future milestones that are in store for +Org-roam. + +Examples of short-presentations I've recorded in the past: + +- [Org-Roam v1.2.0: Headlines & Unlinked References - YouTube](https://www.youtube.com/watch?v=3DoyEMlIxIHXs) +- [Org-roam-bibtex - Quick Presentation - YouTube](https://www.youtube.com/watch?v=3DWy9WvF5gWYg) +- [Org-roam-dailies: Demonstration - YouTube](https://www.youtube.com/watch?v=3D1q9x2aZCJJ4) + + + + +Back to the [[schedule]] + +All times are approximate, and we might shuffle talks around as needed. Please check https://emacsconf.org/2020 a few days before the start of the conference for instructions on how to watch and participate. +<!-- automatically generated from submissions.org ---> +[[!meta title="Org-roam: Presentation, Demonstration, and What's on the Horizon"]] diff --git a/2020/schedule/17.md b/2020/schedule/17.md new file mode 100644 index 00000000..e98093df --- /dev/null +++ b/2020/schedule/17.md @@ -0,0 +1,34 @@ +# Org-mode and Org-Roam for Scholars and Researchers +Saturday, Nov 28 2020, 3:17 PM - 3:37 PM +Noorah Alhasan + +Org-mode improved so much over the years, and the use-cases in org-mode are +vast and highly technical. There is something for everyone in org-mode, and +it's important to sift through all of these features and figure out what's +best for a given situation or specific users. Therefore, I will be +targeting academics and scholars that are engaging with literature in the +early stages of a project or their academic careers. + +Academics and scholars engage with complex ideas and unstructured research +workflows. I believe that org-mode can add more structure to the madness, +and I will use this talk to clarify a possible solution to reduce such +complexity. I propose a research workflow framework that utilizes +org-mode, its raw form, and its many associated packages. However, the main +package I will be mostly talking about is Org-Roam, and the way its +underlying principles will revolutionize the research workflow. + +This presentation will help researchers organize and build their knowledge +database in a streamlined and effective way. The research workflow is +presented in three phases: planning, note-taking, and reference management. +I will talk briefly about the packages and special-use cases for each stage +and learned lessons along the way. Finally, the presentation concludes with +future considerations and possible org-mode features. + + + + +Back to the [[schedule]] + +All times are approximate, and we might shuffle talks around as needed. Please check https://emacsconf.org/2020 a few days before the start of the conference for instructions on how to watch and participate. +<!-- automatically generated from submissions.org ---> +[[!meta title="Org-mode and Org-Roam for Scholars and Researchers"]] diff --git a/2020/schedule/18.md b/2020/schedule/18.md new file mode 100644 index 00000000..6aa5900b --- /dev/null +++ b/2020/schedule/18.md @@ -0,0 +1,45 @@ +# Org-roam: Technical Presentation +Saturday, Nov 28 2020, 3:40 PM - 4:00 PM +Leo Vivier + +Org-roam is a Roam replica built on top of the all-powerful Org-mode. + +Org-roam is a solution for effortless non-hierarchical note-taking +with Org-mode. With Org-roam, notes flow naturally, making +note-taking fun and easy. Org-roam should also work as a +plug-and-play solution for anyone already using Org-mode for their +personal wiki. + +Org-roam aims to implement the core features of Roam, leveraging the +mature ecosystem around Org-mode where possible. Eventually, we hope +to further introduce features enabled by the Emacs ecosystem. + +The purpose of the talk is to present some technical aspects of +Org-roam. From the very beginning, we wanted Org-roam to scale with +your notes, and this meant that we had to keep a close eye on our +performances. As we iterated, optimisation remained a top-priority, +leading us to constantly peek under Org-mode's hood. Not only has +this made us better developers, but it has also uncovered paths of +optimisation for Org-mode itself. + +The talk is targeted at software engineers willing to peek under +Org-mode's hood. A rudimentary understanding of Elisp will be +required. + +Points to be covered + +- SQL database via emacsql +- Elisp libraries +- Parsing of Org-mode files +- org-elements.e +- Parsing with a background-process +- Ensuring consistency via hooks + + + + +Back to the [[schedule]] + +All times are approximate, and we might shuffle talks around as needed. Please check https://emacsconf.org/2020 a few days before the start of the conference for instructions on how to watch and participate. +<!-- automatically generated from submissions.org ---> +[[!meta title="Org-roam: Technical Presentation"]] diff --git a/2020/schedule/19.md b/2020/schedule/19.md new file mode 100644 index 00000000..aca4e6fa --- /dev/null +++ b/2020/schedule/19.md @@ -0,0 +1,26 @@ +# Sharing blogs (and more) with org-webring +Saturday, Nov 28 2020, 4:03 PM - 4:13 PM +Brett Gilio + +In this talk I will detail the ways in which static website generation +results may be enhanced using org-webring. This talk will cover not +only how to use org-webring (including how accessible and low-friction +it is), but also how you may customize it, utilize it in different +contexts unrelated to blogging (tracking project commits), and even as +a way to respond to other blogs in a cogent and manner. + +Additionally, I will go into slight detail as to the history of this +project, why it was made, what we are working on, and what we +remaining we need to do before we can submit it to GNU Emacs / +Org-mode. + +I think, in all, this can quite easily cover a 10 minute window. + + + + +Back to the [[schedule]] + +All times are approximate, and we might shuffle talks around as needed. Please check https://emacsconf.org/2020 a few days before the start of the conference for instructions on how to watch and participate. +<!-- automatically generated from submissions.org ---> +[[!meta title="Sharing blogs (and more) with org-webring"]] diff --git a/2020/schedule/20.md b/2020/schedule/20.md new file mode 100644 index 00000000..291a7337 --- /dev/null +++ b/2020/schedule/20.md @@ -0,0 +1,26 @@ +# OMG Macros +Saturday, Nov 28 2020, 4:16 PM - 4:36 PM +Corwin Brust + +Macros are a powerful tool. In the context of Emacs Lisp programming +they can also provide us with a "foot-gun" of immense proportions. +Join the dungeon-mode project as we trip over our own macros, so to +speak, in the context of building a GPLv3+ turn-based role-playing +game engine and game design features for Emacs. + +In this 20m talk I'll briefly introduce some rationales leading to +storing all game source and play state information within org-mode +documents (spoiler: it's about freedom), then go into some detail +around the "ETL" process design that currently accomplishes this. +Finally, we'll look closely at one especially problematic macro deep +within this solution, and invite people to throw fruit^11^dhelp draw +conclusions, ask questions, and discuss. + + + + +Back to the [[schedule]] + +All times are approximate, and we might shuffle talks around as needed. Please check https://emacsconf.org/2020 a few days before the start of the conference for instructions on how to watch and participate. +<!-- automatically generated from submissions.org ---> +[[!meta title="OMG Macros"]] diff --git a/2020/schedule/21.md b/2020/schedule/21.md new file mode 100644 index 00000000..d6e25070 --- /dev/null +++ b/2020/schedule/21.md @@ -0,0 +1,62 @@ +# On why most of the best features in eev look like 5-minute hacks +Saturday, Nov 28 2020, 5:03 PM - 5:43 PM +Eduardo Ochs + +In the last months there were several hundreds of messages in +emacs-devel in threads with names like "A proposal for a friendlier +Emacs", "How to make Emacs popular again", and "Interactive guide for +new users". On the one hand I am absolutely sure that eev is very +good answer to all these themes; on the other hand I know that eev is +based on some design decisions that offend most people used to modern, +"user-friendly" interfaces - and I feel that at this moment mentions +to eev in those discussions in emacs-devel would not be welcome. + +In this talk I will start by presenting very quickly the main "killer +features" of eev - namely: + +1. Elisp hyperlinks, + +2. interactive tutorials that can be navigated with just three keys, + +3. non-invasiveness - people can easily turn eev on for only five + minutes each week, play with it a bit, and then turn it off, + +4. high discoverability factor, + +5. a way to create "hyperlinks to here", + +6. hyperlinks to specific points in PDF documents and video files - + i.e., to specific pages, strings, and timemarks, + +7. a way to control shell-like programs ("eepitch"), and + +8. an Elisp tutorial, + +and after that I will present the design decisions behind eev, in two +parts: + +1. eev is a very thin layer above Emacs-the-Lisp-environment; it is + as simple as possible, but in the sense of "simple" that was used + in Forth, and that is not very familiar today. + +2. Very often when I am using Emacs - which is my main interface + with the system - I realize that I can automate some task that I + just did by hand twice of thrice; and that I should do that, + because automating that would be both easy and fun. Over the + years I experimented with several ways of automating tasks, + refined some of these ways a lot, and found a certain "best" + style that, again, usually offends people who are accustomed with + the modern ideas of user-friendliness. In this style, used in + most template-based functions in eev, both textual documentation + and error-handling are kept to a minimum. I will show how, and + why, eev makes this style works so well, and how users can create + their own templated functions very quickly - as "5-minute hacks". + + + + +Back to the [[schedule]] + +All times are approximate, and we might shuffle talks around as needed. Please check https://emacsconf.org/2020 a few days before the start of the conference for instructions on how to watch and participate. +<!-- automatically generated from submissions.org ---> +[[!meta title="On why most of the best features in eev look like 5-minute hacks"]] diff --git a/2020/schedule/22.md b/2020/schedule/22.md new file mode 100644 index 00000000..23892451 --- /dev/null +++ b/2020/schedule/22.md @@ -0,0 +1,77 @@ +# Powering-up Special Blocks +Sunday, Nov 29 2020, 9:33 AM - 9:53 AM +Musa Al-hassy + +Users will generally only make use of a few predefined \`special +blocks', such as \`example, centre, quote', and will not bother with +the effort required to make new ones. When new encapsulating notions +are required, users will either fallback on HTML or LaTeX specific +solutions, usually littered with \`#+ATTR' clauses to pass around +configurations or parameters. + +Efforts have been exerted to mitigate the trouble of producing new +special blocks. However, the issue of passing parameters is still +handled in a clumsy fashion; e.g., by having parameters be expressed +in a special block's content using specific keywords. + +We present a novel approach to making special blocks in a familiar +fashion and their use also in a familiar fashion. We achieve the +former by presenting \`\`defblock'', an anaphoric macro exceedingly +similar to \`\`defun'', and for the latter we mimic the usual +\`\`src''-block syntax for argument passing to support special blocks. + +For instance, here is a sample declaration. + + (defblock stutter () (reps 2) + "Output the CONTENTS of the block REPS many times" + (org-parse (s-repeat reps contents))) + +Here is an invocation that passes an *optional* argument; which +defaults to 2 when not given. + +<div class="stutter"> +<p> +Emacs for the win ⌣̈ +</p> + +</div> + +Upon export, to HTML or LaTeX for instance, the contents of this block +are repeated (\`stuttered') 5 times. The use of \`\`src''-like +invocation may lead to a decrease in \`#+ATTR' clauses. + +In the presentation, we aim to show a few \`practical' special blocks +that users may want: A block that … + +- translates *some selected* text —useful for multilingual blogs +- hides *some selected* text —useful for learning, quizzes +- folds/boxes text —useful in blogs for folding away details + +In particular, all of these examples will be around ~5 lines long! + +We also have a larger collection of more useful block types, already +implemented. + +The notable features of the system are as follows. + +- Familiar \`\`defun'' syntax for making block —\`\`defblock'' +- Familiar \`\`src'' syntax for passing arguments —e.g., \`\`:key + value'' +- Fine-grained control over export translation phases —c.f., + \`\`org-parse'' above +- **Modular**: New blocks can be made out of existing blocks really + quickly using \`\`blockcall'' —similar to Lisp's \`\`funcall''. We + will show how to fuse two blocks to make a new one, also within ~5 + lines. + +It is hoped that the ease of creating custom special blocks will be a +gateway for many Emacs users to start using Lisp. + + + + +Back to the [[schedule]] + +All times are approximate, and we might shuffle talks around as needed. Please check https://emacsconf.org/2020 a few days before the start of the conference for instructions on how to watch and participate. +<!-- automatically generated from submissions.org ---> +[[!meta title="Powering-up Special Blocks"]] diff --git a/2020/schedule/23.md b/2020/schedule/23.md new file mode 100644 index 00000000..35b59697 --- /dev/null +++ b/2020/schedule/23.md @@ -0,0 +1,22 @@ +# Incremental Parsing with emacs-tree-sitter +Sunday, Nov 29 2020, 9:56 AM - 10:46 AM +Tuấn-Anh Nguyễn + +Tree-sitter is a parser generator and an incremental parsing library. +emacs-tree-sitter is its most popular Emacs binding, which aims to be +the foundation of Emacs packages that understand source code's +structure. Examples include better code highlighting, folding, +indexing, structural navigation. + +In this talk, I will describe the current state of emacs-tree-sitter's +APIs and functionalities. I will also discuss areas that need +improvements and contribution from the community. + + + + +Back to the [[schedule]] + +All times are approximate, and we might shuffle talks around as needed. Please check https://emacsconf.org/2020 a few days before the start of the conference for instructions on how to watch and participate. +<!-- automatically generated from submissions.org ---> +[[!meta title="Incremental Parsing with emacs-tree-sitter"]] diff --git a/2020/schedule/24.md b/2020/schedule/24.md new file mode 100644 index 00000000..4feb9cd7 --- /dev/null +++ b/2020/schedule/24.md @@ -0,0 +1,34 @@ +# Analyze code quality through Emacs: a smart forensics approach and the story of a hack +Sunday, Nov 29 2020, 10:49 AM - 11:09 AM +Andrea + +Emacs, show me how much technical debt and where it is in this +software repository! + +Also how complex is this module? + +And who is the main developer of this component? + +Mmm, if I change this file, do I need to change something else, Emacs? + +Ah, I need help of somebody to change this code! Emacs can you tell me +who knows something about this file? + +The above are some questions my Emacs can answer (an M-x away). + +It all started with "Your Code as a Crime Scene", an insightful book +by Adam Tornhill, and it continued with a big useful hack. + +In this talk I want to show the analyses I can produce on software +repositories with my Emacs, explain how they help me in my daily work, +give a bit of context of how Adam came up with them, and show the +dirty code that makes this wonderful functionality work. + + + + +Back to the [[schedule]] + +All times are approximate, and we might shuffle talks around as needed. Please check https://emacsconf.org/2020 a few days before the start of the conference for instructions on how to watch and participate. +<!-- automatically generated from submissions.org ---> +[[!meta title="Analyze code quality through Emacs: a smart forensics approach and the story of a hack"]] diff --git a/2020/schedule/25.md b/2020/schedule/25.md new file mode 100644 index 00000000..02a24acb --- /dev/null +++ b/2020/schedule/25.md @@ -0,0 +1,33 @@ +# Traverse complex JSON structures with live feedback +Sunday, Nov 29 2020, 11:12 AM - 11:22 AM +Zen Monk Alain M. Lafon + +If you are working with complex nested JSON structures, you are +probably familiar with jq which is like sed for JSON data and great at +what it does. However, being a command-line tool like sed, the +feedback for writing queries and seeing their results is a discrete +process and not live. + +When working with Emacs, we are used to good auto-completion and live +feedback. Formerly, this was mostly done with static input, but with +modern completion frameworks like Ivy and Counsel, this can be done +with dynamic inputs, as well. + +counsel-jq is a package with which you can quickly test queries and +traverse a complex JSON structure whilst having live feedback. Just +call `M-x counsel-jq` in a buffer containing JSON, then start writing +your `jq` query string and see the output appear live in the message +area. Whenever you're happy, hit `RET` and the results will be +displayed to you in the buffer `*jq-json*`. + +In this lightning talk, I'll give a quick overview on how to use +counsel-jq and how to build similar completion functionality. + + + + +Back to the [[schedule]] + +All times are approximate, and we might shuffle talks around as needed. Please check https://emacsconf.org/2020 a few days before the start of the conference for instructions on how to watch and participate. +<!-- automatically generated from submissions.org ---> +[[!meta title="Traverse complex JSON structures with live feedback"]] diff --git a/2020/schedule/26.md b/2020/schedule/26.md new file mode 100644 index 00000000..f7eb66b1 --- /dev/null +++ b/2020/schedule/26.md @@ -0,0 +1,28 @@ +# Emacs as a Highschooler: How It Changed My Life +Sunday, Nov 29 2020, 1:03 PM - 1:13 PM +Pierce Wang + +Could Emacs be humanity's solution to the turbulent years of +adolescence? So much more than a text editor, Emacs changed the way I +approach everything at the age of 15. In the two years since +discovering Emacs in my sophomore year of high school, I have been +constantly amazed at what Emacs is capable of. In this talk, I would +like to share this journey of discovery and what I've learned along +the way, beginning with what led me to Emacs. I will describe the +many ways that Emacs has shaped my life as a student, a programmer, a +violinist, and a productive and happy adolescent. In each case, I +have thoroughly enjoyed figuring out the best way to make Emacs work +for me, and I'd like to share this with others. In addition, I'd like +to take this opportunity to address some roadblocks that I have +noticed having observed some of my peers' attempts at learning Emacs +and possible solutions for those barriers, taking inspiration from +various sources both from inside and outside the Emacs community. + + + + +Back to the [[schedule]] + +All times are approximate, and we might shuffle talks around as needed. Please check https://emacsconf.org/2020 a few days before the start of the conference for instructions on how to watch and participate. +<!-- automatically generated from submissions.org ---> +[[!meta title="Emacs as a Highschooler: How It Changed My Life"]] diff --git a/2020/schedule/27.md b/2020/schedule/27.md new file mode 100644 index 00000000..6d06dff8 --- /dev/null +++ b/2020/schedule/27.md @@ -0,0 +1,20 @@ +# State of Retro Gaming in Emacs +Sunday, Nov 29 2020, 1:16 PM - 1:26 PM +Vasilij "wasamasa" Schneidermann + +Many jokes have been made about the true nature of Emacs, such as it +being a fully-fledged operating system. This talk will demonstrate +its suitability for playing retro games, then explore the inner +workings of a [CHIP-8](https://en.wikipedia.org/wiki/CHIP-8) emulator capable of smooth video game emulation. + +[1]: <https://depp.brause.cc/talks/chicken-saar/> +[2]: <https://depp.brause.cc/talks/openchaos-2019-11/> + + + + +Back to the [[schedule]] + +All times are approximate, and we might shuffle talks around as needed. Please check https://emacsconf.org/2020 a few days before the start of the conference for instructions on how to watch and participate. +<!-- automatically generated from submissions.org ---> +[[!meta title="State of Retro Gaming in Emacs"]] diff --git a/2020/schedule/28.md b/2020/schedule/28.md new file mode 100644 index 00000000..c0ab8301 --- /dev/null +++ b/2020/schedule/28.md @@ -0,0 +1,35 @@ +# Welcome To The Dungeon +Sunday, Nov 29 2020, 1:29 PM - 2:19 PM +Erik Elmshauser and Corwin Brust + +Dungeon is an oral and physical media fantasy and abstract role-play +gaming tradition that seems to have grown from miniature and +war-gaming communities in and around the University of Minnesota, Twin +Cities in the 1950s and 60s. + +Dungeon is inherently free (or nearly free, you do need paper and +dice), both to play and to create your own games. Moreover, as a +generality among practices, as Dungeon authors, we dislike impositions +on our creative freedoms beyond those of our own imagination and +tastes, especially those such as of a "brand" or "system", or e.g. +copyright holder. + +In December of 2019 some friends who grew up creating and playing in +each others' Dungeons decided to try making an engine for these types +of games using Emacs and Emacs Lisp, org-mode, and maybe some +duct-tape if needed. In this 50 minute talk Corwin and Erik introduce +dungeon-mode, and explain why we decided to do that. We'll sketch out +the project in both lay and technical terms, provide a tactical update +with respect to completing our initial concept, describe how things +are going in human terms, and share some things we've learned so far +from and about Emacs and the free software community working on this +project, while leaving 10-15m for questions and discussion. + + + + +Back to the [[schedule]] + +All times are approximate, and we might shuffle talks around as needed. Please check https://emacsconf.org/2020 a few days before the start of the conference for instructions on how to watch and participate. +<!-- automatically generated from submissions.org ---> +[[!meta title="Welcome To The Dungeon"]] diff --git a/2020/schedule/29.md b/2020/schedule/29.md new file mode 100644 index 00000000..92bfda60 --- /dev/null +++ b/2020/schedule/29.md @@ -0,0 +1,77 @@ +# Pathing of Least Resistance +Sunday, Nov 29 2020, 2:22 PM - 2:42 PM +Corwin Brust + +We hope the dungeon-mode project will eventually support three primary +use-cases related to editing/designing, playing and running/hosting +RPG games. In a "vanilla" game, characters descend from the "General +Store" (the one safe haven available) into the dungeon, a (nominally) +underground labyrinth of unknown dimensions with generally asocial +occupants and occasional bits of treasure. + +Players can track (as long as the "lights" stay on) the location of +their party of characters via a process we usually call "mapping". +This has usually involved the dungeon master "calling out" the shape +of the map level as the party, in turn, calls out their route or +"pathing" decisions. + + DUNGEON-MASTER + "Corridor East-West" + PARTY-LEADER + "West" + DUNGEON-MASTER + "Ten feet, corridor ends goes South" + PARTY-LEADER + "South" + DUNGEON-MASTER + "Step into an area. It's a + twenty-by-twenty area extending + West, with exits in the Western + part of the southern wall and the + Southern part of the eastern wall." + **rolls dice** + "Nothing waiting in the area" + +Mapping quickly emerged as a focal point for development. Especially, +we were to excited to try creating an 'on-the-fly' graphical +representation of the map that could respond to changing in-game +circumstances. (Oops, all your Elves are dead. Where'd the secret +doors go?) + +During this 20m talk I'll provide a couple of reference points on +Emacs's image and especially SVG rendering capabilities, then +introduce a series of proofs-of-concept focusing on our experience +using core libraries such as \`svg.el' to make them. + +As of submitting abstracts, these include + +- "DM map view" - select and render a complete game map, +- "play mode map" - progressively render maps based on game action, +- "battle-board" - track damage taken by player characters, and +- "character-sheet" - a graphical character sheet +- "previews" - view map tiles when hovering their draw code in org +- "sketch" - a "click-to-draw" experiment + +For an advanced peek please see our git repository (but note we're +moving to Savannah soon). We'll be talking first about [map.el](https://github.com/dungeon-mode/game/blob/master/src/dm-map.el), +especially \`dm-map-draw' and helpers. A few sample game maps this can +render are available as org-mode documents in the [Docs/Maps](https://github.com/dungeon-mode/game/blob/master/Docs/Maps) folder. + +Those interested could compare functions between dm-map.el and +[dm-draw.el](https://github.com/dungeon-mode/game/blob/master/src/dm-draw.el), which is an incomplete rewrite of the "SVG rendering" +functions used only by [dm-sketch.el](https://github.com/dungeon-mode/game/blob/master/src/dm-sketch.el) (so far). Hopefully, it will be +writing our "sketches" back out to org docs in time for the +conference. + +Note on github: +The project is transitioning to Savannah. Please watch for +redirects/moved notices when using these links. + + + + +Back to the [[schedule]] + +All times are approximate, and we might shuffle talks around as needed. Please check https://emacsconf.org/2020 a few days before the start of the conference for instructions on how to watch and participate. +<!-- automatically generated from submissions.org ---> +[[!meta title="Pathing of Least Resistance"]] diff --git a/2020/schedule/30.md b/2020/schedule/30.md new file mode 100644 index 00000000..55bbcdce --- /dev/null +++ b/2020/schedule/30.md @@ -0,0 +1,22 @@ +# A tour of vterm +Sunday, Nov 29 2020, 2:45 PM - 2:55 PM +Gabriele Bozzola (@sbozzolo) + +Vterm is a fast and fully capable terminal emulator in GNU Emacs built +as a dynamic module on top of libvterm. In this talk, I will give an +overview of the package. I will discuss the installation and common +customizations. I will go into details on some of the most important +features, such as directory tracking or message passing. Finally, I +will touch upon known incompatibilities and the future directions of +the project. + +URL: <https://github.com/akermu/emacs-libvterm> + + + + +Back to the [[schedule]] + +All times are approximate, and we might shuffle talks around as needed. Please check https://emacsconf.org/2020 a few days before the start of the conference for instructions on how to watch and participate. +<!-- automatically generated from submissions.org ---> +[[!meta title="A tour of vterm"]] diff --git a/2020/schedule/31.md b/2020/schedule/31.md new file mode 100644 index 00000000..7342d76c --- /dev/null +++ b/2020/schedule/31.md @@ -0,0 +1,36 @@ +# Lakota Language and Emacs +Sunday, Nov 29 2020, 2:58 PM - 3:08 PM +Grant Shangreaux + +When I began learning Lakota, the language of my ancestors, there was +no way for me to type it on a computer without using non-free +software. Additionally, the only software I could find supported just +one of the proposed orthographies for the language. + +As an Emacs user, I knew that free software offered the ability for +many types of languages to co-exist in the same program and went +looking for how to enable an input mode for Lakota in Emacs. This +talk will discuss how Emacs enabled me to define input modes for +multiple Lakota orthographies using the Quail multilingual input +package. + +I will also discuss some of the ethical and cultural considerations I +went through when publishing the package. Lakota and many other +indigenous languages were actively suppressed for many years, and are +in danger of extinction. The language is being recovered now, but +much of the available educational material comes from non-indian +people. Before publishing an input mode for Emacs, I wanted to ensure +that I included an orthography developed by Lakota people, not only +the suggested orthography present in most of my educational material. +Additionally, the choice of where to publish the source as an Emacs +package was important, since some corporations have been known to +support ongoing oppression against indigenous descended peoples. + + + + +Back to the [[schedule]] + +All times are approximate, and we might shuffle talks around as needed. Please check https://emacsconf.org/2020 a few days before the start of the conference for instructions on how to watch and participate. +<!-- automatically generated from submissions.org ---> +[[!meta title="Lakota Language and Emacs"]] diff --git a/2020/schedule/32.md b/2020/schedule/32.md new file mode 100644 index 00000000..a65e1681 --- /dev/null +++ b/2020/schedule/32.md @@ -0,0 +1,28 @@ +# Object Oriented Code in the Gnus Newsreader +Sunday, Nov 29 2020, 3:11 PM - 3:31 PM +Eric Abrahamsen + +The venerable Gnus newsreader has evolved over the years to interface +with many different types of news- or mail-like backend programs, +presenting all of them using a unified interface. This sort of +software often calls for an object-oriented architecture, at least as +regards polymorphism, yet Gnus was written well before Emacs lisp +acquired the object-oriented tools and libraries – largely borrowed +from Common Lisp – that it boasts today. + +Yet Gnus needed something "object-oriented-like", and so nnoo.el was +born: a rather amazing (and frankly terrifying) implementation of +object-oriented behavior using functional code. + +This talk will be a brief introduction to how this existing system +works, and to the ongoing, incremental effort to port it over to newer +Elisp tools like generic functions, structs, and objects. + + + + +Back to the [[schedule]] + +All times are approximate, and we might shuffle talks around as needed. Please check https://emacsconf.org/2020 a few days before the start of the conference for instructions on how to watch and participate. +<!-- automatically generated from submissions.org ---> +[[!meta title="Object Oriented Code in the Gnus Newsreader"]] diff --git a/2020/schedule/33.md b/2020/schedule/33.md new file mode 100644 index 00000000..c82839ce --- /dev/null +++ b/2020/schedule/33.md @@ -0,0 +1,20 @@ +# Maxima a computer algebra system in Emacs +Sunday, Nov 29 2020, 3:34 PM - 3:54 PM +Fermin MF + +Maxima is a great tool for symbolic mathematics, it has some support +for Emacs in the main repository, but is quite outdated and doesn't +receive the love I think it should, so a couple of months ago I decide +to improve and "modernize" the maxima-mode.el code base. So, I want +to talk about the integration with Emacs, the maxima REPL, how some of +the main tool for Emacs integrate in maxima-mode and in general show +how to start using maxima within Emacs. + + + + +Back to the [[schedule]] + +All times are approximate, and we might shuffle talks around as needed. Please check https://emacsconf.org/2020 a few days before the start of the conference for instructions on how to watch and participate. +<!-- automatically generated from submissions.org ---> +[[!meta title="Maxima a computer algebra system in Emacs"]] diff --git a/2020/schedule/34.md b/2020/schedule/34.md new file mode 100644 index 00000000..a8fe1f2a --- /dev/null +++ b/2020/schedule/34.md @@ -0,0 +1,18 @@ +# Extend Emacs to Modern GUI Applications with EAF +Sunday, Nov 29 2020, 3:57 PM - 4:17 PM +Matthew Zeng + +Emacs Application Framework (EAF) is a customizable and extensible GUI +application framework that extends Emacs graphical capabilities using +PyQt5. This talk will cover the architecture design of the EAF +project, and demonstrate some of its most useful applications: modern +browser, PDF viewer, video player, etc. + + + + +Back to the [[schedule]] + +All times are approximate, and we might shuffle talks around as needed. Please check https://emacsconf.org/2020 a few days before the start of the conference for instructions on how to watch and participate. +<!-- automatically generated from submissions.org ---> +[[!meta title="Extend Emacs to Modern GUI Applications with EAF"]] diff --git a/2020/schedule/35.md b/2020/schedule/35.md new file mode 100644 index 00000000..8fb2ae2c --- /dev/null +++ b/2020/schedule/35.md @@ -0,0 +1,22 @@ +# WAVEing at Repetitive Repetitive Repetitive Music +Sunday, Nov 29 2020, 4:20 PM - 4:30 PM +Zachary Kanfer + +During quarantine, I found myself spending time with an Android app. +One of the features this app has is composing music that loops +endlessly. As with many things, I wondered how much better this tool +would be, if only it was inside Emacs. + +This talk will explain how I made this tool inside Emacs, with detours +through Emacs text properties, font rendering, the .WAVE file format, +and music theory. And hopefully at the end, we'll have something +worth listening to. + + + + +Back to the [[schedule]] + +All times are approximate, and we might shuffle talks around as needed. Please check https://emacsconf.org/2020 a few days before the start of the conference for instructions on how to watch and participate. +<!-- automatically generated from submissions.org ---> +[[!meta title="WAVEing at Repetitive Repetitive Repetitive Music"]] diff --git a/2020/submissions.org b/2020/submissions.org index 7823a0a5..5aa5a7e5 100644 --- a/2020/submissions.org +++ b/2020/submissions.org @@ -8,6 +8,7 @@ [[elisp:(org-babel-execute-buffer)][Execute buffer]] - start with this to get the function definitions [[elisp:(conf/update-talks)][Update talk info]] - run this after changing talk time or order [[elisp:(let ((org-agenda-files (list (buffer-file-name)))) (org-agenda-list nil (org-read-date nil nil "2020-11-28") 2))][View as agenda]] +[[lisp:conf/generate-schedule-files][Generate schedule files]] * Tables @@ -149,8 +150,8 @@ :TARGET_TIME: 768 :DIFFERENCE: Needs: 82 :END: - -** November 28 (Saturday) :sat: + +** NOVEMBER 28 (Saturday) :sat: *** 9:00 - 9:30 Opening remarks SCHEDULED: <2020-11-28 Sat 09:00-09:30> @@ -158,9 +159,7 @@ SCHEDULED: <2020-11-28 Sat 09:00-09:30> :FIXED_TIME: t :MIN_TIME: 30 :END: - *** 9:30 - 12:00 User talks :morning: -SCHEDULED: <2020-11-28 Sat 09:00-09:30> :PROPERTIES: :TARGET_TIME: 120 :MIN_TIME_SUM: 110 @@ -206,14 +205,14 @@ Name: Sacha Chua 10 minutes -****** Abstract - -Quick overview of Emacs community highlights since the last conference - ****** (Un)availability Available maybe 9am-3pm EST +****** Abstract + +Quick highlights from Emacs News since the last EmacsConf + ****** Speaker release By submitting this proposal, I agree that my presentation at EmacsConf @@ -592,6 +591,13 @@ SCHEDULED: <2020-11-28 Sat 11:01-11:21> :TALK_ID: 07 :END: +Name: Sid Kasivajhula + +****** Preferred format + +Extended or Standard +****** Comments + #+begin_quote I think this might be a better fit as a lightning talk or maybe a standard talk that demonstrates the concept with a few well-chosen @@ -599,48 +605,42 @@ examples. A possible goal might be to show people that they can develop a mental model and remap more keys to fit it. #+end_quote -Name: Sid Kasivajhula - -****** Preferred format - -Extended or Standard - ****** Abstract - A practiced dexterity with the arcane incantations known as keybindings is - the true mark of the veteran Emacs user. Yet, it takes years to get there, - and if you tried to explain what you were doing there, nobody would - understand, least of all those Vim users who would say that the whole - enterprise was foolhardy to begin with. They don't get it, those fools. Let - them flounder about in their "normal mode." Normal isn't good enough for - me! I want exceptional, IDEAL, I want... glorious mode, that's what I want. - And the only thing that'll cut it is if I do it ... my way. Why, with my - precious emacs.d, I'm invincible! Well... just between you and me, there - are times when learning new keybindings every time someone makes a new toy - gets to be a bit of a drag, and some days I can't keep my C-c's and my C-c - C-c's straight if I'm being honest with you, but you'll never catch me - admitting it! I do wonder if there's a better way to get to glorious mode, - even though my .emacs.d is already perfect (of course). - - If this secretly sounds like you, then rejoice, there just might be a new - way, a better way! And you could potentially get there in days instead of - years, so that even your script kiddie coworker with their "VSCode" (groan) - may at last come around to your way of looking at things, and, maybe, just - maybe, even those Vim users (hiss!)! - - "Epistemic" Emacs is a user interface paradigm based on treating aspects of - the user interface as conceptual entities that can be reasoned about in - terms of a standard language. Essentially, instead of learning keybindings - for each specific action, you learn keybindings for general, conceptual - habits, kind of like Vim, except that instead of reasoning only about text, - you reason about any aspect of your interaction with the machine, whether - it's windows or buffers or even those interactions themselves. The promise - of this approach is that you just learn a simple language once, and you can - then apply it to vastly different aspects of your user interface, with the - same keybindings doing different things in different contexts, in sensible - and predictable ways. And in principle, whenever that new toy technology - comes around, anyone could extend the UI language to apply to it in a - matter of minutes, and you'd already know how to use it. +A practiced dexterity with the arcane incantations known as keybindings is +the true mark of the veteran Emacs user. Yet, it takes years to get there, +and if you tried to explain what you were doing there, nobody would +understand, least of all those Vim users who would say that the whole +enterprise was foolhardy to begin with. They don't get it, those fools. Let +them flounder about in their "normal mode." Normal isn't good enough for +me! I want exceptional, IDEAL, I want... glorious mode, that's what I want. +And the only thing that'll cut it is if I do it ... my way. Why, with my +precious emacs.d, I'm invincible! Well... just between you and me, there +are times when learning new keybindings every time someone makes a new toy +gets to be a bit of a drag, and some days I can't keep my C-c's and my C-c +C-c's straight if I'm being honest with you, but you'll never catch me +admitting it! I do wonder if there's a better way to get to glorious mode, +even though my .emacs.d is already perfect (of course). + +If this secretly sounds like you, then rejoice, there just might be a new +way, a better way! And you could potentially get there in days instead of +years, so that even your script kiddie coworker with their "VSCode" (groan) +may at last come around to your way of looking at things, and, maybe, just +maybe, even those Vim users (hiss!)! + +"Epistemic" Emacs is a user interface paradigm based on treating aspects of +the user interface as conceptual entities that can be reasoned about in +terms of a standard language. Essentially, instead of learning keybindings +for each specific action, you learn keybindings for general, conceptual +habits, kind of like Vim, except that instead of reasoning only about text, +you reason about any aspect of your interaction with the machine, whether +it's windows or buffers or even those interactions themselves. The promise +of this approach is that you just learn a simple language once, and you can +then apply it to vastly different aspects of your user interface, with the +same keybindings doing different things in different contexts, in sensible +and predictable ways. And in principle, whenever that new toy technology +comes around, anyone could extend the UI language to apply to it in a +matter of minutes, and you'd already know how to use it. ****** (Un)availability @@ -779,18 +779,23 @@ SCHEDULED: <2020-11-28 Sat 12:00-13:00> | [2020-11-28 Sat 16:16-16:36] | OMG Macros | Corwin Brust | | ok | #+END: -**** Org Workflows +**** in-progress Orgmode - your life in plain text :standard:tutorial:org:nudge: + SCHEDULED: <2020-11-28 Sat 13:03-13:13> + :PROPERTIES: + :MAX_TIME: 20 + :MIN_TIME: 10 + :AVAILABILITY: CET, so 9am-maybe 2pm EST (8pm CET) + :NAME: Rainer König + :CUSTOM_ID: talk09 + :TALK_ID: 09 + :END: -***** in-progress Orgmode - your life in plain text :standard:tutorial:org:nudge: -SCHEDULED: <2020-11-28 Sat 13:03-13:13> - :PROPERTIES: - :MAX_TIME: 20 - :MIN_TIME: 10 - :AVAILABILITY: CET, so 9am-maybe 2pm EST (8pm CET) - :NAME: Rainer König - :CUSTOM_ID: talk09 - :TALK_ID: 09 - :END: +Name: Rainer König + +***** Preferred format + +Talk +***** Comments #+begin_quote I'm also not sure we need a 20-minute tutorial on Org Mode, since it's @@ -801,13 +806,7 @@ workflows, though, so if this talk is rejigged as a workflow demo, it might be a good fit for 10-20 minutes. #+end_quote -Name: Rainer König - -****** Preferred format - -Talk - -****** Abstract +***** Abstract This is a talk about Orgmode, my favorite Emacs application. The goal is to show you the power of Emacs when you want to manage and organize @@ -833,12 +832,12 @@ of those tutorials. In Summer 2020 I recorded the tutorials again for a course at Udemy which went online in October 2020 and is supplemented by a 100+ pages course book. -****** (Un)availability +***** (Un)availability Since its weekend on November 28/29 I think I can be flexible, but keep in mind that I'm living in the Central European Time time zone. -****** Speaker release +***** Speaker release By submitting this proposal, I agree that my presentation at EmacsConf 2020 is subject to the following terms and conditions: @@ -864,25 +863,25 @@ 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. -***** in-progress Lead your future with Org :standard:lightning:org:workflow:user: -SCHEDULED: <2020-11-28 Sat 13:16-13:26> -:PROPERTIES: -:MAX_TIME: 20 -:MIN_TIME: 10 -:AVAILABILITY: ok -:NAME: Andrea -:CUSTOM_ID: talk10 -:TALK_ID: 10 -:END: +**** in-progress Lead your future with Org :standard:lightning:org:workflow:user: + SCHEDULED: <2020-11-28 Sat 13:16-13:26> + :PROPERTIES: + :MAX_TIME: 20 + :MIN_TIME: 10 + :AVAILABILITY: ok + :NAME: Andrea + :CUSTOM_ID: talk10 + :TALK_ID: 10 + :END: Name: Andrea -****** Preferred format +***** Preferred format Standard talk (or even Lighting talk by only giving references to the modes I plan to show) -****** Abstract +***** Abstract The world is full of possibilities. A person life is rather short though, and one can easily end up carry on without focus. @@ -898,11 +897,11 @@ actions to review and set up a healthy feedback loop. Tools for the job that I will (at least) mention: Org files, Org agenda, Org archive, org-ql, and Org-roam. -****** (Un)availability +***** (Un)availability I am available :D -****** Speaker release +***** Speaker release By submitting this proposal, I agree that my presentation at EmacsConf 2020 is subject to the following terms and conditions: @@ -928,24 +927,24 @@ 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. -***** in-progress the org-gtd package: opinions about Getting Things Done -SCHEDULED: <2020-11-28 Sat 13:29-13:49> -:PROPERTIES: -:MIN_TIME: 20 -:MAX_TIME: 50 -:AVAILABILITY: ok, confirmed -:NAME: Aldric -:CUSTOM_ID: talk11 -:TALK_ID: 11 -:END: +**** in-progress the org-gtd package: opinions about Getting Things Done + SCHEDULED: <2020-11-28 Sat 13:29-13:49> + :PROPERTIES: + :MIN_TIME: 20 + :MAX_TIME: 50 + :AVAILABILITY: ok, confirmed + :NAME: Aldric + :CUSTOM_ID: talk11 + :TALK_ID: 11 + :END: Name: Aldric -****** Preferred format +***** Preferred format 50 min - can also do 20 minutes -****** Abstract +***** Abstract Come see how org-gtd leverages org-mode to automate the GTD inbox management. Stick around to see how the various org-mode tools get @@ -953,11 +952,11 @@ connected by the package and how you can leverage them for yourself. Bonus: there's even a few tests written for the package! We'll go over those too. -****** (Un)availability +***** (Un)availability N/A -****** Speaker release +***** Speaker release By submitting this proposal, I agree that my presentation at EmacsConf 2020 is subject to the following terms and conditions: @@ -983,25 +982,25 @@ 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. -***** in-progress One Big-ass Org File or multiple tiny ones? Finally, the End of the debate! :standard:lightning:org:user:timing: -SCHEDULED: <2020-11-28 Sat 13:52-14:02> -:PROPERTIES: -:MAX_TIME: 20 -:MIN_TIME: 10 -:AVAILABILITY: 9am-12pm EST (in CET timezone)... see if 1-3pm EST (7-9pm CET) is still doable? -:NAME: Leo Vivier -:CUSTOM_ID: talk12 -:TALK_ID: 12 -:END: +**** in-progress One Big-ass Org File or multiple tiny ones? Finally, the End of the debate! :standard:lightning:org:user:timing: + SCHEDULED: <2020-11-28 Sat 13:52-14:02> + :PROPERTIES: + :MAX_TIME: 20 + :MIN_TIME: 10 + :AVAILABILITY: 9am-12pm EST (in CET timezone)... see if 1-3pm EST (7-9pm CET) is still doable? + :NAME: Leo Vivier + :CUSTOM_ID: talk12 + :TALK_ID: 12 + :END: Name: Leo Vivier -****** Preferred format +***** Preferred format Standard Talk (20 min). Could be condensed into a Lightning Talk (10 min), but I fear it would not do it justice. -****** Abstract +***** Abstract Many discussions have been had over the years on the debate between using few big files versus many small files. However, more often than @@ -1025,13 +1024,13 @@ I feel qualified to talk about this topic for two reasons: I intend the talk to be fairly light-hearted and humorous, which is the only way we can do true justice to the topic. -****** (Un)availability +***** (Un)availability I am in CET, and I would rather have the presentation early in the day (9am-12pm EST would be stellar). If need be, I could present later, but I do not think I would be as effective. -****** Speaker release +***** Speaker release By submitting this proposal, I agree that my presentation at EmacsConf 2020 is subject to the following terms and conditions: @@ -1074,7 +1073,7 @@ Name: Joseph Corneli, Raymond Puzio, and Cameron Ray Smith 10 minute talk -***** Abstract +***** [#B] Abstract We present a short experience report from the perspective of two long-time Emacs users and one relative newcomer. Our motivations @@ -1361,6 +1360,12 @@ SCHEDULED: <2020-11-28 Sat 15:17-15:37> :TALK_ID: 17 :END: +Name: Noorah Alhasan + +***** Preferred format + +20 minutes +***** Comments #+begin_quote org-roam has a lot of talks in this agenda, but it (and other Zettelkasten-type things) have resulted in a lot of buzz in the Org @@ -1370,11 +1375,6 @@ coordinating with the one doing the org-roam overview in order to minimize overlap. This might even be doable in a lightning talk. #+end_quote -Name: Noorah Alhasan - -***** Preferred format - -20 minutes ***** Abstract @@ -1659,15 +1659,16 @@ SCHEDULED: <2020-11-28 Sat 17:03-17:43> :TALK_ID: 21 :END: -#+begin_quote -Will be pre-recorded, so we might be able to move it around in the schedule -#+end_quote - Name: Eduardo Ochs ***** Preferred format Extended talk +***** Comments + +#+begin_quote +Will be pre-recorded, so we might be able to move it around in the schedule +#+end_quote ***** Abstract @@ -1751,7 +1752,7 @@ 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. -** November 29 (Sunday) :sun: +** NOVEMBER 29 (Sunday) :sun: *** 9:00 - 9:30 Opening remarks SCHEDULED: <2020-11-29 Sun 09:00-09:30> @@ -1794,17 +1795,19 @@ SCHEDULED: <2020-11-29 Sun 09:33-09:53> :TALK_ID: 22 :END: -#+begin_quote -2020-10-18: Moved back to Sunday, e-mailed. -2020-10-17: Possibly move to Saturday? E-mailed 2020-10-17. Might be good to put this before OMG Macros. -#+end_quote - Name: Musa Al-hassy ***** Preferred format Standard talk +***** Comments + +#+begin_quote +2020-10-18: Moved back to Sunday, e-mailed. +2020-10-17: Possibly move to Saturday? E-mailed 2020-10-17. Might be good to put this before OMG Macros. +#+end_quote + ***** Abstract Users will generally only make use of a few predefined `special @@ -2152,6 +2155,14 @@ SCHEDULED: <2020-11-29 Sun 13:03-13:13> :TALK_ID: 26 :END: +Name: Pierce Wang + +***** Preferred format + +Standard Talk + +***** Comments + #+begin_quote Probably good idea to reach out to this speaker and check on the angle of this talk. It could be a good way to explore the question of how @@ -2159,12 +2170,6 @@ new people discover Emacs, get motivated to try Emacs, and get through the roadblocks, keeping in mind that it's from personal experience. #+end_quote -Name: Pierce Wang - -***** Preferred format - -Standard Talk - ***** Abstract Could Emacs be humanity's solution to the turbulent years of @@ -2225,11 +2230,6 @@ SCHEDULED: <2020-11-29 Sun 13:16-13:26> :TALK_ID: 27 :END: -#+begin_quote -It might be good to nudge this to be a lightning talk since it's been -presented elsewhere. -#+end_quote - Hello, I'd like to hand in a talk I've already presented at two different @@ -2240,6 +2240,12 @@ Name: Vasilij "wasamasa" Schneidermann ***** Preferred format 50 minutes (Extended talk) +***** Comments + +#+begin_quote +It might be good to nudge this to be a lightning talk since it's been +presented elsewhere. +#+end_quote ***** Abstract @@ -2679,17 +2685,17 @@ SCHEDULED: <2020-11-29 Sun 15:34-15:54> :TALK_ID: 33 :END: -#+begin_quote -This could be a coding-type talk (how to do something technical in -Emacs) or an Emacs Lisp talk (how to modernize outdated code and -integrate with external apps). -#+end_quote - Name: Fermin MF ***** Preferred format 20 minutes (Standard talk) +***** Comments +#+begin_quote +This could be a coding-type talk (how to do something technical in +Emacs) or an Emacs Lisp talk (how to modernize outdated code and +integrate with external apps). +#+end_quote ***** Abstract @@ -3018,7 +3024,97 @@ The total is written to the MIN_TIME_SUM property of this heading" (lambda () (org-entry-get (point) "MIN_TIME")) nil 'tree)))))))) #+end_src +** Generate schedule file +#+begin_src emacs-lisp :results none +(defun conf/get-talk-info () + (let (talk results) + (org-map-entries (lambda () + (let ((heading (org-heading-components))) + (cond + ((and (elt heading 2) (or (null talk) + (<= (car heading) + (plist-get talk :level)))) ;; has a todo, therefore is a talk + (when talk (setq results (cons talk results))) + (setq talk (list + :type 'talk + :title (elt heading 4) + :talk-id (org-entry-get (point) "TALK_ID") + :status (elt heading 2) + :level (car heading) + :scheduled (org-entry-get (point) "SCHEDULED") + :time (org-entry-get (point) "MIN_TIME") + :speakers (org-entry-get (point) "NAME")))) + ((string-match "^ *Abstract *$" (elt heading 4)) + (plist-put talk :abstract + (buffer-substring-no-properties + (save-excursion (forward-line) (line-beginning-position)) + (save-excursion (org-end-of-subtree))))) + ((or (null talk) (< (car heading) (plist-get talk :level))) ;; heading above + (when talk + (setq results (cons talk results)) + (setq talk nil)) + (setq results (cons + (list :type 'headline + :level (car heading) + :title (elt heading 4) + :scheduled (org-entry-get (point) "SCHEDULED")) + results)))))) + nil 'tree) + (when talk (setq results (cons talk results))) + (reverse results))) + +(defun conf/format-talk-info-as-schedule (info) + (format "<table width=\"100%%\">%s</table>" + (mapconcat + (lambda (o) + (let* ((time-fmt "%l:%M %p") + (timestamp (org-timestamp-from-string (plist-get o :scheduled))) + (start (if timestamp (format-time-string time-fmt (org-timestamp-to-time (org-timestamp-split-range timestamp))) "")) + (end (if timestamp (format-time-string time-fmt (org-timestamp-to-time (org-timestamp-split-range timestamp t))) "")) + (title (plist-get o :title)) + (speakers (plist-get o :speakers))) + (if (eq (plist-get o :type) 'headline) + (format "<tr><td colspan=\"4\"><strong>%s<strong></td></tr>" + title) + (format "<tr><td width=100>%s</td><td width=100>%s</td><td><a href=\"./%s\">%s</a></td><td>%s</td></tr>" + start end (plist-get o :talk-id) title speakers)))) (cdr info) "\n"))) +(defun conf/format-talk-pages (info) + (mapc (lambda (o) + (with-temp-buffer + (let ((timestamp (org-timestamp-from-string (plist-get o :scheduled)))) + (insert (format "# %s\n%s \n%s\n\n%s\n\n +Back to the [[schedule]] + +All times are approximate, and we might shuffle talks around as needed. Please check https://emacsconf.org/2020 a few days before the start of the conference for instructions on how to watch and participate. +<!-- automatically generated from submissions.org --->\n[[!meta title=\"%s\"]]" + (plist-get o :title) + (format "%s - %s" + (format-time-string "%A, %b %e %Y, %l:%M %p" (org-timestamp-to-time (org-timestamp-split-range timestamp))) + (format-time-string "%l:%M %p" (org-timestamp-to-time (org-timestamp-split-range timestamp t)))) + (plist-get o :speakers) + (org-export-string-as (plist-get o :abstract) 'md t) + (replace-regexp-in-string "\"" "\\\\\"" (plist-get o :title)) + ))) + (write-file (format "schedule/%s.md" (plist-get o :talk-id))))) + (seq-filter (lambda (o) (eq (plist-get o :type) 'talk)) info))) + +(defun conf/generate-schedule-files () + (interactive) + (with-temp-buffer + (insert-file-contents "submissions.org") + (org-mode) + (org-show-all) + (goto-char (point-min)) + (goto-char (org-find-property "ID" "talks")) + (let ((info (conf/get-talk-info))) + (with-temp-buffer + (insert (conf/format-talk-info-as-schedule info)) + (write-file "schedule-details.txt")) + (conf/format-talk-pages info) + (with-current-buffer (find-file "schedule.org") + (org-export-to-file 'md "schedule.md"))))) +#+end_src * COMMENT Possible rough flow suggested by Sacha |