From 7458a38e3e754cf8bb6e7ab02e2de56557dcbe2d Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Fri, 22 Sep 2023 10:14:52 -0400 Subject: add eval, hyperamp, poltys, table, test, unentangling --- 2023/talks/eval.md | 43 ++++++++++++++++++++++++++ 2023/talks/hyperamp.md | 37 ++++++++++++++++++++++ 2023/talks/poltys.md | 39 +++++++++++++++++++++++ 2023/talks/table.md | 32 +++++++++++++++++++ 2023/talks/test.md | 31 +++++++++++++++++++ 2023/talks/unentangling.md | 77 ++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 259 insertions(+) create mode 100644 2023/talks/eval.md create mode 100644 2023/talks/hyperamp.md create mode 100644 2023/talks/poltys.md create mode 100644 2023/talks/table.md create mode 100644 2023/talks/test.md create mode 100644 2023/talks/unentangling.md (limited to '2023/talks') 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"]] + + + + + +# Editor Integrated REPL Driven Development for all languages +Musa Al-hassy (he/him) - Pronunciation: moo seh, , + +[[!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 —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 🔁 + + + +[1] REPL Driven Development :: Teaching a JavaScript runtime, +incrementally, to be a web server 🍽️ 🔁 � + + + + + +[[!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 © 2023 Robert Weiner"]] +[[!inline pages="internal(2023/info/hyperamp-nav)" raw="yes"]] + + + + + +# Top 10 ways Hyperbole amps up Emacs +Robert Weiner - Pronunciation: like fine 'wine' and 'er', , + +[[!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 © 2023 Michael Bauer"]] +[[!inline pages="internal(2023/info/poltys-nav)" raw="yes"]] + + + + + +# The browser in a buffer +Michael Bauer (he/him) - Pronunciation: [ˈmɪçaːʔeːl] [ˈbaʊ̯ɐ], IRC: permcu, , + +[[!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 © 2023 Daniel Molina"]] +[[!inline pages="internal(2023/info/table-nav)" raw="yes"]] + + + + + +# Who needs Excel? Managing your students qualifications with org-table +Daniel Molina (he/him) - website: www.danimolina.net Mastodon: @dmolina@fosstodon.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 (). + +- 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 © 2023 Mats Lidell"]] +[[!inline pages="internal(2023/info/test-nav)" raw="yes"]] + + + + + +# What I learned by writing test cases for GNU Hyperbole +Mats Lidell (he, him, his) - IRC: matsl, @matsl@mastodon.acc.sunet.se, + +[[!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 © 2023 Alexey Bochkarev"]] +[[!inline pages="internal(2023/info/unentangling-nav)" raw="yes"]] + + + + + +# (Un)entangling projects and repos +Alexey Bochkarev (he/him) - , @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"]] + + -- cgit v1.2.3