From 75a0314d0c55ceb4d27a93058718a8a23eaef519 Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Sun, 1 Dec 2024 20:46:39 -0500 Subject: watch updates --- 2024/organizers-notebook/index.org | 268 ++++++++++++++++++++++++++++++++++--- 2024/watch/dev.md | 4 +- 2024/watch/gen.md | 10 +- 2024/watch/info.md | 6 +- 4 files changed, 260 insertions(+), 28 deletions(-) (limited to '2024') diff --git a/2024/organizers-notebook/index.org b/2024/organizers-notebook/index.org index e9e7b0f0..e1804693 100644 --- a/2024/organizers-notebook/index.org +++ b/2024/organizers-notebook/index.org @@ -381,6 +381,100 @@ Notes: Coloring by availability: - light blue: constraint is <= a time - peach: constraint is >= a time + +** DONE Prepare shift calendar, ask people to sign up +CLOSED: [2024-11-26 Tue 10:06] SCHEDULED: <2023-11-01 Wed> +:PROPERTIES: +:CUSTOM_ID: shifts +:END: + +#+BEGIN_EXPORT md + +#+END_EXPORT + +AM: 9-12 PM EST, PM: 1-5 PM EST (plus a little extra for setup/transition) + +Saturday Dec 7 2024 + +#+NAME: saturday-shifts +| | Start | End | [[https://emacsconf.org/2023/volunteer/host/][Host]] | Streamer | [[https://emacsconf.org/2023/volunteer/checkin/][Checkin]] | [[https://emacsconf.org/2023/volunteer/irc/][IRC]] | [[https://emacsconf.org/2023/volunteer/pad/][Pad]] | Coord | +|--------+-------+-------+--------+----------+---------+-----+-----+--------| +| Gen AM | 09:00 | 12:00 | zaeph | sachac | sachac | | | sachac | +| Gen PM | 13:00 | 17:00 | zaeph | sachac | sachac | | | sachac | +| Dev AM | 10:00 | 12:00 | corwin | sachac | sachac | | | sachac | +| Dev PM | 13:00 | 17:00 | corwin | sachac | sachac | | | sachac | + +Sunday Dec 8 2024 + +#+NAME: sunday-shifts +| | Start | End | [[https://emacsconf.org/2023/volunteer/host/][Host]] | Streamer | [[https://emacsconf.org/2023/volunteer/checkin/][Checkin]] | [[https://emacsconf.org/2023/volunteer/irc/][IRC]] | [[https://emacsconf.org/2023/volunteer/pad/][Pad]] | Coord | +|--------+-------+-------+-------+----------+---------+-----+-----+--------| +| Gen AM | 09:00 | 12:00 | zaeph | sachac | corwin | | | sachac | +| Gen PM | 13:00 | 17:00 | zaeph | sachac | corwin | | | sachac | + +Backups: +- dev host/streamer: +- gen host/streamer: +- checkin, IRC, pad: + +Interested in a shift? Please e-mail [[mailto:emacsconf-org-private@gnu.org]] and we'll help you figure out what you need to learn. + +#+begin_src emacs-lisp :var sat=saturday-shifts :var sun=sunday-shifts :rownames no :colnames no :results verbatim replace +`(setq emacsconf-shifts + (list + ,@(apply #'append + (mapcar + (lambda (day) + (let ((headers + (mapcar + (lambda (field) + (intern + (concat + ":" + (downcase + (if (string-match org-link-bracket-re field) + (match-string 2 field) + field))))) + (seq-drop (car (cadr day)) 3)))) + (mapcar + (lambda (row) + (apply #'append + (list 'list :id + (when (string-match "^\\([^ ]+\\) \\(AM\\|PM\\)" (car row)) + (format "%s-%s-%s" + (car day) + (downcase (match-string 2 (car row))) + (downcase (match-string 1 (car row))))) + :track + (if (string-match "^Gen" (car row)) "General" "Development") + :start + (format "%sT%s:00%s" + (elt day 2) + (elt row 1) + emacsconf-timezone-offset) + :end + (format "%sT%s:00%s" + (elt day 2) + (elt row 2) + emacsconf-timezone-offset)) + (seq-map-indexed + (lambda (value index) + (unless (string= value "") + (list (elt headers index) value))) + (seq-drop row 3)))) + (cdr (cadr day))) + )) + (list + (list "sat" sat "2024-12-07") + (list "sun" sun "2024-12-08")))))) + +#+end_src + +#+RESULTS: +:results: +(setq emacsconf-shifts (list (list :id "sat-am-gen" :track "General" :start "2024-12-07T09:00:00-0500" :end "2024-12-07T12:00:00-0500" :host "zaeph" :streamer "sachac" :checkin "sachac" :coord "sachac") (list :id "sat-pm-gen" :track "General" :start "2024-12-07T13:00:00-0500" :end "2024-12-07T17:00:00-0500" :host "zaeph" :streamer "sachac" :checkin "sachac" :coord "sachac") (list :id "sat-am-dev" :track "Development" :start "2024-12-07T10:00:00-0500" :end "2024-12-07T12:00:00-0500" :host "corwin" :streamer "sachac" :checkin "sachac" :coord "sachac") (list :id "sat-pm-dev" :track "Development" :start "2024-12-07T13:00:00-0500" :end "2024-12-07T17:00:00-0500" :host "corwin" :streamer "sachac" :checkin "sachac" :coord "sachac") (list :id "sun-am-gen" :track "General" :start "2024-12-08T09:00:00-0500" :end "2024-12-08T12:00:00-0500" :host "zaeph" :streamer "sachac" :checkin "corwin" :coord "sachac") (list :id "sun-pm-gen" :track "General" :start "2024-12-08T13:00:00-0500" :end "2024-12-08T17:00:00-0500" :host "zaeph" :streamer "sachac" :checkin "corwin" :coord "sachac"))) +:end: + * TODO [#A] Check EmacsConf infrastructure :project: - [X] IRC @@ -394,21 +488,13 @@ Coloring by availability: - [ ] Toobnix - [ ] YouTube -** WAITING [#A] bbb.emacsverse.org replacement +** TODO [#A] BigBlueButton DEADLINE: <2024-11-15 Fri> :PROPERTIES: :CREATED: [2024-11-02 Sat 11:38] :END: -- Delegated to Corwin for now, will get back to stressing out about it in a couple of weeks -- May need to spin up a Linode and either pay for it for a few weeks or figure out how to spin it down and up again - - [[#bbb][BigBlueButton replacement]] -- Possibly relevant: dynamic DNS? - https://www.linode.com/community/questions/7945/custom-dynamic-dns - Can also update manually - - - +- Plan: spin up Linode temporarily: [[#bbb][BigBlueButton replacement]] *** Notes **** install, sizes @@ -418,7 +504,7 @@ Prerequisites: - BBB requires 4 CPU cores before it will install. bbb-conf.sh is fairly straightforward, so I guess we could spin down and then spin up again. Steps: -1. Run the BBB installer. +1. Run the BBB installer: ~./bbb-install.sh -v jammy-300 -s bbb.emacsverse.org -e emacsconf@sachachua.com -g ~ 2. ~sudo apt install bbb-playback-video~ and then follow the instructions at [[https://docs.bigbluebutton.org/3.0/administration/customize/#install-additional-recording-processing-formats][Server Customization | BigBlueButton]] . 3. https://docs.bigbluebutton.org/3.0/administration/customize/#mute-all-users-on-startup @@ -436,6 +522,11 @@ Sizing to shared nanode, dormant linode-cli linodes resize 67329098 --type g6-nanode-1 --allow_auto_disk_resize true #+end_src +#+begin_src +echo "notify-send 'Resizing BBB...'; linode-cli linodes resize 67329098 --type g6-nanode-1 --allow_auto_disk_resize true" | at 'now + 1 hour' + +#+end_src + Resize disk linode-cli linodes disks-list 67329098 linode-cli linodes disk-resize 67329098 131474261 --size 24000 @@ -447,15 +538,145 @@ https://techdocs.akamai.com/linode-api/reference/post-resize-disk https://www.linode.com/community/questions/21942/how-can-i-schedule-resizing-a-linode **** backing up [2024-11-20 Wed] ssh root@66.175.208.243 'tar zcvf - /var/bigbluebutton /etc/bigbluebutton /root/greenlight-v3 /usr/local/bigbluebutton /usr/share/bbb-web' > bbb-backup.tar.gz -If changing IP: bbb-conf --setip bbb-new.example.com +**** DONE Set up bbb with new domain name +CLOSED: [2024-11-28 Thu 10:00] +:PROPERTIES: +:Effort: 1:00 +:END: +:LOGBOOK: +CLOCK: [2024-11-28 Thu 09:06]--[2024-11-28 Thu 09:17] => 0:11 +:END: +If changing IP: + +bbb-conf --setip bbb-new.example.com +service nginx stop +certbot certonly +service nginx start +edit /etc/hosts, add domain name + +Certificate is saved at: /etc/letsencrypt/live/bbb.emacsverse.org/fullchain.pem +Key is saved at: /etc/letsencrypt/live/bbb.emacsverse.org/privkey.pem + +edit /etc/nginx/sites-available/bigbluebutton to add server_name +/etc/letsencrypt/live/ + +grep in /etc for the old domain + +https://github.com/bigbluebutton/greenlight/issues/1794 +- change greenlight/.env + + curl failed to verify the legitimacy of the server and therefore could not +establish a secure connection to it. To learn more about this situation and +how to fix it, please visit the web page mentioned above. +.curl: (60) SSL: no alternative certificate subject name matches target host name 'bbb.emacsverse.org' +More details here: https://curl.se/docs/sslcerts.html + +haproxy is already listening on 443 + +Fine, let's just reinstall it, harumph. + +Create the users: +user_id = User.find_by_email("sacha@sachachua.com").id + +... ugh, what's going on, why is free only reporting a little memory? ah, we're still resizing, that's why +*** STARTED Set up moderator access codes for all the meeting rooms, and make it so people can start the meeting +SCHEDULED: <2024-11-28 Thu> +:PROPERTIES: +:CREATED: [2024-11-28 Thu 11:12] +:Effort: 0:30 +:END: +:LOGBOOK: +CLOCK: [2024-11-28 Thu 12:13]--[2024-11-28 Thu 13:10] => 0:57 +:END: + +- Let's try + - [ ] Rails + - [ ] Spookfox + - [ ] Manual + + https://github.com/bigbluebutton/greenlight/blob/a5da808fc33f03613aa3a4089fd418403c539b2f/spec/models/room_spec.rb#L128 + RoomMeetingOption. + +room.get_setting + +yeah, that's not good, rails console keeps quitting! +docker-compose down +docker-compose up + +1:M 28 Nov 2024 17:16:23.441 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect. + +docker-compose down +docker-compose up -d + +makes it more reliable, it seems + +room = Room.find_by_id('8b3f36b1-7aee-459d-b963-bddcfe03e1db') + +o = MeetingOption.find_by_name('glAnyoneCanStart') +o.default_value = 'true' +o.save! + +o = MeetingOption.find_by_name('glModeratorAccessCode') + +"https://bbb.emacsverse.org/rooms/p4o-29n-esd-ow5/join" +#+begin_src emacs-lisp +(dolist (talk (seq-filter (lambda (o) + (and (plist-get o :bbb-room) + (not (plist-get o :bbb-mod-code)))) + (emacsconf-publish-prepare-for-display (emacsconf-get-talk-info)))) + (spookfox-js-injection-eval-in-active-tab + (format "window.location.href = \"%s\"" + (replace-regexp-in-string "/join" "" (plist-get talk :bbb-room))) + t) + (sleep-for 3) + (spookfox-js-injection-eval-in-active-tab + "document.querySelector('button[data-rr-ui-event-key=\"settings\"]').click()" t) + (spookfox-js-injection-eval-in-active-tab + "document.querySelector('input#glAnyoneCanStart').checked = true") + (spookfox-js-injection-eval-in-active-tab + "document.querySelector('input#muteOnStart').checked = true") + (spookfox-js-injection-eval-in-active-tab + "document.querySelectorAll('.border-end button')[2].click()" t) + (let ((code (spookfox-js-injection-eval-in-active-tab + "document.querySelector('.access-code-input input').value" t))) + (message "Setting %s to %s" (plist-get talk :slug) code) + (emacsconf-set-property-from-slug + talk "BBB_MOD_CODE" + code) + (sit-for 2))) +#+end_src + +#+begin_src emacs-lisp +(dolist (talk (seq-filter (lambda (o) + (plist-get o :bbb-room)) + (emacsconf-publish-prepare-for-display (emacsconf-get-talk-info)))) + (spookfox-js-injection-eval-in-active-tab + (format "window.location.href = \"%s\"" + (replace-regexp-in-string "/join" "" (plist-get talk :bbb-room))) + t) + (sleep-for 3) + (spookfox-js-injection-eval-in-active-tab + "document.querySelector('button[data-rr-ui-event-key=\"settings\"]').click()" t) + (sleep-for 3)) +#+end_src +*** DONE [#A] Figure out what's going on with BBB! +CLOSED: [2024-11-28 Thu 10:59] SCHEDULED: <2024-11-28 Thu> +:PROPERTIES: +:CREATED: [2024-11-28 Thu 10:12] +:Effort: 1:00 +:END: +:LOGBOOK: +CLOCK: [2024-11-28 Thu 10:47]--[2024-11-28 Thu 10:59] => 0:12 +:END: *** DONE Create meeting rooms for each speaker -CLOSED: [2024-11-20 Wed 12:18] SCHEDULED: <2024-11-15 Fri> +CLOSED: [2024-11-28 Thu 10:59] SCHEDULED: <2024-11-15 Fri> :PROPERTIES: :CREATED: [2024-11-02 Sat 11:50] :Effort: 0:30 :END: :LOGBOOK: +CLOCK: [2024-11-28 Thu 10:00]--[2024-11-28 Thu 10:12] => 0:12 CLOCK: [2024-11-20 Wed 10:48]--[2024-11-20 Wed 12:18] => 1:30 :END: @@ -469,6 +690,8 @@ docker exec -it greenlight-v3 bundle exec rails c user_id = User.find_by_email("sacha@sachachua.com").id +docker exec -it greenlight-v3 bundle exec rails console + #+begin_src emacs-lisp :results replace (mapconcat (lambda (group) (format @@ -521,12 +744,20 @@ Room.all.each { |x| puts x.friendly_id + " " + x.name }; nil #+end_src https://github.com/bigbluebutton/greenlight/issues/1925 -*** TODO Check BBB audio from my phone -SCHEDULED: <2024-11-21 Thu> +After about 6 seconds, the rails console quits. +502 bad gateway + +aaaaaaaaaah + +*** DONE Check BBB audio from my phone +CLOSED: [2024-11-28 Thu 13:03] SCHEDULED: <2024-11-21 Thu> :PROPERTIES: :CREATED: [2024-11-19 Tue 15:39] :END: -*** TODO [#C] Customize BBB to process at night +*** DONE Create accounts for corwin +CLOSED: [2024-11-28 Thu 10:11] +*** CANCELLED [#C] Customize BBB to process at night +CLOSED: [2024-11-27 Wed 13:17] :PROPERTIES: :CREATED: [2024-11-20 Wed 12:11] :END: @@ -568,7 +799,8 @@ https://docs.bigbluebutton.org/3.0/administration/customize/#enable-live-caption *** TODO Explore meeting layout? Default to custom, hosts will need to drag people's webcam over if there's a share ** IRC web client -*** WAITING Ask libera.chat to increase connections allowed from chat.emacsconf.org on Dec 7 and 8 +*** DONE Ask libera.chat to increase connections allowed from chat.emacsconf.org on Dec 7 and 8 +CLOSED: [2024-11-27 Wed 13:18] ** IRC announcements *** DONE Confirm manual IRC announcements CLOSED: [2024-11-02 Sat 12:05] @@ -697,7 +929,7 @@ Some options: - Disadvantages: needs someone to do it - Base pricing - Shared CPU 4GB 80GB storage: hourly USD 0.04, monthly USD 24 - - Dedicated CPU 16GB: hourly USD 0.22, monthly USD 144 - meets minimum requirements and can probably support 200 simultaneous ([[https://docs.bigbluebutton.org/support/faq/][FAQ]]) + - Dedicated CPU 16GB: hourly USD 0.22, daily 5.28, weekly 36.96, monthly USD 144 - meets minimum requirements and can probably support 200 simultaneous ([[https://docs.bigbluebutton.org/support/faq/][FAQ]]) - Shared CPU 8GB 160GB storage: hourly USD 0.07 - Shared CPU 16GB 320GB storage: hourly USD 0.14 - Last year diff --git a/2024/watch/dev.md b/2024/watch/dev.md index a8330757..539bb8dd 100644 --- a/2024/watch/dev.md +++ b/2024/watch/dev.md @@ -21,7 +21,7 @@ If you don't have a streaming media player, you might be able to watch using the -
Watch - Pad and Q&A links - Chat - Schedule | Tracks: General - Development
gypsum (pad, BBB) - rust (pad, BBB) - p-search (pad, BBB) - julia (pad, BBB) - guile (pad, #emacsconf, speaker nick: robin) - secrets (pad, BBB) - mcclim (pad, BBB) - repro (pad, BBB)
+
Watch - Pad and Q&A links - Chat - Schedule | Tracks: General - Development
gypsum (pad, BBB) - rust (pad, BBB) - p-search (pad, BBB) - julia (pad, BBB) - guile (pad, #emacsconf-dev, speaker nick: robin) - secrets (pad, BBB) - mcclim (pad, BBB) - repro (pad, BBB)

Watch - Pad and Q&A links - Chat - Schedule | Tracks: General - Development
Chat: emacsconf-dev on libera.chat
@@ -63,7 +63,7 @@ If you don't have a streaming media player, you might be able to watch using the
-
1:25 - 1:45 Development Etherpad; Q&A: #emacsconf, speaker nick: robin; id:guile
+
1:25 - 1:45 Development Etherpad; Q&A: #emacsconf-dev, speaker nick: robin; id:guile
Robin Templeton (they/them)
diff --git a/2024/watch/gen.md b/2024/watch/gen.md index eb877bb3..99a11ad7 100644 --- a/2024/watch/gen.md +++ b/2024/watch/gen.md @@ -21,7 +21,7 @@ If you don't have a streaming media player, you might be able to watch using the -
Watch - Pad and Q&A links - Chat - Schedule | Tracks: General - Development
sat-open (pad, Etherpad) - papers (pad, BBB) - project (pad, BBB) - org-update (pad, BBB) - color (pad, BBB) - maxima (pad, Etherpad) - theme (pad, BBB) - water (pad, #emacsconf, speaker nick: lispmacs) - shell (pad, #emacsconf, speaker nick: lispmacs) - casual (pad, BBB) - hyperdrive (pad, BBB) - writing (pad, none) - emacs30 (pad, BBB) - sat-close (pad, Etherpad) - sun-open (pad, Etherpad) - links (pad, Etherpad) - regex (pad, #emacsconf, speaker nick: cosmicexplorer) - learning (pad, Etherpad) - blee (pad, BBB) - hyperbole (pad, BBB) - hywiki (pad, BBB) - pgmacs (pad, BBB) - literate (pad, BBB) - students (pad, #emacsconf, speaker nick: bardman) - sharing (pad, Etherpad) - transducers (pad, BBB) - sun-close (pad, Etherpad)
+
Watch - Pad and Q&A links - Chat - Schedule | Tracks: General - Development
sat-open (pad, Etherpad) - papers (pad, BBB) - project (pad, BBB) - org-update (pad, BBB) - color (pad, BBB) - maxima (pad, Etherpad) - theme (pad, BBB) - water (pad, #emacsconf-gen, speaker nick: lispmacs) - shell (pad, #emacsconf-gen, speaker nick: lispmacs) - casual (pad, BBB) - hyperdrive (pad, BBB) - writing (pad, none) - emacs30 (pad, BBB) - sat-close (pad, Etherpad) - sun-open (pad, Etherpad) - links (pad, Etherpad) - regex (pad, #emacsconf-gen, speaker nick: cosmicexplorer) - learning (pad, Etherpad) - blee (pad, BBB) - hyperbole (pad, BBB) - hywiki (pad, BBB) - pgmacs (pad, BBB) - literate (pad, BBB) - students (pad, #emacsconf-gen, speaker nick: bardman) - sharing (pad, Etherpad) - transducers (pad, BBB) - sun-close (pad, Etherpad)

Watch - Pad and Q&A links - Chat - Schedule | Tracks: General - Development
Chat: emacsconf-gen on libera.chat
@@ -84,14 +84,14 @@ If you don't have a streaming media player, you might be able to watch using the
-
1:30 - 1:45 General Etherpad; Q&A: #emacsconf, speaker nick: lispmacs; id:water
+
1:30 - 1:45 General Etherpad; Q&A: #emacsconf-gen, speaker nick: lispmacs; id:water
Christopher Howard (he/him)
-
1:55 - 2:35 General Etherpad; Q&A: #emacsconf, speaker nick: lispmacs; id:shell
+
1:55 - 2:35 General Etherpad; Q&A: #emacsconf-gen, speaker nick: lispmacs; id:shell
Christopher Howard (he/him)
@@ -148,7 +148,7 @@ If you don't have a streaming media player, you might be able to watch using the
-
9:30 - 9:50 General Etherpad; Q&A: #emacsconf, speaker nick: cosmicexplorer; id:regex
+
9:30 - 9:50 General Etherpad; Q&A: #emacsconf-gen, speaker nick: cosmicexplorer; id:regex
Danny McClanahan (they/them)
@@ -197,7 +197,7 @@ If you don't have a streaming media player, you might be able to watch using the
-
2:55 - 3:05 General Etherpad; Q&A: #emacsconf, speaker nick: bardman; id:students
+
2:55 - 3:05 General Etherpad; Q&A: #emacsconf-gen, speaker nick: bardman; id:students
Daniel Pinkston (he/him)
diff --git a/2024/watch/info.md b/2024/watch/info.md index e4eb4e75..00b67d7d 100644 --- a/2024/watch/info.md +++ b/2024/watch/info.md @@ -4,8 +4,8 @@ We recommend using a streaming player like mpv to watch the livestreams. Example:
 mpv https://live0.emacsconf.org/gen.webm
 mpv https://live0.emacsconf.org/dev.webm
-
- -
Watch pageIRC channel (libera.chat)URL for streaming player (ex: mpv, vlc, ffplay)Low res
emacsconf-genhttps://live0.emacsconf.org/gen.webmgen-480p.webm
emacsconf-devhttps://live0.emacsconf.org/dev.webmdev-480p.webm
+ + +
Watch pageWatch page (low-res)IRC channel (libera.chat)URL for streaming player (ex: mpv, vlc, ffplay)Low res
General (low-res)emacsconf-genhttps://live0.emacsconf.org/gen.webmgen-480p.webm
Development (low-res)emacsconf-devhttps://live0.emacsconf.org/dev.webmdev-480p.webm
Graphical view of the scheduleSchedule for SaturdaySaturday 9:00- 9:10 Saturday opening remarkssat-open 9:10- 9:20 Writing academic papers in Org-Roampapers 9:40-10:00 Managing writing project metadata with org-modeproject10:20-10:40 The Future of Orgorg-update11:00-11:10 Colour your Emacs with easecolor11:30-11:50 Emacs, eev, and Maxima - now!maxima 1:00- 1:10 My journey of finding and creating the “perfect” Emacs themetheme 1:30- 1:45 Watering my (digital) plant with Emacs timerswater 1:55- 2:35 Emacs as a shellshell 2:45- 3:05 Re-imagining the Emacs user experience with Casual Suitecasual 3:25- 3:45 New in hyperdrive.el: org-transclusion, easy installation, and more!hyperdrive 4:05- 4:15 Emacs Writing Studiowriting 4:25- 4:50 Emacs 30 Highlightsemacs30 5:00- 5:10 Saturday closing remarkssat-close10:00-10:20 Gypsum: my clone of Emacs and ELisp written in Schemegypsum10:40-11:00 An experimental Emacs core in Rustrust11:20-11:45 p-search: a local search engine in Emacsp-search 1:00- 1:10 Exploring shared philosophies in Julia and Emacsjulia 1:25- 1:45 Beguiling Emacs: Guile-Emacs relaunched!guile 1:55- 2:05 Committing secrets with git using sops-modesecrets 2:25- 3:25 Elisp and McCLIMmcclim 3:45- 4:05 Reproducibly building Emacs: “Hey your checksum is the same as mine!”repro9 AM10 AM11 AM12 PM1 PM2 PM3 PM4 PM5 PMSchedule for SundaySunday 9:00- 9:10 Sunday opening remarkssun-open 9:10- 9:20 Unlocking linked data: replacing specialized apps with an Org-based semantic wikilinks 9:30- 9:50 Emacs regex compilation and future directions for expressive pattern matchingregex10:00-10:20 Survival of the skillest: Thriving in the learning junglelearning10:30-11:15 About Blee: enveloping our own autonomy directed digital ecosystem with Emacsblee11:30-11:45 Fun things with GNU Hyperbolehyperbole 1:00- 1:20 HyWiki: Fast, hyperlinked note-taking with no markup requiredhywiki 1:40- 1:55 PGmacs: browsing and editing PostgreSQL databases from Emacspgmacs 2:15- 2:35 Literate programming for the 21st Centuryliterate 2:55- 3:05 An example of a cohesive student workflow in Emacsstudents 3:15- 3:35 So you want to be an Emacs-fluencer?sharing 4:00- 4:30 Transducers: finally, ergonomic data processing for Emacs!transducers 4:50- 5:00 Sunday closing remarkssun-close9 AM10 AM11 AM12 PM1 PM2 PM3 PM4 PM5 PM \ No newline at end of file -- cgit v1.2.3