summaryrefslogtreecommitdiffstats
path: root/2023/captions/emacsconf-2023-world--gnu-emacs-a-world-of-possibilities--anand-tamariya--main.vtt
blob: 1f27ce5779fcae49cf13364351be19f659b8bc02 (plain) (blame)
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
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
WEBVTT captioned by bhavin192, checked by sachac

NOTE Draw and scribble in GNU Emacs

00:00:00.780 --> 00:00:02.900
Hello. In this video, we will look at

00:00:02.900 --> 00:00:07.167
drawing and scribbling in Emacs using SVG.

00:00:07.167 --> 00:00:10.067
Let's start with `canvas-mode`.

00:00:10.067 --> 00:00:17.539
We will define the width and the height.

00:00:17.540 --> 00:00:19.333
The default is polyline,

00:00:19.333 --> 00:00:23.733
which means you can scribble anything that you want.

00:00:23.733 --> 00:00:30.299
Very handy for taking quick notes.

00:00:30.300 --> 00:00:32.699
Now we will look at

00:00:32.700 --> 00:00:46.333
drawing a triangle using some lines.

00:00:46.333 --> 00:00:57.267
Okay. Now let's draw a circle.

00:00:57.267 --> 00:00:58.900
You can use the mouse to adjust

00:00:58.900 --> 00:01:02.859
the radius of the circle.

00:01:02.860 --> 00:01:04.333
There is some problem with ellipse,

00:01:04.333 --> 00:01:07.939
we will look at it at the end of the video.

00:01:07.940 --> 00:01:11.767
Now let's put up some text,

00:01:11.767 --> 00:01:15.067
a typical "Hello World".

00:01:15.067 --> 00:01:19.879
Size, let's do a 20 font size,

00:01:19.880 --> 00:01:32.359
and we will use the default font family.

00:01:32.360 --> 00:01:37.433
Next, we will look at undoing what we have drawn.

00:01:37.433 --> 00:01:43.067
Just press u for deleting the last drawn object.

00:01:43.067 --> 00:01:45.799
And you can continue pressing

00:01:45.800 --> 00:01:51.959
u for consecutive deletions.

00:01:51.960 --> 00:01:54.533
You can also make a selection of the objects

00:01:54.533 --> 00:01:57.700
on the screen using your mouse and then press u.

00:01:57.700 --> 00:02:02.599
This will delete all the objects in one go.

00:02:02.600 --> 00:02:06.659
Now we are looking at stroke color.

00:02:06.660 --> 00:02:08.633
We will use a brown stroke color

00:02:08.633 --> 00:02:12.879
for drawing our objects.

00:02:12.880 --> 00:02:20.419
Next, let's look at stroke width.

00:02:20.420 --> 00:02:27.979
We will use a width of 5.

00:02:27.980 --> 00:02:41.619
Next, let's fill up the objects with a fill color.

00:02:41.620 --> 00:02:47.159
Now we will look at zoom.

00:02:47.160 --> 00:02:50.119
Use the mouse to select a region and zoom.

00:02:50.120 --> 00:02:54.359
You can also use +, - for zooming in and out.

00:02:54.360 --> 00:03:07.133
Press 0 for resetting the zoom.

00:03:07.133 --> 00:03:14.539
Next, let's save the file,

00:03:14.540 --> 00:03:19.667
and q or Enter for exiting the canvas-mode.

00:03:19.667 --> 00:03:23.760
Now we will open the file in Emacs itself.

00:03:25.220 --> 00:03:26.179
You can see the file,

00:03:26.180 --> 00:03:32.000
you can do Control-c Control-c (`C-c C-c`).

00:03:32.000 --> 00:03:44.419
Finally, we look at ellipse.

00:03:44.420 --> 00:03:46.400
That's all for this video. Thanks!

NOTE SVG Symbols library

00:03:46.400 --> 00:03:48.333
Hello. In this video, we will draw

00:03:48.333 --> 00:03:52.067
schematics using symbols from SVG library in Emacs.

00:03:52.067 --> 00:03:55.000
Press capital L to activate the symbol library

00:03:55.000 --> 00:03:57.867
that you can see on the right hand side,

00:03:57.867 --> 00:04:01.959
and place the symbol on the canvas.

00:04:01.960 --> 00:04:06.639
Let's add another register to this diagram.

00:04:06.640 --> 00:04:11.819
You can press capital R to rotate the symbol.

00:04:11.820 --> 00:04:17.239
Let's place it on the canvas.

