diff options
Diffstat (limited to '2024')
-rw-r--r-- | 2024/talks/blee.md | 40 | ||||
-rw-r--r-- | 2024/talks/casual.md | 156 | ||||
-rw-r--r-- | 2024/talks/color.md | 44 | ||||
-rw-r--r-- | 2024/talks/emacs30.md | 20 | ||||
-rw-r--r-- | 2024/talks/guile.md | 100 | ||||
-rw-r--r-- | 2024/talks/gypsum.md | 66 | ||||
-rw-r--r-- | 2024/talks/hyperbole.md | 30 | ||||
-rw-r--r-- | 2024/talks/hyperdrive.md | 33 | ||||
-rw-r--r-- | 2024/talks/julia.md | 81 | ||||
-rw-r--r-- | 2024/talks/learning.md | 15 | ||||
-rw-r--r-- | 2024/talks/links.md | 3 | ||||
-rw-r--r-- | 2024/talks/literate.md | 53 | ||||
-rw-r--r-- | 2024/talks/mcclim.md | 49 | ||||
-rw-r--r-- | 2024/talks/open-mic.md | 59 | ||||
-rw-r--r-- | 2024/talks/org-update.md | 90 | ||||
-rw-r--r-- | 2024/talks/p-search.md | 20 | ||||
-rw-r--r-- | 2024/talks/papers.md | 138 | ||||
-rw-r--r-- | 2024/talks/pgmacs.md | 125 | ||||
-rw-r--r-- | 2024/talks/project.md | 72 | ||||
-rw-r--r-- | 2024/talks/rust.md | 78 | ||||
-rw-r--r-- | 2024/talks/sharing.md | 131 | ||||
-rw-r--r-- | 2024/talks/shell.md | 2 | ||||
-rw-r--r-- | 2024/talks/students.md | 94 | ||||
-rw-r--r-- | 2024/talks/transducers.md | 310 | ||||
-rw-r--r-- | 2024/talks/writing.md | 22 |
25 files changed, 1112 insertions, 719 deletions
diff --git a/2024/talks/blee.md b/2024/talks/blee.md index 4ff097db..db8b788f 100644 --- a/2024/talks/blee.md +++ b/2024/talks/blee.md @@ -207,30 +207,29 @@ Previous Talks: <https://emacsconf.org/2021/talks/bidi> and - 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 -- Takiyah Assaf: gnome is not halal - - Takiyah Assaf: gnome is western - - \<gs-101\> Did he elaborate on how GNOME is haram by his +- 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. -- \<kswiss\> interesting. and - obviously - radical thoughts. not sure +- 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 -- \<lounge-511\> Okay, I have to admit, I love this +- Okay, I have to admit, I love this political/philosophical dissection of software's impact on society. Very interesting. - - \<gs-101\> It's like an extension of the GNU (free software) + - It's like an extension of the GNU (free software) thought. I think I need more literature on that topic\... - - \<\_bladez\_\> Essentially a free, open-source and + - Essentially a free, open-source and privacy-respecting ecosystem akin to those provided by the big tech companies (Google, Microsoft, Apple). -- Paul Eduard: Great talk on Polyexistentials. Awesome to see +- Great talk on Polyexistentials. Awesome to see EmacsConf including international voices . -- \<lounge-511\> He hit the nail on the head: This point has been on +- 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 \... - - \<plasmastrike\> lounge-511: I don't know if this is a problem + - 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 @@ -238,7 +237,7 @@ Previous Talks: <https://emacsconf.org/2021/talks/bidi> and everybodys app but googles worse. Capitilism "not fake Capitalism" predospes a free market which would limit this - The blee panel actually is cool! -- Blaine Mooers: Very thought-provoking talk! +- Very thought-provoking talk! - Dovetailing nicely / with other talks from EmacsConf 2024 - Working **on** Emacs vs working **for** Emacs - Peter mentioned "too much choice" @@ -252,25 +251,26 @@ Previous Talks: <https://emacsconf.org/2021/talks/bidi> and - polymode is key to that - Several concepts which were introduced like "dynamic blocks everywhere" and "COMEEGA" would probably require other talks -- \<gs-101\> Probably my favourite talk of the event -- \<srandby\> Wonderful talk! -- \<lounge-511\> This presentation gets better and better. -- \<plasmastrike\> lounge-511: I don't know if this is a problem with +- Probably my favourite talk of the event +- Wonderful talk! +- This presentation gets better and better. +- 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 Capitilism" predospes a free market which would limit this -- \<silverhikari\> going to go checkout the book later as half way +- going to go checkout the book later as half way thorugh the talk i got term overload -- \<lounge-511\> Great talk, great software. -- \<lounge-511\> Thank you for the presentation Mosen. -- \<kswiss\> while this heavy topic is certainly a major critique of +- Great talk, great software. +- Thank you for the presentation Mosen. +- 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.) +- Hard topic, it feels like we are in an era of closing open-source software, eg redhat [[!inline pages="internal(2024/info/blee-after)" raw="yes"]] diff --git a/2024/talks/casual.md b/2024/talks/casual.md index 60cd63ac..068d38e2 100644 --- a/2024/talks/casual.md +++ b/2024/talks/casual.md @@ -28,44 +28,124 @@ Charles Choi has been an Emacs user since 1989 but did not get around to learnin ## 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: 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 [[!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 index 918e0d84..ba01397c 100644 --- a/2024/talks/color.md +++ b/2024/talks/color.md @@ -63,24 +63,32 @@ as a Principal Engineer. ## Notes -- \<ElephantErgo\> Great talk! Thank you 🙂 -- \<jsiegel62\> Excellent talk, thanks! \[11:33\] -- \<codeasone\> Beautiful theme -- \<inkpotmonkey\> Interesting idea to be inspired from tailwind and - frontend dev, thanks for talk \[11:34\] -- \<@sachac\> - [https://github.com/alphapapa/prism.el](https://github.com/alphapapa/prism.el) - has some interesting colour experiments as well -- \<polezaivsani\> i felt about same with the christmas tree colored - code editor -- sachac: annoyance is a great motivator for learning Emacs Lisp - - sachac: Yay fellow Dvorak user! -- \<neil\> : - [https://github.com/rytswd/hasliberg-theme](https://github.com/rytswd/hasliberg-theme) -- Thanks :) -- \<ryota\> Thank you everyone for tuning in! Also my slides are - available at - [https://codeberg.org/rytswd/emacsconf-2024](https://codeberg.org/rytswd/emacsconf-2024) +- 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"]] diff --git a/2024/talks/emacs30.md b/2024/talks/emacs30.md index ec72eda7..a73751e0 100644 --- a/2024/talks/emacs30.md +++ b/2024/talks/emacs30.md @@ -63,6 +63,26 @@ Philip Kaludercic 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! + [[!inline pages="internal(2024/info/emacs30-after)" raw="yes"]] diff --git a/2024/talks/guile.md b/2024/talks/guile.md index d5b2d609..f1283063 100644 --- a/2024/talks/guile.md +++ b/2024/talks/guile.md @@ -65,10 +65,10 @@ part of a "Lisp machine for the 21st century". - 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. + 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 @@ -76,23 +76,23 @@ part of a "Lisp machine for the 21st century". 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. + - 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 +- 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 + primarily focusing on adding support for writing code in Guile's Scheme interface in particular? - - A: + - 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 + 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? @@ -100,7 +100,7 @@ part of a "Lisp machine for the 21st century". 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 + 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 @@ -110,7 +110,7 @@ part of a "Lisp machine for the 21st century". 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? +- 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 @@ -118,15 +118,75 @@ part of a "Lisp machine for the 21st century". - 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: - - A: - -## Notes - -- [https://guile-emacs.org/](https://guile-emacs.org/) -- Some more motivation: avoid FFI to increase performance and allow - for more optimizations (including type annotations) - +- 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 [[!inline pages="internal(2024/info/guile-after)" raw="yes"]] diff --git a/2024/talks/gypsum.md b/2024/talks/gypsum.md index a76afb02..c566357c 100644 --- a/2024/talks/gypsum.md +++ b/2024/talks/gypsum.md @@ -375,11 +375,13 @@ You may also like another talk by this speaker: - 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: \<janneke\> If Emacs Lisp support for Guile was documented +- 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 @@ -398,10 +400,10 @@ You may also like another talk by this speaker: 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: \<xlarsx\`\> 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: \<gringo\> 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 +- 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 @@ -409,20 +411,52 @@ You may also like another talk by this speaker: - - A: Cool name, but did not check if it is already used. Feel free to discuss by email. -- Q: \<gringo\> 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? +- 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 -- \<robin\> oo neat, i didn\'t know about that first bit of history -- \<janneke\> 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 -- \<tusharhero\> Q: Not really a question, but how about Schemacs as a - name? -- \<janneke\> robin: yes, guile-elisp not being portable might be a - showstopper -- for ramin - +- 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 [[!inline pages="internal(2024/info/gypsum-after)" raw="yes"]] diff --git a/2024/talks/hyperbole.md b/2024/talks/hyperbole.md index 6662d2f2..33663038 100644 --- a/2024/talks/hyperbole.md +++ b/2024/talks/hyperbole.md @@ -49,7 +49,7 @@ See also: you theow a region or buffer to a window or replace its contents with another buffer. This is documented in the Hyperbole manual. - - \<ElfOfPi\> There's also C-@ (mark-org-subtree) which + - 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. @@ -67,35 +67,38 @@ See also: 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 -- \<alzai\> Hyperbole looks like an incredible tool but I can't quite +- 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 -- \<ElephantErgo\> "take away your freedom" 🤔 "ta bort din +- "take away your freedom" 🤔 "ta bort din frihet" 🙁 -- \<sleep_walker\> nice talk! Hyperbole is in my TODO list for some +- nice talk! Hyperbole is in my TODO list for some time already, I should bring it to the top\... -- \<maxxcan\> I think that Hyperbole is a little diamon inside Emacas -- \<NullNix\> ditto! it seems a wonderful grab-bag of random nifty +- I think that Hyperbole is a little diamon inside Emacas +- ditto! it seems a wonderful grab-bag of random nifty stuff :) -- \<gs-101\> alzai: I always viewed it as this mysterious tool. Some +- 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. - - \<edrx\> gs-101: for me one of the problems with hyperbole is + - 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\] -- \<jrootabega\> Maybe it could be jokingly summarized as +- Maybe it could be jokingly summarized as do-everything-at-point -- \<sleep_walker\> well, I got lost around several types of buttons - +- well, I got lost around several types of buttons - cheatsheet would be huge help for jumping in -- \[re transient discussion\]: \<gs-101\> Very excited for the Org +- \[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 @@ -104,9 +107,10 @@ See also: - 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. -- \<robin\> one of those legendary packages i've just never quite +- 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"]] diff --git a/2024/talks/hyperdrive.md b/2024/talks/hyperdrive.md index eb233094..d016c6ad 100644 --- a/2024/talks/hyperdrive.md +++ b/2024/talks/hyperdrive.md @@ -62,7 +62,7 @@ See also: [EmacsConf - 2023 - talks - hyperdrive.el: Peer-to-peer filesystem in - [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 + 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 @@ -77,14 +77,14 @@ See also: [EmacsConf - 2023 - talks - hyperdrive.el: Peer-to-peer filesystem in 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\". + 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 +- 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 + 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. @@ -110,10 +110,27 @@ See also: [EmacsConf - 2023 - talks - hyperdrive.el: Peer-to-peer filesystem in ## Notes -- The \"sources, blockers, blocked\" idea was influenced by: - - Alex Cobleigh : - [https://cblgh.org/trustnet](https://cblgh.org/trustnet) - +- 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! [[!inline pages="internal(2024/info/hyperdrive-after)" raw="yes"]] diff --git a/2024/talks/julia.md b/2024/talks/julia.md index 4b16f531..ba610a75 100644 --- a/2024/talks/julia.md +++ b/2024/talks/julia.md @@ -74,40 +74,53 @@ communities drive innovation. ## Notes -- \<martinl\> Great, now I wanna learn Julia\... :-) - - \<vidianos\> Highly recommend it. Especially if you do any sort - of scientific computing. It's an amazing language -- \<sctb\> Lots of things to like. Perhaps the most Dylan-like modern - language? -- \<gs-101\> Got me interested in Julia, great talk -- \<akirakyle\> Sooooo emacs written in julia? -- \<xlarsx\`\> Amazing, thank you -- \<mretka\> M-x clap -- \<vidianos\> Great talk \[13:10\] -- \<mretka\> Thank you for the talk! \\o/ -- \<martinl\> Thank you! -- \<akirakyle\> 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. -- \<gs-101\> Got me interested in Julia, great talk -- \<akirakyle\> Sooooo emacs written in julia? -- \<martinl\> akirakyle: First Guile Scheme (re: Robin's talk, next), - then Julia! ;-) -- \<akirakyle\> Yes ;) -- \<jkm\> So julia is like using CLOS everywhere? -- \<akirakyle\> Sort of, but with the llvm runnig full optimized - native code generation for every argument type a function is called - with -- \<akirakyle\> also julia \--lisp is bulit in! -- \<akirakyle\> emacs-jupyter works with julia quite well btw +- 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"]] diff --git a/2024/talks/learning.md b/2024/talks/learning.md index 7c72ca6a..82672de4 100644 --- a/2024/talks/learning.md +++ b/2024/talks/learning.md @@ -128,12 +128,12 @@ See also: ## Notes -- \<silverhikari\> i want to learn new skills because it is annoying +- i want to learn new skills because it is annoying not being able to do something -- \<gs-101\> I like learning because it feels good for me, like it +- 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. -- \<sctb\> By analogy, the email inbox is for receiving mail, not for +- 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/) @@ -149,16 +149,16 @@ See also: - 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. -- \<kswiss\> \@chum-cha: perhaps "abandoned" means in PARA not +- 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. - - \<chum-cha\> kswiss: sctb: Thanks! That makes sense and I think + - 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. - - \<kswiss\> \@chum-cha, personally i would also pull out from + - 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 @@ -175,8 +175,7 @@ See also: - 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. -- people can join BBB: - [https://media.emacsconf.org/2024/current/bbb-learning.html](https://media.emacsconf.org/2024/current/bbb-learning.html) +- Thanks, that was a great talk - I'll be watching it again :) [[!inline pages="internal(2024/info/learning-after)" raw="yes"]] diff --git a/2024/talks/links.md b/2024/talks/links.md index 67b9d640..6cf24d63 100644 --- a/2024/talks/links.md +++ b/2024/talks/links.md @@ -124,7 +124,8 @@ Another talk by this speaker: - 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"]] diff --git a/2024/talks/literate.md b/2024/talks/literate.md index 373afbe3..1f183a1a 100644 --- a/2024/talks/literate.md +++ b/2024/talks/literate.md @@ -52,8 +52,7 @@ other features. Thought I would share these. 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: - + - 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)? @@ -96,7 +95,7 @@ other features. Thought I would share these. Physically Based Rendering: From Theory to Implementation and C Interfaces and Implementations. The first is C++ and the second C. Ty. - - A: \<gs-101\> Personally, when working with Org files, I have a + - \<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. @@ -134,7 +133,7 @@ other features. Thought I would share these. - 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. + - 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 @@ -176,31 +175,25 @@ other features. Thought I would share these. [https://www.howardabrams.com/git/howard/jops](https://www.howardabrams.com/git/howard/jops) \... temporary location? - snippet on \<ssl: Cool one. - - \<gs-101\> 0_0 I need to do this. -- Your way of delivering is inspiring. -- \<gs-101\> This (evaluating babel blocks) is also possible with the + - 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". -- \<NullNix\> god I wish I was that good a presenter -- \<ericsfraga\> Really good talk. I need to find out how to extend +- Really good talk. I need to find out how to extend xref to handle org files! - - \<lounge-081\> ericsfraga: same here, I asked a long-winded + - 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 -- \<aschmidt\> excellent presentation indeed -- \<lounge-965\> Thank you for the marvelous talk!! -- \<lounge-350\> A legend! \... loved the Ironsworn presentation from - previous year. -- \<ElfOfPi\> Denote has some pretty good use of dynamic blocks I +- 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) -- \<ellis\> there is an RFC in for 'cargo-script' which allows +- there is an RFC in for 'cargo-script' which allows building single-file crates - i think that will be quite useful in ob-rust - - \<gs-101\> ellis: There's a ob-rust already and it uses + - 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) @@ -208,6 +201,32 @@ other features. Thought I would share these. 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! +- 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. + +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 :) + [[!inline pages="internal(2024/info/literate-after)" raw="yes"]] [[!inline pages="internal(2024/info/literate-nav)" raw="yes"]] diff --git a/2024/talks/mcclim.md b/2024/talks/mcclim.md index 0c0dd644..0f64f1bd 100644 --- a/2024/talks/mcclim.md +++ b/2024/talks/mcclim.md @@ -143,15 +143,50 @@ 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: -- 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: 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"]] diff --git a/2024/talks/open-mic.md b/2024/talks/open-mic.md index 1e3e455f..577ee0f5 100644 --- a/2024/talks/open-mic.md +++ b/2024/talks/open-mic.md @@ -16,73 +16,70 @@ - 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:\ -- \<maxxcan\`\> do you like to much hydra? Leo? -- \<gg\> I love which-key. - - \<oylenshpeegul\> Yeah, I think adding which-key to Emacs 30 was +- do you like to much hydra? Leo? +- I love which-key. + - Yeah, I think adding which-key to Emacs 30 was a great idea! -- \<srandby\> I wrote a transient to make it easy to access various +- I wrote a transient to make it easy to access various Emacs help resources, and I don't know Elisp very well. -- \<lounge-502\> Its amazing how in emacs people don't need to +- Its amazing how in emacs people don't need to frequently migrate to the newer packages all the time. -- \<inkpotmonkey\> at one point i experimented a bit with using +- 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 - - \<lounge-502\> inkpotmonkey: ffmpeg comes to mind -- \<maxxcan\`\> I use transient for my job, and that save my life. -- \<plattfot\> I wrote a little package that combines transient and + - 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. -- \<zaeph\> eldoc-mode.\ -- \<ElephantErgo\> I also kinda just had a thought for discussion. Browser related thoughts and speculation +- 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) -- \<ElephantErgo\> - [https://github.com/browsh-org/browsh](https://github.com/browsh-org/browsh) +- [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 -- \<karthik\> re: qutebrowser \-- +- re: qutebrowser \-- [https://github.com/lrustand/qutebrowser.el](https://github.com/lrustand/qutebrowser.el) -- \<ElephantErgo\> karthik: WOW! I am going to have to start using +- karthik: WOW! I am going to have to start using this immediately! Thank you! -- \<ElephantErgo\> I've been really meaning to try out Meow as a +- I've been really meaning to try out Meow as a long-time Evil user 🙂 - -\<fristed\> I've been experimenting with using emacs as a GUI toolkit -for common lisp applications\ - -- \- \<robin\> fristed, ooo, does your experiment have a home/name? + - 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 -- \<edrx\> fristed: have you shared links about this? "emacs as a GUI +- have you shared links about this? "emacs as a GUI toolkit for common lisp applications" -- \<edrx\> I would like to take a look - - \<robin\> edrx, did you see my guile talk? you might be +- I would like to take a look + - did you see my guile talk? you might be interested in the long-term future section :) -- \<fristed\> edrx: Currently I do not have any public items yet, but +- Currently I do not have any public items yet, but now I know that there is interest i'll look into it -- \<fristed\> If i have something working next year i'll consider +- 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? -- \- \<wasamasa\> I've been experimenting with using semgrep to +- I've been experimenting with using semgrep to review elisp for security issues -- \<ElephantErgo\> It was really cool being able to jump in! 😊 -- \<edrx\> hey hey, I've been experimenting with ways to make packages +- 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)\ -- \<edrx\> to the person who was lounge-928 a few minutes ago: I found +- 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) -- \<cow_2001\> everyone should know of greader-mode. it is amazing. i +- everyone should know of greader-mode. it is amazing. i use it all the time\ diff --git a/2024/talks/org-update.md b/2024/talks/org-update.md index 6fba6fd6..058807dc 100644 --- a/2024/talks/org-update.md +++ b/2024/talks/org-update.md @@ -17,10 +17,10 @@ Ihor Radchenko ## Questions and answers -- Q:\<\_viz\> Q: Is the track-changes item about the org-element +- 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 + - <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) @@ -48,7 +48,7 @@ Ihor Radchenko - [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 + - <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 @@ -56,7 +56,7 @@ Ihor Radchenko supported, but again, it is not clear what such a support would constitute. - - \"Would that be interesting to the community?\" Go and ask ;) + - "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. @@ -87,7 +87,7 @@ Ihor Radchenko - [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 + - 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 @@ -100,22 +100,22 @@ Ihor Radchenko needs to be done not - just by this Emacs Org-mode community, but by bringing together other - - \"consumers\" of .org files, from ecosystems outside + - "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\". + - 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 + - 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 + - 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 @@ -130,64 +130,52 @@ Ihor Radchenko ## Notes - \<meain\> Nice to see mobile apps actively being considered when -talking about\ - org :D \[10:29\]\ - -- \<johnhamelink\> 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 -- \<tarsius\> fun fact: Transient did take some inspiration from - Org\'s menus - - \<bzg\_\> tarsius: Oh, I did not know this! - - \<bzg\_\> From which menus exactly, those implemented by Nicolas - for the - - exporter? - - \<tarsius\> Not any specific menus but the \"dim unreachable - commands, when the - - user typed an incomplete key sequence\" +- 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. -- \<polezaivsani\> love to hear how folks in emacs real approach +- love to hear how folks in emacs real approach project development as social endeavors to a significant degree -- \<neil\> Another mobile app that understands org-markdown is +- Another mobile app that understands org-markdown is ZettelNotes ([https://znotes.thedoc.eu.org/](https://znotes.thedoc.eu.org/)) - - \<Ihor\> It is not the only one missed. For a reason. I did not + - It is not the only one missed. For a reason. I did not find source code. - - \<neil\> Ah ok, that is fair. -- \<jaafar\>There is a Ruby parser too, in the Guthub renderer + - 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) -- \<johnhamelink\> 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 +- 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\] -- \<kswiss\> another great (and absolute core to me) app with org-mode +- 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/) -- \<johnhamelink\> Really encouraging stuff, thanks :D \[11:02\] -- \<vidianos, aquamo4k, stshine\> Thank you yantar92\` -- \<martinl\> Thank you for this wonderful talk! -- \<vidianos\> We appreciate all the work being done -- \<mjhoy\> really enjoying this talk as a long time user who hasn\'t - ever really -- thought about how org mode gets developed (much less + [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 +- It's great to see Carsten, Bastien and Ihor together. I run my life with orgmode, so we owe you guys a lot :) -- \<sachac\> I think a huge part of Org Mode is workflow, and that\'s - both highly individual and highly social - we learn about what\'s +- 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. [[!inline pages="internal(2024/info/org-update-after)" raw="yes"]] diff --git a/2024/talks/p-search.md b/2024/talks/p-search.md index 4d2b3fd1..aeb873aa 100644 --- a/2024/talks/p-search.md +++ b/2024/talks/p-search.md @@ -220,15 +220,17 @@ Code: <https://github.com/zkry/p-search> - I like the dedicated-buffer interface (I'm assuming using magit-section and transient). -- \<meain\> Very interesting ideas. I was very happy when I was able - to do simple -- filters with orderless, but this is great \[11:46\] -- \<NullNix\> I dunno about you, but I want to start using p-search - yesterday. -- (possibly integrating lsp-based tokens - somehow\...) \[11:44\] -- \<codeasone\> 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 \[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.) [[!inline pages="internal(2024/info/p-search-after)" raw="yes"]] diff --git a/2024/talks/papers.md b/2024/talks/papers.md index 1a982dca..bbff053d 100644 --- a/2024/talks/papers.md +++ b/2024/talks/papers.md @@ -51,68 +51,88 @@ See also: ## Questions and answers -- 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: -- 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: -- 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 ? -- Q: How much of this is tied to org-roam specifically? - - Not that much -- Q: how do you convince your coauthors to use emacs? +- 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 -- 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 -- Maybe down the line we can make ties with LLMs to translate styles - better. - +- 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"]] diff --git a/2024/talks/pgmacs.md b/2024/talks/pgmacs.md index bb0171d7..4c8f506f 100644 --- a/2024/talks/pgmacs.md +++ b/2024/talks/pgmacs.md @@ -55,13 +55,13 @@ in his spare time. connecting to the database server over the network. You can set up ssh tunnels, but that would be done separately from Tramp. Thanks :) - - \<NullNix\> you can tunnel arbitrary data over ssh - - \<NullNix\> ssh subsystems are the thing to look at, I + - you can tunnel arbitrary data over ssh + - ssh subsystems are the thing to look at, I think\... I might look at it - - \<NullNix\> (sftp works that way: basically you can put + - (sftp works that way: basically you can put arbitrary progams at the remote end\... like, oh, say, pgsql. transparently to the ssher.) - - \<jreicher\> Possibly PGmacs could setup the tunnel itself, + - 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 @@ -94,64 +94,65 @@ in his spare time. ## 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. -- \<sctb\> emarsden: Super slick Emacs/PG hacking and presentation! - Eat your heart out, MS Access -- \<NullNix\> another package I never knew I needed -- \<alzai\> 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. -- \<NullNix\> I just wish it had existed when I was doing massive db - work in the 90s/2000s -- \<gs-101\> Just installed it, to prevent me from forgetting about - it. - -\ - +- 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) [[!inline pages="internal(2024/info/pgmacs-after)" raw="yes"]] diff --git a/2024/talks/project.md b/2024/talks/project.md index 826294a9..6af0b8e4 100644 --- a/2024/talks/project.md +++ b/2024/talks/project.md @@ -61,7 +61,7 @@ He will discuss the features of the writing log and the joys of editing it in Or ## Questions and answers - Q: what does 0573 means in your init. file name? - - A: Index number used to \"name\"/ describe a project. My + - 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 @@ -74,8 +74,8 @@ He will discuss the features of the writing log and the joys of editing it in Or 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 +- 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. @@ -85,12 +85,12 @@ He will discuss the features of the writing log and the joys of editing it in Or [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 + - 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 + 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 @@ -132,7 +132,7 @@ He will discuss the features of the writing log and the joys of editing it in Or - 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 + "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 @@ -147,14 +147,14 @@ He will discuss the features of the writing log and the joys of editing it in Or 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: \<gringo\> 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? +- Q: <gringo\> 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: \<gs-101\> I see that you use checkboxes for tasks. Did you know +- Q: <gs-101\> 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 @@ -170,7 +170,7 @@ He will discuss the features of the writing log and the joys of editing it in Or 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) + 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 @@ -186,7 +186,7 @@ He will discuss the features of the writing log and the joys of editing it in Or history of decisions in the daily log is invaluable for responding to probing questions by reviewers about why we decided to do certain procedures. -- \<\_viz\> Q: Sorry, not really related to the talk\'s topic but can +- <\_viz\> 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 @@ -208,7 +208,7 @@ He will discuss the features of the writing log and the joys of editing it in Or [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/). -- \<jsiegel62\> Q: Have you tweaked your Emacs configuration at all +- <jsiegel62\> Q: Have you tweaked your Emacs configuration at all \-- with cus keybindings, etc \-- to support the process you demonstrated? Thank for the good question because my talk was focused on a template org document. I use org-ref heavily. I use it @@ -216,7 +216,7 @@ He will discuss the features of the writing log and the joys of editing it in Or 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. -- \<PlasmaStrike\> I like to Seperate my ZettelKasten and GTD with +- <PlasmaStrike\> I like to Seperate 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 @@ -226,33 +226,36 @@ He will discuss the features of the writing log and the joys of editing it in Or - Hi, This is Blaine. I am checkin in! - Hey :) -- Hello from Madagascar :) Hello from Brazil (there\'s an old song +- 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 Hello world and outer space!!!! -- It\'s so awesome seeing these talks that are not strictly software +- It's so awesome seeing these talks that are not strictly software development relatedThank you! -- It\'s amazing to see how much people do with emacs Thank you! -- \<Neil\> \[MooersLab/writingLogTemplateInOrg: Template for +- 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)) -- \<mickeynp\> it\'s really impressive. it also makes me realise that +- it's really impressive. it also makes me realise that people are a lot more organised than could ever be. I have been studying time management for decades; it is still a stuggle for me. -- \<gg\> That chart looks complicated. It can get pretty complicated +- 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) Right, is just descriptive. Yes, that concept map it a bit overwhelming. I plann to - make a slimed down version. Thank you for the feedback. -- \<jsiegel62\> 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\...It is a feature of our insane 24-7 - culture. -- \<gringo\> The man is trying to treat cancer, I expected nothing + 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...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 Thank you! Yes, our work has added years of additional life to many cancer patients. -- \<jsiegel62\> There is a package \-- I think it is \'org-tracktable +- 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) @@ -270,15 +273,18 @@ He will discuss the features of the writing log and the joys of editing it in Or [https://github.com/MooersLab/writing-time-spent-heatmap](https://github.com/MooersLab/writing-time-spent-heatmap). I have similar aliases for makng heatmps for grant writing, teaching, and service, but my daily focus is on article writing. -- \<\_viz\> oohhh using a drawer for stashing these details away is a +- oohhh using a drawer for stashing these details away is a nice idea! Thank you! Org-mode has so many niffty feature like drawers. -- \<gg\> I\'m impressed by how systematic he is about everything.Thank - you! -- \<gringo\> I\'m thankful for people like the presenter that dedicate +- I'm impressed by how systematic he is about everything. +- 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. \[10:09\] Thank you! - + diseases that people suffer. 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 [[!inline pages="internal(2024/info/project-after)" raw="yes"]] diff --git a/2024/talks/rust.md b/2024/talks/rust.md index 0c1c676f..ebbe4fc1 100644 --- a/2024/talks/rust.md +++ b/2024/talks/rust.md @@ -34,29 +34,29 @@ Hardware Engineer with interest in low-level programming and the hardware-softwa 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) + 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 +- 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: \<janneke\> troyhinckley: so you\'re re-implementing elisp in +- 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:\<lounge-681\> can remacs be reused? +- 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: \<apiraino\> hello, great talk, fascinating topic! I am a +- 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 + 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 @@ -65,15 +65,15 @@ Hardware Engineer with interest in low-level programming and the hardware-softwa - 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: \<apiraino\> thanks! Dont forget to fill out the survey :) + - 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: \<ramin\> (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. +- 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. @@ -81,15 +81,15 @@ Hardware Engineer with interest in low-level programming and the hardware-softwa 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: \<janneke\> troyhinckley: elisp is implemented in c, so if - you\'re not implementing elisp in rust, are you using/keeping the c +- 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: \<ramin\> sorry if you already discussed this, but will your Rust +- 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 @@ -98,7 +98,7 @@ Hardware Engineer with interest in low-level programming and the hardware-softwa - 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? + "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? @@ -111,36 +111,46 @@ Hardware Engineer with interest in low-level programming and the hardware-softwa 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: \<ramin\> That was me who was discussing with you about +- 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 + cool, because then you would be able to run the "Gypsum" editor on top of your Emacs engine. - - A: \<troyhinckley\> I still think that would be really cool to - get working! we will have to collaberate on that more. - + - 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 -- \<Psionic\`\> Getting good vibes from this Rust work -- \<NullNix\> (you can do the offscreen-cursor thing in current emacs - with enough -- effort. see scroll-in-place.el.) -- \<Psionic\`\> Oooooh flow images. My last expectation was Rust - making Dslide -- image animations slick -- \<sctb\> troyhinckley: Very cool talk! -- \<\[\> I recommend +- 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) -- \<NullNix\> one big problem with using gtk \-- there is a + (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 [[!inline pages="internal(2024/info/rust-after)" raw="yes"]] diff --git a/2024/talks/sharing.md b/2024/talks/sharing.md index a8709059..f07b2c96 100644 --- a/2024/talks/sharing.md +++ b/2024/talks/sharing.md @@ -108,7 +108,7 @@ journey of sharing Emacs knowledge. - 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? +- 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, @@ -207,136 +207,135 @@ journey of sharing Emacs knowledge. ## 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 :-( - - \<lounge-548\> jreicher: I agree!! -- \<jreicher\> It's great having a talk like this in the conference. -- \<robin\> i was a little skeptical about this talk due to the title, + - 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 -- \<robin\> i'm used to group video chat, unsurprisingly, but +- 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 -- \<\[\> OBS unfortunately requires an OpenGL version newer than 2.1, + 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 - - \<screwlisp\> Just use ffmpeg with x11grab. It works everywhere + - Just use ffmpeg with x11grab. It works everywhere basically. - - \<sachac\> \[: I sometimes use simplescreenrecorder (love it) - - \<sachac\> I think that worked on my X230 -- \<sachac\> I like using Emacs to edit my audio. + - \[: 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/) - - \<karthik\> sachac: Your whole A/V workflow is pretty crazy. + - sachac: Your whole A/V workflow is pretty crazy. Subed with waveforms in Emacs, WhisperX\... -- \[re: DaVinci Resolve\] \<pkal\> kdenlive or pitivi is a nice free +- \[re: DaVinci Resolve\] kdenlive or pitivi is a nice free as in freedom alternatives that are worth mentioning - - \<MetroWind\> I've used Blender to do video editing. It worked - - \<robin\> i used kdenlive, the UI is very straightforward + - 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 -- \<robin\> i have no interest in making revenue from videos but this +- 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) -- \<lounge-081\> karthik\`: speaking of videos, yours are truly +- karthik\`: speaking of videos, yours are truly fantastic - the only issue is that there isn't more of them :) -- \<MetroWind\> Also having a good mic does help with voice quality. I +- 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 -- Just a thanks to the organizers: I only EVER use etherpad during - EmacsConf and then I forget what an awesome tool it is. Gotta - reconnect with those abandoned memory cells\... -- \<corwin\> 👏🏻👏🏻👏🏻 -- \<jkm\> 👏👏👏 -- \* gs-101 claps -- \<lounge-323\> 👏 -- \* inkpotmonkey 👏 -- \* karthik\` 👏 -- \<Ez3\> 👏 -- \<screwlisp\> 👏 -- \<plattfot\> 👏 -- \<robin\> 👏 \[15:43\] -- \<ElephantErgo\> 👏 -- \<johnhamelink\> 👏👏👏👏 -- \<screwlisp\> Gopar, come on the lispy gopher climate sometime -- Apsopos "negative comments": Lotsa bot commenters on YouTube. +- 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. -- \<plattfot\> One editing tip regarding pauses, you should be able to +- 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. - - \<@sachac\> plattfot: that's what I do too! I also use "oops" + - that's what I do too! I also use "oops" to remind me to go back and edit things - - \<@sachac\> plattfot: I have some Elisp that scans backward for + - I have some Elisp that scans backward for the previous instance of the words that I say after the oops - - \<karthik\`\> sachac: "elisp to scan backward for oops": this + - "elisp to scan backward for oops": this is what I meant by your A/V setup being crazy - - \<@sachac\> karthik\`: well it only makes sense\... what I + - well it only makes sense\... what I really want is something that can string-distance approximate matches - - \<@sachac\> karthik\`: like, + - like, [https://github.com/stevenwaterman/narration.studio](https://github.com/stevenwaterman/narration.studio) is a cool approach too - - \<@sachac\> karthik\`: that shows this segment and the next + - 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 - - \<lounge-081\> sachac: Indeed, your personal infrastructure for + - Indeed, your personal infrastructure for these things is a sight to behold, hehe - - \<karthik\`\> sachac: I'm watching your quest to treat video as + - I'm watching your quest to treat video as searchable text closely! - - \<karthik\`\> In general you're trying to do with audio/video + - 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. - - \<lounge-081\> karthik\`: that's a great framework, the + - that's a great framework, the paradigm and capabilities of Emacs generalized to modalities beyond text (A/V) - - \<plattfot\> sachac: that's impressive, never got that far in + - that's impressive, never got that far in my video editing quest 😅 - - \<karthik\`\> sachac: From reading your blog posts it looks like + - 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. -- \<pkal\> this presentation made me think about streaming +- this presentation made me think about streaming package-code reviews for ELPA on peertube\... - - \<@sachac\> pkal: yes! -- \<lh\> karthik\`: +1 to the request for more unstructured videos + - 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! - - \<karthik\`\> lh: Interesting. Sounds like the kind of thing + - Interesting. Sounds like the kind of thing that works better as a livestream - - \<lounge-081\> karthik\`: re \@lh's comment, myself I'm quite + - myself I'm quite curious as to how you became so intimately knowledgeable and proficient with sometime arcane internals so fast -- \<robin\> sachac, i was honestly pretty amazed by the subtitling - process for emacsconf - - \<robin\> my subtitles were added at most a few hours before - streaming :O - - \<robin\> i was fully expecting to have to stream the video over - bbb w/o subtitles or something along those lines - - \<@sachac\> robin: we're getting better and better at it. - =) In previous years, subtitling last-minute presentations - was done by taking advantage of a volunteer's brother's - fancy-schmancy gaming computer, but now that we use whisperx - and I've upgraded to a Lenovo P52 (from an older X230T), I - can run the whisperx myself for last-minute submissions -- \<corwin\> I'd be interesting in helping organize or just rabble +- 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"]] diff --git a/2024/talks/shell.md b/2024/talks/shell.md index 8642efe1..d848418d 100644 --- a/2024/talks/shell.md +++ b/2024/talks/shell.md @@ -49,7 +49,7 @@ See also these other talks by the same speaker: - 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 ehsell. But on windows, for some reason, git provides a bash shell. https://gitforwindows.org/ + - 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 diff --git a/2024/talks/students.md b/2024/talks/students.md index 3dd872b1..547706df 100644 --- a/2024/talks/students.md +++ b/2024/talks/students.md @@ -124,49 +124,57 @@ Emacs since 2022, starting with DOOM Emacs. ## Notes -- Evangelism. We need more of that. Like the quote "Investing in your - future". Going to spread this. -- \<lounge-081\> (This high-schooler is definitely going places!) -- \* pizzapal 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/) -- \<robin\> i started living in emacs around age 13, this talk is - definitely bringing back a lot of memories \^\^ - - \<kswiss\> robin: wow! do you remember how you heard the first - time about emacs back then? - - \<robin\> kswiss, 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 -- \<johnhamelink\> 👏👏👏 well done! -- \<ElephantErgo\> Great talk! Thank you! I'm really going to have to - try out some of those packages 😊 -- \<oylenshpeegul, karthik\> 👏 -- \<jkm\> 👏👏 -- \<robin\> 👏👏👏 -- \<FlowyCoder\> 👏👏👏👏 -- \<kswiss\> 👏 (i wish i would have discovered emacs also in my - school time) -- \<ElfOfPi\> 👏👏👏👏👏 -- \<lounge-548\> 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. -- Yes, 30-40 years back \*sigh\* -- \<gs-101\> I hope I get praised this much by the professors if I'm - able to join university 😄 -- \<robin\> 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 - - \<robin\> 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 - +- 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 Eduard's talk on the dev track yesterday about mathematics students in Brazil + +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"]] diff --git a/2024/talks/transducers.md b/2024/talks/transducers.md index 9688506c..816a34d5 100644 --- a/2024/talks/transducers.md +++ b/2024/talks/transducers.md @@ -43,128 +43,154 @@ Colin is originally from Canada and lives in Japan. ## 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 +- 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: - -- 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 (taillcall 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: - -- 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: - -- Time for the closing remarks, but people can stay on the pad or join - the BBB and keep going + - 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 -- \<lounge-081\> What made transducers click for me way back when was +- 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. - - \<robin\> lounge-081, ah, like\...\*thinks very hard\*\...stream + - 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 - - \<lounge-081\> "Rich Hickey has a point" need never be said :) -- \<Ez3\> Sorry but map is collect and filter is select for me :) -- \<lounge-081\> \@robin: there are many ways to get to them (some may + - "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 @@ -173,35 +199,79 @@ is here: 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 -- \<NullNix\> ellis: I wrote about half of one in binutils libctf +- 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). - - \<NullNix\> (inspired by generators, not transducers, since I + - (inspired by generators, not transducers, since I didn't know about them) - - \<NullNix\> still \*far\* less ugly than "call a function with + - still \*far\* less ugly than "call a function with every item" \*\_iter() stuff -- \<lounge-081\> Thanks for the answers fosskers, I'm quite hopeful +- 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 -- \<ElephantErgo\> I'm totally sold. I'm working on a CL codebase +- I'm totally sold. I'm working on a CL codebase right now, and these are going in there immediately -- \<robin\> (also CL does not require TCO but good compilers support +- (also CL does not require TCO but good compilers support it to the extent that extensive use of FP is practical) -- \<ellis\> it's a tricky protocol to get perfect the first time for +- 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 :) -- \<robin\> CLTL2 docs on SERIES for those who are curious +- 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) - - \<robin\> (lisp.se mirror in case the ai repository disappears + - (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) ) -- \<robin\> definitely watching this one more carefully. if it's +- definitely watching this one more carefully. if it's CLOS-oriented i'm going to like it -- \<robin\> note that full TCO is strictly more expressive than +- 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 [[!inline pages="internal(2024/info/transducers-after)" raw="yes"]] diff --git a/2024/talks/writing.md b/2024/talks/writing.md index 3958e2ec..fbb30bfd 100644 --- a/2024/talks/writing.md +++ b/2024/talks/writing.md @@ -30,22 +30,24 @@ associated manual for authors with no Emacs experience. Technical issues connecting to the BigBlueButton room, so no live Q&A -- Q: For writers who procrastinate, it\'s very tempting to fall into +- 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 + 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 + - 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 + 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 + 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 @@ -69,12 +71,12 @@ Technical issues connecting to the BigBlueButton room, so no live Q&A 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 - reporsitory, not a thinking tool. -- Q: - - A: -- Q: - - A: + repository, not a thinking tool. + +## Notes + - Thanks for the great questions. Apologies for the technical glitch. +- Very interesting talk [[!inline pages="internal(2024/info/writing-after)" raw="yes"]] |