summaryrefslogblamecommitdiffstats
path: root/2023/organizers-notebook/index.org
blob: bde88ba6d6855957800e2b6a349dc5574e44c400 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
                                                                     









                                                                                                           
                                                                                                                                                                                                                                                  

            
                  

          


                    
 
 
                                                                  
                                                                  
                                                                  



                                                                  




                                       
 

                           


                   
 
        
            
                  
     

                              


               



                                                           
                  
 

                                                                






























                                                                      
                  










































































                                                                          



                                                                                                       




                                                                                                 
 

                              


                       





                                                                                                                               




                                                                           

                           

                              


                              










                                                                                                                                                             
                                                                                                




                           



                                                   




                                                                      














                                                                                                                                               
                                                                                                                                               

                                                                                                                                               
                                                                                                                                               


                                                                                                                                               



                                                                





































                                                                                                                                  
                                                                

                                                                
 






                                                                     



                                                                   
     





                                                                                                                                         




                                            

                                                                                                



                                                                                                       
                
                 

                                                                                                             
                                                       
 
                 


                          
 


































                                                                                                    
                                              
                                                               
                                            

                                                    









                                                                                         
                                                                         
                                                                        




                                                                                       
                                              


                                                            
                                                               













                                                                                       

                                                                      






















                                                                                                                                                                

               
 

                                                                          
                                                                                                                            
                                                           
                                                                                                                                                                                                           







                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
                                                                                                 
                                                                                               
                                                                                                                                                                                                                         
                                                                                                                                


                                                                                                                                                                                                                                                                                                                                                                                                                      










                                                                                                                                                                                                                                                                                                                                                                     


                                                                                                                                                                                                                                                       


                                                                                                                       
                                                      
  



                                                                         
                                                                                                













                                                                                                                                                                                                                                    
 
                                 


                                                                                                                                                                                                                         
                                                                                                                                                                                                                          





                                                                                                                                                                                                                       
                                                                                                                                                                                                                       
                                                                                                                                                                                                                       


                                                                                                                                                                                                                      
                                                                                                                                                                                                                    






                                                                                                                                                                                                                            



                                                                                                                                                                                                                         
                                                                                                                                                                                                                      
                                                                                                                                                                                                                        
                                                                                                                                                                                                                        
                                                                                                                                                                                                                      
                                                                                                                                                                                                                    
                                                                                                                                                                                                                      
                                                                                                                                                                                                                   
                                                                                                                                                                                                                  
                                                                                                                                                                                                                          

                                                                                                                                                                                                                       
                                                                                                                                                                                                                      


                                                                                                                                                                                                                         
                                                                                                                                                                                                                    

                                                                                                                                                                                                                         


 
                  


                     
         


                  


                 
                           






                                                                        


                      
            


                           

























                                                                          
                               






                                                                      
 









                                                                        
 




                                                                   
 




                   
# [[elisp:(org-md-export-to-markdown)][Export this file to Markdown]]
#+todo: TODO(t) SOMEDAY STARTED INPROGRESS(i) WAITING(w) STANDBY(s) BLOCKED(b) | DONE(x) CANCELLED(c)
#+OPTIONS: h:6 toc:nil num:nil ':t
#+PROPERTY: header-args    :results silent :exports code :tangle yes
#+EXPORT_FILE_NAME: ../organizers-notebook.md
#+PROPERTY: QUANTIFIED Emacs

#+begin_export md
<!-- organizers-notebook.md is exported from organizers-notebook/index.org, please modify that instead. -->
[[!sidebar content=""]]

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

#+TOC: headlines 2

* Timeline
:PROPERTIES:
:CUSTOM_ID: timeline
:END:


| CFP                       | [2023-06-26 Mon]                   |
| 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]                   |
| EmacsConf                 | [2023-12-02 Sat], [2023-12-03 Sun] |

Last year, these were the actual dates:
- July 17: CFP sent
- Sept 18: Original CFP deadline
- Sept 30: CFP closed after extension
- Oct 1: acceptances sent

