From 295282af79a94307db51590a15ad16eac2d05151 Mon Sep 17 00:00:00 2001
From: Sacha Chua <sacha@sachachua.com>
Date: Wed, 27 Sep 2023 10:57:31 -0400
Subject: add aligned schedule options, list decisions

---
 2023/organizers-notebook/index.org                 | 266 +++++++++++++++++----
 .../schedule-option-aligned-talks.svg              |   1 +
 2 files changed, 225 insertions(+), 42 deletions(-)
 create mode 100644 2023/organizers-notebook/schedule-option-aligned-talks.svg

(limited to '2023/organizers-notebook')

diff --git a/2023/organizers-notebook/index.org b/2023/organizers-notebook/index.org
index 51ac1fec..05475421 100644
--- a/2023/organizers-notebook/index.org
+++ b/2023/organizers-notebook/index.org
@@ -12,6 +12,28 @@
 This file is automatically exported from [/2023/organizers-notebook/index.org](/2023/organizers-notebook/index.org). You might prefer to navigate this as an Org file instead. To do so, [clone the wiki repository](https://emacsconf.org/edit/).
 #+end_export
 
+Decisions to make:
+
+#+begin_src emacs-lisp :results value replace :exports results :eval never-export
+(string-join
+ (delq nil
+			 (org-map-entries
+				(lambda ()
+					(unless (org-entry-is-done-p)
+						(format "- %s\n"
+										(org-link-make-string
+										 (concat "#" (org-entry-get (point) "CUSTOM_ID"))
+										 (org-entry-get (point) "ITEM")))))
+				"decision" nil))
+ "")
+#+end_src
+
+#+RESULTS:
+:results:
+- [[#three-tracks][Test the idea of three tracks and more aligned times]]
+- [[#honorifics][Do we want to use honorifics like Dr.?]]
+:end:
+
 #+TOC: headlines 2
 
 * Timeline
@@ -24,7 +46,7 @@ This file is automatically exported from [/2023/organizers-notebook/index.org](/
 | CFP deadline              | [2023-09-14 Thu]                   |
 | *Speaker notifications*   | [2023-09-25 Mon]                   |
 | Publish schedule          | [2023-10-30 Mon]                   |
-| Video submission deadline | [2023-11-03 Fri]                   |
+| Video submission deadline | [2023-11-04 Sat]                   |
 | EmacsConf                 | [2023-12-02 Sat], [2023-12-03 Sun] |
 
 Last year, these were the actual dates:
@@ -345,7 +367,7 @@ These times are in EST (GMT-5).
 								:end "2023-12-03 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-default-buffer-minutes-for-live-q-and-a 15)
 			(emacsconf-schedule-break-time 10)
 			(emacsconf-schedule-lunch-time 60)
 			(emacsconf-use-absolute-url t)
@@ -361,15 +383,17 @@ These times are in EST (GMT-5).
 					sat-open
 					adventure
 					uni
+					teaching
 					table
 					taming 
 					one
-					(lunch :start "11:50")
+					(lunch :start "12:00")
 					writing
 					nabokov 
 					collab
 					(woof :track "General")
 					solo
+					break
 					unentangling
 					ref
 					(devel :track "General") 
@@ -378,8 +402,8 @@ These times are in EST (GMT-5).
 					(matplotllm :track "Development")
 					(voice :track "Development")
 					(llm :track "Development")
-					lunch
-					(overlay :start "12:50")
+					(lunch :start "12:00")
+					(overlay)
 					(eval)
 					(repl)
 					(hyperdrive :track "Development")
@@ -389,12 +413,14 @@ These times are in EST (GMT-5).
 					hyperamp
 					koutline
 					(parallel :track "General")
+					eat
 					poltys
 					cubing
-					(lunch :start "11:50")
-					(eat)
+					(lunch :start "12:00")
 					(emms :track "General")
+					(steno :track "General")
 					mentor
+					break
 					(hn :start "15:00")
 					web
 					sharing
@@ -403,12 +429,11 @@ These times are in EST (GMT-5).
 					scheme
 					test
 					(flat :track "Development")
-					(lunch :start "11:50")
+					(lunch :start "12:00")
 					gc
 					lspocaml
 					(windows :track "Development")
 					(emacsconf :track "Development")
-					(steno :track "Development")
 					(emacsen :track "Development")
 					))
 	(setq emacsconf-schedule-draft (emacsconf-schedule-prepare (emacsconf-schedule-inflate-sexp emacsconf-schedule-plan)))
@@ -423,6 +448,10 @@ These times are in EST (GMT-5).
 		(clear-image-cache)))
 #+end_src
 
+#+RESULTS: schedule
+:results:
+:end:
+
 #+RESULTS:
 :results:
 :end:
@@ -432,7 +461,6 @@ These times are in EST (GMT-5).
 #+end_comment
 
 #+INCLUDE: schedule.svg export html
-
 *** Draft schedule as a list
 :PROPERTIES:
 :CUSTOM_ID: schedule-list
@@ -452,6 +480,7 @@ These times are in EST (GMT-5).
 															((and (car constraint) (cadr constraint)) (format "- between %s-%s EST - " (car constraint) (cadr constraint)))
 															((car constraint) (format "- after %s EST - " (car constraint)))
 															((cadr constraint) (format "- before %s EST - " (cadr constraint)))
+															((string-match "^(.*?) -- " (or (plist-get o :availability) "")) (match-string 1 (plist-get o :availability)))
 															(t "")))
 												   (format "[[emacsconf:%s][%s]]: "
 																   (plist-get o :slug)
@@ -470,47 +499,48 @@ These times are in EST (GMT-5).
   - 2023-12-02 Sat 09:10-09:20 - before 10:00 EST - [[emacsconf:adventure][adventure]]: An Org-Mode based text adventure game for learning the basics of Emacs, inside Emacs, written in Emacs Lisp (Chung-hong Chan) 
   - 2023-12-02 Sat 09:30-09:50 [[emacsconf:uni][uni]]: Authoring and presenting university courses with Emacs and a full libre software stack (James Howell) 
   - 2023-12-02 Sat 10:00-10:10 - before 10:30 EST - [[emacsconf:matplotllm][matplotllm]]: MatplotLLM, iterative natural language data visualization in org-babel (Abhinav Tushar) 
-  - 2023-12-02 Sat 10:10-10:20 - before 11:00 EST - [[emacsconf:table][table]]: Who needs Excel? Managing your students qualifications with org-table (Daniel Molina) 
+  - 2023-12-02 Sat 10:05-10:25 [[emacsconf:teaching][teaching]]: Teaching computer and data science with literate programming tools
   - 2023-12-02 Sat 10:20-10:40 [[emacsconf:voice][voice]]: Improving access to AI-assisted literate programming with voice control (Blaine Mooers) 
-  - 2023-12-02 Sat 10:40-10:50 - before 15:00 EST - [[emacsconf:taming][taming]]: Taming things with Org Mode (Gergely Nagy (algernon)) 
-  - 2023-12-02 Sat 11:00-11:20 - after 10:00 EST - [[emacsconf:llm][llm]]: LLM clients in Emacs, functionality and standardization (Andrew Hyatt) 
-  - 2023-12-02 Sat 11:10-11:30 - before 13:00 EST - [[emacsconf:one][one]]: one.el: the static site generator for Emacs Lisp Programmers (Tony Aldon) 
-  - 2023-12-02 Sat 12:50-13:00 [[emacsconf:writing][writing]]: Emacs turbo-charges my writing (Jeremy Friesen) 
-  - 2023-12-02 Sat 12:50-13:10 - after 11:00 EST - [[emacsconf:overlay][overlay]]: Improving compiler diagnostics with Overlays (Jeff Trull) 
-  - 2023-12-02 Sat 13:20-13:30 [[emacsconf:nabokov][nabokov]]: Why Nabokov would use Org-Mode if he were writing today (Edmund Jorgensen) 
-  - 2023-12-02 Sat 13:30-13:40 [[emacsconf:eval][eval]]: Editor Integrated REPL Driven Development for all languages (Musa Al-hassy) 
+  - 2023-12-02 Sat 10:40-10:50 - before 11:00 EST - [[emacsconf:table][table]]: Who needs Excel? Managing your students qualifications with org-table (Daniel Molina) 
+  - 2023-12-02 Sat 10:55-11:15 - after 10:00 EST - [[emacsconf:llm][llm]]: LLM clients in Emacs, functionality and standardization (Andrew Hyatt) 
+  - 2023-12-02 Sat 11:05-11:15 - before 15:00 EST - [[emacsconf:taming][taming]]: Taming things with Org Mode (Gergely Nagy (algernon)) 
+  - 2023-12-02 Sat 11:30-11:50 - before 13:00 EST - [[emacsconf:one][one]]: one.el: the static site generator for Emacs Lisp Programmers (Tony Aldon) 
+  - 2023-12-02 Sat 13:00-13:10 [[emacsconf:writing][writing]]: Emacs turbo-charges my writing (Jeremy Friesen) 
+  - 2023-12-02 Sat 13:00-13:20 - after 11:00 EST - [[emacsconf:overlay][overlay]]: Improving compiler diagnostics with Overlays (Jeff Trull) 
+  - 2023-12-02 Sat 13:25-13:35 [[emacsconf:nabokov][nabokov]]: Why Nabokov would use Org-Mode if he were writing today (Edmund Jorgensen) 
+  - 2023-12-02 Sat 13:35-13:45 [[emacsconf:eval][eval]]: Editor Integrated REPL Driven Development for all languages (Musa Al-hassy) 
   - 2023-12-02 Sat 13:50-14:10 - no live Q&A - [[emacsconf:collab][collab]]: Collaborative data processing and documenting using org-babel (Jonathan Hartman, Lukas C. Bossert) 
   - 2023-12-02 Sat 14:00-14:40 [[emacsconf:repl][repl]]: REPLs in strange places: Lua, LaTeX, LPeg, LPegRex, TikZ (Eduardo Ochs) 
   - 2023-12-02 Sat 14:20-14:40 - before 15:00 EST - [[emacsconf:woof][woof]]: Watch Over Our Folders (Bastien Guerry) 
   - 2023-12-02 Sat 14:50-15:30 - after 11:00 EST - [[emacsconf:hyperdrive][hyperdrive]]: hyperdrive.el: Peer-to-peer filesystem in Emacs (Joseph Turner) 
-  - 2023-12-02 Sat 15:00-15:20 - after 12:00 EST - [[emacsconf:solo][solo]]: How I play TTRPGs in Emacs (Howard Abrams) 
+  - 2023-12-02 Sat 14:55-15:15 - after 12:00 EST - [[emacsconf:solo][solo]]: How I play TTRPGs in Emacs (Howard Abrams) 
   - 2023-12-02 Sat 15:40-15:50 - between 15:00-16:00 EST - [[emacsconf:unentangling][unentangling]]: (Un)entangling projects and repos (Alexey Bochkarev) 
-  - 2023-12-02 Sat 15:50-16:10 [[emacsconf:extending][extending]]: GNU Emacs for electronics, note-taking, and as lightweight IDE (Anand Tamariya) 
+  - 2023-12-02 Sat 15:45-16:05 [[emacsconf:extending][extending]]: GNU Emacs for electronics, note-taking, and as lightweight IDE (Anand Tamariya) 
   - 2023-12-02 Sat 16:00-16:20 - after 13:00 EST - [[emacsconf:ref][ref]]: Org-Mode workflow: informal reference tracking (Christopher Howard) 
   - 2023-12-02 Sat 16:30-16:40 - no live Q&A - [[emacsconf:devel][devel]]: Emacs development updates (John Wiegley) 
   - 2023-12-02 Sat 16:50-17:00 [[emacsconf:sat-close][sat-close]]: Saturday closing remarks
   - 2023-12-03 Sun 09:00-09:05 [[emacsconf:sun-open][sun-open]]: Sunday opening remarks
   - 2023-12-03 Sun 09:05-09:25 - before 12:00 EST - [[emacsconf:hyperamp][hyperamp]]: Top 10 ways Hyperbole amps up Emacs (Robert Weiner) 
-  - 2023-12-03 Sun 09:45-10:05 [[emacsconf:koutline][koutline]]: Using Koutline for stream of thought journaling (Matthew Jorgensen (PlasmaStrike)) 
+  - 2023-12-03 Sun 09:40-10:00 [[emacsconf:koutline][koutline]]: Using Koutline for stream of thought journaling (Matthew Jorgensen (PlasmaStrike)) 
   - 2023-12-03 Sun 10:00-10:20 - before 12:00 EST - [[emacsconf:scheme][scheme]]: Bringing joy to Scheme programming (Andrew Tropin) 
-  - 2023-12-03 Sun 10:15-10:25 - before 11:00 EST - [[emacsconf:parallel][parallel]]: Parallel Text Replacement: Does P = NP? (Lovro, Valentino Picotti) 
-  - 2023-12-03 Sun 10:40-11:00 - before 12:00 EST - [[emacsconf:test][test]]: What I learned by writing test cases for GNU Hyperbole (Mats Lidell) 
-  - 2023-12-03 Sun 10:45-11:05 - before 13:00 EST - [[emacsconf:poltys][poltys]]: The browser in a buffer (Michael Bauer) 
-  - 2023-12-03 Sun 11:20-11:30 - between 11:00-13:00 EST - [[emacsconf:flat][flat]]: A modern Emacs look-and-feel without pain (Pedro A. Aranda) 
-  - 2023-12-03 Sun 11:25-11:45 - before 17:00 EST - [[emacsconf:cubing][cubing]]: Speedcubing in Emacs (Vasilij "wasamasa" Schneidermann) 
-  - 2023-12-03 Sun 12:50-13:00 - before 14:00 EST - [[emacsconf:eat][eat]]: Eat and Eat powered Eshell, fast featureful terminal inside Emacs (Akib Azmain Turja) 
-  - 2023-12-03 Sun 12:50-13:10 - before 14:00 EST - [[emacsconf:gc][gc]]: emacs-gc-stats: Does garbage collection actually slow down Emacs? (Ihor Radchenko) 
-  - 2023-12-03 Sun 13:20-14:00 [[emacsconf:emms][emms]]: Emacs MultiMedia System (EMMS) (Yoni Rabkin) 
-  - 2023-12-03 Sun 13:30-13:40 [[emacsconf:lspocaml][lspocaml]]: Writing a language server in OCaml for Emacs, fun, and profit (Austin Theriault) 
+  - 2023-12-03 Sun 10:10-10:20 - before 11:00 EST - [[emacsconf:parallel][parallel]]: Parallel Text Replacement: Does P = NP? (Lovro, Valentino Picotti) 
+  - 2023-12-03 Sun 10:35-10:45 - before 13:00 EST - [[emacsconf:eat][eat]]: Eat and Eat powered Eshell, fast featureful terminal inside Emacs (Akib Azmain Turja) 
+  - 2023-12-03 Sun 10:35-10:55 - before 12:00 EST - [[emacsconf:test][test]]: What I learned by writing test cases for GNU Hyperbole (Mats Lidell) 
+  - 2023-12-03 Sun 11:00-11:20 - before 13:00 EST - [[emacsconf:poltys][poltys]]: The browser in a buffer (Michael Bauer) 
+  - 2023-12-03 Sun 11:10-11:20 - between 11:00-13:00 EST - [[emacsconf:flat][flat]]: A modern Emacs look-and-feel without pain (Pedro A. Aranda) 
+  - 2023-12-03 Sun 11:35-11:55 - before 17:00 EST - [[emacsconf:cubing][cubing]]: Speedcubing in Emacs (Vasilij "wasamasa" Schneidermann) 
+  - 2023-12-03 Sun 13:00-13:20 - before 14:00 EST - [[emacsconf:gc][gc]]: emacs-gc-stats: Does garbage collection actually slow down Emacs? (Ihor Radchenko) 
+  - 2023-12-03 Sun 13:00-13:40 [[emacsconf:emms][emms]]: Emacs MultiMedia System (EMMS) (Yoni Rabkin) 
+  - 2023-12-03 Sun 13:35-13:45 [[emacsconf:lspocaml][lspocaml]]: Writing a language server in OCaml for Emacs, fun, and profit (Austin Theriault) 
+  - 2023-12-03 Sun 13:55-14:25 [[emacsconf:steno][steno]]: Programming at 200 wpm (Daniel Alejandro Tapia) 
   - 2023-12-03 Sun 14:00-14:40 [[emacsconf:windows][windows]]: Windows into Freedom (Corwin Brust) 
-  - 2023-12-03 Sun 14:20-14:30 [[emacsconf:mentor][mentor]]: Mentoring VS-Coders as an Emacsian (or How to show not tell people about the wonders of Emacs) (Jeremy Friesen) 
+  - 2023-12-03 Sun 14:35-14:45 [[emacsconf:mentor][mentor]]: Mentoring VS-Coders as an Emacsian (or How to show not tell people about the wonders of Emacs) (Jeremy Friesen) 
+  - 2023-12-03 Sun 14:55-15:15 [[emacsconf:emacsconf][emacsconf]]: EmacsConf.org: How we use Org Mode and TRAMP to organize and run a multi-track conference (Sacha Chua) 
   - 2023-12-03 Sun 15:00-15:10 - after 15:00 EST - [[emacsconf:hn][hn]]: The many ways to browse Hacker News from Emacs (Mickael Kerjean) 
-  - 2023-12-03 Sun 15:00-15:20 [[emacsconf:emacsconf][emacsconf]]: EmacsConf.org: How we use Org Mode and TRAMP to organize and run a multi-track conference (Sacha Chua) 
-  - 2023-12-03 Sun 15:30-16:10 - after 15:00 EST - [[emacsconf:web][web]]: Emacs saves the Web (Yuchen Pei) 
-  - 2023-12-03 Sun 15:40-16:10 [[emacsconf:steno][steno]]: Programming at 200 wpm (Daniel Alejandro Tapia) 
-  - 2023-12-03 Sun 16:20-16:40 - no live Q&A - [[emacsconf:emacsen][emacsen]]: The Emacsen family, the design of an Emacs and the importance of Lisp (Fermin) 
-  - 2023-12-03 Sun 16:30-16:50 [[emacsconf:sharing][sharing]]: Sharing Emacs is Caring Emacs: Emacs education and why I embraced video (Jacob Boxerman) 
-  - 2023-12-03 Sun 17:10-17:20 [[emacsconf:sun-close][sun-close]]: Sunday closing remarks
+  - 2023-12-03 Sun 15:25-16:05 - after 15:00 EST - [[emacsconf:web][web]]: Emacs saves the Web (Yuchen Pei) 
+  - 2023-12-03 Sun 15:30-15:50 - no live Q&A - [[emacsconf:emacsen][emacsen]]: The Emacsen family, the design of an Emacs and the importance of Lisp (Fermin) 
+  - 2023-12-03 Sun 16:20-16:40 [[emacsconf:sharing][sharing]]: Sharing Emacs is Caring Emacs: Emacs education and why I embraced video (Jacob Boxerman) 
+  - 2023-12-03 Sun 16:55-17:05 [[emacsconf:sun-close][sun-close]]: Sunday closing remarks
 
 *** Schedule notes
 :PROPERTIES:
@@ -520,7 +550,7 @@ These times are in EST (GMT-5).
 - Legend: dashed line means non-BBB Q&A; light gray means penciled-in talk
 - Saturday on the General track: Org day + misc
   - emacsconf:adventure is the first talk because of availability constraints; would be nice to connect it to emacsconf:solo
-  - emacsconf:uni for teaching, emacsconf:table for grading
+  - emacsconf:uni for teaching, [[emacsconf:teaching]] is also related, and emacsconf:table for grading
   - emacsconf:taming and emacsconf:one both deal with exports in some way. emacsconf:unentangling would be nice to add here, but that one needs to be in the afternoon because of availability constraints.
   - emacsconf:writing is connected to emacsconf:nabokov (blog posts, novel). It's also a little connected to emacsconf:one (exporting a blog).
   - emacsconf:collab and emacsconf:solo are amusing to pair together, but maybe following emacsconf:collab (coordinating with other people who use Org) with emacsconf:woof (Org development coordination) also makes sense and makes it so that [[emacsconf:woof]] isn't too late (Europe/Paris timezone). I put emacsconf:woof on the general track because it's Org-related and could encourage people to help out. Penciled in because bzg isn't sure he'll make it.
@@ -575,6 +605,148 @@ These times are in EST (GMT-5).
     - Sort out access to media.emacsconf.org so that we can get the upload service up and running
   - Draft brief intros for talks, keeping in mind that we're going to say them out loud
   - Speakers will work on videos, and we can help with nudges/coordination if needed
+
+*** TODO Test the idea of three tracks and more aligned times    :decision:
+:PROPERTIES:
+:CUSTOM_ID: three-tracks
+:END:
+
+Compared to [[#draft-schedule][two-track schedule]]:
+#+INCLUDE: schedule.svg export html
+
+What if we have three tracks instead?
+
+Three-track advantages:
+- More space between talks for streaming the Q&A
+- Easier to explain the schedule
+- More logical grouping
+- Ends earlier, which is easier for participants from Europe
+         
+Three-track disadvantages:
+- Needs more volunteers (host, IRC, pad)
+- Needs more computing power (will probably need to spin up another node for VNC+OBS)
+- More fear of missing out for participants
+
+#+begin_src emacs-lisp
+(defun emacsconf-schedule-copy-previous-track (list)
+	(cl-loop
+	 with track = (plist-get (car list) :track)
+	 with track-names = (seq-map (lambda (o) (plist-get o :name)) emacsconf-tracks)
+	 for talk in list
+	 collect
+	 (progn
+		 (when (member (plist-get talk :track) track-names)
+			 (setq track (plist-get talk :track)))
+		 (append (list :track track) talk))))
+#+end_src
+
+#+begin_src emacs-lisp :results value replace :exports results :var filename="schedule-option-aligned-talks.svg" :eval never-export
+(emacsconf-schedule-test
+ filename
+ (emacsconf-schedule-tracks
+	'((:label "Saturday"
+						:start "2023-12-02 9:00"
+						:end "2023-12-02 18:00"
+						:tracks ("A" "B" "C"))
+		(:label "Sunday"
+						:start "2023-12-03 9:00"
+						:end "2023-12-03 18:00"
+						:tracks ("A" "B" "C"))))
+ (emacsconf-time-constraints '())
+ (emacsconf-tracks
+	'((:name "A" :id "a")
+		(:name "B" :id "b")
+		(:name "C" :id "c")))
+ (arranged
+  (emacsconf-schedule-inflate-sexp
+				'(("A Saturday, Dec 2" :start "2023-12-02 09:00" :track "A")
+					(sat-open)
+					adventure
+					(uni :start "9:40")
+					(table :start "10:30")
+					(teaching :start "11:15")
+					(lunch :start "12:00" :time 60)
+					collab
+					(woof :start nil)
+					(solo :start nil)
+					(hn :start "15:00")
+					(web :start nil)
+					sat-close
+					("B Saturday, Dec 2" :start "2023-12-02 09:40" :track "B")
+					(one :start nil)
+					(poltys :start "10:30")
+					(taming :start "11:15")
+					(lunch :start "12:00" :time 60)
+					writing
+					(nabokov :start "13:40")
+					(steno :start "14:20")
+					(emacsen :start "15:30")
+					("C Saturday, Dec 2" :start "2023-12-02 9:40" :track "C")
+					(matplotllm)
+					(voice :start "10:30")
+					(llm :start "11:15")
+					(lunch :start "12:00" :time 60)
+					overlay
+					eval
+					(repl :start "14:20")
+					(emacsconf :start "15:30")
+					("A Sunday, Dec 3" :start "2023-12-03 09:00" :track "A")
+					(sun-open :time 10)
+					hyperamp
+					(koutline :start "10:00")
+					(test :start "11:00")
+					(lunch :start "12:00" :time 60)
+					(emms :start nil)
+					(devel :start "14:00")
+					(mentor :start nil)
+					(sharing :start "15:00")
+					(sun-close :start "16:00")
+					("B Sunday, Dec 3" :start "2023-12-03 09:10" :track "B")
+					(parallel :start "10:00")
+					(eat :start "10:30")
+
+					(gc :start "11:00")
+					(lunch :start "12:00" :time 60)
+					hyperdrive
+					(ref :start "14:00")
+					(unentangling :start "15:00")
+					("C Sunday, Dec 3" :start "2023-12-03 09:10" :track "C")
+
+					(scheme :start "10:00")
+					(lspocaml :start "11:00")
+					(flat :start "11:30")
+
+					(lunch :start "12:00" :time 60)
+					(windows :start nil)
+					(cubing :start "14:00")
+					(extending :start "15:00")
+					
+
+					)))
+ (emacsconf-schedule-break-time 10)
+ (emacsconf-schedule-lunch-time 60)
+ (emacsconf-schedule-default-buffer-minutes 20)
+ (emacsconf-schedule-svg-modify-functions '(emacsconf-schedule-svg-color-by-status))
+ (emacsconf-schedule-default-buffer-minutes-for-live-q-and-a 20)
+ (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))
+ (emacsconf-schedule-strategies
+	'(emacsconf-schedule-copy-previous-track emacsconf-schedule-allocate-buffer-time)))
+#+end_src
+
+#+RESULTS:
+:results:
+:end:
+
+#+begin_comment
+[[file:schedule-option-aligned-talks.svg]]
+#+end_comment
+
+#+INCLUDE: schedule-option-aligned-talks.svg export html
+
 ** Prepare infrastructure
 :PROPERTIES:
 :CUSTOM_ID: check-infra
@@ -670,10 +842,21 @@ Actually recording the introductions can wait until closer to the
 conference because talk titles and Q&A methods can change. We can
 verify speaker name pronunciations at that time.
 
-Decisions to make:
+**** TODO Do we want to use honorifics like Dr.?  :decision:
+:PROPERTIES:
+:CUSTOM_ID: honorifics
+:END:
+
+Consistently using names without honorifics, even if indicated in the
+speaker-submitted intros:
+- Equality
+
+Asking speakers if they want us to use any honorifics in their intro:
+- Observes personal preferences
+
+Using honorifics based on e-mail signatures and intros:
+- Recognizes credentials
 
-- Do we want to use honorifics like Dr.?  
-  
 *** BLOCKED Record intro videos with 1-2 sentence intros for all the talks
 :PROPERTIES:
 :CUSTOM_ID: record-intros
@@ -766,7 +949,6 @@ CLOSED: [2023-09-26 Tue 11:07]
 :CUSTOM_ID: document-volunteer-roles
 :END:
 Copied it over from the previous year
-
 * Progress reports
 :PROPERTIES:
 :CUSTOM_ID: progress
diff --git a/2023/organizers-notebook/schedule-option-aligned-talks.svg b/2023/organizers-notebook/schedule-option-aligned-talks.svg
new file mode 100644
index 00000000..f7a1de0f
--- /dev/null
+++ b/2023/organizers-notebook/schedule-option-aligned-talks.svg
@@ -0,0 +1 @@
+<svg width="800" height="400" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title> Graphical view of the schedule</title> <g transform="translate(0,0)"> <title> Schedule for Saturday</title> <rect width="800" height="200" x="0" y="0" fill="white"></rect> <text font-size="10" fill="black" y="12" x="3"> Saturday</text> <a href="/2023/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"> <title>  9:00- 9:10 Saturday opening remarks</title> <rect x="0" y="15" opacity="0.8" width="15" height="55" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(13,69)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sat-open</text></g></a> <a href="/2023/talks/adventure" title="An Org-Mode based text adventure game for learning the basics of Emacs, inside Emacs, written in Emacs Lisp" data-slug="adventure"> <title>  9:10- 9:20 An Org-Mode based text adventure game for learning the basics of Emacs, inside Emacs, written in Emacs Lisp</title> <rect x="15" y="15" opacity="0.8" width="15" height="55" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(28,69)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> adventure</text></g></a> <a href="/2023/talks/uni" title="Authoring and presenting university courses with Emacs and a full libre software stack" data-slug="uni"> <title>  9:40-10:00 Authoring and presenting university courses with Emacs and a full libre software stack</title> <rect x="62" y="15" opacity="0.8" width="31" height="55" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(91,69)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> uni</text></g></a> <a href="/2023/talks/table" title="Who needs Excel? Managing your students qualifications with org-table" data-slug="table"> <title> 10:30-10:40 Who needs Excel? Managing your students qualifications with org-table</title> <rect x="141" y="15" opacity="0.8" width="15" height="55" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(154,69)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> table</text></g></a> <a href="/2023/talks/teaching" title="Teaching computer and data science with literate programming tools" data-slug="teaching"> <title> 11:15-11:35 Teaching computer and data science with literate programming tools</title> <rect x="211" y="15" opacity="0.8" width="31" height="55" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(240,69)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> teaching</text></g></a> <a href="/2023/talks/collab" title="Collaborative data processing and documenting using org-babel" data-slug="collab"> <title>  1:00- 1:20 Collaborative data processing and documenting using org-babel</title> <rect x="376" y="15" opacity="0.8" width="31" height="55" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(405,69)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> collab</text></g></a> <a href="/2023/talks/woof" title="Watch Over Our Folders" data-slug="woof"> <title>  1:40- 2:00 Watch Over Our Folders</title> <rect x="439" y="15" opacity="0.8" width="31" height="55" stroke="black" stroke-dasharray="" fill="lightgray"></rect> <g transform="translate(468,69)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> woof</text></g></a> <a href="/2023/talks/solo" title="How I play TTRPGs in Emacs" data-slug="solo"> <title>  2:20- 2:40 How I play TTRPGs in Emacs</title> <rect x="501" y="15" opacity="0.8" width="31" height="55" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(530,69)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> solo</text></g></a> <a href="/2023/talks/hn" title="The many ways to browse Hacker News from Emacs" data-slug="hn"> <title>  3:00- 3:10 The many ways to browse Hacker News from Emacs</title> <rect x="564" y="15" opacity="0.8" width="15" height="55" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(577,69)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> hn</text></g></a> <a href="/2023/talks/web" title="Emacs saves the Web" data-slug="web"> <title>  3:30- 4:10 Emacs saves the Web</title> <rect x="611" y="15" opacity="0.8" width="62" height="55" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(671,69)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> web</text></g></a> <a href="/2023/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"> <title>  4:30- 4:40 Saturday closing remarks</title> <rect x="705" y="15" opacity="0.8" width="15" height="55" stroke="black" stroke-dasharray="" fill="green"></rect> <g transform="translate(718,69)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sat-close</text></g></a> <a href="/2023/talks/one" title="one.el: the static site generator for Emacs Lisp Programmers" data-slug="one"> <title>  9:40-10:00 one.el: the static site generator for Emacs Lisp Programmers</title> <rect x="62" y="71" opacity="0.8" width="31" height="55" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(91,125)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> one</text></g></a> <a href="/2023/talks/poltys" title="The browser in a buffer" data-slug="poltys"> <title> 10:30-10:50 The browser in a buffer</title> <rect x="141" y="71" opacity="0.8" width="31" height="55" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(170,125)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> poltys</text></g></a> <a href="/2023/talks/taming" title="Taming things with Org Mode" data-slug="taming"> <title> 11:15-11:25 Taming things with Org Mode</title> <rect x="211" y="71" opacity="0.8" width="15" height="55" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(224,125)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> taming</text></g></a> <a href="/2023/talks/writing" title="Emacs turbo-charges my writing" data-slug="writing"> <title>  1:00- 1:10 Emacs turbo-charges my writing</title> <rect x="376" y="71" opacity="0.8" width="15" height="55" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(389,125)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> writing</text></g></a> <a href="/2023/talks/nabokov" title="Why Nabokov would use Org-Mode if he were writing today" data-slug="nabokov"> <title>  1:40- 1:50 Why Nabokov would use Org-Mode if he were writing today</title> <rect x="439" y="71" opacity="0.8" width="15" height="55" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(452,125)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> nabokov</text></g></a> <a href="/2023/talks/steno" title="Programming at 200 wpm" data-slug="steno"> <title>  2:20- 2:50 Programming at 200 wpm</title> <rect x="501" y="71" opacity="0.8" width="47" height="55" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(546,125)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> steno</text></g></a> <a href="/2023/talks/emacsen" title="The Emacsen family, the design of an Emacs and the importance of Lisp" data-slug="emacsen"> <title>  3:30- 3:50 The Emacsen family, the design of an Emacs and the importance of Lisp</title> <rect x="611" y="71" opacity="0.8" width="31" height="55" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(640,125)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> emacsen</text></g></a> <a href="/2023/talks/matplotllm" title="MatplotLLM, iterative natural language data visualization in org-babel" data-slug="matplotllm"> <title>  9:40- 9:50 MatplotLLM, iterative natural language data visualization in org-babel</title> <rect x="62" y="127" opacity="0.8" width="15" height="55" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(75,181)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> matplotllm</text></g></a> <a href="/2023/talks/voice" title="Improving access to AI-assisted literate programming with voice control" data-slug="voice"> <title> 10:30-10:50 Improving access to AI-assisted literate programming with voice control</title> <rect x="141" y="127" opacity="0.8" width="31" height="55" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(170,181)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> voice</text></g></a> <a href="/2023/talks/llm" title="LLM clients in Emacs, functionality and standardization" data-slug="llm"> <title> 11:15-11:35 LLM clients in Emacs, functionality and standardization</title> <rect x="211" y="127" opacity="0.8" width="31" height="55" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(240,181)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> llm</text></g></a> <a href="/2023/talks/overlay" title="Improving compiler diagnostics with Overlays" data-slug="overlay"> <title>  1:00- 1:20 Improving compiler diagnostics with Overlays</title> <rect x="376" y="127" opacity="0.8" width="31" height="55" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(405,181)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> overlay</text></g></a> <a href="/2023/talks/eval" title="Editor Integrated REPL Driven Development for all languages" data-slug="eval"> <title>  1:40- 1:50 Editor Integrated REPL Driven Development for all languages</title> <rect x="439" y="127" opacity="0.8" width="15" height="55" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(452,181)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> eval</text></g></a> <a href="/2023/talks/repl" title="REPLs in strange places: Lua, LaTeX, LPeg, LPegRex, TikZ" data-slug="repl"> <title>  2:20- 3:00 REPLs in strange places: Lua, LaTeX, LPeg, LPegRex, TikZ</title> <rect x="501" y="127" opacity="0.8" width="62" height="55" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(561,181)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> repl</text></g></a> <a href="/2023/talks/emacsconf" title="EmacsConf.org: How we use Org Mode and TRAMP to organize and run a multi-track conference" data-slug="emacsconf"> <title>  3:30- 3:50 EmacsConf.org: How we use Org Mode and TRAMP to organize and run a multi-track conference</title> <rect x="611" y="127" opacity="0.8" width="31" height="55" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(640,181)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> emacsconf</text></g></a> <g transform="translate(0,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="170"></line> <text fill="black" x="0" y="183" font-size="10" text-anchor="left"> 9 AM</text></g> <g transform="translate(94,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="170"></line> <text fill="black" x="0" y="183" font-size="10" text-anchor="left"> 10 AM</text></g> <g transform="translate(188,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="170"></line> <text fill="black" x="0" y="183" font-size="10" text-anchor="left"> 11 AM</text></g> <g transform="translate(282,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="170"></line> <text fill="black" x="0" y="183" font-size="10" text-anchor="left"> 12 PM</text></g> <g transform="translate(376,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="170"></line> <text fill="black" x="0" y="183" font-size="10" text-anchor="left"> 1 PM</text></g> <g transform="translate(470,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="170"></line> <text fill="black" x="0" y="183" font-size="10" text-anchor="left"> 2 PM</text></g> <g transform="translate(564,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="170"></line> <text fill="black" x="0" y="183" font-size="10" text-anchor="left"> 3 PM</text></g> <g transform="translate(658,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="170"></line> <text fill="black" x="0" y="183" font-size="10" text-anchor="left"> 4 PM</text></g> <g transform="translate(752,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="170"></line> <text fill="black" x="0" y="183" font-size="10" text-anchor="left"> 5 PM</text></g></g> <g transform="translate(0,200)"> <title> Schedule for Sunday</title> <rect width="800" height="200" x="0" y="0" fill="white"></rect> <text font-size="10" fill="black" y="12" x="3"> Sunday</text> <a href="/2023/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"> <title>  9:00- 9:10 Sunday opening remarks</title> <rect x="0" y="15" opacity="0.8" width="15" height="55" stroke="black" stroke-dasharray="" fill="green"></rect> <g transform="translate(13,69)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sun-open</text></g></a> <a href="/2023/talks/hyperamp" title="Top 10 ways Hyperbole amps up Emacs" data-slug="hyperamp"> <title>  9:10- 9:30 Top 10 ways Hyperbole amps up Emacs</title> <rect x="15" y="15" opacity="0.8" width="31" height="55" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(44,69)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> hyperamp</text></g></a> <a href="/2023/talks/koutline" title="Using Koutline for stream of thought journaling" data-slug="koutline"> <title> 10:00-10:20 Using Koutline for stream of thought journaling</title> <rect x="94" y="15" opacity="0.8" width="31" height="55" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(123,69)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> koutline</text></g></a> <a href="/2023/talks/test" title="What I learned by writing test cases for GNU Hyperbole" data-slug="test"> <title> 11:00-11:20 What I learned by writing test cases for GNU Hyperbole</title> <rect x="188" y="15" opacity="0.8" width="31" height="55" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(217,69)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> test</text></g></a> <a href="/2023/talks/emms" title="Emacs MultiMedia System (EMMS)" data-slug="emms"> <title>  1:00- 1:40 Emacs MultiMedia System (EMMS)</title> <rect x="376" y="15" opacity="0.8" width="62" height="55" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(436,69)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> emms</text></g></a> <a href="/2023/talks/devel" title="Emacs development updates" data-slug="devel"> <title>  2:00- 2:10 Emacs development updates</title> <rect x="470" y="15" opacity="0.8" width="15" height="55" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(483,69)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> devel</text></g></a> <a href="/2023/talks/mentor" title="Mentoring VS-Coders as an Emacsian (or How to show not tell people about the wonders of Emacs)" data-slug="mentor"> <title>  2:30- 2:40 Mentoring VS-Coders as an Emacsian (or How to show not tell people about the wonders of Emacs)</title> <rect x="517" y="15" opacity="0.8" width="15" height="55" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(530,69)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> mentor</text></g></a> <a href="/2023/talks/sharing" title="Sharing Emacs is Caring Emacs: Emacs education and why I embraced video" data-slug="sharing"> <title>  3:00- 3:20 Sharing Emacs is Caring Emacs: Emacs education and why I embraced video</title> <rect x="564" y="15" opacity="0.8" width="31" height="55" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(593,69)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sharing</text></g></a> <a href="/2023/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"> <title>  4:00- 4:10 Sunday closing remarks</title> <rect x="658" y="15" opacity="0.8" width="15" height="55" stroke="black" stroke-dasharray="" fill="green"></rect> <g transform="translate(671,69)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sun-close</text></g></a> <a href="/2023/talks/parallel" title="Parallel Text Replacement: Does P = NP?" data-slug="parallel"> <title> 10:00-10:10 Parallel Text Replacement: Does P = NP?</title> <rect x="94" y="71" opacity="0.8" width="15" height="55" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(107,125)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> parallel</text></g></a> <a href="/2023/talks/eat" title="Eat and Eat powered Eshell, fast featureful terminal inside Emacs" data-slug="eat"> <title> 10:30-10:40 Eat and Eat powered Eshell, fast featureful terminal inside Emacs</title> <rect x="141" y="71" opacity="0.8" width="15" height="55" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(154,125)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> eat</text></g></a> <a href="/2023/talks/gc" title="emacs-gc-stats: Does garbage collection actually slow down Emacs?" data-slug="gc"> <title> 11:00-11:20 emacs-gc-stats: Does garbage collection actually slow down Emacs?</title> <rect x="188" y="71" opacity="0.8" width="31" height="55" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(217,125)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> gc</text></g></a> <a href="/2023/talks/hyperdrive" title="hyperdrive.el: Peer-to-peer filesystem in Emacs" data-slug="hyperdrive"> <title>  1:00- 1:40 hyperdrive.el: Peer-to-peer filesystem in Emacs</title> <rect x="376" y="71" opacity="0.8" width="62" height="55" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(436,125)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> hyperdrive</text></g></a> <a href="/2023/talks/ref" title="Org-Mode workflow: informal reference tracking" data-slug="ref"> <title>  2:00- 2:20 Org-Mode workflow: informal reference tracking</title> <rect x="470" y="71" opacity="0.8" width="31" height="55" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(499,125)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> ref</text></g></a> <a href="/2023/talks/unentangling" title="(Un)entangling projects and repos" data-slug="unentangling"> <title>  3:00- 3:10 (Un)entangling projects and repos</title> <rect x="564" y="71" opacity="0.8" width="15" height="55" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(577,125)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> unentangling</text></g></a> <a href="/2023/talks/scheme" title="Bringing joy to Scheme programming" data-slug="scheme"> <title> 10:00-10:20 Bringing joy to Scheme programming</title> <rect x="94" y="127" opacity="0.8" width="31" height="55" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(123,181)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> scheme</text></g></a> <a href="/2023/talks/lspocaml" title="Writing a language server in OCaml for Emacs, fun, and profit" data-slug="lspocaml"> <title> 11:00-11:10 Writing a language server in OCaml for Emacs, fun, and profit</title> <rect x="188" y="127" opacity="0.8" width="15" height="55" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(201,181)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> lspocaml</text></g></a> <a href="/2023/talks/flat" title="A modern Emacs look-and-feel without pain" data-slug="flat"> <title> 11:30-11:40 A modern Emacs look-and-feel without pain</title> <rect x="235" y="127" opacity="0.8" width="15" height="55" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(248,181)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> flat</text></g></a> <a href="/2023/talks/windows" title="Windows into Freedom" data-slug="windows"> <title>  1:00- 1:40 Windows into Freedom</title> <rect x="376" y="127" opacity="0.8" width="62" height="55" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(436,181)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> windows</text></g></a> <a href="/2023/talks/cubing" title="Speedcubing in Emacs" data-slug="cubing"> <title>  2:00- 2:20 Speedcubing in Emacs</title> <rect x="470" y="127" opacity="0.8" width="31" height="55" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(499,181)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> cubing</text></g></a> <a href="/2023/talks/extending" title="GNU Emacs for electronics, note-taking, and as lightweight IDE" data-slug="extending"> <title>  3:00- 3:20 GNU Emacs for electronics, note-taking, and as lightweight IDE</title> <rect x="564" y="127" opacity="0.8" width="31" height="55" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(593,181)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> extending</text></g></a> <g transform="translate(0,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="170"></line> <text fill="black" x="0" y="183" font-size="10" text-anchor="left"> 9 AM</text></g> <g transform="translate(94,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="170"></line> <text fill="black" x="0" y="183" font-size="10" text-anchor="left"> 10 AM</text></g> <g transform="translate(188,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="170"></line> <text fill="black" x="0" y="183" font-size="10" text-anchor="left"> 11 AM</text></g> <g transform="translate(282,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="170"></line> <text fill="black" x="0" y="183" font-size="10" text-anchor="left"> 12 PM</text></g> <g transform="translate(376,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="170"></line> <text fill="black" x="0" y="183" font-size="10" text-anchor="left"> 1 PM</text></g> <g transform="translate(470,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="170"></line> <text fill="black" x="0" y="183" font-size="10" text-anchor="left"> 2 PM</text></g> <g transform="translate(564,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="170"></line> <text fill="black" x="0" y="183" font-size="10" text-anchor="left"> 3 PM</text></g> <g transform="translate(658,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="170"></line> <text fill="black" x="0" y="183" font-size="10" text-anchor="left"> 4 PM</text></g> <g transform="translate(752,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="170"></line> <text fill="black" x="0" y="183" font-size="10" text-anchor="left"> 5 PM</text></g></g></svg>
\ No newline at end of file
-- 
cgit v1.2.3