From 9ffa229ece061b4d300c47283adf504529e685ee Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Sun, 9 Oct 2022 19:25:57 -0400 Subject: Tweak schedule to put lspbridge earlier --- 2022/draft-schedule.md | 10 +- 2022/info/asmblox-nav.md | 4 +- 2022/info/async-nav.md | 2 +- 2022/info/dbus-nav.md | 3 +- 2022/info/fanfare-nav.md | 2 +- 2022/info/localizing-nav.md | 3 +- 2022/info/lspbridge-nav.md | 2 +- 2022/info/sqlite-nav.md | 2 +- 2022/info/treesitter-nav.md | 2 +- 2022/info/wayland-nav.md | 4 +- 2022/organizers-notebook/index.org | 709 +++++++++++++++++----------------- 2022/organizers-notebook/schedule.svg | 2 +- 2022/schedule-details.md | 4 +- 13 files changed, 377 insertions(+), 372 deletions(-) (limited to '2022') diff --git a/2022/draft-schedule.md b/2022/draft-schedule.md index c941e41d..e88ee2ee 100644 --- a/2022/draft-schedule.md +++ b/2022/draft-schedule.md @@ -1,4 +1,4 @@ - Sat Emacs journalism (or everything's a nail if you hit it with Emacs) journalism Back to school with Emacs school How to incorporate handwritten notes into Emacs Orgmode handwritten Writing and organizing literature notes for scientific writing science Attending and organizing Emacs meetups meetups The Emacs Buddy initiative buddy The ship that builds itself: How we used Emacs to develop a workshop for communities community Real estate and Org table formulas realestate Health data journaling and visualization with Org Mode and GNUplot health Edit live Jupyter notebook cells with Emacs jupyter orgvm: a simple HTTP server for org orgvm asm-blox: a game based on WebAssembly that no one asked for asmblox Tree-sitter beyond syntax highlighting treesitter Emacs should become a Wayland compositor wayland lsp-bridge: complete asynchronous LSP client lspbridge Using SQLite as a data source: a framework and an example sqlite Revisiting the anatomy of Emacs mail user agents mail Maintaining the Maintainers: Attribution as an Economic Model for Open Source maint Bidirectional links with eev eev Short hyperlinks to Python docs python Haskell code exploration with Emacs haskell 9 10 11 12 1 2 3 4 Sun Results of the 2022 Emacs Survey survey This Year in Org orgyear Build a Zettelkasten with the Hyperbole Rolodex rolodex Linking headings with org-super-links (poor-man's Zettelkasten) orgsuperlinks Linking personal info with Hyperbole implicit buttons buttons Powerful productivity with Hyperbole and Org Mode hyperorg Org workflows for developers workflows GRAIL---A Generalized Representation and Aggregation of Information Layers grail Putting Org Mode on the Indieweb indieweb Fanfare for the Common Emacs User fanfare rde Emacs introduction rde justl: Driving recipes within Emacs justl Elisp and the TRAMP: How to NOT write code you don't have to tramp Getting detached from Emacs detached Top 10 reasons why you should be using Eshell eshell Emacs was async before async was cool async The Wheels on D-Bus dbus Pre-localizing Emacs localizing 9 10 11 12 1 2 3 4This is a *DRAFT* schedule. + Sat Emacs journalism (or everything's a nail if you hit it with Emacs) journalism Back to school with Emacs school How to incorporate handwritten notes into Emacs Orgmode handwritten Writing and organizing literature notes for scientific writing science Attending and organizing Emacs meetups meetups The Emacs Buddy initiative buddy The ship that builds itself: How we used Emacs to develop a workshop for communities community Real estate and Org table formulas realestate Health data journaling and visualization with Org Mode and GNUplot health Edit live Jupyter notebook cells with Emacs jupyter orgvm: a simple HTTP server for org orgvm Tree-sitter beyond syntax highlighting treesitter lsp-bridge: complete asynchronous LSP client lspbridge asm-blox: a game based on WebAssembly that no one asked for asmblox Emacs should become a Wayland compositor wayland Using SQLite as a data source: a framework and an example sqlite Revisiting the anatomy of Emacs mail user agents mail Maintaining the Maintainers: Attribution as an Economic Model for Open Source maint Bidirectional links with eev eev Short hyperlinks to Python docs python Haskell code exploration with Emacs haskell 9 10 11 12 1 2 3 4 Sun Results of the 2022 Emacs Survey survey This Year in Org orgyear Build a Zettelkasten with the Hyperbole Rolodex rolodex Linking headings with org-super-links (poor-man's Zettelkasten) orgsuperlinks Linking personal info with Hyperbole implicit buttons buttons Powerful productivity with Hyperbole and Org Mode hyperorg Org workflows for developers workflows GRAIL---A Generalized Representation and Aggregation of Information Layers grail Putting Org Mode on the Indieweb indieweb Fanfare for the Common Emacs User fanfare rde Emacs introduction rde justl: Driving recipes within Emacs justl Elisp and the TRAMP: How to NOT write code you don't have to tramp Getting detached from Emacs detached Top 10 reasons why you should be using Eshell eshell Emacs was async before async was cool async The Wheels on D-Bus dbus Pre-localizing Emacs localizing 9 10 11 12 1 2 3 4This is a *DRAFT* schedule. Jump to: Sat Dec 3 - Sun Dec 4 @@ -6,12 +6,12 @@ Jump to: Sat Dec 3 - S
[[!template id=sched title="Emacs journalism (or everything's a nail if you hit it with Emacs)" url="/2022/talks/journalism" speakers="Alfred Zanini" q-and-a="live" track="General" slug="journalism" time="20" startutc="2022-12-03T14:05:00+0000" endutc="2022-12-03T14:25:00+0000" start="9:05" end="9:25"]] [[!template id=sched title="Back to school with Emacs" url="/2022/talks/school" speakers="Daniel Rösel" q-and-a="IRC" track="General" slug="school" time="20" startutc="2022-12-03T14:45:00+0000" endutc="2022-12-03T15:05:00+0000" start="9:45" end="10:05"]] -[[!template id=sched title="asm-blox: a game based on WebAssembly that no one asked for" url="/2022/talks/asmblox" speakers="Zachary Romero" q-and-a="live" track="Development" slug="asmblox" time="10" startutc="2022-12-03T15:00:00+0000" endutc="2022-12-03T15:10:00+0000" start="10:00" end="10:10"]] +[[!template id=sched title="Tree-sitter beyond syntax highlighting" url="/2022/talks/treesitter" speakers="Abin Simon" q-and-a="IRC or pad after event" track="Development" slug="treesitter" time="10" startutc="2022-12-03T15:00:00+0000" endutc="2022-12-03T15:10:00+0000" start="10:00" end="10:10"]] [[!template id=sched title="How to incorporate handwritten notes into Emacs Orgmode" url="/2022/talks/handwritten" speakers="Bala Ramadurai" q-and-a="live" track="General" slug="handwritten" time="10" startutc="2022-12-03T15:15:00+0000" endutc="2022-12-03T15:25:00+0000" start="10:15" end="10:25"]] -[[!template id=sched title="Tree-sitter beyond syntax highlighting" url="/2022/talks/treesitter" speakers="Abin Simon" q-and-a="IRC or pad after event" track="Development" slug="treesitter" time="10" startutc="2022-12-03T15:35:00+0000" endutc="2022-12-03T15:45:00+0000" start="10:35" end="10:45"]] +[[!template id=sched title="lsp-bridge: complete asynchronous LSP client" url="/2022/talks/lspbridge" speakers="Andy Stewart" q-and-a="IRC" track="Development" slug="lspbridge" time="20" startutc="2022-12-03T15:20:00+0000" endutc="2022-12-03T15:40:00+0000" start="10:20" end="10:40"]] +[[!template id=sched title="asm-blox: a game based on WebAssembly that no one asked for" url="/2022/talks/asmblox" speakers="Zachary Romero" q-and-a="live" track="Development" slug="asmblox" time="10" startutc="2022-12-03T15:50:00+0000" endutc="2022-12-03T16:00:00+0000" start="10:50" end="11:00"]] [[!template id=sched title="Writing and organizing literature notes for scientific writing" url="/2022/talks/science" speakers="Vidianos" q-and-a="live" track="General" slug="science" time="20" startutc="2022-12-03T15:55:00+0000" endutc="2022-12-03T16:15:00+0000" start="10:55" end="11:15"]] -[[!template id=sched title="Emacs should become a Wayland compositor" url="/2022/talks/wayland" speakers="Michael Bauer" q-and-a="live" track="Development" slug="wayland" time="10" startutc="2022-12-03T15:55:00+0000" endutc="2022-12-03T16:05:00+0000" start="10:55" end="11:05"]] -[[!template id=sched title="lsp-bridge: complete asynchronous LSP client" url="/2022/talks/lspbridge" speakers="Andy Stewart" q-and-a="IRC" track="Development" slug="lspbridge" time="20" startutc="2022-12-03T16:30:00+0000" endutc="2022-12-03T16:50:00+0000" start="11:30" end="11:50"]] +[[!template id=sched title="Emacs should become a Wayland compositor" url="/2022/talks/wayland" speakers="Michael Bauer" q-and-a="live" track="Development" slug="wayland" time="10" startutc="2022-12-03T16:25:00+0000" endutc="2022-12-03T16:35:00+0000" start="11:25" end="11:35"]] [[!template id=sched title="Attending and organizing Emacs meetups" url="/2022/talks/meetups" speakers="Bhavin Gandhi" q-and-a="live" track="General" slug="meetups" time="10" startutc="2022-12-03T18:00:00+0000" endutc="2022-12-03T18:10:00+0000" start="1:00" end="1:10"]] [[!template id=sched title="Using SQLite as a data source: a framework and an example" url="/2022/talks/sqlite" speakers="Andrew Hyatt" q-and-a="live" track="Development" slug="sqlite" time="20" startutc="2022-12-03T18:00:00+0000" endutc="2022-12-03T18:20:00+0000" start="1:00" end="1:20"]] [[!template id=sched title="The Emacs Buddy initiative" url="/2022/talks/buddy" speakers="Andrea" q-and-a="IRC or pad" track="General" slug="buddy" time="10" startutc="2022-12-03T18:30:00+0000" endutc="2022-12-03T18:40:00+0000" start="1:30" end="1:40"]] diff --git a/2022/info/asmblox-nav.md b/2022/info/asmblox-nav.md index 528e4d48..b1275012 100644 --- a/2022/info/asmblox-nav.md +++ b/2022/info/asmblox-nav.md @@ -1,7 +1,7 @@ diff --git a/2022/info/async-nav.md b/2022/info/async-nav.md index 70b98ac2..78098237 100644 --- a/2022/info/async-nav.md +++ b/2022/info/async-nav.md @@ -2,6 +2,6 @@
Back to the [[talks]] Previous by track: Top 10 reasons why you should be using Eshell -Next by track: Emacs should become a Wayland compositor +Next by track: The Wheels on D-Bus Track: Development
diff --git a/2022/info/dbus-nav.md b/2022/info/dbus-nav.md index 0977272b..792ee9de 100644 --- a/2022/info/dbus-nav.md +++ b/2022/info/dbus-nav.md @@ -1,6 +1,7 @@
Back to the [[talks]] -Previous by track: asm-blox: a game based on WebAssembly that no one asked for +Previous by track: Emacs was async before async was cool +Next by track: Pre-localizing Emacs Track: Development
diff --git a/2022/info/fanfare-nav.md b/2022/info/fanfare-nav.md index da5758f8..44f60448 100644 --- a/2022/info/fanfare-nav.md +++ b/2022/info/fanfare-nav.md @@ -2,6 +2,6 @@
Back to the [[talks]] Previous by track: Putting Org Mode on the Indieweb -Next by track: Pre-localizing Emacs +Next by track: Tree-sitter beyond syntax highlighting Track: General
diff --git a/2022/info/localizing-nav.md b/2022/info/localizing-nav.md index 38616a3c..c5ead2f7 100644 --- a/2022/info/localizing-nav.md +++ b/2022/info/localizing-nav.md @@ -1,7 +1,6 @@
Back to the [[talks]] -Previous by track: Fanfare for the Common Emacs User -Next by track: Tree-sitter beyond syntax highlighting +Previous by track: The Wheels on D-Bus Track: Development
diff --git a/2022/info/lspbridge-nav.md b/2022/info/lspbridge-nav.md index 532e6bce..0719dc1b 100644 --- a/2022/info/lspbridge-nav.md +++ b/2022/info/lspbridge-nav.md @@ -2,6 +2,6 @@ diff --git a/2022/info/sqlite-nav.md b/2022/info/sqlite-nav.md index 2c94bda5..679b68f8 100644 --- a/2022/info/sqlite-nav.md +++ b/2022/info/sqlite-nav.md @@ -1,7 +1,7 @@
Back to the [[talks]] -Previous by track: lsp-bridge: complete asynchronous LSP client +Previous by track: Emacs should become a Wayland compositor Next by track: Revisiting the anatomy of Emacs mail user agents Track: Development
diff --git a/2022/info/treesitter-nav.md b/2022/info/treesitter-nav.md index f4e68d33..6e1f8347 100644 --- a/2022/info/treesitter-nav.md +++ b/2022/info/treesitter-nav.md @@ -1,7 +1,7 @@
Back to the [[talks]] -Previous by track: Pre-localizing Emacs +Previous by track: Fanfare for the Common Emacs User Next by track: lsp-bridge: complete asynchronous LSP client Track: Development
diff --git a/2022/info/wayland-nav.md b/2022/info/wayland-nav.md index 00eff77c..807e696b 100644 --- a/2022/info/wayland-nav.md +++ b/2022/info/wayland-nav.md @@ -1,7 +1,7 @@ diff --git a/2022/organizers-notebook/index.org b/2022/organizers-notebook/index.org index db2de204..e567e354 100644 --- a/2022/organizers-notebook/index.org +++ b/2022/organizers-notebook/index.org @@ -47,32 +47,70 @@ or ~C-c \~ (~org-match-sparse-tree~) to see anything tagged with your tag. ~org-agenda~ with ~<~ for the file restriction may also be handy. +* Cadence +:PROPERTIES: +:CUSTOM_ID: cadence +:OWNER: sachac +:END: + +| | Work | Speakers | Volunteers | Public | +| [2022-09-30 Fri] | | [[#acceptance][acceptance, reply to confirm]] | | | +| [2022-10-09 Sun] | | [[#check-sched][schedule, reply if not okay]] | [[#volunteer-2022-10-09][overall priorities]] | | +| [2022-10-16 Sun] | [[#upload][file upload]] | follow up with radio silence | infra update | | +| [2022-10-23 Sun] | [[#etherpad][Etherpad]], [[#upload][stream]] | file upload instructions, drop radio silence | training | | +| [2022-10-30 Sun] | [[#intro][intro, exit videos]] | | shifts | schedule, posters? | +| [2022-11-06 Sun] | [[#write-viewing][watch pages]], prerecs | prerec confirmation/reminder, caption progress | caption kickoff | | +| [2022-11-13 Sun] | dry run, captions | tech check | | | +| [2022-11-20 Sun] | captions | checkin instructions | | | +| [2022-11-27 Sun] | captions | last weekend before EmacsConf | | watching | + + +* Overall priorities +:PROPERTIES: +:CUSTOM_ID: overall +:END: + +This table makes it easier to move the slider depending on who wants +to volunteer and how much we can get done. At some point, we'll figure +out how to track our current status so we know what we need to +scramble to do in order to get the conference off the ground. *bold* +is our current goal. Feel free to volunteer for anything that +interests you! + +| | Good | Better | Best | +|-------------------+-------------------------------------+--------------------------------------+------------------------------------------------------| +| [[#sched-decision][schedule]] | one track | *DONE S: two tracks* | aligned times, full roster | +| schedule view | text table | S: imagemap fallback | *DONE S: interactive SVG* | +| [[#upload][upload]] | FTP | *S?: web-based* | auto-encoded, preview (SReview?) | +| [[#streaming][streaming]] | ffmpeg from computer | DONE OBS | *Z: OBS in cloud, switchable hosts* | +| [[#prepare-prerec-process][prerec]] | DONE play original with captions | Z: normalize audio | *S: post as soon as talk is live* | +| BBB rooms | about 5 rooms that we cycle through | | *one room per speaker* | +| host | no host, speaker reads pad | *host reads pad* | host monitors IRC and helps with BBB as well | +| BBB Q&A | none | *DONE open to community* | moderated by speaker and host | +| [[#write-viewing][watch page]] | tracks | *+ IRC* | + talk info, maybe even pad | +| [[#etherpad][pad]] | one pad for conf | one pad per talk, wikimedia | *one pad per talk, self-hosted* so we can access API | +| [[#irc][IRC]] | #emacsconf, -org | *tracks, hallway, org* | IRC volunteer copying to pads; maybe even IRC bots | +| [[#irc-announce][IRC announcements]] | *ERC commands* | timer-based | | +| [[#publishing-sched][sched update]] | *S: publish at start* | update main sched | update talk pages | +| [[#publish-live][talk pages]] | S: link to stream, pad, IRC | *link to prerec when live* | embed stream, pad, IRC, prerec | +| [[#other-streams][other streams]] | 480p | + Toobnix | *S: + YouTube* | +| [[#video-platforms][other platforms]] | *S: Toobnix & YT after event* | | S: Toobnix + YT when live | +| [[#wiki-design][wiki]] | plain text, markdown | *sachac: some JS and CSS enrichment* | more JS and CSS, embeds, videoplayer | +| [[#intro][intro and exit]] | *generic static image* | per-talk image | Emacs thing so we can display info, countdowns, IRC | +| [[#ansible][ansible]] | none | *sachac: some automation* | comprehensive, can also work against containers | + * Current tasks / status :PROPERTIES: :CUSTOM_ID: current :END: Planned dates and phases: -| [2022-09-26] | Yes/no comments for original submissions | -| [2022-09-30] | Original speaker notification date | -| [2022-10-07] | Tentative deadline for settling on a strategy for the schedule/tracks | -| [2022-10-08] | E-mail confirmation expected (collect public contact info for posting in program) | -| [2022-10-14] | Program published | -| [2022-10-31] | Schedule published | -| [2022-11-04] | Target date to receive prerecs; earlier is better | -| | zaeph: reencode videos | -| | sachac: prepare talks for captioning | -| | volunteers: tech checks, captions | -| 2022-12-03, 2022-12-04 | Conference | - Current phase: No prerecs to process yet, so it's a good time to focus on infrastructure #+TOC: headlines 1 local -[[#overall][Overall prioritization of effort]] - -** Time-sensitive +* Time-sensitive :PROPERTIES: :CUSTOM_ID: time-sensitive :END: @@ -81,7 +119,7 @@ Ordered chronologically (and therefore by importance). #+TOC: headlines 1 local -*** Volunteer communications: E-mail update for Oct 9, 2022 :email:volunteers: +** Volunteer communications: E-mail update for Oct 9, 2022 :email:volunteers: SCHEDULED: <2022-10-09 Sun> :PROPERTIES: :CUSTOM_ID: volunteer-2022-10-09 @@ -89,7 +127,7 @@ SCHEDULED: <2022-10-09 Sun> Add your news and requests to this. -**** Template so far +*** Template so far :PROPERTIES: :SUBJECT: Getting ready for EmacsConf ${year} :END: @@ -98,275 +136,52 @@ Hello, EmacsConf volunteers! We're starting to gear up for EmacsConf ${year} and we would love your help! -- https://emacsconf.org/${year}/organizers-notebook/#overall has an overall - prioritization matrix. If any of those options look interesting, you - can volunteer to help move the needle. -- sachac: Given the number of talks this year, we're going to try to - see if we can pull off two tracks. I've posted a draft schedule at - https://emacsconf.org/2022/draft-schedule/ and will e-mail speakers - to confirm their availability. This schedule staggers live Q&A - sessions so that the person managing the streams can jump back and - forth as needed. [[#shifts][Want to volunteer for a shift?]] - -Help wanted / upcoming tasks: - -- We would like to find a way for people to upload large files through - a web-based interface, since a number of speakers had issues with - FTP uploads last year. [[#upload][#upload]] has some options to explore. Do you - have any recommendations or do you want to do some research? +- https://emacsconf.org/${year}/organizers-notebook/#overall has an + overall prioritization matrix. If any of those options look like + something you want to learn or help with, you can volunteer to help + move the needle. +- Given the number of talks this year, we're going to try to see if we + can pull off two tracks. I've posted a draft schedule at + https://emacsconf.org/2022/draft-schedule/ and have e-mailed + speakers to confirm their availability. This schedule staggers live + Q&A sessions so that the person managing the streams can jump back + and forth as needed. [[#shifts][Want to volunteer for a shift?]] + +Help wanted / upcoming projects: + +- Emacs Lisp: Want to design the screens that will be displayed before + and after a talk? Bonus points if you can do it in Emacs with a + count-down timer until the start of the talk. See [[#intro]] + +- Infrastructure - file upload: We would like to find a way for people + to upload large files through a web-based interface, since a number + of speakers had issues with FTP uploads last year. [[#upload][#upload]] has some + options to explore. Do you have any recommendations or do you want + to do some research? + +- Infrastructure - streaming: Got any experience streaming with OBS or + gstreamer? We're going to try to have two (or more!) streams this + year, so it would be great to have more streamers on board. + Definitely let us know if you have any experience using a cloud + server to stream, or if you'd like to help figure it out (see + [[#streaming][#streaming]]). It would be neat to have the streaming come from a VPS + that different people can control. + +- You're receiving this e-mail because you're on the emacsconf-org mailing list. -*** DONE Remind people about confirming e-mail communications :sachac:email:speakers: -CLOSED: [2022-10-08 Sat 18:55] SCHEDULED: <2022-10-08 Sat> -:PROPERTIES: -:CUSTOM_ID: confirm-email -:END: - -Look for the TO_CONFIRM status in conf.org, probably include in schedule e-mail -*** TODO Plan cadence :email: -:PROPERTIES: -:CUSTOM_ID: cadence -:END: - -| | Work | Speakers | Volunteers | Public | -| [2022-09-30 Fri] | | [[#acceptance][acceptance, reply to confirm]] | | | -| [2022-10-09 Sun] | | [[#check-sched][schedule, reply if not okay]] | [[#volunteer-2022-10-09][overall priorities]] | | -| [2022-10-16 Sun] | [[#upload][file upload]] | follow up with radio silence | infra update | | -| [2022-10-23 Sun] | [[#etherpad][Etherpad]], [[#upload][stream]] | file upload instructions, drop radio silence | training | | -| [2022-10-30 Sun] | [[#intro][intro, exit videos]] | | shifts | schedule, posters? | -| [2022-11-06 Sun] | [[#write-viewing][watch pages]] | prerec confirmation/reminder, caption progress | caption kickoff | | -| [2022-11-13 Sun] | dry run, captions | tech check | | | -| [2022-11-20 Sun] | captions | checkin instructions | | | -| [2022-11-27 Sun] | captions | last weekend before EmacsConf | | watching | -*** DONE Send people schedule information and doublecheck their availability/Q&A preference :sachac:email:speakers:sched: -CLOSED: [2022-10-09 Sun 09:38] SCHEDULED: <2022-10-08 Sat> -:PROPERTIES: -:CUSTOM_ID: check-sched -:END: - -#+begin_src emacs-lisp -(defun emacsconf-mail-schedule (group &optional template) - "Send draft schedule. -GROUP is (email . (talk talk))" - (interactive (list (emacsconf-mail-complete-email-group))) - (require 'emacsconf-ical) - (let ((reply-by-date (date-to-time "2022-10-14")) - (draft-schedule (concat emacsconf-base-url emacsconf-year "/draft-schedule/"))) - (emacsconf-mail-prepare - (or template (emacsconf-mail-merge-get-template "check-sched")) - group - (list - :titles - (mapconcat (lambda (o) (format "%s: %s" - (plist-get o :slug) - (format-time-string - "%b %-e %-I:%M %#p %Z" - (plist-get o :start-time) - emacsconf-timezone))) - (cdr group) "; ") - :draft-schedule - draft-schedule - :speakers-short - (plist-get (cadr group) :speakers-short) - :plural - (if (= (length (cdr group)) 1) "" "s") - :email - (plist-get (cadr group) :email) - :year - (or (plist-get (cadr group) :year) emacsconf-year) - :coordination-note - (if (seq-find (lambda (o) (member (plist-get o :slug) '("journalism" "rolodex" "orgsuperlinks" "buttons" "hyperorg" "science"))) - (cdr group)) - "I've changed the order slightly from the coordination e-mail I sent you. The sequence is now journalism - science - rolodex - orgsuperlinks - buttons - hyperorg. science is now second instead of last, and the first two talks are on Sat while the last four are on Sun. That probably means you don't have to coordinate as much, but you can still do so if you would like to build on other people's talks." - "") - :schedule - (mapconcat - (lambda (o) (format "* TODO Check time for \"%s\" (%s) :emacsconf:\nDEADLINE: %s\n(Not a hard deadline, just encouragement to e-mail us before that date if you can)\nPlease e-mail [[mailto:emacsconf-submit@gnu.org]] if you need it changed\n%s track\n%s\nIn context: %s" - (plist-get o :title) - (plist-get o :slug) - (format-time-string (car org-time-stamp-formats) reply-by-date emacsconf-timezone) - (plist-get o :track) - (string-join - (let ((emacsconf-timezones - (if (plist-get o :timezone) - (seq-uniq (append (list emacsconf-timezone) - (split-string (plist-get o :timezone) " ") - (list "UTC"))) - emacsconf-timezones))) - (emacsconf-timezone-strings o)) - "\n") - draft-schedule)) - (cdr group) - "\n----------------------------------------------------------------\n") - :reply-by - (format-time-string "%b %-e (%a)" reply-by-date emacsconf-timezone) - :timezone-note - (if (plist-get (cadr group) :timezone) - (format "I've included timezone conversion to %s. Let me know if you'd like me to use a different timezone in future e-mails." - (plist-get (cadr group) :timezone) " ") - "I can translate times into your local timezone. Let me know what timezone you'd like me to use.") - :availability-note - (cond - ((seq-find (lambda (o) (string-match "yes" (or (plist-get o :availability) ""))) (cdr group)) - (format "I think you've indicated that you're available during the conference.")) - ((seq-find (lambda (o) (string-match "not indicated" (or (plist-get o :availability) ""))) (cdr group)) - (format "I think you didn't indicate any particular availability constraints in your submission.")) - (t (format "I think it respects your indicated availability, which we've noted as %s." - (string-join - (seq-uniq - (mapcar - (lambda (o) (format "\"%s\"" (plist-get o :availability))) - (cdr group))) - " and ")))))))) - -(defun emacsconf-mail-schedule-update (group &optional template) - "Send draft schedule update. -GROUP is (email . (talk talk))" - (interactive (list (emacsconf-mail-complete-email-group))) - (require 'emacsconf-ical) - (let ((reply-by-date (date-to-time "2022-10-14")) - (draft-schedule (concat emacsconf-base-url emacsconf-year "/draft-schedule/"))) - (emacsconf-mail-prepare - (or template (emacsconf-mail-merge-get-template "check-sched")) - group - (list - :titles - (mapconcat (lambda (o) (format "%s: %s" - (plist-get o :slug) - (format-time-string - "%b %-e %-I:%M %#p %Z" - (plist-get o :start-time) - emacsconf-timezone))) - (cdr group) "; ") - :draft-schedule - draft-schedule - :speakers-short - (plist-get (cadr group) :speakers-short) - :plural - (if (= (length (cdr group)) 1) "" "s") - :email - (plist-get (cadr group) :email) - :year - (or (plist-get (cadr group) :year) emacsconf-year) - :coordination-note - (if (seq-find (lambda (o) (member (plist-get o :slug) '("journalism" "rolodex" "orgsuperlinks" "buttons" "hyperorg" "science"))) - (cdr group)) - "I've changed the order slightly from the coordination e-mail I sent you. The sequence is now journalism - science - rolodex - orgsuperlinks - buttons - hyperorg. science is now second instead of last, and the first two talks are on Sat while the last four are on Sun. That probably means you don't have to coordinate as much, but you can still do so if you would like to build on other people's talks." - "") - :schedule - (mapconcat - (lambda (o) (format "\"%s\" (%s)\n%s track\n%s\nIn context: %s" - (plist-get o :title) - (plist-get o :slug) - (plist-get o :track) - (string-join - (let ((emacsconf-timezones - (if (plist-get o :timezone) - (seq-uniq (append (list emacsconf-timezone) - (split-string (plist-get o :timezone) " ") - (list "UTC"))) - emacsconf-timezones))) - (emacsconf-timezone-strings o)) - "\n") - draft-schedule)) - (cdr group) - "\n----------------------------------------------------------------\n") - :reply-by - (format-time-string "%b %-e (%a)" reply-by-date emacsconf-timezone) - :timezone-note - (if (plist-get (cadr group) :timezone) - (format "I've included timezone conversion to %s. Let me know if you'd like me to use a different timezone in future e-mails." - (plist-get (cadr group) :timezone) " ") - "I can translate times into your local timezone. Let me know what timezone you'd like me to use.") - :availability-note - (cond - ((seq-find (lambda (o) (string-match "yes" (or (plist-get o :availability) ""))) (cdr group)) - (format "I think you've indicated that you're available during the conference.")) - ((seq-find (lambda (o) (string-match "not indicated" (or (plist-get o :availability) ""))) (cdr group)) - (format "I think you didn't indicate any particular availability constraints in your submission.")) - (t (format "I think it respects your indicated availability, which we've noted as %s." - (string-join - (seq-uniq - (mapcar - (lambda (o) (format "\"%s\"" (plist-get o :availability))) - (cdr group))) - " and ")))))))) -#+end_src - -**** Template -:PROPERTIES: -:EMAIL_ID: check-sched -:SUBJECT: EmacsConf draft schedule: ${titles} -:REPLY_TO: emacsconf-submit@gnu.org, ${email} -:MAIL_FOLLOWUP_TO: emacsconf-submit@gnu.org, ${email} -:CC: emacsconf-submit@gnu.org -:FUNCTION: emacsconf-mail-schedule -:END: -Hi, ${speakers-short}! - -Here's the tentative schedule for when your EmacsConf talk${plural} -will be streamed. Your talk${plural} will be streamed once, but I've -included a few timezone conversions for convenience. - ----------------------------------------------------------------- -${schedule} ----------------------------------------------------------------- - -${availability-note} You'll also have time for Q&A afterwards, which -can be as short or as long as you like. We'll send you more -information about how the Q&A will work as the conference gets closer.${wrap} - -If you'd like to see the other talks for context, you can check out -the draft schedule at https://emacsconf.org/${year}/draft-schedule/ . -The times may move around a bit as we update the schedule, so I'll -check in with you if things change a lot. ${coordination-note} ${wrap} - -We'd like to publish the schedule this month, so we'd love to hear -from you by *${reply-by}* if the times don't work for you. (We can shuffle -things around even after that date if something comes up.) Also, if -you think your talk${plural} would go better next to a different talk, please -let us know. ${timezone-note} Please keep emacsconf-submit@gnu.org in -To or Cc when replying. Thanks!${wrap} - -Sacha -**** Schedule change affecting dev -:PROPERTIES: -:SUBJECT: EmacsConf draft schedule update: ${titles} -:REPLY_TO: emacsconf-submit@gnu.org, ${email} -:MAIL_FOLLOWUP_TO: emacsconf-submit@gnu.org, ${email} -:CC: emacsconf-submit@gnu.org -:FUNCTION: emacsconf-mail-schedule-update -:SLUGS: asmblox wayland localizing treesitter lspbridge dbus -:EMAIL_ID: sched-change -:END: - -Quick update! - -I tweaked the schedule to accommodate some schedule requests. Please -check https://emacsconf.org/${year}/draft-schedule/ to see the current -schedule for your talk. The main change is that the localizing talk is -now on Sunday afternoon, so asmblox and wayland are on Saturday -morning along with treesitter and lspbridge, and dbus has moved a -little earlier on Sunday afternoon. Thanks for your patience! - ----------------------------------------------------------------- -${schedule} ----------------------------------------------------------------- - -Sacha - -*** TODO Send program-published email for emacsconf-discuss :needsowner:timesensitive:email: +** TODO Send program-published email for emacsconf-discuss :needsowner:timesensitive:email: DEADLINE: <2022-10-14 Fri> SCHEDULED: <2022-10-11 Tue> :PROPERTIES: :CUSTOM_ID: announce-program :END: Probably post schedule instead if available by that date -**** TODO Post it to r/emacs as well :reddit:zaeph: +*** TODO Post it to r/emacs as well :reddit:zaeph: Please let zaeph know when it’s live so that the post can be distinguished. -**** Template +*** Template Greetings, fellow Emacsians! @@ -380,13 +195,13 @@ reasonably well for as many of our speakers as possible with respect to their availability, and will add the allocated time slots for the talks in the coming weeks. -*** BLOCKED Prepare email for nudging speakers to send prerec, and inform on upload workflow :timesensitive:needsowner: +** BLOCKED Prepare email for nudging speakers to send prerec, and inform on upload workflow :timesensitive:needsowner: :PROPERTIES: :CUSTOM_ID: mail-upload :END: Blocked by [[*Figure out web-based file upload][Figure out web-based file upload]] -** Projects and other long-running tasks +* Projects and other long-running tasks :PROPERTIES: :CUSTOM_ID: projects :END: @@ -394,7 +209,7 @@ Blocked by [[*Figure out web-based file upload][Figure out web-based file upload #+TOC: headlines 1 local Ordered by importance. -*** TODO [#A] Figure out web-based file upload :needsowner:zaeph:bandali:ansible:sachac: +** TODO [#A] Figure out web-based file upload :needsowner:zaeph:bandali:ansible:sachac: :PROPERTIES: :CUSTOM_ID: upload :END: @@ -431,10 +246,10 @@ Considerations: - https://github.com/YouTransfer/YouTransfer - https://github.com/psi-4ward/psitransfer - NextCloud -**** TODO Create 2022/upload.md with the same workflow as last year for a start -**** BLOCKED Implement new workflow -**** BLOCKED Notify speakers when the final solution is available -*** TODO Coordinate and help volunteers :sachac: +*** TODO Create 2022/upload.md with the same workflow as last year for a start +*** BLOCKED Implement new workflow +*** BLOCKED Notify speakers when the final solution is available +** TODO Coordinate and help volunteers :sachac: :PROPERTIES: :CUSTOM_ID: coordinate-volunteers :END: @@ -444,28 +259,28 @@ Considerations: comfortable signing up for tasks. ex: https://wiki.debian.org/DebConf/21/VideoVolunteering - Encourage people to sign up for [[#shifts]] -*** TODO Prepare for prerecs :zaeph: +** TODO Prepare for prerecs :zaeph: DEADLINE: <2022-10-28 Fri> :PROPERTIES: :CUSTOM_ID: prepare-prerec-process :END: -**** TODO Optimize ffmpeg incantation +*** TODO Optimize ffmpeg incantation Remember to update [[file:prepare.md::Compression]] with the new incantation. -**** TODO Figure out workflow for handling submitted prerecs +*** TODO Figure out workflow for handling submitted prerecs We need time after the prerecs get submitted to: - convert the videos and check that they've been reencoded properly by watching the re-encoded ones all the way to the end - caption videos - capture any extra info - follow up with missing prerecs -*** TODO Delete all the EmacsConf BBB rooms from last year :chore:bbb: +** TODO Delete all the EmacsConf BBB rooms from last year :chore:bbb: :PROPERTIES: :CUSTOM_ID: bbb-cleanup :END: For the admins on BBB. The list is accessible here: [[https://bbb.emacsverse.org/b/admins/rooms][Organization Settings]]. Should take no more than ~20′. -*** TODO Plan Etherpad use and hosting :sachac:ansible: +** TODO Plan Etherpad use and hosting :sachac:ansible: :PROPERTIES: :CUSTOM_ID: etherpad :END: @@ -474,11 +289,11 @@ Should take no more than ~20′. - Per-pad, nicely structured info with abstract, watching information, etc. CarpentryCon 2022 Schedule • CarpentryCon 2022 https://2022.carpentrycon.org/ - One pad per session: https://meta.wikimedia.org/wiki/Arctic_Knot_Conference_2021/Program#Friday,_June_25th - [[https://community.jitsi.org/t/tutorial-etherpad-integration-in-jitsi-meetings/99697][Etherpad integration in Jitsi ]] -*** TODO Update IRC instructions because of multiple tracks +** TODO Update IRC instructions because of multiple tracks :PROPERTIES: :CUSTOM_ID: irc :END: -*** TODO Investigate streaming options, maybe OBS in the cloud :corwin:zaeph: +** TODO Investigate streaming options, maybe OBS in the cloud :corwin:zaeph: DEADLINE: <2022-11-20 Sun> :PROPERTIES: :CUSTOM_ID: streaming @@ -498,39 +313,37 @@ Resources: - https://askubuntu.com/questions/817970/how-to-setup-multiple-simultaneous-access-to-x11vnc-session - https://xpra.org/ -**** TODO corwin: plan an approach to use a centralized OBS/nginix "bouncer" :corwin: -**** TODO corwin: document such that someone else could use/fix it :corwin: -**** TODO corwin: recruit at least one more person to help operate the "video bouncer" :corwin: +*** TODO corwin: plan an approach to use a centralized OBS/nginix "bouncer" :corwin: +*** TODO corwin: document such that someone else could use/fix it :corwin: +*** TODO corwin: recruit at least one more person to help operate the "video bouncer" :corwin: -*** TODO Work on the OBS scenes :zaeph:corwin: +** TODO Work on the OBS scenes :zaeph:corwin: DEADLINE: <2022-11-11 Fri> :PROPERTIES: :CUSTOM_ID: obs-scenes :END: - [ ] corwin is out from Nov 11-20, and we should start working on them before then. -*** TODO Build up the ansible playbook :sachac: +** TODO Build up the ansible playbook :sachac: :PROPERTIES: :CUSTOM_ID: ansible :END: git@git.emacsconf.org:pub/emacsconf-ansible can currently publish -**** TODO Get ansible to run against a clean docker -**** TODO Add ikiwiki template to ansible +*** TODO Get ansible to run against a clean docker +*** TODO Add ikiwiki template to ansible -*** BLOCKED Make intro and exit sequence +** BLOCKED Make something to display between talks :PROPERTIES: :CREATED: [2022-10-03 Mon 07:50] :CUSTOM_ID: intro :END: -Intro: -Next: title, speaker, pronouns, talk page +In between talks +- Previous talk: title, speaker, pronouns, talk page, Q&A information +- Next talk: title, speaker, pronouns, talk page, Q&A information, countdown -Exit: -Title, speaker, pronouns, talk page, Q&A - -Needs to wait for pad decision, or have friendly URLs redirect to the right pads +If it's static, this needs to wait for pad decision, or have friendly URLs redirect to the right pads - Good: Static image, maybe created with LaTeX - Better: Looping video with unobtrusive sound so people can doublecheck that their audio works @@ -539,7 +352,7 @@ Needs to wait for pad decision, or have friendly URLs redirect to the right pads See break commercials https://www.collabmagazine.com/organizing-a-multi-track-virtual-conference-with-microsoft-teams-live-events-a-technical-playbook-and-lessons-learned/ -*** DONE Move scheduling and publishing code to Emacs on a VPS so that other people can help out :sachac: +** DONE Move scheduling and publishing code to Emacs on a VPS so that other people can help out :sachac: :PROPERTIES: :CUSTOM_ID: publishing-sched :END: @@ -557,23 +370,23 @@ Where: - probably good to set it up on front It's now on front. -*** STANDBY Add nice-to-have stuff to prepare.md :zaeph: +** STANDBY Add nice-to-have stuff to prepare.md :zaeph: :PROPERTIES: :CUSTOM_ID: extra-prepare :END: - org-reveal config - SIL fonts choice -*** INPROGRESS Find volunteers for tech-checks :zaeph: +** INPROGRESS Find volunteers for tech-checks :zaeph: :PROPERTIES: :CUSTOM_ID: tech-checks :END: -**** DONE Add entry in 2022/volunteer.md -**** INPROGRESS Write protocol for adding tech-checker volunteer +*** DONE Add entry in 2022/volunteer.md +*** INPROGRESS Write protocol for adding tech-checker volunteer - Invite volunteer to BBB (ask core organizers) - Update [[file:prepare.md::Tech-check]] with new tech-checker info - Coach tech-checker on the protocol -**** INPROGRESS Write the tech-checking protocol (formerly referred to as “tech-checklist”) +*** INPROGRESS Write the tech-checking protocol (formerly referred to as “tech-checklist”) From previous years: #+begin_quote - Can you speak and be heard? Is there echo? @@ -585,24 +398,24 @@ From previous years: - Can you share contact information (ex: phone number) so that we can get in touch with you in case of technical issues or scheduling changes? - Do you need help finding your way around IRC so that you can check into `#emacsconf-org`? What is your IRC nickname? #+end_quote -*** STANDBY Update viewing instructions and watch pages :zaeph: +** STANDBY Update viewing instructions and watch pages :zaeph: :PROPERTIES: :CUSTOM_ID: write-viewing :END: Extra stuff to consider adding: - Suggestions for mpv-filter to invert colourscape. Also add to watch page -*** TODO Make talk pages easy to update when the talk is live :sachac: +** TODO Make talk pages easy to update when the talk is live :sachac: :PROPERTIES: :CUSTOM_ID: publish-live :END: -*** BLOCKED Set up talks on Toobnix and YouTube :sachac: +** BLOCKED Set up talks on Toobnix and YouTube :sachac: :PROPERTIES: :CUSTOM_ID: video-platforms :END: so that people can find the videos on other video platforms waiting for prerecs -*** TODO Set up stream events on Toobnix and YouTube :sachac: +** TODO Set up stream events on Toobnix and YouTube :sachac: :PROPERTIES: :CUSTOM_ID: other-streams :END: @@ -613,7 +426,7 @@ so that people on other platforms can come across EmacsConf MOUNT=$1 while true; do ffmpeg -loglevel 24 -i http://localhost:8000/main.webm -cluster_size_limit 2M -cluster_time_limit 5100 -b:v 1M -crf 30 -g 125 -deadline good -threads 4 -vcodec libx264 -acodec libmp3lame -f flv $MOUNT; done #+end_src -*** TODO Prepare to announce talks on IRC +** TODO Prepare to announce talks on IRC :PROPERTIES: :CUSTOM_ID: irc-announce :END: @@ -625,14 +438,14 @@ so that people on other platforms can come across EmacsConf - a small announcement might go into the other track as well - announcement can include talk page, pad, IRC nick, pronouns -*** TODO Ask speakers for bios or support nudges to include on their talk pages +** TODO Ask speakers for bios or support nudges to include on their talk pages :PROPERTIES: :CUSTOM_ID: speaker-bio :END: maybe after we get the prerecs ex: liberapay, patreon, anyone looking for a job, etc. -*** BLOCKED Do a dry run +** BLOCKED Do a dry run :PROPERTIES: :CUSTOM_ID: dry-run :END: @@ -663,13 +476,13 @@ ex: liberapay, patreon, anyone looking for a job, etc. - [ ] Message on the schedule - [ ] Prerec live - [ ] Wind everything down -*** TODO [#C] Figure out why ikiwiki is slow :infra:wiki: +** TODO [#C] Figure out why ikiwiki is slow :infra:wiki: :PROPERTIES: :CUSTOM_ID: ikiwiki-regex :END: complex regular expression issues? should the captions be outside the wiki? -*** TODO [#C] Add category tags and possibly links between talks across 2022 and all previous years :needsowner:wiki: +** TODO [#C] Add category tags and possibly links between talks across 2022 and all previous years :needsowner:wiki: :PROPERTIES: :CUSTOM_ID: link-pages :END: @@ -684,12 +497,12 @@ should the captions be outside the wiki? - You can create new categories by making up new CategoryNames. - You can also link to a talk with a link like this: =\[[/2022/talks/maint|Maintaining the Maintainers: Attribution as an Economic Model for Open Source]]= You can make a new heading called =# Related talks= -** Projects to bear in mind but which are not actual +* Projects to bear in mind but which are not actual :PROPERTIES: :CUSTOM_ID: maybe-projects :END: -*** STANDBY Find a way to accommodate a specific return-speaker +** STANDBY Find a way to accommodate a specific return-speaker We’re not sure if we’re going to get a presentation or a prerec for them this year, but we need to keep this at the back of our minds. @@ -703,38 +516,6 @@ https://www.mail-archive.com/search?l=debconf-team@lists.debian.org&q=subject:%2 #+TOC: headlines 1 local -** How fancy do we want to get this year? (overall prioritization) -:PROPERTIES: -:CUSTOM_ID: overall -:END: - -*bold* is our current goal. This table makes it easier to move the -slider depending on who wants to volunteer and how much we can get -done. At some point, we'll figure out how to track our current status -so we know what we need to scramble to do. - -| | Good | Better | Best | -|-------------------+-------------------------------------+--------------------------------------+------------------------------------------------------| -| [[#sched-decision][schedule]] | one track | *DONE S: two tracks* | aligned times, full roster | -| schedule view | text table | S: imagemap fallback | *DONE S: interactive SVG* | -| [[#upload][upload]] | FTP | *S?: web-based* | auto-encoded, preview (SReview?) | -| [[#streaming][streaming]] | ffmpeg from computer | DONE OBS | *Z: OBS in cloud, switchable hosts* | -| [[#prepare-prerec-process][prerec]] | DONE play original with captions | Z: normalize audio | *S: post as soon as talk is live* | -| BBB rooms | about 5 rooms that we cycle through | | *one room per speaker* | -| host | no host, speaker reads pad | *host reads pad* | host monitors IRC and helps with BBB as well | -| BBB Q&A | none | *DONE open to community* | moderated by speaker and host | -| [[#write-viewing][watch page]] | tracks | *S: + IRC* | + talk info, maybe even pad | -| [[#etherpad][pad]] | one pad for conf | one pad per talk, wikimedia | *one pad per talk, self-hosted* so we can access API | -| [[#irc][IRC]] | #emacsconf, -org | *tracks, hallway, org* | IRC volunteer copying to pads; maybe even IRC bots | -| [[#irc-announce][IRC announcements]] | *ERC commands* | timer-based | | -| [[#publishing-sched][sched update]] | *S: publish at start* | update main sched | update talk pages | -| [[#publish-live][talk pages]] | S: link to stream, pad, IRC | *link to prerec when live* | embed stream, pad, IRC, prerec | -| [[#other-streams][other streams]] | 480p | + Toobnix | *S: + YouTube* | -| [[#video-platforms][other platforms]] | *S: Toobnix & YT after event* | | S: Toobnix + YT when live | -| [[#wiki-design][wiki]] | plain text, markdown | *sachac: some JS and CSS enrichment* | more JS and CSS, embeds, videoplayer | -| [[#intro][intro and exit]] | *generic static image* | per-talk image | Emacs thing so we can display info, countdowns, IRC | -| [[#ansible][ansible]] | none | *sachac: some automation* | comprehensive, can also work against containers | - ** How do we want to make the full schedule more manageable? :PROPERTIES: :CUSTOM_ID: sched-decision @@ -2080,6 +1861,230 @@ Process for accepting a talk: - Log the acceptance using ~C-c C-z~ in the talk subtree in ~conf.org~, noting the number of minutes. - Change the status to TO_CONFIRM. +** DONE Remind people about confirming e-mail communications :sachac:email:speakers: +CLOSED: [2022-10-08 Sat 18:55] SCHEDULED: <2022-10-08 Sat> +:PROPERTIES: +:CUSTOM_ID: confirm-email +:END: + +Look for the TO_CONFIRM status in conf.org, probably include in schedule e-mail +** DONE Send people schedule information and doublecheck their availability/Q&A preference :sachac:email:speakers:sched: +CLOSED: [2022-10-09 Sun 09:38] SCHEDULED: <2022-10-08 Sat> +:PROPERTIES: +:CUSTOM_ID: check-sched +:END: + +#+begin_src emacs-lisp +(defun emacsconf-mail-schedule (group &optional template) + "Send draft schedule. +GROUP is (email . (talk talk))" + (interactive (list (emacsconf-mail-complete-email-group))) + (require 'emacsconf-ical) + (let ((reply-by-date (date-to-time "2022-10-14")) + (draft-schedule (concat emacsconf-base-url emacsconf-year "/draft-schedule/"))) + (emacsconf-mail-prepare + (or template (emacsconf-mail-merge-get-template "check-sched")) + group + (list + :titles + (mapconcat (lambda (o) (format "%s: %s" + (plist-get o :slug) + (format-time-string + "%b %-e %-I:%M %#p %Z" + (plist-get o :start-time) + emacsconf-timezone))) + (cdr group) "; ") + :draft-schedule + draft-schedule + :speakers-short + (plist-get (cadr group) :speakers-short) + :plural + (if (= (length (cdr group)) 1) "" "s") + :email + (plist-get (cadr group) :email) + :year + (or (plist-get (cadr group) :year) emacsconf-year) + :coordination-note + (if (seq-find (lambda (o) (member (plist-get o :slug) '("journalism" "rolodex" "orgsuperlinks" "buttons" "hyperorg" "science"))) + (cdr group)) + "I've changed the order slightly from the coordination e-mail I sent you. The sequence is now journalism - science - rolodex - orgsuperlinks - buttons - hyperorg. science is now second instead of last, and the first two talks are on Sat while the last four are on Sun. That probably means you don't have to coordinate as much, but you can still do so if you would like to build on other people's talks." + "") + :schedule + (mapconcat + (lambda (o) (format "* TODO Check time for \"%s\" (%s) :emacsconf:\nDEADLINE: %s\n(Not a hard deadline, just encouragement to e-mail us before that date if you can)\nPlease e-mail [[mailto:emacsconf-submit@gnu.org]] if you need it changed\n%s track\n%s\nIn context: %s" + (plist-get o :title) + (plist-get o :slug) + (format-time-string (car org-time-stamp-formats) reply-by-date emacsconf-timezone) + (plist-get o :track) + (string-join + (let ((emacsconf-timezones + (if (plist-get o :timezone) + (seq-uniq (append (list emacsconf-timezone) + (split-string (plist-get o :timezone) " ") + (list "UTC"))) + emacsconf-timezones))) + (emacsconf-timezone-strings o)) + "\n") + draft-schedule)) + (cdr group) + "\n----------------------------------------------------------------\n") + :reply-by + (format-time-string "%b %-e (%a)" reply-by-date emacsconf-timezone) + :timezone-note + (if (plist-get (cadr group) :timezone) + (format "I've included timezone conversion to %s. Let me know if you'd like me to use a different timezone in future e-mails." + (plist-get (cadr group) :timezone) " ") + "I can translate times into your local timezone. Let me know what timezone you'd like me to use.") + :availability-note + (cond + ((seq-find (lambda (o) (string-match "yes" (or (plist-get o :availability) ""))) (cdr group)) + (format "I think you've indicated that you're available during the conference.")) + ((seq-find (lambda (o) (string-match "not indicated" (or (plist-get o :availability) ""))) (cdr group)) + (format "I think you didn't indicate any particular availability constraints in your submission.")) + (t (format "I think it respects your indicated availability, which we've noted as %s." + (string-join + (seq-uniq + (mapcar + (lambda (o) (format "\"%s\"" (plist-get o :availability))) + (cdr group))) + " and ")))))))) + +(defun emacsconf-mail-schedule-update (group &optional template) + "Send draft schedule update. +GROUP is (email . (talk talk))" + (interactive (list (emacsconf-mail-complete-email-group))) + (require 'emacsconf-ical) + (let ((reply-by-date (date-to-time "2022-10-14")) + (draft-schedule (concat emacsconf-base-url emacsconf-year "/draft-schedule/"))) + (emacsconf-mail-prepare + (or template (emacsconf-mail-merge-get-template "check-sched")) + group + (list + :titles + (mapconcat (lambda (o) (format "%s: %s" + (plist-get o :slug) + (format-time-string + "%b %-e %-I:%M %#p %Z" + (plist-get o :start-time) + emacsconf-timezone))) + (cdr group) "; ") + :draft-schedule + draft-schedule + :speakers-short + (plist-get (cadr group) :speakers-short) + :plural + (if (= (length (cdr group)) 1) "" "s") + :email + (plist-get (cadr group) :email) + :year + (or (plist-get (cadr group) :year) emacsconf-year) + :coordination-note + (if (seq-find (lambda (o) (member (plist-get o :slug) '("journalism" "rolodex" "orgsuperlinks" "buttons" "hyperorg" "science"))) + (cdr group)) + "I've changed the order slightly from the coordination e-mail I sent you. The sequence is now journalism - science - rolodex - orgsuperlinks - buttons - hyperorg. science is now second instead of last, and the first two talks are on Sat while the last four are on Sun. That probably means you don't have to coordinate as much, but you can still do so if you would like to build on other people's talks." + "") + :schedule + (mapconcat + (lambda (o) (format "\"%s\" (%s)\n%s track\n%s\nIn context: %s" + (plist-get o :title) + (plist-get o :slug) + (plist-get o :track) + (string-join + (let ((emacsconf-timezones + (if (plist-get o :timezone) + (seq-uniq (append (list emacsconf-timezone) + (split-string (plist-get o :timezone) " ") + (list "UTC"))) + emacsconf-timezones))) + (emacsconf-timezone-strings o)) + "\n") + draft-schedule)) + (cdr group) + "\n----------------------------------------------------------------\n") + :reply-by + (format-time-string "%b %-e (%a)" reply-by-date emacsconf-timezone) + :timezone-note + (if (plist-get (cadr group) :timezone) + (format "I've included timezone conversion to %s. Let me know if you'd like me to use a different timezone in future e-mails." + (plist-get (cadr group) :timezone) " ") + "I can translate times into your local timezone. Let me know what timezone you'd like me to use.") + :availability-note + (cond + ((seq-find (lambda (o) (string-match "yes" (or (plist-get o :availability) ""))) (cdr group)) + (format "I think you've indicated that you're available during the conference.")) + ((seq-find (lambda (o) (string-match "not indicated" (or (plist-get o :availability) ""))) (cdr group)) + (format "I think you didn't indicate any particular availability constraints in your submission.")) + (t (format "I think it respects your indicated availability, which we've noted as %s." + (string-join + (seq-uniq + (mapcar + (lambda (o) (format "\"%s\"" (plist-get o :availability))) + (cdr group))) + " and ")))))))) +#+end_src + +*** Template +:PROPERTIES: +:EMAIL_ID: check-sched +:SUBJECT: EmacsConf draft schedule: ${titles} +:REPLY_TO: emacsconf-submit@gnu.org, ${email} +:MAIL_FOLLOWUP_TO: emacsconf-submit@gnu.org, ${email} +:CC: emacsconf-submit@gnu.org +:FUNCTION: emacsconf-mail-schedule +:END: +Hi, ${speakers-short}! + +Here's the tentative schedule for when your EmacsConf talk${plural} +will be streamed. Your talk${plural} will be streamed once, but I've +included a few timezone conversions for convenience. + +---------------------------------------------------------------- +${schedule} +---------------------------------------------------------------- + +${availability-note} You'll also have time for Q&A afterwards, which +can be as short or as long as you like. We'll send you more +information about how the Q&A will work as the conference gets closer.${wrap} + +If you'd like to see the other talks for context, you can check out +the draft schedule at https://emacsconf.org/${year}/draft-schedule/ . +The times may move around a bit as we update the schedule, so I'll +check in with you if things change a lot. ${coordination-note} ${wrap} + +We'd like to publish the schedule this month, so we'd love to hear +from you by *${reply-by}* if the times don't work for you. (We can shuffle +things around even after that date if something comes up.) Also, if +you think your talk${plural} would go better next to a different talk, please +let us know. ${timezone-note} Please keep emacsconf-submit@gnu.org in +To or Cc when replying. Thanks!${wrap} + +Sacha +*** Schedule change affecting dev +:PROPERTIES: +:SUBJECT: EmacsConf draft schedule update: ${titles} +:REPLY_TO: emacsconf-submit@gnu.org, ${email} +:MAIL_FOLLOWUP_TO: emacsconf-submit@gnu.org, ${email} +:CC: emacsconf-submit@gnu.org +:FUNCTION: emacsconf-mail-schedule-update +:SLUGS: asmblox wayland localizing treesitter lspbridge dbus +:EMAIL_ID: sched-change +:END: + +Quick update! + +I tweaked the schedule to accommodate some schedule requests. Please +check https://emacsconf.org/${year}/draft-schedule/ to see the current +schedule for your talk. The main change is that the localizing talk is +now on Sunday afternoon, so asmblox and wayland are on Saturday +morning along with treesitter and lspbridge, and dbus has moved a +little earlier on Sunday afternoon. Thanks for your patience! + +---------------------------------------------------------------- +${schedule} +---------------------------------------------------------------- + +Sacha + * Communications :PROPERTIES: :CUSTOM_ID: comms diff --git a/2022/organizers-notebook/schedule.svg b/2022/organizers-notebook/schedule.svg index ddedfb3c..f9d9b195 100644 --- a/2022/organizers-notebook/schedule.svg +++ b/2022/organizers-notebook/schedule.svg @@ -1 +1 @@ - Saturday GEN Saturday, December 3 GEN Saturday, December 3 Saturday opening remarks Saturday opening remarks Emacs journalism (or everything's a nail if you hit it with Emacs) journalism Back to school with Emacs school How to incorporate handwritten notes into Emacs Orgmode handwritten BREAK BREAK Writing and organizing literature notes for scientific writing science LUNCH LUNCH Attending and organizing Emacs meetups meetups The Emacs Buddy initiative buddy The ship that builds itself: How we used Emacs to develop a workshop for communities community BREAK BREAK Real estate and Org table formulas realestate Health data journaling and visualization with Org Mode and GNUplot health Edit live Jupyter notebook cells with Emacs jupyter orgvm: a simple HTTP server for org orgvm Saturday closing remarks Saturday closing remarks GEN Sunday, December 4 GEN Sunday, December 4 Sunday opening remarks Sunday opening remarks Results of the 2022 Emacs Survey survey This Year in Org orgyear Build a Zettelkasten with the Hyperbole Rolodex rolodex BREAK BREAK Linking headings with org-super-links (poor-man's Zettelkasten) orgsuperlinks Linking personal info with Hyperbole implicit buttons buttons LUNCH LUNCH Powerful productivity with Hyperbole and Org Mode hyperorg Org workflows for developers workflows GRAIL---A Generalized Representation and Aggregation of Information Layers grail BREAK BREAK Putting Org Mode on the Indieweb indieweb Fanfare for the Common Emacs User fanfare Sunday closing remarks Sunday closing remarks DEV Saturday, December 3 DEV Saturday, December 3 DEV Sunday, December 4 DEV Sunday, December 4 asm-blox: a game based on WebAssembly that no one asked for asmblox Tree-sitter beyond syntax highlighting treesitter Emacs should become a Wayland compositor wayland lsp-bridge: complete asynchronous LSP client lspbridge LUNCH LUNCH Using SQLite as a data source: a framework and an example sqlite Revisiting the anatomy of Emacs mail user agents mail BREAK BREAK Maintaining the Maintainers: Attribution as an Economic Model for Open Source maint Bidirectional links with eev eev Short hyperlinks to Python docs python Haskell code exploration with Emacs haskell rde Emacs introduction rde justl: Driving recipes within Emacs justl Elisp and the TRAMP: How to NOT write code you don't have to tramp LUNCH LUNCH Getting detached from Emacs detached Top 10 reasons why you should be using Eshell eshell Emacs was async before async was cool async BREAK BREAK The Wheels on D-Bus dbus Pre-localizing Emacs localizing 9 10 11 12 1 2 3 4 5 Sunday GEN Saturday, December 3 GEN Saturday, December 3 Saturday opening remarks Saturday opening remarks Emacs journalism (or everything's a nail if you hit it with Emacs) journalism Back to school with Emacs school How to incorporate handwritten notes into Emacs Orgmode handwritten BREAK BREAK Writing and organizing literature notes for scientific writing science LUNCH LUNCH Attending and organizing Emacs meetups meetups The Emacs Buddy initiative buddy The ship that builds itself: How we used Emacs to develop a workshop for communities community BREAK BREAK Real estate and Org table formulas realestate Health data journaling and visualization with Org Mode and GNUplot health Edit live Jupyter notebook cells with Emacs jupyter orgvm: a simple HTTP server for org orgvm Saturday closing remarks Saturday closing remarks GEN Sunday, December 4 GEN Sunday, December 4 Sunday opening remarks Sunday opening remarks Results of the 2022 Emacs Survey survey This Year in Org orgyear Build a Zettelkasten with the Hyperbole Rolodex rolodex BREAK BREAK Linking headings with org-super-links (poor-man's Zettelkasten) orgsuperlinks Linking personal info with Hyperbole implicit buttons buttons LUNCH LUNCH Powerful productivity with Hyperbole and Org Mode hyperorg Org workflows for developers workflows GRAIL---A Generalized Representation and Aggregation of Information Layers grail BREAK BREAK Putting Org Mode on the Indieweb indieweb Fanfare for the Common Emacs User fanfare Sunday closing remarks Sunday closing remarks DEV Saturday, December 3 DEV Saturday, December 3 DEV Sunday, December 4 DEV Sunday, December 4 asm-blox: a game based on WebAssembly that no one asked for asmblox Tree-sitter beyond syntax highlighting treesitter Emacs should become a Wayland compositor wayland lsp-bridge: complete asynchronous LSP client lspbridge LUNCH LUNCH Using SQLite as a data source: a framework and an example sqlite Revisiting the anatomy of Emacs mail user agents mail BREAK BREAK Maintaining the Maintainers: Attribution as an Economic Model for Open Source maint Bidirectional links with eev eev Short hyperlinks to Python docs python Haskell code exploration with Emacs haskell rde Emacs introduction rde justl: Driving recipes within Emacs justl Elisp and the TRAMP: How to NOT write code you don't have to tramp LUNCH LUNCH Getting detached from Emacs detached Top 10 reasons why you should be using Eshell eshell Emacs was async before async was cool async BREAK BREAK The Wheels on D-Bus dbus Pre-localizing Emacs localizing 9 10 11 12 1 2 3 4 5 \ No newline at end of file + Saturday GEN Saturday, December 3 GEN Saturday, December 3 Saturday opening remarks Saturday opening remarks Emacs journalism (or everything's a nail if you hit it with Emacs) journalism Back to school with Emacs school How to incorporate handwritten notes into Emacs Orgmode handwritten BREAK BREAK Writing and organizing literature notes for scientific writing science LUNCH LUNCH Attending and organizing Emacs meetups meetups The Emacs Buddy initiative buddy The ship that builds itself: How we used Emacs to develop a workshop for communities community BREAK BREAK Real estate and Org table formulas realestate Health data journaling and visualization with Org Mode and GNUplot health Edit live Jupyter notebook cells with Emacs jupyter orgvm: a simple HTTP server for org orgvm Saturday closing remarks Saturday closing remarks GEN Sunday, December 4 GEN Sunday, December 4 Sunday opening remarks Sunday opening remarks Results of the 2022 Emacs Survey survey This Year in Org orgyear Build a Zettelkasten with the Hyperbole Rolodex rolodex BREAK BREAK Linking headings with org-super-links (poor-man's Zettelkasten) orgsuperlinks Linking personal info with Hyperbole implicit buttons buttons LUNCH LUNCH Powerful productivity with Hyperbole and Org Mode hyperorg Org workflows for developers workflows GRAIL---A Generalized Representation and Aggregation of Information Layers grail BREAK BREAK Putting Org Mode on the Indieweb indieweb Fanfare for the Common Emacs User fanfare Sunday closing remarks Sunday closing remarks DEV Saturday, December 3 DEV Saturday, December 3 DEV Sunday, December 4 DEV Sunday, December 4 Tree-sitter beyond syntax highlighting treesitter lsp-bridge: complete asynchronous LSP client lspbridge asm-blox: a game based on WebAssembly that no one asked for asmblox Emacs should become a Wayland compositor wayland LUNCH LUNCH Using SQLite as a data source: a framework and an example sqlite Revisiting the anatomy of Emacs mail user agents mail BREAK BREAK Maintaining the Maintainers: Attribution as an Economic Model for Open Source maint Bidirectional links with eev eev Short hyperlinks to Python docs python Haskell code exploration with Emacs haskell rde Emacs introduction rde justl: Driving recipes within Emacs justl Elisp and the TRAMP: How to NOT write code you don't have to tramp LUNCH LUNCH Getting detached from Emacs detached Top 10 reasons why you should be using Eshell eshell Emacs was async before async was cool async BREAK BREAK The Wheels on D-Bus dbus Pre-localizing Emacs localizing 9 10 11 12 1 2 3 4 5 Sunday GEN Saturday, December 3 GEN Saturday, December 3 Saturday opening remarks Saturday opening remarks Emacs journalism (or everything's a nail if you hit it with Emacs) journalism Back to school with Emacs school How to incorporate handwritten notes into Emacs Orgmode handwritten BREAK BREAK Writing and organizing literature notes for scientific writing science LUNCH LUNCH Attending and organizing Emacs meetups meetups The Emacs Buddy initiative buddy The ship that builds itself: How we used Emacs to develop a workshop for communities community BREAK BREAK Real estate and Org table formulas realestate Health data journaling and visualization with Org Mode and GNUplot health Edit live Jupyter notebook cells with Emacs jupyter orgvm: a simple HTTP server for org orgvm Saturday closing remarks Saturday closing remarks GEN Sunday, December 4 GEN Sunday, December 4 Sunday opening remarks Sunday opening remarks Results of the 2022 Emacs Survey survey This Year in Org orgyear Build a Zettelkasten with the Hyperbole Rolodex rolodex BREAK BREAK Linking headings with org-super-links (poor-man's Zettelkasten) orgsuperlinks Linking personal info with Hyperbole implicit buttons buttons LUNCH LUNCH Powerful productivity with Hyperbole and Org Mode hyperorg Org workflows for developers workflows GRAIL---A Generalized Representation and Aggregation of Information Layers grail BREAK BREAK Putting Org Mode on the Indieweb indieweb Fanfare for the Common Emacs User fanfare Sunday closing remarks Sunday closing remarks DEV Saturday, December 3 DEV Saturday, December 3 DEV Sunday, December 4 DEV Sunday, December 4 Tree-sitter beyond syntax highlighting treesitter lsp-bridge: complete asynchronous LSP client lspbridge asm-blox: a game based on WebAssembly that no one asked for asmblox Emacs should become a Wayland compositor wayland LUNCH LUNCH Using SQLite as a data source: a framework and an example sqlite Revisiting the anatomy of Emacs mail user agents mail BREAK BREAK Maintaining the Maintainers: Attribution as an Economic Model for Open Source maint Bidirectional links with eev eev Short hyperlinks to Python docs python Haskell code exploration with Emacs haskell rde Emacs introduction rde justl: Driving recipes within Emacs justl Elisp and the TRAMP: How to NOT write code you don't have to tramp LUNCH LUNCH Getting detached from Emacs detached Top 10 reasons why you should be using Eshell eshell Emacs was async before async was cool async BREAK BREAK The Wheels on D-Bus dbus Pre-localizing Emacs localizing 9 10 11 12 1 2 3 4 5 \ No newline at end of file diff --git a/2022/schedule-details.md b/2022/schedule-details.md index 9e8e7aae..78028a59 100644 --- a/2022/schedule-details.md +++ b/2022/schedule-details.md @@ -27,10 +27,10 @@

Development talks

-[[!template id=sched title="asm-blox: a game based on WebAssembly that no one asked for" url="/2022/talks/asmblox" speakers="Zachary Romero" q-and-a="live"]] [[!template id=sched title="Tree-sitter beyond syntax highlighting" url="/2022/talks/treesitter" speakers="Abin Simon" q-and-a="IRC or pad after event"]] -[[!template id=sched title="Emacs should become a Wayland compositor" url="/2022/talks/wayland" speakers="Michael Bauer" q-and-a="live"]] [[!template id=sched title="lsp-bridge: complete asynchronous LSP client" url="/2022/talks/lspbridge" speakers="Andy Stewart" q-and-a="IRC"]] +[[!template id=sched title="asm-blox: a game based on WebAssembly that no one asked for" url="/2022/talks/asmblox" speakers="Zachary Romero" q-and-a="live"]] +[[!template id=sched title="Emacs should become a Wayland compositor" url="/2022/talks/wayland" speakers="Michael Bauer" q-and-a="live"]] [[!template id=sched title="Using SQLite as a data source: a framework and an example" url="/2022/talks/sqlite" speakers="Andrew Hyatt" q-and-a="live"]] [[!template id=sched title="Revisiting the anatomy of Emacs mail user agents" url="/2022/talks/mail" speakers="Mohsen BANAN" q-and-a="live"]] [[!template id=sched title="Maintaining the Maintainers: Attribution as an Economic Model for Open Source" url="/2022/talks/maint" speakers="Sid Kasivajhula" q-and-a="live"]] -- cgit v1.2.3