From 6738dce6a99f3863b5257e08a1af997349eb134d Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Thu, 22 Oct 2020 00:49:30 -0400 Subject: First try at schedule --- 2020/submissions.org | 382 ++++++++++++++++++++++++++++++++------------------- 1 file changed, 239 insertions(+), 143 deletions(-) (limited to '2020/submissions.org') diff --git a/2020/submissions.org b/2020/submissions.org index 7823a0a5..5aa5a7e5 100644 --- a/2020/submissions.org +++ b/2020/submissions.org @@ -8,6 +8,7 @@ [[elisp:(org-babel-execute-buffer)][Execute buffer]] - start with this to get the function definitions [[elisp:(conf/update-talks)][Update talk info]] - run this after changing talk time or order [[elisp:(let ((org-agenda-files (list (buffer-file-name)))) (org-agenda-list nil (org-read-date nil nil "2020-11-28") 2))][View as agenda]] +[[lisp:conf/generate-schedule-files][Generate schedule files]] * Tables @@ -149,8 +150,8 @@ :TARGET_TIME: 768 :DIFFERENCE: Needs: 82 :END: - -** November 28 (Saturday) :sat: + +** NOVEMBER 28 (Saturday) :sat: *** 9:00 - 9:30 Opening remarks SCHEDULED: <2020-11-28 Sat 09:00-09:30> @@ -158,9 +159,7 @@ SCHEDULED: <2020-11-28 Sat 09:00-09:30> :FIXED_TIME: t :MIN_TIME: 30 :END: - *** 9:30 - 12:00 User talks :morning: -SCHEDULED: <2020-11-28 Sat 09:00-09:30> :PROPERTIES: :TARGET_TIME: 120 :MIN_TIME_SUM: 110 @@ -206,14 +205,14 @@ Name: Sacha Chua 10 minutes -****** Abstract - -Quick overview of Emacs community highlights since the last conference - ****** (Un)availability Available maybe 9am-3pm EST +****** Abstract + +Quick highlights from Emacs News since the last EmacsConf + ****** Speaker release By submitting this proposal, I agree that my presentation at EmacsConf @@ -592,6 +591,13 @@ SCHEDULED: <2020-11-28 Sat 11:01-11:21> :TALK_ID: 07 :END: +Name: Sid Kasivajhula + +****** Preferred format + +Extended or Standard +****** Comments + #+begin_quote I think this might be a better fit as a lightning talk or maybe a standard talk that demonstrates the concept with a few well-chosen @@ -599,48 +605,42 @@ examples. A possible goal might be to show people that they can develop a mental model and remap more keys to fit it. #+end_quote -Name: Sid Kasivajhula - -****** Preferred format - -Extended or Standard - ****** Abstract - A practiced dexterity with the arcane incantations known as keybindings is - the true mark of the veteran Emacs user. Yet, it takes years to get there, - and if you tried to explain what you were doing there, nobody would - understand, least of all those Vim users who would say that the whole - enterprise was foolhardy to begin with. They don't get it, those fools. Let - them flounder about in their "normal mode." Normal isn't good enough for - me! I want exceptional, IDEAL, I want... glorious mode, that's what I want. - And the only thing that'll cut it is if I do it ... my way. Why, with my - precious emacs.d, I'm invincible! Well... just between you and me, there - are times when learning new keybindings every time someone makes a new toy - gets to be a bit of a drag, and some days I can't keep my C-c's and my C-c - C-c's straight if I'm being honest with you, but you'll never catch me - admitting it! I do wonder if there's a better way to get to glorious mode, - even though my .emacs.d is already perfect (of course). - - If this secretly sounds like you, then rejoice, there just might be a new - way, a better way! And you could potentially get there in days instead of - years, so that even your script kiddie coworker with their "VSCode" (groan) - may at last come around to your way of looking at things, and, maybe, just - maybe, even those Vim users (hiss!)! - - "Epistemic" Emacs is a user interface paradigm based on treating aspects of - the user interface as conceptual entities that can be reasoned about in - terms of a standard language. Essentially, instead of learning keybindings - for each specific action, you learn keybindings for general, conceptual - habits, kind of like Vim, except that instead of reasoning only about text, - you reason about any aspect of your interaction with the machine, whether - it's windows or buffers or even those interactions themselves. The promise - of this approach is that you just learn a simple language once, and you can - then apply it to vastly different aspects of your user interface, with the - same keybindings doing different things in different contexts, in sensible - and predictable ways. And in principle, whenever that new toy technology - comes around, anyone could extend the UI language to apply to it in a - matter of minutes, and you'd already know how to use it. +A practiced dexterity with the arcane incantations known as keybindings is +the true mark of the veteran Emacs user. Yet, it takes years to get there, +and if you tried to explain what you were doing there, nobody would +understand, least of all those Vim users who would say that the whole +enterprise was foolhardy to begin with. They don't get it, those fools. Let +them flounder about in their "normal mode." Normal isn't good enough for +me! I want exceptional, IDEAL, I want... glorious mode, that's what I want. +And the only thing that'll cut it is if I do it ... my way. Why, with my +precious emacs.d, I'm invincible! Well... just between you and me, there +are times when learning new keybindings every time someone makes a new toy +gets to be a bit of a drag, and some days I can't keep my C-c's and my C-c +C-c's straight if I'm being honest with you, but you'll never catch me +admitting it! I do wonder if there's a better way to get to glorious mode, +even though my .emacs.d is already perfect (of course). + +If this secretly sounds like you, then rejoice, there just might be a new +way, a better way! And you could potentially get there in days instead of +years, so that even your script kiddie coworker with their "VSCode" (groan) +may at last come around to your way of looking at things, and, maybe, just +maybe, even those Vim users (hiss!)! + +"Epistemic" Emacs is a user interface paradigm based on treating aspects of +the user interface as conceptual entities that can be reasoned about in +terms of a standard language. Essentially, instead of learning keybindings +for each specific action, you learn keybindings for general, conceptual +habits, kind of like Vim, except that instead of reasoning only about text, +you reason about any aspect of your interaction with the machine, whether +it's windows or buffers or even those interactions themselves. The promise +of this approach is that you just learn a simple language once, and you can +then apply it to vastly different aspects of your user interface, with the +same keybindings doing different things in different contexts, in sensible +and predictable ways. And in principle, whenever that new toy technology +comes around, anyone could extend the UI language to apply to it in a +matter of minutes, and you'd already know how to use it. ****** (Un)availability @@ -779,18 +779,23 @@ SCHEDULED: <2020-11-28 Sat 12:00-13:00> | [2020-11-28 Sat 16:16-16:36] | OMG Macros | Corwin Brust | | ok | #+END: -**** Org Workflows +**** in-progress Orgmode - your life in plain text :standard:tutorial:org:nudge: + SCHEDULED: <2020-11-28 Sat 13:03-13:13> + :PROPERTIES: + :MAX_TIME: 20 + :MIN_TIME: 10 + :AVAILABILITY: CET, so 9am-maybe 2pm EST (8pm CET) + :NAME: Rainer König + :CUSTOM_ID: talk09 + :TALK_ID: 09 + :END: -***** in-progress Orgmode - your life in plain text :standard:tutorial:org:nudge: -SCHEDULED: <2020-11-28 Sat 13:03-13:13> - :PROPERTIES: - :MAX_TIME: 20 - :MIN_TIME: 10 - :AVAILABILITY: CET, so 9am-maybe 2pm EST (8pm CET) - :NAME: Rainer König - :CUSTOM_ID: talk09 - :TALK_ID: 09 - :END: +Name: Rainer König + +***** Preferred format + +Talk +***** Comments #+begin_quote I'm also not sure we need a 20-minute tutorial on Org Mode, since it's @@ -801,13 +806,7 @@ workflows, though, so if this talk is rejigged as a workflow demo, it might be a good fit for 10-20 minutes. #+end_quote -Name: Rainer König - -****** Preferred format - -Talk - -****** Abstract +***** Abstract This is a talk about Orgmode, my favorite Emacs application. The goal is to show you the power of Emacs when you want to manage and organize @@ -833,12 +832,12 @@ of those tutorials. In Summer 2020 I recorded the tutorials again for a course at Udemy which went online in October 2020 and is supplemented by a 100+ pages course book. -****** (Un)availability +***** (Un)availability Since its weekend on November 28/29 I think I can be flexible, but keep in mind that I'm living in the Central European Time time zone. -****** Speaker release +***** Speaker release By submitting this proposal, I agree that my presentation at EmacsConf 2020 is subject to the following terms and conditions: @@ -864,25 +863,25 @@ material owned by third parties, I represent that the material is sublicensable to the EmacsConf organizers or that my use of them is fair use. -***** in-progress Lead your future with Org :standard:lightning:org:workflow:user: -SCHEDULED: <2020-11-28 Sat 13:16-13:26> -:PROPERTIES: -:MAX_TIME: 20 -:MIN_TIME: 10 -:AVAILABILITY: ok -:NAME: Andrea -:CUSTOM_ID: talk10 -:TALK_ID: 10 -:END: +**** in-progress Lead your future with Org :standard:lightning:org:workflow:user: + SCHEDULED: <2020-11-28 Sat 13:16-13:26> + :PROPERTIES: + :MAX_TIME: 20 + :MIN_TIME: 10 + :AVAILABILITY: ok + :NAME: Andrea + :CUSTOM_ID: talk10 + :TALK_ID: 10 + :END: Name: Andrea -****** Preferred format +***** Preferred format Standard talk (or even Lighting talk by only giving references to the modes I plan to show) -****** Abstract +***** Abstract The world is full of possibilities. A person life is rather short though, and one can easily end up carry on without focus. @@ -898,11 +897,11 @@ actions to review and set up a healthy feedback loop. Tools for the job that I will (at least) mention: Org files, Org agenda, Org archive, org-ql, and Org-roam. -****** (Un)availability +***** (Un)availability I am available :D -****** Speaker release +***** Speaker release By submitting this proposal, I agree that my presentation at EmacsConf 2020 is subject to the following terms and conditions: @@ -928,24 +927,24 @@ material owned by third parties, I represent that the material is sublicensable to the EmacsConf organizers or that my use of them is fair use. -***** in-progress the org-gtd package: opinions about Getting Things Done -SCHEDULED: <2020-11-28 Sat 13:29-13:49> -:PROPERTIES: -:MIN_TIME: 20 -:MAX_TIME: 50 -:AVAILABILITY: ok, confirmed -:NAME: Aldric -:CUSTOM_ID: talk11 -:TALK_ID: 11 -:END: +**** in-progress the org-gtd package: opinions about Getting Things Done + SCHEDULED: <2020-11-28 Sat 13:29-13:49> + :PROPERTIES: + :MIN_TIME: 20 + :MAX_TIME: 50 + :AVAILABILITY: ok, confirmed + :NAME: Aldric + :CUSTOM_ID: talk11 + :TALK_ID: 11 + :END: Name: Aldric -****** Preferred format +***** Preferred format 50 min - can also do 20 minutes -****** Abstract +***** Abstract Come see how org-gtd leverages org-mode to automate the GTD inbox management. Stick around to see how the various org-mode tools get @@ -953,11 +952,11 @@ connected by the package and how you can leverage them for yourself. Bonus: there's even a few tests written for the package! We'll go over those too. -****** (Un)availability +***** (Un)availability N/A -****** Speaker release +***** Speaker release By submitting this proposal, I agree that my presentation at EmacsConf 2020 is subject to the following terms and conditions: @@ -983,25 +982,25 @@ material owned by third parties, I represent that the material is sublicensable to the EmacsConf organizers or that my use of them is fair use. -***** in-progress One Big-ass Org File or multiple tiny ones? Finally, the End of the debate! :standard:lightning:org:user:timing: -SCHEDULED: <2020-11-28 Sat 13:52-14:02> -:PROPERTIES: -:MAX_TIME: 20 -:MIN_TIME: 10 -:AVAILABILITY: 9am-12pm EST (in CET timezone)... see if 1-3pm EST (7-9pm CET) is still doable? -:NAME: Leo Vivier -:CUSTOM_ID: talk12 -:TALK_ID: 12 -:END: +**** in-progress One Big-ass Org File or multiple tiny ones? Finally, the End of the debate! :standard:lightning:org:user:timing: + SCHEDULED: <2020-11-28 Sat 13:52-14:02> + :PROPERTIES: + :MAX_TIME: 20 + :MIN_TIME: 10 + :AVAILABILITY: 9am-12pm EST (in CET timezone)... see if 1-3pm EST (7-9pm CET) is still doable? + :NAME: Leo Vivier + :CUSTOM_ID: talk12 + :TALK_ID: 12 + :END: Name: Leo Vivier -****** Preferred format +***** Preferred format Standard Talk (20 min). Could be condensed into a Lightning Talk (10 min), but I fear it would not do it justice. -****** Abstract +***** Abstract Many discussions have been had over the years on the debate between using few big files versus many small files. However, more often than @@ -1025,13 +1024,13 @@ I feel qualified to talk about this topic for two reasons: I intend the talk to be fairly light-hearted and humorous, which is the only way we can do true justice to the topic. -****** (Un)availability +***** (Un)availability I am in CET, and I would rather have the presentation early in the day (9am-12pm EST would be stellar). If need be, I could present later, but I do not think I would be as effective. -****** Speaker release +***** Speaker release By submitting this proposal, I agree that my presentation at EmacsConf 2020 is subject to the following terms and conditions: @@ -1074,7 +1073,7 @@ Name: Joseph Corneli, Raymond Puzio, and Cameron Ray Smith 10 minute talk -***** Abstract +***** [#B] Abstract We present a short experience report from the perspective of two long-time Emacs users and one relative newcomer. Our motivations @@ -1361,6 +1360,12 @@ SCHEDULED: <2020-11-28 Sat 15:17-15:37> :TALK_ID: 17 :END: +Name: Noorah Alhasan + +***** Preferred format + +20 minutes +***** Comments #+begin_quote org-roam has a lot of talks in this agenda, but it (and other Zettelkasten-type things) have resulted in a lot of buzz in the Org @@ -1370,11 +1375,6 @@ coordinating with the one doing the org-roam overview in order to minimize overlap. This might even be doable in a lightning talk. #+end_quote -Name: Noorah Alhasan - -***** Preferred format - -20 minutes ***** Abstract @@ -1659,15 +1659,16 @@ SCHEDULED: <2020-11-28 Sat 17:03-17:43> :TALK_ID: 21 :END: -#+begin_quote -Will be pre-recorded, so we might be able to move it around in the schedule -#+end_quote - Name: Eduardo Ochs ***** Preferred format Extended talk +***** Comments + +#+begin_quote +Will be pre-recorded, so we might be able to move it around in the schedule +#+end_quote ***** Abstract @@ -1751,7 +1752,7 @@ material owned by third parties, I represent that the material is sublicensable to the EmacsConf organizers or that my use of them is fair use. -** November 29 (Sunday) :sun: +** NOVEMBER 29 (Sunday) :sun: *** 9:00 - 9:30 Opening remarks SCHEDULED: <2020-11-29 Sun 09:00-09:30> @@ -1794,17 +1795,19 @@ SCHEDULED: <2020-11-29 Sun 09:33-09:53> :TALK_ID: 22 :END: -#+begin_quote -2020-10-18: Moved back to Sunday, e-mailed. -2020-10-17: Possibly move to Saturday? E-mailed 2020-10-17. Might be good to put this before OMG Macros. -#+end_quote - Name: Musa Al-hassy ***** Preferred format Standard talk +***** Comments + +#+begin_quote +2020-10-18: Moved back to Sunday, e-mailed. +2020-10-17: Possibly move to Saturday? E-mailed 2020-10-17. Might be good to put this before OMG Macros. +#+end_quote + ***** Abstract Users will generally only make use of a few predefined `special @@ -2152,6 +2155,14 @@ SCHEDULED: <2020-11-29 Sun 13:03-13:13> :TALK_ID: 26 :END: +Name: Pierce Wang + +***** Preferred format + +Standard Talk + +***** Comments + #+begin_quote Probably good idea to reach out to this speaker and check on the angle of this talk. It could be a good way to explore the question of how @@ -2159,12 +2170,6 @@ new people discover Emacs, get motivated to try Emacs, and get through the roadblocks, keeping in mind that it's from personal experience. #+end_quote -Name: Pierce Wang - -***** Preferred format - -Standard Talk - ***** Abstract Could Emacs be humanity's solution to the turbulent years of @@ -2225,11 +2230,6 @@ SCHEDULED: <2020-11-29 Sun 13:16-13:26> :TALK_ID: 27 :END: -#+begin_quote -It might be good to nudge this to be a lightning talk since it's been -presented elsewhere. -#+end_quote - Hello, I'd like to hand in a talk I've already presented at two different @@ -2240,6 +2240,12 @@ Name: Vasilij "wasamasa" Schneidermann ***** Preferred format 50 minutes (Extended talk) +***** Comments + +#+begin_quote +It might be good to nudge this to be a lightning talk since it's been +presented elsewhere. +#+end_quote ***** Abstract @@ -2679,17 +2685,17 @@ SCHEDULED: <2020-11-29 Sun 15:34-15:54> :TALK_ID: 33 :END: -#+begin_quote -This could be a coding-type talk (how to do something technical in -Emacs) or an Emacs Lisp talk (how to modernize outdated code and -integrate with external apps). -#+end_quote - Name: Fermin MF ***** Preferred format 20 minutes (Standard talk) +***** Comments +#+begin_quote +This could be a coding-type talk (how to do something technical in +Emacs) or an Emacs Lisp talk (how to modernize outdated code and +integrate with external apps). +#+end_quote ***** Abstract @@ -3018,7 +3024,97 @@ The total is written to the MIN_TIME_SUM property of this heading" (lambda () (org-entry-get (point) "MIN_TIME")) nil 'tree)))))))) #+end_src +** Generate schedule file +#+begin_src emacs-lisp :results none +(defun conf/get-talk-info () + (let (talk results) + (org-map-entries (lambda () + (let ((heading (org-heading-components))) + (cond + ((and (elt heading 2) (or (null talk) + (<= (car heading) + (plist-get talk :level)))) ;; has a todo, therefore is a talk + (when talk (setq results (cons talk results))) + (setq talk (list + :type 'talk + :title (elt heading 4) + :talk-id (org-entry-get (point) "TALK_ID") + :status (elt heading 2) + :level (car heading) + :scheduled (org-entry-get (point) "SCHEDULED") + :time (org-entry-get (point) "MIN_TIME") + :speakers (org-entry-get (point) "NAME")))) + ((string-match "^ *Abstract *$" (elt heading 4)) + (plist-put talk :abstract + (buffer-substring-no-properties + (save-excursion (forward-line) (line-beginning-position)) + (save-excursion (org-end-of-subtree))))) + ((or (null talk) (< (car heading) (plist-get talk :level))) ;; heading above + (when talk + (setq results (cons talk results)) + (setq talk nil)) + (setq results (cons + (list :type 'headline + :level (car heading) + :title (elt heading 4) + :scheduled (org-entry-get (point) "SCHEDULED")) + results)))))) + nil 'tree) + (when talk (setq results (cons talk results))) + (reverse results))) + +(defun conf/format-talk-info-as-schedule (info) + (format "%s
" + (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 "%s" + title) + (format "%s%s%s%s" + start end (plist-get o :talk-id) title speakers)))) (cdr info) "\n"))) +(defun conf/format-talk-pages (info) + (mapc (lambda (o) + (with-temp-buffer + (let ((timestamp (org-timestamp-from-string (plist-get o :scheduled)))) + (insert (format "# %s\n%s \n%s\n\n%s\n\n +Back to the [[schedule]] + +All times are approximate, and we might shuffle talks around as needed. Please check https://emacsconf.org/2020 a few days before the start of the conference for instructions on how to watch and participate. +\n[[!meta title=\"%s\"]]" + (plist-get o :title) + (format "%s - %s" + (format-time-string "%A, %b %e %Y, %l:%M %p" (org-timestamp-to-time (org-timestamp-split-range timestamp))) + (format-time-string "%l:%M %p" (org-timestamp-to-time (org-timestamp-split-range timestamp t)))) + (plist-get o :speakers) + (org-export-string-as (plist-get o :abstract) 'md t) + (replace-regexp-in-string "\"" "\\\\\"" (plist-get o :title)) + ))) + (write-file (format "schedule/%s.md" (plist-get o :talk-id))))) + (seq-filter (lambda (o) (eq (plist-get o :type) 'talk)) info))) + +(defun conf/generate-schedule-files () + (interactive) + (with-temp-buffer + (insert-file-contents "submissions.org") + (org-mode) + (org-show-all) + (goto-char (point-min)) + (goto-char (org-find-property "ID" "talks")) + (let ((info (conf/get-talk-info))) + (with-temp-buffer + (insert (conf/format-talk-info-as-schedule info)) + (write-file "schedule-details.txt")) + (conf/format-talk-pages info) + (with-current-buffer (find-file "schedule.org") + (org-export-to-file 'md "schedule.md"))))) +#+end_src * COMMENT Possible rough flow suggested by Sacha -- cgit v1.2.3