diff options
Diffstat (limited to '')
-rw-r--r-- | 2020/submissions.md | 4125 | ||||
-rw-r--r-- | 2020/submissions.org | 21 |
2 files changed, 4139 insertions, 7 deletions
diff --git a/2020/submissions.md b/2020/submissions.md new file mode 100644 index 00000000..5f55fadc --- /dev/null +++ b/2020/submissions.md @@ -0,0 +1,4125 @@ + +# Table of Contents + +- [Actions](#org291cf0a) +- [Tables](#org4a76454) + - [Overall](#orgdf3edab) + - [By slot](#orge036cb3) + - [Saturday](#org4de662a) + - [Sunday](#org7ccfc64) + - [Table for all talks](#orga235ca1) +- [Talks](#org7cbfd99) + - [NOVEMBER 28 (Saturday)](#orga4c7dc2):sat: + - [9:00 - 9:30 Opening remarks](#orgf28f620) + - [9:30 - 12:00 User talks](#org8ee6379):morning: + - [12:00 - 13:00 Lunch](#org71b2ecc) + - [13:00 - 16:30 Afternoon talks](#org45fa351):afternoon: + - [16:30 - 17:00 Closing remarks](#org41ec440) + - [NOVEMBER 29 (Sunday)](#orgbfd71f8):sun: + - [9:00 - 9:10 Opening remarks](#orgb79afa2) + - [9:10 - 12:00 Morning talks](#org953e502):morning: + - [12:00 - 13:00 Lunch](#org4f525bf) + - [13:00 - 16:30 Afternoon talks](#org00dd53f):afternoon: + - [16:30 - 17:00 Closing remarks](#orgf4a8e98) +- [Withdrawn](#orgac23017) + - [So Easy My Manager Can Do It!](#talk36):lightning:beginner:user:nudge: + - [Preferred format](#orgcadf82b) + - [Abstract](#org4f2154d) + - [(Un)availability](#org9ff6021) + - [Speaker release](#org2cd152d) +- [Code](#talk37) + - [Planning](#org014fc78) + - [Generate schedule file](#org0da23c5) + + + +<a id="org291cf0a"></a> + +# Actions + +[Execute buffer]((org-babel-execute-buffer)) - start with this to get the function definitions +[Update talk info]((conf/update-talks)) - run this after changing talk time or order +[View as agenda]((let ((org-agenda-files (list (buffer-file-name)))) (org-agenda-list nil (org-read-date nil nil "2020-11-28") 2))) +[Generate schedule files](conf/generate-schedule-files) + + +<a id="org4a76454"></a> + +# Tables + + +<a id="orgdf3edab"></a> + +## Overall + +<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> + + +<colgroup> +<col class="org-left" /> + +<col class="org-right" /> + +<col class="org-right" /> + +<col class="org-left" /> +</colgroup> +<thead> +<tr> +<th scope="col" class="org-left">DIFFERENCE</th> +<th scope="col" class="org-right">TARGET_TIME</th> +<th scope="col" class="org-right">MIN_TIME_SUM</th> +<th scope="col" class="org-left">ITEM</th> +</tr> +</thead> + +<tbody> +<tr> +<td class="org-left">Needs: 99</td> +<td class="org-right">768</td> +<td class="org-right">867</td> +<td class="org-left">Talks</td> +</tr> + + +<tr> +<td class="org-left"> </td> +<td class="org-right"> </td> +<td class="org-right"> </td> +<td class="org-left">NOVEMBER 28 (Saturday)</td> +</tr> + + +<tr> +<td class="org-left"> </td> +<td class="org-right"> </td> +<td class="org-right"> </td> +<td class="org-left">9:00 - 9:30 Opening remarks</td> +</tr> + + +<tr> +<td class="org-left">Needs: 30</td> +<td class="org-right">120</td> +<td class="org-right">150</td> +<td class="org-left">9:30 - 12:00 User talks</td> +</tr> + + +<tr> +<td class="org-left"> </td> +<td class="org-right"> </td> +<td class="org-right"> </td> +<td class="org-left">12:00 - 13:00 Lunch</td> +</tr> + + +<tr> +<td class="org-left">Needs: 12</td> +<td class="org-right">168</td> +<td class="org-right">180</td> +<td class="org-left">13:00 - 16:30 Afternoon talks</td> +</tr> + + +<tr> +<td class="org-left"> </td> +<td class="org-right"> </td> +<td class="org-right"> </td> +<td class="org-left">16:30 - 17:00 Closing remarks</td> +</tr> + + +<tr> +<td class="org-left"> </td> +<td class="org-right"> </td> +<td class="org-right"> </td> +<td class="org-left">NOVEMBER 29 (Sunday)</td> +</tr> + + +<tr> +<td class="org-left"> </td> +<td class="org-right"> </td> +<td class="org-right"> </td> +<td class="org-left">9:00 - 9:10 Opening remarks</td> +</tr> + + +<tr> +<td class="org-left">Extra: 3</td> +<td class="org-right">140</td> +<td class="org-right">137</td> +<td class="org-left">9:10 - 12:00 Morning talks</td> +</tr> + + +<tr> +<td class="org-left"> </td> +<td class="org-right"> </td> +<td class="org-right"> </td> +<td class="org-left">12:00 - 13:00 Lunch</td> +</tr> + + +<tr> +<td class="org-left">Needs: 12</td> +<td class="org-right">168</td> +<td class="org-right">180</td> +<td class="org-left">13:00 - 16:30 Afternoon talks</td> +</tr> + + +<tr> +<td class="org-left"> </td> +<td class="org-right"> </td> +<td class="org-right"> </td> +<td class="org-left">16:30 - 17:00 Closing remarks</td> +</tr> +</tbody> +</table> + + +<a id="orge036cb3"></a> + +## By slot + + +<a id="org4de662a"></a> + +### Saturday + +- 9:30 - 12:00 User talks :morning: + + <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> + + + <colgroup> + <col class="org-left" /> + + <col class="org-left" /> + + <col class="org-left" /> + + <col class="org-left" /> + + <col class="org-left" /> + </colgroup> + <thead> + <tr> + <th scope="col" class="org-left">SCHEDULED</th> + <th scope="col" class="org-left">ITEM</th> + <th scope="col" class="org-left">NAME</th> + <th scope="col" class="org-left">PREREC</th> + <th scope="col" class="org-left">AVAILABILITY</th> + </tr> + </thead> + + <tbody> + <tr> + <td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 09:33]–[2020-11-28 Sat 09:43]</span></span></td> + <td class="org-left">Emacs News Highlights</td> + <td class="org-left">Sacha Chua</td> + <td class="org-left">planned</td> + <td class="org-left">prerec, maybe 9am-3pm EST</td> + </tr> + + + <tr> + <td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 09:46]–[2020-11-28 Sat 10:06]</span></span></td> + <td class="org-left">An Emacs Developer Story: From User to Maintainer</td> + <td class="org-left">Leo Vivier</td> + <td class="org-left"> </td> + <td class="org-left">9am-12pm EST</td> + </tr> + + + <tr> + <td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 10:09]–[2020-11-28 Sat 10:19]</span></span></td> + <td class="org-left">Idea to Novel Superstructure: Emacs for Writing</td> + <td class="org-left">Bala Ramadurai</td> + <td class="org-left"> </td> + <td class="org-left">8:30am EST-12pm EST</td> + </tr> + + + <tr> + <td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 10:22]–[2020-11-28 Sat 10:32]</span></span></td> + <td class="org-left">Music in Plain Text</td> + <td class="org-left">Jonathan Gregory</td> + <td class="org-left">planned</td> + <td class="org-left">ok</td> + </tr> + + + <tr> + <td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 10:35]–[2020-11-28 Sat 10:45]</span></span></td> + <td class="org-left">Bard Bivou(m)acs - Building a bandcamp-like page for an album of music</td> + <td class="org-left">Grant Shangreaux</td> + <td class="org-left"> </td> + <td class="org-left">10am-5pm EST, daylight Central US</td> + </tr> + + + <tr> + <td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 10:48]–[2020-11-28 Sat 10:58]</span></span></td> + <td class="org-left">Trivial Emacs Kits</td> + <td class="org-left">Corwin Brust</td> + <td class="org-left"> </td> + <td class="org-left">ok</td> + </tr> + + + <tr> + <td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 11:01]–[2020-11-28 Sat 11:21]</span></span></td> + <td class="org-left">Beyond Vim and Emacs: A Scalable UI Paradigm</td> + <td class="org-left">Sid Kasivajhula</td> + <td class="org-left"> </td> + <td class="org-left">PST, so maybe 11 AM EST - 5 PM EST?</td> + </tr> + + + <tr> + <td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 11:24]–[2020-11-28 Sat 11:44]</span></span></td> + <td class="org-left">Building reproducible Emacs</td> + <td class="org-left">Andrew Tropin</td> + <td class="org-left"> </td> + <td class="org-left">After 4pm UTC - 11am-5pm EST</td> + </tr> + + + <tr> + <td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 11:47]–[2020-11-28 Sat 12:27]</span></span></td> + <td class="org-left">On why most of the best features in eev look like 5-minute hacks</td> + <td class="org-left">Eduardo Ochs</td> + <td class="org-left">planned</td> + <td class="org-left">ok</td> + </tr> + </tbody> + </table> + +- 13:00 - 16:30 Afternoon talks :afternoon: + + <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> + + + <colgroup> + <col class="org-left" /> + + <col class="org-left" /> + + <col class="org-left" /> + + <col class="org-left" /> + + <col class="org-left" /> + </colgroup> + <thead> + <tr> + <th scope="col" class="org-left">SCHEDULED</th> + <th scope="col" class="org-left">ITEM</th> + <th scope="col" class="org-left">NAME</th> + <th scope="col" class="org-left">PREREC</th> + <th scope="col" class="org-left">AVAILABILITY</th> + </tr> + </thead> + + <tbody> + <tr> + <td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 13:03]–[2020-11-28 Sat 13:13]</span></span></td> + <td class="org-left">Orgmode - your life in plain text</td> + <td class="org-left">Rainer König</td> + <td class="org-left"> </td> + <td class="org-left">CET, so 9am-maybe 2pm EST (8pm CET)</td> + </tr> + + + <tr> + <td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 13:16]–[2020-11-28 Sat 13:26]</span></span></td> + <td class="org-left">Lead your future with Org</td> + <td class="org-left">Andrea</td> + <td class="org-left"> </td> + <td class="org-left">ok</td> + </tr> + + + <tr> + <td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 13:29]–[2020-11-28 Sat 13:49]</span></span></td> + <td class="org-left">the org-gtd package: opinions about Getting Things Done</td> + <td class="org-left">Aldric</td> + <td class="org-left"> </td> + <td class="org-left">ok, confirmed</td> + </tr> + + + <tr> + <td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 13:52]–[2020-11-28 Sat 14:02]</span></span></td> + <td class="org-left">One Big-ass Org File or multiple tiny ones? Finally, the End of the debate!</td> + <td class="org-left">Leo Vivier</td> + <td class="org-left"> </td> + <td class="org-left">9am-12pm EST (in CET timezone)… see if 1-3pm EST (7-9pm CET) is still doable?</td> + </tr> + + + <tr> + <td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 14:05]–[2020-11-28 Sat 14:15]</span></span></td> + <td class="org-left">Experience Report: Steps to "Emacs Hyper Notebooks"</td> + <td class="org-left">Joseph Corneli, Raymond Puzio, and Cameron Ray Smith</td> + <td class="org-left"> </td> + <td class="org-left">ok</td> + </tr> + + + <tr> + <td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 14:18]–[2020-11-28 Sat 14:38]</span></span></td> + <td class="org-left">Literate Programming in Emacs Org-Mode</td> + <td class="org-left">Adam Ard</td> + <td class="org-left">planned</td> + <td class="org-left">ok</td> + </tr> + + + <tr> + <td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 14:41]–[2020-11-28 Sat 14:51]</span></span></td> + <td class="org-left">Moving from Jekyll to OrgMode, an experience report</td> + <td class="org-left">Adolfo Villafiorita</td> + <td class="org-left"> </td> + <td class="org-left">9am-5pm CET, so 9am-12pm EST; see if 7pm-9pm CET (1-3pm EST is available)</td> + </tr> + + + <tr> + <td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 14:54]–[2020-11-28 Sat 15:14]</span></span></td> + <td class="org-left">Org-roam: Presentation, Demonstration, and What's on the Horizon</td> + <td class="org-left">Leo Vivier</td> + <td class="org-left"> </td> + <td class="org-left">2:30-ish EST ok with tea; in CET timezone</td> + </tr> + + + <tr> + <td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 15:17]–[2020-11-28 Sat 15:37]</span></span></td> + <td class="org-left">Org-mode and Org-Roam for Scholars and Researchers</td> + <td class="org-left">Noorah Alhasan</td> + <td class="org-left"> </td> + <td class="org-left">ok</td> + </tr> + + + <tr> + <td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 15:40]–[2020-11-28 Sat 16:00]</span></span></td> + <td class="org-left">Org-roam: Technical Presentation</td> + <td class="org-left">Leo Vivier</td> + <td class="org-left"> </td> + <td class="org-left">2:30-ish EST ok with tea; in CET timezone</td> + </tr> + + + <tr> + <td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 16:03]–[2020-11-28 Sat 16:13]</span></span></td> + <td class="org-left">Sharing blogs (and more) with org-webring</td> + <td class="org-left">Brett Gilio</td> + <td class="org-left"> </td> + <td class="org-left">ok</td> + </tr> + + + <tr> + <td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 16:16]–[2020-11-28 Sat 16:36]</span></span></td> + <td class="org-left">OMG Macros</td> + <td class="org-left">Corwin Brust</td> + <td class="org-left"> </td> + <td class="org-left">ok</td> + </tr> + </tbody> + </table> + + +<a id="org7ccfc64"></a> + +### Sunday + +- 9:30 - 12:00 Morning talks :morning: + + <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> + + + <colgroup> + <col class="org-left" /> + + <col class="org-left" /> + + <col class="org-left" /> + + <col class="org-left" /> + + <col class="org-left" /> + </colgroup> + <thead> + <tr> + <th scope="col" class="org-left">SCHEDULED</th> + <th scope="col" class="org-left">ITEM</th> + <th scope="col" class="org-left">NAME</th> + <th scope="col" class="org-left">PREREC</th> + <th scope="col" class="org-left">AVAILABILITY</th> + </tr> + </thead> + + <tbody> + <tr> + <td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 09:13]–[2020-11-29 Sun 09:30]</span></span></td> + <td class="org-left">Emacs development update</td> + <td class="org-left">John Wiegley</td> + <td class="org-left">planned</td> + <td class="org-left">prerec</td> + </tr> + + + <tr> + <td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 09:33]–[2020-11-29 Sun 09:53]</span></span></td> + <td class="org-left">Powering-up Special Blocks</td> + <td class="org-left">Musa Al-hassy</td> + <td class="org-left"> </td> + <td class="org-left">Unavailable 1pm-2pm EST both days</td> + </tr> + + + <tr> + <td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 09:56]–[2020-11-29 Sun 10:46]</span></span></td> + <td class="org-left">Incremental Parsing with emacs-tree-sitter</td> + <td class="org-left">Tuấn-Anh Nguyễn</td> + <td class="org-left">planned</td> + <td class="org-left">GMT+7, so earlier is better (9:30 EST?). Can pre-record and answer questions.</td> + </tr> + + + <tr> + <td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 10:49]–[2020-11-29 Sun 11:09]</span></span></td> + <td class="org-left">Analyze code quality through Emacs: a smart forensics approach and the story of a hack</td> + <td class="org-left">Andrea</td> + <td class="org-left">planned</td> + <td class="org-left">ok</td> + </tr> + + + <tr> + <td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 11:12]–[2020-11-29 Sun 11:22]</span></span></td> + <td class="org-left">Traverse complex JSON structures with live feedback</td> + <td class="org-left">Zen Monk Alain M. Lafon</td> + <td class="org-left">planned</td> + <td class="org-left">Available both days, birthday on the 28th</td> + </tr> + + + <tr> + <td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 11:25]–[2020-11-29 Sun 11:45]</span></span></td> + <td class="org-left">Non-GNU ELPA</td> + <td class="org-left">Richard Stallman</td> + <td class="org-left"> </td> + <td class="org-left">tbd</td> + </tr> + </tbody> + </table> + +- 13:00 - 16:30 Afternoon talks :afternoon: + + <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> + + + <colgroup> + <col class="org-left" /> + + <col class="org-left" /> + + <col class="org-left" /> + + <col class="org-left" /> + + <col class="org-left" /> + </colgroup> + <thead> + <tr> + <th scope="col" class="org-left">SCHEDULED</th> + <th scope="col" class="org-left">ITEM</th> + <th scope="col" class="org-left">NAME</th> + <th scope="col" class="org-left">PREREC</th> + <th scope="col" class="org-left">AVAILABILITY</th> + </tr> + </thead> + + <tbody> + <tr> + <td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 13:03]–[2020-11-29 Sun 13:13]</span></span></td> + <td class="org-left">Emacs as a Highschooler: How It Changed My Life</td> + <td class="org-left">Pierce Wang</td> + <td class="org-left"> </td> + <td class="org-left">Sun 12pm EST onwards</td> + </tr> + + + <tr> + <td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 13:16]–[2020-11-29 Sun 13:26]</span></span></td> + <td class="org-left">State of Retro Gaming in Emacs</td> + <td class="org-left">Vasilij "wasamasa" Schneidermann</td> + <td class="org-left"> </td> + <td class="org-left">8am-10pm CET, so 9am-3pm EST</td> + </tr> + + + <tr> + <td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 13:29]–[2020-11-29 Sun 14:19]</span></span></td> + <td class="org-left">Welcome To The Dungeon</td> + <td class="org-left">Erik Elmshauser and Corwin Brust</td> + <td class="org-left"> </td> + <td class="org-left">ok</td> + </tr> + + + <tr> + <td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 14:22]–[2020-11-29 Sun 14:42]</span></span></td> + <td class="org-left">Pathing of Least Resistance</td> + <td class="org-left">Corwin Brust</td> + <td class="org-left"> </td> + <td class="org-left">ok</td> + </tr> + + + <tr> + <td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 14:45]–[2020-11-29 Sun 14:55]</span></span></td> + <td class="org-left">A tour of vterm</td> + <td class="org-left">Gabriele Bozzola (@sbozzolo)</td> + <td class="org-left">planned</td> + <td class="org-left">MST, so 11am-5pm EST</td> + </tr> + + + <tr> + <td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 14:58]–[2020-11-29 Sun 15:08]</span></span></td> + <td class="org-left">Lakota Language and Emacs</td> + <td class="org-left">Grant Shangreaux</td> + <td class="org-left">planned</td> + <td class="org-left">Central time, 10am EST-5pm EST</td> + </tr> + + + <tr> + <td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 15:11]–[2020-11-29 Sun 15:31]</span></span></td> + <td class="org-left">Object Oriented Code in the Gnus Newsreader</td> + <td class="org-left">Eric Abrahamsen</td> + <td class="org-left">planned</td> + <td class="org-left">ok</td> + </tr> + + + <tr> + <td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 15:34]–[2020-11-29 Sun 15:54]</span></span></td> + <td class="org-left">Maxima a computer algebra system in Emacs</td> + <td class="org-left">Fermin MF</td> + <td class="org-left"> </td> + <td class="org-left">afternoon if possible</td> + </tr> + + + <tr> + <td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 15:57]–[2020-11-29 Sun 16:17]</span></span></td> + <td class="org-left">Extend Emacs to Modern GUI Applications with EAF</td> + <td class="org-left">Matthew Zeng</td> + <td class="org-left"> </td> + <td class="org-left">after 12pm EST both days; confirmed available November 29, 1pm-4:30pm EST.</td> + </tr> + + + <tr> + <td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 16:20]–[2020-11-29 Sun 16:30]</span></span></td> + <td class="org-left">WAVEing at Repetitive Repetitive Repetitive Music</td> + <td class="org-left">Zachary Kanfer</td> + <td class="org-left"> </td> + <td class="org-left">ok</td> + </tr> + </tbody> + </table> + + +<a id="orga235ca1"></a> + +## Table for all talks + +<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> + + +<colgroup> +<col class="org-left" /> + +<col class="org-left" /> + +<col class="org-left" /> + +<col class="org-left" /> +</colgroup> +<thead> +<tr> +<th scope="col" class="org-left">PREREC</th> +<th scope="col" class="org-left">SCHEDULED</th> +<th scope="col" class="org-left">ITEM</th> +<th scope="col" class="org-left">NAME</th> +</tr> +</thead> + +<tbody> +<tr> +<td class="org-left">planned</td> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 09:33]–[2020-11-28 Sat 09:43]</span></span></td> +<td class="org-left">Emacs News Highlights</td> +<td class="org-left">Sacha Chua</td> +</tr> + + +<tr> +<td class="org-left"> </td> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 09:46]–[2020-11-28 Sat 10:06]</span></span></td> +<td class="org-left">An Emacs Developer Story: From User to Maintainer</td> +<td class="org-left">Leo Vivier</td> +</tr> + + +<tr> +<td class="org-left"> </td> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 10:09]–[2020-11-28 Sat 10:19]</span></span></td> +<td class="org-left">Idea to Novel Superstructure: Emacs for Writing</td> +<td class="org-left">Bala Ramadurai</td> +</tr> + + +<tr> +<td class="org-left">planned</td> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 10:22]–[2020-11-28 Sat 10:32]</span></span></td> +<td class="org-left">Music in Plain Text</td> +<td class="org-left">Jonathan Gregory</td> +</tr> + + +<tr> +<td class="org-left"> </td> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 10:35]–[2020-11-28 Sat 10:45]</span></span></td> +<td class="org-left">Bard Bivou(m)acs - Building a bandcamp-like page for an album of music</td> +<td class="org-left">Grant Shangreaux</td> +</tr> + + +<tr> +<td class="org-left"> </td> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 10:48]–[2020-11-28 Sat 10:58]</span></span></td> +<td class="org-left">Trivial Emacs Kits</td> +<td class="org-left">Corwin Brust</td> +</tr> + + +<tr> +<td class="org-left"> </td> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 11:01]–[2020-11-28 Sat 11:21]</span></span></td> +<td class="org-left">Beyond Vim and Emacs: A Scalable UI Paradigm</td> +<td class="org-left">Sid Kasivajhula</td> +</tr> + + +<tr> +<td class="org-left"> </td> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 11:24]–[2020-11-28 Sat 11:44]</span></span></td> +<td class="org-left">Building reproducible Emacs</td> +<td class="org-left">Andrew Tropin</td> +</tr> + + +<tr> +<td class="org-left">planned</td> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 11:47]–[2020-11-28 Sat 12:27]</span></span></td> +<td class="org-left">On why most of the best features in eev look like 5-minute hacks</td> +<td class="org-left">Eduardo Ochs</td> +</tr> + + +<tr> +<td class="org-left"> </td> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 13:03]–[2020-11-28 Sat 13:13]</span></span></td> +<td class="org-left">Orgmode - your life in plain text</td> +<td class="org-left">Rainer König</td> +</tr> + + +<tr> +<td class="org-left"> </td> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 13:16]–[2020-11-28 Sat 13:26]</span></span></td> +<td class="org-left">Lead your future with Org</td> +<td class="org-left">Andrea</td> +</tr> + + +<tr> +<td class="org-left"> </td> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 13:29]–[2020-11-28 Sat 13:49]</span></span></td> +<td class="org-left">the org-gtd package: opinions about Getting Things Done</td> +<td class="org-left">Aldric</td> +</tr> + + +<tr> +<td class="org-left"> </td> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 13:52]–[2020-11-28 Sat 14:02]</span></span></td> +<td class="org-left">One Big-ass Org File or multiple tiny ones? Finally, the End of the debate!</td> +<td class="org-left">Leo Vivier</td> +</tr> + + +<tr> +<td class="org-left"> </td> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 14:05]–[2020-11-28 Sat 14:15]</span></span></td> +<td class="org-left">Experience Report: Steps to "Emacs Hyper Notebooks"</td> +<td class="org-left">Joseph Corneli, Raymond Puzio, and Cameron Ray Smith</td> +</tr> + + +<tr> +<td class="org-left">planned</td> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 14:18]–[2020-11-28 Sat 14:38]</span></span></td> +<td class="org-left">Literate Programming in Emacs Org-Mode</td> +<td class="org-left">Adam Ard</td> +</tr> + + +<tr> +<td class="org-left"> </td> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 14:41]–[2020-11-28 Sat 14:51]</span></span></td> +<td class="org-left">Moving from Jekyll to OrgMode, an experience report</td> +<td class="org-left">Adolfo Villafiorita</td> +</tr> + + +<tr> +<td class="org-left"> </td> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 14:54]–[2020-11-28 Sat 15:14]</span></span></td> +<td class="org-left">Org-roam: Presentation, Demonstration, and What's on the Horizon</td> +<td class="org-left">Leo Vivier</td> +</tr> + + +<tr> +<td class="org-left"> </td> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 15:17]–[2020-11-28 Sat 15:37]</span></span></td> +<td class="org-left">Org-mode and Org-Roam for Scholars and Researchers</td> +<td class="org-left">Noorah Alhasan</td> +</tr> + + +<tr> +<td class="org-left"> </td> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 15:40]–[2020-11-28 Sat 16:00]</span></span></td> +<td class="org-left">Org-roam: Technical Presentation</td> +<td class="org-left">Leo Vivier</td> +</tr> + + +<tr> +<td class="org-left"> </td> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 16:03]–[2020-11-28 Sat 16:13]</span></span></td> +<td class="org-left">Sharing blogs (and more) with org-webring</td> +<td class="org-left">Brett Gilio</td> +</tr> + + +<tr> +<td class="org-left"> </td> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 16:16]–[2020-11-28 Sat 16:36]</span></span></td> +<td class="org-left">OMG Macros</td> +<td class="org-left">Corwin Brust</td> +</tr> + + +<tr> +<td class="org-left">planned</td> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 09:13]–[2020-11-29 Sun 09:30]</span></span></td> +<td class="org-left">Emacs development update</td> +<td class="org-left">John Wiegley</td> +</tr> + + +<tr> +<td class="org-left"> </td> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 09:33]–[2020-11-29 Sun 09:53]</span></span></td> +<td class="org-left">Powering-up Special Blocks</td> +<td class="org-left">Musa Al-hassy</td> +</tr> + + +<tr> +<td class="org-left">planned</td> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 09:56]–[2020-11-29 Sun 10:46]</span></span></td> +<td class="org-left">Incremental Parsing with emacs-tree-sitter</td> +<td class="org-left">Tuấn-Anh Nguyễn</td> +</tr> + + +<tr> +<td class="org-left">planned</td> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 10:49]–[2020-11-29 Sun 11:09]</span></span></td> +<td class="org-left">Analyze code quality through Emacs: a smart forensics approach and the story of a hack</td> +<td class="org-left">Andrea</td> +</tr> + + +<tr> +<td class="org-left">planned</td> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 11:12]–[2020-11-29 Sun 11:22]</span></span></td> +<td class="org-left">Traverse complex JSON structures with live feedback</td> +<td class="org-left">Zen Monk Alain M. Lafon</td> +</tr> + + +<tr> +<td class="org-left"> </td> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 11:25]–[2020-11-29 Sun 11:45]</span></span></td> +<td class="org-left">Non-GNU ELPA</td> +<td class="org-left">Richard Stallman</td> +</tr> + + +<tr> +<td class="org-left"> </td> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 13:03]–[2020-11-29 Sun 13:13]</span></span></td> +<td class="org-left">Emacs as a Highschooler: How It Changed My Life</td> +<td class="org-left">Pierce Wang</td> +</tr> + + +<tr> +<td class="org-left"> </td> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 13:16]–[2020-11-29 Sun 13:26]</span></span></td> +<td class="org-left">State of Retro Gaming in Emacs</td> +<td class="org-left">Vasilij "wasamasa" Schneidermann</td> +</tr> + + +<tr> +<td class="org-left"> </td> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 13:29]–[2020-11-29 Sun 14:19]</span></span></td> +<td class="org-left">Welcome To The Dungeon</td> +<td class="org-left">Erik Elmshauser and Corwin Brust</td> +</tr> + + +<tr> +<td class="org-left"> </td> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 14:22]–[2020-11-29 Sun 14:42]</span></span></td> +<td class="org-left">Pathing of Least Resistance</td> +<td class="org-left">Corwin Brust</td> +</tr> + + +<tr> +<td class="org-left">planned</td> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 14:45]–[2020-11-29 Sun 14:55]</span></span></td> +<td class="org-left">A tour of vterm</td> +<td class="org-left">Gabriele Bozzola (@sbozzolo)</td> +</tr> + + +<tr> +<td class="org-left">planned</td> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 14:58]–[2020-11-29 Sun 15:08]</span></span></td> +<td class="org-left">Lakota Language and Emacs</td> +<td class="org-left">Grant Shangreaux</td> +</tr> + + +<tr> +<td class="org-left">planned</td> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 15:11]–[2020-11-29 Sun 15:31]</span></span></td> +<td class="org-left">Object Oriented Code in the Gnus Newsreader</td> +<td class="org-left">Eric Abrahamsen</td> +</tr> + + +<tr> +<td class="org-left"> </td> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 15:34]–[2020-11-29 Sun 15:54]</span></span></td> +<td class="org-left">Maxima a computer algebra system in Emacs</td> +<td class="org-left">Fermin MF</td> +</tr> + + +<tr> +<td class="org-left"> </td> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 15:57]–[2020-11-29 Sun 16:17]</span></span></td> +<td class="org-left">Extend Emacs to Modern GUI Applications with EAF</td> +<td class="org-left">Matthew Zeng</td> +</tr> + + +<tr> +<td class="org-left"> </td> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 16:20]–[2020-11-29 Sun 16:30]</span></span></td> +<td class="org-left">WAVEing at Repetitive Repetitive Repetitive Music</td> +<td class="org-left">Zachary Kanfer</td> +</tr> +</tbody> +</table> + + +<a id="org7cbfd99"></a> + +# Talks + + +<a id="orga4c7dc2"></a> + +## NOVEMBER 28 (Saturday) :sat: + + +<a id="orgf28f620"></a> + +### 9:00 - 9:30 Opening remarks + + +<a id="org8ee6379"></a> + +### 9:30 - 12:00 User talks :morning: + +<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> + + +<colgroup> +<col class="org-right" /> + +<col class="org-right" /> + +<col class="org-right" /> +</colgroup> +<tbody> +<tr> +<td class="org-right">Difference</td> +<td class="org-right">Minimum time</td> +<td class="org-right">Target time</td> +</tr> + + +<tr> +<td class="org-right">-30</td> +<td class="org-right">150</td> +<td class="org-right">120</td> +</tr> +</tbody> +</table> + +<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> + + +<colgroup> +<col class="org-left" /> + +<col class="org-left" /> + +<col class="org-left" /> + +<col class="org-left" /> + +<col class="org-left" /> +</colgroup> +<thead> +<tr> +<th scope="col" class="org-left">SCHEDULED</th> +<th scope="col" class="org-left">ITEM</th> +<th scope="col" class="org-left">NAME</th> +<th scope="col" class="org-left">PREREC</th> +<th scope="col" class="org-left">AVAILABILITY</th> +</tr> +</thead> + +<tbody> +<tr> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 09:33]–[2020-11-28 Sat 09:43]</span></span></td> +<td class="org-left">Emacs News Highlights</td> +<td class="org-left">Sacha Chua</td> +<td class="org-left">planned</td> +<td class="org-left">prerec, maybe 9am-3pm EST</td> +</tr> + + +<tr> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 09:46]–[2020-11-28 Sat 10:06]</span></span></td> +<td class="org-left">An Emacs Developer Story: From User to Maintainer</td> +<td class="org-left">Leo Vivier</td> +<td class="org-left"> </td> +<td class="org-left">9am-12pm EST</td> +</tr> + + +<tr> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 10:09]–[2020-11-28 Sat 10:19]</span></span></td> +<td class="org-left">Idea to Novel Superstructure: Emacs for Writing</td> +<td class="org-left">Bala Ramadurai</td> +<td class="org-left"> </td> +<td class="org-left">8:30am EST-12pm EST</td> +</tr> + + +<tr> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 10:22]–[2020-11-28 Sat 10:32]</span></span></td> +<td class="org-left">Music in Plain Text</td> +<td class="org-left">Jonathan Gregory</td> +<td class="org-left">planned</td> +<td class="org-left">ok</td> +</tr> + + +<tr> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 10:35]–[2020-11-28 Sat 10:45]</span></span></td> +<td class="org-left">Bard Bivou(m)acs - Building a bandcamp-like page for an album of music</td> +<td class="org-left">Grant Shangreaux</td> +<td class="org-left"> </td> +<td class="org-left">10am-5pm EST, daylight Central US</td> +</tr> + + +<tr> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 10:48]–[2020-11-28 Sat 10:58]</span></span></td> +<td class="org-left">Trivial Emacs Kits</td> +<td class="org-left">Corwin Brust</td> +<td class="org-left"> </td> +<td class="org-left">ok</td> +</tr> + + +<tr> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 11:01]–[2020-11-28 Sat 11:21]</span></span></td> +<td class="org-left">Beyond Vim and Emacs: A Scalable UI Paradigm</td> +<td class="org-left">Sid Kasivajhula</td> +<td class="org-left"> </td> +<td class="org-left">PST, so maybe 11 AM EST - 5 PM EST?</td> +</tr> + + +<tr> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 11:24]–[2020-11-28 Sat 11:44]</span></span></td> +<td class="org-left">Building reproducible Emacs</td> +<td class="org-left">Andrew Tropin</td> +<td class="org-left"> </td> +<td class="org-left">After 4pm UTC - 11am-5pm EST</td> +</tr> + + +<tr> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 11:47]–[2020-11-28 Sat 12:27]</span></span></td> +<td class="org-left">On why most of the best features in eev look like 5-minute hacks</td> +<td class="org-left">Eduardo Ochs</td> +<td class="org-left">planned</td> +<td class="org-left">ok</td> +</tr> +</tbody> +</table> + +- User stories + + - in-progress Emacs News Highlights :lightning:user: + + Name: Sacha Chua + + - Preferred format + + 10 minutes + + - (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 + 2020 is subject to the following terms and conditions: + + The EmacsConf organizers may capture audio and video (a "Recording") + of my presentation and any associated materials, which may include + slides, notes, transcripts, and prerecording(s) of my presentation + that I provide to the EmacsConf organizers. + + I authorize the EmacsConf organizers to distribute, reproduce, + publicly display, and prepare derivative works of the Recording and + any derivative works of the Recording (the "Licensed Materials") under + the terms of the Creative Commons Attribution-ShareAlike 4.0 + International (CC BY-SA 4.0) license. + + I grant to the EmacsConf organizers permission to use my name, + likeness, and biographic information in association with their use of + the Licensed Materials under the above license. + + I represent that I have the authority to grant the above license to + the EmacsConf organizers. If my presentation incorporates any + material owned by third parties, I represent that the material is + sublicensable to the EmacsConf organizers or that my use of them is + fair use. + + - in-progress An Emacs Developer Story: From User to Maintainer :standard:user:community: + + Name: Leo Vivier + + - Preferred format + + Standard Talk (20 min). + + - Abstract + + 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> + + - (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 + + By submitting this proposal, I agree that my presentation at EmacsConf + 2020 is subject to the following terms and conditions: + + The EmacsConf organizers may capture audio and video (a "Recording") + of my presentation and any associated materials, which may include + slides, notes, transcripts, and prerecording(s) of my presentation + that I provide to the EmacsConf organizers. + + I authorize the EmacsConf organizers to distribute, reproduce, + publicly display, and prepare derivative works of the Recording and + any derivative works of the Recording (the "Licensed Materials") under + the terms of the Creative Commons Attribution-ShareAlike 4.0 + International (CC BY-SA 4.0) license. + + I grant to the EmacsConf organizers permission to use my name, + likeness, and biographic information in association with their use of + the Licensed Materials under the above license. + + I represent that I have the authority to grant the above license to + the EmacsConf organizers. If my presentation incorporates any + material owned by third parties, I represent that the material is + sublicensable to the EmacsConf organizers or that my use of them is + fair use. + +- Exploring Emacs's flexibility + + - in-progress Idea to Novel Superstructure: Emacs for Writing :standard:lightning:user: + + Name: Bala Ramadurai + + - Preferred format + + Standard talk (I am ok to reduce this to a lightning talk as well) + + - Abstract + + 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 + + - (Un)availability + + Available between 01:30pm and 06:30pm UTC on Nov 28, 2020. Also + available between 01:30pm and 05:00pm UTC. + + - Speaker release + + By submitting this proposal, I agree that my presentation at EmacsConf + 2020 is subject to the following terms and conditions: + + The EmacsConf organizers may capture audio and video (a "Recording") + of my presentation and any associated materials, which may include + slides, notes, transcripts, and prerecording(s) of my presentation + that I provide to the EmacsConf organizers. + + I authorize the EmacsConf organizers to distribute, reproduce, + publicly display, and prepare derivative works of the Recording and + any derivative works of the Recording (the "Licensed Materials") under + the terms of the Creative Commons Attribution-ShareAlike 4.0 + International (CC BY-SA 4.0) license. + + I grant to the EmacsConf organizers permission to use my name, + likeness, and biographic information in association with their use of + the Licensed Materials under the above license. + + I represent that I have the authority to grant the above license to + the EmacsConf organizers. If my presentation incorporates any + material owned by third parties, I represent that the material is + sublicensable to the EmacsConf organizers or that my use of them is + fair use. + + - in-progress Music in Plain Text :music:user:lightning: + + Name: Jonathan Gregory + + - Preferred format + + 10 minutes + + - Abstract + + 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. + + - (Un)availability + + Available both days + + - Speaker release + + By submitting this proposal, I agree that my presentation at EmacsConf + 2020 is subject to the following terms and conditions: + + The EmacsConf organizers may capture audio and video (a "Recording") + of my presentation and any associated materials, which may include + slides, notes, transcripts, and prerecording(s) of my presentation + that I provide to the EmacsConf organizers. + + I authorize the EmacsConf organizers to distribute, reproduce, + publicly display, and prepare derivative works of the Recording and + any derivative works of the Recording (the "Licensed Materials") under + the terms of the Creative Commons Attribution-ShareAlike 4.0 + International (CC BY-SA 4.0) license. + + I grant to the EmacsConf organizers permission to use my name, + likeness, and biographic information in association with their use of + the Licensed Materials under the above license. + + I represent that I have the authority to grant the above license to + the EmacsConf organizers. If my presentation incorporates any + material owned by third parties, I represent that the material is + sublicensable to the EmacsConf organizers or that my use of them is + fair use. + + - in-progress Bard Bivou(m)acs - Building a bandcamp-like page for an album of music :music: + + Name: Grant Shangreaux + + - Preferred format + + 10 minute + + - Abstract + + 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. + + - (Un)availability + + Flexible, prefer daylight times for US Central time zone + + - Speaker release + + By submitting this proposal, I agree that my presentation at EmacsConf + 2020 is subject to the following terms and conditions: + + The EmacsConf organizers may capture audio and video (a "Recording") + of my presentation and any associated materials, which may include + slides, notes, transcripts, and prerecording(s) of my presentation + that I provide to the EmacsConf organizers. + + I authorize the EmacsConf organizers to distribute, reproduce, + publicly display, and prepare derivative works of the Recording and + any derivative works of the Recording (the "Licensed Materials") under + the terms of the Creative Commons Attribution-ShareAlike 4.0 + International (CC BY-SA 4.0) license. + + I grant to the EmacsConf organizers permission to use my name, + likeness, and biographic information in association with their use of + the Licensed Materials under the above license. + + I represent that I have the authority to grant the above license to + the EmacsConf organizers. If my presentation incorporates any + material owned by third parties, I represent that the material is + sublicensable to the EmacsConf organizers or that my use of them is + fair use. + +- Emacs configuration + + - in-progress Trivial Emacs Kits :lightning:config:user:beginner: + + Name: Corwin Brust + + - Preferred format + + Lightning talk (10m, probably without Q&A) + + - Abstract + + Techniques to help new users bootstrap a more gentle introduction to + Emacs, one (short) init.el file at a time. + + - (Un)availability + + None + + - Speaker release + + By submitting this proposal, I agree that my presentation at EmacsConf + 2020 is subject to the following terms and conditions: + + The EmacsConf organizers may capture audio and video (a "Recording") + of my presentation and any associated materials, which may include + slides, notes, transcripts, and prerecording(s) of my presentation + that I provide to the EmacsConf organizers. + + I authorize the EmacsConf organizers to distribute, reproduce, + publicly display, and prepare derivative works of the Recording and + any derivative works of the Recording (the "Licensed Materials") under + the terms of the Creative Commons Attribution-ShareAlike 4.0 + International (CC BY-SA 4.0) license. + + I grant to the EmacsConf organizers permission to use my name, + likeness, and biographic information in association with their use of + the Licensed Materials under the above license. + + I represent that I have the authority to grant the above license to + the EmacsConf organizers. If my presentation incorporates any + material owned by third parties, I represent that the material is + sublicensable to the EmacsConf organizers or that my use of them is + fair use. + + - in-progress Beyond Vim and Emacs: A Scalable UI Paradigm :nudge: + + Name: Sid Kasivajhula + + - Preferred format + + Extended or Standard + + - Comments + + > 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 + > examples. A possible goal might be to show people that they can + > develop a mental model and remap more keys to fit it. + + - 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. + + - (Un)availability + + No constraints at this time. + + - Speaker release + + By submitting this proposal, I agree that my presentation at EmacsConf + 2020 is subject to the following terms and conditions: + + The EmacsConf organizers may capture audio and video (a "Recording") + of my presentation and any associated materials, which may include + slides, notes, transcripts, and prerecording(s) of my presentation + that I provide to the EmacsConf organizers. + + I authorize the EmacsConf organizers to distribute, reproduce, + publicly display, and prepare derivative works of the Recording and + any derivative works of the Recording (the "Licensed Materials") under + the terms of the Creative Commons Attribution-ShareAlike 4.0 + International (CC BY-SA 4.0) license. + + I grant to the EmacsConf organizers permission to use my name, + likeness, and biographic information in association with their use of + the Licensed Materials under the above license. + + I represent that I have the authority to grant the above license to + the EmacsConf organizers. If my presentation incorporates any + material owned by third parties, I represent that the material is + sublicensable to the EmacsConf organizers or that my use of them is + fair use. + + - in-progress Building reproducible Emacs :standard:extended:config:user: + + Name: Andrew Tropin + + - Preferred format + + Extended preferred, standard possible + + - Abstract + + 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. + + - (Un)availability + + After 4pm UTC + + - Speaker release + + By submitting this proposal, I agree that my presentation at EmacsConf + 2020 is subject to the following terms and conditions: + + The EmacsConf organizers may capture audio and video (a "Recording") + of my presentation and any associated materials, which may include + slides, notes, transcripts, and prerecording(s) of my presentation + that I provide to the EmacsConf organizers. + + I authorize the EmacsConf organizers to distribute, reproduce, + publicly display, and prepare derivative works of the Recording and + any derivative works of the Recording (the "Licensed Materials") under + the terms of the Creative Commons Attribution-ShareAlike 4.0 + International (CC BY-SA 4.0) license. + + I grant to the EmacsConf organizers permission to use my name, + likeness, and biographic information in association with their use of + the Licensed Materials under the above license. + + I represent that I have the authority to grant the above license to + the EmacsConf organizers. If my presentation incorporates any + material owned by third parties, I represent that the material is + sublicensable to the EmacsConf organizers or that my use of them is + fair use. + + - in-progress On why most of the best features in eev look like 5-minute hacks :extended:user:nudge:prerec: + + Name: Eduardo Ochs + + - Preferred format + + Extended talk + + - Comments + + > Will be pre-recorded, so we might be able to move it around in the schedule + + - Abstract + + 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". + + - (Un)availability + + I will be available the whole day. + + - Speaker release + + By submitting this proposal, I agree that my presentation at EmacsConf + 2020 is subject to the following terms and conditions: + + The EmacsConf organizers may capture audio and video (a "Recording") + of my presentation and any associated materials, which may include + slides, notes, transcripts, and prerecording(s) of my presentation + that I provide to the EmacsConf organizers. + + I authorize the EmacsConf organizers to distribute, reproduce, + publicly display, and prepare derivative works of the Recording and + any derivative works of the Recording (the "Licensed Materials") under + the terms of the Creative Commons Attribution-ShareAlike 4.0 + International (CC BY-SA 4.0) license. + + I grant to the EmacsConf organizers permission to use my name, + likeness, and biographic information in association with their use of + the Licensed Materials under the above license. + + I represent that I have the authority to grant the above license to + the EmacsConf organizers. If my presentation incorporates any + material owned by third parties, I represent that the material is + sublicensable to the EmacsConf organizers or that my use of them is + fair use. + + +<a id="org71b2ecc"></a> + +### 12:00 - 13:00 Lunch + + +<a id="org45fa351"></a> + +### 13:00 - 16:30 Afternoon talks :afternoon: + +<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> + + +<colgroup> +<col class="org-right" /> + +<col class="org-right" /> + +<col class="org-right" /> +</colgroup> +<tbody> +<tr> +<td class="org-right">Difference</td> +<td class="org-right">Minimum time</td> +<td class="org-right">Target time</td> +</tr> + + +<tr> +<td class="org-right">-12</td> +<td class="org-right">180</td> +<td class="org-right">168</td> +</tr> +</tbody> +</table> + +<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> + + +<colgroup> +<col class="org-left" /> + +<col class="org-left" /> + +<col class="org-left" /> + +<col class="org-left" /> + +<col class="org-left" /> +</colgroup> +<thead> +<tr> +<th scope="col" class="org-left">SCHEDULED</th> +<th scope="col" class="org-left">ITEM</th> +<th scope="col" class="org-left">NAME</th> +<th scope="col" class="org-left">PREREC</th> +<th scope="col" class="org-left">AVAILABILITY</th> +</tr> +</thead> + +<tbody> +<tr> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 13:03]–[2020-11-28 Sat 13:13]</span></span></td> +<td class="org-left">Orgmode - your life in plain text</td> +<td class="org-left">Rainer König</td> +<td class="org-left"> </td> +<td class="org-left">CET, so 9am-maybe 2pm EST (8pm CET)</td> +</tr> + + +<tr> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 13:16]–[2020-11-28 Sat 13:26]</span></span></td> +<td class="org-left">Lead your future with Org</td> +<td class="org-left">Andrea</td> +<td class="org-left"> </td> +<td class="org-left">ok</td> +</tr> + + +<tr> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 13:29]–[2020-11-28 Sat 13:49]</span></span></td> +<td class="org-left">the org-gtd package: opinions about Getting Things Done</td> +<td class="org-left">Aldric</td> +<td class="org-left"> </td> +<td class="org-left">ok, confirmed</td> +</tr> + + +<tr> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 13:52]–[2020-11-28 Sat 14:02]</span></span></td> +<td class="org-left">One Big-ass Org File or multiple tiny ones? Finally, the End of the debate!</td> +<td class="org-left">Leo Vivier</td> +<td class="org-left"> </td> +<td class="org-left">9am-12pm EST (in CET timezone)… see if 1-3pm EST (7-9pm CET) is still doable?</td> +</tr> + + +<tr> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 14:05]–[2020-11-28 Sat 14:15]</span></span></td> +<td class="org-left">Experience Report: Steps to "Emacs Hyper Notebooks"</td> +<td class="org-left">Joseph Corneli, Raymond Puzio, and Cameron Ray Smith</td> +<td class="org-left"> </td> +<td class="org-left">ok</td> +</tr> + + +<tr> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 14:18]–[2020-11-28 Sat 14:38]</span></span></td> +<td class="org-left">Literate Programming in Emacs Org-Mode</td> +<td class="org-left">Adam Ard</td> +<td class="org-left">planned</td> +<td class="org-left">ok</td> +</tr> + + +<tr> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 14:41]–[2020-11-28 Sat 14:51]</span></span></td> +<td class="org-left">Moving from Jekyll to OrgMode, an experience report</td> +<td class="org-left">Adolfo Villafiorita</td> +<td class="org-left"> </td> +<td class="org-left">9am-5pm CET, so 9am-12pm EST; see if 7pm-9pm CET (1-3pm EST is available)</td> +</tr> + + +<tr> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 14:54]–[2020-11-28 Sat 15:14]</span></span></td> +<td class="org-left">Org-roam: Presentation, Demonstration, and What's on the Horizon</td> +<td class="org-left">Leo Vivier</td> +<td class="org-left"> </td> +<td class="org-left">2:30-ish EST ok with tea; in CET timezone</td> +</tr> + + +<tr> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 15:17]–[2020-11-28 Sat 15:37]</span></span></td> +<td class="org-left">Org-mode and Org-Roam for Scholars and Researchers</td> +<td class="org-left">Noorah Alhasan</td> +<td class="org-left"> </td> +<td class="org-left">ok</td> +</tr> + + +<tr> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 15:40]–[2020-11-28 Sat 16:00]</span></span></td> +<td class="org-left">Org-roam: Technical Presentation</td> +<td class="org-left">Leo Vivier</td> +<td class="org-left"> </td> +<td class="org-left">2:30-ish EST ok with tea; in CET timezone</td> +</tr> + + +<tr> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 16:03]–[2020-11-28 Sat 16:13]</span></span></td> +<td class="org-left">Sharing blogs (and more) with org-webring</td> +<td class="org-left">Brett Gilio</td> +<td class="org-left"> </td> +<td class="org-left">ok</td> +</tr> + + +<tr> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-28 Sat 16:16]–[2020-11-28 Sat 16:36]</span></span></td> +<td class="org-left">OMG Macros</td> +<td class="org-left">Corwin Brust</td> +<td class="org-left"> </td> +<td class="org-left">ok</td> +</tr> +</tbody> +</table> + +- in-progress Orgmode - your life in plain text :standard:tutorial:org:nudge: + + Name: Rainer König + + - Preferred format + + Talk + + - Comments + + > I'm also not sure we need a 20-minute tutorial on Org Mode, since it's + > a perennial topic for other videos. I suppose people unfamiliar with + > Org Mode will probably benefit from a quick pointer to beginner + > resources (maybe a 5-minute pointer). I'm always curious about Org + > workflows, though, so if this talk is rejigged as a workflow demo, it + > might be a good fit for 10-20 minutes. + + - 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 + 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. + + - (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 + + By submitting this proposal, I agree that my presentation at EmacsConf + 2020 is subject to the following terms and conditions: + + The EmacsConf organizers may capture audio and video (a "Recording") + of my presentation and any associated materials, which may include + slides, notes, transcripts, and prerecording(s) of my presentation + that I provide to the EmacsConf organizers. + + I authorize the EmacsConf organizers to distribute, reproduce, + publicly display, and prepare derivative works of the Recording and + any derivative works of the Recording (the "Licensed Materials") under + the terms of the Creative Commons Attribution-ShareAlike 4.0 + International (CC BY-SA 4.0) license. + + I grant to the EmacsConf organizers permission to use my name, + likeness, and biographic information in association with their use of + the Licensed Materials under the above license. + + I represent that I have the authority to grant the above license to + the EmacsConf organizers. If my presentation incorporates any + material owned by third parties, I represent that the material is + sublicensable to the EmacsConf organizers or that my use of them is + fair use. + +- in-progress Lead your future with Org :standard:lightning:org:workflow:user: + + Name: Andrea + + - Preferred format + + Standard talk (or even Lighting talk by only giving references to the + modes I plan to show) + + - Abstract + + 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. + + - (Un)availability + + I am available :D + + - Speaker release + + By submitting this proposal, I agree that my presentation at EmacsConf + 2020 is subject to the following terms and conditions: + + The EmacsConf organizers may capture audio and video (a "Recording") + of my presentation and any associated materials, which may include + slides, notes, transcripts, and prerecording(s) of my presentation + that I provide to the EmacsConf organizers. + + I authorize the EmacsConf organizers to distribute, reproduce, + publicly display, and prepare derivative works of the Recording and + any derivative works of the Recording (the "Licensed Materials") under + the terms of the Creative Commons Attribution-ShareAlike 4.0 + International (CC BY-SA 4.0) license. + + I grant to the EmacsConf organizers permission to use my name, + likeness, and biographic information in association with their use of + the Licensed Materials under the above license. + + I represent that I have the authority to grant the above license to + the EmacsConf organizers. If my presentation incorporates any + material owned by third parties, I represent that the material is + sublicensable to the EmacsConf organizers or that my use of them is + fair use. + +- in-progress the org-gtd package: opinions about Getting Things Done + + Name: Aldric + + - Preferred format + + 50 min - can also do 20 minutes + + - 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 + 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 + + N/A + + - Speaker release + + By submitting this proposal, I agree that my presentation at EmacsConf + 2020 is subject to the following terms and conditions: + + The EmacsConf organizers may capture audio and video (a "Recording") + of my presentation and any associated materials, which may include + slides, notes, transcripts, and prerecording(s) of my presentation + that I provide to the EmacsConf organizers. + + I authorize the EmacsConf organizers to distribute, reproduce, + publicly display, and prepare derivative works of the Recording and + any derivative works of the Recording (the "Licensed Materials") under + the terms of the Creative Commons Attribution-ShareAlike 4.0 + International (CC BY-SA 4.0) license. + + I grant to the EmacsConf organizers permission to use my name, + likeness, and biographic information in association with their use of + the Licensed Materials under the above license. + + I represent that I have the authority to grant the above license to + the EmacsConf organizers. If my presentation incorporates any + material owned by third parties, I represent that the material is + sublicensable to the EmacsConf organizers or that my use of them is + fair use. + +- in-progress One Big-ass Org File or multiple tiny ones? Finally, the End of the debate! :standard:lightning:org:user:timing: + + Name: Leo Vivier + + - 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 + + 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. + + - (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 + + By submitting this proposal, I agree that my presentation at EmacsConf + 2020 is subject to the following terms and conditions: + + The EmacsConf organizers may capture audio and video (a "Recording") + of my presentation and any associated materials, which may include + slides, notes, transcripts, and prerecording(s) of my presentation + that I provide to the EmacsConf organizers. + + I authorize the EmacsConf organizers to distribute, reproduce, + publicly display, and prepare derivative works of the Recording and + any derivative works of the Recording (the "Licensed Materials") under + the terms of the Creative Commons Attribution-ShareAlike 4.0 + International (CC BY-SA 4.0) license. + + I grant to the EmacsConf organizers permission to use my name, + likeness, and biographic information in association with their use of + the Licensed Materials under the above license. + + I represent that I have the authority to grant the above license to + the EmacsConf organizers. If my presentation incorporates any + material owned by third parties, I represent that the material is + sublicensable to the EmacsConf organizers or that my use of them is + fair use. + +- in-progress Experience Report: Steps to "Emacs Hyper Notebooks" + + Name: Joseph Corneli, Raymond Puzio, and Cameron Ray Smith + + - Preferred format + + 10 minute talk + + - Abstract + + 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. + + - (Un)availability + + N/A + + - Speaker release + + By submitting this proposal, I agree that my presentation at EmacsConf + 2020 is subject to the following terms and conditions: + + The EmacsConf organizers may capture audio and video (a "Recording") + of my presentation and any associated materials, which may include + slides, notes, transcripts, and prerecording(s) of my presentation + that I provide to the EmacsConf organizers. + + I authorize the EmacsConf organizers to distribute, reproduce, + publicly display, and prepare derivative works of the Recording and + any derivative works of the Recording (the "Licensed Materials") under + the terms of the Creative Commons Attribution-ShareAlike 4.0 + International (CC BY-SA 4.0) license. + + I grant to the EmacsConf organizers permission to use my name, + likeness, and biographic information in association with their use of + the Licensed Materials under the above license. + + I represent that I have the authority to grant the above license to + the EmacsConf organizers. If my presentation incorporates any + material owned by third parties, I represent that the material is + sublicensable to the EmacsConf organizers or that my use of them is + fair use. + +- in-progress Literate Programming in Emacs Org-Mode :extended:standard:org:tutorial: + + Name: Adam Ard + + - Preferred format + + I think I have enough for a full 50 minutes. But I can do a shorter + version too if that will work better for the conference schedule. + My schedule is wide open too, so put me in at any time slot. + + - Abstract + + 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. + + - (Un)availability + + I am available for any time slot or length. Stick me in wherever! + + - Speaker release + + By submitting this proposal, I agree that my presentation at EmacsConf + 2020 is subject to the following terms and conditions: + + The EmacsConf organizers may capture audio and video (a "Recording") + of my presentation and any associated materials, which may include + slides, notes, transcripts, and prerecording(s) of my presentation + that I provide to the EmacsConf organizers. + + I authorize the EmacsConf organizers to distribute, reproduce, + publicly display, and prepare derivative works of the Recording and + any derivative works of the Recording (the "Licensed Materials") under + the terms of the Creative Commons Attribution-ShareAlike 4.0 + International (CC BY-SA 4.0) license. + + I grant to the EmacsConf organizers permission to use my name, + likeness, and biographic information in association with their use of + the Licensed Materials under the above license. + + I represent that I have the authority to grant the above license to + the EmacsConf organizers. If my presentation incorporates any + material owned by third parties, I represent that the material is + sublicensable to the EmacsConf organizers or that my use of them is + fair use. + +- in-progress Moving from Jekyll to OrgMode, an experience report :timing:org: + + Name: Adolfo Villafiorita + + - Preferred format + + standard talk or lightning talk + + - Abstract + + 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. + + - (Un)availability + + I work and live in Italy (CET) and I would prefer slots compatible + with the timezone. (I wouldn't recommend recording me early in the + morning, in any case!) + + - Speaker release + + By submitting this proposal, I agree that my presentation at EmacsConf + 2020 is subject to the following terms and conditions: + + The EmacsConf organizers may capture audio and video (a "Recording") + of my presentation and any associated materials, which may include + slides, notes, transcripts, and prerecording(s) of my presentation + that I provide to the EmacsConf organizers. + + I authorize the EmacsConf organizers to distribute, reproduce, + publicly display, and prepare derivative works of the Recording and + any derivative works of the Recording (the "Licensed Materials") under + the terms of the Creative Commons Attribution-ShareAlike 4.0 + International (CC BY-SA 4.0) license. + + I grant to the EmacsConf organizers permission to use my name, + likeness, and biographic information in association with their use of + the Licensed Materials under the above license. + + I represent that I have the authority to grant the above license to + the EmacsConf organizers. If my presentation incorporates any + material owned by third parties, I represent that the material is + sublicensable to the EmacsConf organizers or that my use of them is + fair use. + +- in-progress Org-roam: Presentation, Demonstration, and What's on the Horizon :extended:standard:org: + + Name: Leo Vivier + + - Preferred format + + Extended Talk (50 min). Parts can be pruned to fit in a Standard Talk + (20 min), but I'd strongly prefer the former. + + - Abstract + + 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) + + - (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 + + By submitting this proposal, I agree that my presentation at EmacsConf + 2020 is subject to the following terms and conditions: + + The EmacsConf organizers may capture audio and video (a "Recording") + of my presentation and any associated materials, which may include + slides, notes, transcripts, and prerecording(s) of my presentation + that I provide to the EmacsConf organizers. + + I authorize the EmacsConf organizers to distribute, reproduce, + publicly display, and prepare derivative works of the Recording and + any derivative works of the Recording (the "Licensed Materials") under + the terms of the Creative Commons Attribution-ShareAlike 4.0 + International (CC BY-SA 4.0) license. + + I grant to the EmacsConf organizers permission to use my name, + likeness, and biographic information in association with their use of + the Licensed Materials under the above license. + + I represent that I have the authority to grant the above license to + the EmacsConf organizers. If my presentation incorporates any + material owned by third parties, I represent that the material is + sublicensable to the EmacsConf organizers or that my use of them is + fair use. + +- in-progress Org-mode and Org-Roam for Scholars and Researchers :standard:org:nudge: + + Name: Noorah Alhasan + + - Preferred format + + 20 minutes + + - Comments + + > 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 + > community, so it's probably worth looking at it from the intro, user, + > and dev perspectives. It would be good to get the presenter + > coordinating with the one doing the org-roam overview in order to + > minimize overlap. This might even be doable in a lightning talk. + + - Abstract + + 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. + + - (Un)availability + + N/A + + - Speaker release + + By submitting this proposal, I agree that my presentation at EmacsConf + 2020 is subject to the following terms and conditions: + + The EmacsConf organizers may capture audio and video (a "Recording") + of my presentation and any associated materials, which may include + slides, notes, transcripts, and prerecording(s) of my presentation + that I provide to the EmacsConf organizers. + + I authorize the EmacsConf organizers to distribute, reproduce, + publicly display, and prepare derivative works of the Recording and + any derivative works of the Recording (the "Licensed Materials") under + the terms of the Creative Commons Attribution-ShareAlike 4.0 + International (CC BY-SA 4.0) license. + + I grant to the EmacsConf organizers permission to use my name, + likeness, and biographic information in association with their use of + the Licensed Materials under the above license. + + I represent that I have the authority to grant the above license to + the EmacsConf organizers. If my presentation incorporates any + material owned by third parties, I represent that the material is + sublicensable to the EmacsConf organizers or that my use of them is + fair use. + +- in-progress Org-roam: Technical Presentation :standard:elisp:org: + + Name: Leo Vivier + + - Preferred format + + Standard Talk (20 min). + + - Abstract + + 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 + + - (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 + + By submitting this proposal, I agree that my presentation at EmacsConf + 2020 is subject to the following terms and conditions: + + The EmacsConf organizers may capture audio and video (a "Recording") + of my presentation and any associated materials, which may include + slides, notes, transcripts, and prerecording(s) of my presentation + that I provide to the EmacsConf organizers. + + I authorize the EmacsConf organizers to distribute, reproduce, + publicly display, and prepare derivative works of the Recording and + any derivative works of the Recording (the "Licensed Materials") under + the terms of the Creative Commons Attribution-ShareAlike 4.0 + International (CC BY-SA 4.0) license. + + I grant to the EmacsConf organizers permission to use my name, + likeness, and biographic information in association with their use of + the Licensed Materials under the above license. + + I represent that I have the authority to grant the above license to + the EmacsConf organizers. If my presentation incorporates any + material owned by third parties, I represent that the material is + sublicensable to the EmacsConf organizers or that my use of them is + fair use. + +- in-progress Sharing blogs (and more) with org-webring :lightning:org:user: + + Name: Brett Gilio + + - Preferred format + + Lightning + + - Abstract + + 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. + + - (Un)availability + + N/A + + - Speaker release + + By submitting this proposal, I agree that my presentation at EmacsConf + 2020 is subject to the following terms and conditions: + + The EmacsConf organizers may capture audio and video (a "Recording") + of my presentation and any associated materials, which may include + slides, notes, transcripts, and prerecording(s) of my presentation + that I provide to the EmacsConf organizers. + + I authorize the EmacsConf organizers to distribute, reproduce, + publicly display, and prepare derivative works of the Recording and + any derivative works of the Recording (the "Licensed Materials") under + the terms of the Creative Commons Attribution-ShareAlike 4.0 + International (CC BY-SA 4.0) license. + + I grant to the EmacsConf organizers permission to use my name, + likeness, and biographic information in association with their use of + the Licensed Materials under the above license. + + I represent that I have the authority to grant the above license to + the EmacsConf organizers. If my presentation incorporates any + material owned by third parties, I represent that the material is + sublicensable to the EmacsConf organizers or that my use of them is + fair use. + +- in-progress OMG Macros :org: + + Name: Corwin Brust + + - Preferred format + + Standard talk (20m, including 5m Q&A) + + - Abstract + + 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. + + - (Un)availability + + None + + - Speaker release + + By submitting this proposal, I agree that my presentation at EmacsConf + 2020 is subject to the following terms and conditions: + + The EmacsConf organizers may capture audio and video (a "Recording") + of my presentation and any associated materials, which may include + slides, notes, transcripts, and prerecording(s) of my presentation + that I provide to the EmacsConf organizers. + + I authorize the EmacsConf organizers to distribute, reproduce, + publicly display, and prepare derivative works of the Recording and + any derivative works of the Recording (the "Licensed Materials") under + the terms of the Creative Commons Attribution-ShareAlike 4.0 + International (CC BY-SA 4.0) license. + + I grant to the EmacsConf organizers permission to use my name, + likeness, and biographic information in association with their use of + the Licensed Materials under the above license. + + I represent that I have the authority to grant the above license to + the EmacsConf organizers. If my presentation incorporates any + material owned by third parties, I represent that the material is + sublicensable to the EmacsConf organizers or that my use of them is + fair use. + + +<a id="org41ec440"></a> + +### 16:30 - 17:00 Closing remarks + + +<a id="orgbfd71f8"></a> + +## NOVEMBER 29 (Sunday) :sun: + + +<a id="orgb79afa2"></a> + +### 9:00 - 9:10 Opening remarks + + +<a id="org953e502"></a> + +### 9:10 - 12:00 Morning talks :morning: + +<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> + + +<colgroup> +<col class="org-right" /> + +<col class="org-right" /> + +<col class="org-right" /> +</colgroup> +<tbody> +<tr> +<td class="org-right">Difference</td> +<td class="org-right">Minimum time</td> +<td class="org-right">Target time</td> +</tr> + + +<tr> +<td class="org-right">3</td> +<td class="org-right">137</td> +<td class="org-right">140</td> +</tr> +</tbody> +</table> + +<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> + + +<colgroup> +<col class="org-left" /> + +<col class="org-left" /> + +<col class="org-left" /> + +<col class="org-left" /> + +<col class="org-left" /> +</colgroup> +<thead> +<tr> +<th scope="col" class="org-left">SCHEDULED</th> +<th scope="col" class="org-left">ITEM</th> +<th scope="col" class="org-left">NAME</th> +<th scope="col" class="org-left">PREREC</th> +<th scope="col" class="org-left">AVAILABILITY</th> +</tr> +</thead> + +<tbody> +<tr> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 09:13]–[2020-11-29 Sun 09:30]</span></span></td> +<td class="org-left">Emacs development update</td> +<td class="org-left">John Wiegley</td> +<td class="org-left">planned</td> +<td class="org-left">prerec</td> +</tr> + + +<tr> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 09:33]–[2020-11-29 Sun 09:53]</span></span></td> +<td class="org-left">Powering-up Special Blocks</td> +<td class="org-left">Musa Al-hassy</td> +<td class="org-left"> </td> +<td class="org-left">Unavailable 1pm-2pm EST both days</td> +</tr> + + +<tr> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 09:56]–[2020-11-29 Sun 10:46]</span></span></td> +<td class="org-left">Incremental Parsing with emacs-tree-sitter</td> +<td class="org-left">Tuấn-Anh Nguyễn</td> +<td class="org-left">planned</td> +<td class="org-left">GMT+7, so earlier is better (9:30 EST?). Can pre-record and answer questions.</td> +</tr> + + +<tr> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 10:49]–[2020-11-29 Sun 11:09]</span></span></td> +<td class="org-left">Analyze code quality through Emacs: a smart forensics approach and the story of a hack</td> +<td class="org-left">Andrea</td> +<td class="org-left">planned</td> +<td class="org-left">ok</td> +</tr> + + +<tr> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 11:12]–[2020-11-29 Sun 11:22]</span></span></td> +<td class="org-left">Traverse complex JSON structures with live feedback</td> +<td class="org-left">Zen Monk Alain M. Lafon</td> +<td class="org-left">planned</td> +<td class="org-left">Available both days, birthday on the 28th</td> +</tr> + + +<tr> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 11:25]–[2020-11-29 Sun 11:45]</span></span></td> +<td class="org-left">Non-GNU ELPA</td> +<td class="org-left">Richard Stallman</td> +<td class="org-left"> </td> +<td class="org-left">tbd</td> +</tr> +</tbody> +</table> + +- in-progress Emacs development update + + - Abstract + + TBD - possibly a quick overview of Emacs 27.1 and development priorities for Emacs 28 + +- in-progress Powering-up Special Blocks :standard:org:elisp: + + Name: Musa Al-hassy + + - Preferred format + + Standard talk + + - Comments + + > 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. + + - Abstract + + 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. + + - (Un)availability + + I would be unavailable Nov 28/29 from 1-2pm (Toronto time) on both + days; but otherwise I'm excited to attend the event :-) + + - Speaker release + + By submitting this proposal, I agree that my presentation at EmacsConf + 2020 is subject to the following terms and conditions: + + The EmacsConf organizers may capture audio and video (a "Recording") + of my presentation and any associated materials, which may include + slides, notes, transcripts, and prerecording(s) of my presentation + that I provide to the EmacsConf organizers. + + I authorize the EmacsConf organizers to distribute, reproduce, + publicly display, and prepare derivative works of the Recording and + any derivative works of the Recording (the "Licensed Materials") under + the terms of the Creative Commons Attribution-ShareAlike 4.0 + International (CC BY-SA 4.0) license. + + I grant to the EmacsConf organizers permission to use my name, + likeness, and biographic information in association with their use of + the Licensed Materials under the above license. + + I represent that I have the authority to grant the above license to + the EmacsConf organizers. If my presentation incorporates any + material owned by third parties, I represent that the material is + sublicensable to the EmacsConf organizers or that my use of them is + fair use. + +- in-progress Incremental Parsing with emacs-tree-sitter :extended:elisp:timing: + + Name: Tuấn-Anh Nguyễn + + - Preferred format + + 50 minutes (Extended talk) + + - Abstract + + 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. + + - (Un)availability + + The conference will start at 9PM in my timezone (GMT+7). I would + prefer the earlier time slots. If possible, I would also like to + pre-record my talk, and to be online just to answer questions during + my time slot. + + - Speaker release + + By submitting this proposal, I agree that my presentation at EmacsConf + 2020 is subject to the following terms and conditions: + + The EmacsConf organizers may capture audio and video (a "Recording") + of my presentation and any associated materials, which may include + slides, notes, transcripts, and prerecording(s) of my presentation + that I provide to the EmacsConf organizers. + + I authorize the EmacsConf organizers to distribute, reproduce, + publicly display, and prepare derivative works of the Recording and + any derivative works of the Recording (the "Licensed Materials") under + the terms of the Creative Commons Attribution-ShareAlike 4.0 + International (CC BY-SA 4.0) license. + + I grant to the EmacsConf organizers permission to use my name, + likeness, and biographic information in association with their use of + the Licensed Materials under the above license. + + I represent that I have the authority to grant the above license to + the EmacsConf organizers. If my presentation incorporates any + material owned by third parties, I represent that the material is + sublicensable to the EmacsConf organizers or that my use of them is + fair use. + +- in-progress Analyze code quality through Emacs: a smart forensics approach and the story of a hack :extended:standard:dev: + + Name: Andrea + + - Preferred format + + Extended Talk (I can squeeze this to a Standard talk, by not going in + depth on the analyses I plan to demonstrate) + + - Abstract + + 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. + + - (Un)availability + + I am available :D + + - Speaker release + + By submitting this proposal, I agree that my presentation at EmacsConf + 2020 is subject to the following terms and conditions: + + The EmacsConf organizers may capture audio and video (a "Recording") + of my presentation and any associated materials, which may include + slides, notes, transcripts, and prerecording(s) of my presentation + that I provide to the EmacsConf organizers. + + I authorize the EmacsConf organizers to distribute, reproduce, + publicly display, and prepare derivative works of the Recording and + any derivative works of the Recording (the "Licensed Materials") under + the terms of the Creative Commons Attribution-ShareAlike 4.0 + International (CC BY-SA 4.0) license. + + I grant to the EmacsConf organizers permission to use my name, + likeness, and biographic information in association with their use of + the Licensed Materials under the above license. + + I represent that I have the authority to grant the above license to + the EmacsConf organizers. If my presentation incorporates any + material owned by third parties, I represent that the material is + sublicensable to the EmacsConf organizers or that my use of them is + fair use. + +- in-progress Traverse complex JSON structures with live feedback :lightning:dev: + + Name: Zen Monk Alain M. Lafon + + - Preferred format + + Lightning talk (pre-recorded video is possible) + + - Abstract + + 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. + + - (Un)availability + + Both dates are good, even though it's my birthday on the 28th. But + I'll happily make space for EmacsConf(; + + - Speaker release + + By submitting this proposal, I agree that my presentation at EmacsConf + 2020 is subject to the following terms and conditions: + + The EmacsConf organizers may capture audio and video (a "Recording") + of my presentation and any associated materials, which may include + slides, notes, transcripts, and prerecording(s) of my presentation + that I provide to the EmacsConf organizers. + + I authorize the EmacsConf organizers to distribute, reproduce, + publicly display, and prepare derivative works of the Recording and + any derivative works of the Recording (the "Licensed Materials") under + the terms of the Creative Commons Attribution-ShareAlike 4.0 + International (CC BY-SA 4.0) license. + + I grant to the EmacsConf organizers permission to use my name, + likeness, and biographic information in association with their use of + the Licensed Materials under the above license. + + I represent that I have the authority to grant the above license to + the EmacsConf organizers. If my presentation incorporates any + material owned by third parties, I represent that the material is + sublicensable to the EmacsConf organizers or that my use of them is + fair use. + +- in-progress Non-GNU ELPA + +- Abstract + + TBD - plans for a non-GNU ELPA that will be easy to enable and contribute to without signing copyright assignment papers + + +<a id="org4f525bf"></a> + +### 12:00 - 13:00 Lunch + + +<a id="org00dd53f"></a> + +### 13:00 - 16:30 Afternoon talks :afternoon: + +<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> + + +<colgroup> +<col class="org-right" /> + +<col class="org-right" /> + +<col class="org-right" /> +</colgroup> +<tbody> +<tr> +<td class="org-right">Difference</td> +<td class="org-right">Minimum time</td> +<td class="org-right">Target time</td> +</tr> + + +<tr> +<td class="org-right">-12</td> +<td class="org-right">180</td> +<td class="org-right">168</td> +</tr> +</tbody> +</table> + +<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> + + +<colgroup> +<col class="org-left" /> + +<col class="org-left" /> + +<col class="org-left" /> + +<col class="org-left" /> + +<col class="org-left" /> +</colgroup> +<thead> +<tr> +<th scope="col" class="org-left">SCHEDULED</th> +<th scope="col" class="org-left">ITEM</th> +<th scope="col" class="org-left">NAME</th> +<th scope="col" class="org-left">PREREC</th> +<th scope="col" class="org-left">AVAILABILITY</th> +</tr> +</thead> + +<tbody> +<tr> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 13:03]–[2020-11-29 Sun 13:13]</span></span></td> +<td class="org-left">Emacs as a Highschooler: How It Changed My Life</td> +<td class="org-left">Pierce Wang</td> +<td class="org-left"> </td> +<td class="org-left">Sun 12pm EST onwards</td> +</tr> + + +<tr> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 13:16]–[2020-11-29 Sun 13:26]</span></span></td> +<td class="org-left">State of Retro Gaming in Emacs</td> +<td class="org-left">Vasilij "wasamasa" Schneidermann</td> +<td class="org-left"> </td> +<td class="org-left">8am-10pm CET, so 9am-3pm EST</td> +</tr> + + +<tr> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 13:29]–[2020-11-29 Sun 14:19]</span></span></td> +<td class="org-left">Welcome To The Dungeon</td> +<td class="org-left">Erik Elmshauser and Corwin Brust</td> +<td class="org-left"> </td> +<td class="org-left">ok</td> +</tr> + + +<tr> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 14:22]–[2020-11-29 Sun 14:42]</span></span></td> +<td class="org-left">Pathing of Least Resistance</td> +<td class="org-left">Corwin Brust</td> +<td class="org-left"> </td> +<td class="org-left">ok</td> +</tr> + + +<tr> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 14:45]–[2020-11-29 Sun 14:55]</span></span></td> +<td class="org-left">A tour of vterm</td> +<td class="org-left">Gabriele Bozzola (@sbozzolo)</td> +<td class="org-left">planned</td> +<td class="org-left">MST, so 11am-5pm EST</td> +</tr> + + +<tr> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 14:58]–[2020-11-29 Sun 15:08]</span></span></td> +<td class="org-left">Lakota Language and Emacs</td> +<td class="org-left">Grant Shangreaux</td> +<td class="org-left">planned</td> +<td class="org-left">Central time, 10am EST-5pm EST</td> +</tr> + + +<tr> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 15:11]–[2020-11-29 Sun 15:31]</span></span></td> +<td class="org-left">Object Oriented Code in the Gnus Newsreader</td> +<td class="org-left">Eric Abrahamsen</td> +<td class="org-left">planned</td> +<td class="org-left">ok</td> +</tr> + + +<tr> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 15:34]–[2020-11-29 Sun 15:54]</span></span></td> +<td class="org-left">Maxima a computer algebra system in Emacs</td> +<td class="org-left">Fermin MF</td> +<td class="org-left"> </td> +<td class="org-left">afternoon if possible</td> +</tr> + + +<tr> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 15:57]–[2020-11-29 Sun 16:17]</span></span></td> +<td class="org-left">Extend Emacs to Modern GUI Applications with EAF</td> +<td class="org-left">Matthew Zeng</td> +<td class="org-left"> </td> +<td class="org-left">after 12pm EST both days; confirmed available November 29, 1pm-4:30pm EST.</td> +</tr> + + +<tr> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2020-11-29 Sun 16:20]–[2020-11-29 Sun 16:30]</span></span></td> +<td class="org-left">WAVEing at Repetitive Repetitive Repetitive Music</td> +<td class="org-left">Zachary Kanfer</td> +<td class="org-left"> </td> +<td class="org-left">ok</td> +</tr> +</tbody> +</table> + +- in-progress Emacs as a Highschooler: How It Changed My Life :standard:user:community:timing:nudge: + + Name: Pierce Wang + + - Preferred format + + Standard Talk + + - Comments + + > 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 + > new people discover Emacs, get motivated to try Emacs, and get through + > the roadblocks, keeping in mind that it's from personal experience. + + - Abstract + + 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. + + - Availability + + Saturday Nov. 28: 1pm to 10pm PDT + Sunday Nov. 29: 8am to 10pm PDT + + - Speaker release + + By submitting this proposal, I agree that my presentation at EmacsConf + 2020 is subject to the following terms and conditions: + + The EmacsConf organizers may capture audio and video (a "Recording") + of my presentation and any associated materials, which may include + slides, notes, transcripts, and prerecording(s) of my presentation + that I provide to the EmacsConf organizers. + + I authorize the EmacsConf organizers to distribute, reproduce, + publicly display, and prepare derivative works of the Recording and + any derivative works of the Recording (the "Licensed Materials") under + the terms of the Creative Commons Attribution-ShareAlike 4.0 + International (CC BY-SA 4.0) license. + + I grant to the EmacsConf organizers permission to use my name, + likeness, and biographic information in association with their use of + the Licensed Materials under the above license. + + I represent that I have the authority to grant the above license to + the EmacsConf organizers. If my presentation incorporates any + material owned by third parties, I represent that the material is + sublicensable to the EmacsConf organizers or that my use of them is + fair use. + +- in-progress State of Retro Gaming in Emacs :extended:lightning:elisp:nudge: + + Hello, + + I'd like to hand in a talk I've already presented at two different + conferences, you can find its slides online [1][2]. + + Name: Vasilij "wasamasa" Schneidermann + + - Preferred format + + 50 minutes (Extended talk) + + - Comments + + > It might be good to nudge this to be a lightning talk since it's been + > presented elsewhere. + + - Abstract + + 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/> + + - (Un)availability + + None I'm aware of yet, I'm available from 8AM to 10PM at local German + time. + + - Speaker release + + By submitting this proposal, I agree that my presentation at EmacsConf + 2020 is subject to the following terms and conditions: + + The EmacsConf organizers may capture audio and video (a "Recording") + of my presentation and any associated materials, which may include + slides, notes, transcripts, and prerecording(s) of my presentation + that I provide to the EmacsConf organizers. + + I authorize the EmacsConf organizers to distribute, reproduce, + publicly display, and prepare derivative works of the Recording and + any derivative works of the Recording (the "Licensed Materials") under + the terms of the Creative Commons Attribution-ShareAlike 4.0 + International (CC BY-SA 4.0) license. + + I grant to the EmacsConf organizers permission to use my name, + likeness, and biographic information in association with their use of + the Licensed Materials under the above license. + + I represent that I have the authority to grant the above license to + the EmacsConf organizers. If my presentation incorporates any + material owned by third parties, I represent that the material is + sublicensable to the EmacsConf organizers or that my use of them is + fair use. + +- in-progress Welcome To The Dungeon :extended:elisp: + + Name: Erik Elmshauser and Corwin Brust + + - Preferred format + + Extended talk (50m, including 10-15m Q&A) + + - Abstract + + 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. + + - (Un)availability + + None + + - Speaker release + + By submitting this proposal, I agree that my presentation at EmacsConf + 2020 is subject to the following terms and conditions: + + The EmacsConf organizers may capture audio and video (a "Recording") + of my presentation and any associated materials, which may include + slides, notes, transcripts, and prerecording(s) of my presentation + that I provide to the EmacsConf organizers. + + I authorize the EmacsConf organizers to distribute, reproduce, + publicly display, and prepare derivative works of the Recording and + any derivative works of the Recording (the "Licensed Materials") under + the terms of the Creative Commons Attribution-ShareAlike 4.0 + International (CC BY-SA 4.0) license. + + I grant to the EmacsConf organizers permission to use my name, + likeness, and biographic information in association with their use of + the Licensed Materials under the above license. + + I represent that I have the authority to grant the above license to + the EmacsConf organizers. If my presentation incorporates any + material owned by third parties, I represent that the material is + sublicensable to the EmacsConf organizers or that my use of them is + fair use. + +- in-progress Pathing of Least Resistance :standard:elisp: + + Name: Corwin Brust + + - Preferred format + + Standard talk (20m, including 5m Q&A) + + - Abstract + + 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. + + - (Un)availability + + None + + - Speaker release + + By submitting this proposal, I agree that my presentation at EmacsConf + 2020 is subject to the following terms and conditions: + + The EmacsConf organizers may capture audio and video (a "Recording") + of my presentation and any associated materials, which may include + slides, notes, transcripts, and prerecording(s) of my presentation + that I provide to the EmacsConf organizers. + + I authorize the EmacsConf organizers to distribute, reproduce, + publicly display, and prepare derivative works of the Recording and + any derivative works of the Recording (the "Licensed Materials") under + the terms of the Creative Commons Attribution-ShareAlike 4.0 + International (CC BY-SA 4.0) license. + + I grant to the EmacsConf organizers permission to use my name, + likeness, and biographic information in association with their use of + the Licensed Materials under the above license. + + I represent that I have the authority to grant the above license to + the EmacsConf organizers. If my presentation incorporates any + material owned by third parties, I represent that the material is + sublicensable to the EmacsConf organizers or that my use of them is + fair use. + +- in-progress A tour of vterm :dev:standard:lightning:timing: + + Name: Gabriele Bozzola (@sbozzolo) + + - Preferred format + + 20 minutes, 10 would be fine, too. + + - Abstract + + 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> + + - (Un)availability + + My timezone is MST. + + - Speaker release + + By submitting this proposal, I agree that my presentation at EmacsConf + 2020 is subject to the following terms and conditions: + + The EmacsConf organizers may capture audio and video (a "Recording") + of my presentation and any associated materials, which may include + slides, notes, transcripts, and prerecording(s) of my presentation + that I provide to the EmacsConf organizers. + + I authorize the EmacsConf organizers to distribute, reproduce, + publicly display, and prepare derivative works of the Recording and + any derivative works of the Recording (the "Licensed Materials") under + the terms of the Creative Commons Attribution-ShareAlike 4.0 + International (CC BY-SA 4.0) license. + + I grant to the EmacsConf organizers permission to use my name, + likeness, and biographic information in association with their use of + the Licensed Materials under the above license. + + I represent that I have the authority to grant the above license to + the EmacsConf organizers. If my presentation incorporates any + material owned by third parties, I represent that the material is + sublicensable to the EmacsConf organizers or that my use of them is + fair use. + +- in-progress Lakota Language and Emacs :lightning:elisp: + + Name: Grant Shangreaux + + - Preferred format + + 10 minutes - Lightning talk + I am flexible. I've done a 5 minute version as well. + + - Abstract + + 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. + + - (Un)availability + + I'm flexible, but on US Central time, so no extreme hours would be + best for me. + + - Speaker release + + By submitting this proposal, I agree that my presentation at EmacsConf + 2020 is subject to the following terms and conditions: + + The EmacsConf organizers may capture audio and video (a "Recording") + of my presentation and any associated materials, which may include + slides, notes, transcripts, and prerecording(s) of my presentation + that I provide to the EmacsConf organizers. + + I authorize the EmacsConf organizers to distribute, reproduce, + publicly display, and prepare derivative works of the Recording and + any derivative works of the Recording (the "Licensed Materials") under + the terms of the Creative Commons Attribution-ShareAlike 4.0 + International (CC BY-SA 4.0) license. + + I grant to the EmacsConf organizers permission to use my name, + likeness, and biographic information in association with their use of + the Licensed Materials under the above license. + + I represent that I have the authority to grant the above license to + the EmacsConf organizers. If my presentation incorporates any + material owned by third parties, I represent that the material is + sublicensable to the EmacsConf organizers or that my use of them is + fair use. + +- in-progress Object Oriented Code in the Gnus Newsreader :standard:elisp: + + Name: Eric Abrahamsen + + - Preferred format + + 20 minutes should be fine (I'm happy to record in advance, as well). + It would be fun to have a Q&A, if that's an option. + + - Abstract + + 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. + + - (Un)availability + + No particular time restrictions I'm aware of. + + - Speaker release + + By submitting this proposal, I agree that my presentation at EmacsConf + 2020 is subject to the following terms and conditions: + + The EmacsConf organizers may capture audio and video (a "Recording") + of my presentation and any associated materials, which may include + slides, notes, transcripts, and prerecording(s) of my presentation + that I provide to the EmacsConf organizers. + + I authorize the EmacsConf organizers to distribute, reproduce, + publicly display, and prepare derivative works of the Recording and + any derivative works of the Recording (the "Licensed Materials") under + the terms of the Creative Commons Attribution-ShareAlike 4.0 + International (CC BY-SA 4.0) license. + + I grant to the EmacsConf organizers permission to use my name, + likeness, and biographic information in association with their use of + the Licensed Materials under the above license. + + I represent that I have the authority to grant the above license to + the EmacsConf organizers. If my presentation incorporates any + material owned by third parties, I represent that the material is + sublicensable to the EmacsConf organizers or that my use of them is + fair use. + +- in-progress Maxima a computer algebra system in Emacs :standard:dev:timing: + + Name: Fermin MF + + - Preferred format + + 20 minutes (Standard talk) + + - Comments + + > 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). + + - Abstract + + 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. + + - (Un)availability + + I prefer the talk to be in the afternoon if it's possible. + + - Speaker release + + By submitting this proposal, I agree that my presentation at EmacsConf + 2020 is subject to the following terms and conditions: + + The EmacsConf organizers may capture audio and video (a "Recording") + of my presentation and any associated materials, which may include + slides, notes, transcripts, and prerecording(s) of my presentation + that I provide to the EmacsConf organizers. + + I authorize the EmacsConf organizers to distribute, reproduce, + publicly display, and prepare derivative works of the Recording and + any derivative works of the Recording (the "Licensed Materials") under + the terms of the Creative Commons Attribution-ShareAlike 4.0 + International (CC BY-SA 4.0) license. + + I grant to the EmacsConf organizers permission to use my name, + likeness, and biographic information in association with their use of + the Licensed Materials under the above license. + + I represent that I have the authority to grant the above license to + the EmacsConf organizers. If my presentation incorporates any + material owned by third parties, I represent that the material is + sublicensable to the EmacsConf organizers or that my use of them is + fair use. + +- in-progress Extend Emacs to Modern GUI Applications with EAF :standard:elisp: + + Name: Matthew Zeng + + - Preferred format + + Standard + + - Abstract + + 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. + + - (Un)availability + + Available after 12pm Toronto/EST on any day + + - Speaker release + + By submitting this proposal, I agree that my presentation at EmacsConf + 2020 is subject to the following terms and conditions: + + The EmacsConf organizers may capture audio and video (a "Recording") + of my presentation and any associated materials, which may include + slides, notes, transcripts, and prerecording(s) of my presentation + that I provide to the EmacsConf organizers. + + I authorize the EmacsConf organizers to distribute, reproduce, + publicly display, and prepare derivative works of the Recording and + any derivative works of the Recording (the "Licensed Materials") under + the terms of the Creative Commons Attribution-ShareAlike 4.0 + International (CC BY-SA 4.0) license. + + I grant to the EmacsConf organizers permission to use my name, + likeness, and biographic information in association with their use of + the Licensed Materials under the above license. + + I represent that I have the authority to grant the above license to + the EmacsConf organizers. If my presentation incorporates any + material owned by third parties, I represent that the material is + sublicensable to the EmacsConf organizers or that my use of them is + fair use. + +- in-progress WAVEing at Repetitive Repetitive Repetitive Music :standard:lightning:music:elisp: + + Name: Zachary Kanfer + + - Preferred format + + Standard or Lightning talk. With a Lightning talk, I'd go less into + detail on some of the odd corners of the project, like zero-width + spaces rendering with nonzero width. But it would still be a viable + talk. + + - Abstract + + 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. + + - (Un)availability + + n/a + + - Speaker release + + By submitting this proposal, I agree that my presentation at EmacsConf + 2020 is subject to the following terms and conditions: + + The EmacsConf organizers may capture audio and video (a "Recording") + of my presentation and any associated materials, which may include + slides, notes, transcripts, and prerecording(s) of my presentation + that I provide to the EmacsConf organizers. + + I authorize the EmacsConf organizers to distribute, reproduce, + publicly display, and prepare derivative works of the Recording and + any derivative works of the Recording (the "Licensed Materials") under + the terms of the Creative Commons Attribution-ShareAlike 4.0 + International (CC BY-SA 4.0) license. + + I grant to the EmacsConf organizers permission to use my name, + likeness, and biographic information in association with their use of + the Licensed Materials under the above license. + + I represent that I have the authority to grant the above license to + the EmacsConf organizers. If my presentation incorporates any + material owned by third parties, I represent that the material is + sublicensable to the EmacsConf organizers or that my use of them is + fair use. + + +<a id="orgf4a8e98"></a> + +### 16:30 - 17:00 Closing remarks + + +<a id="orgac23017"></a> + +# Withdrawn + + +<a id="talk36"></a> + +## cancelled So Easy My Manager Can Do It! :lightning:beginner:user:nudge: + +> 2020-10-17: Merged into "Trivial Emacs Kits" +> +> Emacs Lisp is a big topic, so it's hard to think about how it +> can be squeezed into a lightning talk or a standard talk. Still, +> If this talk can help interested people who haven't fiddled with +> their Emacs configuration feel like they can understand the next +> two talks and find resources to learn more, it could be a good transition. + +Name: Corwin Brust + + +<a id="orgcadf82b"></a> + +### Preferred format + +Lightning talk (10m, probably without Q&A) + + +<a id="org4f2154d"></a> + +### Abstract + +A lightning-fast, yet gentle, introduction to Emacs Lisp. + + +<a id="org9ff6021"></a> + +### (Un)availability + +None + + +<a id="org2cd152d"></a> + +### Speaker release + +By submitting this proposal, I agree that my presentation at EmacsConf +2020 is subject to the following terms and conditions: + +The EmacsConf organizers may capture audio and video (a "Recording") +of my presentation and any associated materials, which may include +slides, notes, transcripts, and prerecording(s) of my presentation +that I provide to the EmacsConf organizers. + +I authorize the EmacsConf organizers to distribute, reproduce, +publicly display, and prepare derivative works of the Recording and +any derivative works of the Recording (the "Licensed Materials") under +the terms of the Creative Commons Attribution-ShareAlike 4.0 +International (CC BY-SA 4.0) license. + +I grant to the EmacsConf organizers permission to use my name, +likeness, and biographic information in association with their use of +the Licensed Materials under the above license. + +I represent that I have the authority to grant the above license to +the EmacsConf organizers. If my presentation incorporates any +material owned by third parties, I represent that the material is +sublicensable to the EmacsConf organizers or that my use of them is +fair use. + + +<a id="talk37"></a> + +# Code + + +<a id="org014fc78"></a> + +## Planning + +This check\_time block can be called from different headings. It sums +up the minimum time from the talks in the subtree and compares it with +the target time. + + (list (list "Difference" "Minimum time" "Target time") + (list + (- (string-to-number (org-entry-get (point) "TARGET_TIME")) + (string-to-number (org-entry-get (point) "MIN_TIME_SUM"))) + (org-entry-get (point) "MIN_TIME_SUM") + (org-entry-get (point) "TARGET_TIME"))) + +Some conference-related functions + + (defun conf/assign-ids () + "Assign numeric talk IDs." + (interactive) + (goto-char (point-min)) + ;; Determine the maximum ID assigned so far + (let ((id + (1+ + (apply 'max + (or (mapcar + 'string-to-number + (org-map-entries + (lambda () + (let ((org-trust-scanner-tags t)) + (org-entry-get (point) "TALK_ID"))) "TALK_ID>0" 'file)) + '(0)))))) + (goto-char (point-min)) + (while (re-search-forward ":NAME: " nil t) + (unless (org-entry-get (point) "TALK_ID") + (org-set-property "TALK_ID" (format "%02d" id)) + (org-set-property "CUSTOM_ID" (format "talk%02d" id)) + (setq id (1+ id)))))) + + (defun conf/update-talks () + (interactive) + (save-excursion + (conf/update-times) + (conf/update-tables) + (conf/update-schedules))) + + (defun conf/update-times () + (goto-char (point-min)) + (org-map-entries + (lambda () + (when (org-entry-get (point) "TARGET_TIME") + (conf/org-sum-min-time-in-subtree) + (org-entry-put + (point) + "DIFFERENCE" + (let ((diff + (- + (string-to-number (org-entry-get (point) "TARGET_TIME")) + (string-to-number (org-entry-get (point) "MIN_TIME_SUM"))))) + (cond + ((> diff 0) (format "Extra: %d" diff)) + ((< diff 0) (format "Needs: %d" (- diff))) + (t "")))))) nil 'file)) + (defun conf/update-tables () + (goto-char (point-min)) + (while (re-search-forward "#\\+CALL: check_time()" nil t) + (org-ctrl-c-ctrl-c)) + (goto-char (point-min)) + (while (re-search-forward "#\\+BEGIN: columnview" nil t) + (org-ctrl-c-ctrl-c))) + (defun conf/update-schedules () + (interactive) + (goto-char (org-find-exact-headline-in-buffer "Talks")) + (let (current-time scheduled end-time duration (buffer (seconds-to-time (* 3 60)))) ;; assumption: 3 minutes between talks + (org-map-entries (lambda () + (if (org-entry-get (point) "FIXED_TIME") + (setq current-time (org-get-scheduled-time (point)))) + (when (org-entry-get (point) "MIN_TIME") + (setq duration (* (string-to-number (org-entry-get (point) "MIN_TIME")) 60) + end-time (time-add current-time (seconds-to-time duration))) + (org-set-property "SCHEDULED" (format "%s-%s" (org-format-time-string "%Y-%m-%d %H:%M" current-time) + (org-format-time-string "%H:%M" end-time))) + (setq current-time (time-add end-time buffer)))) + nil 'tree))) + + (defun conf/org-sum-min-time-in-subtree () + "Add up all the MIN_TIME properties of headings underneath the current one + The total is written to the MIN_TIME_SUM property of this heading" + (interactive) + (org-entry-put + (point) + "MIN_TIME_SUM" + (save-excursion + (format "%d" + (apply + '+ + (mapcar 'string-to-number + (delq nil + (org-map-entries + (lambda () (org-entry-get (point) "MIN_TIME")) nil 'tree)))))))) + + +<a id="org0da23c5"></a> + +## Generate schedule file + + (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/filter-talks (list) + "Return only talk info in LIST." + (seq-filter + (lambda (talk) (eq (plist-get talk :type) 'talk)) + list)) + + (defun conf/format-talk-link (talk) + (and talk (format "<a href=\"/2020/schedule/%s\">%s</a>" + (plist-get talk :talk-id) + (plist-get talk :title)))) + + (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>%s</td><td>%s</td></tr>" + start end (conf/format-talk-link o) speakers)))) (cdr info) "\n"))) + + (defun conf/format-talk-pages (info) + (let* ((talks (seq-filter (lambda (o) (eq (plist-get o :type) 'talk)) info)) + (next-talks (cdr talks)) + (prev-talks (cons nil talks))) + (mapc (lambda (o) + (with-temp-buffer + (let* ((timestamp (org-timestamp-from-string (plist-get o :scheduled))) + (next-talk (conf/format-talk-link (pop next-talks))) + (prev-talk (conf/format-talk-link (pop prev-talks))) + (nav-links (format "Back to the [[schedule]] \n%s%s" + (if prev-talk (format "Previous: %s \n" prev-talk) "") + (if next-talk (format "Next: %s \n" next-talk) "")))) + (insert (format "[[!meta title=\"%s\"]] + [[!meta copyright=\"Copyright © 2020 %s\"]] + + %s + + # %s\n%s \n%s\n\n%s\n\n + + %s + + 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. See you then! + <!-- automatically generated from submissions.org using conf/generate-schedule-files --->\n + " + (replace-regexp-in-string "\"" "\\\\\"" (plist-get o :title)) + (plist-get o :speakers) + nav-links + (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) + nav-links))) + (write-file (format "schedule/%s.md" (plist-get o :talk-id))))) + talks))) + + (defun conf/get-talk-info-from-file (&optional filename) + (with-temp-buffer + (insert-file-contents (or filename "submissions.org")) + (org-mode) + (org-show-all) + (goto-char (point-min)) + (goto-char (org-find-property "ID" "talks")) + (conf/get-talk-info))) + + (defun conf/generate-schedule-files (&optional filename) + (interactive) + (let ((info (conf/get-talk-info-from-file filename))) + (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")))) + diff --git a/2020/submissions.org b/2020/submissions.org index 1653bebe..f132879d 100644 --- a/2020/submissions.org +++ b/2020/submissions.org @@ -2975,8 +2975,13 @@ SCHEDULED: <2020-11-29 Sun 16:30-17:00> :TALK_ID: 37 :END: ** Planning + +This check_time block can be called from different headings. It sums +up the minimum time from the talks in the subtree and compares it with +the target time. + #+NAME: check_time -#+begin_src emacs-lisp :export code :eval no +#+begin_src emacs-lisp :exports code :eval no (list (list "Difference" "Minimum time" "Target time") (list (- (string-to-number (org-entry-get (point) "TARGET_TIME")) @@ -2985,8 +2990,11 @@ SCHEDULED: <2020-11-29 Sun 16:30-17:00> (org-entry-get (point) "TARGET_TIME"))) #+end_src -#+begin_src emacs-lisp :results none :tangle "conf.el" +Some conference-related functions + +#+begin_src emacs-lisp :exports code :results none :tangle "conf.el" (defun conf/assign-ids () + "Assign numeric talk IDs." (interactive) (goto-char (point-min)) ;; Determine the maximum ID assigned so far @@ -3072,7 +3080,7 @@ The total is written to the MIN_TIME_SUM property of this heading" #+end_src ** Generate schedule file -#+begin_src emacs-lisp :results none :eval yes +#+begin_src emacs-lisp :results none :eval yes :exports code :tangle "conf.el" (defun conf/get-talk-info () (let (talk results) (org-map-entries (lambda () @@ -3202,8 +3210,7 @@ conference for instructions on how to watch and participate. See you then! #+begin_src emacs-lisp :exports both (let* ((available-minutes (* 2 ; two days - (- (- 17 9) ; 9 to 5 - ) ; 30 minutes opening stuff, 1 hour for lunch, 30 minutes closing stuff + (- 17 9) ; 9 to 5 60 ; minutes ))) `(("80% of capacity" ,(* .8 available-minutes)) @@ -3211,8 +3218,8 @@ conference for instructions on how to watch and participate. See you then! #+end_src #+RESULTS: -| 80% of capacity | -768.0 | -| 90% of capacity | -864.0 | +| 80% of capacity | 768.0 | +| 90% of capacity | 864.0 | * COMMENT Copyright & License |