From 569ecfe72a31342810e5e3f98cdf91297f7da1f8 Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Tue, 5 Dec 2023 16:08:50 -0500 Subject: link chapters --- 2023/info/scheme-after.md | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) (limited to '2023/info/scheme-after.md') diff --git a/2023/info/scheme-after.md b/2023/info/scheme-after.md index c1ff4ca7..11b010d5 100644 --- a/2023/info/scheme-after.md +++ b/2023/info/scheme-after.md @@ -5,7 +5,7 @@ # Transcript -Introduction +[[!template text="""Introduction""" video="00:00:02.120" id="subtitle"mainVideo-scheme]] [[!template new="1" text="""Hello and welcome everyone on EmacsConf 2023.""" start="00:00:02.120" video="mainVideo-scheme" id="subtitle"]] [[!template text="""I'm Andrew Tropin.""" start="00:00:07.400" video="mainVideo-scheme" id="subtitle"]] @@ -14,7 +14,7 @@ Introduction [[!template text="""interactive development,""" start="00:00:16.640" video="mainVideo-scheme" id="subtitle"]] [[!template text="""and how to make your own cozy development environment.""" start="00:00:18.140" video="mainVideo-scheme" id="subtitle"]] -Interactive development +[[!template text="""Interactive development""" video="00:00:23.280" id="subtitle"mainVideo-scheme]] [[!template new="1" text="""Let's start from interactive development.""" start="00:00:23.280" video="mainVideo-scheme" id="subtitle"]] [[!template text="""Lisps are famous for a nice""" start="00:00:26.320" video="mainVideo-scheme" id="subtitle"]] @@ -33,7 +33,7 @@ Interactive development [[!template text="""but is it enough?""" start="00:01:14.600" video="mainVideo-scheme" id="subtitle"]] [[!template text="""Let's see.""" start="00:01:16.680" video="mainVideo-scheme" id="subtitle"]] -REPL: Read Eval Print Loop +[[!template text="""REPL: Read Eval Print Loop""" video="00:01:18.180" id="subtitle"mainVideo-scheme]] [[!template new="1" text="""We know that Emacs is very good for Lisps and REPL.""" start="00:01:18.180" video="mainVideo-scheme" id="subtitle"]] [[!template text="""Lisp and Emacs should be a perfect setup.""" start="00:01:22.840" video="mainVideo-scheme" id="subtitle"]] @@ -66,7 +66,7 @@ REPL: Read Eval Print Loop [[!template text="""So you can evaluate expressions inside your text editor""" start="00:02:46.080" video="mainVideo-scheme" id="subtitle"]] [[!template text="""and see the result here.""" start="00:02:51.600" video="mainVideo-scheme" id="subtitle"]] -Long-lasting loops +[[!template text="""Long-lasting loops""" video="00:02:53.720" id="subtitle"mainVideo-scheme]] [[!template new="1" text="""Works good so far, but what happens""" start="00:02:53.720" video="mainVideo-scheme" id="subtitle"]] [[!template text="""if we run a long-lasting loop,""" start="00:02:56.680" video="mainVideo-scheme" id="subtitle"]] @@ -91,7 +91,7 @@ Long-lasting loops [[!template text="""And even if you do it,""" start="00:04:02.920" video="mainVideo-scheme" id="subtitle"]] [[!template text="""you have a lot of downsides, usually.""" start="00:04:04.321" video="mainVideo-scheme" id="subtitle"]] -Not interruptible +[[!template text="""Not interruptible""" video="00:04:07.600" id="subtitle"mainVideo-scheme]] [[!template new="1" text="""First of all, the process is not interruptible.""" start="00:04:07.600" video="mainVideo-scheme" id="subtitle"]] [[!template text="""If you have a remote process which listens on the socket""" start="00:04:13.680" video="mainVideo-scheme" id="subtitle"]] @@ -113,7 +113,7 @@ Not interruptible [[!template text="""only after 5 seconds of evaluation.""" start="00:05:13.781" video="mainVideo-scheme" id="subtitle"]] [[!template text="""Okay, what else?""" start="00:05:17.040" video="mainVideo-scheme" id="subtitle"]] -No protocol +[[!template text="""No protocol""" video="00:05:23.160" id="subtitle"mainVideo-scheme]] [[!template new="1" text="""When you do such integrations, you have no protocol,""" start="00:05:23.160" video="mainVideo-scheme" id="subtitle"]] [[!template text="""you have just stdin and stdout.""" start="00:05:26.120" video="mainVideo-scheme" id="subtitle"]] @@ -123,7 +123,7 @@ No protocol [[!template text="""if it requires stdin, and how to extend the REPL""" start="00:05:40.340" video="mainVideo-scheme" id="subtitle"]] [[!template text="""to make it more featureful, and so on.""" start="00:05:47.320" video="mainVideo-scheme" id="subtitle"]] -Not scalable +[[!template text="""Not scalable""" video="00:05:51.480" id="subtitle"mainVideo-scheme]] [[!template new="1" text="""And also, such integrations are usually not very scalable.""" start="00:05:51.480" video="mainVideo-scheme" id="subtitle"]] [[!template text="""For example, if you want to have a completion,""" start="00:05:57.360" video="mainVideo-scheme" id="subtitle"]] @@ -147,7 +147,7 @@ Not scalable [[!template text="""so you need something else""" start="00:07:18.420" video="mainVideo-scheme" id="subtitle"]] [[!template text="""to make the work comfortable.""" start="00:07:21.380" video="mainVideo-scheme" id="subtitle"]] -nREPL +[[!template text="""nREPL""" video="00:07:25.860" id="subtitle"mainVideo-scheme]] [[!template new="1" text="""There is already a solution called nREPL.""" start="00:07:25.860" video="mainVideo-scheme" id="subtitle"]] [[!template text="""It's a synchronous protocol which allows""" start="00:07:28.980" video="mainVideo-scheme" id="subtitle"]] @@ -176,7 +176,7 @@ nREPL [[!template text="""was not satisfying. I decided""" start="00:08:57.300" video="mainVideo-scheme" id="subtitle"]] [[!template text="""to just implement nREPL protocol.""" start="00:08:59.400" video="mainVideo-scheme" id="subtitle"]] -Arei, Ares, and how to try +[[!template text="""Arei, Ares, and how to try""" video="00:09:01.740" id="subtitle"mainVideo-scheme]] [[!template new="1" text="""First of all, I implemented nREPL server in Guile.""" start="00:09:01.740" video="mainVideo-scheme" id="subtitle"]] [[!template text="""I called it `guile-ares-rs`, and used it""" start="00:09:05.720" video="mainVideo-scheme" id="subtitle"]] @@ -201,7 +201,7 @@ Arei, Ares, and how to try [[!template text="""that README will be complete enough""" start="00:10:27.680" video="mainVideo-scheme" id="subtitle"]] [[!template text="""so you will be able to try it yourself.""" start="00:10:30.200" video="mainVideo-scheme" id="subtitle"]] -Demo +[[!template text="""Demo""" video="00:10:34.180" id="subtitle"mainVideo-scheme]] [[!template new="1" text="""Let's see what is possible with it already.""" start="00:10:34.180" video="mainVideo-scheme" id="subtitle"]] [[!template text="""Let's connect to nREPL server.""" start="00:10:42.680" video="mainVideo-scheme" id="subtitle"]] @@ -218,7 +218,7 @@ Demo [[!template text="""which is very convenient if you accidentally""" start="00:11:21.960" video="mainVideo-scheme" id="subtitle"]] [[!template text="""run an infinite loop.""" start="00:11:25.160" video="mainVideo-scheme" id="subtitle"]] -Continuations +[[!template text="""Continuations""" video="00:11:27.640" id="subtitle"mainVideo-scheme]] [[!template new="1" text="""Also, do you remember here we have a few more examples""" start="00:11:27.640" video="mainVideo-scheme" id="subtitle"]] [[!template text="""that we didn't try yet?""" start="00:11:32.940" video="mainVideo-scheme" id="subtitle"]] @@ -240,7 +240,7 @@ Continuations [[!template text="""and you can see at the top of the screen""" start="00:12:27.280" video="mainVideo-scheme" id="subtitle"]] [[!template text="""that it works perfectly fine.""" start="00:12:30.140" video="mainVideo-scheme" id="subtitle"]] -Reading from stdin +[[!template text="""Reading from stdin""" video="00:12:32.460" id="subtitle"mainVideo-scheme]] [[!template new="1" text="""Also, with a usual REPL implementation,""" start="00:12:32.460" video="mainVideo-scheme" id="subtitle"]] [[!template text="""let's see what happens when we have a process""" start="00:12:35.560" video="mainVideo-scheme" id="subtitle"]] @@ -257,7 +257,7 @@ Reading from stdin [[!template text="""and unspecified was returned""" start="00:13:26.100" video="mainVideo-scheme" id="subtitle"]] [[!template text="""as a result of this expression.""" start="00:13:28.680" video="mainVideo-scheme" id="subtitle"]] -Fancy example with continuations +[[!template text="""Fancy example with continuations""" video="00:13:33.420" id="subtitle"mainVideo-scheme]] [[!template new="1" text="""Let's make some fancy example with continuations.""" start="00:13:33.420" video="mainVideo-scheme" id="subtitle"]] [[!template text="""Continuations is a very cool mechanism""" start="00:13:37.320" video="mainVideo-scheme" id="subtitle"]] @@ -287,7 +287,7 @@ another value for it.""" start="00:14:27.680" video="mainVideo-scheme" id="subti [[!template text="""Very nice.""" start="00:15:07.520" video="mainVideo-scheme" id="subtitle"]] [[!template text="""And every time we could easily interrupt it.""" start="00:15:08.040" video="mainVideo-scheme" id="subtitle"]] -Guix API +[[!template text="""Guix API""" video="00:15:13.160" id="subtitle"mainVideo-scheme]] [[!template new="1" text="""Okay, what most annoying thing that I had previously""" start="00:15:13.160" video="mainVideo-scheme" id="subtitle"]] [[!template text="""with the usual REPL implementation""" start="00:15:17.320" video="mainVideo-scheme" id="subtitle"]] @@ -325,14 +325,14 @@ Guix API [[!template text="""while the infinite loop is running.""" start="00:17:33.660" video="mainVideo-scheme" id="subtitle"]] [[!template text="""Okay.""" start="00:17:40.260" video="mainVideo-scheme" id="subtitle"]] -Support +[[!template text="""Support""" video="00:17:42.060" id="subtitle"mainVideo-scheme]] [[!template new="1" text="""Actually it took me around two months""" start="00:17:42.060" video="mainVideo-scheme" id="subtitle"]] [[!template text="""of full-time work funded by my own savings,""" start="00:17:44.920" video="mainVideo-scheme" id="subtitle"]] [[!template text="""and you can support and help to the project""" start="00:17:48.040" video="mainVideo-scheme" id="subtitle"]] [[!template text="""using OpenCollective or by contributing on SourceHut.""" start="00:17:51.600" video="mainVideo-scheme" id="subtitle"]] -Future steps - Multiple simultaneous evaluations in different contexts +[[!template text="""Future steps - Multiple simultaneous evaluations in different contexts""" video="00:17:57.020" id="subtitle"mainVideo-scheme]] [[!template new="1" text="""The future steps for the project""" start="00:17:57.020" video="mainVideo-scheme" id="subtitle"]] [[!template text="""include an experimental workflow where you have""" start="00:17:58.700" video="mainVideo-scheme" id="subtitle"]] @@ -348,13 +348,13 @@ Future steps - Multiple simultaneous evaluations in different contexts [[!template text="""You want to see the stderr and stdout""" start="00:18:39.240" video="mainVideo-scheme" id="subtitle"]] [[!template text="""of those long-running processes and so on.""" start="00:18:42.520" video="mainVideo-scheme" id="subtitle"]] -Tree-sitter integration +[[!template text="""Tree-sitter integration""" video="00:18:46.220" id="subtitle"mainVideo-scheme]] [[!template new="1" text="""The second thing is tree-sitter integration""" start="00:18:46.220" video="mainVideo-scheme" id="subtitle"]] [[!template text="""for better syntax highlighting, code navigation,""" start="00:18:50.240" video="mainVideo-scheme" id="subtitle"]] [[!template text="""and other features.""" start="00:18:53.400" video="mainVideo-scheme" id="subtitle"]] -Full-fledged debugger +[[!template text="""Full-fledged debugger""" video="00:18:56.880" id="subtitle"mainVideo-scheme]] [[!template new="1" text="""And after that, probably we will do a full-fledged debugger""" start="00:18:56.880" video="mainVideo-scheme" id="subtitle"]] [[!template text="""so you can jump expressions one by one""" start="00:19:01.400" video="mainVideo-scheme" id="subtitle"]] @@ -365,7 +365,7 @@ Full-fledged debugger [[!template text="""and you can implement""" start="00:19:17.080" video="mainVideo-scheme" id="subtitle"]] [[!template text="""whatever you want on top of it.""" start="00:19:18.200" video="mainVideo-scheme" id="subtitle"]] -FAQ - Does it support other Scheme implementations? +[[!template text="""FAQ - Does it support other Scheme implementations?""" video="00:19:22.760" id="subtitle"mainVideo-scheme]] [[!template new="1" text="""I will answer two probably very frequent questions.""" start="00:19:22.760" video="mainVideo-scheme" id="subtitle"]] [[!template text="""Does it support other Scheme implementations?""" start="00:19:27.080" video="mainVideo-scheme" id="subtitle"]] @@ -377,7 +377,7 @@ FAQ - Does it support other Scheme implementations? [[!template text="""So if you implement nREPL server in a different language,""" start="00:19:48.320" video="mainVideo-scheme" id="subtitle"]] [[!template text="""it should work with already implemented `arei` client.""" start="00:19:52.360" video="mainVideo-scheme" id="subtitle"]] -Is it possible to use it with other text editors? +[[!template text="""Is it possible to use it with other text editors?""" video="00:19:58.380" id="subtitle"mainVideo-scheme]] [[!template new="1" text="""And is it possible to use the same functionality""" start="00:19:58.380" video="mainVideo-scheme" id="subtitle"]] [[!template text="""in other text editors, for example in VS Code,""" start="00:20:04.080" video="mainVideo-scheme" id="subtitle"]] @@ -387,7 +387,7 @@ Is it possible to use it with other text editors? [[!template text="""and you can write your own nREPL client""" start="00:20:16.600" video="mainVideo-scheme" id="subtitle"]] [[!template text="""in a different text editor and it will work.""" start="00:20:19.360" video="mainVideo-scheme" id="subtitle"]] -Conclusion +[[!template text="""Conclusion""" video="00:20:22.121" id="subtitle"mainVideo-scheme]] [[!template new="1" text="""I would like to thank the authors and maintainers""" start="00:20:22.121" video="mainVideo-scheme" id="subtitle"]] [[!template text="""and contributors of Guile, Geiser, CIDER, Clojure,""" start="00:20:26.760" video="mainVideo-scheme" id="subtitle"]] @@ -396,7 +396,7 @@ Conclusion [[!template text="""involved in this talk.""" start="00:20:38.780" video="mainVideo-scheme" id="subtitle"]] [[!template text="""And I hope the Scheme programming will be enjoyable.""" start="00:20:42.080" video="mainVideo-scheme" id="subtitle"]] -Contacts +[[!template text="""Contacts""" video="00:20:45.880" id="subtitle"mainVideo-scheme]] [[!template new="1" text="""If you want to contact me,""" start="00:20:45.880" video="mainVideo-scheme" id="subtitle"]] [[!template text="""join #tropin IRC channel at libera.chat,""" start="00:20:47.240" video="mainVideo-scheme" id="subtitle"]] -- cgit v1.2.3