** TODO Dry run
SCHEDULED: <2023-10-28 Sat>
:PROPERTIES:
:CUSTOM_ID: dry-run
:END:

* Phases
:PROPERTIES:
:CUSTOM_ID: phases
:END:
** DONE Draft CFP
CLOSED: [2023-09-22 Fri 09:49]
:PROPERTIES:
:CUSTOM_ID: cfp
:END:
*** How to mark pages as drafts

Put inside double square brackets: =!template id=pagedraft=

*** Considerations

We could see if there are parts of the CFP that we can remove or
postpone. Here are some thoughts:

- We might not need the 10+20+40 structure in the proposal. We did
  that before because people tend to propose longer talks, and we had
  to do lots of e-mail coordination in order to squeeze everything
  into one track. If we're doing multiple streams, there's less time
  pressure, so we might not need to confuse people with those
  requirements. I think it would still be good to nudge people towards
  20 minutes for their prerecorded presentations (separate time for
  Q&A) instead of 40 minutes, because it's good for people's attention
  spans. As an incentive to consider a 5-10 minute talk, we can say
  that 5-10 minute videos can be played extra times during the
  conference to fill gaps.
  - Choices:
    - Keep the 10+20+40 structure so that people who want to propose
      longer talks are nudged to think about shorter versions
    - Strongly nudge people towards 20-minute talks, with repeats as
      the incentive for shorter talks and extra coordination/waiting
      needed for longer talks. People propose just the talk length
      they want (and can optionally propose other talk lengths if they
      want to be considered for them).
- We added emergency contact info, public contact info, pronouns, and
  introduction to the submission form because we ended up going back
  and forth with people in previous years, and sometimes we had
  incomplete info and were panicking about how to reach people during
  the conference. We could drop this from the submission form and do a
  separate speaker information form.
  - Choices:
    - Talk submission, then speaker information form: less
      intimidating for speakers
    - Everything in one: easier for organizers
 
*** Previous years

- Ask for public e-mail or contact information, IRC handle in CFP
  - Added to submit page.
- Be even more stringent about the 10/20/40-min splits. A lot of
  speakers still default to the 20- or 40-min formats without
  providing us shorter formats, and that puts strain on our schedule
  and requires us to use a different template for the notification
  (which can be confusing). We need to stress that not respecting the
  format makes it harder not only for the organizers, but also for the
  speakers themselves (since they will have to rethink their
  presentation). Maybe we can have an e-mail template for a quick
  reply that says something like "Just in case we need to squeeze
  talks into shorter times, could you please also propose an outline
  for a possible 10-minute talk that could get people interested in
  your topic and point them to where they can find out more?"
  - sachac: I'd love to experiment with rolling acceptances. If people
    have a good 10-20 minute version of their talk and we want to
    accept it in the program, it would be nice to be able to say yes
    early so that they can start working on it. We can work with any
    duplication of content in later proposals.
- Two people is the sweet number of reviewers to have for the
  proposals before sending the notifications, and there’d be
  diminishing returns with more. Two is enough to release the pressure
  on SCHED, verify the metadata (esp. speaker availability), and
  suggest a different ordering where appropriate. It can take a long
  time to comb through the proposals (roughly 10 proposals per hour),
  and whilst it’d be difficult to justify more in-depth reviewers,
  other orgas can do a shallow-pass to catch red-flags or discuss the
  submissions as they come in. Other organizers can always chime in on
  topics they particularly care about so that their encouraging
  comments or suggestions can be included in the acceptance e-mail.
  - sachac: Who wants to help me with this?
- We extended CFP-end by two weeks this year, but that made it coincide
  with speaker-notifs, and that’s awkward.  Next time, we should only
  extend the CFP by one week to avoid having to scramble with the
  schedule until the very last day.
  - Proposed dates in https://emacsconf.org/2023/cfp/ have similar
    spacing, so yeah, we'll want to extend by only one week.
