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/parallel-after.md | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) (limited to '2023/info/parallel-after.md') diff --git a/2023/info/parallel-after.md b/2023/info/parallel-after.md index 4a237be5..653eb525 100644 --- a/2023/info/parallel-after.md +++ b/2023/info/parallel-after.md @@ -5,7 +5,7 @@ # Transcript -Introduction +[[!template text="""Introduction""" video="00:00:00.000" id="subtitle"mainVideo-parallel]] [[!template new="1" text="""Hi everyone!""" start="00:00:00.000" video="mainVideo-parallel" id="subtitle"]] [[!template text="""Welcome to our talk on Parallel Text Replacement.""" start="00:00:01.640" video="mainVideo-parallel" id="subtitle"]] @@ -18,7 +18,7 @@ Introduction [[!template text="""with a quick overview of the implementation.""" start="00:00:19.080" video="mainVideo-parallel" id="subtitle"]] [[!template text="""Let's get straight into it!""" start="00:00:21.520" video="mainVideo-parallel" id="subtitle"]] -Problem: Goal +[[!template text="""Problem: Goal""" video="00:00:23.440" id="subtitle"mainVideo-parallel]] [[!template new="1" text="""Here is a problem that most of us have dealt with""" start="00:00:23.440" video="mainVideo-parallel" id="subtitle"]] [[!template text="""at some point.""" start="00:00:25.800" video="mainVideo-parallel" id="subtitle"]] @@ -43,7 +43,7 @@ Problem: Goal [[!template text="""We should object to doing things that the computer""" start="00:01:08.280" video="mainVideo-parallel" id="subtitle"]] [[!template text="""can do for us.""" start="00:01:10.280" video="mainVideo-parallel" id="subtitle"]] -Problem: Naive Multi-pass +[[!template text="""Problem: Naive Multi-pass""" video="00:01:12.360" id="subtitle"mainVideo-parallel]] [[!template new="1" text="""So, one way to automate it is by using our old friend""" start="00:01:12.360" video="mainVideo-parallel" id="subtitle"]] [[!template text="""query-replace (M-%) multiple times in a sequence.""" start="00:01:15.560" video="mainVideo-parallel" id="subtitle"]] @@ -54,7 +54,7 @@ Problem: Naive Multi-pass [[!template text="""doesn't work because it results in interference""" start="00:01:29.160" video="mainVideo-parallel" id="subtitle"]] [[!template text="""between the two replacements.""" start="00:01:31.560" video="mainVideo-parallel" id="subtitle"]] -Problem: Clever Multi-pass +[[!template text="""Problem: Clever Multi-pass""" video="00:01:34.200" id="subtitle"mainVideo-parallel]] [[!template new="1" text="""Instead, we have to be a bit more clever.""" start="00:01:34.200" video="mainVideo-parallel" id="subtitle"]] [[!template text="""We should first replace "foo" with a temporary string,""" start="00:01:36.800" video="mainVideo-parallel" id="subtitle"]] @@ -66,7 +66,7 @@ Problem: Clever Multi-pass [[!template text="""and finally a third pass to replace the token with "bar".""" start="00:01:52.720" video="mainVideo-parallel" id="subtitle"]] [[!template text="""This gives us the result we want.""" start="00:01:56.080" video="mainVideo-parallel" id="subtitle"]] -Problem: Terminology +[[!template text="""Problem: Terminology""" video="00:01:57.720" id="subtitle"mainVideo-parallel]] [[!template new="1" text="""Putting the implementation aside for a moment, this style""" start="00:01:57.720" video="mainVideo-parallel" id="subtitle"]] [[!template text="""of text replacement, where we replace multiple sources""" start="00:02:01.920" video="mainVideo-parallel" id="subtitle"]] @@ -90,7 +90,7 @@ Problem: Terminology [[!template text="""the previously substituted targets of any other pair.""" start="00:02:56.760" video="mainVideo-parallel" id="subtitle"]] [[!template text="""This is what we mean by "no interference".""" start="00:03:00.200" video="mainVideo-parallel" id="subtitle"]] -Problem: Scaling Multi-pass +[[!template text="""Problem: Scaling Multi-pass""" video="00:03:04.440" id="subtitle"mainVideo-parallel]] [[!template new="1" text="""However, manually invoking multiple carefully chosen""" start="00:03:04.440" video="mainVideo-parallel" id="subtitle"]] [[!template text="""query-replace commands gets old very quickly.""" start="00:03:08.000" video="mainVideo-parallel" id="subtitle"]] @@ -111,7 +111,7 @@ Problem: Scaling Multi-pass [[!template text="""and two, might slow down the search if they're overly long.""" start="00:03:50.280" video="mainVideo-parallel" id="subtitle"]] [[!template text="""Can we do better?""" start="00:03:53.480" video="mainVideo-parallel" id="subtitle"]] -Solution: Single-pass +[[!template text="""Solution: Single-pass""" video="00:03:55.920" id="subtitle"mainVideo-parallel]] [[!template new="1" text="""Yes we can!""" start="00:03:55.920" video="mainVideo-parallel" id="subtitle"]] [[!template text="""We can actually perform just a single pass.""" start="00:03:56.840" video="mainVideo-parallel" id="subtitle"]] @@ -122,7 +122,7 @@ Solution: Single-pass [[!template text="""This interleaving of replacements is not something""" start="00:04:12.280" video="mainVideo-parallel" id="subtitle"]] [[!template text="""that's easy to do by hand with query-replace.""" start="00:04:14.520" video="mainVideo-parallel" id="subtitle"]] -Solution: Existing +[[!template text="""Solution: Existing""" video="00:04:18.240" id="subtitle"mainVideo-parallel]] [[!template new="1" text="""Since this is Emacs we're talking about, of course""" start="00:04:18.240" video="mainVideo-parallel" id="subtitle"]] [[!template text="""there already exist solutions that implement this idea.""" start="00:04:20.960" video="mainVideo-parallel" id="subtitle"]] @@ -171,7 +171,7 @@ Solution: Existing [[!template text="""regexes and consolidates all of the existing ideas""" start="00:06:24.240" video="mainVideo-parallel" id="subtitle"]] [[!template text="""into a single package.""" start="00:06:27.120" video="mainVideo-parallel" id="subtitle"]] -Solution: query-replace-parallel +[[!template text="""Solution: query-replace-parallel""" video="00:06:29.080" id="subtitle"mainVideo-parallel]] [[!template new="1" text="""We call it query-replace-parallel.""" start="00:06:29.080" video="mainVideo-parallel" id="subtitle"]] [[!template text="""The package is free and open-source and can currently""" start="00:06:31.360" video="mainVideo-parallel" id="subtitle"]] @@ -184,7 +184,7 @@ Solution: query-replace-parallel [[!template text="""With all of that said, let's go through a few demos""" start="00:06:48.900" video="mainVideo-parallel" id="subtitle"]] [[!template text="""to illustrate some use cases and see how to use the package.""" start="00:06:51.400" video="mainVideo-parallel" id="subtitle"]] -Demonstration: Swap +[[!template text="""Demonstration: Swap""" video="00:06:55.240" id="subtitle"mainVideo-parallel]] [[!template new="1" text="""Our first demo is a simple swap, like the one we""" start="00:06:55.240" video="mainVideo-parallel" id="subtitle"]] [[!template text="""showed at the beginning of the presentation.""" start="00:06:57.560" video="mainVideo-parallel" id="subtitle"]] @@ -209,7 +209,7 @@ Demonstration: Swap [[!template text="""execute them until the end,""" start="00:07:49.203" video="mainVideo-parallel" id="subtitle"]] [[!template text="""and so on.""" start="00:07:50.240" video="mainVideo-parallel" id="subtitle"]] -Demonstration: LaTeX +[[!template text="""Demonstration: LaTeX""" video="00:07:53.970" id="subtitle"mainVideo-parallel]] [[!template new="1" text="""The second demo shows our first regex use case.""" start="00:07:53.970" video="mainVideo-parallel" id="subtitle"]] [[!template text="""Imagine we have the following LaTeX code.""" start="00:07:56.280" video="mainVideo-parallel" id="subtitle"]] @@ -233,7 +233,7 @@ Demonstration: LaTeX [[!template text="""There we go, the fixes are done and we didn't have""" start="00:08:42.280" video="mainVideo-parallel" id="subtitle"]] [[!template text="""to think about in which order to apply them.""" start="00:08:44.480" video="mainVideo-parallel" id="subtitle"]] -Demonstration: Regex +[[!template text="""Demonstration: Regex""" video="00:08:48.700" id="subtitle"mainVideo-parallel]] [[!template new="1" text="""We now take a look at a more complicated regex""" start="00:08:48.700" video="mainVideo-parallel" id="subtitle"]] [[!template text="""example to demonstrate that even advanced query-replace""" start="00:08:51.000" video="mainVideo-parallel" id="subtitle"]] @@ -252,7 +252,7 @@ Demonstration: Regex [[!template text="""Performing the replacements, we can see how each""" start="00:09:27.040" video="mainVideo-parallel" id="subtitle"]] [[!template text="""number is incremented or decremented appropriately.""" start="00:09:29.120" video="mainVideo-parallel" id="subtitle"]] -Demonstration: Order +[[!template text="""Demonstration: Order""" video="00:09:36.320" id="subtitle"mainVideo-parallel]] [[!template new="1" text="""We haven't covered it explicitly so some of you may""" start="00:09:36.320" video="mainVideo-parallel" id="subtitle"]] [[!template text="""be wondering how parallel replacement deals with""" start="00:09:38.760" video="mainVideo-parallel" id="subtitle"]] @@ -280,7 +280,7 @@ Demonstration: Order [[!template text="""The order only matters when two or more sources""" start="00:10:46.760" video="mainVideo-parallel" id="subtitle"]] [[!template text="""share the same prefix, as in this example.""" start="00:10:49.960" video="mainVideo-parallel" id="subtitle"]] -Demonstration: Fun +[[!template text="""Demonstration: Fun""" video="00:10:54.440" id="subtitle"mainVideo-parallel]] [[!template new="1" text="""The final demo tests the limits of the package and""" start="00:10:54.440" video="mainVideo-parallel" id="subtitle"]] [[!template text="""shows that it fully integrates with query-replace.""" start="00:10:56.960" video="mainVideo-parallel" id="subtitle"]] @@ -310,7 +310,7 @@ Demonstration: Fun [[!template text="""We confirm the prompt and finally rename our directories.""" start="00:12:16.300" video="mainVideo-parallel" id="subtitle"]] [[!template text="""Wow, that really paid off.""" start="00:12:25.360" video="mainVideo-parallel" id="subtitle"]] -Implementation +[[!template text="""Implementation""" video="00:12:29.120" id="subtitle"mainVideo-parallel]] [[!template new="1" text="""Before we finish, a few quick words about the""" start="00:12:29.120" video="mainVideo-parallel" id="subtitle"]] [[!template text="""implementation for the curious.""" start="00:12:31.480" video="mainVideo-parallel" id="subtitle"]] @@ -354,7 +354,7 @@ Implementation [[!template text="""tried to do it in the simplest and least intrusive way""" start="00:14:14.040" video="mainVideo-parallel" id="subtitle"]] [[!template text="""possible.""" start="00:14:16.680" video="mainVideo-parallel" id="subtitle"]] -End +[[!template text="""End""" video="00:14:18.740" id="subtitle"mainVideo-parallel]] [[!template new="1" text="""In conclusion, go download and play with the package.""" start="00:14:18.740" video="mainVideo-parallel" id="subtitle"]] [[!template text="""Even if you're not performing overlapping replacements,""" start="00:14:21.680" video="mainVideo-parallel" id="subtitle"]] -- cgit v1.2.3