summaryrefslogtreecommitdiffstats
path: root/2023/talks
diff options
context:
space:
mode:
Diffstat (limited to '2023/talks')
-rw-r--r--2023/talks/adventure.md73
-rw-r--r--2023/talks/collab.md195
-rw-r--r--2023/talks/core.md179
-rw-r--r--2023/talks/cubing.md105
-rw-r--r--2023/talks/devel.md111
-rw-r--r--2023/talks/doc.md69
-rw-r--r--2023/talks/eat.md141
-rw-r--r--2023/talks/emacsconf.md149
-rw-r--r--2023/talks/emacsen.md73
-rw-r--r--2023/talks/emms.md102
-rw-r--r--2023/talks/eval.md77
-rw-r--r--2023/talks/extending.md34
-rw-r--r--2023/talks/flat.md69
-rw-r--r--2023/talks/gc.md134
-rw-r--r--2023/talks/hn.md36
-rw-r--r--2023/talks/hyperamp.md121
-rw-r--r--2023/talks/hyperdrive.md194
-rw-r--r--2023/talks/koutline.md70
-rw-r--r--2023/talks/llm.md118
-rw-r--r--2023/talks/lspocaml.md50
-rw-r--r--2023/talks/matplotllm.md73
-rw-r--r--2023/talks/mentor.md144
-rw-r--r--2023/talks/multi.md29
-rw-r--r--2023/talks/nabokov.md125
-rw-r--r--2023/talks/one.md173
-rw-r--r--2023/talks/overlay.md111
-rw-r--r--2023/talks/parallel.md88
-rw-r--r--2023/talks/poltys.md100
-rw-r--r--2023/talks/ref.md64
-rw-r--r--2023/talks/repl.md116
-rw-r--r--2023/talks/sat-close.md21
-rw-r--r--2023/talks/sat-open.md24
-rw-r--r--2023/talks/scheme.md78
-rw-r--r--2023/talks/sharing.md117
-rw-r--r--2023/talks/solo.md136
-rw-r--r--2023/talks/steno.md68
-rw-r--r--2023/talks/sun-close.md46
-rw-r--r--2023/talks/sun-open.md21
-rw-r--r--2023/talks/table.md88
-rw-r--r--2023/talks/taming.md47
-rw-r--r--2023/talks/teaching.md145
-rw-r--r--2023/talks/test.md113
-rw-r--r--2023/talks/unentangling.md166
-rw-r--r--2023/talks/uni.md167
-rw-r--r--2023/talks/voice.md216
-rw-r--r--2023/talks/web.md147
-rw-r--r--2023/talks/windows.md70
-rw-r--r--2023/talks/world.md98
-rw-r--r--2023/talks/writing.md99
49 files changed, 4990 insertions, 0 deletions
diff --git a/2023/talks/adventure.md b/2023/talks/adventure.md
new file mode 100644
index 00000000..2654ce1b
--- /dev/null
+++ b/2023/talks/adventure.md
@@ -0,0 +1,73 @@
+[[!meta title="An Org-Mode based text adventure game for learning the basics of Emacs, inside Emacs, written in Emacs Lisp"]]
+[[!meta copyright="Copyright © 2023 Chung-hong Chan"]]
+[[!inline pages="internal(2023/info/adventure-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. --->
+
+
+# An Org-Mode based text adventure game for learning the basics of Emacs, inside Emacs, written in Emacs Lisp
+Chung-hong Chan (he/his/him, er/sein/ihn/ihm, 佢/他)
+
+[[!inline pages="internal(2023/info/adventure-before)" raw="yes"]]
+
+I am experimenting with using org-mode as a HyperCard-like text
+adventure game engine. In this talk, I am going to demonstrate a text
+adventure game for learning the basics of Emacs. Through solving
+puzzles and programming your companion robot, Emi, you will learn how
+to use the built-in Emacs help system, the mechanic of emacs
+customization and the basics of programming Emacs Lisp. I believe this
+game is ideal as a light-hearted complement to the `C-h t` tutorial.
+
+About the speaker:
+
+Dr Chung-hong Chan is a senior researcher at GESIS Leibniz Institute for the Social Sciences, Germany.
+
+# Discussion
+
+- <https://github.com/chainsawriot/orgdungeon>
+- Q: Maybe the Emacs tutorial could be adapted to this game flow?
+ - A: Unfortunately, that would be quite difficult. The Emacs tutorial is more about the basics (cursor movement, buffer management etc). And those bits are quite difficult to demo in the current text adventure format. I think a game format like vim-adventures[vim-adventures](https://vim-adventures.com/) would be better.
+- Q: What was something that you learned about Org-Mode/Emacs in
+ working on this tutorial?
+ - A: ~(eval (car (read-from-string string)))~
+- Q: Could you please elaborate what's the background of this game?
+ What's the motivation why you choose this game as introduction for
+ a newbie ton enter the Emacs world?
+ - A: The background of this game is a bit silly. It’s actually my wife wanted to create a (general) video game last year and I told her I can create a puzzle game as well. I have no experience in programming any video game, but I enjoy playing niche video games such as Tetris and TIS-100.
+ I have tried to create educational material for R programmers to learn emacs, e.g. [this](https://github.com/chainsawriot/essaprimer) and [this](https://github.com/chainsawriot/presentation-typeless). Actually, the game presented so far is covering the same material of the latter tutorial. But I don’t think the written tutorial is as effective as this game.
+ There are so many introductory emacs tutorials. C-h t, for example, is quite good. If the path to emacs is from 0 to 100, those tutorials are good for going from 0 to maybe 20. It is nice to get the feet wet. I think that the gateway to really enjoy emacs, i.e. beyond 20, is to customize emacs so that emacs becomes your own tool. However, there is a huge perceived knowledge barrier of “learning emacs lisp” and “learning emacs internal”. From my own experience, the trick is stop “learning” (from an educational perspective, one can’t learn something for the sake of learning something.), but to “do.” The best way to immediately do something, is to play a game.
+- Q: Thank you for the talk! Really cool project! How many planes are
+ you planning to make and what more will you teach the players? +
+ Q: Do you have an end goal for this game? That is, what information
+ do you want it to cover or will it be never ending?
+ - A: I am going to answer both questions jointly. The plan is to at least allow the users to write a 10-LOC function in emacs lisp.
+- Q: What is plane? Is that something like a question set in the game?
+ - A: I am not a D&D player. But my wife told me [a Plane](https://en.wikipedia.org/wiki/Plane_(Dungeons_%26_Dragons)) is one parallel universe. But you are right, one Plane in this game is basically one question set, or one puzzle.
+- Q: Is it for programmers? Non-programmers? Or general?
+ - A: I really hope that this is for everyone. But given the emacs userbase is like 90% programmers, I don’t mind this game is geared towards the programmer type wanting to “go beyond 20”
+- Q: What is the link to your GitHub repository?
+ - A: It is above in the notes and links...
+ - <https://github.com/chainsawriot/orgdungeon>
+- Q: Is `(find-file org-file-name)`  [skip-to-plane] a effective
+ way to load information from your org-files? 
+ - A: Probably not. The original idea was to have one giant org file and jump between headlines. But the current approach is easier to implement.
+- I love this idea of using emacs to teach emacs! It is a good
+ continuation of C-h t. The adventure should not replace C-h t but be
+ its next step after finishing C-h t. Good job!
+- Q: i am wondering what is the naming scheme of the planes, since there are large spaces between the numbering which i guess could be like how you leave space in between basic lines?
+ - A:
+- with how simple the system seems it would be interesting if people forked it and add their own tutorials for their projects
+- neat idea for learning about emacs!
+- that was actually my first thought - it is good template for tutorial of complicated custom functions.
+- Yeah, that sounds pretty interesting as an idea
+- I mean, it is beautiful presentation of fun hacking, but I don't see it as real text adventure... But great intro and wish you good luck with it.
+- so good thank you i will check this game out
+- interesting idea
+- i will definitely keep this game in mind since i have mostly just started my emacs journey
+
+[[!inline pages="internal(2023/info/adventure-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/adventure-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/collab.md b/2023/talks/collab.md
new file mode 100644
index 00000000..1a88809b
--- /dev/null
+++ b/2023/talks/collab.md
@@ -0,0 +1,195 @@
+[[!meta title="Collaborative data processing and documenting using org-babel"]]
+[[!meta copyright="Copyright &copy; 2023 Jonathan Hartman, Lukas C. Bossert"]]
+[[!inline pages="internal(2023/info/collab-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. --->
+
+
+# Collaborative data processing and documenting using org-babel
+Jonathan Hartman (he/him), Lukas C. Bossert (he/him) - <https://mastodon.social/@lukascbossert>, <mailto:hartman@itc.rwth-aachen.de>, <mailto:bossert@itc.rwth-aachen.de>
+
+[[!inline pages="internal(2023/info/collab-before)" raw="yes"]]
+
+In our presentation we will show an efficient way of combining
+information and enriching it by retrieving data, processing it, and
+finally exporting it, all with org-mode. In this presentation, we will
+demonstrate not only org-mode, but also a few companion libraries that
+add functionality such as knowledge graph visualizations, literate
+programming, and collaborative editing to quickly create a deeply
+informative reference page.
+
+The starting point of our best practice is the National Research Data
+Infrastructure Germany (NFDI), about which we intend to retrieve and
+process certain information data gathered from wikidata. For this, we
+are additionally leveraging the "org-roam" emacs package, which
+provides functionality for quickly and simply linking together notes
+and ideas into a custom knowledge graph. Initially, we will write a
+short abstract about the NFDI and embed it into our existing knowledge
+graph by linking it to other existing nodes. In the visualized graph
+(using the “org-roam-ui” package), links and secondary connections to
+other existing nodes can now be revealed.
+
+Next, we would like to enrich the text about the NFDI by with data
+retrieved from the Wikidata API. A convenient way of creating
+self-documenting code is the approach called “literate programming”,
+which presents program logic embedded within human language text. In
+Emacs we achieve this by using the “org-babel” package. Perhaps now we
+find it is helpful to collaborate with a colleague in the document:
+while one is writing the code, the other can explain its use and
+interpret the results. We will do this simultaneously in the same
+document using a method called “crdt” (conflict-free replicated data
+type) and – of course – there is also an implementation of this in
+Emacs. The results of the code blocks can be used for further analysis
+and shared throughout the same document.
+
+Finally, for the sake of proper and barrier free documentation, we
+show how to export the document to various formats like pdf, html, txt
+etc. using either the built-in feature of org-mode or the
+implementation of pandoc.
+
+About the speakers:
+
+**Jonathan Hartman** is a trained data scientist and works at the IT
+Center of the RWTH Aachen University, Germany.
+
+**Lukas C. Bossert** is a trained classical archaeologist and is deputy
+head of the department "research process and data management" at the
+IT Center of the RWTH.
+
+Lukas, an intermediate Emacs user, is currently exploring how to
+optimize his daily workflow by leveraging various Emacs packages. On
+the other hand, Jonathan is a relative newcomer to this environment,
+encountering common pitfalls faced by beginners. Together, they
+explore the capabilities and functionalities of org-mode, discovering
+how it can enhance data management and presentation in their research
+processes.
+
+[[!img /i/emacsconf-2023-collab-sponsorship.png alt="Lukas and Jonathan are financed by the DKZ.2R Datenkompetenzkolleg Rhein-Ruhr (16DKZ2030E), www.dks2r.de"]]
+
+# Discussion
+
+## Questions and answers
+
+- Q: How reliable it resolves the conflict? I mean, for my personal
+ use case, for example, Sycnthing, sometimes it's not working
+ perfectly and I had to manually edit it. How is it robust compared
+ to syncthing?
+ - A (Lukas): We  also faced sometimes issues that letters got
+ mixed up. We couldnt figure out what caused it and it was not
+ reproducable . I cannot compare it to syncthing, never used that
+ with emacs/org-mode.
+- Q: How's the security for this kind of things? I mean, if we adopt
+ these things in our PAD, is there any, can this thing execute
+ arbitrary (elisp) code in different people's computer? (Think like
+ an adversary!)
+ - A: (Lukas)  As far as we saw the code is executed on the local
+ computer, see the part with the R-code in our video. 
+ - (zaeph) We had plans with qhong (maintainer of crdt.el) to
+ tunnel the connection via SSL, but we were blocked by the SSL
+ library that shipped with Emacs, sadly.  However, we did create
+ a security policy that allowed restrictions on the execution of
+ Elisp code. (great!)
+- Q: Really nice talk and demo!  You guys clearly rehearsed :).  I
+ always wonder with serial data processing sequencing like this, to
+ what degree do the intermediate outputs need to appear inline in the
+ text?  Suppose you had 50,000 or one million rows from your initial
+ wikidata (or similar) call.  How would you handle that size of data
+ using a collaborative, literate approach like this?
+ - A: (Lukas) Good question. In your local buffer there is no
+ difference and for the collaborative partner I cannot tell. We
+ testet it with 50 items because that was enough for
+ demonstrating our purpose.
+ - noweb allows getting results of evaluation without having to put
+ the actual data into Org buffer - just arrange the original
+ block generating the data to have :results silent. Basically,
+ :var foo=block-name does not require "block-name" to be
+ evaluated in advance - it will be evaluated as necessary. AFAIU,
+ in the talk, it is re-evaluated every time (to not have it, one
+ would need :cache t).
+ - This has tremendous utility
+ - So it would be stored on disk and referenced by name in a
+ subsequent block?  Sounds useful.  
+ - Not on disk - just cached within a single session. To store
+ on disk, need to save to actual file on disk.
+- Q: How do you handle the viewing of larger or really any tabular
+ data in Emacs/Org when you want to inspect it, like the nice way
+ tabular data is displayed inline in Rmarkdown/RStudio?
+ - A: (Lukas) I have no particular way of doing this. 
+ - What about pandas data summary functionality? Can be a simple
+ python block.
+ - Lukas: Jonathan is our python expert, he might answer this
+ question.
+ - A: (Jonathan) If I follow, you can certainly just use
+ DataFrame.describe() or Series.describe() to get summary
+ statistics for a dataset - the return value would be a Series or
+ a DataFrame, which would be displayed similiarly to how we show
+ things here. Alternatively, DataFrame.head(n) or
+ DataFrame.sample(n) would return a dataframe of the first n / n
+ random lines of a dataset, and might be a way of providing the
+ gist of a very large dataset without printing the entire table
+ in the document.
+ - Would be nice to have a "summarized table" functionality in
+ Org, that includes an abridged copy of a long table inline, but
+ you can open it in another buffer to browse/edit the full table
+ (ala block edit).  
+ - Feel free to post a feature request - see
+ <https://orgmode.org/manual/Feedback.html#Feedback>
+- Q: I'm thinking about an application for a single user, but in
+ different platforms. In a simple case. For example, you have a
+ buffer in your local computer, and you also want to have some files
+ on your pad or on your phone, and you can use this CADT concept to
+ make sure that there's not too much conflict in between different
+ editing sections. Do you think this is a good idea? I mean, compared
+ to purely relying on Syncthing, which sometimes I feel is unreliable
+ for resolving those conflicts.
+ - A: (Lukas) This sounds very interesting and could beneficial for
+ contiously working on things.
+
+## Notes
+
+- I like the way you highlight the point you are talking about in real
+ time.
+- Conflict-free Replicated Data Types (CADT) ::
+ <https://github.com/emacs-straight/crdt>
+- !This is the future of PAD for our conference.
+- Just came here to say watching two users editing the same buffer
+ simultaneously is BLOWING MY MIND 
+ - BLOWING MY MIND  +2
+ - blowing my mind, too ...
+ - WOW
+- Gitlab custom-export.setup
+ - What about it?
+ - I am looking for that setup file and want to try it :) 
+ -->
+ <https://git.rwth-aachen.de/dl/workshops/collaborative-coding-with-emacs/-/blob/main/emacs/custom-export.setup>
+ - Thank you!
+- Truly one of the most impressive talks of the day. Congrats! Very
+ inspiring
+ - Yes, indeed. 
+ - (Lukas) Wow! Thank you. We werent sure if this is worth showing
+ at EmacsConf because there already have been plenty of talks
+ about literate programming and org-babel....
+ - Great collaborative conversation and step-wise example
+ creates a different (and impactful) framing.  Thank you!
+- crdt is fantastic; pity that most (all but one) of my collaborators use Word & VS Code. 🙁
+- that's really cool. One of the parts that's a bit hidden from the user is seeing the format that the data is in inside the shell script
+- it is whatever constitutes the closest equivalent of table in sh (array)
+ - yeah, you have to keep the representation in mind when filtering it as text through sed
+- this demo is so cool :D
+- Really, really impressive I have to admit
+- HA. you cannot evaluate in place so seamlessly in that way with Rmarkdown :). And you cannot combine named blocks in this way either. Wish more folks used emacs.
+- wow, so `#+CALL` can be embedded in text via `call_()?` TIL
+- such a slick presentation, I like the CRDT collaboration angle, looks like an end-game UX
+- Impressive workflow!
+- great presentation!
+- For those of you who remember the bad old days before "reproducible research," that talk is even more impressive. Great job!
+ - i was prolly not there in the bad old days, but imho reproducible research is a pressing, current problem.
+- I feel like that talk video should be shared on Hacker News
+
+
+[[!inline pages="internal(2023/info/collab-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/collab-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/core.md b/2023/talks/core.md
new file mode 100644
index 00000000..a413a3c2
--- /dev/null
+++ b/2023/talks/core.md
@@ -0,0 +1,179 @@
+[[!meta title="Emacs core development: how it works"]]
+[[!meta copyright="Copyright &copy; 2023 Stefan Kangas"]]
+[[!inline pages="internal(2023/info/core-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. --->
+
+
+# Emacs core development: how it works
+Stefan Kangas
+
+[[!template id="help"
+summary="main talk does not have captions"
+tags="help_with_main_captions"
+volunteer="jchelary 2024-01-10"
+message="""This talk does not have captions yet.
+Would you like to help [caption this talk](/captioning)?
+You may be able to start with these [autogenerated captions](/2023/captions/emacsconf-2023-core--emacs-core-development-how-it-works--stefan-kangas--main.vtt)."""]]
+
+[[!inline pages="internal(2023/info/core-before)" raw="yes"]]
+
+- Why it is fun and exciting to contribute to Emacs
+ - We have easy bugs that anyone can fix, in random packages
+ - And extremely hard ones for experts in things like garbage
+ collection, and compilers
+- We are not scary, in fact working to build a welcoming culture.
+- The nature of a public list
+ - Don't listen to random people being negative or hostile
+ - No response is not necessarily a bad thing
+- Cultural aspects of emacs-devel vs GitHub
+- How to behave (be polite, etc.)
+- Email vs forge, help wanted.
+- Why copyright assignment
+- Plans for Emacs 30 (maybe) - needs coordinating with Eli
+
+If I have more time, I'd like to cover more things, for example:
+
+- GNU ELPA vs NonGNU ELPA - why and how
+ - Our plans for GNU ELPA going forward (bundle stuff in tarballs)
+- The future of Emacs: a vision
+
+Basically, I want to do everything I can to inspire people to join core
+development and to lower the barrier to participating. In effect trying
+to work on "bridging the gap" that we have identified exists between
+emacs-devel and the community.
+
+About the speaker:
+
+Stefan Kangas is one of the Emacs core maintainers.
+
+
+# Discussion
+
+## Questions and answers
+
+- Q:Can you tell us some about your background with Emacs development
+ and programming in general (your professional work possibly)?
+ - A: studied CompSci at university.  started programming on a
+ Commodore 64, then C, Perl, and so on
+- Q: Do you think that one day, there will be a "native" graphical
+ web browser in Emacs or is it kind of against its philosophy and
+ architecture? So will we stick just with EWW and EAF or similar
+ workaround tricks?
+ - A: Proper HTML rendering in Emacs is a dream right now
+- Q: Emacs development and communication still is very much focused on
+ E-Mail mailing lists. I like this. But what do you think about
+ introducing other channels for talking to users? E.g., the Emacs
+ project/ community could set up a Mastodon instance of its own etc.
+ - A:
+- Q: What are some features or packages you'd like to see developed
+ by the community?
+ - A: Some of the things that Stefan would like to see happen right
+ now
+ - treesitter: improving and working on new modes
+ - refactoring capabilities in Emacs
+- Q: What is the hardest decision being made within Emacs-dev for last
+ three years?
+ - A:
+- Q: Any plans to integrate EXWM into core? Emacs is a really good WM.
+ - A:
+- Q: Do you think it is a good idea to choose Org-mode for writing
+ documentation instead of Texinfo?
+ - A
+- Q: What do you plan to work on in Emacs core in the future?
+ - A:
+- Q: What do you use Emacs for in your life, other than working on
+ Emacs itself?
+ - A: Programming, obviously (Stefan works as a programmer). 
+ org-mode (including to prepare this talk), for productivity, rss
+ reader, emails.
+- Q: What could we do in order to make Emacs more attractive for
+ younger users?
+ - A: 
+- Q: How are we going to make sure that the cool idea is going to pass
+ it through for the next generation, let's say 20 years later, that
+ generation still have the good knowledge we have today.
+ - A:
+- Q: If you're willing to discuss it, what do you think about the
+ recent controversy about use of cl-lib in Emacs core code?
+ - A: Stefan's opinion is on emacs-devel.
+- Q: When we find a bug, in our emacs.... do we need to try to
+ replicate it on the sid version (debian/sid=1:29.1+1-5 at ehe time
+ of writing), then update all the usual lisp package we use... and
+ if we succeed to replicate the bug in this version, only then go to
+ the development version 30 and do the same ? Then only, ask for
+ assistance in reporting the bug we found ("M-x report-emacs-bug" 
+ will be sufficient ) ?
+ - A: (Answering for Stefan, because information about how to
+ report Emacs bugs is widely available, including in Emacs's own
+ documentation: You should try to reproduce it on the latest
+ released version of Emacs, with a clean Emacs configuration
+ (i.e. "emacs -q"), before reporting.  And you should look for
+ existing bug reports on the tracker.  If you have extra time,
+ consider trying to reproduce it on the master branch or the
+ branch for the next release as well.  And if you're sure
+ you've found a bug, be sure to report it using "M-x
+ report-emacs-bug" rather than just emailing emacs-devel about
+ it.)
+- Q: On branching off sub-threads. I note that they are less visible
+ compared to starting a new thread in practice. I am wondering if it
+ is just my impression or something devs also observe.
+ - A:
+- Q: What about rewriting emacs in Rust? Use guile instead of elisp?
+ Multi-threaded emacs? Make emacs prettier and shiny? And of course,
+ sane defaults! Just kidding. We are spoiled children because you and
+ Eli, Lars, etc. do an impressive work. I live in Emacs since 2001.
+ Thanks!
+ - A:
+- Q: The only downside I see with copyright assignment is that one has
+ to disclose their real identity. Would it be a possibility to assign
+ copyright under a nickname?
+ - A: (not the speaker) FSF said they can publish a pseudonym but
+ need the actual identity in their paperwork, which will be
+ presumably protected, but it's not totally anonymous.
+ - (AFAIK from Bastien) The actual FSF assignee list is not
+ public - I know that it is available to maintainers, but
+ must not be shared.
+- Q:Do you think it is possible to reach an agreement on sane defaults
+ for better out of the box experience?
+ - A: It's more of a social problem than a technical problem (my
+ sane defaults might not be yours).
+- Q:Will xwidgets have a future? Seeing the new bugs popping up in the
+ latest xwidget dev.
+ - A:
+- Q: Have you voted for Emacs as the software of the year on the
+ Tuxies by Jupiter Broadcasting? I did, because Emacs 29 is great!
+ Thank you! :-)
+
+## Notes
+
+- Cambrian explosion of packages (5000 packages in MELPA)
+ - GNU ELPA <- generally better if someday it might be good to
+ ship it with Emacs
+ - João Távora (Eglot author): haven't seen a problem with
+ copyright assignment
+ - To be fair, it does happen in certain cases. But
+ infrequently.
+ - New package archive NonGNU ELPA is now enabled by default, no
+ copyright assignment needed
+- Emacs is hackable. I think that's a blessing and a curse. The types
+ of choices you can make when you implement... Different choices
+ between things like Common Lisp and Scheme. I think we have that
+ kind of tensions within Emacs. These are good discussions to have. I
+ think what will never change is that Emacs is hackable. Emacs is
+ customizable. This is what's bringing you that amazing user
+ experience. The flip side is that it's easy to hack around bugs
+ instead of fixing them. Or we accept limitations in Emacs core. I
+ think we could get better at taking those few extra steps to make
+ Emacs better for all users.
+- Thank you Stefan! That was all really cool! :D
+- thank you you guys it's fantastic
+- thank you guys to say you amazing is to not give you enough
+
+
+[[!inline pages="internal(2023/info/core-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/core-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/cubing.md b/2023/talks/cubing.md
new file mode 100644
index 00000000..b8f11327
--- /dev/null
+++ b/2023/talks/cubing.md
@@ -0,0 +1,105 @@
+[[!meta title="Speedcubing in Emacs"]]
+[[!meta copyright="Copyright &copy; 2023 Vasilij "wasamasa" Schneidermann"]]
+[[!inline pages="internal(2023/info/cubing-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. --->
+
+
+# Speedcubing in Emacs
+Vasilij "wasamasa" Schneidermann (he/him) - Pronunciation: [vɐˈsʲilʲɪj] [vazamaza] [ˈʃnaɪ̯dɐman], IRC: wasamasa, Website: <https://emacsninja.com> Fediverse: @wasamasa@lonely.town, <mailto:mail@vasilij.de>
+
+[[!inline pages="internal(2023/info/cubing-before)" raw="yes"]]
+
+Emacs is well-known for its kitchen-sink nature and sheer extensibility.
+However, its utility for tasks beyond text manipulation is still
+disputed. While it is possible to do most of your computing inside
+Emacs, the existing solutions are of varying quality. Sometimes it is
+necessary to create a custom solution tailored to one's personal needs
+and I believe Emacs to be a worthwhile platform for this.
+
+In this talk I present my journey of building a package to assist me
+with speedcubing, a competitive sport with the goal of solving the
+Rubik's Cube as fast as possible. Along with a demo, useful Emacs
+features and challenges that came up during development will be shown.
+
+
+# Discussion
+
+## Questions and answers
+
+- Q: I see that there is a way to document the time it took to
+ complete the puzzle; however, what about other things such as the
+ date and time, and potentially a note on technique or warm up
+ routine etc? It seems like an interface that included these things
+ would also help people who are practicing and trying to improve. It
+ would help answer the question... what kinds of things do I need to
+ do to improve. ;;Thank you for your answer.
+ - A: Currently, only the timestamp and completion time are
+ recorded for the puzzle/label. However, I've looked at
+ twisty-timer and it does record both the used scramble and a
+ comment field as well, so I plan adding those once the other
+ features work properly. This would allow keeping track of
+ particularly good/bad solves for example.
+- Q: As a side-note, could you say something about how you use emacs
+ to help with your cybersecurity or CTF actifivities? Are there some
+ recommended packages or do you use all of your own templates and
+ procedures to speed your activity? Maybe just post a link to your
+ homepage or GH repositories.
+ - A: It's pretty much only Org usage to document my activities in
+ a way that I know what I did 3 weeks ago and can pick up my
+ research from then. I do not use Emacs for source code review
+ specifically (depending on the target environment, there are
+ better suited tools). The thing with the field is that often,
+ one has to resort to work with whatever tools are at hand and to
+ make the most of them, which is kind of at odds with using Emacs
+ first and foremost as an integrated environment for everything.
+ Other than Org, I use it as an editor for pretty much any
+ programming language I encounter.
+- Q: What are the biggest challenges to using transient?
+ - A: The documentation was very high-level compared to what I'm
+ used to, so I had to skim it a lot to find out how to use it for
+ basic tasks. I think it would be useful to have some slightly
+ more hands-on examples for common tasks. One issue I've run
+ into a few times was the code using generic functions, so it was
+ difficult to debug errors (like using a non-interactive lambda
+ form when a command was expected and getting an unhelpful error
+ message).
+ - <https://github.com/positron-solutions/transient-showcase>
+ might be helpful.
+ - Definitely, but as I've remarked in the talk, the
+ examples felt very "generic". Slightly more realistic
+ examples would make it even better.
+- Q: Very cool project.  Alas I'm not a cuber, so my question is
+ merely, what did you learn in the process of making this
+ presentation?
+ - A: I've never recorded a demo video happening outside of my
+ laptop before, so getting the external recording setup right
+ was... fun. It involved a ladder, several cardboard boxes and
+ my phone. After five attempts (one of which ended up with the
+ cube rolling off the desk loudly), I finally got an okayish
+ recording to use for the presentation.
+- Q: Does svg.el support tap events? 
+ - A: svg.el is only responsible for generating valid SVG documents
+ and one can put whichever tags/attributes there they wish. From
+ my understanding, anything interactive usually solved with JS in
+ the browser would need to be rewritten using Emacs Lisp instead.
+ Tap events for example could be solved with the ":map"
+ property put on the image and would work for other image formats
+ than SVG as well.
+
+Notes
+
+- There's probably quite a few cubers in here. =) I tend to average 50s on 3x3, the kiddo is usually a bit faster.
+- I've recently got a 45s best with LBL
+- I have some code in my config to draw last-layer diagrams as SVGs and an Org link thing like #+LINK: pll https://alg.cubing.net/?stage=PLL&type=alg&setup=x_y_z&view=playback&alg=%s to link to algs quickly; https://sachachua.com/blog/2023/02/using-org-babel-to-learn-rubik-s-cube-algorithms/
+ - speaker: ah yes, I've had the idea to try out roofpig or cubing.js for doing that in org documents, nice to see it has been done before
+- FWIW transient just had a v0.5.0 release which adds and fixes things. It continues to improve thanks to tarsius's tireless work.
+- i'm glad you're exploring Emacs UI wasamasa , i've also been confounded trying to write a transient, and its nice to see that sqlite is working for ya
+- to be fair, I've considered to just stick to my usual approach of writing boring code that does work on as many machines as possible, but there were so many new features that would help making a nice looking and working package that I decided to just depend on emacs 29.1
+
+[[!inline pages="internal(2023/info/cubing-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/cubing-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/devel.md b/2023/talks/devel.md
new file mode 100644
index 00000000..6dd8bd2a
--- /dev/null
+++ b/2023/talks/devel.md
@@ -0,0 +1,111 @@
+[[!meta title="Emacs development updates"]]
+[[!meta copyright="Copyright &copy; 2023 John Wiegley"]]
+[[!inline pages="internal(2023/info/devel-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. --->
+
+
+# Emacs development updates
+John Wiegley (he/him)
+
+[[!template id="help"
+summary="main talk does not have captions"
+volunteer="jchelary 2024-01-10"
+tags="help_with_main_captions"
+message="""This talk does not have captions yet.
+Would you like to help [caption this talk](/captioning)?
+You may be able to start with these [autogenerated captions](/2023/captions/emacsconf-2023-devel--emacs-development-updates--john-wiegley--main.vtt)."""]]
+
+[[!inline pages="internal(2023/info/devel-before)" raw="yes"]]
+
+In this talk, John Wiegley will briefly summarize important developments on the road to Emacs 30. He will not be able to answer questions right now, but you can post questions in the pad and he can
+follow up after the event.
+
+
+# Discussion
+
+## Questions and answers
+
+- Q: Which changes in recent Emacs releases are you enjoying using?
+ - A: I have really liked the visual-line-mode. I'm not sure how
+ recent that is. Some of these features I've discovered quite
+ late. The new display-line-number-mode, much faster. Native
+ compilation. I do a lot of stuff in Emacs. Native compilation
+ has brought the experience much closer to a modern app.
+- Q: What do you think the future in the area of artificial
+ intelligence from the developer point of view?
+ - A: I do use xinside Emacs quite a bit when doing development in
+ other languages. Ex: working on ledger, haven't done a lot of
+ C++ lately. Ex: comparing strings only up to the length of the
+ shortest string. I think in terms of developer assistance, not
+ having to keep all the libraries in memory... Like Rosetta Code
+ (<https://rosettacode.org/wiki/Rosetta_Code>). That's a great
+ database - code in different languages.
+- Q: What is the future of Emacs on macOS? I understand that there are
+ too few developers for the platform. Is that still true?
+ - A: I do not know exactly what the state of Emacs development on
+ macOS is, but I have never suffered in any way, using Emacs on
+ the Mac for decades.
+- Q:Why aren't you contributing to Emacs anymore? Lack of time, I
+ guess?
+ - A: Lack of free time
+ - Draft? (story about describing what he wanted, and then someone
+ ran it through ChatGPT and sent him Emacs Lisp code) <- ChatGPT
+ example, may increase the efficiency of my free time
+ - What was the language that you code in now?
+- Q: One of the tricky things about running emacs on android is do you
+ use anything that requires extra packages ex, pdf-tools with
+ mupdf? - org-roam with a database - playing music or video with mpd
+ or mpv and bonga, elfeed. Do you run emacs turmux, Emacs apk, emacs
+ in virtaul machine??? This is also the case on Emacs for windows but
+ to a lesser degree 
+ - A: (zaeph) We'll put a pin in this for Stefan afterwards.
+- Q: Will AUCTeX some day become the default TeX mode in Emacs? And,
+ if so, when? :)
+ - A: The downside of moving to core is that your release cycle is
+ slowed down because you have to go through emacs-devel and the
+ devel team. So it seems to be up to AUCTeX developers. This can
+ be troublesome if a package develops rapidly.
+- Q: Do you use other IDEs for theorem proving work, notably VS Code
+ for LEAN? Which languages and provers can/do you use Emacs for?
+ - A: I have always used Emacs. 
+- Q: Can we see that AI-generated "Drafts"-like code anywhere?
+ - A:
+ <https://github.com/jwiegley/dot-emacs/commit/ab27998dee4cb92c6f660b434b32582e3d2842f9#r113795175>
+- Q: Wait, just a quick search over "Draft". Does that mean you're
+ not using Org anymore?
+ - okay, I am good now :)
+- Q: Speaking of which, do you ever hit the walls in terms of
+ multithreading issues, and if so when doing what / in what cases?
+- Q: was [perl-mode] just abandonned or did cperl bring a new design ?
+ - Not the speaker: I think someone just started a separate cperl-mode (based on c-mode) and many of us found it worked better, so switched to it.
+
+## Notes
+
+- Emacs 29 has been quite a success so far, 29.2 to be released soon
+- Thinking about starting Emacs 30 release cycle (emacs-30 will be cut
+ and development will be frozen with only bugfixes going in); could
+ take some time
+- Not a huge number of changing features, but still some interesting
+ things
+- Android support - native Emacs on a tablet, etc.
+- Much better support for touchscreen devices (laptops and tablets) 
+ Interesting, the original design of Hyperbole anticipated iPad-like
+ devices with each node of information represented by a rounded
+ square and interconnected in a knowledge graph like Org-roam does,
+ so maybe we'll do some work in that direction.
+- There will be some support for LL(?)
+- perl-mode -> cperl-mode
+- byte-compiler will warn about more questionable constructs: empty
+ macro bodies, etc.
+- Stefan Kangas is a new co-maintainer (and he'll be giving the next
+ talk live)
+- Thanks John for all the news on Emacs and informative answers.
+
+
+[[!inline pages="internal(2023/info/devel-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/devel-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/doc.md b/2023/talks/doc.md
new file mode 100644
index 00000000..a27fe496
--- /dev/null
+++ b/2023/talks/doc.md
@@ -0,0 +1,69 @@
+[[!meta title="Literate Documentation with Emacs and Org Mode"]]
+[[!meta copyright="Copyright &copy; 2023 Mike Hamrick"]]
+[[!inline pages="internal(2023/info/doc-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. --->
+
+
+# Literate Documentation with Emacs and Org Mode
+Mike Hamrick
+
+[[!inline pages="internal(2023/info/doc-before)" raw="yes"]]
+
+When writing about programming or other technical subjects, you’re often weaving blocks of source code, program output, and raw data in with your prose. These supplementary materials are usually copied and pasted into your document from other sources, which can be difficult and tedious to keep up-to-date as things change. Inconsistencies and errors can easily creep in when you “hard-code” dynamic information like program output into your writing.
+
+Wouldn’t it be great if the tool you used for writing knew how to run code in a variety of programming languages, collect and format output, and let you refer symbolically to all this dynamically generated content in your prose? In this talk I’ll demonstrate how to use GNU Emacs’ Org mode to create technical documents that do just that. We’ll explore the features of Babel, Org mode’s literate programming add-on, that makes it convenient to edit, evaluate, and manage embedded code, output, and data all from inside GNU Emacs.
+
+We'll also show how these literate documents can be exported to LaTeX and ultimately PDF format to create professional looking output that looks stunning when printed or viewed.
+
+Also shared at SeaGL 2023
+
+# Discussion
+
+## Questions and answers
+
+- Q: Did you develop a variant of your document for Centos?
+ - A:
+- Q: Great presentation. The preparation is outstanding. For someone
+ like me that never touched the org--mode side of emacs, what do you
+ feel its the more complex part to tackle? You made it seem simple
+ but the complexity there.. woof
+ - A:
+- Q: How do you normally debug, e.g. view the logs or see failed
+ statuses, when the commands in the src blocks fail? Especially if
+ they output lots and lots of logs, and you need to see the full
+ history of the build.
+ - A:
+- Q: Do you find yourself doing plain-text exports? I saw you doing
+ that as an example for a bit. How do you like to format them so they
+ come out looking nice?
+ - A:
+- Q: IIUC if you commit that eval line to your config then theoretically you could open an Org file prepared by someone else and it would automatically run the code in a "startup" block that might be malicious, right?
+ - A: for sure. if you agree to have a block run when you load the document, you could get burned if it changes into something eveil.
+
+### Notes and discussion
+
+- Seems like we could use some kind of extension that would hash a source block and allow you to automatically run ones you've marked safe
+- Property inheritance I still don't completely understand, heh.
+- seeing section on Org MACRO, recall having trouble a while back invoking a MACRO from inside a MACRO; is this a limitation or was I holding it wrong?
+ - AFAIR, macros do support recursion
+ - actually my issue was passing TITLE to a MACRO <https://paste.rs/LZunR>
+ - yeah. "eval" macro arguments in particular are not expanded. you may raise it on the mailing list - looks like something worth considering
+- I almost wanted to pre-process my org mode files with a more advanced macro system like m4. But then I came to my senses.
+ - When discussing Org mode as replacement of TexInfo, it has been rised (Texinfo uses m4) (<https://www.gnu.org/software/texinfo/manual/texinfo/texinfo.html#External-Macro-Processors>) but why do you need m4 when there is Elisp... can just put a code block that will do all the work and eval on export
+ - A: True. You can write elisp to do all the macro replacement, but you end up editing the buffer when you do that, which has its own disadvantages.
+ - during export, it is a throwaway buffer
+ - A: oh, I didn't think of that. Ultimately though org macros have a ways to go before they're truly useful in all context you might want to use them.
+ - org-export-before-processing-hook runs before macro expansion but around the same time (we really need to document the export process step by step)
+- Thanks for the awesome presentation, I can't wait to add some of this stuff to my documents
+- I was pretty terrified to see that ChatGPT could write elisp
+- Also, loved the presentation — great walk-through of the thought process & how to improve. Was happy when Macros made their way in
+- Yeah. tramp would have been cool, but can be dangerous if you start doing sudo apt in the wrong machine
+- I tried cross-compiling Emacs for Serenity. Emacs uses some intermediate binaries (like make-docfile) during its build process, which causes issues with cross-compiling that I couldn't quite figure out.
+
+[[!inline pages="internal(2023/info/doc-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/doc-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/eat.md b/2023/talks/eat.md
new file mode 100644
index 00000000..bd548153
--- /dev/null
+++ b/2023/talks/eat.md
@@ -0,0 +1,141 @@
+[[!meta title="Eat and Eat powered Eshell, fast featureful terminal inside Emacs"]]
+[[!meta copyright="Copyright &copy; 2023 Akib Azmain Turja"]]
+[[!inline pages="internal(2023/info/eat-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. --->
+
+
+# Eat and Eat powered Eshell, fast featureful terminal inside Emacs
+Akib Azmain Turja (he/him) - IRC: akib, <https://akib.codeberg.page>
+Fediverse: akib@hostux.social, <mailto:akib@disroot.org>
+
+[[!inline pages="internal(2023/info/eat-before)" raw="yes"]]
+
+Eat is a terminal emulator for Emacs, written in pure Emacs Lisp. It
+can run most (if not all) terminal programs. Despite being implemented
+in Emacs Lisp, it is fast enough for day-to-day uses.
+
+In this talk, I'll give an overview of Eat, its features and
+configuration. I'll show the most useful features and the features that
+make Eat unique (e.g. shell integration, mouse tracking, Sixel support).
+(This may include features that hasn't been implemented yet but will be
+implemented and stable enough by the time of the recording of the talk.)
+Most of the features require no configuration to use, but are
+configurable with user options. I'll also show the most useful
+customization options available that users may want to customize or
+tinker with.
+
+Thanks to the architecture of Eat, Eat can emulate terminal within any
+region of a buffer. Therefore, Eat can be integrated with Eshell. I'll
+show how to integrate Eat with Eshell, and the useful Eshell-specific
+features and configuration.
+
+Then, I'll compare Eat with other terminal emulators available for
+Emacs, and I'll show which feature that Eat has but the other doesn't,
+and which feature Eat lacks. I'll show why Eat is good or bad for some
+users/use cases. For example, why Shell mode users may prefer Coterm (a
+terminal emulator for Comint) over Eat, why Eat is better Term mode in
+the most cases, or why Vterm should be prefered for huge bursts of
+outputs, etc.
+
+Then I'll give pointers to the documentation available like the Info
+manual or README and what they contain. And I'll also discuss what to
+do when you hit a problem. I'll discuss about the common problems or
+misconfiguration, and also discuss where and how to report bugs
+properly. I won't go into much details in this part, since the manual
+covers this topic completely, and the users are expected to not
+encounter problems.
+
+Then I'll discuss the future plans of the project. And finally, I'll
+conclude the talk with a summary of the whole talk.
+
+Outline:
+
+- Introduction: What's Eat and why?
+- Installing Eat from NonGNU ELPA
+- Demonstrating Eat's features and configuring them
+- Eshell integration
+- Comparison with other terminal emulators
+- Shortcomings and common (fixable) problems
+- Future plans
+- Conclusion
+
+
+# Discussion
+
+## Questions and answers
+
+- Q: Have you thought about upstreaming EAT?
+ - A: Yes, but I haven't yet completed the copyright paperwork.
+ - S: Look into it, I think it would be great to have a better
+ implementation of a terminal OOTB!
+- Q: Very impressive!  What lessons did you learn while developing
+ EAT?
+ - A:I learned how to optimize Elisp code, and also how terminals
+ work actually.  And also process handling in Elisp.
+- Q: How long did it take you to develop EAT to this point?
+ - A:It took around 5 months to make it working at bare minimum.
+ - Q: Did you have any experience with terminal emulation
+ before working on EAT?
+ - A:Not much really.  I mean I knew how terminals worked
+ but I didn't know the escape sequences.
+- Q:Impressive work; I look forward to trying it.  What did you want
+ that Vterm did not provide?  I think I'll try it today.
+ - A:The keybindings, specially.  And also I wanted Eshell terminal
+ emulation.
+- Q: Is Elisp native-compilation what allows EAT to peform as well as
+ or better than Vterm, or is EAT even that fast with just
+ byte-compilation?
+ - A:I use native-compilation.  But Eat is still quite a few times
+ faster than Term mode when byte-compiled.
+- Q: Should it work on Emacs 28.1?
+ - A:Yes.
+- Q: What does EAT do differently than other terminal emulators that
+ allows it to perform so well?
+ - A:I don't really know quite clearly.  At the time I implemented
+ the main code, I had plenty of time.  I did profiling and tried
+ various implementations to do the same thing.
+- Q: what sparked your interest in Emacs, considering its often
+ perceived as outdated, and how do its powerful capabilities remain
+ relevant today?
+ - A: First of all, it's free software, I have the freedom.  And
+ the IDEs I used to use were resource hogs, so needed something
+ lightweight.  And, after I started using Emacs, I discovered how
+ powerful it actually is.  Emacs is itself a programming
+ platform, so you can make literally anything with it.
+- Q: have you thought about making EAT work with shell-mode?
+ - A: Yes, I have considered integrating with shell-mode/Comint but
+ it doesn't work, they need the terminal text to be mutable and
+ Eat doesn't support that.  So I have implemented "line mode,"
+ an input mode similar to shell-mode.
+- Q: did the talk show how to show sixel?
+
+## Notes
+
+- I found out about EAT a while ago and was excited to find out that
+ it works so well! Thank you for your great work!
+- akib, truly impressive!
+- :clap::clap::clap::clap::clap::clap:
+- ¡Muy bueno!
+- I use eat, and I have almost replace terminal (bash/zsh) with eshell paired with eat
+- i use eat but i don't really have anything to say cuz i don't use the CLI nearly as much anymore since learning more emacs stuff. but i still think eat is awesome cuz it is really fast for when i do need it
+- I'll be looking into eat more, thanks for the talk!
+- demonstrating sixels would have been a surprise for some...
+- eat is very easy to try out compared to vterm since there's no foreign code involved
+- I was stunned at how fast eat is!
+- even without native-comp, it's pretty fast
+- eat is the apple equivalent of terminal emulators in emacs: It just works! ;)
+- best of both world is, eshell paired with eat
+- <http://yeti.freeshell.org/tmp/20231203-155213__emacs_eshell_eat__showing_xkcd_378_via_sixels.png>
+ - I usd img2sixel wnd some awk glue
+ - imagemagick can also convert to sixel
+- you're the one who helped me with eat and the dumb term line for .zshrc so ty!
+- speaker: yes, i have considering integrating with shell-mode/comint but it doesn't work, they need the terminal text to be mutable and eat doesn't support that so i have implemented "line mode," input mode similar to shell mode
+
+
+[[!inline pages="internal(2023/info/eat-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/eat-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/emacsconf.md b/2023/talks/emacsconf.md
new file mode 100644
index 00000000..cabe7a6b
--- /dev/null
+++ b/2023/talks/emacsconf.md
@@ -0,0 +1,149 @@
+[[!meta title="EmacsConf.org: How we use Org Mode and TRAMP to organize and run a multi-track conference"]]
+[[!meta copyright="Copyright &copy; 2023 Sacha Chua"]]
+[[!inline pages="internal(2023/info/emacsconf-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. --->
+
+
+# EmacsConf.org: How we use Org Mode and TRAMP to organize and run a multi-track conference
+Sacha Chua (she/her) - IRC: sachac, <https://sachachua.com>, Mastodon: @sachac@emacs.ch, <mailto:sacha@sachachua.com>
+
+[[!inline pages="internal(2023/info/emacsconf-before)" raw="yes"]]
+
+[[!template id="help"
+volunteer=""
+summary="Q&A could be indexed with chapter markers"
+tags="help_with_chapter_markers"
+message="""The Q&A session for this talk does not have chapter markers yet.
+Would you like to help? See [[help_with_chapter_markers]] for more details. You can use the vidid="emacsconf-qanda" if adding the markers to this wiki page, or e-mail your chapter notes to <emacsconf-submit@gnu.org>."""]]
+
+Go on a whirlwind tour behind the scenes to see how we've been using
+large Org Mode files and a bunch of Emacs Lisp functions to organize
+and run EmacsConf. You might be able to pick up some ideas about Org
+Mode navigation, image and video manipulation, captioning, publishing,
+and remote command execution, and then check out the notes to find out
+more.
+
+Resources:
+
+- [RevealJS presentation with clickable links, etc.](https://sachachua.com/proj/emacsconf-2023-emacsconf/)
+- [As one long webpage](https://sachachua.com/proj/emacsconf-2023-emacsconf/exported.html)
+- [Presentation org file](https://sachachua.com/proj/emacsconf-2023-emacsconf/index.org)
+
+# Discussion
+
+## Questions and answers
+
+- Q: How "easy" would it be for someone else to reuse the EmacsConf
+ scripts and config to do a conf of their own?
+ - A:
+- Q: How can speakers and viewers help make preparing for next year's
+ EmacsConf even more fun for the organizers?
+ - A: 1.  Suggest ideas for talks!  They don't have to be big or
+ complicated.  2.  Share the word about things you liked!
+ - follow-up Q: Would you consider making a demonstration video of
+ using subed.el?
+- Q: What tools would you like to exist in Emacsland to help with
+ preparing the conference next time?
+ - A: Etherpad integration with Emacs from an API would be very
+ helpful, e.g. maybe using crdt.el.  Also it would be nice if
+ subed could be used to fix audio sync issues while editing
+ subtitles.
+- Q: Could you elaborate on the workflow that goes on in your mind for
+ when approaching these things? Do you start with an Emacs/Org
+ solution right off the bat at this point, when faced with a task?
+ Are there some conscious steps involved from early ideas to
+ automations of the kind you just showed?
+ - A: 1. Take the time to try to understand and automate a task,
+ even if you think you're only going to do it once.  The
+ learning process adds up over time and makes future, similar
+ tasks easier.
+- Q: How well does this approach allow for other organizers to do
+ individual customizations to their liking while still being able to
+ collaborate effectively?
+ - A:
+- Q:What was the hardest problem you encountered in organizing or
+ running the conference this year and how did you deal with it?
+- Q: Are you seeing year-to-year growth in attendance and after the
+ conference video watching?  You should build the searchable
+ EmacsConf archive!
+ - A: "The evil plan is working!" --Sacha Chua, 2023
+- Q: Any chance of an in-person EmacsConf again someday?
+ - A: I'm not travelling any time soon, but if someone else wants
+ to organize things, I'll be happy to spread the word and help
+ with the backstage things. I really like virtual conferences,
+ though!
+- Q: Any suggestions or specific recommendations for hosting an
+ EmacsConf satellite event? Sorry wait, what was that name again?
+ - A: 
+- Q: Do you have any stats on how many people watched, were in irc and
+ bbb , over those 2 days?
+ - A: 
+
+TODO check out mcron
+
+## Notes
+
+- I talk really quickly! Here's a self-paced RevealJS presentation
+ with narration and clickable links, etc.
+ <https://sachachua.com/proj/emacsconf-2023-emacsconf/>
+ - and as a long HTML page:
+ <https://sachachua.com/proj/emacsconf-2023-emacsconf/exported.html>
+ - and the source Org file using org-re-reveal:
+ <https://sachachua.com/proj/emacsconf-2023-emacsconf/index.org>
+- Amazing presentation, Sacha!!! It's wonderful that all of your work
+ is well-documented. Thank you!!!
+- Feedback:  toobnix was streaming much better than the webm feeds, so
+ would be great to expand that.  Also, IRC on the web kept
+ disconnecting me and then I lose all the history.  Would be great if
+ Etherpad could handle all the dialog and then have it archived as
+ the chats are interesting to review later as well.
+- This is my first year attending the conference, it was amazing! All
+ of the presenters and material were very impressive. And from a
+ technical perspective, the event was extremely smooth. It was easy
+ to find the agenda material online, and then use mpv to watch, and
+ ask questions on etherpad.
+- New stuff for EmacsConf 2023:
+ - Other organizers busy during prep time, so prioritization was
+ key
+ - Wrote lots of blog posts on the way to refamiliarizing myself
+ with the code
+ - Early acceptance with a week for extra comments
+ - Two tracks from the start, could give everyone more time
+ - Moved more mail merge templates into the library
+ - Added more scripts for handling the sessions, playing talks,
+ joining Q&A
+ - Used Spookfox to control Firefox from Emacs: creating BBB rooms,
+ extracting data
+ - Phone recordings + subed-align + subed-record-compile-video =
+ intros, this presentation
+ - subed-waveform made it more fun to check and adjust the
+ timestamps
+ - I still don't like dealing with audio processing or sync
+ issues, good thing zaeph can handle them
+ - Reduced coordination needs by opening Q&A right away instead of
+ waiting for signal
+ - Used Tampermonkey to automatically connect to BigBlueButton from
+ streaming user
+ - Crontab working smoothly; used timers and TRAMP last year
+
+
+- Whatever you do, don't miss out @sachac's talk (this PM or otherwise). I stumbled on it on @bandali's channel following a link to Howard's, and it's a *masterclass* in wrangling things together to automate workflows in Emacs/Elisp/Org. When people ask about VS Code, this shows we are talking different mindsets and tools altogether.
+- Yeah! I'm excited for that one.
+ - So am I.. again! And I'll be rewatching it multiple times too, that's how packed in useful insights and tidbits it is. "What do you mean Emacs/Org is a platform and a way of life?" Well, here you go, great examplar :)
+- FYI Emacs now has `with-memoization`
+ - I use a package (skeeto's?) that has defmemoize and such, is that outdated now?
+ - Yes, Chris's package was developed years ago, and it's been useful to me as well. Stefan Monnier, IIRC, added with-memoization in...28.1, I think. IIRC there are minor differences but now the built-in one should usually be enough.
+- The breadth of use cases and applications, and range of Emacs/Elisp/Org capabilities reached for in this talk is fascinating.
+- I had some time to pop into the mentor Q&A, and one of the things that bubbled up from the conversation was that there's always something to be curious about, even if you've been using Emacs for decades. It's not just about the stuff that comes built-in or even in packages, it's also all these different workflows. so it's easy to be perpetually curious and to have lots of fun.
+ - sachac, Agreed! Not only Emacs, either. For the last several years, I've hosted 1:1s with teammates where they can ask any tech question they want; if I don't know the answer, we figure it out together. And those are my favorite ones. :)
+
+- So nice to see these practical example of automating workflow with Emacs, great presentation sachac
+
+
+[[!inline pages="internal(2023/info/emacsconf-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/emacsconf-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/emacsen.md b/2023/talks/emacsen.md
new file mode 100644
index 00000000..d1b7cc7e
--- /dev/null
+++ b/2023/talks/emacsen.md
@@ -0,0 +1,73 @@
+[[!meta title="The Emacsen family, the design of an Emacs and the importance of Lisp"]]
+[[!meta copyright="Copyright &copy; 2023 Fermin"]]
+[[!inline pages="internal(2023/info/emacsen-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 Emacsen family, the design of an Emacs and the importance of Lisp
+Fermin (he/him) - <https://codeberg.org/sasanidas>
+
+[[!inline pages="internal(2023/info/emacsen-before)" raw="yes"]]
+
+[[!template id="help"
+volunteer=""
+summary="Q&A could be indexed with chapter markers"
+tags="help_with_chapter_markers"
+message="""The Q&A session for this talk does not have chapter markers yet.
+Would you like to help? See [[help_with_chapter_markers]] for more details. You can use the vidid="emacsen-qanda" if adding the markers to this wiki page, or e-mail your chapter notes to <emacsconf-submit@gnu.org>."""]]
+
+This talk is about the design of an Emacs the Emacsen editors, GNU
+Emacs, Emacs Lisp and the extensibility of GNU Emacs (and Lem as an
+example of Common Lisp). I want to focus the talk about the understand
+of the concept of Emacs but with concrete examples (GNU Emacs and
+Lem), also highlight some historical Emacsen and how the family of
+editors is doing today.
+
+About the speaker:
+
+I'm Fermin MF, I'm a Software Engineer from Spain with interest in
+Emacsy editors.
+
+# Discussion
+
+## Questions and answers
+
+- Q: How large is the LEM community? How big is the chance of it
+ surviving long term?
+ - A:
+- Q:Are there any Lisp machine capabilities you are trying to revive
+ that GNU Emacs lacks?  The typed objects capability in the editor as
+ an example.
+ - A:
+- Q: What about using Lem for things other than coding common lisp,
+ dired magit "notes org mode dentoe org roam" emms pdf tools shell
+ mode?
+ - A:
+- Q:What about using this in conjunction with Nyxt the common lisp;
+ web browser
+ - A:
+- Q: What is the license of LEM?
+ - A:
+- Q: Big question, I realize, but: How far is LEM from being able to
+ run Elisp libraries, e.g. imagine if Magit could "just work" in
+ LEM?
+ - A:
+- Q: How are LEM buffers designed? Similar to Emacs? TextGrid with
+ Properties? Or something other? I just tried again to give Emacs
+ more interactivity & am thinking if there is a possible display
+ future for the Emacsen.
+- Q: What are the things or experances that lem gives you that are
+ nicer than Emacs? or make you happy using both?
+ - A:
+- Q: (Forgive me if you answered this already.)  Do you think Lem will
+ continue to have a lot of Japanese documentation, or is there a
+ chance it will move entirely to English?  (IMHO having much of the
+ docs in Japanese will hold back the project.)
+ - A: 
+
+[[!inline pages="internal(2023/info/emacsen-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/emacsen-nav)" raw="yes"]]
+
diff --git a/2023/talks/emms.md b/2023/talks/emms.md
new file mode 100644
index 00000000..bcb69c9d
--- /dev/null
+++ b/2023/talks/emms.md
@@ -0,0 +1,102 @@
+[[!meta title="Emacs MultiMedia System (EMMS)"]]
+[[!meta copyright="Copyright &copy; 2023 Yoni Rabkin"]]
+[[!inline pages="internal(2023/info/emms-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. --->
+
+
+# Emacs MultiMedia System (EMMS)
+Yoni Rabkin - IRC: yrk
+
+[[!inline pages="internal(2023/info/emms-before)" raw="yes"]]
+
+[[!template id="help"
+volunteer=""
+summary="Q&A could be indexed with chapter markers"
+tags="help_with_chapter_markers"
+message="""The Q&A session for this talk does not have chapter markers yet.
+Would you like to help? See [[help_with_chapter_markers]] for more details. You can use the vidid="emms-qanda" if adding the markers to this wiki page, or e-mail your chapter notes to <emacsconf-submit@gnu.org>."""]]
+
+- Introduction to Emms: A Practical Introduction
+- How Emms Works: The Technical Part
+- How We Work: Emms Development
+
+
+# Discussion
+
+## Questions and answers
+
+- Q: To warm up, what is the music playing during the lunch break?
+ - A:(zaeph) Album: *basement days*  by shoshin (Grant Shangreaux)
+ ❤️
+ - <https://cicadas.surf/~shoshin/casiopeia/basement%20days/>
+- Q: For next emacsconf, could we have an EMMS playlist to follow the
+ talks along? 
+ - A:
+- Q:I I like to use Music and AudioBooks in very different ways. With
+ music I like shuffling by artist and with AudioBooks want to read
+ sequentially and pick it the same playlist over a couple of
+ days/weeks. Do you have any tips for using these 2 opposing media
+ workflows
+ - A:
+ - Q: For audiobooks I use mpv with m4b files
+- Q: Is there a way to search your music selection by lyrics--
+ assuming those lyrics are in the meta-data or available elsewhere.
+ It would be neat to call songs up from the lyrics to the song.
+ - A: For the lyrics: not possible to do right now.  The caching
+ system is extremely naïve.  Now, with sqlite3 integration, we
+ need to expand the cache to be a lot more greedy and lot more
+ flexible.  The rewrite is in progress, and any related
+ information (including lyrics) will be integrated.
+- Q: Are aliases available for the songs that you like? Defining those
+ aliases or shortcuts either inside or outside emms? ;;BTW: melpa
+ version of emms is missing; however, I was able to install from
+ elpa. 
+ - A: We'll put a pin on this
+- Q:Are there plans for managing meta-data with online resource
+ backends; i.e. discogs or musicbrains? What about something like
+ Beets in Emacs or part of EMMS?
+ - A: That's an active discussion on the mailing-list right now. 
+ We don't want to replicate what Beets does really well, and we
+ don't want a clunky interface with Beets.  It's hard to tell
+ where to draw the line.  Short answer: yes, we want to do that,
+ but the long answer is that it's complicated.  The backends that
+ are used are complicated.
+- Q: Have the developers considered using Emacs' "Customize"
+ functionality to persistently store settings when using
+ emms-setup-discover-players? 
+ - A: Another active project, especially with -discover-players. 
+ It's tough to figure out what is a good way to not annoy people
+ too much.
+- Q: Is there a way to store a bookmark pointing to a song in a
+ playlist?
+ - A:
+- Q: I like what you said about balancing the concern for software
+ freedom with the worry that this might alienate the package user. I
+ was wondering if you have advice for other maintainers on how to
+ communicate this sort of thing diplomatically, when you have to deny
+ implementing a feature for a "freedom" reason.
+ - A:I found that people appreciate knowing where the project
+ stands. But care needs to be taken to be descriptive and not
+ perscriptive; explain why your project is like that as opposed
+ to making them feel judged. Some people are ornery and will get
+ upset anyway, but that's a part of working within the public
+ eye.
+- Q: i wonder if it would be possible to add fluidsynth as a backend for emms to play midis
+ - A: I can add a fluidsynth backend to the tasklist no problem. right now, emms-player-fluidsynth works, but only with basic play/stop/pause support. I assume you are looking for more features than that. emms-player-simple.el defines a few, appropriately named, simple interfaces to some midi players such as fluidsynth and timidity
+Notes:
+
+- This guy has &lt;chefs-kiss&gt; taste in music, by the way. Take it from me, I'm a big snob
+ - i like how it was a bunch of classical and then Tool :)
+- Brilliant 👏
+- Amazeballs 👏
+- oh that's a good idea
+- I just really enjoy seeing the folks that contribute to free software. They are truly people to emulate. That goes double for Yoni.
+- someone on the pad mentioned there not being an EMMS package in MELPA, that is intentional, since EMMS is built into Emacs, and we have the newest version in ELPA
+
+[[!inline pages="internal(2023/info/emms-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/emms-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/eval.md b/2023/talks/eval.md
new file mode 100644
index 00000000..0758cc7a
--- /dev/null
+++ b/2023/talks/eval.md
@@ -0,0 +1,77 @@
+[[!meta title="Editor Integrated REPL Driven Development for all languages"]]
+[[!meta copyright="Copyright &copy; 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>
+
+About the speaker:
+
+Musa is an Emacs afficando. His day job is with Java, but his heart is with
+Lisp. His experience with interactive programming is only with Agda [2]
+and Emacs Lisp [3], and both [4].
+
+[2] Graphs are to categories as lists are to monoids
+
+http://alhassy.com/PathCat.html
+
+[3] A Life Configuring Emacs
+
+http://alhassy.com/emacs.d/
+
+[4] Making Modules with Meta-Programmed Meta-Primitives
+http://alhassy.com/next-700-module-systems/prototype/package-former.html
+
+# Discussion
+
+## Questions and answers
+
+- Q: I know that there are many packages for creating graphics with
+ Javascript, but I don't know how to use any of them... is it
+ possible to use your package to create graphics in Javascript step
+ by step from Emacs?
+ - A:
+- Q: Can you summarize what languages your packages support and do you
+ have a common framework for interfacing to their interpreters?
+ - A:
+- Q: Did you get the job?  =)  Did the interviewer have any feedback
+ about your screen-sharing-driven development?
+ - A:
+- Q: Could you compare your package to Language Servers (LSP)? They
+ seem to have similar functionality to your package.
+ - A:
+
+[[!inline pages="internal(2023/info/eval-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/eval-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/extending.md b/2023/talks/extending.md
new file mode 100644
index 00000000..41a962aa
--- /dev/null
+++ b/2023/talks/extending.md
@@ -0,0 +1,34 @@
+[[!meta title="GNU Emacs for electronics, note-taking, and as lightweight IDE"]]
+[[!meta copyright="Copyright &copy; 2023 Anand Tamariya"]]
+[[!inline pages="internal(2023/info/extending-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. --->
+
+
+# GNU Emacs for electronics, note-taking, and as lightweight IDE
+Anand Tamariya
+
+[[!inline pages="internal(2023/info/extending-before)" raw="yes"]]
+
+I've been working on a plethora of ideas around extending Emacs. Since they
+are highly disparate ideas, I think the small videos can fit in as fillers
+/ lightning talks. Below are some playlists containing the proposed videos
+on Youtube.
+
+GNU Emacs for Electronics
+<https://www.youtube.com/playlist?list=PLW9poAEUvGDC7ZWO69qrwRMqdW2xYLsGt>
+
+GNU Emacs for Note taking
+<https://www.youtube.com/playlist?list=PLW9poAEUvGDDxCZX-3xIQ3Wb1HOVcg7N>_
+
+GNU Emacs as a lightweight IDE
+<https://www.youtube.com/watch?v=d14tLD5XiCU&list=PLW9poAEUvGDAMYvvznljaNtvooaJZxsFQ&pp=gAQBiAQB>
+
+
+
+[[!inline pages="internal(2023/info/extending-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/extending-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/flat.md b/2023/talks/flat.md
new file mode 100644
index 00000000..bf579540
--- /dev/null
+++ b/2023/talks/flat.md
@@ -0,0 +1,69 @@
+[[!meta title="A modern Emacs look-and-feel without pain"]]
+[[!meta copyright="Copyright &copy; 2023 Pedro A. Aranda"]]
+[[!inline pages="internal(2023/info/flat-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. --->
+
+
+# A modern Emacs look-and-feel without pain
+Pedro A. Aranda (he)
+
+[[!template id="help"
+summary="main talk does not have captions"
+tags="help_with_main_captions"
+message="""This talk does not have captions yet.
+Would you like to help [caption this talk](/captioning)?
+You may be able to start with these [autogenerated captions](/2023/captions/emacsconf-2023-flat--a-modern-emacs-lookandfeel-without-pain--pedro-a-aranda--main.vtt)."""]]
+
+[[!inline pages="internal(2023/info/flat-before)" raw="yes"]]
+
+In my talk I will show how to enrich themes without having to write them
+from scratch, using the flat-button style. This gives you the possibility
+of creating a nice Emacs GUI with minimal extra ELISP.
+
+About the speaker:
+
+Pedro A. Aranda is a 30+ year Emacs user, who started on an HP mainframe
+and soon started using the DJGPP port of emacs on a 386 at home. Currently
+lecturing at a university in Madrid, he uses emacs for most of his teaching
+activities.
+
+# Discussion
+
+## Questions and answers
+
+- Q: Do you plan to upstream this style into core Emacs?
+ - A: It's in core emacs
+- Q: How difficult is it to modify face styles like this internally?
+ - A: It's very simple, just set the :style of the :box face
+ attribute.
+- Q: How much work was involved in implementing this style internally
+ in Emacs core?
+ - A: About a 20-line patch.
+- Q: Could you please share the code for copy and paste? Thx!
+ - A: 
+ - (defun flat-style(theme &rest args)
+ -   (custom-set-faces
+ -    `(mode-line
+ -      ((t (:inherit mode-line
+ -                    :box (:line-width ,mode-line-height :style
+ flat-button)))) t)
+ -    `(mode-line-inactive
+ -      ((t (:inherit mode-line-inactive
+ -                    :box (:line-width ,mode-line-height :style
+ flat-button)))) t)))
+ - (advice-add 'load-theme :after #'flat-style)
+- Q: Do you teach Emacs to any of your university students?
+ - A: No teaching, but a lot of introdcuing ;-)
+
+## Notes
+
+- It looks great, thanks for upstreaming it in GNU Emacs core as well!
+
+
+[[!inline pages="internal(2023/info/flat-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/flat-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/gc.md b/2023/talks/gc.md
new file mode 100644
index 00000000..dac7add0
--- /dev/null
+++ b/2023/talks/gc.md
@@ -0,0 +1,134 @@
+[[!meta title="emacs-gc-stats: Does garbage collection actually slow down Emacs?"]]
+[[!meta copyright="Copyright &copy; 2023 Ihor Radchenko"]]
+[[!inline pages="internal(2023/info/gc-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. --->
+
+
+# emacs-gc-stats: Does garbage collection actually slow down Emacs?
+Ihor Radchenko (he) - Mastodon: <https://emacs.ch/@yantar92>, <mailto:yantar92@posteo.net>
+
+[[!inline pages="internal(2023/info/gc-before)" raw="yes"]]
+
+Talk sources, PDF, raw data, and analysis are published at <https://dx.doi.org/10.5281/zenodo.10213384> .
+
+Is Emacs responsiveness really affected by slow garbage collector?
+Should `gc-cons-threshold' be increased during startup?
+Or maybe during the whole Emacs session?
+
+I will try to answer these questions using the real data collected from
+Emacs users who installed
+<https://elpa.gnu.org/packages/emacs-gc-stats.html> package and submitted
+their results to <https://lists.gnu.org/archive/html/emacs-gc-stats/>.
+
+About the speaker:
+
+Materials science researcher, Org mode users since many years ago, Org
+mode (unofficial) co-maintainer :)
+
+The talk is an excuse to sum up emacs-gc-stats data for later discussion
+of changing Emacs GC defaults:
+https://yhetil.org/emacs-devel/87v8j6t3i9.fsf@localhost/
+
+# Discussion
+
+## Questions and answers
+
+- Q: Are the GC duration statistics correlated with users? I mean:
+ does the same user experience GCs of various durations, or do some
+ users experience GCs of >0.2 s exclusively while others never
+ experience GCs of >0.2 s?
+ - A: Some users have <0.1 GC time, while others struggle with
+ near 1 sec. Really varies. But the number of people
+ with >0.2sec is significant enough to make GC a big deal. You
+ can check it yourself - there are GC stats plots for each
+ individual user in <https://zenodo.org/records/10213384>.
+- Q:Having recently been working on a high-performance smooth
+ scrolling mode, which needs to respond to scroll events
+ arriving >50-60 times per second, a 100ms delay is *very*
+ noticeable in this scenario.  For normal buffer interation and
+ commands 0.1s a reasonable dividing line, but I'd estimate you can
+ easily feel a 20ms delay during varoius "fast" interactions.  Do
+ you think there is hope to "spread out" GC latency to keep it
+ below say 15ms, even if more frequent (without just repeating many
+ short GC's in a row)?
+ - A: The only reasonable "spread out" is deferring GC to
+ _after_ that scrolling. Like (let ((gc-cons-threshold <large
+ enough number to avoid multiple GCs>)) (do the scrolling)).
+ This is also what recommended by Emacs devs (AFAIR).
+- Q:Opinions about gcmh-mode?
+ - A: (Not Ihor): Ironically it uses too many timers, creating
+ garbage of its own.  It should use `timer-set-time` instead of
+ creating and throwing away timers after each command (via
+ `post-command-hook`) Interesting!
+ - A: (from Ihor): the problem is it ends up consuming a ton of
+ memory, increasing GC time, and that most GCs occur when Emacs
+ is being used intensively and there is no chance for Emacs to go
+ on idle and perform the GC. Since GC cons threshold is raised to
+ ~1G (gcmh-high-cons-threshold) while Emacs is used - you will
+ face a really bad hang (seconds to tens of seconds regularly).
+ Ends up not helping much, recommend increasing
+ gc-cons-percentage=0.2 or so instead.
+- Q:
+ - A:
+- Q: Is there some way to free up memory (such as via
+ `unload-feature`) in Emacs? Often I only need a package loaded for
+ a single task/short period but it persists in memory afterwards.
+ - A: <https://elpa.gnu.org/packages/memory-usage.html>, and
+ built-in M-x memory-report - most of the time, it is some
+ history/cache variables of large buffers that are occupying
+ memory. The library code itself is rarely affecting GC. (The
+ other question is when libraries add timers/heavy mode-line
+ constructs/post-command-hooks/etc - that's indeed a problem,
+ but solved by disabling or not using a package; no need to
+ unload) 
+- Q: Very nice presentation! I just experimented with the threshold
+ and lowered my gc-elapsed from 1.1 to 0.06 seconds (during startup).
+ Interestingly, going to 10MB increased the time, 4MB was the
+ sweet-spot for my system. What is the recommended way to lower the
+ value back to the default value after startup is complete?
+ - A: after-init-hook
+- Q:what were you using to flip through the PNGs? (thanks for the
+ answer.  look-mode on melpa does that too ;)
+ - A: []{.underline}
+ [[https://feh.finalrewind.org/]{.underline}](https://feh.finalrewind.org/)
+- Q: What was the final point you were making regarding Emacs 30?  You
+ got cut off...
+ - A: M-x malloc-trim
+- Q: With 16-32G RAMs a minimal OS swapping, how about systematically doing this temporary deferral @yantar92 suggested and leave it down for a longer GC at night and whatnot? Or would cons/allocation also degrade too noticeably?
+ - Not the speaker: That would cause Emacs to use a lot more total memory
+ - Indeed. Essentially the question is at what point all my daily mostly-textual Emacs usage doesn't come close to using all the available memory on a 32G sys? (but my mind went more to being concerned about new cons/alloca and fragmentation for the intra-day use) I'll have to look into it more before being cogent. One more onto the todo list then :)
+ - A: for increasing thresholds up to RAM limits, do remember that individual GC time will increase - with 32Gb RAM you will likely make individual GC prohibitedly slow sooner than later. I'd say that it only makes sense to increase the thresholds when you have multiple agglomerated GCs. Going beyond this is of little use. (I am thinking about adding some kind of summary statistics command to emacs-gc-stats, so that one can look into GC duration, frequency, init time, and agglomeration and then adjust the settings according to the results)
+
+## Notes
+
+- <https://elpa.gnu.org/packages/emacs-gc-stats.html>
+- Data, presentation, and analysis:
+ <https://dx.doi.org/10.5281/zenodo.10213384>
+- This presentation is a direct continuation of emacs-devel thread:
+- <https://yhetil.org/emacs-devel/20230310110747.4hytasakomvdyf7i@Ergus/>
+ - At some point, Eli asked to collect GC statistics -
+ <https://yhetil.org/emacs-devel/83y1n2n11e.fsf@gnu.org/>
+ - <https://elpa.gnu.org/packages/emacs-gc-stats.html> and my talk
+ summarizing the results are the answer to that request.
+ - Now, we can continue the discussion on emacs-devel with real
+ data at hand :)
+ - I hope to push for a temporary bump of `gc-cons-threshold'
+ during Emacs init and possibly for increasing
+ `gc-cons-percentage'.
+- Came for clear-cut magic bullet answers, left with nuanced analysis - and that, surprise, Eli was overall right? Now what to do with that viral gc init snippet that I've never taken time to measure myself but keep anyway...
+ - A: I do believe that temporarily raising thresholds is ok for init time. that's the only clear-cut conclusion, unortunately
+- Thanks yantar92, both for the detailed investigation and exposition. I've been deferring to much-smarter-than-me Henrik for my default position (Doom has it in it's init), for lack for doing any measurements myself.
+- Thanks for your work on this project. Very thorough.
+- Definitely a huge extra thanks for the tireless Org-mode work yantar92!
+- A: Do not take things Doom does blindly. I am still horrified by let-binding major-mode
+ - Good advice, thanks. I don't personally (more of a vanilla/DIY type myself), but I'd be remiss to leverage Henrik's insights nonetheless :)
+- A: (fun fact: memory-info tries to get memory information on remote system when connected via TRAMP) ... not a problem (anymore; after that very surpising bug report) for emacs-gc-stats
+
+
+[[!inline pages="internal(2023/info/gc-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/gc-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/hn.md b/2023/talks/hn.md
new file mode 100644
index 00000000..4bc7f038
--- /dev/null
+++ b/2023/talks/hn.md
@@ -0,0 +1,36 @@
+[[!meta title="The many ways to browse Hacker News from Emacs"]]
+[[!meta copyright="Copyright &copy; 2023 Mickael Kerjean"]]
+[[!inline pages="internal(2023/info/hn-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 many ways to browse Hacker News from Emacs
+Mickael Kerjean - <mailto:mickael@kerjean.me>
+
+[[!inline pages="internal(2023/info/hn-before)" raw="yes"]]
+
+There's so many ways one can use Emacs to do something. Want to browse
+around Hacker News?
+
+from the plain standard emacs:
+
+- browser based solutions: M-x xwidget-webkit-browse-url and M-x eww
+- using gnus
+- using eshell
+- using org mode
+
+with some other packages
+
+- nnhackernew
+- hackernews
+- and probably more!
+
+
+
+[[!inline pages="internal(2023/info/hn-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/hn-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/hyperamp.md b/2023/talks/hyperamp.md
new file mode 100644
index 00000000..341743aa
--- /dev/null
+++ b/2023/talks/hyperamp.md
@@ -0,0 +1,121 @@
+[[!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>
+
+[[!template id="help"
+volunteer="sachac"
+summary="main talk does not have captions"
+tags="help_with_main_captions"
+message="""This talk does not have captions yet.
+Would you like to help [caption this talk](/captioning)?
+You may be able to start with these [autogenerated captions](/2023/captions/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--original.vtt)."""]]
+
+[[!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.
+
+
+# Discussion
+
+## Questions and answers
+
+- Q: Do buttons keep their metadata within the same file? E.g. would I
+ see it if I change to fundamental-mode?
+ - A: Summarizing: if it's an explicit button the metadata is in a
+ different file in the same directory, ".hypb". If it's an
+ implicit button, no, no metadata in the buffer; such buttons
+ have no metadata, Hyperbole creates all of the button properties
+ from the existing text in the buffer.
+- Q: Is it possible to link to a file by its ID (denote, Org ID, or
+ some similar unique string inside)?
+ - A:
+- Q: Re: the frames example: any thoughts or consideration for a
+ transient interface? Or, is this something one could already toggle?
+ - A: Hyperbole predates many of the newer features and packages
+ and Emacs but they integrate as they find them useful for
+ Hyperbole. They think the current minibuffer menu is pretty good
+ and don't have plans to have a transient menu
+- Q: Re: multi-file search functionality. Why not implementing it
+ within the existing framework of M-x grep or similar built-in
+ commands? Yet another search interface sounds a bit redundant.
+ - A:
+ - The point is: why not upstream search interface?
+- Q:
+ - A:
+- Q: Hyperbole's been around for a number of years now.  What
+ inspired you to write it back around the time of its birth?
+ - A: Born before the Web.  The Web was born in the middle of a
+ Hyperbole version's development.  Seemed like an explosion of
+ unstructured information was imminent, e.g. needing to deal with
+ many emails, non-database-structured info.  Needed a general
+ system that could work with other general systems like emails,
+ document production.  Was researching at a university on
+ "Personalized Information Environments" (PIEs).  PIEs was an
+ architecture with managers (like Hyperbole) and point tools that
+ would leverage the managers (e.g. an email reader as a point
+ tool to leverage the hypertext manager).  Wrote a Gmail-like
+ system years before Gmail (also similar to Rmail).  Allowed
+ buttons embedded in Rmail drawn from the subject of the email
+ message.  Rule-based processing was included, etc.
+- Are you familiar with embark package? I think there is some
+ overlapping functionality with Hyperbole. 
+ - A: Yes, recently started using it.  Have talked to oantolin
+ (Omar Antolin Camarena), the author.  Thinks that Embark and
+ Hyperbole are compatible, much like Hyperbole and Org are.  All
+ of these tools can be used together well.
+- Q: Wow. What you are describing now reminds me a lot about HyperCard
+ that I grew up on. Do you know if Hyperbole inspired Bill Atkinson
+ or if you were inspired by HyperCard? Or were there just a lot of
+ thought about hypercontextuality around that time?
+ - A: Bob's research on PIEs was seen by Apple and helped to
+ inspire their work on the Newton, which later also inspired the
+ iPhone, et al.
+- Q: Is it possible to only use one feature of hyperbole without the
+ others (i.e. using only the implicit/explicit buttons without
+ hycontrol, hyrolo...)? (without having to rewrite part of the code
+ in hyperbole) in order to be able to load a smaller hyperbole
+ (hyperbole is now quite large).
+- Q: Is there a link to the video for this talk?  I woke up too late for
+ it! It was done live, so the recording will be added after the
+ conference organizers have time.
+ - Should now be up at <https://emacsconf.org/2023/talks/hyperamp>
+
+- thanks bob i heard about hyperbole long time ago now it is time to revisit with this beautiful presentation
+- nice presentation, bob!
+- no metadata no problemo
+- Q: for anyone who uses hyperbole is there a way to delimit a button like you create text that is shaped like a button but you don't want it to be a button?
+- i'm intersted in hyperbole it's on my todo list of looking into for emacs stuff
+- Great talk thank you bob!
+- thanks for showing hyperbole, always been curious about it. makes me think there's an overlap with ffap, hyperbole and even treesitter in a way
+- i'm going to look into hyperbole for sure now. it's been on my to do list
+- Bob has a long history of doing impressive work :)
+- I didn't know about rsw other packages, look at that <http://ftp.ntua.gr/mirror/python/workshops/1996-06/papers/h.pasanen/oobr4.html>
+
+
+[[!inline pages="internal(2023/info/hyperamp-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/hyperamp-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/hyperdrive.md b/2023/talks/hyperdrive.md
new file mode 100644
index 00000000..9c70a791
--- /dev/null
+++ b/2023/talks/hyperdrive.md
@@ -0,0 +1,194 @@
+[[!meta title="hyperdrive.el: Peer-to-peer filesystem in Emacs"]]
+[[!meta copyright="Copyright &copy; 2023 Joseph Turner and Protesilaos Stavrou"]]
+[[!inline pages="internal(2023/info/hyperdrive-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. --->
+
+
+# hyperdrive.el: Peer-to-peer filesystem in Emacs
+Joseph Turner and Protesilaos Stavrou, <https://ushin.org> xmpp:discuss@conference.ushin.org (XMPP MUC for USHIN discussion), <mailto:joseph@ushin.org>
+
+[[!inline pages="internal(2023/info/hyperdrive-before)" raw="yes"]]
+
+This talk explores [hyperdrive.el](https://ushin.org/hyperdrive/hyperdrive-manual.html), an Emacs interface to [hyperdrive](https://docs.holepunch.to/building-blocks/hyperdrive), a
+peer-to-peer shared filesystem.
+
+Peer-to-peer networks give you the freedom to choose your sources of
+information and to communicate directly with them. Emacs is a
+[freedom-respecting](https://www.gnu.org/philosophy/free-software-even-more-important.html) text editor/operating system that puts you in the
+driver's seat. By bringing these two worlds together, hyperdrive.el
+aims to inspire deliberation about digital communication freedom.
+
+Hyperdrives are peer-to-peer shared folders, well-suited for data that
+changes over time, like personal blogs. It complements Bittorrent and
+IPFS, which work best with unchanging data, like journal archives.
+
+Here's a scenario: Alice creates a new hyperdrive and adds some files.
+Her computer returns a public key URL that uniquely identifies the
+hyperdrive. Alice shares that URL with Bob, who can then download
+Alice's files directly from her computer. No third-party servers are
+required to route the connection.
+
+Data is distributed among peers; once Bob has loaded Alice's files,
+Carol can get them from Bob (or anyone else who has a copy) even when
+Alice is offline. Drives are mutable; when Alice adds/removes/changes
+files in the drive, Bob can refresh her drive on his machine to get
+the latest changes. Drives are versioned; anyone with the URL can
+"check out" prior versions of Alice's drive to see what her files used
+to look like.
+
+Currently supported features in hyperdrive.el include:
+
+- [directly edit hyperdrive files](https://ushin.org/hyperdrive/hyperdrive-manual.html#Write-to-a-hyperdrive)
+- [dired-like directory view](https://ushin.org/hyperdrive/hyperdrive-manual.html#Directory-view)
+- [org-mode link support](https://ushin.org/hyperdrive/hyperdrive-manual.html#Org-mode-links)
+- [version history navigation/diffing](https://ushin.org/hyperdrive/hyperdrive-manual.html#View-the-hyperdrive-version-history)
+- [built-in bookmark.el integration](https://ushin.org/hyperdrive/hyperdrive-manual.html#Bookmark-a-hyperdrive)
+- [local directory mirroring](https://ushin.org/hyperdrive/hyperdrive-manual.html#Mirror-a-whole-directory)
+- [audio/video streaming](https://ushin.org/hyperdrive/hyperdrive-manual.html#Stream-audio-and-video)
+
+Planned features include:
+
+- peer discovery (swarming)
+- diffing directories between versions
+
+Check out [the manual](https://ushin.org/hyperdrive/hyperdrive-manual.html#Installation) for installation instructions!
+
+You're welcome to join our public XMPP chat room!
+
+- xmpp:discuss@conference.ushin.org ([Join anonymously from your browser](https://anonymous.cheogram.com/discuss@conference.ushin.org))
+- #_bifrost_discuss_conference.ushin.org:aria-net.org (Matrix bridge)
+
+Bugs can be submitted to the [ushin issue tracker](https://todo.sr.ht/~ushin/ushin). Patches, comments or
+questions can be submitted to the [ushin public inbox](https://lists.sr.ht/~ushin/ushin).
+
+About the speaker:
+
+I'm Joseph Turner. I enjoy fiddle, Aikido, peer-to-peer networks,
+Emacs, and swimming in cold water. I work with [USHIN](https://ushin.org/), a tiny
+educational US nonprofit whose mission is to promote personal,
+community, and global health through free and open universal shared
+information for everybody. This year, we're focusing on the
+hyperdrive.el project, with the goal of bringing Emacs and
+peer-to-peer together.
+
+I am Protesilaos. Friends call me "Prot" and you are welcome to do the
+same. I have been an Emacs user for ~4 years. I use Emacs full-time for
+practically every aspect of my computing. I am the author and maintainer
+of several packages for Emacs and am enthusiastic about its potential
+for user freedom.
+
+# Discussion
+
+## Questions and answers
+
+- Q: It's not clear how hyperdrive (not hyperdrive.el) works. Do I
+ need to install something on my computer to use it? Can I use it
+ from my phone?
+ - A: Like the emacs transmission client connects with the
+ transmission-daemon, hyperdrive.el connects with the
+ hyper-gateway daemon.
+ - Accessing hyperdrives on mobile:
+ <https://github.com/AgregoreWeb/agregore-mobile>
+- Q: What lessons have you learned while developing hyperdrive.el?
+ - A:  Great support and guidance from talented folks like Adam,
+ Mauve, Jonas, Prot!!
+- Q: I use multiple computers and my partner also would like acess to
+ my notes. so 2 questions. How well would this work with using this
+ to editing my zettelkasten hyperdrive using multiple computers
+ - A: Hyperdrives are single-writer, so you'd be better off
+ linking between drives.  In the future, we plan to add support
+ for <https://github.com/nobiot/org-transclusion> to
+ hyperdrive.el.
+ - Q2: How well would it work if my and my partner worked on the
+ same hyperdrive zettelkasten
+ - A: If you linked between drives, it could work quite well!
+- Q: What would be a good way of getting Hyperdrives if you don't
+ want to install NPM and hava a binary. Could you compile it with
+ deno or the "rust or zig or go?" cli alternative tool? I would
+ prefer to download a single binary.
+ - A: Jonas has been using hyper-gateway installed with a `guix
+ shell` command. Thank you, Jonas!!!
+ - Quick gist:
+ <https://gist.github.com/tarsius/509e9c65c9df1bc243d77cd968d60daa>
+ - Q: <https://github.com/datrs/hypercore> rust hyperdrive?
+ - A: I'm not familiar with this rust port yet.
+- Q: If you had your druthers, what would make your work on
+ hyperdrive.el easier?
+ - A: User feedback!! Please try it out :)
+- Q:  Have you tried putting a git repo in hyperdrive? Does it work
+ well?
+ - A: If you use a bare repository, take care to gc and create pack
+ files before mirroring to the drive, and only publish periodic
+ updates, then that might be okay. (And make sure not to repack
+ old pack files.)
+- Q: Is data transferred between nodes in the clear or encrypted?
+ - A: Encrypted in transit.
+- Q: Is there a searchable catalogue of hyperdrives? 
+ - A: Not yet, but we have plans for a distributed "trust"
+ network that could be used with hyperdrive:
+ <https://git.sr.ht/~ushin/trust.el>
+- Q: Any plans for FUSE or posix semantics?
+ - A: Not yet. There was
+ <https://github.com/andrewosh/hyperdrive-fuse> , but it's not
+ maintained currently.
+- Q: Any plans for a TRAMP interface?
+ - A: Good idea!  A TRAMP interface may make it easier to offer
+ live hyperdrive filename completions.
+- Q: How does this comprare to syncthing?
+ - A: Syncthing is useful for sharing files among a small group of
+ trusted peers, like an F2F network
+ (<<https://en.wikipedia.org/wiki/Friend-to-friend>>). 
+ Hyperdrives are useful for publicly sharing a set of files which
+ you can updated going forward and which others can link to.
+- Q: If you edit a file on the hyperdrive, then edit the same file on
+ the local mirror. How is the conflict handled when you sync the
+ mirror again?
+ - A: If I understand correctly, you're asking about what happens
+ when you write to the same hyperdrive from multiple machines.
+ The short answer is, "Please don't do that." However, it
+ appears that the Holepunch team is making progress on
+ <https://docs.holepunch.to/building-blocks/autobase> for
+ "autohmatically rebasing" hyperdrive history, effectively
+ allowing for multi-writer hyperdrives.
+- Q: wouldn't user be able to collaborate asynchronously by viewing diffs on a serially "shared" file, in other words, a user would copy another peer's text file, edit and upload their changes, share the link to their updated file so that then others can see diffs and in that way co-create an evolving file?
+ - A: You could try this. Another idea that we have in the works is integration with <https://github.com/nobiot/org-transclusion>
+
+## Notes
+
+- damn, I never even knew about dired-jump (C-x C-j).  Main
+ differences with (C-x d) from the file are one fewer keystroke and
+ having the point on the file you came from.
+- Btw, hyperdrive looks like another one of those things that would be amazing if I collaborated with anyone using emacs
+- Also incidentally hyperdrive is amazing
+- I installed hyperdrive.el and tried to run it and immediately got: transient-setup: Symbol’s function definition is void: transient-prefix-object
+ - Need to upgrade transient.el
+ - Gah, you are right. I had an obsolete version just hanging out causing pain.
+ - Okay, I got hyperdrive.el working and it was super easy. hyper://fwsn55wnznts5mpkee16j89ja38nfz6zne4wijzap1z9ka4jsxio/Dird_a333f1_4884540.jpg
+- I think hyperdrive is a pretty easy way to share files. Easier than Dropbox. But maybe for delivery? I'm not sure.
+ - A: What do you mean by "delivery"?
+ - I was thinking of asset delivery. I write professionally, so I have things like PDFs and other documents to deliver. Sometimes I have big files to deliver to clients. Using something like hyperdrive would be cooler than Dropbox. ... Hmmmm, is there a hyperdrive web gateway?
+ - A: A good non-Emacs option is <https://github.com/AgregoreWeb/agregore-browser> Agregore is Chromium with built-in support for more protocols besides HTTP, like Hyperdrive, Bittorrent, IPFS, Gemini, and Gun. <https://github.com/RangerMauve/hyper-gateway> , the program that hyperdrive.el connects to as a client is, I think, exactly what you asking about. I don't know of a public HTTP gateway, but you could easily run hyper-gateway on a VPS.
+ - That would be fun. Then I could control the domain name so it would look cool and professional and like I was extra high-tech.
+ - A: hyper-gateway lets you serve multiple drives at various subdomains. For example, you could serve your primary drive at <https://reverik.tld>, and then folks could access, e.g., the USHIN drive at <https://aaj45d88g4eenu76rpmwzjiabsof1w8u6fufq6oogyhjk1ubygxy.reverik.tld>
+
+
+- Great work, everyone. Thank you.
+- Prot's presentations are so clear. Perfectly model pedagogy.
+- Just like his code: his .el buffers SQUEAK as you C-v through them.
+- Prot is indeed a model of paying attention to detail.
+- I have learned so much from his videos, and from his code.
+- Prot switching from vim/etc to Emacs seems to correspond to an inflexion point in the current Emacs renaissance does it not? Coincidence, or... I wonder what way the causal arrow goes :)
+ - I think the current "Emacs renaissance" probably dates back to around the time that package.el was developed and then when MELPA came online. momentum seems to have been building since then
+ - We must also consider Org-mode's inception as a key moment in recent Emacs history
+- My Emacs environment would be much poorer without Prot's contributions, that's for sure.
+- My hypothesis is that Diogenes himself made his way to Cyprus and spent the past immortal couple thousand years as a mountain hermit waiting to return to mortal life when the Emacs community needed him. Humor aside, there are a few key personalities---many of them here this weekend---who have been disproportionately catalytic to the community recently. Prot is certainly one. Thanks to all of you!
+
+
+
+[[!inline pages="internal(2023/info/hyperdrive-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/hyperdrive-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/koutline.md b/2023/talks/koutline.md
new file mode 100644
index 00000000..5091b4dc
--- /dev/null
+++ b/2023/talks/koutline.md
@@ -0,0 +1,70 @@
+[[!meta title="Using Koutline for stream of thought journaling"]]
+[[!meta copyright="Copyright &copy; 2023 Matthew Jorgensen (PlasmaStrike)"]]
+[[!inline pages="internal(2023/info/koutline-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. --->
+
+
+# Using Koutline for stream of thought journaling
+Matthew Jorgensen (PlasmaStrike) - <mailto:plasmastrike@voiddragon.me>
+
+[[!template id="help"
+summary="main talk does not have captions"
+tags="help_with_main_captions"
+message="""This talk does not have captions yet.
+Would you like to help [caption this talk](/captioning)?
+You may be able to start with these [autogenerated captions](/2023/captions/emacsconf-2023-koutline--using-koutline-for-stream-of-thought-journaling--matthew-jorgensen-plasmastrike--main.vtt)."""]]
+
+[[!inline pages="internal(2023/info/koutline-before)" raw="yes"]]
+
+I will talk about a nice journaling workflow I have developed using the
+Koutline, from the hyperbole package. I will showcase this workflow and
+describe what I like about Koutline and why I use it over other options
+like Org Mode and plain text.
+
+About the speaker:
+
+I have used Emacs for 10+ years and enjoyed some of the last
+EmacsConfs. To share back, I have decide to share a unique workflow I
+have developed, as well as challenging myself by learning how to make
+videos to learn some new skills along the way.
+
+# Discussion
+
+## Questions and answers
+
+- Q: extremely interesting point about loss of concentration, i think
+ with tools like that people who really work alot with text in an
+ abstract matter could have enormous benefits doing it without being
+ hypnotized by all the options, i have to rewatch the presentation
+ again to see nuances, i also would like to see it written somewhere
+ in a short conciese even maybe stream of conciousness mode. my
+ question is i hope you don't plan to stop the development of this
+ wonderful idea, thank you
+ - A: A lot of people think tools like this and emacs vim are all
+ about speed, However it is more about staying in flow state can
+ change the types of thoughts you get. That is the bigger part to
+ me.
+- Q:Do you tend to create outline structure while journalling, or
+ after you have captured thoughts? Do you change the structure a lot
+ while capturing it?
+ - A: Whatever feels good at the time, Saying my day went good for
+ reasons 1,2,3 is a natural ways of sharding my thoughts that
+ maps well into outlins. Plus editing them later is always an
+ option
+ - The easy keybings for child, same level and parent cell
+ makes it efficient enough for live journaling
+
+## Notes
+
+- Koutline file used in talk
+ <https://mega.nz/file/uQ9UTSiD#vy5ZnB-Xnea_C2l_LcgUSKOtvHoTrobSrjBcnbD4Xa0>
+- nice job plasmastrike
+
+
+[[!inline pages="internal(2023/info/koutline-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/koutline-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/llm.md b/2023/talks/llm.md
new file mode 100644
index 00000000..64966f28
--- /dev/null
+++ b/2023/talks/llm.md
@@ -0,0 +1,118 @@
+[[!meta title="LLM clients in Emacs, functionality and standardization"]]
+[[!meta copyright="Copyright &copy; 2023 Andrew Hyatt"]]
+[[!inline pages="internal(2023/info/llm-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. --->
+
+
+# LLM clients in Emacs, functionality and standardization
+Andrew Hyatt (he/him) - <ahyatt@gmail.com> - <https://urbanists.social/@ahyatt> - <http://github.com/ahyatt>
+
+[[!inline pages="internal(2023/info/llm-before)" raw="yes"]]
+
+As an already powerful way to handle a variety of textual tasks, Emacs
+seems unique well poised to take advantage of Large Language Models
+(LLMs). We'll go over what LLMs are and are used for, followed by listing
+the significant LLM client packages already for Emacs. That functionality
+that these packages provide can be broken down into the basic features that
+are provided through these packages. However, each package currently is
+managing things in an uncoordinated way. Each might support different LLM
+providers, or perhaps local LLMs. Those LLMs support different
+functionality. Some packages directly connect to the LLM APIs, others use
+popular non-Emacs packages for doing so. The LLMs themselves are evolving
+rapidly. There is both a need to have some standardization so users don't
+have to configure their API keys or other setup independently for each
+package, but also a risk that any standardization will be premature. We
+show what has been done in the area of standardization so far, and what
+should happen in the future.
+
+About the speaker:
+
+Andrew Hyatt has contributed the Emacs websocket package, the triples
+(making a triple-based DB library) and the ekg package (a tag-based
+note-taking application). He has been using various other LLM
+integrations, and ss part of extending ekg, he's been working on his own.
+# Discussion
+
+## Questions and answers
+
+- Q: What is your use case for Embedding? Mainly for searching? 
+ - A:
+ - I got you. It's kinda expand our memory capcity. 
+- Q: What do you think about "Embed Emacs manual" VS "GPTs  Emacs
+ manual?
+ - A: 
+ - yes GPTS actually how it's kind of embedding your document
+ into its memory and then using the logic that provided by
+ GPT-4 or other versions. I never tried that one but I'm
+ just wondering if you have ever tried the difference
+- Q: When deferring commit messages to an LLM, what (if anything) do
+ you find you have lost?
+ - A:
+- Q: Can you share your font settings in your emacs config? :) (Yeah,
+ those are some nice fonts for reading)
+ - A: I think it was Menlo, but I've sinced changed it (I'm
+ experimenting with Monaspace
+- Q: In terms of standardisation, do you see a need for a
+ medium-to-large scale effort needed?
+ - A:
+ - I mean, as a user case, the interface is quite simple
+ because we're just providing an API to a server. I'm not
+ sure what standardization we are really looking at. I mean,
+ it's more like the how we use those callback from the llm.
+- Q: What are your thoughts on the carbon footprint of LLM useage?
+ - A:
+- Q: LLMs are slow in responding. Do you think Emacs should provide
+ more async primitives to keep it responsive? E.g. url-retrieve is
+ quite bad at building API clients with it.
+ - A:
+ - Gptel.el is async. And very good at tracking the point. 
+- Q: Speaking of which, anyone trained/fined-tuned/prompted a model
+ with their Org data yet and applied it to interesting use cases
+ (planning/scheduling, etc) and care to comment?
+ - A:
+ - I use GPTS doing weekly review. I'm not purely rely on it.
+ It's help me to find something I never thought about and I
+ just using as alternateive way to do the reviewing.  I find
+ it's kind of interesting to do so.
+
+### Notes and discussion
+
+- gptel is another package doing a good job is flexible configuration and choice over LLM/API
+- I came across this adapter to run multiple LLM's, apache 2.0 license too! https://github.com/predibase/lorax
+- It will turn out the escape-hatch for AGI will be someone's integration of LLMs into their Emacs and enabling M-x control.
+- i don't know what question to ask but i found presentation extremely useful thank you
+- I think we are close to getting semantic search down for our own files
+ - yeah, khoj uses embeddings to search Org, I think
+ - I tried it a couple of times, latest about a month ago. The search was quite bad unfortunately
+ - did you try the GPT version or just the PyTorch version?
+ - just the local ones. For GPT I used a couple of other packages to embed in OpenAI APIs. But I am too shy to send all my notes :D
+ - Same for me. But I really suspect that GPT will be way better. They now also support LLama, which is hopeful
+ - I keep meaning to revisit the idea of the Remembrance Agent and see if it can be updated for these times (and maybe local HuggingFace embeddings)
+- I think Andrew is right that Emacs is uniquely positioned, being a unified integrated interface with good universal abstractions (buffers, text manipulation, etc), and across all uses cases and notably one's Org data. Should be interesting...!
+- Speaking of which, anyone trained/fined-tuned/prompted a model with their Org data yet and applied it to interesting use cases (planning/scheduling, etc) and care to comment?
+- The ubiquitous integration of LLMs (multi-modal) for anything and everything in/across Emacs and Org is both 1) exciting, 2) scary.
+- I could definitely use semantic search across all of my stored notes. Can't remember what words I used to capture things.
+- Indeed. A "working group" / "birds of a feather" type of thing around the potential usages and integration of LLMs and other models into Emacs and Org-mode would be interesting, especially as this is what pulls people into other platforms these days.
+- To that end, Andrew is right that we'll want to abstract it into the right abstractions and interfaces. And not just LLMs by vendor/models, but what comes after LLMs/GPTs in terms of approach.
+- I lean toward thinking that LLMs may have some value but to me a potentially wrong result is worse than no result
+ - I think it would depend on the use case. A quasi-instant first approximation that can readily be fixed/tweaked can be quite useful in some contexts.
+- not to mention the "summarization" use cases (for papers, and even across papers I've found, like a summarization across abstracts/contents of a multiplicity of papers and publications around a topic or in a field - weeks of grunt work saved, not to mention of procrastination avoided)
+ - IMHO summarization is exactly where LLMs can't be useful because they can't be trusted to be accurate
+- <https://dindi.garjola.net/ai-assistants.html>; A friend wrote this <https://www.jordiinglada.net/sblog/llm.html>; < https://blogs.microsoft.com/on-the-issues/2023/09/07/copilot-copyright-commitment-ai-legal-concerns/>
+- I have a feeling this is one of the 'em "if you can't beat them join them" scenario. I don't see that ending with a bit global rollback due to such issues anytime soon...
+- (discussion about LLMs, copyright, privacy)
+- I spent more time than I was hoping to setting up some custom Marginalia(s?) the other day, notably for cases where the "category" is dynamic, the annotation/affixation function varies, the candidates are an alist of key-value pairs and not just directly the value, and many little specificities like that. Idem for org-ql many moons back, org-agenda, etc. That sort of workflow always involves the same things: learning/reading, examples, trials, etc. I wonder if LLMs could be integrated at various points in that recurring exercise, to take just a sample case.
+- that's yet another great use case for LLMs : externalizing one's thinking for its own sake, if only to hear back the echo of one's "voice", and do so with an infinitely patient quasi-omniscient second party.
+ - oooh, might be a good one for blog post writing: generate some follow-up questions people might have
+ - Yeah, a "rubber duck" LLM could be very handy
+ - I'm sure there would be great demand for such a thing, to dry-run one's presentations (video or text) and generate anticipate questions and so on. Great take.
+ - I've seen some journaling prompts along those lines. I think it'll get even more interesting as the text-to-speech and speech-to-text parts get better. Considering how much people bonded with Eliza, might be interesting to see what people can do with a Socratic assistant...
+
+
+[[!inline pages="internal(2023/info/llm-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/llm-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/lspocaml.md b/2023/talks/lspocaml.md
new file mode 100644
index 00000000..7646c7b5
--- /dev/null
+++ b/2023/talks/lspocaml.md
@@ -0,0 +1,50 @@
+[[!meta title="Writing a Language Server In OCaml for Emacs, fun, and profit"]]
+[[!meta copyright="Copyright &copy; 2023 Austin Theriault"]]
+[[!inline pages="internal(2023/info/lspocaml-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. --->
+
+
+# Writing a Language Server In OCaml for Emacs, fun, and profit
+Austin Theriault (he/they) - last name prounounced tare -e -o, <mailto:austin@cutedogs.org>
+
+[[!inline pages="internal(2023/info/lspocaml-before)" raw="yes"]]
+
+Recently, while working at Semgrep, Inc. I wrote a language server for our
+SAST tool in OCaml:
+<https://github.com/returntocorp/semgrep/tree/develop/src/language_server>. I
+then added support for it to emacs
+<https://github.com/emacs-lsp/lsp-mode/blob/master/clients/lsp-semgrep.el>.
+In this talk I plan to go over what LSP is, why it's important, getting
+started writing a language server, and supporting a language server in
+Emacs.
+
+About the speaker:
+
+Austin Theriault is a software engineer at Semgrep, Inc. working on
+their SAST tool Semgrep. In this talk he will cover the Language
+Server Protocol, a way to provide language features to an editor, why
+it's important to the future of editors, and how someone might go
+about writing a server, and how to integrate it with Emacs.
+# Discussion
+
+## Questions and answers
+
+- Q:Why not write the LSP server in OCaml? I missed the reasoning to
+ switch to Rust/etc - performance?
+ - A: The "stack" (cross-compilation, libraries, etc.) being less
+ developed than for developing LSP servers in, e.g., TypeScript
+- Q: What are the corner cases, limitations, and other issues you
+ encountered in implementing an LSP server with client in Emacs, that
+ were surprising?
+ - A: Multiple, but performance being the big one. Caching
+ implementation. And then delivery/distribution (doing so
+ cross-platform given the OCaml tooling, etc.)
+
+
+[[!inline pages="internal(2023/info/lspocaml-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/lspocaml-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/matplotllm.md b/2023/talks/matplotllm.md
new file mode 100644
index 00000000..4117374b
--- /dev/null
+++ b/2023/talks/matplotllm.md
@@ -0,0 +1,73 @@
+[[!meta title="MatplotLLM, iterative natural language data visualization in org-babel"]]
+[[!meta copyright="Copyright &copy; 2023 Abhinav Tushar"]]
+[[!inline pages="internal(2023/info/matplotllm-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. --->
+
+
+# MatplotLLM, iterative natural language data visualization in org-babel
+Abhinav Tushar (he/him) - abhinav@lepisma.xyz, https://lepisma.xyz, @lepisma@mathstodon.xyz, <mailto:abhinav@lepisma.xyz>
+
+[[!inline pages="internal(2023/info/matplotllm-before)" raw="yes"]]
+
+Large Language Models (LLMs) have improved in capabilities to an extent
+where a lot of manual workflows can be automated by just providing
+natural language instructions.
+
+On such manual work is to create custom visualizations. I have found the
+process to be really tedious if you want to make something non-standard
+with common tools like matplotlib or d3. These frameworks provide low
+level abstractions that you can then use to make your own
+visualizations.
+
+Earlier to make a new custom visualization, I would open two windows in
+Emacs, one for code, other for the generated image. In this talk, I will
+show how a powerful LLM could lead to a much more natural interface
+where I only need to work with text instructions and feedback on the
+currently generated plot. The system isn't perfect, but it shows us how
+the future or such work could look like.
+
+The package is called MatplotLLM and lives here
+<https://github.com/lepisma/matplotllm>
+
+About the speaker:
+
+I am a Programmer and Machine Learning Engineer who has been in love
+with Emacs' extendability from the moment I pressed M-x. Since then, I
+have been doing as many things inside Emacs as I can. In this talk, I
+will cover a recent attempt at automating one of my workflows inside
+Emacs.
+
+# Discussion
+
+## Questions and answers
+
+- Q: What is the license of <https://github.com/lepisma/matplotllm>
+ project ? Sjo
+ - A: GPLv3 or later. Sorry, I didn't put this in the repository,
+ You can refer to
+ <https://github.com/lepisma/matplotllm/blob/main/matplotllm.el#L18C12-L29>
+ though.
+- Q: Sometimes LLMs hallucinate. Can we trust the graph that it
+ produces?
+ - A: Not always, but the chances of hallucinations impacting
+ 'generated code' that causes a harmful but not identifiable
+ hallucinations are a little lower. Usually hallucination in code
+ show up as very visible bug so you can always do a retry. But I
+ haven't done a thorough analysis here yet.
+- Q: What are your thoughts on the carbon footprint of LLM useage?
+ - (not the speaker): to add a bit more to power usage of LLMs, it is not inherent that the models must take many megawatts to train and run. work is happening and seems promising to decrease power usage
+## Notes
+
+- Repository link <https://github.com/lepisma/matplotllm> . A
+ connected blog post here
+ <https://lepisma.xyz/2023/08/20/matplotllm:-an-llm-assisted-data-visualization-framework/index.html>
+
+
+
+[[!inline pages="internal(2023/info/matplotllm-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/matplotllm-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/mentor.md b/2023/talks/mentor.md
new file mode 100644
index 00000000..21b53045
--- /dev/null
+++ b/2023/talks/mentor.md
@@ -0,0 +1,144 @@
+[[!meta title="Mentoring VS-Coders as an Emacsian (or How to show not tell people about the wonders of Emacs)"]]
+[[!meta copyright="Copyright &copy; 2023 Jeremy Friesen"]]
+[[!inline pages="internal(2023/info/mentor-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. --->
+
+
+# Mentoring VS-Coders as an Emacsian (or How to show not tell people about the wonders of Emacs)
+Jeremy Friesen (he/him) - Pronunciation: JERR-im-EE FREE-SEHN, https://takeonrules.com, <mailto:jeremy@jeremyfriesen.com>
+
+[[!inline pages="internal(2023/info/mentor-before)" raw="yes"]]
+
+[[!template id="help"
+volunteer=""
+summary="Q&A could be indexed with chapter markers"
+tags="help_with_chapter_markers"
+message="""The Q&A session for this talk does not have chapter markers yet.
+Would you like to help? See [[help_with_chapter_markers]] for more details. You can use the vidid="mentor-qanda" if adding the markers to this wiki page, or e-mail your chapter notes to <emacsconf-submit@gnu.org>."""]]
+
+<https://takeonrules.com/2023/12/03/mentoring-vs-coders-as-an-emacsian/>
+
+Join me as I share some anecdotes and approaches for mentoring other
+developers who use tools different from mine; all in service of
+furthering a shared understanding, sharpening my own toolkit, and
+hopefully helping others grow their capabilities.
+
+Most everyone I mentor has chosen VS Code as their editor; yet I don’t
+use VS Code. Our pairing and mentoring sessions are about me being
+curious about their habits and modes of operation. I use my journeyman
+knowledge of what Emacs can do to help these VS Coders navigate
+pathways towards sharpening their skills. I also learn a few editor
+tricks from them.
+
+I’ll talk about remote pairing sessions, one-on-one sessions, and
+larger show-and-tell efforts; each with the purpose of revealing
+potentially different approaches. The idea being that asking questions
+and showing alternate approaches can begin to illuminate previously
+unknown pathways.
+
+The underlying goal is to ignite in folks a desire to improve their
+understanding and usage of their preferred tools; and show
+alternatives that might peek further interest in learning and
+exploration.
+
+About the speaker:
+
+Jeremy Friesen is a long-time software developer but only recently an
+Emacs convert (as of May 2020). For most of his career he has been
+writing open source software for educational institutions such as
+universities, libraries, archives, and museums. He’s mentored several
+dozen developers at his places of employment as well as through
+volunteer efforts. He strives to meet people where they are, learn how
+they are looking to grow, then working with them to grow; often by
+nudging folks to practice and explore their tools.
+# Discussion
+
+## Questions and answers
+
+- Q: re: super-. -- which key do you bind to super? then where is
+ meta?
+ - A:mac: ctrl-meta-super---space---hyper-meta-ctrl (caps lock
+ as ctrl)
+- Q:Great talk; what's the package you use to make the Org slide?
+ - A: prot's logos, olivetti mode?  I have a minor mode that I
+ turned on: 
+ <https://github.com/jeremyf/dotemacs/blob/2c5d37c2d0cc3f0433bc4588352bd6bf5bd09460/emacs.d/jf-framing.el#L109-L123>
+- Q: If people do get interested in picking up Emacs because of what
+ they see you do, how do you recommend they get into it? 
+ - A: A lot of it comes down to the problems that they're trying
+ to solve. I worked in TextMate for a long time, then Sublime,
+ then Atom... I chose Spacemacs, and then I chose Doom, and then
+ I said, wait, start over, erase everything, start with the
+ tutorial. I said, I really want this functionality. Then I went
+ and figured out how to do it. Helping ask them, "What do you
+ really want to do?" Ex: okay to advise people to go back to
+ vim, develop ownership of their editor. **Understand the
+ problems they're experiencing,** which tends to be what we
+ should do in software development. Take the time to walk with
+ them on their journey to understand what's frustrating them.
+ Story about a mentee learning to ask questions earlier (not
+ focused on navigating editor).
+- Q: I've been using Emacs for about 30 years and I find it really
+ difficult to figure out how to help people get started with it. Uh
+ ... so I guess my question is the same as the green question right
+ above this.
+ - A: My wife a while ago talked about the idea of being in between
+ someone who's more informed and someone who's less informed.
+ Introducing someone who's new to Emacs might be too hard
+ because you're too much an expert. Pedagogy. Sharing what you
+ have where you're at will by nature move the entire queue of
+ people behind you, will help move them together forward. Not an
+ only one person thing, improving shared understanding.
+ - Zone of proximal development; just i + 1 - Lev Vygotsky
+ - It can be very challenging to unwind things. Muscle memory.
+ I know how to do it on a keyboard... We've internalized so
+ much. Being curious with them and close to them, trying to
+ diffuse questions and not ask overly leading questions... 
+ - What is the question that I can ask the group so that I can
+ ask the question? ex: not "Why do we suck at sharing
+ code?", but before that
+ - I'm also 30 years in (at least) and just recently picked up
+ JF's method of only giving away a little bit of the
+ functionality of emacs at a time.
+- Q:Have you encountered anyone that are being... "nagative" about
+ the fact that you're using Emacs? (Assuming that they just don't
+ know/have misconceptions about Emacs and nothing malicious.) If so,
+ how do you handle these kinds of people?
+ - A: Analogy with a pen: my goal is to write something, who cares
+ about what kind of pen I use?
+ - I want my text editor to flow with me.
+ - I don't need it to multi-thread-- it's just me on the
+ computer.
+ - "My goal is to be better at computering."
+- Q: I love the attitudes and worldview that infuses your blog posts
+ and your talks this weekend. Learn something every week: it's
+ CUMULATIVE. English class was the most important. What other advice
+ do you have, and how is it generalizable to those of us who are not
+ devs?
+ - A: fountain-mode (package for writing screenplays)
+ - Wonderful answers! Thanks so much!
+ - Broad curiosity (ex: background is liberal arts, very little
+ computer science classwork/theory; Lord of the Rings, poetry,
+ etc.)
+
+## Notes
+
+- Presenter blogs at <https://takeonrules.com>
+- such valuable work being described
+- I wonder if there is still reasons to use ag compared to ripgrep
+ - it can search compressed archives better, so I like using it on emacs sources
+ - <https://github.com/aswild/the_silver_searcher/commit/7b571a8a94d0e22a06e3313cb0d9672b416fb2c1>
+ - yeah indeed, ripgrep shells out and is five times slower than ag
+- Hyper modifier is tops. On normie keyboards, I like super, meta, space, meta, hyper. 100% do not regret switching to a split ergo mechanical QMK board.
+ - On my work Mac, caps is control, I don't have a super, and it's meta-space-meta-hyper. But I almost never use that, because the keyboard is deeply unpleasant to actually type on. The sole thing I like better about Emacs on macOS over Emacs on Linux is that it's a oneliner to set the Hyper modifier. Linux requires delving deep into the forbidden territory of xkb. <https://codeberg.org/ieure/xkbsucks> if you need a guide
+ - my mac setup is the same as him but reversed: command is control, option is meta (like him) and control is super cuz i use super all the time. and hyper, like him, is on the right of the keyboard.
+- (discussion about fountain pens)
+
+
+[[!inline pages="internal(2023/info/mentor-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/mentor-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/multi.md b/2023/talks/multi.md
new file mode 100644
index 00000000..63c41965
--- /dev/null
+++ b/2023/talks/multi.md
@@ -0,0 +1,29 @@
+[[!meta title="Emacs for the Indecisive/Multi-Talented"]]
+[[!meta copyright="Copyright &copy; 2023 Noah"]]
+[[!inline pages="internal(2023/info/multi-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. --->
+
+
+# Emacs for the Indecisive/Multi-Talented
+Noah (she/they)
+
+[[!inline pages="internal(2023/info/multi-before)" raw="yes"]]
+
+To the average person (or even programmer), Emacs seems like either just
+another basic text-editor, or this huge "bloated" piece of software, but
+behind peoples (rather wack) perception on Emacs, holds potential and power
+for EVERYONE, not just programmers. My talk discusses how I use GNU Emacs
+for my programming, school tasks and notes, lyric organization, team
+management, zine writing and formatting, and more! I will also discuss how
+Emacs is useful to non-programmers, how other people can use it/get into
+it, and practical uses for Emacs outside of programming.
+
+
+
+[[!inline pages="internal(2023/info/multi-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/multi-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/nabokov.md b/2023/talks/nabokov.md
new file mode 100644
index 00000000..b5b346fc
--- /dev/null
+++ b/2023/talks/nabokov.md
@@ -0,0 +1,125 @@
+[[!meta title="Why Nabokov would use Org-Mode if he were writing today"]]
+[[!meta copyright="Copyright &copy; 2023 Edmund Jorgensen"]]
+[[!inline pages="internal(2023/info/nabokov-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. --->
+
+
+# Why Nabokov would use Org-Mode if he were writing today
+Edmund Jorgensen (he/him) - <https://tomheon.com>, <mailto:ewj@inkwellandoften.com>
+
+[[!inline pages="internal(2023/info/nabokov-before)" raw="yes"]]
+
+I've written several novels in Emacs. One of them grew into a monster with a
+baker's dozen twisty, interconnected subplots.
+
+When I started to revise that novel, I had to use an outline to keep all the
+subplots straight, but I found it nearly impossible to keep that external
+outline consistent with the prose.
+
+Finally I landed on a workflow using org-mode to keep the outline and the
+prose together, which significantly reduced the burden of keeping the two
+consistent as I moved and modified sections. I also found a way to use tags
+and sparse views over them to enable quick read-throughs of subsets of the
+book for continuity checks (which I plan to demo).
+
+Later--long after finishing the book--I realized this process was essentially
+the Emacs update to the writing process that Nabokov used: he wrote on index
+cards that served as both prose and outline, so that he could move them around
+(which he did incessantly).
+
+There's something deeply beautiful about org-mode's refusal to treat structure
+and prose as different things in a piece of writing--something I think Nabokov
+would have appreciated, and something I definitely appreciate, because it
+saved my novel.
+
+About the speaker:
+
+I'm Edmund Jorgensen, a software engineer by day and a writer by night, using
+Emacs for both. When one of my novels threatened to collapse under the weight
+of its own subplots, org-mode's powerful blending of structure and prose
+rescued it. I'd like to show you how that worked, and how much of org-mode's
+power for writing comes from its similarity to Nabokov's famous
+index-card-based writing process.
+# Discussion
+
+## Notes
+
+- It looks like the Zettelkasten slipbox for nabokov
+- James Howell also like the idea using small slide to convey single
+ idea to the reader. In emacs, we have `narrow` function. Yes! I
+ use various narrow functions to present text with Emacs. (I use
+ narrow a bunch when editing, it really helps focus on a chapter or
+ scene)
+ - The funny thing about narrow functions, I mean the first time I
+ saw it in the manual, there is a warning to the new user.  That
+ would be afraid of this kind of functionality, and you have to
+ be careful, haha...
+ - I saw that warning too and avoided narrow for a long time as a
+ result!  But it's not really that bad...
+ - Exactly, I use narrow a lot, you know, every time I'm
+ working on any single type of writing or writing a code or
+ writing a piece of manuscript. It's really helped me to
+ narrow down my attention and to kind of release any other
+ thoughts that is not directly connected to the current
+ things I'm working on. And that really is an underestimated
+ functionality for the Emacs.
+- The most valuable thing that Org will bring to the writer is the
+ structure, how we can navigate between different structures of
+ thoughts.
+- The idea is using tag to narrow down a single person's timeline in
+ the whole context of stories. It's something very interesting.
+- ewj.io/emacs
+- 👏 I'll start writing my masterpiece tomorrow!
+- I need to use tags more, org-sparse-tree is handy
+
+
+## Questions and answers
+
+- Q: Does the index really matter here? I mean, his colleague is also
+ using some A4 paper, and do you think that the index card is the
+ most important thing here?
+ - A:
+ - portbablity win!
+- Q:How do you export the second level headings (scenes in this
+ example) without the heading itself, just the content? 
+ - A:3 ways for this: ox-ignore (it was visually annoying), dumb
+ awk script, pandoc filters in lua
+ - I would say the org-transclusion works very well for this
+ kind of demand.
+- Q: Slightly offtopic: where can we see your novels?
+ - A: there are on Amazon: two of them, and a book of short-stories
+ - Links:<https://www.amazon.com/World-Enough-Time-Edmund-Jorgensen/dp/0984749233>
+ - <https://www.amazon.com/Other-Copenhagens-Stories-Edmund-Jorgensen-ebook/dp/B00O4OQCBE>
+- Q: Have you looked at the Denote Signature features. The
+ hierarchical nature of luhman IDs and index cards work well with
+ Denote Signatures
+ - A:I haven't, but I will take a look!
+ - <https://protesilaos.com/emacs/denote#h:f9204f1f-fcee-49b1-8081-16a08a338099>
+ - The part that I like with signatures is they can be optional
+ with your zettelkasten as another way to use it.
+- Q: Do you have a workflow combining hand-written index cards and org
+ mode?
+ - A:
+ - Maybe just take a picture and OCR for your small index
+ cards, but at the end of the day you always have to go back
+ to your main Org files.
+ - Ooh, I have a workflow for using Google's OCR to grab
+ the text from my sketches (esp. the ID) so that I can
+ link to my sketches in Org with ID and completion -
+ sachac
+ - haha, nice to see different approach, I personally
+ didn't do that because I still most of my work is
+ on the computer so yeah in the future if i have lots
+ of handwriting notes in my working I will reconsider
+ Google solution
+- Q:
+ - A:
+
+
+[[!inline pages="internal(2023/info/nabokov-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/nabokov-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/one.md b/2023/talks/one.md
new file mode 100644
index 00000000..d41f0acf
--- /dev/null
+++ b/2023/talks/one.md
@@ -0,0 +1,173 @@
+[[!meta title="one.el: the static site generator for Emacs Lisp Programmers"]]
+[[!meta copyright="Copyright &copy; 2023 Tony Aldon"]]
+[[!inline pages="internal(2023/info/one-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. --->
+
+
+# one.el: the static site generator for Emacs Lisp Programmers
+Tony Aldon - <mailto:tony@tonyaldon.com>
+
+[[!inline pages="internal(2023/info/one-before)" raw="yes"]]
+
+Have you ever wanted to write a blog:
+
+- contained in a unique org file,
+- rendered with only one Emacs command,
+- that can be modified by writing Emacs Lisp code (and CSS too),
+- with "html templates" that are plain Emacs Lisp data,
+- with no config file,
+- and no dependencies on external static site generators?
+
+If so, you might be interested in one.el package.
+
+In this talk, we'll look at how to get started with one.el and write a
+a simple blog as an example.
+
+What kind of static sites can be produced with one.el? I don't know
+but you can get an idea by checking those 3 websites built with
+one.el:
+
+- <https://lnroom.live>
+- <https://tonyaldon.com>
+- <https://posts.tonyaldon.com>
+
+Below you can see the basics of a one.el website.
+
+In one.el, the following org file/buffer defines a website with 2
+pages that we build by calling `one-build` command while we are visiting
+it:
+
+ *** My website
+ :PROPERTIES:
+ :ONE: one-default-home
+ :CUSTOM_ID: /
+ :END:
+
+ Welcome to my website!
+
+ *** Blog post 1
+ :PROPERTIES:
+ :ONE: one-default
+ :CUSTOM_ID: /blog/page-1/
+ :END:
+
+ My first blog post!
+
+ The path ~/~ in the first ~CUSTOM_ID~ org property tells ~one.el~ that the
+ page "My website" is the home page. That page is rendered using
+ ~one-default-home~ render function, value of ~ONE~ org property of the
+ same headline.
+
+ The path ~/blog/page-1/~ in the second ~CUSTOM_ID~ org property tells
+ ~one.el~ that we want to render "Blog post 1" page in such a way
+ that when we serve our website locally at ~http://localhost:3000~ for
+ instance, that page is served at ~http://localhost:3000/blog/page-1/~.
+ How that page is rendered is determined by the value of ~ONE~ org
+ property of the same headline which is ~one-default~, a render
+ function.
+
+ As you might have noticed, a ~one.el~ website is an org file where the
+ pages are the headlines of level 1 with the org properties ~ONE~ and
+ ~CUSTOM_ID~ set. Nothing more!
+
+ ~ONE~ is the only org property added by ~one.el~. Its value (an Elisp
+ function which returns an HTML string) for a given page determines how
+ ~one.el~ renders that page.
+
+ The paths of pages are set using ~CUSTOM_ID~ org property.
+
+ That's it!
+
+ note: I wanted to have a blog written in org-mode that I can modify
+ only by evaluating some Emacs Lisp code. This is how one.el got
+ started. Down that path I found that the Org parser and exporter do an
+ amazing job, in fact 95 percent of the heavy work in one.el. I just
+ had to find a way to pass org data to render functions and write an
+ Emacs Lisp html generator package to be used by those render
+ functions. I'm having a good user experience so far and I hope its
+ design will fit your workflow.
+
+
+# Discussion
+
+## Notes
+
+- Also provides a demo of Jack package
+ (<https://github.com/tonyaldon/jack/>)
+- Custom function for rendering by interogating the page-tree
+ - Of use: grabbing metadata from the document/node
+- Easy menu and tab generation would also be great.
+
+- very cool indeed 👏
+- thx for the nice presentation
+- Yeah, definitely a fun project that solves a problem to keep more Emacs and less external services. Static web sites are the best. :-D
+- I agree. I currently use Hugo, but I think this looks great!
+- I really like that `jack-html` is a separate project, as that looks nifty.
+- jack-html feels like a hiccup for elisp, nice
+ - A very programatically solution!
+- I didn't watch the talk, but I use esxml to template pages that I generate from Org files: <https://codeberg.org/SystemCrafters/systemcrafters-site/src/commit/b9b33910e68c6a9321ee7dcd92015b8a29b260bd/publish.el#L176> - Lisp backquotes are the best templating language :)
+ - To be fair, pcase DSL is not easy to remember. [some discussion on IRC about pcase], recommendation of <http://newartisans.com/2016/01/pattern-matching-with-pcase/>
+ - I keep using elisp-demos with great success <https://github.com/xuchunyang/elisp-demos> - adds examples to Help buffer
+- This looks like a nice setup. My blog is still using org-page, which was abandoned years ago.
+- org-page still works though
+ - I know, I'm still using it. But it's finicky in a bunch of ways and I'd like a replacement static site generator. I don't really care if the code is elisp or not, as long as I can write in Org Mode and don't have to run Wordpress.
+ - we have a bunch now.. <https://github.com/novoid/lazyblorg> <https://ox-hugo.scripter.co/>
+
+## Questions and answers
+
+- Q: does the "one" part of one.el refers to one source file?
+- Does one.el support #+include: to add from other (org) files?
+- Q: What's the main motivation for this new package? I used to use
+ ox-hugo and use github action to build the blog.  (Curious as well,
+ as I use ox-hugo and have almost 1000 pages)
+ - A: Mapping from org-mode to Hugo added another system to
+ understand; wanted Emacs centric approach. 
+ (<https://one.tonyaldon.com/> has some rational)
+ - understand. For me, it's just org-mode, ox-hugo take care of
+ the rest. And I find it is easy for me. Maybe, I am not used it
+ so much. Full control definiitely requires your package.
+- Q: Is it possible to use #+include to add content from other files?
+ - A: Not included; the idea was to only have one file. It is
+ possible to code what you want in elisp.
+ - Perhaps org-transclusion would play with this?
+- Q: Can this generate a single site from different sources like
+ blog.org (for example.org/blog/), videos.org (for
+ example.org/videos/), contact.org (for example.org/contact/), etc?
+ - A: Refer to the previous question's answer
+- Q:Do you have pre-made templates already along with the one.el
+ package?
+ - A:Yes and no. There are quite a few constructs/templates in the
+ one.el code, you could perhaps use them to customize to get it
+ to do what you want.
+- Q: What additional features are there that you would like to add to
+ one.el in the future?
+ - A: A full text search
+ - (Comment not from presenter:) I've used Lunrjs which is a JS
+ package that keeps all things local; but your site generator
+ does need to kick out a JSON representation of the content (e.g.
+ path, text, tags/keywords).  I've been considering
+ <http://elasticlunr.com/>
+- Q:Can you create navbars on a website and fancy things like
+ carousels (pictures rolling/sliding from one to another) using
+ one.el?
+ - A:Sidebars, navbars are already part of the package. one.el also
+ generates responsive. pages. pages argument used recursively can
+ manage/mimic the carousel effect.
+- Q: Would there be an automated way to convert an existing HTML
+ document into jack-html form?
+ - A:
+ - One challenge is that HTML documents do not need to be
+ "precise" (you don't need to close tags).  So finding a
+ tree-parser for HTML (perhaps treesitter?) to build the
+ conceptual tree.
+- Q: Does this or you use any other Emacs Packages for your
+ package/website ex org-publish.
+
+
+[[!inline pages="internal(2023/info/one-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/one-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/overlay.md b/2023/talks/overlay.md
new file mode 100644
index 00000000..c8c6c4fe
--- /dev/null
+++ b/2023/talks/overlay.md
@@ -0,0 +1,111 @@
+[[!meta title="Improving compiler diagnostics with Overlays"]]
+[[!meta copyright="Copyright &copy; 2023 Jeff Trull"]]
+[[!inline pages="internal(2023/info/overlay-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. --->
+
+
+# Improving compiler diagnostics with Overlays
+Jeff Trull (he/him) - Pronunciation: rhymes with "hull" and "dull", IRC: jaafar, @jaafar@hachyderm.io
+
+[[!inline pages="internal(2023/info/overlay-before)" raw="yes"]]
+
+Overlays are a feature of Emacs that allow changing the
+appearance of text while preserving its contents. They play a prominent
+role in packages like org-mode, which uses them to hide or reveal custom
+properties and display inline images, and magit, which uses them to
+highlight diffs.
+
+The presenter will give a introduction to the features of overlays,
+demonstrating how to:
+
+- Create and use overlays in Emacs Lisp code
+- Query locations in an existing buffer to find out what overlays are
+present.
+
+He will then demonstrate a new compilation minor mode for improving the
+readability of error messages, using overlays to flexibly reformat portions
+of the compiler output under user control.
+
+
+# Discussion
+
+## Questions and answers
+
+- Q: How did you draw the underbraces and overbraces?
+ - A: TikZ, the greatest drawing tool ever :) See
+ <https://tex.stackexchange.com/a/128096/105203>. I went to some
+ effort to match up the colors, font, and background to Emacs. I
+ got quite close, I think.
+- Q: You've got a nice sounding keyboard. What kind is it?
+ - A: Sorry about that. It's an ErgoDox EZ
+- Q: Do you find that the "invasive" reformatting interferes with
+ navigation?
+ - A: A bit. You can't move your cursor into the not-real buffer
+ text (indentation). But the original text is still visible, so
+ that works fine.
+- Q: Can you show us the keybindings of your minor map for editing
+ overlays?
+ - A: It's C-c - and C-c + but you can change it.
+- Q:Your examples were with c++, have you experimented with any other
+ languages? Oh, thanks for the interesting talk by the way!
+ - A: Other languages don't have the same unpleasant behavior :) I
+ say this as a long time fan of C++. But it should be possible!
+- Q: Would it be possible to include overlays in the source file
+ itself. There are some language modes (Rust, for instance) that do
+ this.
+ - A: [someone else] Sounds like enriched-mode. [Jeff] I'm not
+ sure what this question means; it's the error messages that are
+ the big issue
+- Q: What are your plans for tspew in the future?
+ - A: Better future-proofing and more options for formatting
+- Q: What is your repository link <https://github.com/jefftrull> ?
+ - A: <https://github.com/jefftrull/tspew>
+- Q: What IDEs do C++ programmers use?  If not emacs?  How do they deal
+with these error messages?
+ - A: VSCode is quite popular, as well as CLion and also XCode. I think they simply display the error messages as is.
+- Q: Have you tried to use treesitter to parse the output?
+ - A: I think it wants to parse an entire buffer. If I could write a
+ grammar for a portion of the text and point it at that, that would be
+ great. I could have maybe made a tsit grammar if I could have applied it to a small bit of the output
+ - (not the speaker): ISTM that since you set up the syntax tables to recognize <> as parens/whatever that Emacs should be able to parse the effective lists as sexps, but I'm not an expert on that
+ - (not the speaker) ye it's true, often you want to select what the root source node type would be an AFAIK you cannot change it
+
+- Q: "org-mode, which uses them to hide or reveal custom properties" I thought they used buffer-invisibility-spec or something like that
+ - A: yes that's part of it
+ - do you know of they also use text properties. org code is usually pretty messy, so I don't know much about it
+ - A: org has been moving toward text properties but I think there is a flag that will use overlays instead (!). There's some controversy about performance that I will touch on in a bit
+ - Interesting, does that initiative predate the recent performance improvements by Stefan Monnier?
+ - A: I think so. They were known to be a problem for some time, but then that happened?
+- Q: Did you use, e.g. syntax-ppss to parse the depth using the syntax table?
+ - A: No I tried to though... maybe there's a better way
+
+## Notes and discussion
+
+- The org file containing the presentation is here:
+ <https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull.org>
+- Tony Aldon's Reddit post on visibility
+ <https://www.reddit.com/r/emacs/comments/t1r2wq/have_you_ever_wondered_how_orgmode_toggles_the/>
+- Overlay performance (maybe) fixed
+ <https://www.reddit.com/r/emacs/comments/yg4mvt/the_noverlay_branch_was_merged_to_master_this/>
+- I think I might need to change subed-waveform to use text properties instead of overlays or fix something else that I'm doing incorrectly, since the overlays get left behind when I kill text
+ - A: yeah you have to track them yourself
+- Can you put the overlay object in a text property to track it?
+ - A: I don't think you would mix properties and overlays in that manner. There are overlay search functions; people typically add a property that identifies them as theirs. or you can store references in a list or something
+- A: One of my reasons for doing this was frustration and people talking about how great VSCode was and I *knew* that Emacs was a good match for certain kinds of problems people don't even try to solve in IDEs
+- A: I actually edited this down I know it's still a lot of detail :)
+- This is really good!
+- Very impressive! And well explained. Thank you.
+- yeah try doing that in VSCode! yeah.
+- this is slick!
+- i'm not a fan of ligatures, but imho :: just begs for it
+ - Same, I want to see the actual thing that'll be given to the compiler/interpreter/whatever.
+- That was great, showing how relatively easy it is to extend Emacs with features like that.
+- From the speaker: yantar92: your help was much appreciated in the weeks I spent putting this together :)
+
+[[!inline pages="internal(2023/info/overlay-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/overlay-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/parallel.md b/2023/talks/parallel.md
new file mode 100644
index 00000000..8806e7c2
--- /dev/null
+++ b/2023/talks/parallel.md
@@ -0,0 +1,88 @@
+[[!meta title="Parallel Text Replacement"]]
+[[!meta copyright="Copyright &copy; 2023 Lovro, Valentino Picotti"]]
+[[!inline pages="internal(2023/info/parallel-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. --->
+
+
+# Parallel Text Replacement
+Lovro, Valentino Picotti - IRC: hokomo, <mailto:hokomo@disroot.org>
+
+[[!inline pages="internal(2023/info/parallel-before)" raw="yes"]]
+
+We present our Emacs package for performing parallel text
+replacement.
+
+"Parallel" in this context does not refer to improving
+efficiency through parallelism, but to the concept of performing
+more than one text replacement without them interfering with
+each other. This is in line with the usage of the term in the
+Lisp community when contrasting the behaviors of LET and LET*,
+SETQ and PSETQ, etc. (e.g.
+<http://www.lispworks.com/documentation/lw60/CLHS/Body/s_let_l.htm>).
+
+We will present the package's features and its integration with
+Emacs' query-replace system, a comparison with previous
+solutions, and a few notes on our implementation. We will
+describe some common use-cases and showcase how the package is
+used.
+
+The package is currently not yet published in a package archive,
+but the code is already publicly available at
+<https://github.com/hokomo/query-replace-parallel>. The name
+"query-replace-parallel" is not yet final and we are thinking of
+alternatives. Our current best candidate is "replace-parallel"
+(similar to the built-in "replace.el"), but suggestions are
+welcome.
+
+
+# Discussion
+
+## Questions and answers
+
+- Q: This looks great, and was very well-presented.  Do you have plans
+ to upstream this functionality into Emacs?
+ - A: Would require some refactoring upstream, so not suitable for
+ upstreaming as-is.
+- Q: Did you use pair-programming while developing it, or did you work
+ independently, alternating and reviewing?
+ - A: Yes, we did! I was at the keyboard, Valentino was at the
+ whiteboard, and we kept bouncing ideas back and forth, trying
+ out prototypes, coming up with various tests, checking the edge
+ cases, etc.
+- Q: What is your background in programming? Was it difficult to
+ implement following the same API and architecture as what is already
+ in Emacs?
+ - A: Both Valentino and I are PhD students in computer science,
+ but a PhD or similar is definitely not a requirement. It wasn't
+ too difficult because we could reuse the interactive
+ functionality from query-replace's internals. Figuring out what
+ and how to reuse is what took a bit of creativity, but a lot of
+ the necessary knowledge for that came from just reading and
+ poking around Emacs' replace.el. Don't be afraid to go and
+ read the source!
+- Q: What did you learn about Emacs programming or programming in
+ general while working on this project?
+ - A: That Emacs is so flexible that you can even advise its
+ `message` function. Similarly, being able to prototype
+ functionality so quickly and immediately integrate it into the
+ rest of Emacs is so fun and so satisfying!
+
+## Notes
+
+- One usecase could be character names in a novel manuscript, if one
+ has named a character and want to now rename it to some other
+ character names or swap it with another one.
+- Nice, I was wondering if it utilized `rx`
+- package installed, ready to use!
+- excellent talk, and also such a cool package
+- great talk, very clever concept
+- that SRE "paper" you linked to is interesting
+- just saw the "Parallel Text Replacement" talk - 👏 great talk!
+
+[[!inline pages="internal(2023/info/parallel-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/parallel-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/poltys.md b/2023/talks/poltys.md
new file mode 100644
index 00000000..4cd13b92
--- /dev/null
+++ b/2023/talks/poltys.md
@@ -0,0 +1,100 @@
+[[!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>
+
+[[!template id="help"
+summary="main talk does not have captions"
+tags="help_with_main_captions"
+message="""This talk does not have captions yet.
+Would you like to help [caption this talk](/captioning)?
+You may be able to start with these [autogenerated captions](/2023/captions/emacsconf-2023-poltys--the-browser-in-a-buffer--michael-bauer--original.vtt)."""]]
+
+[[!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.
+
+About the speaker:
+
+Michael Bauer is from Germany. He does most of his computing from
+inside Emacs and works currently on an evolved lisp dialect.
+# Discussion
+
+## Questions and answers
+
+- Q: Have you seen the Nyxt browser. It is the Emacs of Web browsers
+ and would probably be easier to work with as it matches a lot closer
+ to Emacs. I think you can tag browser tabs for example. 
+ - A: Yes, but the author did not look into it yet. It could
+ probably be made to work as well.
+- Q:Nice ideas.  Needs a better name though to attract people to it. 
+ What about browsys or webnote?
+ - A: Ideas for better naming are appreciated, but the suggestions
+ did not convince the author.
+- Q: Can you use browser extensions with this, example ublock
+ sponserblock darkreader These are needed for browsing others peoples
+ web sites
+ - A: The presented software is a browser extension (plus elisp
+ code to interact with it), so it works in addition to other
+ already installed browser extensions.
+- Q: Are there any inherent security issues with this (bi-directional
+ synchronization sounds like a possible issue) ? How are they solved?
+ Can a malicious website impact Emacs or the host system?
+ - A: The overall surface is limited, so there should be little a
+ website can do. One thing that helped with this is the web
+ extensions API being fine-grained in terms of things that can be
+ done with the browser.
+- Q:When do you think you'll make a first release?  I hate needing
+ browser extensions and would love to control my tabs in Emacs.
+ - A: The code is there, may be, in the next week, the presenter
+ would upload the code out there.
+ - I am not the presenter, but you can configure emacs to open
+ windows instead of tabs and control them with EXWMNeed
+ cross-window system support (GNU/Linux, MacOS and Windows).
+- Q: What happened to the Sway compositor you showed last year? I am
+ an EXWM user and need a Sway equivalent!!! Please !!! Is the code
+ available?
+ - A: <http://perma-curious.eu/repo-ewx/>
+- Q: Does the browser have to be firefox for syncing or is there a
+ choice there?
+ - A: It should be possible to use this with other browsers due to
+ the web extensions API working for both Chromium and Firefox,
+ but it needs testing and Chromium may switch to an incompatible
+ API in the future.
+
+## Notes
+
+- It is too small, please zoom up *4, for all the impaired, or normal
+ good old user of emacs...
+- The highlighting copying could be done with xclip or wl-clipboard if
+ you don't mind a dependency outside Emacs.
+
+
+[[!inline pages="internal(2023/info/poltys-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/poltys-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/ref.md b/2023/talks/ref.md
new file mode 100644
index 00000000..9f6b724e
--- /dev/null
+++ b/2023/talks/ref.md
@@ -0,0 +1,64 @@
+[[!meta title="Org-Mode Workflow: Informal Reference Tracking"]]
+[[!meta copyright="Copyright &copy; 2023 Christopher Howard"]]
+[[!inline pages="internal(2023/info/ref-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. --->
+
+# Org-Mode Workflow: Informal Reference Tracking
+Christopher Howard (he/him) - IRC: lispmacs, <mailto:christopher@librehacker.com>
+
+[[!inline pages="internal(2023/info/ref-before)" raw="yes"]]
+
+This talk describes my Emacs workflow for keep track of references to papers,
+book, and Web articles, and other things I might want to look-up or quote
+later. I go over a few code snippets and some basic org commands which make
+the process quick, easy, and practical for my needs.
+
+This talk is targetted for the beginner to intermediate Emacs user, or those
+who do not have much experience with org-mode. Also, those who do a lot of
+advanced technical writing should look instead to Vidianos Giannitsis' talk
+[Writing and organizing literature
+notes for scientific writing](https://emacsconf.org/2022/talks/science/) where they will find better tools for reference
+tracking and scraping.
+
+About the speaker:
+
+Christopher Howard is an electronics technician who studies various scholarly
+and scientific subjects in his (very limited) spare time. He needed a quick
+and easy system for keeping track of various references to books, Web
+articles, and so forth. He found that a few code snippets and some basic tools
+from Org-Mode have worked well for him, while requiring a minimal setup and
+learning curve. He hopes that sharing his workflow will be useful to some
+others with similar needs.
+
+# Discussion
+
+- Q: Is the emacs config for the system in the last talk published?
+- example code: <https://bpa.st/UXBQ>
+- I didn't mention it in the video, but I like also to use
+ org-mode's attach feature to sometimes attach documents to the
+ references.
+- Try this for inserting link:
+ <https://xenodium.com/emacs-dwim-do-what-i-mean/>
+- I use (ivy-bibtex &optional ARG LOCAL-BIB) but never hacking tag
+ system, this something I can improve.
+- The current talk shows that most of the time, the already included tools in Emacs allow for custom workflows without needing to use external packages (org-roam, etc.). Of course, the latter are great for richer workflows, but core Emacs is often enough.
+- do you know about the org-insert-link command? saves you from having to type brackets :)
+- You'll likely find helm-org-rifle useful for searching, it handles, e.g. tag inheritance and so forth
+- I used to use a similar approach: https://dindi.garjola.net/zettelkustom.html but I finally moved to protesilaos denote
+- if you search properties infrequently, you can take advantage of quite specific literal pattern ":name" (starting with ":") using swiper or its help equivalent. You should have limited no of candidates if you know prop name. This way you do not need to remember dedicated command for searching org properties :).
+- See also org-ql-find for property searches, e.g. "property:NAME=FOO" syntax
+ - that's honestly so verbose that I never managed to use it
+ - Well you could alias "property" to "p" and then type "p:foo" or "p:foo=bar". or you could just search for "foo bar" as plain text regardless of their being properties
+ - If you frequently search for certain properties you could use org-ql-defpred to define a predicate that matches them
+ - I personally find postfix notation easier in practice - aka search-string:tag. it is very practical - I first think of a term, see the results, and then expand/narrow the scope of the search term as necessary. I find it more natural than M-b + adding predicate: <https://0x0.st/HxVC.txt> <https://github.com/yantar92/emacs-config/blob/master/config.org#trying-org-ql> beware that I use org-ql fork. So, 100% untested on the released version
+- Great talk.
+- Great talk, clap clap clap
+
+
+[[!inline pages="internal(2023/info/ref-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/ref-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/repl.md b/2023/talks/repl.md
new file mode 100644
index 00000000..bd0c01f9
--- /dev/null
+++ b/2023/talks/repl.md
@@ -0,0 +1,116 @@
+[[!meta title="REPLs in strange places: Lua, LaTeX, LPeg, LPegRex, TikZ"]]
+[[!meta copyright="Copyright &copy; 2023 Eduardo Ochs"]]
+[[!inline pages="internal(2023/info/repl-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. --->
+
+
+# REPLs in strange places: Lua, LaTeX, LPeg, LPegRex, TikZ
+Eduardo Ochs - IRC: edrx, edrx <http://anggtwu.net/>, <mailto:eduardoochs@gmail.com>
+
+[[!inline pages="internal(2023/info/repl-before)" raw="yes"]]
+
+Many years ago, when I started programming, my dream was to write
+games. I failed miserably in that, but I became fascinated by
+languages, and I discovered Forth - that was perfect for writing
+languages whose syntax was as simple as possible. Then I switched to
+GNU/Linux and I had a series of favorite languages; at some point I
+discovered Lua, that became not only my favorite language but also my
+favorite tool for implementing other languages. One of the main
+libraries of Lua is something called LPeg, that lets "people"
+implement complex parsers in just a few lines of code using PEGs -
+Parsing Expression Grammars.
+
+I've put the "people" in the last paragraph between quotes because for
+many years I wasn't included in the "people who can implement complex
+parsers with LPeg"&#x2026; lots of things in LPeg didn't make sense to me,
+and I couldn't visualize how it worked. Something was missing - some
+diagrams, maybe?
+
+The main tool for drawing diagrams in LaTeX is something called TikZ,
+that is HUGE - its manual has over 1000 pages. TikZ includes lots of
+libraries and extensions, and each one of these libraries and
+extensions extends TikZ's core language with some extra constructs.
+
+I don't know anyone - except for a handful of experts - who knows what
+is the "core language" of Tikz, that lies, or that should lie, below
+all these extensions&#x2026; all of my friends who use TikZ are just
+"users" of TikZ - they've learned some parts of TikZ by starting with
+exemples, and by then modifying these examples mostly by trial and
+error. In particular, no one among my friends knows how styles in TikZ
+really work; styles are implemented using "keys", that are hard to
+inspect from a running TeX - see [1] - and I found the chapter on "key
+management" in the manual very hard to understand. It feels as if
+something is missing from it&#x2026; some diagrams, maybe?
+
+In my day job I am a mathematician. I work in a federal university in
+Brazil, and besides teaching I do some research - mostly in areas in
+which the papers and theses have lots of diagrams, of many different
+kinds, and in which people use zillions of different programs to draw
+their diagrams. Every time that I see those diagrams I think "wow, I
+<span class="underline">need</span> to learn how to draw diagrams like that!", but until a few
+months ago this seemed to be impossible, or very hard, or very
+painful&#x2026;
+
+This presentation will be about a point in which all these ideas
+intersect. I am the author of an Emacs package called eev, that
+encourages using REPLs in a certain way; Lua can be used in several
+different styles, and if we use it in a certain way that most people
+hate - with lots of globals, and with an implementation of OO that
+makes everything inspectable and modifiable - then it becomes very
+REPL-friendly; there is an extension of LPeg called LPegRex ([2],
+[3]), that I found promising but hard to use, so I rewrote some parts
+of it to make them more REPL-friendly, and to make it print its ASTs
+in 2D ASCII art. The core of my presentation will be about how I am
+using REPLs written in Lua to write grammars, parsers, and tools to
+generate many kinds of diagrams, and how I am using these diagrams to
+document both my own code and other people's programs - the parts of
+them in which some diagrams seem to be missing. My hope is that people
+will find these ideas easy to port to other languages besides Lua, to
+other tools for generating diagrams besides LaTeX - SVG, maybe? - and
+to other ways to use REPLs in Emacs besides eev. Some ideas in this
+presentation were inspired by the blog post [4].
+
+[1]
+<https://tex.stackexchange.com/questions/663740/alternative-to-edef-c-pgfkeys-a>
+[2] <https://github.com/edubart/lpegrex>
+[3] <https://github.com/edubart/lpegrex/blob/main/parsers/lua.lua>
+[4] <https://ianthehenry.com/posts/my-kind-of-repl/>
+
+About the speaker:
+
+I am this person here: http://anggtwu.net/eepitch.html
+
+# Discussion
+
+## Questions and answers
+
+- Q:if you had to summarize what you where trying to say in 3
+ sentences or less, what would you say?
+ - A: Ouch! I would answer with a link... this one:
+ <http://anggtwu.net/eev-for-longtime-emacs-users.html#summarize-in-one-paragraph>
+
+## Notes
+
+- Magic is good as long as you have the option to look behind the
+ scenes when you want! :-)  Imagine if all code was assembly
+ language.
+- hi edrx! =) great talk
+
+- A :I didn't create a git repo with the code yet because I don't have any idea if anyone would want to test it today... everything is made to be used with this interface, <http://anggtwu.net/eepitch.html>
+
+- Q: is the code available as a tarball perhaps? or not at all yet?
+ - as I know very few people who use eev - and who already use that interface - I wanted to ask them if they'd be ok with installing some files in ~/LUA/ and ~/LATEX/, or if they really needed to use other directories, or what... the things that are to be installed in ~/LUA/ are in a tarball, but a few of the files require some files in ~/LATEX/. I'm preparing the LATEX/ directory of the tarball now and I'll announce it on the eev mailing list soon
+- Dealing with diagrams with Emacs is tricky. Having documented examples of that is nice and would be helpful
+ - A: I _guess_ that the ideas that I presented would be easy to adapt to SVG diagrams, and to some packages that use Javascript to generate their diagram... but I don't want to write the code for SVG and for js diagrams all by myself. what do you use - or what have tried to use - to generate diagrams?
+ - i've personally tried using a bunch of different tools but never found anything that fully clicked for me or was remotely pleasant to use. i guess 'draw.io' is decent, but something in Emacs would be awesome
+ - do you think that musa's way to making emacs run javascript could work for draw.io?
+ - hmm no clue tbh, worth trying to ask him. but i must say i'm not super enthused about embedding js in emacs
+ - having tried most things (from exwm to org-protocol, to devtools debug protocol, and what not), I've converged on small personal extension that loads across browsers, locally, and stay connected with Emacs via the very useful emacs-websocket package, to interact both with the internal state of the browser (windows, tabs, etc.) and intra-page
+
+[[!inline pages="internal(2023/info/repl-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/repl-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/sat-close.md b/2023/talks/sat-close.md
new file mode 100644
index 00000000..78ffa525
--- /dev/null
+++ b/2023/talks/sat-close.md
@@ -0,0 +1,21 @@
+[[!meta title="Saturday closing remarks"]]
+[[!meta copyright="Copyright &copy; 2023 ${speakers}"]]
+[[!inline pages="internal(2023/info/sat-close-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. --->
+
+
+# Saturday closing remarks
+
+
+[[!inline pages="internal(2023/info/sat-close-before)" raw="yes"]]
+
+
+
+
+[[!inline pages="internal(2023/info/sat-close-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/sat-close-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/sat-open.md b/2023/talks/sat-open.md
new file mode 100644
index 00000000..6179cce0
--- /dev/null
+++ b/2023/talks/sat-open.md
@@ -0,0 +1,24 @@
+[[!meta title="Saturday opening remarks"]]
+[[!meta copyright="Copyright &copy; 2023 ${speakers}"]]
+[[!inline pages="internal(2023/info/sat-open-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. --->
+
+
+# Saturday opening remarks
+
+
+[[!inline pages="internal(2023/info/sat-open-before)" raw="yes"]]
+
+# Discussion
+
+- I like the relaxing music
+- So intimidating! Being in a chatroom with all these famous Emacs celebrities!
+
+
+[[!inline pages="internal(2023/info/sat-open-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/sat-open-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/scheme.md b/2023/talks/scheme.md
new file mode 100644
index 00000000..011d52b1
--- /dev/null
+++ b/2023/talks/scheme.md
@@ -0,0 +1,78 @@
+[[!meta title="Bringing joy to Scheme programming"]]
+[[!meta copyright="Copyright &copy; 2023 Andrew Tropin"]]
+[[!inline pages="internal(2023/info/scheme-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. --->
+
+
+# Bringing joy to Scheme programming
+Andrew Tropin - Nick: [abcdw](https://trop.in/contact), Site: <https://trop.in/>, Fediverse: <https://fosstodon.org/@abcdw>
+
+[[!inline pages="internal(2023/info/scheme-before)" raw="yes"]]
+
+Emacs is usually a primary tool people remember, when talk about
+development environment for lisp languages. It serves the purpose
+great for Common Lisp, Clojure and of course Emacs Lisp, but what
+about Scheme? Let's talk about current state of the things, recent
+improvements, and emerging tools in this field.
+
+My talk covers the following:
+
+- What does a usual Scheme developer day look like? And how it can be
+ made more enjoyable?
+- Important developer duties, their automation and acceleration.
+- Interactive development and its benefits.
+- Emacs setup for Scheme development.
+
+Links:
+
+- <https://git.sr.ht/~abcdw/emacs-arei>
+- <https://git.sr.ht/~abcdw/guile-ares-rs>
+
+About the speaker:
+
+Talk about Lisp development workflows, REPLs, and modern Scheme tooling for Emacs.
+Author of Guix Home, maintainer of [rde](https://git.sr.ht/~abcdw/rde), FOSS developer.
+
+# Discussion
+
+## Questions and answers
+
+- Q: How much do you use these repels remotely ex using a server or
+ desktop from your laptop?
+ - A: I don't use it remotely at the moment, but it should work
+ perfectly fine (except maybe lookup and other similiar
+ functions). I also want to add a shepherd service for ares-rs,
+ so you can connect to GNU Shepherd and systems based on it (like
+ GNU Guix) from you emacs process and interact fluently with
+ guile code.
+- Q: Can this be integrated with eglot?
+ - A: I'm not sure how this integration could look like.
+ Theoretically, it's possible to expose many of ares-rs
+ functions via LSP custom actions (or whatever it called).
+ Anyway, contact me on IRC or <https://trop.in/contact> to
+ discuss it in more details if you have something in mind.
+- Q: How hard is it to add support for something else than Guile? Does
+ it make sense to contribute at this early stage of development?
+ I've written several packages for CHICKEN Scheme before and would
+ like to try this one.
+ - A: It's a matter of implementing the whole chicken-ares-rs :)
+ Many of the code can be reused, but not all, unfortunately.
+ emacs-arei doesn't need any (or almost any) changes.
+- Q: (One day late sorry) Is nREPL more extensible than what SLIME/SLY
+ use in Common Lisp world (I think it's comint.el) ?
+ - A: Yes, it's. I was evaluating and considering SWANK protocol,
+ but found nREPL to be more suitable and future proof.
+ <https://github.com/astine/swank-client/blob/master/swank-description.markdown>
+
+### Notes and discussion
+
+- brilliant work for scheme
+- yeah, this is overdue. the only real alternative is slime-r7rs
+
+[[!inline pages="internal(2023/info/scheme-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/scheme-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/sharing.md b/2023/talks/sharing.md
new file mode 100644
index 00000000..b27edbbb
--- /dev/null
+++ b/2023/talks/sharing.md
@@ -0,0 +1,117 @@
+[[!meta title="Sharing Emacs is Caring Emacs: Emacs education and why I embraced video"]]
+[[!meta copyright="Copyright &copy; 2023 Jacob Boxerman"]]
+[[!inline pages="internal(2023/info/sharing-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. --->
+
+
+# Sharing Emacs is Caring Emacs: Emacs education and why I embraced video
+Jacob Boxerman (he/him) - <mailto:jakebox0@protonmail.com> - <https://www.youtube.com/c/JakeBox0> - <https://www.linkedin.com/in/jacob-boxerman/>
+
+I am looking for a summer internship for Summer 2024, please feel free to reach out, I am looking to network :)
+
+[[!inline pages="internal(2023/info/sharing-before)" raw="yes"]]
+
+My YouTube Emacs series, "Straightforward Emacs," started as a quick video to
+share with one person. That video now has over 50 thousand views, and inspired
+me to do my part and give back to the Emacs community, creating what I wish I
+had when I started my journey.
+
+150,000 views later, I still find my YouTube channel one of the most
+fulfilling things in my life at the moment (despite the fact that I am very
+busy and don't have so much time for videos these days), because it is my way
+of giving back and sharing Emacs with a wider community.
+
+In addition to the technicalities of video production and teaching Emacs, this
+talk will also address two crucial topics in our community &#x2014; a love of Emacs
+and desire for its longevity, and spreading Emacs to new users.
+
+In particular, I will discuss my views on the sharing of information in the
+Emacs community &#x2014; how we do it, what it does for us, and how we can do it
+better.
+
+People often complain about the Emacs learning curve. As we all know, Emacs is
+a beast, and those who use and love Emacs spend years tweaking, adjusting,
+modifying, and, above all, learning. Because at the end of the day, Emacs is a
+personal journey. Everyone has preferences, searching for what makes them most
+comfortable, happy, and productive. Still, I believe that we are stronger
+together than we are apart. One of the best ways to find out what we like is
+by seeing what other people like. What's important is that what other people
+like, other people can understand.
+
+I hope you'll come check out my talk, and that it will inspire you to do one
+of the most honorable things one can do: teach and share with others.
+
+About the speaker:
+
+Jacob Boxerman is the creator of Straightforward Emacs, a video-based
+Emacs series with practical, easy-to-follow and implement tutorials
+and advice. He is a 2nd-year computer science student at Columbia
+University in New York and is interested in the intersections of
+computer science, finance, and psychology. In his talk today, titled
+"Sharing Emacs is Caring Emacs: Emacs Education and Why I Embraced
+Video," he will share his views on communication and sharing in the
+Emacs community, and how we can all do our part to spread Emacs,
+support each other, and ensure its growth.
+# Discussion
+
+## Questions and answers
+
+- Q: Are you using ox-reveal to make your slides? If not, what are you
+ using? They look very elegant.
+ - A: Yes, and Jacob has a video about it on his channel!
+- Q: Videos can be very inspirational to learn about something by
+ watching it used. I often find I need to do some research after
+ watching a video to learn more. Do you give people links to relevant
+ resources etc?
+ - A: Definitely something that I can do more of.  I like to think
+ of my videos as jumping-points to the manual.
+- Q: What are your fellow cohort of students using for their editors? 
+ What kinds of "feedback" do you get from them when they learn
+ about you using Emacs? (Missed your talk so perhaps you answered
+ this)
+ - A: Professors making entry to comp sci as "accessible/simple"
+ as possible.  In 3rd course the professor gives option of either
+ Emacs or Vim.  Professor uses vim; so the class gravitates
+ towards that.  A 4th course, in assembly, and the professor
+ suggests Emacs.  At Columbia, vim is more used (as it's
+ modeled)
+- Q: Did you start those university classes using Emacs?
+ - A: Yes. (Two years before entering college); taking notes in
+ org-mode for programming classes is the BEST!!!  Syntax
+ highlighting, inline code blocks, literate-esque programming is
+ great for school.  Professors want PDFs on their desk!  And
+ org-mode simplifies this process.
+ - Also presenter is in humanities, and writes their humanities
+ essays in org-mode
+- Q: To Leo: Before NeoVim, you had to do as much (or more)
+ configuration to get basic editing done than in Emacs. It's also
+ slower with modal editing compared to Emacs keybindings because you
+ have to press Esc and two keys to get things done while in Emacs you
+ only have to press C/M-something (one keypress) to move or search or
+ whatever and then write. I instantly became productive for writing
+ when I switched to Emacs. (I have 5 times tried to adopt Vim...and
+ each time I get a bit better.  But Emacs was lightning in a bottle
+ for "productivity"; for those where vim works, I love it.  And am
+ eccstatic that they are owning their editor)
+ - A:
+- Q: Wha was a question you'd hoped we'd ask of you?
+ - A:
+
+## Notes
+
+- Cool talk! :-)
+- I've used your videos before! Thanks for all the good work.
+ - So awesome to hear that!! You are welcome and thanks for letting me know, love to hear it
+- Ha ha. I think Emacs users might just enjoy inconvenience. If a picture is worth a thousand words ... then maybe the value of a video is based on frame rate.
+- Agreed, jakeb --- video is worth it.
+- Interesting to think about video beeing worth it while watching a video of the conference.
+
+
+
+[[!inline pages="internal(2023/info/sharing-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/sharing-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/solo.md b/2023/talks/solo.md
new file mode 100644
index 00000000..9bf2edbe
--- /dev/null
+++ b/2023/talks/solo.md
@@ -0,0 +1,136 @@
+[[!meta title="How I play TTRPGs in Emacs"]]
+[[!meta copyright="Copyright &copy; 2023 Howard Abrams"]]
+[[!inline pages="internal(2023/info/solo-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. --->
+
+
+# How I play TTRPGs in Emacs
+Howard Abrams - Website: <https://www.howardism.org> - Mastodon: @howard@emacs.ch, <mailto:howard@howardabrams.com>
+
+[[!inline pages="internal(2023/info/solo-before)" raw="yes"]]
+
+
+- Ironsworn Emacs project code: <https://gitlab.com/howardabrams/emacs-ironsworn>
+- Note that this code depends on my earlier project: <https://gitlab.com/howardabrams/emacs-rpgdm>
+- The alpha version of a RPG Toolkit code: <https://codeberg.org/howardabrams/emacs-rpgtk>
+
+As an eternal Dungeon Master, I have a long history of collecting my notes
+in Emacs. When my son was very young, I would export my Org files to
+an HTML page that would include some magic JavaScript, so that when
+displayed on my iPad, I could touch a table to have it randomly return a
+line, or touch a phrase like `3d6+1`, to have the web page return a dice
+roll.
+
+Lately I’ve been getting into Solo versions of tabletop role playing games
+(TTRPG), and have had a fun time writing Lisp to support this style of
+play, and thought I’d share my code and my fun.
+
+I’d like to begin by showing my game play in action: I’m currently playing
+Ironsworn with the Mythic GM Emulator and various other tables and
+procedures to stike a balance between *playing a game* and *writing a
+book*. Next I would like to show the code that supports the interface, and
+perhaps dive a bit deeper into some of the underlying mechanisms and
+functions, especially that function that randomly chooses entries from Org
+tables. I’ll end with a plan for turning my code into a community project,
+if people are interested.
+
+Format (10 minutes, 20 minutes, description of other format) and outline:
+20 minutes, but I could do less if you have too many submissions.
+
+About the speaker:
+
+Howard often gives technical, work-related talks at EmacsConf, but here he
+is talking about playing games in Emacs.
+# Discussion
+
+## Questions and answers
+
+- Q: Where can I get this?
+ - A: <https://gitlab.com/howardabrams/emacs-ironsworn>
+- Q: How well would this suppliment freefoxm writing. short novels or
+ novels?
+ - A: I think it would be a good start. It is just an org file, so
+ you can go as far as you'd like with the writing.
+- Q: Does the current version also have some utilities for doing
+ multiplayer? (either physically or digitally) (since you mentioned,
+ you previously did multiplayer sessions as well..)
+ - A: Nope, it is just Solo, but that does sound like a fun idea.
+- Q: This game + CRDT (collabrative editing
+ <https://github.com/emacs-straight/crdt.git>) should be great for
+ non-solo playing?
+ - A: Perhaps, I'd like to try it out.
+- Q: How does one become super awesome like Howard Abrams??
+ - A: "There's no secrets! Just follow your passions!"
+ - Seriously inspiring.
+- Q: Please talk a little about how you produced such a slick
+ presentation video!  Everything looked completely professional!
+ - A: <https://emacs.ch/@howard/111506614571155011> "My son helped
+ me record my presentation for #emacsconf and we were able to
+ achieve an over-the-top show that will evoke the feels ... from
+ snickers to eyerolls."
+- Q: Does table data allow for recursion?  I have a table that when I
+ roll on it, a result comes up that references another table (e.g.
+ result that returns "There are [random monster] haunting the
+ cavern entrance" and we'd roll on [random monster] and inject
+ them into the result.)
+ - A: Yes.
+- Q: With your toolkit a list of good books would be nice to be
+ included. example d&d, space, steampunk, cyberpunk settings
+- Q:  Hi Howard and Thanks for an outstanding presentation!!! What did
+ you use to create the graphics in your presentation?
+ - A: I don't really know. I will have to ask my son, as he did
+ the editing and directing.
+- Q: Any plans to borrow tables from Dungeon World, or
+ Ironsworn:Starforged and publish in the toolkit repository? 
+ (<https://github.com/lifelike/Dungeon-World-Org-Mode>)
+ - A: That does sound like fun.
+- Q: How has this impacted your imagination on the scenes?  (e.g.
+ constraints by algorithms)
+ - A: Yes, writing creatively can be very helpful in many other
+ aspects of your life.
+- Q: Your essay/video "Literate DevOps" I consider a classic, and
+ it's really opened my eyes on org-babel and what you could do. Do
+ you still use those techniques at work? Have you come up with any
+ improvements or changes to your workflow?
+ - Yup. Still do.
+
+## Notes
+
+- Ironsworn Emacs project code:
+ <https://gitlab.com/howardabrams/emacs-ironsworn>
+- Note that this code depends on my earlier project:
+ <https://gitlab.com/howardabrams/emacs-rpgdm>
+- The alpha version of a RPG Toolkit code:
+ <https://codeberg.org/howardabrams/emacs-rpgtk>
+- Really cool project! - Also the enthusiasm for the topic is really
+ contagious!
+- "Every time Howard publishes a talk, I end up doing one more thing
+ in a new radical or literate way inside Emacs - currently looking
+ into how to go about literate snow shoveling for the winter ahead."
+- I can see this one is going to be a classic
+- the camera and lighting already has me sold
+- Such a vibe!
+- can I just (require 'howardism) and be done with it all?
+- i love this so hard
+- "Howard's talk is published on the site now" "I'll be in my bunk"
+- Holy CRAP Howardism WINNING EmacsConf2023
+- Could we add this to emacs beside dunnet?
+- Howard's stuff is always great. this particular thing is totally unchained. :D
+- "Howard approaches your table in the tavern. Do you (1) buy him a tanker of mead (2) kill him and eat his brain"
+- "Not showing-off," he said.
+- That was epic
+- Happy Hacking!
+- What's the emoji for a crowd picking Howard up on our shoulders and carrying him around
+- there's a peaceful aspect of having non web based stuff to play
+ - Non-web, and not-networked!
+- the web is horrible. lisp machines are the future.
+- Imagine playing D&D with colab (from the previous talk)!
+
+
+[[!inline pages="internal(2023/info/solo-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/solo-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/steno.md b/2023/talks/steno.md
new file mode 100644
index 00000000..1e130c37
--- /dev/null
+++ b/2023/talks/steno.md
@@ -0,0 +1,68 @@
+[[!meta title="Programming with steno]]
+[[!meta copyright="Copyright &copy; 2023 Daniel Alejandro Tapia"]]
+[[!inline pages="internal(2023/info/steno-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. --->
+
+
+# Programming with steno
+
+Daniel Alejandro Tapia (I like "thou" for the second person and "ou" for the third) - I'm also on emacs.ch @SequentialDesign, <mailto:z111.513.321@gmail.com>
+
+[[!inline pages="internal(2023/info/steno-before)" raw="yes"]]
+
+Talk about what stenotypy is and give a brief history.
+Then onto the challenges of using stenotypy in Emacs
+and how I overcame them.
+Also talk about the advantages of using stenotypy in Emacs
+and in general.
+
+This talk uses two pieces of media under a Creative Commons license:
+
+- <https://en.wikipedia.org/wiki/File:Demonstratie_met_een_stenotypemachine_Weeknummer_28-28_-_Open_Beelden_-_22262.ogv?useskin=vector> - (a short video) Nederlands Instituut voor Beeld en Geluid, Creative Commons Attribution-Share Alike 3.0
+- <https://www.youtube.com/watch?v=EoAcHCTDXio> (a pic from this) -
+Nathan Olivares, Creative Commons Attribution
+
+# Discussion
+
+## Questions and answers
+
+- Q:I found your screen dimensions and battlestation picture
+ interesting. Do you have any place where I can read more about it?
+ - A:
+- Q:I missed the first part of the talk.  This is Excalamus.  How do
+ you handle 1-up and repeat type issues? Suppose you need to move 5
+ characters to the right.  Do you make 5 separate "right arrow"
+ strokes?
+ - A:
+- Q: How did you get into stenotypy, and was that before/during/after
+ you started programming and using Emacs?
+ - A:
+- Q:I recently switched to using my homerow index finger keys as shift
+ on hold. It feels very nice from an ergonomic perspective, but I'm
+ having trouble with consistent shift inputs. Did you have similar
+ experiences when starting to use double function keys?
+ - A:
+
+## Notes
+
+- So much good stuff here, thanks for sharing! +1
+- I appreciate the large text on this one
+- What a fantastic presentation.
+- Yes, ou's doing a great job and setting a good pace
+- I have not gone that far with keyboard but I have been using Keymouse (keymouse.com) for a few years and it is killer one for Emacs :).
+- Other than Daniel and myself, anyone else in the Emacs community using steno?
+ - I played with it but haven't had the time to practice. I have a Georgi and some Elisp to help with things like defining chords, looking things up, etc.
+ - I'm on a Georgi now. So good.
+ - what is a georgi?
+ - <http://plover.stenoknight.com/2019/12/georgi-review.html>
+ - It's a Stenoboard that's (sadly) no longer available :(
+- I set a metronome and did typey type for 10-15 minutes until I had the basic lessons complete at 90% accuracy and 70wpm. Not that I write that fast now...
+- If gpg can perform notarization then maybe Emacs can do legal transcriptions?
+
+[[!inline pages="internal(2023/info/steno-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/steno-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/sun-close.md b/2023/talks/sun-close.md
new file mode 100644
index 00000000..ae336792
--- /dev/null
+++ b/2023/talks/sun-close.md
@@ -0,0 +1,46 @@
+[[!meta title="Sunday closing remarks"]]
+[[!meta copyright="Copyright &copy; 2023 ${speakers}"]]
+[[!inline pages="internal(2023/info/sun-close-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. --->
+
+
+# Sunday closing remarks
+
+
+[[!inline pages="internal(2023/info/sun-close-before)" raw="yes"]]
+
+# General conference feedback
+
+- Subtitles:
+ - [regarding the adventure talk:] that is some hero subtitling on "cccc" to "C-c C-c". thank you!
+ - subtitles useful for those who are deaf and broken sound
+ - No sound!!?? Good thing for captions!
+ - FWIW I think it's actually helpful when the subtitles are delayed by a few seconds, so I can watch and listen normally, but if I misunderstand a few words, I can look at the delayed subtitles and find out was said.
+- Closing mpv with "Q" (rather than "q") will save position
+- I can honestly say though that I had a great time putting my talk together. I hope people will have a good time listening to it. Now that the work is over, I can say it was worth it. so I recommend it warmly
+- Nice way to display countdown  with emacs, that's why i love emacs and emacser
+- Indeed, seeing all the use cases across so many fields is one of the big selling point of this coming together, loving it.
+- this conference is crazy i am not sure i ever saw so much interesting emacs ideas in one day
+- On Github: I once looking into commit activity in Vim vs. Neovim vs. Emacs and ... well ... Emacs is more actively developer despite not using github- Y'all, I have to say, this is like Christmas before Christmas every year. Emacsconf makes my year every year :)
+- Thanks to the organizers for your tireless work, and to the most excellent presenters of today, what a treat!
+- So many good talks
+- many good talks, and a sense of community around emacs, which is nice to see
+ - Agreed, I enjoyed a thread I saw on Hacker News yesterday. There was a lot of love in it for Emacs and its community
+- i also have a feeling that it's hard to communicate with others when you start digging into a large system. your confusion diffuses. i felt similar when jumping into web framework and legacy apps. that's also why i liked emacsconf, watching others clarifies a lot of stuff. (memories of johnw edebug flash talk)
+- the pacing, clarity, and depth of the talks today has been really impressive, a presentation masterclass
+ - They're making me feel professionally inadequate
+- Thank you for such responsiveness in running this conference!!!
+- Yes, having the schedule in my own timezone was super helpful.
+- emacsconf-attendee-mode? including etherpad-mode among others
+- yeah virtual conf is fire thanks sacha
+- What our Swiss friends are doing looks quite nice
+- I've seen some virtual conferences (TeX / TUG?) that ran around-the-clock for different time zones.
+ - that would be lovely!
+
+[[!inline pages="internal(2023/info/sun-close-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/sun-close-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/sun-open.md b/2023/talks/sun-open.md
new file mode 100644
index 00000000..189e6fdd
--- /dev/null
+++ b/2023/talks/sun-open.md
@@ -0,0 +1,21 @@
+[[!meta title="Sunday opening remarks"]]
+[[!meta copyright="Copyright &copy; 2023 ${speakers}"]]
+[[!inline pages="internal(2023/info/sun-open-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. --->
+
+
+# Sunday opening remarks
+
+
+[[!inline pages="internal(2023/info/sun-open-before)" raw="yes"]]
+
+
+
+
+[[!inline pages="internal(2023/info/sun-open-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/sun-open-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/table.md b/2023/talks/table.md
new file mode 100644
index 00000000..ce63a419
--- /dev/null
+++ b/2023/talks/table.md
@@ -0,0 +1,88 @@
+[[!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: <https://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.
+
+About the speaker:
+
+My name is Daniel Molina Cabrera, I am a senior lecturer in Computer
+Science at the University of Granada, in Spain. I use only Linux in my
+computer, and after been using Vim many years, last years I mainly use
+Emacs for editing, as file manager, as email program, ...
+
+In my experience, using org-table is very powerful and useful, but
+many interesting features are not well-known. Unfortunately, sometimes
+it is difficult to see examples showing the possibilities, and I think
+this example could be very informative.
+
+# Discussion
+
+## Notes
+
+- Very impressive on your skill over the org-table
+- Thank you for your opinion.
+- Never use aggregate function before, will have a try.
+ - Yes, you should, it is clearly a nice package and very useful. Also,
+ it is very well documented at its page:
+ <https://github.com/emacsmirror/orgtbl-aggregate>
+- org table is awesome, but it lacks the fold, if i don't missing something. long table is bad to view
+ - You can put the table under a heading, and you will be able to fold it.
+ - very true. Long tables also have performance issues unfortunately. (IME) but still invaluable for any form of data analysis. I've not used the aggregate package used in this talk: must have a look. Don't get me wrong: I will put up with the performance hit of long tables well before I would ever consider one of those other tools!
+ - any block can be folded by pressing TAB on its header line
+ - I have manage about 200+ students evaluations with multiple columns (20+) in a single org file. It is not fast, but I can't say it is worst than using Excell (or even LibreOffice's Calc). I have separate my students in multiple tables, according to their groups, and that helps.
+- Got an answer on mastodon concerning org tables and formulas: "The documentation is not ideal", which is a little sad.
+ - sadly, that's true. Much experimentation is needed.
+ - I find the documentation for org tables quite good. It does help if you know Calc as well, however. But, of course, updates to the documentation are always welcome...
+- This talk was really good in showing how to actually make some things though. Going to look up the aggregate package.
+
+## Questions and answers
+
+- Q: Why we splitter the table like this, instead of using a giant
+ master table?
+ - A: Actually, some of the tables are only for me, and other are
+ published. This is the main reason to have several tables.
+- Q: Do you have some kind of school administrative system you have to
+ enter the grades into in addition, or is this how you present the
+ grades to the students? Do you use it for your own records only?
+ - A: Well, I use the final table (and for each practique) and
+ export it to PDF to put the qualifications, it is not only for
+ my own records. Also, there is a school administrative system
+ that I need to use to publish the final score. In order to make
+ easier to me, I export in the same order and then with the
+ browser I put the qualifications. It is suppose to import from
+ csv (and I could export from my org-table) for it is not always
+ working nicely, it is a pity, because in that case, I could
+ automatically  put the qualifications.
+- Q:
+ - A:
+- Q:
+ - A:
+- Q:
+ - A:
+
+
+[[!inline pages="internal(2023/info/table-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/table-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/taming.md b/2023/talks/taming.md
new file mode 100644
index 00000000..769242eb
--- /dev/null
+++ b/2023/talks/taming.md
@@ -0,0 +1,47 @@
+[[!meta title="Taming things with Org Mode"]]
+[[!meta copyright="Copyright &copy; 2023 Gergely Nagy (algernon)"]]
+[[!inline pages="internal(2023/info/taming-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. --->
+
+
+# Taming things with Org Mode
+Gergely Nagy (algernon) (he/him) - Pronunciation: "algernon" (all small letters, no capital A, please), IRC: algernon, IRC: algernon (@libera.chat, @OFTC) - but I normally don't check IRC. I'll be around for the conference, but IRC isn't a good way to reach me nowadays. Website: <https://asylum.madhouse-project.org/> Social media: @algernon@trunk.mad-scientist.club (<https://trunk.mad-scientist.club/@algernon>), <mailto:emacsconf@gergo.csillger.hu>
+
+[[!inline pages="internal(2023/info/taming-before)" raw="yes"]]
+
+**This talk has been cancelled. Sorry!**
+
+I'd like to present my solution of taming a NixOS configuration **and** a
+Doom Emacs configuration with Org Mode. Taming, as in highlighting the
+pain points I had with them, why I found them to be a pain point, and
+then offering a solution. Might not be the best solution, but one that
+worked out remarkably well for me: writing a lot of words in Org mode to
+explain my thinking, for future me, sprinkling some code blocks here and
+there, and holistically assembling them into their tangled out form.
+
+Not a very in-depth talk, not a one-size-fits-all kind of solution. The
+goal is to show that you don't necessarily have to adapt to languages,
+or frameworks. With a little bit of care, and a whole lot of words your
+future self will thank you for, you can bend them to your will. So the
+computer will work for you, rather than the other way around.
+
+Because Emacs and Org mode can bend time and space - at least in a way,
+and you don't even need M-x butterfly!
+
+About the speaker:
+
+I'm a tiny mouse, a hacker. I like to play with things. I'm also very
+opinionated. These things don't always mix well. When I wanted to play with
+NixOS and Doom Emacs, I faced a problem: I don't like the Nix language, and I
+don't like how Doom's config has to be structured. I really wanted to play with
+both, though. So I tamed them. With Org Mode. I'd love to tell you how, so you
+can do the same.
+
+
+[[!inline pages="internal(2023/info/taming-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/taming-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/teaching.md b/2023/talks/teaching.md
new file mode 100644
index 00000000..70e0ffa2
--- /dev/null
+++ b/2023/talks/teaching.md
@@ -0,0 +1,145 @@
+[[!meta title="Teaching computer and data science with literate programming tools"]]
+[[!meta copyright="Copyright &copy; 2023 Marcus Birkenkrahe"]]
+[[!inline pages="internal(2023/info/teaching-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. --->
+
+
+# Teaching computer and data science with literate programming tools
+Marcus Birkenkrahe - Faculty website <https://www.lyon.edu/marcus-birkenkrahe> - LinkedIn <https://www.linkedin.com/in/birkenkrahe> - Twitter (X) <https://twitter.com/birkenkrahe> - Researchgate.net <https://www.researchgate.net/profile/Marcus-Birkenkrahe> - Google Scholar <https://scholar.google.com/citations?user=Vvnwsv0AAAAJ&hl=en> - ORCID <https://orcid.org/my-orcid?orcid=0000-0001-9461-8474> - Wikipedia <https://en.wikipedia.org/wiki/Marcus_Birkenkrahe>, <mailto:birkenkrahe@lyon.edu>
+
+[[!inline pages="internal(2023/info/teaching-before)" raw="yes"]]
+
+[[!template id="help"
+volunteer=""
+summary="Q&A could be indexed with chapter markers"
+tags="help_with_chapter_markers"
+message="""The Q&A session for this talk does not have chapter markers yet.
+Would you like to help? See [[help_with_chapter_markers]] for more details. You can use the vidid="teaching-qanda" if adding the markers to this wiki page, or e-mail your chapter notes to <emacsconf-submit@gnu.org>."""]]
+
+I present a case study on using Emacs and Org-mode for literate
+programming in undergraduate computer and data science courses. Use of
+Emacs was obligatory in courses covering R, Python, C/C++, SQL, and more.
+Onboarding relied on simplified Emacs tutorials and starter configurations.
+Sessions involved live coding, and assignments and projects required
+Org-mode notebooks. I will present the setup, the results, and provide
+insight into my ongoing work with Emacs in the classroom. Especially in
+AI-assisted teaching, literate programming tools will become even more
+important, and Emacs and Org-mode will have a new role to play. Most
+importantly, using Emacs consistently for all classwork imparts deep
+infrastructure and computing knowledge that other tools often obfuscate.
+
+- Outline (tentative):
+ 1. Introduction to the speaker and the case study
+ 2. Teaching computer and data science today
+ 3. The rationale for using Emacs as an IDE
+ 4. The rationale for using Org-mode for literate programming
+ 5. Case study: purpose, content, technology, results
+ 6. Challenges and lessons learnt
+ 7. Literate programming in the age of low code and AI
+ 8. Conclusions and outlook
+
+About the speaker:
+
+Associate Professor of Computer and Data Science at Lyon College in
+Batesville, AR. He joined the Lyon faculty in 2021, on leave of absence
+from the Berlin School of Economics and Law. He earned a PhD in theoretical
+physics (lattice gauge theory). He has published widely in different areas,
+including: neural nets, multigrid applications, knowledge management,
+e-learning, literate programming, process modeling, and data science. He is
+associate editor of the International Journal of Data Science, editorial
+board member of the International Journal of Big Data Management, and
+corresponding member of the Institute for Data-Driven Digital
+Transformation (d-cube) in Berlin, Germany. Emacs user since ca. 1990.
+
+This talk is based on a recent publication with the same title
+(Birkenkrahe, 2023; [doi.org/10.3390/digital3030015](https://doi.org/10.3390/digital3030015)).
+
+
+# Discussion
+
+## Feedback
+
+- at my company new helpdesk analysts seem to suffer from the same symptoms of not fully understanding comp architecture. I guess i will have to teach them emacs...
+- Very interesting talk, thank you!
+- Great talk, thanks.
+- Well done!
+- Very important point to teach CS: immersion. Nothing better than emacs for that.
+- Emacs is *great* for beginners (on CS): it makes them think programatically on their environment.
+
+## Notes
+
+- <https://www.mdpi.com/2673-6470/3/3/15>
+- Data Science: intersection of math, comp sci, domain knowledge
+- I like the idea you use this method to write every piece of your
+ code. It's so easy for me to just ask llm a piece of code, run it
+ and forget about it. I will try to improve this type of way to write
+ code.
+- Students were able to use Emacs competently with 1 week (did I hear
+ that right?) of practice
+ - This is quit counter-intuitive.
+ - I picked up Emacs 3 years ago, and through immersion was up to
+ previous competency parity in about a week or so.
+- Org Remark allows you to highlight in org mode documents, If you
+ pair that with org web tools you can highliht an offline web page
+ backup with highlights in org mode
+- CRDT.el -- allows multiple people with their own emacs config to
+ edit a hosted Emacs buffer
+- Just use one of the Emacs chatgpt or other LLM interfaces instead of
+ leaving for Jupyter notebooks.
+- "The AI advantage [of Jupyter notebooks] does not make up for the
+ loss of immersion that Emacs and Org-Mode provides.  [Immersion is
+ a important]"
+
+## Questions and answers
+
+- Q: What tool(s) do you use for making your slides; they are very
+ nice.  Would be great to get a template.
+ - A: org-reveal
+- Q: Why MDPI? :)
+ - A:
+- Q: Do you think immersion can be achieve on teaching other students
+ with differnet backgrounds?
+ - A:
+ - yeh, exactly, kinda risky for young teacher.
+ - Actually, may depend on the uni. AFAIK, MIT style they
+ promote is full of workshops/handson classes with more
+ limited lectures.
+- Q: Do some of your students nag you about using VSCode? I teach
+ simple programming at a vocational school and even after showing the
+ students vim, Emacs and nano and telling them that I prefer Emacs
+ and also showing them code inside code blocks in Org mode and using
+ Emacs in every class I teach, they still all chose VSCode as their
+ editor. (I let them choose.) It seems like they are brainwashed
+ somehow... Is the success in the obligatory use of Emacs?
+ - A: I observe the same behavior
+ - "The arguments from beginners for VS Code aren't strong";
+ appreciate the fact that immersion is the goal and the
+ constraints of Emacs as required pushes towards immersion. 
+ (Thank you for your answer!)
+ - Having more tutorials on Emacs/Org mode would be most welcome
+ (yantar92 aka Org contributor)
+ - If you make more videos, share them on
+ [[https://orgmode.org/worg/]{.underline}](https://orgmode.org/worg/)
+- Q: I'm curious about your approach to handling EDA, particularly
+ with wide datasets that have numerous columns. Given the constraints
+ of Emacs which might not be optimal for viewing large tables, could
+ you share how you navigate and explore such datasets efficiently? Do
+ you integrate any specific Emacs tools or external methods to
+ streamline this process?
+ - A:
+ - I know that John Kitchin is working with remote DFT
+ calculations - Tbs of data to visualize.
+- Q: Do you have a startup emacs configuration for your students?
+ - A:
+- Q: (from chat) Fantastic talk, thank you. I realise that it will be
+ difficult to provide an accurate answer, but what proportion of your
+ students do you think will keep on using Emacs after your courses?
+
+
+[[!inline pages="internal(2023/info/teaching-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/teaching-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/test.md b/2023/talks/test.md
new file mode 100644
index 00000000..f704f599
--- /dev/null
+++ b/2023/talks/test.md
@@ -0,0 +1,113 @@
+[[!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.
+
+
+# Discussion
+
+## Questions and answers
+
+- Q:How many tests do you have for Hyperbole and how wouild you rate
+ the test coverage compared to other packages?
+ - A: 
+ - With all tests including the interactive we have 354 tests.
+ Havng said that I must point out that the size of the tests
+ can be very different. I tend to split tests so they are
+ logically (in some sense) different. So that if a test fails
+ it will more likely point you to what the error is. This
+ makes it become more tests. Codewise you could collect
+ similar tests to one ert-deftest making the name of the test
+ point out some group or collection of functions, but I
+ don't do that!
+ - I have not studied other packages so I don't know how our
+ test coverage compares to other packages. In fact I don't
+ know what code coverage we have. That is another thing to
+ look into.
+- Q: One small suggestion, to me 'should' means optional, whereas
+ 'shall' or 'must' means required. Not sure if it is too late to
+ make a major grammar change like that :) Very nice presentation. (I
+ see :))
+ - A: The assertions come from the ert package so any changes would
+ have to be suggested to that. I guess you could make your own
+ version of the assestions using aliases for should et al.
+- Q: FYI, you may find this helpful for running Emacs tests/lints,
+ both from a command line and from within Emacs with a Transient
+ menu: <https://github.com/alphapapa/makem.sh>  It also works on
+ remote CI.
+ - A: Thanks for the suggestion. I did have a look at makem.sh but
+ a long time ago so I don't remember why we did not try to apply
+ it. I might give it another look now when I have used plain ert
+ more.
+- Q: Is it easy to run ad hoc tests inside of an Emacs session, given
+ the command line scripts you need to run to get a batch test session
+ running? In other words, can you tweak tests in an Emacs session and
+ run them right away?
+ - A: 
+ - Yes, in principle you just load your tests and run them all
+ using `ert` and give it the test selector `t`. That runs
+ all loaded tests. 
+ - If you want to modify a test you can do that. You change it,
+ evaluate it, and run it again. Just as you change any
+ function.
+- Q: Did you have to change Hyperbole code and design to be more
+ readily testable as you were increasing your test coverage?
+ - A: 
+ - Yes, we have done that to a small extent but we should do
+ more of that. Some Hyperbole functions are large and by that
+ complicated to test. Splitting them into smaller logical
+ parts can make testing easier. 
+ - Also moving code into pure functions and avoid side effects
+ is a good thing. Pure functions are easier to test. Maybe
+ haveing the side effects separated out into fewer places.
+ This has not been applied but is something I have been
+ thinking about. With side effects I here mean things like
+ adding or modifying text in buffers. 
+- Q: What's the craziest bug you found when writing these tests?
+ - A: This is not a bug but I always assumed giving a prefix
+ argument to a cursor movement would give the same result as
+ hitting the key the same amount of times. So like C-u 2 C-f
+ would be the same as hitting the C-f key twise. It is not! When
+ moving over a hidden area, the three dots '...' at the end of
+ folded line in org-mode or outline-mode, you get different
+ behavior. Trying to write a test case for the kotl-mode and its
+ folded behavior teached me that.
+- Q: Why do you prefer el-mock to mocking using cl-letf. (Question
+ asked in BBB)
+ - - With cl-letf you need to keep track if the mocked
+ functionality is being called or not. The el-mock package
+ does that for you which is what you normally want. Doing
+ this with cl-letf means the definition becomes longer and
+ more complicated. Sort of blurs the picture. el-mock is more
+ to the point.
+ - BUT since cl-letf does allow you do define a "new"
+ function it is more powerful and it can be the only option
+ in cases where el-mock is too limited. So it is good to know
+ of this possibility with cl-letf when el-mock does not
+ provide what you need.
+
+
+[[!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..14993980
--- /dev/null
+++ b/2023/talks/unentangling.md
@@ -0,0 +1,166 @@
+[[!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.
+
+
+# Discussion
+
+## Questions and answers
+
+- Q: Do you use these unentangling techniques in a blog or hosting a
+ zettelkasten?
+ - A: Well, I try to keep my "private notes" in something that
+ might qualify as a Zettelkasten, yes. I wouldn't say I 'host'
+ it --- it's not online. But yes, the whole point is that
+ these "private" notes are interconnected in a Zettelkasten-y
+ way (using org-roam package)
+ - Denote notes Silo features might be useful with your
+ workflow
+ - <https://protesilaos.com/emacs/denote#h:e43baf95-f201-4fec-8620-c0eb5eaa1c85>
+ - oh, thanks --- I'll have a look!
+- Q: What is the biggest unhappiness you haven't figured out for your
+ current workflow?
+ - A: Maybe I am still on the fence re: where do I structure my
+ TODOs and clock time. I tried to play around with the idea that
+ I structure the work in a repo, and then when I "clock in" it
+ saves time to a separate notes file instead... but it seemed a
+ little too complicated, to my taste.
+ - I feel that the time tracking also kind of annoying,
+ especially you forgot to clock on and all the things mess
+ up. So right now I'm just using a Pomodoro technique, 25
+ minutes, done, rest, 25 minutes, rest, and kind of repeating
+ that. And I'm quite happy with that.
+ - wait, what's that? 'org-pomodoro'?. sounds
+ interesting...
+ - It's not, you know, special for Org Mode. It's
+ kind of a general technique which you focus on a
+ small task for just 25 minutes, but at the time
+ you're super focused, 100% focused, and after that
+ five minutes you rest, and you're kind of repeating
+ these patterns over long sections. You can do four,
+ five, six of those sections, and it helps me to
+ focus over relateive long time.
+ - I also feel this might be something really
+ useful. Just haven't found a way to incorporate
+ it into my workflow
+ - for me it's quite simple is I can just use
+ a simple stopwatch that every 25 minutes
+ stop and reminde me  a rest. I believe
+ there's a lot of fancy clock specialized on
+ this this type of technique it's at the
+ core of this concept is really not a complex
+ idea.
+ - wait, I'm confused. So, that's outside
+ Emacs right? :-)
+ - Yes, the concept is outside of
+ Emacs, but I saw people using this
+ package. Let me search,:
+ <https://github.com/marcinkoziej/org-pomodoro>
+ <-- yeah, that one. Maybe I'll
+ have a look, thanks!
+ - Yeah, it's, again, if you're
+ familiar with the sports, it's
+ kind of making your long hard
+ working, breaking into a small
+ section, but I feel it's, you
+ have more kind of energy over a
+ long term, yeah.
+ - I like Using a weekly GTD log files for my TODO. That way I
+ can look back at them and not have my GTD to big. I like to
+ pull daily tasks from agenda
+ - and what do you do to transfer stuff between the weeks
+ --- a manual review? 
+- Q: Do you use project.el features as well, or just projectile.el
+ ones?
+ - A: Ugh. OK, I am at that point where I am not sure any more ;)
+ it is pretty well integrated to my Doom Emacs, so I am not sure
+ which one is that...
+
+## Notes
+
+- GNU Hyperbole already supports this with directory-specific quick
+ access button files (which can be Org files).  These can connect to
+ any number and type of document artifacts, including projects,
+ repos, directories, etc.  You don't need to put any code in
+ dir-locals either.  The directory/project-specific tags jumping
+ (automatically selecting appropriate TAGS files) is also built-in.
+ Have a look.
+ - Yes, there's clearly a few ways to achieve this. I have a
+ feeling Hyperbole achieves this, and much more. I wanted to have
+ something simpler, somehow.   (Yes, you seem to have some very
+ efficient techniques down; maybe you could utilize both). 
+ Thanks for the talk, it was good. Thanks for the suggestion,
+ tho!
+
+
+[[!inline pages="internal(2023/info/unentangling-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/unentangling-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/uni.md b/2023/talks/uni.md
new file mode 100644
index 00000000..11d45730
--- /dev/null
+++ b/2023/talks/uni.md
@@ -0,0 +1,167 @@
+[[!meta title="Authoring and presenting university courses with Emacs and a full libre software stack"]]
+[[!meta copyright="Copyright &copy; 2023 James Howell"]]
+[[!inline pages="internal(2023/info/uni-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. --->
+
+
+# Authoring and presenting university courses with Emacs and a full libre software stack
+James Howell
+
+[[!inline pages="internal(2023/info/uni-before)" raw="yes"]]
+
+Resources: <https://git.sr.ht/~jamesendreshowell/org-teach>
+
+Relying exclusively on free and open source software for teaching science courses at a large university? With GNU Emacs at the center of these
+workflows? It's not only possible, it's much more flexible and empowering than being locked into proprietary platforms. We will step through the
+entire software stack and workflows for authoring and presenting lessons, authoring and evaluating assessments, and engaging students both in
+person and in fully online teaching environments.
+
+About the speaker:
+
+James Endres Howell has taught Molecular and Cell Biology,
+Biochemistry, Microbiology, Immunology, Toxicology, and Molecular
+Medicine at Penn State since 2006. Recently Dr. Howell has developed
+popular courses for non-science majors in Genetics, Ecology and
+Evolution; Science in Literature; and Science in Society. He has used
+Emacs daily since 1988.
+
+# Discussion
+
+## Notes
+
+- I'm digging the weather-report style with your pointing at the screen :)
+- I'm using org-mode to study for exams rather than present lectures recently btw. I like to copy questions in the org file and add notes as I work through the questions on paper.
+- Q: do you use org-present or something like that?
+ - A: Nope, just a normal Org buffer. I have a few custom keybindings for narrowing to headlines and such, when I do use Emacs for presenting. (Coming up in a few slides)
+- Next step: libre hardware :)
+- ahh he broke the fourth...fifth?...wall! :)
+- bookmarking xournal+++ for sure
+- Living dangerously now. :-)
+- he's definitely a wizard!
+- OBS looks very useful. Must explore.
+- I had never thought of using OBS for presentations like that... this has to be the slickest setup there is
+- my students all seem to come to class with tablets these days and they annotate the PDF of all of my slides. When I realised they were doing this, I decreased the density of material on each slide to ensure there was enough space for their notes.
+- macros are a very powerful and useful feature of org for complex documents!
+
+- Feedback
+- Damn, this looks really really useful
+- This presentation is damn cool, LOL.
+- excellent talk! Thank you.
+- Thanks for the talk, it was very interesting!!
+- Fantastic. I think this talk will be a reference for years to come!
+- Great stuff!
+- You are one of my heroes now! 👏👏👏👏👏
+- Brilliant talk James, inspiring stuff
+- Great system!
+
+
+
+
+- Download the handout (27MB PDF):
+ - <https://git.sr.ht/~jamesendreshowell/org-teach/blob/master/EmacsConf_2023_Howell_handout.pdf>
+- The whole repository:
+ <https://git.sr.ht/~jamesendreshowell/org-teach>
+- Resolution kinda low. 
+ - No, sorry! It was the best I was able to record.
+ - okay, it's fine.
+- OBS is cool.
+- I use pdfpc (can also present and draw, but command line) -
+ <https://pdfpc.github.io/>
+ - Also, pdfpc supports videos/animations in presentations :)
+ - Hm! I will look into it!
+- Kinda mute?
+ - I don't know why!
+- On publishing lectures/books - another classic example is John
+ Kitchin's <https://github.com/jkitchin/dft-book>
+ - Kitchin is a monster! He must have made a deal with the devil or
+ something.
+ - I suspect that it is what Assistant Prof position does to
+ people
+- Pedagogy first "development"
+ - Materials must provide a way to take notes on
+ - Separate the work of writing/developing/scaffolding from slide
+ wrangling
+ - THe org-teach allows for grabbing a slide from another
+ repository (e.g. don't repeat knowledge)
+- If you want to highlight org mode documents you can use
+ <https://github.com/nobiot/org-remark>. If you use Org Remark with
+ <https://github.com/alphapapa/org-web-tools> you can get an offline
+ backup af a web page that you can highlight and edit
+ - Wow. I will look into these.
+- Macros are a cool idea!
+ - Are org-mode macros a new concept/learning for you?
+ - Surely not (I am a contributor). But it is a new idea to use
+ them for beamer presentations.
+ - Yeah, I loved see other ways folks use macros.  I've
+ done some of that for Beamer, but only recently.
+- I use org-transclusion
+ (<https://github.com/nobiot/org-transclusion>) for include other
+ document.
+ - It sounds like the include other file might be for including
+ non-org-mode files; does org-transclusion provide that
+ functionality?
+ - yep~, quit powerful.
+ - :)
+ - opps, I double check the manual. It seems mainly for
+ human readable source code (txt, md, source code). I
+ don't think it works with Pdf ...
+- OBS TIP -- You can use an android app like OBS Blade to control obs
+ from android
+ - Cool, thanks!
+- CRDT.el <https://code.librehq.com/qhong/crdt.el> -- This can allow
+ multiple people with thier own Emacs Configs to edit a hosted emacs
+ buffer at the same time
+ - Awesome
+
+## Questions and answers
+
+- Q: I'm curious how the xournal stylus work is composited with OBS
+- Q: that entire screen was xournal at the time? I was thinking the slide was a different screen / software
+ - A: All the slides are presented via Xournal++. The "slides" frame is video capture from the tablet, running Xournal++.
+- Q: Do you have a fancy OBS scene changer to switch between the software being presented?
+ - A: I just map scenes to function keys on the keyboard.
+- Q: How you overlap yourself with the presenation? It's so cool.
+ - A: OBS provides a chroma key "filter"
+ - it's so cool! with DNA demo.
+- Q: How you deal with Video in Beam? I found it's so hard to do
+ that. PPT on the other hand is so easy to achieve.
+ - A: I use Beamer export to make static slides, that I present via
+ Xournal++. Videos, I present via VLC. So I use OBS to switch
+ back and forth between Xournal, VLC, Firefox, etc.
+ - The above-mentioned pdfpc provides a LaTeX package to link
+ videos right to pdf (battle-tested on conferences ;))
+ - Thanks, I will have a try.
+ - Thank you!
+- Q: Do you ever use things like Org Presnet and stay forgo powerpoint
+ slidees
+ - A: I've tried them but my core need is to annotate PDFs with
+ the stylus in real time, so the best solution is Xournal++
+- Q: Is the {{{ }}} syntax an Org Mode core feature that I have missed
+ so far, or did you program that? (Btw, thank you for the great
+ talk🙏)
+ - A: <https://orgmode.org/manual/Macro-Replacement.html>
+ - Some export backends allow for conditionals in the macro
+ replacement; when exporting to Hugo you can add an @@hugo
+ within the resolved macro.
+ - @@backend:...@@ is a separate construct - you do not
+ have to use it in combination with macros. For example,
+ see @@html example in
+ <https://orgmode.org/manual/Quoting-HTML-tags.html>
+ - Thank you very much, I'll definitively look into this🙏
+- Q: What kind of (comparative) feedback are students giving you
+ regarding your approach?
+ - A: They love it! All accounts were that my courses were much
+ more successful than other instructors'.
+- Q: You also teach English at Uni? cool
+ - A: Yes, it's a fun course.
+- Q: Is the input from the Surface captured by OBS and all of that
+ combined goes to Jitsi or Zoom? Correct?
+
+
+[[!inline pages="internal(2023/info/uni-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/uni-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/voice.md b/2023/talks/voice.md
new file mode 100644
index 00000000..2c5c537f
--- /dev/null
+++ b/2023/talks/voice.md
@@ -0,0 +1,216 @@
+[[!meta title="Enhancing productivity with voice computing"]]
+[[!meta copyright="Copyright &copy; 2023 Blaine Mooers"]]
+[[!inline pages="internal(2023/info/voice-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. --->
+
+# Enhancing productivity with voice computing
+Blaine Mooers (he/him/his) - Pronunciation: pronounced like "moors", blaine-mooers(at)ouhsc.edu, <https://basicsciences.ouhsc.edu/bmb/Faculty/bio_details/mooers-blaine-hm-phd>, <https://twitter.com/BlaineMooers>, <https://github.com/MooersLab>, <https://codeberg.org/MooersLab>, mastodon(at)bhmooers
+
+[[!inline pages="internal(2023/info/voice-before)" raw="yes"]]
+
+[[!template id="help"
+volunteer=""
+summary="Q&A could be indexed with chapter markers"
+tags="help_with_chapter_markers"
+message="""The Q&A session for this talk does not have chapter markers yet.
+Would you like to help? See [[help_with_chapter_markers]] for more details. You can use the vidid="voice-qanda" if adding the markers to this wiki page, or e-mail your chapter notes to <emacsconf-submit@gnu.org>."""]]
+
+Voice computing uses speech recognition software to convert speech into text, commands, or code.
+While there is a venerated program called EmacSpeaks for converting text into speech, an
+``EmacsListens'' for converting speech into text is not available yet.
+The Emacs Wiki describes the underdeveloped situation for speech-to-text in Emacs.
+I will explain how two external software packages convert my speech into text and computer
+commands that can be used with Emacs.
+
+First, I present some motivations for using voice computing.
+These can be divided into two categories: productivity improvement and health-related issues.
+In this second category, there is the underappreciated cure for ``standing desk envy'';
+the cure is achievable with a large dose of voice computing while standing.
+
+I found one software package (Voice In) to be quite accurate for speech-to-text or dictation
+(Voice In Plus, <https://dictanote.co/voicein/plus/>), but less versatile for speech-to-commands.
+I have used this package daily, and I found a three-fold increase in my daily word count almost
+immediately.
+Of course, there are limits here; you can talk for only so many hours per day.
+
+Second, I found another software package that has a less accurate language model (Talon Voice,
+<http://talon.wiki/>)) but that supports custom commands that can be executed anywhere you can
+place the cursor, including in virtual machines and on remote servers.
+Talon Voice will appeal to those who like to tinker with configuration files, yet it is easy to
+use.
+
+I will explain how I have integrated these two packages into my workflow.
+I have developed a library of commands that expand 94 English contractions when spoken.
+This library eliminates tedious downstream editing of formal prose where I do not use
+contractions.
+The library is available on GitHub for both Voice In Plus
+(<https://github.com/mooersLab/voice-in-plus-contractions>) and Talon Voice
+(<https://github.com/MooersLab/talon-contractions>).
+
+I also supply the interactive quizzes to master the basic Voice In commands
+(<https://github.com/MooersLab/voice-in-basics-quiz>) and the Talon Voice phonetic alphabet
+(<https://github.com/MooersLab/talon-voice-quizzes/qTalonAlphabet.py>)
+I learned the Talon alphabet in one day by taking the quiz at spaced intervals.
+The quiz took only 60 seconds to complete when I was proficient.
+
+I store my daily writing in a multi-file LaTeX document with one tex file per day.
+365 files are compiled into one PDF per year. This is usually about 1000 pages.
+I am not going to push my luck with a multiyear document.
+Each month is a chapter. The resulting PDF is a breeze to scroll and search.
+It has an autogenerated table of contents and an index. I have posted
+a blank version for 2023 and another for the upcoming year
+(<https://github.com/MooersLab/diary2024inLaTeX>)
+One could take a similar approach in org-mode by using Bastian Bechtold's
+org-journal package (<https://github.com/bastibe/org-journal>).
+
+I gave a 60-minute talk on this topic to the Oklahoma Data Science Workshop
+2023 Nov. 16 (<https://mediasite.ouhsc.edu/Mediasite/Channel/python>).
+This workshop meets once a month and is for people interested in data
+science and scientific computing. You do not have to be an Oklahoma
+resident to attend. Send me e-mail if you want to be added to our mailing list.
+
+# About the speaker:
+
+I am an Associate Professor of Biochemistry at the University of
+Oklahoma Health Sciences Center. I use X-ray crystallography to study
+the structures of RNA, proteins, and protein-drug complexes. I have
+been using Python and LaTeX for a dozen years, and Jupyter Notebooks
+since 2013. I have been using Emacs every day for 2.5 years. I
+discovered voice computing this summer when my chronic repetitive
+stress injury flared up while entering data in a spreadsheet. I
+tripled my daily word count by using the speech-to-text, and I get a
+kick out of running remote computers by speech-to-command.
+# Discussion
+
+## Questions and answers
+
+- Q:  Comment there is a text to command thing called clipea that
+ would be awesome <https://github.com/dave1010/clipea>
+ - A: <https://sourceforge.net/projects/sox/> also a good
+ alternative.
+- Q: Could you comment on how speaking vs. typing affects your
+ logic/content.  Thanks!
+ - A: I find that this is like the difference between writing your thoughts
+ down on a blank piece of printer paper versus paper bound with a
+ leather notebook. I do not think there has any real difference. I know
+ that some people believe there is a solid certain difference but this
+ is, for the purpose I am using this, for the purpose of generating the
+ first draft, because my skills with the-- using my voice to edit my
+ text is still not very well developed, I am still more efficient using
+ the keyboard for that stage.
+
+ So the hardest part about
+ writing generally is getting the first crappy draft written. I
+ have found that dictation is perfectly fine for that phase. I
+ find it actually very conducive for just getting the text out. The
+ biggest problem that most of us have is applying our internal editor and
+ that inhibits us from generating words in a free-flowing
+ fashion.
+
+ I generally do my generative writing--actually, I divide my writing
+ into two categories: generative writing (generating the first crappy
+ draft) and then rewriting. Rewriting is probably 80-90% of writing
+ where you can go back and rework the order of the sentences, order of
+ paragraphs, the order of words in a sentence and so forth. It is
+ really hard work that is best done later in the day when I am more
+ awake. I do my generative writing first thing in the morning when I am
+ feel horrible. That is when my internal editor is not very awake and I
+ can get more words out more words past that gatekeeper. I can do this
+ sitting down. I can do this standing up. I can do this 20 feet away
+ from my computer looking out the window to get my eyes a break. I find
+ it is just a very enjoyable to use it in this fashion. The downside is
+ that I wind up generating three times as much text. That makes for
+ three times as much work when it comes to rewriting the text, and that
+ means I am using the keyboard a lot and later on in the day.
+
+ I have not made any progress on recovering from my own repetitive
+ stress injury. I hope that I will add the use of voice commands,
+ speech-to-commands, for editing the text in the future and I will
+ eventually give my hands more of a break.
+
+ This allows you to actually separate those two activities not only by
+ time... So many professional writers will spend several hours in the
+ morning doing the generative part and then they will spend the rest of
+ the day rewriting. They have separated this to activities temporally.
+ What most people actually do is they they do the generative part and
+ then they write one sentence, and they apply that internal editor
+ right away because they want to write the first draft as a perfect
+ version, as a final draft, and that is what slows them down
+ dramatically.
+
+ This also allows you to separate these two activities in terms of
+ modality. You are going to do the generative writing by Voice In, the
+ rewriting by keyboard. I think this is like what most people... One way
+ that many people can get into using speech-to-text in a productive way
+ that sounds great...
+ - A: (not the author, just an audiance): So, for example, when
+ you're talking, you have an immense feeling of the topic you
+ have. You can close your eyes and do your body gestures to
+ manipulate a concept or idea, and you have... I just feel you
+ feel more creative than just tapping. Definitely you have much
+ more speed advantage over tapping, but more important thing is
+ you use your body as a whole to interact with those ideas.
+ [this one is done via voice...]
+ - but typing is definitely good for acturate control, such as
+ M-x some-command ...
+- Q: Have you tried the ChatGTP voice chat interface, if so how has
+ been your experience of it? As someone experienced with voice
+ control, interested to hear your thoughts, performance relative to
+ the open source tools in particular.
+ - A: I do not have much experience with that particular software. I have
+ use Whisper a little bit, and so that is related. Of course, you have
+ this problem of lag. I find that Whisper is good for spitting out a
+ sentence maybe for a docstring and a programming file. I find that it
+ is very prone to hallucinations. I find myself spending half my
+ time deleting the hallucinations, and I feel like the net gain is
+ diminished as a result, or there has not much of a net gain in terms of
+ what I am getting out of it.
+- Q: Are any of these voice command/dictions freemium?
+ - A: To be able to add custom commands, you have to pay
+ $48 a year. The Talon Voice software is free and the only
+ limitation there is access to the language model. If you want to get
+ the beta version, you need to subscribe to Patreon to support the
+ developer. I did that, and I really did not find much of
+ an improvement. I really do not intend to do that in the future.
+ But otherwise in Talon Voice, everything is open and free. The Slack
+ community is incredibly welcoming. Its parallels with
+ the Emacs Community are pretty striking.
+- Q: How good is Talon compared to whisper?
+ - A: With Talon, I find that the first part of the sentence will
+ be fairly accurate. When I am doing dictation and then towards
+ the end, the errors... In general, I think its error rate is
+ about five words out of 100 or so or will be wrong. Whisper is
+ wonderful because it will insert punctuation for you, but I
+ guess its errors are longer and that will hallucinate full
+ sentences for you. So they both have significant error rates.
+ They are just different kinds of errors. Hopefully, both over
+ time... [Talon] errors are generally shorter in extent. It do
+ not hallucinate as long.
+- Q: are any of those voice command/dictation tools libre? i can not find that information on the web
+ - (not the speaker):
+ - this FAQ <https://talon.wiki/faq/> says that Talon Voice is closed source
+ - talon voice is non-free <https://talonvoice.com/EULA.txt>
+ - Mistral 7B is apache 2.0 license i.e. no restrictions
+
+
+## Notes
+
+- From the speaker: I really appreciate the high level of accuracy that I am getting from
+Voice In. I would use Talon Voice for dictation, but at this point,
+there is a significant difference between the level of accuracy of
+Voice In versus Talon Voice. It's large enough of a difference that I'll
+probably use Voice In for a while until I can figure out how to get
+Talon Voice to generate more accurate text.
+- When you do Org mode and you have the bullets, it can allows you to naturally shard your thoughts in a way that is really easy to edit. ... It has a
+summarizing capability. It allows you to you know pull back and get a
+overview.
+- Great stuff, definitely going to test-drive Talon
+
+
+[[!inline pages="internal(2023/info/voice-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/voice-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/web.md b/2023/talks/web.md
new file mode 100644
index 00000000..f4b05d7e
--- /dev/null
+++ b/2023/talks/web.md
@@ -0,0 +1,147 @@
+[[!meta title="Emacs saves the Web (maybe)"]]
+[[!meta copyright="Copyright &copy; 2023 Yuchen Pei"]]
+[[!inline pages="internal(2023/info/web-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. --->
+
+
+# Emacs saves the Web (maybe)
+Yuchen Pei (he/him, pronounced: "eww-churn pay"), IRC: dragestil, <mailto:id@ypei.org>, <https://ypei.org>, mastodon: dragestil@hostux.social
+
+[[!inline pages="internal(2023/info/web-before)" raw="yes"]]
+
+On one hand, Emacs is the crown jewel of the GNU Project for its
+customisability and the ability to effortlessly convert users to
+hackers. On the other hand, today many of the sticky issues with
+proprietary software proliferation stems from the web, including the
+Javascript trap[1] on the client side and the SaaSS trap[2] on the
+server side. So enters the topic of this talk. I will briefly talk about
+these issues and existing non-emacs solutions, followed by ideas and
+demonstrations on how Emacs can fix user freedom on the web, including:
+emacs clients for specific websites and services, emacs-based browsers
+aka universal frontends, transformer of emacs packages to web apps and
+firefox browser extensions, and more.
+
+- [1] <https://www.gnu.org/philosophy/javascript-trap.html>
+- [2] <https://www.gnu.org/philosophy/who-does-that-server-really-serve.en.html>
+
+Projects and tools mentioned in the talk:
+
+- LibreJS <https://gnu.org/s/librejs>
+- lynx <https://lynx.invisible-island.net>
+- noscript <https://NoScript.net>
+- GreaseMonkey <https://www.greasespot.net/>
+- Haketilo <https://haketilo.koszko.org>
+- mitmproxy <https://mitmproxy.org>
+- Invidious <https://invidious.io>
+- youtube-dl <https://youtube-dl.org>
+- libretube <https://libre-tube.github.io>
+- newpipe <https://newpipe.net>
+- woob <https://woob.tech/>
+- Redirector <http://einaregilsson.com/redirector/>
+- libredirect <https://libredirect.github.io>
+- openwith <https://addons.mozilla.org/addon/open-with/>
+- mastodon.el <https://codeberg.org/martianh/mastodon.el>
+- mastorg <https://g.ypei.me/dotted.git/tree/emacs/.emacs.d/lisp/my/mastorg.el>
+- sx.el <https://github.com/vermiculus/sx.el>
+- buildbot.el <https://g.ypei.me/buildbot.el.git/about/>
+- emacs-hnreader <https://github.com/thanhvg/emacs-hnreader>
+- emacs-w3m <https://emacs-w3m.github.io/>
+- luwak <https://g.ypei.me/luwak.git/about/>
+- url-rewrite <https://g.ypei.me/url-rewrite.git/about/>
+- wkhtmltopdf <https://wkhtmltopdf.org>
+- pdf-tools <https://github.com/vedang/pdf-tools>
+- emacs-web-server <https://elpa.gnu.org/packages/web-server.html>
+- yolo.el <https://g.ypei.me/dotted.git/tree/emacs/.emacs.d/lisp/my/yolo.el>
+- bom.el <https://g.ypei.me/bom.el.git/about/>
+
+About the speaker:
+
+Yuchen is a computer programmer, mathematician and free software
+advocate based in Melbourne, Australia. He is addicted to writing
+Emacs packages[3], of which a few has made into ELPA. He likes to
+claim to be the only free software advocate in Australia, in the hope
+that someone will correct him and point him to fellow comrades
+fighting for user freedom in Oz.
+
+- [3] <https://g.ypei.me>
+# Discussion
+
+## Questions and answers
+
+- Q: I like the idea of using org mode to display data from the web.
+ Are there many different packages that does that? (I am newish to
+ Emacs, so maybe this is obvious to everyone else.)
+ - A: dragestil uses roughly 10 packages that display data from the
+ web.  Roughly half of them are org-mode based
+- Q: Have you tried EAF (Emacs Application Framework) and its browser?
+ If yes, what is your opinion about it?
+ - A: No I haven't. My impression is it would run javascript by
+ default. Not sure whether it has any extensions to block js. A
+ nice comparison between different browsers including EAF, nyxt
+ and emacs-webkit can be found in the readme file of
+ <https://github.com/akirakyle/emacs-webkit>
+- Q: I find the JavaScript trap almost impossible to avoid since I
+ like to buy used stuff online and use my online bank. How do you
+ deal with the JavaScript trap? I use NoScript and compromise on the
+ few things I really feel I cannot live wihtout. Eww is nice for a
+ lot of things, especially with R for less noise, but I need Firefox
+ for those JS-entrapped pages...
+ - A: Unfortunately I don't have a solution for that. I run
+ nonfree javascript when doing banking or online shopping, though
+ in a more isolated environment (mullvad browser) with a VPN.
+ It's a tiny portion of my online activity (<.1% I suppose), so
+ it's not *that* bad
+ - However, that does not mean emacs cannot help. woob has a few
+ clients interfacing with online banking, so perhaps at least
+ some banks allow the possibility of non-js client. It would be
+ good to look into this.
+- Q: This is not really relevant to the talk, but I am curious about
+ your nickname. Do you have some connection to Norway? Your nick
+ indicates an interest in the architectural style inspired by the
+ decoration on viking ships that was popular in the early 20th
+ century. dragestil = dragon style
+ - A: dragestil is my favourite architectural style. Look at these
+ images on wikipedia <https://en.wikipedia.org/wiki/Dragestil> -
+ aren't they gorgeous? I've only seen one of these famous ones
+ in real life, the Buksnes Church on Lofoten Islands.
+- Thoughts about Nyxt; about its aims, its approach, its relevance,
+ etc.?
+ - Very early on, ran into issues with keybindings. More
+ specifically, some conflicts between binding j to follow-hint in
+ document mode and C-s/C-r to next-suggestion/previous-suggestion
+ in prompt buffer mode. Did not continue with trying nyxt because
+ keybindings are basic functionalities IMO. Might revisit
+ someday. nyxt has a noscript-mode btw that blocks javascript. A
+ nice comparison between different browsers including EAF, nyxt
+ and emacs-webkit can be found in the readme file of
+ <https://github.com/akirakyle/emacs-webkit>
+- Q: so trying to understand, is emacs being used as a web proxy to scrub potentially privacy attacking JS?
+- Q: Anyone else here has experimented with Nyxt? I haven't much, but can't say there's not an overlap with some of the ideas of Emacs and all. Just curious.
+ - Not the speaker:
+ - I recommend qutebrowser over nyxt. For me it was just easier to use, customize and has better user experience.
+ - I do/did too. But then it occurred to be that a very simple locally-loaded extension might very well be able to transform any of the major browsers into 99 + of Nyxt when paired with an Emacs backend (and websocket async bidirectional communication between the two)... (when said extension is made of a service worker part and a per-page part, to access both browser-level API/state, and page-level DOM, with just these two bits) e.g. could expose/present open tabs as pseudo-buffers (à la "virtual buffers/files"), candidates for completion, and such
+
+## Notes
+
+- mastorg for mastodon
+- hacker news in org mode
+- emacs-web-server for hosting things from Emacs
+- Dang, this is really a great demo.
+- I love how he's using org-mode to do it all.
+- It might actually save the web!
+- Emacs as a Firefox extension!!! Ha!
+- Definitely some interesting ideas in that one, and the literate form is top-notch. Warrants a focused rewatch for me (back-n-forth between 2 talks is not conductive to my best focus it seems...)
+- I *really* like Org-Babel as a bridge to make complex one-off tasks ("why did the stuff in the database get into this state?" type things, usually) reproduceable and version-controlled.
+ - Hear hear! Howard's talks over the years have converted me to do pretty much anything in Org-mode in literate form at this point :)
+- I use org-babel for recurring tasks that I need to remember. Things I have to run once a month, etc. I guess I could use cron, but usually they aren't really time sensitive enough. Or they are things like clearing my mu4e trash, which requires that I quit mu4e.
+- "It's not Emacs!" Ha!
+
+
+
+[[!inline pages="internal(2023/info/web-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/web-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/windows.md b/2023/talks/windows.md
new file mode 100644
index 00000000..1dd47f8b
--- /dev/null
+++ b/2023/talks/windows.md
@@ -0,0 +1,70 @@
+[[!meta title="Windows into Freedom"]]
+[[!meta copyright="Copyright &copy; 2023 Corwin Brust"]]
+[[!inline pages="internal(2023/info/windows-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. --->
+
+
+# Windows into Freedom
+Corwin Brust (He/Him) - Core-win Brew-st, IRC: corwin, <mailto:corwin@bru.st>
+
+[[!template id="help"
+summary="main talk does not have captions"
+tags="help_with_main_captions"
+message="""This talk does not have captions yet.
+Would you like to help [caption this talk](/captioning)?
+You may be able to start with these [autogenerated captions](/2023/captions/emacsconf-2023-windows--windows-into-freedom--corwin-brust--main.vtt)."""]]
+
+
+[[!inline pages="internal(2023/info/windows-before)" raw="yes"]]
+
+- A Brief History of the windows port
+
+ When (and why?) was the windows port added? Was that contentious? How
+ about now? (5m)
+
+- Acquire Binaries
+
+ There are lots of ways for Windows users to get pre-compiled Emacs
+ binaries. I'll mention some and get into the particulars of Emacs as
+ found on GNU FTP. (2m)
+
+- Build Sources
+
+ I'll talk about how building for Windows differs from building for
+ other platforms, where to find documentation, important configuration
+ options to consider, requirements for the build machine. After that
+ I'll show build commands and good and not-so-good outputs, ultimately
+ covering the complete process, both using the latest release tarball
+ (from GNU FTP) as well as for building the main development branch
+ from emacs.git (hosted on GNU Savannah). (20m)
+
+- Make an Installer
+
+ I'll show how to use the NSIS script contained within
+ admin/nt/dist-build in the Emacs source tree to create an executable
+ self-installer of Emacs for Windows. (2m)
+
+- Share
+
+ I'll describe the requirements of the GNU Public License as related to
+ sharing binary versions of Emacs, and talk about what I do to comply,
+ command by command. (1m)
+
+- Automate
+
+ I'll introduce scripting I use to automate publishing binaries
+ tracking a given Emacs branch, and a couple other related tools, thus
+ recapping most topics. (10m)
+
+# Discussion
+
+- I can't imagine cross-compiling Emacs for Windows on Linux is easy, but sounds "fun".
+
+
+[[!inline pages="internal(2023/info/windows-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/windows-nav)" raw="yes"]]
+
+
diff --git a/2023/talks/world.md b/2023/talks/world.md
new file mode 100644
index 00000000..b0916167
--- /dev/null
+++ b/2023/talks/world.md
@@ -0,0 +1,98 @@
+[[!meta title="GNU Emacs: A World of Possibilities"]]
+[[!meta copyright="Copyright &copy; 2023 Anand Tamariya"]]
+[[!inline pages="internal(2023/info/world-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. --->
+
+
+# GNU Emacs: A World of Possibilities
+Anand Tamariya
+
+[[!inline pages="internal(2023/info/world-before)" raw="yes"]]
+
+- Draw and scribble in GNU Emacs 3:46
+- SVG Symbols library 1:34
+- GNU Emacs: A multimedia editor 2:45
+- Fill PDF form using GNU Emacs 1:32
+- Desktop and window management in GNU Emacs 1:36
+- Screen mirroring in GNU Emacs 0:43
+- Swipe for Text Input in GNU Emacs 0:33
+- Formula Editor in GNU Emacs 0:35
+- Transliteration in Emacs
+- Social Media client - Tumblr, reddit (slide)
+- Comics Builder (slide)
+- Matching game (slide)
+
+GNU Emacs as a lightweight IDE (CEDET Semantic)
+
+- Interactive XPath Builder in GNU Emacs 0:12
+- Interactive JSON Builder in GNU Emacs (slide)
+- Java - Generate getter/setter 0:52
+- Generate C header 0:45
+- C Rename symbols 0:56
+- SQL (offline) 3:15
+
+19:04
+
+GNU Emacs for Electronics
+<https://www.youtube.com/playlist?list=PLW9poAEUvGDC7ZWO69qrwRMqdW2xYLsGt>
+
+GNU Emacs for Note taking
+<https://www.youtube.com/playlist?list=PLW9poAEUvGDDxCZX-3xIQ3Wb1HOVcg7N>_
+
+GNU Emacs as a lightweight IDE
+<https://www.youtube.com/watch?v=d14tLD5XiCU&list=PLW9poAEUvGDAMYvvznljaNtvooaJZxsFQ&pp=gAQBiAQB>
+
+
+# Discussion
+
+## Questions and answers
+
+- Q: A lot of what you showd was the type of stuff Emacs didn't do
+ very well. This stuff looks like it could be useful for using Emacs
+ with a touchscreen and in a tablet. Have you used it for purposes
+ like these
+ - A:
+- Q: Is there a mode for using ffmpeg through Emacs or did you make it
+ yourself? Really cool stuff!
+ - A:
+- Q: These demos are always so impressive.  Do you plan to upstream
+ any of these projects into Emacs, or to publish them as e.g. ELPA
+ packages?
+ - A:
+- Q: How did you make that electronic circuit diagram? Is there a mode
+ with the symbols already available? (Thank you for your very clear
+ answer!)
+ - A:
+- Q:I've seen your blog posts with some of these features, but can
+ you link to the repo(s) where you are doing the development for
+ this/these package(s)?
+ - A: <https://lifeofpenguin.blogspot.com> (blog),
+ <https://gitlab.com/atamariya/emacs> (dev branch)
+- Q:The pdf form-filling is especially interesting - I would love to
+ do my taxes in emacs!
+ - A:
+- Q: the author is not using artist-mode?
+ - Not the speaker:
+ - I think he said canvas-mode
+ - After some searching, it appears to not be a separate package, but some code in the presenter's repo (https://gitlab.com/atamariya/emacs/-/blob/dev/lisp/svg.el?ref_type=heads)
+ - Author used xwidgets ig, probably emacs has to be compiled with support for xwdigets
+
+## Notes
+
+- Thank you for showing so many new possibilities with Emacs!
+- which package is required for pdf filling? so that works with (usually adobe authored) "pdf forms"?
+ - A: It's an extension (not a separate package) to doc-view mode. It will work with Adobe authored forms as long as the form doesn't use javascript. *Details:* <https://lifeofpenguin.blogspot.com/2022/10/take-charge-of-pdf-in-gnu-emacs.html>
+ - A: *Code:*
+ <https://gitlab.com/atamariya/emacs/-/blob/dev/lisp/pdf.el>
+ <https://gitlab.com/atamariya/emacs/-/blob/dev/lisp/doc-view.el>
+
+- This author's work is always very impressive when he shares it on his blog and on Reddit. But unfortunately he seems to develop it in his own fork of emacs.git so it's impractical for other users to try.
+
+
+[[!inline pages="internal(2023/info/world-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/world-nav)" raw="yes"]]
+
+[[!taglink CATEGORY:]]
diff --git a/2023/talks/writing.md b/2023/talks/writing.md
new file mode 100644
index 00000000..d37115ab
--- /dev/null
+++ b/2023/talks/writing.md
@@ -0,0 +1,99 @@
+[[!meta title="Emacs Turbo-Charges My Writing"]]
+[[!meta copyright="Copyright &copy; 2023 Jeremy Friesen"]]
+[[!inline pages="internal(2023/info/writing-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. --->
+
+
+# Emacs Turbo-Charges My Writing
+Jeremy Friesen (he/him) - Pronunciation: JERR-im-EE FREE-SEHN, https://takeonrules.com, <mailto:jeremy@jeremyfriesen.com>
+
+[[!inline pages="internal(2023/info/writing-before)" raw="yes"]]
+
+<https://takeonrules.com/2023/12/03/emacs-turbo-charges-my-writing/>
+
+I’ve been actively blogging since 2011. In May 2020 I switched to
+writing my blog posts in Emacs. The numbers don’t lie, I’m writing
+more than ever, in part because of Emacs.
+
+In this presentation I’ll walk through my writing setup for Emacs.
+I’ll go over the workflow of writing in Org Mode syntax with Denote
+serving as my personal knowledge management system.
+
+I’ll demonstrate some of functions (or types of functions) I use for:
+
+- Dynamic auto-completion for Org-Mode macros
+- Linking to other Org-Mode documents via different contexts (abbreviations, citations, and links)
+- Different Org-Mode blocks that map to HTML elements
+
+And with a complete post, I’ll then walk through the resulting export.
+Demonstrating the output to Hugo (and its shortcodes) as well as other
+formats.
+
+About the speaker:
+
+Jeremy Friesen is a long-time software developer but only recently an
+Emacs convert (as of May 2020). When he switched to writing posts
+using Emacs, he observed an explosion in writing, in part because of
+the joy of using a tool that he can shape and extend to meet his needs
+and wants.
+
+# Discussion
+
+## Questions and answers
+
+- Q: Do you think the line number for writing document kind of
+ distraction? Especially for notes.
+ - A:I don't find it distracting; I've been coding for a long
+ time and those fringes are partially invisible.  But help me
+ orient.
+ - or, what it brings to you, if we don't have that.
+ - Given that I'm writing code, prose, documentation, etc,
+ I prefer to have a common left fring...most of the time.
+ - Okay. I use (avy-goto-line &optional ARG) for jumping
+ - I bind C-j to jump to `avy-goto-char-timer`; My C-l is
+ bound to `consult-goto-line`
+- Q: How do you manage private and public data with your zettlekasten.
+ One of my blockers on putting my zettlekasten on the web is I don't
+ want everything in it to be public. expeccily fleeting notes
+ - A: I explicitly export a single page at a time; this ensures the
+ primary page is something I consider public.
+ - Q: Do you have anything to prevent private links from getting
+ accidentally being made publicaly accessible
+ - The main guard is the "publish this page" function.  Under
+ the hood, private notes are those that I don't specify a
+ public URL.  I do this by way of the `#+ROAM_REFS:`
+ keyword (technically there are a few other keywords I check
+ as well; for bespoke historical reasons) on the document. 
+ If it doesn't have that, then an internal link to that item
+ will not export a public link.
+- Q: Is there anything special you're using to go from Org to Hugo
+ Markdown?  This looks like a really nice setup, and I'd like to
+ give it a try!
+ - A: <https://github.com/jeremyf/dotemacs> you'll be looking for
+ jf-blogging.el (also jf-org-mode.el)
+- Q: Another font question.   What font were you using in eww?
+ - A: For fixed fonts I'm using "Iosevka Comfy Motion Fixed" and
+ for variable "ETBembo"
+- Q: What's the story behind the name "Take On Rules"?
+ - A: The blog started as a game rules oriented blog; it was my
+ time to interrogate rule systems.  But over time that drifted;
+ and once I moved to Org-Mode for writing I settled on an
+ everything and nothing blog.  My
+ <https://takeonrules.com/about/> has a bit more details on this
+ -  "Anything and nothing." Makes sense. :-)
+
+## Notes
+
+- <https://takeonrules.com> (presenter's personal blog)
+- When you put your thoughts on the physical world, it actually helps
+ you to generate more. It's kind of releasing your mind and let your
+ mind freely be free so from that kind of states you can create
+ something new
+
+[[!inline pages="internal(2023/info/writing-after)" raw="yes"]]
+
+[[!inline pages="internal(2023/info/writing-nav)" raw="yes"]]
+
+