00:04:17.240 --> 00:04:31.667
Now we will add a voltage source to the circuit.

00:04:31.667 --> 00:04:33.179
To connect the symbols,

00:04:33.180 --> 00:04:36.967
we will have to use some connecting wires.

00:04:36.967 --> 00:04:39.467
For that, press capital W

00:04:39.467 --> 00:04:46.919
to activate the connection mode.

00:04:46.920 --> 00:04:48.567
Click anywhere on the canvas

00:04:48.567 --> 00:04:53.133
to draw intermediate points, and press Esc

00:04:53.133 --> 00:05:00.033
to exit that particular connection.

00:05:00.033 --> 00:05:16.633
Let's connect other symbols too.

00:05:16.633 --> 00:05:20.139
That's all for this video. Thanks.

NOTE GNU Emacs: A multimedia editor

00:05:20.140 --> 00:05:22.167
Hello. In this video, we will look at

00:05:22.167 --> 00:05:24.933
some basic multimedia editing using Emacs.

00:05:24.933 --> 00:05:27.459
Let's start a media-edit session.

00:05:27.460 --> 00:05:32.000
Let's open a video file.

00:05:32.000 --> 00:05:34.100
The left-hand side is your viewer area,

00:05:34.100 --> 00:05:36.700
and the right-hand side is your track area.

00:05:36.700 --> 00:05:39.667
In the track area, you can use normal Emacs

00:05:39.667 --> 00:05:42.039
text editing movements.

00:05:42.040 --> 00:05:48.167
Now press `C-c r` to refresh the viewer mode

00:05:48.167 --> 00:05:52.767
with the exact time frame.

00:05:52.767 --> 00:05:59.433
Now press SPC to play or pause the video.

00:05:59.433 --> 00:06:03.233
This looks like an interesting point in the video,

00:06:03.233 --> 00:06:11.433
let's track it and split it. Press Enter to do that.

00:06:11.433 --> 00:06:20.733
We will extract some 10 seconds of this video.

00:06:20.733 --> 00:06:23.233
Let's use this.

00:06:23.233 --> 00:06:26.300
Now go here and delete all these lines.

00:06:26.300 --> 00:06:44.133
Let's review our edited clip.

00:06:44.133 --> 00:06:51.833
Looks good! Now press e to export the video.

00:06:51.833 --> 00:06:57.559
Provide an output file name.

00:06:57.560 --> 00:07:04.433
This will use FFmpeg to convert, and you can

00:07:04.433 --> 00:07:16.967
output to any file format supported by FFmpeg.

00:07:16.967 --> 00:07:21.900
Okay. Let's open up shell and view this

00:07:21.900 --> 00:07:57.159
video file in an external video player.

00:07:57.160 --> 00:08:03.367
That's all for this video. Thanks.

NOTE Fill PDF form using GNU Emacs

00:08:03.367 --> 00:08:05.567
Hello. In this video, we will look at

00:08:05.567 --> 00:08:09.760
editing a PDF form using GNU Emacs.

00:08:09.760 --> 00:08:13.840
To start, we have to enable the annotation.

00:08:13.840 --> 00:08:18.533
Then we can use Tab to move forward and Shift+Tab

00:08:18.533 --> 00:08:22.480
to move backwards through the fields.

00:08:22.480 --> 00:08:25.967
To edit a field, we press e.

00:08:25.967 --> 00:08:33.580
So let's edit a text box. We'll call it 'city'.

00:08:33.580 --> 00:08:35.840
Next, we will edit a drop-down.

00:08:35.840 --> 00:08:38.680
Again, press e, and you get a select.

00:08:38.680 --> 00:08:45.833
Use the Minibuffer to select one of the values.

00:08:45.833 --> 00:08:48.500
Let's select 'France'.

08:48.500 --> 00:08:52.180
Now let's edit a radio box.

08:52.180 --> 00:08:55.899
A checkbox or a radio box can be toggled using t.

00:08:55.900 --> 00:08:58.660
You can disable…

08:58.660 --> 00:09:05.140
Now let's save the file, `doc-view-save-form`.

00:09:05.140 --> 00:09:08.360
It will ask for a file name.

00:09:08.360 --> 00:09:13.400
Let's call it `filled1.pdf`. If the file exists,

00:09:13.400 --> 00:09:17.260
it will ask you if you want to overwrite.

09:17.260 --> 00:09:21.460
Now let's verify this new file.

