summaryrefslogtreecommitdiffstats
path: root/2024/talks
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--2024/talks.md11
-rw-r--r--2024/talks/blee.md281
-rw-r--r--2024/talks/casual.md158
-rw-r--r--2024/talks/color.md98
-rw-r--r--2024/talks/emacs30.md92
-rw-r--r--2024/talks/flp.md68
-rw-r--r--2024/talks/graph.md40
-rw-r--r--2024/talks/guile.md196
-rw-r--r--2024/talks/gypsum.md466
-rw-r--r--2024/talks/hyperbole.md119
-rw-r--r--2024/talks/hyperdrive.md142
-rw-r--r--2024/talks/hywiki.md49
-rw-r--r--2024/talks/julia.md130
-rw-r--r--2024/talks/language.md44
-rw-r--r--2024/talks/learning.md185
-rw-r--r--2024/talks/links.md134
-rw-r--r--2024/talks/literate.md242
-rw-r--r--2024/talks/maxima.md102
-rw-r--r--2024/talks/mcclim.md195
-rw-r--r--2024/talks/open-mic.md90
-rw-r--r--2024/talks/org-teach.md46
-rw-r--r--2024/talks/org-update.md189
-rw-r--r--2024/talks/p-search.md241
-rw-r--r--2024/talks/papers.md140
-rw-r--r--2024/talks/pgmacs.md164
-rw-r--r--2024/talks/project.md258
-rw-r--r--2024/talks/regex.md125
-rw-r--r--2024/talks/repro.md36
-rw-r--r--2024/talks/rust.md160
-rw-r--r--2024/talks/sat-close.md94
-rw-r--r--2024/talks/sat-open.md55
-rw-r--r--2024/talks/secrets.md56
-rw-r--r--2024/talks/sharing.md344
-rw-r--r--2024/talks/shell.md120
-rw-r--r--2024/talks/students.md185
-rw-r--r--2024/talks/sun-close.md200
-rw-r--r--2024/talks/sun-open.md21
-rw-r--r--2024/talks/theme.md69
-rw-r--r--2024/talks/transducers.md284
-rw-r--r--2024/talks/water.md35
-rw-r--r--2024/talks/writing.md86
41 files changed, 5750 insertions, 0 deletions
diff --git a/2024/talks.md b/2024/talks.md
new file mode 100644
index 00000000..6bd50d06
--- /dev/null
+++ b/2024/talks.md
@@ -0,0 +1,11 @@
+[[!meta title="Talks"]]
+[[!meta copyright="Copyright © 2024 Sacha Chua"]]
+[[!sidebar content=""]]
+
+Thank you for joining us for EmacsConf 2024! Here are the resources:
+
+[[!inline pages="internal(2024/schedule-details)" raw="yes"]]
+
+Want to help make EmacsConf even awesomer? [[Volunteer!|/volunteer]]
+
+Thanks for checking out EmacsConf 2024!
diff --git a/2024/talks/blee.md b/2024/talks/blee.md
new file mode 100644
index 00000000..7bfa12a2
--- /dev/null
+++ b/2024/talks/blee.md
@@ -0,0 +1,281 @@
+[[!meta title="About Blee: enveloping our own autonomy directed digital ecosystem"]]
+[[!meta copyright="Copyright © 2024 Mohsen BANAN"]]
+[[!inline pages="internal(2024/info/blee-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. --->
+
+
+# About Blee: enveloping our own autonomy directed digital ecosystem
+Mohsen BANAN (he/him) - Pronunciation: MO-HH-SS-EN
+
+[[!inline pages="internal(2024/info/blee-before)" raw="yes"]]
+
+Emacs has long been recognized as the ultimate integration platform, enabling
+the creation of an unparalleled user environment. In 2010, Tomohiro Matsuyama,
+captured this concept crisply:
+
+"The reason why Emacs platform is good is that it cooperates with OS,
+not because it is good by itself."
+
+Building on this idea, Blee (ByStar Libre-Halaal Emacs Environment) can be seen
+as yet another Emacs re-distribution, akin to Doom Emacs or Spacemacs. However,
+Blee is distinct. While Doom Emacs is multi-platform oriented, Blee is paired
+exclusively with Debian &#x2014; and on mobile, with Termux-Android. While Doom Emacs
+is Emacs-centric, Blee is digital ecosystem-centric.
+
+To further elucidate Blee, let’s break down the subtitle of this presentation:
+
+"Enveloping Our Own Autonomy Directed Digital Ecosystem With Emacs."
+
+- **"Enveloping":** Blee is designed to fully integrate and encapsulate usage of
+ an entire digital ecosystem.
+
+- **"Our Own Autonomy-Directed Digital Ecosystem":** In contrast to the
+ proprietary American ecosystems of Google, Microsoft, Meta, Apple, and Amazon,
+ Blee is part of *the Libre-Halaal ByStar Digital Ecosystem*. ByStar is ours.
+
+By\* challenges the existing proprietary American digital ecosystem while
+operating concurrently alongside it. ByStar's primary offerings are tangible
+autonomy and genuine privacy on a very large scale. ByStar represents a moral
+inversion of the proprietary American internet services model. By\* is about
+redecentralization of internet application services.
+
+Some might dismiss ByStar as an ambitious, utopian vision. In response, I’ve
+authored a book titled:
+
+------------------------------------------------------------------------
+
+<!-- <img align="right" height="230" src="https://github.com/mohsenBanan/mohsenBanan/blob/main/images/frontCover-1.jpg"> -->
+
+<p align="center"><font size="+3"><b>Nature of Polyexistentials:</font></b></p>
+
+<p align="center"><b>Basis for Abolishment of the Western Intellectual Property Rights Regime</b></p>
+
+<p align="center"><b>And Introduction of the Libre-Halaal ByStar Digital Ecosystem</b></p>
+
+
+<p align="left">On Line: &emsp; <a href="https://github.com/bxplpc/120033">PLPC-120033 at Github</a> -- <a href="https://doi.org/10.5281/zenodo.8003846">DOI </a>
+ --- PDF: <a href="https://github.com/bxplpc/120033/blob/main/pdf/c-120033-1_05-book-8.5x11-col-emb-pub.pdf">8.5x11</a> --
+ <a href="https://github.com/bxplpc/120033/blob/main/pdf/c-120033-1_05-book-a4-col-emb-pub.pdf">A4</a>
+<br>
+US Edition Book Prints At Amazon: &emsp; <a href="https://www.amazon.com/dp/1960957015"> US </a> -- <a href="https://www.amazon.fr/dp/1960957015"> France </a> -- <a href="https://www.amazon.co.uk/dp/1960957015"> UK </a> -- <a href="https://www.amazon.co.jp/dp/1960957015"> Japan </a>
+&emsp; (424 pages --- 6 x 0.96 x 9 inches)
+<br>
+International Edition Book Prints: &emsp; <a href="https://jangal.com/fa/product/252689/nature-of-polyexistentials"> Iran (Jangal Publishers) </a>
+&emsp; (406 pages --- 23.5 x 16.5 cm)
+</p>
+<p align="left">Comments, Feedback: &emsp;
+<a href="mailto:plpc-120033@mohsen.1.banan.byname.net">plpc-120033@mohsen.1.banan.byname.net</a>
+</p>
+
+------------------------------------------------------------------------
+
+Blee and Emacs are integral parts of ByStar.
+
+Analysis of digital ecosystems is inherently interdisciplinary, and so is my
+book. But, in this presenation, I won't be delving much into the philosophical,
+ethical, moral, societal, and social dimensions of the book. This presentation,
+focuses on the technical aspects of ByStar and Blee, specifically through the
+lens of Emacs users and developers.
+
+Blee’s approach to integration differs from traditional Emacs culture in three
+key ways:
+
+1. Avoiding the "Curse of Lisp": While Emacs culture emphasizes doing
+ everything in Lisp, Blee consciously avoids this pitfall.
+
+2. Cultivation of Best-of-Breeds: Emacs folklore tends to follow a laissez
+ faire approach, but Blee is disciplined around cultivation of selected best
+ of breeds.
+
+3. Digital Ecosystem Orientation: Unlike traditional Emacs, which is
+ component-focused, Blee is designed in the context of the entirety of our
+ own digital ecosystem.
+
+In ByStar, much of the integration occurs outside of Emacs, through a framework
+called BISOS (By\* Internet Services OS). BISOS builds on Debian to provide a
+unified platform for developing both internet services and software-service
+continuums. BISOS and Blee are intertwined.
+
+Now, in 2024, I am advancing Matsuyama concept with specificity:
+
+"The reason why Emacs platform is good is that it facilitates creation of
+ integrated usage environments like Blee, which cooperate with Debian, BISOS
+ and ByStar."
+
+An early version of BISOS and Blee is available for public use and
+experimentation. To get started with BISOS, Blee, and ByStar, visit
+<https://github.com/bxgenesis/start>. From a virgin Debian 12 installation
+("Fresh-Debian"), you can bootstrap BISOS and Blee in one step by running the
+raw-bisos.sh script. It produces "Raw-BISOS" which includes "Raw-Blee". You
+can then customize Raw-Blee to create different parts and aspects of your own
+ByStar DE.
+
+I welcome your thoughts and feedback, especially if you experiment with Blee,
+BISOS, ByStar, and the model and the concept of Libre-Halaal Polyexistentials.
+
+About the speaker:
+
+Mohsen Banan is a software and internet engineer. He was one of the principal
+architects of the Cellular Digital Packet Data (CDPD) network specifications. He
+is the primary author of two Internet RFCs. He is the principal architect of the
+ByStar Digital Ecosystem and BISOS and Blee. The software and internet services
+that he publicly offers all conform to the definition of Libre-Halaal Software
+and Libre-Halaal Internet Services. All of his public writings are web published
+and unrestricted. He has never applied for a patent. As an expert witness he has
+assisted in legal efforts involving invalidation of a number of patents. He has
+been using Emacs since 1986.
+
+Previous Talks: <https://emacsconf.org/2021/talks/bidi> and
+ <https://emacsconf.org/2022/talks/mail>
+
+# Discussion
+
+## Questions and answers
+
+- Q: You mentioned that there's two editions: one aimed at
+ westerners, and one for worldwide readers. I'm from Brazil, which
+ edition would you recommend? It's a western country, but you
+ didn't make the distinction exclusive for the second edition, so I
+ thought it would be better to ask.
+ - A: For everybody listening to this conference, the
+ **international** edition is the right choice.
+ - It features more aggressive stances against intellectual property
+ (being linked specifically to the American culture)
+ - There are pieces in the book where the typical American audience
+ might be offended
+ - ...But if your skin is thick enough to deal with reasonable
+ criticism, the international edition is for you.
+- Q:Thank you for this talk! How does your perspective interface with
+ works such as Yanis Varoufakis' Technofeudalism?
+ - A: Not familiar with the book.
+ - There is a lot of global growth and collective understanding
+ towards the notion that the direction we're headed in (i.e.
+ American digital ecosystems) is dangerous.
+ - We should revisit the entirety of the strategy.
+ - \[For the questioner\] Can you clarify? (I'll write to you :) )
+- Q:To what extent do you agree that the introduction of proprietary
+ systems in education creates an environment for exploitation while
+ at the same time diluting the learning value of the curriculum? My
+ computing education at school amounted to learning how to use the MS
+ Office suite - ie, the opposite of lasting, open knowledge.
+ - A: The idea is that teaching and learning should be
+ unrestricted, such as the Muslim/Iranian saying: "Passing along
+ the learning is the tax on having learnt".
+ [ The "tax" on knowledge is sharing it with others. زكات علم، آموختن آن به ديگران است. ]
+- Q:As a specific example of how "ownership is not clean", look at the
+ Star Trek Picard series: they continuously asked Patrick Stewart to
+ come do another Star Trek series but he wouldn't because Star Trek
+ changed from what it used to be, at least until it they came up with
+ a series that honored what Star Trek used to be. Does this
+ intersect?
+ - A: Not sure if I fully get the point.
+ - On my criticism of the FOSS movement:
+ - The idea is that we have jumped on the FOSS movement and
+ recognized it as an alternative, but we haven't looked
+ deeply enough to see if our own philosophy and movement have
+ problems.
+ - The problems that I note is that the FOSS movement does not
+ recognize clearly and explictly that the entirity of the
+ intellectual property system is flawed.
+ - It's only now that we are seeing the FOSS movement is
+ broader than the Western world.
+ - The labels of Free Software and Open Source are not
+ necessarily correct.
+ - We are not paying enough attention to establishing
+ relationship with society.
+ - There's a whole chapter in the book dedicated to this topic.
+ - \[To the questioner\] Clarification please
+ - The point of the question was even though a media company
+ owned Star Trek they couldn't do what they wanted with the
+ series if you involve other people. The question was also
+ open ended so you did answer it by taking it where you
+ wanted it to go.
+- Q: I am involved in Politics in my country, my party is very
+ sympathetic to FOSS ideals and I've been pushing for better policy
+ with regards to public procurement. Do you have any recommended
+ reading materials designed for such an audience?
+ - A: The idea is that my own book would be an excellent resource. I'd say the bibliography in the book contains various other pointers that could be quite useful.
+- Q: How can we promote a culture of more active thought with regard to
+ the societal impacts of ethical and philosphical choices made in the
+ wider FOSS community?
+ - A:
+
+## Notes
+
+- Am I too young to understand? Maybe I need to read the book
+ - Aah I get it!! IPR forces single ownership of what are
+ polyexistentials
+- From YouTube: ​​gnome is not halal. ​​gnome is western
+ - Did he elaborate on how GNOME is haram by his
+ definition? Oh, sorry, nevermind, the quote on GNOME isn't from
+ the speaker.
+- interesting. and - obviously - radical thoughts. not sure
+ about if Americanism critique is the core, but moreover a general
+ critique of (extreme) capitalism mechanism. but that's certainly
+ not merely a "Western" issue. imo
+- Okay, I have to admit, I love this
+ political/philosophical dissection of software's impact on
+ society.   Very interesting.
+ - It's like an extension of the GNU (free software)
+ thought. I think I need more literature on that topic\...
+ - Essentially a free, open-source and
+ privacy-respecting ecosystem akin to those provided by the big
+ tech companies (Google, Microsoft, Apple).
+- Great talk on Polyexistentials. Awesome to see
+ EmacsConf including international voices .
+- He hit the nail on the head:  This point has been on
+ my mind: Capitalism creates artificial scarcity and then
+ manufactures junk to fill it.  How can that be overcome?  So that we
+ get software that is actually needed \...
+ - I don't know if this is a problem
+ with Capitalism which can be many things to different people to
+ the point the term might not mean much. I have a problem with
+ people competing through corrosion rather than compition. For
+ example google is restricting access to google drive api making
+ everybodys app but googles worse. Capitilism "not fake
+ Capitalism" predospes a free market which would limit this
+- The blee panel actually is cool!
+- Very thought-provoking talk!
+- Dovetailing nicely / with other talks from EmacsConf 2024
+ - Working **on** Emacs vs working **for** Emacs
+ - Peter mentioned "too much choice"
+ - Mixing org-mode with programming languages
+ - org-babel has successfully integrated org-mode with all
+ kinds of languages
+ - Has happened within the context of literature programming
+ - cf. Literate Programming for the 21st Century (EmacsConf
+ 2024)
+ - Traditional programming mixed with org-mode
+ - polymode is key to that
+- Several concepts which were introduced like "dynamic blocks
+ everywhere" and "COMEEGA" would probably require other talks
+- Probably my favourite talk of the event
+- Wonderful talk!
+- This presentation gets better and better.
+- going to go checkout the book later as half way
+ thorugh the talk i got term overload
+- Great talk, great software.
+- Thank you for the presentation Mohsen.
+- while this heavy topic is certainly a major critique of
+ capitalism as such, i certainly would not mix in here any sort of
+ religion-related things. hence leveraging "Halaal" for this is
+ quite disturbing.
+- I skipped the whole thing because I suspected it would just annoy me for no other reason than that one term. (Maybe this was excessively prejudicial of me, but seriously, not my religion, I suspect I'd be unwelcome.) (maybe this is an English-specific thing, Do Not Mention Religion, because last time we mentioned it we had centuries of religious wars.)
+- Mohsen's response to the above two bullets.
+ Halaal is a very sensitive and potent word.
+ There is an entire chapter titled: "Introducing Halaal and Haraam into Globish" in the book.
+ In those 10 pages, I clarify that my use of Halaal is philosphical not religious.
+ Unfortunately the equivalent word for halaal does not exist in English.
+ Americanists, should first try to understand what halaal really means.
+- Hard topic, it feels like we are in an era of closing open-source software, eg redhat
+
+- YouTube comment: Phenomenal thinking. I will be reading the Nature of Polyexistentials
+- YouTube comment: Dude was cooking with this one 🔥🔥🔥🔥
+
+[[!inline pages="internal(2024/info/blee-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/blee-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/casual.md b/2024/talks/casual.md
new file mode 100644
index 00000000..b940d859
--- /dev/null
+++ b/2024/talks/casual.md
@@ -0,0 +1,158 @@
+[[!meta title="Re-imagining the Emacs User Experience with Casual Suite"]]
+[[!meta copyright="Copyright &copy; 2024 Charles Choi"]]
+[[!inline pages="internal(2024/info/casual-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. --->
+
+
+# Re-imagining the Emacs User Experience with Casual Suite
+Charles Choi (he/him) - Pronunciation: Che, IRC: kickingvegas, <http://yummymelon.com/devnull/> , Mastodon: <https://sfba.social/@kickingvegas>
+
+[[!inline pages="internal(2024/info/casual-before)" raw="yes"]]
+
+To date, the predominant interaction model for Emacs has been to use keybindings or the mini-buffer prompt to issue commands. These commands are drawn from a vast ecosystem of packages (both core and third party) designed to extend Emacs. When these commands are used in aggregate, the aforementioned interaction model places a high cognitive load on the user. It also sets a very steep learning curve for Emacs.
+
+The inclusion of the Transient model package in Emacs facilitates a different interaction model using keyboard-driven menu interfaces. Menu interfaces excel at discovery and recognition, neither of which are well supported with keybindings and a prompt. Menu interfaces also can be made contextual to allow the user to focus on a task at hand.
+
+Casual Suite is a personal effort to re-imagine the Emacs user experience by using keyboard-driven Transient menus as its primary interaction model.
+
+This talk describes Casual Suite, detailing its implementation and operation.
+
+About the speaker:
+
+Charles Choi has been an Emacs user since 1989 but did not get around to learning Elisp until 2022. He possesses formal knowledge of computers with a Ph.D. in Computer Engineering received from the University of Virginia in 1997. He is from and continues to live in San Francisco.
+
+
+# Discussion
+
+## Questions and answers
+
+- Q: I wonder whether casual can only be used with the packages you
+ mentioned or whether it can be used with whatever package you like?
+ e.g., can I use causal with AUCTeX?
+ - A: More the latter; can the questioner clarify the question?
+ - People are free to fork and iterate over casual
+ - transient.el already has mechanism for modifying an existing
+ transient to redefine the bindings over the definition
+- Q: \[related to the previous\] Are there any patterns emerging, such
+ that it would seem possible to 1) systematize 2) automate(?) the
+ mapping of mode commands to keyboard-driven menus? Possibly even
+ have an auto casual wrapper for an uncovered mode?
+ - A: 
+- Q: Does Casual have a log where you can see what commands were
+ invoked?  This is always available via M-x view-lossage or via
+ command-log-mode, but I\'m wondering if it can do for Emacs commands
+ what Magit\'s process buffer (\$) does for learning Git commands. 
+ (Leo just spoke about this.)
+ - A: That just works. (But try keycast-log-mode instead of
+ view-lossage.)
+- Q: Is there a setting to close menu after executing command?
+ - A:
+- Q: What modes are you working on at the moment for casual / are excited to explore?
+ - A:
+- Q: Why not improve which-key (which seems to be included in Emacs 30
+ by default) to accommodate for your very slight differences instead
+ of reinventing the same thing from scratch in an incompatible way?
+- \@majorgnu on YouTube: This is great! Emacs\'s plethora of powerful
+ functionality really needs a better way to surface itself to users
+ and this is a great step in that dirrection. I do have a few
+ thoughts, though: 
+ - Is there a convenient way for a user in a transient to get more
+ information about a menu entries? Specifically: the normal
+ keybindings (if available) and command documentation. 
+ - It could be useful to gather and display statistics about menu
+ usage. Imagine being able to generate a personalized keybinding
+ cheat sheet with the menu items you use the most!
+- Q: Is there a way to update a part of a transient menu?
+ - A: menus can be refreshed
+ - But that refreshes the whole menu
+ - Okay, I thought so. I've been calling (transient-setup) in transient infixes where required, but occasionally it's slow. And in every case it throws away the values of all the other infixes that have been set
+## Notes and feedback
+
+- You can also use the menu from the keyboard with F10 and arrow keys. I turn the menu off, but I sometimes use it anyway with F10.
+- is that fvwm?
+- I disagree that searching for stuff in menus is easier than remembering commands. It's probably easier to learn, but not easier to use once you know them.
+ - worst of all: searching in a hierarchical effing hamburger
+ - Hamburger menus make sense on extremely small screens, not on other screens.
+ - yeah, I don't think updates are that granular
+- 2 hour Calc talk when?
+- I'm really wowed by your talk
+- this was such a great talk
+- I want casual support for more modes :) guess I need to do that, then
+- The enthusiasm around casual always surprises me, because all the stuff is documented and easy to find if you read the manual and use the help system :(
+ - and can remember it all! with casual, you don't *need* to
+ - (and in time, use will nail it into an aging memory)
+ - I don't use casual, but the obvious problem with the manual/help system is that you still have to memorize it all
+ - Even if it just means memorizing that it exists in the first place
+ - yeah. I use org like a savage because I only need it a few times a month and I can only remember about 5% of its capabilities...
+ - and I bet most people are like that for most modes they only use occasionally.
+ - You can look a lot of commands up using apropos, you don't need to memorise everything?
+ - But I also set transient-show-popup to nil
+ - apropos is so *clumsy* compared to transient though
+ - there's a nice benefit to having it there and callable by one more keystroke
+ - but then I grew up with WordStar and have long missed its menu/keybinding stuff
+ - Consider less commonly used commands like transpose-region or repunctuate-sentences. How would the user think to even look for commands that do these things? If they do remember, then they have to look up the keybindings every time they use them until it becomes muscle memory. For rarely used commands like these it might never become muscle memory.
+- But a question of mine is do you use and make use of transient-default-level?
+- There's a repunctuate-sentences?!
+ - Case in point. if repunctuate-sentences was in the casual editkit menu on text operations there would be no discovery or memorization issue.
+ - Yes, it is very useful when arguing for double-spacing.
+ - oooh, useful! I'm a newbie though, only been using emacs since 1992 so of course I hadn't discovered that yet :)
+ - in my case, overriding my single-space muscle memory when contributing to double-space-end GNU projects :)
+- that's a little like why I want some kind of embark/cmap thing too, so I can have friendly menus that are scoped to the type of thing at point
+- to the extent post-its still serve a function for much simpler things for most people, contextual surfacing of what's possible serves (and not the firehose, the select few) makes similar sense to me.
+- I want to push back on the point that Transient gives you discoverability for free. Perhaps I am too much of a zoomer, but a big menu with a lot of options is just too much information at once for me. The irony is that I often cannot use isearch/occur to search the text buffer as one would expect from Emacs to.
+ - Similarly, I do find that with my embark menus, I occasionally use C-h to then search for a command with completion
+ - I'm with you on the disadvantages of transient -- it breaks the unspoken Emacs contract of treating every buffer the same. But that's unrelated to the fact that it helps many people with the discoverability and memorization issues.
+ - I think the poweruser vs casual user optimization was answered in the naming choice by Charles :)
+ - doesn't vertico also break this unspoken contract, karthik?
+ - For me that speaks to a deeper contradiction in Emacs..
+ - yes :( I much prefer vertico's predecessor for that reason, but it's dead :(
+ - to a much lesser extent. The minibuffer prompt itself works like a regular buffer
+- if casual is not dedicated to powerusers, it's unfortunate that it does not help its users to become powerusers by disagreeing with some key bindings, i.e. it has different bindings from default emacs
+ - that argument wouldn't go far with the Doom/Spacemacs people though, with their "non-default" default bindings and such
+- I played around with an experiment to write a small alternative to Casual that would re-use my quick-help "framework" to extract recommended bindings from the current keymap.
+- NullNix: i mean, for vertico, this is just the default. you can easily tell vertico to use a buffer instead.
+- You can isearch inside the minibuffer prompt when using Vertico for instance
+ - can you?! new feature in the last year, perhaps? will look again
+ - not the first time my ignorance has torpedoed me
+ - ok i agree with your latest point but still minibuffer is different than other normal buffers imho :)
+ - Why is it different? The minibuffer is just a buffer, no reason it should break the Emacs contract.
+ - Vertico does not take over the "event loop" like transient does -- not sure how to describe this correctly. So most Emacs commands will work from inside Vertico, especially once you enable recursive-minibuffers
+ - I meant you can run regular emacs commands on the prompt "line" in the minibuffer when using Vertico
+- mct looks interesting...
+- karthik: M-x C-s does not behave like i-search in a normal buffer for me, using vertico
+- +1 for edebug, that would be great
+- wonders about gud and gdb interfaces -- would definitely benefit
+- (poke has already gained a transient menu system :) )
+- Doesn't Ediff present a help buffer at the bottom?
+- yes, but it's so small it's easily overlooked on modern big screens
+- yes, ironically ediff has an anemic one already, and I don't see people criticizing it
+ - Heh, modern screens means big, right? On the other hand, on non-modern screens (small) transient buffers take over too much of the screen :)
+ - honestly I wonder if I should rejig ediff to use transient :)
+ - I can recommend (setopt ediff-window-setup-function 'ediff-setup-windows-plain)!
+- yeah, did that a loong time ago, but most people haven't...
+- The memory and cognitively impaired if merely due to aging thank you Charles, that's not just you
+- hear hear
+- there are also menus :)
+- If you use Avy, try using an Avy command when running find-file using Vertico. You'll see Avy jump candidates in the current text of the minibuffer prompt, and you can jump there.
+- Indeed, but Charles addressed this in clarification of where Casual stands in the design space (vs menus, M-x, etc), namely context-specific keyboard-driven interactive use where some toggling of args can stick while you build a command (i.e. Transient)
+ - menus are also context-specific actually
+ - that said, I agree that transient is an alternative interface with various advantages
+ - it is just not the only way to learn Emacs commands
+ - And menus are also keyboard driven, as M-x tmm-menubar shows
+ - Indeed, I just wanted to point out that if ever Transient fills an interesting/useful point in design space, so those its generalized application to other modes (vs Magit)
+- that said, I agree that transient is an alternative interface with various advantages
+- it is just not the only way to learn Emacs commands
+- And menus are also keyboard driven, as M-x tmm-menubar shows
+- time for a keyboard upgrade, i can't be bothered to type C-c c or M-x anymore either
+- YouTube comment: Great presentation! I've been using Casual since it arrived and have been very happy with it; it makes working with emacs much easier. I now also create transients for commands I use, neatly grouped in categories. Transients: life saver.
+- YouTube comment: This is great! Emacs's plethora of powerful functionality really needs a better way to surface itself to users and this is a great step in that direction. I do have a few thoughts, though:
+ - Q: Is there a convenient way for a user in a transient to get more information about a menu entries? Specifically: the normal keybindings (if available) and command documentation.
+ - It could be useful to gather and display statistics about menu usage. Imagine being able to generate a personalized keybinding cheat sheet with the menu items you use the most!
+
+[[!inline pages="internal(2024/info/casual-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/casual-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/color.md b/2024/talks/color.md
new file mode 100644
index 00000000..ba01397c
--- /dev/null
+++ b/2024/talks/color.md
@@ -0,0 +1,98 @@
+[[!meta title="Colour your Emacs with ease"]]
+[[!meta copyright="Copyright &copy; 2024 Ryota Sawada"]]
+[[!inline pages="internal(2024/info/color-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. --->
+
+
+# Colour your Emacs with ease
+Ryota Sawada (he/him) - Pronunciation: Ree-yo-tah, https://hachyderm.io/@rytswd https://x.com/rytswd
+
+[[!inline pages="internal(2024/info/color-before)" raw="yes"]]
+
+Emacs comes with various themes to pick from, and there are myriad
+different themes out on the Internet. After choosing a theme, you can make
+any adjustments to add or remove certain colours exactly as you wish. Emacs
+provides you so much control over how you work, write, code, and everything
+in between, including the colour choice. You are certainly left equipped
+with all the controls for your theme as well.
+
+However, when it comes to colour, there is a bit of difficulty: RGB.
+Hexadecimal colour codes are ubiquitous and relatively easy to understand.
+Yet, they are difficult to work with, especially when you need to make
+different shades and variants. In recent years, CSS started to support not
+just sRGB (standard RGB), but other colour spaces such as HSL, Oklab, etc.
+With Emacs, we also have a great set of tools from color.el, as well as
+this amazing package called ct.el (<https://github.com/neeasade/ct.el>)
+
+In this talk, we will have a quick look at different colour spaces than
+sRGB, namely HSL and LCH. We will check out how ct.el can make a set of
+colour shades and variants at ease, and how they can help define themes.
+Finally, Ryota will share his own theme called Hasliberg Theme, which is
+using the full power of LCH.
+
+Resources (will be public starting Dec 7):
+
+- <https://codeberg.org/rytswd/emacsconf-2024>
+- <https://github.com/rytswd/hasliberg-theme>
+
+About the speaker:
+
+Ryota started his Emacs journey more than a decade ago, but was forced to
+put it aside for work requirements soon after. A few years ago, he made a
+return to Emacs, and now is using Emacs almost exclusively for any sort of
+coding tasks. This talk focuses on the modern Emacs setup where he thinks
+his Emacs looks and works better than many other editors. He works for Civo
+as a Principal Engineer.
+
+
+# Discussion
+
+## Questions and answers
+
+- Q: Is there any intention to create a library for working with more experimental color spaces? Pulling code out of Hasliberg for this purpose, perhaps?
+ - A: Started the journey just for myself, and didn't think this
+ would be useful for others.
+ - A: Making it a library is definitely something that I can think
+ about.
+- Q: Can we have a dark as well as light theme variations made from your theme?
+ - A: You can customize the code easily into dark, light and change
+ something based on someone's mood. Keep in mind that it is a
+ personal theme, so customize as you see fit.
+
+## Notes
+
+- Interesting idea to be inspired from tailwind and
+ frontend dev, thanks for talk
+- [https://github.com/alphapapa/prism.el](https://github.com/alphapapa/prism.el)
+ has some interesting colour experiments as well
+- i felt about same with the christmas tree colored
+ code editor
+- annoyance is a great motivator for learning Emacs Lisp
+- Yay fellow Dvorak user!
+- [https://github.com/rytswd/hasliberg-theme](https://github.com/rytswd/hasliberg-theme)
+- Thank you everyone for tuning in! Also my slides are
+ available at
+ [https://codeberg.org/rytswd/emacsconf-2024](https://codeberg.org/rytswd/emacsconf-2024)
+- Contributing these developments back to ct.el sounds like a really fantastic idea, and I would really love to see it 🙂 I would love to start writing my own themes using this strategy
+- hasliberg-theme-use-dark-nature-colour-palette (and a dark-red variant) is going to be useful for dynamically switching in as I'm working with remote systems e.g. staging and production systems
+- i like that type of usage scenario
+- Fellow orange fan here btw ;)
+- Ryota must have used those old skool CRT terminals that had orange as their primary colour for orange to be his favourite colour :)
+ - bernstein color we used to say in German for that type of CRT orange
+ - haven't used it myself, but remembering this retro terminal project, which features some nice looking oldschool term/color schemes :) https://github.com/Swordfish90/cool-retro-term
+- rytswd: Thanks for the support everyone! Now the world knows I'm an orange person ;)
+
+- Great talk! Thank you 🙂
+- Excellent talk, thanks!
+- Beautiful theme
+- Thanks :)
+- Awesome job Ryota, thank you for sharing!
+
+
+[[!inline pages="internal(2024/info/color-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/color-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/emacs30.md b/2024/talks/emacs30.md
new file mode 100644
index 00000000..5fbfec44
--- /dev/null
+++ b/2024/talks/emacs30.md
@@ -0,0 +1,92 @@
+[[!meta title="Emacs 30 Highlights"]]
+[[!meta copyright="Copyright &copy; 2024 Philip Kaludercic"]]
+[[!inline pages="internal(2024/info/emacs30-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 30 Highlights
+Philip Kaludercic
+
+[[!inline pages="internal(2024/info/emacs30-before)" raw="yes"]]
+
+
+
+# Discussion
+
+## Questions and answers
+
+- Q: which-key was a third-party package for a long time. Is there work to bring any other popular packages into core Emacs for Emacs 31+? (magit, counsel, etc)
+ - A: One package that was being discussed was **macrostep**
+ ([https://github.com/emacsorphanage/macrostep](https://github.com/emacsorphanage/macrostep)).
+ - **Magit** is an ongoing discussion, but I don't know of any
+ concrete progress.  Generally the best way to help is just to
+ send a message to emacs-devel and keep to it.  Feel free to CC
+ me to help!
+- Q:When thinking about using Emacs on android I start realising all
+ the other software I also want with it. For example pdf-tools wants
+ a small additional emacs specific program to be installed and
+ notmuch wants notmuch. Any way to get the goodness of Emacs for
+ android with this other stuff? Using nixos or guix, nix-on-droid to
+ make an apk with extra stuff?
+ - A:
+- Q: Does package-vc download a tarball from the specified git repository or clone the repository itself?
+ - A: Clones the repository (that's the -vc in the name)
+ - Compare with vc-clone (which is now exposed as an interactive
+ command compared to before)
+- Q: How is the new behavior of M-q in prog-mode (prog-fill-reindent-defun or something like that) different from the behavior of C-M-q (indent-pp-sexp) in older Emacs versions?  (My apologies if indent-pp-sexp is not bound to C-M-q by default, I can't tell)
+ - A: The difference is in the behavior when the cursor is inside a
+ string.
+- Q:Any plans for Emacs running in IOS?
+ - A: Probably not. Emacs support on Android is completely free. To
+ my understanding, you need Xcode to build iOS stuff.
+- Q: I am worried about the situation on non-free systems. There was
+ talk about the Windows and the macOS versions being as good as
+ unmaintained. Where do we go from here? I gather that most users of
+ Emacs are still on non-free platforms and will remain to be there.
+ - A: I don't know about the last point if that's true; there are
+ no statistics on the matter. I know Corwin is involved in the
+ Windows port. Someone has to do the work. Eli is on a Windows XP
+ system. As long as he's doing that, there's going to be
+ Windows some way or another.
+ - Corwin: accessibility issue (ex: maybe that XP system is
+ what they can afford, or what they need to use for work)
+ Concerning when we hear about black holes in the braintrust
+ for support for these things.
+ - And the same thing applies for macOS.
+- Q: I'm a bit confused about what version of org I should write
+ towards, because there's org (in emacs) org (in elpa) org (in org)
+ etc... Is there a best practice on what-org-to-use when following
+ emacs-latest?
+ - A: Depends on... my rough heuristic is if you're using the
+ latest features of Org, use the one on ELPA, maybe. Personally I
+ just use the one bundled in Emacs.
+
+## Notes and feedback
+
+- Loving to use all of these changes.
+- Graphical Emacs in Android is awesome
+ - that seems more usable than i thought it would be
+ - swipe left/right for next buffer?
+ - I was able to load my custom configuration on Android by traversing through the directories with M-x shell.
+- Oooo, which-key is so helpful for beginners. It fits right in to the core. Great addition!
+ - that would have saved me a lot of time years ago haha
+- An alternative to both which-key and prefix-help-command (which pkal is demoing right now) is embark-prefix-help-command
+ - thanks, I was not aware of it (I still "M-x embark-..." or preset bindings from completion/vertico candidates) - how does it differ from prefix-help-command?
+ - This is my favourite change, but not all packages are compatible with it...
+ - It offers a completing-read interface to complete the partial command.
+ - completion within completion within completion within.. love it
+ - (setq prefix-help-command 'embark-prefix-help-command)
+ - Will try it for a while, thanks for the pointer
+ - it's completion all the way down
+- use-package :vc is much welcome! (as one coming from Clojure's deps, such a breeze)
+- great talk!
+- YouTube comment: Really good rundown of the changes. Thank you! Looking forward to start using 30.
+- YouTube comment: I would like to know when EMACS 30 will be officially released? I looked around Arch repos and EMACs website; I just see EMACS 29.4. Also I did install from the Google Store the EMACs editor on my Samsung S22, it works but one problem is I can't access file directors in the home directory. It is very annoying, yet the EMACs editor works well. There is so much security and permissions on these Android devices, makes it very annoying just to open a text file.
+
+[[!inline pages="internal(2024/info/emacs30-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/emacs30-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/flp.md b/2024/talks/flp.md
new file mode 100644
index 00000000..037f12e7
--- /dev/null
+++ b/2024/talks/flp.md
@@ -0,0 +1,68 @@
+[[!meta title="The Free Life Planner: Empowering Lives with Emacs-Based AI"]]
+[[!meta copyright="Copyright &copy; 2024 Andrew Dougherty"]]
+[[!inline pages="internal(2024/info/flp-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 Free Life Planner: Empowering Lives with Emacs-Based AI
+Andrew Dougherty (he/him) - Pronunciation: DOH-er-tee, IRC: aindilis, <https://frdcsa.org/> Facebook: <https://facebook.com/frdcsa>, <mailto:adougher9@gmail.com>
+
+[[!inline pages="internal(2024/info/flp-before)" raw="yes"]]
+
+The Free Life Planner (FLP) is an ambitious, Emacs-based artificial
+intelligence project aimed at creating a comprehensive life management
+system to address global challenges like poverty, hunger, and
+disease. This talk will provide a 5-year progress report on FLP,
+highlighting its integration with Emacs and its potential to serve as
+a virtual secondary social safety net.
+
+FLP leverages the power of free/libre software and AI to offer
+intelligent planning and decision support across various life
+domains. Key features include modules for finance, health, nutrition,
+and transportation, all accessible through an Emacs interface. The
+system employs advanced planning algorithms, machine learning, and
+natural language processing to provide personalized assistance
+tailored to individual needs.
+
+We'll explore how FLP uses Emacs as its central developer console,
+demonstrating how it can control Emacs through agentic software. The
+presentation will showcase practical applications of FLP, such as the
+Gourmet meal planner and the financial planning module, illustrating
+how these tools can improve quality of life and promote self-reliance.
+
+The talk will also address the challenges faced in developing FLP,
+including privacy concerns and the complexities of releasing such a
+comprehensive system. We'll discuss our commitment to free/libre
+software principles and our vision for FLP's future as a tool for
+social good.
+
+By attending this talk, you'll gain insights into:
+- How Emacs can serve as a platform for advanced AI applications
+- The potential of free/libre software to address global challenges
+- Practical applications of AI in daily life management
+- The intersection of technology and social responsibility
+
+Join us to explore how the Free Life Planner, powered by Emacs and AI,
+aims to transform lives and create a more equitable future for all.
+
+About the speaker:
+
+Andrew Dougherty is the creator of the Free Life Planner and the
+driving force behind the FRDCSA project. With over two decades of
+experience in AI and free software development, Andrew is passionate
+about leveraging technology to address social challenges. His work on
+FLP combines cutting-edge AI techniques with the extensibility of
+Emacs to create a comprehensive life management system. Today, Andrew
+will share insights from FLP's development over the past fifteen
+years, demonstrating how Emacs-based AI can be harnessed to empower
+individuals and communities worldwide.
+
+See also: [EmacsConf - 2019 - talks - A.I. that Helps Play the Game of Your Life - Andrew J. Dougherty](https://emacsconf.org/2019/talks/07/)
+
+[[!inline pages="internal(2024/info/flp-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/flp-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/graph.md b/2024/talks/graph.md
new file mode 100644
index 00000000..990372f8
--- /dev/null
+++ b/2024/talks/graph.md
@@ -0,0 +1,40 @@
+[[!meta title="Graph mode - A major mode to create, edit and display discrete element graphs."]]
+[[!meta copyright="Copyright &copy; 2024 John Darrington"]]
+[[!inline pages="internal(2024/info/graph-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. --->
+
+
+# Graph mode - A major mode to create, edit and display discrete element graphs.
+John Darrington (he/him) - IRC: jmd, <mailto:john@cellform.com>
+
+[[!inline pages="internal(2024/info/graph-before)" raw="yes"]]
+
+This project is a major mode to assist creation and editing of SVG
+images depicting discrete element graphs, optionally with presentational
+properties. The creation of such images may be of interest to
+engineers, pure mathematicians with an interest in graph theory,
+computer scientists, data administrators and others.
+
+The user specifies the topology and simple presentational attributes of the
+system and emacs takes care of the rest. Interaction is via conventional M-x
+interactive commands, or by keybindings/mouse movement.
+
+If desired, the SVG output may be edited using an external tool or by
+hand. Keeping the generated SVG readable and easy to edit is a design
+goal of the project.
+
+Example uses may include the creation of flow charts, entity-relationship
+diagrams, UML, block diagrams, and abstract graphs.
+
+This talk will demonstrate use of the mode, describe how it works, and
+discuss possible future direction.
+
+
+
+[[!inline pages="internal(2024/info/graph-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/graph-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/guile.md b/2024/talks/guile.md
new file mode 100644
index 00000000..1bd72def
--- /dev/null
+++ b/2024/talks/guile.md
@@ -0,0 +1,196 @@
+[[!meta title="Beguiling Emacs: Guile-Emacs relaunched!"]]
+[[!meta copyright="Copyright &copy; 2024 Robin Templeton"]]
+[[!inline pages="internal(2024/info/guile-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. --->
+
+
+# Beguiling Emacs: Guile-Emacs relaunched!
+Robin Templeton (they/them)
+
+IRC: robin on libera.chat; Fediverse: [@lispwitch@octodon.social](https://octodon.social/@lispwitch); Matrix: [@terpri:matrix.org](https://matrix.to/#/@terpri:matrix.org); website: <http://terpri.org/>; mail: <mailto:robin@terpri.org>
+
+[[!inline pages="internal(2024/info/guile-before)" raw="yes"]]
+
+[The Guile-Emacs project](https://guile-emacs.org/) seeks to develop new
+foundations for Emacs, building on forty years of development to prepare
+the way for the next forty. Guile-Emacs brings Emacs and Guile together
+by providing a new Elisp implementation based on Guile's compiler
+technology, serving as the basis for a more expressive and extensible
+version of Elisp. We envision Guile and Emacs being co-developed in a
+sort of mutualism, with Emacs becoming the heart of a "Lisp machine for
+the 21st century" and with Guile fulfilling the promised role of Lisp
+from the GNU Manifesto.
+
+Guile-Emacs is now being developed by a democratic workers cooperative,
+focused on development of the project itself and related components of
+the GNU system.
+
+In this talk, I'll cover:
+
+- What is Guile-Emacs, in terms of its goals and general architecture?
+ Why is Guile well-suited to the goals of the project?
+- How did the Guile-Emacs project begin, and what is its status today?
+- What are the immediate tasks for Guile-Emacs development, and how
+ will they improve Guile-Emacs itself as well as its component
+ projects?
+- How are our long-term goals for Guile-Emacs connected to the spirit of
+ Emacs and the GNU Project in general? What do we envision for the
+ future of GNU Emacs?
+- How can you get involved with and support this effort?
+
+Along the way, we'll show live demos of Guile-Emacs itself and its
+extensions to Emacs Lisp.
+
+About the speaker:
+
+Robin Templeton is a free software advocate who enjoys programming
+language design and exploring system architecture. Their fascination
+with Emacs and Lisp lead them to begin work on the then-hypothetical
+Guile-Emacs project during their university studies. If given the
+opportunity and interest, they will bless an interested listener with a
+treasure trove of obscure Lisp history.
+
+Guile-Emacs seeks to provide new foundations for Emacs, integrating
+Emacs and Guile via a new Elisp implementation. We envision a
+significant role for Emacs within the GNU Project, becoming a central
+part of a "Lisp machine for the 21st century".
+
+
+# Discussion
+
+## Questions and answers
+
+- Q: About fibers: My understanding is that the problem with making Elisp concurrent is that none of the data structures (buffer, cons, vector, window etc) are concurrency-safe.  How do fibers help with this?
+ - A: Fibers do not provide thread-safety for any of the existing
+ data structures.  They are useful for building things that
+ don't use Emacs data structures, like a network client that
+ reads a "stream".  Fibers can introduce new data structures
+ that are thread-safe, like "thread-local buffers".
+- Q: <ramin\> You mentnioned that Emacs is roughly 25% written in C.
+ Do you have a rough idea of how much of Guile is written in C? Could
+ it be an improvement to make libguile a dependency of Emacs?
+ - A: The problem is not the quantity of C, but that there is C
+ involved at every single level/layer of computation in Emacs. 
+ This makes it difficult to use concepts like delimited
+ continuations, that can make it easy to implement Emacs concepts
+ more simply.
+ - A: About guile: it's about 1/2 C.
+- Q: A Common Lisp implementation for Guile sounds really cool! Is there already work on this underway?
+ - A: Yes, Robin is working on it, but focuses more on research on
+ how to do a polyglot lisp environnement where elisp and
+ common-lisp can work together (with lisp 1 vs lisp 2 issues with
+ different name spaces, package and module system interaction,
+ \...). If you are interested, the guile project will work on it.
+- Q: As someone who's kinda new to the concept of Guile, is the
+ primary goal to transpile Emacs Lisp into Guile bytecode rather than
+ primarily focusing on adding support for writing code in Guile's
+ Scheme interface in particular? 
+ - A: (not yet answered)
+- Q: Did switching from guile 2 to 3 give any performance benefits?
+ - A: Not benchmarking stuff here yet, because guile emacs has too
+ much overhead involved in conforming to Emacs.  Have not noticed
+ a perceptible change.  Based on the Gabriel benchmark results,
+ it might have benefited a  bit, but for Emacs we don't know
+ yet.  Lowering the overhead is the best place to focus on to
+ optimize guile-emacs.
+- Q: Do you know if the Emacs maintainers are interested in switching to Guile as the engine for Emacs Lisp?
+ - A: Previous maintainers were cautiously optimistic and
+ interested. Issues might be cross-platform compatibility.
+- Q: Do you think guile-emacs will be able to use or (collaborate
+ with) some of the other awesome projects around Emacs-Lisp, like the
+ gypsum project presented earlier today, or Andrea Corallo's efforts
+ to make Emacs-Lisp more suitable for native compilation? Or even
+ something like the renewed PreScheme efforts?
+ - A: Gypsum has a different focus. Guile tries to improve lisp
+ instead of replacing lisp in any way. But some code can be
+ shared, especially if some parts of emacs are rewritten in lisp
+ - A: For libgccjit: it is accelerating the interpreter, which is
+ not great in the first place. So no direct relationship.
+ - A: For prescheme: it  is a useful tool to look at, making it
+ easier to upstream one day.
+- Q: SBCL, \...You mentioned Robert Strandh's SICL along with SBCL---does that work help with the implementation of CL in Guile? 
+ - A: Time consuming part are the DSL from common lisp. So they can
+ be used. No plan on sharing code yet, as they are open-source.
+- Q: Can you comment more on relation with hoot project and advantages
+ that might bring to guile-emacs?
+ - A: Hoot is only tested on scheme decompilation. But it is a
+ completely different project. One could image compile emacs to
+ wasm and maybe with a different garbage collector.
+- Q: Thoughts on the gui situation for guile-emacs? A dom gui backend would be amazing
+ - A: (not yet answered)
+- Q: is the "initial rebase work repo" the latest/preferred archive? i sent two patches to guile-emacs-devel to get emacs to link, but cannot get it to dump just yet: No applicable method: function-documentation
+
+## Notes and feedback
+
+- [https://guile-emacs.org/](https://guile-emacs.org/)
+- Some more motivation: avoid FFI to increase performance and allow
+ for more optimizations (including type annotations)
+
+- Love to hear reduction of reliance on C highlighted as a project goal, it's something I've brought up as a "third perspective" vs performance and language ergonomics in this weeks discussions
+- my other go-to discussion contrib is "is anyone watching what Larry Valkama is doing?"
+- is guile the core of gnu guix too ?
+ - yep!
+ - well, there's a bit of C++, bits of shell and make, yk -- more complex under the hood >u<
+ - but it's the core in spirit
+ - this is really interesting because this means gnu guix can use guile emacs and have better performance / features ? like define the system and emacs too with guile right? (I never used gnu guix but this talk makes me one to install it right now :P)
+ - I'm not sure there are really any implications for GUIX here, besides more eyeballs on Guile
+ - robin: there may be a guix connection in that object-capability-based secure IPC may enable guile-emacs to have fairly deep integration with other guile programs like guix and shepherd
+- Ahhhh~ I love to see tail-call optimization 😊
+- Is the goal to keep rebasing forever? Seems like a lot of work without little benefit
+ - Ah here's the slide addressing that...
+- Woohooo wasm via hoot!
+- i've def heard from a lot of guix users who are primarily interested in using one language everywhere, just on the edge of the performance and lang-interop disscusions
+- why would you want to use emacs in a web browser?
+ - maybe because you can use emacs shortcuts on it ?
+ - wasm != web browser
+ - there's wasi
+ - exactly, Larry mentions emacs on wasm in his readme too, but i try not to use the web as my example when talking about porting away from C bc i find alternatives more compelling
+ - though tbf, *i* would love to be able to hit a shortcut from org-roam-ui and have it open emacs in-browser like vscode on github
+ - Not convinced that browsers equipped with WASM and WASM-GC are actually more portable than Emacs today
+ - it sucks that browser shortcuts conflict with Emacs keybindings
+ - That's due to the browser, not the underlying engine tho
+- Ahhh you thought the CL bit would piss us off! Joke's on you, love CL ;)
+- not as much as you might expect! boot-9.scm is a great place to look to see the world being built up in parens
+- robin: thanks for watching my guile-emacs talk everyone! just one update, the -announce list may not be working properly yet, so please subscribe to guile-emacs-discuss if you want to stay informed about future guile-emacs work
+ - (the hcoop.net admins should be back to fix that in a few hours)
+- robin: and thank you corwin for convincing me to do an emacsconf talk in the first place :)
+ - Thanks so much, robin and corwin!
+
+Feedback:
+
+- 👏👏👏👏
+- Great! Thank you
+- Utterly fantastic. This is so, so exciting!
+[13:41:59] * gs-101 claps
+- 👏👏👏
+- 👏👏👏
+- 👏👏👏
+- 👏👏👏
+- 👏👏👏👏
+- Thank you Robin!
+- 👏👏👏👏
+- *applause* the dead are rising!
+- This bring back memories of Smalltalk implementations being written in Smalltalk after initially being written in C.
+- I utterly love Common Lisp 😊
+- cl-lib is already a fifth of quality elisp (/s?)
+- heh I feel this pain trying to get Wayland, CLIM, and OpenGL working
+- in CL
+- 👏 👏
+- O_O
+- I really liked robins talk
+- great work, great talk -- thank for your work O)
+- short and sweet, thank you
+- +1
+
+- <3
+- lounge-204, there may be a guix connection in that object-capability-based secure IPC may enable guile-emacs to have fairly deep integration with other guile programs like guix and shepherd
+- robin: speaking of security, guile-emacs will have a very straightforward answer to problems like https://eshelyaron.com/posts/2024-11-27-emacs-aritrary-code-execution-and-how-to-avoid-it.html -- the application of the slogan "if you don't have it, you can't use it". ordinary elisp coding style doesn't necessarily allow for automatic detection of that kind of threat, but in that specific case we would use our CL dialect's reflection mechanisms to provide an environment in which the macroexpander, at least when used for code completion and similar, simply would not have the ability to produce side effects in the global environment
+- YouTube comment: we're so back bless you robin
+
+[[!inline pages="internal(2024/info/guile-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/guile-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/gypsum.md b/2024/talks/gypsum.md
new file mode 100644
index 00000000..3ee7c4cd
--- /dev/null
+++ b/2024/talks/gypsum.md
@@ -0,0 +1,466 @@
+[[!meta title="Gypsum: my clone of Emacs and ELisp written in Scheme"]]
+[[!meta copyright="Copyright &copy; 2024 Ramin Honary"]]
+[[!inline pages="internal(2024/info/gypsum-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. --->
+
+
+# Gypsum: my clone of Emacs and ELisp written in Scheme
+Ramin Honary (he/him)
+
+ - Source code: <https://codeberg.org/ramin_hal9001/gypsum>
+ - E-mail: <mailto:ramin.honary@gmail.com>
+ - ActivityPub: [@ramin_hal9001@fe.disroot.org](https://fe.disroot.org/@ramin_hal9001)
+ - Website: <https://tilde.town/~ramin_hal9001>
+
+[[!inline pages="internal(2024/info/gypsum-before)" raw="yes"]]
+
+## Slides
+
+### Introduction
+
+1. Ramin Honary
+
+ - Emacs enthusiast since 2017
+
+ - Software developer (full stack)
+
+ - I love Haskell, Scheme, functional programming
+
+ - Started learning Scheme about 2 years ago
+
+2. My project: an Emacs Clone
+
+ - Tentative name: "Gypsum"
+ - Its not a great name, open to suggestions.
+
+### Goal: to Clone **Emacs Lisp**
+
+- Many clones already:
+
+ - Edwin, Jed, jEdit, Jove, Lem, MG, Yi, Zile
+
+- These only clone the key bindings, not Elisp
+
+- Only XEmacs (a fork of GNU Emacs) provided an alternative Emacs Lisp
+
+### Most people don't use Emacs for the keybindings
+
+- Anecodtal, but yes really.
+
+- Use Emacs because of the power of Emacs Lisp
+
+- Emacs is as powerful as a system shell
+
+- A good language is what makes it powerful
+
+### Goal: use R7RS Standard Scheme
+
+- I want it to work on a many Scheme implementations
+
+- Guile is the reference implementation
+
+- (more about this later)
+
+### Goal: able to run any `init.el`
+
+- Should be able to use `init.el` without significant changes
+
+- Many invest significant time in their configs
+
+- Suddenly not having your config is disruptive
+
+- Such an Emacs clone would be more useful
+
+### Why do this?
+
+- I personally like Scheme's minimalism.
+
+- Use Scheme as more than just an academic language.
+
+- Seems to be a lot of interest in a project like this.
+
+- Talk of "Guile Emacs" for about 30 years
+
+### A long history of Guile Emacs (1/3)
+
+- **Early 90s**: Initial discussion between RMS, Tom Lord,
+ Aubrey Jaffer, begin work on replacing Emacs Lisp with Scheme.
+
+- **1999--2009**: Ken Raeburn's [Guile-Based Emacs](https://www.mit.edu/~raeburn/guilemacs/).
+ (My project is similar.)
+
+ > "*This project that I (Ken Raeburn) have started is for converting*
+ > *GNU Emacs to use Guile as its programming language. Support for*
+ > *Emacs Lisp will continue to exist, of course, but it may be*
+ > *through translation and/or interpretation; the Lisp engine itself*
+ > *may no longer be the core of the program.*"
+
+### A long history of Guile Emacs (2/3)
+
+- **2010**: Andy Wingo and Ludovic Courtes
+ take maintainership of Guile project.
+
+- **2009--2011**: Emacs Lisp interpreter implemented in Guile.
+ Still ships with Guile.
+
+- **2011**: Guile 2.0 is released
+
+- **2011--2015**: Robin Templeton's GSoC project.
+ (Is presenting later today!)
+
+### A long history of Guile Emacs (3/3)
+
+- **2020**: Vasilij Schneidermann published an overview called
+ "[The State of Emacs Lisp on Guile](https://emacsninja.com/posts/state-of-emacs-lisp-on-guile.html)".
+
+- **2020 to present**: Guile Emacs is dead? Andrea Corallo, GCC Emacs,
+ JIT-compiler for Emacs Lisp based on "libgccjit", brings into
+ question any need for combining Guile with Emacs.
+
+### Demo
+
+### GUI is barely working
+
+- I have almost no experience with Gtk or GObject Introspection
+
+- Hard to debug, crashes at C-level produce no stack traces
+
+- Using GDB requires rebuilding all of Gtk, GIO, GLib, etc.
+
+### Emacs Lisp parser based on Guile Emacs Lisp
+
+- Foked the Guile Emacs Lisp implementation for easier development
+
+- Have already submitted a patch to the parser upstream
+
+### Emacs Lisp interpter is barely working
+
+- Implementing my own interpreter in portable Scheme
+
+- Monadic pattern matcher
+
+### Can parse but not interpret "`subr.el`"
+
+- "`subr.el`" is the first ELisp file run by Emacs
+
+- A good way to determine what to work on first
+
+### A call for help
+
+### Latest Emacs has **1,393** built-in functions
+
+- I could never implement that many functions alone
+
+- Probably not all are required to create a useful editor
+
+### My job is to make contributing easy
+
+- Document the build and test process
+
+- Document the system architecture
+
+- Prioritize which built-in functions are most essential
+
+- Find low-hanging fruit, use as means to teach others
+
+### The work for which I will take responsibility
+
+- Clone enough Elisp to be able to run ERT tests
+
+- Then use GNU Emacs's own regression tests to test patches
+
+- Make sure there is a usable GUI
+
+- (Someday?) be able to contribute a patch from within
+
+### Quick architectural overview
+
+### The editor is based in Scheme, not Emacs Lisp
+
+- Config, scripting, packages all done in Scheme
+
+- Use of Emacs Lisp for scripting not encouraged
+
+- Should still be able to run your `init.el`
+
+- Ideally should be able to run ELPA packages
+
+### Difference with Robin Templeton's project
+
+- Guile-Emacs links Guile runtime into Emacs
+
+- Not a Scheme application
+
+- An IDE for Schemers
+
+### Emacs Lisp is an "environment"
+
+- "Environments" are a feature of Scheme
+
+- Scheme procedures can be called from Emacs Lisp
+
+- Scheme state can be mutated by Emacs Lisp
+
+- (See "`./gypsum/elisp-eval.scm`", "`new-env`")
+
+### "Functional Lenses"
+
+- Because R7RS does not standardize MOP (not even in "large")
+
+- Inspired by Haskell
+
+- Composes getters and setters
+
+- Single source file, easy to port
+
+- Ported to 3 other Schemes
+
+### A lot of work went into keymaps data structure
+
+- Keybindings are an important part of Emacs
+
+- Had to do this well from very beginning
+
+- Keybindings work correctly in demo
+
+### A lot of work went into separating GUI from Editor logic
+
+- "Parameters" are a feature of Scheme
+
+- Platform-specific APIs are always parameterized
+
+ - Windowing and widgets
+
+ - Translate key events to bindings
+
+ - Evaluating Scheme expressions
+
+ - Text buffering and rendering
+
+- (See "`./gypsum/editor-impl.scm`")
+
+### Monadic pattern matching
+
+- Simpler, more portable
+
+- (Not as feature-rich)
+
+- Easier than porting SRFI-241 ("Match") to Guile
+
+- No relation to SRFI-247 ("Syntatic Monads")
+
+- You can still use pattern matching
+
+### Monad pattern matching
+
+Example program
+
+
+ (define push-stack (put-with cons))
+ (define collatz
+ (many
+ push-stack
+ (either
+ (try (check (λ (n) (<= n 1)))
+ (success))
+ (try (check odd?)
+ (next (λ (n) (+ 1 (* 3 n)))))
+ (try (check even?)
+ (next (λ (n) (quotient n 2))))
+ (fail "not an integer")
+ )))
+
+### Conclusion
+
+- I am just getting the ball rolling
+
+- Helping others contribute is my top priority
+
+- ActivityPub :: `ramin_hal9001@fe.disroot.org`
+
+- E-mail :: <span class="spurious-link"
+ target="ramin.honary@gmail.com">*ramin.honary@gmail.com*</span>
+
+- Homepage :: <https://tilde.town/~ramin_hal9001>
+
+- Codeberg :: <https://codeberg.org/ramin_hal9001/gypsum>
+
+- This presentation :: <https://emacsconf.org/2024/talks/gypsum/>
+
+
+## Original presentation proposal
+I would like to demonstrate an Emacs clone I have been
+writing in Guile Scheme for the past year, which I am
+tentatively calling "Gypsum". Unlike other editors which
+only clone the Emacs keybindings (Edwin, Jed, jEdit, Jove,
+Lem, MG, Yi, Zile), I hope my Emacs clone will also fully
+clone the Emacs Lisp programming language well enough that
+many of the packages in ELPA, Non-GNU ELPA, and perhaps even
+MELPA, can be used in "Gypsum" without any modification. I
+would also like to talk a little bit about the how I am
+implementing it (the software architecture), and invite
+others to contribute.
+
+I think my project is of interest to many Emacs users
+because, firstly, I have personally spoken with a relatively
+large number of people who have expressed interest in making
+Emacs programmable in Scheme. Secondly, there is a good
+amount of prior art for Scheme implementations of
+Emacs. There are even builds of Emacs that link to Guile
+which provides a "scheme-eval" built-in function that
+translates between Elisp data types and Scheme data
+types. The Guile compiler itself ships with an Emacs Lisp
+compiler as well, although it does not provide enough of
+Emacs's built-in functions to be of much use.
+
+So by using Guile, we can make use of a lot of the prior
+art, in fact I am currently using the tokenizer and reader
+used in Guile's built-in Elisp interpreter to implement
+"Gypsum's" Elisp interpreter. That said, I have gone out of
+my way to make my code fully R7RS compliant, so I hope I can
+port it to other Scheme implementations like MIT Scheme,
+Gambit, Stklos, and perhaps Chez Scheme with Gwen Weinholt's
+R7-to-R6RS translator. I consider the Guile version of
+Gypsum to be the reference implementation of what I hope
+will become a fully cross-platform programming language and
+text editor written in portable R7RS Scheme.
+
+The reference implementation of "Gypsum" is a GUI
+application based on Gtk using a library called
+"Guile-GI". Guile-GI uses the GObject Introspection
+framework to automatically generate Scheme language bindings
+to libraries like Gtk and Glib which are written in the C
+programming language. There is not yet any terminal-emulator
+version of "Gypsum."
+
+The next step of the project will be to implement enough of
+Elisp that we can run tests written in the Emacs Regression
+Testing (ERT) framework. We can then incorporate the
+original GNU Emacs regression test suite into Gypsum. Any
+new API added to Gypsum Elisp will most likely already have
+regression tests we can use to make sure it is working in a
+way that is compatible with GNU Emacs Lisp. I would like to
+make it as easy as possible for people to contribute to this
+project, and having a list of APIs to be implemented each
+with a set of regression tests the APIs are expected to
+pass, is a very good way to do that.
+
+About the speaker:
+
+My name is Ramin Honary, I have been a professional software
+engineer of 16 years, lately mostly doing full-stack
+software development. I have always been fascinated with
+programming languages, and especially functional languages
+like Lisp and Haskell. I have been using Emacs
+since 2017. But lately it is with Scheme that I have been
+spending most of my free time. I am only a Scheme
+programming enthusiast, I am not involved with Scheme
+professionally.
+
+You may also like another talk by this speaker:
+[EmacsConf - 2022 - talks - Build a Zettelkasten with the Hyperbole Rolodex](https://emacsconf.org/2022/talks/rolodex/)
+
+# Discussion
+
+## Questions and answers
+
+- Q: Would it be possible to support a GUI toolkit other than GTK? Like how GNU Emacs still supports Lucid
+ - A: Yes this planed by having proper backend: emacs-lisp running
+ into a module and the GUI being another module. So normalized
+ communication. Currently GTK being standard implementation, also
+ done here.
+- Q: Do you plan to provide improvements to Elisp as a language, or is the focus on a compatibility layer to facilitate doing all new extensions, etc. in Scheme?
+ - A: Plan is to keep up-to-date with new releases. So new GNU
+ feature should be included with each release. But also intend to
+ have support for pure Scheme features.
+- Q: If Emacs Lisp support for Guile was documented
+ better, could you be nudged/convinced to (re)start using, and
+ contributing to that?
+ - A: Compatibility is the most important things. Documentation not
+ sufficient to convince users to switch.
+ - IRC: Where do you think elisp documentation should be improved? I've always found the built in documentation to be excellent
+ - janneke is referring to Guile's ELisp support, I believe; sorry, i meant the documentation of guile's elisp backend
+- Q: Why is being able to interpret all of \`init.el\` an useful goal?
+ Sure, there is a lot of code written in elisp - can we consider a
+ translator like utility to convert elisp to scheme, once guile-emacs
+ becomes a reality? 
+ - A: Probably, but first step is getting the interpretter working.
+ Emacs-lisp basically compiled down to intermediate
+ representation of the guile compiler \[this was one of the hard
+ things to get to work\]. But unclear how this works for other
+ schemes. Best solution probably translation elisp -\> scheme,
+ but this is not the approach that was done. Would be very cool
+ to have. Feel free to give a PR.
+- Q: What is the plan to handle elisp packages that depend on 3rd party/external libraries? (libgit/magit or rg/ripgrep)? 
+ - A: Will be tricky. If loading directly into the elisp process,
+ very hard. Cairo could help, but you need emacs lisp binding on
+ top of that. For magit, you can call regular process
+ communication via stdin/stdout; so you can reuse existing scheme
+ libraries. Dynamic libraries not a goal. Rg/ripgrep probably the
+ same with process communication.
+- Q: Why is it not feasible for the Emacs layer that interprets Emacs Lisp (the core in C) ot have a Scheme interpreter, instead of using Guile?
+ - A: Guile is a scheme. Not sure what you mean.
+ - A: Check presentation later of Robin Templeton ("Beguiling
+ Emacs: Guile-Emacs relaunched!"): the attempt exists by
+ translating elisp to guile. 
+ - thank you
+
+- Q: Not really a question, but how about Schemacs as a name?
+
+- - A: Cool name, but did not check if it is already used. Feel free
+ to discuss by email.
+- Q: I'm curious to know how the hell guile-emacs deals with all of the dynamically scoped modules out there. Is there any effort to automatically modularize and namespace stuff?
+
+## Notes
+
+- oo neat, i didn't know about that first bit of history
+- i've heard rms say that scheme (guile) is just a nicer
+ lisp; but didn't know there were concrete talks/attempts to use
+ guile for emacs that early
+- robin: yes, guile-elisp not being portable might be a
+ showstopper for ramin
+- I've heard good things about guile from guix people. Never really tried it out
+- FWIW, I think there have been various attempts to make an Emacs clone in Common Lisp. I guess lem is currently the most active. https://github.com/lem-project/lem/
+- I like how he edited his slide mid-presentation.
+- https://www.emacswiki.org/emacs/GuileEmacsHistory has some info on very efforts; i was surprised that there were so many (especially with old-school guile, eww ;))
+- joining for all the guiles and all the emacsen
+- He's got a long way to go.
+- of course there were, RMS had decreed that guile was the GNU scripting language and it was a bit embarrassing that it was so little-used...
+ - At least Guix uses it now.
+ - oh yes, guile 3 was a great step forward, and I do wonder how much of that was due to the impetus of its having real users :)
+- if you're interested in guile emacs, be sure to check out robin's guile talk this afternoon
+- nice, my silly https://gitlab.com/janneke/guimax also used guile-gi but this looks much more mature
+- developed actively til 2014, but more recent work is on a branch so may not be as obvious...
+- so...i guess that some basic documentation on elisp may be very helpful
+- wbn if you could join efforts somehow
+ - there should definitely be some overlap between the projects
+- I have 6500 interactive ones, according to Vertico...
+ - I got 8021 interactive ones ;)
+ - 7690 here
+ - 34557 callables \o/
+- working towards a similar goal approached from different directions
+ - however, working on guile's elisp backend may be a common ground
+- ramin's probably talking about subrs, i.e. primitives not themselves implemented in elisp
+- you mean providing modularization for elisp programs? or something else
+- Being more specific, removing the need to namespace every single internal variable/procedure in an elisp module. Maybe that isn't a goal, but I wish it were
+ - yes, i have some ideas for adapting the CL package system for that. it'd have to be opt-in, maybe some tools for automated refactoring
+- And... the part where we need more bandwidth for any core runtime efforts to be viable
+- my-special-module--loop-variable-3
+- How can I get involved with this? if I want to contribute
+ - hang out in #guile-emacs and/or subscribe to the mailing lists https://guile-emacs.org/
+- an embryonic re-implementation by ramin of emacs in guile, with their own new elisp interpreter that should be r7rs compatible
+- would love robin's guile-emacs and ramin's efforts to somehow share some of their efforts
+- Robin's talk mentions developing a better elisp in Scheme. Why can't your project leverage it?
+- guile-elisp is part of guile's compiler system (elisp -> tree-il -> cps -> bytecode), unless another scheme sets out to be guile-compatible in that respect it won't be portable at all
+- To be fair, I've been screwing around with chicken, guile, and racket. I haven't found any 2 scheme implementations to be compatible, even within SRFI implementations
+ - Just the basic syntax and semantics, nothing else
+ - yeah, scheme's lack of portable libraries in practice motivated me to suggest something that's sure to piss everyone off: Javascript
+- YouTube comment: Cool, great, amazing. Extremely ambitious. A clone like this project might be significant harder than for example Lem, which does not care about backward compatibility with Emacs. A clone also is somewhat harder to create a unique selling point for. Especially if Guile-Emacs is also going to be a thing now. Just my 2 cents up to discussions. Anyway I am excited and will follow it:)
+
+[[!inline pages="internal(2024/info/gypsum-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/gypsum-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/hyperbole.md b/2024/talks/hyperbole.md
new file mode 100644
index 00000000..33663038
--- /dev/null
+++ b/2024/talks/hyperbole.md
@@ -0,0 +1,119 @@
+[[!meta title="Fun things With GNU Hyperbole"]]
+[[!meta copyright="Copyright &copy; 2024 Mats Lidell"]]
+[[!inline pages="internal(2024/info/hyperbole-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. --->
+
+
+# Fun things With GNU Hyperbole
+@matsl@mastodon.acc.sunet.se, <mailto:matsl@gnu.org>
+
+[[!inline pages="internal(2024/info/hyperbole-before)" raw="yes"]]
+
+This talk will focus on a few small fun things you can do with Hyperbole
+with less focus on going into details.
+
+GNU Hyperbole is described as the Everyday Hypertextual
+Information Manager which point in the direction of hypertext with
+some inter linkage. It has all that but it also contains other
+small and useful things. This talk will focus on the other
+supported features and demo a sample of them.
+
+About the speaker:
+
+I'm Mats Lidell. Co-maintainer of GNU Hyperbole together with the
+author Bob Weiner.
+
+See also:
+
+- [EmacsConf - 2023 - talks - What I learned by writing test cases for GNU Hyperbole](https://emacsconf.org/2023/talks/test)
+- [[!taglink CategoryHyperbole]]
+
+# Discussion
+
+## Questions and answers
+
+- Q: Hey, how is the log buffer generated?
+ - A: interaction-log package
+- Q: So, the "select a thing" C-c RET is similar to expand-region? How does it behave in codes (functions, class, ...)
+ - A: Behaves exactly the same.
+- Q:I know you Hyperbole devs are active and interested in sharing and
+ interoperating with other emacs tools. What is a recent tool that you find exciting to think about using in combination with Hyperbole, or would like to suggest using in combination with it?
+ - A: Lately, focussing on making Hyperbole work with org-mode so
+ that they may interoperate.
+ - The idea with Hyperbole is not to be better than everything
+ else, but to be a connector between the different modes.
+ - ace-window is a small, great package that selects  windows or
+ displays a buffer in them.  Hyperbole extends this a bit letting
+ you theow a region or buffer to a window or replace its contents
+ with another buffer.  This is documented in the Hyperbole
+ manual.
+ - There's also C-@ (mark-org-subtree) which
+ interferes with Hyperbole
+ - Can you explain how it interferes?  Any conflict would
+ likely be a bug, not an incompatibility.
+ - Sometimes, it does clash with other modes, especially M-RET.
+- Q: Hi Mats! Can I ask you a technical question about Hyperbole? Many
+ years ago I tried to learn hyperbole but I gave up after some
+ time\... I remember that I found the code of the dispatcher very
+ hard to understand. Anyway, here is the question: if I type M-RET on
+ this button - {C-h h d d} - Hyperbole detects the extent of the
+ button and the kind of the button, and at some point it probably
+ calls a Lisp function with the argument "C-h h d d", and that
+ function makes emacs behave as if the user had typed C-h h d d. Do
+ you know what function is that?
+ - A:See the defib of kbd-key in the hib-kbd.el file.  That is an
+ implicit button type defined via defib which invokes an action
+ type of the same name defined with defact.  Just read the code
+ and you'll see how it works.
+- Q: is hyperbole easy to turn on and off nowadays? I remember that many years ago just having it installed would make it change some behaviours globally
+ - audience: yes just a hyperbole-mode to toggle or (hyperbole-mode -1) to make sure to disable
+ - audience: I can usually just type M-x hyperbole to toggle it
+
+## Notes
+
+- Hyperbole looks like an incredible tool but I can't quite
+ seem to get it. These examples make me want to try again though :)
+ - Same here, I actually leave it in the background and hit M-RET
+ from time to time :D
+- "take away your freedom" 🤔 "ta bort din
+ frihet" 🙁
+- nice talk! Hyperbole is in my TODO list for some
+ time already, I should bring it to the top\...
+- I think that Hyperbole is a little diamon inside Emacas
+- ditto! it seems a wonderful grab-bag of random nifty
+ stuff :)
+- alzai: I always viewed it as this mysterious tool. Some
+ users recommend it but there's no simple overview of it. But I'd
+ say this was one.
+ - gs-101: for me one of the problems with hyperbole is
+ the lack of examples in the documentation
+ - We have written multiple example use files included in
+ Hyperbole, a full Texinfo manual and a number of videos but
+ maybe we should add a step-by-step how to use it for new users.
+- \* NullNix suspects hyperbole window configs and winner window
+ configs might be\... confusing if used together :) \[11:47\]
+- Maybe it could be jokingly summarized as
+ do-everything-at-point
+- well, I got lost around several types of buttons -
+ cheatsheet would be huge help for jumping in
+- \[re transient discussion\]: Very excited for the Org
+ move to transient.
+- sachac: In the org-update talk, Ihor mentioned wanting to move some
+ more of the Org functionality into libraries that other packages
+ could take advantage of, so it might be interesting to see what
+ might be good to share with each other.
+ - Could this be akin to refactoring useful features from emacs
+ packages into emacs itself, especially if that feature is widely
+ used and useful across many packages.
+- one of those legendary packages i've just never quite
+ gotten around to learning
+- Yeah, Hyperbole does way too much to be integrated into core Emacs imo
+- I promise study Hyperbole for the next Emacsconf. Hyperbole it's a great tool
+
+[[!inline pages="internal(2024/info/hyperbole-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/hyperbole-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/hyperdrive.md b/2024/talks/hyperdrive.md
new file mode 100644
index 00000000..e0247b50
--- /dev/null
+++ b/2024/talks/hyperdrive.md
@@ -0,0 +1,142 @@
+[[!meta title="New in hyperdrive.el: quick install, peer graph, transclusion!"]]
+[[!meta copyright="Copyright &copy; 2024 Joseph Turner"]]
+[[!inline pages="internal(2024/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. --->
+
+
+# New in hyperdrive.el: quick install, peer graph, transclusion!
+Joseph Turner - <https://ushin.org> xmpp:discuss@conference.ushin.org (XMPP MUC for USHIN discussion), <mailto:contact@ushin.org>
+
+[[!inline pages="internal(2024/info/hyperdrive-before)" raw="yes"]]
+
+[hyperdrive.el](https://ushin.org/hyperdrive/hyperdrive-manual.html) is an Emacs interface to [hyperdrive](https://docs.holepunch.to/building-blocks/hyperdrive),
+a mutable, versioned, peer-to-peer shared
+filesystem. Among other things, hyperdrive.el has
+these features: Share unlimited files of unlimited
+size; Explore file history with built-in
+versioning; Stream video and audio; No signup or
+account creation; Free as in Freedom!
+
+Since [last year's EmacsConf talk](https://emacsconf.org/2023/talks/hyperdrive), `hyperdrive.el` grew some new features, including:
+
+- Easily install the gateway program with `M-x hyperdrive-install`.
+- Visualize your network of sources as a graph or a list.
+- Transclude snippets of hyperdrive files with [hyperdrive-org-transclusion](https://elpa.nongnu.org/nongnu/hyperdrive-org-transclusion.html).
+
+This talk will show off these new `hyperdrive.el` features in action!
+
+Feel free 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.
+
+See also: [EmacsConf - 2023 - talks - hyperdrive.el: Peer-to-peer filesystem in Emacs](https://emacsconf.org/2023/talks/hyperdrive/)
+# Discussion
+
+## Questions and answers
+
+- Q: Hi there, thank you for your talk - I enjoyed watching it! I
+ tried this tool last year, and it seemed to work well - but I don't
+ know anyone who actually uses it. Network effects are tricky - do
+ you know of any public shares people can join to try this tool out
+ properly? Thank you!
+ - A:  Yes, network effects are indeed tricky.  Hopefully, the peer
+ graph can help with this.  That said, here are some hyperdrives
+ I know of:
+ - [https://ushin.org](https://ushin.org) -
+ hyper://aaj45d88g4eenu76rpmwzjiabsof1w8u6fufq6oogyhjk1ubygxy/
+ - [https://blog.mauve.moe](https://blog.mauve.moe) -
+ hyper://1m51x54k3fwbuec5z4edbathiq3aj6bew8b556ezrszizskogo3o/
+ - [https://hypha.coop](https://hypha.coop) -
+ hyper://zdouwaei9kc5zbk93w5dakbr8maayupojthf3eafo16s4d5pbsry/
+- Q:One usecase for this is sharing and building upon second
+ brains/zettelkastens"denote or org-roam" but a blocker from me
+ wanting to make one public is wanting to use a blocklist or
+ whitelist so I can make them containing useful information for only
+ my while also being useful with in a public sense
+ - A: Rephrasing: how to keep the content of a Zettelkasten
+ private, and only have parts of it be public?
+ - If the desire is only to share certain files in the
+ Zettelkasten, M-x hypedrive-mirror can do this
+ - Can specify either a regexp that matches some of the files
+ that get uploaded to a directory of files on a machine (and
+ only those files will be shared)
+ - It can also be a lambda, i.e. anything that can be
+ formulated as a function
+ - E.g., with Karl Voit's filetags (or Prot's Denote
+ filenaming scheme), you could share only those files which
+ are tagged as "public".
+- Q: idea: try hyperdrive to distribute WORG (and EmacsWiki)
+ - A: Great idea!
+- Q: Could you comment on the "visualization" thing, (org
+ visualization), and your experience with this type of content in
+ buffers and the various possibilities (svg, etc.)?
+ - A:  We submited a patch which was merged in Emacs 30 to make
+ image maps (the "overlay" which makes images clickable and
+ have hover-over help-echo descriptions) transform along with the
+ image, e.g., if you zoom in on an image, the clickable map still
+ matches the zoomed-in image.
+ - A: In hyperdrive-sbb-view.el, we build a Graphviz string based
+ on the peer relations data, then call out to the external
+ graphviz process twice, once for the svg and once for the
+ cmapx.  Then we build an image map based on the cmapx string. 
+ We put the image and image map together and render it in a
+ buffer.  I also adapted some code from image-mode.el to make the
+ image resize whenever the buffer's window resizes.  For
+ details, see
+ [https://git.sr.ht/\~ushin/hyperdrive.el/tree/master/item/hyperdrive-sbb-view.el](https://git.sr.ht/~ushin/hyperdrive.el/tree/master/item/hyperdrive-sbb-view.el)
+ - A: This approach is directly inspired by org-graph-view.el, by
+ Adam Porter (github alphapapa).
+- Q:What is something surprising about how you or somebody else that
+ you didn't expect from using the hyperdrive network?
+ - A: Don't quite understand the question. I think the surprising use case for it is to be able to share say a bunch of Org files, link between those Org files... You could use transclusion to to have a discussion and then you could collaborate on on projects using this sort of asynchronous communication using hyperdrive files. If there's a more specific question, I'm happy to answer it better.
+
+- Q: You mentioned streaming audio and video - could you confirm that
+ this is in reference to consumption of media, and not broadcasting
+ of it - right?
+ - A: Since the network is peer-to-peer, audio and video is
+ streamed between peers.
+ - So this is all shared on a peer-to-peer network. So if I have a file on my machine that's a video or audio and I'm advertising on the network that people can download it from me, then if you want to download that video and I have a copy of it, when you click on that video in your hyperdrive, not only does it download it from me, but also you can stream it so you don't have to download the whole thing before watching it. So it is both in terms of serving the file and downloading the file.
+
+## Notes
+
+- The "sources, blockers, blocked" idea was influenced by:
+ - Alex Cobleigh :
+ [https://cblgh.org/trustnet](https://cblgh.org/trustnet)
+
+- the safe hyperdrive feature was designed in part based on org-safe-remote-resources. I'd be curious to hear thoughts on how something like this could be improved or generalized.
+- ooo nice graph
+- Perhaps a function which accepts buffer-file-name and returns non-nil if it's safe to call set-auto-mode
+- also, there was off list discussion related to CVE: untrusted-content
+ - untrusted-content is a variable
+ - we also discussed generalization of this idea with trusted/untrusted files to define them based on file location
+ - in a way it is similar to code blocks inside Org files
+ - not sure if all this is relevant to hyperdrive
+ - It definitely could be. It could be useful to enumerate the different potentially dangerous interactions we could have with files.
+ - (1) enabling a major mode (2) enabling file-local variables (3) including remote content (4) evaluating code blocks
+ - You might want a file to automatically set major mode but not evaluate code blocks, so more granular control would be useful.
+ - I think that allowing the user to set these safety settings based on buffer-file-name would benefit hyperdrive.el, eww, and any other remote protocol.
+- nice!
+- impressive!
+- idea: try hyperdrive to distribute WORG
+- better yet, those EmacsWiki "packages" that are getting rediscovered every decade or so, if they're not going to end up on a git host (as per its opinionated author's non-interest to do so if I'm not mistaken)
+- putting EmacsWiki on hyperdrive would be useful too!
+- YouTube comment: Awesome.
+
+[[!inline pages="internal(2024/info/hyperdrive-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/hyperdrive-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/hywiki.md b/2024/talks/hywiki.md
new file mode 100644
index 00000000..bfe11461
--- /dev/null
+++ b/2024/talks/hywiki.md
@@ -0,0 +1,49 @@
+[[!meta title="HyWiki: Fast, hyperlinked note-taking with no markup required"]]
+[[!meta copyright="Copyright &copy; 2024 Bob Weiner"]]
+[[!inline pages="internal(2024/info/hywiki-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. --->
+
+
+# HyWiki: Fast, Hyperlinked Note-taking with No Markup Required
+Bob Weiner - Pronunciation: wine-er, <mailto:rsw@gnu.com>
+
+[[!inline pages="internal(2024/info/hywiki-before)" raw="yes"]]
+
+This talk will demonstrate HyWiki, Hyperbole's new markup-free, personal
+Wiki system for note-taking. HyWiki utilizes Org format and its publishing
+framework.
+
+With the press of a key, HyWiki lets you:
+
+- create a new HyWiki page when on a WikiWord
+- create a highlighted hyperlink to a Wiki page
+- jump to an existing page or section therein
+- publish an entire HyWiki to the web with numbered sections
+
+We'll demonstrate how you can efficiently take notes and have them
+automatically interlinked without having to master Org link syntax or any
+syntax at all.
+
+HyWiki is quick, simple and efficient. It has been tested to perform well
+with 10,000 WikiWords and requires no database nor configuration. Install
+the Hyperbole package and you are ready to go.
+
+About the speaker:
+
+Bob Weiner has been molding Emacs to his will for most of his life. His
+mega-Hyperbole package aims to simplify all kinds of information management
+across Emacs modes. HyWiki is his take on fast hyperlinked note-taking.
+Let's see if he has something interesting to show us.
+
+See also:
+
+- [EmacsConf - 2023 - talks - Top 10 ways Hyperbole amps up Emacs](https://emacsconf.org/2023/talks/hyperamp)
+- [[!taglink CategoryHyperbole]]
+
+[[!inline pages="internal(2024/info/hywiki-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/hywiki-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/julia.md b/2024/talks/julia.md
new file mode 100644
index 00000000..ba610a75
--- /dev/null
+++ b/2024/talks/julia.md
@@ -0,0 +1,130 @@
+[[!meta title="Exploring shared philosophies in Julia and Emacs"]]
+[[!meta copyright="Copyright &copy; 2024 Gabriele Bozzola"]]
+[[!inline pages="internal(2024/info/julia-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. --->
+
+
+# Exploring shared philosophies in Julia and Emacs
+Gabriele Bozzola (he/him/his) - GitHub: @sbozzolo Website: <https://sbozzolo.github.io> LinkedIn: gabrielebozzola
+
+[[!inline pages="internal(2024/info/julia-before)" raw="yes"]]
+
+While seemingly disparate, the Julia programming language and Emacs share a
+surprising kinship. This talk delves into the common design principles and
+philosophies that unite these powerful tools, focusing on their shared
+emphasis
+on extensibility, customization, and interactive development. I'll explore
+how
+both Julia and Emacs empower users to tailor their experience through
+powerful
+metaprogramming and a rich ecosystem of extensions. I'll discuss the
+REPL-driven workflows that foster exploration and experimentation in both
+environments. Furthermore, I'll examine how their active and passionate
+communities drive innovation.
+
+
+# Discussion
+
+## Questions and answers
+
+- Q: As someone who uses Julia, Emacs and Julia *in* Emacs, I feel
+ like Julia's integration with Emacs is lacking.  I haven't found
+ any way to debug Julia code that works as well as edebug for elisp,
+ SLY/SLIME for common lisp, or gdb for many other languages (with gud
+ or realgud).  Both Debugger.jl and Infiltrator.jl are difficult to
+ use interactively. Do you have any suggestions for interactive
+ debugging of Julia code in Emacs? (Adding to my question: Do other
+ editors do a better job of interactive Julia debugging?)
+ - A: GB: Debbuger.jl and Infiltrator.jl are the main debugging
+ tools available in Julia at the moment. Both of them are not
+ great (yet) and can use some work. Debugger is going to see
+ major performance improvements in future releases thanks to work
+ in the core language. Unfortunately, I don't see anything
+ better for interactive debugging that is avilable now or in the
+ near future. Most of the julia community is clustered around VS
+ code, but the situation is not better
+- Q: Can you call out something that Julia has that Emacs does not, and
+ which could benefit Emacs?
+ - A: GB: The Julia community is active and more tightly knit than
+ other communities (e.g., the Python one), JuliaCon is an
+ in-person event that brings people together. Emacs is also doing
+ great in this.
+- Q: Is there a way to use lisp syntax with Julia, like hy for python
+ or lisp flavoured erlang?
+ - A: Julia used to have a femtolisp interpreter built-into its
+ REPL.
+ - A: GB: I am not aware, but it might be possible to write a
+ package to do that.
+- Q: Have you tried the Julia Snail package for Emacs?  It tries to be
+ like SLY/SLIME for Common Lisp.
+ - A: GB: Yes, but I settled on julia-repl (with vterm). I didn't
+ test julia-snail too much because I found julia-repl easier to
+ setup and use the way I wished.
+- Q: Along the same lines as question 1 \-- is there a data inspector
+ for a Julia REPL available that you can use in Emacs?
+ - A: good mode, other good tooling; room for improvement in this
+ area
+ - A: GB: No, I don't think anything of that sort is available 
+- Q: Have you tried literate programming Julia (using Org babel or
+ some other means) in Emacs?
+ - A: Literate programming in Julia: Pluto (Jupyter-style, in the
+ browser), emacs-jupyter (in Emacs)
+
+## Notes
+
+- Great, now I wanna learn Julia\... :-)
+ - Highly recommend it. Especially if you do any sort
+ of scientific computing. It's an amazing language
+- Lots of things to like. Perhaps the most Dylan-like modern
+ language? 
+- Got me interested in Julia, great talk
+- Sooooo emacs written in julia?
+- Amazing, thank you
+- M-x clap
+- Great talk \[13:10\]
+- Thank you for the talk! \\o/
+- Thank you!
+- I've been so happy ditching python for julia for all
+ my scientific research needs :)
+- Some of these features, like the interactivity and the decompiler
+ reminds of Common Lisp
+- One of Julia's best features (multiple dispatch) was inspired by
+ Common Lisp's defgeneric/defmethod.
+ - I would also add that Julia takes the idea further than Common
+ Lisp ever did, because you can't opt-out of being generic in
+ Julia, so it's everywhere and used pervasively.
+ - In Common Lisp, you had to opt-in, so it wasn't as apparent how
+ powerful this way of organizing code could be.
+- Got me interested in Julia, great talk
+- Sooooo emacs written in julia?
+- akirakyle: First Guile Scheme (re: Robin's talk, next),
+ then Julia! ;-)
+- Yes ;)
+- So julia is like using CLOS everywhere?
+- Sort of, but with the llvm runnig full optimized
+ native code generation for every argument type a function is called
+ with
+- also julia \--lisp is built in!
+- emacs-jupyter works with julia quite well btw
+- org-babel also works well
+- def looking forward to the julia talk
+- It would be great to integrate pluto with emacs, but currently very hard to figure out best way to do so
+- That would be interesting for sure
+- Pluto.run(auto_reload_from_file=true) is the best right now
+ - Problem is pluto is very tied to browser
+ - I dislike leaving emacs for things
+ - But Pluto is a great tool
+ - Same, I suppose one could alternatively say the problem is emacs can't be very easily tied to the browser
+ - As opposed to vscode where such integrations are easier
+ - Although, on the other hand, I am happy emacs isn't tied to a browser
+ - It's better in general
+ - Yes it shouldn't be tied to a browser, but it also would be very helpful for emacs to have better access to rendering content that requires a dom/js environment in an emacs window
+
+
+[[!inline pages="internal(2024/info/julia-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/julia-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/language.md b/2024/talks/language.md
new file mode 100644
index 00000000..fb8cb935
--- /dev/null
+++ b/2024/talks/language.md
@@ -0,0 +1,44 @@
+[[!meta title="Immersive language learning with Emacs"]]
+[[!meta copyright="Copyright &copy; 2024 Sebastian Dümcke"]]
+[[!inline pages="internal(2024/info/language-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. --->
+
+
+# Immersive language learning with Emacs
+Sebastian Dümcke (he/him) - <https://sam-d.com>, <mailto:code@sam-d.com>
+
+[[!inline pages="internal(2024/info/language-before)" raw="yes"]]
+
+Immersive language learning helps acquiring a new language by
+surrounding oneself in environments where the target language is used
+naturally, rather than learning through traditional instruction or
+translation methods. Short of travelling to places where the language is
+native, one can also emulate this digitally: Watching movies, listening
+to music, podcasts, or radio shows, and reading books, newspapers, or
+websites in the target language.
+
+I will present a framework in Emacs to achieve the typical tasks in
+language learning: increase vocabulary and comprehension (both written
+and aural) to achieve faster fluency, better retention and ideally
+cultural competence. We will investigate how to read written documents
+and websites, watch movies and listen to music/learn lyrics all while
+collecting new vocabulary and concepts. Then we will present a spaced
+repetition framework for improving retention of these concepts.
+
+About the speaker:
+
+I am a curious person, interested to learn. I started using Emacs as a
+project management tool through org-mode 8 years ago. I has really
+helped my stay on top of things while starting my own company. Now my
+use of Emacs is slowly expanding. I was always interested in learning
+new languages: I believe they are the key to other cultures.
+
+
+
+[[!inline pages="internal(2024/info/language-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/language-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/learning.md b/2024/talks/learning.md
new file mode 100644
index 00000000..82672de4
--- /dev/null
+++ b/2024/talks/learning.md
@@ -0,0 +1,185 @@
+[[!meta title="Survival of the Skillest: Thriving in the Learning Jungle"]]
+[[!meta copyright="Copyright &copy; 2024 Bala Ramadurai"]]
+[[!inline pages="internal(2024/info/learning-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. --->
+
+
+# Survival of the Skillest: Thriving in the Learning Jungle
+Bala Ramadurai (his/him) - https://balaramadurai.net
+
+[[!inline pages="internal(2024/info/learning-before)" raw="yes"]]
+
+In today's fast-paced world, the need to learn new skills is more crucial
+than ever. The ability to adapt and evolve not only enhances your
+employability but also empowers you to navigate life's challenges more
+effectively. By acquiring new skills, you stay relevant, innovative, and
+capable of seizing opportunities that come your way.
+
+The session will begin with an engaging discussion on the necessity of
+learning new skills, emphasizing that the ability to adapt and evolve is
+crucial. Using the metaphor of "emptying your teacup," you will explore the
+concept of approaching learning with an open mind, ready to absorb new
+knowledge and skills.
+
+Next, you'll dive into actionable techniques for managing your tasks and
+projects efficiently. Bala will introduce the PARA method—Projects, Areas,
+Resources, and Archives—a structured approach to organizing your work and
+life. You will learn how to categorize your tasks, set clear goals, and
+maintain a balanced workflow.
+
+Furthermore, the talk will highlight the importance of regular reviews.
+Weekly, quarterly, and yearly reviews will help you stay on track, reflect
+on your progress, and plan for the future. Through these reviews, you'll be
+encouraged to ask big life questions, such as your financial goals, the
+impact you've had on others, and your work-life balance.
+
+Finally, you'll be introduced to the 9-windows framework, a powerful tool
+for future career planning. Join us and take the first step towards
+mastering the art and developing the mindset of skillful survival in the
+fast-paced ever changing learning jungle.
+
+About the speaker:
+
+Dr. Bala Ramadurai is an author, coach, consultant, podcaster and
+professor. He has authored a book on Design Thinking called Karmic Design
+Thinking (<https://dt.balaramadurai.net>). He has 3 patents to his credit and
+10+ publications in international research journals. He co-founded TRIZ
+Innovation India (<https://trizindia.org>) and is an Adjunct Professor at
+Symbiosis Institute of Business Management (India), Universidad
+Panamericana (Mexico), Symbiosis Institute of Management Studies and
+National Programme on Technology Enhanced Learning (NPTEL). He is also a
+board member in the Board of Studies for Symbiosis International University.
+
+In this talk, you'll discover the importance of continuous skill
+development and learn practical strategies to manage your personal and
+professional growth effectively using Emacs org-mode, Getting Things Done
+(David Allen's GTD), PARA (Tiego Forte's Projects-Areas-Resources-Archives)
+and system operator (or 9-windows). Bala will guide you through a
+transformative journey of self-improvement and productivity.
+
+See also:
+# Discussion
+
+## Questions and answers
+
+- Q:What is TRIZ?
+ - A: Russian methodology (documented in books)
+ - Translates to "Theory of Inventive Problem Solving"
+- Q: Thank you for this talk, very interesting. One of the things that
+ frustrates me about modern webdev is the rate of churn when it comes
+ to useful knowledge. I think Emacs can help to counteract against
+ this by building lasting tools where mastery can be built. Do you
+ agree that learning similar but different things again and again is
+ ultimately wasted bandwidth? What can we do as technologists to push
+ back against this?
+ - A: New things are always coming up, and we "have" to learn that
+ new things. We also have to be aware that there are so many
+ projects, hobbies, and Life™ waiting for you. It's not a
+ balancing act, but if you pay attention and are present in the
+ moment (fully present), then **look back** and **connect**.
+ Something that appears to be a waste of time at first could
+ potentially tie back to something else and be really helpful.
+ - EX: Experimenting with CSS, and how it could be used to
+ customize an org-mode export.
+ - Then, a student mentioned that the slides were too bulky
+ to be scrolled through.
+ - ...But because I'd looked already at CSS, I could play
+ with weasyprint to make the slides.
+- Q (reworded as a question): \<chum-cha\> Why add an "Abandoned"
+ project to the "Resources" folder instead of the "Archives"
+ folder?
+ - A: Many a time, when the projects are abandoned, given some
+ time, some projects revive and you could restart. Also, these
+ abandoned projects could serve as useful resources for some
+ other related projects. I tend to move Archives to another
+ filing system to conserve space at the end of the year.
+- Q: How would you avoid the blind spots in your personal review, e.g.
+ problems you cannot see with yourself because of unconscious
+ hinderances?
+ - A: I feel that when you are reviewed by others, those blind
+ spots become apparent. Otherwise, it can be tricky to get to
+ know this in personal reviews alone, in my opinion
+- Q: What tool are you using to sync your todos and notes in multiple
+ hosts?
+ - A: The only other tool I use, apart from emacs on my computer is
+ Google calendar. I use org-gcal to sync the events from Google
+ Calendar. If I am on the move and away from my computer, I mark
+ an event for monday morning, 09:30am with the task that I just
+ thought about. In that event, I prefix it with TODO, so that
+ when it shows up in my org agenda, it shows up as a TODO task
+ and I am able to process it. Org-gcal syncs to my
+ 0Inbox/TODO.org
+- Q:Emptying your teacup is something interesting you had in your
+ talk. Sometimes my thinking is sluggish until i write down the
+ thoughts that refuse to leave my head "generally in journaling or
+ gtd". I am also pleasantly surprised about what comes out. You
+ brought this up multiple times other reasons for this?
+ - A: Emptying your teacup is just the start, in my opinion. When
+ you finish processing all your thoughts is when the thought
+ actually leaves your head for good. Since, there is no reason
+ for your head to hold on to those thoughts. GTD suggests using a
+ someday-maybe folder or file for parking thoughts that are not
+ going to work out now, but you would like to keep to them look
+ up later. I look at the someday/maybe once a quarter.
+- people can join BBB: 
+ [https://media.emacsconf.org/2024/current/bbb-learning.html](https://media.emacsconf.org/2024/current/bbb-learning.html)
+
+## Notes
+
+- i want to learn new skills because it is annoying
+ not being able to do something
+- I like learning because it feels good for me, like it
+ grants some dopamine. And the more one learns, the more one is able
+ to do.
+- By analogy, the email inbox is for receiving mail, not for
+ holding it
+- Article on e-mail organization:
+ [https://pointieststick.com/2024/07/09/how-i-manage-my-kde-email/](https://pointieststick.com/2024/07/09/how-i-manage-my-kde-email/)
+ - Thunderbird enables automatic tagging.
+- For adding files to the agenda, I have an updated version of the
+ System Crafters setup.
+ - System Crafters Set-up:
+ [https://codeberg.org/SystemCrafters/systemcrafters-site/src/branch/master/content/videos/build-a-second-brain-in-emacs/5-org-roam-hacks.org#headline-5](https://codeberg.org/SystemCrafters/systemcrafters-site/src/branch/master/content/videos/build-a-second-brain-in-emacs/5-org-roam-hacks.org#headline-5)
+ - Updated Set-up:
+ [https://github.com/gs-101/.emacs.d/blob/17c04c0ef1c5fb4083c8d94a5240ed8ef7d4a841/modules/gs-org-roam.el#L96](https://github.com/gs-101/.emacs.d/blob/17c04c0ef1c5fb4083c8d94a5240ed8ef7d4a841/modules/gs-org-roam.el#L96)
+ - Just add a ":agenda:" tag to the file and call
+ "dw/org-roam-refresh-agenda-list"
+- I plan to add an "Archive" file to my Roam set-up, I don't have
+ one currently. Usually I just leave the finished task in the file.
+ Not sure if it's effective.
+- perhaps "abandoned" means in PARA not
+ definitive for all time, and could be useful in the future again.
+ but that's just a guess, not being familiar enough with PARA.
+ - Thanks! That makes sense and I think
+ that's probably the correct answer. I guess my interpretation
+ of the "Archive" folder is that it's there so that you can
+ pull stuff out if you change your mind, whereas Resources is
+ more for things that are "Active" and I wouldn't personally
+ see an "Abandoned" project as active.
+ - personally i would also pull out from
+ any folder, may it be named "archives" or not :) but maybe
+ archive implies in PARA for completed projects only -
+ however, pls double check with the presenter Bala
+- I was doing some of these already but not in a formal way. This
+ gives me a lot of structure to do it. Thank you so much. I like the
+ "emptying the teacup" idea a lot.
+- I will probably add the regular reviews to my workflow. I also think
+ it is the hardest concept in your talk, isn't it? 
+- Personally, I use Syncthing
+ ([https://syncthing.net/](https://syncthing.net/))
+ to sync files.
+ - I'm using Nextcloud for syncing files. It also has WebDAV
+ interface which can be used by the Phone Apps.
+ - I'd use NextCloud too, but I don't have a server set-up (a
+ NAS, for example) at home. I'm waiting until I buy one to
+ get into self-hosting.
+- Thanks, that was a great talk - I'll be watching it again :)
+
+
+[[!inline pages="internal(2024/info/learning-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/learning-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/links.md b/2024/talks/links.md
new file mode 100644
index 00000000..6cf24d63
--- /dev/null
+++ b/2024/talks/links.md
@@ -0,0 +1,134 @@
+[[!meta title="Unlocking linked data: replacing specialized apps with an Org-based semantic wiki"]]
+[[!meta copyright="Copyright &copy; 2024 Abhinav Tushar"]]
+[[!inline pages="internal(2024/info/links-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. --->
+
+
+# Unlocking linked data: replacing specialized apps with an Org-based semantic wiki
+Abhinav Tushar (he/him) - abhinav@lepisma.xyz, https://lepisma.xyz, @lepisma@mathstodon.xyz
+
+[[!inline pages="internal(2024/info/links-before)" raw="yes"]]
+
+I try to maintain a lot of personal information, annotations, etc. in Org files
+but have historically switched back to purpose built apps for different kinds of
+data. There are recipe managers for recipes, personal CRM tools for people
+related notes, bookmark managers for managing web links, etc. While these apps
+do good with the kind of data they work on, they don't operate well together in
+the sense that they don't treat *links* between entities as first class citizen. I
+believe this gap is where a lot of *personal information* live. As an example,
+consider the chain of links that tells 'person a' gave me 'this recipe' on 'my
+anniversary'.
+
+After using zettlekasten via Org-roam for some time, I came to realize the power
+of links that we (can) form between data of different kinds. For me, these links
+offset the loss that comes with leaving specialized apps. With this, I have
+again gone back to Org files, but this time deriving good value from links
+between notes. Of course there are tons of other benefits of using Org files
+like better longevity, portability, versioning, and developer accessibility.
+
+In this talk, I will cover my workflow of creating and managing different kinds
+of notes in Org mode based Semantic Wiki and the link types they tend to have. I
+will also show my workflow outside of Emacs, where I use small tools that sit on
+top of Org files to deliver missing features of niche apps (like availability on
+mobile devices, smart cross data-type queries, etc.).
+
+About the speaker:
+
+I am a Programmer and Machine Learning Engineer, and I love working with
+computers primary because of the early experiences of infinite extensibility
+that Emacs gave me. For this talk I will cover my journey of using Org files
+for notes, then leaving for specialized applications, and finally coming back to
+Org to unlock the benefits of linked data.
+
+---
+Another talk by this speaker:
+
+- [EmacsConf - 2023 - talks - MatplotLLM, iterative natural language data visualization in org-babel](https://emacsconf.org/2023/talks/matplotllm/)
+# Discussion
+
+## Questions and answers
+
+- Q: Have you thought about doing the cosine similarity and sentence
+ transformer calculations in Elisp so you don't need a separate
+ Python process?  In my experience having to set up and manage
+ additional state throws people off track.
+ - A: I do want to try removing the dependency. But I haven't yet
+ done any work in that direction. Mostly the problem is that
+ model (for transformers) runtimes are much easier available in
+ other languages. But if there is an ONNX runtime (or dynamic
+ module) for Elisp, we should be able to do this.
+ - Thanks, I can try writing an ONNX runtime module, this can be
+ useful for several Emacs tasks besides semantic linking.
+- Q: So far I have not used packages such as org-roam because I do not
+ like the idea that it might become unmaintained some day. So I keep
+ to the basic features in org for my workflow. Did you consider this
+ aspect?
+ - A: I thought about this too. But I have found the internals of
+ org-roam simple enough that I don't think maintaining a fork is
+ any hassle. Anyway it uses features already available in
+ org-mode. The only development addition it does is, IMO, to
+ maintain an SQLite index.
+ - Thank you for your advice. I'll take another look at
+ org-roam. And thank you for your talk. It was quite
+ inspiring to me.
+- Q: this is very cool and seems a bit influenced by logseq, which i
+ am trying to transition away from and on to org roam. have you
+ looked into somehow embedding the contents of a \"linked\" node into
+ the parent itself? this is something that i miss quite a lot from
+ logseq, where the contents were/could be transparently embedded and
+ made for a nicer review experience
+ - A: I haven't used logseq. When you say embedding, do you mean
+ like document transclusion? Or something else?
+ - yes, something like transclusion. quite useful for example in
+ daily journalling where one can just dump the notes instead of
+ figuring out a location. and then link them afterwards in the
+ right file/node.
+ - In some way, the org-roam buffer I showed shows linked nodes
+ with nearby content. But I haven't done any work on
+ transclusion till now.
+ - This may be relevant to your question
+ [https://github.com/Vidianos-Giannitsis/Dotfiles/blob/master/emacs/.emacs.d/libs/zettelkasten.org#logseq-like-tagging-functionality](https://github.com/Vidianos-Giannitsis/Dotfiles/blob/master/emacs/.emacs.d/libs/zettelkasten.org#logseq-like-tagging-functionality).
+ I don't remember exactly what it does because I don't use it
+ myself, but I was curious to try and hack it after a discussion
+ and it was relevant to how Logseq does transclusion in linked
+ documents.
+ - ooh, thanks for the link. this looks rather interesting :)
+- Q: How did you do the similarity search?
+ - A: Similarity, as of now, is just using embedding vectors from a
+ locally running transformer model and then matching using cosine
+ scores. Code is here
+ [https://github.com/lepisma/org-roam-exts/tree/master/org-roam-sem](https://github.com/lepisma/org-roam-exts/tree/master/org-roam-sem)
+- Q: Is your ml model for topics like \"family members\" available
+ somewhere?
+ - A:
+ [https://github.com/lepisma/org-roam-exts/tree/master/org-roam-sem](https://github.com/lepisma/org-roam-exts/tree/master/org-roam-sem)
+ the model I am using is a simple lightweight embedding
+ transforme model. See this line
+ [https://github.com/lepisma/org-roam-exts/blob/a71f2ec3bb6bd9d2b21ab5fd70ec45fa18128896/org-roam-sem/src/org_roam_sem/featurize.py#L17C7-L17C77](https://github.com/lepisma/org-roam-exts/blob/a71f2ec3bb6bd9d2b21ab5fd70ec45fa18128896/org-roam-sem/src/org_roam_sem/featurize.py#L17C7-L17C77)
+- Q: is your org-roam config public? (init.el stuff) I've found
+ vanilla org-mode not the most ergonomic. Thanks!
+ - A: Do you mean
+ [https://github.com/lepisma/org-roam-exts](https://github.com/lepisma/org-roam-exts)
+ - Also some of my writing config is here -\>
+ [https://github.com/lepisma/rogue/blob/master/lisp/r-writing.el](https://github.com/lepisma/rogue/blob/master/lisp/r-writing.el)
+
+## Notes
+
+- This looks very useful, thanks for your work
+- Looks really handy! One of the biggest inhibitors to my usage has
+ been figuring out how to collect things on mobile without friction.
+ Will check it out!+1
+- Thank you all!
+- A few project links from the talk:
+ - [https://github.com/lepisma/org-roam-exts](https://github.com/lepisma/org-roam-exts)
+ - [https://github.com/lepisma/pile-android](https://github.com/lepisma/pile-android)
+- Very interesting talk
+- This is super cool 🙂
+
+[[!inline pages="internal(2024/info/links-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/links-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/literate.md b/2024/talks/literate.md
new file mode 100644
index 00000000..94f5332c
--- /dev/null
+++ b/2024/talks/literate.md
@@ -0,0 +1,242 @@
+[[!meta title="Literate Programming for the 21st Century"]]
+[[!meta copyright="Copyright &copy; 2024 Howard Abrams"]]
+[[!inline pages="internal(2024/info/literate-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 Programming for the 21st Century
+Howard Abrams (he/him) - @howard@emacs.ch , <https://www.howardism.org>
+
+[[!inline pages="internal(2024/info/literate-before)" raw="yes"]]
+
+Donald Knuth’s idea of *literate programming* in the 80’s and 90’s was
+interesting, but he didn’t realize what Emacs and Org can do in this
+century. In this talk, I would like to go back your initial *dabblings*
+with Org `src` blocks to show how you can program *literately* as quickly
+as you can in any other mode.
+
+Some of the tips and tricks include:
+
+- Automatically keeping your lit code sync’d
+- Easier code generation
+- Jumping to Org headers to help organize code
+- Jumping to code definitions with the xref interface
+
+At the end of this talk, I hope to inspire you to try it again, as my
+personal “go to” is *programming literately*.
+
+I will be following the format and outline in my essay:
+<https://howardism.org/Technical/Emacs/literate-writ-large.html>
+
+About the speaker:
+
+About ten years ago, I gave a talk I called *literate devops* and people
+still ask me if I still use those techniques. For all my personal
+projects, I do. Even projects that I share with others, I often *start*
+programming with an Org file.
+
+I will admit, programming within Org blocks has some burrs, but over
+the years, I’ve filed them off with helper functions, snippets and
+other features. Thought I would share these.
+
+
+# Discussion
+
+## Questions and answers
+
+- Q: You touched on it briefly, but how do you handle things like
+ "C-h f" helpful info not being tied back to the defuns in src
+ block code when you "C-c C-c" them in the org buffers instead of
+ re-tangling it to the files, and other such things? Did you create
+ wrappers for jumping  back and forth atop org's built-in mechanisms
+ to go back and forth between org/tangled files?
+ - A: (not yet answered)
+- Q: Apropos large literate programs: what's the largest code base
+ you've ever tackled with the literate approach (esp. Emacs +
+ Org-mode)?
+ - A: The largest is the one I mentioned in the talk ... about
+ 8000 lines of "code" and another "10000" lines of prose. I
+ think I came to 15,000 max (in code blocks only).
+- Q: Have you ever used org-transclusion
+ ([https://github.com/nobiot/org-transclusion](https://github.com/nobiot/org-transclusion))?
+ - A: Nope \... but I will
+ - I tried it out once, and had one hour of work deleted 🥲,
+ but it was from an issue already reported:
+ [https://github.com/nobiot/org-transclusion/issues/177](https://github.com/nobiot/org-transclusion/issues/177)
+ and
+ [https://github.com/nobiot/org-transclusion/issues/257](https://github.com/nobiot/org-transclusion/issues/257)
+- Q: What is your usage of dynamic blocks in such workflows? Any
+ interesting use cases and custom ones?
+ - A: Not yet, will report back
+- Q:Is the minibuffer being deliberately hidden in this video? (first
+ noticed this in the section previous to "Navigating by Function
+ Names")
+ - A: Not intentionally :)  You may notice the minibuffer comes and
+ goes, sorry about that; not intentional (didn't quite "fix"
+ all of them) (Thanks for the answer, no worries.)
+- Q:What's your take on Emacs+Org vs. Jupyter notebooks (for
+ interactive programming)?
+ - A: Not something I use right now.  Tend to include things from
+ jupyter/python (e.g. numpy) that has been the biggest challenge
+ (not knowing that stuff all that well), things like matrix
+ multiplications are easy in jupyter not such much in org. May
+ make sense to stay where you are comfortable.  Curious what the
+ community can do to make this transition easier
+ - You can't work with Jupyter in \> 1 language either (I think).
+ It's Py + SQL or R + SQL etc. Org allows 45+ languages in one
+ document (I often mix languages).
+- Q: Do you think any programming language is more suited to literate
+ programming than another?
+ - A: R, C are my favorites (for literate programs). C (and C++)
+ have got great support. There are some great books implemented
+ in literate programming I think. The two that come to mind are
+ Physically Based Rendering: From Theory to Implementation and C
+ Interfaces and Implementations. The first is C++ and the
+ second C. Ty.
+ - \<gs-101\> Personally, when working with Org files, I have a
+ better time dealing with interpreted languages, such as Python,
+ because you can initialize a session and the code is all
+ conected. You can divide blocks however you seem fit.
+- Q: related to above, do you use inline org function calls and org
+ babel library and such?
+ - A: Used to use more org-babel inline functions, found sound bugs
+ (maybe) 8yrs ago, right now my literate dev-ops is calling a lot
+ of backend programs so the org-babel has limited help in that
+ regard while in the emacs session things are "just available"
+ so that hasn't help much either
+- Q: How do you handle the cases where org markup may sometimes
+ interfere with some of the code, in places where you can't use
+ "escapes" (\~ or = or \| \<- vertical bar), doubly so if you use
+ modes to not show these but the styled text instead, and so on?
+- I think an example is in C when you assign to a pointer  \*p = &i;  
+ (In Org, you need to write (\*p) or ,\*p = &i; or it will be
+ mistaken for a headline \*
+ - A: (clarifying) when I'm making pros and I'm talking about a
+ function I've written somewhere else I'll use tildes and look
+ for those things so I can strip them off.  Is that the spirit of
+ the question.  (confirmed).  Yes, I'll strip that off after
+ finding the function name, so I can still mark it correctly.
+ - Q: clarifying: when in code inside an org buffer, you don't get
+ to use \~ or = (verbatim/etc), and any font-locking interferes
+ with the proper display in the src blocks, that kind of
+ interference.
+- Q: You said at the start that literate didn't catch on in corporate
+ DevOps - why not?
+ - A: I guess the big thing is not everyone is using Emacs and org
+ is needed to make it work really well.
+- Q: I gotta ask: why not that full stack on Markdown, I'm sure it's
+ crossed your mind at least a few times how the same setup on
+ Markdown would be more interop-friendly with colleagues and such?
+ - A:  It's a real good idea.
+- Q: How does your management of "TODOs" (projects/tasks) interact
+ with this literate mindset, any insightful things you do on that
+ front?
+ - A: Yeah. Okay. So, uh, on to do's and that sort of thing, um. You know, a lot is the same as it was 10 years ago. At the beginning of every sprint, my company, we're using JIRA. All jokes are valid when I say that. But I just go to its web page. I copy all the tasks that I need to do that sprint. I wrote a function that takes that code and reformats it as a bunch of org tasks for me to do that I can just now have all my to-dos. And I start to work off of that from that point on. So it'll reference all the projects, and I do symlinks to every code base that I need to use. Most of the to-dos I put inside my code block is kind of just for me, just so I can remember it. Because the work that I have to do needs to be tracked a little more fine-grained, I guess. Yeah.
+- Q: \<Donovan\> Do you LP also on larger projects? (More files &
+ nested directories) 
+ - A:  I haven't done nested directories, but I can now. Now that
+ i've realized I have the feature where I can just jump to any
+ projects and all the org-files and all the headings just show
+ up, that works in nested directories, that that's fun.
+- Q: Have you used Cucumber/Gherkin/BDD and do you think it has a
+ strong overlap to what you talked about here?
+ - A: I tend to put the tests right next to the function, I like
+ tangle it out to different files; keeping things together is
+ nice.  Many frameworks assume we'll have things seperated out
+ in a way that isn't useful to me.  I like to go old-school on
+ that?
+- Q: What granularity are you looking for re your org files and
+ contents, with respect to a codebase that it tangles to, or in
+ non-coding contexts?
+ - A:  Great questions, really subjective.  I change that all
+ time.  I have an idea, I start to refine it. My goal at one
+ point was to have an emacs config that was really small and
+ simple and that just really doesn't happen, it's full of ideas
+ and things that are half-baked and i pull them out and polish
+ them up bit by bit so it ends up being like any code-base it
+ just keeps getting refined.  Sub-trees, archiving are useful.
+ - I've found it useful to prune the init file back to minimal
+ every once in a while (actually, AI has been surprisingly
+ helpful - perhaps it helps that Emacs is ancient and hence there
+ is a lot of doc out there and much of it \... correct?)
+
+## Notes
+
+- My literate programming code extensions:
+ [https://www.howardabrams.com/git/howard/hamacs/src/branch/main/ha-org-literate.org](https://www.howardabrams.com/git/howard/hamacs/src/branch/main/ha-org-literate.org)
+- My Emacs configuration written in a literate style:
+ [https://github.com/howardabrams/hamacs](https://github.com/howardabrams/hamacs)
+- See it rendered here:
+ [https://howardabrams.com/hamacs/](https://howardabrams.com/hamacs/)
+- My JOPS (Jump to Project Sections) code that "searches Org
+ headers":
+ [https://www.howardabrams.com/git/howard/jops](https://www.howardabrams.com/git/howard/jops)
+ \... temporary location?
+- snippet on \<ssl: Cool one. 
+ - 0_0 I need to do this.
+- This (evaluating babel blocks) is also possible with the
+ Avy + Embark combo developed by karthik:
+ ([https://karthinks.com/software/avy-can-do-anything/#avy-plus-embark-any-action-anywhere](https://karthinks.com/software/avy-can-do-anything/#avy-plus-embark-any-action-anywhere)),
+ just jump to a block and then "RET".
+- Really good talk.  I need to find out how to extend
+ xref to handle org files!
+ - same here, I asked a long-winded
+ question that was about that (before he touched a bit on it),
+ but feel there's more in terms of wrappers and such
+- Denote has some pretty good use of dynamic blocks I
+ think
+ ([https://protesilaos.com/emacs/denote#h:8b542c50-dcc9-4bca-8037-a36599b22779](https://protesilaos.com/emacs/denote#h:8b542c50-dcc9-4bca-8037-a36599b22779))
+ - There's also the dynamic blocks from org-nursery:
+ [https://github.com/chrisbarrett/nursery?tab=readme-ov-file#org-roam-dblocks-incubating](https://github.com/chrisbarrett/nursery?tab=readme-ov-file#org-roam-dblocks-incubating)
+- there is an RFC in for 'cargo-script' which allows
+ building single-file crates - i think that will be quite useful in
+ ob-rust
+ - There's a ob-rust already and it uses
+ rust-script: [https://github.com/micanzhang/ob-rust](https://github.com/micanzhang/ob-rust),
+ but the developer wanted to use rustc instead.
+ - cargo-script RFC issue: [https://github.com/rust-lang/cargo/issues/12207](https://github.com/rust-lang/cargo/issues/12207)
+- Not a Q, just a comment that we need more of your insightful
+ posts and videos! :) (sic)
+
+
+- I am both hyped and scared by Howard's talk, some of his past insights into using org-mode (literate everything, many small spreadsheets, etc.) have changed the way I operate so thoroughly...
+- 19th century? Isn't that in the 1800s?
+ - 21 1/4 century?
+ - you are not incorrect I believe - easy mistake to make, it's not intuitive!
+ - YouTube comment: 1:00 So Knuth invented literate programming in the 19th century? I knew he was old, but not that old!
+- i think the only time i have worked with literate programming is Inform 7
+- I find that the Julia support in org (babel) is good enough. Most of my programming is in Julia.
+ - re: Julia in Org: For ob-julia support I wrote an ob-julia that does a few more things than the one that ships with ESS. https://github.com/karthink/ob-julia
+- (I'm here trying to milk Howard for all his fantastic insights in the Etherpad, hope that's not a faux-pas...!)
+ - I, at least, am enjoying the Q&A session so not a faux-pas as far as I'm concerned.
+
+- YouTube comment: The best reason I've heard explaining why most programmers don't (and won't) use literate programming. It requires them to be literate in three languages: the programming language, the markup language, and most challenging of all, English.
+- YouTube comment: Q: Literate programming is very appealing in theory, but it's difficult with languages like Go where your code is split across multiple files. Any suggestions?
+
+Feedback:
+
+- very cool
+- Lovely talk, thank you!
+- Awesome, thank you!
+- That was wonderful, thank you! 😊
+- Thank you Howard!
+- Thanks for your continued work, Howard!
+- A legend! ... loved the Ironsworn presentation from previous year.
+- excellent presentation indeed
+- Thank you for the marvelous talk!!
+- Thanks for the presentation
+- Your way of delivering is inspiring.
+- god I wish I was that good a presenter
+- I for one had been looking forward to this particular talk, so there's that :)
+- YouTube comment: Legend!
+- YouTube comment: Howard! Your videos have been such an amazing source of information. You voice is engrained in my brains haha
+- Somehow my interest in #emacs reignited and a lot of is due to org presentation by @howard [@mms@bsd.cafe](https://mastodon.bsd.cafe/@mms/113724843960332570)
+
+
+[[!inline pages="internal(2024/info/literate-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/literate-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/maxima.md b/2024/talks/maxima.md
new file mode 100644
index 00000000..280d5ac8
--- /dev/null
+++ b/2024/talks/maxima.md
@@ -0,0 +1,102 @@
+[[!meta title="Emacs, eev, and Maxima - now!"]]
+[[!meta copyright="Copyright &copy; 2024 Eduardo Ochs"]]
+[[!inline pages="internal(2024/info/maxima-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, eev, and Maxima - now!
+
+Eduardo Ochs - IRC: edrx, <http://anggtwu.net/>, @eduardoochs on Telegram, <mailto:eduardoochs@gmail.com>
+
+[[!inline pages="internal(2024/info/maxima-before)" raw="yes"]]
+I teach Calculus in a bad campus of a good federal univeral in
+Brazil. The main campus of that university is located in a big city
+and has lots of resources, and I work in a small campus, that is in
+a small city, and that has few resources - and we get the students
+that don't get enough points in the entrance exams to go to better
+places. In this presentation I will show how I've been teaching
+Maxima, and Emacs, and eev, to my students.
+
+With very few exceptions my students are "beginners" in a sense that
+is inconceivable in developed countries - they're not people for
+whom things like spreadsheets, Jupyter Notebooks, and VSCode are
+"intuitive"... most of them have never seen a terminal in their
+lives, and many of them have so little familiarity with computers
+that they don't know, for example, that keyboards have a key called
+F8.
+
+It turns out that if we _define_ "beginners" in the right way -
+hint: not by statistics! - then we can find a way to present Maxima,
+and then Emacs and eev, that makes all sense to the "beginners" in
+my classes, and that approach lets them install everything and
+become (sort of) autonomous very quickly. A few students were able
+to install everything - WSL, Debian, Emacs, eev, Maxima - and run
+the examples in about one hour; most others took between one hour
+and two hours, and some others had to plonked.
+
+<http://anggtwu.net/emacsconf2024.html>
+
+About the speaker:
+
+Eduardo is the author of an Emacs package called eev, that is a way
+of creating "executable notes" that apparently makes very little
+sense to people in developed countries. In this talk he will show
+how he has been using Emacs and eev to teach Maxima to his students
+in Brazil, who - with few exceptions - have very little experience
+with computers, and who are not the kind of "beginners" for whom
+programs like spreadsheets and VSCode are "intuitive".
+
+# Discussion
+
+## Questions
+
+- Q: I'm very happy to find and hear you though, are you on the Mastodon?
+ - edrx: no, I never learned to use mastodon (yet)... what is the link?
+ - All the different mastodon servers talk to each other. I'm on https://mastodon.sdf.org but there are also others
+ - You sound like my friends on https://mathstodon.xyz
+- Q: Seeing where you are and how active you are in software freedom, you don't happen to know my friend Gonzalo Nemmi do you?
+- Q: Presumably edrx, before I was kind of wondering if eev can do anything magical with ielm, but I'm a bit new to both of those modes.
+ - edrx6: I never learned ielm, it looks scary to me
+ - ielm is very like slime (but superior)
+ - ielm is for elisp and slime is for common lisp though, right?
+
+## Notes and feedback
+
+- hell yeah maxima time (and eev!!) that's what blackboards are for
+- Thank you for your talk!
+- Yes, thanks for your Maxima talk.
+- Interesting talk edrx, thanks!
+- dang i spaced out (focused on writing some elisp :) and missed this one. i'll have to go back & review it, though i'm familiar with transducers from clojure
+- Hang on I'm reading your tutorial. But the words executable logs and the bits I've mentally parsed so far look very exciting to me.
+ - Sounds a little like Hyperbole or Embark
+- whoa...structural navigation... for html and php. this would have been nice when I was in that every day
+- edrx: I took a better look at maxima-interface. it's very interesting!!!!
+ - Yeah jmbr does great stuff https://superadditive.com
+- Haha, typing very slowly and with lots of mistakes is the only way I can understand
+ - edrx: I type slowly and I commit mistakes all the time, so interfaces in which the lines that I type get lost - or just go to the history - look painful to me
+- my friend jmbr (in cl) has https://sr.ht/~jmbr/maxima-interface/ I'm not sure if it's relevant to your experiences of wanting access to maxima's internals. Basically I guess jmbr made maxima "easy to use" by obscuring its underlying mechanisms and working more ordinarily. Maybe it's the opposite to what you want.
+ - edrx: right, sounds like exactly the opposite of what I want...
+ - edrx: I'm doing things like this: http://anggtwu.net/lisptree.html
+- edrx: screwlisp: I missed the part of your talk in which you explained a certain way to install slime... I need to watch it later
+ - Some people are saying to use Sly over Slime now.
+ - I remember using sly and not being conscious of the differences for a long time
+ - I couldn't make slime work with eev
+ - I kinda think of SLIME as the most normal one. I know some people are true believers in lisp-mode and just an *inferior-lisp* buffer. On the other hand, the cool people are meant to use sly.
+ - I guess I should rewatch Gavin Freeborn's Sly youtube video or reread the Sly info pages perhaps.
+ - You might have noticed my tremendously kloodgy keyboard macro I defined at the start of my talk to pseudo-integrate ielm and an elisp file
+ - The sly manual has a comparison of sly and slime: https://joaotavora.github.io/sly/#A-SLY-tour-for-SLIME-users
+- Yeah, I always use customize-variable on package-archives instead of writing elisp code myself in an init.el
+- I think sly has stickers? I haven't used stickers myself though for debugging Common Lisp.
+ - yes - here: http://anggtwu.net/emacsconf2024.html#0:35
+ - stickers allow you to trace expressions with history playback
+ - Try evaluating this I guess: (info "(sly) Stickers")
+- I will definitely look more into eev edrx2. I often feel confused about this, wanting a buffer that is a replay of what I've been doing in my repl.
+- edrx: the best way to try eev nowadays is this one: http://anggtwu.net/2024-find-tryit-links.html
+ - edrx: "best" in the sense that if people don't get it running in less than 5 minutes they disappear forever
+
+[[!inline pages="internal(2024/info/maxima-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/maxima-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/mcclim.md b/2024/talks/mcclim.md
new file mode 100644
index 00000000..0f64f1bd
--- /dev/null
+++ b/2024/talks/mcclim.md
@@ -0,0 +1,195 @@
+[[!meta title="Elisp and McCLIM"]]
+[[!meta copyright="Copyright &copy; 2024 screwlisp"]]
+[[!inline pages="internal(2024/info/mcclim-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. --->
+
+
+# Elisp and McCLIM
+he or e/em/eir (Spivak, male and neuter pronouns are fine) - IRC: screwlisp, Mastodon: @screwtape@mastodon.sdf.org liberachat: screwlisp MOO: lambda.moo.mud.org Name: screwtape Moo mail preferred
+
+[[!inline pages="internal(2024/info/mcclim-before)" raw="yes"]]
+
+The gist is demoing using McCLIM common lisp interface manager
+implementation to make Sandewall 1978's lisp iconic example
+scheduler app, but to drive it to and from emacs lisp via slime
+and swank.
+
+To start with, a beginner walkthrough on getting slime and
+common lisp and mcclim, and configuring and using them with
+emacs org-mode.
+
+The default clim application-frame is made and its interactor
+used.
+
+A CLIM command is then defined to refer the default describe to
+emacs lisp rather than the inferior lisp.
+
+CLIM useage with no gui via slime / org-mode is demoed.
+
+This is then used via emacs lisp.
+
+CLIM's accepting-values is used to generate an anonymous gui
+that accepts a value **into elisp**.
+
+A small final discussion on integrating the clim scheduler back
+and forth into org-agenda.
+
+Bib:
+
+```
+ @article{sandewall1978programming,
+ title={Programming in an Interactive Environment:
+ the``Lisp''Experience},
+ author={Sandewall, Erik},
+ journal={ACM Computing Surveys (CSUR)},
+ volume={10},
+ number={1},
+ pages={35--71},
+ year={1978},
+ publisher={ACM New York, NY, USA}
+ }
+
+ @inproceedings{strandh2002free,
+ title={A free implementation of clim},
+ author={Strandh, Robert and Moore, Timothy},
+ booktitle={International Lisp Conference Proceedings},
+ year={2002}
+ }
+
+ @article{fruhwirth2006guided,
+ title={A Guided Tour of CLIM, Common Lisp Interface Manager},
+ author={Fruhwirth, Clemens},
+ journal={Lisp Pointers},
+ year={2006}
+ }
+
+ @article{kochmanskimcclim,
+ title={McCLIM Demonstration},
+ author={Kochmanski, Daniel}
+ }
+
+ @inproceedings{kochmanski2020ecl,
+ title={On ECL, the Embeddable Common Lisp (ELS keynote).},
+ author={Kochmanski, Daniel},
+ booktitle={ELS},
+ year={2020}
+ }
+
+ @misc{beane2012quicklisp,
+ title={Quicklisp},
+ author={Beane, Zach},
+ year={2012}
+ }
+
+ @misc{marsden2003slime,
+ title={SLIME: The superior lisp interaction mode for emacs},
+ author={Marsden, Eric and Gorrie, Luke and Eller, Helmut and others},
+ year={2003},
+ publisher={URL: https://common-lisp. net/project/slime/(visited on
+ 05/19/2017)}
+ }
+
+ @article{dominik2004org,
+ title={Org mode manual},
+ author={Dominik, Carsten},
+ year={2004}
+ }
+```
+
+**Q&A in LambdaMOO**:
+
+As an experiment, screwlisp will also be taking
+questions from LambdaMOO. Here's how to join:
+
+1. Use `M-x telnet` to connect to `lambda.moo.mud.org 8888`. Alternatively, you can use a web-based client like https://mudslinger.net/play/ or rmoo.el (see rmoo.el note below)
+2. `connect Guest` to connect as a guest. If that doesn't work, please ask in `#emacsconf-org` and we'll try to get you sorted out.
+3. Agree to the terms by typing `YES`.
+4. Teleport to where the speaker is by typing `@join screwtape`.
+
+To say something, start with `"` and omit the ending quotation mark, like this: `"Hello everyone!`. To say something to a specific person, start with a backtick (`` ` ``) and the person's nick, then your message, like this: `` `sachac I made it to LambdaMOO``. Use `help communication` to learn more about other communication tools, such as `:` for emoting and `whisper` for sending private messages.
+
+rmoo.el note: You may need to define process-kill-without-query if it doesn't exist on your computer. Here's a use-package declaration that might be a good starting point. If your version of use-package doesn't support `:vc` yet, you can check out the code from https://github.com/toddsundsted/rmoo and add it to your load-path, or use `M-x telnet` for now.
+
+```
+(use-package rmoo
+ :vc "https://github.com/toddsundsted/rmoo"
+ :init
+ (unless (fboundp 'process-kill-without-query)
+ (defun process-kill-without-query (process &optional flag)
+ (set-process-query-on-exit-flag process nil)
+ t))
+ :config
+ (rmoo-worlds-add-new-moo "LambdaMOO" "lambda.moo.mud.org" "8888"))
+```
+
+You can also ask questions via BigBlueButton, Etherpad, or IRC, and the host will try to make sure your question gets to the speaker. Enjoy!
+
+About the speaker:
+
+I'm screwlisp from the lispy gopher climate, a weekly Wednesday
+000UTC podcast (non-radio show) on aNONradio.net powered by sdf.org;
+(also the lesser-known Friday 1400UTC show, Zhen House Zhen Bonkwave.
+
+We are fortunate to have many great people in our live chat that
+happens in LambdaMOO during the shows. Last week, we shared Rog's
+new writing on his current personal emacs modes with his decades
+of emacs useage. (Roger Crew). That's not what this talk is about
+though, though we often deal with emacs and McCLIM, which **are** what
+this talk is about. I have many friends who picked those up in some
+small part thanks to the show.
+
+
+# Discussion
+
+- Q: I would love to see the GUI interacting with the scheduling stuff
+ you were working on initially, if I didn't miss it somewhere
+ earlier.
+ - A: Will do a follow-up video
+- Q:Or any other GUI stuff you've worked on in the past that you'd
+ be comfortable showing?
+ - A:[https://toobnix.org/a/screwtape/video-channels](https://toobnix.org/a/screwtape/video-channels)
+- Q: Are we going to get a McCLIM LambdaMOO client?
+ - A: You're right, I should make that into a client for Common Lisp.
+- Q: is the expression being returned directly eval-able is elisp / ielm?
+ - screwlisp: Yes I didn't think this ahead
+ - screwlisp: Like I've just said, you have to call (slime-eval-sync)
+ - screwlisp: After which you can get it out of your kill-ring, because it has syncronised -> to be there
+ - screwlisp: I was going to ask you if you had a way for me to do that
+- Q: i wonder if there's a presentation type for readable output that is returned to elisp?
+ - most of the time i assume the expression type will be readable on the other end, but CL has readtables and other things that would need translation
+- similar to the multiple package-archive options with emacs there is also UltraLisp which tracks upstream more closely, but can cause fun-to-debug package conflicts in some situations
+ - screwlisp: I guess I should try that, basically melpa right, I occasionally use person quicklisp dists
+- screwlisp: 40ants has often done things I want to do
+- lol @ either it will be faster or you will be smug about it running slowly
+ - screwlisp: Old computer challenge ;)
+- we did see a little bit of that
+- https://toobnix.org/c/screwtape_channel/videos
+- Is the MOO McCLIM app still going?
+ - yes
+ - telnet lambda.moo.mud.org 8888, connect Guest, Y, then @join screwtape
+ - maybe something like this would work for slime eval assuming we still want to use emacs while CLIM window is open: (slime-eval-async '(cl:+ 2 2) (lambda (x) (print x)))
+ - the second arg is a continuation so can bind it, insert in a buffer, etc
+ - I think most emacs users use scratch buffer
+- thanks for the talk! great intro. look forward to IELM talk next :P
+- Thank you! 😊
+- Thanks for the talk, it was super interesting
+- May the source be with everyone
+- I use ielm as a repl but not a power user... sometimes I know I want to do more than a few M-:
+- (lazy-eval 'thanks)
+- screwlisp: "Yeah, I forgot now but during the talk there were a few tiny bits where it was different to slime that tripped me up
+- thanks for the talk screwlisp, always good to see lisp history being explored. i'll have to check out lambdamoo again
+- screwlisp: Quite a few people hang around during the Wednesday show (000UTC, anonradio.net)
+- screwlisp: Probably not a coincidence a lot of my emacs useage is the same as yduJ's who is normally there
+- what emacs mode/tool were you using to access the moo?
+ - I dusted off rmoo.el, but it could definitely use some modernization =)
+ - I went for the quick M-x telnet instructions for Guest
+- screwlisp: Can @request your nick with an email address
+
+
+[[!inline pages="internal(2024/info/mcclim-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/mcclim-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/open-mic.md b/2024/talks/open-mic.md
new file mode 100644
index 00000000..577ee0f5
--- /dev/null
+++ b/2024/talks/open-mic.md
@@ -0,0 +1,90 @@
+[[!meta title="Open mic/pad for quick updates etc."]]
+[[!meta copyright="Copyright &copy; 2024 ${speakers}"]]
+[[!inline pages="internal(2024/info/open-mic-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. --->
+
+
+# Open mic/pad for quick updates etc.
+
+
+[[!inline pages="internal(2024/info/open-mic-before)" raw="yes"]]
+
+
+# Discussion
+
+- sachac: I had fun writing some code to copy a line from ERC for easier copying to Etherpad, that was a nice new thing for EmacsConf 2024. Also the random package mentions on our countdown screen was fun too. This year I've had less time to work on Emacs-y things (about half the time compared to last year's leadup to EmacsConf), but it's nice to see we can still pull it off!
+- transient discussion:\
+- do you like to much hydra? Leo?
+- I love which-key.
+ - Yeah, I think adding which-key to Emacs 30 was
+ a great idea!
+- I wrote a transient to make it easy to access various
+ Emacs help resources, and I don't know Elisp very well.    
+- Its amazing how in emacs people don't need to
+ frequently migrate to the newer packages all the time.
+- at one point i experimented a bit with using
+ transcient as an interface to run shell commands that I was trying
+ to parse from the man pages, i still think this is an interesting
+ discoverability into all the options that shell commands offer
+ - inkpotmonkey: ffmpeg comes to mind
+- I use transient for my job, and that save my life.
+- I wrote a little package that combines transient and
+ tabulated list mode to fetch issues from services as jira. 
+ Transient is a nice package to quickly get an UI going.
+- eldoc-mode.\
+- I also kinda just had a thought for discussion. Browser related thoughts and speculation
+- sachac: I've been using spookfox to control Firefox from Elisp,
+ which has been handy for some automation (can both send stuff to and
+ get stuff out of Firefox, I have some blog posts about it)
+- [https://github.com/browsh-org/browsh](https://github.com/browsh-org/browsh)
+- Discussion: Right now it exist as a bunch of hacks on top of sly 
+ 12:16:19 
+- re: qutebrowser \--
+ [https://github.com/lrustand/qutebrowser.el](https://github.com/lrustand/qutebrowser.el)
+- karthik: WOW! I am going to have to start using
+ this immediately! Thank you!
+- I've been really meaning to try out Meow as a
+ long-time Evil user 🙂
+ - The vim bindings never clicked for me. I came directly from the emacs keybindings. Setup meow to mimic the emacs bindings and been working great e.g. n,p,f,b for navigation. Works eally well for colemak dh layout
+- fristed: I've been experimenting with using emacs as a GUI toolkit for common lisp applications
+ - ooo, does your experiment have a home/name?
+ i've been wondering about using emacs as an interface for clim apps
+ (partly as a step towards using clim in emacs, possibly), seems
+ possible considering that their was a web-based interface in the
+ 1990s
+- have you shared links about this? "emacs as a GUI
+ toolkit for common lisp applications"
+- I would like to take a look
+ - did you see my guile talk? you might be
+ interested in the long-term future section :)
+- Currently I do not have any public items yet, but
+ now I know that there is interest i'll look into it
+- If i have something working next year i'll consider
+ having a emacsconf talk. It is inspired by CLOG, but using emacs
+ instead of the browser
+- oooh, another possible topic for discussion: what's something you've recently started trying in Emacs?
+
+- I've been experimenting with using semgrep to
+ review elisp for security issues 
+
+- It was really cool being able to jump in! 😊
+- hey hey, I've been experimenting with ways to make packages
+very easy to try! link:
+[http://anggtwu.net/2024-find-tryit-links.html](http://anggtwu.net/2024-find-tryit-links.html)\
+
+- to the person who was lounge-928 a few minutes ago: I found
+ the slide in which I start to discuss choosing the right level of
+ detail! See here:
+ [http://anggtwu.net/emacsconf2024.html#16:06](http://anggtwu.net/emacsconf2024.html#16:06)
+
+- everyone should know of greader-mode.  it is amazing.  i
+use it all the time\
+
+
+[[!inline pages="internal(2024/info/open-mic-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/open-mic-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/org-teach.md b/2024/talks/org-teach.md
new file mode 100644
index 00000000..5cb22c24
--- /dev/null
+++ b/2024/talks/org-teach.md
@@ -0,0 +1,46 @@
+[[!meta title="org-teach: a minor mode for writing course materials in Emacs"]]
+[[!meta copyright="Copyright &copy; 2024 James Endres Howell"]]
+[[!inline pages="internal(2024/info/org-teach-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-teach: a minor mode for writing course materials in Emacs
+James Endres Howell (he/him) - <mailto:james@endres-howell.org>
+
+[[!inline pages="internal(2024/info/org-teach-before)" raw="yes"]]
+
+I will demonstrate how I used Emacs to produce all the materials for teaching an undergraduate
+molecular and cell biology course at a very large university. My org-teach package
+(<https://git.sr.ht/~jamesendreshowell/org-teach/>) is a collection of Org macros that customize export
+to LaTeX and Beamer in order to produce (1) textbook-style handouts, (2) slides for classroom
+presentation, and (3) quiz and exam questions, all from a single Org source document. It also
+provides a simple minor mode that facilitates authoring such source documents. We will discuss the
+benefits of producing course materials as plain-text outlines, and of exploiting the power of Emacs
+and Org mode for writing and managing book-length teaching materials.
+
+Last year at EmacsConf 2023, I presented some aspects of an earlier version of org-teach
+(<https://git.sr.ht/~jamesendreshowell/org-teach-EmacsConf2023>). This talk will provide more
+background, more details, and some exciting new features.
+
+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 Media. He has used
+Emacs daily since 1988.
+
+Another talk by this speaker:
+
+- [EmacsConf - 2023 - talks - Authoring and presenting university courses with Emacs and a full libre software stack](https://emacsconf.org/2023/talks/uni/)
+
+[[!inline pages="internal(2024/info/org-teach-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/org-teach-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/org-update.md b/2024/talks/org-update.md
new file mode 100644
index 00000000..4406b3bc
--- /dev/null
+++ b/2024/talks/org-update.md
@@ -0,0 +1,189 @@
+[[!meta title="Updates on Org Mode maintenance"]]
+[[!meta copyright="Copyright &copy; 2024 Ihor Radchenko"]]
+[[!inline pages="internal(2024/info/org-update-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 Future of Org
+Ihor Radchenko
+
+[[!inline pages="internal(2024/info/org-update-before)" raw="yes"]]
+
+
+
+# Discussion
+
+## Questions and answers
+
+- Q:<\_viz\> Q: Is the track-changes item about the org-element
+ parser? \[10:34\]
+ - A:Yes
+ - <Ihor\> Moreover, track-changes has been developed with my
+ input specifically aimed to make sure that it can support
+ org-element use case. See
+ [https://debbugs.gnu.org/cgi](https://debbugs.gnu.org/cgi)
+ /bugreport.cgi?bug=70077
+- Q: Could you please keep IRC alive? I prefer it to Matrix. Thx.
+ - A: I am mostly live on IRC from mobile (via Revolution IRC) and
+ should be able to see most of the messages. Except when my
+ mobile phone does not have good internet connection or is
+ discharged
+ - I got a suggestion to use chat.sr.ht as a bouncer. I will look
+ into it to make the connection more reliable. (It is not bad
+ now, but I do miss messages once in a while).
+- Q: Is there any plan for adding support for other modalities of
+ notes like handwritten,  audio, etc.? Would that be interesting to
+ the community? It will definitely be useful for me.
+ - A: Might want to look into jkitchin's repos (possibly via
+ tesseract)
+ - tesseract + image paste:
+ [https://www.youtube.com/watch?v=rGGAr1AWkTc](https://www.youtube.com/watch?v=rGGAr1AWkTc) 
+ - John Kitchin \[Youtube\] (2021) scimax - #drawing
+ screenshot, tesseract, pngpaste and ox-clip
+ - For audio, I do not know much. My bookmarks contain a couple
+ of possibly related items:
+ - [https://git.sr.ht/\~lxsameer/orion](https://git.sr.ht/~lxsameer/orion)
+ - [https://github.com/rksm/org-ai?tab=readme-ov-file#setting-up-speech-input\--output](https://github.com/rksm/org-ai?tab=readme-ov-file#setting-up-speech-input--output)
+ - You can use attachment and images to paste.
+
+ - <Ihor\> In terms of actually adding support for hadwritten
+ notes/audio, it is not 100% clear what that support would
+ consitute. Tooling to convert images/sound to text would
+ probably not be appropriate for Org mode. It would be better
+ done as a separate package(s). Then, using such tooling could be
+ supported, but again, it is not clear what such a support would
+ constitute.
+
+ - "Would that be interesting to the community?" Go and ask ;)
+ Just write about your idea in details to the mailing list and
+ you will get feedback. What I can tell is that this topic does
+ not surface frequently as far as I am aware.
+
+- Q: I spent some time writing a library for myself which involved
+ working with org files. One thing I struggled with was finding a
+ good source of reference code which demonstrated idiomatic usage. Is
+ there/could there be a resource with which to recommend particularly
+ well written codebases for review by others?
+ - A: Ideally, Org codebase should be such a place. Unfortunately,
+ not every part of Org is a good reference for others (I hope to
+ keep pushing for improvements).
+ - Decent references could be ox.el, many ob-\* backends, and
+ ox-\* backends. But I cannot suggest something definite
+ without knowing what exactly you tried to do. There are many
+ APIs in Org mode.
+ - What might be useful is
+ [https://orgmode.org/manual/Hacking.html](https://orgmode.org/manual/Hacking.html)
+ and
+ [https://orgmode.org/worg/dev/index.html](https://orgmode.org/worg/dev/index.html)
+ - Maybe also
+ [https://alphapapa.github.io/org-almanac/#development](https://alphapapa.github.io/org-almanac/#development)
+
+- Q: WRT IETF standardization, have you looked at Karl Voit's OrgDown? 
+ - A: Lot of pushback to this idea on the mailing-list.
+ - A large part of it was about naming
+ - Some links:
+ - [https://list.orgmode.org/2021-11-28T20-44-37@devnull.Karl-Voit.at/](https://list.orgmode.org/2021-11-28T20-44-37@devnull.Karl-Voit.at/)
+ - My followup:
+ [https://list.orgmode.org/87tufnbj1w.fsf@localhost/](https://list.orgmode.org/87tufnbj1w.fsf@localhost/)
+ - Despite pushback, Karl's idea did align with our IETF idea
+ and with one of the point I make in the presentation about
+ making life easier for non-Emacs apps.
+ - See
+ [https://list.orgmode.org/orgmode/2022-10-17T22-36-38@devnull.Karl-Voit.at/](https://list.orgmode.org/orgmode/2022-10-17T22-36-38@devnull.Karl-Voit.at/)
+ - I will quote Bastien here:
+ - [https://list.orgmode.org/orgmode/87fsfl7g01.fsf@bzg.fr/](https://list.orgmode.org/orgmode/87fsfl7g01.fsf@bzg.fr/)
+ - What occurred to me while rereading this thread is
+ that definining a
+ - syntax for a IETF RFC on an Org mimetype probably
+ needs to be done not
+ - just by this Emacs Org-mode community, but by
+ bringing together other
+ - "consumers" of .org files, from ecosystems outside
+ of Emacs.
+ - Such a collective work could lead to define what
+ subset of the Org
+ - syntax is useful as the corner-stone for .org files
+ everywhere - which
+ - is what you rightfully brought up with "Orgdown".
+ - If successful, such a process could end up in
+ defining the minimal and
+ - official "Org syntax" while allowing
+ implementations (like the one for
+ - Emacs org-mode) to supercharge this syntax if deemed
+ useful.
+ - Perhaps TEC is right and we will end up having the
+ minimal syntax
+ - being the one we currently use for Org-mode: we'll
+ see.
+- Q: About a year ago we discussed switching GNU documentation from texinfo to org. Do you still consider this?
+ - A: We don't want to complicate org syntax to adjust to the
+ texinfo markup.
+ - ...But we want to keep org's syntax generic so that it can be
+ customized to support the necessary Texinfo constructs
+ - I detailed my vision in
+ [https://list.orgmode.org/875xwqj4tl.fsf@localhost/](https://list.orgmode.org/875xwqj4tl.fsf@localhost/)
+ - apart from Texinfo parity, the idea is to help
+ addressing various syntax edge cases by providing
+ aliases to the existing markup elements
+
+## Notes
+
+- Nice to see mobile apps actively being considered when talking about org :D
+- Transient integration in org will be a very welcome improvement! Being able to save the
+ transient state on org-export would be very nice indeed
+- fun fact: Transient did take some inspiration from Org's menus
+ - tarsius: Oh, I did not know this!
+ - From which menus exactly, those implemented by Nicolas
+ for the exporter?
+ - Not any specific menus but the "dim unreachable
+ commands, when the user typed an incomplete key sequence"
+ feature.
+- love to hear how folks in emacs real approach
+ project development as social endeavors to a significant degree
+- Another mobile app that understands org-markdown is
+ ZettelNotes
+ ([https://znotes.thedoc.eu.org/](https://znotes.thedoc.eu.org/))
+ - It is not the only one missed. For a reason. I did not
+ find source code.
+ - Ah ok, that is fair.
+- <jaafar\>There is a Ruby parser too, in the Guthub renderer
+ - Right. It is also listed at
+ [https://orgmode.org/tools.html](https://orgmode.org/tools.html)
+ (alongside with Pandoc)
+- As an org user but someone who is not familiar with
+ development (and has no context on org's direction before Ihor's stewardship), I'm really excited about the priorities being expressed in this talk :) Thanks
+ \[10:47\]
+- another great (and absolute core to me) app with org-mode
+ support (respectively org files are at the core of it) for iOS
+ devices is: beorg
+ [https://www.beorgapp.com/](https://www.beorgapp.com/)
+ - the dev is responsive and open for feedback/feature requests, from my experience so far. i'm still "a noob", but org-mode, emacs and beorg allow me to structure my workflows/needs and to get rid of possibly many other apps/software.
+ - The list of iOS-native apps are still quite small with varying quality. So far, I'm quite happy with beorg. Tried out other too (1-2 i may be missing, maybe considering buying them, even if it's just a small contribution to Emacs/orgmode as community as such). as far as the libre aspect. true, but i have to be pragmatic at some point, and firstly i want to be productive/efficient/effective. As long as it's a sole dev / community-inspired thing, and not a big corporate raider, i'm fine with non-libre software, if the standards are kept and no proprietary overhead stuff is modifying the core of org-mode (in this example for example).
+- Really encouraging stuff, thanks :D
+- Thank you yantar92\` 
+- Thank you for this wonderful talk!
+- We appreciate all the work being done
+- really enjoying this talk as a long time user who hasn't
+ ever really thought about how org mode gets developed (much less
+ contributed)
+- For audio transcription, I use Speech Note (offline) and copy the
+ text to orgmode
+- It's great to see Carsten, Bastien and Ihor together. I run my life
+ with orgmode, so we owe you guys a lot :)
+- I think a huge part of Org Mode is workflow, and that's
+ both highly individual and highly social - we learn about what's
+ possible by hearing about how other people do things
+- Thank you for taking over org! I use it every day and I'm happy to see that org's future is in good hands.
+- YouTube comments:
+ - Congratulations! I'm super excited for the things to come, especially about mobile apps not being an afterthought anymore. Also looking forward to the transition to transient menus!
+ - That was a great talk. Thank you for bringing all that information together and thank you for your work on org-mode. I use it every day and it's good to see it's still in active and constructive development. I particularly like the focus on the standard and parsers to define the format and clean up code bases both in org-mode and beyond.
+ - As someone who has just started using org mode, it's really reassuring to see that someone with such a well thought through, comprehensive, specific, detailed, and balanced vision of the future of org is taking the helm! May your bugs always be shallow and your users grateful <3
+ - I've been using org-mode for over a decade now, and can't imagine life without it. So welcome aboard, Ihor, may org-mode continue to prosper with you as Maintainer!
+
+[[!inline pages="internal(2024/info/org-update-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/org-update-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/p-search.md b/2024/talks/p-search.md
new file mode 100644
index 00000000..f4fd1b9e
--- /dev/null
+++ b/2024/talks/p-search.md
@@ -0,0 +1,241 @@
+[[!meta title="p-search: a local search engine in Emacs"]]
+[[!meta copyright="Copyright &copy; 2024 Zac Romero"]]
+[[!inline pages="internal(2024/info/p-search-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. --->
+
+
+# p-search: a local search engine in Emacs
+Zac Romero - <mailto:zacromero@posteo.com>
+
+[[!inline pages="internal(2024/info/p-search-before)" raw="yes"]]
+
+Search is an essential part of any digital work. Despite this
+importance, most tools don't go beyond simple string/regex matching.
+Oftentimes, a user knows more about what they're looking for: who
+authored the file, how often it's modified, as well as search terms that
+the user is only slightly confident exist.
+
+p-search is a search-engine designed to combine the various prior
+knowledge about the search target, presenting it to the user in a
+systematic way. In this talk, I will present this package as well as go
+over the fundamentals of inforation retrieval.
+
+Details:
+
+In this talk, I will go over the p-search. p-search is a search-engine
+to assist users in finding things, with a focus on flexibility and
+customizablity.
+
+The talk will begin by going over concepts from the field of information
+retrieval such as indexing, querying, ranking, and evaluating. This
+will provide the necessary background to describe the workings of
+p-search.
+
+Next, an overview of the p-search package and its features will be
+given. p-search utilizes a probabilistic framework to rank documents
+according to prior beliefs as to what the file is. So for example, a
+user might know for sure that the file contains a particular string,
+might have a strong feeling that it should contain another word, and
+things that some other words it may contain. The user knows the file
+extension, the subdirectory, and has known that a particular person
+works on this file a lot. p-search allows the user to express all of
+these predicates at once, and ranks documents accordingly.
+
+The talk will then progress to discuss assorted topics concerting the
+project, such as design considerations and future directions.
+
+The aim of the talk is to expand the listeners' understanding of search
+as well as inspire creativity concerning the possibilities of search
+tools.
+
+Code: <https://github.com/zkry/p-search>
+
+
+# Discussion
+
+## Questions and answers
+
+- Q: Do you think a reduced version of this functionality could be
+ integrated into isearch?  Right now you can turn on various flags
+ when using isearch with M-s \<key\>, like M-s SPC to match spaces
+ literally.  Is it possible to add a flag to "search the buffer
+ semantically"? (Ditto with M-x occur, which is more similar to your
+ buffer-oriented results interface)
+ - A: it's essencially a framwork so you would create a generator;
+ but it does not exist yet.
+- Q: Any idea how this would work with personal information like
+ Zettlekastens? 
+ - A: Useable as is, because all the files are in directory. So
+ only have to set the files to search in only. You can then add
+ information to ignore some files (like daily notes).
+ Documentation is coming.
+- Q: How good does the search work for synonyms especially if you use
+ different languages?
+ - A: There is an entire field of search to translate the word that
+ is inputted to normalize it (like plural -\> singular
+ transformation). Currently p-search does not address this. 
+ - A: for different languages it gets complicated (vector search
+ possible, but might be too slow in Elisp).
+- Q: When searching by author I know authors may setup a new machine
+ and not put the exact same information. Is this doing anything to
+ combine those into one author?
+ - A: Currently using the git command. So if you know the emails
+ the author have used, you can add different priors.
+- Q: A cool more powerful grep "Rak" to use and maybe has some good
+ ideas in increasing the value of searches, for example using Raku
+ code while searching. is Rak written in Raku. Have you seen it? 
+ - [https://github.com/lizmat/App-Rak](https://github.com/lizmat/App-Rak)
+ - [https://www.youtube.com/watch?v=YkjGNV4dVio&t=167s&pp=ygURYXBwIHJhayByYWt1IGdyZXA%3D](https://www.youtube.com/watch?v=YkjGNV4dVio&t=167s&pp=ygURYXBwIHJhayByYWt1IGdyZXA%3D) 
+ - A: I have to look into that. Tree-sitter AST would also be cool
+ to include to have a better search.
+- Q: Have you thought about integrating results from using cosine
+ similarity with a deep-learning based vector embedding?  This will
+ let us search for "fruit" and get back results that have "apple"
+ or "grapes" in them \-- that kind of thing.  It will probably also
+ handle the case of terms that could be abbreviated/formatted
+ differently like in your initial example.
+ - A: Goes back to semantic search. Probably can be implemented,
+ but also probably too slow. And it is hard to get the embeddings
+ and the system running on the machine.
+- Q:  I missed the start of the talk, so apologies if this has been
+ covered - is it possible to save/bookmark searches or search
+ templates so they can be used again and again?
+ - A: Exactly.  I just recently added bookmarking capabilities, so
+ we can bookmark and rerun our searches from where we left off. 
+ I tried to create a one-to-one mapping from the search object to
+ the search object - there is a command to do this- to get a data
+ representation of the search, to get a custom plist and resume
+ the search where we left off, which can be used to create
+ command to trigger a prior search.
+- Q: You mentioned about candidate generators. Could you explain about
+ to what the score is assigned to. Is it to a line or whatever the
+ candidate generates? How does it work with rg in your demo?
+
+   FOLLOW-UP: How does the git scoring thingy hook into this?\
+
+- - A: Candidate generator produces documents. Documents have
+ properties (like an id and a path). From that you get
+ subproperties like the content of the document. Each candidate
+ generator know how to search in the files (emails, buffers,
+ files, urls, \...). There is only the notion of score +
+ document.
+ - Then another method is used to extract the lines that matches in
+ the document (to show precisely the lines that matches).
+
+- Q: Hearing about this makes me think about how nice the emergent
+ workflow with denote using easy filtering with orderless. It is
+ really easy searching for file tags, titles etc. and do things with
+ them. Did this or something like this help or infulce the design of
+ psearch?
+ - A: You can search for whatever you want. No hardcoding is
+ possible for anything (file, directories, tags, titlese\...).
+
+- Q: \[comments from IRC\] \<NullNix\> git covers the "multiple
+ names" thing itself: see .mailmap  10:51:19 
+ - \<NullNix\> thiis is a git feature, p-search shouldn't need to
+ implement it  10:51:34 
+ - \<NullNix\> To me this seems to have similarities to notmuch \--
+ honestly I want notmuch with the p-search UI :) (of course,
+ notmuch uses a xapian index, because repeatedly grepping all
+ traffic on huge mailing lists would be insane.)  10:55:30 
+ - \<NullNix\> (notmuch also has bookmark-like things as a core
+ feature, but no real weighting like p-search does.)  10:56:07 
+ - A: I have not used notmuch, but many extensions are
+ possible. mu4e is using  a full index for the search. This
+ could be adapted here to with the SQL database as source. 
+
+- Q: You can search a buffer using ripgrep by feeding it in as stdin
+ to the ripgrep process, can't you?
+ - A: Yes you can. But the aim is to search many different things
+ in elisp. So there is a mechanism in psearch anyway to be able
+ to represent anything including buffers. This is working pretty
+ well.
+
+- Q:  Thanks for making this lovely thing, I'm looking forward to
+ trying it out.  Seems modular and well thought out. Questions about
+ integreation and about the interface
+ - A: project.el is used to search only in the local files of the
+ project (as done by default)
+
+- Q: how happy are you with the interface?
+ - A: psearch is going over the entire files trying to find the
+ best. Many features can be added, e.g., to improve debuggability
+ (is this highly ranked due to a bug? due to a high weight? many
+ matching documents?)
+ - A: hopefully will be on ELPA at some point with proper
+ documentation.
+
+- Q: Remembering searches is not available everywhere (rg.el? but AI
+ package like gptel already have it). Also useful for using the
+ document in the future.
+ - A: Retrievel augmented generation: p-search could be used for
+ the search, combining it with an AI to fine-tune the search with
+ a Q-A workflow. Although currently no API.  
+ - (gptel author here: I'm looking forward to seeing if I can use
+ gptel with p-search)
+ - A: as the results are surprisingly good, why is that not used
+ anywhere else? But there is a lot of setup to get it right. You
+ need to something like emacs with many configuration (transient
+ is helping to do that) without scaring the users. 
+ - Everyone uses emacs differently, so unclear how people will
+ really use it. (PlasmaStrike) For example consult-omni
+ (elfeed-tube, \...) searching multiple webpages at the same
+ time, with orderless. However, no webpage offers this option.
+ Somehow those tools stay in emacs only. (Corwin Brust) This is
+ the strength of emacs: people invest a lot of time to improve
+ their workflow from tomorrow. \[see xkcd on emacs learning curve
+ vs nano vs vim\]
+ - [https://github.com/armindarvish/consult-omni](https://github.com/armindarvish/consult-omni)
+ - [https://github.com/karthink/elfeed-tube](https://github.com/karthink/elfeed-tube)
+ - [https://www.reddit.com/r/ProgrammerHumor/comments/9d6f19/text_editor_learning_curves_fixed/](https://www.reddit.com/r/ProgrammerHumor/comments/9d6f19/text_editor_learning_curves_fixed/)
+ - A: emacs is not the most beginner friendly, but the solution
+ space is very large
+ - (Corwin Brust) Emacs supports all approaches and is extensible.
+ (PlasmaStrike) Youtube much larger, but somehow does not have
+ this nice sane interface.
+
+- Q: Do you think the Emacs being kinda slow will get in the way of
+ being able to run a lot of scoring algorithms?
+ - A: The code currently is dumb in a lot of places (like going of
+ all files to calculate a score), but that is not that slow
+ surprisingly. Elisp enumerating all files and multiplying
+ numbers in the emacs repo isn't really slow. But if you have to
+ search in files, this will be slow without relying on ripgrep on
+ a faster tool. Take for example the search in info files / elisp
+ info files, the search in elisp is almost instant. For
+ human-size documents, probably fast enough \-- and if not, there
+ is room for optimizations. For coompany-size documents (like
+ repos), could be too small.
+
+- Q: When do you have to make something more complicated to scale
+ better?
+ - A: I do not know yet really. I try to automate tasks as much as
+ possible, like in the emacs configuration meme "not doing work
+ I have to do the configuration". Usually I do not add web-based
+ things into emacs.
+
+## Notes
+
+- I like the dedicated-buffer interface (I'm assuming using
+ magit-section and transient).
+- Very interesting ideas. I was very happy when I was able
+ to do simple filters with orderless, but this is great \[11:46\]
+- I dunno about you, but I want to start using p-search
+ yesterday. (possibly integrating lsp-based tokens
+ somehow\...)
+- Awesome job Ryota, thank you for sharing! 
+- Very interesting ideas. I was very happy when I was able to do simple filters with orderless, but this is great
+- git covers the "multiple names" thing itself: see .mailmap
+- thiis is a git feature, p-search shouldn't need to implement it
+- To me this seems to have similarities to notmuch -- honestly I want notmuch with the p-search UI :) (of course, notmuch uses a xapian index, because repeatedly grepping all traffic on huge mailing lists would be insane.)
+- (notmuch also has bookmark-like things as a core feature, but no real weighting like p-search does.)
+- YouTube comment: thats novel and intersting . The ship wrek analogy was perfect too
+- YouTube comment: Wow... thank you
+
+[[!inline pages="internal(2024/info/p-search-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/p-search-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/papers.md b/2024/talks/papers.md
new file mode 100644
index 00000000..bbff053d
--- /dev/null
+++ b/2024/talks/papers.md
@@ -0,0 +1,140 @@
+[[!meta title="Writing academic papers in Org-Roam"]]
+[[!meta copyright="Copyright &copy; 2024 Vincent Conus"]]
+[[!inline pages="internal(2024/info/papers-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 academic papers in Org-Roam
+Vincent Conus (he/him) - Pronunciation: vɪnsᵊnt koʊnᵊs, IRC: sunoc, Mastodon: @sunoc@social.linux.pizza, <mailto:vincent.conus@pm.me>
+
+[[!inline pages="internal(2024/info/papers-before)" raw="yes"]]
+
+Org-mode and more so org-roam are making for a fantastic note-taking system
+inside Emacs. Combining the note-taking of org-mode, the capability to export
+a note to LaTeX and PDF directly, the spectacular org-roam-bibtex package
+and the flexibility of the elisp configuration of Emacs, it become possible
+to use a org-roam note as the main document for write academic papers, even
+when exotic templates are provided.
+
+In this presentation, I want to talk about the way I am using org-roam to write
+LaTeX documents, the benefits of it but also the various pitfalls and
+difficulties encountered in this journey.
+
+The key benefits being:
+
+- The integration with other org-roam notes.
+- Bibliography integration and links directly to PDF.
+- Org-mode literate programming capabilities.
+- Direct export to PDF.
+
+The main challenges are:
+
+- Dealing with strangely formatted LaTeX templates.
+- Related, having to use other LaTeX compilers.
+- These two points can make citation of references, in particular, challenging.
+
+About the speaker:
+
+A PhD student in robotics at
+Nanzan University, Japan. I have been using Linux for around 10 years at that
+point, eventually moving many of my work and personal stuff to Emacs over the
+years, including academic writing.
+
+See also:
+
+[[!taglink CategoryOrgMode]]
+[[!taglink CategoryRoam]]
+
+# Discussion
+
+## Questions and answers
+
+- Q: how do you convince your coauthors to use emacs?
+ - (not yet answered)
+- Q: I'd be interested how to start this journey of writing academic papers in Org-Roam when not having used  Emacs Org-Mode yet? Thanks!
+ - A: I saw this one before and I guess it would be possible to do that, to use Org documents only as the way that you are writing papers. Maybe you can just use that as a template that you're going to export. If you are familiar with LaTeX, it's going to be more useful, and maybe more convenient to work with inside of Emacs. But then I'm not 100% sure if that's... How do you say that? Maybe, in my opinion, the benefits of using org-roam in that setup is that you can link the things. For me, I'm using the search function for org-roam to just navigate between the files. So that's really some, a good advantage, but like, yeah, that could be, like Leo said in the presentation, that's some, maybe that's something you can start using org-mode with to write papers. So yeah.
+ - Agreed on opinion of working in org vs LaTeX
+- Q: How about connecting Emacs Org-Roam to Zotero? Is that something you have experience with?
+ - A: You could export your bibliography from Zotero to bibtex.
+ - Tip: check out the Better Bibtex plugin and its handly \"Keep
+ updated\" option - I do this selecting biblio.bib file in roam
+ folder as target
+- Q: Out of curiosity, how do you manage your bibliography? Do you do it from inside Emacs, or using a separate program like Zotero?
+ Because personally, I have struggled to do it from Emacs, although I
+ have wanted to for sometime. I see, then I am just lazy and don\'t
+ want to do it by hand -_-
+ - A: So the way I manage that is I just have a couple of .bib files that I edit by hand, where I put the reference when I find them. And yeah, I just showed very briefly in the presentation, but the way. One of the great thing with the org reference system is that if you have your bibliographic files that are connected to that system, you can just like, you can put the link, the reference to the paper, like click on it from your org note, and then you can open the PDF. You can open the DOI link to open the whatever publisher page. So no, I don't use Zotero and I just edit bib or bib files by hand in Emacs.
+ - I understand the appeal for having it integrated in the browser. Maybe that's something I should look up, actually, because right now I just like doing it very much by hand, like going on the publisher page and copying the bibtex block and just using putting that in my file. Yes, it can be not a very efficient workflow on that side. But after that, you're having the PDF and having it inside the note.
+- Q: How do you start a new document? There are a lot of headers you
+ have to setup! Do you use a template? I'm curious if they use
+ yasnippets to deal with all of those latex/org meta commands? (IRC:
+ gringo)
+ - A: At present, not using snippets (but considering).  Currently
+ re-uses previous doc as template.  There's reconciling template
+ received from the journal/publisher.
+- Q: What do you think of using citar with org-roam-bibtex? It seems
+ that bibtex-completion is tied to org-roam-bibtex.
+ - A: Has not explored citar. I am pretty sure org-roam-bibtex
+ works with citar.
+- Q: Most academic journals insist that papers are formatted in their
+ own custom LaTeX documentclass.  Does org-roam make it easy to do
+ that? (jmd)
+ - A: No.  Makes a custom org latex class, to the import the cls;
+ then putting the template provided in the headers of the
+ document, or as needed in the body block.  Then there\'s manual
+ adaption.  When using LaTeX, you care much about the output of
+ the document; each domain/field of research has its own flavour
+ of expectations.
+- Q: Are you using zotra
+ ([https://github.com/mpedramfar/zotra](https://github.com/mpedramfar/zotra))
+ or org-ref ?
+ - Never heard of it. That's something I'm going to have to look into.
+- Q: How much of this is tied to org-roam specifically?
+ - Not that much
+
+## Notes
+
+- Presentation org notes formatted for org-present: [https://gitlab.com/sunoc/emacsconf-2024-presentation](https://gitlab.com/sunoc/emacsconf-2024-presentation)
+- Thank you for this! I am using org to export my CV, and had to
+ figure out a few of these things. Lots of new bits for me to
+ explore.
+- Thanks, good presentation.
+- Those exports look awesome
+- Nice demo, thanks!
+- How'd he get that image on the right page? ;-)
+- I wonder if work has been done to export an ODT document with citations in zotero's format
+- Yeah, that's what I enjoy about citations, It's a sort of universal link.
+- I wonder how much LaTeX experience is wrapped up in that export
+ process
+- The problem-solving aspect of tinkering with Emacs is a boon.
+- The reference management that Vincent demo'd comes from org
+ integration. You wouldn't have that functionality with bare
+ LaTeX/Typst, etc. 
+- Org to typst converstion:
+ [https://github.com/jmpunkt/ox-typst](https://github.com/jmpunkt/ox-typst)
+- One way I've seen to go about headers is having a template file:
+ [https://www.youtube.com/watch?v=0qHloGTT8XE](https://www.youtube.com/watch?v=0qHloGTT8XE) that you can import with a "#+SETUPFILE:" line
+ - Then you just override the document specific stuff right gs-101? In that case a snippet would come in handy
+ - Yes, for packages not featured in the template I just add them to the file with "#+latex_header:"
+- Maybe down the line we can make ties with LLMs to translate styles
+- IIRC pandoc also now has tools to do the conversion. I don't know how good that is though.
+- It's a good point. I think a lot of people use org mode as their default document editing syntax, so being able to use the same syntax for your papers instead of switching contexts to latex is helpful
+- The reference management that Vincent demo'd comes from org integration. You wouldn't have that functionality with bare LaTeX/Typst, etc.
+- AFAIK, pandoc converts everything to an intermediate format, so you do lose some information.
+- i come from latex originally, before i started trying to do everything from org, so i recognize how powerful latex is. typst is just not there yet at all.
+ - mainly started learning typst as i orginally started with latex but got overwealmed
+- as long as you don't have typesetting software specific code in your org file, sure
+- I learned LaTeX just to write good looking math in Org notes lol
+- for journals, you usually need appropriate documentclass. That does not require org-roam. Just Org itself
+- Thanks Vincent! work in progress
+- just got this in mind when reading here about typst ;-) https://xkcd.com/927/
+- I also have the video saved in the bibliography, so I can go to the file by just opening the citation link.
+- I'll check out Zotra now, seems really interesting. better.
+- Thanks for sharing your techniques Vincent!
+
+[[!inline pages="internal(2024/info/papers-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/papers-nav)" raw="yes"]]
+
diff --git a/2024/talks/pgmacs.md b/2024/talks/pgmacs.md
new file mode 100644
index 00000000..8d901d80
--- /dev/null
+++ b/2024/talks/pgmacs.md
@@ -0,0 +1,164 @@
+[[!meta title="PGmacs: browsing and editing PostgreSQL databases from Emacs"]]
+[[!meta copyright="Copyright &copy; 2024 Eric Marsden"]]
+[[!inline pages="internal(2024/info/pgmacs-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. --->
+
+
+# PGmacs: browsing and editing PostgreSQL databases from Emacs
+Eric Marsden (he/him) - <mailto:eric.marsden@risk-engineering.org>, [@emarsden@mastodon.social](https://mastodon.social/@emarsden)
+
+[[!inline pages="internal(2024/info/pgmacs-before)" raw="yes"]]
+
+PGmacs provides an Emacs-based browsing and
+editing interface for the PostgreSQL DBMS. It
+allows you to browse the contents of database
+tables, in paginated mode for large tables, to
+edit column values in the minibuffer or using a
+widget-based interface, to delete, copy and insert
+new rows, and to save the contents of a table in
+CSV or JSON format. You can run shell commands on
+column values. You can also rename tables and
+columns, add SQL comments, and generate SchemaSpy
+diagrams.
+
+PGmacs works both in the terminal and in GUI mode.
+It uses the pg-el library, which implements the
+PostgreSQL wire protocol, to connect to PostgreSQL
+over the network or over a Unix socket.
+
+The talk will provide an overview of the functionality of PGmacs, then show how it can be easily
+extended to display images stored as database BLOBs inlined in a row-list buffer.
+
+<https://github.com/emarsden/pgmacs>
+
+About the speaker:
+
+Eric Marsden developed his first Emacs packages
+pg-el, coffee.el (an implementation of the
+essential Hyper Text Coffee Pot Control Protocol)
+and ipp.el as a procrastination exercise to avoid
+working on his PhD. He continues to use Emacs Lisp
+in his spare time.
+
+
+# Discussion
+
+## Questions and answers
+
+- Q: This is brilliant, thank you! Do you know if PGmacs works with
+ TRAMP? I often use TRAMP multi-hop to access databases - both
+ remotely when accessing via a 'bastion server' and locally when
+ using OCI containers
+ - A: There is no TRAMP support, I'm afraid. PGmacs is directly
+ connecting to the database server over the network. You can set
+ up ssh tunnels, but that would be done separately from Tramp.
+ Thanks :)
+ - you can tunnel arbitrary data over ssh
+ - ssh subsystems are the thing to look at, I
+ think\... I might look at it
+ - (sftp works that way: basically you can put
+ arbitrary progams at the remote end\... like, oh, say,
+ pgsql. transparently to the ssher.)
+ - Possibly PGmacs could setup the tunnel itself,
+ using TRAMP?
+ - With docker.el, kubel, etc, it's often possible to for example
+ select a container/pod/whatever that is hosted on a machine
+ you've connected to via TRAMP (such as
+ /podman:\<image\>:/path/), and trigger a terminal/eshell as well
+ as port-forwards and other similar things. It'd be nice to be
+ able to use this tool in a similar way since it would open up
+ the ability to use it with complex connection configurations.
+ Doing SSH tunnels manually is ofc totally fine in practice :)
+- Q: \<Donovan\>Great work! I'm impressed. How did you come up with
+ this brilliant idea?
+ - A: First got the idea by looking at sqlite-mode
+- Q: Is sqlite-mode also capable of all of this functionality (table
+ relations, etc)? If not, will it be possible to abstract out this
+ functionality from pgmacs somehow?
+ - A: I'm not veyr familiar with sqlite-mode but  it looks more
+ basic. There are differences between the sql dialects so it will
+ be difficult to abstract it out.
+- Q: Would it be possible to move it into Emacs tree? Are the
+ maintainers interested in it?
+ - A: Currently its at a very early stage and is being updated
+ regularly. I also have some philosophical reasons to not do it
+ regarding copyright transfer to the FSF.
+- Q: Almost missed this one, so glad I didn't, but this may have been
+ answered already: what do you use for the in-buffer tables? vtable?
+ - A: vtable but "forked" (some changes/improvements, may
+ consider "merging" back with vtable core work)
+- Q:
+ - A:
+
+## Notes
+
+- I have got 270 tables, and it stays there forever "loading"
+ tables, and nothing appears.
+- Thanks for checking it out! You may have an authentication failure,
+ and PGmacs is not very good at showing that in the connect phase.
+ Switch to the \*Messages\* buffer and see whether there's an error
+ message there.
+ - This is happening with me as well. I noticed this error message
+ in Postgres Logs. It works if I open the postgres database.
+ - db-1  \| 2024-12-08 18:58:41.524 UTC \[48\] STATEMENT: 
+ CREATE EXTENSION IF NOT EXISTS vector
+ - db-1  \| 2024-12-08 18:59:13.831 UTC \[50\] ERROR:  could
+ not open extension control file
+ "/usr/share/postgresql/14/extension/vector.control": No
+ such file or directory
+ - In \*Messages\* buffer, this is what I see
+ - pg-bind: Wrong type argument: stringp, 97
+- OK, thanks for this feedback. It looks like your Postgres vector
+ extension is not well set up, but that really shouldn't be causing
+ a complete connection failure. You can comment out the line
+ (pg-vector-setup con) in function pgmacs-open in pgmacs.el and see
+ whether that helps
+ - - Let me try that and report back.
+ - I got this error: pg-do-startup: Process postgres not
+ running: failed with code 111
+ - OK, that means that the network connection failed. There is
+ probably more error information in the backtrace
+ - Ah sorry, had stopped the pg. This time I got the same error
+ - pg-bind: Wrong type argument: stringp, 97
+ - But it didn't try to load vector extensions (from pg logs).
+ - With toggle-debug-on-error, this is the backtrace
+ - [https://gist.github.com/ankitrgadiya/d9ae038489e4f680e3037e2e61584312](https://gist.github.com/ankitrgadiya/d9ae038489e4f680e3037e2e61584312)
+ - OK, thanks for that backtrace. I don't immediately see what
+ is wrong here. There is something strange about that
+ shared_urls table, it seems. Are you using pg-el from the
+ github repo? 
+ - I created the github issue to continue the discussion:
+ [https://github.com/emarsden/pgmacs/issues/9](https://github.com/emarsden/pgmacs/issues/9)
+- - - BTW I'm using the postgres docker image.
+
+- This is amazing! Image inline :o !!
+
+- I'm impressed by the inline images.  Just sprinkle a little elisp
+ and voila.
+
+- A PostGIS point field -\> osm.el integration would be very cool
+- Interesting idea, will look into that.
+- Super slick Emacs/PG hacking and presentation!
+ Eat your heart out, MS Access
+- another package I never knew I needed
+- Very cool, I'm currently using PG on a small project and
+ it's always a pain to leave emacs to do checks in the database.
+- I just wish it had existed when I was doing massive db
+ work in the 90s/2000s
+- Just installed it, to prevent me from forgetting about
+ it.
+- I just wish it had existed when I was doing massive db work in the 90s/2000s
+ - Better 20+ years late than never 😆
+- there is a grantback if you assign copyright to the FSF: you get all the rights you gave away right back again
+- Thanks Eric, looks fantastic, and quite eager to look into those vtable enhancements myself (thanks for answering)
+- YouTube comment: Very impressive, thanks!
+- YouTube comment: Finally a perspective on a potential real excel killer.
+- YouTube comment: How is the duckdb more coming along?
+
+[[!inline pages="internal(2024/info/pgmacs-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/pgmacs-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/project.md b/2024/talks/project.md
new file mode 100644
index 00000000..7aa44df8
--- /dev/null
+++ b/2024/talks/project.md
@@ -0,0 +1,258 @@
+[[!meta title="Managing writing project metadata with org-mode"]]
+[[!meta copyright="Copyright &copy; 2024 Blaine Mooers"]]
+[[!inline pages="internal(2024/info/project-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. --->
+
+
+# Managing writing project metadata with org-mode
+Blaine Mooers (he/him) - Pronunciation: Blane Moors, <mailto:blaine-mooers@ouhsc.edu>
+
+[[!inline pages="internal(2024/info/project-before)" raw="yes"]]
+
+The planning and writing of a scientific manuscript is an intricate process that requires focused effort.
+Scientists must make many decisions about what to include and exclude from the paper, often capturing these decisions in notes in the margins, appended notes, or external files.
+This ad hoc approach becomes unmanageable when the notes exceed the length of the manuscript, which is often the case.
+Nonetheless, these notes can be vital when responding to reviewers' critiques.
+
+Great scientists like Linus Pauling effectively utilized laboratory notebooks to store metadata on his manuscripts.
+His cross-referencing system resembled that of Niklas Luhmann in his physical zettelkasten.
+These paper-based approaches have pros and cons, but they are no longer popular because of the hard work required to make them work well.
+In comparison, the org-roam-ui view of my zettelkasten provides a garden of endlessly forking paths I can wander in all day.
+
+I sought a more focused approach to managing my attention and the metadata for one writing project.
+I developed a project-specific writing log for this purpose about a decade ago.
+The writing log helps me manage anxieties about forgetting where I left off on an interrupted project (Fear of Forgetting, FoF).
+In this talk, I will highlight the features of my writing log template in org-mode.
+
+The first section supports gathering the initial thoughts about the project needed to assemble a central hypothesis around which to build the paper.
+Subsections support listing the experiments required to address the central hypothesis and the key discussion points.
+These subsections include plans for graphical items like images, data plots, tables, equations, and code blocks.
+Of course, this section will evolve as the results accumulate.
+When largely completed, this section supports drafting a quarter to a third of a manuscript on day one of the project.
+
+The following two sections support project administration and assessment.
+The administration section includes plans to apply for funding and approvals for the work.
+The assessment section supports periodic checks of the project's current state, what holds the manuscript from submission today, and what is missing that makes a larger impact.
+This section includes a timeline and milestones to finish the project promptly.
+These can be displayed in tables that org-mode so strongly supports.
+
+The central section of the template contains daily accounts of accomplishments, decisions, and correspondence about the project.
+I read this section after a hiatus to resume work on the project quickly.
+An open-ended to-do list and a section for collecting ideas for future projects follow the daily log.
+The last section contains protocols and guidelines for the various tasks involved in completing the project.
+
+Here, context switching between the writing log and the manuscript is fine because it usually happens only at the beginning and the end of the writing session. My project-specific approach keeps my mind focused on the project at hand and my FoF under control.
+I share my writing log template in org-mode on GitHub.
+
+About the speaker:
+
+Blaine Mooers is an associate professor of Biochemistry and Physiology at the University of Oklahoma.
+He uses X-ray diffraction to study the molecular structure of proteins and RNAs important in disease.
+He writes grant applications, progress reports, manuscripts, lectures, seminars, and talks each year in Emacs.
+To control his fear of forgetting (FoF), he uses an external document, the **writing log**, to store metadata about each writing project.
+He switched from using LaTeX to Org-mode recently.
+He will discuss the features of the writing log and the joys of editing it in Org-mode.
+
+
+# Discussion
+
+## Questions and answers
+
+- Q: what does 0573 means in your init. file name?
+ - A: Index number used to "name"/ describe a project. My
+ project folders in my home directory are of the format
+ ####stubOfTheProjectsFullName. Maybe i will describe my project
+ numbering system in a future talk. It helps enormously in
+ navigating between projects and stayting organized. I store the
+ project ID number and the folder name in a sqlite database that
+ I pop open with a bash alias to the DB Browser for SQlite. I
+ also use the Project ID to track time spent on each project to
+ the nearest 15 minues increment. I do this time tracking once
+ every several hours 2-4 times a day. If I cannot remember what I
+ was doing, nothing is recorded. This is important for keeping
+ the data accurate. This practive is a pain but the data are
+ valuable for self-assessments and annual reports.
+- Q: <gringo\> What does Zettelkasten mean?
+ - A: <vidianos\> It's a notetaking method <Neil\>Useful
+ overview at
+ [https://zettelkasten.de/introduction/](https://zettelkasten.de/introduction/)
+ - A: Pls cf.
+ [https://en.wikipedia.org/wiki/Zettelkasten](https://en.wikipedia.org/wiki/Zettelkasten)
+ An augmented org-roam is found in the zetteldesk.el project by Vidianos [https://github.com/Vidianos-Giannitsis/zetteldesk.el](https://github.com/Vidianos-Giannitsis/zetteldesk.el). See  his talk from EmacsConf 2022: 
+ [https://www.youtube.com/watch?v=dJ859kiFRLg&t=0s](https://www.youtube.com/watch?v=dJ859kiFRLg&t=0s)
+ - A: A great resource is Sönke Ahrens's "How to Take Smart
+ Notes" (to get you thinking about the progressive evolution of
+ your note taking; and a solid walk through of Zettlekasten in
+ practice/implementation) . There also is a German edition of the
+ book, it's called: "Das Zettelkasten-Prinzip". The book
+ "Antinet Zettelkasten" by Scott Scheper clarifies several
+ misconceptions about the Zettelkasten Method (see chapter 3). He
+ spent months replicating the analog version that Luhman used and
+ gained a number of important insights. I have seen the method
+ applied in ways that were never intended. I think that these
+ vairant approaches are innovative and can enhance productivity,
+ but they can cause some confusion. The ultimate source is the
+ [https://niklas-luhmann-archiv.de/](https://niklas-luhmann-archiv.de/).
+ - Smart notes are linked to one another. They make up a kind of
+ hypertext, similar to a wiki, as a whole.
+ - Org-Roam and Denote are two implementations that can support the
+ slipcase; backlinks are important (and also/perhaps a
+ consideration of the hierarchy)
+- Q: How many papers are you writing at the same time?
+ - A: Working on 10--15/y, publishing 1--8/y
+ - On a given day, 2 papers/day usually, sometimes up to 5
+ papers/day
+- Q: How you capture those ideas when when you are away from Emacs?+3
+ - A: Digital recorder for recording thoughts, especially during
+ daily commute. I also mentioned caputing thoughts in
+ 750words.com. I was an early user (May 2012) and was
+ grandfathered in with a free subscription for life. This is why
+ I am reluctant to give it up. I started learning to use Emacs
+ in 2000. I have not yet moved all of my workflow to Emacs, but I
+ am getting there. The other site that I use when I exceed the
+ 5000 word limit at 750words.com is WriteHoney
+ [https://app.writehoney.com/write](https://app.writehoney.com/write).
+ - Whisper AI to transcribe the recordings. See this site for the
+ post transcription scripts that I apply to clean up the text before I see the transcript: [https://github.com/MooersLab/bash-whisper-transcription](https://github.com/MooersLab/bash-whisper-transcription).
+ I also jot down notes but not so much after I started using the
+ digitial voice recorder (DVR). Dragging the audio file to the
+ folder where I do the transcriptions does take a wee bit of time
+ so I try to be judicious about selecting when I turn on the DVR.
+ I should probably write a Elisp function to transcribe the audio
+ recording from the DVR, save the transcript, and delete the
+ audio recording so that I can streamline this process. There is
+ always a way to do things more efficiently with Emacs!
+ - sachac: oooh, I can recommend getting an inexpensive lapel mic if you don't already have one. I'm also experimenting with using keywords to organize my audio braindumps.
+- Q: What if an ideas does not belong to any current working manuscript?
+ - A: Sandbox area in a log file. The Sandbox area is called
+ "Future additions and tangents" in the template log file and
+ is also used to draft sections of the paper that I am uncertain
+ that I will retain.
+ - If not related, kept in an external diary
+- Q: It looks like you have daily log per project, what do you think
+ about just using single daily notes and cross referencing different
+ projects?
+ - A: I have \> 800 projects per year in 10 categories. Several
+ years ago, I made org files for each category with 1000
+ headlines, but this proved to be too unwieldy for me at the time
+ as a noivice org-mode user. The log files for the manuscript
+ projects wind up with 50-100 pages of content each so the
+ single-threaded nature of Emacs hampers scrolling through such
+ huge org files. In addition, I want to keep all other projects
+ out of sight and mind while focused on the project at hand.
+- Q: If there were one habit from your process (referencing your extensive flow chart) that you want active learners/professional researchers to adopt, which would it be and why?
+ - Keeping a daily diary is essential for overcoming the fears of
+ forgetting and losing momentum. These fears are the maiin
+ barriers to switching between projects on a given day. The
+ in-grained preference is to do binge writing, which I still
+ succumb to doing sometimes, but I am trying to avoid binge
+ writing with this system.
+- Q: I see that you use checkboxes for tasks. Did you know
+ you can format headings to support tracking them? Like this: TODO
+ Heading \[0/4\]
+ - A: Yes, I convert some of my most important todo items into
+ \*\*\* TODO headline to be picked up by arg agenda. I add the
+ writing-project log file to the list of org files that org
+ agenda searches. I use a Elisp function to add new \*\*\*TODO
+ items to the list when they come to mind. I will post this
+ function shortly on the AAAreadme of [https://github.com/MooersLab/writingLogTemplateInOrg](https://github.com/MooersLab/writingLogTemplateInOrg).
+ This eliminates the need to refile the idea, which I am too
+ undisciplined to do.
+- Q: I actually love this one! But it creates as much separated log as
+ there is project. You limit yourself to work only on how many
+ project per day? How do you explore them back (if you ever)?  I
+ assume your org files is growing exponantially over time. You said
+ about "valuable when receiving critiques?" (Donovan)  
+ - A: Thank you for the opportunity to make clarifications. I try to
+ work on two writing projects a day on average terms of doing
+ generative writing tasks. Yes, there is one writing-project log file
+ per project. They tend to grow to a length of 50-100 pages by the
+ time the paper is published. Because of the ability to fold
+ sections, I have not run into trouble with the longer lengths.  I
+ use the template on GitHub to start the log file for a new writing
+ probject. I could consider retaining a log file for a sequel paper
+ to retain the history of decisions made in the first paper but I
+ would duplicate it and rename the copy with the new project number.
+ I will go through an old log file for a published paper from years
+ ago to recover details on how I carried out certain procedures. The
+ history of decisions in the daily log is invaluable for responding
+ to probing questions by reviewers about why we decided to do certain
+ procedures.
+- Q: Sorry, not really related to the talk's topic but can
+ you share the pymol project that shown in the writing log slide
+ earlier in the talk? I am interested in the paper/project.
+ - A: Thank you for your interest on the PyMOL project. I have not published that particular project yet, but a number of related PyMOL projects are on my GitHub site. The most popular is MooersLab/PyMOLshortcuts [https://github.com/MooersLab/pymolshortcuts](https://github.com/MooersLab/pymolshortcuts). The associated paper is here [https://onlinelibrary.wiley.com/doi/10.1002/pro.3781](https://onlinelibrary.wiley.com/doi/10.1002/pro.3781). I have run PyMOL in Jupyter [https://github.com/MooersLab/jupyterlabpymolpysnips](https://github.com/MooersLab/jupyterlabpymolpysnips)  [https://pubmed.ncbi.nlm.nih.gov/33967632/](https://pubmed.ncbi.nlm.nih.gov/33967632/) ,  Colab   [https://github.com/MooersLab/colabOpenSourcePyMOLpySnips](https://github.com/MooersLab/colabOpenSourcePyMOLpySnips)  [https://proceedings.scipy.org/articles/majora-1b6fd038-002](https://proceedings.scipy.org/articles/majora-1b6fd038-002), RStudio  [https://github.com/MooersLab/rstudiopymolpysnips](https://github.com/MooersLab/rstudiopymolpysnips), and Org-mode [https://github.com/MooersLab/orgpymolpysnips](https://github.com/MooersLab/orgpymolpysnips). I gave a talk about the later at emacsconf 2021
+ [https://emacsconf.org/2021/talks/molecular/](https://emacsconf.org/2021/talks/molecular/). 
+- Q: Have you tweaked your Emacs configuration at all
+ \-- with cus keybindings, etc \-- to support the process you
+ demonstrated?
+ - A: Thank for the good question because my talk was focused on a template org document. I use org-ref heavily. I use it to add Bibtex entries, download PDFs of research articles by their DOIs, and rename them with the citekey. I made several Elisp functions that do minor tasks to support my worflow. I will post them github. 
+- I like to separate my ZettelKasten and GTD  with
+ daily and global, Zettelkasten daily would be a journal. The reason
+ to keep them seperated is daily is to start with a black sheet and
+ can be thrown ignored if not done well, If good enough goes into
+ zettel etc.
+ - Blaine: That is a good suggestion. Thank you for sharing it.
+
+## Notes
+
+- Hi, This is Blaine. I am checkin in!
+ - Hey :)
+- Hello from Madagascar :) Hello from Brazil (there's an old song
+ about madagascar:
+ [https://www.youtube.com/watch?v=k206JIkXJbk](https://www.youtube.com/watch?v=k206JIkXJbk))
+ :) Hello from Uganda Hello from ISS\^\^ The International Space Station? 0_0 Hello from US
+ - Blaine: Hello world and outer space!!!
+- It's so awesome seeing these talks that are not strictly software
+ development related
+ - Thank you!
+- It's amazing to see how much people do with emacs
+ - Thank you!
+- \[MooersLab/writingLogTemplateInOrg: Template for
+ writing.log in
+ org-mode\]([https://github.com/MooersLab/writingLogTemplateInOrg](https://github.com/MooersLab/writingLogTemplateInOrg))
+- it's really impressive. it also makes me realise that
+ people are a lot more organised than could ever be.
+ - Blaine: I have been studying time management for decades; it is still a stuggle for me.
+- That chart looks complicated. It can get pretty complicated
+ as its deeply personal and has seen several revisions.  (Sounds like
+ the chart is descriptive and not prescriptive)
+ - Blaine: Right, is just descriptive. Yes, that concept map it a bit overwhelming. I plann to make a slimmed down version. Thank you for the feedback.
+- I love the fact. that "shower" is called out as an
+ Ideation "feed" in the writing process chart :-) Takes shower
+ thoughts to a whole new level...
+ - Blaine: It is a feature of our insane 24-7 culture.
+ - I missed that, but that's kinda cute. (Kinda true too)
+ - I do love the "Shower" element in that diagram.
+ - Wow didnt notice the Shower element
+- The man is trying to treat cancer, I expected nothing
+ less complicated than this gg
+ - Blaine: Thank you! Yes, our work has added years of additional life to many cancer patients.
+- There is a package \-- I think it is 'org-tracktable
+ \-- that records word counts by session in an inline block within
+ org files 
+ [https://github.com/tty-tourist/org-tracktable](https://github.com/tty-tourist/org-tracktable)
+ - Blaine: I will check it out. Thank you for the link! My time tracking database has 10,848 rows after 2.5 years. It may be over 100,000 rows long by the time that I expire. I decided that a org-mode table would be not appropriate. I adandoned the Google Sheet Workbook over a year ago because it is redundant with entries in my timespent.db. I did not like the duplicated effort.  I am now testing the use of a heat map for a similar writing accountability purpose. It tallies my writing effort per day from my timespent.db file. I enter \`hmj\` for Heat Map of Journal article writing to effort.  This is a long bash alias to to script and commands that generate the heatmap and post it on Github. The GitHub repo for the script is here [https://github.com/MooersLab/writing-time-spent-heatmap](https://github.com/MooersLab/writing-time-spent-heatmap). I have similar aliases for makng heatamps for grant writing, teaching, and service, but my daily focus is on article writing.
+- oohhh using a drawer for stashing these details away is a
+ nice idea!
+ - Blaine: Thank you! Org-mode has so many nifty feature like drawers.
+- I'm impressed by how systematic he is about everything.
+ - Blaine: Thank you!
+- I'm thankful for people like the presenter that dedicate
+ so much of their time to researching treatments for the horrible
+ diseases that people suffer.
+ - Blaine: Thank you!
+- I feel like that writing log can be turned into an emacs mode. the spreadsheet that was shown earlier
+- Also noticed that he uses Emacs without any themes.
+ - Evidence that the default theme is sufficient for some. Black on white, however uncomfortable to me, really is what most people want.
+- So his car gets a lecture every morning. I suspect his car is more highly educated than I am
+- No cell phone. Just emacs and superhuman focus lol
+- YouTube comment: excellent presentation that I will definitely keep as a reference!
+
+[[!inline pages="internal(2024/info/project-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/project-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/regex.md b/2024/talks/regex.md
new file mode 100644
index 00000000..dbc3d55c
--- /dev/null
+++ b/2024/talks/regex.md
@@ -0,0 +1,125 @@
+[[!meta title="Emacs regex compilation and future directions for expressive pattern matching"]]
+[[!meta copyright="Copyright &copy; 2024 Danny McClanahan"]]
+[[!inline pages="internal(2024/info/regex-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 regex compilation and future directions for expressive pattern matching
+Danny McClanahan (they/them) - Pronunciation: məˈklænəˌhæn / mk-CLAN-uh-han, han like "hand", IRC: cosmicexplorer, @hipsterelectron@circumstances.run on mastodon - @hipsterelectron on twitter - @cosmicexplorer on github - @cosmicexplorer in #emacsconf on irc.libera.chat, <mailto:dmcC2@hypnicjerk.ai>
+
+[[!inline pages="internal(2024/info/regex-before)" raw="yes"]]
+
+Emacs is a delightful case study for the capabilities of regular expressions, because Emacs forms user interfaces via text, which retains the expressivity of a GUI with the user-level interactivity of written language. Because we use text for both input and output, regexps in Emacs form part of a user-level grammar for human thought. As a result, Emacs and Emacs users have a rich intuitive grasp of regular expressions, which provides a unique vantage point to consider how they may be improved in general.
+
+When I began my investigation, I assumed that Emacs would be able to use an existing off-the-shelf regex engine, that this would be more performant than regex-emacs.c, and that the greatest challenge would be providing a sufficiently robust build process (see emacs-devel: <https://lists.gnu.org/archive/html/emacs-devel/2024-04/msg00142.html>). However, I quickly found that Emacs (as usual) is far more configurable than alternatives (see rust regex discussion: <https://github.com/rust-lang/regex/discussions/1167#discussioncomment-8585027>). Now don't get this twisted: emacs-devel was open to deprecating functionality that hampered optimization! But the biggest challenge by far is that regex-emacs.c is categorically more powerful than alternatives: it can match against <span class="underline">non-contiguous input</span> (across both halves of the gap buffer), as well as non-UTF8 text with its fantastic multibyte encoding (see <https://www.gnu.org/software/emacs/manual/html_node/elisp/Text-Representations.html>).
+
+So a more complex picture begins to emerge: Emacs actually uses regexps far more widely and deeply than anywhere else, and its regex engine requirements aren't "legacy", but the result of caring more deeply about language than anywhere else. While regex engines have historically been known to introduce functionality not backed by formal theory that's later found to be hard to optimize, Emacs instead charts a path for other engines to follow. Formalizing backrefs is state-of-the-art, but possible (see <https://jamiejennings.com/posts/2021-09-23-dont-look-back-2/>), and I believe the same can be achieved for the other affordances Emacs users have come to expect. Subsequently, I have focused on identifying where we can constrain the problem space to improve performance without losing those affordances, such as explicit precompilation in lisp code (see <https://lists.gnu.org/archive/html/emacs-devel/2024-08/msg00108.html>).
+
+There are many branching paths here. With the libgccjit native compiler, we can now implement regex matching in lisp itself. While \`rx' can compose patterns to an extent, we could provide a more powerful primitive than regular expressions alone for complex parsing tasks. And while many regex engines employ complex optimization heuristics, we can instead introduce specific functionality for e.g. SIMD literal search into lisp code, allowing lisp users to intelligently select for themselves how and when to employ less-powerful but more-performant search routines.
+
+We don't need to backtrack! We can try all these paths at once.
+
+About the speaker:
+
+Me: Typing free software to break the shoulders of giants from golden handcuffs.
+Work: Composeable build tools, parsing frameworks, and cryptographic messaging. All of these are misused to subjugate and oppress, but I build infrastructure for positive liberties.
+
+This talk will cover my train of thought over the course of this year on how regex engines in general may be improved, and the discussions with emacs-devel that have helped me along. I hope this talk will convince people of the boundless future directions in text search. My PhD research will be inspired by the expressivity and power of Emacs.
+
+
+# Discussion
+
+## Questions and answers
+
+- Q: A bit off topic, but how did you get the emoji into your slides?
+ I\'m assuming you exported via Beamer to PDF. Thank you very much
+ for the swift answer. Great presentation, too🙏🏻
+ - A: \\usepackage{twemojis}!
+ [https://ctan.math.washington.edu/tex-archive/macros/latex/contrib/twemojis/twemojis.pdf](https://ctan.math.washington.edu/tex-archive/macros/latex/contrib/twemojis/twemojis.pdf)
+ - and yes beamer to pdf! i used org-beamer too
+ - had to break out of org a couple times
+ - For LaTeX packages supporting emojis cf.
+ [https://www.ctan.org/search?phrase=emoji](https://www.ctan.org/search?phrase=emoji)
+ - i tried just pasting unicode but had an error and
+ couldn\'t figure it out in my mad dash for making this
+ in time
+ - In order for this to work you need the same kind of
+ unicode support over the whole toolchain, from
+ editor to tex engine to font.
+ - i\'m a big fan of toolchains so this makes me want
+ to fix it more :) thanks!!
+
+## Notes
+
+- i have a 50-minute version of this talk which i will be posting
+ somewhere on my page
+ [https://hypnicjerk.ai](https://hypnicjerk.ai)
+ after the conference!
+ - oh good! I wish the last talk I attended with this many slides could have done that (Florian Weimer's traditional future directions for glibc talk at the GNU Tools Cauldron: every year he gets through a third of it and puts the rest on the schedule for next year!)
+- great, the slides are now available at https://media.emacsconf.org/2024/emacsconf-2024-regex--emacs-regex-compilation-and-future-directions-for-expressive-pattern-matching--danny-mcclanahan--slides.pdf and from the talk page
+- i was not able to add subtitles in time for the conference, so
+ please please ask questions here or on irc during the talk (even
+ just asking for what i just said) and i will do my best to answer
+ all of them!
+- Something you might be interested in Rak a lesser known grep
+ alternative dosent seem to have a emacs frontend though
+ - oooh!
+ [https://github.com/danlucraft/rak](https://github.com/danlucraft/rak)
+ this ?
+ - helm-rg is based on helm-ag which i previously contributed to
+ and i think ag and ack have some interesting features which
+ avoid doing some online work we don't need to do
+ - no emacs frontend? sounds like a challenge\...!
+ - [https://github.com/lizmat/App-Rak](https://github.com/lizmat/App-Rak)
+ - thanks so much!!
+ - [https://www.youtube.com/watch?v=YkjGNV4dVio&t=167s](https://www.youtube.com/watch?v=YkjGNV4dVio&t=167s)
+- followup on emacs-devel with NullNix's suggestion to make the cache
+ buffer-local:
+ [https://lists.gnu.org/archive/html/emacs-devel/2024-12/msg00299.html](https://lists.gnu.org/archive/html/emacs-devel/2024-12/msg00299.html)
+
+- I think having an LLM do this is just perfect! all the people asking for it want is comforting lies anyway, and LLMs are really good at those!
+ - LLM's can be run locally. for example using localai
+ - cosmicexplorer: yes! but the weights come from somewhere! they come from training in cloud services!
+ - Running locally is not the same as reproduce it localy... I guess...
+ - It is like having a proprietary binary blob running on the linux kernel.
+ - cosmicexplorer: that is true. it does get a bit iffy when running open source models trained on remote services when using localai.io
+ - cosmicexplorer: inflicting a hidden dependency on my users :( :(
+- on other things you should never do, that AI adjustment of the speaker image is *really annoying*
+ - I have literally blanked off that part of my screen with a piece of paper so I don't have to see it, sorry
+ - excellent talk though!! wish it was twice as long
+ - cosmicexplorer: yes :( thanks for feedback. next time i won't be so embarrassed with my bed
+ - cosmicexplorer: i captured this live in obs with the filtering so i don't even have the video stream without it
+ - I recently told somebody about Nvidia brodcast studio for the good green screen removel which annoyed me becouse it is 1 not open source. 2 I use amd and can't use it nor is it multiplatform 3 I use linux and don't know if you can run if from linux :( anybody know of a better solution?
+
+- ohhh I never realised the reason the match data isn't reified was so tied up with the implementation. not too surprising in hindsight, thats the emacs way :)
+- I would recommend having the regex cache be *in* a buffer-local variable. most of the speedups, works everywhere maybe?
+ - cosmicexplorer: SMART!!!!!!
+ - cosmicexplorer: could also then explicitly have a cache busting API
+- Q: What about tree-sitter? Is it better? Does it uses regexps?
+ - cosmicexplorer: basically: yes tree-sitter solves this, but no it does not use regexps
+ - cosmicexplorer: so it's really much more applicable for well-specified programming language definitions
+ - cosmicexplorer: but it means we can let tree-sitter solve problems we don't want to ourselves
+ - cosmicexplorer: they depend on the current syntax table which is buffer-local, and on case-folding from the current buffer
+ - so only buffer-local, so a buffer-local cache should be the right level then
+ - just making sure it wasn't anything finer-grained than that :)
+ - cosmicexplorer: yes! and also they very very rarely change
+ - hm, you could probably share many buffer-local caches with identical values for syntax tables, case folding etc even :)
+ - more complex though, and likely marginal gains
+- worth making sure regexes can't depend on things like overlays, but I don't see how they could or a match over a buffer might require recompilation *in the middle of a match*, which is overkill even for emacs :P
+- using orderless and consult with consult ripgrep means you have the performant part outside of emacs and powerful emacs facilites don't need to be as performant while still being fast
+ - cosmicexplorer: looking up orderless and consult now :)
+- I was meaning with the consult-ripgrep command from the consult package
+- wonders about combining this with p-search from yesterday... :)
+
+- This is brilliant
+- Great talk!
+- That was great, thank you, your enthusiasm is infectious!
+- That was a great talk, thanks!
+
+[[!inline pages="internal(2024/info/regex-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/regex-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/repro.md b/2024/talks/repro.md
new file mode 100644
index 00000000..41712957
--- /dev/null
+++ b/2024/talks/repro.md
@@ -0,0 +1,36 @@
+[[!meta title="Reproducibly building Emacs: “Hey your checksum is the same as mine!”"]]
+[[!meta copyright="Copyright &copy; 2024 Aaron Grothe"]]
+[[!inline pages="internal(2024/info/repro-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. --->
+
+
+# Reproducibly building Emacs: “Hey your checksum is the same as mine!”
+Aaron Grothe (he/him) - Pronunciation: Err-In Growth-e, <https://www.grothe.us> LinkedIn: <https://www.linkedin.com/in/aaron-grothe/>, <mailto:ajgrothe@yahoo.com>
+
+[[!inline pages="internal(2024/info/repro-before)" raw="yes"]]
+
+The idea of a reproducible build is that you can build a package and I can build a package and we both produce the same executable.  There are security benefits to being able to create a reproducible build ensuring the integrity and reliability of the build.  There are also benefits in the world of debugging/testing as you can confirm that the end user has the same executable as the developer.
+
+The Debian project has been making huge strides with this.  With a goal to have the next Debian release “Trixie” only having 256 non-reproducible packages.  Unfortunately as of September 19, 2024 GNU Emacs is one of them.  GNU Emacs is currently in the dreaded FTBFS (Fails To Build From Source) section for reproducible builds.   Other Linux distributions including Arch and NixOS are working towards the same goal.
+
+This talk will be an overview of what is/was preventing us from producing a reproducible build for GNU Emacs and what it will take to get GNU Emacs to join this August club.   
+
+The talk will also contrast the difference between reproducible builds and the OpenBSD projects approach of randomized executables.
+
+We’ll be doing a high level overview of the Reproducible Builds - <https://reproducible-builds.org/> project and the tools, procedures, techniques they’ve put together for making the entire procedure reproducible 🙂
+
+About the speaker:
+
+Aaron Grothe has been a developer for many years. He is a two-time winner of the International Obfuscated C Code Contest <https://www.ioccc.org> and has a couple of small pieces of code in the Linux kernel. He has been published several times in 2600 magazine.  He is interested in code correctness and how we can write safer code as we head into the future. 
+
+Currently (September 19, 2024) GNU Emacs is not generating a reproducible build for GNU Debian.  This talk is a quick introduction to reproducible builds and what it will take to get GNU Emacs to generate a reproducible build.
+
+
+
+[[!inline pages="internal(2024/info/repro-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/repro-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/rust.md b/2024/talks/rust.md
new file mode 100644
index 00000000..29567813
--- /dev/null
+++ b/2024/talks/rust.md
@@ -0,0 +1,160 @@
+[[!meta title="An Experimental Emacs Core in Rust"]]
+[[!meta copyright="Copyright &copy; 2024 Troy Hinckley"]]
+[[!inline pages="internal(2024/info/rust-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 Experimental Emacs Core in Rust
+Troy Hinckley - <https://coredumped.dev>, <mailto:troy@troyhinckley.com>
+
+[[!inline pages="internal(2024/info/rust-before)" raw="yes"]]
+
+An overview and discussion and early prototype of a new Emacs core written in Rust. The talk covers some of the interesting design choices in the GNU Emacs C core, as well as some of the trade-offs made in the Rust core. <https://github.com/CeleritasCelery/rune>
+
+- What is the Emacs core?
+- How has the core evolved?
+- Design trade-offs
+ - multi-threading
+ - Precise GC
+- Being bug compatible with GNU Emacs
+- Comparison
+
+About the speaker:
+
+Hardware Engineer with interest in low-level programming and the hardware-software boundary.
+
+
+# Discussion
+
+## Questions and answers
+
+- Q: Have you considered using CRDTs to share buffers between threads
+ and merge any concurrent edits automatically?
+ - A: While mathematically correct, CRDT does not always produce a
+ useful answer. With different packages, this will the issue: not
+ a useful result. [https://www.moment.dev/blog/lies-i-was-told-pt-1](https://www.moment.dev/blog/lies-i-was-told-pt-1)
+ - This question answer about CRDT's is by itself showing a lot of problem awareness
+- Q: Why hosted on GitHub? GitHub is nonfree. Is it possible to report
+ bugs/send patches without using GitHub?
+ - A: Email patches are possible. Github is what the speaker knows.
+- Q: Do you think it's possible to achieve 100% compatibility with
+ current emacs code? 
+ - A: Most should be compatible (since elisp package is the biggest
+ emacs strength) but there might be differences on purpose.
+- Q: troyhinckley: so you're re-implementing elisp in
+ rust?  have you considered using a more modern lisp, such as scheme?
+ \[11:03\]
+ - A: No actually. Only trying to reimplementing the C part of
+ emacs, replacing it by rust. There are two other talks in the
+ conference to use something else (guile and scheme).
+- Q:can remacs be reused?
+ - A: Some of the code and some of the ideas (documentation, ideas
+ and approach to problems) were taken. But different model: in
+ remacs everything is an external type. Here, instead trying, to
+ use the builtin type reimplementating the objects instead.
+- Q: hello, great talk, fascinating topic! I am a
+ contributor of the compiler team of the Rust prog. language (though
+ I don't delve in the code myself). Do you have specific features
+ from the Rust compiler that are missing (or are nightly-only) that
+ you would take advantage of?  10:05:38 
+ - A: Polonius: the new borrow checker. Would solve
+ lifetime-tracking issues. A better tracking mechanism would be
+ better.
+ - A: Enum with variant types to avoid boilerplate
+ [https://github.com/rust-lang/lang-team/issues/122](https://github.com/rust-lang/lang-team/issues/122)
+ - A: Allocator API could be better (still nightly-only)
+ - A: thanks! Dont forget to fill out the survey :)
+ [https://blog.rust-lang.org/2024/12/05/annual-survey-2024-launch.html](https://blog.rust-lang.org/2024/12/05/annual-survey-2024-launch.html)
+- Q: What are you thoughts on the GUI layer. Any plans on how to
+ reimplement it?
+ - A: Either GTK+ or direct GUI in Rust, but no concrete plan so
+ far.
+- Q: (not a question) Re. the GUI layer, the Gtk project has
+ automated bindings with a framework called "GObject
+ Introspection," which is what I am using for my "Gypsum" project.
+ Probably Rust has a GObject Implementation which you could use.
+ - A: Problem with Rust GUIs very new and mostly demo without
+ accessibility and test in all environements.
+- Q: If money could fix the problem, how much would it cost to ship
+ this with feature parity before 2026?
+ - A: Probably needs a couple people and more than one year of
+ work. Lots of testing required to fix all bugs.
+- Q: troyhinckley: elisp is implemented in c, so if
+ you're not implementing elisp in rust, are you using/keeping the c
+ implementation of elisp?
+ - A: Idea of the project is to keep the Elisp layer and changing
+ the C layer underneath that is currently called, replacing it by
+ rust. Elisp does not change. Plan is to be even be bug
+ compatible to emacs: Elisp should be perfectly compatible with
+ both C and rust. Elisp is fixed in this approach.
+- Q: sorry if you already discussed this, but will your Rust
+ implementation also be able to run Emacs bytecode? Or are you
+ implementing it at the Lisp level?
+ - A: Bytecode interpreter already exists (actually bytecode
+ compiler and interpreter was bootstrapped first as it is
+ implemented in Elisp).
+ - A: the bytecode is missing some OP-code that have not been
+ encountered so far.
+- Q: Cool, so will you also provide bytecode JIT compilation via
+ "libgcc" the way Emacs currently does?
+ - A: Eventually maybe, but a proper JIT would be better as it
+ includes type information to better optimize the code.
+-  Q: Is it possible to bootstrap without the interprerter?
+ - A: having only bytecode does not work, as some part are expected
+ to be interpreted with macros containing functions that are not
+ yet defined. You really need an interpreter for the lazy macro
+ expansion.
+- Q: How would you do the native module system?  What would be
+ different?  Sounded like part of an anwer about Rust Emacs modules
+ got cut off.
+ - A: There is an FFI, so it should be possible to have the same
+ thing. Could possibley implement FFI in elisp.
+- Q:  That was me who was discussing with you about
+ bootstrapping Scheme! (Not Guile, R7RS Scheme) Yes, it would be a
+ whole other thing than what you have done so far. But it would be
+ cool, because then you would be able to run the "Gypsum" editor on
+ top of your Emacs engine.
+ - A: I still think that would be really cool to
+ get working! we will have to collaborate on that more.
+- Q: elisp is implemented in c, so if you're not implementing elisp in rust, are you using/keeping the c implementation of elisp?
+ - IRC: of course they are implementing elisp in rust (?), what else could they mean?
+ - I think they misunderstood your question
+ - (not yet answered)?
+
+## Notes
+
+- Getting good vibes from this Rust work
+- (you can do the offscreen-cursor thing in current emacs
+ with enough effort. see scroll-in-place.el.)
+- Oooooh flow images.  My last expectation was Rust
+ making Dslide image animations slick
+- troyhinckley: Very cool talk! 
+- I recommend
+ [https://codeberg.org/](https://codeberg.org/)
+ (as a freedom-respecting github replacement)
+- one big problem with using gtk \-- there is a
+ \*two-decade-old\* unfixed bug in gtk where it keeps permanent
+ references to the x server etc (IIRC, its wayland support has
+ similar problems). this means a gtk emacs \--daemon crashes if you
+ connect to an x server and then close the x server down. this
+ is\.... unfortunate
+- I had not thought about the fact that we could just mutate functions on the fly just like data. Neat!
+- really good talk!
+- Getting good vibes from this Rust work
+- I'm spending half this talk going OOH and wishing we had this in current emacs
+- Very cool talk!
+- So looking forward to a faster multi-threaded Emacs :D
+- Well, it does sound like we need some scale to turn this from a multi-year idea to a next-year idea
+- ruby shows one advantage here -- they're reimplementing bits of the ruby C core in ruby, and *speeding it up* because their new jitter then sees the insides of it and can optimize the hell out of it. ruby is, of course, famously slow... but not as slow as elisp :)
+ - one wonders if emacs could benefit similarly...
+- one big problem with using gtk -- there is a *two-decade-old* unfixed bug in gtk where it keeps permanent references to the x server etc (IIRC, its wayland support has similar problems). this means a gtk emacs --daemon crashes if you connect to an x server and then close the x server down. this is.... unfortunate
+- yeah "of course" all new emacs efforts should be able to run elisp code; but it would be awesome if new lispy code could be written in scheme
+- YouTube comment: Really interesting approach. I like the humility in the beginning, the likes of "this is to try new approaches".
+
+[[!inline pages="internal(2024/info/rust-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/rust-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/sat-close.md b/2024/talks/sat-close.md
new file mode 100644
index 00000000..b4193477
--- /dev/null
+++ b/2024/talks/sat-close.md
@@ -0,0 +1,94 @@
+[[!meta title="Saturday closing remarks"]]
+[[!meta copyright="Copyright &copy; 2024 EmacsConf"]]
+[[!inline pages="internal(2024/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(2024/info/sat-close-before)" raw="yes"]]
+
+
+
+# Discussion
+
+- Thank you for all your patience!
+- Wheeeee! We made it to the end of the first day! Thank you so much
+ for joining us for the first day of EmacsConf 2024.
+- We\'re going to keep these closing remarks short so that people can
+ get some sleep in preparation for tomorrow (zaeph is in
+ Europe/Paris). We\'ll hang out a bit more tomorrow. But if you\'re
+ just here for today, you can read through the notes at your
+ leisure. 
+- Pre-recorded talks are up on the talk pages at
+ [https://emacsconf.org/2024/talks/](https://emacsconf.org/2024/talks/)
+ and at
+ [https://media.emacsconf.org/2024](https://media.emacsconf.org/2024)
+ . They\'re also on YouTube.
+- We\'ll work on extracting the live talks and Q&As in the weeks to
+ come. If you\'d like updates, please subscribe to the
+ emacsconf-discuss mailing list
+ ([https://lists.gnu.org/mailman/listinfo/emacsconf-discuss](https://lists.gnu.org/mailman/listinfo/emacsconf-discuss))
+- Feel free to spread the word (#EmacsConf #Emacs). There\'s another
+ day of fun talks tomorrow.
+- What did you like? Got ideas for making things even better? General
+ conference discussion/notes/community message board:
+ [https://pad.emacsconf.org/2024](https://pad.emacsconf.org/2024)
+- Stats: 
+ - gen: 177 peak + 14 peak lowres
+ - dev: 226 peak + 79 peak lowres
+- Thanks
+ - Thank you to all the speakers, volunteers, and participants, and
+ to all those other people in our lives who make it possible
+ through time and support.
+ - This year\'s conference hosts are Leo Vivier and Corwin Brust.
+ Streams were managed by Sacha Chua and checkins by FlowyCoder.
+ - Thanks to our proposal review volunteers James Howell, JC
+ Helary, and others for helping with the early acceptance
+ process.
+ - Thanks to our captioning volunteers: Mark Lewin, Rodrigo
+ Morales, Anush, annona, and James Howell, and some speakers who
+ captioned their own talks.
+ - Thanks to Leo Vivier for fiddling with the audio to get things
+ nicely synced, and thanks to him and other people who kept the
+ mailing lists free from spam.
+ - Thanks to Bhavin Gandhi, Christopher Howard, Joseph Turner, and
+ screwlisp for quality-checking.
+ - Thanks to shoshin for the music.
+ - Thanks to Amin Bandali for help with infrastructure and
+ communication.
+ - Thanks to Ry P for the server that we\'re using for OBS
+ streaming and for processing videos.
+ - Thanks to the Free Software Foundation for Emacs itself, the
+ mailing lists, and the media.emacsconf.org server. 
+ - The Free Software foundation is having it\'s semi-annual
+ fund raiser
+ - Supporting FSF, as well as helping projects like EmacsConf,
+ is the primary way to contribute financially toward the
+ development of Emacs and other GNU packages.
+ - Thanks to people who have donated to Emacsconf via the FSF
+ Working Together program! 
+ - [https://www.fsf.org/working-together/fund](https://www.fsf.org/working-together/fund)
+ - Used for hosting costs
+ - We can talk more about this tomorrow
+ - Thanks to the many users and contributers and project teams that
+ create all the awesome free software we use, especially:
+ - BigBlueButton, Etherpad, Icecast, OBS, TheLounge,
+ libera.chat, ffmpeg, OpenAI Whisper, WhisperX, the aeneas
+ forced alignment tool, PsiTransfer, subed, 
+ - And many, many other tools and services we used to preair
+ and host this years conference
+ - Thanks to everyone (including people we\'ve missed because
+ we\'re scrambling to write these notes =) )!
+ - Come back tomorrow for more talks!
+
+
+[[!inline pages="internal(2024/info/sat-close-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/sat-close-nav)" raw="yes"]]
+
+
+
diff --git a/2024/talks/sat-open.md b/2024/talks/sat-open.md
new file mode 100644
index 00000000..10445ce7
--- /dev/null
+++ b/2024/talks/sat-open.md
@@ -0,0 +1,55 @@
+[[!meta title="Saturday opening remarks"]]
+[[!meta copyright="Copyright &copy; 2024 EmacsConf"]]
+[[!inline pages="internal(2024/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(2024/info/sat-open-before)" raw="yes"]]
+
+# Discussion
+
+- Testing
+ - Yup this is being tested :)
+- I need that countdown screen :)  . So cool!!  I agree.
+ - emacsconf-stream.el in emacsconf-el repo
+ - [https://git.emacsconf.org/emacsconf-el/tree/emacsconf-stream.el](https://git.emacsconf.org/emacsconf-el/tree/emacsconf-stream.el)
+ Thanks SachaChua?
+- You mean champagne?That's the name of it?It is the name of a
+ package that has a countdown.OK, searching for that!
+ Thanks[https://github.com/positron-solutions/champagne](https://github.com/positron-solutions/champagne)
+ :). Awesome
+- Champagne seems a bit different than the countdown in the livestream
+ tho! But it is also awesome!Ah I see, that might just be some quick
+ custom Elisp.
+- Can I join in on the testing too?  Why don't you have any color? I
+ set it to white :)(lol)Greetings\^\^
+ - Practicing indentation
+ - Hierarchy is important.
+ - I have been having ~~fun~~  not fun time with indentation lol
+ - Dealing with visual lines for Master of Ceremonies, my first
+ pass was too manual.  I need to offload more work onto normal
+ Emacs text editing.  It was about 1k lines and I just decided to
+ torch it and go with a buffer-based solution
+- My ideal academic workflow would include some synergy between zotero
+ and Emacs
+- What is Zotero good at? For me, its good at handling more item
+ types.
+- not using zotero, but ebib. Working fairly well to maintain a very
+ large bib file
+- Oh god they're spying on us More importantly, Is RMS watching this
+ with us?
+ - I'm not sure RMS would be allowed (unless temporarily using
+ someone else's machine), see:
+ [https://stallman.org/stallman-computing.html](https://stallman.org/stallman-computing.html)
+- Why is the countdown music so good?
+
+
+[[!inline pages="internal(2024/info/sat-open-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/sat-open-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/secrets.md b/2024/talks/secrets.md
new file mode 100644
index 00000000..b6b75dca
--- /dev/null
+++ b/2024/talks/secrets.md
@@ -0,0 +1,56 @@
+[[!meta title="Committing secrets with git using sops-mode"]]
+[[!meta copyright="Copyright &copy; 2024 Jonathan Otsuka"]]
+[[!inline pages="internal(2024/info/secrets-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. --->
+
+
+# Committing secrets with git using sops-mode
+Jonathan Otsuka - Pronunciation: O-tsu-ka, <https://github.com/djgoku/sops>, <mailto:pitas.axioms0c@icloud.com>
+
+[[!inline pages="internal(2024/info/secrets-before)" raw="yes"]]
+
+This is my first Emacs mode, and it was primarily driven by necessity. The process was manual prior. I wanted to encrypt and decrypt all operations within my current Emacs instance. Currently, I have some notes on how to quickly decrypt and encrypt using AWS KMS. However, it works seamlessly with GPG. I need to add some notes on the age and GCP KMS.
+
+<https://github.com/djgoku/sops>
+
+About the speaker:
+
+My name is Jonathan Otsuka. I have a background in software development and SRE/DevOps. In my free time, I enjoy optimizing my workflow, contributing to open-source projects I use, and engaging in swimming and cycling.
+
+# Discussion
+
+- Q: can you describe some potential interactive uses for this within
+ Emacs. Is there some other activity that would be enabled with sops
+ decryption first. Like an IT or configuration task that requires
+ authentication 
+ - So in the README right now, there is a block and it's called SOPS setup environment. I think it's a hook. Don't quote me. I haven't touched it in a while. I think that hook runs prior to doing any sort of decryption or encryption. So there's an example in the README for ways that you can set up your SOPS mode for AWS. You can set the profile. It was actually a pretty fun thing to add because with that bit of code, I can pretty much go to any one of our repos and decrypt and encrypt on the fly and not have to do much fanfare of like, well, what account or what profile do I need to switch to? I haven't looked at GCP yet or Azure, and that's kind of one of my future things. I need to maybe look into those to see what they look like and give example configs to help users. Hopefully that answered your question.
+- Q:Is this saved in the repo or file as \"run sops here\" or is the
+ encrypted blob in the git repo?
+ - A: They're saved as just text files so that you can do SOPs and encrypt like a binary. I think in the end, no matter what, they become just a text file, and then it does the encoding and decoding on the fly when you encrypt or decrypt. So no matter what it's going to be, I think it might just be a JSON in the end. Uh, so yeah.
+ - Q: Is all the information in the repo, how much would be off the
+ repo?
+- Q: How do you decide whether to use SOPS or other solutions such as
+ pass-cli? (Perhaps not exactly related to this talk)
+ - A:
+- Q:One limitation with guix (similar package manager to nix) is there
+ is no great way of storing secrets in the store, would SOPS be
+ useful for this?
+ - A: The biggest use case that I've been using it recently is, Bitbucket has a way to... In a repository, you can store non-secrets and secrets. So we're trying to move the secrets into the repository and then allow the engineers to have access to that. Bitbucket variables is a black box. Since the devs can access it, it's manual work for everybody that has to deal with it. Since we're moving SOPS-encrypted files into the repo, now there's that trackability from who made the change and what it changed from, what did it go to, and just things like that. You can use it anytime you'd want to commit them.
+- Q: One limitation with guix (similar package manager to nix) is there is no great way of storing secrets in the store, would SOPS be useful for this?
+ - nixos -
+ [https://github.com/Mic92/sops-nix](https://github.com/Mic92/sops-nix)
+ - [https://nixos.wiki/wiki/Comparison_of_secret_managing_schemes](https://nixos.wiki/wiki/Comparison_of_secret_managing_schemes)
+ - guix -
+ [https://github.com/fishinthecalculator/sops-guix](https://github.com/fishinthecalculator/sops-guix)
+ - I think so, but I don't know how that package manager works, if it's just like some sort of "you decrypt and then you run the package manager," then yeah, that's a lot of our workflows. If we're doing a deployment and the container needs it, we'll decrypt, put that in whatever place, or source it if it's an environment file for the container, and then pass it in. I think it'd be a great choice there.
+- Q:Wacky question: what happens in sops-mode if you encrypt the already encrypted file as if it was plaintext?
+ - A: You know, I might have actually accidentally did that today. I didn't actually see the resulting file. But that's a great question. Well, it's technically still binary, isn't it, at the end? You've got binary stuff that is being encrypted again. It's just double encryption. I'm pretty sure it works.
+
+
+[[!inline pages="internal(2024/info/secrets-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/secrets-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/sharing.md b/2024/talks/sharing.md
new file mode 100644
index 00000000..f07b2c96
--- /dev/null
+++ b/2024/talks/sharing.md
@@ -0,0 +1,344 @@
+[[!meta title="So You Want To Be An Emacs-Fluencer?"]]
+[[!meta copyright="Copyright &copy; 2024 Gopar"]]
+[[!inline pages="internal(2024/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. --->
+
+
+# So You Want To Be An Emacs-Fluencer?
+Gopar - IRC: gopar, <https://www.youtube.com/@goparism/> , <mailto:gopardaniel@gmail.com>
+
+[[!inline pages="internal(2024/info/sharing-before)" raw="yes"]]
+
+Ever thought about sharing your Emacs knowledge? Starting a YouTube
+channel, blog, podcast, or even smoke signals to share those tidbits? If
+you’ve answered "No", then I'd like to change your mind. And if you said
+"Yes", then you're already on the right path.
+
+In this talk, I will share what I've learned from my journey as an Emacs
+advocate, including tips, setups (both current and past), and various
+alternatives to get your works out there. Most importantly, I'll discuss
+why your story and perspective matter, even if you think otherwise. Your
+unique experience can inspire and help others in the Emacs community.
+
+About the speaker:
+
+Gopar, a fellow Emacs user and advocate, will be sharing insights on how
+everyone can become the Emacs Influencer they never knew they wanted to be.
+
+From starting a YouTube channel to writing blogs, Gopar will provide
+practical tips and share personal experiences to help you embark on your
+journey of sharing Emacs knowledge.
+
+# Discussion
+
+## Questions and answers
+
+- Q: Why does Gen-Z listen to podcasts and videos instead of read
+ books (not just a rumor, that's what they've told me)? The
+ question has baffled me for a while and perhaps you've got an idea.
+ - A: Gopar: Not quite sure how to answer this but I do know that
+ the vast majority of my viewers are millenials and older
+ (According to youtube analytics)
+ - A: \<gs-101\> Gen Z here. Not all of us raised in a book-centric
+ family for education, so visual or audio media is mostly all we
+ know (that's how it was for me, never seen my parents reading
+ books, but that's probably because I'm from a low income
+ enviroment). I moved to books for learning so I can't answer
+ this question that much further. But one thing I can say is that
+ it can be easier to visualize the amount of content, since you
+ can easily view in the video's timestamp, that it has 12 hours
+ or something. Podcasts are similar too. Interesting, ty. I
+ notice that most intermediate to advanced content is book based.
+ Put differently: few videos/podcasts break through the
+ beginner's barrier. Easier to get started than to grow
+ professionally w/o books.
+ - sachac: might also be related to how niche-y the topics get.
+ Like, we have lots of Emacs and Org tutorials, but go a bit
+ further and things get pretty specific / idiosyncratic, and
+ then the cost/benefit (making it, searching it, etc.) of
+ video vs literate programming notes exported as a blog post
+ tends to lean more towards words. I like videos for quick
+ workflow demonstrations.
+- Q: What do you think about "silent coding videos"? I'm not a
+ native speaker and conscious of my accent/voice & I really prefer
+ recording "silent hacking" videos now.
+ - A: Gopar: Awesome! The beauty of the interwebs is that there is
+ always a group of people that like/learn/prefer the same way you
+ do. You can cater to these people :) Also whats stopping from
+ creating content in your native language? (German is ugly :-) &
+ I live in US) I would also encourage that! More Emacs videos in
+ multiple languages :) Good point.
+- Q: Does anyone know what happened to the emacs-elements YT channel?
+ The style and cadance were quite different to a lot of the other
+ Emacs video content online, and I found it to be a fantastic
+ reference. It's a shame it seems to have disappeared :(
+ - sachac: I confirmed with him that it was his decision (not a
+ hack); he didn't provide details, so we'll respect his privacy
+ thanks, totally understand!
+ - audience: a pity. i enjoyed his YTs too.
+ - gs-101: A bit unrelated, but there's also this creator who made
+ one video on Emacs and then disappered too: [https://www.youtube.com/watch?v=XRpHIa-2XCE](https://www.youtube.com/watch?v=XRpHIa-2XCE).
+ This is his first video but it just show so much experience\...
+ - Related: Are there any Emacs AI channels yet? (Emacs advice
+ channel created by AI)
+ - sachac: there are occasionally low-effort videos that read
+ through Stack Overflow answers, but\... \<shrug\>
+ - audience: I don't see any value in these type of generated
+ "AI"-vids. Have you seen/heard NotebookLM podcasts? Not
+ vid but often surprisingly well made and insightful
+ (function of the sources fed to it) - essentially a
+ conversation between two AIs. I'm not aware of this
+ podcast, but will give it a try. Thx. [https://notebooklm.google.com/?pli=1](https://notebooklm.google.com/?pli=1)
+ Recommended e.g. for literature reviews or to summarize
+ "jagged" content (always regression to the mean, of course
+ but that's the AI curse).
+ - A:
+- Q: Just discovered that I had already subscribed to \@goparism! But
+ your last video 3 months ago\...?
+ - A: Gopar: Ah yes, sadly life does come up and other priorities
+ take place. I plan on recording more thanks to the holidays
+ coming up :) 
+ - audience: Txs Keep at it, love your stuff
+- Q: Do you have any recommendations on where to find good advice on
+ lighting for the camera?
+ - A: Gopar: Sorry, not sure. I never looked into lighting. I
+ don't use any lighting besides what comes through my window :) 
+ - audience: it looks great! I thought you'd refined it. I
+ live in a very dark place :D
+ - gs-101: The free lighting setup strat.
+- Q: Why youtube and not peertube?
+ - A: Gopar: I wasn't aware of peertube until emacsconf :0 (I will
+ proabbly look into it)
+ - audience: I guess some people want to make money? AFAIK,
+ peertube does not pay people for making videos. 
+ - sachac: Also audience/discovery is pretty low
+ - \<robin\> (i'd guess a lot of people neglect this side of
+ things since it's almost inevitably tied into surveillance
+ capitalism etc.)
+ - A good question to ask is the goal to reach people,
+ specifaly people who are not as used to emacs or make a
+ workflow that is entirly floss but reaches far less people.
+ I think the way Emacs Conf does it is pretty good using
+ floss primarly for an Emacs Crowd and later hosting the
+ videos in addition to hosting them on youtube for the people
+ their to later discover
+ - \<robin\> (but the big proprietary platforms have an almost
+ absolute monopoly on the requisite platforms, in effect,
+ outside of almost-mainstream things like the fediverse)
+ - audience: Maybe it would be cool to setup some kind of ring
+ or collective for content producers who are in some way
+ related to the Emacs community? So that Peertube et al can
+ be a more viable place to stream to?
+ - sachac: let me know when you post something and I can add it
+ to Emacs News (Mastodon \@sacha@social.sachachua.com or
+ e-mail sacha@sachachua.com) You pushing Mastodon over X? You
+ still seem to be at X.com/@sachac 
+ - \<lh\> \[: if you want to introduce people to emacs via your
+ content, a peertube-only strategy is not very pragmatic. but
+ syndicating to both is always good!
+ - \<karthik\`\> Where are peertube videos hosted?  Doesn't
+ video hosting get expensive very quickly as you scale?
+ - \<lh\> they are hosted on the instance where the account
+ lives, so yes, typically instances are relatively small
+ - audience: Some content creators mirror their YTs to Odysee.
+ Whenever I come across a YT channel, I check on Odysee,
+ which I prefer to watch videos on. No ads interruption,
+ afaik.
+ - gs-101: I also prefer to watch on Odysee, but the
+ comments can get a bit, you know\... hateful of certain
+ groups. Maybe I'm in the wrong communities. Yes, I
+ noticed such comments. I tend to not pay unnecessary
+ attention to comments of these type. Difficult. If there
+ is a choice between free speech and censorship, I lean
+ towards the free speech first. It does not excuse stupid
+ comments of course. Agreed.
+ - \<robin\> gopar, i hope my digressive side-comments didn't
+ come off as negative, they're just concerns that come with
+ the territory, as if only microsoft were able to host
+ software manuals :p i'm definitely going to be watching
+ your talk a few times over
+ - \<gopar\> robin: ah no worries. Didn't really take them
+ that way. Appreciate reaching out to say that though :)
+
+- Q: Does using tools like yt-dlp / invidious hurt or impact the
+ content creator's traction on the platform?
+ - A: Gopar: Technically it would since its not displaying 'ads'
+ but the amount of \$\$ lost is so small it's not really an
+ issue. Personally do not mind if people do that, rather have
+ people learning and sharing :)
+ - audience: So views are still counted and will allow for the
+ video to be suggested to others regardless of usage? That has
+ been a thought running through my head in the past. TY for your
+ talk :) 
+ - Gopar: Not completely sure, it all depends on how youtube
+ handles things on their side.
+ - audience: I'd be fine with running any clips on YT in some sort
+ of unattended mode (so it does "benefit" YT creators) while in
+ reality I watch myself them - if available - on another platform
+ :) As far as your channel, I'm having not much of an issue with
+ watching them on YT of course.
+ - Gopar: Ah, don't worry about "gaming" the system, if the
+ content is good, it will get viewers eventually :)
+
+- Q: Emacs promotion as a topic is kind of an infinitely wide
+ umbrella. You don't think that there should be a vague consensus on
+ the direction emacsformational content?
+ - A: I don't think, I mean I started my YT channel b/c I wanted
+ to talk about Emacs from my perspective and talk about things
+ that were interesting to me :) Telling Emacs creators to
+ "focus" on a specific topic, I believe would be a net negative
+ since it might discourage videos created b/c they dont revolve
+ around the topic. Plus a "consensus" is already kinda made via
+ things like EmacsConf I guess? :)
+
+- Q: How might creators collaborate to promote each other's content?
+ In other content I notice lots of cross-collaboration on content to
+ introduce viewers to the wider ecosystem of creators on the
+ platform, but I haven't witnessed much of that with Emacs creators
+ - A: Gopar: Personally, i've linked to other creators channels
+ but I think the "cross polination" of channels is largely due
+ to the channel owners themselves talking about it between them.
+ I haven't talked to any other emacs channels about doing such a
+ thing (yet.. :)) But I don't mind sharing links to ther
+ channels. I much perfer Emacs as a whole to grow, than to try to
+ be greedy with very little to gain. Thanks :)
+
+## Notes
+
+- https://www.youtube.com/@goparism
+- Want to focus and highlight excerpts of buffers for videos and stuff? 
+Master of Ceremonies coming to M/ELPA soon.  [https://github.com/positron-solutions/moc](https://github.com/positron-solutions/moc) It was born to be used with Dslide.  Psionic wuz here (probably asleep on azn time)\
+- I shared the link/information to this conference/talk with my
+ students yesterday!
+- I mostly do this for my students -
+ [https://www.youtube.com/@LiterateProgramming](https://www.youtube.com/@LiterateProgramming)
+- Good points about the imposter syndrome!
+- Been embracing impostor syndrome for decades & it never gets better
+ :-(
+ - jreicher: I agree!!
+- It's great having a talk like this in the conference.
+- i was a little skeptical about this talk due to the title,
+ but this really is great information if one is going to be doing
+ remote conference presentations or whatever
+- i'm used to group video chat, unsurprisingly, but
+ there's just so much more to know (and, um, equipment to own) when
+ it comes to preparing something that's not solely going to be
+ watched in real-time ...where of course you'd normally have assistance in contexts like in-person conferences
+- OBS unfortunately requires an OpenGL version newer than 2.1,
+ so won't run on a ThinkPad X200
+ - Just use ffmpeg with x11grab. It works everywhere
+ basically.
+ - \[: I sometimes use simplescreenrecorder (love it)
+ - I think that worked on my X230
+- I like using Emacs to edit my audio.
+ [https://sachachua.com/blog/2024/10/yay-emacs-tweaking-my-video-workflow-with-whisperx-and-subed-record/](https://sachachua.com/blog/2024/10/yay-emacs-tweaking-my-video-workflow-with-whisperx-and-subed-record/)
+ - sachac: Your whole A/V workflow is pretty crazy.
+ Subed with waveforms in Emacs, WhisperX\...
+- \[re: DaVinci Resolve\] kdenlive or pitivi is a nice free
+ as in freedom alternatives that are worth mentioning
+ - I've used Blender to do video editing. It worked
+ - i used kdenlive, the UI is very straightforward
+ for clipping out bits of unwanted video and similar. i've
+ heard blender's video editor is great but my partner told
+ me to just "find a youtube tutorial" (instead of showing
+ how it works) and there's a lot of junk out there, at least
+ wrt my simple use cases
+- i have no interest in making revenue from videos but this
+ sort of information is critical if one wants to maintain a
+ high-profile free software project that can sustain itself
+ financially (a lesson i learned from a lot of time working at coops
+ and nonprofits)
+- karthik\`: speaking of videos, yours are truly
+ fantastic - the only issue is that there isn't more of them :)
+- Also having a good mic does help with voice quality. I
+ used a basic condenser mic and I found it to be vastly better than
+ the snowball
+- Gopar, come on the lispy gopher climate sometime
+- Apropos "negative comments": Lotsa bot commenters on YouTube.
+ Student of mine programmed one in class, almost trivial to do,
+ despite attempts to stop it.
+- Good point about using pauses.
+- One editing tip regarding pauses, you should be able to
+ see them by viewing the audio waveform.  Might be quicker than
+ watching the whole take in 2x.
+ - that's what I do too! I also use "oops"
+ to remind me to go back and edit things
+ - I have some Elisp that scans backward for
+ the previous instance of the words that I say after the oops
+ - "elisp to scan backward for oops": this
+ is what I meant by your A/V setup being crazy
+ - well it only makes sense\... what I
+ really want is something that can string-distance approximate
+ matches
+ - like,
+ [https://github.com/stevenwaterman/narration.studio](https://github.com/stevenwaterman/narration.studio)
+ is a cool approach too
+ - that shows this segment and the next
+ segment, and if you move on to the next segment, it knows that
+ the first segment is okay
+ - Indeed, your personal infrastructure for
+ these things is a sight to behold, hehe
+ - I'm watching your quest to treat video as
+ searchable text closely!
+ - In general you're trying to do with audio/video
+ what we do with text in Emacs.  This is a thing that should
+ exist but doesn't yet.
+ - that's a great framework, the
+ paradigm and capabilities of Emacs generalized to modalities
+ beyond text (A/V)
+ - that's impressive, never got that far in
+ my video editing quest 😅
+ - From reading your blog posts it looks like
+ you're almost there already (treating audio like text).  I
+ haven't tried anything except subed.el with a connected mpv
+ instance, and that alone was the best sub editing experience
+ I've ever had.
+- this presentation made me think about streaming
+ package-code reviews for ELPA on peertube\...
+ - pkal: yes!
+- +1 to the request for more unstructured videos
+ like the notmuch one, in fact I would prefer a raw, unnarrated
+ stream to see how you typically navigate (e.g. avy usage) without
+ half your brain dedicated to walking through the process!
+ - Interesting.  Sounds like the kind of thing
+ that works better as a livestream
+ - myself I'm quite
+ curious as to how you became so intimately knowledgeable and
+ proficient with sometime arcane internals so fast
+- I'd be interesting in helping organize or just rabble
+ rouse for some Emacs themed livestreaming group project, if such a
+ thing happened. I think AP made some noises several conferences ago
+ about this being a generally good thing for "somebody" to work on
+ :)
+- OBS unfortunately requires an OpenGL version newer than 2.1, so won't run on a ThinkPad X200
+ - Just use ffmpeg with x11grab. It works everywhere basically.
+ - I haven't used this alot but I think this might work as an equivilent tool https://github.com/russelltg/wl-screenrec
+- ...Mac keybindings? We need an emacsfluencer mode :) ...and possibly a derived one for emacsconf-presenter? :)
+- I often record the audio on my phone so that I can avoid the fan noise from my computer
+- Not editing at all ever under any condition makes it real ;p
+- I feel just watching over your shoulder as you do these things (investigate and fix a point of friction, etc) without much edit would still be a powerpack of value for most
+
+
+Feedback:
+- 👏🏻👏🏻👏🏻
+- 👏👏👏
+- \* gs-101 claps
+- 👏
+- \* inkpotmonkey 👏
+- \* karthik\` 👏
+- 👏
+- 👏
+- 👏
+- 👏 \[15:43\]
+- 👏
+- 👏👏👏👏
+
+- Gopar! love your YTs 👏
+
+[[!inline pages="internal(2024/info/sharing-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/sharing-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/shell.md b/2024/talks/shell.md
new file mode 100644
index 00000000..8c01476f
--- /dev/null
+++ b/2024/talks/shell.md
@@ -0,0 +1,120 @@
+[[!meta title="Emacs as a Shell"]]
+[[!meta copyright="Copyright &copy; 2024 Christopher Howard"]]
+[[!inline pages="internal(2024/info/shell-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 as a Shell
+Christopher Howard (he/him) - IRC: lispmacs, <mailto:christopher@librehacker.com>
+
+[[!inline pages="internal(2024/info/shell-before)" raw="yes"]]
+
+A shell, such as Bash, is fundamentally an
+interface to your operating system. It allows you
+to run programs, direct I/O, manage processes, and
+interact with the file system, as well as script
+such activities. Allowing for a few caveats, we
+can see that Emacs is capable of doing all these
+things, and therefore Emacs can be used a
+practical replacement for the traditional shell.
+This talk aims to explain this philosophy, to
+explore Emacs' basic shell functionality, and to
+address various caveats.
+
+See also these other talks by the same speaker:
+
+- [EmacsConf - 2024 - talks - Watering my (digital) plant with Emacs timers](https://emacsconf.org/2024/talks/water/)
+- [EmacsConf - 2023 - talks - Org-Mode Workflow: Informal Reference Tracking](https://emacsconf.org/2023/talks/ref/)
+
+# Discussion
+
+- a nice interface for using process filters directly sounds really
+ useful, reminds me of emacs-piper
+
+- Uniline?
+ - lispmacs[work]: gs-101: yes
+- feels like a museum to see someone using helm x)
+ - lispmacs[work]: heh heh
+ - lispmacs[work]: it was the first one I learned, now I'm hooked
+ - gs-101: First one I used was Ivy + Counsel, but then I moved to the Vertico + Consult stack as it was newer.
+- lispmacs[work]: I haven't had any pressuring motivations to try anything else yet, but am open minded
+- Is there a convenient way to share shell history between Eshell and the system shell (fish in my case)?
+ - lispmacs[work]: I know there is, but I don't use it. let me check the eshell modules list
+ - I use atuin and eshell-atuin to share shell history across programs, shells and machines.
+ - Ah yes, I gave atuin a try some time ago but I hate that it takes over full terminal for history. Not sure if that changed now though.
+ - lispmacs[work]: I'm not seeing something like that in the built-in Eshell Modules List unless eshell-hist does something like that
+ - i use my consult-shell-command package which is a small wrapper around async-shell-command that also suggests shell history :D https://codeberg.org/mekeor/consult-shell-command
+ - atuin is a CLI utility; eshell-atuin is a third party Emacs package. (https://github.com/SqrtMinusOne/eshell-atuin/)
+ - there is also https://github.com/svaante/recall by dape.el-developer with a similar goal
+- I need to look more into Eshell. Just started using native Emacs on Windows and switched from cmd.exe in shell mode to PowerShell, but it would be nice to have a better shell that I can use both on my home machines and the two work machines that run GNU/Linux that would also work on my work Windows laptop.
+ - Yes, I saw that's one of the main use cases for eshell. But on windows, for some reason, git provides a bash shell. https://gitforwindows.org/
+ - Yes, I was thinking to maybe hook that into shell mode. The advantage of Eshell would be that I would not have to configure shell mode at all and just use the built in functionality of Emacs no matter what system I am on.
+- Using buffers for input and output is such a killer feature
+ - Do you mean in eshell or more generally in Emacs
+ - both! But particularly in eshell
+ - How do you use a buffer as input in eshell?
+- That looks really cool!
+- wow!
+- I don't see an eshell/@ command, I think I missed something
+ - lispmacs[work]: https://codeberg.org/infrared/emacsconf-2024/src/branch/main/shell-talk.el
+- Oh, it's piping (buffer-string). I think this should be (buffer-substring-no-properties (point-min) (point-max)) Otherwise you'll pipe propertized text causing issues with shell commands. (Unless the eshell pipe somehow strips text properties, which I doubt.)
+ - lispmacs[work]: oh okay, I wonder if the eshell pipe gets rid of that on its own
+- There's also https://github.com/szermatt/emacsclient-commands which has an epipe utility
+- Input redirection from buffers in eshell would be great -- actually, input redirection at all would be great.
+ - isn't the "solution" to use cat input | ...?
+ - What is input here?
+- what's the use case of #\<buffer NAME\> or #\<NAME\> notation in eshell, as described at (info "(eshell) Arguments")?
+ - It's useful for redirection. run-foo > #\<buffer NAME\>
+ - ah right, described at (info "(eshell) Pipelines")
+- I just can’t get eshell to stick … I keep running back to vterm with my tail between my legs
+ - eat fan here -- it doesn't require an additional external c library :D
+ - mekeor: I need to try it out, I read on its README that vterm is faster but I'm not sure if I actually need that speed.
+ - Eat seems to handle buffer resizes better
+- lispmacs[work]: I think an important point is to just use Eshell where you find it useful - same with all the other Emacs tools. Of course, you should explore some of Eshell's Emacs/Elisp integration features
+- The integrations with the rest of Emacs is probably what makes Eshell worth it once you get used to it. I am going to read up and try it out.
+- Thanks
+ - einar_m: Thank you! :-)
+ - lounge-664: thanks chris good talk
+ - chum-cha: This was fantastic, thanks lispmacs[work]!
+ - mretka: M-x clap 👏👏👏
+ - dubs: Great talk
+ - [14:32:57] * gs-101 claps
+ - lispmacs[work]: thank you
+ - johnhamelink: Thank you :)
+ - jsiegel62: Thanks!
+ - lispmacs[work]: 🙇
+ - karthik: Thank you
+ - mraabo: Very nice, thank you!
+ - lounge-267: ty, lispmacs.
+ - [14:33:42] * inkpotmonkey 🙇
+ - oylenshpeegul: 👏
+ - ankit: Thank you, I've picked up a lot of things that I'll try to use in my workflow.
+ - einar_m: Thank you for the inspiration, lismacs!
+
+- YouTube comments:
+ - 11:28 This should have been a shell-command instead of an eshell-command.
+ - is the voice generated by a software program?
+ - not judging by the no-pop-filter-noises
+ - bro forgot he was giving a talk and thought he was narrating an audiobook lmao
+ - be kind
+ - Surprised you didn't mention "vterm" or "multi-vterm" especially if some shell commands have fancy ansi output.
+ - I have a question regarding command line argument passing with emacsclient. In my fish.config file create a function called "e' so I can just type e sometext.txt
+ emacsclient -c "$argv[1]"
+ But I want this actually
+ emacsclient -c -a "" --eval "(set-frame-size (selected-frame) 106 42)" "$argv[1]"
+ so
+ $ e sometext.txt
+ #^That works but below doesn't work and I get an elisp message
+ #If I use that emacsclient with --eval
+ $ e sometext.txt
+ #says "nil"... and I don't get emacsclient to open up with the text file I want. It is very annoying and I guess once you put --eval you can't do argument passing but goes into an elisp mode I assume.
+ - I think the scope of this talk was mentioned in the beginning.
+ - 0:20 I think of Emacs as an OS
+
+[[!inline pages="internal(2024/info/shell-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/shell-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/students.md b/2024/talks/students.md
new file mode 100644
index 00000000..65eedad8
--- /dev/null
+++ b/2024/talks/students.md
@@ -0,0 +1,185 @@
+[[!meta title="An example of a cohesive student workflow in Emacs"]]
+[[!meta copyright="Copyright &copy; 2024 Daniel Pinkston"]]
+[[!inline pages="internal(2024/info/students-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 example of a cohesive student workflow in Emacs
+Daniel Pinkston (he/him) - IRC: bardman, develop dot bard at-symbol gmail dot com
+
+[[!inline pages="internal(2024/info/students-before)" raw="yes"]]
+
+Most successful students have a go-to system for staying organized. It
+might be Notion, Obsidian, a bullet journal, or a simple paper planner.
+ The key is finding what fits your personal needs and style. Here's an
+interesting option some students might not have considered: Emacs.
+It's a tool that's popular with Linux people, but possibly overlooked by
+others. For the right person, it could be a game-changer in managing
+academic life.
+
+This talk is meant to showcase how different Emacs tools integrate with
+each other to create a cohesive work environment for students.
+
+Links:
+
+- Denote <https://github.com/protesilaos/denote> - the keystone package for my preferred note taking method
+- Logos <https://github.com/protesilaos/logos> - a focus-mode tool for writing
+- PDF-tools <https://github.com/vedang/pdf-tools> - pdf viewer
+- Anki-editor <https://github.com/louietan/anki-editor> - my favorite package for making flashcards in Emacs
+- Org-fragtog <https://github.com/io12/org-fragtog> - auto toggles LaTeX fragments in my org documents
+- Org-download <https://github.com/abo-abo/org-download> - facilitates quick image addition to org documents
+- My Emacs configuration <https://github.com/BardofSprites/.emacs.d> - includes not only writing, but programming
+
+About the speaker:
+
+I am Daniel Pinkston, a high school student (grade 12) interested in Emacs,
+Linux, programming, and customizable/libre software. I have been using
+Emacs since 2022, starting with DOOM Emacs.
+
+
+# Discussion
+
+## Questions and answers
+
+- Q: I use org-roam for notes and find it very useful - have you
+ considered it?
+ - A: I know about it; started with it, actually. Didn't like the
+ dependancy on an external db, e.g. if using syncthing from a
+ laptop to a desktop. Fair enough.
+- Q: Do you use the Getting Things Done methodology as part of your
+ Org workflow?
+ - A: I started with org, and then heard about GTD, so I didn't
+ exactly design my workflow with that in mind.
+ - I probably don't do it the exact way.
+ - audience: I can never Get Things Done :-\\
+ - \<gs-101\> Personally, I just add checkboxes to TODO
+ headings. For example. I scheduled to learn scheme today: 
+ - \* TODO Study Scheme \[0/4\] 
+ - \- \[ \] A Scheme Primer 
+ - \- \[ \] Structure and Interpretation of Computer
+ Programs 
+ - \- \[ \] Video lectures of thre previous book 
+ - \- \[ \] The Scheme Programming Language Fourth Edition
+ - And each checkbox is a link to a bibliographic note of
+ the book/video.
+- Q:org-fc and org-drill are emacs  org mode centric flash card
+ solutions, have you looked into them?
+ - A: Looked into org-drill, but wanted to use Anki because I
+ wanted to use it on my phone, so that demotivated me.
+- Q:What do other students think about your approach - and what are
+ they doing instead (if anything)? And your teachers - what do they
+ think?
+ - A: Other students are usually just confused. They know I use
+ Linux but they don't know what it is, so they assume that
+ everything I do on my computer is hacking or doing some Linux
+ thing. I don't usually bother explaining it to them. That's
+ one of the reasons I made this talk, so I can refer people who
+ are actually interested in it instead of superficially
+ interested in it.
+ - For my teachers, I think\... I showed them this year for the
+ first time. It didn't really interact where they would see what
+ happens. Export to LaTeX\... I did that for my physics class. My
+ teacher was pretty satisfied with the results for the math
+ programming. I think they don't really have a problem with it.
+ It's actually more convenient.
+ - audience: I'm a teacher and I'd be over the moon. And if I
+ didn't know it yet, I'd be super inspired. I use it with
+ all my students (some complain but the best ones adopt it
+ pretty effortlessly).
+- Q: What was your biggest source of frustration/friction/confusion
+ when getting started with Emacs?
+ - A: I don't really remember; it somehow just clicked one day.
+- Q: How did you come across Emacs? What got you into it?+1
+ - A: I get asked this quite a bit; I have a prepaired answer. 
+ Similar to how I stumbled into Linux.  Saw screen-shots on
+ Reddit, saw video on YouTube (doom cast is what got me really
+ into it). Chat recommended: SystemCrafters' videos; yes, as
+ well as prot's videos about completion and embark.  i would
+ watch videos while washing dishes. 
+- Q: What the situation with respect to "mobile" use (if ever
+ that's applicable)? (yes, Orgzly\...using that?)
+ - A:  Didn't want to use a paid-app to sync files, didn't need
+ to look into too much because I carry a notebook and usually a
+ laptop.  I've seen others get started with eink tablets, can't
+ attest to how good that is.
+- Q: Has using emacs led to expanded interest in programming/computer
+ science? (apologies if I forgot from your presentation) (+1; emacs
+ configuration seems like a natural entry-point into learning
+ programming)
+ - A: Emacs is what got me started with lisp specifically,
+ otherwise I might not have looked into it that much other than
+ dabbling with Scheme from the Structures and Interpertations of
+ Computer Science book.  I was into programming before Emacs.  I
+ used vscode then vim, before emacs, but now I've done most of
+ my programming in Emacs.
+- Q:You mentioned exporting notes, essays, etc. for handing them on to
+ other people. How does interaction with others work in technical
+ terms? We mostly find workflows centered around Microsoft products.
+ How do you manage with that? (+1; now that computers are fully
+ integrated into education, how do you deal with conflicts in terms
+ of the tools and workflows others expect you to use?)
+ - A:
+
+## Notes
+
+- Evangelism. We need more of that. Like the quote "Investing in your
+ future". Going to spread this.
+- (This high-schooler is definitely going places!)
+- makes note of anki
+- For creating flash cards entirely from inside Emacs, there's
+ Gnosis:
+ [https://thanosapollo.org/projects/gnosis/](https://thanosapollo.org/projects/gnosis/)
+- i started living in emacs around age 13, this talk is
+ definitely bringing back a lot of memories \^\^
+ - wow! do you remember how you heard the first
+ time about emacs back then?
+ - hearing about some "linux" thing on the
+ radio and reading some LJ copies -\> my dad bought an old pc
+ from a grad student -\> reading a bunch of those "learn
+ everything about gnu/linux" tomes -\> switch todebian and
+ deciding to try out that Other Editor
+ - thx for sharing. my dad has been definitely also making an impact to my "computing development", but i encountered unix-y stuff not before my first university contact unfortunately. i though successfully bypassed the "win 3.11" times … :)
+ - (i was also included in some old-school seemingly MIT-esque educational experiment involving LOGO and robots, back in elementary school)
+ - i don't think it's a coincidence that my parents are scientists and i was practically raised in a biology laboratory :P i'm not *that* old but i think the first browser i used was ncsa mosaic
+- Great talk! Thank you! I'm really going to have to
+ try out some of those packages 😊
+- Yes, 30-40 years back \*sigh\*
+- I hope I get praised this much by the professors if I'm
+ able to join university 😄
+- ah bardman is gone, if there are more people with
+ "learning scheme" on their TODO list, there'll be a sicp reading
+ group next year (loosely affiliated with
+ ##transgeeks/#guile-emacs/#systemcrafters), i think daviwil of
+ systemcrafters.net also runs guile scheme courses from time to time
+ - privmsg or email me if you want a direct notification,
+ but i'll be mentioning it occasionally in those channels when
+ they're close to starting
+- I can relate, I finished High School just last year. trying to get into college too
+- there's some sort of series to be made here. aaron wolf has a series of talks about using free software to ensure his young son has a healthy relationship with computers...
+- Reminds me of Eduardo's talk on the dev track yesterday about mathematics students in Brazil
+- YouTube comment: When I was a student, I would take notes on paper. They would be messy. I would review, re-write, and organize my notes on paper. Then I would type them into the computer so I can print out nicely formatted notes. I did all this on a 16bit Atari ST and it blew my instructors mind in electronics school when I turned in my ring bound, printed notes for grading / review. I had drawn circuits and did all this desktop publishing work on it. It was very new at the time, only Macs, Atari, Commodore were doing this stuff at the time. Really wish I had today's Emacs back then. Even if I could have obtained a copy of Emacs it would have been lacking a GUI and Org-Mode and most of the popular packages. So today, is the best time to pick up Emacs because it is even more useful today than 40 years ago.
+- YouTube comment: Yes emacs is amazing and with latest llm it is easy to learn how to use it. I know the llm will destroy jobs but I do appreciate that it helps me embrace emacs faster
+
+Feedback:
+
+- 👏👏👏 well done!
+- 👏
+- 👏👏
+- 👏👏👏
+- 👏👏👏👏
+- 👏 (i wish i would have discovered emacs also in my
+ school time)
+- 👏👏👏👏👏
+- Fanstastic talk! I will save the link to the talk for
+ new users of org-mode.
+- fantastic talk ty
+- Like the moderator,  too, very upbeat just what I need on this day
+ of drizzle.
+
+[[!inline pages="internal(2024/info/students-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/students-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/sun-close.md b/2024/talks/sun-close.md
new file mode 100644
index 00000000..66ed8965
--- /dev/null
+++ b/2024/talks/sun-close.md
@@ -0,0 +1,200 @@
+[[!meta title="Sunday closing remarks"]]
+[[!meta copyright="Copyright &copy ; 2024 ${speakers}"]]
+[[!inline pages="internal(2024/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(2024/info/sun-close-before)" raw="yes"]]
+
+
+
+# Discussion
+
+- \<Fade\> thanks for the conference, kind people.
+- \<johnhamelink\> Its the first time I've been able to attend the
+ whole conference live, and it's been great fun, I've had a blast
+ :)
+- \<Fade\> I look forward to emacsconf even more than ELS
+- \<robin\> emacsconf is absolutely knocking it out of the park when
+ it comes to conference logistics
+- \<Fade\> I think this conference has defined the terms for a
+ successful online conference. it's literally the first one I've
+ seen that is actually,  you know, \*good\* (but\... not cheap.)
+ - \<NullNix\> Fade: the other awesomely good one was LPC,
+ especially during lockdown. Amazing use of BBB (they had to
+ extend it in all directions)
+- \<jrootabega\> I forget whose screen this is being broadcast right
+ now, but I'm curious in general about the style you use for your
+ IRC client.
+- \<plattfot\> Great conference as always.  A highlight each year!
+- \<lounge-081\> Thanks again to the organizers, and presenters for
+ many great talks, and participants for interesting exchanges, see
+ you all next year (fingers crossed)
+- \<ElephantErgo\> EmacsConf is one of the big highlights of my year
+ every year. Thank you a ton for running this 😊
+- \<Mjolnir\> Thanks to everyone putting together EmacsConf. Loved
+ attending like the past few years. Have a happy holiday season, see
+ everyone around and next year!
+- \<fristed\> Amazing, just like the previous years! Maybe i'll
+ manage to prepare a talk or volunteer for next year, it would be a
+ honor
+- \<kickingvegas\> thanks to all the organizers! you are so
+ appreciated!
+- \<lounge-987\> Thanks to everyone, it was great
+- \<fosskers\> Thanks for putting this together
+- \<karthik\`\> Thanks to the organizers
+- \<snamellit\> Thanks to everyone, was a blast!
+- \<robin\> thank you sachac corwin zaeph lh FlowyCoder and, er,
+ anyone i'm forgetting :D 👋👋👋
+- \<edrx\> thanks for the conference!!! so many wonderful talks - and
+ the organization was amazing!!! =)
+- \<robin\> this has been an all-around fantastic experience, both as
+ a first-time attendee and speaker. many thanks to the volunteers who
+ make emacsconf possible, and the other speakers for their wonderful
+ talks (many of which i'll be reviewing now that i'm not so busy
+ preparing \^\^)
+- \<kswiss\> 👏 must-attend event every year - thx all
+- \<lounge-081\> Surely there's time for a last round of applause for
+ the organizers! Many thanks to you!
+- \<jack7\> ty organizers! great conf.
+- \<ElephantErgo\> This was so incredibly fun, everyone. It was
+ wonderful hanging out with you all and seeing so many amazing talks!
+- \<pizzapal\> very cool, thanks everyone for putting this on!
+- \<lounge-081\> Thanks, fantastic conference, yet again!
+- \<ellis\> yay! great conf yall
+- \<johnhamelink\> woooo! Well done everyone! Amazing weekend :)
+- \<gs-101\> Great conference!
+- \<@sachac\> I would love it if someone could go figure out editing
+ etherpads from Emacs =)
+ - \<robin\> that doesn't exist?! i once implemented a
+ collaborative text editor with an emacs client as a CSCW
+ experiment\...
+ - \<@sachac\> robin: I write to the pads with Emacs Lisp, but
+ I don't know how to, say, append considering the realtime
+ edits
+- Things that have been working well
+ - Crontab
+ - Automation
+ - Checklists and shortcuts: it was very nice being able to just
+ bring on FlowyCoder 
+- Org conference or some kind of event, maybe? July-ish? zaeph can
+ help with the admin too, and corwin might also be able to coordinate
+ with FSF sysads to explore things like Galene as well as routine
+ maint/patching on the hosts
+ - Might be good for the hackathon as well
+- Europe/APAC-friendly time zone?
+- Things we added this year:
+ - New BBB instance, also BBB version 3, directly creating BBB
+ rooms and users via Rails console
+ - We had a couple of crashes, not sure
+ - Random package
+ - copy IRC
+ - open-mic
+ - mpv 0.38 to fix the colour conversion issues
+ - YouTube streaming straight from OBS with multiple events (AM/PM)
+ was more straightforward than using ffmpeg; went this way since
+ Toobnix livestreaming didn't seem to be working.
+ - Scheduled YouTube videos
+ - Sunday was single-track, which was pretty relaxed
+ - Corwin and Leo were able to jump in and out of hosting the
+ various tracks, that was nice
+ - Experimented with dedicated CPU for live0 on day 1, doesn't
+ seem to be needed
+ - Changed intro and play scripts to use the cache directory
+ instead of a separate stream directory
+ - fossevents
+- Things that were a little challenging
+ - Didn't have much time leading up to the conference, had to
+ re-figure-out stuff I hadn't documented well enough last time
+ - Schedule mostly driven by availability constraints, which is
+ fine; might be a good opportunity to experiment with something
+ that might work for Europe/APAC time zones?
+- Infrastructure and process notes:
+ [https://emacsconf.org/2023/talks/emacsconf/](https://emacsconf.org/2023/talks/emacsconf/)
+ ,
+ [https://emacsconf.org/captioning/](https://emacsconf.org/captioning/)
+ ,
+ [https://emacsconf.org/infra/](https://emacsconf.org/infra/)
+- Ideas for improvement / notes for next year:
+ - Do the podcast tour suggested in 2023-sun-close
+ - Maybe it would be good to get in touch with podcasts like
+ This Week in Linux, Linux Unplugged, Ask Noah, Linux After
+ Dark etc to give a heads up on EmacsConf before it happens
+ and also mention to them when videos are available to spark
+ more interest.
+ - 60 fps looks like it's challenging for our playback, drop down
+ to 30 fps
+ - Consider making audio mono (ex: Ihor's talk)
+ - Make sure intro VTTs go into the cache directory as well so that
+ the intros have subtitles.
+ - See if we can work on audio normalization earlier, document the
+ process, get more volunteers
+ - Consider Galene, might be more efficient than BBB
+ - Check emacsconf-publish for doubled inclusion of Etherpad links
+ - Launch mpv always in a screen, turn off OSD display, Leo will
+ figure out MPV and Lua and configuration
+ - Switch to tmux instead of screen
+ - Consider hosting from people's home computers again because of
+ dropped frames
+ - Figure out what happened to my intro.vtt for literate
+ - Show Javascript countdown on talk webpage
+ - Show when this video is finishing and when the next talk is
+ going to start
+ - Send the intro check e-mail earlier, maybe at original video
+ target date even if they haven't done the video yet
+ - Caption the Interview with an Emacs Enthusiast video.
+ - Doublecheck that intro is playing from cache
+ - Countdown to specified talk, countdown to next talk on this
+ track, even if manually playing with track-mpv
+ - Get mpv to tell us how much time is remaining - maybe track-mpv
+ in the stream, or write to a file at the start
+ - Check CPU stats TODO - sacha
+ - front0: peak 76%, typical 25%
+ - live0
+ - More validating functions:
+ - Check permissions and ownership for files
+ - Check case sensitivity for Q&A type detection
+ - Check BBB redirect pages to make sure they exist
+ - Check transcripts for \` because that messes up formatting;
+ consider escaping for the wiki
+ - Check files are public and readable
+ - Check captioned by comment vs caption status vs captioner
+ - Put code for copying the current ERC line into emacsconf-erc.el
+ - Check Etherpad new version, see if we can append
+ - Make sure emacsconf-stream-config includes emacsconf-cache-dir
+ and case-fold-search settings
+ - Document scripts and processes for easier extraction of live
+ talks and Q&A from Icecast dump or Youtube dump
+ - Follow up on Toobnix livestreaming
+ - See if we can schedule Toobnix uploads
+ - Shortcut to insert talk URL
+ - Consider recommending light text on dark background
+ - Things to document:
+ - Restreaming the other stream (mpv \--profile=full URL) - we
+ probably also have a script somewhere
+ - How to update captions after they have already been
+ published
+ - Reloading subtitles: j in the mpv player
+ - Adjusting volume: 9 and 0 in the mpv player
+ - Last-minute addition of session
+ - Last-minute change to Q&A
+ - Music removal/addition
+ - Consider WhisperX medium model for fast processing of
+ last-minute submissions
+ - Change private pad prefix for next year
+ - Check access to Working Together donation stats, public donors
+ - Ask speakers what kind of facilitation they want
+ - \<kickingvegas\> wish for next year: localized schedule times on
+ the emacsconf website
+ - Next year, I'll add pronouns and pronunciations to the Etherpad template
+
+[[!inline pages="internal(2024/info/sun-close-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/sun-close-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/sun-open.md b/2024/talks/sun-open.md
new file mode 100644
index 00000000..1bf98035
--- /dev/null
+++ b/2024/talks/sun-open.md
@@ -0,0 +1,21 @@
+[[!meta title="Sunday opening remarks"]]
+[[!meta copyright="Copyright &copy ; 2024 ${speakers}"]]
+[[!inline pages="internal(2024/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(2024/info/sun-open-before)" raw="yes"]]
+
+
+
+
+[[!inline pages="internal(2024/info/sun-open-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/sun-open-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/theme.md b/2024/talks/theme.md
new file mode 100644
index 00000000..12adfbe1
--- /dev/null
+++ b/2024/talks/theme.md
@@ -0,0 +1,69 @@
+[[!meta title="My journey of finding and creating the “perfect” Emacs theme"]]
+[[!meta copyright="Copyright &copy; 2024 MetroWind"]]
+[[!inline pages="internal(2024/info/theme-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. --->
+
+
+# My journey of finding and creating the “perfect” Emacs theme
+MetroWind (he/him) - IRC: MetroWind, Fediverse (pleroma): mw@pleroma.xeno.darksair.org - Matrix: @mw:darksair.org
+
+[[!inline pages="internal(2024/info/theme-before)" raw="yes"]]
+
+In this talk I will share my experience of finding and creating the
+“perfect” Emacs theme. I will go through the five themes I have
+created and discuss the motivations and ideas behind them, which will
+also introduce various color spaces. And I will look into the future
+to see if there is hope to find the "perfect" theme.
+
+About the speaker:
+
+I'm a long time Emacs user (since Emacs 21). I don't write a lot of
+elisp but I'm spend vast majority of my screen time with Emacs, and
+I'm picky about how it looks. This talk shows how may hoops I'm
+willing to jump through to make it look "right".
+
+
+# Discussion
+
+## Questions and answers
+
+- Q: When you choose colors based on the same lightness, does it not
+ hurt readability since the eye sees lightness most?
+ - A: 
+- Q: One area I see emacs able to do themes that is "underused?" is
+ changing the font. font size, font typee, monospace or perpotional,
+ bold. based on the varios faceets of emacs. Is it a magit issie a
+ code comment a  code string or varible name etc\...
+ - A:
+- Q:
+ - A:
+- Q: For monte-carlo, are all the "random" colors picked using a
+ colorwheel/hue rotation? 
+ - A:
+- Q: Have you ever kept any of the random themes that were thrown up?
+ - A: No. When Emacs picks monte carlo by chance, I wouldn't know
+ about it. That's why I didn't keep any of the themes it
+ generated.
+- Q:
+ - A:
+
+## Notes
+
+- Links:
+ - [https://github.com/MetroWind/flucui-theme](https://github.com/MetroWind/flucui-theme)
+ - [https://github.com/MetroWind/lab-theme](https://github.com/MetroWind/lab-theme)
+ - [https://github.com/MetroWind/notink-theme](https://github.com/MetroWind/notink-theme)
+ - [https://github.com/MetroWind/monte-carlo-theme](https://github.com/MetroWind/monte-carlo-theme)
+- Comment: Hi MetroWind, your lab-theme was the inspo for my initial
+ color space journey \~6 years ago, thanks for putting your work out
+ there
+ - Wow I'm so glad you found your inspiration! Thanks!
+
+
+[[!inline pages="internal(2024/info/theme-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/theme-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/transducers.md b/2024/talks/transducers.md
new file mode 100644
index 00000000..f5f82c2b
--- /dev/null
+++ b/2024/talks/transducers.md
@@ -0,0 +1,284 @@
+[[!meta title="Transducers: finally, ergonomic data processing for Emacs!"]]
+[[!meta copyright="Copyright &copy; 2024 Colin Woodbury"]]
+[[!inline pages="internal(2024/info/transducers-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. --->
+
+
+# Transducers: finally, ergonomic data processing for Emacs!
+Colin Woodbury (he) - <https://x.com/@fosskers> , @fosskers@m.fosskers.ca on Mastodon, <https://www.fosskers.ca>
+
+[[!inline pages="internal(2024/info/transducers-before)" raw="yes"]]
+
+Transducers are an ergonomic and extremely memory-efficient way to process a
+data source. Here "data source" means simple collections like Lists or
+Vectors,
+but also potentially large files or generators of infinite data.
+
+Transducers&#x2026;
+
+- allow the chaining of operations like map and filter without allocating memory between each step.
+- aren't tied to any specific data type; they need only be implemented once.
+- vastly simplify "data transformation code".
+- have nothing to do with "lazy evaluation".
+- are a joy to use!
+
+In this talk, Colin will introduce Transducers, show how to use them, and
+demonstrate some Emacs-specific workflows that make live processing of large
+data sets in JSON and CSV a breeze.
+
+About the speaker:
+
+Colin has been active in the FOSS world since 2011, publishing libraries and
+applications primarily in Haskell and Rust. Since 2023 he has been using
+Lisps
+more and more, and after falling in love with Transducers from Clojure has
+ported the pattern to three other Lisps.
+
+Colin is originally from Canada and lives in Japan.
+
+
+# Discussion
+
+## Questions and answers
+
+- Q: When I tried comparing transducers.el to cl-lib and dash
+ (benchmark-compiled), I got the following results:
+ ```
+ cl-lib: 0.5 sec, 2 GCs
+ dash: 0.3 sec, 1 GC,
+ transducers: 0.75 sec, 2 GC
+ cl-loop: 0.025 sec, 0 GC (note: 0.025, one order-of-magnitude faster)
+ I expected transducers to be slower than cl-loop but faster than the
+ cl-lib or dash.  However this isn't the case.  Any idea why? (benchmark
+ is here:
+ [https://old.reddit.com/r/emacs/comments/1h5c778/which_emacsconf_2024_talks_have_your_attention/m061dge/](https://old.reddit.com/r/emacs/comments/1h5c778/which_emacsconf_2024_talks_have_your_attention/m061dge/))
+ ```
+ - (benchmark-run-compiled 1000  (cl-loop for n from 1 below
+ 2000 by 2           sum (\* n n) into total          
+ finally return total))
+ - A: Loop is always going to win in cases like this where we are
+ not doing two nested (e.g.) change calls, what I called comp
+ steps.  tranducers shines while we need to do things which chain
+ things together; we can sometimes express ourselves more clearly
+ vs loop.  this may sound sounds like moving the goal-posts:
+ it's really about internal function calls, avoiding stepping
+ though each loop in ways which loop doesn't need to do, so loop
+ might "win".
+ - Note: I'm comparing against cl-lib and dash \-- the cl-loop is
+ only for reference. I'm curious about the performance gap
+ between transducers and cl-lib/dash.  The number of function
+ calls is the same for cl-lib and dash and transducers.
+
+- Q: Did you think about generators as a source cf lists, vectors,
+ etc? Maybe I got a word wrong. After the development that generators
+ and Series operations needed-each-other, not being redundant as had
+ been thought. I forgot who the generators person was in lisp.
+ - A: (not yet answered)
+
+- Q:  Do you know of any theoretical texts on transducers?
+ - A: My README and Rich Hickey (inventor of Clojure) may be the
+ key texts on transducers. 
+ - and his talks/videos (on the topic)
+ - [https://andreyorst.gitlab.io/posts/2022-08-13-understanding-transducers/](https://andreyorst.gitlab.io/posts/2022-08-13-understanding-transducers/)
+ - (not fosskers): I think AIM-1082 is interesting to read. 
+ ([https://dspace.mit.edu/handle/1721.1/6035](https://dspace.mit.edu/handle/1721.1/6035)?)
+ Yes
+
+- Q: Waters (lazy series in lisp, late 70s) said that this \*should
+ have\* been done as an additional compiler feature in compilers, but
+ if not it must be a macro package. Did you think about that viz your
+ cl, fennel, elisp, porting of your transducers?
+ - A: I think my work could help provide the basis for this;
+ there's much more to be done.
+
+- Q: Does t-buffer-read provide a lazy stream that's linewise, or
+ charwise, or do something else entirely?
+ - A: t-file-read
+
+- Q: Can the Elisp library be combined with the stream.el API
+ ([https://elpa.gnu.org/packages/stream.html](https://elpa.gnu.org/packages/stream.html))? 
+ Or seq in general?
+ - A: I'd say these libraries are completely orthogonal. (Re: what
+ made me ask this question was seeing \`t-buffer-read' and
+ hoping that this doesn't convert a buffer into a string)  With
+ seq/generics it should just work: magic of defgeneric
+
+- Q: How does one debug a t-comp expression? Can you single step and
+ see intermediate results of the different statements you declare?
+ - A: In Common Lisp it is wonderful. In Emacs Lisp it is more
+ complicated. I don't know if step debugging would work, but
+ there is a "log" (?) function to print out values.
+
+- Q: Is there a path for transducers to enable elisp processing of
+ otherwise overly large datasets as if just normal Emacs "buffers"
+ (i.e. just pulling one thing at a time so essentially stream-like
+ under the hood but buffer-like in interface), with none of the usual
+ perf issues with a traditional buffer structure?
+ - A: Possibly so yes
+
+- Q: Re the performance issues mentioned and that popped up recently
+ in the lists/forums, to what extend does tailcall optimization and
+ other mechanisms (incl. inlining, GC-friendliness, etc.) could
+ eventually alleviate issues and enable their use at little to no
+ extra cost?
+ - A: Over time, with further work and optimizations. Some already
+ there (tailcall notably)
+
+- Q: Is there an option to read a csv/json and produce an alist or
+ plist instead of a hash table for an entry?
+ - A:  Absolutely.
+
+- Q: Is the common lisp version ready for 'production' use? Is it
+ complete enough and the API stable enough?
+ - A: I use it all the time. I use it extensively. Programming a
+ game, not realizing a dent in the frame rate.
+
+- Q: Do we need a pre-written "t-" version for every already
+ existing reducing function like + or is there a function to
+ construct them from already defined reducer 2-arg functions?
+ - A: already defined. This is basically fold. Some built-in functions like plus already function like reducers. It's a coincidence that they do that. But there's an example in the README. Max is one that does not act like that. For instance, maybe I could screen share later, but if you just type in plus one, If you call plus one in Emacs or Common Lisp, you get back one. It actually only needs one argument. If you only type plus, it actually gives you zero. Plus and multiple satisfy the API of reducers. But if you have one that doesn't, like the max function, and similarly, just type in plus as a function call, just plus with nothing else, and you'll see. No, as a function. zero will come out. This basically means it satisfies the reducer API. But a function like max does not. If you just type in max and then one, it won't work. Pardon me, it did. But if you type in max with nothing else, it wouldn't work. Hence, we have to wrap it in something like fold. I would say go look at the fold function.
+
+- Q: Is the compelling argument for transducers is that it's a better
+ abstraction? Seems like a lot of concerns/objections (while
+ pragmatically valid) are focused on implementation. Can this
+ abstraction allow for advances in implementation?
+ - A: Yes, what I've basically done is mostly followed the pattern of usage that exists in Clojure and in Scheme's SERP 171. In theory, the service level API is the same no matter where you're using this, and that's the idea. If you learn them in one list, you should be able to use them everywhere. Then what it's actually doing under the hood is free for us to change around. My implementations are mostly based on the scheme with a few alterations here and there. And in the Common Lisp case, like adding some Common Lisp isms to improve usage like UX a little bit. But overall, we are free to do whatever we want internally to speed up performance. I just haven't done that work.
+- Q: is there a path for transducers to enable elisp processing of otherwise excessively huge data ets as if just a normal Emacs "buffer" (i.e. but just pulling one thing at a time so essentially stream-like under the hood), with none of the usual issue when a traditional buffer structure?
+ - (not yet answered)
+- Q: So the "reducer API" means that the function accepts a variable number of arguments in a monoidal way?
+ - that's what I gathered
+- Q: From your investigations and tests so far, do you think there would be the necessity of transducers to eventually go down into the C level code for things like using them to solve "infinitely-big" buffer-like interfaces and such?
+ - A: Yeah, like, if we really wanted to go that hardcore, maybe there's some like C level stuff that we could you know, significant demand for such a thing. You know, so far there hasn't been such demand, but maybe there will be in the future. Yeah, perhaps there's some custom stuff we could do.
+- Q: why does the reducer have to sometimes be a custom function, but other times just something like #'+?
+ - it depends on if that reducer function needed special input or not
+- Q: do you have FSF copyright assignment? it is nice to get low-level libraries like transducers on ELPA so other copyright-assigned packages can use them (and so they can be included in Emacs when they reach wide adoption)
+ - transducers is on MELPA
+- Q: Is that #' business for some lisps and not others the lisp-1/lisp-2 distinction?
+ - Sharp quote refers to (symbol-function 'my-symbol) in a lisp2
+ - yes, it emphasizes using the "function" associated with the symbol (if there's one in the "function slot" for the symbol) as opposed to some "variable"-type value
+ - (and in this case pkal is not asking about the sharp quote but a t-prefixed function as opposed to a standard function like +)
+ - that's because of the separate namespace for function symbols?
+ - function rather than symbol-function to be extra-nitpicky (to accomodate lambda forms)
+ - If I remember correctly, single quote (') does not respect when a function symbol is overridden by a let, but (pound quote) #' does?
+ - yes, my question was about the t- prefix.
+ - "let"s only bind the symbol value slot, not the function slot.
+ - yes, iiuc; in effect, it's sort of an early-binding/late-binding distinction
+ - My bad. Should've specified flet.
+ - @can't speak for the elisp case, but in the clojure case using things in transducer form has a slightly different "typing" shape as you'd expect and may require a wrapper if a function can't be used as is and such, though I missed the context and that may not be relevant to your point
+- Q: Question about how the transducers video was made? Did you use Reveal.js? Do you have a pointer to the html hosted presentation? How did you generate the content for Reveal?
+ - So the presentation itself was done with RevealJS from Org Mode. So as you saw, I had a raw Org Mode buffer, which was which was the presentation itself, which I then just exported with a few certain settings, a few customizations. And then for screen recording, I used OBS, which worked flawlessly on Arch Linux. I used Sway, Wayland, and all of that. So all of that just worked, which was very impressive. Where do the HTML host the presentation? I don't have that presentation hosted anywhere.
+ - Text is a little small bth
+ - no keep the latin on screen, i was trying to read that
+ - It was Lorem Ipsum
+ - Translating lorem ipsum plus plus
+ - Thanks for larger text
+
+## Notes
+
+- What made transducers click for me way back when was
+ realizing that the usual operations (think map/reduce/filter/etc and
+ their generalizations) implicitly or explicitly demand realized
+ collections, plus intermediate ones between those operations (and
+ GC), instead of composing such transformations into one operation
+ and then making this applicable to streams of unknown-sizes and
+ such.
+ - ah, like\...\*thinks very hard\*\...stream
+ fusion, iirc?
+ [http://lambda-the-ultimate.org/node/2192](http://lambda-the-ultimate.org/node/2192)
+ that makes a lot of sense
+ - "Rich Hickey has a point" need never be said :)
+- Sorry but map is collect and filter is select for me :)
+- there are many ways to get to them (some may
+ already think of those functions as folds, etc.), but for the bulk
+ of people familiar with map/reduce/filter/etc, it's useful to enter
+ the thinking realizing that you may have infinite streams (of any
+ type even) on input, and may not want to have realized collections
+ at every step of the usual function applications, thus the need to
+ compose the things that make up a map/reduce/filter/etc before
+ applying them one by one on a continued stream of things one at a
+ time
+- ellis: I wrote about half of one in binutils libctf
+ (generators, anyway). See the \*\_next() functions. Having seen this
+ I'll try to mutate the internals to something closer, right now
+ every iterator is independently implemented (mostly).
+ - (inspired by generators, not transducers, since I
+ didn't know about them)
+ - still \*far\* less ugly than "call a function with
+ every item" \*\_iter() stuff
+- Thanks for the answers fosskers, I'm quite hopeful
+ with transducers working their way into many things, so thinking
+ ahead to where that may happen and to solving perf hurdles
+- I'm totally sold. I'm working on a CL codebase
+ right now, and these are going in there immediately
+- (also CL does not require TCO but good compilers support
+ it to the extent that extensive use of FP is practical)
+- it's a tricky protocol to get perfect the first time for
+ sure, is something that transcends language barriers so always fun
+ to see more impls :)
+- CLTL2 docs on SERIES for those who are curious
+ [http://www.cs.cmu.edu/afs/cs.cmu.edu/project/ai-repository/ai/html/cltl/clm/node347.html#SECTION003400000000000000000](http://www.cs.cmu.edu/afs/cs.cmu.edu/project/ai-repository/ai/html/cltl/clm/node347.html#SECTION003400000000000000000)
+ - (lisp.se mirror in case the ai repository disappears
+ someday:
+ [http://cltl2.lisp.se/cltl/clm/node347.html](http://cltl2.lisp.se/cltl/clm/node347.html)
+ )
+- definitely watching this one more carefully. if it's
+ CLOS-oriented i'm going to like it
+- note that full TCO is strictly more expressive than
+ special-case optimizations as with emacs's cl-labels
+- in the general case, there not need to actually process such a composed operation on an item from the input until needed/"pulled" from the output side, so yes in a way
+
+- yea i think the next step in terms of performance would be using a 'plan' object internally to rewrite the lambda calls
+- Julia does loop fusion through its broadcast operator.
+- that gets very hairy and makes it far less simple imo
+- Re the current answer, it doesn't yet, but it's on the path where it could eventually (i.e. introspecting on the composed transformation and simplifying it, be it fusion-type or otherwise)
+- Waters agreed that ergonomics was the key key key thing. (In the PhD world, because of studies that people have trouble reading other peoples' iteration = loop codes)
+- "galaxy brain" is great expression.
+- CLTL2 docs on SERIES for those who are curious http://www.cs.cmu.edu/afs/cs.cmu.edu/project/ai-repository/ai/html/cltl/clm/node347.html#SECTION003400000000000000000
+- i'm curious about what mathematical structures are related to transducers but that's probably a README question
+- Q: transducers C impl when
+- ecl slime repl + transducers or series
+- I wrote about half of one in binutils libctf (generators, anyway). See the *_next() functions. Having seen this I'll try to mutate the internals to something closer, right now every iterator is independently implemented (mostly).
+- note that full TCO is strictly more expressive than special-case optimizations as with emacs's cl-labels
+- (inspired by generators, not transducers, since I didn't know about them)
+- still *far* less ugly than "call a function with every item" *_iter() stuff
+- Thanks for the answers fosskers, I'm quite hopeful with transducers working their way into many things, so thinking ahead to where that may happen and to solving perf hurdles
+- I'm totally sold. I'm working on a CL codebase right now, and these are going in there immediately
+- (also CL does not require TCO but good compilers support it to the extent that extensive use of FP is practical)
+- it's a tricky protocol to get perfect the first time for sure, is something that transcends language barriers so always fun to see more impls :)
+- absolutely. I will try :) of course libctf is ABI-stable so I can't just change what the user sees, but maybe I can make the internals less repetitive :)
+- (and maybe add another API that is more transducery.)
+- Nice ielm
+- @pkal: that's what I meant back up, that some functions happen to have the right form for use in transducers, but fosskers expounds much better, small incompatibilities (think order of params, variadicity, etc)
+- I used emacs for so long before finding out that ielm existed. (I wish I knew sooner.)
+
+Feedback:
+
+- 👏👏
+- impressive
+- cool presentation
+- (still, very nice!)
+- I am so, so thrilled with this. This blew my mind. Thank you! 😊
+- 👏
+- nice 👏👏
+- deeply not ugly
+- Thank you for the excellent talk!
+- Thanks for the talk
+- Thanks fosskers
+- 👏
+- awesome 👏
+- always a pleasure to watch transducers in action - thanks fosskers!
+- Inspiring talk, promptly added to my aoc.asd. Will come in handy.
+- definitely watching this one more carefully. if it's CLOS-based i'm going to like it; CLOS-oriented, rather
+- Thank you fosskers! it is bound to end up in some, if not all of my common lisp projects
+
+- YouTube comment: Nice, this seems to do basically the same thing as C++ ranges, which I've enjoyed using a lot
+- YouTube comment: Good
+- YouTube comment: Nice presentation!
+
+[[!inline pages="internal(2024/info/transducers-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/transducers-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/water.md b/2024/talks/water.md
new file mode 100644
index 00000000..2f3938e2
--- /dev/null
+++ b/2024/talks/water.md
@@ -0,0 +1,35 @@
+[[!meta title="Watering my (digital) plant with Emacs timers"]]
+[[!meta copyright="Copyright &copy; 2024 Christopher Howard"]]
+[[!inline pages="internal(2024/info/water-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. --->
+
+
+# Watering my (digital) plant with Emacs timers
+Christopher Howard (he/him) - IRC: lispmacs, http://gem.librehacker.com, <mailto:christopher@librehacker.com>
+
+[[!inline pages="internal(2024/info/water-before)" raw="yes"]]
+
+This talk gives a brief introduction to Emacs timer functionality. I explain how I used Emacs timers to water and harvest my flower on the gemini Astrobotany service.
+
+About the speaker:
+
+Christopher Howard is a simulator technican and free software ethusiast living in Fairbanks, Alaska. Christopher explains how he uses Emacs timers to automatically water and harvest his flower on the Astrobotany gemini service.
+
+See also these other talks by the same speaker:
+
+- [EmacsConf - 2024 - talks - Emacs as a Shell](https://emacsconf.org/2024/talks/shell/)
+- [EmacsConf - 2023 - talks - Org-Mode Workflow: Informal Reference Tracking](https://emacsconf.org/2023/talks/ref/)
+
+# Discussion
+
+- \<lounge-502\> Not exactly a browser but after yesterday\'s Emacs
+ timer talk, I installed elpher and browsed around some gemini
+ websites and that was a really good experience.
+
+[[!inline pages="internal(2024/info/water-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/water-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/writing.md b/2024/talks/writing.md
new file mode 100644
index 00000000..66ca53e9
--- /dev/null
+++ b/2024/talks/writing.md
@@ -0,0 +1,86 @@
+[[!meta title="Emacs Writing Studio"]]
+[[!meta copyright="Copyright &copy; 2024 Peter Prevos"]]
+[[!inline pages="internal(2024/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 Writing Studio
+Peter Prevos (he) - <mailto:peter@prevos.net> , <https://peterprevos.com> , @danderzei@aus.social
+
+[[!inline pages="internal(2024/info/writing-before)" raw="yes"]]
+
+Emacs Writing Studio is a comprehensive guide and configuration
+for authors using Emacs. The book covers everything from
+organising ideas and writing distraction-free to publishing in
+multiple formats. The book itself was fully written and published
+with the configuration it describes. This talk outlines the proces
+of developing this configuration and the book and some
+perspectives on using Emacs as a tool to write for humans.
+
+About the speaker:
+
+Peter Prevos is a water engineer and social scientist. In this
+talk Peter introduces Emacs Writing Studio, a starter kit and
+associated manual for authors with no Emacs experience.
+
+
+# Discussion
+
+Technical issues connecting to the BigBlueButton room, so no live Q&A
+
+- Q: What's Emacs composition proposition above focused/opinionated packages but below full config bases (Doom/Spacemacs) -- say for "js/ts devel with the kitchen sink", or "writer studio" like this? Akin to Doom/Spacemacs "modules" and such. Just other packages? If so, why haven't these caught up, and convenient libraries of those emerge? We're typically composing at the lowest levels of packaging, and proliferation of base configs could be a symptom(?)
+ - A: (not yet answered)
+- Q: For writers who procrastinate, it's very tempting to fall into
+ the time sink of configuring Emacs rather than simply writing, even
+ with the optimal Emacs writing setup. Is this something you've
+ encountered, and do you have any suggestions for how to combat it?
+ - A: As probably all beginning Emacs users I spent a lot of time
+ tinkering. I decided that I should work with rather than on
+ Emacs and thus EWS was born. My prod config is 99% EWS with some
+ enhancements. My config developed by just starting with vanilla
+ Emacs and only add what I needed, as the need arose. 
+ - Don't try to develop the ideal system in your mind and then
+ build it, let it grow organically.
+- Q: How much success have you had getting writers to use Emacs \--
+ and *stick with it* \-- using  EWS?  I've had people ask me about
+ using Emacs for technical writing and/or coding, and start off well,
+ but move to another editor in two months.  The main reason is when
+ they want to do something with Emacs, can't figure out how, and
+ find a plugin (for Obsidian or VSCode, say) that does the thing they
+ want with no further setup or tweaking required.
+ - A: I have had some good feedback from readers, but I cannot
+ attest to their personal success. The aim of EWS is to get
+ things working without the need for much config. However, Emacs
+ will never bny an easy point and click system such as the ones
+ you mention. 
+- Q:When I was learining Emacs I bounced off it the first couple of
+ times, after reading Mastering Emacs and hearing it was the
+ tinkerers editor I got the right mental model to learn Emacs. Did
+ you have that? and what made it worth using and teaching others?
+ - A: The best way to learn anything is to teach other people. So I
+ used EWS as a project to imporve my understanding of Emacs. Not
+ only did it force me to fully understand how things works, but
+ also develop new fucntions and packages where I saw a need.
+- Q: I love using org to write prose. For me, I like writing the final
+ version of the text in org, and I prefer paper to brainstorm ideas
+ and draft things. How was the brainstorming experience and the
+ process to organize your thoughts to write the book using org-mode?
+ - A: I do my brainstorning in a paper notebook. The first EWS idea
+ is a sketch in my notebook. In my weekly review I transfer notes
+ worth keeping to Denote (scan graphic notes). Writing by hand
+ has many advantages for idea generation. Denote is my
+ repository, not a thinking tool.
+
+## Notes
+
+- Thanks for the great questions. Apologies for the technical glitch.
+- Very interesting talk
+- YouTube comment: ❤
+
+[[!inline pages="internal(2024/info/writing-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/writing-nav)" raw="yes"]]
+
+