summaryrefslogtreecommitdiffstats
path: root/2024/organizers-notebook/index.org
diff options
context:
space:
mode:
Diffstat (limited to '2024/organizers-notebook/index.org')
-rw-r--r--2024/organizers-notebook/index.org251
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