summaryrefslogtreecommitdiffstats
path: root/infra.md
blob: 5258ce92ccf29518d2a73ccb82ab42f55812c714 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
[[!meta copyright="Copyright © 2023 Sacha Chua"]]
[[!meta title="Infrastructure and processes"]]

[Sacha Chua's EmacsConf presentation on EmacsConf](https://emacsconf.org/2023/talks/emacsconf)

- Q: What did you use to make this? 
  - All free/libre/open source tools:
    - One private Org file with speaker/volunteer/talk info
      - The talks were generally run using run-at-time,
        org-after-todo-state-change-hook, and some TRAMP (by the
        way, TRAMP does not like being run from timers at the
        same time, so we shifted some talks =) )
    - A public Org file for processes:
      - <https://emacsconf.org/2022/organizers-notebook>
      - <https://emacsconf.org/2023/organizers-notebook>
    - An ansible repo for configuration management:
      <https://git.emacsconf.org/emacsconf-ansible/>
    - Lots of Emacs Lisp:
      <https://git.emacsconf.org/emacsconf-el/>
    - TRAMP for writing files and running commands on remote
      computers
    - OBS for streaming, Icecast for sharing the stream with
      viewers
    - VNC for letting hosts and streamers connect to the same
      display for OBS streaming
    - screen for naming shell commands and making them easier to
      resume and kill
    - BigBlueButton for video Q&A
    - Mumble for speaking on the stream as well as for backstage
      communications
    - ERC for Internet Relay Chat within Emacs, The Lounge for
      web-based IRC
    - Ikiwiki for the wiki (editing through git commits)
    - Etherpad for collaborative note-taking
    - ffmpeg for reencoding videos to free (patent-unencumbered)
      formats and compressing them
    - Captioning (<https://emacsconf.org/captioning>):
      - OpenAI Whisper for computer-generated transcripts to be
        reflowed and edited by captioning volunteers
      - Some Emacs Lisp code to help with reflowing
        (emacsconf-reflow, in
        <https://git.emacsconf.org/emacsconf-el/>)
      - Aeneas (<https://www.readbeyond.it/aeneas/>) for
        synchronizing reflowed text with the audio files
      - subed.el (<https://github.com/sachac/subed>) for editing
        captions within Emacs (synchronizes with MPV)
    - MPV for playing videos (config tips:
      <https://emacsconf.org/mpv/>
      <https://git.emacsconf.org/emacsconf-ansible/tree/roles/obs/templates/mpv.conf>)
- Q: How do you have multiple font sizes, countdowns and clocks in
  fundamental mode?
  - A:
    <https://git.emacsconf.org/emacsconf-el/tree/emacsconf-stream.el>
    : see emacsconf-stream-display-clock-and-countdown. You can
    propertize a string with face attributes and then insert it.

Quick links:

- [emacsconf-ansible](https://git.emacsconf.org/emacsconf-ansible/) - Ansible configuration for setting up servers and scripts
- [emacsconf-el](https://git.emacsconf.org/emacsconf-el/) - Emacs Lisp support files
- [emacsconf-wiki](https://git.emacsconf.org/emacsconf-wiki/) - sources for the emacsconf wiki
- [2023/organizers-notebook](https://emacsconf.org/2023/organizers-notebook/)
- [2022/organizers-notebook](https://emacsconf.org/2022/organizers-notebook/)
- [Sacha Chua's blog posts about EmacsConf](https://sachachua.com/blog/category/emacsconf/)
  - [EmacsConf backstage: capturing submissions from e-mails](https://sachachua.com/blog/2023/09/emacsconf-capturing-submissions-from-e-mails/)
  - [EmacsConf backstage: converting timezones :: Sacha Chua](https://sachachua.com/blog/2023/09/emacsconf-converting-timezones/)
  - [EmacsConf backstage: Scheduling with SVGs :: Sacha Chua](https://sachachua.com/blog/2023/09/emacsconf-backstage-scheduling-with-svgs/)
  - [#EmacsConf backstage: adding a talk to the wiki :: Sacha Chua](https://sachachua.com/blog/2023/09/emacsconf-backstage-adding-a-talk-to-the-wiki/)
  - [EmacsConf backstage: jumping to and working with talks using Embark :: Sacha Chua](https://sachachua.com/blog/2023/09/emacsconf-backstage-jumping-to-and-working-with-talks-using-embark/)
  - [EmacsConf backstage: making it easier to do talk-specific actions :: Sacha Chua](https://sachachua.com/blog/2023/09/emacsconf-backstage-making-it-easier-to-do-talk-specific-actions/)
  - [EmacsConf backstage: Using TRAMP and timers to run two tracks semi-automatically](https://sachachua.com/blog/2023/01/emacsconf-backstage-using-tramp-and-timers-to-run-two-tracks-semi-automatically/)
  - [Using Emacs and Python to record an animation and synchronize it with audio](https://sachachua.com/blog/2022/12/using-emacs-and-python-to-record-an-animation-and-synchronize-it-with-audio/)
  - [Converting our VTT files to TTML](https://sachachua.com/blog/2022/11/converting-our-vtt-files-to-ttml/)
  - [Re-encoding the EmacsConf videos with FFmpeg and GNU Parallel](https://sachachua.com/blog/2021/12/re-encoding-the-emacsconf-videos-with-ffmpeg-and-gnu-parallel/)
  - [Adding little nudges to help on the EmacsConf wiki](https://sachachua.com/blog/2021/12/adding-little-nudges-to-help-on-the-emacsconf-wiki/)
  - [EmacsConf backstage: picking timestamps from a waveform](https://sachachua.com/blog/2021/12/emacsconf-backstage-picking-timestamps-from-a-waveform/)