diff options
Diffstat (limited to '2020')
49 files changed, 3118 insertions, 4506 deletions
diff --git a/2020/info/01.md b/2020/info/01.md index 1d575b35..70db1190 100644 --- a/2020/info/01.md +++ b/2020/info/01.md @@ -2,7 +2,8 @@ Sacha Chua [[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--01-emacs-news-highlights--sacha-chua.webm" subtitles="/2020/subtitles/emacsconf-2020--01-emacs-news-highlights--sacha-chua.vtt" duration="3:58" download="Download with subtitles" size="11MB"]] -[Download compressed .webm video (10M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--01-emacs-news-highlights--sacha-chua--vp9-q56-video-original-audio.webm) +[Download compressed .webm video (13.4M)](https://media.emacsconf.org/2020/emacsconf-2020--01-emacs-news-highlights--sacha-chua--compressed32.webm) +[Download compressed .webm video (10M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--01-emacs-news-highlights--sacha-chua--vp9-q56-video-original-audio.webm) [View transcript](https://github.com/sachac/emacsconf-2020-emacs-news-highlights) Quick highlights from Emacs News since the last EmacsConf diff --git a/2020/info/03.md b/2020/info/03.md index 2eaa404e..db3be888 100644 --- a/2020/info/03.md +++ b/2020/info/03.md @@ -2,10 +2,12 @@ Bala Ramadurai [[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--03-idea-to-novel-superstructure-emacs-for-writing--bala-ramadurai.webm" subtitles="/2020/subtitles/emacsconf-2020--03-idea-to-novel-superstructure-emacs-for-writing--bala-ramadurai.vtt"]] -[Download compressed .webm video (8.1M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--03-idea-to-novel-superstructure-emacs-for-writing--bala-ramadurai--vp9-q56-video-original-audio.webm) +[Download compressed .webm video (17.3M)](https://media.emacsconf.org/2020/emacsconf-2020--03-idea-to-novel-superstructure-emacs-for-writing--bala-ramadurai--compressed32.webm) +[Download compressed .webm video (8.1M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--03-idea-to-novel-superstructure-emacs-for-writing--bala-ramadurai--vp9-q56-video-original-audio.webm) [[!template id=vid vidid="qnaVideo" src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--03-idea-to-novel-superstructure-emacs-for-writing--questions--bala-ramadurai.webm" download="Download Q&A .webm video, 720p" subtitles="/2020/subtitles/emacsconf-2020--03-idea-to-novel-superstructure-emacs-for-writing--questions--bala-ramadurai.vtt"]] -[Download compressed Q&A .webm video (10.3M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--03-idea-to-novel-superstructure-emacs-for-writing--questions--bala-ramadurai--vp9-q56-video-original-audio.webm) +[Download compressed Q&A .webm video (22.4M)](https://media.emacsconf.org/2020/emacsconf-2020--03-idea-to-novel-superstructure-emacs-for-writing--questions--bala-ramadurai--compressed32.webm) +[Download compressed Q&A .webm video (10.3M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--03-idea-to-novel-superstructure-emacs-for-writing--questions--bala-ramadurai--vp9-q56-video-original-audio.webm) [View transcript](#transcript-questions) You want to write a novel, but you don't know how to create an diff --git a/2020/info/04.md b/2020/info/04.md index e80e7518..40ad0ec9 100644 --- a/2020/info/04.md +++ b/2020/info/04.md @@ -2,7 +2,8 @@ Jonathan Gregory [[!template id=vid vidid=mainVideo src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--04-music-in-plain-text--jonathan-gregory.webm" subtitles="/2020/subtitles/emacsconf-2020--04-music-in-plain-text--jonathan-gregory.vtt"]] -[Download compressed .webm video (13.8M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--04-music-in-plain-text--jonathan-gregory--vp9-q56-video-original-audio.webm) +[Download compressed .webm video (15.6M)](https://media.emacsconf.org/2020/emacsconf-2020--04-music-in-plain-text--jonathan-gregory--compressed32.webm) +[Download compressed .webm video (13.8M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--04-music-in-plain-text--jonathan-gregory--vp9-q56-video-original-audio.webm) [View transcript](#transcript) LilyPond is an extensible program for producing high-quality sheet diff --git a/2020/info/05.md b/2020/info/05.md index 30aaf561..c892d04f 100644 --- a/2020/info/05.md +++ b/2020/info/05.md @@ -1,12 +1,15 @@ # Bard Bivou(m)acs - Building a bandcamp-like page for an album of music Grant Shangreaux -[[!template id=vid vidid="mainVideo" src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--grant-shangreaux.webm" subtitles="/2020/subtitles/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--grant-shangreaux.vtt"]] -[Download compressed .webm video (20.3M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--grant-shangreaux--vp9-q56-video-original-audio.webm) +[[!template id=vid vidid="mainVideo" src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--grant-shangreaux.webm" subtitles="/2020/subtitles/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--grant-shangreaux.vtt" +other_resources="""[Download compressed .webm video (65.2M)](https://media.emacsconf.org/2020/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--grant-shangreaux--compressed32.webm) +[Download compressed .webm video (20.3M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--grant-shangreaux--vp9-q56-video-original-audio.webm) +"""]] [View transcript](#transcript) [[!template id=vid vidid="qnaVideo" src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--questions--grant-shangreaux.webm" download="Download Q&A video, 720p" subtitles="/2020/subtitles/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--questions--grant-shangreaux.vtt"]] -[Download compressed Q&A .webm video (15.7M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--questions--grant-shangreaux--vp9-q56-video-original-audio.webm) +[Download compressed Q&A .webm video (40.1M)](https://media.emacsconf.org/2020/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--questions--grant-shangreaux--compressed32.webm) +[Download compressed Q&A .webm video (15.7M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--questions--grant-shangreaux--vp9-q56-video-original-audio.webm) [View transcript for Q&A](#transcript-questions) I hoped to become a successful musician someday, and while that has diff --git a/2020/info/06.md b/2020/info/06.md index 98be1573..2eae273f 100644 --- a/2020/info/06.md +++ b/2020/info/06.md @@ -2,7 +2,8 @@ Corwin Brust [[!template id=vid vidid="mainVideo" src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--06-trivial-emacs-kits--corwin-brust.webm" size="114M" duration="13:41" subtitles="/2020/subtitles/emacsconf-2020--06-trivial-emacs-kits--corwin-brust.vtt"]] -[Download compressed .webm video (12M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--06-trivial-emacs-kits--corwin-brust--vp9-q56-video-original-audio.webm) +[Download compressed .webm video (20.2M)](https://media.emacsconf.org/2020/emacsconf-2020--06-trivial-emacs-kits--corwin-brust--compressed32.webm) +[Download compressed .webm video (12M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--06-trivial-emacs-kits--corwin-brust--vp9-q56-video-original-audio.webm) [View transcript](#transcript) Techniques to help new users bootstrap a more gentle introduction to diff --git a/2020/info/07.md b/2020/info/07.md index 1b9e0939..2fd5352f 100644 --- a/2020/info/07.md +++ b/2020/info/07.md @@ -2,11 +2,13 @@ Sid Kasivajhula [[!template id=vid vidid="mainVideo" src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--sid-kasivajhula.webm" subtitles="/2020/subtitles/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--sid-kasivajhula.vtt" size="161MB"]] -[Download compressed .webm video (45.1M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--sid-kasivajhula--vp9-q56-video-original-audio.webm) +[Download compressed .webm video (40M)](https://media.emacsconf.org/2020/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--sid-kasivajhula--compressed32.webm) +[Download compressed .webm video (45.1M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--sid-kasivajhula--vp9-q56-video-original-audio.webm) [View transcript](#transcript) [[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--questions--sid-kasivajhula.webm" subtitles="/2020/subtitles/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--questions--sid-kasivajhula.vtt" size="40MB"]] -[Download compressed .webm video (5M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--questions--sid-kasivajhula--vp9-q56-video-original-audio.webm) +[Download compressed .webm video (9.2M)](https://media.emacsconf.org/2020/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--questions--sid-kasivajhula--compressed32.webm) +[Download compressed .webm video (5M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--questions--sid-kasivajhula--vp9-q56-video-original-audio.webm) A practiced dexterity with the arcane incantations known as keybindings is the true mark of the veteran Emacs user. Yet, it takes years to get there, diff --git a/2020/info/08.md b/2020/info/08.md index 5494a68e..da17faf5 100644 --- a/2020/info/08.md +++ b/2020/info/08.md @@ -2,7 +2,8 @@ Andrew Tropin [[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--08-building-reproducible-emacs--andrew-tropin.webm" subtitles="/2020/subtitles/emacsconf-2020--08-building-reproducible-emacs--andrew-tropin.vtt"]] -[Download compressed .webm video (18.4M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--08-building-reproducible-emacs--andrew-tropin--vp9-q56-video-original-audio.webm) +[Download compressed .webm video (29.4M)](https://media.emacsconf.org/2020/emacsconf-2020--08-building-reproducible-emacs--andrew-tropin--compressed32.webm) +[Download compressed .webm video (18.4M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--08-building-reproducible-emacs--andrew-tropin--vp9-q56-video-original-audio.webm) [View transcript](#transcript) It's not always easy to take part of someone's configuration and make @@ -59,6 +60,10 @@ Currently trying it, and also in-process of switching from Nix to Guix. - Using Org-roam to demo how to config a Nix layer(?) - custom.el conflicts with Nix(?) +# Related talks + +- [rde Emacs introduction](/2022/talks/rde/) - Andrew's 2022 talk + <a name="transcript"></a> # Transcript diff --git a/2020/info/09.md b/2020/info/09.md index 55490bca..6c3f6a45 100644 --- a/2020/info/09.md +++ b/2020/info/09.md @@ -2,11 +2,13 @@ Rainer König [[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--09-orgmode-your-life-in-plain-text--rainer-koenig.webm" subtitles="/2020/subtitles/emacsconf-2020--09-orgmode-your-life-in-plain-text--rainer-koenig.vtt"]] -[Download compressed .webm video (12M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--09-orgmode-your-life-in-plain-text--rainer-koenig--vp9-q56-video-original-audio.webm) +[Download compressed .webm video (22.5M)](https://media.emacsconf.org/2020/emacsconf-2020--09-orgmode-your-life-in-plain-text--rainer-koenig--compressed32.webm) +[Download compressed .webm video (12M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--09-orgmode-your-life-in-plain-text--rainer-koenig--vp9-q56-video-original-audio.webm) [View transcript](#transcript) [[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--09-orgmode-your-life-in-plain-text--questions--rainer-konig.webm" download="Download Q&A video, 720p"]] -[Download compressed Q&A .webm video (5.8M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--09-orgmode-your-life-in-plain-text--questions--rainer-konig--vp9-q56-video-original-audio.webm) +[Download compressed Q&A .webm video (12.2M)](https://media.emacsconf.org/2020/emacsconf-2020--09-orgmode-your-life-in-plain-text--questions--rainer-konig--compressed32.webm) +[Download compressed Q&A .webm video (5.8M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--09-orgmode-your-life-in-plain-text--questions--rainer-konig--vp9-q56-video-original-audio.webm) In this talk I'll give you a quick overview of my Orgmode GTD system. We start with capturing a small project, scheduling diff --git a/2020/info/10.md b/2020/info/10.md index 40bf9516..9d0cb53d 100644 --- a/2020/info/10.md +++ b/2020/info/10.md @@ -2,7 +2,8 @@ Andrea [[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--10-lead-your-future-with-org--andrea.webm" subtitles="/2020/subtitles/emacsconf-2020--10-lead-your-future-with-org--andrea.vtt"]] -[Download compressed .webm video (10.5M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--10-lead-your-future-with-org--andrea--vp9-q56-video-original-audio.webm) +[Download compressed .webm video (16.5M)](https://media.emacsconf.org/2020/emacsconf-2020--10-lead-your-future-with-org--andrea--compressed32.webm) +[Download compressed .webm video (10.5M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--10-lead-your-future-with-org--andrea--vp9-q56-video-original-audio.webm) [View transcript](#transcript) The world is full of possibilities. A person life is rather short diff --git a/2020/info/12.md b/2020/info/12.md index 1f60436b..32ed9f83 100644 --- a/2020/info/12.md +++ b/2020/info/12.md @@ -2,7 +2,8 @@ Leo Vivier [[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--12-one-big-ass-org-file-or-multiple-tiny-ones-finally-the-end-of-the-debate--leo-vivier.webm" subtitles="/2020/subtitles/emacsconf-2020--12-one-big-ass-org-file-or-multiple-tiny-ones-finally-the-end-of-the-debate--leo-vivier.vtt"]] -[Download compressed .webm video (22.3M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--12-one-big-ass-org-file-or-multiple-tiny-ones-finally-the-end-of-the-debate--leo-vivier--vp9-q56-video-original-audio.webm) +[Download compressed .webm video (52.1M)](https://media.emacsconf.org/2020/emacsconf-2020--12-one-big-ass-org-file-or-multiple-tiny-ones-finally-the-end-of-the-debate--leo-vivier--compressed32.webm) +[Download compressed .webm video (22.3M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--12-one-big-ass-org-file-or-multiple-tiny-ones-finally-the-end-of-the-debate--leo-vivier--vp9-q56-video-original-audio.webm) [View transcript](#transcript) Many discussions have been had over the years on the debate between diff --git a/2020/info/13.md b/2020/info/13.md index f98ef404..346d1d40 100644 --- a/2020/info/13.md +++ b/2020/info/13.md @@ -2,7 +2,8 @@ Joseph Corneli, Raymond Puzio, and Cameron Ray Smith [[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--13-experience-report-steps-to-emacs-hyper-notebooks--joseph-corneli-raymond-puzio-cameron-ray-smith.webm" subtitles="/2020/subtitles/emacsconf-2020--13-experience-report-steps-to-emacs-hyper-notebooks--joseph-corneli-raymond-puzio-cameron-ray-smith.vtt"]] -[Download compressed .webm video (8.6M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--13-experience-report-steps-to-emacs-hyper-notebooks--joseph-corneli-raymond-puzio-cameron-ray-smith--vp9-q56-video-original-audio.webm) +[Download compressed .webm video (14.7M)](https://media.emacsconf.org/2020/emacsconf-2020--13-experience-report-steps-to-emacs-hyper-notebooks--joseph-corneli-raymond-puzio-cameron-ray-smith--compressed32.webm) +[Download compressed .webm video (8.6M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--13-experience-report-steps-to-emacs-hyper-notebooks--joseph-corneli-raymond-puzio-cameron-ray-smith--vp9-q56-video-original-audio.webm) [View transcript](#transcript) We present a short experience report from the perspective of two diff --git a/2020/info/14.md b/2020/info/14.md index e6e4e127..dfb65c43 100644 --- a/2020/info/14.md +++ b/2020/info/14.md @@ -2,7 +2,8 @@ Adam Ard [[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--14-readme-driven-design--adam-ard.webm" subtitles="/2020/subtitles/emacsconf-2020--14-readme-driven-design--adam-ard.vtt"]] -[Download compressed .webm video (21.4M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--14-readme-driven-design--adam-ard--vp9-q56-video-original-audio.webm) +[Download compressed .webm video (26.6M)](https://media.emacsconf.org/2020/emacsconf-2020--14-readme-driven-design--adam-ard--compressed32.webm) +[Download compressed .webm video (21.4M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--14-readme-driven-design--adam-ard--vp9-q56-video-original-audio.webm) [View transcript](#transcript) Many source code projects these days begin with a README file. While diff --git a/2020/info/15.md b/2020/info/15.md index 297b6cfe..d559901d 100644 --- a/2020/info/15.md +++ b/2020/info/15.md @@ -2,7 +2,8 @@ Adolfo Villafiorita [[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--15-moving-from-jekyll-to-orgmode-an-experience-report--adolfo-villafiorita.webm" subtitles="/2020/subtitles/emacsconf-2020--15-moving-from-jekyll-to-orgmode-an-experience-report--adolfo-villafiorita.vtt"]] -[Download compressed .webm video (13.8M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--15-moving-from-jekyll-to-orgmode-an-experience-report--adolfo-villafiorita--vp9-q56-video-original-audio.webm) +[Download compressed .webm video (23.6M)](https://media.emacsconf.org/2020/emacsconf-2020--15-moving-from-jekyll-to-orgmode-an-experience-report--adolfo-villafiorita--compressed32.webm) +[Download compressed .webm video (13.8M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--15-moving-from-jekyll-to-orgmode-an-experience-report--adolfo-villafiorita--vp9-q56-video-original-audio.webm) [View transcript](#transcript) I have been a long time user of static site generators, such as diff --git a/2020/info/17.md b/2020/info/17.md index 37a07710..83675788 100644 --- a/2020/info/17.md +++ b/2020/info/17.md @@ -2,7 +2,8 @@ Noorah Alhasan [[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--17-org-mode-and-org-roam-for-scholars-and-researchers--noorah-alhasan.webm" subtitles="/2020/subtitles/emacsconf-2020--17-org-mode-and-org-roam-for-scholars-and-researchers--noorah-alhasan.vtt"]] -[Download compressed .webm video (22.2M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--17-org-mode-and-org-roam-for-scholars-and-researchers--noorah-alhasan--vp9-q56-video-original-audio.webm) +[Download compressed .webm video (50.8M)](https://media.emacsconf.org/2020/emacsconf-2020--17-org-mode-and-org-roam-for-scholars-and-researchers--noorah-alhasan--compressed32.webm) +[Download compressed .webm video (22.2M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--17-org-mode-and-org-roam-for-scholars-and-researchers--noorah-alhasan--vp9-q56-video-original-audio.webm) [View transcript](#transcript) Org-mode improved so much over the years, and the use-cases in org-mode are diff --git a/2020/info/18.md b/2020/info/18.md index 67794237..80390a73 100644 --- a/2020/info/18.md +++ b/2020/info/18.md @@ -2,7 +2,8 @@ Leo Vivier [[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--18-org-roam-technical-presentation--leo-vivier.webm" subtitles="/2020/subtitles/emacsconf-2020--18-org-roam-technical-presentation--leo-vivier.vtt"]] -[Download compressed .webm video (23.5M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--18-org-roam-technical-presentation--leo-vivier--vp9-q56-video-original-audio.webm) +[Download compressed .webm video (47.4M)](https://media.emacsconf.org/2020/emacsconf-2020--18-org-roam-technical-presentation--leo-vivier--compressed32.webm) +[Download compressed .webm video (23.5M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--18-org-roam-technical-presentation--leo-vivier--vp9-q56-video-original-audio.webm) Org-roam is a Roam replica built on top of the all-powerful Org-mode. diff --git a/2020/info/19.md b/2020/info/19.md index ec5f5442..4dc84a04 100644 --- a/2020/info/19.md +++ b/2020/info/19.md @@ -2,7 +2,8 @@ Brett Gilio [[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--19-sharing-blogs-and-more-with-org-webring--brett-gilio.webm" subtitles="/2020/subtitles/emacsconf-2020--19-sharing-blogs-and-more-with-org-webring--brett-gilio-autogen.vtt"]] -[Download compressed .webm video (20.8M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--19-sharing-blogs-and-more-with-org-webring--brett-gilio--vp9-q56-video-original-audio.webm) +[Download compressed .webm video (25.8M)](https://media.emacsconf.org/2020/emacsconf-2020--19-sharing-blogs-and-more-with-org-webring--brett-gilio--compressed32.webm) +[Download compressed .webm video (20.8M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--19-sharing-blogs-and-more-with-org-webring--brett-gilio--vp9-q56-video-original-audio.webm) In this talk I will detail the ways in which static website generation results may be enhanced using org-webring. This talk will cover not diff --git a/2020/info/20.md b/2020/info/20.md index 51024c41..a8af5e35 100644 --- a/2020/info/20.md +++ b/2020/info/20.md @@ -2,7 +2,8 @@ Corwin Brust [[!template id=vid vidid="mainVideo" src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--20-omg-macros--corwin-brust.webm" subtitles="/2020/subtitles/emacsconf-2020--20-omg-macros--corwin-brust.vtt"]] -[Download compressed .webm video (24.3M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--20-omg-macros--corwin-brust--vp9-q56-video-original-audio.webm) +[Download compressed .webm video (45.8M)](https://media.emacsconf.org/2020/emacsconf-2020--20-omg-macros--corwin-brust--compressed32.webm) +[Download compressed .webm video (24.3M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--20-omg-macros--corwin-brust--vp9-q56-video-original-audio.webm) [View transcript](#transcript) Macros are a powerful tool. In the context of Emacs Lisp programming diff --git a/2020/info/21.md b/2020/info/21.md index aa5dabf7..96165e9e 100644 --- a/2020/info/21.md +++ b/2020/info/21.md @@ -2,7 +2,8 @@ Eduardo Ochs [[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--21-on-why-most-of-the-best-features-in-eev-look-like-5-minute-hacks--eduardo-ochs.webm" subtitles="/2020/subtitles/emacsconf-2020--21-on-why-most-of-the-best-features-in-eev-look-like-5-minute-hacks--eduardo-ochs.vtt"]] -[Download compressed .webm video (43.9M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--21-on-why-most-of-the-best-features-in-eev-look-like-5-minute-hacks--eduardo-ochs--vp9-q56-video-original-audio.webm) +[Download compressed .webm video (92.9M)](https://media.emacsconf.org/2020/emacsconf-2020--21-on-why-most-of-the-best-features-in-eev-look-like-5-minute-hacks--eduardo-ochs--compressed32.webm) +[Download compressed .webm video (43.9M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--21-on-why-most-of-the-best-features-in-eev-look-like-5-minute-hacks--eduardo-ochs--vp9-q56-video-original-audio.webm) In the last months there were several hundreds of messages in emacs-devel in threads with names like "A proposal for a friendlier diff --git a/2020/info/22.md b/2020/info/22.md index 85e366d1..638a2d2f 100644 --- a/2020/info/22.md +++ b/2020/info/22.md @@ -2,7 +2,8 @@ Musa Al-hassy [[!template id=vid vidid="mainVideo" src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--22-powering-up-special-blocks--musa-al-hassy.webm" subtitles="/2020/subtitles/emacsconf-2020--22-powering-up-special-blocks--musa-al-hassy.vtt" video]] -[Download compressed .webm video (29.2M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--22-powering-up-special-blocks--musa-al-hassy--vp9-q56-video-original-audio.webm) +[Download compressed .webm video (58.5M)](https://media.emacsconf.org/2020/emacsconf-2020--22-powering-up-special-blocks--musa-al-hassy--compressed32.webm) +[Download compressed .webm video (29.2M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--22-powering-up-special-blocks--musa-al-hassy--vp9-q56-video-original-audio.webm) [View transcript](#transcript) Users will generally only make use of a few predefined \`special diff --git a/2020/info/23.md b/2020/info/23.md index 7f20b2fd..e00d3c28 100644 --- a/2020/info/23.md +++ b/2020/info/23.md @@ -2,11 +2,13 @@ Tuấn-Anh Nguyễn [[!template vidid="mainVideo" id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--23-incremental-parsing-with-emacs-tree-sitter--tuan-anh-nguyen.webm" subtitles="/2020/subtitles/emacsconf-2020--23-incremental-parsing-with-emacs-tree-sitter--tuan-anh-nguyen.vtt"]] -[Download compressed .webm video (21.8M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--23-incremental-parsing-with-emacs-tree-sitter--tuan-anh-nguyen--vp9-q56-video-original-audio.webm) +[Download compressed .webm video (26.2M)](https://media.emacsconf.org/2020/emacsconf-2020--23-incremental-parsing-with-emacs-tree-sitter--tuan-anh-nguyen--compressed32.webm) +[Download compressed .webm video (21.8M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--23-incremental-parsing-with-emacs-tree-sitter--tuan-anh-nguyen--vp9-q56-video-original-audio.webm) [View transcript](#transcript) [[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--23-incremental-parsing-with-emacs-tree-sitter--questions--tuan-anh-nguyen.webm" download="Download Q&A video"]] -[Download compressed Q&A .webm video (16.4M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--23-incremental-parsing-with-emacs-tree-sitter--questions--tuan-anh-nguyen--vp9-q56-video-original-audio.webm) +[Download compressed Q&A .webm video (35.8M)](https://media.emacsconf.org/2020/emacsconf-2020--23-incremental-parsing-with-emacs-tree-sitter--questions--tuan-anh-nguyen--compressed32.webm) +[Download compressed Q&A .webm video (16.4M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--23-incremental-parsing-with-emacs-tree-sitter--questions--tuan-anh-nguyen--vp9-q56-video-original-audio.webm) Tree-sitter is a parser generator and an incremental parsing library. emacs-tree-sitter is its most popular Emacs binding, which aims to be @@ -177,6 +179,10 @@ Yes, it is just matter of paperwork. - An updated video version was uploaded after the event, with the missing introduction to Tree-sitter added. +# Related talks + +[[!taglink CategoryTreeSitter]] + <a name="transcript"></a> # Transcript diff --git a/2020/info/24.md b/2020/info/24.md index 9b9ae189..af8e503f 100644 --- a/2020/info/24.md +++ b/2020/info/24.md @@ -2,7 +2,8 @@ Andrea [[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--24-analyze-code-quality-through-emacs-a-smart-forensics-approach-and-the-story-of-a-hack--andrea.webm"]] -[Download compressed .webm video (36.3M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--24-analyze-code-quality-through-emacs-a-smart-forensics-approach-and-the-story-of-a-hack--andrea--vp9-q56-video-original-audio.webm) +[Download compressed .webm video (55.4M)](https://media.emacsconf.org/2020/emacsconf-2020--24-analyze-code-quality-through-emacs-a-smart-forensics-approach-and-the-story-of-a-hack--andrea--compressed32.webm) +[Download compressed .webm video (36.3M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--24-analyze-code-quality-through-emacs-a-smart-forensics-approach-and-the-story-of-a-hack--andrea--vp9-q56-video-original-audio.webm) [EmacsConf2020: first steps towards Emacs becoming your code compass!](https://ag91.github.io/blog/2020/12/11/emacsconf2020-first-steps-towards-emacs-becoming-your-code-compass/) diff --git a/2020/info/25.md b/2020/info/25.md index 4e49cdc6..506f3de5 100644 --- a/2020/info/25.md +++ b/2020/info/25.md @@ -2,7 +2,8 @@ Zen Monk Alain M. Lafon [[!template vidid="mainVideo" id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--25-traverse-complex-json-structures-with-live-feedback-counsel-jq--zen-monk-alain-m-lafon.webm" subtitles="/2020/subtitles/emacsconf-2020--25-traverse-complex-json-structures-with-live-feedback-counsel-jq--zen-monk-alain-m-lafon.vtt"]] -[Download compressed .webm video (15.8M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--25-traverse-complex-json-structures-with-live-feedback-counsel-jq--zen-monk-alain-m-lafon--vp9-q56-video-original-audio.webm) +[Download compressed .webm video (18.1M)](https://media.emacsconf.org/2020/emacsconf-2020--25-traverse-complex-json-structures-with-live-feedback-counsel-jq--zen-monk-alain-m-lafon--compressed32.webm) +[Download compressed .webm video (15.8M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--25-traverse-complex-json-structures-with-live-feedback-counsel-jq--zen-monk-alain-m-lafon--vp9-q56-video-original-audio.webm) [View transcript](#transcript) If you are working with complex nested JSON structures, you are diff --git a/2020/info/26.md b/2020/info/26.md index c53853f0..50463949 100644 --- a/2020/info/26.md +++ b/2020/info/26.md @@ -2,11 +2,13 @@ Pierce Wang [[!template vidid="mainVideo" id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--26-emacs-as-a-highschooler-how-it-changed-my-life--pierce-wang.webm" subtitles="/2020/subtitles/emacsconf-2020--26-emacs-as-a-highschooler-how-it-changed-my-life--pierce-wang.vtt"]] -[Download compressed .webm video (9.3M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--26-emacs-as-a-highschooler-how-it-changed-my-life--pierce-wang--vp9-q56-video-original-audio.webm) +[Download compressed .webm video (16.7M)](https://media.emacsconf.org/2020/emacsconf-2020--26-emacs-as-a-highschooler-how-it-changed-my-life--pierce-wang--compressed32.webm) +[Download compressed .webm video (9.3M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--26-emacs-as-a-highschooler-how-it-changed-my-life--pierce-wang--vp9-q56-video-original-audio.webm) [View transcript](#transcript) [[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--26-emacs-as-a-highschooler-how-it-changed-my-life--questions--pierce-wang.webm" download="Download Q&A video"]] -[Download compressed Q&A .webm video (7.5M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--26-emacs-as-a-highschooler-how-it-changed-my-life--questions--pierce-wang--vp9-q56-video-original-audio.webm) +[Download compressed Q&A .webm video (20.9M)](https://media.emacsconf.org/2020/emacsconf-2020--26-emacs-as-a-highschooler-how-it-changed-my-life--questions--pierce-wang--compressed32.webm) +[Download compressed Q&A .webm video (7.5M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--26-emacs-as-a-highschooler-how-it-changed-my-life--questions--pierce-wang--vp9-q56-video-original-audio.webm) Could Emacs be humanity's solution to the turbulent years of adolescence? So much more than a text editor, Emacs changed the way I diff --git a/2020/info/27.md b/2020/info/27.md index 9740bd07..d7a5c1b5 100644 --- a/2020/info/27.md +++ b/2020/info/27.md @@ -2,7 +2,8 @@ Vasilij "wasamasa" Schneidermann [[!template vidid=mainVideo id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--27-state-of-retro-gaming-in-emacs-chip8--vasilij-wasamasa-schneidermann.webm" subtitles="/2020/subtitles/emacsconf-2020--27-state-of-retro-gaming-in-emacs-chip8--vasilij-wasamasa-schneidermann.vtt"]] -[Download compressed .webm video (7.2M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--27-state-of-retro-gaming-in-emacs-chip8--vasilij-wasamasa-schneidermann--vp9-q56-video-original-audio.webm) +[Download compressed .webm video (9.6M)](https://media.emacsconf.org/2020/emacsconf-2020--27-state-of-retro-gaming-in-emacs-chip8--vasilij-wasamasa-schneidermann--compressed32.webm) +[Download compressed .webm video (7.2M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--27-state-of-retro-gaming-in-emacs-chip8--vasilij-wasamasa-schneidermann--vp9-q56-video-original-audio.webm) [View transcript](#transcript) - [chip8 demo - alien, .webm video, 720p, 2M](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--27-state-of-retro-gaming-in-emacs-chip8-demo-alien--vasilij-wasamasa-schneidermann.webm) diff --git a/2020/info/28.md b/2020/info/28.md index 9aa61df0..5ea02d1c 100644 --- a/2020/info/28.md +++ b/2020/info/28.md @@ -2,7 +2,8 @@ Erik Elmshauser and Corwin Brust [[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--28-welcome-to-the-dungeon--erik-elmshauser-corwin-brust.webm"]] -[Download compressed .webm video (84.2M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--28-welcome-to-the-dungeon--erik-elmshauser-corwin-brust--vp9-q56-video-original-audio.webm) +[Download compressed .webm video (257.5M)](https://media.emacsconf.org/2020/emacsconf-2020--28-welcome-to-the-dungeon--erik-elmshauser-corwin-brust--compressed32.webm) +[Download compressed .webm video (84.2M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--28-welcome-to-the-dungeon--erik-elmshauser-corwin-brust--vp9-q56-video-original-audio.webm) Dungeon is an oral and physical media fantasy and abstract role-play gaming tradition that seems to have grown from miniature and diff --git a/2020/info/30.md b/2020/info/30.md index 1535f2ab..c1ccb761 100644 --- a/2020/info/30.md +++ b/2020/info/30.md @@ -1,11 +1,14 @@ # A tour of vterm Gabriele Bozzola (@sbozzolo) -[[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--30-a-tour-of-vterm--gabriele-bozzola-sbozzolo.webm"]] -[Download compressed .webm video (10.9M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--30-a-tour-of-vterm--gabriele-bozzola-sbozzolo--vp9-q56-video-original-audio.webm) +[[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--30-a-tour-of-vterm--gabriele-bozzola-sbozzolo.webm" subtitles="/2020/subtitles/emacsconf-2020--30-a-tour-of-vterm--gabriele-bozzola-sbozzolo.vtt"]] +[Download compressed .webm video (17.7M)](https://media.emacsconf.org/2020/emacsconf-2020--30-a-tour-of-vterm--gabriele-bozzola-sbozzolo--compressed32.webm) +[Download compressed .webm video (10.9M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--30-a-tour-of-vterm--gabriele-bozzola-sbozzolo--vp9-q56-video-original-audio.webm) g +[View transcript](#transcript) [[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--30-a-tour-of-vterm--questions--gabriele-bozzola-sbozzolo.webm" download="Download Q&A video"]] -[Download compressed Q&A .webm video (3.3M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--30-a-tour-of-vterm--questions--gabriele-bozzola-sbozzolo--vp9-q56-video-original-audio.webm) +[Download compressed Q&A .webm video (4.1M)](https://media.emacsconf.org/2020/emacsconf-2020--30-a-tour-of-vterm--questions--gabriele-bozzola-sbozzolo--compressed32.webm) +[Download compressed Q&A .webm video (3.3M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--30-a-tour-of-vterm--questions--gabriele-bozzola-sbozzolo--vp9-q56-video-original-audio.webm) Vterm is a fast and fully capable terminal emulator in GNU Emacs built as a dynamic module on top of libvterm. In this talk, I will give an @@ -47,3 +50,182 @@ in Emacs. # Notes <https://github.com/akermu/emacs-libvterm> + +<a name="transcript"></a> +# Transcript + +[[!template text="Hello and welcome to this talk." start="00:00:00.880" video="mainVideo" id=subtitle]] +[[!template text="The title of this talk is a tour of vterm," start="00:00:03.760" video="mainVideo" id=subtitle]] +[[!template text="a fast and fully featured terminal emulator" start="00:00:06.080" video="mainVideo" id=subtitle]] +[[!template text="inside GNU Emacs." start="00:00:08.559" video="mainVideo" id=subtitle]] +[[!template text="So let's try to understand what we mean" start="00:00:10.801" video="mainVideo" id=subtitle]] +[[!template text="with " ;fast and fully featured." ;" start="00:00:12.720" video="mainVideo" id=subtitle]] +[[!template text="To do that we'll compare vterm" start="00:00:14.559" video="mainVideo" id=subtitle]] +[[!template text="with the packages which are built in Emacs," start="00:00:16.801" video="mainVideo" id=subtitle]] +[[!template text="mainly, term." start="00:00:20.401" video="mainVideo" id=subtitle]] +[[!template text="So let's jump into the vterm." start="00:00:22.400" video="mainVideo" id=subtitle]] +[[!template text="So this is a vterm buffer" start="00:00:25.040" video="mainVideo" id=subtitle]] +[[!template text="and this is a ansi-term buffer." start="00:00:26.720" video="mainVideo" id=subtitle]] +[[!template new="1" text="What I'm going to do now is" start="00:00:29.440" video="mainVideo" id=subtitle]] +[[!template text="first I'm going to prove to you" start="00:00:30.721" video="mainVideo" id=subtitle]] +[[!template text="what we mean by fast." start="00:00:32.160" video="mainVideo" id=subtitle]] +[[!template text="To do that, let me open a large file display on screen--" start="00:00:34.161" video="mainVideo" id=subtitle]] +[[!template text="a large file, this is about one megabyte of data--" start="00:00:37.441" video="mainVideo" id=subtitle]] +[[!template text="and let me time that." start="00:00:40.239" video="mainVideo" id=subtitle]] +[[!template text="It takes about 0.6 seconds with vterm." start="00:00:41.841" video="mainVideo" id=subtitle]] +[[!template text="Let's do the same with with ansi-term." start="00:00:45.201" video="mainVideo" id=subtitle]] +[[!template text="Well, we already see the difference." start="00:00:48.321" video="mainVideo" id=subtitle]] +[[!template new="1" text="So I will use this time to tell you" start="00:00:51.520" video="mainVideo" id=subtitle]] +[[!template text="what's different, and what is vterm exactly." start="00:00:53.039" video="mainVideo" id=subtitle]] +[[!template text="vterm is a terminal emulator" start="00:00:56.321" video="mainVideo" id=subtitle]] +[[!template text="built on top of an external library." start="00:00:58.400" video="mainVideo" id=subtitle]] +[[!template text="The library is called libvterm," start="00:01:00.801" video="mainVideo" id=subtitle]] +[[!template text="and is the same library used by Newton" start="00:01:02.719" video="mainVideo" id=subtitle]] +[[!template text="for their own terminal emulator." start="00:01:05.519" video="mainVideo" id=subtitle]] +[[!template text="It's a C library, and this is what gives us" start="00:01:07.200" video="mainVideo" id=subtitle]] +[[!template text="a lot of good features. First, the speed." start="00:01:10.799" video="mainVideo" id=subtitle]] +[[!template text="Time spent here, 0.6, is essentially" start="00:01:15.119" video="mainVideo" id=subtitle]] +[[!template text="the time that it takes to:" start="00:01:17.120" video="mainVideo" id=subtitle]] +[[!template text="1\. convert the Emacs representation of text" start="00:01:18.479" video="mainVideo" id=subtitle]] +[[!template text="into the vterm representation of what is a string," start="00:01:22.241" video="mainVideo" id=subtitle]] +[[!template text="and 2., into actually displaying that," start="00:01:25.041" video="mainVideo" id=subtitle]] +[[!template text="and that can take time" start="00:01:27.361" video="mainVideo" id=subtitle]] +[[!template text="if there's fontification involved." start="00:01:29.520" video="mainVideo" id=subtitle]] +[[!template text="So these are the 0.6 seconds there." start="00:01:32.241" video="mainVideo" id=subtitle]] +[[!template text="As we say, in ansi-term, that's much more time." start="00:01:34.240" video="mainVideo" id=subtitle]] +[[!template text="It's much slower. So the terminal will feel" start="00:01:38.480" video="mainVideo" id=subtitle]] +[[!template text="much snappier, much faster." start="00:01:40.721" video="mainVideo" id=subtitle]] +[[!template new="1" text="But that's not the main benefit or the only benefit" start="00:01:42.880" video="mainVideo" id=subtitle]] +[[!template text="of using this external library vterm." start="00:01:46.721" video="mainVideo" id=subtitle]] +[[!template text="The second big benefit is that" start="00:01:49.760" video="mainVideo" id=subtitle]] +[[!template text="vterm has support for all the escape codes" start="00:01:53.041" video="mainVideo" id=subtitle]] +[[!template text="that xterm has support for," start="00:01:56.560" video="mainVideo" id=subtitle]] +[[!template text="so vterm is essentially as running xterm" start="00:01:58.321" video="mainVideo" id=subtitle]] +[[!template text="inside an Emacs buffer. So let's see that." start="00:02:01.119" video="mainVideo" id=subtitle]] +[[!template text="For example, let's start by looking" start="00:02:03.600" video="mainVideo" id=subtitle]] +[[!template text="at the support for colors." start="00:02:05.760" video="mainVideo" id=subtitle]] +[[!template text="We have support for all the colors out of the box." start="00:02:08.239" video="mainVideo" id=subtitle]] +[[!template text="We don't have to do anything." start="00:02:10.320" video="mainVideo" id=subtitle]] +[[!template text="And if we did the same here, well," start="00:02:11.840" video="mainVideo" id=subtitle]] +[[!template text="we have only 20 colors." start="00:02:14.721" video="mainVideo" id=subtitle]] +[[!template text="There's a way to get all the colors," start="00:02:16.801" video="mainVideo" id=subtitle]] +[[!template text="but it's much more involved." start="00:02:18.240" video="mainVideo" id=subtitle]] +[[!template new="1" text="But this is not where vterm shines." start="00:02:19.680" video="mainVideo" id=subtitle]] +[[!template text="We can run all the commands that we want." start="00:02:23.040" video="mainVideo" id=subtitle]] +[[!template text="htop, ncdu, everything runs here." start="00:02:27.200" video="mainVideo" id=subtitle]] +[[!template text="Also this title, it's a fairly complicated" start="00:02:31.441" video="mainVideo" id=subtitle]] +[[!template text="manipulation of the window" start="00:02:35.520" video="mainVideo" id=subtitle]] +[[!template text="and it will not work here." start="00:02:37.921" video="mainVideo" id=subtitle]] +[[!template text="It just doesn't work actually." start="00:02:40.879" video="mainVideo" id=subtitle]] +[[!template text="Now the terminal is probably messed up. Yes." start="00:02:42.001" video="mainVideo" id=subtitle]] +[[!template text="So using this external library" start="00:02:46.161" video="mainVideo" id=subtitle]] +[[!template text="removes the burden from the developers" start="00:02:48.400" video="mainVideo" id=subtitle]] +[[!template text="of having to implement support" start="00:02:50.959" video="mainVideo" id=subtitle]] +[[!template text="for all the escape codes." start="00:02:52.320" video="mainVideo" id=subtitle]] +[[!template text="We just use those." start="00:02:53.281" video="mainVideo" id=subtitle]] +[[!template new="1" text="So in many ways, running vterm" start="00:02:55.360" video="mainVideo" id=subtitle]] +[[!template text="is running xterm inside Emacs," start="00:02:58.480" video="mainVideo" id=subtitle]] +[[!template text="but it's better than that because," start="00:03:01.760" video="mainVideo" id=subtitle]] +[[!template text="since this is an Emacs buffer," start="00:03:04.160" video="mainVideo" id=subtitle]] +[[!template text="we can enjoy a lot of features from Emacs" start="00:03:05.840" video="mainVideo" id=subtitle]] +[[!template text="as well as a tighter integration" start="00:03:09.760" video="mainVideo" id=subtitle]] +[[!template text="with Emacs itself." start="00:03:11.361" video="mainVideo" id=subtitle]] +[[!template text="For example, as you see here," start="00:03:13.200" video="mainVideo" id=subtitle]] +[[!template text="the title of my buffer is from the directory I'm in." start="00:03:15.841" video="mainVideo" id=subtitle]] +[[!template text="So let's go to my tmp." start="00:03:20.240" video="mainVideo" id=subtitle]] +[[!template text="The title will change." start="00:03:21.760" video="mainVideo" id=subtitle]] +[[!template text="So there's information being exchanged" start="00:03:23.441" video="mainVideo" id=subtitle]] +[[!template text="between vterm and Emacs." start="00:03:25.921" video="mainVideo" id=subtitle]] +[[!template text="And of course, the title is not the only place" start="00:03:28.000" video="mainVideo" id=subtitle]] +[[!template text="where information is exchanged." start="00:03:30.001" video="mainVideo" id=subtitle]] +[[!template text="I can find a file and I will be in the directory" start="00:03:32.000" video="mainVideo" id=subtitle]] +[[!template text="where my terminal is." start="00:03:35.920" video="mainVideo" id=subtitle]] +[[!template text="This feature is also available in ansi-term," start="00:03:37.681" video="mainVideo" id=subtitle]] +[[!template text="and it works also on vterm," start="00:03:40.000" video="mainVideo" id=subtitle]] +[[!template text="and it follows me. So if I go to tmp," start="00:03:41.361" video="mainVideo" id=subtitle]] +[[!template text="I'll get the tmp." start="00:03:43.441" video="mainVideo" id=subtitle]] +[[!template text="If I ssh to a remote server," start="00:03:44.720" video="mainVideo" id=subtitle]] +[[!template text="it will work also on remote servers as well," start="00:03:47.121" video="mainVideo" id=subtitle]] +[[!template text="which is a very nice way to edit files remotely" start="00:03:50.240" video="mainVideo" id=subtitle]] +[[!template text="while we're working on a shell." start="00:03:53.920" video="mainVideo" id=subtitle]] +[[!template new="1" text="And second, while vterm is not an Elisp interpreter" start="00:03:55.600" video="mainVideo" id=subtitle]] +[[!template text="like eshell, what we can do is" start="00:03:59.281" video="mainVideo" id=subtitle]] +[[!template text="we can still run Emacs functions." start="00:04:01.201" video="mainVideo" id=subtitle]] +[[!template text="So for example..." start="00:04:04.721" video="mainVideo" id=subtitle]] +[[!template text="that requires some configuration." start="00:04:06.081" video="mainVideo" id=subtitle]] +[[!template text="vterm command (message "hi")" start="00:04:08.001" video="mainVideo" id=subtitle]] +[[!template text="as you see there's a "hi" here." start="00:04:11.600" video="mainVideo" id=subtitle]] +[[!template text="So what I'm doing is I'm executing" start="00:04:13.121" video="mainVideo" id=subtitle]] +[[!template text="the Elisp function hi." start="00:04:14.960" video="mainVideo" id=subtitle]] +[[!template text="I can drop that and turn it around," start="00:04:16.239" video="mainVideo" id=subtitle]] +[[!template text="hash function to run Elisp functions." start="00:04:18.960" video="mainVideo" id=subtitle]] +[[!template text="Or another one, find-file, same." start="00:04:21.601" video="mainVideo" id=subtitle]] +[[!template text="We call this feature "message passing,"" start="00:04:24.880" video="mainVideo" id=subtitle]] +[[!template text="and it requires some configuration" start="00:04:27.361" video="mainVideo" id=subtitle]] +[[!template text="on the Emacs side as well as in the shell side." start="00:04:30.001" video="mainVideo" id=subtitle]] +[[!template new="1" text="It's important to stress" start="00:04:32.000" video="mainVideo" id=subtitle]] +[[!template text="what's the nature of vterm." start="00:04:33.441" video="mainVideo" id=subtitle]] +[[!template text="For instance, every time I'm sending a key binding," start="00:04:35.360" video="mainVideo" id=subtitle]] +[[!template text="it's not immediately clear if my intention is" start="00:04:37.920" video="mainVideo" id=subtitle]] +[[!template text="to send it to the shell or to Emacs." start="00:04:40.001" video="mainVideo" id=subtitle]] +[[!template text="So vterm implements some reasonable defaults," start="00:04:41.841" video="mainVideo" id=subtitle]] +[[!template text="but at the moment it's mainly packaged" start="00:04:44.320" video="mainVideo" id=subtitle]] +[[!template text="to display characters on a screen." start="00:04:46.800" video="mainVideo" id=subtitle]] +[[!template text="So for example, if you're using evil," start="00:04:49.120" video="mainVideo" id=subtitle]] +[[!template text="the editing commands in evil" start="00:04:50.721" video="mainVideo" id=subtitle]] +[[!template text="will not work immediately." start="00:04:52.640" video="mainVideo" id=subtitle]] +[[!template text="There's some work to be done" start="00:04:54.081" video="mainVideo" id=subtitle]] +[[!template text="and integration can be improved on that side," start="00:04:55.759" video="mainVideo" id=subtitle]] +[[!template new="1" text="but sometimes we really want this to behave" start="00:04:58.161" video="mainVideo" id=subtitle]] +[[!template text="exactly like a Emacs buffer." start="00:05:00.240" video="mainVideo" id=subtitle]] +[[!template text="We want to be able to search." start="00:05:02.240" video="mainVideo" id=subtitle]] +[[!template text="If I try to get it to search," start="00:05:03.681" video="mainVideo" id=subtitle]] +[[!template text="it will not work." start="00:05:06.640" video="mainVideo" id=subtitle]] +[[!template text="I will send it to the shell." start="00:05:07.281" video="mainVideo" id=subtitle]] +[[!template text="So to do that, we enabled vterm copy mode." start="00:05:08.401" video="mainVideo" id=subtitle]] +[[!template text="As you see, copy mode, and now this buffer" start="00:05:11.920" video="mainVideo" id=subtitle]] +[[!template text="is essentially a fundamental buffer." start="00:05:14.721" video="mainVideo" id=subtitle]] +[[!template text="I can move around. I can search." start="00:05:17.039" video="mainVideo" id=subtitle]] +[[!template text="So it must have... I can do everything I want." start="00:05:21.120" video="mainVideo" id=subtitle]] +[[!template text="And there are additional features." start="00:05:25.521" video="mainVideo" id=subtitle]] +[[!template text="For example, I can jump around all the prompts." start="00:05:26.480" video="mainVideo" id=subtitle]] +[[!template text="I find this extremely useful," start="00:05:30.561" video="mainVideo" id=subtitle]] +[[!template text="because I can copy updates from my programs." start="00:05:32.639" video="mainVideo" id=subtitle]] +[[!template text="What I always have to do is" start="00:05:35.040" video="mainVideo" id=subtitle]] +[[!template text="I have to Google some errors." start="00:05:38.321" video="mainVideo" id=subtitle]] +[[!template text="So what I do is I select that" start="00:05:41.521" video="mainVideo" id=subtitle]] +[[!template text="and I have my keybinding in Emacs conf," start="00:05:43.120" video="mainVideo" id=subtitle]] +[[!template text="and I'm Googling what I have to Google." start="00:05:45.121" video="mainVideo" id=subtitle]] +[[!template text="So this is very nice and if I..." start="00:05:48.480" video="mainVideo" id=subtitle]] +[[!template text="now that I have selected something," start="00:05:51.121" video="mainVideo" id=subtitle]] +[[!template text="if I just press return," start="00:05:52.640" video="mainVideo" id=subtitle]] +[[!template text="I will go back to my normal editing mode" start="00:05:53.841" video="mainVideo" id=subtitle]] +[[!template text="with the text copied, so I can paste it back." start="00:05:56.401" video="mainVideo" id=subtitle]] +[[!template text="So it's a quick way to interact with copy" start="00:06:00.161" video="mainVideo" id=subtitle]] +[[!template text="and interact with the output of a buffer." start="00:06:02.721" video="mainVideo" id=subtitle]] +[[!template new="1" text="So finally, let's discuss how to actually use vterm." start="00:06:05.841" video="mainVideo" id=subtitle]] +[[!template text="Let's circle back, let's go," start="00:06:09.121" video="mainVideo" id=subtitle]] +[[!template text="and let's look at the GitHub repo" start="00:06:10.560" video="mainVideo" id=subtitle]] +[[!template text="where development is happening." start="00:06:12.400" video="mainVideo" id=subtitle]] +[[!template text="vterm is available in MELPA," start="00:06:14.001" video="mainVideo" id=subtitle]] +[[!template text="but since it's leveraging the power" start="00:06:15.520" video="mainVideo" id=subtitle]] +[[!template text="of an external module," start="00:06:17.760" video="mainVideo" id=subtitle]] +[[!template text="you must have Emacs compiled" start="00:06:18.960" video="mainVideo" id=subtitle]] +[[!template text="with support for modules," start="00:06:20.480" video="mainVideo" id=subtitle]] +[[!template text="and many distros like Ubuntu, Debian," start="00:06:22.000" video="mainVideo" id=subtitle]] +[[!template text="that's not there. So you have to" start="00:06:25.600" video="mainVideo" id=subtitle]] +[[!template text="get Emacs with support for modules:" start="00:06:26.881" video="mainVideo" id=subtitle]] +[[!template text="compiling or getting images somewhere else." start="00:06:29.200" video="mainVideo" id=subtitle]] +[[!template text="And also, the first time you are going to use this," start="00:06:31.361" video="mainVideo" id=subtitle]] +[[!template text="which works only on Mac or GNU Linux systems," start="00:06:33.840" video="mainVideo" id=subtitle]] +[[!template text="Emacs will try to find and compile this module," start="00:06:38.961" video="mainVideo" id=subtitle]] +[[!template text="so it's important. This requirement is important." start="00:06:41.759" video="mainVideo" id=subtitle]] +[[!template text="If you're using Windows, well," start="00:06:44.241" video="mainVideo" id=subtitle]] +[[!template text="it's not available and will not work." start="00:06:46.401" video="mainVideo" id=subtitle]] +[[!template new="1" text="So to conclude, I want to just advertise this page." start="00:06:49.199" video="mainVideo" id=subtitle]] +[[!template text="If you have problems, look at the issues" start="00:06:53.440" video="mainVideo" id=subtitle]] +[[!template text="and open an issue in case." start="00:06:56.240" video="mainVideo" id=subtitle]] +[[!template text="We'll try to help you." start="00:06:58.241" video="mainVideo" id=subtitle]] +[[!template text="We are very excited about vterm," start="00:06:59.200" video="mainVideo" id=subtitle]] +[[!template text="and I think it's a transformative" start="00:07:00.800" video="mainVideo" id=subtitle]] +[[!template text="terminal experience inside GNU Emacs." start="00:07:02.639" video="mainVideo" id=subtitle]] diff --git a/2020/info/31.md b/2020/info/31.md index 7ea737d9..b5c5c661 100644 --- a/2020/info/31.md +++ b/2020/info/31.md @@ -2,10 +2,12 @@ Grant Shangreaux [[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--31-lakota-language-and-emacs--grant-shangreaux.webm"]] -[Download compressed .webm video (11.5M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--31-lakota-language-and-emacs--grant-shangreaux--vp9-q56-video-original-audio.webm) +[Download compressed .webm video (36.3M)](https://media.emacsconf.org/2020/emacsconf-2020--31-lakota-language-and-emacs--grant-shangreaux--compressed32.webm) +[Download compressed .webm video (11.5M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--31-lakota-language-and-emacs--grant-shangreaux--vp9-q56-video-original-audio.webm) [[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--31-lakota-language-and-emacs--questions--grant-shangreaux.webm" download="Download Q&A video"]] -[Download compressed Q&A .webm video (6.8M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--31-lakota-language-and-emacs--questions--grant-shangreaux--vp9-q56-video-original-audio.webm) +[Download compressed Q&A .webm video (14.3M)](https://media.emacsconf.org/2020/emacsconf-2020--31-lakota-language-and-emacs--questions--grant-shangreaux--compressed32.webm) +[Download compressed Q&A .webm video (6.8M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--31-lakota-language-and-emacs--questions--grant-shangreaux--vp9-q56-video-original-audio.webm) <https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--31-lakota-language-and-emacs--grant-shangreaux.org> diff --git a/2020/info/32.md b/2020/info/32.md index b1952d04..ad063ad9 100644 --- a/2020/info/32.md +++ b/2020/info/32.md @@ -2,7 +2,8 @@ Eric Abrahamsen [[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--32-object-oriented-code-in-the-gnus-newsreader--eric-abrahamsen.webm"]] -[Download compressed .webm video (21.3M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--32-object-oriented-code-in-the-gnus-newsreader--eric-abrahamsen--vp9-q56-video-original-audio.webm) +[Download compressed .webm video (43.9M)](https://media.emacsconf.org/2020/emacsconf-2020--32-object-oriented-code-in-the-gnus-newsreader--eric-abrahamsen--compressed32.webm) +[Download compressed .webm video (21.3M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--32-object-oriented-code-in-the-gnus-newsreader--eric-abrahamsen--vp9-q56-video-original-audio.webm) The venerable Gnus newsreader has evolved over the years to interface with many different types of news- or mail-like backend programs, diff --git a/2020/info/33.md b/2020/info/33.md index ca231c6e..69920002 100644 --- a/2020/info/33.md +++ b/2020/info/33.md @@ -2,7 +2,8 @@ Fermin MF [[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--33-maxima-a-computer-algebra-system-in-emacs--fermin.webm"]] -[Download compressed .webm video (26.5M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--33-maxima-a-computer-algebra-system-in-emacs--fermin--vp9-q56-video-original-audio.webm) +[Download compressed .webm video (52.6M)](https://media.emacsconf.org/2020/emacsconf-2020--33-maxima-a-computer-algebra-system-in-emacs--fermin--compressed32.webm) +[Download compressed .webm video (26.5M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--33-maxima-a-computer-algebra-system-in-emacs--fermin--vp9-q56-video-original-audio.webm) [Download prerecorded video](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--33-maxima-a-computer-algebra-system-in-emacs--prerec--fermin.webm) diff --git a/2020/info/34.md b/2020/info/34.md index ba1bade1..7c73b7ce 100644 --- a/2020/info/34.md +++ b/2020/info/34.md @@ -2,7 +2,8 @@ Matthew Zeng [[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--34-extend-emacs-to-modern-gui-applications-with-eaf--matthew-zeng.webm" size="113M" subtitles="/2020/subtitles/emacsconf-2020--34-extend-emacs-to-modern-gui-applications-with-eaf--matthew-zeng.vtt" duration="22:23"]] -[Download compressed .webm video (28.4M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--34-extend-emacs-to-modern-gui-applications-with-eaf--matthew-zeng--vp9-q56-video-original-audio.webm) +[Download compressed .webm video (41.7M)](https://media.emacsconf.org/2020/emacsconf-2020--34-extend-emacs-to-modern-gui-applications-with-eaf--matthew-zeng--compressed32.webm) +[Download compressed .webm video (28.4M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--34-extend-emacs-to-modern-gui-applications-with-eaf--matthew-zeng--vp9-q56-video-original-audio.webm) [View transcript](#transcript) Emacs Application Framework (EAF) is a customizable and extensible GUI diff --git a/2020/info/35.md b/2020/info/35.md index 276d24aa..d0dd67c2 100644 --- a/2020/info/35.md +++ b/2020/info/35.md @@ -2,11 +2,13 @@ Zachary Kanfer [[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--zachary-kanfer.webm" size="122M" subtitles="/2020/subtitles/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--zachary-kanfer.vtt" duration="9:44"]] -[Download compressed .webm video (12.7M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--zachary-kanfer--vp9-q56-video-original-audio.webm) +[Download compressed .webm video (20.7M)](https://media.emacsconf.org/2020/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--zachary-kanfer--compressed32.webm) +[Download compressed .webm video (12.7M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--zachary-kanfer--vp9-q56-video-original-audio.webm) [View transcript](#transcript) [[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--questions--zachary-kanfer.webm" download="Download Q&A video" size="89M" subtitles="/2020/subtitles/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--questions--zachary-kanfer.vtt" duration="6:18"]] -[Download compressed Q&A .webm video (6.9M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--questions--zachary-kanfer--vp9-q56-video-original-audio.webm) +[Download compressed Q&A .webm video (15.2M)](https://media.emacsconf.org/2020/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--questions--zachary-kanfer--compressed32.webm) +[Download compressed Q&A .webm video (6.9M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--questions--zachary-kanfer--vp9-q56-video-original-audio.webm) [View transcript for Q&A](#transcript-questions) During quarantine, I found myself spending time with an Android app. diff --git a/2020/info/38.md b/2020/info/38.md index 6991eda4..af52e80e 100644 --- a/2020/info/38.md +++ b/2020/info/38.md @@ -2,7 +2,8 @@ John Wiegley [[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--38-emacs-development-update--john-wiegley.webm" size="75M" subtitles="/2020/subtitles/emacsconf-2020--38-emacs-development-update--john-wiegley.vtt" duration="5:07"]] -[Download compressed .webm video (8.4M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--38-emacs-development-update--john-wiegley--vp9-q56-video-original-audio.webm) +[Download compressed .webm video (14.3M)](https://media.emacsconf.org/2020/emacsconf-2020--38-emacs-development-update--john-wiegley--compressed32.webm) +[Download compressed .webm video (8.4M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--38-emacs-development-update--john-wiegley--vp9-q56-video-original-audio.webm) [View transcript](#transcript) - Actual start and end time (EST): Start 2020-11-29T09.12.40; End: diff --git a/2020/info/39.md b/2020/info/39.md index 4ca2f49d..32b06cb7 100644 --- a/2020/info/39.md +++ b/2020/info/39.md @@ -2,11 +2,13 @@ Richard Stallman [[!template id=vid vidid="mainVideo" src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--39-nongnu-elpa--richard-stallman.webm" size="282M" subtitles="/2020/subtitles/emacsconf-2020--39-nongnu-elpa--richard-stallman.vtt" duration="6:56"]] -[Download compressed .webm video (20.8M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--39-nongnu-elpa--richard-stallman--vp9-q56-video-original-audio.webm) +[Download compressed .webm video (72.9M)](https://media.emacsconf.org/2020/emacsconf-2020--39-nongnu-elpa--richard-stallman--compressed32.webm) +[Download compressed .webm video (20.8M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--39-nongnu-elpa--richard-stallman--vp9-q56-video-original-audio.webm) [View transcript](#transcript) [[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--39-nongnu-elpa--questions--richard-stallman.webm" size="470M" subtitles="/2020/subtitles/emacsconf-2020--39-nongnu-elpa--questions--richard-stallman.vtt" duration="46:42" download="Download Q&A video"]] -[Download compressed Q&A .webm video (44M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--39-nongnu-elpa--questions--richard-stallman--vp9-q56-video-original-audio.webm) +[Download compressed Q&A .webm video (0)](https://media.emacsconf.org/2020/emacsconf-2020--39-nongnu-elpa--questions--richard-stallman--compressed32.webm) +[Download compressed Q&A .webm video (44M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--39-nongnu-elpa--questions--richard-stallman--vp9-q56-video-original-audio.webm) [View transcript for Q&A](#transcript-questions) <!-- from the pad ---> diff --git a/2020/info/40.md b/2020/info/40.md index 4886d63e..eaf409ed 100644 --- a/2020/info/40.md +++ b/2020/info/40.md @@ -1,10 +1,12 @@ # Closing remarks (Saturday) [[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--40-closing-remarks-part-1.webm" download="Download part 1"]] -[Download compressed .webm video (2.7M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--40-closing-remarks-part-1--vp9-q56-video-original-audio.webm) +[Download compressed .webm video (4.7M)](https://media.emacsconf.org/2020/emacsconf-2020--40-closing-remarks-part-1--compressed32.webm) +[Download compressed .webm video (2.7M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--40-closing-remarks-part-1--vp9-q56-video-original-audio.webm) [[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--40-closing-remarks-part-2.webm" download="Download part 2"]] -[Download compressed .webm video (14M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--40-closing-remarks-part-2--vp9-q56-video-original-audio.webm) +[Download compressed .webm video (37.3M)](https://media.emacsconf.org/2020/emacsconf-2020--40-closing-remarks-part-2--compressed32.webm) +[Download compressed .webm video (14M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--40-closing-remarks-part-2--vp9-q56-video-original-audio.webm) - Stats: - 21 talks today, 16 tomorrow (30 last year) diff --git a/2020/info/41.md b/2020/info/41.md index e387caeb..272be760 100644 --- a/2020/info/41.md +++ b/2020/info/41.md @@ -1,7 +1,8 @@ # Opening remarks (Sunday) [[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--41-opening-remarks.webm" size="207MB"]] -[Download compressed .webm video (15M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--41-opening-remarks--vp9-q56-video-original-audio.webm) +[Download compressed .webm video (37.8M)](https://media.emacsconf.org/2020/emacsconf-2020--41-opening-remarks--compressed32.webm) +[Download compressed .webm video (15M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--41-opening-remarks--vp9-q56-video-original-audio.webm) - Hello and welcome again to EmacsConf 2020! diff --git a/2020/info/42.md b/2020/info/42.md index 69f856d7..de11079c 100644 --- a/2020/info/42.md +++ b/2020/info/42.md @@ -1,7 +1,8 @@ # Closing remarks (Sunday) [[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--42-closing-remarks.webm" size="261MB"]] -[Download compressed .webm video (48M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--42-closing-remarks--vp9-q56-video-original-audio.webm) +[Download compressed .webm video (142.5M)](https://media.emacsconf.org/2020/emacsconf-2020--42-closing-remarks--compressed32.webm) +[Download compressed .webm video (48M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--42-closing-remarks--vp9-q56-video-original-audio.webm) - Stats: - 16 talks today, 37 total diff --git a/2020/organizers-notebook.org b/2020/organizers-notebook.org index 33a6118a..b2a2f355 100644 --- a/2020/organizers-notebook.org +++ b/2020/organizers-notebook.org @@ -493,11 +493,7 @@ Set the info based on submissions.org. - Music demos and other things that use system audio will need to be prerecorded (or done through virtual loopback device, maybe? Technical risk.) - Multi-monitor setups might not be handled well by BBB; share window instead of desktop - Check if comfortable checking into IRC: #emacsconf-org -- Ask about Q&A preference; OR: - - live Q&A - - Q&A over pad or IRC - - no Q&A -- Get IRC nick and phone number for emergency contact, store in private wiki +- Get IRC nick, phone number for emergency contact, store in private wiki - Try to record name pronunciation - Encourage webcam for Q&A, although make it clear that it's totally optional - Possible picture-in-picture approach to maximize screen real estate diff --git a/2020/submissions.org b/2020/submissions.org index 5d7416f7..14aef5a1 100644 --- a/2020/submissions.org +++ b/2020/submissions.org @@ -168,6 +168,7 @@ execute the buffer, update the talk's info/TALKID.md file. :MIN_TIME_SUM: 880 :TARGET_TIME: 768 :DIFFERENCE: Needs: 112 +:CUSTOM_ID: submissions :END: ** NOVEMBER 28 (Saturday) :sat: @@ -182,6 +183,8 @@ SCHEDULED: <2020-11-28 Sat 09:00-09:30> :TALK_ID: 00 :ROOM: A :DURATION: 7:04 +:SLUG: 00 +:TIME: 8 :END: *** 9:30 - 12:00 User talks :morning: @@ -224,6 +227,9 @@ SCHEDULED: <2020-11-28 Sat 09:33-09:37> :CUSTOM_ID: talk01 :TALK_ID: 01 :DURATION: 3:58 +:SLUG: 01 +:TIME: 4 +:DATE_SUBMITTED: 2020-10-05 :END: Name: Sacha Chua @@ -294,6 +300,9 @@ SCHEDULED: <2020-11-28 Sat 09:40-10:00> :CUSTOM_ID: talk02 :TALK_ID: 02 :DURATION: 24:15 +:SLUG: 02 +:TIME: 25 +:DATE_SUBMITTED: 2020-10-06 :END: Name: Leo Vivier @@ -368,6 +377,9 @@ SCHEDULED: <2020-11-28 Sat 10:03-10:13> :TALK_ID: 03 :PREREC: done, live Q&A :DURATION: 14:50 +:SLUG: 03 +:TIME: 15 +:DATE_SUBMITTED: 2020-09-02 :END: Name: Bala Ramadurai @@ -458,6 +470,9 @@ SCHEDULED: <2020-11-28 Sat 10:16-10:26> :CUSTOM_ID: talk04 :TALK_ID: 04 :DURATION: 8:26 +:SLUG: 04 +:TIME: 9 +:DATE_SUBMITTED: 2020-10-06 :END: Name: Jonathan Gregory @@ -520,6 +535,9 @@ SCHEDULED: <2020-11-28 Sat 10:29-10:45> :CUSTOM_ID: talk05 :TALK_ID: 05 :DURATION: 29:50 +:SLUG: 05 +:TIME: 30 +:DATE_SUBMITTED: 2020-10-07 :END: Name: Grant Shangreaux @@ -589,6 +607,9 @@ SCHEDULED: <2020-11-28 Sat 10:48-10:58> :CUSTOM_ID: talk06 :TALK_ID: 06 :DURATION: 13:41 +:SLUG: 06 +:TIME: 14 +:DATE_SUBMITTED: 2020-10-02 :END: Name: Corwin Brust @@ -642,6 +663,9 @@ SCHEDULED: <2020-11-28 Sat 11:01-11:21> :CUSTOM_ID: talk07 :TALK_ID: 07 :DURATION: 22:05 +:SLUG: 07 +:TIME: 23 +:DATE_SUBMITTED: 2020-10-10 :END: Name: Sid Kasivajhula @@ -736,6 +760,9 @@ SCHEDULED: <2020-11-28 Sat 11:24-11:44> :CUSTOM_ID: talk08 :TALK_ID: 08 :DURATION: 17:19 +:SLUG: 08 +:TIME: 18 +:DATE_SUBMITTED: 2020-09-25 :END: Name: Andrew Tropin @@ -808,6 +835,9 @@ fair use. :CUSTOM_ID: talk21 :TALK_ID: 21 :DURATION: 47:08 + :SLUG: 21 + :TIME: 48 + :DATE_SUBMITTED: 2020-10-05 :END: Name: Eduardo Ochs @@ -950,6 +980,9 @@ SCHEDULED: <2020-11-28 Sat 12:00-13:00> :CUSTOM_ID: talk09 :TALK_ID: 09 :DURATION: 14:09 + :SLUG: 09 + :TIME: 15 + :DATE_SUBMITTED: 2020-10-05 :END: Name: Rainer König @@ -1035,6 +1068,9 @@ fair use. :CUSTOM_ID: talk10 :TALK_ID: 10 :DURATION: 8:18 + :SLUG: 10 + :TIME: 9 + :DATE_SUBMITTED: 2020-09-25 :END: Name: Andrea @@ -1100,6 +1136,9 @@ fair use. :CUSTOM_ID: talk11 :TALK_ID: 11 :DURATION: 15:18 + :SLUG: 11 + :TIME: 16 + :DATE_SUBMITTED: 2020-10-07 :END: Name: Aldric @@ -1156,6 +1195,9 @@ fair use. :CUSTOM_ID: talk12 :TALK_ID: 12 :DURATION: 16:38 + :SLUG: 12 + :TIME: 17 + :DATE_SUBMITTED: 2020-10-06 :END: Name: Leo Vivier @@ -1231,6 +1273,9 @@ SCHEDULED: <2020-11-28 Sat 14:05-14:15> :CUSTOM_ID: talk13 :TALK_ID: 13 :DURATION: 12:05 +:SLUG: 13 +:TIME: 13 +:DATE_SUBMITTED: 2020-10-07 :END: Name: Joseph Corneli, Raymond Puzio, and Cameron Ray Smith @@ -1309,6 +1354,9 @@ SCHEDULED: <2020-11-28 Sat 14:18-14:38> :TALK_ID: 14 :PREREC: done :DURATION: 19:41 +:SLUG: 14 +:TIME: 20 +:DATE_SUBMITTED: 2020-09-23 :END: Name: Adam Ard @@ -1370,6 +1418,9 @@ SCHEDULED: <2020-11-28 Sat 14:41-14:51> :CUSTOM_ID: talk15 :TALK_ID: 15 :DURATION: 25:00 +:SLUG: 15 +:TIME: 25 +:DATE_SUBMITTED: 2020-10-07 :END: Name: Adolfo Villafiorita @@ -1433,6 +1484,9 @@ SCHEDULED: <2020-11-28 Sat 14:54-15:14> :CUSTOM_ID: talk16 :TALK_ID: 16 :DURATION: 21:56 +:SLUG: 16 +:TIME: 22 +:DATE_SUBMITTED: 2020-10-06 :END: Name: Leo Vivier @@ -1513,6 +1567,9 @@ SCHEDULED: <2020-11-28 Sat 15:17-15:37> :CUSTOM_ID: talk17 :TALK_ID: 17 :DURATION: 21:15 +:SLUG: 17 +:TIME: 22 +:DATE_SUBMITTED: 2020-10-10 :END: Name: Noorah Alhasan @@ -1595,6 +1652,9 @@ SCHEDULED: <2020-11-28 Sat 15:40-16:00> :CUSTOM_ID: talk18 :TALK_ID: 18 :DURATION: 21:26 +:SLUG: 18 +:TIME: 22 +:DATE_SUBMITTED: 2020-10-06 :END: Name: Leo Vivier @@ -1680,6 +1740,9 @@ SCHEDULED: <2020-11-28 Sat 16:03-16:13> :CUSTOM_ID: talk19 :TALK_ID: 19 :DURATION: 8:13 +:SLUG: 19 +:TIME: 9 +:DATE_SUBMITTED: 2020-10-02 :END: Name: Brett Gilio @@ -1744,6 +1807,9 @@ SCHEDULED: <2020-11-28 Sat 16:16-16:36> :CUSTOM_ID: talk20 :TALK_ID: 20 :DURATION: 22:50 +:SLUG: 20 +:TIME: 23 +:DATE_SUBMITTED: 2020-10-09 :END: Name: Corwin Brust @@ -1807,6 +1873,8 @@ SCHEDULED: <2020-11-28 Sat 16:30-17:00> :TALK_ID: 40 :CUSTOM_ID: talk40 :DURATION: 15:47 +:SLUG: 40 +:TIME: 16 :END: ** NOVEMBER 29 (Sunday) :sun: @@ -1820,6 +1888,8 @@ SCHEDULED: <2020-11-29 Sun 09:00-09:10> :TALK_ID: 41 :CUSTOM_ID: talk41 :DURATION: 11:47 +:SLUG: 41 +:TIME: 12 :END: *** 9:10 - 12:00 Morning talks :morning: @@ -1857,6 +1927,8 @@ SCHEDULED: <2020-11-29 Sun 09:00-09:10> :CUSTOM_ID: talk38 :PREREC: done :DURATION: 5:07 + :SLUG: 38 + :TIME: 6 :END: ***** Talk information @@ -1873,6 +1945,9 @@ SCHEDULED: <2020-11-29 Sun 09:33-09:53> :CUSTOM_ID: talk22 :TALK_ID: 22 :DURATION: 29:06 +:SLUG: 22 +:TIME: 30 +:DATE_SUBMITTED: 2020-09-22 :END: Name: Musa Al-hassy @@ -1993,6 +2068,9 @@ SCHEDULED: <2020-11-29 Sun 09:56-10:46> :CUSTOM_ID: talk23 :TALK_ID: 23 :DURATION: 43:54 +:SLUG: 23 +:TIME: 44 +:DATE_SUBMITTED: 2020-10-06 :END: Name: Tuấn-Anh Nguyễn @@ -2060,6 +2138,9 @@ SCHEDULED: <2020-11-29 Sun 10:49-11:09> :TALK_ID: 24 :PREREC: done :DURATION: 20:46 +:SLUG: 24 +:TIME: 21 +:DATE_SUBMITTED: 2020-09-25 :END: Name: Andrea @@ -2135,6 +2216,9 @@ SCHEDULED: <2020-11-29 Sun 11:12-11:22> :TALK_ID: 25 :PREREC: done :DURATION: 9:52 +:SLUG: 25 +:TIME: 10 +:DATE_SUBMITTED: 2020-08-30 :END: Name: Zen Monk Alain M. Lafon @@ -2208,9 +2292,11 @@ fair use. :AVAILABILITY: tbd :NAME: Richard Stallman :DURATION: 53:38 + :SLUG: 39 + :TIME: 54 :END: -**** Talk information +***** Talk information TBD - plans for a NonGNU ELPA that will be easy to enable and contribute to without signing copyright assignment papers @@ -2261,6 +2347,9 @@ SCHEDULED: <2020-11-29 Sun 13:03-13:13> :TALK_ID: 26 :PREREC: done :DURATION: 14:57 +:SLUG: 26 +:TIME: 15 +:DATE_SUBMITTED: 2020-10-01 :END: Name: Pierce Wang @@ -2338,6 +2427,9 @@ SCHEDULED: <2020-11-29 Sun 13:16-13:26> :PREREC: done :TALK_ID: 27 :DURATION: 21:26 +:SLUG: 27 +:TIME: 22 +:DATE_SUBMITTED: 2020-10-05 :END: Hello, @@ -2409,6 +2501,9 @@ SCHEDULED: <2020-11-29 Sun 13:29-14:19> :QA: rtmp :TALK_ID: 28 :DURATION: 9:00 +:SLUG: 28 +:TIME: 9 +:DATE_SUBMITTED: 2020-10-02 :END: Name: Erik Elmshauser and Corwin Brust @@ -2482,6 +2577,9 @@ SCHEDULED: <2020-11-29 Sun 14:22-14:42> :CUSTOM_ID: talk29 :QA: rtmp :TALK_ID: 29 +:SLUG: 29 +:DATE_SUBMITTED: 2020-10-02 +:TIME: 20 :END: Name: Erik Elmshauser and Corwin Brust (mplsCorwin) @@ -2599,6 +2697,9 @@ SCHEDULED: <2020-11-29 Sun 14:45-14:55> :TALK_ID: 30 :PREREC: done :DURATION: 11:30 +:TIME: 10 +:SLUG: 30 +:DATE_SUBMITTED: 2020-10-06 :END: Name: Gabriele Bozzola (@sbozzolo) @@ -2653,12 +2754,15 @@ SCHEDULED: <2020-11-29 Sun 14:58-15:14> :PROPERTIES: :MAX_TIME: 16 :MIN_TIME: 16 +:DATE_SUBMITTED: 2020-10-06 :AVAILABILITY: Central time, 10am EST-5pm EST :NAME: Grant Shangreaux :CUSTOM_ID: talk31 :TALK_ID: 31 :PREREC: done :DURATION: 16:50 +:SLUG: 31 +:TIME: 16 :END: Name: Grant Shangreaux @@ -2736,6 +2840,9 @@ SCHEDULED: <2020-11-29 Sun 15:17-15:41> :TALK_ID: 32 :PREREC: planned :DURATION: 23:57 +:SLUG: 32 +:DATE_SUBMITTED: 2020-10-02 +:TIME: 24 :END: Name: Eric Abrahamsen @@ -2803,6 +2910,9 @@ SCHEDULED: <2020-11-29 Sun 15:44-16:04> :CUSTOM_ID: talk33 :TALK_ID: 33 :DURATION: 39:16 +:SLUG: 33 +:DATE_SUBMITTED: 2020-10-05 +:TIME: 40 :END: Name: Fermin MF @@ -2868,6 +2978,9 @@ SCHEDULED: <2020-11-29 Sun 16:07-16:30> :TALK_ID: 34 :QA: irc :DURATION: 22:22 +:SLUG: 34 +:DATE_SUBMITTED: 2020-10-02 +:TIME: 23 :END: Name: Matthew Zeng @@ -2926,6 +3039,9 @@ SCHEDULED: <2020-11-29 Sun 16:33-16:43> :PREREC: done :QA: live :DURATION: 16:02 +:SLUG: 35 +:DATE_SUBMITTED: 2020-10-06 +:TIME: 16 :END: Name: Zachary Kanfer @@ -2988,6 +3104,8 @@ SCHEDULED: <2020-11-29 Sun 16:30-17:00> :TALK_ID: 42 :CUSTOM_ID: talk42 :DURATION: 36:29 +:SLUG: 42 +:TIME: 36 :END: * Withdrawn @@ -3003,6 +3121,7 @@ SCHEDULED: <2020-11-29 Sun 16:30-17:00> :NAME: Corwin Brust :CUSTOM_ID: talk36 :TALK_ID: 36 + :SLUG: 36 :END: #+begin_quote diff --git a/2020/subtitles/emacsconf-2020--28-welcome-to-the-dungeon--erik-elmshauser-corwin-brust-autogen.vtt b/2020/subtitles/emacsconf-2020--28-welcome-to-the-dungeon--erik-elmshauser-corwin-brust-autogen.vtt index 0d7a296c..24c1910c 100644 --- a/2020/subtitles/emacsconf-2020--28-welcome-to-the-dungeon--erik-elmshauser-corwin-brust-autogen.vtt +++ b/2020/subtitles/emacsconf-2020--28-welcome-to-the-dungeon--erik-elmshauser-corwin-brust-autogen.vtt @@ -193,7 +193,7 @@ ERIK: Cool. Well, let's begin here. Welcome to the dungeon, everybody. 00:04:37.840 --> 00:04:38.320 -As you're aware, I'm Erik, +As you're aware, I'm Erik and this is Corwin, 00:04:38.320 --> 00:04:43.040 and this is the Dungeon project that we've been working on @@ -226,8 +226,7 @@ most of the commercial role-playing games that you have heard of or maybe tried out 00:05:07.919 --> 00:05:11.919 -from various stores and friends, what -have you. +from various stores and friends, what have you. 00:05:11.919 --> 00:05:14.800 So one of the first things we want to talk about is: @@ -272,12 +271,10 @@ So that's kind of why we like it, but also it makes it a tricky problem 00:06:08.533 --> 00:06:12.567 -when it comes to writing a computer game -to mimic +when it comes to writing a computer game to mimic 00:06:12.567 --> 00:06:16.400 -the game that we played with paper and -dice around a table. +the game that we played with paper and dice around a table. 00:06:16.400 --> 00:06:24.000 CORWIN: So when we look at it as kind of a technology problem... Whoops... @@ -310,7 +307,7 @@ Specifically, I learned it from Corwin when I was 7 or 8. CORWIN: Yeah, that's where... that's my cue in, right? 00:07:09.599 --> 00:07:14.560 -My folks and Erik's folks were were really tight. +My folks and Erik's folks were really tight. 00:07:14.560 --> 00:07:17.360 They used to run science fiction conventions together. @@ -340,8 +337,7 @@ basically we've also been into playing with computers. Over the years, we've worked with many, many different systems. 00:07:56.720 --> 00:07:59.700 -We've played with Ataris, Apples, and -Amigas +We've played with Ataris, Apples, and Amigas 00:07:59.700 --> 00:08:03.567 for a long time before either of us got PC clones @@ -359,8 +355,7 @@ So we also always thought, like, how is it that we can use these cool computers that we're into 00:08:22.639 --> 00:08:25.967 -to build this Dungeon game that we're -into? +to build this Dungeon game that we're into? 00:08:25.967 --> 00:08:28.319 'Cause that's what you do, right? @@ -588,4195 +583,2605 @@ in order to recreate the Dungeon experience that we had with paper and dice sitting around a 00:13:01.279 --> 00:13:05.600 -table when we were kids +table when we were kids. -00:13:05.600 --> 00:13:09.680 -and +00:13:02.160 --> 00:13:12.570 +And, I mean, we've, you know, it took a while for us to kind of -00:13:09.680 --> 00:13:12.079 -I mean we you know it took a while for +00:13:12.570 --> 00:13:15.870 +tease apart the problem in a way where we could actually -00:13:12.079 --> 00:13:13.839 -us to kind of +00:13:15.870 --> 00:13:19.370 +list out all of the features, like, what are the problems -00:13:13.839 --> 00:13:16.079 -tease apart the problem in a way where +00:13:19.370 --> 00:13:22.160 +we have to solve and how do we solve them? -00:13:16.079 --> 00:13:18.000 -we could actually list out all of the +00:13:27.160 --> 00:13:31.050 +So, creating any free software, any self-organizing free -00:13:18.000 --> 00:13:19.120 -features like +00:13:31.050 --> 00:13:34.740 +software project is challenging to start with, and we're -00:13:19.120 --> 00:13:20.959 -what are the problems we have to solve +00:13:34.740 --> 00:13:38.530 +generally people with a bunch of other responsibilities by -00:13:20.959 --> 00:13:27.760 -and how do we solve them +00:13:38.530 --> 00:13:43.570 +the time we get to it. So, it's not just, hey, you know, -00:13:27.760 --> 00:13:30.959 -so creating any free software any +00:13:43.570 --> 00:13:48.350 +the general herding cats, it's, you know, trying to make it -00:13:30.959 --> 00:13:33.040 -self-organizing free software project +00:13:48.350 --> 00:13:50.160 +a part of your life, too. -00:13:33.040 --> 00:13:36.000 -is is challenging to start with and +00:13:52.160 --> 00:13:56.570 +That being kind of a, you know, challenging battle, we kind -00:13:36.000 --> 00:13:37.200 -we're generally +00:13:56.570 --> 00:14:00.580 +of aligned on some principles that we wanted to adhere to -00:13:37.200 --> 00:13:38.480 -people with a bunch of other +00:14:00.580 --> 00:14:04.160 +once we started taking the project seriously. -00:13:38.480 --> 00:13:40.320 -responsibilities by the time we get to +00:14:04.160 --> 00:14:10.640 +Like, you know, particularly recognizing GNU in specific as -00:13:40.320 --> 00:13:40.560 -it +00:14:10.640 --> 00:14:14.160 +we focus on giving back to the community. -00:13:40.560 --> 00:13:44.000 -so it's it's not just hey +00:14:15.160 --> 00:14:19.830 +Taking what we learned as Perl programmers and, you know, -00:13:44.000 --> 00:13:47.040 -you know the general herding cats it's +00:14:19.830 --> 00:14:23.920 +bringing that spirit forward into our work and maybe -00:13:47.040 --> 00:13:47.680 -it's +00:14:23.920 --> 00:14:28.830 +specifically support, making sure that we can, you know, -00:13:47.680 --> 00:13:49.120 -you know trying to make it a part of +00:14:28.830 --> 00:14:34.160 +write functions for the game in Perl if we want to. -00:13:49.120 --> 00:13:51.040 -your life to +00:14:35.160 --> 00:14:40.250 +And then to use the game as a vehicle to make people look -00:13:51.040 --> 00:13:54.399 -that being kind of a +00:14:40.250 --> 00:14:45.510 +beyond the typically open source – sorry, typically nom -00:13:54.399 --> 00:13:57.680 -you know challenging battle we we +00:14:45.510 --> 00:14:50.290 +inally open source at best, generally pretty closed world of -00:13:57.680 --> 00:14:00.480 -kind of aligned on some some principles +00:14:50.290 --> 00:14:52.160 +computer gaming. -00:14:00.480 --> 00:14:02.639 -that we wanted to adhere to +00:14:52.160 --> 00:14:55.260 +A lot of Windows users out there, a lot of non-free -00:14:02.639 --> 00:14:04.079 -once we started taking the project +00:14:55.260 --> 00:14:58.670 +communication tools, and a lot of, you know, a lot of -00:14:04.079 --> 00:14:05.680 -seriously +00:14:58.670 --> 00:15:02.160 +ground to cover from a free software perspective. -00:14:05.680 --> 00:14:09.519 -like pre you know particularly +00:15:03.160 --> 00:15:08.160 +So what can Emacs do from a gaming standpoint to open that up? -00:14:09.519 --> 00:14:12.720 -recognizing gnu in specific as we focus +00:15:08.160 --> 00:15:12.960 +And not to mention the hubris of the, you know, the two of -00:14:12.720 --> 00:14:15.199 -on giving back to the community +00:15:12.960 --> 00:15:17.600 +us with a few friends basically deciding to take on what -00:14:15.199 --> 00:14:16.480 -taking what we learned as pearl +00:15:17.600 --> 00:15:20.160 +amounts to a huge project. -00:14:16.480 --> 00:14:18.240 -programmers and +00:15:20.160 --> 00:15:24.080 +You know, we're essentially a year in now and we haven't -00:14:18.240 --> 00:14:22.079 -you know bringing that spirit forward +00:15:24.080 --> 00:15:29.160 +really gotten over halfway to our minimum play testable candidate. -00:14:22.079 --> 00:14:24.320 -into into our work and maybe +00:15:30.160 --> 00:15:34.160 +It's a work in progress. We've got a long road to go. -00:14:24.320 --> 00:14:26.399 -specifically support making sure that we +00:15:34.160 --> 00:15:37.310 +There's at least 50 items on the things that we think are -00:14:26.399 --> 00:14:27.120 -can +00:15:37.310 --> 00:15:40.390 +critical to be able to introduce it to my younger kids, for -00:14:27.120 --> 00:14:30.639 -you know write functions for the +00:15:40.390 --> 00:15:41.160 +example. -00:14:30.639 --> 00:14:31.760 -game +00:15:41.160 --> 00:15:48.650 +Okay, so we're in the accomplishments section. So we're -00:14:31.760 --> 00:14:35.199 -in pearl if we want to +00:15:48.650 --> 00:15:51.700 +supposed to be talking about the things that we have -00:14:35.199 --> 00:14:38.079 -and then to use the game as a vehicle to +00:15:51.700 --> 00:15:54.160 +succeeded in doing in our first year. -00:14:38.079 --> 00:14:40.320 -make people look beyond +00:15:55.160 --> 00:15:59.580 +We have succeeded in working with data in org documents, -00:14:40.320 --> 00:14:43.360 -the +00:15:59.580 --> 00:16:04.030 +using org mode tables to store the data that we're going to -00:14:43.360 --> 00:14:46.800 -typically open source or sorry typically +00:16:04.030 --> 00:16:07.160 +use in the various parts of our game. -00:14:46.800 --> 00:14:49.600 -nominally open source at best +00:16:07.160 --> 00:16:14.440 +And we've had a lot of success with svg.el. It started with -00:14:49.600 --> 00:14:52.160 -generally pretty closed world of +00:16:14.440 --> 00:16:18.130 +drawing maps and we have another talk about our mapping -00:14:52.160 --> 00:14:54.160 -computer gaming a lot of windows users +00:16:18.130 --> 00:16:20.160 +specifically coming up next. -00:14:54.160 --> 00:14:55.440 -out there a lot of free +00:16:21.160 --> 00:16:25.160 +So we'll put off some of that discussion for a separate talk. -00:14:55.440 --> 00:14:57.519 -non-free communication tools and a lot +00:16:25.160 --> 00:16:30.050 +But we've also succeeded in getting into a bunch of -00:14:57.519 --> 00:14:59.760 -of +00:16:30.050 --> 00:16:36.770 +different elements of the game where we're, you know, -00:14:59.760 --> 00:15:01.839 -you know a lot of ground to cover from a +00:16:36.770 --> 00:16:39.340 +making a lot of progress using this drawing engine we -00:15:01.839 --> 00:15:03.360 -free software perspective +00:16:39.340 --> 00:16:43.360 +developed to also draw this other thing and also draw this -00:15:03.360 --> 00:15:05.920 -so what can Emacs do from a gaming +00:16:43.360 --> 00:16:45.160 +other thing and also draw this other thing. -00:15:05.920 --> 00:15:07.360 -standpoint to +00:16:46.160 --> 00:16:46.160 +And we kind of backed into, we've got this aesthetic -00:15:07.360 --> 00:15:12.160 -to open that up +00:16:46.161 --> 00:16:54.750 +and we're using it to draw interfaces for all of the different -00:15:12.160 --> 00:15:14.880 -and not to mention the hubris of the you +00:16:54.750 --> 00:16:56.160 +parts of the game. -00:15:14.880 --> 00:15:16.720 -know the two of us with a few friends +00:16:56.160 --> 00:17:08.160 +So let's talk a little bit about what works now. -00:15:16.720 --> 00:15:18.399 -basically deciding to take on what +00:17:11.160 --> 00:17:15.330 +First of all, there's the mapping part that Erik mentioned -00:15:18.399 --> 00:15:19.440 -amounts to a +00:17:15.330 --> 00:17:19.040 +and we'll jump here into, we'll start opening up some files -00:15:19.440 --> 00:15:21.839 -huge project you know we're +00:17:19.040 --> 00:17:20.160 +and looking around. -00:15:21.839 --> 00:15:24.720 -essentially a year in now and we haven't +00:17:20.160 --> 00:17:25.060 +But then also later we'll fire up an IELM and look at some -00:15:24.720 --> 00:15:27.839 -really gotten over halfway to our +00:17:25.060 --> 00:17:28.160 +of the other proofs of concept. -00:15:27.839 --> 00:15:30.000 -minimum playtestable candidate +00:17:28.160 --> 00:17:31.350 +So hopefully we can pivot the second talk more toward the -00:15:30.000 --> 00:15:32.880 -it's a it's a work in progress we've +00:17:31.350 --> 00:17:34.520 +demos as we skip some of the interactive stuff that might -00:15:32.880 --> 00:15:34.320 -got a long row to go +00:17:34.520 --> 00:17:37.160 +be mentioned in the slides that we go by. -00:15:34.320 --> 00:15:36.800 -there's at least 50 items on the things +00:17:37.160 --> 00:17:38.160 +Okay. -00:15:36.800 --> 00:15:38.399 -that we think are critical to +00:17:38.160 --> 00:17:48.160 +So, maps, visual battleboard. -00:15:38.399 --> 00:15:40.320 -to be able to introduce it to my younger +00:17:48.160 --> 00:17:51.160 +The battleboard... -00:15:40.320 --> 00:15:44.720 -kids for example +00:17:51.160 --> 00:17:55.160 +I'm just going to skip it Erik, we'll hit it in the next one. -00:15:44.720 --> 00:15:48.399 -okay so we're in the accomplishments +00:17:55.160 --> 00:17:57.160 +Okay. -00:15:48.399 --> 00:15:49.279 -section +00:17:57.160 --> 00:18:03.160 +Hang on. -00:15:49.279 --> 00:15:50.959 -so we're supposed to be talking about +00:18:05.160 --> 00:18:07.660 +Okay, so I'm just going to go ahead and open up maps and -00:15:50.959 --> 00:15:52.639 -the things that we have +00:18:07.660 --> 00:18:12.490 +let you talk from the SVG process itself, because that's -00:15:52.639 --> 00:15:55.920 -succeeded in doing in our first year +00:18:12.490 --> 00:18:15.160 +the interesting part to me. -00:15:55.920 --> 00:15:58.880 -we have succeeded in working with data +00:18:15.160 --> 00:18:21.160 +Okay. -00:15:58.880 --> 00:16:01.199 -in org documents using org mode +00:18:22.160 --> 00:18:26.350 +Talk about the SVG process, like what do you think exactly -00:16:01.199 --> 00:16:04.480 -tables to store the data that we're +00:18:26.350 --> 00:18:31.310 +we want to talk about? How we turn our data into an image -00:16:04.480 --> 00:16:05.360 -going to use +00:18:31.310 --> 00:18:34.160 +or what are you hoping for? -00:16:05.360 --> 00:16:09.279 -in the various parts of our game +00:18:34.160 --> 00:18:40.140 +Yeah, so I mean did you want to talk more from the hand-d -00:16:09.279 --> 00:16:12.519 -and we've had a lot of success with +00:18:40.140 --> 00:18:43.160 +rawn SVG graphics at all? -00:16:12.519 --> 00:16:14.160 -SVG.el +00:18:43.160 --> 00:18:48.160 +I thought we were going to save that stuff for the pathing talk. -00:16:14.160 --> 00:16:16.639 -it started withdrawing maps and we +00:18:48.160 --> 00:18:49.160 +Okay, that sounds fine. -00:16:16.639 --> 00:16:17.279 -have +00:18:49.160 --> 00:18:50.160 +But we can go into it right now if you want. -00:16:17.279 --> 00:16:19.440 -another talk about our mapping +00:18:50.160 --> 00:18:54.640 +Yeah, so we've got about 10 minutes before the turn where -00:16:19.440 --> 00:16:21.440 -specifically coming up next so we'll +00:18:54.640 --> 00:18:58.470 +we thought we would first take any questions that are -00:16:21.440 --> 00:16:23.759 -put off some of that discussion for a +00:18:58.470 --> 00:19:00.160 +hanging out there. -00:16:23.759 --> 00:16:25.199 -separate talk +00:19:00.160 --> 00:19:04.160 +I unfortunately closed the Etherpad, but I can open it again real quick. -00:16:25.199 --> 00:16:28.720 -but we've also succeeded in +00:19:04.160 --> 00:19:09.850 +Or you can jump into the pathing stuff now, or I can just -00:16:28.720 --> 00:16:32.320 -getting into a bunch of different +00:19:09.850 --> 00:19:14.160 +throw open an IELM and we can start the demos. -00:16:32.320 --> 00:16:35.680 -elements of the game where +00:19:15.160 --> 00:19:20.600 +So let me invite Amin or Sacha back in, or Leo, if any of -00:16:35.680 --> 00:16:38.160 -we're you know making a lot of progress +00:19:20.600 --> 00:19:23.350 +you want to join the conversation and make a suggestion as -00:16:38.160 --> 00:16:38.959 -using this +00:19:23.350 --> 00:19:27.160 +to how we balance between the remaining time. -00:16:38.959 --> 00:16:41.920 -drawing engine we developed to also draw +00:19:27.160 --> 00:19:30.300 +The rest of what we have left starts in on toward the -00:16:41.920 --> 00:16:43.759 -this other thing and also draw this +00:19:30.300 --> 00:19:34.250 +technical, so especially if there would be questions about -00:16:43.759 --> 00:16:45.279 -other thing and also draw this other +00:19:34.250 --> 00:19:37.160 +the game right now, that would be awesome. -00:16:45.279 --> 00:16:46.079 -thing and it's +00:19:37.160 --> 00:19:42.160 +And I'm going to get seated again. -00:16:46.079 --> 00:16:49.519 -you know we kind of backed into +00:19:44.160 --> 00:19:48.870 +I'm not sure if I talk over the stream, if you'll hear it, -00:16:49.519 --> 00:16:52.560 -we've got this aesthetic and we're +00:19:48.870 --> 00:19:57.160 +because I'm just watching your stream, but I can try writing on IRC. -00:16:52.560 --> 00:16:54.720 -using it to draw interfaces for all of +00:20:01.160 --> 00:20:06.140 +Sure, yeah, questions would be cool. Or, yeah, well Erik, -00:16:54.720 --> 00:17:03.120 -the different parts of the game +00:20:06.140 --> 00:20:08.980 +why don't you just go ahead and start walking us through -00:17:03.120 --> 00:17:05.600 -so let's talk let's talk a little bit +00:20:08.980 --> 00:20:12.000 +the hand drawn SVG stuff just a little bit, because I think -00:17:05.600 --> 00:17:06.959 -about what +00:20:12.000 --> 00:20:14.950 +if that isn't interesting to people, we can just preempt -00:17:06.959 --> 00:17:10.880 -what works now +00:20:14.950 --> 00:20:16.160 +for a question. -00:17:10.880 --> 00:17:13.360 -first of all there's the mapping part +00:20:17.160 --> 00:20:23.010 +Okay, so historically when we decided to actually start -00:17:13.360 --> 00:17:14.640 -that Erik mentioned +00:20:23.010 --> 00:20:27.080 +writing code, one of the very first things we wanted to do -00:17:14.640 --> 00:17:18.480 -and we'll jump here into we'll start +00:20:27.080 --> 00:20:30.990 +was the maps, because initially it seemed like the maps -00:17:18.480 --> 00:17:20.880 -opening up some files and looking around +00:20:30.990 --> 00:20:34.750 +were going to be one of the biggest challenges in terms of -00:17:20.880 --> 00:17:22.160 -but then +00:20:34.750 --> 00:20:37.160 +how do we get a text editor to draw pictures for us. -00:17:22.160 --> 00:17:25.520 -also later we'll we'll fire up an eye +00:20:40.160 --> 00:20:44.350 +So, we pretty quickly decided we wanted to work with SVGs -00:17:25.520 --> 00:17:26.959 -elm and look at some of the +00:20:44.350 --> 00:20:48.370 +because it allowed us to leverage the power of Emacs as a -00:17:26.959 --> 00:17:28.400 -some of the other proofs of concept so +00:20:48.370 --> 00:20:53.680 +text editor and a text manipulator to write text graphics -00:17:28.400 --> 00:17:30.240 -hopefully we can +00:20:53.680 --> 00:20:56.160 +with the SVG format. -00:17:30.240 --> 00:17:32.240 -pivot the second talk more toward the +00:20:56.160 --> 00:20:59.770 +So we did some SVG graphics by hand, we went in and just -00:17:32.240 --> 00:17:34.320 -demos as as we skip some of the +00:20:59.770 --> 00:21:03.620 +started hand coding things that looked visually like the -00:17:34.320 --> 00:17:35.520 -interactive stuff that might be +00:21:03.620 --> 00:21:07.300 +maps we used to draw by hand on graph paper when we were, -00:17:35.520 --> 00:17:43.200 -mentioned in the slides that we go by +00:21:07.300 --> 00:21:10.160 +you know, sitting around the table. -00:17:43.200 --> 00:17:46.880 -so maps +00:21:10.160 --> 00:21:13.160 +Yep, absolutely. -00:17:46.880 --> 00:17:50.080 -visual battle board +00:21:13.160 --> 00:21:17.610 +What emerged from that is as we started working on some of -00:17:50.080 --> 00:17:53.120 -the battle board I'm just going to I'm just +00:21:17.610 --> 00:21:22.140 +these files, this particular image is a test of some 20 -00:17:53.120 --> 00:17:54.160 -going to skip it Erik +00:21:22.140 --> 00:21:25.910 +wide water with some beaches around it and a special -00:17:54.160 --> 00:18:02.000 -we'll hit it in the next one okay +00:21:25.910 --> 00:21:29.160 +chamber kind of off to the side called a clapper. -00:18:02.000 --> 00:18:08.480 -hang on +00:21:29.160 --> 00:21:32.960 +And this was the way we would code is by sketching by hand -00:18:08.480 --> 00:18:09.919 -okay so I'm just going to go ahead and +00:21:32.960 --> 00:21:36.940 +all of these things to look right. And then we would take -00:18:09.919 --> 00:18:11.840 -open up maps and +00:21:36.940 --> 00:21:40.810 +that code and we noticed it became real repetitive as we -00:18:11.840 --> 00:18:13.760 -let you talk from the from the SVG +00:21:40.810 --> 00:21:45.160 +would go like chunk of water chunk of water chunk of water. -00:18:13.760 --> 00:18:15.039 -process itself +00:21:45.160 --> 00:21:48.860 +And we're like okay so what we really need is to define a -00:18:15.039 --> 00:18:16.480 -because that's the interesting part to +00:21:48.860 --> 00:21:52.620 +set of, we call it tiles, but like you can think of it as -00:18:16.480 --> 00:18:22.240 -me that to me +00:21:52.620 --> 00:21:56.660 +rubber stamps where we write this graphics code, and then -00:18:22.240 --> 00:18:26.080 -okay talk about the SVG +00:21:56.660 --> 00:22:01.160 +we're able to repeat it in different places around the map. -00:18:26.080 --> 00:18:28.640 -process like what what are you thinking +00:22:01.160 --> 00:22:05.680 +You want to flip over to code view and show that or do we -00:18:28.640 --> 00:18:30.640 -exactly we want to talk about how +00:22:05.680 --> 00:22:09.160 +want to move into. Sure. -00:18:30.640 --> 00:18:33.760 -we turn our data into an image or +00:22:09.160 --> 00:22:10.160 +Code view. -00:18:33.760 --> 00:18:37.919 -what what are you hoping for yeah so +00:22:10.160 --> 00:22:14.700 +So, you know, you can see just really obviously here the -00:18:37.919 --> 00:18:39.760 -I mean did you did you want to talk more +00:22:14.700 --> 00:22:19.240 +only thing that's changing from chunk of water to chunk of -00:18:39.760 --> 00:18:41.200 -from from the +00:22:19.240 --> 00:22:22.160 +water is the x and y coordinates. -00:18:41.200 --> 00:18:45.679 -SVG the hand-drawn SVG graphics at all +00:22:22.160 --> 00:22:26.990 +And, you know, we can skip getting into the SVG directives -00:18:45.679 --> 00:18:47.039 -I thought we were going to save that +00:22:26.990 --> 00:22:31.640 +and how all of the path statements actually work, but you -00:18:47.039 --> 00:18:49.760 -stuff for the passing talk okay +00:22:31.640 --> 00:22:36.230 +can trust us, all of these D equals and there's m's and h's -00:18:49.760 --> 00:18:52.000 -right now if you want yeah I mean so +00:22:36.230 --> 00:22:41.160 +and V's that turns out to be horizontal lines and vertical -00:18:52.000 --> 00:18:53.440 -we've got about +00:22:41.160 --> 00:22:42.160 +lines and cursor moves -00:18:53.440 --> 00:18:56.559 -10 minutes before the turn where we +00:22:42.160 --> 00:22:46.900 +kind of like turtle graphics if anyone remembers that far -00:18:56.559 --> 00:18:58.400 -thought we would first take any +00:22:46.900 --> 00:22:50.910 +back, and we're picking up our pen and dropping it and -00:18:58.400 --> 00:19:00.400 -questions that are hanging out there +00:22:50.910 --> 00:22:54.160 +drawing lines around on our map. -00:19:00.400 --> 00:19:02.320 -I unfortunately closed the ether pad but +00:22:54.160 --> 00:22:58.090 +Okay, so we do have a few questions if you want to take -00:19:02.320 --> 00:19:04.799 -I can open it again real quick +00:22:58.090 --> 00:23:01.160 +them now otherwise we can also jump in. -00:19:04.799 --> 00:19:08.480 -and or you can jump +00:23:01.160 --> 00:23:05.160 +Let's get them while they're fresh. Okay, sounds good. -00:19:08.480 --> 00:19:11.440 -jump into the to the pathing stuff now +00:23:05.160 --> 00:23:08.540 +So we'll probably shift to question and answer mode for up -00:19:11.440 --> 00:19:12.320 -or I can just +00:23:08.540 --> 00:23:12.490 +to 15 minutes here. So if you do have questions, maybe -00:19:12.320 --> 00:19:13.760 -throw up an animal and we can start the +00:23:12.490 --> 00:23:15.740 +stack rank, go ahead and sort the questions a little for us -00:19:13.760 --> 00:19:15.440 -demos so +00:23:15.740 --> 00:23:18.880 +or comment on them to let us know which ones you want to -00:19:15.440 --> 00:19:18.880 -let me invite almond or sasha back in +00:23:18.880 --> 00:23:21.540 +see us get here if we start getting a little long winded or -00:19:18.880 --> 00:19:19.840 -if you guys +00:23:21.540 --> 00:23:23.160 +not just a long, we'll take direction. -00:19:19.840 --> 00:19:22.160 -or leo if any of you want to join the +00:23:23.160 --> 00:23:26.160 +But thanks for your questions. -00:19:22.160 --> 00:19:22.960 -conversation +00:23:26.160 --> 00:23:30.050 +I'd like to see a demo as well we'll look at that with the -00:19:22.960 --> 00:19:25.840 -make a suggestion as to how we balance +00:23:30.050 --> 00:23:33.160 +remaining time after this question block. -00:19:25.840 --> 00:19:27.120 -between the remaining time +00:23:33.160 --> 00:23:38.000 +More about what the game is okay sure. So let's let's take -00:19:27.120 --> 00:19:29.840 -the rest of what we have left starts in +00:23:38.000 --> 00:23:42.510 +our one minute each swing at what the game is, you want to -00:19:29.840 --> 00:19:32.480 -on toward the technical so especially +00:23:42.510 --> 00:23:45.160 +go first, I called weapons. -00:19:32.480 --> 00:19:35.120 -if there would be questions questions +00:23:45.160 --> 00:23:47.160 +Okay. -00:19:35.120 --> 00:19:36.840 -about the game right now that would be +00:23:47.160 --> 00:23:52.180 +Dungeon is like role playing games, but you don't really do -00:19:36.840 --> 00:19:40.160 -awesome +00:23:52.180 --> 00:23:56.990 +role playing like the, for me the thing the core of being a -00:19:40.160 --> 00:19:48.720 -and I'm going to get seated again +00:23:56.990 --> 00:24:01.400 +role playing game is you take on the role of being your -00:19:48.720 --> 00:19:51.200 -I'm not sure if I talk over the stream +00:24:01.400 --> 00:24:06.500 +character and you play your character and dungeons not like -00:19:51.200 --> 00:19:53.200 -if you'll hear it because I'm just +00:24:06.500 --> 00:24:08.160 +that dungeon. -00:19:53.200 --> 00:19:54.720 -watching your stream +00:24:08.160 --> 00:24:11.160 +You can play. -00:19:54.720 --> 00:20:01.200 -but I can try writing an irc +00:24:11.160 --> 00:24:14.660 +So, the dungeon party always has eight characters in it. -00:20:01.200 --> 00:20:04.640 -sure yeah questions would be cool or +00:24:14.660 --> 00:24:17.890 +There's four in the front row and four in the back row and -00:20:04.640 --> 00:20:07.360 -yeah well Erik why don't you just go +00:24:17.890 --> 00:24:22.160 +you march through the dungeon, fighting, whatever you encounter. -00:20:07.360 --> 00:20:08.559 -ahead and start walking us through the +00:24:22.160 --> 00:24:25.700 +And if there's one player you play all eight characters. -00:20:08.559 --> 00:20:09.120 -hand +00:24:25.700 --> 00:24:29.180 +And depending on how many players you have you split up the -00:20:09.120 --> 00:20:11.440 -hand-drawn SVG stuff just a little bit +00:24:29.180 --> 00:24:33.160 +party in whatever way seems fair and equitable to everybody. -00:20:11.440 --> 00:20:12.960 -because I think +00:24:33.160 --> 00:24:36.010 +And similarly I said the dungeon is kind of a simple game -00:20:12.960 --> 00:20:14.640 -if that isn't interesting to people we +00:24:36.010 --> 00:24:38.720 +like there's only three races and there's only three -00:20:14.640 --> 00:20:17.120 -can just preempt for a question +00:24:38.720 --> 00:24:42.160 +classes, all of your characters are either human elf dwarf. -00:20:17.120 --> 00:20:21.120 -okay so historically when we +00:24:42.160 --> 00:24:45.680 +They're all a warrior, a priest or a wizard, and all of -00:20:21.120 --> 00:20:24.080 -decided to actually start writing +00:24:45.680 --> 00:24:49.400 +these characters have, you know, special properties and -00:20:24.080 --> 00:20:25.840 -code one of the very first things we +00:24:49.400 --> 00:24:52.820 +special talents, that is why they come together in this -00:20:25.840 --> 00:20:26.720 -wanted to do +00:24:52.820 --> 00:24:54.160 +party of eight. -00:20:26.720 --> 00:20:30.080 -was the maps because initially it seemed +00:24:54.160 --> 00:24:57.730 +So essentially dungeon is a game about making up all of -00:20:30.080 --> 00:20:31.919 -like the maps were going to be one of +00:24:57.730 --> 00:25:01.530 +these eight characters and stomping through the dungeon -00:20:31.919 --> 00:20:33.840 -the biggest challenges +00:25:01.530 --> 00:25:04.160 +killing things taking their stuff. -00:20:33.840 --> 00:20:35.760 -in terms of how do we get a text editor +00:25:04.160 --> 00:25:08.120 +Well you're way over but I don't know how much I have to -00:20:35.760 --> 00:20:38.000 -to draw pictures for us +00:25:08.120 --> 00:25:12.160 +add to that. I will just add that if, if you're. -00:20:38.000 --> 00:20:42.159 -we pretty quickly decided we wanted +00:25:12.160 --> 00:25:15.570 +If one's passion as a dungeon master is killing player -00:20:42.159 --> 00:20:45.280 -to work with svgs because it allowed us +00:25:15.570 --> 00:25:19.210 +characters this game is meant for you. You don't have to -00:20:45.280 --> 00:20:48.559 -to leverage the power of Emacs as a text +00:25:19.210 --> 00:25:23.050 +build your game like that. But that's definitely a thing -00:20:48.559 --> 00:20:52.159 -editor and a text manipulator to write +00:25:23.050 --> 00:25:25.160 +that people do with this game. -00:20:52.159 --> 00:20:56.080 -text graphics with the SVG format +00:25:25.160 --> 00:25:28.430 +And then as Erik said, it just encourages you to put your -00:20:56.080 --> 00:20:59.520 -so we did some SVG graphics by hand +00:25:28.430 --> 00:25:32.160 +creativity on the table to bring all the different elements. -00:20:59.520 --> 00:21:01.440 -we went in and just started hand coding +00:25:32.160 --> 00:25:35.830 +Hopefully, this may be clear in our slides since we were a -00:21:01.440 --> 00:21:02.640 -things that looked +00:25:35.830 --> 00:25:39.430 +little fumbling for the first few minutes of the talk -00:21:02.640 --> 00:21:05.440 -visually like the maps we used to draw +00:25:39.431 --> 00:25:44.160 +but there's also a kind of a player's guide that I started a few years ago. -00:21:05.440 --> 00:21:07.440 -by hand on graph paper when +00:25:44.160 --> 00:25:47.950 +That's not super complete, but does cover some -00:21:07.440 --> 00:21:08.960 -we were you know sitting around the +00:25:47.950 --> 00:25:52.160 +of the high level basics of the game that Erik's been talking from. -00:21:08.960 --> 00:21:11.360 -table +00:25:52.160 --> 00:25:55.800 +And I would add that some of the things that you know some -00:21:11.360 --> 00:21:14.559 -yep absolutely what emerged from that +00:25:55.800 --> 00:25:58.890 +of what makes dungeon great is that there's a lot of -00:21:14.559 --> 00:21:17.840 -is as we started working on some of +00:25:58.890 --> 00:26:02.950 +mystery about it, like the player's handbook doesn't tell -00:21:17.840 --> 00:21:20.400 -these files this particular image is a +00:26:02.950 --> 00:26:07.020 +you all of the rules, or like any really mystery and like -00:21:20.400 --> 00:21:24.000 -test of some 20 wide water +00:26:07.020 --> 00:26:09.160 +there's mazes and there's puzzles, -00:21:24.000 --> 00:21:26.240 -with some beaches around it and a +00:26:09.160 --> 00:26:12.650 +and you have to figure out how things work, and like we've -00:21:26.240 --> 00:21:28.000 -special chamber kind of off to the side +00:26:12.650 --> 00:26:16.020 +got all of these treasure items in there that could help -00:21:28.000 --> 00:21:29.679 -called a clapper +00:26:16.020 --> 00:26:20.160 +you deal with a particular monster if it occurs to you to use it. -00:21:29.679 --> 00:21:33.760 -and this was the way we would code is by +00:26:20.160 --> 00:26:24.160 +And, you know, like that. There's a lot of. -00:21:33.760 --> 00:21:36.559 -sketching by hand all of these things to +00:26:24.160 --> 00:26:27.450 +You don't know what's going on you're dropped in the middle -00:21:36.559 --> 00:21:37.600 -look right +00:26:27.450 --> 00:26:30.680 +of this situation and you have to try and survive and level -00:21:37.600 --> 00:21:39.440 -and then we would take that code and we +00:26:30.680 --> 00:26:33.750 +up and figure it out. And if you succeed in doing that for -00:21:39.440 --> 00:21:42.080 -noticed it became real repetitive +00:26:33.750 --> 00:26:36.520 +a long enough eventually you start realizing that there are -00:21:42.080 --> 00:21:43.919 -as we would go like chunk of water chunk +00:26:36.520 --> 00:26:40.890 +big picture puzzles that there are, you know, there is more to this than just -00:21:43.919 --> 00:21:45.440 -of water chunk of water +00:26:40.890 --> 00:26:43.160 +killing things and taking their stuff. -00:21:45.440 --> 00:21:46.880 -and we're like okay so what we really +00:26:43.160 --> 00:26:46.190 +And that's where the joy of designing these games comes in -00:21:46.880 --> 00:21:48.559 -need is to define a +00:26:46.190 --> 00:26:48.890 +for me is like designing the mazes and designing the -00:21:48.559 --> 00:21:52.000 -set of we called it tiles but like +00:26:48.890 --> 00:26:51.890 +puzzles and like, oh yeah and then they're going to come -00:21:52.000 --> 00:21:53.600 -you could think of it as rubber stamps +00:26:51.890 --> 00:26:51.890 +out of this room and you know what they're going to do. -00:21:53.600 --> 00:21:55.760 -where we write this graphics code +00:26:51.891 --> 00:26:57.160 +They're wanting to go that way. -00:21:55.760 --> 00:21:57.440 -and then we're able to repeat it in +00:26:57.160 --> 00:27:00.160 +So I'm going to put the trap right there. -00:21:57.440 --> 00:22:00.400 -different places around the map +00:27:00.160 --> 00:27:00.160 +And I walk right into it every time. -00:22:00.400 --> 00:22:03.039 -you want to flip over to code view +00:27:00.161 --> 00:27:00.161 +And then when the party does get in your map -00:22:03.039 --> 00:22:07.120 -and show that or do we want to move into +00:27:00.162 --> 00:27:00.162 +and they do exactly what you thought and they hit the trap -00:22:07.120 --> 00:22:10.240 -tiles code +00:27:00.163 --> 00:27:07.820 +it's just really satisfying -00:22:10.240 --> 00:22:12.720 -so you know you can see just really +00:27:07.820 --> 00:27:07.820 +to watch the look on their little faces -00:22:12.720 --> 00:22:14.320 -obviously here the only thing that's +00:27:07.821 --> 00:27:12.160 +as they squirm and struggle to stay alive. -00:22:14.320 --> 00:22:15.200 -changing from +00:27:12.160 --> 00:27:14.580 +Yeah, that's, that's what I was trying to get at. Thanks. -00:22:15.200 --> 00:22:18.240 -chunk of water to chunk of water is the +00:27:14.580 --> 00:27:18.160 +All right, that was perfect for me. All right. -00:22:18.240 --> 00:22:21.600 -x and y coordinates +00:27:18.160 --> 00:27:21.360 +So so highlight your question for me if you think it's -00:22:21.600 --> 00:22:24.640 -we're you know we can skip getting into +00:27:21.360 --> 00:27:24.800 +important we grab it here before we jump into demos, -00:22:24.640 --> 00:22:26.000 -the SVG directives +00:27:24.801 --> 00:27:28.160 +but otherwise I think it's time to try running some code. -00:22:26.000 --> 00:22:29.360 -and how all of the path statements +00:27:28.160 --> 00:27:30.160 +Let's say. -00:22:29.360 --> 00:22:30.640 -actually work +00:27:30.160 --> 00:27:37.160 +Okay, I say do it. Okay, so you less less camera more more emacs now. -00:22:30.640 --> 00:22:33.679 -but you can trust us +00:27:37.160 --> 00:27:40.380 +And hopefully I could find the right emacs the right -00:22:33.679 --> 00:22:36.480 -all of these d equals and there's m's +00:27:40.380 --> 00:27:43.160 +desktop. All right, there we are. -00:22:36.480 --> 00:22:39.039 -and h's and v's that turns out to be +00:27:43.160 --> 00:27:49.160 +So we'll try to fire up -00:22:39.039 --> 00:22:41.039 -horizontal lines and vertical lines and +00:27:49.160 --> 00:27:59.160 +a command right now. And I usually like to do the full path to emacs. -00:22:41.039 --> 00:22:42.480 -cursor moves and it's kind of like +00:27:59.160 --> 00:28:07.160 +When I'm going to run it under minus q. -00:22:42.480 --> 00:22:44.159 -turtle graphics if anyone +00:28:07.160 --> 00:28:13.160 +All right. -00:22:44.159 --> 00:22:46.640 -remembers that far back and we're +00:28:13.160 --> 00:28:17.160 +Let's have some IELM. -00:22:46.640 --> 00:22:48.720 -picking up our pen and dropping it and +00:28:17.160 --> 00:28:23.270 +All right, and then I'm also going to do a load file on the -00:22:48.720 --> 00:22:54.720 -drawing lines around on our map +00:28:23.270 --> 00:28:29.790 +net script that you can find in the repository in the emacs -00:22:54.720 --> 00:22:56.240 -so we do have a few questions if you +00:28:29.790 --> 00:28:36.160 +user and it's init scripts -00:22:56.240 --> 00:22:58.000 -want to take them now otherwise - -00:22:58.000 --> 00:23:01.200 -we can also jump in - -00:23:01.200 --> 00:23:03.120 -let's get them while they're fresh okay - -00:23:03.120 --> 00:23:04.559 -sounds good - -00:23:04.559 --> 00:23:07.520 -so we'll probably shift to question - -00:23:07.520 --> 00:23:08.000 -and answer - -00:23:08.000 --> 00:23:10.799 -mode for up to 15 minutes here so if you - -00:23:10.799 --> 00:23:11.919 -do have questions - -00:23:11.919 --> 00:23:14.480 -maybe stack rank go ahead and sort - -00:23:14.480 --> 00:23:15.679 -the questions - -00:23:15.679 --> 00:23:17.600 -a little for us or comment on them to - -00:23:17.600 --> 00:23:18.960 -let us know which ones you want to see - -00:23:18.960 --> 00:23:19.760 -us get here - -00:23:19.760 --> 00:23:21.280 -if we start getting a little long-winded - -00:23:21.280 --> 00:23:23.600 -or nudges along we'll take direction - -00:23:23.600 --> 00:23:26.960 -but thanks for your questions I'd - -00:23:26.960 --> 00:23:28.799 -like to see a demo as well we'll look at - -00:23:28.799 --> 00:23:30.720 -that with the remaining time after this - -00:23:30.720 --> 00:23:32.159 -question block - -00:23:32.159 --> 00:23:35.200 -more about what the game is - -00:23:35.200 --> 00:23:38.720 -okay sure so let's let's take our - -00:23:38.720 --> 00:23:40.720 -one minute each swing at what the - -00:23:40.720 --> 00:23:42.799 -game is you want to go first I called - -00:23:42.799 --> 00:23:45.120 -weapons - -00:23:45.120 --> 00:23:48.840 -okay Dungeon - -00:23:48.840 --> 00:23:52.720 -is like role-playing games - -00:23:52.720 --> 00:23:55.440 -but you don't really do role-playing - -00:23:55.440 --> 00:23:56.159 -like the - -00:23:56.159 --> 00:23:57.919 -for me the thing the core of being a - -00:23:57.919 --> 00:23:59.520 -role-playing game is you - -00:23:59.520 --> 00:24:02.080 -take on the role of being your character - -00:24:02.080 --> 00:24:03.039 -and you play - -00:24:03.039 --> 00:24:06.000 -your character and Dungeon's not like - -00:24:06.000 --> 00:24:06.400 -that - -00:24:06.400 --> 00:24:10.320 -Dungeon you can play - -00:24:10.320 --> 00:24:12.640 -so the Dungeon party always has eight - -00:24:12.640 --> 00:24:13.840 -characters in it - -00:24:13.840 --> 00:24:15.840 -there's four in the front row and four - -00:24:15.840 --> 00:24:17.679 -in the back row and you march through - -00:24:17.679 --> 00:24:18.720 -the Dungeon - -00:24:18.720 --> 00:24:22.159 -fighting whatever you encounter and if - -00:24:22.159 --> 00:24:24.000 -there's one player you play all eight - -00:24:24.000 --> 00:24:25.200 -characters - -00:24:25.200 --> 00:24:27.120 -and depending on how many players you - -00:24:27.120 --> 00:24:28.720 -have you split up the party - -00:24:28.720 --> 00:24:30.799 -in whatever way seems fair and equitable - -00:24:30.799 --> 00:24:32.960 -to everybody - -00:24:32.960 --> 00:24:34.880 -similarly I said the Dungeon is kind of - -00:24:34.880 --> 00:24:36.720 -a simple game like there's only - -00:24:36.720 --> 00:24:38.320 -three races and there's only three - -00:24:38.320 --> 00:24:40.080 -classes all of your characters are - -00:24:40.080 --> 00:24:41.760 -either human elf dwarf - -00:24:41.760 --> 00:24:44.080 -they're all a warrior a priest or a - -00:24:44.080 --> 00:24:44.880 -wizard - -00:24:44.880 --> 00:24:46.640 -and all of these characters have you - -00:24:46.640 --> 00:24:48.320 -know special properties - -00:24:48.320 --> 00:24:51.279 -and special talents that is why they - -00:24:51.279 --> 00:24:53.760 -come together in this party of eight - -00:24:53.760 --> 00:24:56.240 -but essentially Dungeon is a game about - -00:24:56.240 --> 00:24:57.600 -making up all of these - -00:24:57.600 --> 00:25:00.000 -eight characters and stomping through - -00:25:00.000 --> 00:25:01.679 -the Dungeon killing things taking their - -00:25:01.679 --> 00:25:03.840 -stuff - -00:25:03.840 --> 00:25:05.120 -well you're way over but I don't know - -00:25:05.120 --> 00:25:06.960 -how much I have to add to that - -00:25:06.960 --> 00:25:10.080 -I will just add that if if you're - -00:25:10.080 --> 00:25:14.159 -if if one's passion as a Dungeon - -00:25:14.159 --> 00:25:16.559 -master is killing player characters this - -00:25:16.559 --> 00:25:17.120 -game - -00:25:17.120 --> 00:25:19.600 -is meant for you you don't have to build - -00:25:19.600 --> 00:25:21.039 -your game like that - -00:25:21.039 --> 00:25:22.559 -but that's definitely a thing that - -00:25:22.559 --> 00:25:24.400 -people do with this game - -00:25:24.400 --> 00:25:27.360 -and then as Erik said it just - -00:25:27.360 --> 00:25:28.960 -encourages you to put your creativity on - -00:25:28.960 --> 00:25:30.320 -the table to bring all the different - -00:25:30.320 --> 00:25:31.039 -elements - -00:25:31.039 --> 00:25:33.760 -and this hopefully this may be clear - -00:25:33.760 --> 00:25:35.039 -in our slides since we were a little - -00:25:35.039 --> 00:25:36.400 -fumbling for the first few minutes of - -00:25:36.400 --> 00:25:36.960 -the talk - -00:25:36.960 --> 00:25:40.480 -but there's also a kind of a player's - -00:25:40.480 --> 00:25:41.200 -guide - -00:25:41.200 --> 00:25:43.760 -that that I started a few years ago - -00:25:43.760 --> 00:25:45.919 -that's that's not super complete - -00:25:45.919 --> 00:25:48.400 -but but does cover some of the high - -00:25:48.400 --> 00:25:50.159 -level basics of the game that Erik's - -00:25:50.159 --> 00:25:52.320 -been talking from - -00:25:52.320 --> 00:25:55.679 -and I would add that some of the things - -00:25:55.679 --> 00:25:56.960 -you know some of what makes Dungeon - -00:25:56.960 --> 00:25:58.480 -great is that there's a lot of mystery - -00:25:58.480 --> 00:25:59.360 -about it - -00:25:59.360 --> 00:26:01.120 -like the player's handbook doesn't tell - -00:26:01.120 --> 00:26:02.880 -you all of the rules - -00:26:02.880 --> 00:26:06.080 -or like really mystery - -00:26:06.080 --> 00:26:08.080 -and like there's mazes and there's - -00:26:08.080 --> 00:26:09.679 -puzzles and - -00:26:09.679 --> 00:26:12.240 -you have to figure out how things work - -00:26:12.240 --> 00:26:12.799 -and like - -00:26:12.799 --> 00:26:14.559 -we've got all of these treasure items in - -00:26:14.559 --> 00:26:16.640 -there that could help you deal with a - -00:26:16.640 --> 00:26:18.480 -particular monster if it occurs to you - -00:26:18.480 --> 00:26:19.919 -to use it - -00:26:19.919 --> 00:26:22.720 -and you know like that there's a lot - -00:26:22.720 --> 00:26:23.360 -of - -00:26:23.360 --> 00:26:25.279 -you don't know what's going on you're - -00:26:25.279 --> 00:26:27.039 -dropped in the middle of this situation - -00:26:27.039 --> 00:26:28.559 -and you have to try and survive - -00:26:28.559 --> 00:26:31.919 -and level up and figure it out and - -00:26:31.919 --> 00:26:33.840 -if you succeed in doing that for long - -00:26:33.840 --> 00:26:35.520 -enough eventually you start realizing - -00:26:35.520 --> 00:26:37.520 -that there are big picture puzzles - -00:26:37.520 --> 00:26:40.000 -that there are you know there is more to - -00:26:40.000 --> 00:26:41.760 -this than just killing things and taking - -00:26:41.760 --> 00:26:43.360 -their stuff - -00:26:43.360 --> 00:26:46.000 -and that's where the joy of designing - -00:26:46.000 --> 00:26:47.279 -these games comes in - -00:26:47.279 --> 00:26:49.679 -for me is like designing the mazes and - -00:26:49.679 --> 00:26:51.679 -designing the puzzles and like - -00:26:51.679 --> 00:26:53.200 -oh yeah and then they're going to come - -00:26:53.200 --> 00:26:54.240 -out of this room and you know what - -00:26:54.240 --> 00:26:55.919 -they're going to do they want to - -00:26:55.919 --> 00:26:58.240 -go that way so I'm going to put the trap - -00:26:58.240 --> 00:26:59.600 -right there - -00:26:59.600 --> 00:27:01.360 -and they'll walk right into it every - -00:27:01.360 --> 00:27:03.840 -time and then when the party does get in - -00:27:03.840 --> 00:27:05.440 -your map and they do exactly what you - -00:27:05.440 --> 00:27:07.200 -thought and they hit the trap it's just - -00:27:07.200 --> 00:27:09.279 -really satisfying to watch the look on - -00:27:09.279 --> 00:27:10.960 -their little faces as they squirm and - -00:27:10.960 --> 00:27:12.320 -struggle to stay alive - -00:27:12.320 --> 00:27:13.760 -yeah that's that's what I was trying to - -00:27:13.760 --> 00:27:15.520 -get at thanks all right that was perfect - -00:27:15.520 --> 00:27:16.320 -for me - -00:27:16.320 --> 00:27:19.200 -all right so so highlight your - -00:27:19.200 --> 00:27:20.320 -question for me if you think it's - -00:27:20.320 --> 00:27:21.840 -important we grab it here before we jump - -00:27:21.840 --> 00:27:22.960 -into demos - -00:27:22.960 --> 00:27:25.039 -but otherwise I think it's time to try - -00:27:25.039 --> 00:27:27.919 -running some code - -00:27:27.919 --> 00:27:31.279 -what say okay I say do it - -00:27:31.279 --> 00:27:33.840 -okay so you less less camera more more - -00:27:33.840 --> 00:27:36.480 -Emacs now - -00:27:36.480 --> 00:27:39.120 -and hopefully I could find the right e - -00:27:39.120 --> 00:27:39.840 -max - -00:27:39.840 --> 00:27:42.960 -the right desktop all right there we are - -00:27:42.960 --> 00:27:48.799 -so we'll try to fire up - -00:27:48.799 --> 00:27:54.000 -and right now and I usually like to do - -00:27:54.000 --> 00:27:59.120 -the full path to Emacs - -00:27:59.120 --> 00:28:07.279 -when I'm going to run it under minus q - -00:28:07.279 --> 00:28:13.120 -all right - -00:28:13.120 --> 00:28:16.720 -let's have some iom - -00:28:16.720 --> 00:28:19.360 -all right and then I'm also going to do - -00:28:19.360 --> 00:28:20.000 -a - -00:28:20.000 --> 00:28:24.000 -load file on the init script that you - -00:28:24.000 --> 00:28:25.840 -can find in the repository - -00:28:25.840 --> 00:28:30.480 -in the Emacs user and it's - -00:28:30.480 --> 00:28:34.960 -init scripts - -00:28:34.960 --> 00:28:40.159 +00:28:36.160 --> 00:28:41.160 users folder -00:28:40.159 --> 00:28:48.080 -user folder nice - -00:28:48.080 --> 00:28:49.919 -and it's called init dm because that - -00:28:49.919 --> 00:28:51.840 -happened to fit with my naming scheme - -00:28:51.840 --> 00:28:55.360 -potentially terrible all right and with - -00:28:55.360 --> 00:28:56.320 -that loaded - -00:28:56.320 --> 00:28:58.320 -in theory some very basic stuff will - -00:28:58.320 --> 00:29:00.159 -work even without us doing anything in - -00:29:00.159 --> 00:29:02.159 -iom so I think the the last thing Erik - -00:29:02.159 --> 00:29:04.399 -was talking about was the SVG code - -00:29:04.399 --> 00:29:06.000 -behind the maps - -00:29:06.000 --> 00:29:10.720 -there as kind of the technical thread - -00:29:10.720 --> 00:29:13.760 -so we'll just fire open the maps pick a - -00:29:13.760 --> 00:29:15.440 -Dungeon level - -00:29:15.440 --> 00:29:18.480 -let's pick a pretty one okay if I show - -00:29:18.480 --> 00:29:19.840 -this - -00:29:19.840 --> 00:29:23.440 -yeah whatever - -00:29:23.440 --> 00:29:27.679 -is that the surface yeah - -00:29:27.679 --> 00:29:30.799 -and let's scale it here I think if I - -00:29:30.799 --> 00:29:32.159 -wrap - -00:29:32.159 --> 00:29:34.960 -like once once we got the engine up and - -00:29:34.960 --> 00:29:36.399 -running a little bit - -00:29:36.399 --> 00:29:39.120 -we decided to do some experimentation - -00:29:39.120 --> 00:29:42.480 -about seeing what we could do to push - -00:29:42.480 --> 00:29:46.080 -the limits of our tile - -00:29:46.080 --> 00:29:49.360 -and gender so we more or less on the - -00:29:49.360 --> 00:29:50.080 -surface - -00:29:50.080 --> 00:29:53.120 -map I - -00:29:53.120 --> 00:29:56.399 -basically started with almost no - -00:29:56.399 --> 00:29:58.399 -tiles from below like the water and the - -00:29:58.399 --> 00:30:00.240 -beaches and the general store and the - -00:30:00.240 --> 00:30:01.279 -stairs - -00:30:01.279 --> 00:30:03.679 -were existing tiles but then we were - -00:30:03.679 --> 00:30:05.200 -like this is going to be a surface map - -00:30:05.200 --> 00:30:07.279 -so we're outdoors so I want hills and I - -00:30:07.279 --> 00:30:08.399 -want trees - -00:30:08.399 --> 00:30:11.760 -and I want grass and it took a little - -00:30:11.760 --> 00:30:12.399 -while - -00:30:12.399 --> 00:30:15.039 -playing with SVG to come up with some - -00:30:15.039 --> 00:30:16.320 -acceptable code - -00:30:16.320 --> 00:30:18.480 -but once the like the grass gets tiled - -00:30:18.480 --> 00:30:19.840 -out it - -00:30:19.840 --> 00:30:21.600 -kind of you know gives the illusion of - -00:30:21.600 --> 00:30:23.039 -grass and +00:28:41.160 --> 00:28:48.160 +nice. -00:30:23.039 --> 00:30:24.880 -you know these are all in my estimation +00:28:48.160 --> 00:28:51.530 +And it's called init-dm because that happened to fit with -00:30:24.880 --> 00:30:26.399 -kind of crude graphics +00:28:51.531 --> 00:28:54.160 +my naming scheme, potentially terrible. -00:30:26.399 --> 00:30:28.640 -but we're at the proof of concept stage +00:28:54.160 --> 00:28:54.160 +All right, and with that loaded in theory some very basic stuff will work -00:30:28.640 --> 00:30:30.399 -and it definitely proves that we can use +00:28:54.161 --> 00:28:54.161 +even without us doing anything in IELM -00:30:30.399 --> 00:30:31.679 -our graphics engine +00:28:54.162 --> 00:29:05.870 +so I think the last thing Erik was talking about -00:30:31.679 --> 00:30:34.640 -to decide what we want our maps to look +00:29:05.871 --> 00:29:07.160 +was the SVG code behind the maps. -00:30:34.640 --> 00:30:35.279 -like +00:29:07.160 --> 00:29:11.800 +There as kind of the technical thread so we'll just fire -00:30:35.279 --> 00:30:39.440 -and real quickly compose new map tiles +00:29:11.800 --> 00:29:15.160 +open the maps, pick a dungeon level. -00:30:39.440 --> 00:30:44.240 -and stamp out a bunch of new maps +00:29:15.160 --> 00:29:17.160 +Let's pick a pretty one. -00:30:44.240 --> 00:30:46.880 -so now I'll show off one of the other +00:29:17.160 --> 00:29:19.160 +Okay, if I show this. -00:30:46.880 --> 00:30:48.640 -things so the next thing we did once we +00:29:19.160 --> 00:29:23.160 +Yeah, whatever. -00:30:48.640 --> 00:30:50.559 -once we had the maps doing +00:29:23.160 --> 00:29:27.160 +Is that the surface. Yeah. -00:30:50.559 --> 00:30:51.919 -and we haven't gotten into the features +00:29:27.160 --> 00:29:32.740 +And let's scale it here I think if I recall that fun like -00:30:51.919 --> 00:30:53.600 -of the maps we can we can appoint time +00:29:32.740 --> 00:29:36.820 +once, once we got the engine up and running a little bit. -00:30:53.600 --> 00:30:54.960 -to that or not +00:29:36.820 --> 00:29:40.870 +We decided to do some experimentation about seeing -00:30:54.960 --> 00:30:58.960 -but there are a number of +00:29:40.871 --> 00:29:47.160 +what we could do to push the limits of our tile engine. -00:30:58.960 --> 00:31:00.720 -featured features there that we can +00:29:47.160 --> 00:29:54.450 +So we more or less on the surface map, I basically started -00:31:00.720 --> 00:31:02.840 -look at the +00:29:54.450 --> 00:29:54.450 +with almost no tiles from below like the water -00:31:02.840 --> 00:31:05.760 -we then wanted to +00:29:54.451 --> 00:30:01.370 +and the beaches and the general store and the stairs were existing tiles -00:31:05.760 --> 00:31:08.640 -try to see if that could make other +00:30:01.371 --> 00:30:04.730 +but then we were like this is going to be surface maps. -00:31:08.640 --> 00:31:10.399 -interfaces more appealing so we built +00:30:04.731 --> 00:30:07.160 +We're outdoors so I want hills -00:31:10.399 --> 00:31:11.360 -stuff like +00:30:07.160 --> 00:30:11.150 +and I want trees, and I want grass, and it took a little -00:31:11.360 --> 00:31:14.320 -oop that's going to be the map again +00:30:11.150 --> 00:30:15.430 +while playing with SVG to come up with some acceptable code, -00:31:14.320 --> 00:31:15.919 -I'll just run it here through I +00:30:15.430 --> 00:30:19.610 +but once the like the grass gets tiled out, it kind of, -00:31:15.919 --> 00:31:18.320 -am so it's more obvious what I'm doing +00:30:19.610 --> 00:30:24.510 +you know, gives the illusion of grass, and, you know, these -00:31:18.320 --> 00:31:20.080 +00:30:24.510 --> 00:30:25.160 +are all in my estimation +00:30:25.160 --> 00:30:29.970 +of crude graphics, but we're at the proof of concept stage, -00:31:20.080 --> 00:31:21.679 -so let's look next to the character +00:30:29.970 --> 00:30:34.130 +and it definitely proves that we can use our graphics -00:31:21.679 --> 00:31:26.080 -sheet oops +00:30:34.130 --> 00:30:38.490 +engine to decide what we want our maps to look like, and -00:31:26.080 --> 00:31:32.880 -back and alt p doesn't work okay +00:30:38.490 --> 00:30:42.970 +real quickly compose new map tiles and stamp out a bunch of -00:31:32.880 --> 00:31:35.840 -that's a bummer that is not +00:30:42.970 --> 00:30:44.160 +new maps. -00:31:35.840 --> 00:31:38.240 -autoloaded +00:30:44.160 --> 00:30:48.050 +So now I'll show off one of the other things. So the next -00:31:38.240 --> 00:31:40.559 -so this this project is a bit of a mess +00:30:48.050 --> 00:30:51.680 +thing we did once we once we had the maps doing, and we -00:31:40.559 --> 00:31:41.600 -right now y'all +00:30:51.680 --> 00:30:56.040 +haven't gotten into the features of the maps we can we can -00:31:41.600 --> 00:31:43.120 -it does some stuff that's really +00:30:56.040 --> 00:30:59.200 +appoint time to that or not, but there are a number of -00:31:43.120 --> 00:31:45.120 -exciting to us but the code is terrible +00:30:59.200 --> 00:31:01.160 +features there that we can look at. -00:31:45.120 --> 00:31:47.039 -and we need all the help we can get +00:31:01.160 --> 00:31:06.310 +The, we then wanted to try to see if that could make other -00:31:47.039 --> 00:31:48.399 -being told what our problems are and how +00:31:06.310 --> 00:31:11.550 +interfaces more appealing so we built stuff like, that's -00:31:48.399 --> 00:31:49.279 -to fix them +00:31:11.550 --> 00:31:14.160 +going to be the map again. -00:31:49.279 --> 00:31:51.360 -so that is if you take nothing away from +00:31:14.160 --> 00:31:18.580 +I'll just run it here through I am so it's more obvious -00:31:51.360 --> 00:31:52.559 -this talk +00:31:18.580 --> 00:31:20.160 +what I'm doing. -00:31:52.559 --> 00:31:54.799 -take away from it that we could use +00:31:20.160 --> 00:31:23.160 +So let's look next to the character sheet. -00:31:54.799 --> 00:32:00.480 -your help +00:31:23.160 --> 00:31:27.160 +Oops. -00:32:00.480 --> 00:32:02.399 -yeah that doubles back to when we +00:31:27.160 --> 00:31:33.160 +And alt P doesn't work. Okay. -00:32:02.399 --> 00:32:04.640 -were talking about larry wall's cardinal +00:31:33.160 --> 00:31:35.160 +That's a bummer. -00:32:04.640 --> 00:32:06.320 -virtues of programming like we +00:31:35.160 --> 00:31:38.160 +That is not auto loaded. -00:32:06.320 --> 00:32:07.440 -definitely +00:31:38.160 --> 00:31:41.120 +So this, this project is a bit of a mess right now, y'all, -00:32:07.440 --> 00:32:09.760 -took on some hubris thinking we could do +00:31:41.120 --> 00:31:43.800 +it does some stuff that's really exciting to us but the -00:32:09.760 --> 00:32:10.640 -this +00:31:43.800 --> 00:31:46.560 +code is terrible and we need all the help we can get being -00:32:10.640 --> 00:32:13.519 -and we might not be wrong but we +00:31:46.560 --> 00:31:49.160 +told what our problems are and how to fix them. -00:32:13.519 --> 00:32:14.799 -could do it easier with +00:31:49.160 --> 00:31:53.160 +So that is if you take nothing away from this talk. -00:32:14.799 --> 00:32:16.799 -more hands you know many hands make +00:31:53.160 --> 00:32:00.160 +Take away from it that we could use your help. -00:32:16.799 --> 00:32:18.240 -light work all right +00:32:00.160 --> 00:32:03.692 +Yeah, that doubles back to when we were talking about -00:32:18.240 --> 00:32:21.760 -I'll bite yeah +00:32:03.693 --> 00:32:07.800 +Larry Wall's cardinal virtues of programming like we definitely -00:32:21.760 --> 00:32:23.360 -and the character she won't load for us +00:32:07.800 --> 00:32:11.160 +took on some hubris, thinking we could do this. -00:32:23.360 --> 00:32:24.799 -today I had some problems with my +00:32:11.160 --> 00:32:14.300 +We might not be wrong, but we could do it easier with more -00:32:24.799 --> 00:32:26.960 -version control I had to revert my thing +00:32:14.300 --> 00:32:18.160 +hands, you know, many hands make light work. All right. -00:32:26.960 --> 00:32:29.360 -I threw all my local changes in a stash +00:32:18.160 --> 00:32:21.160 +I'll bite. -00:32:29.360 --> 00:32:31.200 -and it's it's a terrible mess let's look +00:32:21.160 --> 00:32:24.580 +Yeah, and the character she won't load for us today I had -00:32:31.200 --> 00:32:32.080 -at stuff I +00:32:24.580 --> 00:32:27.880 +some problems with my version control I had to revert my -00:32:32.080 --> 00:32:37.519 -tested already today before +00:32:27.880 --> 00:32:31.290 +thing I threw all my local changes in a stash and it's it's -00:32:37.519 --> 00:32:40.559 -you got the battle board available +00:32:31.290 --> 00:32:35.160 +a terrible mess let's look at stuff I tested already today. -00:32:40.559 --> 00:32:43.760 -let's find out first we'll load library +00:32:35.160 --> 00:32:40.160 +Before you got the battle board available. -00:32:43.760 --> 00:32:45.760 -it +00:32:40.160 --> 00:32:42.160 +Let's find out. -00:32:45.760 --> 00:32:48.000 -in fact actually your basic require +00:32:42.160 --> 00:32:46.160 +First of all, the library. -00:32:48.000 --> 00:32:57.440 -should work +00:32:46.160 --> 00:32:57.160 +In fact, actually, your basic require should work. -00:32:57.440 --> 00:33:00.480 -no I can try load library +00:32:57.160 --> 00:32:59.160 +No. -00:33:00.480 --> 00:33:02.640 -you know what let's forg I'm just +00:32:59.160 --> 00:33:03.490 +You can try a load library. You know what, let's, I'm just -00:33:02.640 --> 00:33:03.760 -going to go ahead and give it to you as a +00:33:03.490 --> 00:33:07.350 +going to go ahead and give it to you as a lab beast, since -00:33:03.760 --> 00:33:04.960 -lab beast +00:33:07.350 --> 00:33:10.160 +that's probably more fun to watch. -00:33:04.960 --> 00:33:09.919 -since that's probably more fun to watch +00:33:10.160 --> 00:33:16.570 +So we'll take it from my own and this is more likely to be -00:33:09.919 --> 00:33:11.600 -we'll take it from my own inet +00:33:16.570 --> 00:33:17.160 +healthy. -00:33:11.600 --> 00:33:16.640 -this is more likely to be healthy +00:33:17.160 --> 00:33:19.160 +Since only some of the time. -00:33:16.640 --> 00:33:19.840 -since only some of the time first we +00:33:19.160 --> 00:33:25.160 +First we have to control x, all the IDM. -00:33:19.840 --> 00:33:20.880 -have to +00:33:25.160 --> 00:33:30.360 +All right, and having then loaded the net control you have -00:33:20.880 --> 00:33:24.799 -ctrl x alt I d m +00:33:30.360 --> 00:33:35.550 +nine should give me the maps, and we can verify things work -00:33:24.799 --> 00:33:28.559 -all right and having then loaded +00:33:35.550 --> 00:33:39.160 +in a basic way just by changing level. -00:33:28.559 --> 00:33:31.760 -the init control u f9 +00:33:39.160 --> 00:33:44.160 +Let's look at something else. -00:33:31.760 --> 00:33:34.080 -should give me the maps and we can +00:33:44.160 --> 00:33:49.380 +I mentioned, there were a number of bindings, show them -00:33:34.080 --> 00:33:35.200 -verify +00:33:49.380 --> 00:33:50.160 +briefly. -00:33:35.200 --> 00:33:37.200 -things work in a basic way just by +00:33:50.160 --> 00:33:55.820 +We wrote our own functions to handle movement. Some of -00:33:37.200 --> 00:33:38.640 -changing level +00:33:55.820 --> 00:34:00.872 +those in SVG dot el the left, left and right movements -00:33:38.640 --> 00:33:43.200 -let's look at something else +00:34:00.873 --> 00:34:07.160 +didn't seem to work quite quite likely coding, of course. -00:33:43.200 --> 00:33:46.399 -I mentioned there were a number of +00:34:07.160 --> 00:34:10.160 +Um, all right, enough. -00:33:46.399 --> 00:33:47.360 -bindings +00:34:10.160 --> 00:34:13.160 +So let's, let's see if battle board works now. -00:33:47.360 --> 00:33:51.600 -show them briefly we wrote our own +00:34:13.160 --> 00:34:16.160 +I really thought that was on F7. -00:33:51.600 --> 00:33:54.080 -functions to handle movement some of +00:34:16.160 --> 00:34:19.160 +Up that's the character sheet suite. -00:33:54.080 --> 00:33:56.640 -those in SVG.el the left +00:34:19.160 --> 00:34:25.160 +Okay, how to use your bindings. -00:33:56.640 --> 00:33:59.679 -left and right movements didn't +00:34:25.160 --> 00:34:28.160 +So that looks a little better. -00:33:59.679 --> 00:34:02.640 -didn't seem to work quite quite likely +00:34:28.160 --> 00:34:34.160 +So let's talk about the character sheet. -00:34:02.640 --> 00:34:03.120 -coding +00:34:34.160 --> 00:34:36.160 +Yeah. -00:34:03.120 --> 00:34:06.720 -of course +00:34:36.160 --> 00:34:40.570 +So the character sheet was our first big repurposing of the -00:34:06.720 --> 00:34:09.760 -all right enough +00:34:40.570 --> 00:34:45.160 +engine that we couldn't do the battle board program that. -00:34:09.760 --> 00:34:11.760 -so let's let's see if battleboard works +00:34:45.160 --> 00:34:54.160 +Let's see if that runs now to. -00:34:11.760 --> 00:34:13.040 -now +00:34:54.160 --> 00:35:01.160 +It's not interactive if it does. -00:34:13.040 --> 00:34:15.760 -I really thought that was on f7 up +00:35:01.160 --> 00:35:05.160 +Good. -00:34:15.760 --> 00:34:17.040 -that's the character sheet +00:35:05.160 --> 00:35:09.160 +So, -00:34:17.040 --> 00:34:19.679 -sweet that's why you stay out of user +00:35:09.160 --> 00:35:12.360 +try smex guess? No joy. All right, I'm not sure what's -00:34:19.679 --> 00:34:24.879 -bindings +00:35:12.360 --> 00:35:14.160 +up with the battle board Erik. -00:34:24.879 --> 00:34:28.079 -so that looks a little better +00:35:14.160 --> 00:35:17.190 +We haven't messed with that one for a while in fact we had -00:34:28.079 --> 00:34:33.919 -so let's talk about the character sheet +00:35:17.190 --> 00:35:20.270 +discussed using its code as an example so maybe we'll debug -00:34:33.919 --> 00:34:35.919 -yeah +00:35:20.270 --> 00:35:21.160 +it with you. -00:34:35.919 --> 00:34:38.000 -so the character sheet was our first big +00:35:21.160 --> 00:35:24.160 +I'll certainly check for questions first. -00:34:38.000 --> 00:34:39.839 -repurposing +00:35:24.160 --> 00:35:29.740 +Um, the. So the character sheet which is not scaling -00:34:39.839 --> 00:34:42.560 -of the engine that we couldn't do the +00:35:29.740 --> 00:35:31.160 +ideally here. -00:34:42.560 --> 00:34:44.159 -battle board program +00:35:31.160 --> 00:35:36.160 +See if reloading it does anything. -00:34:44.159 --> 00:34:53.599 -that let's see if that runs now too +00:35:36.160 --> 00:35:37.160 +Nope. -00:34:53.599 --> 00:35:00.880 -it's not interactive if it does +00:35:37.160 --> 00:35:40.660 +As far as I can tell, assuming you don't have this -00:35:00.880 --> 00:35:04.960 -good +00:35:40.660 --> 00:35:43.160 +implemented character sheet. -00:35:04.960 --> 00:35:08.480 -no +00:35:43.160 --> 00:35:49.800 +That's right, there's everything in scale, it take in order -00:35:08.480 --> 00:35:11.760 -try let cemex guess no joy all right I'm +00:35:49.800 --> 00:35:54.160 +to get what you were looking at there. -00:35:11.760 --> 00:35:13.040 -not sure what's up with the battle board +00:35:54.160 --> 00:35:56.160 +All right. -00:35:13.040 --> 00:35:14.079 -Erik +00:35:56.160 --> 00:36:03.201 +This, this whole thing is hard coded, basically to the -00:35:14.079 --> 00:35:15.280 -we haven't messed with that one for a +00:36:03.202 --> 00:36:08.160 +gills, except for things like this. -00:35:15.280 --> 00:35:17.119 -while in fact +00:36:08.160 --> 00:36:11.780 +This program represents a re implementation of the drawing -00:35:17.119 --> 00:35:18.880 -we had discussed using its code as an +00:36:11.780 --> 00:36:17.420 +engine using all of the same things. Let's see that -00:35:18.880 --> 00:35:21.040 -example so maybe we'll debug it with you +00:36:17.420 --> 00:36:20.160 +selected so -00:35:21.040 --> 00:35:22.640 -I'll certainly check for questions +00:36:20.160 --> 00:36:23.160 +we'll just try bringing up a map again. -00:35:22.640 --> 00:35:25.359 -first +00:36:23.160 --> 00:36:27.180 +There's one and you'll notice DM map doesn't know anything -00:35:25.359 --> 00:35:28.079 -the so the character sheet which is +00:36:27.180 --> 00:36:31.240 +about the new draw engine, and there are a couple of places -00:35:28.079 --> 00:35:31.280 -not scaling ideally here +00:36:31.240 --> 00:36:35.160 +where the new draw engine is still hooked in to the. -00:35:31.280 --> 00:35:35.680 -see if reloading it does anything +00:36:35.160 --> 00:36:38.250 +For example, particularly the sizing of the graph paper -00:35:35.680 --> 00:35:39.440 -nope not as far as I can tell assuming +00:36:38.250 --> 00:36:43.160 +background. So I've started the work in DM draw. -00:35:39.440 --> 00:35:40.960 -you don't have this scale implemented +00:36:44.160 --> 00:36:47.950 +Of trying to show how exactly we did this removing the, how -00:35:40.960 --> 00:35:42.800 -for character sheet +00:36:47.950 --> 00:36:51.040 +did we get data out of org mode that I talked about -00:35:42.800 --> 00:35:44.960 -that's right there's everything in scale +00:36:51.040 --> 00:36:56.410 +yesterday with our ETL flows, and just focusing on what how -00:35:44.960 --> 00:35:46.800 -it take in order to get what you were +00:36:56.410 --> 00:37:00.580 +did we solve the problem of predicated drawing, which I -00:35:46.800 --> 00:35:54.079 -looking at there +00:37:00.580 --> 00:37:04.290 +realized we didn't really talk about so should I jump into -00:35:54.079 --> 00:35:58.640 -all right this +00:37:04.290 --> 00:37:05.160 +that. -00:35:58.640 --> 00:36:02.240 -this whole thing is hard-coded +00:37:05.160 --> 00:37:06.160 +Yeah, I guess. -00:36:02.240 --> 00:36:05.440 -basically to the gills except +00:37:06.160 --> 00:37:09.160 +How are we on time, we have time for detours. -00:36:05.440 --> 00:36:09.040 -for things like this this program +00:37:09.160 --> 00:37:12.450 +Um, yeah, it looks like we could spend two or three minutes -00:36:09.040 --> 00:36:10.640 -represents a re-implementation of the +00:37:12.450 --> 00:37:15.160 +on that and then come back for the questions. -00:36:10.640 --> 00:36:11.040 -draw +00:37:15.160 --> 00:37:18.160 +Cool. -00:36:11.040 --> 00:36:14.880 -engine using all of the same things +00:37:18.160 --> 00:37:21.440 +And I'm just going to peek into my org mode into my chat -00:36:14.880 --> 00:36:19.599 -let's see that's selected so +00:37:21.440 --> 00:37:24.970 +conference and I don't see anybody talking to me from the -00:36:19.599 --> 00:36:21.680 -we'll just try bringing up a map +00:37:24.970 --> 00:37:29.160 +organizer channel, so I'm gonna assume that's a good guess. -00:36:21.680 --> 00:36:23.119 -again +00:37:29.160 --> 00:37:33.700 +All right, so let's go ahead and play with the map a -00:36:23.119 --> 00:36:26.320 -there's one and you'll notice dm +00:37:33.700 --> 00:37:38.170 +little then that is pretty fun and so much fun that we -00:36:26.320 --> 00:36:28.560 -map doesn't know anything about the new +00:37:38.170 --> 00:37:42.640 +had to curtail play sessions in order to keep working on -00:36:28.560 --> 00:36:29.839 -draw engine +00:37:42.640 --> 00:37:44.160 +the project. -00:36:29.839 --> 00:36:31.599 -and there are a couple of places where +00:37:44.160 --> 00:37:52.160 +So, I'll, I'll do the. -00:36:31.599 --> 00:36:33.520 -the new draw engine is still +00:37:52.160 --> 00:37:58.516 +Um, we'll try to find something different from any gift -00:36:33.520 --> 00:36:36.480 -hooked in to the s for example +00:37:58.517 --> 00:38:01.160 +I've shared here right. -00:36:36.480 --> 00:36:37.440 -particularly +00:38:01.160 --> 00:38:06.160 +So here we are in a random. Go ahead, Erik, you feel. -00:36:37.440 --> 00:36:39.680 -the sizing of the graph paper background +00:38:06.160 --> 00:38:10.660 +Okay, so what we're, what Corwin is doing here is he's -00:36:39.680 --> 00:36:41.119 -so I've started the work +00:38:10.660 --> 00:38:15.380 +about to put the map into play mode, which is going to turn -00:36:41.119 --> 00:36:44.240 -in dmdraw.el +00:38:15.380 --> 00:38:17.160 +on the fog of war. -00:36:44.240 --> 00:36:47.040 -of trying to show how exactly we did +00:38:17.160 --> 00:38:21.100 +And then we're going to use the fog of war and the, the -00:36:47.040 --> 00:36:47.440 -this +00:38:21.100 --> 00:38:25.230 +play mode to kind of reveal the map, one square at a time -00:36:47.440 --> 00:36:50.160 -removing the how did we get data out of +00:38:25.230 --> 00:38:28.160 +like we would during a play session. -00:36:50.160 --> 00:36:51.760 -org mode that I talked about yesterday +00:38:28.160 --> 00:38:32.350 +So we'll just drop the party randomly somewhere onto this -00:36:51.760 --> 00:36:53.280 -with our etl flows +00:38:32.350 --> 00:38:36.160 +map looks like we're on alpha maze level three here. -00:36:53.280 --> 00:36:56.480 -and just focusing on +00:38:36.160 --> 00:38:46.160 +And then we'll walk around a little. -00:36:56.480 --> 00:36:58.960 -how did we solve the problem of +00:38:46.160 --> 00:38:52.280 +Okay, so we're halfway there. I'll have to, I'll have to do -00:36:58.960 --> 00:37:00.160 -predicated drawing +00:38:52.280 --> 00:38:55.540 +a full redraw the sketch the sketching stuff has has has -00:37:00.160 --> 00:37:01.839 -which I realized we didn't really talk +00:38:55.540 --> 00:38:58.980 +broken things here like I said, the two aren't separated -00:37:01.839 --> 00:37:05.200 -about so should I jump into that +00:38:58.980 --> 00:39:01.910 +once I run them in the same instance, they're not -00:37:05.200 --> 00:37:07.760 -yeah I guess how are we on time we +00:39:01.910 --> 00:39:03.160 +predictable. -00:37:07.760 --> 00:37:09.280 -have time for detours +00:39:03.160 --> 00:39:08.060 +Okay, so let me elaborate here when he says the sketching -00:37:09.280 --> 00:37:11.359 -yeah it looks like we could spend two +00:39:08.060 --> 00:39:12.960 +stuff. The current focus of our work is to turn all of this -00:37:11.359 --> 00:37:12.800 -or three minutes on that and then +00:39:12.960 --> 00:39:17.940 +map stuff we've got into a basically a WYSIWYG map editor, -00:37:12.800 --> 00:37:15.599 -come back for the questions cool do +00:39:17.940 --> 00:39:22.330 +where we can get into the tiles, and we'll be able to -00:37:15.599 --> 00:37:17.680 -it - -00:37:17.680 --> 00:37:20.480 -and I'm just going to peek into my org mode - -00:37:20.480 --> 00:37:20.800 -by - -00:37:20.800 --> 00:37:23.200 -into my chat conference and I don't see - -00:37:23.200 --> 00:37:24.960 -anybody talking to me from the organizer - -00:37:24.960 --> 00:37:25.520 -channel - -00:37:25.520 --> 00:37:26.560 -so I'm going to assume that's a good - -00:37:26.560 --> 00:37:28.800 -guess - -00:37:28.800 --> 00:37:32.079 -all right so let's let's go ahead and - -00:37:32.079 --> 00:37:34.160 -play with the map a little then that is - -00:37:34.160 --> 00:37:37.760 -pretty fun and and so much fun - -00:37:37.760 --> 00:37:39.440 -that we had to curtail play sessions in - -00:37:39.440 --> 00:37:41.760 -order to keep working on the project - -00:37:41.760 --> 00:37:45.119 - - -00:37:45.119 --> 00:37:48.480 -so I'll - -00:37:48.480 --> 00:37:51.839 -I'll do the - -00:37:51.839 --> 00:37:55.920 -we'll try to find something different - -00:37:55.920 --> 00:38:01.040 -from any gif I've shared here right - -00:38:01.040 --> 00:38:03.359 -so here we are in a random go ahead Erik - -00:38:03.359 --> 00:38:05.760 -you phil - -00:38:05.760 --> 00:38:08.240 -oh okay so what what what corwin is - -00:38:08.240 --> 00:38:10.000 -doing here is he's about to put the - -00:38:10.000 --> 00:38:13.359 -the map into play mode - -00:38:13.359 --> 00:38:16.800 -which is going to turn on the fog of war - -00:38:16.800 --> 00:38:19.920 -and then we're going to use - -00:38:19.920 --> 00:38:23.040 -the fog of war and the the play mode to - -00:38:23.040 --> 00:38:24.560 -kind of reveal the map - -00:38:24.560 --> 00:38:26.240 -one square at a time like we would - -00:38:26.240 --> 00:38:28.160 -during a play session - -00:38:28.160 --> 00:38:29.920 -so we'll just drop the party randomly - -00:38:29.920 --> 00:38:31.280 -somewhere onto this map - -00:38:31.280 --> 00:38:33.839 -looks like we're on alpha maze level - -00:38:33.839 --> 00:38:36.079 -three here - -00:38:36.079 --> 00:38:40.800 -and - -00:38:40.800 --> 00:38:46.320 --oh then we'll walk around a little - -00:38:46.320 --> 00:38:50.480 -okay there we go we're halfway there - -00:38:50.480 --> 00:38:52.160 -I'll have to I'll have to do a full - -00:38:52.160 --> 00:38:53.520 -redraw - -00:38:53.520 --> 00:38:55.920 -the sketch the sketching stuff has - -00:38:55.920 --> 00:38:58.480 -has has broken things here like I said - -00:38:58.480 --> 00:39:00.240 -the two aren't separated once I run them - -00:39:00.240 --> 00:39:01.599 -in the same instance they're not - -00:39:01.599 --> 00:39:03.520 -predictable - -00:39:03.520 --> 00:39:05.359 -okay so let me elaborate here when he - -00:39:05.359 --> 00:39:07.040 -says the sketching stuff - -00:39:07.040 --> 00:39:10.560 -the current focus of our work is to - -00:39:10.560 --> 00:39:13.520 -turn all of this map stuff we've got - -00:39:13.520 --> 00:39:14.320 -into - -00:39:14.320 --> 00:39:17.920 -a basically a wysiwyg map editor - -00:39:17.920 --> 00:39:20.880 -where we can get into the tiles and - -00:39:20.880 --> 00:39:22.160 -we'll be able to - -00:39:22.160 --> 00:39:24.480 +00:39:22.330 --> 00:39:24.160 select the tile and basically rubber -00:39:24.480 --> 00:39:26.560 -stamp it into a map - -00:39:26.560 --> 00:39:29.680 -graphically and then save the map file - -00:39:29.680 --> 00:39:30.000 -out - -00:39:30.000 --> 00:39:33.280 -and load it back in later so that - -00:39:33.280 --> 00:39:36.720 -we're able to you know just pound out - -00:39:36.720 --> 00:39:38.480 -these maps real fast - -00:39:38.480 --> 00:39:42.000 -using a graphical editor rather than - -00:39:42.000 --> 00:39:43.200 -having to hand code - -00:39:43.200 --> 00:39:45.440 -every symbol and every square of the - -00:39:45.440 --> 00:39:48.000 -tables - -00:39:48.000 --> 00:39:52.960 -so the process of doing that - -00:39:52.960 --> 00:39:54.800 -things are a mess we've got covers off - -00:39:54.800 --> 00:39:56.720 -there's wires hanging out - -00:39:56.720 --> 00:39:58.720 -different stuff works on different - -00:39:58.720 --> 00:40:03.119 -days - -00:40:03.119 --> 00:40:05.200 -well I will say in our defense this is - -00:40:05.200 --> 00:40:07.119 -exactly why we staged a complicated - -00:40:07.119 --> 00:40:07.520 -thing - -00:40:07.520 --> 00:40:09.680 -and probably we should have just gone - -00:40:09.680 --> 00:40:11.119 -with that instead of - -00:40:11.119 --> 00:40:14.160 -trying to give you the experience - -00:40:14.160 --> 00:40:17.760 -of of of what it's like to use Emacs - -00:40:17.760 --> 00:40:19.200 -to do this which is - -00:40:19.200 --> 00:40:21.359 -which is sort of the last minute thought - -00:40:21.359 --> 00:40:23.280 -there and my apologies for that - -00:40:23.280 --> 00:40:25.119 -if that's made it harder to follow the - -00:40:25.119 --> 00:40:27.200 -thread let's check back now for - -00:40:27.200 --> 00:40:28.240 -questions - -00:40:28.240 --> 00:40:30.000 -and see if anybody wants to redirect at - -00:40:30.000 --> 00:40:36.640 -all - -00:40:36.640 --> 00:40:39.599 -so yep this so what you're looking at - -00:40:39.599 --> 00:40:40.800 -all uses prog - -00:40:40.800 --> 00:40:44.880 -pragmatic SVG - -00:40:44.880 --> 00:40:47.760 -SVG generation for question number - -00:40:47.760 --> 00:40:49.119 -four there have you played with - -00:40:49.119 --> 00:40:52.000 -generating svgs pragmatically in Emacs - -00:40:52.000 --> 00:40:55.119 -that is what the maps are doing in - -00:40:55.119 --> 00:40:55.680 -terms - -00:40:55.680 --> 00:40:58.480 -of we should have been maybe more - -00:40:58.480 --> 00:41:00.400 -explicit about that we started hand - -00:41:00.400 --> 00:41:01.680 -coding things and - -00:41:01.680 --> 00:41:05.119 -once we got the idea of what the code - -00:41:05.119 --> 00:41:06.400 -was going to look like - -00:41:06.400 --> 00:41:09.359 -we switched to doing it programmatically - -00:41:09.359 --> 00:41:10.000 -so - -00:41:10.000 --> 00:41:12.880 -we were going to open up maybe now if - -00:41:12.880 --> 00:41:14.640 -we've got time we can get into the tile - -00:41:14.640 --> 00:41:15.839 -set real quick - -00:41:15.839 --> 00:41:18.640 -sure we definitely didn't do any of the - -00:41:18.640 --> 00:41:20.560 -pathing slides and so now we've skipped - -00:41:20.560 --> 00:41:23.040 -over some stuff we were going to present - -00:41:23.040 --> 00:41:25.040 -yeah that's right we skipped a whole - -00:41:25.040 --> 00:41:26.880 -bunch of slides and I can certainly - -00:41:26.880 --> 00:41:28.160 -go back to them they're open here - -00:41:28.160 --> 00:41:31.040 -obviously - -00:41:31.040 --> 00:41:33.599 -right I was just showing off the - -00:41:33.599 --> 00:41:34.480 -sketching - -00:41:34.480 --> 00:41:36.880 -tool briefly in that context but I - -00:41:36.880 --> 00:41:38.000 -think you're right let's - -00:41:38.000 --> 00:41:40.000 -we can jump over to the actually I - -00:41:40.000 --> 00:41:41.280 -should finish with this now having - -00:41:41.280 --> 00:41:42.000 -teased it - -00:41:42.000 --> 00:41:45.119 -so let's do the same thing here ctrl h m - -00:41:45.119 --> 00:41:47.119 -and you'll see in this case there are - -00:41:47.119 --> 00:41:48.560 -very few keyboard - -00:41:48.560 --> 00:41:52.160 -key bindings that are set up even - -00:41:52.160 --> 00:41:55.359 -this shift delete has a tera - -00:41:55.359 --> 00:41:59.280 -or shift with - -00:41:59.280 --> 00:42:02.560 -yeah control delete it would seem to be - -00:42:02.560 --> 00:42:05.680 -so that has couple obvious bugs with it - -00:42:05.680 --> 00:42:07.119 -right didn't pick it didn't pick up - -00:42:07.119 --> 00:42:09.280 -those control points until I reused them - -00:42:09.280 --> 00:42:11.280 -not clearing that stack - -00:42:11.280 --> 00:42:13.760 -and also should probably think about - -00:42:13.760 --> 00:42:14.480 -whether - -00:42:14.480 --> 00:42:16.720 -the origin should return and hey marking - -00:42:16.720 --> 00:42:18.400 -that origin would be nice - -00:42:18.400 --> 00:42:19.839 -so there's a tremendous amount to do - -00:42:19.839 --> 00:42:21.680 -here this is just - -00:42:21.680 --> 00:42:24.400 -showing that it is possible to use - -00:42:24.400 --> 00:42:26.079 -essentially like a touch input - -00:42:26.079 --> 00:42:31.680 -to - -00:42:31.680 --> 00:42:35.119 -yeah and then also we can switch over to - -00:42:35.119 --> 00:42:35.760 -our place - -00:42:35.760 --> 00:42:39.040 -tool and - -00:42:39.040 --> 00:42:43.040 -hopefully we can get a nice big menu - -00:42:43.040 --> 00:42:45.040 -of all the tiles that Erik prepared for - -00:42:45.040 --> 00:42:49.440 -the game maps - -00:42:49.440 --> 00:42:51.680 -that was probably a terrible choice - -00:42:51.680 --> 00:42:53.119 -but there you have just a bit of - -00:42:53.119 --> 00:42:56.800 -corridor right - -00:42:56.800 --> 00:43:00.480 -that looks - -00:43:00.480 --> 00:43:04.560 -and even the click yep and this this - -00:43:04.560 --> 00:43:06.160 -glitch action here is the last thing I - -00:43:06.160 --> 00:43:07.280 -was working on before I dropped - -00:43:07.280 --> 00:43:08.079 -everything to - -00:43:08.079 --> 00:43:10.079 -to build the decks that we will soon - -00:43:10.079 --> 00:43:14.240 -share for this conference - -00:43:14.240 --> 00:43:19.680 -so okay back to the tile sets - -00:43:19.680 --> 00:43:22.160 -right so the way we approached drawing - -00:43:22.160 --> 00:43:23.440 -it programmatically - -00:43:23.440 --> 00:43:25.200 -is we broke our code up into little - -00:43:25.200 --> 00:43:27.280 -snippets we called tiles - -00:43:27.280 --> 00:43:29.280 -corman's going to open up the tile - -00:43:29.280 --> 00:43:32.160 -set here basically each tile has a name - -00:43:32.160 --> 00:43:35.280 -and then with that name we place data - -00:43:35.280 --> 00:43:37.920 -into different layers of the image - -00:43:37.920 --> 00:43:40.640 -some of the layers are just SVG paths - -00:43:40.640 --> 00:43:41.280 -and - -00:43:41.280 --> 00:43:44.880 -the data is just SVG commands - -00:43:44.880 --> 00:43:47.920 -like we saw in that handwritten code and - -00:43:47.920 --> 00:43:50.960 -some of it is compositions of other - -00:43:50.960 --> 00:43:54.160 -tiles so a tile can be made up of other - -00:43:54.160 --> 00:43:56.160 -tiles - -00:43:56.160 --> 00:43:58.000 -furthermore some of these tiles have - -00:43:58.000 --> 00:43:59.599 -conditional code in it - -00:43:59.599 --> 00:44:02.319 -where like some of this stuff is talking - -00:44:02.319 --> 00:44:02.720 -about - -00:44:02.720 --> 00:44:06.560 -elf and bang elf so the map is going to - -00:44:06.560 --> 00:44:08.079 -be drawn differently depending - -00:44:08.079 --> 00:44:09.440 -on whether or not there's elves in the - -00:44:09.440 --> 00:44:11.200 -party - -00:44:11.200 --> 00:44:16.880 -so and that's the demo they broke - -00:44:16.880 --> 00:44:18.240 -the engine has to make all those - -00:44:18.240 --> 00:44:20.000 -decisions - -00:44:20.000 --> 00:44:21.599 -and that's what we're calling predicated - -00:44:21.599 --> 00:44:23.280 -drawing oh there's a - -00:44:23.280 --> 00:44:25.200 -special room here do you have any elves - -00:44:25.200 --> 00:44:26.480 -you do so I draw - -00:44:26.480 --> 00:44:32.880 -there is elf's way - -00:44:32.880 --> 00:44:35.839 -yeah so we built up the set of tiles and - -00:44:35.839 --> 00:44:36.319 -then - -00:44:36.319 --> 00:44:39.920 -we basically made map files which - -00:44:39.920 --> 00:44:43.760 -take our map and break it up into xy - -00:44:43.760 --> 00:44:47.839 -grids and then we drop these tiles into - -00:44:47.839 --> 00:44:50.240 -positions on the map so we can use the - -00:44:50.240 --> 00:44:52.000 -same tile square after square after - -00:44:52.000 --> 00:44:52.480 -square - -00:44:52.480 --> 00:44:54.720 -when there's a corridor north south it's - -00:44:54.720 --> 00:44:55.680 -the same tile - -00:44:55.680 --> 00:44:59.119 -over and over again and that makes it - -00:44:59.119 --> 00:45:02.400 -easy to reuse the code and then also - -00:45:02.400 --> 00:45:05.920 -when - -00:45:05.920 --> 00:45:10.560 -when we go to present the - -00:45:10.560 --> 00:45:13.520 -what am I trying to say the the drawing - -00:45:13.520 --> 00:45:15.839 -in in fog of war mode as we move down - -00:45:15.839 --> 00:45:18.000 -the corridor we can just add the - -00:45:18.000 --> 00:45:20.640 -necessary code one bit at a time to the - -00:45:20.640 --> 00:45:23.440 -visible image so that what we're - -00:45:23.440 --> 00:45:24.960 -displaying doesn't contain - -00:45:24.960 --> 00:45:27.359 -any data except what the party has - -00:45:27.359 --> 00:45:30.240 -already discovered - -00:45:30.240 --> 00:45:32.319 -and thus we have kind of spoiler rich - -00:45:32.319 --> 00:45:34.400 -documents sitting on the gm - -00:45:34.400 --> 00:45:37.359 -server and then less you know and - -00:45:37.359 --> 00:45:38.400 -spoiler-free - -00:45:38.400 --> 00:45:41.440 -data that flows down to the org mode - -00:45:41.440 --> 00:45:44.000 -files on the player system and the only - -00:45:44.000 --> 00:45:47.040 -real challenge is making sure that the - -00:45:47.040 --> 00:45:50.160 -the nothing that the game does can mess - -00:45:50.160 --> 00:45:50.960 -with the - -00:45:50.960 --> 00:45:54.480 -the the users the the players data file - -00:45:54.480 --> 00:45:55.280 -in case they - -00:45:55.280 --> 00:45:57.680 -might have their own notes and things in - -00:45:57.680 --> 00:46:00.160 -it that that would be the one - -00:46:00.160 --> 00:46:06.160 -you know number one thing to avoid - -00:46:06.160 --> 00:46:08.000 -another thing we can talk about here is - -00:46:08.000 --> 00:46:09.680 -that there are layers - -00:46:09.680 --> 00:46:11.839 -you can see this table at the bottom has - -00:46:11.839 --> 00:46:13.520 -tile and overlay - -00:46:13.520 --> 00:46:15.119 -the overlay column is just going to - -00:46:15.119 --> 00:46:17.040 -contain some actual SVG - -00:46:17.040 --> 00:46:20.800 -xml style tags so that's where we can - -00:46:20.800 --> 00:46:21.599 -add whatever - -00:46:21.599 --> 00:46:25.359 -text elements or other SVG like raw SVG - -00:46:25.359 --> 00:46:26.720 -tags we want - -00:46:26.720 --> 00:46:28.880 -whereas a lot of the other layers are - -00:46:28.880 --> 00:46:30.560 -going to be like path layers we've got - -00:46:30.560 --> 00:46:32.960 -water layers and beach layers - -00:46:32.960 --> 00:46:35.359 -and our plan was to have a style sheet - -00:46:35.359 --> 00:46:37.680 -that defines how each of those layers - -00:46:37.680 --> 00:46:38.720 -are represented - -00:46:38.720 --> 00:46:40.720 -so like when the water gets drawn blue - -00:46:40.720 --> 00:46:42.160 -and it's got arrows on it - -00:46:42.160 --> 00:46:45.520 -giving it direction all of that - -00:46:45.520 --> 00:46:47.680 -can be customized with a style sheet to - -00:46:47.680 --> 00:46:49.200 -change the water to be - -00:46:49.200 --> 00:46:51.200 -whatever you want and like we have - -00:46:51.200 --> 00:46:52.960 -beaches as yellow but maybe you like - -00:46:52.960 --> 00:46:54.319 -beaches as red or - -00:46:54.319 --> 00:46:57.359 -you know whatever so we also built - -00:46:57.359 --> 00:47:01.200 -some test programs - -00:47:01.200 --> 00:47:04.079 -and various of the I'm not not sure what - -00:47:04.079 --> 00:47:05.359 -kind of shape we're going to find these in - -00:47:05.359 --> 00:47:07.040 -but we can try running them - -00:47:07.040 --> 00:47:10.640 -here for example is just a - -00:47:10.640 --> 00:47:12.960 -very basic all of using a saint using - -00:47:12.960 --> 00:47:15.119 -the same file to define - -00:47:15.119 --> 00:47:18.560 -the tiles and and then - -00:47:18.560 --> 00:47:24.880 -the layout so to speak oh look at that - -00:47:24.880 --> 00:47:26.640 -there's the layout okay so that - -00:47:26.640 --> 00:47:28.960 -actually looks fine tile - -00:47:28.960 --> 00:47:30.960 -and it's pat so this is defining a tile - -00:47:30.960 --> 00:47:32.400 -named seas - -00:47:32.400 --> 00:47:35.440 -and it's going to have a list of tiles - -00:47:35.440 --> 00:47:38.720 -defined above and you'll notice also - -00:47:38.720 --> 00:47:41.839 -that we can just sort of freely define - -00:47:41.839 --> 00:47:44.559 -and redefine and it sort of figures out - -00:47:44.559 --> 00:47:46.160 -oh this must still be part of the b - -00:47:46.160 --> 00:47:50.839 -row we could also have done - -00:47:50.839 --> 00:48:00.000 -this - -00:48:00.000 --> 00:48:02.160 -okay so this would this would work as - -00:48:02.160 --> 00:48:08.480 -would this - -00:48:08.480 --> 00:48:11.599 -one of early on in development when - -00:48:11.599 --> 00:48:12.720 -we were talking about - -00:48:12.720 --> 00:48:14.400 -getting data in and out of these org - -00:48:14.400 --> 00:48:15.839 -tables it - -00:48:15.839 --> 00:48:19.440 -was kind of a priority to us to - -00:48:19.440 --> 00:48:22.319 -leave the way the data is organized open - -00:48:22.319 --> 00:48:23.040 -to - -00:48:23.040 --> 00:48:26.960 -the users and to the Dungeon masters so - -00:48:26.960 --> 00:48:30.720 -while we set our tile set apart from our - -00:48:30.720 --> 00:48:32.559 -map sets - -00:48:32.559 --> 00:48:35.440 -this clearly shows that you can cram a - -00:48:35.440 --> 00:48:38.319 -tile set and a map into a single file - -00:48:38.319 --> 00:48:41.040 -so in situations like the surface where - -00:48:41.040 --> 00:48:43.040 -we're using different tiles from other - -00:48:43.040 --> 00:48:43.760 -maps - -00:48:43.760 --> 00:48:46.559 -maybe it makes sense to move you know - -00:48:46.559 --> 00:48:48.079 -those tiles just into the file - -00:48:48.079 --> 00:48:50.559 -with your map or like it's hard for us - -00:48:50.559 --> 00:48:52.400 -to predict how other people are going to - -00:48:52.400 --> 00:48:54.319 -want to use this when they design their - -00:48:54.319 --> 00:48:55.119 -games - -00:48:55.119 --> 00:48:57.359 -so we wanted to leave it as versatile as - -00:48:57.359 --> 00:48:58.160 -possible - -00:48:58.160 --> 00:49:01.599 -about how you can use it where it - -00:49:01.599 --> 00:49:02.640 -matters right - -00:49:02.640 --> 00:49:04.319 -not support every feature in the world I - -00:49:04.319 --> 00:49:05.920 -can't count the number of times I said - -00:49:05.920 --> 00:49:07.280 -Erik Erik Erik - -00:49:07.280 --> 00:49:09.200 -hey if we do it like this people will be - -00:49:09.200 --> 00:49:10.800 -able and he just like - -00:49:10.800 --> 00:49:14.000 -does it have to do that do we do we does - -00:49:14.000 --> 00:49:14.480 -it like - -00:49:14.480 --> 00:49:17.920 -do we need it right away - -00:49:17.920 --> 00:49:19.599 -do you have to really rewrite everything - -00:49:19.599 --> 00:49:21.040 -so it can all do that - -00:49:21.040 --> 00:49:24.160 -and a lot of those - -00:49:24.160 --> 00:49:26.880 -a lot of those conversations too but the - -00:49:26.880 --> 00:49:28.240 -the key flexibilities - -00:49:28.240 --> 00:49:31.200 -are really there people might want to - -00:49:31.200 --> 00:49:32.559 -use a lot of different files they might - -00:49:32.559 --> 00:49:34.160 -want to lay the tables out however they - -00:49:34.160 --> 00:49:35.760 -want they have to be able to say hey - -00:49:35.760 --> 00:49:37.440 -this is a table that has - -00:49:37.440 --> 00:49:39.440 -data that's controlled by the game and - -00:49:39.440 --> 00:49:40.720 -everything else in the file - -00:49:40.720 --> 00:49:44.079 -is not the game's problem - -00:49:44.079 --> 00:49:45.920 -on our table some of our tables started - -00:49:45.920 --> 00:49:47.440 -getting really wide so we started - -00:49:47.440 --> 00:49:48.960 -striping the tables - -00:49:48.960 --> 00:49:51.119 -where we'll repeat the same table over - -00:49:51.119 --> 00:49:52.640 -and over and over again to - -00:49:52.640 --> 00:49:56.400 -get all of the columns in there without - -00:49:56.400 --> 00:49:59.119 -making it you know a million miles wide - -00:49:59.119 --> 00:49:59.599 -yeah - -00:49:59.599 --> 00:50:01.040 -do you want to should I go ahead and - -00:50:01.040 --> 00:50:02.640 -pull open like a level here - -00:50:02.640 --> 00:50:06.079 -do you think sure just to have shown it - -00:50:06.079 --> 00:50:08.319 -the aisle set's a great example of - -00:50:08.319 --> 00:50:09.680 -striped tables if you - -00:50:09.680 --> 00:50:11.119 -look down like in the level change - -00:50:11.119 --> 00:50:18.800 -feature oh sure - -00:50:18.800 --> 00:50:20.240 -sorry I'm not quite sitting well to my - -00:50:20.240 --> 00:50:22.400 -keyboard here I can just readjust things - -00:50:22.400 --> 00:50:30.079 -real quick - -00:50:30.079 --> 00:50:33.280 -so what you know you can see here - -00:50:33.280 --> 00:50:35.200 -like some of these tables got real wide - -00:50:35.200 --> 00:50:36.800 -when we're stuffing SVG - -00:50:36.800 --> 00:50:40.559 -tags into them and what we +00:39:24.160 --> 00:39:30.510 +stamp it into a map graphically, and then save the map file -00:50:40.559 --> 00:50:44.160 -oh maybe it's not in these +00:39:30.510 --> 00:39:36.470 +out and load it back in later, so that we're able to just -00:50:44.160 --> 00:50:50.079 -I thought it was +00:39:36.470 --> 00:39:40.160 +pound out these maps real fast. -00:50:50.079 --> 00:50:52.960 -special probably yeah no there it is +00:39:40.160 --> 00:39:44.480 +Using a graphical editor rather than having to hand code -00:50:52.960 --> 00:50:54.240 -yeah +00:39:44.480 --> 00:39:48.160 +every symbol and every square of the tables. -00:50:54.240 --> 00:50:56.000 -it was in level change it does the table +00:39:48.160 --> 00:39:51.160 +So the process of doing that. -00:50:56.000 --> 00:50:58.720 -can you repeat okay great +00:39:51.160 --> 00:39:56.190 +I hate them on things are a mess we've got covers off those -00:50:58.720 --> 00:51:00.640 -up and down so fast I didn't realize so +00:39:56.190 --> 00:40:03.160 +wires hanging out different stuff works on different days. -00:51:00.640 --> 00:51:01.920 -this first table +00:40:03.160 --> 00:40:06.860 +Well, I will say in our defense this is exactly why we -00:51:01.920 --> 00:51:05.680 -we've got path and what is that stairs +00:40:06.860 --> 00:40:10.880 +staged a complicated thing, and probably we should have -00:51:05.680 --> 00:51:08.800 -so the stairs level is one that draws in +00:40:10.880 --> 00:40:14.510 +just gone with that instead of trying to give you the -00:51:08.800 --> 00:51:10.079 -like a pink color +00:40:14.510 --> 00:40:18.460 +experience of, of what it's like to use Emacs to do this -00:51:10.079 --> 00:51:11.920 -to highlight the places where you can +00:40:18.460 --> 00:40:21.160 +which is sort of the last -00:51:11.920 --> 00:51:13.440 -change level +00:40:21.160 --> 00:40:26.450 +thought there and my apologies for that if that's made it -00:51:13.440 --> 00:51:15.200 -and then if we scroll down to the second +00:40:26.450 --> 00:40:31.650 +harder to follow the thread. Let's check back now for -00:51:15.200 --> 00:51:17.200 -half of this section +00:40:31.650 --> 00:40:37.160 +questions and see if anybody wants to redirect at all. -00:51:17.200 --> 00:51:19.359 -the second table is going to have all of +00:40:37.160 --> 00:40:41.438 +Oh yep, this. So what you're looking at all uses -00:51:19.359 --> 00:51:20.960 -these same tiles in it but +00:40:41.439 --> 00:40:46.860 +progrmamatic SVG generation for question number four there, -00:51:20.960 --> 00:51:22.800 -instead of path and stairs we're going +00:40:46.860 --> 00:40:52.160 +have you played with generating SVGs programmatically in Emacs. -00:51:22.800 --> 00:51:24.720 -to have other +00:40:52.160 --> 00:40:58.160 +That is what the maps are doing in terms of -00:51:24.720 --> 00:51:27.920 -columns can we +00:40:58.160 --> 00:41:01.860 +being more explicit about that we started hand coding -00:51:27.920 --> 00:51:31.680 -see the next table +00:41:01.860 --> 00:41:05.650 +things and once we got the, the idea of what the code was -00:51:31.680 --> 00:51:33.839 -there we go so the same tiles only here +00:41:05.650 --> 00:41:10.160 +going to look like we switched to doing it programmatically. -00:51:33.839 --> 00:51:35.359 -we've got overlay +00:41:10.160 --> 00:41:13.330 +So, we were going to open up maybe now we've got time we -00:51:35.359 --> 00:51:38.720 -documentation and behavior and I guess +00:41:13.330 --> 00:41:16.910 +can get into the tileset real quick. Sure, we definitely -00:51:38.720 --> 00:51:40.319 -we haven't talked about this at all the +00:41:16.910 --> 00:41:19.820 +didn't do any of the pathing slides and so now we've -00:51:40.319 --> 00:51:41.839 -behavior column +00:41:19.820 --> 00:41:23.160 +skipped over some stuff we were going to present. -00:51:41.839 --> 00:51:44.880 -was our concept of a way that we could +00:41:23.160 --> 00:41:27.030 +Yeah, that's right we skipped a whole bunch of slides and I -00:51:44.880 --> 00:51:47.520 -attach +00:41:27.030 --> 00:41:31.160 +can certainly go back to them they're open here obviously. -00:51:47.520 --> 00:51:49.680 -functions basically to these different +00:41:31.160 --> 00:41:34.110 +I'm right I was just showing off the sketching tool, -00:51:49.680 --> 00:51:51.359 -areas of the map +00:41:34.110 --> 00:41:37.530 +briefly in that context but I think you're right, let's, we -00:51:51.359 --> 00:51:54.720 -because sometimes when you enter an area +00:41:37.530 --> 00:41:40.800 +can jump over to the actually I should finish with this now -00:51:54.720 --> 00:51:57.760 -we want it to do something like +00:41:40.800 --> 00:41:42.160 +having teased it. -00:51:57.760 --> 00:51:59.920 -when you enter a stairs down maybe we +00:41:42.160 --> 00:41:46.970 +So let's do the same thing here Ctrl H M, and you'll see in -00:51:59.920 --> 00:52:02.319 -want it to change to the next level +00:41:46.970 --> 00:41:52.160 +this case there are very few key bindings that are set up. -00:52:02.319 --> 00:52:04.559 -and draw the stairs up behind you and +00:41:52.160 --> 00:41:57.320 +This shift delete has a terror or shift with a control -00:52:04.559 --> 00:52:06.160 -draw you where you are +00:41:57.320 --> 00:42:01.920 +delete, it would seem to be. So that has a couple obvious -00:52:06.160 --> 00:52:09.200 -on the next level so +00:42:01.920 --> 00:42:06.590 +bugs with it right didn't pick it didn't pick up those -00:52:09.200 --> 00:52:11.040 -these are like hooks where we could +00:42:06.590 --> 00:42:12.160 +control points until I reuse them not clearing that stack. -00:52:11.040 --> 00:52:12.240 -attach functions +00:42:12.160 --> 00:42:16.720 +I think we can also should probably think about whether the -00:52:12.240 --> 00:52:16.400 -or you know macros or whatever to +00:42:16.720 --> 00:42:21.060 +origin should return and hey marking that origin would be -00:52:16.400 --> 00:52:18.480 -make the map have these behaviors as we +00:42:21.060 --> 00:42:25.370 +nice. So there's a tremendous amount to do here this is -00:52:18.480 --> 00:52:23.440 -get further towards automation +00:42:25.370 --> 00:42:30.090 +just showing that it is possible to use, essentially like a -00:52:23.440 --> 00:52:26.559 -cool so that's that +00:42:30.090 --> 00:42:31.160 +touch input to, -00:52:26.559 --> 00:52:30.839 -should be pretty close to our time +00:42:31.160 --> 00:42:40.730 +yeah, and then also we can switch over to our place tool, -00:52:30.839 --> 00:52:33.920 -questions or just say goodbye +00:42:40.730 --> 00:42:46.830 +and hopefully we can get a nice big menu of all the tiles that -00:52:33.920 --> 00:52:36.880 -yeah so there's the I'm sorry we +00:42:46.830 --> 00:42:50.160 +Erik prepared for the game maps. -00:52:36.880 --> 00:52:38.559 -couldn't show it earlier there is the +00:42:50.160 --> 00:42:55.160 +That was probably a terrible choice but there you have just -00:52:38.559 --> 00:52:40.000 -battle board +00:42:55.160 --> 00:42:57.160 +a bit of corridor right. -00:52:40.000 --> 00:52:44.240 -and so this is used just to keep +00:42:57.160 --> 00:43:01.160 +That looks. -00:52:44.240 --> 00:52:48.079 -track of hit points so with this example +00:43:01.160 --> 00:43:03.160 +And even the click. -00:52:48.079 --> 00:52:49.319 -battle board +00:43:03.160 --> 00:43:06.870 +Yep, and this click action here is the last thing I -00:52:49.319 --> 00:52:51.680 -dmbattleboard.el there's there's a +00:43:06.870 --> 00:43:10.510 +was working on before I dropped everything to build the -00:52:51.680 --> 00:52:53.760 -complete example of not only +00:43:10.510 --> 00:43:14.160 +decks that we will soon share for this conference. -00:52:53.760 --> 00:52:57.200 -in a single file repub filling out the +00:43:14.160 --> 00:43:20.160 +So okay, back to the tile sets. -00:52:57.200 --> 00:53:00.480 -the cells and the tiles but then coming +00:43:20.160 --> 00:43:24.130 +So the way we approached drawing it programmatically is we -00:53:00.480 --> 00:53:00.960 -in +00:43:24.130 --> 00:43:28.160 +broke our code up into little snippets we called tiles. -00:53:00.960 --> 00:53:04.640 -and keeping the org mode file in sync +00:43:28.160 --> 00:43:31.240 +And so this is where I was going to open up the tiles out -00:53:04.640 --> 00:53:05.280 -with +00:43:31.240 --> 00:43:34.610 +here, basically each tile has a name, and then with that -00:53:05.280 --> 00:53:09.040 -with clicks so and I can press the star +00:43:34.610 --> 00:43:38.160 +name we place data into different layers of the image. -00:53:09.040 --> 00:53:12.319 -key and set my damage to -1 and +00:43:38.160 --> 00:43:43.290 +Some of the layers are just SVG paths, and the data is just -00:53:12.319 --> 00:53:15.359 -take the damage back off I just haven't +00:43:43.290 --> 00:43:48.430 +SVG commands, like we saw in that handwritten code, and -00:53:15.359 --> 00:53:16.400 -spent a lot of time +00:43:48.430 --> 00:43:53.560 +some of it is compositions of other tiles, so a tile can be -00:53:16.400 --> 00:53:18.079 -building up fancy bindings for this +00:43:53.560 --> 00:43:56.160 +made up of other tiles. -00:53:18.079 --> 00:53:20.800 -you'll also find that the crew +00:43:56.160 --> 00:44:00.270 +Furthermore, some of these tiles have conditional code in -00:53:20.800 --> 00:53:23.119 -probably find how I figure out what was +00:44:00.270 --> 00:44:04.460 +it, where like some of this stuff is talking about elf and -00:53:23.119 --> 00:53:23.839 -clicked on +00:44:04.460 --> 00:44:05.160 +bang elf. -00:53:23.839 --> 00:53:26.880 -in the code hard but if I just assign +00:44:05.160 --> 00:44:09.540 +So the map is going to be drawn differently depending on -00:53:26.880 --> 00:53:28.000 -something recognizable +00:44:09.540 --> 00:44:13.160 +whether or not there's elves in the party. -00:53:28.000 --> 00:53:33.520 -for damage and then come into +00:44:13.160 --> 00:44:17.160 +So, and that's the demo they broke. -00:53:33.520 --> 00:53:35.440 -it will now have opened the org mode +00:44:17.160 --> 00:44:20.160 +So the engine has to make all those decisions. -00:53:35.440 --> 00:53:37.040 -file behind the scenes because it's +00:44:20.160 --> 00:44:22.887 +And that's what we're calling predicated drawing. Oh, there's -00:53:37.040 --> 00:53:41.280 -changing it +00:44:22.888 --> 00:44:26.810 +a special room here. Do you have any elves? You do. So I -00:53:41.280 --> 00:53:44.640 -and we can then look at that file a +00:44:26.810 --> 00:44:33.160 +draw it the "there is elves" way. -00:53:44.640 --> 00:53:47.599 -little bit and hopefully +00:44:33.160 --> 00:44:37.440 +Yeah, so we built up the set of tiles, and then we -00:53:47.599 --> 00:53:51.040 -that is un +00:44:37.440 --> 00:44:42.450 +basically made map files, which take our map and break it -00:53:51.040 --> 00:53:53.440 -large enough you can kind of see +00:44:42.450 --> 00:44:46.840 +up into XY grids, and then we drop these tiles into -00:53:53.440 --> 00:53:55.520 -there's our 17 damage landed +00:44:46.840 --> 00:44:49.160 +positions on the map. -00:53:55.520 --> 00:53:59.119 -in armor the logic that sits behind that +00:44:49.160 --> 00:44:52.060 +So we can use the same tile square after square after -00:53:59.119 --> 00:54:01.200 -to figure out the part of the screen +00:44:52.060 --> 00:44:55.470 +square. When there's a corridor north-south, it's the same -00:54:01.200 --> 00:54:08.880 -is not necessarily our finest work +00:44:55.470 --> 00:44:59.980 +tile over and over again. And that makes it easy to reuse -00:54:08.880 --> 00:54:11.839 -but it but it does work and it's +00:44:59.980 --> 00:45:01.160 +the code. -00:54:11.839 --> 00:54:12.319 -one for +00:45:01.160 --> 00:45:12.370 +And also, when we go to present the -- what am I trying to -00:54:12.319 --> 00:54:14.000 -the stuff was used on the map a little +00:45:12.370 --> 00:45:16.180 +say -- the drawing in fog of war mode, as we move down the -00:54:14.000 --> 00:54:15.920 -bit too we didn't really need to show +00:45:16.180 --> 00:45:20.280 +corridor, we can just add the necessary code one bit at a -00:54:15.920 --> 00:54:17.520 -that in the demo but as you're scrolling +00:45:20.280 --> 00:45:24.160 +time to the visible image, so that what we're displaying -00:54:17.520 --> 00:54:19.680 -around there's like a highlighter +00:45:24.160 --> 00:45:28.160 +doesn't contain any data except what the party has already -00:54:19.680 --> 00:54:22.960 -that that you know we were drawing on +00:45:28.160 --> 00:45:30.160 +discovered. -00:54:22.960 --> 00:54:24.720 -shaft to show you which square you've +00:45:30.160 --> 00:45:34.720 +And thus we have kind of spoiler-rich documents sitting on -00:54:24.720 --> 00:54:26.160 -got selected +00:45:34.720 --> 00:45:39.120 +the GM server, and then less -- and spoiler-free data that -00:54:26.160 --> 00:54:28.800 -because we were having trouble with +00:45:39.120 --> 00:45:43.160 +flows down to the org mode files on the player system. -00:54:28.800 --> 00:54:29.839 -that code +00:45:43.160 --> 00:45:47.660 +And the only real challenge is making sure that nothing -00:54:29.839 --> 00:54:31.280 -initially and we were sometimes +00:45:47.660 --> 00:45:52.230 +that the game does can mess with the users -- the players' -00:54:31.280 --> 00:54:36.839 -revealing the wrong +00:45:52.230 --> 00:45:56.610 +data file, in case they might have their own notes and -00:54:36.839 --> 00:54:38.720 -okay +00:45:56.610 --> 00:46:03.800 +things in it. That would be the one, you know, number one -00:54:38.720 --> 00:54:40.480 -and I don't know how we're set for time +00:46:03.800 --> 00:46:06.160 +thing to avoid. -00:54:40.480 --> 00:54:42.160 -but I just saw a message +00:46:06.160 --> 00:46:09.200 +Another thing we can talk about here is that there are -00:54:42.160 --> 00:54:44.400 -from trixie that she could jump on if +00:46:09.200 --> 00:46:12.350 +layers. You can see this table at the bottom has tile and -00:54:44.400 --> 00:54:46.480 -we want her oh that would be amazing +00:46:12.350 --> 00:46:16.860 +overlay. The overlay column is just going to contain some -00:54:46.480 --> 00:54:47.920 -yeah go ahead and invite her in I'll +00:46:16.860 --> 00:46:19.160 +actual SVG XML style tags. -00:54:47.920 --> 00:54:51.680 -just cut to the scene as soon as she's +00:46:19.160 --> 00:46:23.100 +So that's where we can add whatever text elements or other -00:54:51.680 --> 00:54:56.160 -I in yeah so we're reaching the ask +00:46:23.100 --> 00:46:27.120 +SVG, like raw SVG tags we want. Whereas a lot of the other -00:54:56.160 --> 00:54:56.799 -me any +00:46:27.120 --> 00:46:30.980 +layers are going to be like path layers, we've got water -00:54:56.799 --> 00:54:58.960 -anything portion of the program here +00:46:30.980 --> 00:46:33.160 +layers and beach layers. -00:54:58.960 --> 00:55:01.200 -with what with what time we have left +00:46:33.160 --> 00:46:36.370 +And our plan was to have a style sheet that defines how -00:55:01.200 --> 00:55:02.559 -for your questions +00:46:36.370 --> 00:46:39.790 +each of those layers are represented. So like when the -00:55:02.559 --> 00:55:05.200 -please correct me if we're still like +00:46:39.790 --> 00:46:43.140 +water gets drawn blue and it's got arrows on it giving it -00:55:05.200 --> 00:55:06.160 -10 minutes +00:46:43.140 --> 00:46:47.140 +direction, all of that can be customized with a style sheet -00:55:06.160 --> 00:55:08.799 -you know if we're if we're more than +00:46:47.140 --> 00:46:50.160 +to change the water to be whatever you want. -00:55:08.799 --> 00:55:10.000 -like +00:46:50.160 --> 00:46:53.430 +And like we have beaches as yellow, but maybe you like -00:55:10.000 --> 00:55:12.640 -15 to 20 minutes from our time but I I +00:46:53.430 --> 00:46:56.160 +beaches as red or, you know, whatever. -00:55:12.640 --> 00:55:13.760 -suspect we've less weight +00:46:56.160 --> 00:47:03.570 +So we also built some test programs and various -- I'm not -00:55:13.760 --> 00:55:16.640 -left way less than that and out of +00:47:03.570 --> 00:47:05.900 +sure what kind of shape we're going to find these in, but -00:55:16.640 --> 00:55:17.440 -respect for +00:47:05.900 --> 00:47:07.160 +we can try running them. -00:55:17.440 --> 00:55:24.319 -all the other presenters +00:47:07.160 --> 00:47:13.950 +Here, for example, is just a very basic -- using the same -00:55:24.319 --> 00:55:28.720 -oh I don't want to close that actually +00:47:13.950 --> 00:47:21.160 +file to define the tiles and then the layout, so to speak. -00:55:28.720 --> 00:55:30.640 -I think I may have found an old version +00:47:21.160 --> 00:47:25.160 +Oh, look at that. -00:55:30.640 --> 00:55:32.839 -of my slides that could have some good +00:47:25.160 --> 00:47:29.160 +There's the layout. Okay, so that actually looks fine. Tile. -00:55:32.839 --> 00:55:35.200 -stuff +00:47:29.160 --> 00:47:33.430 +And it's path. So this is defining a tile named "seas" and -00:55:35.200 --> 00:55:36.799 -it's been an event for a couple of weeks +00:47:33.430 --> 00:47:37.160 +it's going to have a list of tiles defined above. -00:55:36.799 --> 00:55:38.799 -here I had a break in and +00:47:37.160 --> 00:47:41.120 +And you'll notice also that we can just sort of freely -00:55:38.799 --> 00:55:41.359 -my somebody got into our bank accounts +00:47:41.120 --> 00:47:44.750 +define and redefine and it sort of figures out, oh, this -00:55:41.359 --> 00:55:43.599 -and +00:47:44.750 --> 00:47:47.160 +must still be part of the B row. -00:55:43.599 --> 00:55:46.880 -nasty business just a lot going on over +00:47:47.160 --> 00:48:00.160 +We could also have done this. -00:55:46.880 --> 00:55:50.720 -over this whole year I think +00:48:00.160 --> 00:48:08.160 +Okay, so this would work as would this. -00:55:50.720 --> 00:55:53.040 -do we have more questions to shag or +00:48:08.160 --> 00:48:11.930 +>> Early on in development when we were talking about -00:55:53.040 --> 00:55:53.839 -where +00:48:11.930 --> 00:48:16.520 +getting data in and out of these org tables, it was kind of -00:55:53.839 --> 00:55:56.960 -sure so I think +00:48:16.520 --> 00:48:22.160 +a priority to us to leave the way the data is organized -00:55:56.960 --> 00:55:58.799 -there was at least one we deferred a +00:48:22.160 --> 00:48:25.160 +open to the users and to the dungeon masters. -00:55:58.799 --> 00:56:01.040 -little bit what the game +00:48:25.160 --> 00:48:30.860 +So while we set our tile set apart from our map sets, this -00:56:01.040 --> 00:56:05.040 -is +00:48:30.860 --> 00:48:36.430 +clearly shows that you can cram a tile set and a map into a -00:56:05.040 --> 00:56:06.799 -always eight characters that can be +00:48:36.430 --> 00:48:38.160 +single file. -00:56:06.799 --> 00:56:08.400 -divided right that's so always eight +00:48:38.160 --> 00:48:41.170 +So in situations like the surface where we're using -00:56:08.400 --> 00:56:10.000 -characters that can be divided between +00:48:41.170 --> 00:48:44.610 +different tiles from other maps, maybe it makes sense to -00:56:10.000 --> 00:56:12.160 -the party is the classic formula +00:48:44.610 --> 00:48:47.890 +move, you know, those tiles just into the file with your -00:56:12.160 --> 00:56:14.319 -it actually works pretty well for a +00:48:47.890 --> 00:48:49.160 +map. -00:56:14.319 --> 00:56:16.240 -conversational group remember that +00:48:49.160 --> 00:48:51.880 +But we also wanted to make sure, like, it's hard for us to -00:56:16.240 --> 00:56:17.760 -role-playing games are about talking to +00:48:51.880 --> 00:48:54.640 +predict how other people are going to want to use this when -00:56:17.760 --> 00:56:18.480 -each other +00:48:54.640 --> 00:48:56.160 +they design their games. -00:56:18.480 --> 00:56:20.000 -and being good at them is about taking +00:48:56.160 --> 00:49:00.780 +So we wanted to leave it as versatile as possible about how -00:56:20.000 --> 00:56:22.079 -excellent notes so +00:49:00.780 --> 00:49:02.160 +you can use it. -00:56:22.079 --> 00:56:23.200 -when you're sitting around with a group +00:49:02.160 --> 00:49:04.810 +>> Where it matters, right? Not support every feature in -00:56:23.200 --> 00:56:24.559 -of people and you're going to have to +00:49:04.810 --> 00:49:05.160 +the world. -00:56:24.559 --> 00:56:25.920 -wait for them while they dig through +00:49:05.160 --> 00:49:08.560 +I can't count the number of times I said, Erik, Erik, Erik, -00:56:25.920 --> 00:56:26.880 -their notes +00:49:08.560 --> 00:49:12.000 +hey, if we do it like this, people will be -- and he just, -00:56:26.880 --> 00:56:28.720 -and listen to all of the things they +00:49:12.000 --> 00:49:14.160 +like, does it have to do that? -00:56:28.720 --> 00:56:30.319 -find interesting to say +00:49:14.160 --> 00:49:19.090 +Like, do we need it right away? Do you have to really -00:56:30.319 --> 00:56:32.240 -and try to reach an imaginative place +00:49:19.090 --> 00:49:21.160 +rewrite everything so it can all do that? -00:56:32.240 --> 00:56:34.160 -that you can stay together +00:49:21.160 --> 00:49:26.160 +And a lot of those conversations, too. -00:56:34.160 --> 00:56:36.160 -while you're doing all that and working +00:49:26.160 --> 00:49:30.160 +But the key flexibilities are really there. -00:56:36.160 --> 00:56:38.319 -in dice and remembering the rules +00:49:30.160 --> 00:49:32.160 +People might want to use a lot of different files. -00:56:38.319 --> 00:56:40.880 -it's actually a complicated activity I +00:49:32.160 --> 00:49:34.160 +They might want to lay the tables out however they want. -00:56:40.880 --> 00:56:43.200 -liken it more to a bridge game +00:49:34.160 --> 00:49:37.590 +They have to be able to say, hey, this is a table that has -00:56:43.200 --> 00:56:46.240 -than to like +00:49:37.590 --> 00:49:40.950 +data that's controlled by the game, and everything else in -00:56:46.240 --> 00:56:48.960 -you know parcheesi or perhaps even like +00:49:40.950 --> 00:49:43.160 +the file is not the game's problem. -00:56:48.960 --> 00:56:51.359 -risk or access and allies or other games +00:49:43.160 --> 00:49:45.980 +>> And our table, some of our tables started getting really -00:56:51.359 --> 00:56:52.160 -that +00:49:45.980 --> 00:49:48.160 +wide, so we started striping the tables. -00:56:52.160 --> 00:56:54.319 -have have definitely the strategy to +00:49:48.160 --> 00:49:52.140 +We'll repeat the same table over and over and over again to -00:56:54.319 --> 00:56:56.160 -them but +00:49:52.140 --> 00:49:56.180 +get all of the columns in there without making it, you know, -00:56:56.160 --> 00:57:00.160 -I don't Erik your thoughts +00:49:56.180 --> 00:49:58.160 +a million miles wide. -00:57:00.160 --> 00:57:03.920 -yeah I mean I think that's fair +00:49:58.160 --> 00:49:59.160 +>> Yeah. -00:57:03.920 --> 00:57:06.640 -you know yes definitely the the +00:49:59.160 --> 00:50:02.450 +Do you want to -- should I go ahead and pull open, like, a -00:57:06.640 --> 00:57:08.160 -tradition is to always have eight +00:50:02.450 --> 00:50:04.160 +level here, do you think? -00:57:08.160 --> 00:57:09.440 -characters in the party +00:50:04.160 --> 00:50:05.160 +>> Sure. -00:57:09.440 --> 00:57:12.079 -and you know one of the great things +00:50:05.160 --> 00:50:06.160 +>> Just to have shown it. -00:57:12.079 --> 00:57:13.760 -about Dungeon is that everybody who +00:50:06.160 --> 00:50:08.750 +>> The file set's a great example of striped tables if you -00:57:13.760 --> 00:57:15.200 -writes their own Dungeon +00:50:08.750 --> 00:50:11.160 +look down, like, in the level change feature. -00:57:15.200 --> 00:57:18.000 -gets to write their own rules and is +00:50:11.160 --> 00:50:18.160 +>> Oh, sure. -00:57:18.000 --> 00:57:19.440 -free to change whatever +00:50:18.160 --> 00:50:21.160 +>> Sorry, I'm not quite sitting well to my keyboard here. -00:57:19.440 --> 00:57:21.760 -you want and that being said I've +00:50:21.160 --> 00:50:30.160 +I can just readjust things real quick. -00:57:21.760 --> 00:57:22.720 -certainly seen +00:50:30.160 --> 00:50:33.920 +So what, you know, you can see here, like, some of these -00:57:22.720 --> 00:57:25.839 -people try to take on challenging that +00:50:33.920 --> 00:50:38.160 +tables got real wide when we're stuffing SVG tags into them. -00:57:25.839 --> 00:57:28.079 -always eight characters in a party +00:50:38.160 --> 00:50:44.160 +And what we -- oh, maybe it's not in these. -00:57:28.079 --> 00:57:30.640 -thing I've seen people take +00:50:44.160 --> 00:50:50.160 +I thought it was. -00:57:30.640 --> 00:57:32.640 -approaches like every player gets two +00:50:50.160 --> 00:50:51.160 +It's special, probably. -00:57:32.640 --> 00:57:34.640 -characters and then you can have a party +00:50:51.160 --> 00:50:52.160 +>> Yeah. -00:57:34.640 --> 00:57:36.319 -ranging from two to ten +00:50:52.160 --> 00:50:54.160 +No, there it is, yeah. -00:57:36.319 --> 00:57:38.079 -or there's always going to be ten or +00:50:54.160 --> 00:50:55.160 +It was in level change. -00:57:38.079 --> 00:57:40.000 -there's you know this or that or people +00:50:55.160 --> 00:50:57.160 +It does the table key repeat. -00:57:40.000 --> 00:57:43.200 -have tried stuff and none of it has +00:50:57.160 --> 00:50:58.160 +>> Okay, great. -00:57:43.200 --> 00:57:45.280 -really worked out very satisfactorily we +00:50:58.160 --> 00:50:59.720 +>> You were just scrolling up and down so fast I didn't -00:57:45.280 --> 00:57:45.839 -always +00:50:59.720 --> 00:51:00.160 +realize. -00:57:45.839 --> 00:57:48.319 -seem to keep coming back to our party +00:51:00.160 --> 00:51:04.270 +So this first table, we've got path and what is that, -00:57:48.319 --> 00:57:49.680 -of eight +00:51:04.270 --> 00:51:05.160 +stairs? -00:57:49.680 --> 00:57:54.160 -yeah it's I I I I it's one of the things +00:51:05.160 --> 00:51:09.010 +So the stairs level is one that draws in, like, a pink -00:57:54.160 --> 00:57:55.839 -Dungeon that you can't change when you +00:51:09.010 --> 00:51:13.160 +color to highlight places where you can change level. -00:57:55.839 --> 00:57:57.359 -write your own Dungeon +00:51:13.160 --> 00:51:16.120 +And then if we scroll down to the second half of this -00:57:57.359 --> 00:57:58.720 -and that's the reason it's so +00:51:16.120 --> 00:51:19.380 +section, the second table is going to have all of these -00:57:58.720 --> 00:58:00.960 -complicated as a as a software +00:51:19.380 --> 00:51:24.000 +same tiles in it, but instead of path and stairs, we're -00:58:00.960 --> 00:58:03.119 -project why it's taken us decades +00:51:24.000 --> 00:51:27.160 +going to have other columns. -00:58:03.119 --> 00:58:04.559 -because +00:51:27.160 --> 00:51:31.160 +Can we see the next table? -00:58:04.559 --> 00:58:08.000 -trying to model the data for example or +00:51:31.160 --> 00:51:32.160 +There we go. -00:58:08.000 --> 00:58:11.280 -really any attempt to +00:51:32.160 --> 00:51:35.610 +So the same tiles, only here we've got overlay, -00:58:11.280 --> 00:58:14.160 -quantify it in specific terms always +00:51:35.610 --> 00:51:38.160 +documentation, and behavior. -00:58:14.160 --> 00:58:15.680 -falls to examples +00:51:38.160 --> 00:51:40.160 +And I guess we haven't talked about this at all. -00:58:15.680 --> 00:58:18.880 -well you know Dungeons usually have +00:51:40.160 --> 00:51:44.920 +The behavior column was our concept of a way that we could -00:58:18.880 --> 00:58:22.079 -elves dwarves and humans they have +00:51:44.920 --> 00:51:50.100 +attach functions, basically, to these different areas of -00:58:22.079 --> 00:58:25.280 -priests wizards and warriors they +00:51:50.100 --> 00:51:51.160 +the map. -00:58:25.280 --> 00:58:27.599 -have eight characters in the party +00:51:51.160 --> 00:51:55.920 +Because sometimes when you enter an area, we want it to do -00:58:27.599 --> 00:58:30.000 -the bell rocks are particularly nasty +00:51:55.920 --> 00:51:57.160 +something. -00:58:30.000 --> 00:58:31.680 -and live in a room of some +00:51:57.160 --> 00:52:00.880 +Like when you enter a stairs down, maybe we want it to -00:58:31.680 --> 00:58:35.119 -specific shape spoilers +00:52:00.880 --> 00:52:04.850 +change to the next level and draw the stairs up behind you -00:58:35.119 --> 00:58:38.319 -right and we don't tell you the rules +00:52:04.850 --> 00:52:08.160 +and draw you where you are on the next level. -00:58:38.319 --> 00:58:39.520 -and that's what you know +00:52:08.160 --> 00:52:13.470 +So these are like hooks where we could attach functions or, -00:58:39.520 --> 00:58:40.960 -and you sit down at the table and you +00:52:13.470 --> 00:52:18.390 +you know, macros or whatever to make the map have these -00:58:40.960 --> 00:58:42.640 -say what's your character name and +00:52:18.390 --> 00:52:23.160 +behaviors as we get further towards automation. -00:58:42.640 --> 00:58:44.480 -what's your special power +00:52:23.160 --> 00:52:25.160 +Cool. -00:58:44.480 --> 00:58:48.400 -and and then I say I +00:52:25.160 --> 00:52:31.160 +So that's that should be pretty close to our time. -00:58:48.400 --> 00:58:51.599 -I I'm zelda and +00:52:31.160 --> 00:52:34.160 +Questions or just say goodbye. -00:58:51.599 --> 00:58:53.839 -I I have this bridge that I can put down +00:52:34.160 --> 00:52:38.160 +Yeah, so there's the I'm sorry we couldn't show it earlier. -00:58:53.839 --> 00:58:56.000 -that always gets me across the river +00:52:38.160 --> 00:52:41.160 +There is the battle board. -00:58:56.000 --> 00:58:59.040 -so let's touch on special power real +00:52:41.160 --> 00:52:46.160 +And so this is used just to keep track of hit points. -00:58:59.040 --> 00:58:59.359 -quick +00:52:46.160 --> 00:52:50.540 +So with this example, battle board, dm battle board.el, -00:58:59.359 --> 00:59:01.119 -since that's one of the things that is +00:52:50.540 --> 00:52:54.590 +there's there's a complete example of not only in a single -00:59:01.119 --> 00:59:03.280 -kind of unique to Dungeon +00:52:54.590 --> 00:52:58.430 +file reaper, we filling out the tell the cells and the -00:59:03.280 --> 00:59:06.160 -and one of the things that is the +00:52:58.430 --> 00:53:03.720 +tiles, but then coming in and keeping the org mode file in -00:59:06.160 --> 00:59:06.720 -biggest +00:53:03.720 --> 00:53:06.160 +sync with with clicks. -00:59:06.720 --> 00:59:08.960 -challenge to us in trying to code a +00:53:06.160 --> 00:53:11.040 +So, and I can press the star key and set my damage to minus -00:59:08.960 --> 00:59:10.240 -system like this for +00:53:11.040 --> 00:53:14.160 +one and take the damage back off. -00:59:10.240 --> 00:59:13.200 -automated play and that's that every +00:53:14.160 --> 00:53:17.770 +I just haven't spent a lot of time building up fancy bind -00:59:13.200 --> 00:59:14.319 -character gets a +00:53:17.770 --> 00:53:21.620 +ings for this, you'll also find that the crew probably find -00:59:14.319 --> 00:59:17.119 -unique special power and traditionally +00:53:21.620 --> 00:53:25.270 +how I figure out what was clicked on in the code hard, but -00:59:17.119 --> 00:59:18.000 -you negotiate +00:53:25.270 --> 00:53:30.010 +if I just assign something recognizable for damage, and -00:59:18.000 --> 00:59:19.520 -your special power with the Dungeon +00:53:30.010 --> 00:53:33.160 +then come into. -00:59:19.520 --> 00:59:21.839 -master when you create your character +00:53:33.160 --> 00:53:39.030 +It will now have opened the org mode file behind the scenes -00:59:21.839 --> 00:59:24.079 -and occasionally throughout the course +00:53:39.030 --> 00:53:41.160 +because it's changing it. -00:59:24.079 --> 00:59:25.839 -of the character's life their special +00:53:41.160 --> 00:53:48.340 +And we can then look at that file a little bit and -00:59:25.839 --> 00:59:27.359 -power might change +00:53:48.340 --> 00:53:54.130 +hopefully that is on large enough you can kind of see there -00:59:27.359 --> 00:59:29.920 -due to game circumstances usually it +00:53:54.130 --> 00:53:57.160 +'s our 17 damage landed in armor. -00:59:29.920 --> 00:59:33.280 -improves but sometimes not +00:53:57.160 --> 00:54:04.200 +The logic that sits behind that to figure out the part of -00:59:33.280 --> 00:59:34.960 -and that's those are the most fun +00:54:04.200 --> 00:54:10.160 +the screen is not necessarily our finest work. -00:59:34.960 --> 00:59:36.960 -conversations right sometimes we have +00:54:10.160 --> 00:54:12.960 +But it does work and that's one kind of stuff was used on -00:59:36.960 --> 00:59:39.440 -fun gaming sessions where we barely get +00:54:12.960 --> 00:54:16.030 +the map a little bit too. We didn't really get to show that -00:59:39.440 --> 00:59:41.760 -all the characters created and started +00:54:16.030 --> 00:54:18.970 +in the demo but as you're scrolling around there's like a -00:59:41.760 --> 00:59:43.680 -because we get off into arguing about +00:54:18.970 --> 00:54:22.160 +highlighter that that, you know, we were drawing on. -00:59:43.680 --> 00:59:45.440 -the special powers no zelda special +00:54:22.160 --> 00:54:26.160 +Oh sure, show you which square you've got selected. -00:59:45.440 --> 00:59:48.319 -powers obviously the candle come on +00:54:26.160 --> 00:54:30.300 +We were having trouble with that code. Initially, and we -00:59:48.319 --> 00:59:53.359 -also that was link not zelda +00:54:30.300 --> 00:54:33.160 +were sometimes revealing the wrong. -00:59:53.359 --> 00:59:56.240 -I still have my t-shirt hey there she is +00:54:33.160 --> 00:54:38.160 +Okay. -00:59:56.240 --> 01:00:01.440 -let's cut scene +00:54:38.160 --> 00:54:41.320 +And I don't know how we're set for time but I just saw a -01:00:01.440 --> 01:00:05.839 -you get video fun filters today because +00:54:41.320 --> 00:54:45.240 +message from Trixie that she could jump on if we want her. -01:00:05.839 --> 01:00:07.359 -that's what we got going on over here +00:54:45.240 --> 00:54:48.290 +Oh, that would be amazing. Yeah, go ahead and invite her in -01:00:07.359 --> 01:00:08.799 -today all right I'm going to recut +00:54:48.290 --> 00:54:51.160 +I'll just cut to the scene as soon as she's in. -01:00:08.799 --> 01:00:18.079 -everybody hang on tight +00:54:51.160 --> 00:54:54.160 +I think. -01:00:18.079 --> 01:00:20.799 -all right there's Erik this is going to be +00:54:54.160 --> 00:54:58.080 +Yeah, so we're reaching the ask me anything portion of the -01:00:20.799 --> 01:00:23.200 -Erik for a second hope +00:54:58.080 --> 00:55:01.760 +program here with what, with what time we have left for -01:00:23.200 --> 01:00:25.200 -no worries. welcome to the welcome to +00:55:01.760 --> 00:55:03.160 +your questions. -01:00:25.200 --> 01:00:27.440 -the stream trixie horror +00:55:03.160 --> 00:55:09.170 +Please correct me if we're still like 10 minutes, you know, -01:00:27.440 --> 01:00:30.960 -who is +00:55:09.170 --> 00:55:15.450 +if we're, if we're more than like 15 to 20 minutes from our -01:00:30.960 --> 01:00:32.720 -one of our project team members +00:55:15.450 --> 00:55:20.560 +time but I suspect we've left way left way less than that -01:00:32.720 --> 01:00:34.559 -somebody who's learning Emacs as part of +00:55:20.560 --> 00:55:25.160 +and out of respect for all the other presenters. -01:00:34.559 --> 01:00:35.440 -the project +00:55:25.160 --> 00:55:29.160 +I don't want to close that actually. -01:00:35.440 --> 01:00:38.480 -and yeah I +00:55:29.160 --> 00:55:33.060 +I think I may have found an old version of my slides that -01:00:38.480 --> 01:00:40.720 -I I particularly wanted to invite you on +00:55:33.060 --> 00:55:35.160 +can have some good stuff. -01:00:40.720 --> 01:00:42.160 -to talk about your experience learning +00:55:35.160 --> 00:55:40.220 +It's been an event for a couple of weeks here I had a break -01:00:42.160 --> 01:00:42.640 -Emacs +00:55:40.220 --> 00:55:45.190 +in and my somebody got into our bank accounts and nasty -01:00:42.640 --> 01:00:44.640 -I think you have run into places +00:55:45.190 --> 00:55:51.160 +business, just a lot going on over, over this whole year I think. -01:00:44.640 --> 01:00:46.799 -where it's a pain in the butt to learn Emacs +00:55:51.160 --> 00:55:54.160 +Any more questions to share. -01:00:46.799 --> 01:00:47.839 -and that this is a safe +00:55:54.160 --> 00:56:02.240 +Sure. So, I think there was at least one we deferred a -01:00:47.839 --> 01:00:56.000 -space to talk about that +00:56:02.240 --> 00:56:06.160 +little bit with the game is -01:00:56.000 --> 01:01:00.640 -TRIXIE: I'll jump into that by saying the Emacs cheat sheet, +00:56:06.160 --> 00:56:08.990 +always eight characters that can be divided right that's so -01:01:00.640 --> 01:01:03.680 -I think it's the one that GNU puts out, +00:56:08.990 --> 00:56:11.660 +always eight characters that can be divided between the -01:01:03.680 --> 01:01:06.559 -is a lifesaver. +00:56:11.660 --> 00:56:14.540 +party is the classic formula, it actually works pretty well -01:01:06.559 --> 01:01:09.440 -A little bit of a vocabulary disconnect. +00:56:14.540 --> 00:56:16.160 +for a conversational group. -01:01:09.440 --> 01:01:13.359 -This actually kind of comes up a lot +00:56:16.160 --> 00:56:18.810 +I think the idea that role playing games are about talking -01:01:13.359 --> 01:01:15.200 -in conversation with Corwin and Erik and +00:56:18.810 --> 00:56:21.330 +to each other and being good at them is about taking -01:01:15.200 --> 01:01:18.000 -I but copy paste versus +00:56:21.330 --> 00:56:23.770 +excellent notes. So, when you're sitting around with a -01:01:18.000 --> 01:01:21.920 -what yank and w +00:56:23.770 --> 00:56:26.070 +group of people and you're going to have to wait for them -01:01:21.920 --> 01:01:27.920 -whatever w +00:56:26.070 --> 00:56:29.410 +while they dig through their notes and listen to all of the -01:01:27.920 --> 01:01:30.000 -why would you even do that to us right +00:56:29.410 --> 00:56:33.160 +things they find interesting to say, and try to reach an -01:01:30.000 --> 01:01:31.200 -where where were you +00:56:33.160 --> 00:56:35.160 +imaginative place that you can stay together. -01:01:31.200 --> 01:01:33.359 -when zero's park happened no I I +00:56:35.160 --> 00:56:38.800 +And when you're doing all that and working in dice and -01:01:33.359 --> 01:01:38.480 -understand that makes sense what else +00:56:38.800 --> 00:56:43.250 +remembering the rules. It's actually a complicated activity, -01:01:38.480 --> 01:01:39.520 -I mean you don't have to sit here and +00:56:43.250 --> 00:56:47.340 +I liken it more to a bridge game, then to like, you know, -01:01:39.520 --> 01:01:41.440 -rag on Emacs but we're here for that +00:56:47.340 --> 00:56:51.310 +part cheesy or perhaps even like risk or access and allies -01:01:41.440 --> 01:01:43.119 -that's all I'm saying +00:56:51.310 --> 00:56:55.620 +or other games that have have definitely the strategy to -01:01:43.119 --> 01:01:46.799 -TRIXIE: No, I'm like that's been the biggest thing. +00:56:55.620 --> 00:56:57.160 +them but I don't. -01:01:46.799 --> 01:01:52.799 -I'm used to the very binary nature, like, nope that didn't work. +00:56:57.160 --> 00:57:01.160 +Erik, your thoughts. -01:01:52.799 --> 01:01:53.839 -Try something else. +00:57:02.160 --> 00:57:05.160 +I think that's fair. -01:01:53.839 --> 01:01:59.200 -So as long as you're willing to try other stuff, +00:57:05.160 --> 00:57:08.880 +You know yes definitely. The, the tradition is to always -01:01:59.200 --> 01:02:02.880 -Emacs will be fine. +00:57:08.880 --> 00:57:12.600 +have eight characters in the party, and, you know, one of -01:02:02.880 --> 01:02:06.559 -it's a tough cookie I can take it +00:57:12.600 --> 00:57:16.320 +the great things about dungeon is that everybody who writes -01:02:06.559 --> 01:02:08.960 -worst thing that happens is you have to +00:57:16.320 --> 00:57:19.730 +their own dungeon gets to write their own rules, and is -01:02:08.960 --> 01:02:11.119 -really install it +00:57:19.730 --> 00:57:22.160 +free to change whatever you want. -01:02:11.119 --> 01:02:13.520 -throw your ignite file that you +00:57:22.160 --> 00:57:26.700 +I've definitely seen people try to take on challenging that -01:02:13.520 --> 01:02:19.920 -hopefully have a backup of +00:57:26.700 --> 00:57:30.160 +always eight characters in a party thing. -01:02:19.920 --> 01:02:21.520 -all right fine +00:57:30.160 --> 00:57:33.460 +I've seen people take approaches like every player gets two -01:02:21.520 --> 01:02:24.640 -ERIK: Are there more questions in the hopper? +00:57:33.460 --> 00:57:36.570 +characters and then you can have a party ranging from two -01:02:24.640 --> 01:02:26.480 -yeah if anybody does have any questions +00:57:36.570 --> 00:57:40.130 +to 10, or there's always going to be 10 or there's, you -01:02:26.480 --> 01:02:27.680 -up there +00:57:40.130 --> 00:57:43.340 +know, this or that or people have tried stuff, and none of -01:02:27.680 --> 01:02:29.839 -for hope for Erik or I so just to +00:57:43.340 --> 00:57:47.170 +it has really worked out very satisfactorily we always seem -01:02:29.839 --> 01:02:32.000 -summarize I've known Erik +00:57:47.170 --> 00:57:50.160 +to keep coming back to our party of eight. -01:02:32.000 --> 01:02:34.240 -I've known Erik my whole life I've known +00:57:50.160 --> 00:57:55.710 +It's, it's one of the things that dungeon that you can't -01:02:34.240 --> 01:02:36.160 -hope around a decade we +00:57:55.710 --> 00:57:59.290 +change when you write your own dungeon. And that's the -01:02:36.160 --> 01:02:39.599 -worked together on a project for +00:57:59.290 --> 00:58:03.900 +reason it's so complicated as a, as a software project why -01:02:39.599 --> 01:02:44.559 -for a science fiction convention yeah +00:58:03.900 --> 00:58:08.640 +it's taken us decades, because trying to model the data for -01:02:44.559 --> 01:02:46.880 -we got conventions and then I also +00:58:08.640 --> 00:58:13.820 +example or really any attempt, quantify it in specific -01:02:46.880 --> 01:02:48.960 -helped with I just wrote a bio +00:58:13.820 --> 00:58:16.160 +terms always falls to examples. -01:02:48.960 --> 01:02:50.799 -so this should like all theoretically be +00:58:16.160 --> 00:58:20.740 +You know dungeons usually have elves, elves, dwarves and -01:02:50.799 --> 01:02:53.599 -in my head right +00:58:20.740 --> 00:58:25.160 +humans. They have priests, wizards and warriors. -01:02:53.599 --> 01:02:58.079 -I want I refer to my own bio +00:58:25.160 --> 00:58:29.330 +They have eight characters in the party. The Balrogs are -01:02:58.079 --> 01:03:00.160 -I'm the project coordinator for Dungeon +00:58:29.330 --> 00:58:34.160 +particularly nasty and live in a room of some specific shape. -01:03:00.160 --> 01:03:10.799 -mode +00:58:34.160 --> 00:58:57.160 +And they have spoilers. -01:03:10.799 --> 01:03:14.000 -that's nice +00:58:57.160 --> 00:59:00.900 +So let's touch on special power real quick since that's one -01:03:14.000 --> 01:03:16.400 -we've gotten a ton of support from a lot +00:59:00.900 --> 00:59:04.820 +of the things that is kind of unique to dungeon. And one of -01:03:16.400 --> 01:03:18.000 -of our lifelong friends people +00:59:04.820 --> 00:59:08.710 +the things that is the biggest challenge to us and trying -01:03:18.000 --> 01:03:20.480 -and also people that we just met maybe +00:59:08.710 --> 00:59:12.160 +to code a system like this for automated play. -01:03:20.480 --> 01:03:22.319 -that's a that's a great segue +00:59:12.160 --> 00:59:15.680 +And that's that every character gets a unique special power -01:03:22.319 --> 01:03:25.039 -do throw your questions in there I'm +00:59:15.680 --> 00:59:19.300 +and traditionally you negotiate your special power with the -01:03:25.039 --> 01:03:26.400 -going to fill for just a second and then +00:59:19.300 --> 00:59:22.600 +dungeon master when you create your character, and -01:03:26.400 --> 01:03:27.839 -we'll probably cut away +00:59:22.600 --> 00:59:25.970 +occasionally throughout the course of the characters life -01:03:27.839 --> 01:03:32.319 -but +00:59:25.970 --> 00:59:29.160 +their special power might change due to game circumstances, -01:03:32.319 --> 01:03:34.960 -I mean thematically actually that's +00:59:29.160 --> 00:59:34.160 +usually it improves but sometimes not. -01:03:34.960 --> 01:03:36.319 -that's too abrupt so we need to go +00:59:34.160 --> 00:59:37.180 +So those are the most fun conversations right sometimes we -01:03:36.319 --> 01:03:37.200 -around the room +00:59:37.180 --> 00:59:39.820 +have fun gaming sessions where we barely get all the -01:03:37.200 --> 01:03:39.119 -Erik you had hours and hours to rehearse +00:59:39.820 --> 00:59:42.800 +characters created and started, because we get off into -01:03:39.119 --> 01:03:40.720 -hope kind of jumped in on the last +00:59:42.800 --> 00:59:45.780 +arguing about the special powers no Zelda special powers -01:03:40.720 --> 01:03:41.359 -minute +00:59:45.780 --> 00:59:49.160 +obviously the candle Come on. -01:03:41.359 --> 01:03:43.520 -so let's let's is it okay to pick on you +00:59:49.160 --> 00:59:54.160 +Also that was like, not so. -01:03:43.520 --> 01:03:46.319 -or do you want me to give mine +00:59:54.160 --> 01:00:02.160 +I still have my t shirt. Hey, there she is. Let's cut scene. -01:03:46.319 --> 01:03:48.880 -to what are you asking me to do what +01:00:02.160 --> 01:00:05.890 +I'm going to be working with fun filters today, because -01:03:48.880 --> 01:03:50.000 -do you what do you want people to take +01:00:05.890 --> 01:00:12.250 +that's what we got going on over here. All right, I'm going -01:03:50.000 --> 01:03:51.359 -away from this talk +01:00:12.250 --> 01:00:19.160 +to recut everybody hang on tight. -01:03:51.359 --> 01:03:54.240 -you know as we think about Dungeon and +01:00:19.160 --> 01:00:21.160 +All right, there's Erik. -01:03:54.240 --> 01:03:55.280 -sharing it's +01:00:21.160 --> 01:00:24.160 +This is going to be Erik for a second home. -01:03:55.280 --> 01:03:57.520 -sharing its tradition as we think about +01:00:24.160 --> 01:00:27.680 +No worries. And welcome to that welcome to the stream. Trix -01:03:57.520 --> 01:03:58.799 -learning Emacs +01:00:27.680 --> 01:00:29.160 +ie horror. -01:03:58.799 --> 01:04:02.799 -and like making that awesome +01:00:29.160 --> 01:00:33.410 +Who is one of our project team members somebody who's -01:04:02.799 --> 01:04:04.880 -and just you know generally what's up +01:00:33.410 --> 01:00:37.160 +learning Emacs as part of the project, and. -01:04:04.880 --> 01:04:07.599 -with free software and trying to make +01:00:37.160 --> 01:00:42.690 +Yeah, I particularly wanted to invite you on to talk about -01:04:07.599 --> 01:04:12.480 -computers a tool to make people freer +01:00:42.690 --> 01:00:47.700 +your experience learning Emacs I think you have run into -01:04:12.480 --> 01:04:15.200 -wow that's like five questions yeah so +01:00:47.700 --> 01:00:52.900 +places where it's a pain in the butt to learn Emacs and that -01:04:15.200 --> 01:04:15.920 -I'm going to start +01:00:52.900 --> 01:00:56.160 +this is a safe space to talk about that. -01:04:15.920 --> 01:04:18.960 -with jumping I think +01:00:56.160 --> 01:01:02.160 +I'll jump in by saying the Emacs cheat sheet. -01:04:18.960 --> 01:04:22.240 -that Dungeon is a lot of fun and +01:01:02.160 --> 01:01:07.160 +I think it's the one that can do puts out is a lifesaver. -01:04:22.240 --> 01:04:25.359 -you know I'm I've played many +01:01:07.160 --> 01:01:12.030 +I think there's a little bit of a vocabulary disconnect, -01:04:25.359 --> 01:04:27.599 -commercial role-playing games over the +01:01:12.030 --> 01:01:16.050 +like, and this actually kind of comes up a lot in -01:04:27.599 --> 01:04:28.480 -years +01:01:16.050 --> 01:01:21.080 +conversation with Corwin and Erik and I, but coffee paste -01:04:28.480 --> 01:04:31.680 -and I've enjoyed all of them and there +01:01:21.080 --> 01:01:25.160 +versus what yank and w, whatever w killing yank. -01:04:31.680 --> 01:04:32.000 -are +01:01:25.160 --> 01:01:28.160 +Yeah. -01:04:32.000 --> 01:04:34.720 -very few of them that I've had as many +01:01:28.160 --> 01:01:31.380 +Why would you even do that to us right where where were you -01:04:34.720 --> 01:04:36.319 -belly laughs and as much +01:01:31.380 --> 01:01:34.810 +when zeros park happened. No, I understand that makes sense. -01:04:36.319 --> 01:04:40.160 -just joy playing as from Dungeon +01:01:34.810 --> 01:01:39.160 +What else. -01:04:40.160 --> 01:04:42.799 -and I think you know the magic of it is +01:01:39.160 --> 01:01:41.920 +I mean you don't have to sit here and rag on Emacs but we're -01:04:42.799 --> 01:04:43.280 -you know +01:01:41.920 --> 01:01:44.160 +here for that. That's all I'm saying. -01:04:43.280 --> 01:04:45.520 -like any game like the real magic is the +01:01:44.160 --> 01:01:48.250 +I think that's the biggest thing, like, I'm, I'm used to, -01:04:45.520 --> 01:04:47.200 -people you play with and having fun with +01:01:48.250 --> 01:01:52.170 +like, just kind of the very binary nature of like, nope, -01:04:47.200 --> 01:04:49.599 -your friends +01:01:52.170 --> 01:01:55.160 +that didn't work, try something else. -01:04:49.599 --> 01:04:51.280 -and what I would hope that people can +01:01:55.160 --> 01:02:00.680 +So, as long as you're willing to try other stuff like Emacs -01:04:51.280 --> 01:04:53.440 -take away from is that Dungeon has the +01:02:00.680 --> 01:02:07.160 +will be fine. So, it's a tough cookie it can take it. -01:04:53.440 --> 01:04:55.920 -ability to be that magical thing +01:02:07.160 --> 01:02:14.430 +The only thing that happens is you have to install it -01:04:55.920 --> 01:04:59.280 -and hopefully we can get our project to +01:02:14.430 --> 01:02:21.160 +through your file that you hopefully have a backup of. -01:04:59.280 --> 01:05:00.000 -the point +01:02:21.160 --> 01:02:25.160 +Um, are there more questions in the hopper. -01:05:00.000 --> 01:05:02.160 -where it gets out of the way and lets +01:02:25.160 --> 01:02:29.500 +If anybody does have any questions up there for hope for -01:05:02.160 --> 01:05:04.960 -you have that fun with your friends +01:02:29.500 --> 01:02:34.210 +Erik or I so just to summarize, I've known Erik, I've known -01:05:04.960 --> 01:05:07.200 -but there's a lot of work to do we +01:02:34.210 --> 01:02:38.640 +Erik, my whole life, I've known hope around a decade we -01:05:07.200 --> 01:05:08.240 -could use some help +01:02:38.640 --> 01:02:41.760 +work together on a project for, for a science fiction -01:05:08.240 --> 01:05:10.880 -so if you're interested in having fun +01:02:41.760 --> 01:02:42.160 +convention. -01:05:10.880 --> 01:05:20.960 -come help us build this fun tool +01:02:42.160 --> 01:02:45.160 +Yeah. -01:05:20.960 --> 01:05:22.319 -all right so I just got the call that +01:02:45.160 --> 01:02:49.360 +I've written a few conventions and then I also helped with -01:05:22.319 --> 01:05:24.079 -we've got just about two to three +01:02:49.360 --> 01:02:53.710 +I just wrote a bio. So this should like all theoretically -01:05:24.079 --> 01:05:25.039 -minutes left +01:02:53.710 --> 01:02:55.160 +be in my head right. -01:05:25.039 --> 01:05:28.160 -and we should start our wrap-up +01:02:55.160 --> 01:03:01.660 +I want to refer to my own bio project coordinator for -01:05:28.160 --> 01:05:31.440 -okay wrap up so +01:03:01.660 --> 01:03:03.160 +dungeon mode. -01:05:31.440 --> 01:05:34.240 -yeah so I'll I'll see if I can charge +01:03:03.160 --> 01:03:07.160 +I was a bird assistant good credit. -01:05:34.240 --> 01:05:35.920 -the room with some energy unless you're +01:03:07.160 --> 01:03:13.160 +And family friend to the Bruce. Oh, -01:05:35.920 --> 01:05:38.480 -ready to have at it hope +01:03:13.160 --> 01:03:17.870 +yeah, we've gotten a ton of support from a lot of our -01:05:38.480 --> 01:05:40.720 -here here's here's what I want people to +01:03:17.870 --> 01:03:21.720 +lifelong friends people, and also people that we just met. -01:05:40.720 --> 01:05:42.799 -take away +01:03:21.720 --> 01:03:24.160 +Maybe that's a that's a great segue. -01:05:42.799 --> 01:05:47.039 -were you like no okay +01:03:24.160 --> 01:03:26.900 +Do throw your questions in there I'm going to fill for just -01:05:47.039 --> 01:05:53.599 -I'm not getting your audio hope +01:03:26.900 --> 01:03:29.160 +a second and then we'll probably cut away. -01:05:53.599 --> 01:05:55.839 -it's okay on my end maybe I just need to +01:03:29.160 --> 01:03:35.970 +But, I'm thinking thematically actually, that's that's too -01:05:55.839 --> 01:05:57.359 -speak up +01:03:35.970 --> 01:03:38.810 +abrupt so we need to go around the room, Erik you had hours -01:05:57.359 --> 01:05:58.880 -is this better let me know when I'm +01:03:38.810 --> 01:03:41.480 +and hours to rehearse hope kind of jumped in on the last -01:05:58.880 --> 01:06:00.640 -coming through yeah you're coming +01:03:41.480 --> 01:03:42.160 +minute. -01:06:00.640 --> 01:06:01.680 -through now +01:03:42.160 --> 01:03:47.050 +So let's let's, is it okay to pick on you or do you want me -01:06:01.680 --> 01:06:05.359 -okay cool oh no I +01:03:47.050 --> 01:03:48.160 +to get mine. -01:06:05.359 --> 01:06:08.799 -was going to say go ahead I didn't okay +01:03:48.160 --> 01:03:51.490 +What are you asking me to do what do you what do you want -01:06:08.799 --> 01:06:10.559 -I mean I I don't know that I know what I +01:03:51.490 --> 01:03:55.280 +people to take away from this talk, you know, as we think -01:06:10.559 --> 01:06:12.880 -want to say either except a whole ton of +01:03:55.280 --> 01:03:59.010 +about dungeon and sharing it's sharing its tradition, as we -01:06:12.880 --> 01:06:13.599 -thank yous +01:03:59.010 --> 01:04:03.160 +think about learning Emacs, and like making that awesome. -01:06:13.599 --> 01:06:16.480 -so I will I will save those for the for +01:04:03.160 --> 01:04:08.210 +And just, you know, generally what's up with free software -01:06:16.480 --> 01:06:17.200 -the literal +01:04:08.210 --> 01:04:13.160 +and trying to make computers a tool to make people freer. -01:06:17.200 --> 01:06:20.880 -end here and instead +01:04:13.160 --> 01:04:18.160 +Yeah, I'm going to ask like five questions. Yeah, so just -01:06:20.880 --> 01:06:24.160 -what I would say is as we build +01:04:18.160 --> 01:04:19.160 +jump in. -01:06:24.160 --> 01:06:27.839 -our amazing innovations and +01:04:19.160 --> 01:04:24.160 +I think that dungeon is a lot of fun. And, you know, I'm, I -01:06:27.839 --> 01:06:32.160 -explore our ideas in Emacs +01:04:24.160 --> 01:04:29.260 +'ve played many commercial role playing games over the years -01:06:32.160 --> 01:06:35.119 -we are fighting our own ego for the will +01:04:29.260 --> 01:04:32.160 +, and I've enjoyed all of them. -01:06:35.119 --> 01:06:36.079 -to get them done +01:04:32.160 --> 01:04:36.500 +But there's very few of them that I've had as many belly -01:06:36.079 --> 01:06:37.680 -it's hard and we're not sure if they're +01:04:36.500 --> 01:04:41.410 +laughs and as much just joy, playing as from dungeon. And I -01:06:37.680 --> 01:06:38.960 -going to be a good idea and will it +01:04:41.410 --> 01:04:44.500 +think, you know, the magic of it is, you know, like any -01:06:38.960 --> 01:06:40.000 -excite people and part of our +01:04:44.500 --> 01:04:47.400 +game like the real magic is the people you play with and -01:06:40.000 --> 01:06:41.680 -responsibility is to excite people so +01:04:47.400 --> 01:04:50.160 +having fun with your friends. -01:06:41.680 --> 01:06:43.440 -that they can feel good about liking +01:04:50.160 --> 01:04:53.780 +And what I would hope that people can take away from is -01:06:43.440 --> 01:06:44.240 -them +01:04:53.780 --> 01:04:57.900 +that dungeon has the ability to be that magical thing. And -01:06:44.240 --> 01:06:45.680 -if you come off and you're like hey this +01:04:57.900 --> 01:05:01.870 +hopefully we can get our project to the point where it gets -01:06:45.680 --> 01:06:47.359 -is a terrible idea it's really hard to +01:05:01.870 --> 01:05:06.160 +out of the way and lets you have that fun with your friends. -01:06:47.359 --> 01:06:47.920 -be like +01:05:06.160 --> 01:05:12.180 +So I think there's a lot of work to do we could use some -01:06:47.920 --> 01:06:49.760 -no I love that idea it works +01:05:12.180 --> 01:05:19.330 +help. So if you're interested in having fun. Come help us -01:06:49.760 --> 01:06:51.200 -theatrically but +01:05:19.330 --> 01:05:22.160 +build this fun tool. -01:06:51.200 --> 01:06:55.680 -in larger groups may not scale +01:05:22.160 --> 01:05:25.370 +Alright so I just got the call that we've got just about -01:06:55.680 --> 01:06:58.400 -so that's a crucible for ideas and a +01:05:25.370 --> 01:05:29.160 +two to three minutes left, and we should start our wrap up. -01:06:58.400 --> 01:07:00.400 -crucible for teams +01:05:29.160 --> 01:05:31.160 +Wrap up. -01:07:00.400 --> 01:07:03.280 -the first part is definitely healthy the +01:05:31.160 --> 01:05:35.090 +Yeah, so I'll see if I can charge the room with some energy -01:07:03.280 --> 01:07:04.240 -second part +01:05:35.090 --> 01:05:38.160 +unless you're ready to have that at home. -01:07:04.240 --> 01:07:07.440 -there's a lot we can we can do you know +01:05:38.160 --> 01:05:43.160 +Here, here's, here's what I want people to take away. -01:07:07.440 --> 01:07:08.640 -having upfront +01:05:43.160 --> 01:05:47.160 +Were you like, No, okay. -01:07:08.640 --> 01:07:10.880 -and and and good faith conversations on +01:05:47.160 --> 01:05:54.160 +I'm not getting your audio hope. -01:07:10.880 --> 01:07:15.440 -that subject +01:05:54.160 --> 01:05:57.160 +So my end, maybe I just need to speak up. -01:07:15.440 --> 01:07:17.520 -anybody else wanted I want to weigh it +01:05:57.160 --> 01:06:01.160 +Is this better, let me know when I'm coming through. -01:07:17.520 --> 01:07:19.119 -in after that sorry that that was more +01:06:01.160 --> 01:06:05.160 +Okay, cool. -01:07:19.119 --> 01:07:23.200 -of a calm down than a then a fire out +01:06:05.160 --> 01:06:07.160 +I was gonna say go ahead. -01:07:23.200 --> 01:07:27.280 -oh that's okay +01:06:07.160 --> 01:06:11.240 +I didn't. Okay. I mean I don't know that I know what I want -01:07:27.280 --> 01:07:29.280 -I mean the first part of this but I +01:06:11.240 --> 01:06:15.290 +to say either except a whole ton of thank you. So, I will, -01:07:29.280 --> 01:07:30.960 -think +01:06:15.290 --> 01:06:19.160 +I will save those for the, for the literal end here. -01:07:30.960 --> 01:07:32.960 -we would be remiss not to highlight org +01:06:19.160 --> 01:06:26.630 +And instead, what I would say is, as we build our amazing -01:07:32.960 --> 01:07:34.880 -mode a little bit +01:06:26.630 --> 01:06:32.160 +innovations and explore our ideas in Emacs. -01:07:34.880 --> 01:07:37.839 -yeah like that's that's our bread and +01:06:32.160 --> 01:06:34.980 +We are fighting our own ego for the will to get them done, -01:07:37.839 --> 01:07:38.480 -butter +01:06:34.980 --> 01:06:37.740 +it's hard and we're not sure if they're going to be a good -01:07:38.480 --> 01:07:40.240 -yeah our whole project is built on org +01:06:37.740 --> 01:06:39.960 +idea and will it excite people and part of our -01:07:40.240 --> 01:07:42.720 -mode right and I'm just really excited +01:06:39.960 --> 01:06:42.780 +responsibility is to excite people so that they can feel -01:07:42.720 --> 01:07:46.240 -because like I have I don't have adhd +01:06:42.780 --> 01:06:44.160 +good about liking them. -01:07:46.240 --> 01:07:49.680 -but I have like something similar and so +01:06:44.160 --> 01:06:47.930 +If you come off and you're like hey this is a terrible idea -01:07:49.680 --> 01:07:51.119 -like to know that there's something that +01:06:47.930 --> 01:06:51.470 +it's really hard to be like, no I love that idea works -01:07:51.119 --> 01:07:54.880 -exists that is like purely hierarchical +01:06:51.470 --> 01:06:55.160 +theatrically but in larger groups may not scale. -01:07:54.880 --> 01:07:57.760 -is incredible like I can just run a +01:06:55.160 --> 01:07:00.160 +So that's a crucible for ideas and a crucible for teams. -01:07:57.760 --> 01:07:58.559 -report +01:07:00.160 --> 01:07:05.280 +The first part is definitely healthy. The second part, -01:07:58.559 --> 01:08:01.839 -basically and get all of my like +01:07:05.280 --> 01:07:10.070 +there's a lot we can we can do, you know, having a front -01:08:01.839 --> 01:08:03.839 -to-do lists that I didn't have to put in +01:07:10.070 --> 01:07:15.160 +and and and good faith conversations on that subject. -01:08:03.839 --> 01:08:05.760 -one specific place +01:07:15.160 --> 01:07:19.600 +Anybody else want to want to wade in after that sorry that -01:08:05.760 --> 01:08:10.559 -and like that's kind of been +01:07:19.600 --> 01:07:23.160 +that was more of a calm down than a fire out. -01:08:10.559 --> 01:08:14.559 -a complex issue for me of like +01:07:23.160 --> 01:07:25.160 +Okay. -01:08:14.559 --> 01:08:16.480 -okay I have all these to-do lists like +01:07:25.160 --> 01:07:27.160 +I think. -01:08:16.480 --> 01:08:18.080 -in google keep or whatever like what do +01:07:27.160 --> 01:07:32.180 +The first part of this but I think we would be remiss not -01:08:18.080 --> 01:08:18.319 -I +01:07:32.180 --> 01:07:35.860 +to highlight org mode, a little bit. Yeah, like, that's, -01:08:18.319 --> 01:08:20.719 -do with them now so being able to like +01:07:35.860 --> 01:07:39.280 +that's our bread and butter. Yeah, our whole project is -01:08:20.719 --> 01:08:21.359 -pull them +01:07:39.280 --> 01:07:40.160 +built on org mode. -01:08:21.359 --> 01:08:24.400 -into one list and then just cycle +01:07:40.160 --> 01:07:44.580 +Right. And I'm just really excited because, like, I have, I -01:08:24.400 --> 01:08:26.640 -through them is really incredible +01:07:44.580 --> 01:07:48.670 +don't have ADHD, but I have like something similar. And so, -01:08:26.640 --> 01:08:30.239 -and I think taking a Dungeon and +01:07:48.670 --> 01:07:52.230 +like to know that there's something that exists, that is -01:08:30.239 --> 01:08:34.480 -like using it to +01:07:52.230 --> 01:07:54.160 +like purely hierarchical. -01:08:34.480 --> 01:08:35.839 -like combining it with org mode +01:07:54.160 --> 01:07:59.170 +It's incredible, like I can just run a report, basically -01:08:35.839 --> 01:08:37.759 -basically +01:07:59.170 --> 01:08:03.550 +and get all of my like to do lists that I didn't have to -01:08:37.759 --> 01:08:41.040 -really yeah I'm excited about it I'm +01:08:03.550 --> 01:08:06.160 +put in one specific place. -01:08:41.040 --> 01:08:42.560 -excited to see like what it can do for +01:08:06.160 --> 01:08:13.190 +And, like, that's kind of been a complex issue for me of -01:08:42.560 --> 01:08:44.159 -player groups +01:08:13.190 --> 01:08:16.680 +like, okay, I have all these to do lists, like in Google -01:08:44.159 --> 01:08:47.759 -yeah especially +01:08:16.680 --> 01:08:19.160 +Keep or whatever like what do I do with them now. -01:08:47.759 --> 01:08:50.319 -like I was excited about Dungeon mode +01:08:19.160 --> 01:08:24.160 +So being able to like pull them into one list. -01:08:50.319 --> 01:08:52.319 -before the pandemic and now like I'm +01:08:24.160 --> 01:08:27.160 +And then recycle through them is really incredible. -01:08:52.319 --> 01:08:53.920 -only more enthusiastic +01:08:27.160 --> 01:08:35.500 +And I think taking dungeon and like using it to like -01:08:53.920 --> 01:08:57.120 -so yeah definitely the pandemic has +01:08:35.500 --> 01:08:40.160 +combining it with org mode basically really. -01:08:57.120 --> 01:08:58.400 -been the greatest thing that happened to +01:08:40.160 --> 01:08:44.210 +I'm excited about it and I'm excited to see like what it -01:08:58.400 --> 01:08:59.120 -this game +01:08:44.210 --> 01:08:46.160 +can do for player groups. -01:08:59.120 --> 01:09:02.080 -terrible terrible as it is to say that +01:08:46.160 --> 01:08:49.190 +Especially now that quarantine like I was excited about -01:09:02.080 --> 01:09:02.640 -it +01:08:49.190 --> 01:08:50.160 +dungeon mode. -01:09:02.640 --> 01:09:05.120 -if we needed a hobby and it turns out +01:08:50.160 --> 01:08:54.040 +Before the pandemic and now like I'm only more enthusiastic. -01:09:05.120 --> 01:09:06.719 -role-playing games are +01:08:54.040 --> 01:08:57.940 +So, yeah, definitely the pandemic has been the greatest -01:09:06.719 --> 01:09:11.279 -a really good fit +01:08:57.940 --> 01:09:01.720 +thing that happened to this game, terrible terrible as it -01:09:11.279 --> 01:09:13.839 -so so I think that's probably about +01:09:01.720 --> 01:09:05.090 +is to say that it, if we needed a hobby and it turns out -01:09:13.839 --> 01:09:14.799 -our time +01:09:05.090 --> 01:09:11.160 +role playing games are are really good. -01:09:14.799 --> 01:09:18.560 -I'm guessing that's my call and +01:09:11.160 --> 01:09:16.610 +So, so I think that's probably about our time. I'm guessing -01:09:18.560 --> 01:09:21.759 -thank you very much thank you +01:09:16.610 --> 01:09:21.160 +that's my call. And thank you very much. -01:09:21.759 --> 01:09:23.120 -everybody +01:09:21.160 --> 01:09:24.970 +Thank you everybody will be around for discord and stuff -01:09:23.120 --> 01:09:25.679 -we'll be around for discord and stuff +01:09:24.970 --> 01:09:27.160 +later come catch us if you want to talk. -01:09:25.679 --> 01:09:31.759 -later come catch us if you want to talk +01:09:27.160 --> 01:09:30.160 +Okay. diff --git a/2020/subtitles/emacsconf-2020--30-a-tour-of-vterm--gabriele-bozzola-sbozzolo-autogen.vtt b/2020/subtitles/emacsconf-2020--30-a-tour-of-vterm--gabriele-bozzola-sbozzolo-autogen.vtt deleted file mode 100644 index 49db0989..00000000 --- a/2020/subtitles/emacsconf-2020--30-a-tour-of-vterm--gabriele-bozzola-sbozzolo-autogen.vtt +++ /dev/null @@ -1,634 +0,0 @@ -WEBVTT - -00:00:00.880 --> 00:00:03.760 -hello and welcome to the stock - -00:00:03.760 --> 00:00:06.080 -the title of the stock is a tour feature - -00:00:06.080 --> 00:00:07.919 -a fast and fully featured terminal - -00:00:07.919 --> 00:00:08.559 -emulator - -00:00:08.559 --> 00:00:11.840 -inside new e-max so let's try to - -00:00:11.840 --> 00:00:13.360 -understand what we mean with the pass - -00:00:13.360 --> 00:00:14.559 -and fully featured - -00:00:14.559 --> 00:00:17.520 -and to do that we'll compare v term with - -00:00:17.520 --> 00:00:18.320 -the - -00:00:18.320 --> 00:00:20.640 -packages which are built in Emacs mean - -00:00:20.640 --> 00:00:22.400 -the term - -00:00:22.400 --> 00:00:25.199 -so let's let's jump into the v term so - -00:00:25.199 --> 00:00:26.720 -this is a feature buffer - -00:00:26.720 --> 00:00:29.679 -and this is a ansi term buffer what I'm - -00:00:29.679 --> 00:00:31.519 -going to do now is first I'm going to - -00:00:31.519 --> 00:00:32.160 -prove you - -00:00:32.160 --> 00:00:35.760 -what we move fast so to do that let me - -00:00:35.760 --> 00:00:37.520 -open a large file display on screen or - -00:00:37.520 --> 00:00:39.280 -large file this is about one megabyte of - -00:00:39.280 --> 00:00:40.239 -data - -00:00:40.239 --> 00:00:43.520 -and let me time that it takes about 0.6 - -00:00:43.520 --> 00:00:44.160 -seconds - -00:00:44.160 --> 00:00:47.200 -with feature let's do the same with - -00:00:47.200 --> 00:00:49.760 -with ancient term well we already - -00:00:49.760 --> 00:00:51.520 -already see the difference - -00:00:51.520 --> 00:00:53.039 -so I will use this time to tell you - -00:00:53.039 --> 00:00:54.559 -what's different and - -00:00:54.559 --> 00:00:57.360 -what is v term exactly so v term is a - -00:00:57.360 --> 00:00:58.879 -terminal emulator built - -00:00:58.879 --> 00:01:01.120 -on top of an external library the - -00:01:01.120 --> 00:01:02.719 -library is called libvi term - -00:01:02.719 --> 00:01:05.519 -and is the same library used by newton - -00:01:05.519 --> 00:01:07.200 -for their own terminal emulator - -00:01:07.200 --> 00:01:10.000 -it's a c library and this is what gives - -00:01:10.000 --> 00:01:10.799 -us - -00:01:10.799 --> 00:01:15.119 -a lot of good features first the speed - -00:01:15.119 --> 00:01:17.280 -time spent here 0.6 is essentially the - -00:01:17.280 --> 00:01:18.479 -time that it takes to - -00:01:18.479 --> 00:01:21.520 -one convert the emax representation of - -00:01:21.520 --> 00:01:22.240 -like text - -00:01:22.240 --> 00:01:23.840 -into the visa and representation of what - -00:01:23.840 --> 00:01:26.400 -was a string and two into - -00:01:26.400 --> 00:01:28.479 -actually displaying that and that can - -00:01:28.479 --> 00:01:29.520 -take time - -00:01:29.520 --> 00:01:31.840 -if there's a if there's quantification - -00:01:31.840 --> 00:01:33.680 -involved so these are the 0.6 seconds - -00:01:33.680 --> 00:01:34.240 -there - -00:01:34.240 --> 00:01:36.960 -as we say in the in ancestor that's much - -00:01:36.960 --> 00:01:37.920 -much - -00:01:37.920 --> 00:01:39.920 -more time it's much slower so the - -00:01:39.920 --> 00:01:41.680 -terminal will feel much snappier much - -00:01:41.680 --> 00:01:42.880 -faster - -00:01:42.880 --> 00:01:46.079 -but that's not the main benefit or the - -00:01:46.079 --> 00:01:47.840 -only benefit of using this external - -00:01:47.840 --> 00:01:48.799 -library - -00:01:48.799 --> 00:01:52.320 -feature the second big benefit - -00:01:52.320 --> 00:01:55.439 -is that v term has support for all the - -00:01:55.439 --> 00:01:56.560 -escape codes - -00:01:56.560 --> 00:01:59.200 -that exterm has support for so v term is - -00:01:59.200 --> 00:02:01.119 -essentially as running x term - -00:02:01.119 --> 00:02:03.600 -inside an imax buffer so let's see that - -00:02:03.600 --> 00:02:04.799 -this for example - -00:02:04.799 --> 00:02:07.119 -let's start by looking at the support - -00:02:07.119 --> 00:02:08.239 -for colors - -00:02:08.239 --> 00:02:09.920 -we have support for all the colors out - -00:02:09.920 --> 00:02:11.840 -of the box we don't have to do anything - -00:02:11.840 --> 00:02:15.040 -and if we did the same here well we have - -00:02:15.040 --> 00:02:15.680 -only - -00:02:15.680 --> 00:02:17.920 -20 colors there's a way to get all the - -00:02:17.920 --> 00:02:19.680 -colors but it's much more involved - -00:02:19.680 --> 00:02:23.040 -but this is not where v term shines - -00:02:23.040 --> 00:02:26.000 -uh we can run all the commands that we - -00:02:26.000 --> 00:02:27.200 -want - -00:02:27.200 --> 00:02:30.480 -h top and cdu - -00:02:30.480 --> 00:02:33.040 -everything runs here also this title - -00:02:33.040 --> 00:02:33.840 -it's a - -00:02:33.840 --> 00:02:36.400 -it's a fairly complicated manipulation - -00:02:36.400 --> 00:02:37.040 -of - -00:02:37.040 --> 00:02:40.879 -the window and it will not work here - -00:02:40.879 --> 00:02:42.319 -it just doesn't work actually now the - -00:02:42.319 --> 00:02:44.640 -terminal is probably messed up - -00:02:44.640 --> 00:02:48.400 -yes so using this external library - -00:02:48.400 --> 00:02:50.959 -removes the burden from the developers - -00:02:50.959 --> 00:02:52.000 -of having to implement - -00:02:52.000 --> 00:02:54.000 -support for all these cape codes we just - -00:02:54.000 --> 00:02:55.360 -use those - -00:02:55.360 --> 00:02:58.480 -so in many ways running veteran - -00:02:58.480 --> 00:03:01.760 -is us running extern inside a max - -00:03:01.760 --> 00:03:04.400 -but it's better than that because since - -00:03:04.400 --> 00:03:05.840 -this is an e-max buffer - -00:03:05.840 --> 00:03:08.879 -we can enjoy a lot of features from - -00:03:08.879 --> 00:03:09.760 -Emacs - -00:03:09.760 --> 00:03:11.920 -as well as a tighter integration with - -00:03:11.920 --> 00:03:13.200 -e-max itself - -00:03:13.200 --> 00:03:16.560 -for example as you see here the title of - -00:03:16.560 --> 00:03:17.599 -my buffer - -00:03:17.599 --> 00:03:20.720 -is from the director I'm in so let's go - -00:03:20.720 --> 00:03:21.760 -to my tmp - -00:03:21.760 --> 00:03:24.799 -the title will change so there's - -00:03:24.799 --> 00:03:26.560 -information being exchanged between v - -00:03:26.560 --> 00:03:28.000 -term and index - -00:03:28.000 --> 00:03:29.760 -and of course the title is not the only - -00:03:29.760 --> 00:03:32.000 -place where information is exchanged - -00:03:32.000 --> 00:03:34.799 -I can find a file and I will be in the - -00:03:34.799 --> 00:03:35.920 -directory - -00:03:35.920 --> 00:03:38.239 -where my terminal is this feature is - -00:03:38.239 --> 00:03:40.000 -also available in nc term - -00:03:40.000 --> 00:03:41.680 -and it works also on b term and it - -00:03:41.680 --> 00:03:43.840 -follows me so if I go to tmp I'll get - -00:03:43.840 --> 00:03:44.720 -the tmp - -00:03:44.720 --> 00:03:48.000 -if I ssh to a remote server it will work - -00:03:48.000 --> 00:03:48.640 -also - -00:03:48.640 --> 00:03:51.120 -on remote servers as well which is a - -00:03:51.120 --> 00:03:53.920 -very nice way to edit files remotely - -00:03:53.920 --> 00:03:55.760 -while we're working on a shelf and - -00:03:55.760 --> 00:03:57.360 -second while vterm - -00:03:57.360 --> 00:03:59.599 -is not an e-lisp interpreter like - -00:03:59.599 --> 00:04:02.159 -initial what we can do is we can - -00:04:02.159 --> 00:04:06.080 -still run inbox functions so for example - -00:04:06.080 --> 00:04:08.319 -that requires some configuration the - -00:04:08.319 --> 00:04:10.159 -term - -00:04:10.159 --> 00:04:12.480 -command message I as you see there's a - -00:04:12.480 --> 00:04:14.000 -higher so what I'm doing - -00:04:14.000 --> 00:04:16.239 -is I'm executing the eagles function I - -00:04:16.239 --> 00:04:17.199 -and I can drop that - -00:04:17.199 --> 00:04:19.840 -and turn it around uh hash function to - -00:04:19.840 --> 00:04:20.320 -run - -00:04:20.320 --> 00:04:24.880 -a-list functions or another one file see - -00:04:24.880 --> 00:04:27.600 -we call this feature message passing and - -00:04:27.600 --> 00:04:28.800 -it requires - -00:04:28.800 --> 00:04:30.880 -some configuration on the emac side as - -00:04:30.880 --> 00:04:32.000 -well as in the shell side - -00:04:32.000 --> 00:04:34.000 -it's important to stress what's the - -00:04:34.000 --> 00:04:35.360 -nature of feature - -00:04:35.360 --> 00:04:37.360 -for instance every time I'm sending a - -00:04:37.360 --> 00:04:39.120 -key binding it's not immediately clear - -00:04:39.120 --> 00:04:40.800 -if my intention is to send it to the - -00:04:40.800 --> 00:04:42.720 -shell or to imax so v term implements - -00:04:42.720 --> 00:04:44.320 -some reasonable defaults - -00:04:44.320 --> 00:04:46.800 -but at the moment it's mainly packaged - -00:04:46.800 --> 00:04:49.120 -to display characters on a screen - -00:04:49.120 --> 00:04:51.199 -so for example if you're using evil the - -00:04:51.199 --> 00:04:53.600 -editing commands in evil will not work - -00:04:53.600 --> 00:04:55.759 -immediately there's some work to be done - -00:04:55.759 --> 00:04:57.840 -and integration can be improved on that - -00:04:57.840 --> 00:04:58.479 -side but - -00:04:58.479 --> 00:05:00.240 -sometimes we really want this to behave - -00:05:00.240 --> 00:05:02.240 -exactly like a imax buffer - -00:05:02.240 --> 00:05:05.440 -we want to be able to search if - -00:05:05.440 --> 00:05:07.039 -if I try to get it to search it will not - -00:05:07.039 --> 00:05:08.880 -work I will send it to the shop so to do - -00:05:08.880 --> 00:05:09.360 -that - -00:05:09.360 --> 00:05:12.400 -we enabled the term copy mode so as you - -00:05:12.400 --> 00:05:12.800 -see - -00:05:12.800 --> 00:05:15.280 -copy mode and now this buffer is - -00:05:15.280 --> 00:05:17.039 -essentially a fundamental buffer - -00:05:17.039 --> 00:05:21.120 -I can move around as I can search - -00:05:21.120 --> 00:05:24.400 -uh so it must have I - -00:05:24.400 --> 00:05:25.840 -can do everything I want and there are - -00:05:25.840 --> 00:05:27.120 -additional features for example I can - -00:05:27.120 --> 00:05:29.600 -jump around - -00:05:29.600 --> 00:05:31.440 -all the prompts and I find this - -00:05:31.440 --> 00:05:32.639 -extremely useful - -00:05:32.639 --> 00:05:34.400 -because I can copy update from my - -00:05:34.400 --> 00:05:35.919 -programs or - -00:05:35.919 --> 00:05:39.199 -what I always have to do is I have to - -00:05:39.199 --> 00:05:42.400 -google some errors so what I do is I - -00:05:42.400 --> 00:05:43.120 -select that - -00:05:43.120 --> 00:05:45.919 -and I have my keybinding in maksakov and - -00:05:45.919 --> 00:05:46.880 -I'm googling - -00:05:46.880 --> 00:05:49.199 -what I have to google so this is very - -00:05:49.199 --> 00:05:50.400 -nice and - -00:05:50.400 --> 00:05:52.800 -if I now that have selected something if - -00:05:52.800 --> 00:05:54.400 -I just press return I will - -00:05:54.400 --> 00:05:57.120 -go back to my normal editing mode with - -00:05:57.120 --> 00:05:57.440 -the - -00:05:57.440 --> 00:06:00.400 -text copied so I can paste it back so - -00:06:00.400 --> 00:06:01.600 -it's a quick way to - -00:06:01.600 --> 00:06:04.160 -interact with copy and interact with uh - -00:06:04.160 --> 00:06:06.400 -with the output of a buffer so finally - -00:06:06.400 --> 00:06:07.840 -let's discuss how to actually - -00:06:07.840 --> 00:06:10.560 -use beta let's circle back and let's go - -00:06:10.560 --> 00:06:12.400 -and let's look at the github repo - -00:06:12.400 --> 00:06:14.400 -where development is happening v term is - -00:06:14.400 --> 00:06:15.520 -available in velpa - -00:06:15.520 --> 00:06:17.919 -but since it's leveraging the power of - -00:06:17.919 --> 00:06:18.960 -an external module - -00:06:18.960 --> 00:06:20.639 -you must have Emacs compiled with - -00:06:20.639 --> 00:06:22.000 -support for modules - -00:06:22.000 --> 00:06:25.600 -and many distros like ubuntu debian - -00:06:25.600 --> 00:06:27.199 -that's not there so you have to get - -00:06:27.199 --> 00:06:29.840 -Emacs with support for modules compiling - -00:06:29.840 --> 00:06:30.160 -or - -00:06:30.160 --> 00:06:32.000 -getting images somewhere else and also - -00:06:32.000 --> 00:06:33.840 -the first time you are going to use this - -00:06:33.840 --> 00:06:34.400 -which - -00:06:34.400 --> 00:06:37.440 -works only on mac or - -00:06:37.440 --> 00:06:40.319 -new linux systems Emacs will try to find - -00:06:40.319 --> 00:06:41.759 -and compile this module - -00:06:41.759 --> 00:06:43.680 -so it's important this requirement is - -00:06:43.680 --> 00:06:45.440 -important if you're using windows - -00:06:45.440 --> 00:06:47.600 -well that's not it's not available and - -00:06:47.600 --> 00:06:49.199 -will not work - -00:06:49.199 --> 00:06:52.560 -so to conclude I want to just advertise - -00:06:52.560 --> 00:06:53.440 -this page - -00:06:53.440 --> 00:06:56.240 -if you have problems look at the issues - -00:06:56.240 --> 00:06:57.120 -and - -00:06:57.120 --> 00:06:59.039 -open unusual in case we'll try to help - -00:06:59.039 --> 00:07:00.800 -you we are very excited about feature - -00:07:00.800 --> 00:07:02.639 -and I think it's a transformative - -00:07:02.639 --> 00:07:10.319 -terminal experience inside glue imax diff --git a/2020/subtitles/emacsconf-2020--30-a-tour-of-vterm--gabriele-bozzola-sbozzolo.vtt b/2020/subtitles/emacsconf-2020--30-a-tour-of-vterm--gabriele-bozzola-sbozzolo.vtt new file mode 100644 index 00000000..183ea9f6 --- /dev/null +++ b/2020/subtitles/emacsconf-2020--30-a-tour-of-vterm--gabriele-bozzola-sbozzolo.vtt @@ -0,0 +1,526 @@ +WEBVTT + +00:00:00.880 --> 00:00:03.760 +Hello and welcome to this talk. + +00:00:03.760 --> 00:00:06.080 +The title of this talk is a tour of vterm, + +00:00:06.080 --> 00:00:08.559 +a fast and fully featured terminal emulator + +00:00:08.559 --> 00:00:10.800 +inside GNU Emacs. + +00:00:10.801 --> 00:00:12.719 +So let's try to understand what we mean + +00:00:12.720 --> 00:00:14.559 +with "fast and fully featured." + +00:00:14.559 --> 00:00:16.800 +To do that we'll compare vterm + +00:00:16.801 --> 00:00:20.400 +with the packages which are built in Emacs, + +00:00:20.401 --> 00:00:22.400 +mainly, term. + +00:00:22.400 --> 00:00:25.039 +So let's jump into the vterm. + +00:00:25.040 --> 00:00:26.720 +So this is a vterm buffer + +00:00:26.720 --> 00:00:29.439 +and this is a ansi-term buffer. + +00:00:29.440 --> 00:00:30.720 +What I'm going to do now is + +00:00:30.721 --> 00:00:32.160 +first I'm going to prove to you + +00:00:32.160 --> 00:00:34.160 +what we mean by fast. + +00:00:34.161 --> 00:00:37.440 +To do that, let me open a large file display on screen-- + +00:00:37.441 --> 00:00:40.239 +a large file, this is about one megabyte of data-- + +00:00:40.239 --> 00:00:41.840 +and let me time that. + +00:00:41.841 --> 00:00:45.200 +It takes about 0.6 seconds with vterm. + +00:00:45.201 --> 00:00:48.320 +Let's do the same with with ansi-term. + +00:00:48.321 --> 00:00:51.520 +Well, we already see the difference. + +00:00:51.520 --> 00:00:53.039 +So I will use this time to tell you + +00:00:53.039 --> 00:00:56.320 +what's different, and what is vterm exactly. + +00:00:56.321 --> 00:00:58.399 +vterm is a terminal emulator + +00:00:58.400 --> 00:01:00.800 +built on top of an external library. + +00:01:00.801 --> 00:01:02.719 +The library is called libvterm, + +00:01:02.719 --> 00:01:05.519 +and is the same library used by Newton + +00:01:05.519 --> 00:01:07.200 +for their own terminal emulator. + +00:01:07.200 --> 00:01:10.799 +It's a C library, and this is what gives us + +00:01:10.799 --> 00:01:15.119 +a lot of good features. First, the speed. + +00:01:15.119 --> 00:01:17.119 +Time spent here, 0.6, is essentially + +00:01:17.120 --> 00:01:18.479 +the time that it takes to: + +00:01:18.479 --> 00:01:22.240 +1. convert the Emacs representation of text + +00:01:22.241 --> 00:01:25.040 +into the vterm representation of what is a string, + +00:01:25.041 --> 00:01:27.360 +and 2., into actually displaying that, + +00:01:27.361 --> 00:01:29.520 +and that can take time + +00:01:29.520 --> 00:01:32.240 +if there's fontification involved. + +00:01:32.241 --> 00:01:34.240 +So these are the 0.6 seconds there. + +00:01:34.240 --> 00:01:38.479 +As we say, in ansi-term, that's much more time. + +00:01:38.480 --> 00:01:40.720 +It's much slower. So the terminal will feel + +00:01:40.721 --> 00:01:42.880 +much snappier, much faster. + +00:01:42.880 --> 00:01:46.720 +But that's not the main benefit or the only benefit + +00:01:46.721 --> 00:01:49.759 +of using this external library vterm. + +00:01:49.760 --> 00:01:53.040 +The second big benefit is that + +00:01:53.041 --> 00:01:56.560 +vterm has support for all the escape codes + +00:01:56.560 --> 00:01:58.320 +that xterm has support for, + +00:01:58.321 --> 00:02:01.119 +so vterm is essentially as running xterm + +00:02:01.119 --> 00:02:03.600 +inside an Emacs buffer. So let's see that. + +00:02:03.600 --> 00:02:05.759 +For example, let's start by looking + +00:02:05.760 --> 00:02:08.239 +at the support for colors. + +00:02:08.239 --> 00:02:10.319 +We have support for all the colors out of the box. + +00:02:10.320 --> 00:02:11.840 +We don't have to do anything. + +00:02:11.840 --> 00:02:14.720 +And if we did the same here, well, + +00:02:14.721 --> 00:02:16.800 +we have only 20 colors. + +00:02:16.801 --> 00:02:18.239 +There's a way to get all the colors, + +00:02:18.240 --> 00:02:19.680 +but it's much more involved. + +00:02:19.680 --> 00:02:23.040 +But this is not where vterm shines. + +00:02:23.040 --> 00:02:27.200 +We can run all the commands that we want. + +00:02:27.200 --> 00:02:31.440 +htop, ncdu, everything runs here. + +00:02:31.441 --> 00:02:35.519 +Also this title, it's a fairly complicated + +00:02:35.520 --> 00:02:37.920 +manipulation of the window + +00:02:37.921 --> 00:02:40.879 +and it will not work here. + +00:02:40.879 --> 00:02:42.000 +It just doesn't work actually. + +00:02:42.001 --> 00:02:46.160 +Now the terminal is probably messed up. Yes. + +00:02:46.161 --> 00:02:48.400 +So using this external library + +00:02:48.400 --> 00:02:50.959 +removes the burden from the developers + +00:02:50.959 --> 00:02:52.319 +of having to implement support + +00:02:52.320 --> 00:02:53.280 +for all the escape codes. + +00:02:53.281 --> 00:02:55.360 +We just use those. + +00:02:55.360 --> 00:02:58.480 +So in many ways, running vterm + +00:02:58.480 --> 00:03:01.760 +is running xterm inside Emacs, + +00:03:01.760 --> 00:03:04.159 +but it's better than that because, + +00:03:04.160 --> 00:03:05.840 +since this is an Emacs buffer, + +00:03:05.840 --> 00:03:09.760 +we can enjoy a lot of features from Emacs + +00:03:09.760 --> 00:03:11.360 +as well as a tighter integration + +00:03:11.361 --> 00:03:13.200 +with Emacs itself. + +00:03:13.200 --> 00:03:15.840 +For example, as you see here, + +00:03:15.841 --> 00:03:20.239 +the title of my buffer is from the directory I'm in. + +00:03:20.240 --> 00:03:21.760 +So let's go to my tmp. + +00:03:21.760 --> 00:03:23.440 +The title will change. + +00:03:23.441 --> 00:03:25.920 +So there's information being exchanged + +00:03:25.921 --> 00:03:28.000 +between vterm and Emacs. + +00:03:28.000 --> 00:03:30.000 +And of course, the title is not the only place + +00:03:30.001 --> 00:03:32.000 +where information is exchanged. + +00:03:32.000 --> 00:03:35.920 +I can find a file and I will be in the directory + +00:03:35.920 --> 00:03:37.680 +where my terminal is. + +00:03:37.681 --> 00:03:40.000 +This feature is also available in ansi-term, + +00:03:40.000 --> 00:03:41.360 +and it works also on vterm, + +00:03:41.361 --> 00:03:43.440 +and it follows me. So if I go to tmp, + +00:03:43.441 --> 00:03:44.720 +I'll get the tmp. + +00:03:44.720 --> 00:03:47.120 +If I ssh to a remote server, + +00:03:47.121 --> 00:03:50.239 +it will work also on remote servers as well, + +00:03:50.240 --> 00:03:53.920 +which is a very nice way to edit files remotely + +00:03:53.920 --> 00:03:55.599 +while we're working on a shell. + +00:03:55.600 --> 00:03:59.280 +And second, while vterm is not an Elisp interpreter + +00:03:59.281 --> 00:04:01.200 +like eshell, what we can do is + +00:04:01.201 --> 00:04:04.720 +we can still run Emacs functions. + +00:04:04.721 --> 00:04:06.080 +So for example... + +00:04:06.081 --> 00:04:08.000 +that requires some configuration. + +00:04:08.001 --> 00:04:11.599 +vterm command (message "hi") + +00:04:11.600 --> 00:04:13.120 +as you see there's a "hi" here. + +00:04:13.121 --> 00:04:14.959 +So what I'm doing is I'm executing + +00:04:14.960 --> 00:04:16.239 +the Elisp function hi. + +00:04:16.239 --> 00:04:18.959 +I can drop that and turn it around, + +00:04:18.960 --> 00:04:21.600 +hash function to run Elisp functions. + +00:04:21.601 --> 00:04:24.880 +Or another one, find-file, same. + +00:04:24.880 --> 00:04:27.360 +We call this feature "message passing," + +00:04:27.361 --> 00:04:30.000 +and it requires some configuration + +00:04:30.001 --> 00:04:32.000 +on the Emacs side as well as in the shell side. + +00:04:32.000 --> 00:04:33.440 +It's important to stress + +00:04:33.441 --> 00:04:35.360 +what's the nature of vterm. + +00:04:35.360 --> 00:04:37.919 +For instance, every time I'm sending a key binding, + +00:04:37.920 --> 00:04:40.000 +it's not immediately clear if my intention is + +00:04:40.001 --> 00:04:41.840 +to send it to the shell or to Emacs. + +00:04:41.841 --> 00:04:44.320 +So vterm implements some reasonable defaults, + +00:04:44.320 --> 00:04:46.800 +but at the moment it's mainly packaged + +00:04:46.800 --> 00:04:49.120 +to display characters on a screen. + +00:04:49.120 --> 00:04:50.720 +So for example, if you're using evil, + +00:04:50.721 --> 00:04:52.639 +the editing commands in evil + +00:04:52.640 --> 00:04:54.080 +will not work immediately. + +00:04:54.081 --> 00:04:55.759 +There's some work to be done + +00:04:55.759 --> 00:04:58.160 +and integration can be improved on that side, + +00:04:58.161 --> 00:05:00.240 +but sometimes we really want this to behave + +00:05:00.240 --> 00:05:02.240 +exactly like a Emacs buffer. + +00:05:02.240 --> 00:05:03.680 +We want to be able to search. + +00:05:03.681 --> 00:05:06.639 +If I try to get it to search, + +00:05:06.640 --> 00:05:07.280 +it will not work. + +00:05:07.281 --> 00:05:08.400 +I will send it to the shell. + +00:05:08.401 --> 00:05:11.919 +So to do that, we enabled vterm copy mode. + +00:05:11.920 --> 00:05:14.720 +As you see, copy mode, and now this buffer + +00:05:14.721 --> 00:05:17.039 +is essentially a fundamental buffer. + +00:05:17.039 --> 00:05:21.120 +I can move around. I can search. + +00:05:21.120 --> 00:05:25.520 +So it must have... I can do everything I want. + +00:05:25.521 --> 00:05:26.479 +And there are additional features. + +00:05:26.480 --> 00:05:30.560 +For example, I can jump around all the prompts. + +00:05:30.561 --> 00:05:32.639 +I find this extremely useful, + +00:05:32.639 --> 00:05:35.039 +because I can copy updates from my programs. + +00:05:35.040 --> 00:05:38.320 +What I always have to do is + +00:05:38.321 --> 00:05:41.520 +I have to Google some errors. + +00:05:41.521 --> 00:05:43.120 +So what I do is I select that + +00:05:43.120 --> 00:05:45.120 +and I have my keybinding in Emacs conf, + +00:05:45.121 --> 00:05:48.479 +and I'm Googling what I have to Google. + +00:05:48.480 --> 00:05:51.120 +So this is very nice and if I... + +00:05:51.121 --> 00:05:52.639 +now that I have selected something, + +00:05:52.640 --> 00:05:53.840 +if I just press return, + +00:05:53.841 --> 00:05:56.400 +I will go back to my normal editing mode + +00:05:56.401 --> 00:06:00.160 +with the text copied, so I can paste it back. + +00:06:00.161 --> 00:06:02.720 +So it's a quick way to interact with copy + +00:06:02.721 --> 00:06:05.840 +and interact with the output of a buffer. + +00:06:05.841 --> 00:06:09.120 +So finally, let's discuss how to actually use vterm. + +00:06:09.121 --> 00:06:10.560 +Let's circle back, let's go, + +00:06:10.560 --> 00:06:12.400 +and let's look at the GitHub repo + +00:06:12.400 --> 00:06:14.000 +where development is happening. + +00:06:14.001 --> 00:06:15.520 +vterm is available in MELPA, + +00:06:15.520 --> 00:06:17.759 +but since it's leveraging the power + +00:06:17.760 --> 00:06:18.960 +of an external module, + +00:06:18.960 --> 00:06:20.479 +you must have Emacs compiled + +00:06:20.480 --> 00:06:22.000 +with support for modules, + +00:06:22.000 --> 00:06:25.600 +and many distros like Ubuntu, Debian, + +00:06:25.600 --> 00:06:26.880 +that's not there. So you have to + +00:06:26.881 --> 00:06:29.199 +get Emacs with support for modules: + +00:06:29.200 --> 00:06:31.360 +compiling or getting images somewhere else. + +00:06:31.361 --> 00:06:33.840 +And also, the first time you are going to use this, + +00:06:33.840 --> 00:06:38.960 +which works only on Mac or GNU Linux systems, + +00:06:38.961 --> 00:06:41.759 +Emacs will try to find and compile this module, + +00:06:41.759 --> 00:06:44.240 +so it's important. This requirement is important. + +00:06:44.241 --> 00:06:46.400 +If you're using Windows, well, + +00:06:46.401 --> 00:06:49.199 +it's not available and will not work. + +00:06:49.199 --> 00:06:53.440 +So to conclude, I want to just advertise this page. + +00:06:53.440 --> 00:06:56.240 +If you have problems, look at the issues + +00:06:56.240 --> 00:06:58.240 +and open an issue in case. + +00:06:58.241 --> 00:06:59.199 +We'll try to help you. + +00:06:59.200 --> 00:07:00.800 +We are very excited about vterm, + +00:07:00.800 --> 00:07:02.639 +and I think it's a transformative + +00:07:02.639 --> 00:07:10.319 +terminal experience inside GNU Emacs. diff --git a/2020/subtitles/emacsconf-2020--32-object-oriented-code-in-the-gnus-newsreader--eric-abrahamsen-autogen.vtt b/2020/subtitles/emacsconf-2020--32-object-oriented-code-in-the-gnus-newsreader--eric-abrahamsen-autogen.vtt index 9f4d0e06..55af2c4c 100644 --- a/2020/subtitles/emacsconf-2020--32-object-oriented-code-in-the-gnus-newsreader--eric-abrahamsen-autogen.vtt +++ b/2020/subtitles/emacsconf-2020--32-object-oriented-code-in-the-gnus-newsreader--eric-abrahamsen-autogen.vtt @@ -1,733 +1,682 @@ WEBVTT 00:00:01.839 --> 00:00:04.160 -hello EmacsConf +Hello, EmacsConf! -00:00:04.160 --> 00:00:05.759 -thanks very much first of all to the +00:00:04.160 --> 00:00:05.279 +Thanks very much, first of all, -00:00:05.759 --> 00:00:07.200 -organizers of the conference +00:00:05.280 --> 00:00:07.200 +to the organizers of the conference -00:00:07.200 --> 00:00:09.440 -and to the audience who I hope is out +00:00:07.200 --> 00:00:08.800 +and to the audience, -00:00:09.440 --> 00:00:10.480 -there somewhere +00:00:08.801 --> 00:00:10.480 +who I hope is out there somewhere, -00:00:10.480 --> 00:00:12.080 -uh for giving me this chance to talk +00:00:10.480 --> 00:00:11.679 +for giving me this chance -00:00:12.080 --> 00:00:14.240 -about Emacs and some of my uh +00:00:11.680 --> 00:00:12.880 +to talk about Emacs -00:00:14.240 --> 00:00:16.560 -my poking around with Emacs lisp my name +00:00:12.881 --> 00:00:16.240 +and some of my poking around with Emacs Lisp. -00:00:16.560 --> 00:00:18.480 -is eric abrahamson I'm not +00:00:16.241 --> 00:00:17.680 +My name is Eric Abrahamsen. -00:00:18.480 --> 00:00:20.960 -a professional programmer but I use +00:00:17.681 --> 00:00:20.480 +I'm not a professional programmer, -00:00:20.960 --> 00:00:21.920 -Emacs all day +00:00:20.481 --> 00:00:23.039 +but I use Emacs all day, every day, -00:00:21.920 --> 00:00:24.800 -every day for writing for translating +00:00:23.040 --> 00:00:24.800 +for writing, for translating, 00:00:24.800 --> 00:00:26.160 -for project management +for project management, -00:00:26.160 --> 00:00:28.160 -and most importantly for email which +00:00:26.160 --> 00:00:27.920 +and most importantly, for email, -00:00:28.160 --> 00:00:29.199 -will be the +00:00:27.921 --> 00:00:30.640 +which will be the subject of my talk today. -00:00:29.199 --> 00:00:32.480 -subject of my talk today so I'm talking +00:00:30.641 --> 00:00:32.880 +So I'm talking about -00:00:32.480 --> 00:00:35.440 -about object-oriented code in Emacs +00:00:32.881 --> 00:00:34.160 +object-oriented code -00:00:35.440 --> 00:00:38.320 -uh most famous possibly oldest +00:00:34.161 --> 00:00:38.320 +in Emacs' most famous, possibly oldest, -00:00:38.320 --> 00:00:40.160 -definitely most notorious news reader +00:00:38.320 --> 00:00:39.520 +definitely most notorious -00:00:40.160 --> 00:00:41.760 -slash Emacs client +00:00:39.521 --> 00:00:42.800 +news reader / email client, -00:00:41.760 --> 00:00:44.320 -email client so in particular object +00:00:42.801 --> 00:00:44.000 +so, in particular, -00:00:44.320 --> 00:00:45.440 -oriented code +00:00:44.001 --> 00:00:46.000 +object-oriented code in Gnus. -00:00:45.440 --> 00:00:50.239 -in news why object-oriented code +00:00:46.001 --> 00:00:50.239 +Why object-oriented code? -00:00:50.239 --> 00:00:51.920 -the way news works is it started off as +00:00:50.239 --> 00:00:51.199 +The way Gnus works is -00:00:51.920 --> 00:00:53.600 -a news reader so for access +00:00:51.200 --> 00:00:52.480 +it started off as a news reader, -00:00:53.600 --> 00:00:57.039 -accessing nntp servers and later on grew +00:00:52.481 --> 00:00:55.920 +so for accessing NNTP servers -00:00:57.039 --> 00:00:59.120 -a whole bunch of new functionality as a +00:00:55.921 --> 00:00:57.600 +and later on grew a whole bunch -00:00:59.120 --> 00:01:01.039 -mail client so it can talk to imap +00:00:57.601 --> 00:00:59.760 +of new functionality as a mail client, -00:01:01.039 --> 00:01:02.079 -servers +00:00:59.761 --> 00:01:02.079 +so it can talk to IMAP servers, -00:01:02.079 --> 00:01:04.799 -mail dealer directories uh folders on +00:01:02.079 --> 00:01:04.320 +Maildir directories, -00:01:04.799 --> 00:01:06.640 -your file system all kinds of stuff +00:01:04.321 --> 00:01:05.360 +folders on your file system, -00:01:06.640 --> 00:01:08.400 -but it presents a unified interface to +00:01:05.361 --> 00:01:06.640 +all kinds of stuff, -00:01:08.400 --> 00:01:09.760 -all those things so it's basically +00:01:06.640 --> 00:01:08.320 +but it presents a unified interface -00:01:09.760 --> 00:01:11.040 -polymorphism +00:01:08.321 --> 00:01:08.960 +to all those things, -00:01:11.040 --> 00:01:14.000 -one of the the basic fundamental +00:01:08.961 --> 00:01:11.040 +so it's basically polymorphism, -00:01:14.000 --> 00:01:16.400 -principles of object oriented code so +00:01:11.040 --> 00:01:14.560 +one of the the basic fundamental principles -00:01:16.400 --> 00:01:18.720 -it's a good fit second reason is it +00:01:14.561 --> 00:01:15.680 +of object oriented code. -00:01:18.720 --> 00:01:19.920 -already is +00:01:15.681 --> 00:01:17.600 +So it's a good fit. -00:01:19.920 --> 00:01:22.880 -object oriented and I'll get into what +00:01:17.601 --> 00:01:21.439 +Second reason is it already is object-oriented, -00:01:22.880 --> 00:01:23.759 -that means +00:01:21.440 --> 00:01:25.280 +and I'll get into what that means in a second. -00:01:23.759 --> 00:01:27.280 -in a second so +00:01:25.281 --> 00:01:28.479 +So the background that you should know -00:01:27.280 --> 00:01:28.640 -the background that you should know is +00:01:28.480 --> 00:01:30.000 +is that most of this code -00:01:28.640 --> 00:01:30.640 -that most of this code was written in - -00:01:30.640 --> 00:01:32.560 -the 90s +00:01:30.001 --> 00:01:32.560 +was written in the 90s. 00:01:32.560 --> 00:01:34.880 -Emacs lisp has only grown sort of - -00:01:34.880 --> 00:01:36.159 -official +Emacs Lisp has only grown sort of -00:01:36.159 --> 00:01:38.640 -object orientation support libraries +00:01:34.881 --> 00:01:38.640 +official object orientation support libraries 00:01:38.640 --> 00:01:41.200 -over the past 10 years or so - -00:01:41.200 --> 00:01:43.840 -from about 2010 to the present so what - -00:01:43.840 --> 00:01:44.799 -does - -00:01:44.799 --> 00:01:48.640 -news do so the basics of +over the past 10 years or so, -00:01:48.640 --> 00:01:50.560 -object orientation in most languages are +00:01:41.200 --> 00:01:42.799 +from about 2010 to the present. -00:01:50.560 --> 00:01:52.240 -you you define +00:01:42.800 --> 00:01:45.920 +So what does Gnus do? -00:01:52.240 --> 00:01:53.759 -a class of some sort and then you +00:01:45.921 --> 00:01:49.520 +So the basics of object orientation -00:01:53.759 --> 00:01:55.840 -instantiate that class and these +00:01:49.521 --> 00:01:50.560 +in most languages are: -00:01:55.840 --> 00:01:58.079 -class instances have two things they +00:01:50.560 --> 00:01:53.439 +you define a class of some sort, -00:01:58.079 --> 00:02:00.320 -have data attributes or +00:01:53.440 --> 00:01:55.040 +and then you instantiate that class. -00:02:00.320 --> 00:02:01.759 -slots or members or whatever you're +00:01:55.041 --> 00:01:57.920 +These class instances have two things: -00:02:01.759 --> 00:02:04.799 -going to call them and they have +00:01:57.921 --> 00:02:00.719 +they have data attributes (or slots, -00:02:04.799 --> 00:02:07.280 -methods which operate on individual +00:02:00.720 --> 00:02:01.680 +or members, or whatever -00:02:07.280 --> 00:02:08.399 -instances +00:02:01.681 --> 00:02:02.640 +you're going to call them), -00:02:08.399 --> 00:02:11.120 -so you could say that you create or +00:02:02.641 --> 00:02:05.600 +and they have methods -00:02:11.120 --> 00:02:12.879 -instantiate an instance of a class in +00:02:05.601 --> 00:02:08.399 +which operate on individual instances. -00:02:12.879 --> 00:02:13.920 -that instance +00:02:08.399 --> 00:02:10.239 +So you could say that -00:02:13.920 --> 00:02:16.239 -owns two things that owns its set of +00:02:10.240 --> 00:02:11.840 +you create or instantiate -00:02:16.239 --> 00:02:17.120 -attributes +00:02:11.841 --> 00:02:12.800 +an instance of a class, -00:02:17.120 --> 00:02:20.239 -and it owns some methods which +00:02:12.801 --> 00:02:14.800 +and that instance owns two things. -00:02:20.239 --> 00:02:23.280 -also work on the on the instance +00:02:14.801 --> 00:02:17.120 +That owns its set of attributes, -00:02:23.280 --> 00:02:26.720 -so both in nurse's existing code and in +00:02:17.120 --> 00:02:19.520 +and it owns some methods, -00:02:26.720 --> 00:02:29.040 -the more standard object oriented Emacs +00:02:19.521 --> 00:02:23.280 +which also work on the instance. -00:02:29.040 --> 00:02:30.080 -lisp libraries +00:02:23.280 --> 00:02:25.680 +Both in Gnus' existing code -00:02:30.080 --> 00:02:32.480 -this relationship is turned on its head +00:02:25.681 --> 00:02:28.560 +and in the more standard object-oriented -00:02:32.480 --> 00:02:34.080 -a little bit +00:02:28.561 --> 00:02:31.680 +Emacs Lisp libraries, this relationship -00:02:34.080 --> 00:02:37.599 -in that data slots and +00:02:31.681 --> 00:02:34.080 +is turned on its head a little bit, -00:02:37.599 --> 00:02:40.239 -uh and instance methods are defined +00:02:34.080 --> 00:02:39.599 +in that data slots and instance methods -00:02:40.239 --> 00:02:41.360 -outside of the +00:02:39.600 --> 00:02:41.760 +are defined outside of the class -00:02:41.360 --> 00:02:42.959 -class or the instances themselves so +00:02:41.761 --> 00:02:42.959 +or the instances themselves. 00:02:42.959 --> 00:02:45.040 -they are top level definitions +They are top-level definitions. 00:02:45.040 --> 00:02:46.879 -so we'll get to what that means in the +We'll get to what that means -00:02:46.879 --> 00:02:48.319 -in the newer libraries um +00:02:46.879 --> 00:02:48.720 +in the newer libraries in a bit, -00:02:48.319 --> 00:02:49.840 -in a bit but uh first I want to talk +00:02:48.721 --> 00:02:49.920 +but first I want to talk about -00:02:49.840 --> 00:02:51.760 -about how news does this and in order to +00:02:49.921 --> 00:02:51.280 +how Gnus does this. -00:02:51.760 --> 00:02:54.319 -do that we are going to go deep into +00:02:51.281 --> 00:02:52.160 +In order to do that, -00:02:54.319 --> 00:02:57.440 -the darkest corner of the new co source +00:02:52.161 --> 00:02:54.319 +we are going to go deep into -00:02:57.440 --> 00:02:59.879 -code tree to a library called +00:02:54.319 --> 00:02:55.760 +the darkest corner -00:02:59.879 --> 00:03:02.879 -nno.l very cryptically +00:02:55.761 --> 00:02:58.080 +of the Gnus source code tree -00:03:02.879 --> 00:03:05.040 -titled uh library and when we open it up +00:02:58.081 --> 00:03:01.440 +to a library called nnoo.el, -00:03:05.040 --> 00:03:06.800 -we find +00:03:01.441 --> 00:03:04.080 +very cryptically-titled library, -00:03:06.800 --> 00:03:09.519 -a library with no code comments and +00:03:04.081 --> 00:03:06.800 +and when we open it up, we find -00:03:09.519 --> 00:03:11.040 -almost no doc strings +00:03:06.800 --> 00:03:09.280 +a library with no code comments + +00:03:09.281 --> 00:03:11.040 +and almost no doc strings. 00:03:11.040 --> 00:03:12.800 -almost as if lars was a little ashamed +Almost as if Lars was a little ashamed-- 00:03:12.800 --> 00:03:14.159 -not ashamed but knew he was doing +not ashamed, but knew he was doing 00:03:14.159 --> 00:03:16.000 something a little bit crazy -00:03:16.000 --> 00:03:19.040 -and didn't want anyone to see so +00:03:16.000 --> 00:03:18.080 +and didn't want anyone to see. -00:03:19.040 --> 00:03:21.040 -this file contains the the object +00:03:18.081 --> 00:03:20.560 +So this file contains -00:03:21.040 --> 00:03:22.400 -oriented mechanism +00:03:20.561 --> 00:03:22.400 +the object-oriented mechanism -00:03:22.400 --> 00:03:24.480 -whereby you can define different kinds +00:03:22.400 --> 00:03:23.920 +whereby you can define -00:03:24.480 --> 00:03:25.760 -of back ends for news +00:03:23.921 --> 00:03:25.760 +different kinds of backends for Gnus, -00:03:25.760 --> 00:03:27.280 -and then those back ends can be +00:03:25.760 --> 00:03:26.799 +and then those backends -00:03:27.280 --> 00:03:29.760 -instantiated as individual +00:03:26.800 --> 00:03:30.879 +can be instantiated as individual servers. -00:03:29.760 --> 00:03:32.480 -servers and as you define these backends +00:03:30.880 --> 00:03:32.480 +As you define these backends, -00:03:32.480 --> 00:03:33.360 -you're supposed to use +00:03:32.480 --> 00:03:34.319 +you're supposed to use two macros, -00:03:33.360 --> 00:03:36.000 -two macros which you can see here one is +00:03:34.320 --> 00:03:35.680 +which you can see here. -00:03:36.000 --> 00:03:36.640 -called def +00:03:35.681 --> 00:03:37.280 +One is called defvoo, -00:03:36.640 --> 00:03:39.599 -vu and one is called defu and if you +00:03:37.281 --> 00:03:39.440 +and one is called deffoo. -00:03:39.599 --> 00:03:41.280 -look at the definitions the definitions +00:03:39.441 --> 00:03:40.400 +If you look at the definitions, -00:03:41.280 --> 00:03:43.280 -look pretty simple here def vu basically +00:03:40.401 --> 00:03:41.920 +the definitions look pretty simple. -00:03:43.280 --> 00:03:45.440 -turns into a def var +00:03:41.921 --> 00:03:45.440 +Here, defvoo basically turns into a defvar 00:03:45.440 --> 00:03:49.040 -and foo turns into a defund +and foo turns into a defun. 00:03:49.040 --> 00:03:52.239 -and along with those basic definitions +Along with those basic definitions, 00:03:52.239 --> 00:03:55.760 -the library also does some registration +the library also does some registration, 00:03:55.760 --> 00:03:58.720 -memoization caching of those variables - -00:03:58.720 --> 00:04:00.080 -it saves them in the structure - -00:04:00.080 --> 00:04:01.840 -for later use so that we know that those - -00:04:01.840 --> 00:04:03.360 -are meant to be - -00:04:03.360 --> 00:04:05.280 -uh attributes and methods that are used +memoization, caching of those variables. -00:04:05.280 --> 00:04:06.640 -with instances +00:03:58.720 --> 00:04:00.879 +It saves them in the structure for later use, -00:04:06.640 --> 00:04:08.000 -with server instances but you can see +00:04:00.880 --> 00:04:03.360 +so that we know that those are meant to be -00:04:08.000 --> 00:04:09.280 -that there's no server instance +00:04:03.360 --> 00:04:04.799 +attributes and methods -00:04:09.280 --> 00:04:10.560 -definition here there's no +00:04:04.800 --> 00:04:06.640 +that are used with instances, -00:04:10.560 --> 00:04:13.200 -like no nothing these are top level +00:04:06.640 --> 00:04:07.519 +with server instances. -00:04:13.200 --> 00:04:14.239 -these are top level +00:04:07.520 --> 00:04:08.159 +But you can see that -00:04:14.239 --> 00:04:18.160 -definitions so really data attributes +00:04:08.160 --> 00:04:10.000 +there's no server instance definition here. -00:04:18.160 --> 00:04:18.639 -for +00:04:10.001 --> 00:04:12.159 +There's no, like, no nothing. -00:04:18.639 --> 00:04:22.000 -new servers and +00:04:12.160 --> 00:04:14.799 +These are top-level definitions, -00:04:22.000 --> 00:04:23.840 -methods or functions that operate on +00:04:14.800 --> 00:04:20.239 +so really, data attributes for new servers -00:04:23.840 --> 00:04:25.440 -those instances are completely +00:04:20.240 --> 00:04:23.040 +and methods or functions -00:04:25.440 --> 00:04:28.400 -separate mechanisms they don't really +00:04:23.041 --> 00:04:24.639 +that operate on those instances -00:04:28.400 --> 00:04:29.600 -have anything to do with each other they +00:04:24.640 --> 00:04:27.840 +are completely separate mechanisms. -00:04:29.600 --> 00:04:31.680 -don't belong to the same data structures +00:04:27.841 --> 00:04:29.040 +They don't really have anything to do -00:04:31.680 --> 00:04:37.120 -so how do they work follow me +00:04:29.041 --> 00:04:29.520 +with each other. -00:04:37.120 --> 00:04:39.520 -aka methods and attributes these are all +00:04:29.521 --> 00:04:31.680 +They don't belong to the same data structures. -00:04:39.520 --> 00:04:41.360 -the things I just said +00:04:31.680 --> 00:04:34.080 +So how do they work? -00:04:41.360 --> 00:04:44.479 -so when you define a +00:04:34.081 --> 00:04:37.120 +Follow me. deffoo and defvoo, -00:04:44.479 --> 00:04:48.560 -a backend type +00:04:37.120 --> 00:04:38.960 +aka methods and attributes, -00:04:48.560 --> 00:04:51.199 -in noose what you get is this a +00:04:38.961 --> 00:04:41.360 +these are all the things I just said. -00:04:51.199 --> 00:04:52.400 -definition a list +00:04:41.360 --> 00:04:50.240 +So when you define a a backend type in Gnus, -00:04:52.400 --> 00:04:54.080 -and it'll say there is such a back end +00:04:50.241 --> 00:04:52.400 +what you get is this: a definition, a list. -00:04:54.080 --> 00:04:55.520 -as nnml +00:04:52.400 --> 00:04:55.520 +It'll say, there is such a backend as nnml, 00:04:55.520 --> 00:04:58.880 -and these are its uh data attributes +and these are its data attributes -00:04:58.880 --> 00:04:59.520 -that any +00:04:58.880 --> 00:05:01.039 +that any given instance can have, -00:04:59.520 --> 00:05:01.840 -given instance can have and then these +00:05:01.040 --> 00:05:04.720 +and then these are the functions or methods -00:05:01.840 --> 00:05:02.960 -are +00:05:04.721 --> 00:05:06.880 +that are defined to operate on -00:05:02.960 --> 00:05:04.960 -the functions or methods that are +00:05:06.880 --> 00:05:08.240 +an instance of this backend, -00:05:04.960 --> 00:05:06.880 -defined to operate on +00:05:08.241 --> 00:05:09.600 +so a server that belongs to -00:05:06.880 --> 00:05:08.960 -an instance of this backend so a server +00:05:09.601 --> 00:05:12.160 +the nnml backend. -00:05:08.960 --> 00:05:11.440 -that belongs to the nnml +00:05:12.161 --> 00:05:13.600 +So at least we have this data here. -00:05:11.440 --> 00:05:13.360 -backend so at least we have this data +00:05:13.601 --> 00:05:16.080 +That's handy. We don't really touch that. -00:05:13.360 --> 00:05:15.120 -here so that's that's handy we don't you +00:05:16.081 --> 00:05:19.600 +That's, like, very, very, very deep Gnus code -00:05:15.120 --> 00:05:16.880 -don't really touch that that's like very +00:05:19.601 --> 00:05:20.560 +that doesn't really come up -00:05:16.880 --> 00:05:18.000 -very very deep +00:05:20.560 --> 00:05:25.199 +even as a bug squasher or whatever. -00:05:18.000 --> 00:05:20.560 -um use code that doesn't really come up +00:05:25.200 --> 00:05:26.160 +We don't touch that very often, -00:05:20.560 --> 00:05:22.560 -even as a +00:05:26.161 --> 00:05:26.800 +but there they are, -00:05:22.560 --> 00:05:25.280 -even as a bug squasher or whatever we +00:05:26.801 --> 00:05:29.199 +and that's how they work. -00:05:25.280 --> 00:05:26.479 -don't touch that very often but there +00:05:29.200 --> 00:05:31.039 +Now the next thing that obviously -00:05:26.479 --> 00:05:27.280 -they are and that's +00:05:31.040 --> 00:05:32.080 +you want to know is, okay, -00:05:27.280 --> 00:05:30.400 -that's how they work now the next thing +00:05:32.080 --> 00:05:33.759 +where are... if I've started up Gnus, -00:05:30.400 --> 00:05:32.080 -that obviously you want to know is okay +00:05:33.760 --> 00:05:35.039 +where are my servers? -00:05:32.080 --> 00:05:34.000 -where are if I've started up news where +00:05:35.039 --> 00:05:36.880 +Where are these server objects, -00:05:34.000 --> 00:05:35.039 -are my servers +00:05:36.881 --> 00:05:40.479 +since this is object-oriented programming? -00:05:35.039 --> 00:05:37.199 -uh where are these server objects since +00:05:40.480 --> 00:05:41.520 +And the weird thing -00:05:37.199 --> 00:05:39.199 -this is object oriented +00:05:41.521 --> 00:05:43.759 +that you will eventually figure out -00:05:39.199 --> 00:05:41.840 -programming and the weird thing that you +00:05:43.760 --> 00:05:45.680 +(in some cases, after years of poking around) -00:05:41.840 --> 00:05:43.199 -will eventually +00:05:45.681 --> 00:05:46.880 +in the Gnus source code -00:05:43.199 --> 00:05:45.199 -figure out in some cases after years of +00:05:46.880 --> 00:05:48.880 +is that servers do not exist -00:05:45.199 --> 00:05:46.880 -poking around in the new source code +00:05:48.881 --> 00:05:51.360 +in an ontological, philosophical sense, -00:05:46.880 --> 00:05:49.199 -is that servers do not exist in an +00:05:51.361 --> 00:05:55.280 +as objects. The primary data structures of Gnus -00:05:49.199 --> 00:05:50.320 -ontological +00:05:55.281 --> 00:05:58.160 +are groups, and in sort of -00:05:50.320 --> 00:05:53.440 -philosophical sense as objects the +00:05:58.161 --> 00:06:00.560 +an object-oriented hierarchical mindset, -00:05:53.440 --> 00:05:55.440 -primary data structures of noose are +00:06:00.561 --> 00:06:03.039 +you'd think, well, groups belong to servers, -00:05:55.440 --> 00:05:57.039 -groups +00:06:03.040 --> 00:06:05.759 +so servers must exist, but they don't. -00:05:57.039 --> 00:05:58.960 -and in sort of an object-oriented +00:06:05.759 --> 00:06:07.840 +Each group... And here you can see -00:05:58.960 --> 00:06:00.720 -hierarchical you know mindset you'd - -00:06:00.720 --> 00:06:01.759 -think well - -00:06:01.759 --> 00:06:03.759 -groups belong to servers so servers must - -00:06:03.759 --> 00:06:05.759 -exist but they don't - -00:06:05.759 --> 00:06:08.000 -each group and here you can see some - -00:06:08.000 --> 00:06:09.360 -examples of groups +00:06:07.841 --> 00:06:09.360 +some examples of groups... 00:06:09.360 --> 00:06:11.199 -these are basically the data structures +These are basically the data structures -00:06:11.199 --> 00:06:13.039 -that represent a group each group also +00:06:11.199 --> 00:06:12.240 +that represent a group. -00:06:13.039 --> 00:06:14.960 -has a little entry here that +00:06:12.241 --> 00:06:14.160 +Each group also has a little entry here -00:06:14.960 --> 00:06:17.039 -that tells you what server it belongs to +00:06:14.161 --> 00:06:17.039 +that tells you what server it belongs to, -00:06:17.039 --> 00:06:18.000 -and each group +00:06:17.039 --> 00:06:20.080 +and each group replicates that data, -00:06:18.000 --> 00:06:20.479 -replicates that data uh saying which +00:06:20.081 --> 00:06:21.600 +saying which server it belongs to. -00:06:20.479 --> 00:06:23.120 -server it belongs to and so when +00:06:21.601 --> 00:06:24.000 +So when Gnus is going through -00:06:23.120 --> 00:06:24.479 -nurse is going through doing its +00:06:24.001 --> 00:06:25.280 +doing its business, -00:06:24.479 --> 00:06:26.160 -business uh trying to figure out what's +00:06:25.281 --> 00:06:27.039 +trying to figure out updating mail -00:06:26.160 --> 00:06:27.680 -like updating mail from the groups or +00:06:27.040 --> 00:06:28.479 +from the groups or whatever, -00:06:27.680 --> 00:06:29.840 -whatever almost every time +00:06:28.480 --> 00:06:30.960 +almost every time, it will cycle through -00:06:29.840 --> 00:06:31.600 -it will cycle through all the list of - -00:06:31.600 --> 00:06:32.960 -groups it'll +00:06:30.961 --> 00:06:32.960 +all the list of groups. 00:06:32.960 --> 00:06:34.960 -it'll look at all the server definitions - -00:06:34.960 --> 00:06:36.720 -and it will categorize the groups by +It'll look at all the server definitions, -00:06:36.720 --> 00:06:38.160 -server +00:06:34.960 --> 00:06:38.160 +and it will categorize the groups by server, -00:06:38.160 --> 00:06:41.120 -which which is just weird because you're +00:06:38.160 --> 00:06:40.000 +which is just weird, -00:06:41.120 --> 00:06:42.160 -sort of looking for okay where does the +00:06:40.001 --> 00:06:41.680 +because you're sort of looking for... -00:06:42.160 --> 00:06:43.840 -server exist it doesn't exist it's put +00:06:41.681 --> 00:06:42.720 +okay, where does the server exist? -00:06:43.840 --> 00:06:44.479 -together +00:06:42.721 --> 00:06:43.440 +It doesn't exist. -00:06:44.479 --> 00:06:48.319 -every time uh out of out of code +00:06:43.441 --> 00:06:46.240 +It's put together every time -00:06:48.319 --> 00:06:50.400 -elsewhere in the news code base +00:06:46.241 --> 00:06:50.400 +out of code elsewhere in the Gnus code base, -00:06:50.400 --> 00:06:51.840 -specifically from these group +00:06:50.400 --> 00:06:53.599 +specifically from these group definitions. -00:06:51.840 --> 00:06:54.080 -these group definitions and so this is +00:06:53.600 --> 00:06:54.479 +So this is very odd, -00:06:54.080 --> 00:06:55.199 -very odd because +00:06:54.480 --> 00:06:56.319 +because in some sense... -00:06:55.199 --> 00:06:58.080 -in in some sense like here this one its +00:06:56.320 --> 00:06:59.360 +Like here, this one, its server is nnml -00:06:58.080 --> 00:06:58.720 -server is +00:06:59.361 --> 00:07:01.680 +and an empty string, -00:06:58.720 --> 00:07:02.240 -nnml and an empty string so there's a +00:07:01.681 --> 00:07:02.880 +so there's a certain sense here -00:07:02.240 --> 00:07:03.919 -certain sense here in which this server +00:07:02.881 --> 00:07:04.720 +in which this server is not really -00:07:03.919 --> 00:07:04.479 -is not +00:07:04.721 --> 00:07:06.160 +an object at all. What it is -00:07:04.479 --> 00:07:06.400 -really an object at all what it is is a +00:07:06.161 --> 00:07:07.120 +is a set of instructions -00:07:06.400 --> 00:07:07.759 -set of instructions for how to find +00:07:07.121 --> 00:07:08.560 +for how to find messages, -00:07:07.759 --> 00:07:08.560 -messages +00:07:08.560 --> 00:07:10.319 +and this set of instructions is: -00:07:08.560 --> 00:07:11.199 -and this set of instructions is go to +00:07:10.320 --> 00:07:12.000 +go to the default place -00:07:11.199 --> 00:07:12.800 -the default place where the user +00:07:12.001 --> 00:07:14.000 +where the user might have their mail -00:07:12.800 --> 00:07:15.440 -might have their mail and expect to find +00:07:14.001 --> 00:07:16.319 +and expect to find messages there -00:07:15.440 --> 00:07:16.000 -messages +00:07:16.320 --> 00:07:18.479 +in an nnml format, which is basically -00:07:16.000 --> 00:07:18.080 -there in an nml format which is +00:07:18.480 --> 00:07:21.759 +just one message per file. -00:07:18.080 --> 00:07:19.840 -basically just one message per +00:07:21.760 --> 00:07:22.720 +Any number of groups could have -00:07:19.840 --> 00:07:22.479 -um per file and any number of groups +00:07:22.721 --> 00:07:24.400 +those same instructions, but they're not... -00:07:22.479 --> 00:07:23.840 -could have those same instructions uh - -00:07:23.840 --> 00:07:25.440 -but they're not it's not really a thing +00:07:24.401 --> 00:07:25.440 +It's not really a thing. 00:07:25.440 --> 00:07:26.720 -it's really just a +It's really just a... 00:07:26.720 --> 00:07:28.639 -it's more of a procedural instruction - -00:07:28.639 --> 00:07:30.240 -and on the other end of the spectrum you +It's more of a procedural instruction. -00:07:30.240 --> 00:07:31.919 -might have an nni map +00:07:28.639 --> 00:07:30.160 +On the other end of the spectrum, -00:07:31.919 --> 00:07:33.599 -server which very much is a thing it has +00:07:30.161 --> 00:07:32.240 +you might have an nnimap server, -00:07:33.599 --> 00:07:35.840 -its own it has its own server its own +00:07:32.241 --> 00:07:33.280 +which very much is a thing. -00:07:35.840 --> 00:07:37.759 -port its own authentication +00:07:33.281 --> 00:07:36.160 +It has its own server, its own port, -00:07:37.759 --> 00:07:40.240 -system so some of the servers are more +00:07:36.161 --> 00:07:38.960 +its own authentication system. -00:07:40.240 --> 00:07:41.360 -like things some of the servers are more +00:07:38.961 --> 00:07:40.639 +So some of the servers are more like things, -00:07:41.360 --> 00:07:42.400 -like instructions +00:07:40.640 --> 00:07:42.400 +some of the servers are more like instructions. 00:07:42.400 --> 00:07:45.520 -as news works right now um these +As Gnus works right now, 00:07:45.520 --> 00:07:47.280 most of the servers are treated like 00:07:47.280 --> 00:07:48.879 -just instruction sets +just instruction sets, 00:07:48.879 --> 00:07:50.879 -and and there's no place where you can +and there's no place where you can -00:07:50.879 --> 00:07:53.120 -go and find them there's no one central +00:07:50.880 --> 00:07:51.840 +go and find them. -00:07:53.120 --> 00:07:55.360 -uh variable that defines them all so how +00:07:51.841 --> 00:07:53.680 +There's no one central variable -00:07:55.360 --> 00:07:56.160 -do the +00:07:53.681 --> 00:07:56.160 +that defines them all. So how do the... -00:07:56.160 --> 00:07:57.520 -um so we'll talk about the methods in a +00:07:56.160 --> 00:07:57.759 +We'll talk about the methods in a second. -00:07:57.520 --> 00:07:59.520 -second how do the data attributes work +00:07:57.760 --> 00:07:59.520 +How do the data attributes work? 00:07:59.520 --> 00:08:02.639 -uh put very crudely um +Put very crudely, 00:08:02.639 --> 00:08:04.479 -your servers when they're put together +your servers, when they're put together, -00:08:04.479 --> 00:08:05.919 -uh they are okay they are +00:08:04.479 --> 00:08:06.879 +they are kept in a variable, -00:08:05.919 --> 00:08:08.080 -kept in a variable and it's called nno +00:08:06.880 --> 00:08:08.080 +and it's called nnoo 00:08:08.080 --> 00:08:08.960 nno diff --git a/2020/talks/16.md b/2020/talks/16.md index 66f4a5eb..13f67e26 100644 --- a/2020/talks/16.md +++ b/2020/talks/16.md @@ -3,11 +3,11 @@ <!-- To edit the talk information, change /2020/info/TALKID.md. Boilerplate automatically generated from submissions.org using conf/generate-schedule-files ---> - Back to the [[schedule]] Previous: <a href="/2020/talks/15">Moving from Jekyll to OrgMode, an experience report</a> Next: <a href="/2020/talks/17">Org-mode and Org-Roam for Scholars and Researchers</a> +[[!taglink CategoryOrgRoam]] [[!inline pages="internal(2020/info/16)" raw="yes"]] diff --git a/2020/talks/17.md b/2020/talks/17.md index 2e234180..cb6be4f5 100644 --- a/2020/talks/17.md +++ b/2020/talks/17.md @@ -8,6 +8,7 @@ Back to the [[schedule]] Previous: <a href="/2020/talks/16">Org-roam: Presentation, Demonstration, and What's on the Horizon</a> Next: <a href="/2020/talks/18">Org-roam: Technical Presentation</a> +[[!taglink CategoryOrgRoam]] [[!inline pages="internal(2020/info/17)" raw="yes"]] diff --git a/2020/talks/18.md b/2020/talks/18.md index 460e0c63..2623a4cb 100644 --- a/2020/talks/18.md +++ b/2020/talks/18.md @@ -3,11 +3,11 @@ <!-- To edit the talk information, change /2020/info/TALKID.md. Boilerplate automatically generated from submissions.org using conf/generate-schedule-files ---> - Back to the [[schedule]] Previous: <a href="/2020/talks/17">Org-mode and Org-Roam for Scholars and Researchers</a> Next: <a href="/2020/talks/19">Sharing blogs (and more) with org-webring</a> +[[!taglink CategoryOrgRoam]] [[!inline pages="internal(2020/info/18)" raw="yes"]] diff --git a/2020/talks/28.md b/2020/talks/28.md index 3dae6103..bae5f837 100644 --- a/2020/talks/28.md +++ b/2020/talks/28.md @@ -8,6 +8,11 @@ Back to the [[schedule]] Previous: <a href="/2020/talks/27">State of Retro Gaming in Emacs</a> Next: <a href="/2020/talks/29">Pathing of Least Resistance</a> +[[!template id="help" tags="help_with_main_captions" +summary="main talk does not have captions" +volunteer="" +message="""This talk does not have captions yet. Would you like to help [caption this talk](/help_with_main_captions)? You may be able to start with these +[autogenerated captions](/2020/subtitles/emacsconf-2020--28-welcome-to-the-dungeon--erik-elmshauser-corwin-brust-autogen.vtt)."""]] [[!inline pages="internal(2020/info/28)" raw="yes"]] diff --git a/2020/talks/30.md b/2020/talks/30.md index 249e3ca2..1b6c41f4 100644 --- a/2020/talks/30.md +++ b/2020/talks/30.md @@ -8,7 +8,6 @@ Back to the [[schedule]] Previous: <a href="/2020/talks/29">Pathing of Least Resistance</a> Next: <a href="/2020/talks/31">Lakota Language and Emacs</a> - [[!inline pages="internal(2020/info/30)" raw="yes"]] Sunday, Nov 29 2020, ~ 2:45 PM - 2:55 PM EST diff --git a/2020/talks/31.md b/2020/talks/31.md index 0c5bfb79..4d6b308f 100644 --- a/2020/talks/31.md +++ b/2020/talks/31.md @@ -8,6 +8,11 @@ Back to the [[schedule]] Previous: <a href="/2020/talks/30">A tour of vterm</a> Next: <a href="/2020/talks/32">Object Oriented Code in the Gnus Newsreader</a> +[[!template id="help" tags="help_with_main_captions" +summary="main talk does not have captions" +volunteer="" +message="""This talk does not have captions yet. Would you like to help [caption this talk](/help_with_main_captions)? You may be able to start with these +[autogenerated captions](/2020/subtitles/emacsconf-2020--31-lakota-language-and-emacs--grant-shangreaux-autogen.vtt)."""]] [[!inline pages="internal(2020/info/31)" raw="yes"]] diff --git a/2020/talks/32.md b/2020/talks/32.md index 29254e52..ed6eaa81 100644 --- a/2020/talks/32.md +++ b/2020/talks/32.md @@ -3,11 +3,16 @@ <!-- To edit the talk information, change /2020/info/TALKID.md. Boilerplate automatically generated from submissions.org using conf/generate-schedule-files ---> - Back to the [[schedule]] Previous: <a href="/2020/talks/31">Lakota Language and Emacs</a> Next: <a href="/2020/talks/33">Maxima a computer algebra system in Emacs</a> +[[!template id="help" tags="help_with_main_captions" +summary="main talk does not have captions" +volunteer="sachac" +message="""This talk does not have captions yet. Would you like to help [caption this talk](/help_with_main_captions)? You may be able to start with these +[autogenerated captions](/2020/subtitles/emacsconf-2020--32-object-oriented-code-in-the-gnus-newsreader--eric-abrahamsen-autogen.vtt)."""]] + [[!inline pages="internal(2020/info/32)" raw="yes"]] |