09:21.460 --> 00:09:27.160
In Firefox, we'll copy this file name, call it filled1.

00:09:27.160 --> 00:09:29.100
Let's verify the values.

09:29.100 --> 00:09:32.620
You have city, France and Driving License selected.

09:32.620 --> 00:09:34.900
That's all for this video. Thanks.

NOTE Desktop and window management in GNU Emacs

09:34.900 --> 00:09:37.659
Hello. In this video, we will look at

00:09:37.660 --> 00:09:40.460
desktop and window management in GNU Emacs.

09:40.460 --> 00:09:47.740
We'll start with `task-view`.

09:47.740 --> 00:09:50.467
Top row shows all the desktops,

00:09:50.467 --> 00:09:54.400
and rest of the images are the active windows

00:09:54.400 --> 00:09:59.300
in that particular desktop.

00:09:59.300 --> 00:10:09.159
You can tap to select

00:10:09.160 --> 00:10:13.320
and double tap to activate a particular window.

00:10:13.320 --> 00:10:16.767
You can use m to move selected windows

00:10:16.767 --> 00:10:25.099
to any of the desktops at the top.

00:10:25.100 --> 00:10:29.320
Let's check the third desktop.

00:10:29.320 --> 00:10:49.980
Let's bring it back to the second desktop.

10:49.980 --> 00:10:51.300
The best part,

10:51.300 --> 00:10:54.799
you can select multiple windows

00:10:54.800 --> 00:10:59.979
and form a group by pressing g.

00:10:59.980 --> 00:11:04.867
Then you can select any of the windows

00:11:04.867 --> 00:11:07.639
in this group to activate the complete group.

00:11:07.640 --> 00:11:10.439
That's all for this video. Thanks.

NOTE Screen mirroring in GNU Emacs

00:11:10.440 --> 00:11:12.433
Hello. In this video, we will look at

00:11:12.433 --> 00:11:14.279
screen mirroring using GNU Emacs.

00:11:14.280 --> 00:11:18.779
Run `wfd`. Select an interface.

00:11:18.780 --> 00:11:20.967
Now it will scan for all the available devices

00:11:20.967 --> 00:11:24.800
for screen mirroring.

00:11:24.800 --> 00:11:30.399
I'll select my TV, which is an LG WebOS TV.

00:11:30.400 --> 00:11:38.720
If you don't decline, it will start streaming.

00:11:38.720 --> 00:11:45.140
Let's change some buffer to check the visuals.

11:45.140 --> 00:11:50.219
To terminate the session, just click on quit.

00:11:50.220 --> 00:11:53.033
That's all for this video. Thanks.

NOTE Swipe for Text Input in GNU Emacs

00:11:53.033 --> 00:12:25.533
[Using Sweep to swipe and type "as you like it."]

NOTE Formula Editor in GNU Emacs

00:12:25.533 --> 00:12:39.900
[Formula Editor]

00:12:39.900 --> 00:12:45.033
[Typing fractions in the formula]

00:12:45.033 --> 00:12:59.433
[Adding brackets and an exponent]

NOTE Transliteration in Emacs

00:12:59.433 --> 00:13:05.200
[Hindi (Devanagari script) Phonetic typing]

00:13:05.200 --> 00:13:09.433
[Phonetic typing Gujarati, Bangla, Kannada, and Tamil]

NOTE Social Media client - Tumblr, Reddit

00:13:09.433 --> 00:13:19.533
[Browsing Reddit in Emacs]

00:13:19.533 --> 00:13:29.533
[Browsing Tumblr in Emacs]

00:13:29.533 --> 00:13:40.000
[Browsing X (Twitter) in Emacs]

NOTE Comics Builder

00:13:40.000 --> 00:13:49.567
[Generating comic from a text script]

NOTE Matching game

00:13:49.567 --> 00:13:59.567
[Matching color names with color boxes]

NOTE Interactive XPath Builder in GNU Emacs

00:13:59.567 --> 00:14:01.833
[Running `xpath-builder` on an XML file]

00:14:01.833 --> 00:14:10.767
[Filtering `title`, `para`, and `author` from the XML]

NOTE Interactive JSON Builder in GNU Emacs

00:14:10.767 --> 00:14:29.200
[Filtering `father`, `father.name`, `children`

00:14:29.200 --> 00:14:35.233
`children[1]` from a JSON using JSON Builder]

NOTE GNU Emacs as a lightweight IDE (CEDET Semantic): Java - Generate getter/setter

