diff options
Diffstat (limited to '')
-rw-r--r-- | 2024/organizers-notebook/index.org | 251 |
1 files changed, 246 insertions, 5 deletions
diff --git a/2024/organizers-notebook/index.org b/2024/organizers-notebook/index.org index a8ee386a..1c70ff57 100644 --- a/2024/organizers-notebook/index.org +++ b/2024/organizers-notebook/index.org @@ -16,6 +16,8 @@ This file is automatically exported from [/2024/organizers-notebook/index.org](/ You might also like the [general organizers' notebook](/organizers-notebook) and [the organizers' notebook from 2023](/2023/organizers-notebook). #+end_export + + #+NAME: list-headings #+begin_src emacs-lisp :results value replace :exports results :eval never-export :var heading="Help wanted" :var match="helpwanted" (emacsconf-surround @@ -52,14 +54,17 @@ You might also like the [general organizers' notebook](/organizers-notebook) and #+TOC: headlines 2 +* COMMENT Shortcuts -* Timeline +[[file:~/proj/emacsconf/wiki/organizers-notebook/index.org][Common notebook]] + +* TODO Timeline :PROPERTIES: :CUSTOM_ID: timeline :END: -| CFP | [2024-06-28 Fri] | | -| CFP deadline | [2024-09-20 Fri] | 84 | +| CFP | [2024-06-30 Sun] | | +| CFP deadline | [2024-09-20 Fri] | 82 | | Speaker notifications | [2024-09-27 Fri] | | | *Publish schedule* | [2024-10-25 Fri] | | | Video submission deadline | [2024-11-08 Fri] | 49 | @@ -125,7 +130,8 @@ interests you! :PROPERTIES: :CUSTOM_ID: phases :END: -** TODO Draft CFP +** DONE Draft CFP +CLOSED: [2024-09-17 Tue 16:45] :PROPERTIES: :CUSTOM_ID: cfp :END: @@ -141,5 +147,240 @@ CLOSED: [2024-06-11 Tue 19:21] DEADLINE: <2024-06-14 Fri> :PROPERTIES: :CREATED: [024-06-03 Mon 10:1] :END: -**** TODO Post CFP in the usual places +**** DONE Post CFP in the usual places +CLOSED: [2024-09-17 Tue 16:45] emacsconf-discuss, reddit.com/r/emacs, Emacs News, emacs-tangents, Mastodon, X +** Draft schedule +:PROPERTIES: +:CUSTOM_ID: draft-schedule +:END: + +#+NAME: schedule + +*** Option: 2 tracks +:PROPERTIES: +:CUSTOM_ID: sched-2-tracks +:END: +#+begin_src emacs-lisp :results value replace :exports none :eval never-export :var filename="schedule-2-tracks.svg" +(require 'emacsconf) +(require 'emacsconf-schedule) +(setq emacsconf-schedule-tracks + '((:label "Saturday" + :start "2024-12-07 9:00" + :end "2024-12-07 18:00" + :tracks ("General" "Development")) + (:label "Sunday" + :start "2024-12-08 9:00" + :end "2024-12-08 18:00" + :tracks ("General" "Development")))) +(let ((emacsconf-schedule-default-buffer-minutes 20) + (emacsconf-schedule-default-buffer-minutes-for-live-q-and-a 30) + (emacsconf-schedule-break-time 10) + (emacsconf-schedule-lunch-time 60) + (emacsconf-use-absolute-url t) + (emacsconf-schedule-strategies '(emacsconf-schedule-allocate-buffer-time + emacsconf-schedule-copy-previous-track)) + (emacsconf-schedule-validation-functions + '(emacsconf-schedule-validate-time-constraints + ;; emacsconf-schedule-validate-live-q-and-a-sessions-are-staggered + emacsconf-schedule-validate-all-talks-present + emacsconf-schedule-validate-no-duplicates))) + (setq emacsconf-schedule-plan + '(("GEN Saturday, Dec 7" :start "2024-12-07 09:00" :set-track "General") + sat-open + papers ; <= 10:00 + color ; <= 12:00 sat pref + flp ; any, Sat pref + hyperdrive ; >= 11:00 Sat + (lunch :start "12:00") + emacs30 ; probably any + theme ; >= 12:30 + water ; >= 13:00 Sat, same speaker as shell >= 10:00 EST Sat and <= 16:00 EST Sat + shell ; >= 13:00 Sat >= 10:00 EST Sat and <= 16:00 EST Sat + students + writing ; >= 15:30 Sat + sat-close + ("DEV Saturday, Dec 7" :start "2024-12-07 10:00" :set-track "Development") + gypsum ; <= 11:00 + rust ; Dec 7 + (lunch :start "12:00") + julia ; >= 13:00 + guile ; >= 12:00 + (mcclim :time 60) ; >= 14:00 + regex ; <= 12:00 sun or >= 12:00 sat + repro ; any + ("GEN Sunday, Dec 8" :start "2024-12-08 09:00" :set-track "General") + sun-open + links ; <= 10:30 + (org-teach :buffer 20) ; any + (hyperbole :buffer 20) + (hywiki :buffer 20) ; >= 10:00 + language ; <= 12:00 + (lunch :start "12:00") + literate ; >= 13:00 + casual ; >= 13:00 + learning ; any + project ; any + sharing ; any + (sun-close :start "16:50") + ("DEV Sunday, Dec 8" :start "2024-12-08 10:00" :set-track "Development") + pgmacs ; <= 15:00 + graph ; <= 12:00 + (lunch :start "12:00") + blee ; any + p-search ; any + secrets ; >= 13:00 + (transducers :start "16:00") ; >= 16:00 sun + )) + (setq emacsconf-schedule-draft (emacsconf-schedule-prepare (emacsconf-schedule-inflate-sexp emacsconf-schedule-plan))) + (prog1 (string-join (emacsconf-schedule-validate emacsconf-schedule-draft) "\n") + (let ((emacsconf-schedule-svg-modify-functions + '(emacsconf-schedule-svg-color-by-availability + ;emacsconf-schedule-svg-color-by-status + ))) + (with-temp-file (expand-file-name filename (file-name-directory emacsconf-org-file)) + (svg-print (emacsconf-schedule-svg 800 300 emacsconf-schedule-draft))) + (with-temp-file (expand-file-name filename (expand-file-name "organizers-notebook" (expand-file-name emacsconf-year emacsconf-directory))) + (svg-print (emacsconf-schedule-svg 800 300 emacsconf-schedule-draft)))) + (clear-image-cache))) +#+end_src + +#+RESULTS: +:results: +:end: + +[[file:schedule-2-tracks.svg]] + +Coloring by availability: +- light blue: constraint is <= a time +- peach: constraint is >= a time + +*** Option: 1.5 tracks +:PROPERTIES: +:CUSTOM_ID: sched-1.5-tracks +:END: + +#+begin_src emacs-lisp :results value replace :exports none :eval never-export :var filename="schedule-1.5-tracks.svg" +(require 'emacsconf) +(require 'emacsconf-schedule) +(setq emacsconf-schedule-tracks + '((:label "Saturday" + :start "2024-12-07 9:00" + :end "2024-12-07 18:00" + :tracks ("General" "Development")) + (:label "Sunday" + :start "2024-12-08 9:00" + :end "2024-12-08 18:00" + :tracks ("General" "Development")))) +(let ((emacsconf-schedule-default-buffer-minutes 10) + (emacsconf-schedule-default-buffer-minutes-for-live-q-and-a 20) + (emacsconf-schedule-break-time 10) + (emacsconf-schedule-lunch-time 60) + (emacsconf-use-absolute-url t) + (emacsconf-schedule-strategies '(emacsconf-schedule-allocate-buffer-time + emacsconf-schedule-copy-previous-track)) + (emacsconf-schedule-validation-functions + '(emacsconf-schedule-validate-time-constraints + ;; emacsconf-schedule-validate-live-q-and-a-sessions-are-staggered + emacsconf-schedule-validate-all-talks-present + emacsconf-schedule-validate-no-duplicates))) + (setq emacsconf-schedule-plan + '(("GEN Saturday, Dec 7" :start "2024-12-07 09:00" :set-track "General") + sat-open + papers ; <= 10:00 + links ; <= 10:30 + org-teach ; any + language ; <= 12:00 + hyperdrive ; >= 11:00 Sat + color ; <= 12:00 sat pref + (lunch :start "12:00") + emacs30 ; probably any + water ; >= 13:00 Sat, same speaker as shell + shell ; >= 13:00 Sat + theme ; >= 12:30 + flp ; any, Sat pref + writing ; >= 15:30 Sat + (sat-close :start "16:50") + ("DEV Saturday, Dec 7" :start "2024-12-07 10:00" :set-track "Development") + gypsum ; <= 11:00 + rust ; Dec 7 + graph ; <= 12:00 + (lunch :start "12:00") + julia ; >= 13:00 + guile ; >= 12:00 + regex ; <= 12:00 sun or >= 12:00 sat + (mcclim :time 60) ; >= 14:00 + secrets ; >= 13:00 + repro ; any + ("GEN Sunday, Dec 8" :start "2024-12-08 09:00" :set-track "General") + sun-open + pgmacs ; <= 15:00 + p-search ; any + hyperbole + hywiki ; >= 10:00 + project ; any + blee ; any + (lunch :start "12:00") + casual ; >= 13:00 + learning ; >= 13:00 + sharing ; any + literate ; >= 13:00 + students + (transducers :start "16:00") ; >= 16:00 sun + (sun-close :start "16:50") + )) + (setq emacsconf-schedule-draft (emacsconf-schedule-prepare (emacsconf-schedule-inflate-sexp emacsconf-schedule-plan))) + (prog1 (string-join (emacsconf-schedule-validate emacsconf-schedule-draft) "\n") + (let ((emacsconf-schedule-svg-modify-functions + '(emacsconf-schedule-svg-color-by-availability + ;emacsconf-schedule-svg-color-by-status + ))) + (with-temp-file (expand-file-name filename (file-name-directory emacsconf-org-file)) + (svg-print (emacsconf-schedule-svg 800 300 emacsconf-schedule-draft))) + (with-temp-file (expand-file-name filename (expand-file-name "organizers-notebook" (expand-file-name emacsconf-year emacsconf-directory))) + (svg-print (emacsconf-schedule-svg 800 300 emacsconf-schedule-draft)))) + (clear-image-cache))) +#+end_src + +#+RESULTS: +:results: +:end: + +[[file:schedule-1.5-tracks.svg]] + +Coloring by availability: +- light blue: constraint is <= a time +- peach: constraint is >= a time +* Support code + +#+begin_src emacs-lisp +(defun my-ox-link-path (link _ info) + (let* ((raw-path (org-element-property :path link))) + (setq raw-path + (org-export-file-uri + (org-publish-file-relative-name raw-path info))) + ;; Possibly append `:html-link-home' to relative file + ;; name. + (let ((home (and (plist-get info :html-link-home) + (org-trim (plist-get info :html-link-home))))) + (when (and home + (plist-get info :html-link-use-abs-url) + (not (file-name-absolute-p raw-path))) + (setq raw-path (concat (file-name-as-directory home) raw-path)))) + raw-path)) + +(defun my-org-md-link (link desc info) + (if (string= (org-element-property :type link) "file") + (let ((path (my-ox-link-path link desc info))) + (if (string= (file-name-extension path) "svg") + (with-temp-buffer + (insert-file-contents-literally path) + (buffer-string)) + (org-md-link link desc info))) + (org-md-link link desc info))) + +(with-eval-after-load 'ox-md + (setf + (alist-get 'link (org-export-backend-transcoders (org-export-get-backend 'md))) + 'my-org-md-link)) +#+end_src |