1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
|
<!-- Automatically generated by emacsconf-publish-after-page -->
<a name="steno-mainVideo-transcript"></a>
# Transcript
[[!template text="""Stenotypy is a system of typing""" start="00:00:00.660" video="mainVideo-steno" id="subtitle"]]
[[!template text="""where you press multiple keys at the same time,""" start="00:00:03.840" video="mainVideo-steno" id="subtitle"]]
[[!template text="""letting you send more than one letter at a time.""" start="00:00:07.340" video="mainVideo-steno" id="subtitle"]]
[[!template text="""This is a video from the 1920s.""" start="00:00:13.360" video="mainVideo-steno" id="subtitle"]]
[[!template text="""The man is holding a stenotype, a device used for stenotypy.""" start="00:00:16.940" video="mainVideo-steno" id="subtitle"]]
[[!template text="""This particular one is called Grandjean.""" start="00:00:23.060" video="mainVideo-steno" id="subtitle"]]
[[!template text="""It's made for the French language.""" start="00:00:26.360" video="mainVideo-steno" id="subtitle"]]
[[!template text="""In this demonstration,""" start="00:00:30.068" video="mainVideo-steno" id="subtitle"]]
[[!template text="""the man is going to be dictating a passage,""" start="00:00:31.740" video="mainVideo-steno" id="subtitle"]]
[[!template text="""first, slowly and then quickly.""" start="00:00:34.900" video="mainVideo-steno" id="subtitle"]]
[[!template text="""The lady on the left doesn't have trouble keeping up.""" start="00:00:38.760" video="mainVideo-steno" id="subtitle"]]
[[!template text="""She's using stenotypy.""" start="00:00:42.420" video="mainVideo-steno" id="subtitle"]]
[[!template text="""The lady on the right is a good typist,""" start="00:00:44.860" video="mainVideo-steno" id="subtitle"]]
[[!template text="""but she can't keep up when the dictation gets faster.""" start="00:00:48.320" video="mainVideo-steno" id="subtitle"]]
[[!template text="""I'm nowhere near as fast as this lady.""" start="00:01:13.300" video="mainVideo-steno" id="subtitle"]]
[[!template text="""She's extremely skilled.""" start="00:01:16.020" video="mainVideo-steno" id="subtitle"]]
[[!template text="""I'm not even a tenth of what she is.""" start="00:01:18.780" video="mainVideo-steno" id="subtitle"]]
[[!template text="""I don't use Grandjean, I use Melani,""" start="00:01:24.540" video="mainVideo-steno" id="subtitle"]]
[[!template text="""which is a system for Castilian and Italian.""" start="00:01:28.400" video="mainVideo-steno" id="subtitle"]]
[[!template text="""If I want to make the word solo, I press S, O, L,""" start="00:01:33.320" video="mainVideo-steno" id="subtitle"]]
[[!template text="""which is made by two keys, and O.""" start="00:01:39.540" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Here's what that looks like.""" start="00:01:43.320" video="mainVideo-steno" id="subtitle"]]
[[!template text="""The hyphen between S and O means that""" start="00:01:45.600" video="mainVideo-steno" id="subtitle"]]
[[!template text="""the S is on the left side,""" start="00:01:50.800" video="mainVideo-steno" id="subtitle"]]
[[!template text="""and the rest of the letters are on the right side.""" start="00:01:52.520" video="mainVideo-steno" id="subtitle"]]
[[!template text="""If I want to write the word sólo,""" start="00:01:57.040" video="mainVideo-steno" id="subtitle"]]
[[!template text="""which is just like the previous word,""" start="00:02:00.000" video="mainVideo-steno" id="subtitle"]]
[[!template text="""but with the first O accented,""" start="00:02:02.440" video="mainVideo-steno" id="subtitle"]]
[[!template text="""I would press the asterisk key.""" start="00:02:05.480" video="mainVideo-steno" id="subtitle"]]
[[!template text="""In Melani, the asterisk is used""" start="00:02:08.260" video="mainVideo-steno" id="subtitle"]]
[[!template text="""to put an accent on a letter.""" start="00:02:11.960" video="mainVideo-steno" id="subtitle"]]
[[!template text="""If you speak English,""" start="00:02:20.300" video="mainVideo-steno" id="subtitle"]]
[[!template text="""then you would likely use the Ireland system.""" start="00:02:22.040" video="mainVideo-steno" id="subtitle"]]
[[!template text="""S-E-T makes the word set.""" start="00:02:25.040" video="mainVideo-steno" id="subtitle"]]
[[!template text="""In Ireland, you can make a long vowel sound""" start="00:02:28.780" video="mainVideo-steno" id="subtitle"]]
[[!template text="""by pressing the two thumb keys""" start="00:02:32.380" video="mainVideo-steno" id="subtitle"]]
[[!template text="""on the other side of the vowel you want to make long.""" start="00:02:34.260" video="mainVideo-steno" id="subtitle"]]
[[!template text="""S-long-E-T makes the word seat.""" start="00:02:41.700" video="mainVideo-steno" id="subtitle"]]
[[!template text="""This is me programming.""" start="00:02:50.200" video="mainVideo-steno" id="subtitle"]]
[[!template text="""After a few lines, I'll explain what's going on.""" start="00:02:52.660" video="mainVideo-steno" id="subtitle"]]
[[!template text="""In GNU Emacs, you can create abbreviations""" start="00:03:19.580" video="mainVideo-steno" id="subtitle"]]
[[!template text="""that expand to strings.""" start="00:03:23.380" video="mainVideo-steno" id="subtitle"]]
[[!template text="""For example, you can create an abbrev, like btwx,""" start="00:03:25.540" video="mainVideo-steno" id="subtitle"]]
[[!template text="""that will expand to "by the way"""" start="00:03:31.360" video="mainVideo-steno" id="subtitle"]]
[[!template text="""when you succeed btwx with a space or some punctuation.""" start="00:03:33.980" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Here that's what I'm doing.""" start="00:03:40.360" video="mainVideo-steno" id="subtitle"]]
[[!template text="""I type d and then emacs, which expands to this.""" start="00:03:42.440" video="mainVideo-steno" id="subtitle"]]
[[!template text="""But this is a different kind of expansion""" start="00:03:48.140" video="mainVideo-steno" id="subtitle"]]
[[!template text="""from a simple string like by the way.""" start="00:03:50.660" video="mainVideo-steno" id="subtitle"]]
[[!template text="""This one has structure.""" start="00:03:54.340" video="mainVideo-steno" id="subtitle"]]
[[!template text="""It has interesting points that I can jump to.""" start="00:03:56.640" video="mainVideo-steno" id="subtitle"]]
[[!template text="""It's called a skeleton.""" start="00:04:00.680" video="mainVideo-steno" id="subtitle"]]
[[!template text="""This is the skeleton.""" start="00:04:03.740" video="mainVideo-steno" id="subtitle"]]
[[!template text="""The part that I want you to focus on is the @ symbols.""" start="00:04:05.940" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Those are the interesting points that I jump to.""" start="00:04:10.560" video="mainVideo-steno" id="subtitle"]]
[[!template text="""So, at one interesting point,""" start="00:04:15.740" video="mainVideo-steno" id="subtitle"]]
[[!template text="""I can write the name of the function,""" start="00:04:18.260" video="mainVideo-steno" id="subtitle"]]
[[!template text="""at another interesting point, the arguments""" start="00:04:20.700" video="mainVideo-steno" id="subtitle"]]
[[!template text="""if the function will need them, the doc string,""" start="00:04:24.360" video="mainVideo-steno" id="subtitle"]]
[[!template text="""and finally the body.""" start="00:04:28.620" video="mainVideo-steno" id="subtitle"]]
[[!template text="""When I get to the body, I use stenotypy""" start="00:04:31.800" video="mainVideo-steno" id="subtitle"]]
[[!template text="""to write the words of the functions I'm looking for.""" start="00:04:34.940" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Then I call a completion framework""" start="00:04:39.060" video="mainVideo-steno" id="subtitle"]]
[[!template text="""to choose from a list of candidates.""" start="00:04:41.640" video="mainVideo-steno" id="subtitle"]]
[[!template text="""This completion framework doesn't care""" start="00:04:45.060" video="mainVideo-steno" id="subtitle"]]
[[!template text="""what order the words are in or how many words I use.""" start="00:04:47.860" video="mainVideo-steno" id="subtitle"]]
[[!template text="""This completion framework is called Corfu,""" start="00:04:52.520" video="mainVideo-steno" id="subtitle"]]
[[!template text="""which stands for COmpletion in Region FUnction.""" start="00:04:56.220" video="mainVideo-steno" id="subtitle"]]
[[!template text="""And I'm using a package called Orderless""" start="00:05:00.460" video="mainVideo-steno" id="subtitle"]]
[[!template text="""to make it stronger.""" start="00:05:03.280" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Here, I use another skeleton, the same one as before.""" start="00:05:51.460" video="mainVideo-steno" id="subtitle"]]
[[!template text="""This time, it has an argument.""" start="00:05:57.200" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Then, when I get to the body, I write another skeleton,""" start="00:06:00.880" video="mainVideo-steno" id="subtitle"]]
[[!template text="""one that has an interesting point between the quotes""" start="00:06:07.240" video="mainVideo-steno" id="subtitle"]]
[[!template text="""and creates a new line""" start="00:06:12.360" video="mainVideo-steno" id="subtitle"]]
[[!template text="""right underneath it.""" start="00:06:14.920" video="mainVideo-steno" id="subtitle"]]
[[!template text="""I typed i and then emacs,""" start="00:06:17.500" video="mainVideo-steno" id="subtitle"]]
[[!template text="""and I got the interactive skeleton.""" start="00:06:20.320" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Now, I use another skeleton,""" start="00:07:16.120" video="mainVideo-steno" id="subtitle"]]
[[!template text="""but these ones differ""" start="00:07:18.900" video="mainVideo-steno" id="subtitle"]]
[[!template text="""because it prompts me for a string,""" start="00:07:20.480" video="mainVideo-steno" id="subtitle"]]
[[!template text="""and I can make the skeleton as long as I want.""" start="00:07:23.040" video="mainVideo-steno" id="subtitle"]]
[[!template text="""If I keep entering text in the prompt,""" start="00:07:27.300" video="mainVideo-steno" id="subtitle"]]
[[!template text="""then Emacs will keep making the skeleton bigger.""" start="00:07:29.800" video="mainVideo-steno" id="subtitle"]]
[[!template text="""When I enter an empty string, it knows to stop asking,""" start="00:07:33.840" video="mainVideo-steno" id="subtitle"]]
[[!template text="""and it sends me to the point""" start="00:07:38.000" video="mainVideo-steno" id="subtitle"]]
[[!template text="""I've designated to go to when a skeleton is created.""" start="00:07:40.000" video="mainVideo-steno" id="subtitle"]]
[[!template text="""That's what the underscore means.""" start="00:07:44.620" video="mainVideo-steno" id="subtitle"]]
[[!template text="""I type c and then Emacs, and I get the condition skeleton.""" start="00:07:48.260" video="mainVideo-steno" id="subtitle"]]
[[!template text="""And then I use Corfu and Orderless to program.""" start="00:07:54.120" video="mainVideo-steno" id="subtitle"]]
[[!template text="""On two functions, I use a dabbrev.""" start="00:08:00.060" video="mainVideo-steno" id="subtitle"]]
[[!template text="""A dabbrev is a dynamic abbreviation.""" start="00:08:03.820" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Here's how it works.""" start="00:08:09.500" video="mainVideo-steno" id="subtitle"]]
[[!template text="""If I have three strings""" start="00:08:11.440" video="mainVideo-steno" id="subtitle"]]
[[!template text="""that begin with S-T, string, strawberry, and stop,""" start="00:08:12.900" video="mainVideo-steno" id="subtitle"]]
[[!template text="""I can write S-T and then call dabbrev expand.""" start="00:08:17.820" video="mainVideo-steno" id="subtitle"]]
[[!template text="""First, this will give me stop""" start="00:08:22.180" video="mainVideo-steno" id="subtitle"]]
[[!template text="""because I'm nearest to the word stop.""" start="00:08:24.380" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Then when I call it again, I'll get strawberry.""" start="00:08:27.120" video="mainVideo-steno" id="subtitle"]]
[[!template text="""And if I call it a third time, I'll get string.""" start="00:08:30.500" video="mainVideo-steno" id="subtitle"]]
[[!template text="""If I start off with S-T-R, then I'll get strawberry first""" start="00:08:35.460" video="mainVideo-steno" id="subtitle"]]
[[!template text="""and then string.""" start="00:08:40.140" video="mainVideo-steno" id="subtitle"]]
[[!template text="""I used dabbrev twice in this function.""" start="00:08:42.280" video="mainVideo-steno" id="subtitle"]]
[[!template text="""If you read the top of the screen,""" start="00:08:46.000" video="mainVideo-steno" id="subtitle"]]
[[!template text="""you can see which commands I use and how I invoke them.""" start="00:08:48.080" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Finally, I use one last skeleton""" start="00:09:00.240" video="mainVideo-steno" id="subtitle"]]
[[!template text="""to map the function I just wrote to a hotkey.""" start="00:09:03.120" video="mainVideo-steno" id="subtitle"]]
[[!template text="""In this case, C-o.""" start="00:09:07.040" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Here we can see what the function I just wrote does.""" start="00:09:15.580" video="mainVideo-steno" id="subtitle"]]
[[!template text="""It opens a line with the line below indented""" start="00:09:19.220" video="mainVideo-steno" id="subtitle"]]
[[!template text="""if it isn't blank.""" start="00:09:22.240" video="mainVideo-steno" id="subtitle"]]
[[!template text="""I've kept the old behavior with an argument of zero""" start="00:09:23.801" video="mainVideo-steno" id="subtitle"]]
[[!template text="""and done something for when I use a negative argument.""" start="00:09:29.040" video="mainVideo-steno" id="subtitle"]]
[[!template text="""You can see the interesting points.""" start="00:09:33.600" video="mainVideo-steno" id="subtitle"]]
[[!template text="""I could jump to any of them or cycle through them.""" start="00:09:36.900" video="mainVideo-steno" id="subtitle"]]
[[!template text="""I normally use a 9-to-16 setup.""" start="00:09:50.000" video="mainVideo-steno" id="subtitle"]]
[[!template text="""To me, Emacs, and computing in general,""" start="00:09:54.620" video="mainVideo-steno" id="subtitle"]]
[[!template text="""is much more pleasant to use that way.""" start="00:09:58.120" video="mainVideo-steno" id="subtitle"]]
[[!template text="""When I stenotype a word,""" start="00:10:07.680" video="mainVideo-steno" id="subtitle"]]
[[!template text="""a space is sent immediately afterwards.""" start="00:10:10.000" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Orderless treats spaces as delimiters.""" start="00:10:14.180" video="mainVideo-steno" id="subtitle"]]
[[!template text="""This is very helpful""" start="00:10:17.800" video="mainVideo-steno" id="subtitle"]]
[[!template text="""because I can enter commands with stenotypy,""" start="00:10:19.380" video="mainVideo-steno" id="subtitle"]]
[[!template text="""without having to worry about""" start="00:10:23.460" video="mainVideo-steno" id="subtitle"]]
[[!template text="""whether words are in the right order.""" start="00:10:25.220" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Lem, spelled L-E-M, is another Emacs.""" start="00:10:29.320" video="mainVideo-steno" id="subtitle"]]
[[!template text="""It's extremely powerful.""" start="00:10:34.220" video="mainVideo-steno" id="subtitle"]]
[[!template text="""But Lem doesn't have skeletons, not yet at least.""" start="00:10:35.901" video="mainVideo-steno" id="subtitle"]]
[[!template text="""So I'm going to program the traditional way.""" start="00:10:40.061" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Nothing fancy, just left-to-right programming.""" start="00:10:43.740" video="mainVideo-steno" id="subtitle"]]
[[!template text="""With Plover, you have dictionaries.""" start="00:11:38.800" video="mainVideo-steno" id="subtitle"]]
[[!template text="""I added Fibonacci to my dictionary.""" start="00:11:41.521" video="mainVideo-steno" id="subtitle"]]
[[!template text="""I made my own dictionary from scratch.""" start="00:11:44.861" video="mainVideo-steno" id="subtitle"]]
[[!template text="""But if you don't want to do that,""" start="00:11:47.940" video="mainVideo-steno" id="subtitle"]]
[[!template text="""there are free dictionaries available""" start="00:11:49.781" video="mainVideo-steno" id="subtitle"]]
[[!template text="""that have many words already in them,""" start="00:11:52.261" video="mainVideo-steno" id="subtitle"]]
[[!template text="""saving you lots of time.""" start="00:11:55.121" video="mainVideo-steno" id="subtitle"]]
[[!template text="""The reason I made my dictionary from scratch""" start="00:11:56.721" video="mainVideo-steno" id="subtitle"]]
[[!template text="""is because I wanted to know my system inside and out.""" start="00:12:00.280" video="mainVideo-steno" id="subtitle"]]
[[!template text="""On one stroke, I typed T.""" start="00:12:03.560" video="mainVideo-steno" id="subtitle"]]
[[!template text="""And, on the next stroke, I stenotyped coalton.""" start="00:12:07.961" video="mainVideo-steno" id="subtitle"]]
[[!template text="""And then I got (coalton-toplevel and a new line.""" start="00:12:12.741" video="mainVideo-steno" id="subtitle"]]
[[!template text="""It's similar to what I did in GNU Emacs""" start="00:12:16.461" video="mainVideo-steno" id="subtitle"]]
[[!template text="""when I expanded a skeleton.""" start="00:12:19.520" video="mainVideo-steno" id="subtitle"]]
[[!template text="""This is actually not stenotypy,""" start="00:12:22.580" video="mainVideo-steno" id="subtitle"]]
[[!template text="""but a different kind of steno, known as serial steno.""" start="00:12:25.180" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Plover is capable of this as well.""" start="00:12:29.821" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Here are some things that Plover can do.""" start="00:12:32.941" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Plover can glue words,""" start="00:12:36.841" video="mainVideo-steno" id="subtitle"]]
[[!template text="""like if you need to make a compound word.""" start="00:12:38.921" video="mainVideo-steno" id="subtitle"]]
[[!template text="""It can break a compound word.""" start="00:12:41.461" video="mainVideo-steno" id="subtitle"]]
[[!template text="""You can press keys to turn off Plover""" start="00:12:44.361" video="mainVideo-steno" id="subtitle"]]
[[!template text="""or to turn it back on.""" start="00:12:48.061" video="mainVideo-steno" id="subtitle"]]
[[!template text="""You can case words the way you want,""" start="00:12:50.121" video="mainVideo-steno" id="subtitle"]]
[[!template text="""uppercase, lowercase, capitalize.""" start="00:12:52.721" video="mainVideo-steno" id="subtitle"]]
[[!template text="""You can change your stenotype layout,""" start="00:12:55.761" video="mainVideo-steno" id="subtitle"]]
[[!template text="""like, say, if you want to use Grandjean for French,""" start="00:12:58.821" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Melani for Castilian, and Ireland for English.""" start="00:13:02.381" video="mainVideo-steno" id="subtitle"]]
[[!template text="""All of that's possible.""" start="00:13:06.380" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Here I should note that I'm using a Plover plugin""" start="00:13:10.480" video="mainVideo-steno" id="subtitle"]]
[[!template text="""called Full Keyboard Steno.""" start="00:13:14.620" video="mainVideo-steno" id="subtitle"]]
[[!template text="""It makes my entire keyboard into a stenotype.""" start="00:13:17.521" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Lem also has a completion feature built in.""" start="00:13:26.800" video="mainVideo-steno" id="subtitle"]]
[[!template text="""But I didn't need it for the code that I wrote.""" start="00:13:30.701" video="mainVideo-steno" id="subtitle"]]
[[!template text="""It's quite good.""" start="00:13:35.101" video="mainVideo-steno" id="subtitle"]]
[[!template text="""In summary, if you add in the symbols""" start="00:13:38.720" video="mainVideo-steno" id="subtitle"]]
[[!template text="""that you're going to need when you're programming,""" start="00:13:42.281" video="mainVideo-steno" id="subtitle"]]
[[!template text="""you'll be fine.""" start="00:13:45.121" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Even without skeletons,""" start="00:13:46.441" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Plover is nice to use for programming.""" start="00:13:48.621" video="mainVideo-steno" id="subtitle"]]
[[!template text="""The search tool is the primary way of navigating in Emacs.""" start="00:14:00.920" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Every Emacser can be measured""" start="00:14:05.621" video="mainVideo-steno" id="subtitle"]]
[[!template text="""by their skill with the search tool.""" start="00:14:08.041" video="mainVideo-steno" id="subtitle"]]
[[!template text="""C-s begins a forward search.""" start="00:14:11.640" video="mainVideo-steno" id="subtitle"]]
[[!template text="""The s stands for search.""" start="00:14:14.821" video="mainVideo-steno" id="subtitle"]]
[[!template text="""I'm reading Aesop's Fables,""" start="00:14:18.420" video="mainVideo-steno" id="subtitle"]]
[[!template text="""and I want to look for the word fox.""" start="00:14:20.741" video="mainVideo-steno" id="subtitle"]]
[[!template text="""So I press C-s and type fox.""" start="00:14:23.641" video="mainVideo-steno" id="subtitle"]]
[[!template text="""If I want to go back to the beginning of the word fox,""" start="00:14:28.201" video="mainVideo-steno" id="subtitle"]]
[[!template text="""I press C-r, which stands for reverse search.""" start="00:14:31.600" video="mainVideo-steno" id="subtitle"]]
[[!template text="""With Stenotypy, spaces are added to the end of words,""" start="00:14:37.501" video="mainVideo-steno" id="subtitle"]]
[[!template text="""so sometimes that causes problems.""" start="00:14:42.740" video="mainVideo-steno" id="subtitle"]]
[[!template text="""We can remedy that by changing the way""" start="00:14:49.060" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Emacs interprets our whitespace.""" start="00:14:52.121" video="mainVideo-steno" id="subtitle"]]
[[!template text="""When I press C-M-s [alt control s],""" start="00:14:55.360" video="mainVideo-steno" id="subtitle"]]
[[!template text="""whitespace is interpreted as a wildcard.""" start="00:14:57.961" video="mainVideo-steno" id="subtitle"]]
[[!template text="""It's a function I made myself.""" start="00:15:01.301" video="mainVideo-steno" id="subtitle"]]
[[!template text="""fox mask will take me to the fox and the mask.""" start="00:15:04.160" video="mainVideo-steno" id="subtitle"]]
[[!template text="""The whitespace is a wildcard.""" start="00:15:09.160" video="mainVideo-steno" id="subtitle"]]
[[!template text="""For me, Ctrl-s makes the whitespace literal.""" start="00:15:12.181" video="mainVideo-steno" id="subtitle"]]
[[!template text="""I like having both options available to me:""" start="00:15:16.761" video="mainVideo-steno" id="subtitle"]]
[[!template text="""literal whitespace and wildcard whitespace.""" start="00:15:20.540" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Say I want to find the cat and the fox,""" start="00:15:29.420" video="mainVideo-steno" id="subtitle"]]
[[!template text="""one of my favorite fables.""" start="00:15:32.620" video="mainVideo-steno" id="subtitle"]]
[[!template text="""I write cat fox, but I don't get what I want.""" start="00:15:34.860" video="mainVideo-steno" id="subtitle"]]
[[!template text="""I've written a function that reverses""" start="00:15:39.420" video="mainVideo-steno" id="subtitle"]]
[[!template text="""the order of my search query.""" start="00:15:42.120" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Now I get what I want.""" start="00:15:45.260" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Searching like this is very convenient.""" start="00:15:47.880" video="mainVideo-steno" id="subtitle"]]
[[!template text="""In Lem, we can do something similar.""" start="00:15:55.340" video="mainVideo-steno" id="subtitle"]]
[[!template text="""I want to read The Fox and the Lion.""" start="00:15:58.540" video="mainVideo-steno" id="subtitle"]]
[[!template text="""I search for Lion Fox. Notice those words are capitalized.""" start="00:16:01.420" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Now I'm going to transform the last two words""" start="00:16:08.380" video="mainVideo-steno" id="subtitle"]]
[[!template text="""into a regular expression""" start="00:16:11.781" video="mainVideo-steno" id="subtitle"]]
[[!template text="""so that the order doesn't matter.""" start="00:16:14.300" video="mainVideo-steno" id="subtitle"]]
[[!template text="""And now I can find the fable I'm looking for.""" start="00:16:18.480" video="mainVideo-steno" id="subtitle"]]
[[!template text="""I did this with a plugin called Retro Stringop,""" start="00:16:27.220" video="mainVideo-steno" id="subtitle"]]
[[!template text="""op meaning operation.""" start="00:16:31.900" video="mainVideo-steno" id="subtitle"]]
[[!template text="""I can perform any operation on the last n words.""" start="00:16:34.260" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Let's look at that.""" start="00:16:40.060" video="mainVideo-steno" id="subtitle"]]
[[!template text="""The 2 means that I want to do something""" start="00:16:42.320" video="mainVideo-steno" id="subtitle"]]
[[!template text="""to the last two words.""" start="00:16:44.700" video="mainVideo-steno" id="subtitle"]]
[[!template text="""The operation I'm performing is Python code.""" start="00:16:46.940" video="mainVideo-steno" id="subtitle"]]
[[!template text="""To be honest, I don't know any Python,""" start="00:16:50.900" video="mainVideo-steno" id="subtitle"]]
[[!template text="""but string manipulation is easy to understand.""" start="00:16:54.060" video="mainVideo-steno" id="subtitle"]]
[[!template text="""If you do know Python, then you can make your own plugins""" start="00:16:57.620" video="mainVideo-steno" id="subtitle"]]
[[!template text="""and even help with the development of Plover.""" start="00:17:01.701" video="mainVideo-steno" id="subtitle"]]
[[!template text="""A feature I like in Lem is that""" start="00:17:07.820" video="mainVideo-steno" id="subtitle"]]
[[!template text="""when you gracefully exit search with Enter or C-m,""" start="00:17:09.900" video="mainVideo-steno" id="subtitle"]]
[[!template text="""what you searched for is highlighted.""" start="00:17:15.780" video="mainVideo-steno" id="subtitle"]]
[[!template text="""You can cycle through the results, the highlights,""" start="00:17:18.500" video="mainVideo-steno" id="subtitle"]]
[[!template text="""and you can toggle the highlights on or off.""" start="00:17:23.241" video="mainVideo-steno" id="subtitle"]]
[[!template text="""1978, John Kulp designs a keyboard""" start="00:17:30.160" video="mainVideo-steno" id="subtitle"]]
[[!template text="""known as the Space Cadet Keyboard.""" start="00:17:34.481" video="mainVideo-steno" id="subtitle"]]
[[!template text="""This keyboard has many distinctive qualities,""" start="00:17:37.180" video="mainVideo-steno" id="subtitle"]]
[[!template text="""one being the modifiers, numbering seven in total:""" start="00:17:40.340" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Shift, Control, Meta, Super, Hyper, Greek, and Top.""" start="00:17:44.420" video="mainVideo-steno" id="subtitle"]]
[[!template text="""This keyboard influences the development of Emacs.""" start="00:17:51.900" video="mainVideo-steno" id="subtitle"]]
[[!template text="""2000, designer Kiyoshi Kimura and programmer Yoji Hagia""" start="00:17:56.860" video="mainVideo-steno" id="subtitle"]]
[[!template text="""release SandS, a program that lets you turn your spacebar""" start="00:18:02.660" video="mainVideo-steno" id="subtitle"]]
[[!template text="""into a dual-function key,""" start="00:18:07.400" video="mainVideo-steno" id="subtitle"]]
[[!template text="""sending space on tap""" start="00:18:09.660" video="mainVideo-steno" id="subtitle"]]
[[!template text="""and acting as the Shift modifier on hold.""" start="00:18:11.500" video="mainVideo-steno" id="subtitle"]]
[[!template text="""This idea, the dual-function key,""" start="00:18:16.220" video="mainVideo-steno" id="subtitle"]]
[[!template text="""later revolutionizes typing.""" start="00:18:18.501" video="mainVideo-steno" id="subtitle"]]
[[!template text="""These two concepts, the space cadet modifiers""" start="00:18:22.060" video="mainVideo-steno" id="subtitle"]]
[[!template text="""and the dual-function key, can be combined.""" start="00:18:25.641" video="mainVideo-steno" id="subtitle"]]
[[!template text="""I use a program called Kanata""" start="00:18:29.580" video="mainVideo-steno" id="subtitle"]]
[[!template text="""to put all the modifiers on my homerow.""" start="00:18:32.440" video="mainVideo-steno" id="subtitle"]]
[[!template text="""When I tap the letter a, I get an a.""" start="00:18:36.660" video="mainVideo-steno" id="subtitle"]]
[[!template text="""If I hold it down for longer than 200 milliseconds,""" start="00:18:40.100" video="mainVideo-steno" id="subtitle"]]
[[!template text="""it acts as the Meta modifier,""" start="00:18:43.420" video="mainVideo-steno" id="subtitle"]]
[[!template text="""and really I can add""" start="00:18:46.740" video="mainVideo-steno" id="subtitle"]]
[[!template text="""as many layers to my keyboard as I want.""" start="00:18:48.060" video="mainVideo-steno" id="subtitle"]]
[[!template text="""I don't use a little stenotype.""" start="00:18:52.400" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Thanks to Full Keyboard Steno, the Plover plugin,""" start="00:18:55.500" video="mainVideo-steno" id="subtitle"]]
[[!template text="""I use my whole keyboard.""" start="00:18:59.140" video="mainVideo-steno" id="subtitle"]]
[[!template text="""I have an alternative keyboard layout on it,""" start="00:19:02.020" video="mainVideo-steno" id="subtitle"]]
[[!template text="""so, even when I'm typing in the traditional way,""" start="00:19:05.440" video="mainVideo-steno" id="subtitle"]]
[[!template text="""it feels amazing.""" start="00:19:08.700" video="mainVideo-steno" id="subtitle"]]
[[!template text="""My layout is called Kuron, and I lay it over Melani""" start="00:19:10.380" video="mainVideo-steno" id="subtitle"]]
[[!template text="""so that I have both available to me at all times.""" start="00:19:15.700" video="mainVideo-steno" id="subtitle"]]
[[!template text="""I don't get them confused because I set them off""" start="00:19:19.620" video="mainVideo-steno" id="subtitle"]]
[[!template text="""with the way I press keys.""" start="00:19:24.400" video="mainVideo-steno" id="subtitle"]]
[[!template text="""If I press one key at a time,""" start="00:19:26.940" video="mainVideo-steno" id="subtitle"]]
[[!template text="""I'm using Kuron, my keyboard layout.""" start="00:19:29.320" video="mainVideo-steno" id="subtitle"]]
[[!template text="""If I press multiple keys at the same time""" start="00:19:32.420" video="mainVideo-steno" id="subtitle"]]
[[!template text="""and let them go quickly,""" start="00:19:35.400" video="mainVideo-steno" id="subtitle"]]
[[!template text="""then I'm using stenotypy, in my case Melani.""" start="00:19:37.340" video="mainVideo-steno" id="subtitle"]]
[[!template text="""And if I hold one key longer than 200 milliseconds,""" start="00:19:41.420" video="mainVideo-steno" id="subtitle"]]
[[!template text="""then I'm activating it as a modifier key or a layer key.""" start="00:19:45.241" video="mainVideo-steno" id="subtitle"]]
[[!template text="""I always know what state I'm in by the way I press my keys.""" start="00:19:51.340" video="mainVideo-steno" id="subtitle"]]
[[!template text="""It's impossible for me to get confused.""" start="00:19:56.800" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Holding multiple modifiers is not a problem""" start="00:20:03.800" video="mainVideo-steno" id="subtitle"]]
[[!template text="""because the keycaps used for stenotypy are flat and square.""" start="00:20:07.860" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Pressing two or more keys at once""" start="00:20:13.440" video="mainVideo-steno" id="subtitle"]]
[[!template text="""with the same finger is easy.""" start="00:20:15.980" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Notice how close they are to each other.""" start="00:20:18.900" video="mainVideo-steno" id="subtitle"]]
[[!template text="""In stenotypy, the homerow is the border""" start="00:20:21.900" video="mainVideo-steno" id="subtitle"]]
[[!template text="""between the two rows of keys.""" start="00:20:25.660" video="mainVideo-steno" id="subtitle"]]
[[!template text="""It took me a while to get used to it,""" start="00:20:28.560" video="mainVideo-steno" id="subtitle"]]
[[!template text="""but now that I am used to it, I quite like it.""" start="00:20:31.260" video="mainVideo-steno" id="subtitle"]]
[[!template text="""So if I have to press a hotkey""" start="00:20:35.640" video="mainVideo-steno" id="subtitle"]]
[[!template text="""with all six modifiers, Shift, Control, Meta,""" start="00:20:38.220" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Alt, Hyper, Super, it's easy.""" start="00:20:43.980" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Thanks to Kanata, I have a Greek layer on my board.""" start="00:20:50.900" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Additionally, I have alpha, beta, and gamma layers""" start="00:20:54.660" video="mainVideo-steno" id="subtitle"]]
[[!template text="""that send sequences of keys that I can use as hotkeys""" start="00:20:58.800" video="mainVideo-steno" id="subtitle"]]
[[!template text="""in both GNU Emacs and Lem.""" start="00:21:03.320" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Maybe you noticed a few while I was programming.""" start="00:21:06.540" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Now it's possible to bring the Space Cadet""" start="00:21:10.420" video="mainVideo-steno" id="subtitle"]]
[[!template text="""to any keyboard and to build on its wonderful ideas.""" start="00:21:12.960" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Here I'll note that another Emacser, Excalamus,""" start="00:21:20.920" video="mainVideo-steno" id="subtitle"]]
[[!template text="""has made a page called Plover with Emacs,""" start="00:21:24.460" video="mainVideo-steno" id="subtitle"]]
[[!template text="""with information on how to use Emacs""" start="00:21:27.540" video="mainVideo-steno" id="subtitle"]]
[[!template text="""with the standard stenotype,""" start="00:21:30.640" video="mainVideo-steno" id="subtitle"]]
[[!template text="""the one that has two rows,""" start="00:21:32.540" video="mainVideo-steno" id="subtitle"]]
[[!template text="""the one I call a little stenotype.""" start="00:21:34.520" video="mainVideo-steno" id="subtitle"]]
[[!template text="""While I use my full keyboard,""" start="00:21:37.440" video="mainVideo-steno" id="subtitle"]]
[[!template text="""I understand how a small board can be useful.""" start="00:21:39.600" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Finger movement is greatly reduced,""" start="00:21:43.200" video="mainVideo-steno" id="subtitle"]]
[[!template text="""leading to a very ergonomic typing experience.""" start="00:21:46.160" video="mainVideo-steno" id="subtitle"]]
[[!template text="""In fact, all of the speed records""" start="00:21:49.440" video="mainVideo-steno" id="subtitle"]]
[[!template text="""are set with this stenotype, the standard stenotype.""" start="00:21:53.240" video="mainVideo-steno" id="subtitle"]]
[[!template text="""There are many great ideas on this page.""" start="00:21:58.840" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Thank you, Excalamus.""" start="00:22:01.480" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Special thanks to Richard Stallman,""" start="00:22:06.800" video="mainVideo-steno" id="subtitle"]]
[[!template text="""the creator of GNU Emacs and the Free Software Foundation,""" start="00:22:09.160" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Sasaki Ryosuke, first name Ryosuke,""" start="00:22:13.420" video="mainVideo-steno" id="subtitle"]]
[[!template text="""the creator and lead developer of Lem,""" start="00:22:16.920" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Mirabai Knight, the creator of the Open Steno Project,""" start="00:22:20.120" video="mainVideo-steno" id="subtitle"]]
[[!template text="""which oversees the development of Plover,""" start="00:22:24.280" video="mainVideo-steno" id="subtitle"]]
[[!template text="""and jtroo, the creator and lead developer of Kanata.""" start="00:22:26.840" video="mainVideo-steno" id="subtitle"]]
[[!template text="""The views expressed in this talk are solely my own.""" start="00:22:32.700" video="mainVideo-steno" id="subtitle"]]
[[!template text="""I have no connection to any of the parties mentioned herein""" start="00:22:37.000" video="mainVideo-steno" id="subtitle"]]
[[!template text="""and therefore cannot be seen""" start="00:22:41.160" video="mainVideo-steno" id="subtitle"]]
[[!template text="""as representing them in any capacity.""" start="00:22:43.480" video="mainVideo-steno" id="subtitle"]]
[[!template text="""What I've said cannot be taken as medical advice.""" start="00:22:45.360" video="mainVideo-steno" id="subtitle"]]
[[!template text="""I used the TranSide theme for GNU Emacs in this talk.""" start="00:22:50.860" video="mainVideo-steno" id="subtitle"]]
[[!template text="""It's beautiful and functional.""" start="00:22:54.760" video="mainVideo-steno" id="subtitle"]]
[[!template text="""I love how the code looks, and I can read the comments.""" start="00:22:57.900" video="mainVideo-steno" id="subtitle"]]
[[!template text="""In Lem, I used Gruber.""" start="00:23:03.560" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Again, the comments are readable, and the code looks nice.""" start="00:23:05.760" video="mainVideo-steno" id="subtitle"]]
[[!template text="""When I first started using Emacs,""" start="00:23:11.200" video="mainVideo-steno" id="subtitle"]]
[[!template text="""I used the Wheatgrass theme.""" start="00:23:13.840" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Another theme that I love is os1.""" start="00:23:19.980" video="mainVideo-steno" id="subtitle"]]
[[!template text="""It's a light, warm, modern theme for Emacs""" start="00:23:24.520" video="mainVideo-steno" id="subtitle"]]
[[!template text="""inspired by film palettes.""" start="00:23:28.240" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Regarding typography, for programming,""" start="00:23:35.040" video="mainVideo-steno" id="subtitle"]]
[[!template text="""I used JuliaMono, which was designed by Cormullion.""" start="00:23:38.500" video="mainVideo-steno" id="subtitle"]]
[[!template text="""It's extensive, and it's beautiful.""" start="00:23:43.520" video="mainVideo-steno" id="subtitle"]]
[[!template text="""For graphics, I used PromptFont,""" start="00:23:48.000" video="mainVideo-steno" id="subtitle"]]
[[!template text="""which was made by Yukari Hafner.""" start="00:23:51.380" video="mainVideo-steno" id="subtitle"]]
[[!template text="""She's very talented.""" start="00:23:54.840" video="mainVideo-steno" id="subtitle"]]
[[!template text="""I really like her work, including this font.""" start="00:23:56.480" video="mainVideo-steno" id="subtitle"]]
[[!template text="""There are so many packages that I love in Emacs.""" start="00:24:01.180" video="mainVideo-steno" id="subtitle"]]
[[!template text="""If I talked about all of them,""" start="00:24:05.520" video="mainVideo-steno" id="subtitle"]]
[[!template text="""my talk would last for days,""" start="00:24:07.640" video="mainVideo-steno" id="subtitle"]]
[[!template text="""so I'm only going to mention three.""" start="00:24:09.800" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Keycast.""" start="00:24:12.580" video="mainVideo-steno" id="subtitle"]]
[[!template text="""At the top of the screen,""" start="00:24:14.400" video="mainVideo-steno" id="subtitle"]]
[[!template text="""you can see the commands I'm executing""" start="00:24:15.520" video="mainVideo-steno" id="subtitle"]]
[[!template text="""and how I'm invoking those commands.""" start="00:24:18.040" video="mainVideo-steno" id="subtitle"]]
[[!template text="""That's Keycast.""" start="00:24:20.560" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Rainbow Delimiters is another one I like.""" start="00:24:21.920" video="mainVideo-steno" id="subtitle"]]
[[!template text="""It lets me know visually""" start="00:24:25.540" video="mainVideo-steno" id="subtitle"]]
[[!template text="""when my parentheses are out of balance.""" start="00:24:27.520" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Very helpful when I'm programming in Lisp.""" start="00:24:30.480" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Moodline is another.""" start="00:24:35.900" video="mainVideo-steno" id="subtitle"]]
[[!template text="""The modeline is where I can see relevant information""" start="00:24:37.880" video="mainVideo-steno" id="subtitle"]]
[[!template text="""about the file I'm working on.""" start="00:24:42.900" video="mainVideo-steno" id="subtitle"]]
[[!template text="""Moodline only gives me the information I want.""" start="00:24:46.840" video="mainVideo-steno" id="subtitle"]]
[[!template text="""I'm not really worried about too many things, just""" start="00:24:50.760" video="mainVideo-steno" id="subtitle"]]
[[!template text="""the file name, the mode I'm in, and where I am in the file.""" start="00:24:55.461" video="mainVideo-steno" id="subtitle"]]
Captioner: daniel
Questions or comments? Please e-mail [z111.513.321@gmail.com](mailto:z111.513.321@gmail.com?subject=Comment%20for%20EmacsConf%202023%20steno%3A%20Programming%20with%20steno)
<!-- End of emacsconf-publish-after-page -->
|