diff options
Diffstat (limited to '2024')
-rw-r--r-- | 2024/info/org-update-before.md | 8 | ||||
-rw-r--r-- | 2024/talks/color.md | 38 | ||||
-rw-r--r-- | 2024/talks/open-mic.md | 77 | ||||
-rw-r--r-- | 2024/talks/theme.md | 36 | ||||
-rw-r--r-- | 2024/talks/transducers.md | 163 |
5 files changed, 316 insertions, 6 deletions
diff --git a/2024/info/org-update-before.md b/2024/info/org-update-before.md index eac4398a..f75ca40b 100644 --- a/2024/info/org-update-before.md +++ b/2024/info/org-update-before.md @@ -2,12 +2,14 @@ [[!toc ]] Format: 40-min talk ; Q&A: BigBlueButton conference room Etherpad: <https://pad.emacsconf.org/2024-org-update> -Status: TO_REVIEW_QA +Status: TO_INDEX_QA +# Talk + <div class="vid"><video controls preload="none" id="org-update-mainVideo"><source src="https://media.emacsconf.org/2024/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2024/captions/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2024/captions/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="org-update-mainVideo" data=""" 00:00.000 Introduction 01:14.280 Message from Bastien Guerry @@ -39,5 +41,9 @@ Status: TO_REVIEW_QA 39:12.997 Thank you """]]<div></div>Duration: 39:35 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2024-org-update">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--main.webm">Download --main.webm (88MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--pad.md">Download --pad.md</a></li><li><a href="https://toobnix.org/w/2DAHY6wCAXnpeSqwUHaidv">View on Toobnix</a></li></ul></div></div> + +# Q&A + +<div class="vid"><video controls preload="none" id="org-update-qanda"><source src="https://media.emacsconf.org/2024/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2024/captions/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 30:39 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2024-org-update">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--answers.webm">Download --answers.webm (68MB)</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2024/talks/color.md b/2024/talks/color.md index c14b8ce9..dedfa00a 100644 --- a/2024/talks/color.md +++ b/2024/talks/color.md @@ -47,6 +47,44 @@ his Emacs looks and works better than many other editors. He works for Civo as a Principal Engineer. +# Discussion + +## Questions and answers + +- Q: Is there any intention to create a library for working with more + experimental color spaces? Pulling code out of Hasliberg for this + purpose, perhaps? + - A: Started the journey just for myself, and didn't think this + would be useful for others. + - A: Making it a library is definitely something that I can think + about. +- Q: Can we have a dark as well as light theme variations made from + your theme? + - A: You can customize the code easily into dark, light and change + something based on someone's mood. Keep in mind that it is a + personal theme, so customize as you see fit. + +## Notes + +- \<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){rel="noreferrer noopener"} + 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){rel="noreferrer noopener"} +- 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){rel="noreferrer noopener"} + [[!inline pages="internal(2024/info/color-after)" raw="yes"]] diff --git a/2024/talks/open-mic.md b/2024/talks/open-mic.md index 58ae8937..8680c648 100644 --- a/2024/talks/open-mic.md +++ b/2024/talks/open-mic.md @@ -12,11 +12,78 @@ [[!inline pages="internal(2024/info/open-mic-before)" raw="yes"]] -# Table of Contents - - - - +# Discussion + +- sachac: I had fun writing some code to copy a line from ERC for easier copying to Etherpad, that was a nice new thing for EmacsConf 2024. Also the random package mentions on our countdown screen was fun too. This year I've had less time to work on Emacs-y things (about half the time compared to last year's leadup to EmacsConf), but it's nice to see we can still pull it off! +- transient discussion:\ +- \<maxxcan\`\> do you like to much hydra? Leo? +- \<gg\> I love which-key. + - \<oylenshpeegul\> 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 + Emacs help resources, and I don't know Elisp very well.    +- \<lounge-502\> 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 + 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 + 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 +- 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){rel="noreferrer noopener"} +- Discussion: Right now it exist as a bunch of hacks on top of sly + 12:16:19 +- \<karthik\> re: qutebrowser \-- + [https://github.com/lrustand/qutebrowser.el](https://github.com/lrustand/qutebrowser.el){rel="noreferrer noopener"} +- \<ElephantErgo\> 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 + 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? + 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 + toolkit for common lisp applications" +- \<edrx\> I would like to take a look + - \<robin\> edrx, 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 + now I know that there is interest i'll look into it +- \<fristed\> 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 + 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 +very easy to try! link: +[http://anggtwu.net/2024-find-tryit-links.html](http://anggtwu.net/2024-find-tryit-links.html){rel="noreferrer noopener"}\ + +- \<edrx\> 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){rel="noreferrer noopener"} + +- \<cow_2001\> everyone should know of greader-mode. it is amazing. i +use it all the time\ [[!inline pages="internal(2024/info/open-mic-after)" raw="yes"]] diff --git a/2024/talks/theme.md b/2024/talks/theme.md index 9df68c8b..6358b33d 100644 --- a/2024/talks/theme.md +++ b/2024/talks/theme.md @@ -25,6 +25,42 @@ I'm picky about how it looks. This talk shows how may hoops I'm willing to jump through to make it look "right". +# Discussion + +## Questions and answers + +- Q: When you choose colors based on the same lightness, does it not + hurt readability since the eye sees lightness most? + - A: +- Q: One area I see emacs able to do themes that is "underused?" is + changing the font. font size, font typee, monospace or perpotional, + bold. based on the varios faceets of emacs. Is it a magit issie a + code comment a code string or varible name etc\... + - A: +- Q: + - A: +- Q: For monte-carlo, are all the "random" colors picked using a + colorwheel/hue rotation? + - A: +- Q: Have you ever kept any of the random themes that were thrown up? + - A: No. When Emacs picks monte carlo by chance, I wouldn't know + about it. That's why I didn't keep any of the themes it + generated. +- Q: + - A: + +## Notes + +- Links: + - [https://github.com/MetroWind/flucui-theme](https://github.com/MetroWind/flucui-theme){rel="noreferrer noopener"} + - [https://github.com/MetroWind/lab-theme](https://github.com/MetroWind/lab-theme){rel="noreferrer noopener"} + - [https://github.com/MetroWind/notink-theme](https://github.com/MetroWind/notink-theme){rel="noreferrer noopener"} + - [https://github.com/MetroWind/monte-carlo-theme](https://github.com/MetroWind/monte-carlo-theme){rel="noreferrer noopener"} +- Comment: Hi MetroWind, your lab-theme was the inspo for my initial + color space journey \~6 years ago, thanks for putting your work out + there + - Wow I'm so glad you found your inspiration! Thanks! + [[!inline pages="internal(2024/info/theme-after)" raw="yes"]] diff --git a/2024/talks/transducers.md b/2024/talks/transducers.md index 5abe4371..8f5ee12d 100644 --- a/2024/talks/transducers.md +++ b/2024/talks/transducers.md @@ -39,6 +39,169 @@ ported the pattern to three other Lisps. Colin is originally from Canada and lives in Japan. +# Discussion + +## Questions and answers + +- Q: When I tried comparing transducers.el to cl-lib and dash + (benchmark-compiled), I got the following results: + ``` +cl-lib: 0.5 sec, 2 GCs +dash: 0.3 sec, 1 GC, +transducers: 0.75 sec, 2 GC +cl-loop: 0.025 sec, 0 GC (note: 0.025, one order-of-magnitude faster) +I expected transducers to be slower than cl-loop but faster than the +cl-lib or dash. However this isn't the case. Any idea why? (benchmark +is here: +[https://old.reddit.com/r/emacs/comments/1h5c778/which_emacsconf_2024_talks_have_your_attention/m061dge/](https://old.reddit.com/r/emacs/comments/1h5c778/which_emacsconf_2024_talks_have_your_attention/m061dge/){rel="noreferrer noopener"}) + ``` + - (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/){rel="noreferrer noopener"} + - (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){rel="noreferrer noopener"}?) + 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){rel="noreferrer noopener"})? + 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 + +## Notes + +- \<lounge-081\> 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 + fusion, iirc? + [http://lambda-the-ultimate.org/node/2192](http://lambda-the-ultimate.org/node/2192){rel="noreferrer noopener"} + 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 + already think of those functions as folds, etc.), but for the bulk + of people familiar with map/reduce/filter/etc, it's useful to enter + the thinking realizing that you may have infinite streams (of any + type even) on input, and may not want to have realized collections + at every step of the usual function applications, thus the need to + compose the things that make up a map/reduce/filter/etc before + applying them one by one on a continued stream of things one at a + time +- \<NullNix\> 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 + didn't know about them) + - \<NullNix\> still \*far\* less ugly than "call a function with + every item" \*\_iter() stuff +- \<lounge-081\> 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 + right now, and these are going in there immediately +- \<robin\> (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 + sure, is something that transcends language barriers so always fun + to see more impls :) +- \<robin\> 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){rel="noreferrer noopener"} + - \<robin\> (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){rel="noreferrer noopener"} + ) +- \<robin\> 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 + special-case optimizations as with emacs's cl-labels + [[!inline pages="internal(2024/info/transducers-after)" raw="yes"]] |