diff options
-rw-r--r-- | 2020/submissions.org | 529 |
1 files changed, 292 insertions, 237 deletions
diff --git a/2020/submissions.org b/2020/submissions.org index 40cfda48..87c5bb41 100644 --- a/2020/submissions.org +++ b/2020/submissions.org @@ -1,99 +1,29 @@ #+title: EmacsConf 2020 submissions #+todo: todo(t) in-progress(i) | accepted(a) rejected(r) cancelled(c) +#+PROPERTY: header-args :eval yes #+options: toc:3 -#+CALL: update() +* Actions -* Possible rough flow suggested by Sacha - -#+begin_src emacs-lisp :exports both -(let* ((available-minutes (* 2 ; two days - (- (- 17 9) ; 9 to 5 - 2) ; 30 minutes opening stuff, 1 hour for lunch, 30 minutes closing stuff - 60 ; minutes - ))) - `(("80% of capacity" ,(* .8 available-minutes)) - ("90% of capacity" ,(* .9 available-minutes)))) -#+end_src - -#+RESULTS: -| 80% of capacity | 576.0 | -| 90% of capacity | 648.0 | - -If we take all talks at the minimum time requested (and maybe nudge -the retro gaming talk to be a lightning talk because it's been covered -elsewhere, and maybe nudge the eev talk to be a lightning talk as -well), we can probably fit in the 80% schedule. If we're feeling -confident about time, we can prioritize some talks and make them a bit -longer. Prerecorded lightning talks would give us more flexibility, -as usual. - -I removed reviewer identification. Note that if you commit to the Git -repository, your commit is tagged with whatever you're using for -identification. If you want to stay anonymous-ish (... and you -haven't already posted it to the public emacsconf-org list =) ), you -can send comments to Amin or me and we can put them in for you. - -If you move a talk around or change the time -allocated to it, use =M-x my/org-sum-min-time-in-subtree= (see [[Code]]) -to recalculate each affected subtree. (Someday we should have -something that will update everything!) - -I've added some of my thoughts to the talks that a reviewer wasn't -sure about (see the quote blocks) to see if we can get those talks to -be a good fit. - -Does anyone have strong feelings about saying no to some talks in -order to give more time to other talks? There are some pretty -promising ones that could benefit from more time. We'll probably have -more time freed up if people withdraw talk proposals or if we move -lightning talks around (last year we queued up a whole bunch at the -end), so we might not have to say no right away unless we feel -strongly about it. +[[elisp:(org-babel-execute-buffer)][Execute buffer]] - start with this to get the function definitions +[[elisp:(conf/update-talks)][Update talk info]] - run this after changing talk time or order +[[elisp:(org-agenda-list nil (org-read-date nil nil "2020-11-28") 2)][View as agenda]] * Tables -This code updates the minimum time. - -#+NAME: update -#+begin_src emacs-lisp :results none -(save-excursion - (goto-char (point-min)) - (org-map-entries - (lambda () - (when (org-entry-get (point) "TARGET_TIME") - (my/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) - (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))) -#+end_src - ** Overall #+BEGIN: columnview :hlines 1 :id "talks" :format "%DIFFERENCE%TARGET_TIME%MIN_TIME_SUM%ITEM" :maxlevel 3 | DIFFERENCE | TARGET_TIME | MIN_TIME_SUM | ITEM | |------------+-------------+--------------+-------------------------------| -| Needs: 4 | 576 | 580 | Talks | +| Needs: 82 | 768 | 850 | Talks | | | | | November 28 (Saturday) | | | | | 9:00 - 9:30 Opening remarks | -| | 120 | 120 | 9:30 - 12:00 User talks | +| Extra: 10 | 120 | 110 | 9:30 - 12:00 User talks | | | | | 12:00 - 13:00 Lunch | | Needs: 12 | 168 | 180 | 13:00 - 16:30 Afternoon talks | | | | | 16:30 - 17:00 Closing remarks | +| | | | 17:00 Overflow talks | | | | | November 29 (Sunday) | | | | | 9:00 - 9:30 Opening remarks | | Extra: 20 | 120 | 100 | 9:30 - 12:00 Morning talks | @@ -116,7 +46,6 @@ This code updates the minimum time. | 10 | 20 | 8:30am EST-12pm EST | Idea to Novel Superstructure: Emacs for Writing | | 10 | 10 | ok | Music in Plain Text | | 10 | 10 | 10am-5pm EST, daylight Central US | Bard Bivou(m)acs - Building a bandcamp-like page for an album of music | -| 10 | 50 | ok | On why most of the best features in eev look like 5-minute hacks | | 10 | 10 | ok | Trivial Emacs Kits | | 20 | 50 | PST, so maybe 11 AM EST - 5 PM EST? | Beyond Vim and Emacs: A Scalable UI Paradigm | | 20 | 50 | After 4pm UTC - 11am-5pm EST | Building reproducible Emacs | @@ -129,7 +58,7 @@ This code updates the minimum time. |----------+----------+---------------------------------------------------------------------------------+------------------------------------------------------------------------------| | 10 | 20 | CET, so 9am-maybe 2pm EST (8pm CET) | Orgmode - your life in plain text | | 10 | 20 | ok | Lead your future with Org | -| 20 | 50 | ok | the org-gtd package: opinions about Getting Things Done | +| 20 | 50 | ok, confirmed | the org-gtd package: opinions about Getting Things Done | | 10 | 20 | 9am-12pm EST (in CET timezone)... see if 1-3pm EST (7-9pm CET) is still doable? | One Big-ass Org File or multiple tiny ones? Finally, the End of the debate! | | 10 | 10 | ok | Experience Report: Steps to "Emacs Hyper Notebooks" | | 20 | 50 | ok | Literate Programming in Emacs Org-Mode | @@ -157,18 +86,18 @@ This code updates the minimum time. **** 13:00 - 16:30 Afternoon talks :afternoon: #+BEGIN: columnview :hlines 1 :id "talks" :format "%MIN_TIME%MAX_TIME%AVAILABILITY%20ITEM" :match "sun+afternoon/!" -| MIN_TIME | MAX_TIME | AVAILABILITY | ITEM | -|----------+----------+--------------------------------+---------------------------------------------------| -| 10 | 20 | Sun 12pm EST onwards | Emacs as a Highschooler: How It Changed My Life | -| 10 | 50 | 8am-10pm CET, so 9am-3pm EST | State of Retro Gaming in Emacs | -| 50 | 50 | ok | Welcome To The Dungeon | -| 20 | 20 | ok | Pathing of Least Resistance | -| 10 | 20 | MST, so 11am-5pm EST | A tour of vterm | -| 10 | 10 | Central time, 10am EST-5pm EST | Lakota Language and Emacs | -| 20 | 20 | ok | Object Oriented Code in the Gnus Newsreader | -| 20 | 20 | afternoon if possible | Maxima a computer algebra system in Emacs | -| 20 | 20 | after 12pm EST both days | Extend Emacs to Modern GUI Applications with EAF | -| 10 | 20 | ok | WAVEing at Repetitive Repetitive Repetitive Music | +| MIN_TIME | MAX_TIME | AVAILABILITY | ITEM | +|----------+----------+----------------------------------------------------------------------------+---------------------------------------------------| +| 10 | 20 | Sun 12pm EST onwards | Emacs as a Highschooler: How It Changed My Life | +| 10 | 50 | 8am-10pm CET, so 9am-3pm EST | State of Retro Gaming in Emacs | +| 50 | 50 | ok | Welcome To The Dungeon | +| 20 | 20 | ok | Pathing of Least Resistance | +| 10 | 20 | MST, so 11am-5pm EST | A tour of vterm | +| 10 | 10 | Central time, 10am EST-5pm EST | Lakota Language and Emacs | +| 20 | 20 | ok | Object Oriented Code in the Gnus Newsreader | +| 20 | 20 | afternoon if possible | Maxima a computer algebra system in Emacs | +| 20 | 20 | after 12pm EST both days; confirmed available November 29, 1pm-4:30pm EST. | Extend Emacs to Modern GUI Applications with EAF | +| 10 | 20 | ok | WAVEing at Repetitive Repetitive Repetitive Music | #+END: ** Table for all talks @@ -181,13 +110,12 @@ This code updates the minimum time. | 10 | 20 | Idea to Novel Superstructure: Emacs for Writing | 8:30am EST-12pm EST | | 10 | 10 | Music in Plain Text | ok | | 10 | 10 | Bard Bivou(m)acs - Building a bandcamp-like page for an album of music | 10am-5pm EST, daylight Central US | -| 10 | 50 | On why most of the best features in eev look like 5-minute hacks | ok | | 10 | 10 | Trivial Emacs Kits | ok | | 20 | 50 | Beyond Vim and Emacs: A Scalable UI Paradigm | PST, so maybe 11 AM EST - 5 PM EST? | | 20 | 50 | Building reproducible Emacs | After 4pm UTC - 11am-5pm EST | | 10 | 20 | Orgmode - your life in plain text | CET, so 9am-maybe 2pm EST (8pm CET) | | 10 | 20 | Lead your future with Org | ok | -| 20 | 50 | the org-gtd package: opinions about Getting Things Done | ok | +| 20 | 50 | the org-gtd package: opinions about Getting Things Done | ok, confirmed | | 10 | 20 | One Big-ass Org File or multiple tiny ones? Finally, the End of the debate! | 9am-12pm EST (in CET timezone)... see if 1-3pm EST (7-9pm CET) is still doable? | | 10 | 10 | Experience Report: Steps to "Emacs Hyper Notebooks" | ok | | 20 | 50 | Literate Programming in Emacs Org-Mode | ok | @@ -197,6 +125,7 @@ This code updates the minimum time. | 20 | 20 | Org-roam: Technical Presentation | 2:30-ish EST ok with tea; in CET timezone | | 10 | 10 | Sharing blogs (and more) with org-webring | ok | | 20 | 20 | OMG Macros | ok | +| 40 | 50 | On why most of the best features in eev look like 5-minute hacks | ok | | 20 | 20 | Powering-up Special Blocks | Unavailable 1pm-2pm EST both days | | 50 | 50 | Incremental Parsing with emacs-tree-sitter | GMT+7, so earlier is better (9:30 EST?). Can pre-record and answer questions. | | 20 | 50 | Analyze code quality through Emacs: a smart forensics approach and the story of a hack | ok | @@ -209,33 +138,40 @@ This code updates the minimum time. | 10 | 10 | Lakota Language and Emacs | Central time, 10am EST-5pm EST | | 20 | 20 | Object Oriented Code in the Gnus Newsreader | ok | | 20 | 20 | Maxima a computer algebra system in Emacs | afternoon if possible | -| 20 | 20 | Extend Emacs to Modern GUI Applications with EAF | after 12pm EST both days | +| 20 | 20 | Extend Emacs to Modern GUI Applications with EAF | after 12pm EST both days; confirmed available November 29, 1pm-4:30pm EST. | | 10 | 20 | WAVEing at Repetitive Repetitive Repetitive Music | ok | #+END: * Talks :PROPERTIES: :ID: talks -:MIN_TIME_SUM: 580 -:TARGET_TIME: 576 -:DIFFERENCE: Needs: 4 +:MIN_TIME_SUM: 850 +:TARGET_TIME: 768 +:DIFFERENCE: Needs: 82 :END: ** November 28 (Saturday) :sat: *** 9:00 - 9:30 Opening remarks +SCHEDULED: <2020-11-28 Sat 09:00-09:30> +:PROPERTIES: +:FIXED_TIME: t +:MIN_TIME: 30 +:END: + *** 9:30 - 12:00 User talks :morning: +SCHEDULED: <2020-11-28 Sat 09:00-09:30> :PROPERTIES: :TARGET_TIME: 120 -:MIN_TIME_SUM: 120 -:DIFFERENCE: +:MIN_TIME_SUM: 110 +:DIFFERENCE: Extra: 10 :END: -#+CALL: check_time() +#+CALL: check_time() :eval yes #+RESULTS: | Difference | Minimum time | Target time | -| 0 | 120 | 120 | +| 10 | 110 | 120 | #+BEGIN: columnview :hlines 1 :id "talks" :format "%MIN_TIME%MAX_TIME%AVAILABILITY%20ITEM" :match "sat+morning/!" | MIN_TIME | MAX_TIME | AVAILABILITY | ITEM | @@ -245,7 +181,6 @@ This code updates the minimum time. | 10 | 20 | 8:30am EST-12pm EST | Idea to Novel Superstructure: Emacs for Writing | | 10 | 10 | ok | Music in Plain Text | | 10 | 10 | 10am-5pm EST, daylight Central US | Bard Bivou(m)acs - Building a bandcamp-like page for an album of music | -| 10 | 50 | ok | On why most of the best features in eev look like 5-minute hacks | | 10 | 10 | ok | Trivial Emacs Kits | | 20 | 50 | PST, so maybe 11 AM EST - 5 PM EST? | Beyond Vim and Emacs: A Scalable UI Paradigm | | 20 | 50 | After 4pm UTC - 11am-5pm EST | Building reproducible Emacs | @@ -254,6 +189,7 @@ This code updates the minimum time. **** User stories ***** in-progress Emacs News Highlights :lightning:user: +SCHEDULED: <2020-11-28 Sat 09:33-09:43> :PROPERTIES: :MAX_TIME: 10 :MIN_TIME: 10 @@ -301,6 +237,7 @@ 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: +SCHEDULED: <2020-11-28 Sat 09:46-10:06> :PROPERTIES: :MAX_TIME: 20 :MIN_TIME: 20 @@ -369,6 +306,7 @@ fair use. **** Exploring Emacs's flexibility ***** in-progress Idea to Novel Superstructure: Emacs for Writing :standard:lightning:user: +SCHEDULED: <2020-11-28 Sat 10:09-10:19> :PROPERTIES: :MAX_TIME: 20 :MIN_TIME: 10 @@ -453,6 +391,7 @@ sublicensable to the EmacsConf organizers or that my use of them is fair use. ***** in-progress Music in Plain Text :music:user:lightning: +SCHEDULED: <2020-11-28 Sat 10:22-10:32> :PROPERTIES: :MAX_TIME: 10 :MIN_TIME: 10 @@ -510,6 +449,7 @@ 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: +SCHEDULED: <2020-11-28 Sat 10:35-10:45> :PROPERTIES: :MIN_TIME: 10 :MAX_TIME: 10 @@ -570,110 +510,10 @@ 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: -:PROPERTIES: -:MAX_TIME: 50 -:MIN_TIME: 10 -:AVAILABILITY: ok -:END: - -#+begin_quote -It might be good to nudge this to be a lightning talk since eev was in -last year's conference as well. What's new in terms of the talk -coverage? -#+end_quote - -Name: Eduardo Ochs - -****** Preferred format - -Extended talk - -****** 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. - **** Emacs configuration ***** in-progress Trivial Emacs Kits :lightning:config:user:beginner: +SCHEDULED: <2020-11-28 Sat 10:48-10:58> :PROPERTIES: :FORMAT: Lightning talk :MAX_TIME: 10 @@ -723,6 +563,7 @@ 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: +SCHEDULED: <2020-11-28 Sat 11:01-11:21> :PROPERTIES: :MIN_TIME: 20 :MAX_TIME: 50 @@ -810,6 +651,7 @@ sublicensable to the EmacsConf organizers or that my use of them is fair use. ***** in-progress Building reproducible Emacs :standard:extended:config:user: +SCHEDULED: <2020-11-28 Sat 11:24-11:44> :PROPERTIES: :FORMAT: Extended preferred, standard possible :MAX_TIME: 50 @@ -876,6 +718,11 @@ sublicensable to the EmacsConf organizers or that my use of them is fair use. *** 12:00 - 13:00 Lunch +SCHEDULED: <2020-11-28 Sat 12:00-13:00> +:PROPERTIES: +:FIXED_TIME: t +:MIN_TIME: 60 +:END: *** 13:00 - 16:30 Afternoon talks :afternoon: :PROPERTIES: @@ -884,7 +731,7 @@ fair use. :DIFFERENCE: Needs: 12 :END: -#+CALL: check_time() +#+CALL: check_time() :eval yes #+RESULTS: | Difference | Minimum time | Target time | @@ -895,7 +742,7 @@ fair use. |----------+----------+---------------------------------------------------------------------------------+------------------------------------------------------------------------------| | 10 | 20 | CET, so 9am-maybe 2pm EST (8pm CET) | Orgmode - your life in plain text | | 10 | 20 | ok | Lead your future with Org | -| 20 | 50 | ok | the org-gtd package: opinions about Getting Things Done | +| 20 | 50 | ok, confirmed | the org-gtd package: opinions about Getting Things Done | | 10 | 20 | 9am-12pm EST (in CET timezone)... see if 1-3pm EST (7-9pm CET) is still doable? | One Big-ass Org File or multiple tiny ones? Finally, the End of the debate! | | 10 | 10 | ok | Experience Report: Steps to "Emacs Hyper Notebooks" | | 20 | 50 | ok | Literate Programming in Emacs Org-Mode | @@ -910,6 +757,7 @@ fair use. **** Org Workflows ***** in-progress Orgmode - your life in plain text :standard:tutorial:org:nudge: +SCHEDULED: <2020-11-28 Sat 13:03-13:13> :PROPERTIES: :MAX_TIME: 20 :MIN_TIME: 10 @@ -989,6 +837,7 @@ sublicensable to the EmacsConf organizers or that my use of them is fair use. ***** in-progress Lead your future with Org :standard:lightning:org:workflow:user: +SCHEDULED: <2020-11-28 Sat 13:16-13:26> :PROPERTIES: :MAX_TIME: 20 :MIN_TIME: 10 @@ -1049,10 +898,11 @@ sublicensable to the EmacsConf organizers or that my use of them is fair use. ***** in-progress the org-gtd package: opinions about Getting Things Done +SCHEDULED: <2020-11-28 Sat 13:29-13:49> :PROPERTIES: :MIN_TIME: 20 :MAX_TIME: 50 -:AVAILABILITY: ok +:AVAILABILITY: ok, confirmed :END: Name: Aldric @@ -1100,6 +950,7 @@ sublicensable to the EmacsConf organizers or that my use of them is fair use. ***** in-progress One Big-ass Org File or multiple tiny ones? Finally, the End of the debate! :standard:lightning:org:user:timing: +SCHEDULED: <2020-11-28 Sat 13:52-14:02> :PROPERTIES: :MAX_TIME: 20 :MIN_TIME: 10 @@ -1170,6 +1021,7 @@ sublicensable to the EmacsConf organizers or that my use of them is fair use. **** in-progress Experience Report: Steps to "Emacs Hyper Notebooks" +SCHEDULED: <2020-11-28 Sat 14:05-14:15> :PROPERTIES: :MIN_TIME: 10 :MAX_TIME: 10 @@ -1242,6 +1094,7 @@ 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: +SCHEDULED: <2020-11-28 Sat 14:18-14:38> :PROPERTIES: :MAX_TIME: 50 :MIN_TIME: 20 @@ -1314,6 +1167,7 @@ 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: +SCHEDULED: <2020-11-28 Sat 14:41-14:51> :PROPERTIES: :MIN_TIME: 10 :MAX_TIME: 20 @@ -1372,6 +1226,7 @@ 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: +SCHEDULED: <2020-11-28 Sat 14:54-15:14> :PROPERTIES: :MAX_TIME: 50 :MIN_TIME: 20 @@ -1447,6 +1302,7 @@ 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: +SCHEDULED: <2020-11-28 Sat 15:17-15:37> :PROPERTIES: :MIN_TIME: 20 :MAX_TIME: 20 @@ -1523,6 +1379,7 @@ sublicensable to the EmacsConf organizers or that my use of them is fair use. **** in-progress Org-roam: Technical Presentation :standard:elisp:org: +SCHEDULED: <2020-11-28 Sat 15:40-16:00> :PROPERTIES: :MAX_TIME: 20 :MIN_TIME: 20 @@ -1603,6 +1460,7 @@ material owned by third parties, I represent that the material is sublicensable to the EmacsConf organizers or that my use of them is fair use. **** in-progress Sharing blogs (and more) with org-webring :lightning:org:user: +SCHEDULED: <2020-11-28 Sat 16:03-16:13> :PROPERTIES: :MAX_TIME: 10 :MIN_TIME: 10 @@ -1662,6 +1520,7 @@ sublicensable to the EmacsConf organizers or that my use of them is fair use. **** in-progress OMG Macros :org: +SCHEDULED: <2020-11-28 Sat 16:16-16:36> :PROPERTIES: :MIN_TIME: 20 :MAX_TIME: 20 @@ -1721,10 +1580,121 @@ sublicensable to the EmacsConf organizers or that my use of them is fair use. *** 16:30 - 17:00 Closing remarks +SCHEDULED: <2020-11-28 Sat 16:30-17:00> +:PROPERTIES: +:FIXED_TIME: t +:MIN_TIME: 30 +:END: +*** 17:00 Overflow talks +**** in-progress On why most of the best features in eev look like 5-minute hacks :extended:user:nudge:prerec: +SCHEDULED: <2020-11-28 Sat 17:03-17:43> +:PROPERTIES: +:MAX_TIME: 50 +:MIN_TIME: 40 +:AVAILABILITY: ok +:PREREC: yes +:END: + +#+begin_quote +Will be pre-recorded, so we might be able to move it around in the schedule +#+end_quote + +Name: Eduardo Ochs + +***** Preferred format + +Extended talk + +***** 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. ** November 29 (Sunday) :sun: *** 9:00 - 9:30 Opening remarks +SCHEDULED: <2020-11-29 Sun 09:00-09:30> +:PROPERTIES: +:FIXED_TIME: t +:MIN_TIME: 30 +:END: *** 9:30 - 12:00 Morning talks :morning: :PROPERTIES: @@ -1750,6 +1720,7 @@ fair use. **** in-progress Powering-up Special Blocks :standard:org:elisp: +SCHEDULED: <2020-11-29 Sun 09:33-09:53> :PROPERTIES: :MAX_TIME: 20 :MIN_TIME: 20 @@ -1862,6 +1833,7 @@ 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: +SCHEDULED: <2020-11-29 Sun 09:56-10:46> :PROPERTIES: :MAX_TIME: 50 :MIN_TIME: 50 @@ -1920,6 +1892,7 @@ 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: +SCHEDULED: <2020-11-29 Sun 10:49-11:09> :PROPERTIES: :MAX_TIME: 50 :MIN_TIME: 20 @@ -1988,6 +1961,7 @@ 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: +SCHEDULED: <2020-11-29 Sun 11:12-11:22> :PROPERTIES: :MAX_TIME: 10 :MIN_TIME: 10 @@ -2055,6 +2029,11 @@ sublicensable to the EmacsConf organizers or that my use of them is fair use. *** 12:00 - 13:00 Lunch +SCHEDULED: <2020-11-29 Sun 12:00-13:00> +:PROPERTIES: +:FIXED_TIME: t +:MIN_TIME: 60 +:END: *** 13:00 - 16:30 Afternoon talks :afternoon: :PROPERTIES: @@ -2069,22 +2048,24 @@ fair use. | Difference | Minimum time | Target time | | -12 | 180 | 168 | + #+BEGIN: columnview :hlines 1 :id "talks" :format "%MIN_TIME%MAX_TIME%AVAILABILITY%20ITEM" :match "sun+afternoon/!" -| MIN_TIME | MAX_TIME | AVAILABILITY | ITEM | -|----------+----------+--------------------------------+---------------------------------------------------| -| 10 | 20 | Sun 12pm EST onwards | Emacs as a Highschooler: How It Changed My Life | -| 10 | 50 | 8am-10pm CET, so 9am-3pm EST | State of Retro Gaming in Emacs | -| 50 | 50 | ok | Welcome To The Dungeon | -| 20 | 20 | ok | Pathing of Least Resistance | -| 10 | 20 | MST, so 11am-5pm EST | A tour of vterm | -| 10 | 10 | Central time, 10am EST-5pm EST | Lakota Language and Emacs | -| 20 | 20 | ok | Object Oriented Code in the Gnus Newsreader | -| 20 | 20 | afternoon if possible | Maxima a computer algebra system in Emacs | -| 20 | 20 | after 12pm EST both days | Extend Emacs to Modern GUI Applications with EAF | -| 10 | 20 | ok | WAVEing at Repetitive Repetitive Repetitive Music | +| MIN_TIME | MAX_TIME | AVAILABILITY | ITEM | +|----------+----------+----------------------------------------------------------------------------+---------------------------------------------------| +| 10 | 20 | Sun 12pm EST onwards | Emacs as a Highschooler: How It Changed My Life | +| 10 | 50 | 8am-10pm CET, so 9am-3pm EST | State of Retro Gaming in Emacs | +| 50 | 50 | ok | Welcome To The Dungeon | +| 20 | 20 | ok | Pathing of Least Resistance | +| 10 | 20 | MST, so 11am-5pm EST | A tour of vterm | +| 10 | 10 | Central time, 10am EST-5pm EST | Lakota Language and Emacs | +| 20 | 20 | ok | Object Oriented Code in the Gnus Newsreader | +| 20 | 20 | afternoon if possible | Maxima a computer algebra system in Emacs | +| 20 | 20 | after 12pm EST both days; confirmed available November 29, 1pm-4:30pm EST. | Extend Emacs to Modern GUI Applications with EAF | +| 10 | 20 | ok | WAVEing at Repetitive Repetitive Repetitive Music | #+END: **** in-progress Emacs as a Highschooler: How It Changed My Life :standard:user:community:timing:nudge: +SCHEDULED: <2020-11-29 Sun 13:03-13:13> :PROPERTIES: :MAX_TIME: 20 :MIN_TIME: 10 @@ -2154,6 +2135,7 @@ 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: +SCHEDULED: <2020-11-29 Sun 13:16-13:26> :PROPERTIES: :MAX_TIME: 50 :MIN_TIME: 10 @@ -2218,6 +2200,7 @@ sublicensable to the EmacsConf organizers or that my use of them is fair use. **** in-progress Welcome To The Dungeon :extended:elisp: +SCHEDULED: <2020-11-29 Sun 13:29-14:19> :PROPERTIES: :MAX_TIME: 50 :MIN_TIME: 50 @@ -2286,6 +2269,7 @@ sublicensable to the EmacsConf organizers or that my use of them is fair use. **** in-progress Pathing of Least Resistance :standard:elisp: +SCHEDULED: <2020-11-29 Sun 14:22-14:42> :PROPERTIES: :MAX_TIME: 20 :MIN_TIME: 20 @@ -2397,6 +2381,7 @@ sublicensable to the EmacsConf organizers or that my use of them is fair use. **** in-progress A tour of vterm :dev:standard:lightning:timing: +SCHEDULED: <2020-11-29 Sun 14:45-14:55> :PROPERTIES: :MAX_TIME: 20 :MIN_TIME: 10 @@ -2451,6 +2436,7 @@ material owned by third parties, I represent that the material is sublicensable to the EmacsConf organizers or that my use of them is fair use. **** in-progress Lakota Language and Emacs :lightning:elisp: +SCHEDULED: <2020-11-29 Sun 14:58-15:08> :PROPERTIES: :MAX_TIME: 10 :MIN_TIME: 10 @@ -2522,6 +2508,7 @@ 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: +SCHEDULED: <2020-11-29 Sun 15:11-15:31> :PROPERTIES: :MAX_TIME: 20 :MIN_TIME: 20 @@ -2584,6 +2571,7 @@ 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: +SCHEDULED: <2020-11-29 Sun 15:34-15:54> :PROPERTIES: :MAX_TIME: 20 :MIN_TIME: 20 @@ -2643,10 +2631,11 @@ 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: +SCHEDULED: <2020-11-29 Sun 15:57-16:17> :PROPERTIES: :MAX_TIME: 20 :MIN_TIME: 20 -:AVAILABILITY: after 12pm EST both days +:AVAILABILITY: after 12pm EST both days; confirmed available November 29, 1pm-4:30pm EST. :END: Name: Matthew Zeng @@ -2694,6 +2683,7 @@ 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: +SCHEDULED: <2020-11-29 Sun 16:20-16:30> :PROPERTIES: :MAX_TIME: 20 :MIN_TIME: 10 @@ -2752,6 +2742,11 @@ sublicensable to the EmacsConf organizers or that my use of them is fair use. *** 16:30 - 17:00 Closing remarks +SCHEDULED: <2020-11-29 Sun 16:30-17:00> +:PROPERTIES: +:FIXED_TIME: t +:MIN_TIME: 30 +:END: * Withdrawn @@ -2814,12 +2809,8 @@ fair use. * Code -The following code snippet copyright "deprecated" under CC BY-SA 3.0, -from -https://emacs.stackexchange.com/questions/34561/summing-properties-across-subheadings-org-mode. - #+NAME: check_time -#+begin_src emacs-lisp :export code :eval yes +#+begin_src emacs-lisp :export code :eval no (list (list "Difference" "Minimum time" "Target time") (list (- (string-to-number (org-entry-get (point) "TARGET_TIME")) @@ -2828,21 +2819,69 @@ https://emacs.stackexchange.com/questions/34561/summing-properties-across-subhea (org-entry-get (point) "TARGET_TIME"))) #+end_src -#+begin_src emacs-lisp -(defun my/org-sum-min-time-in-subtree () +#+begin_src emacs-lisp :results none +(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" - (number-to-string - (let ((total 0)) - (save-excursion - (org-map-tree - (lambda () - (let ((n (org-entry-get (point) "MIN_TIME"))) - (when (stringp n) - (setq total (+ total (string-to-number n)))))))) - total)))) + (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)))))))) + #+end_src * COMMENT Copyright & License @@ -2864,6 +2903,22 @@ creator, and the additional information/material added to the file by the EmacsConf organizers and others are copyright their respective authors. +* COMMENT Possible rough flow suggested by Sacha + +#+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 + 60 ; minutes + ))) + `(("80% of capacity" ,(* .8 available-minutes)) + ("90% of capacity" ,(* .9 available-minutes)))) +#+end_src + +#+RESULTS: +| 80% of capacity | -768.0 | +| 90% of capacity | -864.0 | + * COMMENT Local variables # Local Variables: |