WEBVTT captioned by Daniel Alejandro Tapia
00:00:00.660 --> 00:00:03.839
Stenotypy is a system of typing
00:00:03.840 --> 00:00:07.339
where you press multiple keys at the same time,
00:00:07.340 --> 00:00:13.359
letting you send more than one letter at a time.
00:00:13.360 --> 00:00:16.939
This is a video from the 1920s.
00:00:16.940 --> 00:00:23.059
The man is holding a stenotype, a device used for stenotypy.
00:00:23.060 --> 00:00:26.359
This particular one is called Grandjean.
00:00:26.360 --> 00:00:30.067
It's made for the French language.
00:00:30.068 --> 00:00:31.739
In this demonstration,
00:00:31.740 --> 00:00:34.899
the man is going to be dictating a passage,
00:00:34.900 --> 00:00:38.759
first, slowly and then quickly.
00:00:38.760 --> 00:00:42.419
The lady on the left doesn't have trouble keeping up.
00:00:42.420 --> 00:00:44.859
She's using stenotypy.
00:00:44.860 --> 00:00:48.319
The lady on the right is a good typist,
00:00:48.320 --> 00:01:13.299
but she can't keep up when the dictation gets faster.
00:01:13.300 --> 00:01:16.019
I'm nowhere near as fast as this lady.
00:01:16.020 --> 00:01:18.779
She's extremely skilled.
00:01:18.780 --> 00:01:24.539
I'm not even a tenth of what she is.
00:01:24.540 --> 00:01:28.399
I don't use Grandjean, I use Melani,
00:01:28.400 --> 00:01:33.319
which is a system for Castilian and Italian.
00:01:33.320 --> 00:01:39.539
If I want to make the word solo, I press S, O, L,
00:01:39.540 --> 00:01:43.319
which is made by two keys, and O.
00:01:43.320 --> 00:01:45.599
Here's what that looks like.
00:01:45.600 --> 00:01:50.799
The hyphen between S and O means that
00:01:50.800 --> 00:01:52.519
the S is on the left side,
00:01:52.520 --> 00:01:57.039
and the rest of the letters are on the right side.
00:01:57.040 --> 00:01:59.999
If I want to write the word sólo,
00:02:00.000 --> 00:02:02.439
which is just like the previous word,
00:02:02.440 --> 00:02:05.479
but with the first O accented,
00:02:05.480 --> 00:02:08.259
I would press the asterisk key.
00:02:08.260 --> 00:02:11.959
In Melani, the asterisk is used
00:02:11.960 --> 00:02:20.299
to put an accent on a letter.
00:02:20.300 --> 00:02:22.039
If you speak English,
00:02:22.040 --> 00:02:25.039
then you would likely use the Ireland system.
00:02:25.040 --> 00:02:28.779
S-E-T makes the word set.
00:02:28.780 --> 00:02:32.379
In Ireland, you can make a long vowel sound
00:02:32.380 --> 00:02:34.259
by pressing the two thumb keys
00:02:34.260 --> 00:02:41.699
on the other side of the vowel you want to make long.
00:02:41.700 --> 00:02:44.120
S-long-E-T makes the word seat.
00:02:50.200 --> 00:02:52.659
This is me programming.
00:02:52.660 --> 00:02:56.480
After a few lines, I'll explain what's going on.
00:03:19.580 --> 00:03:23.379
In GNU Emacs, you can create abbreviations
00:03:23.380 --> 00:03:25.539
that expand to strings.
00:03:25.540 --> 00:03:31.359
For example, you can create an abbrev, like btwx,
00:03:31.360 --> 00:03:33.979
that will expand to "by the way"
00:03:33.980 --> 00:03:40.359
when you succeed btwx with a space or some punctuation.
00:03:40.360 --> 00:03:42.439
Here that's what I'm doing.
00:03:42.440 --> 00:03:48.139
I type d and then emacs, which expands to this.
00:03:48.140 --> 00:03:50.659
But this is a different kind of expansion
00:03:50.660 --> 00:03:54.339
from a simple string like by the way.
00:03:54.340 --> 00:03:56.639
This one has structure.
00:03:56.640 --> 00:04:00.679
It has interesting points that I can jump to.
00:04:00.680 --> 00:04:01.919
It's called a skeleton.
00:04:03.740 --> 00:04:05.939
This is the skeleton.
00:04:05.940 --> 00:04:10.559
The part that I want you to focus on is the @ symbols.
00:04:10.560 --> 00:04:15.739
Those are the interesting points that I jump to.
00:04:15.740 --> 00:04:18.259
So, at one interesting point,
00:04:18.260 --> 00:04:20.699
I can write the name of the function,
00:04:20.700 --> 00:04:24.359
at another interesting point, the arguments
00:04:24.360 --> 00:04:28.619
if the function will need them, the doc string,
00:04:28.620 --> 00:04:31.799
and finally the body.
00:04:31.800 --> 00:04:34.939
When I get to the body, I use stenotypy
00:04:34.940 --> 00:04:39.059
to write the words of the functions I'm looking for.
00:04:39.060 --> 00:04:41.639
Then I call a completion framework
00:04:41.640 --> 00:04:45.059
to choose from a list of candidates.
00:04:45.060 --> 00:04:47.859
This completion framework doesn't care
00:04:47.860 --> 00:04:52.519
what order the words are in or how many words I use.
00:04:52.520 --> 00:04:56.219
This completion framework is called Corfu,
00:04:56.220 --> 00:05:00.459
which stands for COmpletion in Region FUnction.
00:05:00.460 --> 00:05:03.279
And I'm using a package called Orderless
00:05:03.280 --> 00:05:04.439
to make it stronger.
00:05:51.460 --> 00:05:57.199
Here, I use another skeleton, the same one as before.
00:05:57.200 --> 00:06:00.879
This time, it has an argument.
00:06:00.880 --> 00:06:07.239
Then, when I get to the body, I write another skeleton,
00:06:07.240 --> 00:06:12.359
one that has an interesting point between the quotes
00:06:12.360 --> 00:06:14.919
and creates a new line
00:06:14.920 --> 00:06:17.499
right underneath it.
00:06:17.500 --> 00:06:20.319
I typed i and then emacs,
00:06:20.320 --> 00:06:22.359
and I got the interactive skeleton.
00:07:16.120 --> 00:07:18.899
Now, I use another skeleton,
00:07:18.900 --> 00:07:20.479
but these ones differ
00:07:20.480 --> 00:07:23.039
because it prompts me for a string,
00:07:23.040 --> 00:07:27.299
and I can make the skeleton as long as I want.
00:07:27.300 --> 00:07:29.799
If I keep entering text in the prompt,
00:07:29.800 --> 00:07:33.839
then Emacs will keep making the skeleton bigger.
00:07:33.840 --> 00:07:37.999
When I enter an empty string, it knows to stop asking,
00:07:38.000 --> 00:07:39.999
and it sends me to the point
00:07:40.000 --> 00:07:44.619
I've designated to go to when a skeleton is created.
00:07:44.620 --> 00:07:46.439
That's what the underscore means.
00:07:48.260 --> 00:07:54.119
I type c and then Emacs, and I get the condition skeleton.
00:07:54.120 --> 00:08:00.059
And then I use Corfu and Orderless to program.
00:08:00.060 --> 00:08:03.819
On two functions, I use a dabbrev.
00:08:03.820 --> 00:08:09.499
A dabbrev is a dynamic abbreviation.
00:08:09.500 --> 00:08:11.439
Here's how it works.
00:08:11.440 --> 00:08:12.899
If I have three strings
00:08:12.900 --> 00:08:17.819
that begin with S-T, string, strawberry, and stop,
00:08:17.820 --> 00:08:22.179
I can write S-T and then call dabbrev expand.
00:08:22.180 --> 00:08:24.379
First, this will give me stop
00:08:24.380 --> 00:08:27.119
because I'm nearest to the word stop.
00:08:27.120 --> 00:08:30.499
Then when I call it again, I'll get strawberry.
00:08:30.500 --> 00:08:35.459
And if I call it a third time, I'll get string.
00:08:35.460 --> 00:08:40.139
If I start off with S-T-R, then I'll get strawberry first
00:08:40.140 --> 00:08:42.279
and then string.
00:08:42.280 --> 00:08:45.999
I used dabbrev twice in this function.
00:08:46.000 --> 00:08:48.079
If you read the top of the screen,
00:08:48.080 --> 00:08:52.000
you can see which commands I use and how I invoke them.
00:09:00.240 --> 00:09:03.119
Finally, I use one last skeleton
00:09:03.120 --> 00:09:07.039
to map the function I just wrote to a hotkey.
00:09:07.040 --> 00:09:09.500
In this case, C-o.
00:09:15.580 --> 00:09:19.219
Here we can see what the function I just wrote does.
00:09:19.220 --> 00:09:22.239
It opens a line with the line below indented
00:09:22.240 --> 00:09:23.800
if it isn't blank.
00:09:23.801 --> 00:09:29.039
I've kept the old behavior with an argument of zero
00:09:29.040 --> 00:09:33.599
and done something for when I use a negative argument.
00:09:33.600 --> 00:09:36.899
You can see the interesting points.
00:09:36.900 --> 00:09:40.980
I could jump to any of them or cycle through them.
00:09:50.000 --> 00:09:54.619
I normally use a 9-to-16 setup.
00:09:54.620 --> 00:09:58.119
To me, Emacs, and computing in general,
00:09:58.120 --> 00:10:00.880
is much more pleasant to use that way.
00:10:07.680 --> 00:10:09.620
When I stenotype a word,
00:10:10.000 --> 00:10:14.179
a space is sent immediately afterwards.
00:10:14.180 --> 00:10:17.799
Orderless treats spaces as delimiters.
00:10:17.800 --> 00:10:19.379
This is very helpful
00:10:19.380 --> 00:10:23.459
because I can enter commands with stenotypy,
00:10:23.460 --> 00:10:25.219
without having to worry about
00:10:25.220 --> 00:10:27.060
whether words are in the right order.
00:10:29.320 --> 00:10:34.219
Lem, spelled L-E-M, is another Emacs.
00:10:34.220 --> 00:10:35.900
It's extremely powerful.
00:10:35.901 --> 00:10:40.060
But Lem doesn't have skeletons, not yet at least.
00:10:40.061 --> 00:10:40.359
So I'm going to program the traditional way.
00:10:43.740 --> 00:10:47.580
Nothing fancy, just left-to-right programming.
00:11:38.800 --> 00:11:41.520
With Plover, you have dictionaries.
00:11:41.521 --> 00:11:44.860
I added Fibonacci to my dictionary.
00:11:44.861 --> 00:11:47.939
I made my own dictionary from scratch.
00:11:47.940 --> 00:11:49.780
But if you don't want to do that,
00:11:49.781 --> 00:11:52.260
there are free dictionaries available
00:11:52.261 --> 00:11:55.120
that have many words already in them,
00:11:55.121 --> 00:11:56.720
saving you lots of time.
00:11:56.721 --> 00:12:00.279
The reason I made my dictionary from scratch
00:12:00.280 --> 00:12:03.559
is because I wanted to know my system inside and out.
00:12:03.560 --> 00:12:07.960
On one stroke, I typed T.
00:12:07.961 --> 00:12:12.740
And, on the next stroke, I stenotyped coalton.
00:12:12.741 --> 00:12:16.460
And then I got (coalton-toplevel and a new line.
00:12:16.461 --> 00:12:19.519
It's similar to what I did in GNU Emacs
00:12:19.520 --> 00:12:22.579
when I expanded a skeleton.
00:12:22.580 --> 00:12:25.179
This is actually not stenotypy,
00:12:25.180 --> 00:12:29.820
but a different kind of steno, known as serial steno.
00:12:29.821 --> 00:12:32.940
Plover is capable of this as well.
00:12:32.941 --> 00:12:36.840
Here are some things that Plover can do.
00:12:36.841 --> 00:12:38.920
Plover can glue words,
00:12:38.921 --> 00:12:41.460
like if you need to make a compound word.
00:12:41.461 --> 00:12:44.360
It can break a compound word.
00:12:44.361 --> 00:12:48.060
You can press keys to turn off Plover
00:12:48.061 --> 00:12:50.120
or to turn it back on.
00:12:50.121 --> 00:12:52.720
You can case words the way you want,
00:12:52.721 --> 00:12:55.760
uppercase, lowercase, capitalize.
00:12:55.761 --> 00:12:58.820
You can change your stenotype layout,
00:12:58.821 --> 00:13:02.380
like, say, if you want to use Grandjean for French,
00:13:02.381 --> 00:13:06.379
Melani for Castilian, and Ireland for English.
00:13:06.380 --> 00:13:08.020
All of that's possible.
00:13:10.480 --> 00:13:14.619
Here I should note that I'm using a Plover plugin
00:13:14.620 --> 00:13:17.520
called Full Keyboard Steno.
00:13:17.521 --> 00:13:22.180
It makes my entire keyboard into a stenotype.
00:13:26.800 --> 00:13:30.700
Lem also has a completion feature built in.
00:13:30.701 --> 00:13:35.100
But I didn't need it for the code that I wrote.
00:13:35.101 --> 00:13:37.900
It's quite good.
00:13:38.720 --> 00:13:42.280
In summary, if you add in the symbols
00:13:42.281 --> 00:13:45.120
that you're going to need when you're programming,
00:13:45.121 --> 00:13:46.440
you'll be fine.
00:13:46.441 --> 00:13:48.620
Even without skeletons,
00:13:48.621 --> 00:13:51.400
Plover is nice to use for programming.
00:14:00.920 --> 00:14:05.620
The search tool is the primary way of navigating in Emacs.
00:14:05.621 --> 00:14:08.040
Every Emacser can be measured
00:14:08.041 --> 00:14:11.639
by their skill with the search tool.
00:14:11.640 --> 00:14:14.820
C-s begins a forward search.
00:14:14.821 --> 00:14:17.880
The s stands for search.
00:14:18.420 --> 00:14:20.740
I'm reading Aesop's Fables,
00:14:20.741 --> 00:14:23.640
and I want to look for the word fox.
00:14:23.641 --> 00:14:28.200
So I press C-s and type fox.
00:14:28.201 --> 00:14:31.599
If I want to go back to the beginning of the word fox,
00:14:31.600 --> 00:14:37.500
I press C-r, which stands for reverse search.
00:14:37.501 --> 00:14:42.320
With Stenotypy, spaces are added to the end of words,
00:14:42.740 --> 00:14:45.520
so sometimes that causes problems.
00:14:49.060 --> 00:14:52.120
We can remedy that by changing the way
00:14:52.121 --> 00:14:54.880
Emacs interprets our whitespace.
00:14:55.360 --> 00:14:57.960
When I press C-M-s [alt control s],
00:14:57.961 --> 00:15:01.300
whitespace is interpreted as a wildcard.
00:15:01.301 --> 00:15:04.159
It's a function I made myself.
00:15:04.160 --> 00:15:09.159
fox mask will take me to the fox and the mask.
00:15:09.160 --> 00:15:12.180
The whitespace is a wildcard.
00:15:12.181 --> 00:15:16.760
For me, Ctrl-s makes the whitespace literal.
00:15:16.761 --> 00:15:20.539
I like having both options available to me:
00:15:20.540 --> 00:15:25.219
literal whitespace and wildcard whitespace.
00:15:29.420 --> 00:15:32.180
Say I want to find the cat and the fox,
00:15:32.620 --> 00:15:34.859
one of my favorite fables.
00:15:34.860 --> 00:15:39.419
I write cat fox, but I don't get what I want.
00:15:39.420 --> 00:15:42.119
I've written a function that reverses
00:15:42.120 --> 00:15:44.739
the order of my search query.
00:15:45.260 --> 00:15:47.179
Now I get what I want.
00:15:47.880 --> 00:15:50.939
Searching like this is very convenient.
00:15:55.340 --> 00:15:58.539
In Lem, we can do something similar.
00:15:58.540 --> 00:16:01.419
I want to read The Fox and the Lion.
00:16:01.420 --> 00:16:08.379
I search for Lion Fox. Notice those words are capitalized.
00:16:08.380 --> 00:16:11.780
Now I'm going to transform the last two words
00:16:11.781 --> 00:16:14.299
into a regular expression
00:16:14.300 --> 00:16:18.479
so that the order doesn't matter.
00:16:18.480 --> 00:16:21.859
And now I can find the fable I'm looking for.
00:16:27.220 --> 00:16:31.899
I did this with a plugin called Retro Stringop,
00:16:31.900 --> 00:16:34.259
op meaning operation.
00:16:34.260 --> 00:16:40.059
I can perform any operation on the last n words.
00:16:40.060 --> 00:16:42.319
Let's look at that.
00:16:42.320 --> 00:16:44.699
The 2 means that I want to do something
00:16:44.700 --> 00:16:46.939
to the last two words.
00:16:46.940 --> 00:16:50.899
The operation I'm performing is Python code.
00:16:50.900 --> 00:16:54.059
To be honest, I don't know any Python,
00:16:54.060 --> 00:16:57.619
but string manipulation is easy to understand.
00:16:57.620 --> 00:17:01.700
If you do know Python, then you can make your own plugins
00:17:01.701 --> 00:17:04.939
and even help with the development of Plover.
00:17:07.820 --> 00:17:09.899
A feature I like in Lem is that
00:17:09.900 --> 00:17:15.779
when you gracefully exit search with Enter or C-m,
00:17:15.780 --> 00:17:18.499
what you searched for is highlighted.
00:17:18.500 --> 00:17:23.240
You can cycle through the results, the highlights,
00:17:23.241 --> 00:17:26.619
and you can toggle the highlights on or off.
00:17:30.160 --> 00:17:34.480
1978, John Kulp designs a keyboard
00:17:34.481 --> 00:17:37.179
known as the Space Cadet Keyboard.
00:17:37.180 --> 00:17:40.339
This keyboard has many distinctive qualities,
00:17:40.340 --> 00:17:44.419
one being the modifiers, numbering seven in total:
00:17:44.420 --> 00:17:51.139
Shift, Control, Meta, Super, Hyper, Greek, and Top.
00:17:51.900 --> 00:17:56.019
This keyboard influences the development of Emacs.
00:17:56.860 --> 00:18:02.659
2000, designer Kiyoshi Kimura and programmer Yoji Hagia
00:18:02.660 --> 00:18:07.399
release SandS, a program that lets you turn your spacebar
00:18:07.400 --> 00:18:09.659
into a dual-function key,
00:18:09.660 --> 00:18:11.499
sending space on tap
00:18:11.500 --> 00:18:15.139
and acting as the Shift modifier on hold.
00:18:16.220 --> 00:18:18.500
This idea, the dual-function key,
00:18:18.501 --> 00:18:21.379
later revolutionizes typing.
00:18:22.060 --> 00:18:25.640
These two concepts, the space cadet modifiers
00:18:25.641 --> 00:18:29.579
and the dual-function key, can be combined.
00:18:29.580 --> 00:18:32.439
I use a program called Kanata
00:18:32.440 --> 00:18:36.659
to put all the modifiers on my homerow.
00:18:36.660 --> 00:18:40.099
When I tap the letter a, I get an a.
00:18:40.100 --> 00:18:43.419
If I hold it down for longer than 200 milliseconds,
00:18:43.420 --> 00:18:46.739
it acts as the Meta modifier,
00:18:46.740 --> 00:18:48.059
and really I can add
00:18:48.060 --> 00:18:52.399
as many layers to my keyboard as I want.
00:18:52.400 --> 00:18:55.499
I don't use a little stenotype.
00:18:55.500 --> 00:18:59.139
Thanks to Full Keyboard Steno, the Plover plugin,
00:18:59.140 --> 00:19:02.019
I use my whole keyboard.
00:19:02.020 --> 00:19:05.439
I have an alternative keyboard layout on it,
00:19:05.440 --> 00:19:08.699
so, even when I'm typing in the traditional way,
00:19:08.700 --> 00:19:10.379
it feels amazing.
00:19:10.380 --> 00:19:15.699
My layout is called Kuron, and I lay it over Melani
00:19:15.700 --> 00:19:19.619
so that I have both available to me at all times.
00:19:19.620 --> 00:19:24.399
I don't get them confused because I set them off
00:19:24.400 --> 00:19:26.939
with the way I press keys.
00:19:26.940 --> 00:19:29.319
If I press one key at a time,
00:19:29.320 --> 00:19:32.419
I'm using Kuron, my keyboard layout.
00:19:32.420 --> 00:19:35.399
If I press multiple keys at the same time
00:19:35.400 --> 00:19:37.339
and let them go quickly,
00:19:37.340 --> 00:19:41.419
then I'm using stenotypy, in my case Melani.
00:19:41.420 --> 00:19:45.240
And if I hold one key longer than 200 milliseconds,
00:19:45.241 --> 00:19:51.339
then I'm activating it as a modifier key or a layer key.
00:19:51.340 --> 00:19:56.799
I always know what state I'm in by the way I press my keys.
00:19:56.800 --> 00:19:59.619
It's impossible for me to get confused.
00:20:03.800 --> 00:20:07.859
Holding multiple modifiers is not a problem
00:20:07.860 --> 00:20:13.439
because the keycaps used for stenotypy are flat and square.
00:20:13.440 --> 00:20:15.979
Pressing two or more keys at once
00:20:15.980 --> 00:20:18.899
with the same finger is easy.
00:20:18.900 --> 00:20:21.899
Notice how close they are to each other.
00:20:21.900 --> 00:20:25.659
In stenotypy, the homerow is the border
00:20:25.660 --> 00:20:28.139
between the two rows of keys.
00:20:28.560 --> 00:20:31.259
It took me a while to get used to it,
00:20:31.260 --> 00:20:35.259
but now that I am used to it, I quite like it.
00:20:35.640 --> 00:20:38.219
So if I have to press a hotkey
00:20:38.220 --> 00:20:43.979
with all six modifiers, Shift, Control, Meta,
00:20:43.980 --> 00:20:50.899
Alt, Hyper, Super, it's easy.
00:20:50.900 --> 00:20:54.659
Thanks to Kanata, I have a Greek layer on my board.
00:20:54.660 --> 00:20:58.799
Additionally, I have alpha, beta, and gamma layers
00:20:58.800 --> 00:21:03.319
that send sequences of keys that I can use as hotkeys
00:21:03.320 --> 00:21:06.539
in both GNU Emacs and Lem.
00:21:06.540 --> 00:21:10.419
Maybe you noticed a few while I was programming.
00:21:10.420 --> 00:21:12.959
Now it's possible to bring the Space Cadet
00:21:12.960 --> 00:21:17.219
to any keyboard and to build on its wonderful ideas.
00:21:20.920 --> 00:21:24.459
Here I'll note that another Emacser, Excalamus,
00:21:24.460 --> 00:21:27.539
has made a page called Plover with Emacs,
00:21:27.540 --> 00:21:30.639
with information on how to use Emacs
00:21:30.640 --> 00:21:32.539
with the standard stenotype,
00:21:32.540 --> 00:21:34.519
the one that has two rows,
00:21:34.520 --> 00:21:37.439
the one I call a little stenotype.
00:21:37.440 --> 00:21:39.599
While I use my full keyboard,
00:21:39.600 --> 00:21:43.199
I understand how a small board can be useful.
00:21:43.200 --> 00:21:46.159
Finger movement is greatly reduced,
00:21:46.160 --> 00:21:49.439
leading to a very ergonomic typing experience.
00:21:49.440 --> 00:21:53.239
In fact, all of the speed records
00:21:53.240 --> 00:21:57.239
are set with this stenotype, the standard stenotype.
00:21:58.840 --> 00:22:01.479
There are many great ideas on this page.
00:22:01.480 --> 00:22:04.319
Thank you, Excalamus.
00:22:06.800 --> 00:22:09.159
Special thanks to Richard Stallman,
00:22:09.160 --> 00:22:13.119
the creator of GNU Emacs and the Free Software Foundation,
00:22:13.420 --> 00:22:16.919
Sasaki Ryosuke, first name Ryosuke,
00:22:16.920 --> 00:22:19.599
the creator and lead developer of Lem,
00:22:20.120 --> 00:22:24.279
Mirabai Knight, the creator of the Open Steno Project,
00:22:24.280 --> 00:22:26.839
which oversees the development of Plover,
00:22:26.840 --> 00:22:31.159
and jtroo, the creator and lead developer of Kanata.
00:22:32.700 --> 00:22:36.999
The views expressed in this talk are solely my own.
00:22:37.000 --> 00:22:41.159
I have no connection to any of the parties mentioned herein
00:22:41.160 --> 00:22:43.479
and therefore cannot be seen
00:22:43.480 --> 00:22:45.359
as representing them in any capacity.
00:22:45.360 --> 00:22:49.199
What I've said cannot be taken as medical advice.
00:22:50.860 --> 00:22:54.759
I used the TranSide theme for GNU Emacs in this talk.
00:22:54.760 --> 00:22:57.199
It's beautiful and functional.
00:22:57.900 --> 00:23:01.639
I love how the code looks, and I can read the comments.
00:23:03.560 --> 00:23:05.759
In Lem, I used Gruber.
00:23:05.760 --> 00:23:10.399
Again, the comments are readable, and the code looks nice.
00:23:11.200 --> 00:23:13.839
When I first started using Emacs,
00:23:13.840 --> 00:23:16.199
I used the Wheatgrass theme.
00:23:19.980 --> 00:23:23.879
Another theme that I love is os1.
00:23:24.520 --> 00:23:28.239
It's a light, warm, modern theme for Emacs
00:23:28.240 --> 00:23:30.439
inspired by film palettes.
00:23:35.040 --> 00:23:38.499
Regarding typography, for programming,
00:23:38.500 --> 00:23:42.879
I used JuliaMono, which was designed by Cormullion.
00:23:43.520 --> 00:23:46.919
It's extensive, and it's beautiful.
00:23:48.000 --> 00:23:51.039
For graphics, I used PromptFont,
00:23:51.380 --> 00:23:53.959
which was made by Yukari Hafner.
00:23:54.840 --> 00:23:56.479
She's very talented.
00:23:56.480 --> 00:23:59.639
I really like her work, including this font.
00:24:01.180 --> 00:24:04.679
There are so many packages that I love in Emacs.
00:24:05.520 --> 00:24:07.639
If I talked about all of them,
00:24:07.640 --> 00:24:09.799
my talk would last for days,
00:24:09.800 --> 00:24:11.959
so I'm only going to mention three.
00:24:12.580 --> 00:24:14.079
Keycast.
00:24:14.400 --> 00:24:15.519
At the top of the screen,
00:24:15.520 --> 00:24:18.039
you can see the commands I'm executing
00:24:18.040 --> 00:24:20.559
and how I'm invoking those commands.
00:24:20.560 --> 00:24:21.919
That's Keycast.
00:24:21.920 --> 00:24:24.879
Rainbow Delimiters is another one I like.
00:24:25.540 --> 00:24:27.519
It lets me know visually
00:24:27.520 --> 00:24:29.919
when my parentheses are out of balance.
00:24:30.480 --> 00:24:33.199
Very helpful when I'm programming in Lisp.
00:24:35.900 --> 00:24:37.879
Moodline is another.
00:24:37.880 --> 00:24:42.899
The modeline is where I can see relevant information
00:24:42.900 --> 00:24:44.879
about the file I'm working on.
00:24:46.840 --> 00:24:50.759
Moodline only gives me the information I want.
00:24:50.760 --> 00:24:55.460
I'm not really worried about too many things, just
00:24:55.461 --> 00:25:07.160
the file name, the mode I'm in, and where I am in the file.