- Some people assume that they have to suggest longer formats even if
  they intend their talks to be 10′ or 20′.  We should change the
  wording on the CFP to ask them to only provide alternatives for
  shorter formats, not longer.
  - Added a brief note to CFP.
- It was hard to squeeze all the org/hyperbole talk on day-1.
  Generally, the people who submit these kinds of talk come from all
  over the world, and US mornings are more accommodating than US
  evenings when it comes to timezones.  We might consider having two org
  *mornings* rather than an org *day*; it would give us more flexibility
  with those talks.
  - Let's see if we can do two streams again. That was fun.
- We’re starting to reach critical mass on the org-talks.  We might want
  to consider splitting the org-talks and the dev-talks into two
  distinct events to allow them to grow independently.
  - Let's see if we can do two streams again. That was fun.
- We should associate time-of-day with CFP-deadline; otherwise, the
  scheduler has to be on edge until the very end of the day.  It’s worse
  this year because we made CFP-end coincide with speaker-notif, so this
  might not be as much of a problem next year.
  - If we do rolling acceptances and we extend by at most one week
    instead of two, this should be fine.
- It’s easier for us to extend beyond 5pm than to go before 9am
  (especially for the West coast).  Extending beyond 5pm puts strain on
  European organizers and volunteers, though.
  - Time pressure should be alleviated with multiple streams.
- Sometimes, ikiwiki on front0 took a lot of time to process the new
  commits.  sachac assumed this is due to a faulty regex parsing.  We
  should be able to find out more by looking at the logs from ikiwiki
  after a slow commit.
  - Seems speedy at the moment.
- Ask for preferred timezone in CFP
  - Added to availability.
- Check with John Wiegley re: schedule - we always happen to coincide
  with his work trips
  - I checked with him and the people at his work don't have a schedule
    yet, so we should go ahead and plan
*** Lessons learned for next year

- Maybe incentivize proper timezone specification by saying we can translate times to their local time?
- Make sure to include cfp.org as an attachment instead of inline
*** Other thoughts
- sachac: bandali likes having the commitment to freedom section in the CFP as a form of activism
- sachac: I thought about pulling the deadline back to Sept 1, but it might be
	good to keep it at Sept 14 so that anyone who tends to work with the
	schoolyear can still have a little time to work on it.  

** DONE Distribute CFP
CLOSED: [2023-09-22 Fri 09:50]
:PROPERTIES:
:CUSTOM_ID: distrib-cfp
:END:
*** DONE Add proposal review volunteers to emacsconf-submit
CLOSED: [2023-06-25 Sun 19:35]
- https://lists.gnu.org/mailman/admin/emacsconf-submit/members/add
- Ask volunteers to e-mail an SSH public key so they can be added via the gitolite-admin repo to the conf.org repo for the year
*** First announcement
SCHEDULED: <2023-06-26 Mon>
- Remove draft tags                                       :sachac:
- Post on emacsconf-discuss, emacs-tangents               :bandali: :zaeph:
- Sticky on reddit.com/r/emacs
- Post in Emacs News                                           :sachac:

*** Reminder 
SCHEDULED: <2023-09-01 Fri>
** DONE Process submissions
CLOSED: [2023-09-22 Fri 09:50]
:PROPERTIES:
:CUSTOM_ID: submission-process
:END:

- Proposal received: sachac adds it to this document with status of PROPOSED
  - Fields:
    #+begin_example
    EMERGENCY, Q_AND_A, AVAILABILITY, NAME, PRONOUNS, TIME, MIN_TIME, MAX_TIME, SLUG, EMAIL, NAME_SHORT, CUSTOM_ID, TRACK, TIMEZONE, CATEGORY, DATE_SUBMITTED
    #+end_example
