Skip to content

jwalsh/emacsconf-2024

Repository files navigation

EmacsConf 2024: Full Schedule

Interest Categories

  • :REPL: REPL-driven development focus
  • :AI: AI/ML and data processing related
  • :LITERATE: Literate programming and documentation
  • :CLOUD: Cloud/systems development
  • :CORE: Core Emacs development/internals
  • :RECOMMEND: Strong recommendation based on your interests

Streaming Options and Setup

For optimal performance, we recommend watching the streams using mpv:

# General Track
mpv https://live0.emacsconf.org/gen.webm

# Development Track
mpv https://live0.emacsconf.org/dev.webm

[#A] Priority Talks

Saturday Key Talks

  1. [10:00] Gypsum: Emacs and ELisp in Scheme :REPL:CORE:
  2. [10:40] Experimental Emacs core in Rust :CORE:CLOUD:
  3. [11:20] p-search: local search engine :AI:
  4. [13:00] Julia and Emacs philosophies :REPL:
  5. [13:25] Guile-Emacs relaunched :REPL:CORE:
  6. [14:25] Elisp and McCLIM :REPL:

Sunday Key Talks

  1. [09:10] Org-based semantic wiki :LITERATE:
  2. [09:30] Regex compilation and pattern matching :CORE:
  3. [14:15] Literate programming for 21st Century :LITERATE:
  4. [16:00] Transducers: ergonomic data processing :AI:

[#A] Schedule

Times in EST (GMT-5)

Saturday, December 7, 2024

9:00 - 9:10 :: Saturday opening remarks

  • Track: General
  • Q&A: Etherpad

[#B] 9:10 - 9:20 :: Writing academic papers in Org-Roam

  • Speaker: Vincent Conus (he/him)
  • Track: General
  • Q&A: BBB

9:40 - 10:00 :: Managing writing project metadata with org-mode

  • Speaker: Blaine Mooers (he/him)
  • Track: General
  • Q&A: BBB

10:00 - 10:20 :: Gypsum: my clone of Emacs and ELisp written in Scheme

(define push-stack (put-with cons))
(define collatz
  (many
    push-stack
    (either
      (try (check (λ (n) (<= n 1)))
                  (success))
      (try (check odd?)
           (next (λ (n) (+ 1 (* 3 n)))))
      (try (check even?)
           (next (λ (n) (quotient n 2))))
      (fail "not an integer")
      )))

10:20 - 11:00 :: The Future of Org

10:40 - 11:00 :: An experimental Emacs core in Rust

11:20 - 11:30 :: Colour your Emacs with ease

  • Speaker: Ryota Sawada (he/him)
  • Track: General
  • Q&A: BBB

11:20 - 11:45 :: p-search: a local search engine in Emacs

(use-package p-search :straight (:host github :repo "zkry/p-search"))

13:00 - 13:10 :: Exploring shared philosophies in Julia and Emacs

13:00 - 13:10 :: My journey of finding and creating the “perfect” Emacs theme

  • Speaker: MetroWind (he/him)
  • Track: General
  • Q&A: BBB

13:25 - 13:45 :: Beguiling Emacs: Guile-Emacs relaunched!

13:30 - 13:45 :: Watering my (digital) plant with Emacs timers

  • Speaker: Christopher Howard (he/him)
  • Track: General
  • Q&A: #emacsconf-gen

13:55 - 14:05 :: Committing secrets with git using sops-mode

(use-package sops
  :straight (:type git :repo "djgoku/sops"))

13:55 - 14:35 :: Emacs as a shell

  • Speaker: Christopher Howard (he/him)
  • Track: General
  • Q&A: #emacsconf-gen

14:25 - 15:25 :: Elisp and McCLIM

(use-package rmoo
    :straight (:type git :repo "toddsundsted/rmoo")
    :init
    (unless (fboundp 'process-kill-without-query)
        (defun process-kill-without-query (process &optional flag)
            (set-process-query-on-exit-flag process nil)
            t))
    :config
    (rmoo-worlds-add-new-moo "LambdaMOO" "lambda.moo.mud.org" "8888"))

14:45 - 15:05 :: Re-imagining the Emacs user experience with Casual Suite

15:25 - 15:45 :: New in hyperdrive.el: quick install, peer graph, transclusion!

15:45 - 16:05 :: Emacs, eev, and Maxima - now!

16:05 - 16:15 :: Emacs Writing Studio

16:25 - 16:50 :: Emacs 30 Highlights

17:00 - 17:10 :: Saturday closing remarks

Sunday, December 8, 2024

9:00 - 9:10 :: Sunday opening remarks

9:10 - 9:20 :: Unlocking linked data: replacing specialized apps with an Org-based semantic wiki

;; Install package
(straight-use-package
 '(org-roam-exts :type git :host github :repo "lepisma/org-roam-exts"))

;; Configure display settings
(add-to-list 'display-buffer-alist
             '("\\*org-roam\\*"
               (display-buffer-in-direction)
               (direction . right)
               (window-width . 0.33)
               (window-height . fit-window-to-buffer)))

;; Enable features
(org-roam-exts-enable)
(org-roam-sk-enable)

9:30 - 9:50 :: Emacs regex compilation and future directions for expressive pattern matching

10:00 - 10:20 :: Survival of the skillest: Thriving in the learning jungle

10:30 - 11:15 :: About Blee: enveloping our own autonomy directed digital ecosystem with Emacs

11:30 - 11:45 :: Fun things with GNU Hyperbole

[#C] 13:40 - 13:55 :: PGmacs: browsing and editing PostgreSQL databases from Emacs

(use-package pg
  :straight (:type git :host github :repo "emarsden/pg-el"))

(use-package pgmacs 
  :straight (:type git :host github :repo "emarsden/pgmacs"))

14:15 - 14:35 :: Literate programming for the 21st Century

15:00 - 15:10 :: An example of a cohesive student workflow in Emacs

15:20 - 15:40 :: So you want to be an Emacs-fluencer?

16:00 - 16:30 :: Transducers: finally, ergonomic data processing for Emacs!

Setup Example

(use-package transducers
  :straight (:host github :repo "fosskers/transducers.el"))

(require 'transducers)
(setq-local read-symbol-shorthands '(("t-" . "transducers-")))

Line Processing Example

;; Process lines in README.org
(t-transduce
  ;; How do we want to process each element?
  (t-comp (t-step 2) (t-map #'length) (t-filter #'cl-evenp))
  ;; How do we want to combine all the elements together?
  #'+
  ;; What's our original data source?
  (t-file-read "README.org"))

Text Analysis Example

;; Sample text analysis
(defvar sample-text
  "Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. 
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris 
nisi ut aliquip ex ea commodo consequat.")

;; Letter frequency analysis
(t-transduce
 (t-comp
  (t-map #'downcase)                    ; Convert to lowercase
  (t-filter #'alphabetp)                ; Keep only letters
  (t-group-by #'identity)               ; Group by character
  (t-map (lambda (group)                ; Calculate frequencies
          (cons (car group)
                (/ (* 100.0 (length (cdr group)))
                   (length sample-text)))))  ; As percentage
  (t-sort #'> #'cdr))                   ; Sort by frequency
 #'t-cons
 (string-to-list sample-text))

;; Local Variables: ;; read-symbol-shorthands: ((“t-” . “transducers-“)) ;; End:

16:50 - 17:00 :: Sunday closing remarks

Streaming Options

For optimal performance, we recommend watching the streams using a streaming media player:

General Track

Stream URL: https://live0.emacsconf.org/gen.webm Low bandwidth: https://live0.emacsconf.org/gen-480p.webm

Development Track

Stream URL: https://live0.emacsconf.org/dev.webm Low bandwidth: https://live0.emacsconf.org/dev-480p.webm

Supported players:

  • mpv
  • vlc
  • ffplay

Chat Channels

  • General Track: #emacsconf-gen on libera.chat
  • Development Track: #emacsconf-dev on libera.chat

;; Local Variables: ;; read-symbol-shorthands: ((“t-” . “transducers-“)) ;; End:

Releases

No releases published

Packages

No packages published