summaryrefslogblamecommitdiffstats
path: root/2022/info/async-before.md
blob: 3b3c1068bd6da4e7ec7ab1d0ba569608d537d7b2 (plain) (tree)
1
2
3
4
5
                                                                 

      

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           












                                    
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           


     

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          











                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
             
                                            
<!-- Automatically generated by emacsconf-publish-before-page -->
# Talk

<div class="vid"><video controls preload="none" id="async-mainVideo"><source src="https://media.emacsconf.org/2022/emacsconf-2022-async--emacs-was-async-before-async-was-cool--michael-herstine--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2022/captions/emacsconf-2022-async--emacs-was-async-before-async-was-cool--michael-herstine--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2022/captions/emacsconf-2022-async--emacs-was-async-before-async-was-cool--michael-herstine--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="async-mainVideo" data="""
00:00.000 Asynchronous programming
00:47.200 Automating my music player
01:42.600 Working with the API
03:22.080 make-network-process
05:05.200 The sequence of events
05:57.920 Queues
07:50.480 Callbacks
09:24.240 Client-side code
11:48.080 Demo
12:27.760 Logic
13:15.520 Callback hell
14:53.520 Lisp macros
16:46.400 Conclusion

"""]]<div></div><div class="files resources"><ul><li><a href="https://media.emacsconf.org/2022/emacsconf-2022-async--emacs-was-async-before-async-was-cool--michael-herstine--main.webm">Download --main.webm (98MB)</a></li><li><a href="https://media.emacsconf.org/2022/emacsconf-2022-async--emacs-was-async-before-async-was-cool--michael-herstine--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2022/emacsconf-2022-async--emacs-was-async-before-async-was-cool--michael-herstine--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://toobnix.org/w/6mKNBvuubwoWFA9SFsgUQS">View on Toobnix</a></li></ul></div></div>

# Q&A

<div class="vid"><video controls preload="none" id="async-qanda"><source src="https://media.emacsconf.org/2022/emacsconf-2022-async--emacs-was-async-before-async-was-cool--michael-herstine--answers.webm" />${captions}<track kind="chapters" label="Chapters" src="/2022/captions/emacsconf-2022-async--emacs-was-async-before-async-was-cool--michael-herstine--answers--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="async-qanda" data="""
00:00.000 Introduction
00:21.600 How does this approach compare to using tq.el, Emacs' built-in library for transaction queues?
01:10.480 Have you considered using the aio.el library (written by Chris Wellons) that implements async/await for Emacs lisp using promises?
02:45.440 Are you aware that EMMS has an MPD client? There's also mpc.el built into Emacs.
05:20.360 Have you seen the Lonesome Pine Specials?
07:44.400 Would using dynamic/special vars add anything interesting / easier to async elisp in your opinion?
10:16.560 How does your project compare to some of the other MPD clients?
11:55.040 Can you share the code to the macro that creates the callback tree?
14:42.880 There's another package (chuntaro?) in addition to wellon's aio that also implements a coroutine trampoline on the emacs event loop. any thoughts on the async/await paradigm generally red/blue functions, etc?
15:03.440 Any thoughts on the async await paradigm generally, red-blue functions, etc.?
21:06.320 Do you think it's a viable future for Emacs to get out of callback hell?
24:39.320 Generators

"""]]<div></div><div class="files resources"><ul><li><a href="https://media.emacsconf.org/2022/emacsconf-2022-async--emacs-was-async-before-async-was-cool--michael-herstine--answers.webm">Download --answers.webm (34MB)</a></li><li><a href="https://media.emacsconf.org/2022/emacsconf-2022-async--emacs-was-async-before-async-was-cool--michael-herstine--answers.vtt">Download --answers.vtt</a></li><li><a href="https://media.emacsconf.org/2022/emacsconf-2022-async--emacs-was-async-before-async-was-cool--michael-herstine--answers--chapters.vtt">Download --answers--chapters.vtt</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page -->