- jc doublechecks that the data has been correctly captured (especially EMAIL and AVAILABILITY)
- People review it (sachac, jc, etc.) and weigh in
- Proposal accepted: sachac e-mails the speaker and sets status to WAITING_FOR_EMAIL_CONFIRM
- E-mail confirmation received: log it in the logbook
- Schedule set: sachac e-mails the speaker and sets status to WAITING_FOR_SCHED_CONFIRM
*** 2023-08-14 EmacsConf 2023 CFP progress report (8 talks accepted so far, 1 to review, 6 todo)
SCHEDULED: <2023-08-14 Mon>
:PROPERTIES:
:CUSTOM_ID: cfp-progress
:END:

#+begin_comment
https://emacsconf.org/blog/2023-08-14-cfp-progress/
#+end_comment

The end of the EmacsConf 2023 call for participation is one month away
(Sept 14; https://emacsconf.org/2023/cfp/). Whee! So far, we've sent
early acceptances to the following talks and added them to the program
on the wiki (https://emacsconf.org/2023/talks):

#+begin_src emacs-lisp :results replace table :exports results
(append
 '(("Duration" "Title" "Speaker"))
 (mapcar (lambda (o)
					 (list (plist-get o :duration)
								 (plist-get o :title)
								 (plist-get o :speakers)))
				 (seq-filter (lambda (o) (string= (plist-get o :status) "WAITING_FOR_PREREC")) (emacsconf-get-talk-info))))
#+end_src

#+RESULTS:
:results:
| Duration | Title                                                                                                       | Speaker            |
|       10 | An Org-Mode based text adventure game for learning the basics of Emacs, inside Emacs, written in Emacs Lisp | Chung-hong Chan    |
|       20 | Authoring and presenting university courses with Emacs and a full libre software stack                      | James Howell       |
|       20 | Org-Mode workflow: informal reference tracking                                                              | Christopher Howard |
|       20 | GNU Emacs for electronics, note-taking, and as lightweight IDE                                              | Anand Tamariya     |
|       10 | A modern Emacs look-and-feel without pain                                                                   | Pedro A. Aranda    |
|       10 | Writing a language server in OCaml for Emacs, fun, and profit                                               | Austin Theriault   |
|       20 | LLM clients in Emacs, functionality and standardization                                                     | Andrew Hyatt       |
|       10 | The many ways to browse Hacker News from Emacs                                                              | Mickael Kerjean    |
:end:

We sent the speakers https://emacsconf.org/2023/prepare/ in case
anyone wants to get started on their presentations.

There's one talk that's waiting for feedback on the emacsconf-submit
before we send the early acceptance in about a week:

#+begin_src emacs-lisp :results replace table :exports results
(append
 '(("Duration" "Title" "Speaker"))
 (mapcar (lambda (o)
					 (list (plist-get o :duration)
								 (plist-get o :title)
								 (plist-get o :speakers)))
				 (seq-filter (lambda (o) (string= (plist-get o :status) "TO_REVIEW")) (emacsconf-get-talk-info))))
#+end_src

#+RESULTS:
:results:
| Duration | Title                                                        | Speaker    |
|       20 | one.el: the static site generator for Emacs Lisp Programmers | Tony Aldon |
:end:

There are several talk proposals that are in progress (need to
coordinate, don't have speaker releases / full details / etc.):

#+begin_src emacs-lisp :results replace table :exports results
(append
 '(("Title" "Speaker"))
 (mapcar (lambda (o)
					 (list (plist-get o :title)
								 (plist-get o :speakers)))
				 (seq-filter (lambda (o) (string= (plist-get o :status) "TODO")) (emacsconf-get-talk-info))))
#+end_src

#+RESULTS:
:results:
| Title                                       | Speaker        |
| Emacs MultiMedia System (EMMS)              | Yoni Rabkin    |
| Emacs development updates                   | John Wiegley   |
| Watch Over Our Folders                      | Bastien Guerry |
| Emacs community information sharing?        | Jake B         |
| Emacs saves the Web                         | Yuchen Pei     |
| How to build an Emacs 2: Revenge of the Lem | Fermin         |
:end:

This time last year, we had 2 proposals, with most of the proposals
coming in at the end of the CFP. This was usually when we started
panicking about not having lots of proposals, but I think we can skip
stressing about it this year. <laugh> Even with the program as it is
now, we'd already have a pretty fun EmacsConf. Can't wait to see what
it'll look like when more people get their proposals in!

bandali, maybe we can do a 1-month and/or 2-week reminder about the
CFP deadline? I'd like to see if we can get away without officially
extending the CFP this time.

Sacha
*** Lessons learned  :lessons:
- Early acceptances are nice. A few got comments within the 1-week period.
- It's a good idea to send the review and acceptance e-mails even to fellow organizers/volunteers, even if they helped write the page. =)
- I added some more automation for including a template in a mail reply
- We successfully didn't panic about submissions, yay! It was nice to be able to draft schedules as we went along.
    
** 2023-09-22 EmacsConf 2023 progress report
:PROPERTIES:
:CUSTOM_ID: 2023-09-22
:END:

- 42 talks accepted so far, whee!
- 3 talks penciled in (woof, emms, devel) - we'll save time for them in the schedule, no worries
- doublecheck:
  - all proposals responded to? https://lists.gnu.org/mailman/private/emacsconf-submit/2023/thread.html
    (everything accepted except for Noah's talk, which she cancelled)
  - availability correctly captured?
- draft schedule
- lessons learned
- next steps:
  - start coordinating with speakers regarding draft schedule, wishlist of any talks they want to attend live
  - coordinating with FSF regarding media.emacsconf.org

** Draft schedule
:PROPERTIES:
:CUSTOM_ID: draft-schedule
:END:

#+begin_src emacs-lisp :results value replace :exports none
(require 'emacsconf)
(require 'emacsconf-schedule)
(setq emacsconf-schedule-tracks
			'((:label "Saturday"
								:start "2023-12-02 9:00"
								:end "2023-12-02 18:00"
								:tracks ("General" "Development"))
				(:label "Sunday"
								:start "2023-12-03 9:00"
								: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-break-time 10)
			(emacsconf-schedule-lunch-time 60)
			(emacsconf-use-absolute-url t)
			(emacsconf-schedule-max-time 30)
			(emacsconf-schedule-strategies '(emacsconf-schedule-allocate-buffer-time))
			(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 2" :start "2023-12-02 09:00")
					sat-open
					adventure
					uni
					table
					taming 
					one
					lunch
					writing
					nabokov 
					collab
					(woof :track "General")
					solo
					ref
					unentangling
					(devel :track "General") 
					(sat-close)
					("DEV Saturday, Dec 2" :start "2023-12-02 10:00")
					(matplotllm :track "Development")
					(voice :track "Development")
					(llm :track "Development")
					lunch
					(overlay :start "12:50")
					(eval)
					(repl)
					(hyperdrive :track "Development")
					(extending :track "Development")
					("GEN Sunday, Dec 3" :start "2023-12-03 09:00")
					sun-open
					hyperamp
					koutline
					(parallel :track "General")
					poltys
					cubing
					lunch
					(eat :start "12:50")
					(emms :track "General")
					mentor
					(hn :start "15:00")
					web
					sharing
					sun-close
					("DEV Sunday, Dec 3" :start "2023-12-03 10:00")
					scheme
					lspocaml
					test
					lunch
					(gc :start "12:50")
					(flat :track "Development")
					(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)))
	(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 "schedule.svg" (file-name-directory emacsconf-org-file))
			(svg-print (emacsconf-schedule-svg 800 200 emacsconf-schedule-draft)))
		(with-temp-file (expand-file-name "schedule.svg" (expand-file-name "organizers-notebook" (expand-file-name emacsconf-year emacsconf-directory)))
			(svg-print (emacsconf-schedule-svg 800 200 emacsconf-schedule-draft))))
		(clear-image-cache)))
#+end_src

#+RESULTS:
:results:
:end:

#+begin_comment

[[file:schedule.svg]]
#+end_comment

#+INCLUDE: schedule.svg export html

Schedule notes:

- 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: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.
  - [[emacsconf:unentangling]] is also Org-related.
  - [[emacsconf:devel]] is probably good to share with everyone.
- Saturday morning Development track: large language models, AI. Has to be morning because of emacsconf:matplotllm. emacsconf:llm is about general interfaces, so we can put that last. Could have a general LLM discussion after the talks. Can't swap it with Sunday morning because [[emacsconf:test]] should stick with [[emacsconf:hyperamp]] and emacsconf:koutline (Hyperbole talks), and the Hyperbole talks won't fit into Saturday morning
- Saturday afternoon, developer track: REPLs, misc talks
  - start off with developer tweaks: emacsconf:overlay (compilation), and then emacsconf:eval and emacsconf:repl are paired together
  - emacsconf:hyperdrive: adding another file protocol?
  - [[emacsconf:extending]] might just be replays of demos + Q&A session if people are interested
- Sunday morning gen: Hyperbole (gen track, then crossing over to dev for testing) + misc talks
  - Hyperbole mini-track is in the morning because of [[emacsconf:test]]'s availability constraints; emacsconf:hyperamp and emacsconf:koutline go before it. Try to avoid conflicts so they can attend each other's talks
  - Sunday morning after emacsconf:test could be a fun extended "let's write tests together" session if someone wants to lead it
  - emacsconf:parallel needs to go in the morning. Might be okay to include in the general talk.
  - emacsconf:poltys and emacsconf:cubing aren't related to Hyperbole, but we need to fit them into the schedule somewhere. It would be nice to connect emacsconf:poltys (talking to web browsers from Emacs) to emacsconf:web (doing web stuff in Emacs instead), but emacsconf:poltys needs to be in the morning (which is pretty full) and emacsconf:web is in the afternoon because Yuchen is in Australia/Sydney.
  - emacsconf:cubing can be something fun to transition to lunch, then.
- Sunday afternoon gen: misc talks, community
  - emacsconf:eat is about shells and running commands, so it's generally useful
  - [[emacsconf:emms]] is a user+dev talk
  - community theme (emacsconf:mentor, emacsconf:hn, emacsconf:sharing), with an aside for [[emacsconf:web]] (using Emacs as a client for stuff). [[emacsconf:sharing]] is possible closing keynote - encourage people to go out and explore/share all year? If not, emacsconf:web could be good for a closing talk - encouraging people to use Emacs for more stuff.
- Sunday dev: misc dev talks
  - Morning:
    - emacsconf:scheme, emacsconf:lspocaml
    - emacsconf:test is related to the Hyperbole talks emacsconf:hyperamp and emacsconf:koutline
  - Afternoon:
    - emacsconf:gc, emacsconf:flat, emacsconf:windows, emacsconf:emacsconf, emacsconf:steno 
    - emacsconf:emacsen is more high-level and can talk about other editors
- checking with emacsconf:web and emacsconf:hn if ~3pm Sunday afternoon (~7am local time) is okay with them. It would be nice to pair it with emacsconf:hn, which is nice to pair with emacsconf:mentor, but maybe I can move it to Saturday afternoon.
- if the talks get cancelled, we can have an open meetup possibly with
  breakout rooms
- coordination notes:
  - TODO emacsconf:repl, emacsconf:eval
  - emacsconf:hyperamp, emacsconf:koutline, and emacsconf:test are all in touch because they work on Hyperbole together
  - [[emacsconf:unentangling]], [[emacsconf:taming]]? 
  
    #+NAME: draft-schedule-table
    #+begin_src emacs-lisp :results raw replace :exports results  :eval t
  (string-join
   (seq-keep (lambda (o) (when (plist-get o :slug)
												
												  (concat "| "
												   (replace-regexp-in-string "[<>]" ""
																									   (plist-get o :scheduled))
												   " | "
												   (format "[[emacsconf:%s][%s]]"
																   (plist-get o :slug)
																   (plist-get o :slug))
												   " | "
												   (plist-get o :title)
												   " | "
												   (plist-get o :speakers)
												   "|")))
					  (sort emacsconf-schedule-draft (lambda (a b) (string< (plist-get a :scheduled) (plist-get b :scheduled))))) "\n")
  #+end_src

  #+RESULTS: draft-schedule-table
| 2023-12-02 Sat 09:00-09:10 | [[emacsconf:sat-open][sat-open]]     | Saturday opening remarks                                                                                    |                                    |
| 2023-12-02 Sat 09:10-09:20 | [[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 | [[emacsconf:matplotllm][matplotllm]]   | MatplotLLM, iterative natural language data visualization in org-babel                                      | Abhinav Tushar                     |
| 2023-12-02 Sat 10:10-10:20 | [[emacsconf:table][table]]        | Who needs Excel? Managing your students qualifications with org-table                                       | Daniel Molina                      |
| 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 | [[emacsconf:taming][taming]]       | Taming things with Org Mode                                                                                 | Gergely Nagy (algernon)            |
| 2023-12-02 Sat 11:00-11:20 | [[emacsconf:llm][llm]]          | LLM clients in Emacs, functionality and standardization                                                     | Andrew Hyatt                       |
| 2023-12-02 Sat 11:10-11:30 | [[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 | [[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 13:50-14:10 | [[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 | [[emacsconf:solo][solo]]         | How I play TTRPGs in Emacs                                                                                  | Howard Abrams                      |
| 2023-12-02 Sat 14:50-15:10 | [[emacsconf:extending][extending]]    | GNU Emacs for electronics, note-taking, and as lightweight IDE                                              | Anand Tamariya                     |
| 2023-12-02 Sat 15:00-15:20 | [[emacsconf:ref][ref]]          | Org-Mode workflow: informal reference tracking                                                              | Christopher Howard                 |
| 2023-12-02 Sat 15:30-15:40 | [[emacsconf:unentangling][unentangling]] | (Un)entangling projects and repos                                                                           | Alexey Bochkarev                   |
| 2023-12-02 Sat 15:30-15:50 | [[emacsconf:steno][steno]]        | Programming at 200 wpm                                                                                      | Daniel Alejandro Tapia             |
| 2023-12-02 Sat 15:50-16:10 | [[emacsconf:woof][woof]]         | Watch Over Our Folders                                                                                      | Bastien Guerry                     |
| 2023-12-02 Sat 16:00-16:20 | [[emacsconf:emacsen][emacsen]]      | The Emacsen family, the design of an Emacs and the importance of Lisp                                       | Fermin                             |
| 2023-12-02 Sat 16:30-16:40 | [[emacsconf:devel][devel]]        | Emacs development updates                                                                                   | John Wiegley                       |
| 2023-12-02 Sat 17:00-17:10 | [[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 | [[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 10:00-10:20 | [[emacsconf:scheme][scheme]]       | Bringing joy to Scheme programming                                                                          | Andrew Tropin                      |
| 2023-12-03 Sun 10:15-10:25 | [[emacsconf:parallel][parallel]]     | Parallel Text Replacement: Does P = NP?                                                                     | Lovro, Valentino Picotti           |
| 2023-12-03 Sun 10:40-10:50 | [[emacsconf:lspocaml][lspocaml]]     | Writing a language server in OCaml for Emacs, fun, and profit                                               | Austin Theriault                   |
| 2023-12-03 Sun 10:45-11:05 | [[emacsconf:poltys][poltys]]       | The browser in a buffer                                                                                     | Michael Bauer                      |
| 2023-12-03 Sun 11:10-11:30 | [[emacsconf:test][test]]         | What I learned by writing test cases for GNU Hyperbole                                                      | Mats Lidell                        |
| 2023-12-03 Sun 11:25-11:45 | [[emacsconf:cubing][cubing]]       | Speedcubing in Emacs                                                                                        | Vasilij "wasamasa" Schneidermann   |
| 2023-12-03 Sun 12:50-13:00 | [[emacsconf:eat][eat]]          | Eat and Eat powered Eshell, fast featureful terminal inside Emacs                                           | Akib Azmain Turja                  |
| 2023-12-03 Sun 12:50-13:10 | [[emacsconf:gc][gc]]           | emacs-gc-stats: Does garbage collection actually slow down Emacs?                                           | Ihor Radchenko                     |
| 2023-12-03 Sun 13:20-14:00 | [[emacsconf:hyperdrive][hyperdrive]]   | hyperdrive.el: Peer-to-peer filesystem in Emacs                                                             | Joseph Turner                      |
| 2023-12-03 Sun 13:30-13:40 | [[emacsconf:flat][flat]]         | A modern Emacs look-and-feel without pain                                                                   | Pedro A. Aranda                    |
| 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 15:00-15:10 | [[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:20-16:00 | [[emacsconf:web][web]]          | Emacs saves the Web                                                                                         | Yuchen Pei                         |
| 2023-12-03 Sun 15:40-16:20 | [[emacsconf:emms][emms]]         | Emacs MultiMedia System (EMMS)                                                                              | Yoni Rabkin                        |
| 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 17:00-17:10 | [[emacsconf:sun-close][sun-close]]    | Sunday closing remarks                                                                                      |                                    |



* E-mail templates
:PROPERTIES:
:CUSTOM_ID: templates
:END:
** Review
:PROPERTIES:
:CUSTOM_ID: review
:END:
*** Template
:PROPERTIES:
:EMAIL_ID: review
:CUSTOM_ID: review-template
:END:

Thanks for submitting your proposal! (ZZZ: feedback) We're experimenting
with early acceptance this year, so we'll wait a week in case the
other volunteers want to chime in regarding your talk. =)

** Acceptance
:PROPERTIES:
:CUSTOM_ID: acceptance
:END:
*** Function
:PROPERTIES:
:CUSTOM_ID: acceptance-func
:END:
#+begin_src emacs-lisp
(defun emacsconf-mail-accept-talk (talk &optional template)
  (interactive (list (emacsconf-complete-talk-info)))
  (emacsconf-mail-prepare
   (or template (emacsconf-mail-merge-get-template "acceptance"))
   (plist-get talk :email)
   (list
   :title (plist-get talk :title)
   :email (plist-get talk :email)
   :time (plist-get talk :time)
	 :conf-name emacsconf-name
   :speakers-short (plist-get talk :speakers-short)
   :url (concat emacsconf-base-url (plist-get talk :url))
	 :video-target-date emacsconf-video-target-date
   :year emacsconf-year)))
#+end_src
*** Template
:PROPERTIES:
:EMAIL_ID: acceptance
:TO: ${email}
:REPLY_TO: emacsconf-submit@gnu.org, ${email}, sacha@sachachua.com
:MAIL_FOLLOWUP_TO: emacsconf-submit@gnu.org, ${email}, sacha@sachachua.com
:CC: emacsconf-submit@gnu.org
:LOG_NOTE: accepted talk
:SUBJECT:  ${conf-name} ${year} acceptance: ${title}
:FUNCTION: emacsconf-mail-accept-talk
:CUSTOM_ID: acceptance-template
:END:

Hi, ${speakers-short}!

Looks like all systems are a go for your talk. =) Thanks for proposing
it! Your talk page is now at ${url} . Please feel free to update it or
e-mail us if you'd like help with any changes.

If you want to get started on your talk early, we have some
instructions at https://emacsconf.org/${year}/prepare/ that might help.
We strongly encourage speakers to prepare a talk video by
${video-target-date} in order to reduce technical risks and make
things flow more smoothly. Plus, we might be able to get it captioned
by volunteers, just like the talks last year. We'll save ${time} minutes
for your talk, not including time for Q&A. Don't sweat it if
you're a few minutes over or under. If it looks like a much shorter or
longer talk once you start getting into it, let us know and we might
be able to adjust.

I'll follow up with the specific schedule for your talk once things
settle down. In the meantime, please let us know if you have any
questions or if there's anything we can do to help out!

Sacha

* Archive
:PROPERTIES:
:CUSTOM_ID: archive
:END: