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