00:14:35.233 --> 00:14:37.633
Hello. In this video, we will look at

00:14:37.633 --> 00:14:41.659
generating getters and setters in Java using Emacs.

00:14:41.660 --> 00:14:46.233
We will run `srecode-getset-dialog`.

00:14:46.233 --> 00:14:48.767
We will get an option to select particular fields,

00:14:48.767 --> 00:14:51.833
you can expand and collapse.

00:14:51.833 --> 00:14:54.100
You can select all or deselect all,

00:14:54.100 --> 00:14:56.386
or you can choose any particular getter.

00:14:56.386 --> 00:15:02.633
So let's do protected version of this. Here you go.

00:15:02.633 --> 00:15:06.067
If you want to generate for other fields,

00:15:06.067 --> 00:15:08.300
you can re-run it.

00:15:08.300 --> 00:15:11.267
You can check the one that you have already

00:15:11.267 --> 00:15:13.100
generated is not there.

00:15:13.100 --> 00:15:22.300
Now select all, and you can see rest of the

00:15:22.300 --> 00:15:23.933
getters and setters have been generated.

00:15:23.933 --> 00:15:26.133
That's all for this video. Thanks.

NOTE Generate C header

00:15:26.133 --> 00:16:11.640
[Generating C headers using `srecode-gen-header`]

NOTE C Rename symbols

00:16:11.640 --> 00:16:13.833
Hello. In this video, we will look at

00:16:13.833 --> 00:16:17.633
renaming method across multiple files in a project.

00:16:17.633 --> 00:16:24.639
Let's start with `semantic-symref-symbol`.

00:16:24.640 --> 00:16:26.800
Now we have the references.

00:16:26.800 --> 00:16:35.399
Let's use the menu to open all these occurrences.

00:16:35.400 --> 00:16:38.433
To rename it, we have to use

00:16:38.433 --> 00:16:41.919
"Rename Symbol in Open hits."

00:16:41.920 --> 00:16:46.439
Let's rename it to underscore 1 (`_1`).

00:16:46.440 --> 00:16:57.719
We will verify it by compiling the project.

00:16:57.720 --> 00:17:00.300
Let's open the `*Messages*` buffer to see the results

00:17:00.300 --> 00:17:04.167
more clearly. No errors.

00:17:04.167 --> 00:17:07.639
That's all for this video. Thanks.

NOTE SQL (offline)

00:17:07.640 --> 00:17:09.733
Hello. In this video, we will look at

00:17:09.733 --> 00:17:12.439
SQL editing with Semantic.

00:17:12.440 --> 00:17:16.619
We will define a schema in this SQL document.

00:17:16.620 --> 00:17:27.000
Let's create a table.

00:17:27.000 --> 00:17:30.267
We get already existing tables

00:17:30.267 --> 00:17:38.533
in the current document.

00:17:38.533 --> 00:17:57.033
It also supports auto-completion of some keywords.

00:17:57.033 --> 00:18:00.900
Now we can do some queries on the tables.

00:18:00.900 --> 00:18:03.333
We have `SELECT` as the keyword or the SQL,

00:18:03.333 --> 00:18:06.833
so we will select the SQL.

00:18:06.833 --> 00:18:13.559
Here we have all the tables existing in this schema.

00:18:13.560 --> 00:18:25.633
We can also use an alias for completions.

00:18:25.633 --> 00:18:31.267
Now let's look at a more complex example.

00:18:31.267 --> 00:18:43.367
We will try to do a join on two tables.

00:18:43.367 --> 00:19:06.600
Let's add a `WHERE` clause.

00:19:06.600 --> 00:19:23.333
Next, let's do insert.

00:19:23.333 --> 00:19:27.967
You can just click on Tab to go to the next field.

00:19:27.967 --> 00:19:30.700
Let's fill in the columns.

00:19:30.700 --> 00:19:32.667
And do a Tab to go to the values

00:19:32.667 --> 00:19:37.000
and add the corresponding values.

00:19:37.000 --> 00:19:48.033
Finally, an update.

00:19:48.033 --> 00:20:00.700
Now we will try to delete this

00:20:00.700 --> 00:20:07.333
with a `WHERE col11 = 4`.

00:20:07.333 --> 00:20:16.267
Lastly, let's try dropping the table.

00:20:16.267 --> 00:20:21.867
That's all for this video. Thanks.

00:20:21.867 --> 00:20:30.740
Slide with the text "Let's Make Computing Personal."