diff options
-rw-r--r-- | 2022/organizers-notebook.org | 236 |
1 files changed, 159 insertions, 77 deletions
diff --git a/2022/organizers-notebook.org b/2022/organizers-notebook.org index a20694b4..732478c9 100644 --- a/2022/organizers-notebook.org +++ b/2022/organizers-notebook.org @@ -21,9 +21,10 @@ General: - [[elisp:(org-babel-ref-resolve "i-like-danger()")][I’m okay trading off security for convenience]] / [[elisp:(org-babel-ref-resolve "back-to-safety()")][Bring me back to safety]] - [[elisp:(org-babel-ref-resolve "elisp-no-confirmation")][Do not ask for confirmation when evaluating elisp links or org-babel blocks]] (Risky) - [[elisp:(org-babel-execute-buffer)][Execute buffer]] (Risky and unreliable for now) +- [[elisp:(emacsconf-show-my-agenda)][Show my agenda]] - customize emacsconf-org-tag Importing changes: -(This file is frequently edited, so you’d better pull before making your changes.) +(This file is frequently edited, so you'd better pull before making your changes.) - [[elisp:(magit-pull-from-pushremote nil)][Pull from origin]] Export: @@ -37,7 +38,8 @@ Export on save: You can use ~C-c /~ (~org-sparse-tree~) to filter this for TODOs, or ~C-c \~ (~org-match-sparse-tree~) to see anything tagged with your tag. ~org-agenda~ with ~<~ for the file restriction may also be handy. - + + * Current tasks / status :PROPERTIES: :CUSTOM_ID: current @@ -46,12 +48,13 @@ Planned dates and phases: | [2022-09-26] | Yes/no comments for original submissions | | [2022-09-30] | Original speaker notification date | +| [2022-10-02] | Confirm time allocations for early submissions | | [2022-10-07] | Yes/no comments for late submissions | | [2022-10-15] | New speaker notification date (possibly only for late submissions) | | [2022-10-22] | E-mail confirmation expected (collect public contact info for posting in program) | | [2022-10-22] | Strongly encourage early submitters to target this date for prerecs | | [2022-10-31] | Schedule published | -| [2022-11-05] | Target date to receive prerecs; earlier is better | +| [2022-11-07] | Target date to receive prerecs; earlier is better | | | zaeph: reencode videos | | | sachac: prepare talks for captioning | | | volunteers: tech checks, captions | @@ -84,9 +87,19 @@ Extra stuff to consider adding: ** WAITING Add more submissions (CFP deadline Sept 30) :sachac: DEADLINE: <2022-09-30 Fri> - Sacha: Add submissions to emacsconf-2022-private, draft 2-day schedule by Oct 10 -** DONE Copy things over from previous notebooks :sachac: -CLOSED: [2022-09-21 Wed 14:12] -** TODO Double-check sachac’s timezone conversions for availability :corwin: +** TODO Publish talk pages :sachac: +** TODO Send early acceptances :sachac: +DEADLINE: <2022-09-30 Fri> + +Ideal sequence: +1. publish /2022/prepare (zaeph) +2. publish wiki pages +3. send acceptance e-mails + - Allocate at most 20 minutes, say we'll try to add more time depending on the schedule (probably know by Sept 30 or Oct 1) + - Include review comments +4. Send an additional e-mail introducing speakers who may want to coordinate + + ** TODO Investigate streaming options, maybe OBS in the cloud :corwin: DEADLINE: <2022-11-20 Sun> - Issue: zaeph was dropping frames and couldn’t pay attention to as many things as he wanted @@ -97,7 +110,7 @@ DEADLINE: <2022-11-20 Sun> ** TODO Work on the OBS scenes :zaeph:corwin: DEADLINE: <2022-11-11 Fri> - [ ] corwin is out from Nov 11-20, and we should start working on them before then. -** TODO Figure out web-based file upload :needsowner:zaeph:bandali: +** TODO [#A] Figure out web-based file upload :needsowner:zaeph:bandali: Lesson learned from last year: "Since people kept running into ftp problems, we might want to set up a web-frontend next year to minimise problems." Maybe we could ask some of the volunteers who wanted to help us with the infra? It shouldn’t be complicated to deploy a ready-made solution. *** TODO Create 2022/upload.md with the same workflow as last year for a start @@ -121,14 +134,33 @@ That will help more people subtitle things ** TODO Create Org heading for scheduling caption team's live IRC duty shifts :dto: DEADLINE: <2022-09-30 Fri> +** TODO Review metadata for speakers in conf.org :zaeph: +SCHEDULED: <2022-09-23 Fri> + +See the bottom of conf.org for some automated validation + +** TODO Write viewing instructions :zaeph: +Extra stuff to consider adding: +- Suggestions for mpv-filter to invert colourscape. ** DONE Write volunteer page :sachac: CLOSED: [2022-09-22 Thu 15:02] https://emacsconf.org/2022/volunteer -** TODO Review metadata for speakers in conf.org :zaeph: -SCHEDULED: <2022-09-23 Fri> +** DONE Review the submissions in the pad (see emacsconf-org-private or conf.org for the link) and add any objections or comments by Sept 26 for possible [[*Early speaker notification][early speaker notification]], Oct 7 for everything :organizers: +CLOSED: [2022-09-27 Tue 16:14] DEADLINE: <2022-09-26 Mon> +- zaeph: will start reviewing on Sep 21 +** DONE Double-check sachac’s timezone conversions for availability :zaeph: +CLOSED: [2022-09-27 Tue 16:14] -** TODO :zaeph:bandali: +zaeph helped with this, even catching some based on e-mail timestamps +** DONE Copy things over from previous notebooks :sachac: +CLOSED: [2022-09-21 Wed 14:12] +** TODO Allocate extra time if possible; send e-mail :sachac: +SCHEDULED: <2022-10-02 Sun> +* Things to figure out / decisions to make +:PROPERTIES: +:CUSTOM_ID: decisions +:END: ** TODO Do we want to use JS on the wiki? *** BLOCKED ?: Figure out JS and CSS niceties that will make organizers-notebook more enjoyable to browse through :css:js: @@ -141,10 +173,6 @@ gitolite should have some options to do this *** BLOCKED ?: Beautify video players :js:css: Might not be necessary. -* Things to figure out / decisions to make -:PROPERTIES: -:CUSTOM_ID: decisions -:END: ** What ideas do we want to borrow from other conferences? - FOSDEM had a conference track @@ -1148,47 +1176,117 @@ Thanks! Sacha -** TODO Early speaker notification +** TODO Early speaker notification :sachac: DEADLINE: <2022-09-30 Fri> We can accept early or send people a note saying notification of acceptance will be on Oct 15, because of the extended CFP. +Right before this e-mail: -*** Option A: Early speaker notification(?) -:PROPERTIES: -:SUBJECT: EmacsConf 2022: Accepted: $title -:END: - -Hi, $name! +- Publish the wiki pages -I'm happy to tell you that we've accepted your EmacsConf proposal for "$talk." Thanks for volunteering to share what you're learning about! I know it takes a fair bit of work to prepare a presentation, so I appreciate that you're taking the time to show what's possible with Emacs and encourage people to learn more. +Objectives for this e-mail: -We've extended the call for participation to Sept 30, so we might get a few more submissions over the next two weeks. That means we'll confirm time allocations on Oct 15. Since you submitted before the original deadline, we wanted to send you your acceptance by the original timeline so that you wouldn't be waiting in uncertainty. - -Just like last year, talks will be prerecorded in order to minimize technical risks, make it easier for speakers to enjoy other people's talks, allow captions, and let attendees catch up or share cool stuff quickly. I hope we get everything together in time so that we can ask volunteers to check for any issues that might come up when we re-encode. (I missed parts of some talks last time because I was rushing. <blush>) - ------ if $time = $max_time - -You asked for $max_time minutes for your talk and I think that should be all right. - ------ else +- Notify people of acceptance +- Tell them the number of minutes to plan for* (might get more) +- Tell them about the target date +- Get them to reply +- Ask for public contact information or any changes to the wiki page + +#+begin_src emacs-lisp +(defun emacsconf-draft-early-acceptance-for-email-group (group &optional template) + "GROUP is (email . (talk talk))." + (interactive + (list + (save-window-excursion + (let* ((emacsconf-talk-info-functions (append emacsconf-talk-info-functions '(emacsconf-get-talk-comments-from-subtree))) + (info (emacsconf-filter-talks (emacsconf-get-talk-info))) + (grouped (seq-group-by (lambda (o) (plist-get o :email)) info)) + (slug (emacsconf-get-slug-from-string (emacsconf-complete-talk))) + (email (plist-get (seq-find (lambda (o) (string= (plist-get o :slug) slug)) info) :email))) + (assoc email grouped))))) + (let* ((template (or template (emacsconf-mail-merge-get-template "early-acceptance"))) + (talks (cdr group)) + (first (car talks)) + (prerec-target "November 7") + (attrs `(:speakers-short + ,(plist-get first :speakers-short) + :email + ,(plist-get first :email) + :year + ,(or (plist-get first :year) emacsconf-year) + :titles + ,(mapconcat (lambda (o) (format "\"%s\"" (plist-get o :title))) talks " and ") + :prerec-target + ,prerec-target + :talk-details-and-comments + ,(mapconcat + (lambda (o) + (format "%s minutes: %s\nhttps://emacsconf.org/%s/talks/%s\n\n%s" + (plist-get o :time) + (plist-get o :title) + (plist-get o :year) + (plist-get o :slug) + (string-fill (emacsconf-replace-plist-in-string o (plist-get o :acceptance-comment)) 72))) + talks "\n---------------------------------------------------------------------\n")))) + (compose-mail + (car group) + (emacsconf-replace-plist-in-string attrs (plist-get template :subject)) + `(("Reply-To" . ,(plist-get template :reply-to)) + ("Mail-Followup-To" . ,(plist-get template :mail-followup-to)) + ("Mail-Followup-To" . ,(plist-get template :cc)))) + (message-goto-body) + (save-excursion (insert (emacsconf-replace-plist-in-string attrs (plist-get template :body)))))) -You asked for at most $max_time minutes for your talk. I think at this moment we can commit to $time minutes, with possibly more time being available depending on other submissions. If you want to plan a pre-recorded talk for that length and then use extra time for a live presentation or as Q&A, that would be great. Alternatively, you can wait until we confirm the schedule in case you want to plan a longer prerecorded talk. +(defun emacsconf-draft-all-early-acceptances () + (interactive) + (let* ((emacsconf-talk-info-functions (append emacsconf-talk-info-functions '(emacsconf-get-talk-comments-from-subtree))) + (info (emacsconf-filter-talks (emacsconf-get-talk-info))) + (grouped (seq-group-by (lambda (o) (plist-get o :email)) info)) + (template (emacsconf-mail-merge-get-template "early-acceptance"))) + (mapc (lambda (group) + (emacsconf-draft-early-acceptance-for-email-group group template)) + grouped))) ------ +#+end_src +*** Speaker acceptance +:PROPERTIES: +:SUBJECT: EmacsConf ${year} acceptance: ${titles} +:EMAIL_ID: early-acceptance +:CC: emacsconf-submit@gnu.org +:END: +Hi, ${speakers-short}! ---- if Q&A will be live or IRC --- +I'm happy to tell you that we've accepted your EmacsConf proposal for +${titles}. Thanks for volunteering to share what you're learning about! +I know it takes a fair bit of work to prepare a presentation, so I +appreciate that you're taking the time to show what's possible with +Emacs and encourage people to learn more. -You'll have some time after your talk for Q&A, so the $time minutes can be just for your talk. Of course, if you like, you can make it shorter. +--------------------------------------------------------------------- +${talk-details-and-comments} +--------------------------------------------------------------------- ------ +You'll have some time after your talk for Q&A, so the allocated time +can be just for your pre-recorded talk. Of course, if you like, you +can make it shorter. -If you want to get a head start on recording your talk, please feel free to do so. We'll be streaming talks at 1920x1280 resolution, so the closer your recording is to that, the easier it will be to process for streaming. .webm format is preferred, but we can convert other formats. $recording has some tips on recording tools and settings that you might find helpful. We'll send you instructions on how to upload files once we get that set up. +We've posted preparation tips at https://emacsconf.org/${year}/prepare/ . +We'll send you instructions on how to upload files once we get that +set up. -We're going to try to caption as many talks as possible again this year, and extra time helps a lot. People found the captions really helpful while watching the stream, and sending your talk in early will make it more likely that we'll be able to get your captions edited and reviewed before the conference. +Could you please plan to put your pre-rec together by *${prerec-target}* (or +even earlier if you want)? We're going to try to caption as many talks +as possible again this year, and extra time helps a lot. People found +the captions really helpful while watching the stream, and sending +your talk in early will make it more likely that we'll be able to get +your captions edited and reviewed before the conference. -Could you please reply to this email so that we can confirm that I've got the right email address for you and that messages can get properly delivered? +Please reply to this e-mail (including Cc: emacsconf-submit@gnu.org) +as soon as you can so that we can confirm that we've got the right +email address for you and that messages can get properly delivered. -We'll be putting up the public wiki pages for each talk soon using the information from the talk abstract, and we can put $public_email as the contact information for you. Please let us know by $publish_date if you would prefer something else. +Would you like us to put ${email} as the public contact information +for you, or would you like us to add something else to the talk pages? Thank you so much! @@ -1207,28 +1305,12 @@ for your patience! Sacha ** Future *** Acceptance +This is a copy of the previous **** Code #+begin_src emacs-lisp -(defun conf-summarize-times (time timezones) - (let (prev-day) - (mapconcat - (lambda (tz) - (let ((cur-day (format-time-string "%a %b %-e" time tz)) - (cur-time (format-time-string "%H%MH %Z" time tz))) - (if (equal prev-day cur-day) - cur-time - (setq prev-day cur-day) - (concat cur-day " " cur-time)))) - timezones - " / "))) - -;; (assert (string= (conf-replace-plist-in-string '(:test "ABC") "hello ${test} world") "hello ABC world")) - - -(defun conf-draft-acceptance () +(defun emacsconf-draft-acceptance () (interactive) - (let* ((mustache-key-type 'keyword) - (sched (org-timestamp-from-string (org-entry-get (point) "SCHEDULED"))) + (let* ((sched (org-timestamp-from-string (org-entry-get (point) "SCHEDULED"))) (attrs (append (emacsconf-get-talk-info-for-subtree) :other-notes @@ -1804,7 +1886,6 @@ Throw an error if ERROR is non-nil, skip otherwise." #+name: i-like-danger #+begin_src emacs-lisp (setq-local emacsconf-danger-allow-dangerous-stuff t) - (org-babel-ref-resolve "elisp-no-confirmation()") (message "Now allowing dangerous stuff. Buckle up, buckaroo!") @@ -1895,24 +1976,25 @@ Meant to be used with `after-save-hook'." (unless (memq #'emacsconf-export-md-on-save after-save-hook) (message "Hook is no longer active")) #+end_src -** Process review comments from pad -1. ~curl https://etherpad.wikimedia.org/p/[REDACTED]/export/html~ -2. Open curl’d html into browser -3. Copy just the text from the page (i.e. not the html) -4. Paste in Emacs buffer - -Inside emacs: -1. C-s Comments for -2. C-M-s ^[a-z0-9] -3. M-< -4. C-x 3 -5. C-x b comments.org (new buffer) -6. C-x o -7. Run following kmacro (eval then M-x pad-comments, then C-x e until completion) -#+begin_src emacs-lisp -(defalias 'emacsconf-pad-comments - (kmacro "C-s C-s <return> C-a C-SPC C-n C-M-s M-p <return> <return> C-b M-w C-x o C-y C-u -- C-x o")) +** Review agenda +#+begin_src emacs-lisp :results silent +(defcustom emacsconf-org-tag nil "Tag for your nick, for easier agenda filtering" + :group 'emacsconf + :type 'string) #+end_src +#+begin_src emacs-lisp :results silent +(defun emacsconf-show-my-agenda () + (interactive) + (let* ((org-agenda-files (list (buffer-file-name))) + (tag-filter (if emacsconf-org-tag (concat "+" emacsconf-org-tag) "")) + (org-agenda-tag-filter-preset (list (when emacsconf-org-tag (concat "+" emacsconf-org-tag)))) + (org-agenda-custom-commands `(("a" "Agenda" + ((agenda ,tag-filter) + (tags-todo ,(concat tag-filter "-SCHEDULED={.+}-DEADLINE={.+}"))))))) + (org-agenda nil "a"))) + +** Process review comments from pad +see emacsconf-import-comments-from-etherpad-text * Lessons learned :PROPERTIES: |