From 886ae437fee6a674f7b2757062f1b8a91275457a Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Fri, 8 Oct 2021 01:58:03 -0400 Subject: Add talk pages for 2021 --- 2021/info/adventure-nav.md | 3 + 2021/info/adventure-schedule.md | 15 ++++ 2021/info/babel-nav.md | 3 + 2021/info/babel-schedule.md | 15 ++++ 2021/info/binary-nav.md | 3 + 2021/info/binary-schedule.md | 15 ++++ 2021/info/borg-nav.md | 3 + 2021/info/borg-schedule.md | 15 ++++ 2021/info/bug-nav.md | 3 + 2021/info/bug-schedule.md | 15 ++++ 2021/info/build-nav.md | 3 + 2021/info/build-schedule.md | 15 ++++ 2021/info/clede-nav.md | 3 + 2021/info/clede-schedule.md | 15 ++++ 2021/info/cs-nav.md | 3 + 2021/info/cs-schedule.md | 15 ++++ 2021/info/dashboard-nav.md | 3 + 2021/info/dashboard-schedule.md | 15 ++++ 2021/info/day1-close-nav.md | 3 + 2021/info/day1-close-schedule.md | 15 ++++ 2021/info/day1-open-nav.md | 2 + 2021/info/day1-open-schedule.md | 15 ++++ 2021/info/day2-close-nav.md | 2 + 2021/info/day2-close-schedule.md | 15 ++++ 2021/info/day2-open-nav.md | 3 + 2021/info/day2-open-schedule.md | 15 ++++ 2021/info/design-nav.md | 3 + 2021/info/design-schedule.md | 15 ++++ 2021/info/devel-nav.md | 3 + 2021/info/devel-schedule.md | 15 ++++ 2021/info/dsl-nav.md | 3 + 2021/info/dsl-schedule.md | 15 ++++ 2021/info/eaf-nav.md | 3 + 2021/info/eaf-schedule.md | 15 ++++ 2021/info/exec-nav.md | 3 + 2021/info/exec-schedule.md | 15 ++++ 2021/info/faster-nav.md | 3 + 2021/info/faster-schedule.md | 15 ++++ 2021/info/forever-nav.md | 3 + 2021/info/forever-schedule.md | 15 ++++ 2021/info/form-nav.md | 3 + 2021/info/form-schedule.md | 15 ++++ 2021/info/freedom-nav.md | 3 + 2021/info/freedom-schedule.md | 15 ++++ 2021/info/frownies-nav.md | 3 + 2021/info/frownies-schedule.md | 15 ++++ 2021/info/gregorian-nav.md | 3 + 2021/info/gregorian-schedule.md | 15 ++++ 2021/info/imaginary-nav.md | 3 + 2021/info/imaginary-schedule.md | 15 ++++ 2021/info/invoice-nav.md | 3 + 2021/info/invoice-schedule.md | 15 ++++ 2021/info/janitor-nav.md | 3 + 2021/info/janitor-schedule.md | 15 ++++ 2021/info/maintainers-nav.md | 3 + 2021/info/maintainers-schedule.md | 15 ++++ 2021/info/model-nav.md | 3 + 2021/info/model-schedule.md | 15 ++++ 2021/info/mold-nav.md | 3 + 2021/info/mold-schedule.md | 15 ++++ 2021/info/molecular-nav.md | 3 + 2021/info/molecular-schedule.md | 15 ++++ 2021/info/montessori-nav.md | 3 + 2021/info/montessori-schedule.md | 15 ++++ 2021/info/nangulator-nav.md | 3 + 2021/info/nangulator-schedule.md | 15 ++++ 2021/info/native-nav.md | 3 + 2021/info/native-schedule.md | 15 ++++ 2021/info/news-nav.md | 3 + 2021/info/news-schedule.md | 15 ++++ 2021/info/nongnu-nav.md | 3 + 2021/info/nongnu-schedule.md | 15 ++++ 2021/info/nyxt-nav.md | 3 + 2021/info/nyxt-schedule.md | 15 ++++ 2021/info/omegat-nav.md | 3 + 2021/info/omegat-schedule.md | 15 ++++ 2021/info/org-outside-nav.md | 3 + 2021/info/org-outside-schedule.md | 15 ++++ 2021/info/professional-nav.md | 3 + 2021/info/professional-schedule.md | 15 ++++ 2021/info/project-nav.md | 3 + 2021/info/project-schedule.md | 15 ++++ 2021/info/research-nav.md | 3 + 2021/info/research-schedule.md | 15 ++++ 2021/info/rust-nav.md | 3 + 2021/info/rust-schedule.md | 15 ++++ 2021/info/structural-nav.md | 3 + 2021/info/structural-schedule.md | 15 ++++ 2021/info/teach-nav.md | 3 + 2021/info/teach-schedule.md | 15 ++++ 2021/info/tech-nav.md | 3 + 2021/info/tech-schedule.md | 15 ++++ 2021/info/telega-nav.md | 3 + 2021/info/telega-schedule.md | 15 ++++ 2021/info/test-nav.md | 3 + 2021/info/test-schedule.md | 15 ++++ 2021/info/ui-nav.md | 3 + 2021/info/ui-schedule.md | 15 ++++ 2021/info/unix-nav.md | 3 + 2021/info/unix-schedule.md | 15 ++++ 2021/info/world-nav.md | 3 + 2021/info/world-schedule.md | 15 ++++ 2021/schedule-details.md | 57 ++++++++++++++ 2021/schedule.md | 8 ++ 2021/talks.md | 1 + 2021/talks/adventure.md | 136 +++++++++++++++++++++++++++++++++ 2021/talks/babel.md | 76 +++++++++++++++++++ 2021/talks/binary.md | 30 ++++++++ 2021/talks/borg.md | 33 ++++++++ 2021/talks/bug.md | 22 ++++++ 2021/talks/build.md | 35 +++++++++ 2021/talks/clede.md | 33 ++++++++ 2021/talks/cs.md | 34 +++++++++ 2021/talks/dashboard.md | 151 +++++++++++++++++++++++++++++++++++++ 2021/talks/day1-close.md | 15 ++++ 2021/talks/day1-open.md | 15 ++++ 2021/talks/day2-close.md | 15 ++++ 2021/talks/day2-open.md | 15 ++++ 2021/talks/design.md | 59 +++++++++++++++ 2021/talks/devel.md | 88 +++++++++++++++++++++ 2021/talks/dsl.md | 48 ++++++++++++ 2021/talks/eaf.md | 26 +++++++ 2021/talks/exec.md | 77 +++++++++++++++++++ 2021/talks/faster.md | 24 ++++++ 2021/talks/forever.md | 33 ++++++++ 2021/talks/form.md | 58 ++++++++++++++ 2021/talks/freedom.md | 41 ++++++++++ 2021/talks/frownies.md | 32 ++++++++ 2021/talks/gregorian.md | 36 +++++++++ 2021/talks/imaginary.md | 100 ++++++++++++++++++++++++ 2021/talks/invoice.md | 42 +++++++++++ 2021/talks/janitor.md | 29 +++++++ 2021/talks/maintainers.md | 25 ++++++ 2021/talks/model.md | 103 +++++++++++++++++++++++++ 2021/talks/mold.md | 49 ++++++++++++ 2021/talks/molecular.md | 94 +++++++++++++++++++++++ 2021/talks/montessori.md | 67 ++++++++++++++++ 2021/talks/nangulator.md | 63 ++++++++++++++++ 2021/talks/native.md | 34 +++++++++ 2021/talks/news.md | 17 +++++ 2021/talks/nongnu.md | 26 +++++++ 2021/talks/nyxt.md | 39 ++++++++++ 2021/talks/omegat.md | 54 +++++++++++++ 2021/talks/org-outside.md | 47 ++++++++++++ 2021/talks/professional.md | 68 +++++++++++++++++ 2021/talks/project.md | 28 +++++++ 2021/talks/research.md | 48 ++++++++++++ 2021/talks/rust.md | 35 +++++++++ 2021/talks/structural.md | 71 +++++++++++++++++ 2021/talks/teach.md | 54 +++++++++++++ 2021/talks/tech.md | 47 ++++++++++++ 2021/talks/telega.md | 25 ++++++ 2021/talks/test.md | 49 ++++++++++++ 2021/talks/ui.md | 44 +++++++++++ 2021/talks/unix.md | 51 +++++++++++++ 2021/talks/world.md | 73 ++++++++++++++++++ 156 files changed, 3496 insertions(+) create mode 100644 2021/info/adventure-nav.md create mode 100644 2021/info/adventure-schedule.md create mode 100644 2021/info/babel-nav.md create mode 100644 2021/info/babel-schedule.md create mode 100644 2021/info/binary-nav.md create mode 100644 2021/info/binary-schedule.md create mode 100644 2021/info/borg-nav.md create mode 100644 2021/info/borg-schedule.md create mode 100644 2021/info/bug-nav.md create mode 100644 2021/info/bug-schedule.md create mode 100644 2021/info/build-nav.md create mode 100644 2021/info/build-schedule.md create mode 100644 2021/info/clede-nav.md create mode 100644 2021/info/clede-schedule.md create mode 100644 2021/info/cs-nav.md create mode 100644 2021/info/cs-schedule.md create mode 100644 2021/info/dashboard-nav.md create mode 100644 2021/info/dashboard-schedule.md create mode 100644 2021/info/day1-close-nav.md create mode 100644 2021/info/day1-close-schedule.md create mode 100644 2021/info/day1-open-nav.md create mode 100644 2021/info/day1-open-schedule.md create mode 100644 2021/info/day2-close-nav.md create mode 100644 2021/info/day2-close-schedule.md create mode 100644 2021/info/day2-open-nav.md create mode 100644 2021/info/day2-open-schedule.md create mode 100644 2021/info/design-nav.md create mode 100644 2021/info/design-schedule.md create mode 100644 2021/info/devel-nav.md create mode 100644 2021/info/devel-schedule.md create mode 100644 2021/info/dsl-nav.md create mode 100644 2021/info/dsl-schedule.md create mode 100644 2021/info/eaf-nav.md create mode 100644 2021/info/eaf-schedule.md create mode 100644 2021/info/exec-nav.md create mode 100644 2021/info/exec-schedule.md create mode 100644 2021/info/faster-nav.md create mode 100644 2021/info/faster-schedule.md create mode 100644 2021/info/forever-nav.md create mode 100644 2021/info/forever-schedule.md create mode 100644 2021/info/form-nav.md create mode 100644 2021/info/form-schedule.md create mode 100644 2021/info/freedom-nav.md create mode 100644 2021/info/freedom-schedule.md create mode 100644 2021/info/frownies-nav.md create mode 100644 2021/info/frownies-schedule.md create mode 100644 2021/info/gregorian-nav.md create mode 100644 2021/info/gregorian-schedule.md create mode 100644 2021/info/imaginary-nav.md create mode 100644 2021/info/imaginary-schedule.md create mode 100644 2021/info/invoice-nav.md create mode 100644 2021/info/invoice-schedule.md create mode 100644 2021/info/janitor-nav.md create mode 100644 2021/info/janitor-schedule.md create mode 100644 2021/info/maintainers-nav.md create mode 100644 2021/info/maintainers-schedule.md create mode 100644 2021/info/model-nav.md create mode 100644 2021/info/model-schedule.md create mode 100644 2021/info/mold-nav.md create mode 100644 2021/info/mold-schedule.md create mode 100644 2021/info/molecular-nav.md create mode 100644 2021/info/molecular-schedule.md create mode 100644 2021/info/montessori-nav.md create mode 100644 2021/info/montessori-schedule.md create mode 100644 2021/info/nangulator-nav.md create mode 100644 2021/info/nangulator-schedule.md create mode 100644 2021/info/native-nav.md create mode 100644 2021/info/native-schedule.md create mode 100644 2021/info/news-nav.md create mode 100644 2021/info/news-schedule.md create mode 100644 2021/info/nongnu-nav.md create mode 100644 2021/info/nongnu-schedule.md create mode 100644 2021/info/nyxt-nav.md create mode 100644 2021/info/nyxt-schedule.md create mode 100644 2021/info/omegat-nav.md create mode 100644 2021/info/omegat-schedule.md create mode 100644 2021/info/org-outside-nav.md create mode 100644 2021/info/org-outside-schedule.md create mode 100644 2021/info/professional-nav.md create mode 100644 2021/info/professional-schedule.md create mode 100644 2021/info/project-nav.md create mode 100644 2021/info/project-schedule.md create mode 100644 2021/info/research-nav.md create mode 100644 2021/info/research-schedule.md create mode 100644 2021/info/rust-nav.md create mode 100644 2021/info/rust-schedule.md create mode 100644 2021/info/structural-nav.md create mode 100644 2021/info/structural-schedule.md create mode 100644 2021/info/teach-nav.md create mode 100644 2021/info/teach-schedule.md create mode 100644 2021/info/tech-nav.md create mode 100644 2021/info/tech-schedule.md create mode 100644 2021/info/telega-nav.md create mode 100644 2021/info/telega-schedule.md create mode 100644 2021/info/test-nav.md create mode 100644 2021/info/test-schedule.md create mode 100644 2021/info/ui-nav.md create mode 100644 2021/info/ui-schedule.md create mode 100644 2021/info/unix-nav.md create mode 100644 2021/info/unix-schedule.md create mode 100644 2021/info/world-nav.md create mode 100644 2021/info/world-schedule.md create mode 100644 2021/schedule-details.md create mode 100644 2021/schedule.md create mode 100644 2021/talks.md create mode 100644 2021/talks/adventure.md create mode 100644 2021/talks/babel.md create mode 100644 2021/talks/binary.md create mode 100644 2021/talks/borg.md create mode 100644 2021/talks/bug.md create mode 100644 2021/talks/build.md create mode 100644 2021/talks/clede.md create mode 100644 2021/talks/cs.md create mode 100644 2021/talks/dashboard.md create mode 100644 2021/talks/day1-close.md create mode 100644 2021/talks/day1-open.md create mode 100644 2021/talks/day2-close.md create mode 100644 2021/talks/day2-open.md create mode 100644 2021/talks/design.md create mode 100644 2021/talks/devel.md create mode 100644 2021/talks/dsl.md create mode 100644 2021/talks/eaf.md create mode 100644 2021/talks/exec.md create mode 100644 2021/talks/faster.md create mode 100644 2021/talks/forever.md create mode 100644 2021/talks/form.md create mode 100644 2021/talks/freedom.md create mode 100644 2021/talks/frownies.md create mode 100644 2021/talks/gregorian.md create mode 100644 2021/talks/imaginary.md create mode 100644 2021/talks/invoice.md create mode 100644 2021/talks/janitor.md create mode 100644 2021/talks/maintainers.md create mode 100644 2021/talks/model.md create mode 100644 2021/talks/mold.md create mode 100644 2021/talks/molecular.md create mode 100644 2021/talks/montessori.md create mode 100644 2021/talks/nangulator.md create mode 100644 2021/talks/native.md create mode 100644 2021/talks/news.md create mode 100644 2021/talks/nongnu.md create mode 100644 2021/talks/nyxt.md create mode 100644 2021/talks/omegat.md create mode 100644 2021/talks/org-outside.md create mode 100644 2021/talks/professional.md create mode 100644 2021/talks/project.md create mode 100644 2021/talks/research.md create mode 100644 2021/talks/rust.md create mode 100644 2021/talks/structural.md create mode 100644 2021/talks/teach.md create mode 100644 2021/talks/tech.md create mode 100644 2021/talks/telega.md create mode 100644 2021/talks/test.md create mode 100644 2021/talks/ui.md create mode 100644 2021/talks/unix.md create mode 100644 2021/talks/world.md diff --git a/2021/info/adventure-nav.md b/2021/info/adventure-nav.md new file mode 100644 index 00000000..e83ae6d4 --- /dev/null +++ b/2021/info/adventure-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: The True Frownies are the Friends We Made Along the Way: An Anecdote of Emacs's Malleability +Next: "GNU's Not UNIX: Why Emacs Demonstrates The UNIX Philosophy Isn't Always The Only Answer" diff --git a/2021/info/adventure-schedule.md b/2021/info/adventure-schedule.md new file mode 100644 index 00000000..1a0a73f6 --- /dev/null +++ b/2021/info/adventure-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for the organizers to send the speaker(s) email + +# Schedule + +Allocated 20 minutes + + + +Friendly URL: /2021/talks/adventure + + diff --git a/2021/info/babel-nav.md b/2021/info/babel-nav.md new file mode 100644 index 00000000..beb7536e --- /dev/null +++ b/2021/info/babel-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: Org as an executable format +Next: Managing a research workflow (bibliographies, note-taking, and arXiv) diff --git a/2021/info/babel-schedule.md b/2021/info/babel-schedule.md new file mode 100644 index 00000000..34d6a6fb --- /dev/null +++ b/2021/info/babel-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for the organizers to send the speaker(s) email + +# Schedule + +Allocated 10 minutes + + + +Friendly URL: /2021/talks/babel + + diff --git a/2021/info/binary-nav.md b/2021/info/binary-nav.md new file mode 100644 index 00000000..55a7dadf --- /dev/null +++ b/2021/info/binary-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: Don't write that package! or: How I learned to stop worrying and love emacs-devel +Next: Emacs Lisp native compiler, current status and future developments diff --git a/2021/info/binary-schedule.md b/2021/info/binary-schedule.md new file mode 100644 index 00000000..d15a3846 --- /dev/null +++ b/2021/info/binary-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for speaker to send prerecorded video + +# Schedule + +Allocated 20 minutes + + + +Friendly URL: /2021/talks/binary + + diff --git a/2021/info/borg-nav.md b/2021/info/borg-nav.md new file mode 100644 index 00000000..fc45409b --- /dev/null +++ b/2021/info/borg-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: NonGNU ELPA Update +Next: telega.el and the Emacs community on Telegram diff --git a/2021/info/borg-schedule.md b/2021/info/borg-schedule.md new file mode 100644 index 00000000..2473f125 --- /dev/null +++ b/2021/info/borg-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for speaker to send prerecorded video + +# Schedule + +Allocated 10 minutes + + + +Friendly URL: /2021/talks/borg + + diff --git a/2021/info/bug-nav.md b/2021/info/bug-nav.md new file mode 100644 index 00000000..4cbce29e --- /dev/null +++ b/2021/info/bug-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: Test blocks +Next: World Citizen diff --git a/2021/info/bug-schedule.md b/2021/info/bug-schedule.md new file mode 100644 index 00000000..f3fb242c --- /dev/null +++ b/2021/info/bug-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for the organizers to send the speaker(s) email + +# Schedule + +Allocated 20 minutes + + + +Friendly URL: /2021/talks/bug + + diff --git a/2021/info/build-nav.md b/2021/info/build-nav.md new file mode 100644 index 00000000..b9adaa0b --- /dev/null +++ b/2021/info/build-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: Imaginary Programming +Next: M-x Forever: Why Emacs will outlast text editor trends diff --git a/2021/info/build-schedule.md b/2021/info/build-schedule.md new file mode 100644 index 00000000..9d151a69 --- /dev/null +++ b/2021/info/build-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for the organizers to send the speaker(s) email + +# Schedule + +Allocated 20 minutes + + + +Friendly URL: /2021/talks/build + + diff --git a/2021/info/clede-nav.md b/2021/info/clede-nav.md new file mode 100644 index 00000000..e0bcdb46 --- /dev/null +++ b/2021/info/clede-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: Moldable Emacs, a step towards sustainable software +Next: Imaginary Programming diff --git a/2021/info/clede-schedule.md b/2021/info/clede-schedule.md new file mode 100644 index 00000000..d498d988 --- /dev/null +++ b/2021/info/clede-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for speaker to send prerecorded video + +# Schedule + +Allocated 20 minutes + + + +Friendly URL: /2021/talks/clede + + diff --git a/2021/info/cs-nav.md b/2021/info/cs-nav.md new file mode 100644 index 00000000..0486aeaa --- /dev/null +++ b/2021/info/cs-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: Emacs and Montessori Philosophy +Next: Budgeting, Project Monitoring and Invoicing with Org Mode diff --git a/2021/info/cs-schedule.md b/2021/info/cs-schedule.md new file mode 100644 index 00000000..68c6cb50 --- /dev/null +++ b/2021/info/cs-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for the organizers to send the speaker(s) email + +# Schedule + +Allocated 10 minutes + + + +Friendly URL: /2021/talks/cs + + diff --git a/2021/info/dashboard-nav.md b/2021/info/dashboard-nav.md new file mode 100644 index 00000000..b8154ab2 --- /dev/null +++ b/2021/info/dashboard-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: Creating technical API documentation and presentations using org-babel, restclient, and org-treeslide +Next: Emacs with Nyxt: extend your editor with the power of a Lisp browser diff --git a/2021/info/dashboard-schedule.md b/2021/info/dashboard-schedule.md new file mode 100644 index 00000000..e6525feb --- /dev/null +++ b/2021/info/dashboard-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for speaker to send prerecorded video + +# Schedule + +Allocated 10 minutes + + + +Friendly URL: /2021/talks/dashboard + + diff --git a/2021/info/day1-close-nav.md b/2021/info/day1-close-nav.md new file mode 100644 index 00000000..4cd82c78 --- /dev/null +++ b/2021/info/day1-close-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: How Emacs made me appreciate software freedom +Next: Opening remarks day 2 diff --git a/2021/info/day1-close-schedule.md b/2021/info/day1-close-schedule.md new file mode 100644 index 00000000..8462497c --- /dev/null +++ b/2021/info/day1-close-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Will be live + +# Schedule + +Allocated 5 minutes + + + +Friendly URL: /2021/talks/day1-close + + diff --git a/2021/info/day1-open-nav.md b/2021/info/day1-open-nav.md new file mode 100644 index 00000000..f462ab6a --- /dev/null +++ b/2021/info/day1-open-nav.md @@ -0,0 +1,2 @@ +Back to the [[schedule]] +Next: Emacs News Highlights diff --git a/2021/info/day1-open-schedule.md b/2021/info/day1-open-schedule.md new file mode 100644 index 00000000..1a11844b --- /dev/null +++ b/2021/info/day1-open-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Will be live + +# Schedule + +Allocated 5 minutes + + + +Friendly URL: /2021/talks/day1-open + + diff --git a/2021/info/day2-close-nav.md b/2021/info/day2-close-nav.md new file mode 100644 index 00000000..14e12fc6 --- /dev/null +++ b/2021/info/day2-close-nav.md @@ -0,0 +1,2 @@ +Back to the [[schedule]] +Previous: M-x Forever: Why Emacs will outlast text editor trends diff --git a/2021/info/day2-close-schedule.md b/2021/info/day2-close-schedule.md new file mode 100644 index 00000000..c2a6785e --- /dev/null +++ b/2021/info/day2-close-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Will be live + +# Schedule + +Allocated 10 minutes + + + +Friendly URL: /2021/talks/day2-close + + diff --git a/2021/info/day2-open-nav.md b/2021/info/day2-open-nav.md new file mode 100644 index 00000000..ec25c8da --- /dev/null +++ b/2021/info/day2-open-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: Closing remarks day 1 +Next: How to write faster Emacs Lisp diff --git a/2021/info/day2-open-schedule.md b/2021/info/day2-open-schedule.md new file mode 100644 index 00000000..d2b465b2 --- /dev/null +++ b/2021/info/day2-open-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Will be live + +# Schedule + +Allocated 5 minutes + + + +Friendly URL: /2021/talks/day2-open + + diff --git a/2021/info/design-nav.md b/2021/info/design-nav.md new file mode 100644 index 00000000..80b9bd3f --- /dev/null +++ b/2021/info/design-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: Emacs with Nyxt: extend your editor with the power of a Lisp browser +Next: How Emacs made me appreciate software freedom diff --git a/2021/info/design-schedule.md b/2021/info/design-schedule.md new file mode 100644 index 00000000..4437543b --- /dev/null +++ b/2021/info/design-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for the organizers to send the speaker(s) email + +# Schedule + +Allocated 10 minutes + + + +Friendly URL: /2021/talks/design + + diff --git a/2021/info/devel-nav.md b/2021/info/devel-nav.md new file mode 100644 index 00000000..4034c42f --- /dev/null +++ b/2021/info/devel-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: Extending the "model" of Emacs to other applications +Next: Turbo Bindat diff --git a/2021/info/devel-schedule.md b/2021/info/devel-schedule.md new file mode 100644 index 00000000..68e0dcb1 --- /dev/null +++ b/2021/info/devel-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for the organizers to send the speaker(s) email + +# Schedule + +Allocated 20 minutes + + + +Friendly URL: /2021/talks/devel + + diff --git a/2021/info/dsl-nav.md b/2021/info/dsl-nav.md new file mode 100644 index 00000000..a29effef --- /dev/null +++ b/2021/info/dsl-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: Why structural editing is the future of code editing, and a novel approach for editing everyday languages +Next: "Yak-shaving to a UI framework" (/"Help! I accidentally yak-shaved my way to writing a UI framework because overlays were slow") diff --git a/2021/info/dsl-schedule.md b/2021/info/dsl-schedule.md new file mode 100644 index 00000000..4340314a --- /dev/null +++ b/2021/info/dsl-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for speaker to send prerecorded video + +# Schedule + +Allocated 20 minutes + + + +Friendly URL: /2021/talks/dsl + + diff --git a/2021/info/eaf-nav.md b/2021/info/eaf-nav.md new file mode 100644 index 00000000..fa838792 --- /dev/null +++ b/2021/info/eaf-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: Extending Emacs in Rust with Dynamic Modules +Next: Extending the "model" of Emacs to other applications diff --git a/2021/info/eaf-schedule.md b/2021/info/eaf-schedule.md new file mode 100644 index 00000000..b4266257 --- /dev/null +++ b/2021/info/eaf-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for the organizers to send the speaker(s) email + +# Schedule + +Allocated 10 minutes + + + +Friendly URL: /2021/talks/eaf + + diff --git a/2021/info/exec-nav.md b/2021/info/exec-nav.md new file mode 100644 index 00000000..6f69846e --- /dev/null +++ b/2021/info/exec-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: The use of Org mode syntax outside of GNU/Emacs +Next: Babel for academics diff --git a/2021/info/exec-schedule.md b/2021/info/exec-schedule.md new file mode 100644 index 00000000..ef9d11ac --- /dev/null +++ b/2021/info/exec-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for the organizers to send the speaker(s) email + +# Schedule + +Allocated 10 minutes + + + +Friendly URL: /2021/talks/exec + + diff --git a/2021/info/faster-nav.md b/2021/info/faster-nav.md new file mode 100644 index 00000000..21324165 --- /dev/null +++ b/2021/info/faster-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: Opening remarks day 2 +Next: Why structural editing is the future of code editing, and a novel approach for editing everyday languages diff --git a/2021/info/faster-schedule.md b/2021/info/faster-schedule.md new file mode 100644 index 00000000..4612ffc5 --- /dev/null +++ b/2021/info/faster-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for the organizers to send the speaker(s) email + +# Schedule + +Allocated 20 minutes + + + +Friendly URL: /2021/talks/faster + + diff --git a/2021/info/forever-nav.md b/2021/info/forever-nav.md new file mode 100644 index 00000000..cb708f2a --- /dev/null +++ b/2021/info/forever-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: How to build an Emacs +Next: Closing remarks day 2 diff --git a/2021/info/forever-schedule.md b/2021/info/forever-schedule.md new file mode 100644 index 00000000..00762619 --- /dev/null +++ b/2021/info/forever-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for speaker to send prerecorded video + +# Schedule + +Allocated 40 minutes + + + +Friendly URL: /2021/talks/forever + + diff --git a/2021/info/form-nav.md b/2021/info/form-nav.md new file mode 100644 index 00000000..a196e3b8 --- /dev/null +++ b/2021/info/form-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: Emacs Lisp native compiler, current status and future developments +Next: Test blocks diff --git a/2021/info/form-schedule.md b/2021/info/form-schedule.md new file mode 100644 index 00000000..d8909b0b --- /dev/null +++ b/2021/info/form-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for speaker to send prerecorded video + +# Schedule + +Allocated 10 minutes + + + +Friendly URL: /2021/talks/form + + diff --git a/2021/info/freedom-nav.md b/2021/info/freedom-nav.md new file mode 100644 index 00000000..00304a45 --- /dev/null +++ b/2021/info/freedom-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: On the design of text editors +Next: Closing remarks day 1 diff --git a/2021/info/freedom-schedule.md b/2021/info/freedom-schedule.md new file mode 100644 index 00000000..9666ad0e --- /dev/null +++ b/2021/info/freedom-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for the organizers to send the speaker(s) email + +# Schedule + +Allocated 40 minutes + + + +Friendly URL: /2021/talks/freedom + + diff --git a/2021/info/frownies-nav.md b/2021/info/frownies-nav.md new file mode 100644 index 00000000..c836405d --- /dev/null +++ b/2021/info/frownies-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: Emacs News Highlights +Next: Choose Your Own (Technology-Enhanced Learning) Adventure diff --git a/2021/info/frownies-schedule.md b/2021/info/frownies-schedule.md new file mode 100644 index 00000000..2a46453b --- /dev/null +++ b/2021/info/frownies-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for the organizers to send the speaker(s) email + +# Schedule + +Allocated 20 minutes + + + +Friendly URL: /2021/talks/frownies + + diff --git a/2021/info/gregorian-nav.md b/2021/info/gregorian-nav.md new file mode 100644 index 00000000..938b66af --- /dev/null +++ b/2021/info/gregorian-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: How to help Emacs maintainers? +Next: Emacs and Montessori Philosophy diff --git a/2021/info/gregorian-schedule.md b/2021/info/gregorian-schedule.md new file mode 100644 index 00000000..7431c0ea --- /dev/null +++ b/2021/info/gregorian-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for the organizers to send the speaker(s) email + +# Schedule + +Allocated 10 minutes + + + +Friendly URL: /2021/talks/gregorian + + diff --git a/2021/info/imaginary-nav.md b/2021/info/imaginary-nav.md new file mode 100644 index 00000000..402dffae --- /dev/null +++ b/2021/info/imaginary-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: CLEDE the Common Lisp Emacs Development Environment. +Next: How to build an Emacs diff --git a/2021/info/imaginary-schedule.md b/2021/info/imaginary-schedule.md new file mode 100644 index 00000000..1d036700 --- /dev/null +++ b/2021/info/imaginary-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for speaker to send prerecorded video + +# Schedule + +Allocated 10 minutes + + + +Friendly URL: /2021/talks/imaginary + + diff --git a/2021/info/invoice-nav.md b/2021/info/invoice-nav.md new file mode 100644 index 00000000..6b204cde --- /dev/null +++ b/2021/info/invoice-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: Budgeting, Project Monitoring and Invoicing with Org Mode +Next: Using Org-Mode For Recording Continuous Professional Development diff --git a/2021/info/invoice-schedule.md b/2021/info/invoice-schedule.md new file mode 100644 index 00000000..b933d9b2 --- /dev/null +++ b/2021/info/invoice-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for the organizers to send the speaker(s) email + +# Schedule + +Allocated 10 minutes + + + +Friendly URL: /2021/talks/invoice + + diff --git a/2021/info/janitor-nav.md b/2021/info/janitor-nav.md new file mode 100644 index 00000000..661c3dba --- /dev/null +++ b/2021/info/janitor-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: Introducing N-Angulator +Next: How to help Emacs maintainers? diff --git a/2021/info/janitor-schedule.md b/2021/info/janitor-schedule.md new file mode 100644 index 00000000..2589b8ae --- /dev/null +++ b/2021/info/janitor-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for speaker to send prerecorded video + +# Schedule + +Allocated 20 minutes + + + +Friendly URL: /2021/talks/janitor + + diff --git a/2021/info/maintainers-nav.md b/2021/info/maintainers-nav.md new file mode 100644 index 00000000..2def9174 --- /dev/null +++ b/2021/info/maintainers-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: A day in the life of a janitor +Next: Typesetting Gregorian Chant with Emacs diff --git a/2021/info/maintainers-schedule.md b/2021/info/maintainers-schedule.md new file mode 100644 index 00000000..154f888e --- /dev/null +++ b/2021/info/maintainers-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for the organizers to send the speaker(s) email + +# Schedule + +Allocated 10 minutes + + + +Friendly URL: /2021/talks/maintainers + + diff --git a/2021/info/model-nav.md b/2021/info/model-nav.md new file mode 100644 index 00000000..382d8169 --- /dev/null +++ b/2021/info/model-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: Emacs Application Framework: A 2021 Update +Next: Don't write that package! or: How I learned to stop worrying and love emacs-devel diff --git a/2021/info/model-schedule.md b/2021/info/model-schedule.md new file mode 100644 index 00000000..25564b6d --- /dev/null +++ b/2021/info/model-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for the organizers to send the speaker(s) email + +# Schedule + +Allocated 10 minutes + + + +Friendly URL: /2021/talks/model + + diff --git a/2021/info/mold-nav.md b/2021/info/mold-nav.md new file mode 100644 index 00000000..ab0e8c04 --- /dev/null +++ b/2021/info/mold-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: World Citizen +Next: CLEDE the Common Lisp Emacs Development Environment. diff --git a/2021/info/mold-schedule.md b/2021/info/mold-schedule.md new file mode 100644 index 00000000..54a253ed --- /dev/null +++ b/2021/info/mold-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for speaker to send prerecorded video + +# Schedule + +Allocated 10 minutes + + + +Friendly URL: /2021/talks/mold + + diff --git a/2021/info/molecular-nav.md b/2021/info/molecular-nav.md new file mode 100644 index 00000000..597f5183 --- /dev/null +++ b/2021/info/molecular-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: Managing a research workflow (bibliographies, note-taking, and arXiv) +Next: Using Org-mode to teach programming diff --git a/2021/info/molecular-schedule.md b/2021/info/molecular-schedule.md new file mode 100644 index 00000000..e820311a --- /dev/null +++ b/2021/info/molecular-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for the organizers to send the speaker(s) email + +# Schedule + +Allocated 10 minutes + + + +Friendly URL: /2021/talks/molecular + + diff --git a/2021/info/montessori-nav.md b/2021/info/montessori-nav.md new file mode 100644 index 00000000..d1421097 --- /dev/null +++ b/2021/info/montessori-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: Typesetting Gregorian Chant with Emacs +Next: One effective CS grad student workflow diff --git a/2021/info/montessori-schedule.md b/2021/info/montessori-schedule.md new file mode 100644 index 00000000..9cfe71d8 --- /dev/null +++ b/2021/info/montessori-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for the organizers to send the speaker(s) email + +# Schedule + +Allocated 10 minutes + + + +Friendly URL: /2021/talks/montessori + + diff --git a/2021/info/nangulator-nav.md b/2021/info/nangulator-nav.md new file mode 100644 index 00000000..d55cfc3f --- /dev/null +++ b/2021/info/nangulator-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: telega.el and the Emacs community on Telegram +Next: A day in the life of a janitor diff --git a/2021/info/nangulator-schedule.md b/2021/info/nangulator-schedule.md new file mode 100644 index 00000000..ee64fae7 --- /dev/null +++ b/2021/info/nangulator-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for speaker to send prerecorded video + +# Schedule + +Allocated 10 minutes + + + +Friendly URL: /2021/talks/nangulator + + diff --git a/2021/info/native-nav.md b/2021/info/native-nav.md new file mode 100644 index 00000000..8a6c5e04 --- /dev/null +++ b/2021/info/native-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: Turbo Bindat +Next: Old McCarthy Had a Form diff --git a/2021/info/native-schedule.md b/2021/info/native-schedule.md new file mode 100644 index 00000000..64511b10 --- /dev/null +++ b/2021/info/native-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for the organizers to send the speaker(s) email + +# Schedule + +Allocated 20 minutes + + + +Friendly URL: /2021/talks/native + + diff --git a/2021/info/news-nav.md b/2021/info/news-nav.md new file mode 100644 index 00000000..ddc9fc9d --- /dev/null +++ b/2021/info/news-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: Opening remarks +Next: The True Frownies are the Friends We Made Along the Way: An Anecdote of Emacs's Malleability diff --git a/2021/info/news-schedule.md b/2021/info/news-schedule.md new file mode 100644 index 00000000..ea2dd5a9 --- /dev/null +++ b/2021/info/news-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for speaker to send prerecorded video + +# Schedule + +Allocated 5 minutes + + + +Friendly URL: /2021/talks/news + + diff --git a/2021/info/nongnu-nav.md b/2021/info/nongnu-nav.md new file mode 100644 index 00000000..a7325174 --- /dev/null +++ b/2021/info/nongnu-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: Emacs manuals translation and OmegaT +Next: Manual Package Management in The Era of Repositories - Why and How diff --git a/2021/info/nongnu-schedule.md b/2021/info/nongnu-schedule.md new file mode 100644 index 00000000..74e71a21 --- /dev/null +++ b/2021/info/nongnu-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for speaker to send prerecorded video + +# Schedule + +Allocated 10 minutes + + + +Friendly URL: /2021/talks/nongnu + + diff --git a/2021/info/nyxt-nav.md b/2021/info/nyxt-nav.md new file mode 100644 index 00000000..b9268f37 --- /dev/null +++ b/2021/info/nyxt-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: Productivity Dashboards with Emacs and Kindle +Next: On the design of text editors diff --git a/2021/info/nyxt-schedule.md b/2021/info/nyxt-schedule.md new file mode 100644 index 00000000..aabc7c92 --- /dev/null +++ b/2021/info/nyxt-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for the organizers to send the speaker(s) email + +# Schedule + +Allocated 10 minutes + + + +Friendly URL: /2021/talks/nyxt + + diff --git a/2021/info/omegat-nav.md b/2021/info/omegat-nav.md new file mode 100644 index 00000000..d021dacf --- /dev/null +++ b/2021/info/omegat-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: "GNU's Not UNIX: Why Emacs Demonstrates The UNIX Philosophy Isn't Always The Only Answer" +Next: NonGNU ELPA Update diff --git a/2021/info/omegat-schedule.md b/2021/info/omegat-schedule.md new file mode 100644 index 00000000..7fa0a17a --- /dev/null +++ b/2021/info/omegat-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for speaker to send prerecorded video + +# Schedule + +Allocated 10 minutes + + + +Friendly URL: /2021/talks/omegat + + diff --git a/2021/info/org-outside-nav.md b/2021/info/org-outside-nav.md new file mode 100644 index 00000000..3d35606c --- /dev/null +++ b/2021/info/org-outside-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: Using Org-Mode For Recording Continuous Professional Development +Next: Org as an executable format diff --git a/2021/info/org-outside-schedule.md b/2021/info/org-outside-schedule.md new file mode 100644 index 00000000..6dd52a03 --- /dev/null +++ b/2021/info/org-outside-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for the organizers to send the speaker(s) email + +# Schedule + +Allocated 10 minutes + + + +Friendly URL: /2021/talks/org-outside + + diff --git a/2021/info/professional-nav.md b/2021/info/professional-nav.md new file mode 100644 index 00000000..36993387 --- /dev/null +++ b/2021/info/professional-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: Find Your (In)voice: Emacs for Invoicing +Next: The use of Org mode syntax outside of GNU/Emacs diff --git a/2021/info/professional-schedule.md b/2021/info/professional-schedule.md new file mode 100644 index 00000000..3a7e5a61 --- /dev/null +++ b/2021/info/professional-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for speaker to send prerecorded video + +# Schedule + +Allocated 10 minutes + + + +Friendly URL: /2021/talks/professional + + diff --git a/2021/info/project-nav.md b/2021/info/project-nav.md new file mode 100644 index 00000000..653d63c1 --- /dev/null +++ b/2021/info/project-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: One effective CS grad student workflow +Next: Find Your (In)voice: Emacs for Invoicing diff --git a/2021/info/project-schedule.md b/2021/info/project-schedule.md new file mode 100644 index 00000000..6d662e8a --- /dev/null +++ b/2021/info/project-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for the organizers to send the speaker(s) email + +# Schedule + +Allocated 10 minutes + + + +Friendly URL: /2021/talks/project + + diff --git a/2021/info/research-nav.md b/2021/info/research-nav.md new file mode 100644 index 00000000..b33750bc --- /dev/null +++ b/2021/info/research-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: Babel for academics +Next: Reproducible molecular graphics with Org-mode diff --git a/2021/info/research-schedule.md b/2021/info/research-schedule.md new file mode 100644 index 00000000..e376ae83 --- /dev/null +++ b/2021/info/research-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for speaker to send prerecorded video + +# Schedule + +Allocated 5 minutes + + + +Friendly URL: /2021/talks/research + + diff --git a/2021/info/rust-nav.md b/2021/info/rust-nav.md new file mode 100644 index 00000000..1889f745 --- /dev/null +++ b/2021/info/rust-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: "Yak-shaving to a UI framework" (/"Help! I accidentally yak-shaved my way to writing a UI framework because overlays were slow") +Next: Emacs Application Framework: A 2021 Update diff --git a/2021/info/rust-schedule.md b/2021/info/rust-schedule.md new file mode 100644 index 00000000..9a4cb61e --- /dev/null +++ b/2021/info/rust-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for speaker to send prerecorded video + +# Schedule + +Allocated 20 minutes + + + +Friendly URL: /2021/talks/rust + + diff --git a/2021/info/structural-nav.md b/2021/info/structural-nav.md new file mode 100644 index 00000000..bf8f4de3 --- /dev/null +++ b/2021/info/structural-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: How to write faster Emacs Lisp +Next: Self-Describing Smart DSL's: The Next Magits diff --git a/2021/info/structural-schedule.md b/2021/info/structural-schedule.md new file mode 100644 index 00000000..b44d338d --- /dev/null +++ b/2021/info/structural-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for the organizers to send the speaker(s) email + +# Schedule + +Allocated 10 minutes + + + +Friendly URL: /2021/talks/structural + + diff --git a/2021/info/teach-nav.md b/2021/info/teach-nav.md new file mode 100644 index 00000000..e36c0bf1 --- /dev/null +++ b/2021/info/teach-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: Reproducible molecular graphics with Org-mode +Next: Creating technical API documentation and presentations using org-babel, restclient, and org-treeslide diff --git a/2021/info/teach-schedule.md b/2021/info/teach-schedule.md new file mode 100644 index 00000000..70d6c2c7 --- /dev/null +++ b/2021/info/teach-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for speaker to send prerecorded video + +# Schedule + +Allocated 20 minutes + + + +Friendly URL: /2021/talks/teach + + diff --git a/2021/info/tech-nav.md b/2021/info/tech-nav.md new file mode 100644 index 00000000..d1ce117c --- /dev/null +++ b/2021/info/tech-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: Using Org-mode to teach programming +Next: Productivity Dashboards with Emacs and Kindle diff --git a/2021/info/tech-schedule.md b/2021/info/tech-schedule.md new file mode 100644 index 00000000..19304c4e --- /dev/null +++ b/2021/info/tech-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for speaker to send prerecorded video + +# Schedule + +Allocated 10 minutes + + + +Friendly URL: /2021/talks/tech + + diff --git a/2021/info/telega-nav.md b/2021/info/telega-nav.md new file mode 100644 index 00000000..a9519ad2 --- /dev/null +++ b/2021/info/telega-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: Manual Package Management in The Era of Repositories - Why and How +Next: Introducing N-Angulator diff --git a/2021/info/telega-schedule.md b/2021/info/telega-schedule.md new file mode 100644 index 00000000..e417ef4c --- /dev/null +++ b/2021/info/telega-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for speaker to send prerecorded video + +# Schedule + +Allocated 10 minutes + + + +Friendly URL: /2021/talks/telega + + diff --git a/2021/info/test-nav.md b/2021/info/test-nav.md new file mode 100644 index 00000000..d84330c1 --- /dev/null +++ b/2021/info/test-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: Old McCarthy Had a Form +Next: Let's talk about bug trackers diff --git a/2021/info/test-schedule.md b/2021/info/test-schedule.md new file mode 100644 index 00000000..a3cbe305 --- /dev/null +++ b/2021/info/test-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for speaker to send prerecorded video + +# Schedule + +Allocated 5 minutes + + + +Friendly URL: /2021/talks/test + + diff --git a/2021/info/ui-nav.md b/2021/info/ui-nav.md new file mode 100644 index 00000000..6ec7a2c7 --- /dev/null +++ b/2021/info/ui-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: Self-Describing Smart DSL's: The Next Magits +Next: Extending Emacs in Rust with Dynamic Modules diff --git a/2021/info/ui-schedule.md b/2021/info/ui-schedule.md new file mode 100644 index 00000000..0c50f20f --- /dev/null +++ b/2021/info/ui-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for the organizers to send the speaker(s) email + +# Schedule + +Allocated 10 minutes + + + +Friendly URL: /2021/talks/ui + + diff --git a/2021/info/unix-nav.md b/2021/info/unix-nav.md new file mode 100644 index 00000000..3acaafd1 --- /dev/null +++ b/2021/info/unix-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: Choose Your Own (Technology-Enhanced Learning) Adventure +Next: Emacs manuals translation and OmegaT diff --git a/2021/info/unix-schedule.md b/2021/info/unix-schedule.md new file mode 100644 index 00000000..6a8e311e --- /dev/null +++ b/2021/info/unix-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for speaker to send prerecorded video + +# Schedule + +Allocated 10 minutes + + + +Friendly URL: /2021/talks/unix + + diff --git a/2021/info/world-nav.md b/2021/info/world-nav.md new file mode 100644 index 00000000..c30fd92f --- /dev/null +++ b/2021/info/world-nav.md @@ -0,0 +1,3 @@ +Back to the [[schedule]] +Previous: Let's talk about bug trackers +Next: Moldable Emacs, a step towards sustainable software diff --git a/2021/info/world-schedule.md b/2021/info/world-schedule.md new file mode 100644 index 00000000..ad84c1b1 --- /dev/null +++ b/2021/info/world-schedule.md @@ -0,0 +1,15 @@ + + +# Status + +Waiting for speaker to send prerecorded video + +# Schedule + +Allocated 20 minutes + + + +Friendly URL: /2021/talks/world + + diff --git a/2021/schedule-details.md b/2021/schedule-details.md new file mode 100644 index 00000000..084af731 --- /dev/null +++ b/2021/schedule-details.md @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Saturday, Nov 27, 2021: General talks
Morning
Opening remarks
Emacs News HighlightsSacha Chua
The True Frownies are the Friends We Made Along the Way: An Anecdote of Emacs's MalleabilityCase Duckworth
Choose Your Own (Technology-Enhanced Learning) AdventureGreta Goetz
"GNU's Not UNIX: Why Emacs Demonstrates The UNIX Philosophy Isn't Always The Only Answer"Daniel Rose
Emacs manuals translation and OmegaTJean-Christophe Helary
NonGNU ELPA UpdateKaluđerčić, Philip
Manual Package Management in The Era of Repositories - Why and HowDhavan (codingquark)
telega.el and the Emacs community on TelegramGabriele Bozzola and Evgeny Zajcev
Introducing N-AngulatorKevin Haddock
A day in the life of a janitorStefan Monnier
How to help Emacs maintainers?Bastien Guerry
Typesetting Gregorian Chant with EmacsSpencer King
Afternoon
Emacs and Montessori PhilosophyGrant Shangreaux
One effective CS grad student workflowGreg Coladonato
Budgeting, Project Monitoring and Invoicing with Org ModeAdolfo Villafiorita
Find Your (In)voice: Emacs for InvoicingBala Ramadurai
Using Org-Mode For Recording Continuous Professional DevelopmentPhilip Beadling
The use of Org mode syntax outside of GNU/EmacsKarl Voit
Org as an executable formatTom Gillespie
Babel for academicsAsilata Bapat
Managing a research workflow (bibliographies, note-taking, and arXiv)Ahmed Khaled
Reproducible molecular graphics with Org-modeBlaine Mooers
Using Org-mode to teach programmingDaniel German
Creating technical API documentation and presentations using org-babel, restclient, and org-treeslideJan Ypma
Productivity Dashboards with Emacs and KindleMehmet Tekman
Emacs with Nyxt: extend your editor with the power of a Lisp browserAndrea
On the design of text editorsNicolas P. Rougier
How Emacs made me appreciate software freedomProtesilaos Stavrou
Closing remarks day 1
Sunday, Nov 28, 2021: Development talks
Morning
Opening remarks day 2
How to write faster Emacs LispDmitry Gutov
Why structural editing is the future of code editing, and a novel approach for editing everyday languagesEthan Leba
Self-Describing Smart DSL's: The Next MagitsPsionic
"Yak-shaving to a UI framework" (/"Help! I accidentally yak-shaved my way to writing a UI framework because overlays were slow")Erik Anderson
Extending Emacs in Rust with Dynamic ModulesTuấn-Anh Nguyễn
Emacs Application Framework: A 2021 UpdateMatthew Zeng
Extending the "model" of Emacs to other applicationsLaszlo Krajnikovszkij
Don't write that package! or: How I learned to stop worrying and love emacs-develStefan Kangas
Turbo BindatStefan Monnier
Afternoon
Emacs Lisp native compiler, current status and future developmentsAndrea Corallo
Old McCarthy Had a FormIan Eure
Test blocksEduardo Ochs
Let's talk about bug trackersBastien Guerry
World CitizenMohsen BANAN
Moldable Emacs, a step towards sustainable softwareAndrea
CLEDE the Common Lisp Emacs Development Environment.Fermin MF
Imaginary ProgrammingShane Mulligan
How to build an EmacsFermin MF
M-x Forever: Why Emacs will outlast text editor trendsDavid Wilson
Closing remarks day 2
\ No newline at end of file diff --git a/2021/schedule.md b/2021/schedule.md new file mode 100644 index 00000000..8fd6e2c1 --- /dev/null +++ b/2021/schedule.md @@ -0,0 +1,8 @@ +[[!meta title="Schedule"]] +[[!meta copyright="Copyright © 2021 Amin Bandali and Sacha Chua"]] + +EmacsConf 2021 will be on November 27 (Sat) and November 28 (Sun), 2021 from 9am-5pm Toronto/EST time; equivalently, 6am-2pm PST, 2pm-10pm UTC, 3pm-11pm Zurich/CET. + +*Please note that the program is still being worked on and this list may change. We're still figuring out how things will go! =)* + +[[!inline pages="internal(2021/schedule-details)" raw="yes"]] diff --git a/2021/talks.md b/2021/talks.md new file mode 100644 index 00000000..83cc52ad --- /dev/null +++ b/2021/talks.md @@ -0,0 +1 @@ +[[!meta redir=/2021/schedule]] diff --git a/2021/talks/adventure.md b/2021/talks/adventure.md new file mode 100644 index 00000000..7b06e9b0 --- /dev/null +++ b/2021/talks/adventure.md @@ -0,0 +1,136 @@ +[[!meta title="Choose Your Own (Technology-Enhanced Learning) Adventure"]] +[[!meta copyright="Copyright © 2021 Greta Goetz"]] +[[!inline pages="internal(2021/info/adventure-nav)" raw="yes"]] + + + + +# Choose Your Own (Technology-Enhanced Learning) Adventure +Greta Goetz + +This presentation will move through Emacs artifacts illustrating +possible paths for beginners and then map out some supportive roles +for the enhanced learning potential (cf. Caillet in Andler & Guerry, +Engelbart) of Emacs. Emacs affords diverse possibilities for +individuals to interact creatively and autonomously with their digital +environment and others to satisfy their own needs (Illich) and +fulfills the promise of digital tools to help enhance our learning +(e.g. Engelbart), balancing creativity with guidance (Goodyear & +Retalis). + + +# Intro + +Emacs allows for play with formality and does not limit imaginable +types of interactivity, supporting both formal and informal learning +(cf. Caillet in Andler & Guerry 2008), therefore it can function as a +scaffold for development (cf. Vygotsky 1979: 86) and the creative and +autonomous ability of individuals to interact with their digital +environment and others who equally share the ability to use this tool +(Illich 1973). Individuals can use Emacs as often or seldom as they +want to express their needs and meaning in action, with no obligation +to use it (cf. Illich 1973: 22). + +The formal learning involved pertains to Emacs documentation (the +'temple') while related discussion and copying of or composing parts +of inits or smaller task-based problem solving represents the +'forum'. The latter, demonstrative of technology-enhanced learning, +allows for engagement in diverse and individual levels of learning, +balancing creativity with guidance (Goodyear & Retalis 2010: 4). + +1. What if we are beginners overwhelmed by formal Emacs documentation? Two possible learning paths: + + - a. Build on a needs-basis. Brief explanation and rationale [1 para]. + - b. Study others' inits and use-cases; Read Planet EmacsLife; Consult what programmers or power users say [1 link example for each]. + +2. Emacs as technological networks for enhanced learning with boundaries through [section supplemented by some examples, and illustrated by a mind-map to bring coherence]: + +- The 'wise' use of computers (Crichton) to manage and organize workflow +- Fun use of computers - 'there are people who want to put a stop to that' (Crichton) +- Disciplinary use-cases can give insight into how various Emacs capabilities fit into the mental models particular to disciplinary context. This can improve design performance while educating the designer (Goodyear & Retalis 2010). + +- Allows for multiple and organically changing organization of knowledge. This is opposed to relegating it to pre-fabricated fields, which is the case when using apps (as if all learners have the same spatial/visual needs?! + +- Emacs is developed and maintained by a community dedicated to keeping this freedom of use in these multiple contexts (cf. Illich 1973). +- Emacs thus allows us to control our tools and tasks (Illich 1973: +- in order to release ourselves from the tasks of *automatic* maintenance (cf. Latour's 1987 simple customers'). By contrast, the care-less use of automatizing pre-fabricated apps leads to knowledge loss and loss of know-how in life (Stiegler 2018). + +- Emacs fulfills the promise of the value of technology-enhanced learning (Goodyear & Retalis 2010) e.g. by augmenting OUR intellect (cf. Engelbart 1962), not automatizing our knowledge to smaller repetitive tasks that contribute to a larger picture we cannot see. + +# Conclusion + +Emacs does not limit any imaginable type of interactivity and promotes +a diversity of related content, further supporting pursuit of more +advanced technology-enhanced learning (TEL). TEL, with its current +*general* reliance on pre-fabricated one-size-fits-all software, does +not reach its potential where it uses apps or tools that automatize +knowledge. By contrast, Emacs enables us to learn this knowledge work, +and supports informal learning at all levels. This includes the most +basic needs-use level while also inviting us through its myriad +use-case examples to learn how work is managed, organized, and +coordinated for the benefit of the diverse community made possible by +maintainers and developers. Using Emacs not only means being able to +use this digital tool, but to learn about the structure of digital +learning and learning in general. + + +# References + +- +- +- +- +- +- +- Bruce, B. & Levin, J. (1997). Educational technology: media for inquiry, communication, construction, and expression. J. Educ. Comput. Res. 17(1), pp. 79–102. +- Caillet, E. (2008). L’exposition, le musée: L’éducation informelle comme école de l’éducation formelle, pp. 137-154. In Andler, D. & Guerry, B., Eds., Apprendre Demain: Sciences cognitives et éducation à l’ère numérique. Paris: Hatier. +- Crichton, M. (1983). Electronic Life. New York: Knopf. +- Engelbart, D. (1962). Augmenting human intellect: A conceptual framework. Menlo Park: Stanford Research Institute. +- Goodyear, P. & Retalis, S. (2010). Learning, Technology and Design, pp. 1-27. In Goodyear, P. & Retalis, S. (Eds.) Technology-Enhanced Learning: Design Patterns and Pattern Languages. Rotterdam, Boston: Sense Publishers. +- Illich, I. (1973). Tools of conviviality. New York: Harper & Row. +- Latour, B. (1987). Science in Action. Cambridge and London: Harvard University Press. +- Stiegler, B. (2018). The neganthropocene. Open Humanities Press. +- Vygotsky, L. (1979). Mind in Society: The Development of Higher Psychological +- Processes. Cambridge and London: Harvard University Press. + + +# Availability and preferred Q&A approach + +Due to the pandemic situation, my teaching schedule fluctuates so I +will not know my availability until much closer to the +date. Therefore, I can only guarantee delayed answer response +(whatever you request), but if available, will join live. +May I please note that I will be pre-recording my video if this submission is accepted. + + +# Speaker release + +By submitting this proposal, I agree that my presentation at +EmacsConf 2021 is subject to the following terms and conditions: + +The EmacsConf organizers may capture audio and video (a "Recording") +of my presentation and any associated materials, which may include +slides, notes, transcripts, and prerecording(s) of my presentation +that I provide to the EmacsConf organizers. + +I authorize the EmacsConf organizers to distribute, reproduce, +publicly display, and prepare derivative works of the Recording and +any derivative works of the Recording (the "Licensed Materials") +under the terms of the Creative Commons Attribution-ShareAlike 4.0 +International (CC BY-SA 4.0) license. + +I grant to the EmacsConf organizers permission to use my name, +likeness, and biographic information in association with their use +of the Licensed Materials under the above license. + +I represent that I have the authority to grant the above license to +the EmacsConf organizers. If my presentation incorporates any +material owned by third parties, I represent that the material is +sublicensable to the EmacsConf organizers or that my use of them is +fair use. + + + +[[!inline pages="internal(2021/info/adventure-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/adventure-nav)" raw="yes"]] diff --git a/2021/talks/babel.md b/2021/talks/babel.md new file mode 100644 index 00000000..a42ba97d --- /dev/null +++ b/2021/talks/babel.md @@ -0,0 +1,76 @@ +[[!meta title="Babel for academics"]] +[[!meta copyright="Copyright © 2021 Asilata Bapat"]] +[[!inline pages="internal(2021/info/babel-nav)" raw="yes"]] + + + + +# Babel for academics +Asilata Bapat + +Plain org-mode is already an extremely powerful and +customisable tool for task and time management, note-taking, calendar +and agenda management, and much more. Babel takes org a step further +by letting you write, evaluate, and export code in different languages +from within a single file. In this talk, I will highlight some +features of babel that I find exciting and extremely useful, +particularly for an academic workflow. + +Getting started with babel can be intimidating, but it's hard to stop +using it once you start. As an academic, I typically don't manage +large coding projects. My primary purpose is writing lecture notes, +assignments, and papers, and managing related admin. Typically, I want +to try and automate the boring portions of my workflow without extra +overhead. I also tend to find various tasks easier in some programming +languages and harder in others, and prefer to mix and match languages +as the task dictates. Babel makes this process seamless. + +A basic use case is writing a document in org-mode and exporting it to +LaTeX or HTML. Org-mode even lets you write multiple documents in a +single org file, which can be convenient. Babel lets you add all sorts +of enhancements to the same file. For example, suppose we have a +single org document with all the problem sets for a course. Within +this single file, we could now: + +- draw pictures in ditaa, graphviz, or python instead of LaTeX, +- use python to do complex calculations and then output the result as LaTeX, +- define skeletons to quickly draw up assignment templates, +- toggle exporting of assignments with or without solutions based on tags, +- locally change export settings or run a post-export hook, +- automatically export to LaTeX after saving, +- tangle code blocks from some or all of the languages to external files. + +I will try to showcase features of babel that academics could find +helpful, by presenting some ways in which I have tried to use babel. I +would also like to be inspired by other people's babel workflows! + + + +# Outline + +- 5-10 minutes: (brief description/outline) + +For a 5-10 minute presentation I will give a brief intro and present one or two example files that heavily use babel. I will use these +examples to highlight some of the features mentioned in the abstract. + + + + +[[!inline pages="internal(2021/info/babel-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/babel-nav)" raw="yes"]] diff --git a/2021/talks/binary.md b/2021/talks/binary.md new file mode 100644 index 00000000..58689a55 --- /dev/null +++ b/2021/talks/binary.md @@ -0,0 +1,30 @@ +[[!meta title="Turbo Bindat"]] +[[!meta copyright="Copyright © 2021 Stefan Monnier"]] +[[!inline pages="internal(2021/info/binary-nav)" raw="yes"]] + + + + +# Turbo Bindat +Stefan Monnier + +Bindat is an ELisp library to help manipulate binary data. + This is a niche library that is used by packages such as Websocket, + EMMS, and cpio-mode. Its implementation was repeatedly caught + harassing hapless kitten while at the same time providing poor + service slowly. For Emacs-28, Bindat was rewritten so as + to make it more efficient and flexible while respecting the kitten. + In this presentation I intent to show how we saved those. + Not recommended for birds. + +- ~20 minutes: + 5 min: Intro and presentation of Bindat + 5 min: Showcase some of its problems + 5 min: Present the new design + 5 min: Examples of what can be done with it + + + +[[!inline pages="internal(2021/info/binary-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/binary-nav)" raw="yes"]] diff --git a/2021/talks/borg.md b/2021/talks/borg.md new file mode 100644 index 00000000..9a4b935a --- /dev/null +++ b/2021/talks/borg.md @@ -0,0 +1,33 @@ +[[!meta title="Manual Package Management in The Era of Repositories - Why and How"]] +[[!meta copyright="Copyright © 2021 Dhavan (codingquark)"]] +[[!inline pages="internal(2021/info/borg-nav)" raw="yes"]] + + + + +# Manual Package Management in The Era of Repositories - Why and How +Dhavan (codingquark) + +Emacs now has many package repositories - enought to have conflicts +and arguments about. The packages are becoming big, they depend on many +other packages and it is not easy to keep track of what all is being +installed in our Emacsen. An aggressive way out of this is to use Yet +Another Package and install all elisp code manually - with borg[1]. + +[1]: + + + +# Outline + +- 5-10 minutes: (brief description/outline) + 1. What are we trying to solve? + 2. What is borg? + 3. How to use it? + 4. Assimilate a package for demo + + + +[[!inline pages="internal(2021/info/borg-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/borg-nav)" raw="yes"]] diff --git a/2021/talks/bug.md b/2021/talks/bug.md new file mode 100644 index 00000000..6038d195 --- /dev/null +++ b/2021/talks/bug.md @@ -0,0 +1,22 @@ +[[!meta title="Let's talk about bug trackers"]] +[[!meta copyright="Copyright © 2021 Bastien Guerry"]] +[[!inline pages="internal(2021/info/bug-nav)" raw="yes"]] + + + + +# Let's talk about bug trackers +Bastien Guerry + +For 17 years, the Org developers didn't use a bug tracker, +shamelessly failing the Joel Spolsky test. Why was it "good enough"? +Why was it wrong? Why did we move to Woof!? Why Woof! is not a bug +tracker? + +- 20 minutes + + + +[[!inline pages="internal(2021/info/bug-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/bug-nav)" raw="yes"]] diff --git a/2021/talks/build.md b/2021/talks/build.md new file mode 100644 index 00000000..73f30450 --- /dev/null +++ b/2021/talks/build.md @@ -0,0 +1,35 @@ +[[!meta title="How to build an Emacs"]] +[[!meta copyright="Copyright © 2021 Fermin MF"]] +[[!inline pages="internal(2021/info/build-nav)" raw="yes"]] + + + + +# How to build an Emacs +Fermin MF + +This is a deep dive in the Emacs philosophical and technical +aspect on what makes our beloved GNU Emacs +what it it. It's also a talk about the early LISP machines and +fascinating were those days of experimentation and engineering. + +It will continue with the Emacs benefits/trade-offs from an +user/developer stand points, what things can be improved and +what can be an hypothetical path on how to build a software that +can also be called Emacs. + +As a last part, I'll talk about CEDAR, an Emacs that I've been +developing in Common Lisp, the project goals +and the challenges. + +For more details about CEDAR: + +- 40 minutes: + A dive into the Emacs/Lisp machines history, what makes GNU Emacs + an Emacs and how you can build an Emacs. + + + +[[!inline pages="internal(2021/info/build-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/build-nav)" raw="yes"]] diff --git a/2021/talks/clede.md b/2021/talks/clede.md new file mode 100644 index 00000000..ded9bee4 --- /dev/null +++ b/2021/talks/clede.md @@ -0,0 +1,33 @@ +[[!meta title="CLEDE the Common Lisp Emacs Development Environment."]] +[[!meta copyright="Copyright © 2021 Fermin MF"]] +[[!inline pages="internal(2021/info/clede-nav)" raw="yes"]] + + + + +# CLEDE the Common Lisp Emacs Development Environment. +Fermin MF + +I've been developing a package that helps with the development of +Common Lisp's software, +it's uses the internal semantic framework, it has a custom reader +and integration for +common Emacs packages (like Sly and the internal inferior-lisp-mode). + +The idea is to supply features that other language with and static +analyzer have, +like refactoring and code generation. + +For more details: + +- 20 minutes: + It seems like not too much people knows about semantic, so I can + summarize some of it in 10 minutes + and then An explanation on how to use the package, how to extend it + and the future of it. + + + +[[!inline pages="internal(2021/info/clede-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/clede-nav)" raw="yes"]] diff --git a/2021/talks/cs.md b/2021/talks/cs.md new file mode 100644 index 00000000..a35dec9f --- /dev/null +++ b/2021/talks/cs.md @@ -0,0 +1,34 @@ +[[!meta title="One effective CS grad student workflow"]] +[[!meta copyright="Copyright © 2021 Greg Coladonato"]] +[[!inline pages="internal(2021/info/cs-nav)" raw="yes"]] + + + + +# One effective CS grad student workflow +Greg Coladonato + +When I was an undergrad, I learned many things, most of +which I forgot. In the time since then, I've discovered Org Mode, Org +Roam, Org Noter, Org Ref. PDF Tools, and Anki. I would like to share +my approach for capturing all the information that comes my way as a +MS CS student at Georgia Tech, in the hopes that I can both get +feedback on ways to improve the system I use, as well as hopefully +inspire others to build workflows that make them more productive. + + + +# Outline + +- 5-10 minutes: Go through some typical workflows associated with being a grad student, using the packages mentioned in the abstract. + + + + +[[!inline pages="internal(2021/info/cs-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/cs-nav)" raw="yes"]] diff --git a/2021/talks/dashboard.md b/2021/talks/dashboard.md new file mode 100644 index 00000000..8ceacc4b --- /dev/null +++ b/2021/talks/dashboard.md @@ -0,0 +1,151 @@ +[[!meta title="Productivity Dashboards with Emacs and Kindle"]] +[[!meta copyright="Copyright © 2021 Mehmet Tekman"]] +[[!inline pages="internal(2021/info/dashboard-nav)" raw="yes"]] + + + + +# Productivity Dashboards with Emacs and Kindle +Mehmet Tekman + +Since 2008, Amazon have released a new Kindle device every year, +supplanting each generation with a newer model that boasts highly +promoted incremental features which greatly devalues the price of +their older models. These forgotten models are sold on Ebay and +other secondhand websites at highly discount prices by owners who +do not see the true potential of these devices: Kindles are +excellent high contrast low-refresh display rate E-Ink devices, +with Wifi capability, that run embedded Linux in the +background. Depending on the model, an idle Kindle can last weeks +before needing a recharge. This makes them ideal as passive image +devices that can be configured easily using a few shell +scripts. Indeed, efforts have been made in dedicated hacker forums +to expose the Linux filesystem and to enable features such as +custom screensavers, SSH networking, and more. By exploiting these +features, and by carefully disabling the software/bloatware that +comes with the device, these Kindles have found new life as online +dashboard devices which can fetch and display information from the +internet at timely intervals. + +Here we describe a tool to control multiple Kindle devices with a +single org-mode/shell-based tool, built initially to periodically +serve updated Emacs Org-Agenda views, but later expanded to produce +online local weather reports and work calendar, Emacs calendars +(calfw, org-gcal), daily dietary information (org-calories), +Org-Mode sparse TODO trees, miscellaneous image and text content +(via imagemagick), small messages, and much more. + +In this talk, we show how to configure multiple Kindles with any +desired custom content, following any daily/weekly schedule, all +easily managed from Emacs within a single Org-Mode file. + + + +# Outline + +- 5-10 minutes: + + 1-3 mins + Talk about repurposing Kindles: + + - Cheap second-hand wifi device, hackable + - Low-powered, long battery life, low refresh rate – perfect + for a dashboard + - Timely updated Org-Mode Agendas anyone? + - Reference to inspired projects (kindle-dashboard) + + 2-3 mins + Generate content + + - A static text+picture image easily generated with imagemagick + wrapper + - An image of a sparse tree of org-mode TODO file + - An image of another emacs view (e.g. Calfw, or org-calories) + - Show post-processing for optimizing image for Kindles + + 1-2 mins + Configuration in a single org-mode file + + - Defining Machines + - Defining Commands to generate content + - Defining Schedules to run Commands on multiple Machines at + specific points in the day + + 1-2 mins + Export and Run: + + - Show exported shell configs and generated cronjobs + - Witness multiple Kindles producing desired content with wakeup + timers + + + + +[[!inline pages="internal(2021/info/dashboard-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/dashboard-nav)" raw="yes"]] diff --git a/2021/talks/day1-close.md b/2021/talks/day1-close.md new file mode 100644 index 00000000..7707ba6a --- /dev/null +++ b/2021/talks/day1-close.md @@ -0,0 +1,15 @@ +[[!meta title="Closing remarks day 1"]] +[[!meta copyright="Copyright © 2021 "]] +[[!inline pages="internal(2021/info/day1-close-nav)" raw="yes"]] + + + + +# Closing remarks day 1 + + + + +[[!inline pages="internal(2021/info/day1-close-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/day1-close-nav)" raw="yes"]] diff --git a/2021/talks/day1-open.md b/2021/talks/day1-open.md new file mode 100644 index 00000000..70abc7c0 --- /dev/null +++ b/2021/talks/day1-open.md @@ -0,0 +1,15 @@ +[[!meta title="Opening remarks"]] +[[!meta copyright="Copyright © 2021 "]] +[[!inline pages="internal(2021/info/day1-open-nav)" raw="yes"]] + + + + +# Opening remarks + + + + +[[!inline pages="internal(2021/info/day1-open-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/day1-open-nav)" raw="yes"]] diff --git a/2021/talks/day2-close.md b/2021/talks/day2-close.md new file mode 100644 index 00000000..721c9ae7 --- /dev/null +++ b/2021/talks/day2-close.md @@ -0,0 +1,15 @@ +[[!meta title="Closing remarks day 2"]] +[[!meta copyright="Copyright © 2021 "]] +[[!inline pages="internal(2021/info/day2-close-nav)" raw="yes"]] + + + + +# Closing remarks day 2 + + + + +[[!inline pages="internal(2021/info/day2-close-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/day2-close-nav)" raw="yes"]] diff --git a/2021/talks/day2-open.md b/2021/talks/day2-open.md new file mode 100644 index 00000000..d6181726 --- /dev/null +++ b/2021/talks/day2-open.md @@ -0,0 +1,15 @@ +[[!meta title="Opening remarks day 2"]] +[[!meta copyright="Copyright © 2021 "]] +[[!inline pages="internal(2021/info/day2-open-nav)" raw="yes"]] + + + + +# Opening remarks day 2 + + + + +[[!inline pages="internal(2021/info/day2-open-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/day2-open-nav)" raw="yes"]] diff --git a/2021/talks/design.md b/2021/talks/design.md new file mode 100644 index 00000000..e251a704 --- /dev/null +++ b/2021/talks/design.md @@ -0,0 +1,59 @@ +[[!meta title="On the design of text editors"]] +[[!meta copyright="Copyright © 2021 Nicolas P. Rougier"]] +[[!inline pages="internal(2021/info/design-nav)" raw="yes"]] + + + + +# On the design of text editors +Nicolas P. Rougier + +Text editors are written by and for developers. They come +with a large set of default and implicit choices in terms of layout, +typography, colorization and interaction that hardly change from one +editor to the other. It is not clear if these implicit choices derive +from the ignorance of alternatives or if they derive from developers' +habits, reproducing what they are used to. Durint this talk, I will +characterize these implicit choices and illustrate what are some +alternatives using GNU Emacs. + + + +# Outline + + +- 10 minutes alternative + +Mostly a live demo of my environment with pointers to the different +packages + + + +[[!inline pages="internal(2021/info/design-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/design-nav)" raw="yes"]] diff --git a/2021/talks/devel.md b/2021/talks/devel.md new file mode 100644 index 00000000..b3c197f4 --- /dev/null +++ b/2021/talks/devel.md @@ -0,0 +1,88 @@ +[[!meta title="Don't write that package! or: How I learned to stop worrying and love emacs-devel"]] +[[!meta copyright="Copyright © 2021 Stefan Kangas"]] +[[!inline pages="internal(2021/info/devel-nav)" raw="yes"]] + + + + +# Don't write that package! or: How I learned to stop worrying and love emacs-devel +Stefan Kangas + +Emacs' greatest strength is also its greatest weakness: it is **too** hackable. + +We have a great community that experiment with new features that are still +lacking in Emacs core. They write up a package and develop the living daylights +out of it, until it is basically amazing. (I'm looking at you Magit.) + +There are other examples such as helpful.el - great package, but why are those +features not in core? What about projectile? And so on. + +Core demands copyright assignments (CLA). This is a fact of life. While I +mostly agree with the people saying it is not helful, they are there to protect +Emacs from copyright issues in the future. So my suggestion here is simple: +just **sign the papers**. It is just a formality, and you should only need to do +it once. + +I suggest that any ambitious feature that we **might** want to see shipped in the +default Emacs distribution should by default go to GNU ELPA. You don't need to +do this, of course, and I respect your decision, but I urge you to do it. + +GNU ELPA does not have an exceptionally high standard, but we do try to give any +new package a proper code review. + +MELPA is excellent. We love MELPA. They don't have a criterion for their +packages that is important to the FSF, which is to not recommend non-free +software. Therefore, we could not recommend it by default, and had to build +NonGNU ELPA. + +NonGNU ELPA will be used for packages that we don't have an assignment for but +would still like to distribute. It should ideally only be for old packages +where getting a CLA is impractical. + +It is sometimes perceived as hard to contribute to Emacs core. This impression +is largely wrong. If I can do it, you can too. + +We do have a problem in that our tools and methods (mailing lists, the bug +tracker) are out-dated. This is largely correct. We want to migrate to +something else, and the best candidate is probably Sourcehut. Please volunteer +to help! + +We sometimes see people adding stuff to their Init file to fix this or that +annoyance, or even bug. The more ambitious would go on to package up such fixes +in what I call "patch packages". "Hey, foo-mode doesn't have support for +'bookmark-set', let's write a package!" I am here to suggest that you submit a +patch to Emacs instead. + +Fixing an issue for one person is good, and fixing it for more people is even +better. Fixing it for everyone? Priceless. + +emacs-devel is not that scary, nor is email. We are really quite friendly and +easy going, but the communication we prefer (for reasons of efficiency - the +volume is very high) is often very brief and to the point. We are trying our +best at communicating, but sometimes fail. + +And we need more contributors. We need a successful Emacs on this planet. + +So should you really write a package, or should YOU become a core contributor? + + + +# Outline + +- I will urge people to consider contributing to Emacs instead of + writing small packages, and explain GNU ELPA, MELPA, CLA. +- I will go into greater detail about emacs-devel, how it "works" + (e.g. is Emacs conservative without reason?), how to get things + done and the necessary mindset. + + + + +[[!inline pages="internal(2021/info/devel-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/devel-nav)" raw="yes"]] diff --git a/2021/talks/dsl.md b/2021/talks/dsl.md new file mode 100644 index 00000000..9fb5cd47 --- /dev/null +++ b/2021/talks/dsl.md @@ -0,0 +1,48 @@ +[[!meta title="Self-Describing Smart DSL's: The Next Magits"]] +[[!meta copyright="Copyright © 2021 Psionic"]] +[[!inline pages="internal(2021/info/dsl-nav)" raw="yes"]] + + + + +# Self-Describing Smart DSL's: The Next Magits +Psionic + +When we begin programming, the promise is to automate away repetitive +tasks in life. As those program's capability grows, we begin to need +configuration UI's. We can start with a CLI, but as any CLI grows, we +run into the following issues: + +- As options pile up, the intuition of simplicity is lost in helps and +manpages + +- Stateless operation has no idea what to do next and loses terseness +- Frequent dispatch of commands to interrogate state required for the +operator to decide what action to perform + +- Composition compounds with all of these issues + +Magit has the UI trifecta of being terse, intuitive, and intelligent. +Magit's UI input library, Transient, is a standalone package for +developing more killer UI's, and not just for CLI applications, but +also for server applications, Emacs applications, and Emacs itself. + +While Transient's potential is to create the most highly productive +UI's short of thought control, going beyond simple command dispatchers +requires a deeper dive. When we think like constructing a DSL for the +task and using transient to input that DSL, we get an intelligent, +self-describing modal programming system. + + +# Outline + +- Updates to Transient documentation and demos of API examples +- Wrapping a custom CLI tool in Transient + + + + + +[[!inline pages="internal(2021/info/dsl-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/dsl-nav)" raw="yes"]] diff --git a/2021/talks/eaf.md b/2021/talks/eaf.md new file mode 100644 index 00000000..1bd64e5e --- /dev/null +++ b/2021/talks/eaf.md @@ -0,0 +1,26 @@ +[[!meta title="Emacs Application Framework: A 2021 Update"]] +[[!meta copyright="Copyright © 2021 Matthew Zeng"]] +[[!inline pages="internal(2021/info/eaf-nav)" raw="yes"]] + + + + +# Emacs Application Framework: A 2021 Update +Matthew Zeng + +Emacs Application Framework (EAF) is a customizable and extensible GUI +application framework that extends Emacs graphical capabilities using +PyQt5. There are many new but important updates since EmacsConf2020 +last year, this talk will briefly go over them. + + + +# Outline + +- 5-10 minutes: (brief description/outline) + + + +[[!inline pages="internal(2021/info/eaf-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/eaf-nav)" raw="yes"]] diff --git a/2021/talks/exec.md b/2021/talks/exec.md new file mode 100644 index 00000000..e4d46aef --- /dev/null +++ b/2021/talks/exec.md @@ -0,0 +1,77 @@ +[[!meta title="Org as an executable format"]] +[[!meta copyright="Copyright © 2021 Tom Gillespie"]] +[[!inline pages="internal(2021/info/exec-nav)" raw="yes"]] + + + + +# Org as an executable format +Tom Gillespie + +Org mode is known for its flexibility, power, and staggeringly diverse +number of workflows, users, and use cases. + +This talk explores just how far we can push the boundaries of the sane +and sensible with regard to Org workflows. + +In particular it will discuss shebang blocks, and elvs: two parts of a +complete system for creating executable Org files. + +Org syntax does not support shebang lines. However, it turns out that +Org syntax enables something even better — shebang blocks. + +Org is also (supposedly) not an executable file format. However, by +combining a shebang block with a Org babel source block, and eval +local variables (elvs) Org becomes a multi-language executable format. + +In this talk we introduce shebang blocks and elvs as a two part system +that transforms Org files into executable documents that can run on any +recent version of Emacs. + +These ideas are implemented in + and +, and +orgstrap.el is available as a package on MELPA and can be installed +via M-x install-package orgstrap. + +The talk will open with a demo of how to create an executable Org file +using the orgstrap machinery. + +We then discuss security considerations, and show example use cases. + +Finally the talk will cover the details and development of the +portable shebang block for Org mode that works on a wide variety of +systems and shells, and on the development of a formal specification +and a reference implementation for using Org source blocks to +transform Org files from plain text documents with a bit of markup +into self describing computational documents, or interactive +applications. + + + +# Outline + +- 5-10 minutes: + +A demo of adding the orgstrap block and elvs, +adding a shebang block, and then running an org file. + + + +[[!inline pages="internal(2021/info/exec-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/exec-nav)" raw="yes"]] diff --git a/2021/talks/faster.md b/2021/talks/faster.md new file mode 100644 index 00000000..4e9b7752 --- /dev/null +++ b/2021/talks/faster.md @@ -0,0 +1,24 @@ +[[!meta title="How to write faster Emacs Lisp"]] +[[!meta copyright="Copyright © 2021 Dmitry Gutov"]] +[[!inline pages="internal(2021/info/faster-nav)" raw="yes"]] + + + + +# How to write faster Emacs Lisp +Dmitry Gutov + +- Before optimizing, benchmark first. +- Different benchmarking approaches. +- Live evaluation, step-debugging, measuring from a debugger breakpoint. +- How to determine if a function is expensive. How to pick one from + competing alternatives (cl-lib, seq, dash, lean core). +- Print-benchmarking. +- Byte-compiled code can give a very different picture, changing where + the bottleneck is. How to quickly load a byte-compiled version. +- Steps taken to speed up the Xref package recently. + + +[[!inline pages="internal(2021/info/faster-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/faster-nav)" raw="yes"]] diff --git a/2021/talks/forever.md b/2021/talks/forever.md new file mode 100644 index 00000000..0ba1c8b1 --- /dev/null +++ b/2021/talks/forever.md @@ -0,0 +1,33 @@ +[[!meta title="M-x Forever: Why Emacs will outlast text editor trends"]] +[[!meta copyright="Copyright © 2021 David Wilson"]] +[[!inline pages="internal(2021/info/forever-nav)" raw="yes"]] + + + + +# M-x Forever: Why Emacs will outlast text editor trends +David Wilson + +The computer software industry has seen many "popular" text editors come +and go, often due to the mercurial fashions of software development. In +this talk, we'll take a look at why popular editors fade and the +specific aspects of Emacs that will ensure it remains relevant +regardless of mainstream popularity. + + + +# Outline + +- Discuss the core thesis, the features that make Emacs + desirable for long-term use (extensibility, day-to-day 'life' features) + +- Include more background on the text editor landscape and + how the scope of various editors is more narrow and doesn't compare to Emacs. + +- Talk about specific instances where editors were popular, fell out + of popularity, and why (due to changing fashions, not usually + better features). + +[[!inline pages="internal(2021/info/forever-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/forever-nav)" raw="yes"]] diff --git a/2021/talks/form.md b/2021/talks/form.md new file mode 100644 index 00000000..12443a8f --- /dev/null +++ b/2021/talks/form.md @@ -0,0 +1,58 @@ +[[!meta title="Old McCarthy Had a Form"]] +[[!meta copyright="Copyright © 2021 Ian Eure"]] +[[!inline pages="internal(2021/info/form-nav)" raw="yes"]] + + + + +# Old McCarthy Had a Form +Ian Eure + +Most practical languages are multi-paradigm, offering several +abstractions for the programmer. But did you know that Emacs Lisp +comes with a powerful system for object-oriented programming? Join me +for a discussion of EIEIO, and learn how it can help you write more +modular, flexible Emacs Lisp. + + + +# Outline + +- 5-10 minutes: (brief description/outline) + - What is CLOS/EIEIO? + - Why would I want OOP in Emacs Lisp? + - How is the CLOS object model different from C++/Java/.NET? + - Further reading + + + +[[!inline pages="internal(2021/info/form-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/form-nav)" raw="yes"]] diff --git a/2021/talks/freedom.md b/2021/talks/freedom.md new file mode 100644 index 00000000..09242583 --- /dev/null +++ b/2021/talks/freedom.md @@ -0,0 +1,41 @@ +[[!meta title="How Emacs made me appreciate software freedom"]] +[[!meta copyright="Copyright © 2021 Protesilaos Stavrou"]] +[[!inline pages="internal(2021/info/freedom-nav)" raw="yes"]] + + + + +# How Emacs made me appreciate software freedom +Protesilaos Stavrou + +The theme will be "how Emacs empowered my software freedom". +I will outline the key moments in my transition to a GNU/Linux operating +system and mark those which eventually contributed towards me becoming +an Emacs user, maintainer of a—dare I say—popular package, and +contributor to upstream Emacs (among others). By alluding to personal +experiences, I will draw generalisable insights and connect them to what +I believe are irreducible qualities of Emacs qua software and Emacs as a +community of like-minded people. The talk will be theoretical in +nature: there won't be any code-related demonstration nor technical +references that only people with a background in computer science would +likely recognise. Personal anecdotes shall be tangential to the point +and considered as ancillary to the thesis of what Emacs represents from +the standpoint of software freedom and user empowerment. The +presentation is intended for a general audience that is interested in +GNU software in general and Emacs in particular. My formal educational +background as a social scientist (i.e. not a programmer) and later as a +philosopher informs my approach to this topic. + +The presentation shall be 40 minutes long. Its text will be in essay +form and shall be supplied as complementary material to the video. The +notation will be in Org mode. I cannot provide an outline in advance, +as it will most likely not be consistent with the actual presentation. +If, however, this is absolutely required for administrative purposes I +shall furnish one regardless with the proviso that I am in no way bound +by it and thus reserve the right to modify it ahead of the main event. + + + +[[!inline pages="internal(2021/info/freedom-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/freedom-nav)" raw="yes"]] diff --git a/2021/talks/frownies.md b/2021/talks/frownies.md new file mode 100644 index 00000000..a88d7297 --- /dev/null +++ b/2021/talks/frownies.md @@ -0,0 +1,32 @@ +[[!meta title="The True Frownies are the Friends We Made Along the Way: An Anecdote of Emacs's Malleability"]] +[[!meta copyright="Copyright © 2021 Case Duckworth"]] +[[!inline pages="internal(2021/info/frownies-nav)" raw="yes"]] + + + + +# The True Frownies are the Friends We Made Along the Way: An Anecdote of Emacs's Malleability +Case Duckworth + +Emacs is well-known for being extremely flexible, programmable, and +extensible; in fact, that's probably the biggest reason it's still +being used after 40+ years of existence, and even has enough clout to +generate an entire conference in its name. In this medium-length +presentation, I will add another point to the data set proving Emacs's +abilities, by narrating the latest package I made, \`frowny.el\`, from +its conception to its current, nearly-completed state. + +I wrote frowny.el to scratch someone else's itch as a joke on IRC, but +it has been called "pretty useful, for a joke package." I feel like +that encapsulates the spirit of Emacs and that's why I want to present +on this topic. + +Along the way, I'll discuss just a little of my own history of Emacs, +and why I feel it's a great tool for non-technical users to sink their +teeth into. + + + +[[!inline pages="internal(2021/info/frownies-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/frownies-nav)" raw="yes"]] diff --git a/2021/talks/gregorian.md b/2021/talks/gregorian.md new file mode 100644 index 00000000..1b1af064 --- /dev/null +++ b/2021/talks/gregorian.md @@ -0,0 +1,36 @@ +[[!meta title="Typesetting Gregorian Chant with Emacs"]] +[[!meta copyright="Copyright © 2021 Spencer King"]] +[[!inline pages="internal(2021/info/gregorian-nav)" raw="yes"]] + + + + +# Typesetting Gregorian Chant with Emacs +Spencer King + +There are a variety of methods for typesetting gregorian +chant scores and outputting high-quality sheet music. One of these is +a tool called Gregorio, which integrates with LaTeX allowing scores to +be cleanly inserted into other documents. All Gregorio files are plain +text, allowing them to easily be shared with other users and managed +with a version control system. In this talk, I will give a brief +overview of the Gregorio tool and then show how it can be used in +Emacs by typesetting a simple score. All code and examples will be +made available to help new users get started with typesetting their +own scores. + + + +# Outline + +- 5-10 minutes: (brief description/outline) + 1. Introduction to chant music + 2. Introduction to Gregorio + 3. Example of typesetting a score in Emacs + 4. Code and example availability + + + +[[!inline pages="internal(2021/info/gregorian-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/gregorian-nav)" raw="yes"]] diff --git a/2021/talks/imaginary.md b/2021/talks/imaginary.md new file mode 100644 index 00000000..76bd46b9 --- /dev/null +++ b/2021/talks/imaginary.md @@ -0,0 +1,100 @@ +[[!meta title="Imaginary Programming"]] +[[!meta copyright="Copyright © 2021 Shane Mulligan"]] +[[!inline pages="internal(2021/info/imaginary-nav)" raw="yes"]] + + + + +# Imaginary Programming +Shane Mulligan + +Imaginary Programming (IP) is both methodology and paradigm. It is an +extension of literate programming and a way of creating software without +the use of imperative, functional or even declarative code. Yet IP employs +all disciplines to achieve the miraculous. The only contingency is on one +or more language models, known as foundation models. The real value of IP +is not found by abandoning sound logic altogether, but in weaving the real +with the imaginary. The future of imaginary programming is one in which +almost all of computing is inferred. I have built a suite of tools based on +emacs for interfacing real programming languages with imaginary ones; all +of this in order to demonstrate what I mean; a ‘complex’ terminal that lets +you imagine what happens no matter how nested you are within interpreters, +an example-oriented language, a file format that encodes the provenance of +text and a library for imaginary functional programming primitives called +iLambda. It is important to recognise IP because, for lack of a better +term, it has far-reaching implications for intellectual property and the +GPL. Please keep an open mind. + + + +# Outline + +- 5-10 minutes: +- a 5 minute introduction to imaginary programming, followed by + - a demonstration of iLambda. + - iλ, a family of imaginary programming libraries + + + + +IRC libertyprime at #emacs on libera + +Shane Mulligan + + + +[[!inline pages="internal(2021/info/imaginary-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/imaginary-nav)" raw="yes"]] diff --git a/2021/talks/invoice.md b/2021/talks/invoice.md new file mode 100644 index 00000000..74852c94 --- /dev/null +++ b/2021/talks/invoice.md @@ -0,0 +1,42 @@ +[[!meta title="Find Your (In)voice: Emacs for Invoicing"]] +[[!meta copyright="Copyright © 2021 Bala Ramadurai"]] +[[!inline pages="internal(2021/info/invoice-nav)" raw="yes"]] + + + + +# Find Your (In)voice: Emacs for Invoicing +Bala Ramadurai + +Ye Freelance warriors, please lend me your I/O devices for 5 minutes. + +Your time is your money! Do you find it a pain to generate an invoice, +record the details into your accounting software and keep track of +taxes and payments? You are not alone, I found the whole invoice +thingy to be extremely painful. + +But worry not, Emacs comes to our rescue. + +My talk will give you a basic intro on how to use org mode, some embedded python code and file jugglery to generate stylistic and professional invoices. + +What you will learn during the session: + +- How to track your freelance time using orgmode +- How to create the basic infrastructure for invoice generation +- How to generate the invoice +- How to manage multiple clients +- How to enter the finance details into your accounting software +- How to track invoice payments + +We will use the following packages: + +- Emacs+orgmode (duh?) +- yasnippet +- python layer (I use spacemacs, so whatever is the equivalent in your config) +- Some unnecessary Shakespearean references + + + +[[!inline pages="internal(2021/info/invoice-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/invoice-nav)" raw="yes"]] diff --git a/2021/talks/janitor.md b/2021/talks/janitor.md new file mode 100644 index 00000000..03063023 --- /dev/null +++ b/2021/talks/janitor.md @@ -0,0 +1,29 @@ +[[!meta title="A day in the life of a janitor"]] +[[!meta copyright="Copyright © 2021 Stefan Monnier"]] +[[!inline pages="internal(2021/info/janitor-nav)" raw="yes"]] + + + + +# A day in the life of a janitor +Stefan Monnier + +Because of a reckless former Emacs maintainer that shall + better stay unnamed, ELisp has seen a fair bit of churn in the last 10 + years, making it necessary to clean up "old" code [in order to open up + the road for yet more recklessness? ]. + In this documentary we will follow a famous janitor in his every day job + dealing with the aftermath of the cl-lib / lexical-binding party. + +- ~20 minutes + Here really, I'm not sure how much time this will take. I put 20 + minutes because I think I might be able to fill that and I think more + than that could turn too boring. I intend to make it a "live coding" + kind of thing, without anything like an outline: it's basically "make" + followed by fixing the warnings. + + + +[[!inline pages="internal(2021/info/janitor-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/janitor-nav)" raw="yes"]] diff --git a/2021/talks/maintainers.md b/2021/talks/maintainers.md new file mode 100644 index 00000000..698090ee --- /dev/null +++ b/2021/talks/maintainers.md @@ -0,0 +1,25 @@ +[[!meta title="How to help Emacs maintainers?"]] +[[!meta copyright="Copyright © 2021 Bastien Guerry"]] +[[!inline pages="internal(2021/info/maintainers-nav)" raw="yes"]] + + + + +# How to help Emacs maintainers? +Bastien Guerry + +After 11 years of helping as the Org maintainer, I would +like to share a few lessons learned. My goal is help everyone take +care of Emacs maintainance by taking care of Emacs maintainers. + + + +# Outline + +- 5-10 minutes + + + +[[!inline pages="internal(2021/info/maintainers-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/maintainers-nav)" raw="yes"]] diff --git a/2021/talks/model.md b/2021/talks/model.md new file mode 100644 index 00000000..edff5152 --- /dev/null +++ b/2021/talks/model.md @@ -0,0 +1,103 @@ +[[!meta title="Extending the "model" of Emacs to other applications"]] +[[!meta copyright="Copyright © 2021 Laszlo Krajnikovszkij"]] +[[!inline pages="internal(2021/info/model-nav)" raw="yes"]] + + + + +# Extending the "model" of Emacs to other applications +Laszlo Krajnikovszkij + +Emacs is a great operating environment in a sense that it provides consistency +across different tools and applications within the Emacs ecosystem, as well as +external apps that can be integrated into it. It is also the most truly +malleable environment, each element of which can be adjusted or extended, +therefore providing the user with more power and freedom in personal computing. +Emacs definitely can be considered one of greatest software products in +existence. + +As a non-programmer, having had the chance to stumble upon Emacs a couple of +years ago, the only regret to have is that it didn't happen earlier. The definite +killer feature of Emacs - Org-mode, is what draws many of the less technical +folks to join the party and gradually start to use Emacs for writing documents, +whether personal or work related, manage tasks, emails and potentially everything +else. The learning curve and difference in approach, however, leaves some +potential users too scared of the arcane interface even with all it's quirks and +features because it requires at least some technical skills to understand and +use properly, and does not have an easy way to connect with external tools that +most people are forced to use for work. + +This talk proposes some ideas about how the model of Emacs, it's focus on +consistency, extensibility, as well as it's powerful interaction model can be +carried over to make modern interfaces, whether desktop or web applications, +that would be designed with a goal of reflecting the spirit of Emacs in terms of +the aforementioned features it possesses, and therefore enhance the capabilities +of the Emacs, while at the same time utilizing it as a backend for +text-processing and editing to a large extent. It would be really great to have +a personal web-interface for using modern task management tools, chats, emails +and such, but from a UI defined by the user. The goal is to use it on a desktop +or mobile, locally or self-hosted on a server, with support for touch and +gesture-based workflows, while preserving the Emacs philosophy and allowing to +seamlessly switch between Emacs and its web extension + +The proposed solution is to integrate more of the modern tools with Emacs, +utilize Org-mode as a way to define application-specific parameters for these +tools through Org properties, and then utilize these parameters for making a +modern local frontend that would enhance Emacs UI while allowing to use external +tools in a more personal and freedom respecting way (making the originals +obsolete over time). The talk serves the purpose of inviting community members to +a discussion about how Emacs can become more modern, more approachable by people +who don't possess the neccessarry technical skills to adjust it themselves, but +are keen to learn it, and potentially how to attract more users to greater +productivity, computer literacy and the ideas of free software. + + + +# Outline + +- 5-10 minutes + - Introduction + - Issues with most modern tools for work + - Issues with Emacs as a tool for work + - In search for a hybrid approach + - User controlled web-apps + - Opinions encouraged + - Contacts + + + +[[!inline pages="internal(2021/info/model-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/model-nav)" raw="yes"]] diff --git a/2021/talks/mold.md b/2021/talks/mold.md new file mode 100644 index 00000000..a2cc99be --- /dev/null +++ b/2021/talks/mold.md @@ -0,0 +1,49 @@ +[[!meta title="Moldable Emacs, a step towards sustainable software"]] +[[!meta copyright="Copyright © 2021 Andrea"]] +[[!inline pages="internal(2021/info/mold-nav)" raw="yes"]] + + + + +# Moldable Emacs, a step towards sustainable software +Andrea + +We could learn about things better. Mountains of knowledge hide in +places we cannot access or use. The more we write down, the more it +takes to find and understand things we find useful. + +Knowledge (web, software, books) keeps growing faster and faster! This +is not sustainable: we cannot keep up! What if we repeat a terrible +error that somebody else has written about, only because we could not +find that? What if that knowledge is in some code we work with +everyday? + +Moldable development is a paradigm shift that attempts to solve this +problem. In a gist, the tool you use should let you create special tools +to learn smartly from the what you have. + +Since we use Emacs, let's make our great editor moldable! + +This talk shows my progress in making Emacs closer to such a tool. We +are going to see how we can mold structured (and maybe even natural) +text to learn better, how we can inject notes in our projects and how +self documenting this tool is! + +I aim to inspire you to find a quicker way to learn from our digital +world! + +You can learn more about this at: + + + +# Outline + +- 5-10 minutes: quick demo of moldable-emacs + + + +[[!inline pages="internal(2021/info/mold-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/mold-nav)" raw="yes"]] diff --git a/2021/talks/molecular.md b/2021/talks/molecular.md new file mode 100644 index 00000000..ecfaec10 --- /dev/null +++ b/2021/talks/molecular.md @@ -0,0 +1,94 @@ +[[!meta title="Reproducible molecular graphics with Org-mode"]] +[[!meta copyright="Copyright © 2021 Blaine Mooers"]] +[[!inline pages="internal(2021/info/molecular-nav)" raw="yes"]] + + + + +# Reproducible molecular graphics with Org-mode +Blaine Mooers + +Research papers in structural biology should include the code used +to make the images of molecules in the article in the supplemental +materials. Some structural bioinformaticists have started to include +their computer code in the supplemental materials to allow readers +to reproduce their analyses. However, authors of papers reporting new +structures have overlooked the inclusion of the code that makes the +images of the molecules in their articles. Nonetheless, this aspect of +reproducible research needs to become the standard practice to improve +the rigor of the science. + +In a literate programming document, the author interleaves the code +that makes the images of molecules in the explanatory text. Such a +document allows the reader to reproduce the images in the manuscript. +The reader can also explore the effect of altering the parameters in +the code. Org files are one alternative for making such literate +programming documents. + +We developed a yasnippet library called orgpymolpysnips for structural +biologists (). This +library facilitates the assembly of literate programming documents +with molecular images made by PyMOL. PyMOL is the most popular +molecular graphics program for making images for publication; it has +over 100,000 users, which is a lot of users in the sciences. PyMOL was +used to make many of the striking images of biological molecules on +the cover of Nature and Science. We use the emacs-jupyter package to +send commands from a code block in Org files to PyMOL's Python API. +PyMOL returns the molecular image to the output block below the +code block. Of course, an Emacs user can convert the Org file into a +PDF, convert the code blocks to script files, and submit these for +non-Emacs users. We describe the content of the library and provide +examples of the running PyMOL from Org-mode. We compare using Org, +Jupyter Notebook, Jupyter Lab, and RStudio with PyMOL to do +literate programming in structural biology. + + + +# Outline + +- 5-10 minutes: (brief description/outline) + - Title slide + - Structural Biolog Workflow in the Mooers Lab + - Cover images made with PyMOL + + - Why develop a snippet library for your field? + - PyMOL in Org: kernel specification + - Creating a conda env and installing PyMOL + - Example code block in Org to make DSSR block model of tRNA + - Resulting image + - Summary + - Acknowledgements + + + +[[!inline pages="internal(2021/info/molecular-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/molecular-nav)" raw="yes"]] diff --git a/2021/talks/montessori.md b/2021/talks/montessori.md new file mode 100644 index 00000000..abbf7a5c --- /dev/null +++ b/2021/talks/montessori.md @@ -0,0 +1,67 @@ +[[!meta title="Emacs and Montessori Philosophy"]] +[[!meta copyright="Copyright © 2021 "]] +[[!inline pages="internal(2021/info/montessori-nav)" raw="yes"]] + + + + +# Emacs and Montessori Philosophy + + +As a former Montessori guide and now parent, I often think about the +relationship of this particular educational philosophy and how it manifests +in my work with software, Emacs in particular. This talk introduces the +concept of Emacs as an educational environment and how it expresses elements of +Montessori psychology regarding "Human Tendencies". Human tendencies are innate +drives present in everybody that allow us to explore and make sense of our world. + + + +# Outline + +- 5-10 minutes: (brief description/outline) + Quick overview of a Montessori classroom environment: + + - the adults or guides primarily observe and present material + - the children are free to explore materials as they choose (within limits) + - the environment itself is prepared specifically to foster engagement + + Enumerate the "Human Tendencies": + + - Abstraction + - Activity + - Communication + - Exactness + - Exploration + - Manipulation (of the environment) + - Order + - Orientation + - Repetition + - Self-Perfection + - Work (also described as "purposeful activity") + + How does Emacs express these things? + + - in the short version, pose the question, and perhaps give one example. + - Emacs is an environment that provides facilities for individuals to + find their way to proficiency through their Human Tendencies. + - We are all both learners and guides, Emacs is our classroom + + + + +[[!inline pages="internal(2021/info/montessori-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/montessori-nav)" raw="yes"]] diff --git a/2021/talks/nangulator.md b/2021/talks/nangulator.md new file mode 100644 index 00000000..71ccdadd --- /dev/null +++ b/2021/talks/nangulator.md @@ -0,0 +1,63 @@ +[[!meta title="Introducing N-Angulator"]] +[[!meta copyright="Copyright © 2021 Kevin Haddock"]] +[[!inline pages="internal(2021/info/nangulator-nav)" raw="yes"]] + + + + +# Introducing N-Angulator +Kevin Haddock + +The Unix file system is essentially an N-dimentional sparse array that +currently lacks a decent editor and browser which +can effectively leverage the logical tri-angulation (or, more properly +"n-angulation") of atoms/blobs within it. + +N-Angulator is the genesis, to wit, the "Model-T," of such a program. + +(see google drive link below for a very old uncirculated prototype +video demo. Be sure and turn the volume UP!) + +na.intro.flv + + + + +# Outline + +- 5-10 minutes: (brief description/outline) + +The reconceptualization of the Unix file system as the N-Dimensional +sparse array will be discussed. + +A simple pre-existing database will be queried. + +If time, questions will be entertained by video/audio and/or IRC. + + + + +[[!inline pages="internal(2021/info/nangulator-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/nangulator-nav)" raw="yes"]] diff --git a/2021/talks/native.md b/2021/talks/native.md new file mode 100644 index 00000000..700c1608 --- /dev/null +++ b/2021/talks/native.md @@ -0,0 +1,34 @@ +[[!meta title="Emacs Lisp native compiler, current status and future developments"]] +[[!meta copyright="Copyright © 2021 Andrea Corallo"]] +[[!inline pages="internal(2021/info/native-nav)" raw="yes"]] + + + + +# Emacs Lisp native compiler, current status and future developments +Andrea Corallo + +Emacs Lisp (Elisp) is the Lisp dialect used by the Emacs text editor +family. GNU Emacs is traditionally capable of executing Elisp code +either interpreted or byte-interpreted after it has been compiled to +byte-code. + +In this talk I'll discuss the Emacs Lisp native compiler. This feature +recently merged into the main Emacs development line allow for +automatically compiling and executing Elisp as native code. + +During the presentation I'll touch on: + +- design goals +- compiler and runtime design and implementation +- performance implications +- upstream process +- area of improvements and future developments + +Format: 40 minutes + + + +[[!inline pages="internal(2021/info/native-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/native-nav)" raw="yes"]] diff --git a/2021/talks/news.md b/2021/talks/news.md new file mode 100644 index 00000000..ab01ac69 --- /dev/null +++ b/2021/talks/news.md @@ -0,0 +1,17 @@ +[[!meta title="Emacs News Highlights"]] +[[!meta copyright="Copyright © 2021 Sacha Chua"]] +[[!inline pages="internal(2021/info/news-nav)" raw="yes"]] + + + + +# Emacs News Highlights +Sacha Chua + +Quick overview of Emacs community highlights since the last conference + + + +[[!inline pages="internal(2021/info/news-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/news-nav)" raw="yes"]] diff --git a/2021/talks/nongnu.md b/2021/talks/nongnu.md new file mode 100644 index 00000000..1f88f610 --- /dev/null +++ b/2021/talks/nongnu.md @@ -0,0 +1,26 @@ +[[!meta title="NonGNU ELPA Update"]] +[[!meta copyright="Copyright © 2021 Kaluđerčić, Philip"]] +[[!inline pages="internal(2021/info/nongnu-nav)" raw="yes"]] + + + + +# NonGNU ELPA Update +Kaluđerčić, Philip + +NonGNU ELPA was announced last year, as a package repository +that will be enabled by default in Emacs, but doesn't require +any copyright assignment. This means that a lot of popular +packages can now be installed easier, without any additional +configuration. + +In this talk I would like the give a reminder of what NonGNU +ELPA is and how it works, update the participants on what has +happened since last year and what maintainers have to do if they +want their packages to be added to the repository. + + + +[[!inline pages="internal(2021/info/nongnu-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/nongnu-nav)" raw="yes"]] diff --git a/2021/talks/nyxt.md b/2021/talks/nyxt.md new file mode 100644 index 00000000..f38b3ca6 --- /dev/null +++ b/2021/talks/nyxt.md @@ -0,0 +1,39 @@ +[[!meta title="Emacs with Nyxt: extend your editor with the power of a Lisp browser"]] +[[!meta copyright="Copyright © 2021 Andrea"]] +[[!inline pages="internal(2021/info/nyxt-nav)" raw="yes"]] + + + + +# Emacs with Nyxt: extend your editor with the power of a Lisp browser +Andrea + +In 2021 browsers are essential if you use a computer. Even if Emacs +users love text as a format, they may need to shop and video call from +time to time (even more so in a pandemic!). Some of us modified their +browsers to at least have the same keybindings as our editor of +choice. What if I told you there is an Emacsy browser in the making? +What if you could "ace-jump" within a web page? What if you could run +a REPL to extend your browser while browsing? What if you could record +macros?! The browser exists: its name is Nyxt! + +In this talk I will share why it has great potential, how you can +integrate it with Emacs, and how you can migrate your Emacs mastery to +the web! + +If you were wishing for a Lispy and Emacsy browser, you should not +miss this talk! + +You can learn more about this at: + + + +# Outline + +- 5-10 minutes: quick demo of running Nyxt from Emacs and a little explanation of the code necessary for integration + + + +[[!inline pages="internal(2021/info/nyxt-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/nyxt-nav)" raw="yes"]] diff --git a/2021/talks/omegat.md b/2021/talks/omegat.md new file mode 100644 index 00000000..10a1aca2 --- /dev/null +++ b/2021/talks/omegat.md @@ -0,0 +1,54 @@ +[[!meta title="Emacs manuals translation and OmegaT"]] +[[!meta copyright="Copyright © 2021 Jean-Christophe Helary"]] +[[!inline pages="internal(2021/info/omegat-nav)" raw="yes"]] + + + + +# Emacs manuals translation and OmegaT +Jean-Christophe Helary + +Even if it is generally agreed that software localization is a good thing, Emacs is lacking in that respect for a number of technical reasons. Nonetheless, the free software using public could greatly benefit from Emacs manuals translations, even if the interface were to remain in English. + +OmegaT is a multiplatform GPL3+ "computer aided translation" tool running on OpenJDK 11. That category of software is roughly equivalent for translators to what IDEs are for code writers. Casual translators can benefit from its features but professionals are the most likely to make the most use of OmegaT. + +When Emacs, OmegaT and free software based forges meet, we have a free multi-user translation environment that can easily sustain the (close to) 2 million words load that comprise the manuals distributed with Emacs, along with powerful features like arbitrary string protection for easy typing and QA (quality assurance), automatic legacy translation handling, glossary management, history based or predictive autocompletion, etc. + +The current trial project for French is hosted on 2 different forges: + +1. sr.ht hosts the source files + +2. chapril hosts the OmegaT team project architecture + + +The sources are regularly updated with a po4a based shell script. + + + +# Outline + +- 5-10 minutes: (brief description/outline) + +In this format, I would show the basics of: + +1. using po4a to convert the texi files to the PO format +2. using OmegaT as a team with 2 (or more) translators working at the same time +3. using OmegaT features such as regex based string protection, legacy translation handling, autocompletion, QA, etc. + + + +[[!inline pages="internal(2021/info/omegat-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/omegat-nav)" raw="yes"]] diff --git a/2021/talks/org-outside.md b/2021/talks/org-outside.md new file mode 100644 index 00000000..850601c9 --- /dev/null +++ b/2021/talks/org-outside.md @@ -0,0 +1,47 @@ +[[!meta title="The use of Org mode syntax outside of GNU/Emacs"]] +[[!meta copyright="Copyright © 2021 Karl Voit"]] +[[!inline pages="internal(2021/info/org-outside-nav)" raw="yes"]] + + + + +# The use of Org mode syntax outside of GNU/Emacs +Karl Voit + +With the rising interest in Org mode, the GNU/Emacs community gained +much momentum in the last decade. Being a nicely designed lightweight +markup language, Org mode does not only benefit users of GNU/Emacs. +There are many tools and services supporting Org mode syntax documents +that do have no direct connection to GNU/Emacs. I would like to +elaborate on the advantages on using Org mode syntax for arbitrary +text outside of GNU/Emacs for better typing usability and +collaboration tasks. + + + +# Outline + +- 5-10 minutes: (brief description/outline) + +This can only be a short teaser for the use of Org mode syntax without +much comparison to other lightweight markup languages. For this +audience, I do think that this would be too short because most +attendees might already have heard the rumors that Org mode is great +or they have adapted Org mode in their workflows already. + + + + +[[!inline pages="internal(2021/info/org-outside-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/org-outside-nav)" raw="yes"]] diff --git a/2021/talks/professional.md b/2021/talks/professional.md new file mode 100644 index 00000000..7223f33f --- /dev/null +++ b/2021/talks/professional.md @@ -0,0 +1,68 @@ +[[!meta title="Using Org-Mode For Recording Continuous Professional Development"]] +[[!meta copyright="Copyright © 2021 Philip Beadling"]] +[[!inline pages="internal(2021/info/professional-nav)" raw="yes"]] + + + + +# Using Org-Mode For Recording Continuous Professional Development +Philip Beadling + +I recently had the pleasure of being audited for my CPD record with one +of the large engineering professional bodies. I decided to harness +org-mode's TODO lists to record CPD items and my progress against them +completely within Emacs. I also wanted the ability to export the data +in a well presented, compact format for auditing submission. + +The project was a success (I passed the audit) and the resulting system +integrates really well into my wider daily Emacs workflow, making future +CPD recording seamless. + +The talk will explain how I tweaked and extended org-mode to get it to +record the data I wanted, followed by a demo. + +A basic demo org file with embedded elisp can be seen here: + + +A basic generated PDF from the basic demo is here: +![img](https://preview.redd.it/nvdpmityhuw51.png?width=1169&format=png&auto=webp&s=e0c5080560c877aa02933a40c224e52b8a1fed3b) + +I have a much more involved example I could also use for the demo. + +The template contains a few examples. Examples are Goals that are split +up into Activities. All Activities must have a Goal, and within a Goal +all activities must be complete for the Goal to be automatically set to +complete. + +It's basically leveraging Org Capture Templates to create custom Goals +and Activities. + +On save or update these are then rendered into a table using Column View. + +Activities are sorted by date they were completed on. + +The Column View is pre-configured to be exported to PDF in a condensed +but readable format for submission. It stays fairly readable even when +the pages get busy. + +The elisp required is all under the "Config" bullet and Emacs will ask +to execute it on opening the Org file. The elisp concerns itself with +nice custom org capture functions and a few functions to ensure nice +formatting on export, etc. + + + +# Outline + +- 5-10 minutes: + +A quick walkthrough of the setup and functions, followed by a demo of how +to add CPD items, and update them. Finally show generation of a PDF +containing all the items tabulated and ready for audit review. I +estimate this at approx 10 minutes. + + + +[[!inline pages="internal(2021/info/professional-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/professional-nav)" raw="yes"]] diff --git a/2021/talks/project.md b/2021/talks/project.md new file mode 100644 index 00000000..b21fa546 --- /dev/null +++ b/2021/talks/project.md @@ -0,0 +1,28 @@ +[[!meta title="Budgeting, Project Monitoring and Invoicing with Org Mode"]] +[[!meta copyright="Copyright © 2021 Adolfo Villafiorita"]] +[[!inline pages="internal(2021/info/project-nav)" raw="yes"]] + + + + +# Budgeting, Project Monitoring and Invoicing with Org Mode +Adolfo Villafiorita + +In this talk I will present how we use Org Mode at Shair.Tech for +budgeting, project monitoring, and invoicing. + +We are a small company and we are still tuning and improving the +process, but with a bit of Emacs Lisp, the functions Org Mode +provides, and reading here and there what other users do, we +implemented an effective workflow we have been using for nearly a +year, now, and with which we are very happy. Talk duration: + +–> 20 minutes seems to be right (15 talk + questions) +–> I can also make in 10 minutes, by focusing the talk on + budgeting (or monitoring) + + + +[[!inline pages="internal(2021/info/project-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/project-nav)" raw="yes"]] diff --git a/2021/talks/research.md b/2021/talks/research.md new file mode 100644 index 00000000..c6f2e200 --- /dev/null +++ b/2021/talks/research.md @@ -0,0 +1,48 @@ +[[!meta title="Managing a research workflow (bibliographies, note-taking, and arXiv)"]] +[[!meta copyright="Copyright © 2021 Ahmed Khaled"]] +[[!inline pages="internal(2021/info/research-nav)" raw="yes"]] + + + + +# Managing a research workflow (bibliographies, note-taking, and arXiv) +Ahmed Khaled + +Researchers and knowledge workers have to read and discover new papers, +ask questions about what they read, write notes and scratchwork, and store +much of this information for use in writing papers and/or code. Emacs allows +us to do all of this (and more) using simple text interfaces that integrate +well together. In this talk I will talk about the following: + +a. Using elfeed and elfeed-score to read new papers from arXiv. +b. Using org-ref to import arXiv papers of interest into a local +bibliography. +c. Using Emacs hooks with biber and rebiber in order to keep the local + bibliography clean and up-to-date with conference versions of papers. +d. Using org-roam and org-roam-bibtex to take linked, searchable notes in +org on research papers. + +This text-based workflow allows for keeping everything accessible under +version +control and avoids the platform lock-in of binary formats (e.g. Mendeley). I +will share my Doom Emacs configuration for this workflow, but it is not +limited +to Doom. + + + +# Outline + +- 5-10 minutes: I will demo the packages I use in 5 minutes. + + + +[[!inline pages="internal(2021/info/research-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/research-nav)" raw="yes"]] diff --git a/2021/talks/rust.md b/2021/talks/rust.md new file mode 100644 index 00000000..9ebab731 --- /dev/null +++ b/2021/talks/rust.md @@ -0,0 +1,35 @@ +[[!meta title="Extending Emacs in Rust with Dynamic Modules"]] +[[!meta copyright="Copyright © 2021 Tuấn-Anh Nguyễn"]] +[[!inline pages="internal(2021/info/rust-nav)" raw="yes"]] + + + + +# Extending Emacs in Rust with Dynamic Modules +Tuấn-Anh Nguyễn + +Dynamic module support has been available since Emacs 25. It can be +used to extend Emacs with native libraries, for performance, +OS-specific features, or other functionalities that would take a lot +of time to re-implement in Lisp. The officially supported language is +C, which is tedious and error-prone to use. This talk discusses a +**safe** alternative that is also a lot **more convenient**: writing these +dynamic modules in Rust. + + + +# Outline + +- Walking through creating **a simple dynamic module** in + Rust, including setting up CI. +- Going through and explaining the **available APIs**. + + + + +[[!inline pages="internal(2021/info/rust-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/rust-nav)" raw="yes"]] diff --git a/2021/talks/structural.md b/2021/talks/structural.md new file mode 100644 index 00000000..1c9618f8 --- /dev/null +++ b/2021/talks/structural.md @@ -0,0 +1,71 @@ +[[!meta title="Why structural editing is the future of code editing, and a novel approach for editing everyday languages"]] +[[!meta copyright="Copyright © 2021 Ethan Leba"]] +[[!inline pages="internal(2021/info/structural-nav)" raw="yes"]] + + + + +# Why structural editing is the future of code editing, and a novel approach for editing everyday languages +Ethan Leba + +I liken the state of code editing today to the early days of computer +science, +when assembly was the only language available. When writing assembly, first +we +think of how they want the logic of the program to behave, and then secondly +translate this logic into Assembly. A tedious and error-prone process – +like +shoving a square peg into a round hole. But how could it be otherwise? +That's +simply what 'programming' was… until we realized there were far better +ways to +suit our languages to fit the way that we humans think. + +The problem with assembly is that fundamental building blocks of the +language don't match the way we think of programs: we don't think in +terms of pushing and popping registers, we think in terms of +variables, functions, etc. So when we write and edit code, why do we +edit in terms of deleting, inserting, replacing characters – +not wrapping, inserting, raising and deleting expressions and +statements? Because of the mismatch between the way we reason about +code and the way that we edit it, we must translate our intents into +the sequence of character manipulations that achieve it. + +In this talk, I'd like to discuss a vision for how writing code could be – +A +paradigm where the editing operations match the way that we think. I'll also +demonstrate a work-in-progress package 'tree-edit', which seeks to achieve +this +vision, providing a framework for structural editing in any language that +the +tree-sitter package supports. + +I'd also like to discuss the implementation of 'tree-edit', which uses an +embedded logic programming DSL in a novel way to power it's syntax tree +generation. + + + +# Outline + +- 5-10 minutes: (brief description/outline) + - discuss motivation + - demonstrate tree-edit + - demonstrate tree-edit syntax tree generation engine + + + +[[!inline pages="internal(2021/info/structural-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/structural-nav)" raw="yes"]] diff --git a/2021/talks/teach.md b/2021/talks/teach.md new file mode 100644 index 00000000..446179ed --- /dev/null +++ b/2021/talks/teach.md @@ -0,0 +1,54 @@ +[[!meta title="Using Org-mode to teach programming"]] +[[!meta copyright="Copyright © 2021 Daniel German"]] +[[!inline pages="internal(2021/info/teach-nav)" raw="yes"]] + + + + +# Using Org-mode to teach programming +Daniel German + +In this presentation I will explain how to use org-mode effectively to +prepare teaching materials, and how to present them. + +For the last 5 years I have been using org-mode to teach programming +in different languages: C++, SQL, Ruby, Python, SML +and Scheme. Org-mode has three key advantages: + +1. it supports most programming languages with a common interface, +2. it is an interactive medium for delivering teaching materials; and +3. it is an always-up-to-date format that does not need to be exported + +in ordered to be published. + +I explain how I use org-mode in my courses and how I combine org-mode +notes other tools such as github org-mode to get +always up-to-date teaching materials that one can use for both +teaching and studying (see + +for an example). + +Finally, I will discuss some important aspects to consider when using +org-mode for this purpose. + + + +# Outline + +20 minutes: + +- Introduction +- Quick demonstration +- Workflow +- Emacs configuration +- Important considerations +- How to get started + +Oh, I made a small mistake. I meant to propose a 40 minutes presentation. +But I can give a quicker 20 minutes too. + + + +[[!inline pages="internal(2021/info/teach-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/teach-nav)" raw="yes"]] diff --git a/2021/talks/tech.md b/2021/talks/tech.md new file mode 100644 index 00000000..4a46c629 --- /dev/null +++ b/2021/talks/tech.md @@ -0,0 +1,47 @@ +[[!meta title="Creating technical API documentation and presentations using org-babel, restclient, and org-treeslide"]] +[[!meta copyright="Copyright © 2021 Jan Ypma"]] +[[!inline pages="internal(2021/info/tech-nav)" raw="yes"]] + + + + +# Creating technical API documentation and presentations using org-babel, restclient, and org-treeslide +Jan Ypma + +The emacs org-babel package is often mentioned in conjunction with +literate programming. The ability to mix code segments with prose +indeed offers an intuitive way to augment semantic code pieces with +textual descriptions. + +In recent projects, I've started to turn to org-mode as the primary +format to maintain technical documentation, as well as slides for a +technical language course. By using org-babel to pull in "live" code +for REST requests, language examples, and shell scripts, one can be +sure that the documentation and slides are never out of date. + +Two cases are presented: + +- API documentation for a REST service (exported from org to html + and PDF) +- Slides for a Java Microservice course (presented within emacs, + handouts in 2 styles as PDF) + +The session will show how leverage org-babel, restclient, +org-treeslide, as well as show how to create your own language backend +for org-babel to make sure your own preferred workflow is used. + + + +# Outline + +- 5-10 minutes: We'll pick one of the two use cases and briefly show + it and its result. + + + +[[!inline pages="internal(2021/info/tech-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/tech-nav)" raw="yes"]] diff --git a/2021/talks/telega.md b/2021/talks/telega.md new file mode 100644 index 00000000..f89d416e --- /dev/null +++ b/2021/talks/telega.md @@ -0,0 +1,25 @@ +[[!meta title="telega.el and the Emacs community on Telegram"]] +[[!meta copyright="Copyright © 2021 Gabriele Bozzola and Evgeny Zajcev"]] +[[!inline pages="internal(2021/info/telega-nav)" raw="yes"]] + + + + +# telega.el and the Emacs community on Telegram +Gabriele Bozzola and Evgeny Zajcev + +Telegram is a cross-platform instant messaging system. The large number of +features and the widespread adoption make it a good choice for both private +conversations with friends and for large online communities. In this talk, I +am going to present the Emacs community on Telegram and its initiatives. I +am also going to discuss telega.el, the Emacs client for Telegram. telega.el +is a high-quality package that perfectly integrates in Emacs. It supports +the vast majority of the features supported by the official clients, while +adding several unique ones. In the talk, I will present the package and +highlight some of the most important features. + + + +[[!inline pages="internal(2021/info/telega-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/telega-nav)" raw="yes"]] diff --git a/2021/talks/test.md b/2021/talks/test.md new file mode 100644 index 00000000..9766b3b6 --- /dev/null +++ b/2021/talks/test.md @@ -0,0 +1,49 @@ +[[!meta title="Test blocks"]] +[[!meta copyright="Copyright © 2021 Eduardo Ochs"]] +[[!inline pages="internal(2021/info/test-nav)" raw="yes"]] + + + + +# Test blocks +Eduardo Ochs + +In this presentation I will show an idea that feels completely obvious +once we see it, but that only occured to me after after using Emacs +and eev as my main interface to the computer for more than 20 years. +Take any interpreted language that supports multi-line comments, and +whose interpreter can be run in an Emacs buffer - for example Lua, +Haskell, Python, or Julia; let's say just "Lua" from here on for +simplicity. So: suppose that we have a Lua script that we wrote, that +is called "foo.lua" and that defines lots of functions and defines the +classes Bar and Bletch. We can put after the definition of the class +Bar a multi-line comment that contains an eepitch block that when +executed starts a Lua interpreter, loads the script foo.lua (by +running 'dofile "foo.lua"'), and then has several tests for that class +and its methods; and we can put another block with tests like that +after the class Bletch, and other blocks after some functions. Eepitch +allows sending these tests line by line to the Lua interpreter by +typing on each line that we want to send, and this lets us create +tests that are very easy to understand even without writing comments; +this gives us a very quick way to document code by executable tests, +that is super-great for experimental code that is still going to +change a lot before running the risk of being read by other people. + +These multi-line comments with eepitch blocks that run an interpreter +and make it load the current file are called "test blocks". The +command \`M-x eeit' inserts a test block at point, using the major mode +to decide the right syntax to use for the multi-line comments and for +the "dofile". We can configure the syntax of the test blocks for the +current major mode by running \`M-x find-eeit-links'; this can also be +used to add support for test blocks to more languages (or, more +precisely: to more major modes). + +Cheers =), + Eduardo Ochs + + + + +[[!inline pages="internal(2021/info/test-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/test-nav)" raw="yes"]] diff --git a/2021/talks/ui.md b/2021/talks/ui.md new file mode 100644 index 00000000..01ed2b26 --- /dev/null +++ b/2021/talks/ui.md @@ -0,0 +1,44 @@ +[[!meta title=""Yak-shaving to a UI framework" (/"Help! I accidentally yak-shaved my way to writing a UI framework because overlays were slow")"]] +[[!meta copyright="Copyright © 2021 Erik Anderson"]] +[[!inline pages="internal(2021/info/ui-nav)" raw="yes"]] + + + + +# "Yak-shaving to a UI framework" (/"Help! I accidentally yak-shaved my way to writing a UI framework because overlays were slow") +Erik Anderson + +Tui.el is a textual User Interface (UI) framework for Emacs Lisp +modeled after the popular JavaScript 'React' framework. This package +implements React Component API's with the goal of simplifying +development of interactive UI's for all Emacs users- regardless of +their prior experience with React or web programming. Components +provide a useful functional unit for constructing complex interfaces +declaratively and also eliminate much of the burden associated with +updating textual content as application state changes. This talk will +cover use of the tui.el API and its operation in a textual environment +by implementing some basic UI's. + + + +# Outline + +- 5-10 minutes: + - Problem space: UI implementation complexity. + - API introduction: Displaying content, Components. + - Visual taste of dashboards and applications built with tui. + + + +[[!inline pages="internal(2021/info/ui-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/ui-nav)" raw="yes"]] diff --git a/2021/talks/unix.md b/2021/talks/unix.md new file mode 100644 index 00000000..2516aaec --- /dev/null +++ b/2021/talks/unix.md @@ -0,0 +1,51 @@ +[[!meta title="GNU's Not UNIX: Why Emacs Demonstrates The UNIX Philosophy Isn't Always The Only Answer"]] +[[!meta copyright="Copyright © 2021 Daniel Rose"]] +[[!inline pages="internal(2021/info/unix-nav)" raw="yes"]] + + + + +# GNU's Not UNIX: Why Emacs Demonstrates The UNIX Philosophy Isn't Always The Only Answer +Daniel Rose + +The talk targets users who are curious about computational philosophies, +or those who might not know how to best utilise Emacs conceptually. The +talk will cover what the UNIX philosophy is, the GNU Free Software +principles, a typical (Neo)Vi(m) user's approach, and then how one might +accomplish this in Emacs combining the aformentioned ideals. The +listeners will learn how they can approach Emacs ideologically, and how +blocking themselves into one philosophy or the other will limit their +efficiency. Although you may be a veteran GNU/Linux and Emacs user, +understanding how to use both philosophies together will still allow you +to be more performant than without. + + + +# Outline + +- 5-10 minutes: + Cut out the portions of explaining the whole UNIX and GNU philosophies + and instead talk about concrete examples: + - How can one limit their usage of CLI tools while still maintaining + the ideals of both. + - How using CLI tools can still perfectly flow into Emacs. + - How having all programs in Emacs and unified keybindings is akin + to a terminal user. + + + + +[[!inline pages="internal(2021/info/unix-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/unix-nav)" raw="yes"]] diff --git a/2021/talks/world.md b/2021/talks/world.md new file mode 100644 index 00000000..86c30653 --- /dev/null +++ b/2021/talks/world.md @@ -0,0 +1,73 @@ +[[!meta title="World Citizen"]] +[[!meta copyright="Copyright © 2021 Mohsen BANAN"]] +[[!inline pages="internal(2021/info/world-nav)" raw="yes"]] + + + + +# World Citizen +Mohsen BANAN + +Starting with Emacs 24, full native bidi +(bidirectional) support became available. For +many years prior to that Unicode support was +available and by around year 2000, reasonable +open-source shaping libraries were also available. + +With these in place at around 2012, I developed +two Persian input methods for emacs. These input +methods or variations of them can also be used +Arabic and other persoarabic scripts. + +With all of these in place, Emacs has now become +the ne plus ultra Halaal/Convivial usage +environment for persoarabic users. + +Since emacs comes loaded with everything (Gnus +for email, Bbdb for address books, XeLaTeX modes +for typesetting, org-mode for organization, spell +checkers, completions, calendar, etc.), all basic +computing and communication needs of persoarabic +users can be addressed in one place and +cohesively. + +In this talk I will demonstrate what a wonderful +environment that can be. + +- 40 minutes: (brief description/outline) + + My talk will be in two parts. + + In Part 1, I cover persian input methods. With an + emphasis on "Banan Multi-Character (Reverse) + Transliteration Persian Input Method". The + software is part of base emacs distribution. + Full documentation is available at: + Persian Input Methods + For Emacs And More Broadly Speaking + شیوه‌هایِ درج به فارسی‌ + + + In Part 2, I will cover the ramifications of bidi + on existing emacs applications, including: + + - Gnus: + - Persoarabic rich email sending in HTML. + - Ramifications of bidi on from, to and + subject lines. + + - Bbdb: Ramifications of bidi on display and + completion. + + - Calendar: + - Ramifications of bidi on display. + - Use of persian text for Persian (solar) calendar. + - Use of arabic text for Muslem (lunar) calendar. + + - AUCTeX: Persian typesetting with XeLaTeX + + + +[[!inline pages="internal(2021/info/world-schedule)" raw="yes"]] + +[[!inline pages="internal(2021/info/world-nav)" raw="yes"]] -- cgit v1.2.3