summaryrefslogtreecommitdiffstats
path: root/2022/organizers-notebook
diff options
context:
space:
mode:
authorSacha Chua <sacha@sachachua.com>2022-11-14 20:42:33 -0500
committerSacha Chua <sacha@sachachua.com>2022-11-14 20:42:33 -0500
commitefa807db92d177473eb826db6ee993b9bab024d0 (patch)
tree48d275b7fe28b40f30e8fecfe98bc436bab7bcd3 /2022/organizers-notebook
parent6df7c0fb8360ab9d2c2408523ba0fe4339d12b09 (diff)
downloademacsconf-wiki-efa807db92d177473eb826db6ee993b9bab024d0.tar.xz
emacsconf-wiki-efa807db92d177473eb826db6ee993b9bab024d0.zip
speaker-after-video
Diffstat (limited to '2022/organizers-notebook')
-rw-r--r--2022/organizers-notebook/index.org206
-rw-r--r--2022/organizers-notebook/schedule.svg2
2 files changed, 148 insertions, 60 deletions
diff --git a/2022/organizers-notebook/index.org b/2022/organizers-notebook/index.org
index ac6b46ff..1e2ab1c1 100644
--- a/2022/organizers-notebook/index.org
+++ b/2022/organizers-notebook/index.org
@@ -128,60 +128,143 @@ Roughly ordered by importance.
- Closing remarks Sun
- Thanks
-
-** TODO Write speaker update
+** DONE Write speaker e-mail for people who have already submitted their talks
+CLOSED: [2022-11-14 Mon 20:42]
:PROPERTIES:
-:CUSTOM_ID: speaker-2022-11-14
+:CUSTOM_ID: speaker-after-video
:END:
To: speakers who have already submitted their talks (so that we don't distract people who are still working on their talks)
+#+begin_src emacs-lisp
+(defun emacsconf-mail-speaker-after-video (group &optional template)
+ (interactive (list (emacsconf-mail-complete-email-group
+ (seq-filter (lambda (o) (plist-get o :intro-note))
+ (emacsconf-active-talks (emacsconf-get-talk-info))))))
+ (setq template (or template (emacsconf-mail-merge-get-template "speaker-after-video")))
+ (let ((talks (cdr group)))
+ (emacsconf-mail-prepare
+ template
+ (car group)
+ (list :speakers-short (plist-get (cadr group) :speakers-short)
+ :plural (if (= (length (cdr group)) 1) "" "s")
+ :email (plist-get (cadr group) :email)
+ :in-between (mapconcat (lambda (talk)
+ (emacsconf-surround "<https://media.emacsconf.org/2022/in-between/" (plist-get talk :slug) ".png>" ""))
+ (cdr group)
+ ", ")
+ :intro
+ (mapconcat (lambda (talk)
+ (string-join (org-wrap (emacsconf-surround "- " (plist-get talk :intro-note) "\n" "") 70) "\n"))
+ (cdr group)
+ "")
+ :backstage-slug
+ (mapconcat (lambda (talk)
+ (emacsconf-surround "<https://media.emacsconf.org/2022/backstage/#" (plist-get talk :slug) "" ""))
+ (cdr group)
+ ", ")
+ :chapters
+ (mapconcat (lambda (talk)
+ (format "<https://media.emacsconf.org/2022/backstage/#%s>:\n%s"
+ (plist-get talk :slug)
+ (mapconcat
+ (lambda (chapter)
+ (concat (format-seconds "%.2h:%z%.2m:%.2s"
+ (floor (/ (elt chapter 1) 1000)))
+ " "
+ (elt chapter 3) "\n"))
+ (subed-parse-file
+ (expand-file-name (concat (plist-get talk :video-slug) "--main--chapters.vtt") emacsconf-cache-dir)))))
+ (cdr group)
+ "\n\n")
+ :caption-note
+ (if (seq-find (lambda (o) (not (string= (plist-get o :status) "TO_STREAM"))) (cdr group))
+ " The captions haven't been fully edited yet, so please ignore any errors in the captions themselves."
+ "")
+ :urls
+ (mapconcat (lambda (o) (concat "<" emacsconf-base-url (plist-get o :url) ">"))
+ (cdr group) " , ")
+ :tech-check-note
+ (if (string-match "live" (or (mapconcat (lambda (o) (or (plist-get o :q-and-a) "")) (cdr group) " ") ""))
+ (format
+ "*Tech check*
+
+Since you're planning to do a live Q&A session, you may want to
+connect to the test BBB room at <%s> to make sure you can share
+your audio, your window or screen, and your webcam (optional). Sharing
+system audio or multi-monitor setups can sometimes be tricky, so
+please let us know if you need help figuring things out. You can
+double-check by connecting with a separate device, or you can arrange
+to meet with one of the tech-check volunteers
+(<https://emacsconf.org/2022/prepare/#tech-check>).${wrap}
+
+" emacsconf-test-bbb-room) "")))
+ (add-hook 'message-sent-hook
+ `(lambda ()
+ (mapc (lambda (o)
+ (emacsconf-add-to-talk-logbook o "Sent speaker-after-video email"))
+ (list
+ ,@(mapcar (lambda (talk) (plist-get talk :slug)) talks))))
+ nil t)))
+
+(defun emacsconf-mail-speakers-after-videos ()
+ (interactive)
+ (let* ((info (seq-filter (lambda (o) (plist-get o :intro-note))
+ (emacsconf-active-talks (emacsconf-get-talk-info))))
+ (grouped (seq-group-by (lambda (o) (plist-get o :email)) info))
+ (template (emacsconf-mail-merge-get-template "speaker-after-video")))
+ (mapc (lambda (group)
+ (emacsconf-mail-speaker-after-video group template))
+ grouped)))
-- if live
- tech check: ec22-test
-- if chapter markers are available, review those
-- one-sentence intro to talk
-- bio
+
+#+end_src
*** Template
:PROPERTIES:
-:CUSTOM_ID: speaker-after-video
+:EMAIL_ID: speaker-after-video
+:FUNCTION: emacsconf-mail-speaker-after-video
+:SUBJECT: EmacsConf: miscellaneous todos now that you've sent in your video${plural}
+:MAIL_FOLLOWUP_TO: emacsconf-submit@gnu.org, ${email}, sacha@sachachua.com
+:CC: emacsconf-submit@gnu.org
:END:
Hi, ${speakers-short}!
-Thank you for uploading your video early! Now that you've gotten that out of the way,
-let's get a few more things sorted out for a smooth EmacsConf 2022.
+Thank you for uploading your video early! Let's get a few more things
+sorted out for a smooth EmacsConf 2022.
-*Tech check*
+${tech-check-note}*Intro*
-Since you're planning to do a live Q&A session, you may want to
-connect to the test BBB room at ${test-url} to make sure you can share
-your audio, your window or screen, and your webcam (optional). Sharing
-system audio or multi-monitor setups can sometimes be tricky, so
-please let us know if you need help figuring things out. You can
-double-check by connecting with a separate device, or you can arrange
-to meet with one of the tech-check volunteers
-(<https://emacsconf.org/2022/prepare/#tech-check>).
+I've written a brief (and possibly inaccurate! =) ) intro that the
+host can read out before your talk while the in-between slide
+(${in-between}) is being displayed:
-*Intro*
+${intro}
+Would you like to tweak it to better reflect your talk?
*Chapter markers*
-I've added chapter markers to your video in the backstage area
-(<https://${backstage-user}:${backstage-password}@media.emacsconf.org/2022/backstage/>)
-to help with navigation. Please feel free to send me updated chapter
-markers if you want.
+I've added chapter markers to your video in the backstage area to help
+with navigation. You can click on them in the backstage area if you
+want to easily jump around, or review the list that I've included for
+your convenience:
+
+${chapters}
+If you prefer other headings or timestamps, please let me know!${caption-note}
*Bio, community support links*
People often want to learn more about speakers and show their
-appreciation. If you'd like to include an author bio and any social or
-support links to your talk page${plural}, please e-mail us the text
-that you'd like to include. You can also follow the instructions at
-<https://emacsconf.org/edit/> to edit your talk page${plural} directly
-yourself:${wrap}
+appreciation. If you'd like to include an author bio and any
+social/support links to your talk page${plural} (${urls}), please
+e-mail us the text that you'd like to include. You can also follow the
+instructions at <https://emacsconf.org/edit/> to edit your talk
+page${plural} directly yourself, if you want to.${wrap}
-${urls}
+Thanks again for all your contributions!
+
+Sacha
** TODO Prepare intros for the hosts to read :zaeph:
:PROPERTIES:
@@ -643,9 +726,12 @@ For some ideas on ways to help, you can check out
https://emacsconf.org/2022/volunteer/ . You can also suggest other
things you might be interested in.
-To ask questions or chat with other volunteers, please e-mail the
-mailing list at emacsconf-org@gnu.org or drop by #emacsconf on the
-libera.chat IRC network.
+You can ask questions or chat with other volunteers by e-mailing the
+mailing list at emacsconf-org@gnu.org or dropping by #emacsconf on the
+libera.chat IRC network. You can also e-mail me or
+emacsconf-org-private@gnu.org if you have private questions.
+
+Thank you again for your help! =)
Sacha Chua
@@ -682,7 +768,7 @@ ${year}! Last year, we were able to get almost all the talks captioned
in time for streaming. Participants found them very useful for
understanding different technical terms, names, accents, and so on.
We'd love to be able to pull that off again this year, and it would be
-great to have you on board.${wrap}
+great to have you on board.
We've set up ${backstage} as the backstage area where you can view the
videos and resources uploaded so far. You can access it with the
@@ -691,7 +777,7 @@ Please keep the backstage password and resources secret. If you see a
talk that you'd like to caption, you can e-mail me at
sacha@sachachua.com and I can reserve it for you. Then you can correct
any misrecognized words, fix capitalizations, remove filler words as
-needed, and so on.${wrap}
+needed, and so on.
You'll probably want to work with either the VTT or the TXT versions
(VTT is WebVTT format and has timestamps), but you can check the other
@@ -1282,7 +1368,8 @@ CLOSED: [2022-11-08 Tue 11:33]
- talk banners, akshay
-** TODO Make a linear hyperlist for managing EmacsConf :sachac:
+** DONE Make a linear hyperlist for managing EmacsConf :sachac:
+CLOSED: [2022-11-14 Mon 14:14]
:PROPERTIES:
:CUSTOM_ID: hyperlist
:END:
@@ -1315,8 +1402,8 @@ https://media.emacsconf.org/2022/backstage/index-dev.html
https://media.emacsconf.org/2022/backstage/hyperlists/
[[#coordination][How do we want to coordinate during the conference itself?]]
-*** TODO Try writing it to an Etherpad
-SCHEDULED: <2022-11-19 Sat>
+*** DONE Try writing it to an Etherpad
+CLOSED: [2022-11-14 Mon 14:14] SCHEDULED: <2022-11-19 Sat>
* Projects to bear in mind but which are not actual
:PROPERTIES:
@@ -2016,12 +2103,12 @@ fi
Hi, ${speakers-short}!
-Just a quick note to let you know that I've downloaded your
-submission for "${title}". We've added your submission to the backstage
-area at ${backstage} (username: ${backstage-user}, password:
+Just a quick note to let you know that I've downloaded your submission
+for "${title}". We've added your submission to the backstage area at
+${backstage} (username: ${backstage-user}, password:
${backstage-password}), and we'll post the files on your talk page
when the talk is public. A quick check shows that your video is about
-${minutes} minutes long (${time} minutes budgeted).${wrap}
+${minutes} minutes long (${time} minutes budgeted).
We'll be working on captioning it over the next few weeks. We'll
e-mail again a little closer to the conference with schedule updates
@@ -2030,7 +2117,7 @@ can upload it the same way you did the previous one.
Please feel free to e-mail us at emacsconf-submit@gnu.org if you need
help updating the talk wiki page at ${url} or if you have other
-questions.${wrap}
+questions.
Thank you so much for all the work you put into preparing a talk for
EmacsConf ${year}, and thank you for submitting the prerecorded video
@@ -3314,19 +3401,19 @@ ${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}
+information about how the Q&A will work as the conference gets closer.
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}
+check in with you if things change a lot. ${coordination-note}
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}
+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!
Sacha
*** Schedule change affecting dev
@@ -3620,9 +3707,11 @@ GROUP is (email . (talk talk))"
Hi, ${speakers-short}!
-${prerec-note}Here are the instructions for uploading the video${plural} for your talk${plural}.
-You can find the latest version of the instructions at https://emacsconf.org/2022/upload/ .
-There are two ways to upload your talk${plural} this year, so you can pick the one that works best for you:${wrap}
+${prerec-note}Here are the instructions for uploading the
+video${plural} for your talk${plural}. You can find the latest version
+of the instructions at https://emacsconf.org/2022/upload/ . There are
+two ways to upload your talk${plural} this year, so you can pick the
+one that works best for you:
- Web-based: https://ftp-upload.emacsconf.org , password emacsconf
- FTP: host: ftp-upload.emacsconf.org, port: 21, username: anonymous
@@ -3726,7 +3815,7 @@ quality of the reencoded video."))
Hi ${name}!
You're getting this e-mail because you are a ${role} for ${conf-name}
-${year}. (Thanks!)${wrap}
+${year}. (Thanks!)
I'm so excited! =) A number of speakers have uploaded their videos,
and OpenAI Whisper looks like a promising way to get automatically
@@ -3736,7 +3825,7 @@ We've set up ${backstage} as the backstage area where you can view the
videos and resources uploaded so far. You can access it with the
username "${backstage-user}" and the password "${backstage-password}".
Please keep the backstage password and other speakers' talk resources
-secret. ${backstage-use}${wrap}
+secret. ${backstage-use}
Thank you!
@@ -4139,7 +4228,7 @@ We've accepted your EmacsConf proposal${plural} for ${titles}! Thanks
for volunteering to share what you're learning about. I know it takes
a fair bit of work to prepare a presentation, so I appreciate that
you're taking the time to show what's possible with Emacs and
-encourage people to learn more.${wrap}
+encourage people to learn more.
---------------------------------------------------------------------
${talk-details-and-comments}
@@ -4166,7 +4255,7 @@ emacsconf-submit@gnu.org is in the To: or Cc:) so that we can confirm
that we've got the right email address for you and that messages can
get properly delivered. Also, would you like us to put ${email} as the
public contact information for you, or would you like us to add
-something else to the talk page${plural}?${wrap}
+something else to the talk page${plural}?
${page-urls}
@@ -4230,8 +4319,7 @@ you want to review it, suggest any corrections, or use the text in a
blog post or elsewhere. You can look at the attached file or watch
your video with closed captions at ${url} (username: emacsconf,
password: ${password}). I've also included the captions at the end of
-this e-mail for your convenience. Thanks again for your
-contribution!${wrap}
+this e-mail for your convenience. Thanks again for your contribution!
${captioner-thanks}
diff --git a/2022/organizers-notebook/schedule.svg b/2022/organizers-notebook/schedule.svg
index b6e8aa9a..1c5096bd 100644
--- a/2022/organizers-notebook/schedule.svg
+++ b/2022/organizers-notebook/schedule.svg
@@ -1 +1 @@
-<svg width="800" height="200" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" background="white"> <g transform="translate(0,0)"> <rect width="800" height="100" x="0" y="0" fill="white"></rect> <text font-size="10" fill="black" y="12" x="3"> Saturday</text> <a href="/2022/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"> <title> 9:00- 9:05 Saturday opening remarks</title> <rect x="0" y="15" opacity="0.8" width="7" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(5,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sat-open</text></g></a> <a href="/2022/talks/journalism" title="Emacs journalism (or everything's a nail if you hit it with Emacs)" data-slug="journalism"> <title> 9:05- 9:25 Emacs journalism (or everything's a nail if you hit it with Emacs)</title> <rect x="7" y="15" opacity="0.8" width="31" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(36,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> journalism</text></g></a> <a href="/2022/talks/school" title="Back to school with Emacs" data-slug="school"> <title> 9:45-10:05 Back to school with Emacs</title> <rect x="70" y="15" opacity="0.8" width="31" height="34" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(99,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> school</text></g></a> <a href="/2022/talks/handwritten" title="How to incorporate handwritten notes into Emacs Orgmode" data-slug="handwritten"> <title> 10:15-10:25 How to incorporate handwritten notes into Emacs Orgmode</title> <rect x="117" y="15" opacity="0.8" width="15" height="34" stroke="black" stroke-dasharray="" fill="green"></rect> <g transform="translate(130,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> handwritten</text></g></a> <a href="/2022/talks/science" title="Writing and organizing literature notes for scientific writing" data-slug="science"> <title> 10:55-11:15 Writing and organizing literature notes for scientific writing</title> <rect x="180" y="15" opacity="0.8" width="31" height="34" stroke="black" stroke-dasharray="" fill="lightgreen"></rect> <g transform="translate(209,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> science</text></g></a> <a href="/2022/talks/buddy" title="The Emacs Buddy initiative" data-slug="buddy"> <title> 11:35-11:45 The Emacs Buddy initiative</title> <rect x="243" y="15" opacity="0.8" width="15" height="34" stroke="black" stroke-dasharray="5,5,5" fill="green"></rect> <g transform="translate(256,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> buddy</text></g></a> <a href="/2022/talks/meetups" title="Attending and organizing Emacs meetups" data-slug="meetups"> <title> 1:05- 1:25 Attending and organizing Emacs meetups</title> <rect x="384" y="15" opacity="0.8" width="31" height="34" stroke="black" stroke-dasharray="" fill="green"></rect> <g transform="translate(413,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> meetups</text></g></a> <a href="/2022/talks/community" title="The ship that builds itself: How we used Emacs to develop a workshop for communities" data-slug="community"> <title> 1:45- 1:55 The ship that builds itself: How we used Emacs to develop a workshop for communities</title> <rect x="447" y="15" opacity="0.8" width="15" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(460,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> community</text></g></a> <a href="/2022/talks/realestate" title="Real estate and Org table formulas" data-slug="realestate"> <title> 2:25- 2:50 Real estate and Org table formulas</title> <rect x="509" y="15" opacity="0.8" width="39" height="34" stroke="black" stroke-dasharray="5,5,5" fill="lightgreen"></rect> <g transform="translate(546,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> realestate</text></g></a> <a href="/2022/talks/health" title="Health data journaling and visualization with Org Mode and GNUplot" data-slug="health"> <title> 3:00- 3:20 Health data journaling and visualization with Org Mode and GNUplot</title> <rect x="564" y="15" opacity="0.8" width="31" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(593,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> health</text></g></a> <a href="/2022/talks/jupyter" title="Edit live Jupyter notebook cells with Emacs" data-slug="jupyter"> <title> 3:40- 3:50 Edit live Jupyter notebook cells with Emacs</title> <rect x="627" y="15" opacity="0.8" width="15" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(640,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> jupyter</text></g></a> <a href="/2022/talks/buttons" title="Linking personal info with Hyperbole implicit buttons" data-slug="buttons"> <title> 4:10- 4:20 Linking personal info with Hyperbole implicit buttons</title> <rect x="674" y="15" opacity="0.8" width="15" height="34" stroke="black" stroke-dasharray="" fill="green"></rect> <g transform="translate(687,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> buttons</text></g></a> <a href="/2022/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"> <title> 4:50- 4:55 Saturday closing remarks</title> <rect x="737" y="15" opacity="0.8" width="7" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(742,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sat-close</text></g></a> <a href="/2022/talks/treesitter" title="Tree-sitter beyond syntax highlighting" data-slug="treesitter"> <title> 10:00-10:10 Tree-sitter beyond syntax highlighting</title> <rect x="94" y="50" opacity="0.8" width="15" height="34" stroke="black" stroke-dasharray="5,5,5" fill="green"></rect> <g transform="translate(107,83)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> treesitter</text></g></a> <a href="/2022/talks/lspbridge" title="lsp-bridge: complete asynchronous LSP client" data-slug="lspbridge"> <title> 10:20-10:40 lsp-bridge: complete asynchronous LSP client</title> <rect x="125" y="50" opacity="0.8" width="31" height="34" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(154,83)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> lspbridge</text></g></a> <a href="/2022/talks/asmblox" title="asm-blox: a game based on WebAssembly that no one asked for" data-slug="asmblox"> <title> 10:50-11:07 asm-blox: a game based on WebAssembly that no one asked for</title> <rect x="172" y="50" opacity="0.8" width="26" height="34" stroke="black" stroke-dasharray="" fill="green"></rect> <g transform="translate(196,83)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> asmblox</text></g></a> <a href="/2022/talks/wayland" title="Emacs should become a Wayland compositor" data-slug="wayland"> <title> 11:25-11:35 Emacs should become a Wayland compositor</title> <rect x="227" y="50" opacity="0.8" width="15" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(240,83)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> wayland</text></g></a> <a href="/2022/talks/sqlite" title="Using SQLite as a data source: a framework and an example" data-slug="sqlite"> <title> 1:00- 1:20 Using SQLite as a data source: a framework and an example</title> <rect x="376" y="50" opacity="0.8" width="31" height="34" stroke="black" stroke-dasharray="" fill="green"></rect> <g transform="translate(405,83)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sqlite</text></g></a> <a href="/2022/talks/mail" title="Revisiting the anatomy of Emacs mail user agents" data-slug="mail"> <title> 1:45- 2:15 Revisiting the anatomy of Emacs mail user agents</title> <rect x="447" y="50" opacity="0.8" width="47" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(492,83)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> mail</text></g></a> <a href="/2022/talks/maint" title="Maintaining the Maintainers: Attribution as an Economic Model for Open Source" data-slug="maint"> <title> 2:50- 3:10 Maintaining the Maintainers: Attribution as an Economic Model for Open Source</title> <rect x="549" y="50" opacity="0.8" width="31" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(578,83)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> maint</text></g></a> <a href="/2022/talks/eev" title="Bidirectional links with eev" data-slug="eev"> <title> 3:35- 3:40 Bidirectional links with eev</title> <rect x="619" y="50" opacity="0.8" width="7" height="34" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(624,83)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> eev</text></g></a> <a href="/2022/talks/python" title="Short hyperlinks to Python docs" data-slug="python"> <title> 3:50- 3:55 Short hyperlinks to Python docs</title> <rect x="643" y="50" opacity="0.8" width="7" height="34" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(648,83)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> python</text></g></a> <a href="/2022/talks/haskell" title="Haskell code exploration with Emacs" data-slug="haskell"> <title> 4:05- 4:35 Haskell code exploration with Emacs</title> <rect x="666" y="50" opacity="0.8" width="47" height="34" stroke="black" stroke-dasharray="" fill="lightgreen"></rect> <g transform="translate(711,83)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> haskell</text></g></a> <g transform="translate(0,15)"> <line stroke="lightgray" x1="0" y1="0" x2="0" y2="70"></line> <text fill="darkgray" x="0" y="83" font-size="10" text-anchor="middle"> 9</text></g> <g transform="translate(94,15)"> <line stroke="lightgray" x1="0" y1="0" x2="0" y2="70"></line> <text fill="darkgray" x="0" y="83" font-size="10" text-anchor="middle"> 10</text></g> <g transform="translate(188,15)"> <line stroke="lightgray" x1="0" y1="0" x2="0" y2="70"></line> <text fill="darkgray" x="0" y="83" font-size="10" text-anchor="middle"> 11</text></g> <g transform="translate(282,15)"> <line stroke="lightgray" x1="0" y1="0" x2="0" y2="70"></line> <text fill="darkgray" x="0" y="83" font-size="10" text-anchor="middle"> 12</text></g> <g transform="translate(376,15)"> <line stroke="lightgray" x1="0" y1="0" x2="0" y2="70"></line> <text fill="darkgray" x="0" y="83" font-size="10" text-anchor="middle"> 1</text></g> <g transform="translate(470,15)"> <line stroke="lightgray" x1="0" y1="0" x2="0" y2="70"></line> <text fill="darkgray" x="0" y="83" font-size="10" text-anchor="middle"> 2</text></g> <g transform="translate(564,15)"> <line stroke="lightgray" x1="0" y1="0" x2="0" y2="70"></line> <text fill="darkgray" x="0" y="83" font-size="10" text-anchor="middle"> 3</text></g> <g transform="translate(658,15)"> <line stroke="lightgray" x1="0" y1="0" x2="0" y2="70"></line> <text fill="darkgray" x="0" y="83" font-size="10" text-anchor="middle"> 4</text></g> <g transform="translate(752,15)"> <line stroke="lightgray" x1="0" y1="0" x2="0" y2="70"></line> <text fill="darkgray" x="0" y="83" font-size="10" text-anchor="middle"> 5</text></g></g> <g transform="translate(0,100)"> <rect width="800" height="100" x="0" y="0" fill="white"></rect> <text font-size="10" fill="black" y="12" x="3"> Sunday</text> <a href="/2022/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"> <title> 9:00- 9:05 Sunday opening remarks</title> <rect x="0" y="15" opacity="0.8" width="7" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(5,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sun-open</text></g></a> <a href="/2022/talks/survey" title="Results of the 2022 Emacs Survey" data-slug="survey"> <title> 9:05- 9:25 Results of the 2022 Emacs Survey</title> <rect x="7" y="15" opacity="0.8" width="31" height="34" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(36,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> survey</text></g></a> <a href="/2022/talks/orgyear" title="This Year in Org" data-slug="orgyear"> <title> 9:35- 9:45 This Year in Org</title> <rect x="54" y="15" opacity="0.8" width="15" height="34" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(67,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> orgyear</text></g></a> <a href="/2022/talks/rolodex" title="Build a Zettelkasten with the Hyperbole Rolodex" data-slug="rolodex"> <title> 10:00-10:20 Build a Zettelkasten with the Hyperbole Rolodex</title> <rect x="94" y="15" opacity="0.8" width="31" height="34" stroke="black" stroke-dasharray="5,5,5" fill="green"></rect> <g transform="translate(123,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> rolodex</text></g></a> <a href="/2022/talks/orgsuperlinks" title="Linking headings with org-super-links (poor-man's Zettelkasten)" data-slug="orgsuperlinks"> <title> 10:40-10:50 Linking headings with org-super-links (poor-man's Zettelkasten)</title> <rect x="156" y="15" opacity="0.8" width="15" height="34" stroke="black" stroke-dasharray="" fill="green"></rect> <g transform="translate(169,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> orgsuperlinks</text></g></a> <a href="/2022/talks/orgvm" title="orgvm: a simple HTTP server for org" data-slug="orgvm"> <title> 11:10-11:20 orgvm: a simple HTTP server for org</title> <rect x="203" y="15" opacity="0.8" width="15" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(216,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> orgvm</text></g></a> <a href="/2022/talks/hyperorg" title="Powerful productivity with Hyperbole and Org Mode" data-slug="hyperorg"> <title> 1:00- 1:30 Powerful productivity with Hyperbole and Org Mode</title> <rect x="376" y="15" opacity="0.8" width="47" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(421,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> hyperorg</text></g></a> <a href="/2022/talks/workflows" title="Org workflows for developers" data-slug="workflows"> <title> 1:50- 2:10 Org workflows for developers</title> <rect x="454" y="15" opacity="0.8" width="31" height="34" stroke="black" stroke-dasharray="" fill="lightgreen"></rect> <g transform="translate(483,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> workflows</text></g></a> <a href="/2022/talks/grail" title="GRAIL---A Generalized Representation and Aggregation of Information Layers" data-slug="grail"> <title> 2:30- 2:50 GRAIL---A Generalized Representation and Aggregation of Information Layers</title> <rect x="517" y="15" opacity="0.8" width="31" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(546,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> grail</text></g></a> <a href="/2022/talks/indieweb" title="Putting Org Mode on the Indieweb" data-slug="indieweb"> <title> 3:20- 3:40 Putting Org Mode on the Indieweb</title> <rect x="596" y="15" opacity="0.8" width="31" height="34" stroke="black" stroke-dasharray="" fill="lightgreen"></rect> <g transform="translate(625,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> indieweb</text></g></a> <a href="/2022/talks/devel" title="Emacs development updates" data-slug="devel"> <title> 4:00- 4:05 Emacs development updates</title> <rect x="658" y="15" opacity="0.8" width="7" height="34" stroke="black" stroke-dasharray="5,5,5" fill="green"></rect> <g transform="translate(663,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> devel</text></g></a> <a href="/2022/talks/fanfare" title="Fanfare for the Common Emacs User" data-slug="fanfare"> <title> 4:15- 4:25 Fanfare for the Common Emacs User</title> <rect x="682" y="15" opacity="0.8" width="15" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(695,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> fanfare</text></g></a> <a href="/2022/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"> <title> 4:50- 5:00 Sunday closing remarks</title> <rect x="737" y="15" opacity="0.8" width="15" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(750,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sun-close</text></g></a> <a href="/2022/talks/rde" title="rde Emacs introduction" data-slug="rde"> <title> 10:00-10:25 rde Emacs introduction</title> <rect x="94" y="50" opacity="0.8" width="39" height="34" stroke="black" stroke-dasharray="" fill="green"></rect> <g transform="translate(131,83)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> rde</text></g></a> <a href="/2022/talks/justl" title="justl: Driving recipes within Emacs" data-slug="justl"> <title> 10:45-10:55 justl: Driving recipes within Emacs</title> <rect x="164" y="50" opacity="0.8" width="15" height="34" stroke="black" stroke-dasharray="5,5,5" fill="green"></rect> <g transform="translate(177,83)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> justl</text></g></a> <a href="/2022/talks/detached" title="Getting detached from Emacs" data-slug="detached"> <title> 1:00- 1:10 Getting detached from Emacs</title> <rect x="376" y="50" opacity="0.8" width="15" height="34" stroke="black" stroke-dasharray="" fill="green"></rect> <g transform="translate(389,83)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> detached</text></g></a> <a href="/2022/talks/eshell" title="Top 10 reasons why you should be using Eshell" data-slug="eshell"> <title> 1:35- 1:45 Top 10 reasons why you should be using Eshell</title> <rect x="431" y="50" opacity="0.8" width="15" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(444,83)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> eshell</text></g></a> <a href="/2022/talks/async" title="Emacs was async before async was cool" data-slug="async"> <title> 2:10- 2:30 Emacs was async before async was cool</title> <rect x="486" y="50" opacity="0.8" width="31" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(515,83)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> async</text></g></a> <a href="/2022/talks/dbus" title="The Wheels on D-Bus" data-slug="dbus"> <title> 3:05- 3:25 The Wheels on D-Bus</title> <rect x="572" y="50" opacity="0.8" width="31" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(601,83)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> dbus</text></g></a> <a href="/2022/talks/localizing" title="Pre-localizing Emacs" data-slug="localizing"> <title> 4:00- 4:20 Pre-localizing Emacs</title> <rect x="658" y="50" opacity="0.8" width="31" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(687,83)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> localizing</text></g></a> <g transform="translate(0,15)"> <line stroke="lightgray" x1="0" y1="0" x2="0" y2="70"></line> <text fill="darkgray" x="0" y="83" font-size="10" text-anchor="middle"> 9</text></g> <g transform="translate(94,15)"> <line stroke="lightgray" x1="0" y1="0" x2="0" y2="70"></line> <text fill="darkgray" x="0" y="83" font-size="10" text-anchor="middle"> 10</text></g> <g transform="translate(188,15)"> <line stroke="lightgray" x1="0" y1="0" x2="0" y2="70"></line> <text fill="darkgray" x="0" y="83" font-size="10" text-anchor="middle"> 11</text></g> <g transform="translate(282,15)"> <line stroke="lightgray" x1="0" y1="0" x2="0" y2="70"></line> <text fill="darkgray" x="0" y="83" font-size="10" text-anchor="middle"> 12</text></g> <g transform="translate(376,15)"> <line stroke="lightgray" x1="0" y1="0" x2="0" y2="70"></line> <text fill="darkgray" x="0" y="83" font-size="10" text-anchor="middle"> 1</text></g> <g transform="translate(470,15)"> <line stroke="lightgray" x1="0" y1="0" x2="0" y2="70"></line> <text fill="darkgray" x="0" y="83" font-size="10" text-anchor="middle"> 2</text></g> <g transform="translate(564,15)"> <line stroke="lightgray" x1="0" y1="0" x2="0" y2="70"></line> <text fill="darkgray" x="0" y="83" font-size="10" text-anchor="middle"> 3</text></g> <g transform="translate(658,15)"> <line stroke="lightgray" x1="0" y1="0" x2="0" y2="70"></line> <text fill="darkgray" x="0" y="83" font-size="10" text-anchor="middle"> 4</text></g> <g transform="translate(752,15)"> <line stroke="lightgray" x1="0" y1="0" x2="0" y2="70"></line> <text fill="darkgray" x="0" y="83" font-size="10" text-anchor="middle"> 5</text></g></g></svg> \ No newline at end of file
+<svg width="800" height="200" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" background="white"> <g transform="translate(0,0)"> <rect width="800" height="100" x="0" y="0" fill="white"></rect> <text font-size="10" fill="black" y="12" x="3"> Saturday</text> <a href="/2022/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"> <title> 9:00- 9:05 Saturday opening remarks</title> <rect x="0" y="15" opacity="0.8" width="7" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(5,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sat-open</text></g></a> <a href="/2022/talks/journalism" title="Emacs journalism (or everything's a nail if you hit it with Emacs)" data-slug="journalism"> <title> 9:05- 9:25 Emacs journalism (or everything's a nail if you hit it with Emacs)</title> <rect x="7" y="15" opacity="0.8" width="31" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(36,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> journalism</text></g></a> <a href="/2022/talks/school" title="Back to school with Emacs" data-slug="school"> <title> 9:45-10:05 Back to school with Emacs</title> <rect x="70" y="15" opacity="0.8" width="31" height="34" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(99,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> school</text></g></a> <a href="/2022/talks/handwritten" title="How to incorporate handwritten notes into Emacs Orgmode" data-slug="handwritten"> <title> 10:15-10:25 How to incorporate handwritten notes into Emacs Orgmode</title> <rect x="117" y="15" opacity="0.8" width="15" height="34" stroke="black" stroke-dasharray="" fill="green"></rect> <g transform="translate(130,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> handwritten</text></g></a> <a href="/2022/talks/science" title="Writing and organizing literature notes for scientific writing" data-slug="science"> <title> 10:55-11:15 Writing and organizing literature notes for scientific writing</title> <rect x="180" y="15" opacity="0.8" width="31" height="34" stroke="black" stroke-dasharray="" fill="lightgreen"></rect> <g transform="translate(209,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> science</text></g></a> <a href="/2022/talks/buddy" title="The Emacs Buddy initiative" data-slug="buddy"> <title> 11:35-11:45 The Emacs Buddy initiative</title> <rect x="243" y="15" opacity="0.8" width="15" height="34" stroke="black" stroke-dasharray="5,5,5" fill="green"></rect> <g transform="translate(256,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> buddy</text></g></a> <a href="/2022/talks/meetups" title="Attending and organizing Emacs meetups" data-slug="meetups"> <title> 1:05- 1:25 Attending and organizing Emacs meetups</title> <rect x="384" y="15" opacity="0.8" width="31" height="34" stroke="black" stroke-dasharray="" fill="green"></rect> <g transform="translate(413,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> meetups</text></g></a> <a href="/2022/talks/community" title="The ship that builds itself: How we used Emacs to develop a workshop for communities" data-slug="community"> <title> 1:45- 1:55 The ship that builds itself: How we used Emacs to develop a workshop for communities</title> <rect x="447" y="15" opacity="0.8" width="15" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(460,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> community</text></g></a> <a href="/2022/talks/realestate" title="Real estate and Org table formulas" data-slug="realestate"> <title> 2:25- 2:50 Real estate and Org table formulas</title> <rect x="509" y="15" opacity="0.8" width="39" height="34" stroke="black" stroke-dasharray="5,5,5" fill="lightgreen"></rect> <g transform="translate(546,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> realestate</text></g></a> <a href="/2022/talks/health" title="Health data journaling and visualization with Org Mode and GNUplot" data-slug="health"> <title> 3:00- 3:20 Health data journaling and visualization with Org Mode and GNUplot</title> <rect x="564" y="15" opacity="0.8" width="31" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(593,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> health</text></g></a> <a href="/2022/talks/jupyter" title="Edit live Jupyter notebook cells with Emacs" data-slug="jupyter"> <title> 3:40- 3:50 Edit live Jupyter notebook cells with Emacs</title> <rect x="627" y="15" opacity="0.8" width="15" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(640,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> jupyter</text></g></a> <a href="/2022/talks/buttons" title="Linking personal info with Hyperbole implicit buttons" data-slug="buttons"> <title> 4:10- 4:20 Linking personal info with Hyperbole implicit buttons</title> <rect x="674" y="15" opacity="0.8" width="15" height="34" stroke="black" stroke-dasharray="" fill="green"></rect> <g transform="translate(687,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> buttons</text></g></a> <a href="/2022/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"> <title> 4:50- 4:55 Saturday closing remarks</title> <rect x="737" y="15" opacity="0.8" width="7" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(742,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sat-close</text></g></a> <a href="/2022/talks/treesitter" title="Tree-sitter beyond syntax highlighting" data-slug="treesitter"> <title> 10:00-10:10 Tree-sitter beyond syntax highlighting</title> <rect x="94" y="50" opacity="0.8" width="15" height="34" stroke="black" stroke-dasharray="5,5,5" fill="green"></rect> <g transform="translate(107,83)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> treesitter</text></g></a> <a href="/2022/talks/lspbridge" title="lsp-bridge: complete asynchronous LSP client" data-slug="lspbridge"> <title> 10:20-10:40 lsp-bridge: complete asynchronous LSP client</title> <rect x="125" y="50" opacity="0.8" width="31" height="34" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(154,83)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> lspbridge</text></g></a> <a href="/2022/talks/asmblox" title="asm-blox: a game based on WebAssembly that no one asked for" data-slug="asmblox"> <title> 10:50-11:07 asm-blox: a game based on WebAssembly that no one asked for</title> <rect x="172" y="50" opacity="0.8" width="26" height="34" stroke="black" stroke-dasharray="" fill="green"></rect> <g transform="translate(196,83)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> asmblox</text></g></a> <a href="/2022/talks/wayland" title="Emacs should become a Wayland compositor" data-slug="wayland"> <title> 11:25-11:35 Emacs should become a Wayland compositor</title> <rect x="227" y="50" opacity="0.8" width="15" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(240,83)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> wayland</text></g></a> <a href="/2022/talks/sqlite" title="Using SQLite as a data source: a framework and an example" data-slug="sqlite"> <title> 1:00- 1:20 Using SQLite as a data source: a framework and an example</title> <rect x="376" y="50" opacity="0.8" width="31" height="34" stroke="black" stroke-dasharray="" fill="green"></rect> <g transform="translate(405,83)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sqlite</text></g></a> <a href="/2022/talks/mail" title="Revisiting the anatomy of Emacs mail user agents" data-slug="mail"> <title> 1:45- 2:15 Revisiting the anatomy of Emacs mail user agents</title> <rect x="447" y="50" opacity="0.8" width="47" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(492,83)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> mail</text></g></a> <a href="/2022/talks/maint" title="Maintaining the Maintainers: Attribution as an Economic Model for Open Source" data-slug="maint"> <title> 2:50- 3:10 Maintaining the Maintainers: Attribution as an Economic Model for Open Source</title> <rect x="549" y="50" opacity="0.8" width="31" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(578,83)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> maint</text></g></a> <a href="/2022/talks/eev" title="Bidirectional links with eev" data-slug="eev"> <title> 3:35- 3:40 Bidirectional links with eev</title> <rect x="619" y="50" opacity="0.8" width="7" height="34" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(624,83)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> eev</text></g></a> <a href="/2022/talks/python" title="Short hyperlinks to Python docs" data-slug="python"> <title> 3:50- 3:55 Short hyperlinks to Python docs</title> <rect x="643" y="50" opacity="0.8" width="7" height="34" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(648,83)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> python</text></g></a> <a href="/2022/talks/haskell" title="Haskell code exploration with Emacs" data-slug="haskell"> <title> 4:05- 4:35 Haskell code exploration with Emacs</title> <rect x="666" y="50" opacity="0.8" width="47" height="34" stroke="black" stroke-dasharray="" fill="lightgreen"></rect> <g transform="translate(711,83)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> haskell</text></g></a> <g transform="translate(0,15)"> <line stroke="lightgray" x1="0" y1="0" x2="0" y2="70"></line> <text fill="darkgray" x="0" y="83" font-size="10" text-anchor="middle"> 9</text></g> <g transform="translate(94,15)"> <line stroke="lightgray" x1="0" y1="0" x2="0" y2="70"></line> <text fill="darkgray" x="0" y="83" font-size="10" text-anchor="middle"> 10</text></g> <g transform="translate(188,15)"> <line stroke="lightgray" x1="0" y1="0" x2="0" y2="70"></line> <text fill="darkgray" x="0" y="83" font-size="10" text-anchor="middle"> 11</text></g> <g transform="translate(282,15)"> <line stroke="lightgray" x1="0" y1="0" x2="0" y2="70"></line> <text fill="darkgray" x="0" y="83" font-size="10" text-anchor="middle"> 12</text></g> <g transform="translate(376,15)"> <line stroke="lightgray" x1="0" y1="0" x2="0" y2="70"></line> <text fill="darkgray" x="0" y="83" font-size="10" text-anchor="middle"> 1</text></g> <g transform="translate(470,15)"> <line stroke="lightgray" x1="0" y1="0" x2="0" y2="70"></line> <text fill="darkgray" x="0" y="83" font-size="10" text-anchor="middle"> 2</text></g> <g transform="translate(564,15)"> <line stroke="lightgray" x1="0" y1="0" x2="0" y2="70"></line> <text fill="darkgray" x="0" y="83" font-size="10" text-anchor="middle"> 3</text></g> <g transform="translate(658,15)"> <line stroke="lightgray" x1="0" y1="0" x2="0" y2="70"></line> <text fill="darkgray" x="0" y="83" font-size="10" text-anchor="middle"> 4</text></g> <g transform="translate(752,15)"> <line stroke="lightgray" x1="0" y1="0" x2="0" y2="70"></line> <text fill="darkgray" x="0" y="83" font-size="10" text-anchor="middle"> 5</text></g></g> <g transform="translate(0,100)"> <rect width="800" height="100" x="0" y="0" fill="white"></rect> <text font-size="10" fill="black" y="12" x="3"> Sunday</text> <a href="/2022/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"> <title> 9:00- 9:05 Sunday opening remarks</title> <rect x="0" y="15" opacity="0.8" width="7" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(5,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sun-open</text></g></a> <a href="/2022/talks/survey" title="Results of the 2022 Emacs Survey" data-slug="survey"> <title> 9:05- 9:25 Results of the 2022 Emacs Survey</title> <rect x="7" y="15" opacity="0.8" width="31" height="34" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(36,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> survey</text></g></a> <a href="/2022/talks/orgyear" title="This Year in Org" data-slug="orgyear"> <title> 9:35- 9:45 This Year in Org</title> <rect x="54" y="15" opacity="0.8" width="15" height="34" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(67,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> orgyear</text></g></a> <a href="/2022/talks/rolodex" title="Build a Zettelkasten with the Hyperbole Rolodex" data-slug="rolodex"> <title> 10:00-10:20 Build a Zettelkasten with the Hyperbole Rolodex</title> <rect x="94" y="15" opacity="0.8" width="31" height="34" stroke="black" stroke-dasharray="5,5,5" fill="green"></rect> <g transform="translate(123,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> rolodex</text></g></a> <a href="/2022/talks/orgsuperlinks" title="Linking headings with org-super-links (poor-man's Zettelkasten)" data-slug="orgsuperlinks"> <title> 10:40-10:50 Linking headings with org-super-links (poor-man's Zettelkasten)</title> <rect x="156" y="15" opacity="0.8" width="15" height="34" stroke="black" stroke-dasharray="" fill="green"></rect> <g transform="translate(169,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> orgsuperlinks</text></g></a> <a href="/2022/talks/orgvm" title="orgvm: a simple HTTP server for org" data-slug="orgvm"> <title> 11:10-11:20 orgvm: a simple HTTP server for org</title> <rect x="203" y="15" opacity="0.8" width="15" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(216,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> orgvm</text></g></a> <a href="/2022/talks/hyperorg" title="Powerful productivity with Hyperbole and Org Mode" data-slug="hyperorg"> <title> 1:00- 1:30 Powerful productivity with Hyperbole and Org Mode</title> <rect x="376" y="15" opacity="0.8" width="47" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(421,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> hyperorg</text></g></a> <a href="/2022/talks/workflows" title="Org workflows for developers" data-slug="workflows"> <title> 1:50- 2:10 Org workflows for developers</title> <rect x="454" y="15" opacity="0.8" width="31" height="34" stroke="black" stroke-dasharray="" fill="lightgreen"></rect> <g transform="translate(483,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> workflows</text></g></a> <a href="/2022/talks/grail" title="GRAIL---A Generalized Representation and Aggregation of Information Layers" data-slug="grail"> <title> 2:30- 2:50 GRAIL---A Generalized Representation and Aggregation of Information Layers</title> <rect x="517" y="15" opacity="0.8" width="31" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(546,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> grail</text></g></a> <a href="/2022/talks/indieweb" title="Putting Org Mode on the Indieweb" data-slug="indieweb"> <title> 3:20- 3:40 Putting Org Mode on the Indieweb</title> <rect x="596" y="15" opacity="0.8" width="31" height="34" stroke="black" stroke-dasharray="" fill="lightgreen"></rect> <g transform="translate(625,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> indieweb</text></g></a> <a href="/2022/talks/devel" title="Emacs development updates" data-slug="devel"> <title> 4:00- 4:05 Emacs development updates</title> <rect x="658" y="15" opacity="0.8" width="7" height="34" stroke="black" stroke-dasharray="5,5,5" fill="green"></rect> <g transform="translate(663,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> devel</text></g></a> <a href="/2022/talks/fanfare" title="Fanfare for the Common Emacs User" data-slug="fanfare"> <title> 4:15- 4:25 Fanfare for the Common Emacs User</title> <rect x="682" y="15" opacity="0.8" width="15" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(695,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> fanfare</text></g></a> <a href="/2022/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"> <title> 4:50- 5:00 Sunday closing remarks</title> <rect x="737" y="15" opacity="0.8" width="15" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(750,48)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sun-close</text></g></a> <a href="/2022/talks/rde" title="rde Emacs introduction" data-slug="rde"> <title> 10:00-10:25 rde Emacs introduction</title> <rect x="94" y="50" opacity="0.8" width="39" height="34" stroke="black" stroke-dasharray="" fill="green"></rect> <g transform="translate(131,83)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> rde</text></g></a> <a href="/2022/talks/justl" title="justl: Driving recipes within Emacs" data-slug="justl"> <title> 10:45-10:55 justl: Driving recipes within Emacs</title> <rect x="164" y="50" opacity="0.8" width="15" height="34" stroke="black" stroke-dasharray="5,5,5" fill="green"></rect> <g transform="translate(177,83)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> justl</text></g></a> <a href="/2022/talks/detached" title="Getting detached from Emacs" data-slug="detached"> <title> 1:00- 1:10 Getting detached from Emacs</title> <rect x="376" y="50" opacity="0.8" width="15" height="34" stroke="black" stroke-dasharray="" fill="green"></rect> <g transform="translate(389,83)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> detached</text></g></a> <a href="/2022/talks/eshell" title="Top 10 reasons why you should be using Eshell" data-slug="eshell"> <title> 1:35- 1:45 Top 10 reasons why you should be using Eshell</title> <rect x="431" y="50" opacity="0.8" width="15" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(444,83)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> eshell</text></g></a> <a href="/2022/talks/async" title="Emacs was async before async was cool" data-slug="async"> <title> 2:10- 2:30 Emacs was async before async was cool</title> <rect x="486" y="50" opacity="0.8" width="31" height="34" stroke="black" stroke-dasharray="" fill="lightgreen"></rect> <g transform="translate(515,83)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> async</text></g></a> <a href="/2022/talks/dbus" title="The Wheels on D-Bus" data-slug="dbus"> <title> 3:05- 3:25 The Wheels on D-Bus</title> <rect x="572" y="50" opacity="0.8" width="31" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(601,83)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> dbus</text></g></a> <a href="/2022/talks/localizing" title="Pre-localizing Emacs" data-slug="localizing"> <title> 4:00- 4:20 Pre-localizing Emacs</title> <rect x="658" y="50" opacity="0.8" width="31" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(687,83)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> localizing</text></g></a> <g transform="translate(0,15)"> <line stroke="lightgray" x1="0" y1="0" x2="0" y2="70"></line> <text fill="darkgray" x="0" y="83" font-size="10" text-anchor="middle"> 9</text></g> <g transform="translate(94,15)"> <line stroke="lightgray" x1="0" y1="0" x2="0" y2="70"></line> <text fill="darkgray" x="0" y="83" font-size="10" text-anchor="middle"> 10</text></g> <g transform="translate(188,15)"> <line stroke="lightgray" x1="0" y1="0" x2="0" y2="70"></line> <text fill="darkgray" x="0" y="83" font-size="10" text-anchor="middle"> 11</text></g> <g transform="translate(282,15)"> <line stroke="lightgray" x1="0" y1="0" x2="0" y2="70"></line> <text fill="darkgray" x="0" y="83" font-size="10" text-anchor="middle"> 12</text></g> <g transform="translate(376,15)"> <line stroke="lightgray" x1="0" y1="0" x2="0" y2="70"></line> <text fill="darkgray" x="0" y="83" font-size="10" text-anchor="middle"> 1</text></g> <g transform="translate(470,15)"> <line stroke="lightgray" x1="0" y1="0" x2="0" y2="70"></line> <text fill="darkgray" x="0" y="83" font-size="10" text-anchor="middle"> 2</text></g> <g transform="translate(564,15)"> <line stroke="lightgray" x1="0" y1="0" x2="0" y2="70"></line> <text fill="darkgray" x="0" y="83" font-size="10" text-anchor="middle"> 3</text></g> <g transform="translate(658,15)"> <line stroke="lightgray" x1="0" y1="0" x2="0" y2="70"></line> <text fill="darkgray" x="0" y="83" font-size="10" text-anchor="middle"> 4</text></g> <g transform="translate(752,15)"> <line stroke="lightgray" x1="0" y1="0" x2="0" y2="70"></line> <text fill="darkgray" x="0" y="83" font-size="10" text-anchor="middle"> 5</text></g></g></svg> \ No newline at end of file