diff options
Diffstat (limited to '')
-rw-r--r-- | 2023/talks/doc.md | 44 | ||||
-rw-r--r-- | 2023/talks/emacsconf.md | 9 | ||||
-rw-r--r-- | 2023/talks/emacsen.md | 36 | ||||
-rw-r--r-- | 2023/talks/eval.md | 18 | ||||
-rw-r--r-- | 2023/talks/flat.md | 32 | ||||
-rw-r--r-- | 2023/talks/gc.md | 95 | ||||
-rw-r--r-- | 2023/talks/hyperdrive.md | 107 | ||||
-rw-r--r-- | 2023/talks/llm.md | 77 | ||||
-rw-r--r-- | 2023/talks/matplotllm.md | 24 | ||||
-rw-r--r-- | 2023/talks/overlay.md | 74 | ||||
-rw-r--r-- | 2023/talks/repl.md | 26 | ||||
-rw-r--r-- | 2023/talks/scheme.md | 36 | ||||
-rw-r--r-- | 2023/talks/sun-close.md | 11 | ||||
-rw-r--r-- | 2023/talks/test.md | 84 | ||||
-rw-r--r-- | 2023/talks/world.md | 40 |
15 files changed, 689 insertions, 24 deletions
diff --git a/2023/talks/doc.md b/2023/talks/doc.md index 0f7edf2c..1a2ce701 100644 --- a/2023/talks/doc.md +++ b/2023/talks/doc.md @@ -19,6 +19,50 @@ We'll also show how these literate documents can be exported to LaTeX and ultima Also shared at SeaGL 2023 +# Discussion + +## Questions and answers + +- Q: Did you develop a variant of your document for Centos? + - A: +- Q: Great presentation. The preparation is outstanding. For someone + like me that never touched the org\--mode side of emacs, what do you + feel its the more complex part to tackle? You made it seem simple + but the complexity there.. woof + - A: +- Q: How do you normally debug, e.g. view the logs or see failed + statuses, when the commands in the src blocks fail? Especially if + they output lots and lots of logs, and you need to see the full + history of the build. + - A: +- Q: Do you find yourself doing plain-text exports? I saw you doing + that as an example for a bit. How do you like to format them so they + come out looking nice? + - A: +- Q: IIUC if you commit that eval line to your config then theoretically you could open an Org file prepared by someone else and it would automatically run the code in a "startup" block that might be malicious, right? + - A: for sure. if you agree to have a block run when you load the document, you could get burned if it changes into something eveil. + +### Notes and discussion + +- Seems like we could use some kind of extension that would hash a source block and allow you to automatically run ones you've marked safe +- Property inheritance I still don't completely understand, heh. +- seeing section on Org MACRO, recall having trouble a while back invoking a MACRO from inside a MACRO; is this a limitation or was I holding it wrong? + - AFAIR, macros do support recursion + - actually my issue was passing TITLE to a MACRO <https://paste.rs/LZunR> + - yeah. "eval" macro arguments in particular are not expanded. you may raise it on the mailing list - looks like something worth considering +- I almost wanted to pre-process my org mode files with a more advanced macro system like m4. But then I came to my senses. + - When discussing Org mode as replacement of TexInfo, it has been rised (Texinfo uses m4) (<https://www.gnu.org/software/texinfo/manual/texinfo/texinfo.html#External-Macro-Processors>) but why do you need m4 when there is Elisp... can just put a code block that will do all the work and eval on export + - A: True. You can write elisp to do all the macro replacement, but you end up editing the buffer when you do that, which has its own disadvantages. + - during export, it is a throwaway buffer + - A: oh, I didn't think of that. Ultimately though org macros have a ways to go before they're truly useful in all context you might want to use them. + - org-export-before-processing-hook runs before macro expansion but around the same time (we really need to document the export process step by step) +- Thanks for the awesome presentation, I can't wait to add some of this stuff to my documents +- I was pretty terrified to see that ChatGPT could write elisp +- Also, loved the presentation — great walk-through of the thought process & how to improve. Was happy when Macros made their way in +- Yeah. tramp would have been cool, but can be dangerous if you start doing sudo apt in the wrong machine +- I can't imagine cross-compiling Emacs for Windows on Linux is easy, but sounds "fun". +- I tried cross-compiling Emacs for Serenity. Emacs uses some intermediate binaries (like make-docfile) during its build process, which causes issues with cross-compiling that I couldn't quite figure out. + [[!inline pages="internal(2023/info/doc-after)" raw="yes"]] [[!inline pages="internal(2023/info/doc-nav)" raw="yes"]] diff --git a/2023/talks/emacsconf.md b/2023/talks/emacsconf.md index 042a9de1..b3add655 100644 --- a/2023/talks/emacsconf.md +++ b/2023/talks/emacsconf.md @@ -121,9 +121,18 @@ TODO check out mcron\ streaming user - Crontab working smoothly; used timers and TRAMP last year + - Whatever you do, don't miss out @sachac's talk (this PM or otherwise). I stumbled on it on @bandali's channel following a link to Howard's, and it's a *masterclass* in wrangling things together to automate workflows in Emacs/Elisp/Org. When people ask about VS Code, this shows we are talking different mindsets and tools altogether. - Yeah! I'm excited for that one. - So am I.. again! And I'll be rewatching it multiple times too, that's how packed in useful insights and tidbits it is. "What do you mean Emacs/Org is a platform and a way of life?" Well, here you go, great examplar :) +- FYI Emacs now has `with-memoization` + - I use a package (skeeto's?) that has defmemoize and such, is that outdated now? + - Yes, Chris's package was developed years ago, and it's been useful to me as well. Stefan Monnier, IIRC, added with-memoization in...28.1, I think. IIRC there are minor differences but now the built-in one should usually be enough. +- The breadth of use cases and applications, and range of Emacs/Elisp/Org capabilities reached for in this talk is fascinating. +- I had some time to pop into the mentor Q&A, and one of the things that bubbled up from the conversation was that there's always something to be curious about, even if you've been using Emacs for decades. It's not just about the stuff that comes built-in or even in packages, it's also all these different workflows. so it's easy to be perpetually curious and to have lots of fun. + - sachac, Agreed! Not only Emacs, either. For the last several years, I've hosted 1:1s with teammates where they can ask any tech question they want; if I don't know the answer, we figure it out together. And those are my favorite ones. :) + +- So nice to see these practical example of automating workflow with Emacs, great presentation sachac [[!inline pages="internal(2023/info/emacsconf-after)" raw="yes"]] diff --git a/2023/talks/emacsen.md b/2023/talks/emacsen.md index 1bbb41ad..d27d6389 100644 --- a/2023/talks/emacsen.md +++ b/2023/talks/emacsen.md @@ -23,6 +23,42 @@ About the speaker: I'm Fermin MF, I'm a Software Engineer from Spain with interest in Emacsy editors. +# Discussion + +## Questions and answers + +- Q: How large is the LEM community? How big is the chance of it + surviving long term? + - A: +- Q:Are there any Lisp machine capabilities you are trying to revive + that GNU Emacs lacks? The typed objects capability in the editor as + an example. + - A: +- Q: What about using Lem for things other than coding common lisp, + dired magit \"notes org mode dentoe org roam\" emms pdf tools shell + mode? + - A: +- Q:What about using this in conjunction with Nyxt the common lisp; + web browser + - A: +- Q: What is the license of LEM? + - A: +- Q: Big question, I realize, but: How far is LEM from being able to + run Elisp libraries, e.g. imagine if Magit could \"just work\" in + LEM? + - A: +- Q: How are LEM buffers designed? Similar to Emacs? TextGrid with + Properties? Or something other? I just tried again to give Emacs + more interactivity & am thinking if there is a possible display + future for the Emacsen. +- Q: What are the things or experances that lem gives you that are + nicer than Emacs? or make you happy using both? + - A: +- Q: (Forgive me if you answered this already.) Do you think Lem will + continue to have a lot of Japanese documentation, or is there a + chance it will move entirely to English? (IMHO having much of the + docs in Japanese will hold back the project.) + - A: [[!inline pages="internal(2023/info/emacsen-after)" raw="yes"]] diff --git a/2023/talks/eval.md b/2023/talks/eval.md index 1accf9d8..3dcce6c2 100644 --- a/2023/talks/eval.md +++ b/2023/talks/eval.md @@ -51,6 +51,24 @@ http://alhassy.com/emacs.d/ [4] Making Modules with Meta-Programmed Meta-Primitives http://alhassy.com/next-700-module-systems/prototype/package-former.html +# Discussion + +## Questions and answers + +- Q: I know that there are many packages for creating graphics with + Javascript, but I don\'t know how to use any of them\... is it + possible to use your package to create graphics in Javascript step + by step from Emacs? + - A: +- Q: Can you summarize what languages your packages support and do you + have a common framework for interfacing to their interpreters? + - A: +- Q: Did you get the job? =) Did the interviewer have any feedback + about your screen-sharing-driven development? + - A: +- Q: Could you compare your package to Language Servers (LSP)? They + seem to have similar functionality to your package. + - A: [[!inline pages="internal(2023/info/eval-after)" raw="yes"]] diff --git a/2023/talks/flat.md b/2023/talks/flat.md index 924acd17..6c2d8037 100644 --- a/2023/talks/flat.md +++ b/2023/talks/flat.md @@ -22,6 +22,38 @@ and soon started using the DJGPP port of emacs on a 386 at home. Currently lecturing at a university in Madrid, he uses emacs for most of his teaching activities. +# Discussion + +## Questions and answers + +- Q: Do you plan to upstream this style into core Emacs? + - A: It\'s in core emacs +- Q: How difficult is it to modify face styles like this internally? + - A: It\'s very simple, just set the :style of the :box face + attribute. +- Q: How much work was involved in implementing this style internally + in Emacs core? + - A: About a 20-line patch. +- Q: Could you please share the code for copy and paste? Thx! + - A: + - (defun flat-style(theme &rest args) + - (custom-set-faces + - \`(mode-line + - ((t (:inherit mode-line + - :box (:line-width ,mode-line-height :style + flat-button)))) t) + - \`(mode-line-inactive + - ((t (:inherit mode-line-inactive + - :box (:line-width ,mode-line-height :style + flat-button)))) t))) + - (advice-add \'load-theme :after \#\'flat-style) +- Q: Do you teach Emacs to any of your university students? + - A: No teaching, but a lot of introdcuing ;-) + +## Notes + +- It looks great, thanks for upstreaming it in GNU Emacs core as well! + [[!inline pages="internal(2023/info/flat-after)" raw="yes"]] diff --git a/2023/talks/gc.md b/2023/talks/gc.md index b0c54532..c7018d2f 100644 --- a/2023/talks/gc.md +++ b/2023/talks/gc.md @@ -31,6 +31,101 @@ The talk is an excuse to sum up emacs-gc-stats data for later discussion of changing Emacs GC defaults: https://yhetil.org/emacs-devel/87v8j6t3i9.fsf@localhost/ +# Discussion + +## Questions and answers + +- Q: Are the GC duration statistics correlated with users? I mean: + does the same user experience GCs of various durations, or do some + users experience GCs of \>0.2 s exclusively while others never + experience GCs of \>0.2 s? + - A: Some users have \<0.1 GC time, while others struggle with + near 1 sec. Really varies. But the number of people + with \>0.2sec is significant enough to make GC a big deal. You + can check it yourself - there are GC stats plots for each + individual user in <https://zenodo.org/records/10213384>. +- Q:Having recently been working on a high-performance smooth + scrolling mode, which needs to respond to scroll events + arriving \>50-60 times per second, a 100ms delay is \*very\* + noticeable in this scenario. For normal buffer interation and + commands 0.1s a reasonable dividing line, but I\'d estimate you can + easily feel a 20ms delay during varoius \"fast\" interactions. Do + you think there is hope to \"spread out\" GC latency to keep it + below say 15ms, even if more frequent (without just repeating many + short GC\'s in a row)? + - A: The only reasonable \"spread out\" is deferring GC to + \_after\_ that scrolling. Like (let ((gc-cons-threshold \<large + enough number to avoid multiple GCs\>)) (do the scrolling)). + This is also what recommended by Emacs devs (AFAIR). +- Q:Opinions about gcmh-mode? + - A: (Not Ihor): Ironically it uses too many timers, creating + garbage of its own. It should use \`timer-set-time\` instead of + creating and throwing away timers after each command (via + \`post-command-hook\`) Interesting! + - A: (from Ihor): the problem is it ends up consuming a ton of + memory, increasing GC time, and that most GCs occur when Emacs + is being used intensively and there is no chance for Emacs to go + on idle and perform the GC. Since GC cons threshold is raised to + \~1G (gcmh-high-cons-threshold) while Emacs is used - you will + face a really bad hang (seconds to tens of seconds regularly). + Ends up not helping much, recommend increasing + gc-cons-percentage=0.2 or so instead. +- Q: + - A: +- Q: Is there some way to free up memory (such as via + \`unload-feature\`) in Emacs? Often I only need a package loaded for + a single task/short period but it persists in memory afterwards. + - A: <https://elpa.gnu.org/packages/memory-usage.html>, and + built-in M-x memory-report - most of the time, it is some + history/cache variables of large buffers that are occupying + memory. The library code itself is rarely affecting GC. (The + other question is when libraries add timers/heavy mode-line + constructs/post-command-hooks/etc - that\'s indeed a problem, + but solved by disabling or not using a package; no need to + unload) +- Q: Very nice presentation! I just experimented with the threshold + and lowered my gc-elapsed from 1.1 to 0.06 seconds (during startup). + Interestingly, going to 10MB increased the time, 4MB was the + sweet-spot for my system. What is the recommended way to lower the + value back to the default value after startup is complete? + - A: after-init-hook +- Q:what were you using to flip through the PNGs? (thanks for the + answer. look-mode on melpa does that too ;) + - A: []{.underline} + [[https://feh.finalrewind.org/]{.underline}](https://feh.finalrewind.org/) +- Q: What was the final point you were making regarding Emacs 30? You + got cut off\... + - A: M-x malloc-trim +- Q: With 16-32G RAMs a minimal OS swapping, how about systematically doing this temporary deferral @yantar92 suggested and leave it down for a longer GC at night and whatnot? Or would cons/allocation also degrade too noticeably? + - Not the speaker: That would cause Emacs to use a lot more total memory + - Indeed. Essentially the question is at what point all my daily mostly-textual Emacs usage doesn't come close to using all the available memory on a 32G sys? (but my mind went more to being concerned about new cons/alloca and fragmentation for the intra-day use) I'll have to look into it more before being cogent. One more onto the todo list then :) + - A: for increasing thresholds up to RAM limits, do remember that individual GC time will increase - with 32Gb RAM you will likely make individual GC prohibitedly slow sooner than later. I'd say that it only makes sense to increase the thresholds when you have multiple agglomerated GCs. Going beyond this is of little use. (I am thinking about adding some kind of summary statistics command to emacs-gc-stats, so that one can look into GC duration, frequency, init time, and agglomeration and then adjust the settings according to the results) + +## Notes + +- <https://elpa.gnu.org/packages/emacs-gc-stats.html> +- Data, presentation, and analysis: + <https://dx.doi.org/10.5281/zenodo.10213384> +- This presentation is a direct continuation of emacs-devel thread: +- <https://yhetil.org/emacs-devel/20230310110747.4hytasakomvdyf7i@Ergus/> + - At some point, Eli asked to collect GC statistics - + <https://yhetil.org/emacs-devel/83y1n2n11e.fsf@gnu.org/> + - <https://elpa.gnu.org/packages/emacs-gc-stats.html> and my talk + summarizing the results are the answer to that request. + - Now, we can continue the discussion on emacs-devel with real + data at hand :) + - I hope to push for a temporary bump of \`gc-cons-threshold\' + during Emacs init and possibly for increasing + \`gc-cons-percentage\'. +- Came for clear-cut magic bullet answers, left with nuanced analysis - and that, surprise, Eli was overall right? Now what to do with that viral gc init snippet that I've never taken time to measure myself but keep anyway... + - A: I do believe that temporarily raising thresholds is ok for init time. that's the only clear-cut conclusion, unortunately +- Thanks yantar92, both for the detailed investigation and exposition. I've been deferring to much-smarter-than-me Henrik for my default position (Doom has it in it's init), for lack for doing any measurements myself. +- Thanks for your work on this project. Very thorough. +- Definitely a huge extra thanks for the tireless Org-mode work yantar92! +- A: Do not take things Doom does blindly. I am still horrified by let-binding major-mode + - Good advice, thanks. I don't personally (more of a vanilla/DIY type myself), but I'd be remiss to leverage Henrik's insights nonetheless :) +- A: (fun fact: memory-info tries to get memory information on remote system when connected via TRAMP) ... not a problem (anymore; after that very surpising bug report) for emacs-gc-stats + [[!inline pages="internal(2023/info/gc-after)" raw="yes"]] diff --git a/2023/talks/hyperdrive.md b/2023/talks/hyperdrive.md index d84889d5..cc6323c5 100644 --- a/2023/talks/hyperdrive.md +++ b/2023/talks/hyperdrive.md @@ -79,6 +79,113 @@ practically every aspect of my computing. I am the author and maintainer of several packages for Emacs and am enthusiastic about its potential for user freedom. +# Discussion + +## Questions and answers + +- Q: It\'s not clear how hyperdrive (not hyperdrive.el) works. Do I + need to install something on my computer to use it? Can I use it + from my phone? + - A: Like the emacs transmission client connects with the + transmission-daemon, hyperdrive.el connects with the + hyper-gateway daemon. + - Accessing hyperdrives on mobile: + <https://github.com/AgregoreWeb/agregore-mobile> +- Q: What lessons have you learned while developing hyperdrive.el? + - A: Great support and guidance from talented folks like Adam, + Mauve, Jonas, Prot!! +- Q: I use multiple computers and my partner also would like acess to + my notes. so 2 questions. How well would this work with using this + to editing my zettelkasten hyperdrive using multiple computers + - A: Hyperdrives are single-writer, so you\'d be better off + linking between drives. In the future, we plan to add support + for <https://github.com/nobiot/org-transclusion> to + hyperdrive.el. + - Q2: How well would it work if my and my partner worked on the + same hyperdrive zettelkasten + - A: If you linked between drives, it could work quite well! +- Q: What would be a good way of getting Hyperdrives if you don\'t + want to install NPM and hava a binary. Could you compile it with + deno or the \"rust or zig or go?\" cli alternative tool? I would + prefer to download a single binary. + - A: Jonas has been using hyper-gateway installed with a \`guix + shell\` command. Thank you, Jonas!!! + - Quick gist: + <https://gist.github.com/tarsius/509e9c65c9df1bc243d77cd968d60daa> + - Q: <https://github.com/datrs/hypercore> rust hyperdrive? + - A: I\'m not familiar with this rust port yet. +- Q: If you had your druthers, what would make your work on + hyperdrive.el easier? + - A: User feedback!! Please try it out :) +- Q: Have you tried putting a git repo in hyperdrive? Does it work + well? + - A: If you use a bare repository, take care to gc and create pack + files before mirroring to the drive, and only publish periodic + updates, then that might be okay. (And make sure not to repack + old pack files.) +- Q: Is data transferred between nodes in the clear or encrypted? + - A: Encrypted in transit. +- Q: Is there a searchable catalogue of hyperdrives? + - A: Not yet, but we have plans for a distributed \"trust\" + network that could be used with hyperdrive: + <https://git.sr.ht/~ushin/trust.el> +- Q: Any plans for FUSE or posix semantics? + - A: Not yet. There was + <https://github.com/andrewosh/hyperdrive-fuse> , but it\'s not + maintained currently. +- Q: Any plans for a TRAMP interface? + - A: Good idea! A TRAMP interface may make it easier to offer + live hyperdrive filename completions. +- Q: How does this comprare to syncthing? + - A: Syncthing is useful for sharing files among a small group of + trusted peers, like an F2F network + (\<<https://en.wikipedia.org/wiki/Friend-to-friend>\>). + Hyperdrives are useful for publicly sharing a set of files which + you can updated going forward and which others can link to. +- Q: If you edit a file on the hyperdrive, then edit the same file on + the local mirror. How is the conflict handled when you sync the + mirror again? + - A: If I understand correctly, you\'re asking about what happens + when you write to the same hyperdrive from multiple machines. + The short answer is, \"Please don\'t do that.\" However, it + appears that the Holepunch team is making progress on + <https://docs.holepunch.to/building-blocks/autobase> for + \"autohmatically rebasing\" hyperdrive history, effectively + allowing for multi-writer hyperdrives. +- Q: wouldn't user be able to collaborate asynchronously by viewing diffs on a serially "shared" file, in other words, a user would copy another peer's text file, edit and upload their changes, share the link to their updated file so that then others can see diffs and in that way co-create an evolving file? + - A: You could try this. Another idea that we have in the works is integration with <https://github.com/nobiot/org-transclusion> + +## Notes + +- damn, I never even knew about dired-jump (C-x C-j). Main + differences with (C-x d) from the file are one fewer keystroke and + having the point on the file you came from. +- Btw, hyperdrive looks like another one of those things that would be amazing if I collaborated with anyone using emacs +- Also incidentally hyperdrive is amazing +- I installed hyperdrive.el and tried to run it and immediately got: transient-setup: Symbol’s function definition is void: transient-prefix-object + - Need to upgrade transient.el + - Gah, you are right. I had an obsolete version just hanging out causing pain. + - Okay, I got hyperdrive.el working and it was super easy. hyper://fwsn55wnznts5mpkee16j89ja38nfz6zne4wijzap1z9ka4jsxio/Dird_a333f1_4884540.jpg +- I think hyperdrive is a pretty easy way to share files. Easier than Dropbox. But maybe for delivery? I'm not sure. + - A: What do you mean by "delivery"? + - I was thinking of asset delivery. I write professionally, so I have things like PDFs and other documents to deliver. Sometimes I have big files to deliver to clients. Using something like hyperdrive would be cooler than Dropbox. ... Hmmmm, is there a hyperdrive web gateway? + - A: A good non-Emacs option is <https://github.com/AgregoreWeb/agregore-browser> Agregore is Chromium with built-in support for more protocols besides HTTP, like Hyperdrive, Bittorrent, IPFS, Gemini, and Gun. <https://github.com/RangerMauve/hyper-gateway> , the program that hyperdrive.el connects to as a client is, I think, exactly what you asking about. I don't know of a public HTTP gateway, but you could easily run hyper-gateway on a VPS. + - That would be fun. Then I could control the domain name so it would look cool and professional and like I was extra high-tech. + - A: hyper-gateway lets you serve multiple drives at various subdomains. For example, you could serve your primary drive at <https://reverik.tld>, and then folks could access, e.g., the USHIN drive at <https://aaj45d88g4eenu76rpmwzjiabsof1w8u6fufq6oogyhjk1ubygxy.reverik.tld> + + +- Great work, everyone. Thank you. +- Prot's presentations are so clear. Perfectly model pedagogy. +- Just like his code: his .el buffers SQUEAK as you C-v through them. +- Prot is indeed a model of paying attention to detail. +- I have learned so much from his videos, and from his code. +- Prot switching from vim/etc to Emacs seems to correspond to an inflexion point in the current Emacs renaissance does it not? Coincidence, or... I wonder what way the causal arrow goes :) + - I think the current "Emacs renaissance" probably dates back to around the time that package.el was developed and then when MELPA came online. momentum seems to have been building since then + - We must also consider Org-mode's inception as a key moment in recent Emacs history +- My Emacs environment would be much poorer without Prot's contributions, that's for sure. +- My hypothesis is that Diogenes himself made his way to Cyprus and spent the past immortal couple thousand years as a mountain hermit waiting to return to mortal life when the Emacs community needed him. Humor aside, there are a few key personalities---many of them here this weekend---who have been disproportionately catalytic to the community recently. Prot is certainly one. Thanks to all of you! + + [[!inline pages="internal(2023/info/hyperdrive-after)" raw="yes"]] diff --git a/2023/talks/llm.md b/2023/talks/llm.md index e1723796..cb76d783 100644 --- a/2023/talks/llm.md +++ b/2023/talks/llm.md @@ -33,6 +33,83 @@ Andrew Hyatt has contributed the Emacs websocket package, the triples (making a triple-based DB library) and the ekg package (a tag-based note-taking application). He has been using various other LLM integrations, and ss part of extending ekg, he's been working on his own. +# Discussion + +## Questions and answers + +- Q: What is your use case for Embedding? Mainly for searching? + - A: + - I got you. It\'s kinda expand our memory capcity. +- Q: What do you think about \"Embed Emacs manual\" VS \"GPTs Emacs + manual? + - A: + - yes GPTS actually how it\'s kind of embedding your document + into its memory and then using the logic that provided by + GPT-4 or other versions. I never tried that one but I\'m + just wondering if you have ever tried the difference +- Q: When deferring commit messages to an LLM, what (if anything) do + you find you have lost? + - A: +- Q: Can you share your font settings in your emacs config? :) (Yeah, + those are some nice fonts for reading) + - A: I think it was Menlo, but I\'ve sinced changed it (I\'m + experimenting with Monaspace +- Q: In terms of standardisation, do you see a need for a + medium-to-large scale effort needed? + - A: + - I mean, as a user case, the interface is quite simple + because we\'re just providing an API to a server. I\'m not + sure what standardization we are really looking at. I mean, + it\'s more like the how we use those callback from the llm. +- Q: What are your thoughts on the carbon footprint of LLM useage? + - A: +- Q: LLMs are slow in responding. Do you think Emacs should provide + more async primitives to keep it responsive? E.g. url-retrieve is + quite bad at building API clients with it. + - A: + - Gptel.el is async. And very good at tracking the point. +- Q: Speaking of which, anyone trained/fined-tuned/prompted a model + with their Org data yet and applied it to interesting use cases + (planning/scheduling, etc) and care to comment? + - A: + - I use GPTS doing weekly review. I\'m not purely rely on it. + It\'s help me to find something I never thought about and I + just using as alternateive way to do the reviewing. I find + it\'s kind of interesting to do so. + +### Notes and discussion + +- gptel is another package doing a good job is flexible configuration and choice over LLM/API +- I came across this adapter to run multiple LLM's, apache 2.0 license too! https://github.com/predibase/lorax +- It will turn out the escape-hatch for AGI will be someone's integration of LLMs into their Emacs and enabling M-x control. +- i don't know what question to ask but i found presentation extremely useful thank you +- I think we are close to getting semantic search down for our own files + - yeah, khoj uses embeddings to search Org, I think + - I tried it a couple of times, latest about a month ago. The search was quite bad unfortunately + - did you try the GPT version or just the PyTorch version? + - just the local ones. For GPT I used a couple of other packages to embed in OpenAI APIs. But I am too shy to send all my notes :D + - Same for me. But I really suspect that GPT will be way better. They now also support LLama, which is hopeful + - I keep meaning to revisit the idea of the Remembrance Agent and see if it can be updated for these times (and maybe local HuggingFace embeddings) +- I think Andrew is right that Emacs is uniquely positioned, being a unified integrated interface with good universal abstractions (buffers, text manipulation, etc), and across all uses cases and notably one's Org data. Should be interesting...! +- Speaking of which, anyone trained/fined-tuned/prompted a model with their Org data yet and applied it to interesting use cases (planning/scheduling, etc) and care to comment? +- The ubiquitous integration of LLMs (multi-modal) for anything and everything in/across Emacs and Org is both 1) exciting, 2) scary. +- I could definitely use semantic search across all of my stored notes. Can't remember what words I used to capture things. +- Indeed. A "working group" / "birds of a feather" type of thing around the potential usages and integration of LLMs and other models into Emacs and Org-mode would be interesting, especially as this is what pulls people into other platforms these days. +- To that end, Andrew is right that we'll want to abstract it into the right abstractions and interfaces. And not just LLMs by vendor/models, but what comes after LLMs/GPTs in terms of approach. +- I lean toward thinking that LLMs may have some value but to me a potentially wrong result is worse than no result + - I think it would depend on the use case. A quasi-instant first approximation that can readily be fixed/tweaked can be quite useful in some contexts. +- not to mention the "summarization" use cases (for papers, and even across papers I've found, like a summarization across abstracts/contents of a multiplicity of papers and publications around a topic or in a field - weeks of grunt work saved, not to mention of procrastination avoided) + - IMHO summarization is exactly where LLMs can't be useful because they can't be trusted to be accurate +- <https://dindi.garjola.net/ai-assistants.html>; A friend wrote this <https://www.jordiinglada.net/sblog/llm.html>; < https://blogs.microsoft.com/on-the-issues/2023/09/07/copilot-copyright-commitment-ai-legal-concerns/> +- I have a feeling this is one of the 'em "if you can't beat them join them" scenario. I don't see that ending with a bit global rollback due to such issues anytime soon... +- (discussion about LLMs, copyright, privacy) +- I spent more time than I was hoping to setting up some custom Marginalia(s?) the other day, notably for cases where the "category" is dynamic, the annotation/affixation function varies, the candidates are an alist of key-value pairs and not just directly the value, and many little specificities like that. Idem for org-ql many moons back, org-agenda, etc. That sort of workflow always involves the same things: learning/reading, examples, trials, etc. I wonder if LLMs could be integrated at various points in that recurring exercise, to take just a sample case. +- that's yet another great use case for LLMs : externalizing one's thinking for its own sake, if only to hear back the echo of one's "voice", and do so with an infinitely patient quasi-omniscient second party. + - oooh, might be a good one for blog post writing: generate some follow-up questions people might have + - Yeah, a "rubber duck" LLM could be very handy + - I'm sure there would be great demand for such a thing, to dry-run one's presentations (video or text) and generate anticipate questions and so on. Great take. + - I've seen some journaling prompts along those lines. I think it'll get even more interesting as the text-to-speech and speech-to-text parts get better. Considering how much people bonded with Eliza, might be interesting to see what people can do with a Socratic assistant... + [[!inline pages="internal(2023/info/llm-after)" raw="yes"]] diff --git a/2023/talks/matplotllm.md b/2023/talks/matplotllm.md index 784c9463..dfa32233 100644 --- a/2023/talks/matplotllm.md +++ b/2023/talks/matplotllm.md @@ -63,30 +63,6 @@ Emacs. - Repository link <https://github.com/lepisma/matplotllm> . A connected blog post here <https://lepisma.xyz/2023/08/20/matplotllm:-an-llm-assisted-data-visualization-framework/index.html> -- gptel is another package doing a good job is flexible configuration and choice over LLM/API -- I came across this adapter to run multiple LLM's, apache 2.0 license too! https://github.com/predibase/lorax -- It will turn out the escape-hatch for AGI will be someone's integration of LLMs into their Emacs and enabling M-x control. -- i don't know what question to ask but i found presentation extremely useful thank you -- I think we are close to getting semantic search down for our own files - - yeah, khoj uses embeddings to search Org, I think - - I tried it a couple of times, latest about a month ago. The search was quite bad unfortunately - - did you try the GPT version or just the PyTorch version? - - just the local ones. For GPT I used a couple of other packages to embed in OpenAI APIs. But I am too shy to send all my notes :D - - Same for me. But I really suspect that GPT will be way better. They now also support LLama, which is hopeful - - I keep meaning to revisit the idea of the Remembrance Agent and see if it can be updated for these times (and maybe local HuggingFace embeddings) -- I think Andrew is right that Emacs is uniquely positioned, being a unified integrated interface with good universal abstractions (buffers, text manipulation, etc), and across all uses cases and notably one's Org data. Should be interesting...! -- Speaking of which, anyone trained/fined-tuned/prompted a model with their Org data yet and applied it to interesting use cases (planning/scheduling, etc) and care to comment? -- The ubiquitous integration of LLMs (multi-modal) for anything and everything in/across Emacs and Org is both 1) exciting, 2) scary. -- I could definitely use semantic search across all of my stored notes. Can't remember what words I used to capture things. -- Indeed. A "working group" / "birds of a feather" type of thing around the potential usages and integration of LLMs and other models into Emacs and Org-mode would be interesting, especially as this is what pulls people into other platforms these days. -- To that end, Andrew is right that we'll want to abstract it into the right abstractions and interfaces. And not just LLMs by vendor/models, but what comes after LLMs/GPTs in terms of approach. -- I lean toward thinking that LLMs may have some value but to me a potentially wrong result is worse than no result - - I think it would depend on the use case. A quasi-instant first approximation that can readily be fixed/tweaked can be quite useful in some contexts. -- not to mention the "summarization" use cases (for papers, and even across papers I've found, like a summarization across abstracts/contents of a multiplicity of papers and publications around a topic or in a field - weeks of grunt work saved, not to mention of procrastination avoided) - - IMHO summarization is exactly where LLMs can't be useful because they can't be trusted to be accurate -- <https://dindi.garjola.net/ai-assistants.html>; A friend wrote this <https://www.jordiinglada.net/sblog/llm.html>; < https://blogs.microsoft.com/on-the-issues/2023/09/07/copilot-copyright-commitment-ai-legal-concerns/> -- I have a feeling this is one of the 'em "if you can't beat them join them" scenario. I don't see that ending with a bit global rollback due to such issues anytime soon... -- (discussion about LLMs, copyright, privacy) diff --git a/2023/talks/overlay.md b/2023/talks/overlay.md index a1dbb4a9..44094984 100644 --- a/2023/talks/overlay.md +++ b/2023/talks/overlay.md @@ -29,6 +29,80 @@ readability of error messages, using overlays to flexibly reformat portions of the compiler output under user control. +# Discussion + +## Questions and answers + +- Q: How did you draw the underbraces and overbraces? + - A: TikZ, the greatest drawing tool ever :) See + <https://tex.stackexchange.com/a/128096/105203>. I went to some + effort to match up the colors, font, and background to Emacs. I + got quite close, I think. +- Q: You\'ve got a nice sounding keyboard. What kind is it? + - A: Sorry about that. It\'s an ErgoDox EZ +- Q: Do you find that the \"invasive\" reformatting interferes with + navigation? + - A: A bit. You can\'t move your cursor into the not-real buffer + text (indentation). But the original text is still visible, so + that works fine. +- Q: Can you show us the keybindings of your minor map for editing + overlays? + - A: It\'s C-c - and C-c + but you can change it. +- Q:Your examples were with c++, have you experimented with any other + languages? Oh, thanks for the interesting talk by the way! + - A: Other languages don\'t have the same unpleasant behavior :) I + say this as a long time fan of C++. But it should be possible! +- Q: Would it be possible to include overlays in the source file + itself. There are some language modes (Rust, for instance) that do + this. + - A: \[someone else\] Sounds like enriched-mode. \[Jeff\] I\'m not + sure what this question means; it\'s the error messages that are + the big issue +- Q: What are your plans for tspew in the future? + - A: Better future-proofing and more options for formatting +- Q: What is your repository link <https://github.com/jefftrull> ? + - A: <https://github.com/jefftrull/tspew> +- Q: What IDEs do C++ programmers use? If not emacs? How do they deal +with these error messages? + - A: VSCode is quite popular, as well as CLion and also XCode. I think they simply display the error messages as is. +- Q: Have you tried to use treesitter to parse the output? + - A: I think it wants to parse an entire buffer. If I could write a + grammar for a portion of the text and point it at that, that would be + great. I could have maybe made a tsit grammar if I could have applied it to a small bit of the output + - (not the speaker): ISTM that since you set up the syntax tables to recognize <> as parens/whatever that Emacs should be able to parse the effective lists as sexps, but I'm not an expert on that + - (not the speaker) ye it's true, often you want to select what the root source node type would be an AFAIK you cannot change it + +- Q: "org-mode, which uses them to hide or reveal custom properties" I thought they used buffer-invisibility-spec or something like that + - A: yes that's part of it + - do you know of they also use text properties. org code is usually pretty messy, so I don't know much about it + - A: org has been moving toward text properties but I think there is a flag that will use overlays instead (!). There's some controversy about performance that I will touch on in a bit + - Interesting, does that initiative predate the recent performance improvements by Stefan Monnier? + - A: I think so. They were known to be a problem for some time, but then that happened? +- Q: Did you use, e.g. syntax-ppss to parse the depth using the syntax table? + - A: No I tried to though... maybe there's a better way + +## Notes and discussion + +- The org file containing the presentation is here: + <https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull.org> +- Tony Aldon's Reddit post on visibility + <https://www.reddit.com/r/emacs/comments/t1r2wq/have_you_ever_wondered_how_orgmode_toggles_the/> +- Overlay performance (maybe) fixed + <https://www.reddit.com/r/emacs/comments/yg4mvt/the_noverlay_branch_was_merged_to_master_this/> +- I think I might need to change subed-waveform to use text properties instead of overlays or fix something else that I'm doing incorrectly, since the overlays get left behind when I kill text + - A: yeah you have to track them yourself +- Can you put the overlay object in a text property to track it? + - A: I don't think you would mix properties and overlays in that manner. There are overlay search functions; people typically add a property that identifies them as theirs. or you can store references in a list or something +- A: One of my reasons for doing this was frustration and people talking about how great VSCode was and I *knew* that Emacs was a good match for certain kinds of problems people don't even try to solve in IDEs +- A: I actually edited this down I know it's still a lot of detail :) +- This is really good! +- Very impressive! And well explained. Thank you. +- yeah try doing that in VSCode! yeah. +- this is slick! +- i'm not a fan of ligatures, but imho :: just begs for it + - Same, I want to see the actual thing that'll be given to the compiler/interpreter/whatever. +- That was great, showing how relatively easy it is to extend Emacs with features like that. +- From the speaker: yantar92: your help was much appreciated in the weeks I spent putting this together :) [[!inline pages="internal(2023/info/overlay-after)" raw="yes"]] diff --git a/2023/talks/repl.md b/2023/talks/repl.md index 8b59c01a..3c867b0a 100644 --- a/2023/talks/repl.md +++ b/2023/talks/repl.md @@ -82,6 +82,32 @@ About the speaker: I am this person here: http://anggtwu.net/eepitch.html +# Discussion + +## Questions and answers + +- Q:if you had to summarize what you where trying to say in 3 + sentences or less, what would you say? + - A: Ouch! I would answer with a link\... this one: + <http://anggtwu.net/eev-for-longtime-emacs-users.html#summarize-in-one-paragraph> + +## Notes + +- Magic is good as long as you have the option to look behind the + scenes when you want! :-) Imagine if all code was assembly + language. +- hi edrx! =) great talk + +- A :I didn't create a git repo with the code yet because I don't have any idea if anyone would want to test it today... everything is made to be used with this interface, <http://anggtwu.net/eepitch.html> + +- Q: is the code available as a tarball perhaps? or not at all yet? + - as I know very few people who use eev - and who already use that interface - I wanted to ask them if they'd be ok with installing some files in ~/LUA/ and ~/LATEX/, or if they really needed to use other directories, or what... the things that are to be installed in ~/LUA/ are in a tarball, but a few of the files require some files in ~/LATEX/. I'm preparing the LATEX/ directory of the tarball now and I'll announce it on the eev mailing list soon +- Dealing with diagrams with Emacs is tricky. Having documented examples of that is nice and would be helpful + - A: I _guess_ that the ideas that I presented would be easy to adapt to SVG diagrams, and to some packages that use Javascript to generate their diagram... but I don't want to write the code for SVG and for js diagrams all by myself. what do you use - or what have tried to use - to generate diagrams? + - i've personally tried using a bunch of different tools but never found anything that fully clicked for me or was remotely pleasant to use. i guess 'draw.io' is decent, but something in Emacs would be awesome + - do you think that musa's way to making emacs run javascript could work for draw.io? + - hmm no clue tbh, worth trying to ask him. but i must say i'm not super enthused about embedding js in emacs + - having tried most things (from exwm to org-protocol, to devtools debug protocol, and what not), I've converged on small personal extension that loads across browsers, locally, and stay connected with Emacs via the very useful emacs-websocket package, to interact both with the internal state of the browser (windows, tabs, etc.) and intra-page [[!inline pages="internal(2023/info/repl-after)" raw="yes"]] diff --git a/2023/talks/scheme.md b/2023/talks/scheme.md index 017796f0..a087d0ce 100644 --- a/2023/talks/scheme.md +++ b/2023/talks/scheme.md @@ -35,6 +35,42 @@ About the speaker: Talk about Lisp development workflows, REPLs, and modern Scheme tooling for Emacs. Author of Guix Home, maintainer of [rde](https://git.sr.ht/~abcdw/rde), FOSS developer. +# Discussion + +## Questions and answers + +- Q: How much do you use these repels remotely ex using a server or + desktop from your laptop? + - A: I don\'t use it remotely at the moment, but it should work + perfectly fine (except maybe lookup and other similiar + functions). I also want to add a shepherd service for ares-rs, + so you can connect to GNU Shepherd and systems based on it (like + GNU Guix) from you emacs process and interact fluently with + guile code. +- Q: Can this be integrated with eglot? + - A: I\'m not sure how this integration could look like. + Theoretically, it\'s possible to expose many of ares-rs + functions via LSP custom actions (or whatever it called). + Anyway, contact me on IRC or <https://trop.in/contact> to + discuss it in more details if you have something in mind. +- Q: How hard is it to add support for something else than Guile? Does + it make sense to contribute at this early stage of development? + I\'ve written several packages for CHICKEN Scheme before and would + like to try this one. + - A: It\'s a matter of implementing the whole chicken-ares-rs :) + Many of the code can be reused, but not all, unfortunately. + emacs-arei doesn\'t need any (or almost any) changes. +- Q: (One day late sorry) Is nREPL more extensible than what SLIME/SLY + use in Common Lisp world (I think it\'s comint.el) ? + - A: Yes, it\'s. I was evaluating and considering SWANK protocol, + but found nREPL to be more suitable and future proof. + <https://github.com/astine/swank-client/blob/master/swank-description.markdown> + +### Notes and discussion + +- brilliant work for scheme +- yeah, this is overdue. the only real alternative is slime-r7rs + [[!inline pages="internal(2023/info/scheme-after)" raw="yes"]] [[!inline pages="internal(2023/info/scheme-nav)" raw="yes"]] diff --git a/2023/talks/sun-close.md b/2023/talks/sun-close.md index 32561089..ae336792 100644 --- a/2023/talks/sun-close.md +++ b/2023/talks/sun-close.md @@ -28,6 +28,17 @@ - So many good talks - many good talks, and a sense of community around emacs, which is nice to see - Agreed, I enjoyed a thread I saw on Hacker News yesterday. There was a lot of love in it for Emacs and its community +- i also have a feeling that it's hard to communicate with others when you start digging into a large system. your confusion diffuses. i felt similar when jumping into web framework and legacy apps. that's also why i liked emacsconf, watching others clarifies a lot of stuff. (memories of johnw edebug flash talk) +- the pacing, clarity, and depth of the talks today has been really impressive, a presentation masterclass + - They're making me feel professionally inadequate +- Thank you for such responsiveness in running this conference!!! +- Yes, having the schedule in my own timezone was super helpful. +- emacsconf-attendee-mode? including etherpad-mode among others +- yeah virtual conf is fire thanks sacha +- What our Swiss friends are doing looks quite nice +- I've seen some virtual conferences (TeX / TUG?) that ran around-the-clock for different time zones. + - that would be lovely! + [[!inline pages="internal(2023/info/sun-close-after)" raw="yes"]] [[!inline pages="internal(2023/info/sun-close-nav)" raw="yes"]] diff --git a/2023/talks/test.md b/2023/talks/test.md index 0e026e55..af254a62 100644 --- a/2023/talks/test.md +++ b/2023/talks/test.md @@ -23,6 +23,90 @@ tests to over 300 ert tests for the package. This talk is about my test case jo I have learned by doing that. +# Discussion + +## Questions and answers + +- Q:How many tests do you have for Hyperbole and how wouild you rate + the test coverage compared to other packages? + - A: + - With all tests including the interactive we have 354 tests. + Havng said that I must point out that the size of the tests + can be very different. I tend to split tests so they are + logically (in some sense) different. So that if a test fails + it will more likely point you to what the error is. This + makes it become more tests. Codewise you could collect + similar tests to one ert-deftest making the name of the test + point out some group or collection of functions, but I + don\'t do that! + - I have not studied other packages so I don\'t know how our + test coverage compares to other packages. In fact I don\'t + know what code coverage we have. That is another thing to + look into. +- Q: One small suggestion, to me \'should\' means optional, whereas + \'shall\' or \'must\' means required. Not sure if it is too late to + make a major grammar change like that :) Very nice presentation. (I + see :)) + - A: The assertions come from the ert package so any changes would + have to be suggested to that. I guess you could make your own + version of the assestions using aliases for should et al. +- Q: FYI, you may find this helpful for running Emacs tests/lints, + both from a command line and from within Emacs with a Transient + menu: <https://github.com/alphapapa/makem.sh> It also works on + remote CI. + - A: Thanks for the suggestion. I did have a look at makem.sh but + a long time ago so I don\'t remember why we did not try to apply + it. I might give it another look now when I have used plain ert + more. +- Q: Is it easy to run ad hoc tests inside of an Emacs session, given + the command line scripts you need to run to get a batch test session + running? In other words, can you tweak tests in an Emacs session and + run them right away? + - A: + - Yes, in principle you just load your tests and run them all + using \`ert\` and give it the test selector \`t\`. That runs + all loaded tests. + - If you want to modify a test you can do that. You change it, + evaluate it, and run it again. Just as you change any + function. +- Q: Did you have to change Hyperbole code and design to be more + readily testable as you were increasing your test coverage? + - A: + - Yes, we have done that to a small extent but we should do + more of that. Some Hyperbole functions are large and by that + complicated to test. Splitting them into smaller logical + parts can make testing easier. + - Also moving code into pure functions and avoid side effects + is a good thing. Pure functions are easier to test. Maybe + haveing the side effects separated out into fewer places. + This has not been applied but is something I have been + thinking about. With side effects I here mean things like + adding or modifying text in buffers. +- Q: What\'s the craziest bug you found when writing these tests? + - A: This is not a bug but I always assumed giving a prefix + argument to a cursor movement would give the same result as + hitting the key the same amount of times. So like C-u 2 C-f + would be the same as hitting the C-f key twise. It is not! When + moving over a hidden area, the three dots \'\...\' at the end of + folded line in org-mode or outline-mode, you get different + behavior. Trying to write a test case for the kotl-mode and its + folded behavior teached me that. +- Q: Why do you prefer el-mock to mocking using cl-letf. (Question + asked in BBB) + - - With cl-letf you need to keep track if the mocked + functionality is being called or not. The el-mock package + does that for you which is what you normally want. Doing + this with cl-letf means the definition becomes longer and + more complicated. Sort of blurs the picture. el-mock is more + to the point. + - BUT since cl-letf does allow you do define a \"new\" + function it is more powerful and it can be the only option + in cases where el-mock is too limited. So it is good to know + of this possibility with cl-letf when el-mock does not + provide what you need. + +### Notes and discussion + [[!inline pages="internal(2023/info/test-after)" raw="yes"]] diff --git a/2023/talks/world.md b/2023/talks/world.md index a5f0e432..888427f6 100644 --- a/2023/talks/world.md +++ b/2023/talks/world.md @@ -45,6 +45,46 @@ GNU Emacs as a lightweight IDE <https://www.youtube.com/watch?v=d14tLD5XiCU&list=PLW9poAEUvGDAMYvvznljaNtvooaJZxsFQ&pp=gAQBiAQB> +# Discussion + +## Questions and answers + +- Q: A lot of what you showd was the type of stuff Emacs didn\'t do + very well. This stuff looks like it could be useful for using Emacs + with a touchscreen and in a tablet. Have you used it for purposes + like these + - A: +- Q: Is there a mode for using ffmpeg through Emacs or did you make it + yourself? Really cool stuff! + - A: +- Q: These demos are always so impressive. Do you plan to upstream + any of these projects into Emacs, or to publish them as e.g. ELPA + packages? + - A: +- Q: How did you make that electronic circuit diagram? Is there a mode + with the symbols already available? (Thank you for your very clear + answer!) + - A: +- Q:I\'ve seen your blog posts with some of these features, but can + you link to the repo(s) where you are doing the development for + this/these package(s)? + - A: <https://lifeofpenguin.blogspot.com> (blog), + <https://gitlab.com/atamariya/emacs> (dev branch) +- Q:The pdf form-filling is especially interesting - I would love to + do my taxes in emacs! + - A: +- Q: the author is not using artist-mode? + - Not the speaker: + - I think he said canvas-mode + - After some searching, it appears to not be a separate package, but some code in the presenter's repo (https://gitlab.com/atamariya/emacs/-/blob/dev/lisp/svg.el?ref_type=heads) + - Author used xwidgets ig, probably emacs has to be compiled with support for xwdigets + +## Notes + +- Thank you for showing so many new possibilities with Emacs! +- which package is required for pdf filling? so that works with (usually adobe authored) "pdf forms"? +- This author's work is always very impressive when he shares it on his blog and on Reddit. But unfortunately he seems to develop it in his own fork of emacs.git so it's impractical for other users to try. + [[!inline pages="internal(2023/info/world-after)" raw="yes"]] |