summaryrefslogtreecommitdiffstats
path: root/2023/talks
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--2023/talks/eval.md43
-rw-r--r--2023/talks/hyperamp.md37
-rw-r--r--2023/talks/poltys.md39
-rw-r--r--2023/talks/table.md32
-rw-r--r--2023/talks/test.md31
-rw-r--r--2023/talks/unentangling.md77
6 files changed, 259 insertions, 0 deletions
diff --git a/2023/talks/eval.md b/2023/talks/eval.md
new file mode 100644
index 00000000..fc1c180a
--- /dev/null
+++ b/2023/talks/eval.md
@@ -0,0 +1,43 @@
+[[!meta title="Editor Integrated REPL Driven Development for all languages"]]
+[[!meta copyright="Copyright © 2023 Musa Al-hassy"]]
+[[!inline pages="internal(2023/info/eval-nav)" raw="yes"]]
+
+<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing -->
+<!-- You can manually edit this file to update the abstract, add links, etc. --->
+
+
+# Editor Integrated REPL Driven Development for all languages
+Musa Al-hassy (he/him) - Pronunciation: moo seh, <http://alhassy.com/> <https://github.com/alhassy>, <mailto:Alhassy@gmail.com>
+
+[[!inline pages="internal(2023/info/eval-before)" raw="yes"]]
+
+Emacs’ C-x C-e is arguably one of its killer features: The ability to run
+arbitrary Lisp code, anywhere. We demonstrate that the **idea** is portable
+to other languages [0, 1]. The result is an Emacs interface for any
+language, where code of your choosing is evaluated, and results are echoed
+at your cursor in overlays. We will demonstrate how to solve simple
+problems such as FizzBuzz in a RDD style using, say, Java or any language
+that the audience chooses. We will also look quickly at "growing programs"
+such as a photo gallery application, starting from scratch. Along the way,
+we discuss what features make a RDD system pleasant and how they can be
+implemented with our system. Finally, we conclude with how this RDD setup
+allows for inserting results of a computation as a use case for writing
+tests &#x2014;i.e., we we show how user-definitions of a read protocol (the 'R'
+of 'REPL') can result in an analog of C-u C-x C-e.
+
+[0] 💐 Repl Driven Development: Editor Integrated REPLs for all languages 🔁
+
+<http://alhassy.com/repl-driven-development>
+
+[1] REPL Driven Development :: Teaching a JavaScript runtime,
+incrementally, to be a web server 🍽️ 🔁 �
+
+<https://youtu.be/b6Z3NQVn4lY?si=MTMJDSdzszhbA267>
+
+
+
+[[!inline pages="internal(2023/info/eval-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/eval-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/hyperamp.md b/2023/talks/hyperamp.md
new file mode 100644
index 00000000..e85169f3
--- /dev/null
+++ b/2023/talks/hyperamp.md
@@ -0,0 +1,37 @@
+[[!meta title="Top 10 ways Hyperbole amps up Emacs"]]
+[[!meta copyright="Copyright &copy; 2023 Robert Weiner"]]
+[[!inline pages="internal(2023/info/hyperamp-nav)" raw="yes"]]
+
+<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing -->
+<!-- You can manually edit this file to update the abstract, add links, etc. --->
+
+
+# Top 10 ways Hyperbole amps up Emacs
+Robert Weiner - Pronunciation: like fine 'wine' and 'er', <https://gnu.org/s/hyperbole> <https://github.com/rswgnu/hyperbole>, <mailto:rsw@gnu.org>
+
+[[!inline pages="internal(2023/info/hyperamp-before)" raw="yes"]]
+
+We will count down the top ten ways that GNU Hyperbole can improve your
+Emacs productivity and experience through:
+
+- its magical ability to turn ordinary text into hypertext
+
+- its legal-style auto-numbered outlining
+
+- its fast, record-based lookups
+
+- and its rapid, programmable ability to control all of your frames and windows.
+
+Hyperbole has no required external package dependencies and is
+compatible with and tested against every major Emacs version from 27
+to the latest master branch and works on every major computer
+operating system and window system in use today, so you can run it
+regardless of your environment.
+
+
+
+[[!inline pages="internal(2023/info/hyperamp-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/hyperamp-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/poltys.md b/2023/talks/poltys.md
new file mode 100644
index 00000000..c7650870
--- /dev/null
+++ b/2023/talks/poltys.md
@@ -0,0 +1,39 @@
+[[!meta title="The browser in a buffer"]]
+[[!meta copyright="Copyright &copy; 2023 Michael Bauer"]]
+[[!inline pages="internal(2023/info/poltys-nav)" raw="yes"]]
+
+<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing -->
+<!-- You can manually edit this file to update the abstract, add links, etc. --->
+
+
+# The browser in a buffer
+Michael Bauer (he/him) - Pronunciation: [ˈmɪçaːʔeːl] [ˈbaʊ̯ɐ], IRC: permcu, <http://perma-curious.eu>, <mailto:perma-curious@posteo.de>
+
+[[!inline pages="internal(2023/info/poltys-before)" raw="yes"]]
+
+In this talk I am going to show a thing I made to integrate my second
+most used program with my first most used one.
+
+Poltys - a periodic orb weaver - is an interactive interface to the
+current browser session that lives inside an Emacs buffer. It forms a
+[narrow
+waist](https://www.oilshell.org/blog/2022/03/backlog-arch.html) between the browser & Emacs; bringing Emacs text editing
+to tab management. This makes it one more thing ready to be used in
+your favorite Emacs workflow.
+
+During the talk I will explain what poltys does, how it can be used in
+different workflows and how it is made. The first half of the talk is
+show and tell, while the second half goes into the technical details.
+
+This talk is for you if you like neat text interfaces,
+already live mostly inside Emacs,
+or just want to have a look at what Emacs - the universal shell - is
+among many other things capable of.
+
+
+
+[[!inline pages="internal(2023/info/poltys-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/poltys-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/table.md b/2023/talks/table.md
new file mode 100644
index 00000000..d250eb81
--- /dev/null
+++ b/2023/talks/table.md
@@ -0,0 +1,32 @@
+[[!meta title="Who needs Excel? Managing your students qualifications with org-table"]]
+[[!meta copyright="Copyright &copy; 2023 Daniel Molina"]]
+[[!inline pages="internal(2023/info/table-nav)" raw="yes"]]
+
+<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing -->
+<!-- You can manually edit this file to update the abstract, add links, etc. --->
+
+
+# Who needs Excel? Managing your students qualifications with org-table
+Daniel Molina (he/him) - website: www.danimolina.net Mastodon: @dmolina@fosstodon.org, <mailto:dmolina@mailbox.org>
+
+[[!inline pages="internal(2023/info/table-before)" raw="yes"]]
+
+In this talk I will explain how to use org-table to review and calculate the qualifications of the students (but the used techniques are general). I will show how to use several tables, one for each partial exam, using weights for create the final table. I also use summarize table with org-aggregate for a general view of results, and export the qualification to PDF. All the process with Emacs!
+
+I’ll demonstrate some functionality I use for:
+
+- Formula for calculate the qualification using weights, that can be easily updated.
+
+- Summarize tables with org-aggregate (<https://github.com/tbanel/orgaggregate>).
+
+- Create a final table making reference to tables in different files.
+
+For several years, I have been using that workflow, and I consider it is very natural with many advantages, like writing the reasons/feedback in the same file with the qualifications, or to be able to use a version control.
+
+
+
+[[!inline pages="internal(2023/info/table-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/table-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/test.md b/2023/talks/test.md
new file mode 100644
index 00000000..0e026e55
--- /dev/null
+++ b/2023/talks/test.md
@@ -0,0 +1,31 @@
+[[!meta title="What I learned by writing test cases for GNU Hyperbole"]]
+[[!meta copyright="Copyright &copy; 2023 Mats Lidell"]]
+[[!inline pages="internal(2023/info/test-nav)" raw="yes"]]
+
+<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing -->
+<!-- You can manually edit this file to update the abstract, add links, etc. --->
+
+
+# What I learned by writing test cases for GNU Hyperbole
+Mats Lidell (he, him, his) - IRC: matsl, @matsl@mastodon.acc.sunet.se, <mailto:matsl@gnu.org>
+
+[[!inline pages="internal(2023/info/test-before)" raw="yes"]]
+
+I'm maintaining GNU Hyperbole. I volunteered for that at a time when FSF was asking for one
+since it was unmaintained. I did not have much elisp experience but a passion for the
+package. Not much happened.
+
+To my great delight a few years ago the author of Hyperbole Bob Weiner joined the band and
+we started together to actively develop Hyperbole again.
+
+One of my focus areas in that work has been to add test cases. We have now gone from no
+tests to over 300 ert tests for the package. This talk is about my test case journey. What
+I have learned by doing that.
+
+
+
+[[!inline pages="internal(2023/info/test-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/test-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/unentangling.md b/2023/talks/unentangling.md
new file mode 100644
index 00000000..4f0764ab
--- /dev/null
+++ b/2023/talks/unentangling.md
@@ -0,0 +1,77 @@
+[[!meta title="(Un)entangling projects and repos"]]
+[[!meta copyright="Copyright &copy; 2023 Alexey Bochkarev"]]
+[[!inline pages="internal(2023/info/unentangling-nav)" raw="yes"]]
+
+<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing -->
+<!-- You can manually edit this file to update the abstract, add links, etc. --->
+
+
+# (Un)entangling projects and repos
+Alexey Bochkarev (he/him) - <https://www.bochkarev.io>, @bochkarev@qoto.org (Mastodon)
+
+[[!inline pages="internal(2023/info/unentangling-before)" raw="yes"]]
+
+Emacs provides a few excellent tools for working on projects through
+all their key stages. Orgmode is great for brainstorming, structuring
+and maintaining TODO lists, tracking time, organizing notes, and
+writing memos or reports. Many major modes help writing code, magit
+makes version control almost frictionless, and projectile helps with
+project management and navigation. However, I found a few situations
+when I wanted to separate the concepts of "project" and "source
+storage" (say, having a few version control repositories associated
+with a single "generalized project").
+
+In this talk, I would like:
+
+1. to describe a specific example of such situation,
+
+2. discuss a workflow aimed at managing such "generalized" projects
+and present my solution, based on a very simple ELisp "glue" on top of
+the functionality provided by package projectile.
+
+For example, consider a research project (think: applied mathematics with
+a heavy part of computational experiments). It might consist of:
+
+- The \`\`paper'' draft: some sort of final report source, usually in
+ LaTeX format, or orgmode exported to PDF via LaTeX. Version controlled
+ by git.
+
+- Numerical experiments: a separate folder, or even a separate git
+ repo. Contains the source code for numerical experiments and the
+ related technical documentation. Will be published along with the
+ paper.
+
+- A collection of intermediate memos (notes) sent to collaborators.
+
+- A collection of "raw" notes (lab journal), regarding what did I try
+ and especially what did NOT work and in which ways.
+
+This setting raises a few problems that all boil down to the necessity
+of having an easily accessible private notes file(s) associated with a
+few repositories at the same time outside of these repos. This way one
+can:
+
+- Maintain more granular project structure and TODOs while still having
+more concise TODO lists for the colleagues on a per-repository basis.
+
+- Maintain (project-specific) private technical notes, and maybe a full
+ lab journal both describing the "big picture" of the project and
+ containing the technical information.
+
+- Keep time tracking data private and outside of the source repositories,
+
+- Capture thoughts and TODOs to a single place from across a few
+ specific repositories.
+
+I propose to solve this problem by associating a single "notes folder"
+and a main `.org` file to each repository using the standard mechanism
+of directory-local variables on top of what is already provided by
+projectile package.
+
+
+
+[[!inline pages="internal(2023/info/unentangling-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/unentangling-nav)" raw="yes"]]
+
+