summaryrefslogblamecommitdiffstats
path: root/2024/captions/emacsconf-2024-literate--literate-programming-for-the-21st-century--howard-abrams--answers.vtt
blob: 803d43df630d40186290d9111590103f3ede630a (plain) (tree)
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
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996



































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































                                                                                                                                                      
WEBVTT

00:00:00.000 --> 00:00:04.839
I'm doing great. Good to hear from you guys. Yeah, I mean,

00:00:04.840 --> 00:00:07.959
you've been a regular of the show, I would say, for quite a

00:00:07.960 --> 00:00:11.399
while, and it's good. I really like the retrospective that

00:00:11.400 --> 00:00:14.959
you did the first time you attended EmacsConf. And when was

00:00:14.960 --> 00:00:18.759
it? Was it 2015? I can't actually remember. 2015 was when I

00:00:18.760 --> 00:00:22.319
presented that, but I did an earlier talk the year before. So

00:00:22.320 --> 00:00:25.479
yeah, that's why it's kind of thing. It's like, wow, it's

00:00:25.480 --> 00:00:31.279
been a decade. It's been a while. Yeah, and I'm glad that you

00:00:31.280 --> 00:00:35.559
are in a much better recording situation than you were in

00:00:35.560 --> 00:00:39.439
2015 at the back of your colleague's house. It's good to see

00:00:39.440 --> 00:00:44.359
you at your own place. Well, it's also nice to pre-record and

00:00:44.360 --> 00:00:48.239
then just share. Yeah, I mean, that's why we keep talking

00:00:48.240 --> 00:00:51.519
about pre-recording. You know, when we really pushed

00:00:51.520 --> 00:00:53.759
pre-recordings, I think it was five years ago when we

00:00:53.760 --> 00:00:57.679
started, people were not really liking it. They thought,

00:00:57.680 --> 00:01:00.039
oh, but most conferences are just asking you to come and

00:01:00.040 --> 00:01:02.919
chat. And, you know, I don't need to do the pesky

00:01:02.920 --> 00:01:06.319
pre-recording. But now, and especially for you regulars,

00:01:06.320 --> 00:01:08.359
you're really starting to realize that pre-recordings are

00:01:08.360 --> 00:01:11.279
actually amazing for everyone. You're less stressed on the

00:01:11.280 --> 00:01:14.199
day of the conference. We, the organizers, are way less

00:01:14.200 --> 00:01:16.519
stressed. So it's a win-win scenario for absolutely

00:01:16.520 --> 00:01:19.359
everyone in the equation. Okay, so there's some

00:01:19.360 --> 00:01:22.519
confirmation bias at work, but I'm not really arguing with

00:01:22.520 --> 00:01:27.639
what Leo says for the record. It may be that we are just that

00:01:27.640 --> 00:01:30.759
this stoked that we're lying to ourselves by the

00:01:30.760 --> 00:01:33.959
opportunity that we have to chat with each of you. Sure.

00:01:33.960 --> 00:01:38.759
Sure. Sure. I have really appreciated all of the, the

00:01:38.760 --> 00:01:43.559
transcripts. It's been great that, you know, to be able to

00:01:43.560 --> 00:01:46.519
read and copy and paste and all that kind of thing. Yeah, it's

00:01:46.520 --> 00:01:49.959
great. So yeah, let's answer some questions here.

00:01:49.960 --> 00:01:58.159
Let's see. Yeah, just feel free to jump onto the Etherpad and

00:01:58.160 --> 00:02:01.239
just drop on the questions. I'll keep answering them all day

00:02:01.240 --> 00:02:07.399
kind of thing and get better answers as we go along.

NOTE Q: What's the largest code base you've ever tackled with the literate approach (esp. Emacs + Org-mode)?

00:02:07.400 --> 00:02:12.439
So yeah, the first question here is, what's my largest code base?

00:02:12.440 --> 00:02:18.359
I kind of touched it in my presentation. However, I think

00:02:18.360 --> 00:02:22.439
someone just went through and did a better count than it

00:02:22.440 --> 00:02:27.879
looks like. a little bit more. So

00:02:27.880 --> 00:02:32.959
as I joked about in the video, we've all worked on larger code

00:02:32.960 --> 00:02:36.799
bases, but that's still, it's kind of significant. So it's

00:02:36.800 --> 00:02:43.679
not, so yeah, anyway. So let's talk a little bit about

00:02:43.680 --> 00:02:49.519
searching for functions here. If you've got your functions

00:02:49.520 --> 00:02:53.679
in your code or code block, well, you can search for the

00:02:53.680 --> 00:02:59.319
descriptions, you know, as long as you've evaluated it. And

00:02:59.320 --> 00:03:04.519
so that wasn't so much of a problem, but I did want to like look

00:03:04.520 --> 00:03:07.839
at the commentary around any function that I would define.

00:03:07.840 --> 00:03:14.039
And that's where, yeah, you know, the C-x or the

00:03:14.040 --> 00:03:18.919
C-f to define that function and display it. It won't

00:03:18.920 --> 00:03:22.279
pull out the literate stuff around it, obviously, it'll

00:03:22.280 --> 00:03:27.159
only do the doc header. But if you could search for it and find

00:03:27.160 --> 00:03:30.559
it quick, then it might be just as useful. And I guess that's

00:03:30.560 --> 00:03:36.079
why I started getting into seeing if I can't tie that into the

00:03:36.080 --> 00:03:40.839
X ref. you know, just the standard ways. My first part, I

00:03:40.840 --> 00:03:45.799
noticed that evil has a different way of searching through

00:03:45.800 --> 00:03:50.999
for looking for code definitions. That was my first foray

00:03:51.000 --> 00:03:53.959
into it. It's like, oh, that's not a bad idea. Let's hook it up

00:03:53.960 --> 00:03:58.079
under, you know, in the standard way.

NOTE Q: Have you ever used org-transclusion?

00:03:58.080 --> 00:04:02.279
Let's see. Have I ever used org-transclusion?

00:04:02.280 --> 00:04:05.319
No, I haven't, but I think I want to

00:04:05.320 --> 00:04:08.439
take a look at it. I haven't heard of it before.

NOTE Q: What is your usage of dynamic blocks in such workflows?

00:04:08.440 --> 00:04:16.519
Let's see. What's my usage of dynamic blocks in my

00:04:16.520 --> 00:04:21.439
workflows? You know, that's a real good question. I haven't

00:04:21.440 --> 00:04:26.319
really used them a lot in all of my workflows, but yeah, it's

00:04:26.320 --> 00:04:29.439
an interesting, you know, we always start.

00:04:29.440 --> 00:04:30.999
At first, all

00:04:31.000 --> 00:04:33.679
we're doing is just taking a few notes, then we start

00:04:33.680 --> 00:04:36.039
organizing, then we've got links, and then we're writing

00:04:36.040 --> 00:04:39.519
code blocks, and then agendas, and table, you know, we keep

00:04:39.520 --> 00:04:40.999
building up on it.

00:04:41.000 --> 00:04:44.399
I guess I haven't really added that to

00:04:44.400 --> 00:04:46.978
my workflow, but maybe I'll have to come back

00:04:46.979 --> 00:04:48.839
and report on that.

NOTE Q: Is the minibuffer being deliberately hidden in this video?

00:04:48.840 --> 00:04:51.599
Is the mini buffer being deliberately hidden in my

00:04:51.600 --> 00:04:57.879
video? Not deliberately. I recorded it first and

00:04:57.880 --> 00:05:03.759
accidentally not clipped the video and turned that all off.

00:05:03.760 --> 00:05:07.359
So I went through and started fixing all of it. But yeah, so

00:05:07.360 --> 00:05:10.759
you'll notice the mini buffer kind of comes and goes in the

00:05:10.760 --> 00:05:12.444
video. Sorry about that.

00:05:12.445 --> 00:05:17.340
So yeah, it wasn't intentional at all.

NOTE Q: What's your take on Emacs+Org vs. Jupyter notebooks (for interactive programming)?

00:05:17.341 --> 00:05:21.839
What's my take on Emacs Org versus Jupyter? That's a real

00:05:21.840 --> 00:05:29.519
good question. I've been toying about seeing if I could do

00:05:29.520 --> 00:05:32.479
everything that some people do with Jupyter notebooks in

00:05:32.480 --> 00:05:36.079
order. I don't need to do it as much because I'm still kind of

00:05:36.080 --> 00:05:40.319
doing a lot of list programming and a lot of my DevOps, which

00:05:40.320 --> 00:05:45.559
is a lot of shell work and a lot of Python. Most of the Jupyter

00:05:45.560 --> 00:05:49.639
notebooks, they automatically include a lot of things in

00:05:49.640 --> 00:05:56.679
from either Julia or Python, like NumPy and all the dynamic

00:05:56.680 --> 00:06:01.439
stuff that's going on there. Since it has a server,

00:06:01.440 --> 00:06:07.439
it seems like it's running a lot more stuff and then just

00:06:07.440 --> 00:06:10.719
shipping it back off into the web app. That has been the

00:06:10.720 --> 00:06:16.239
biggest challenge as I've tried to kind of duplicate that. I

00:06:16.240 --> 00:06:20.439
don't really know NumPy and all the math stuff and that sort

00:06:20.440 --> 00:06:25.039
of stuff that well. So trying to do like matrix

00:06:25.040 --> 00:06:27.359
multiplications and that kind of thing that seemed to be

00:06:27.360 --> 00:06:33.119
pretty easy in the Jupyter, it's not very easy in Org. I've

00:06:33.120 --> 00:06:36.639
attempted to kind of work with Julia and the Julia support

00:06:36.640 --> 00:06:45.759
for Org is really limited it seems. That's the, So, yeah,

00:06:45.760 --> 00:06:49.199
there's some improvements we could probably make. So, I

00:06:49.200 --> 00:06:53.159
think if somebody is comfortable with Jupiter, and that

00:06:53.160 --> 00:06:59.039
seems to work, you may have to stay there. I don't know how

00:06:59.040 --> 00:07:04.679
easy. I would be curious to try to see what we could do as a

00:07:04.680 --> 00:07:07.799
community to kind of make that transition a lot easier.

NOTE Q: Do you think any programming language is more suited to literate programming than another?

00:07:07.800 --> 00:07:12.416
Do you think any programming language

00:07:12.417 --> 00:07:13.559
is more suited to literate

00:07:13.560 --> 00:07:16.959
programming than another? Hey, that's a real good

00:07:16.960 --> 00:07:22.359
question. A lot of mine is with Emacs Lisp, and obviously

00:07:22.360 --> 00:07:27.639
that's a first-class citizen in Emacs. Go figure, right? So

00:07:27.640 --> 00:07:33.519
that one certainly works. A lot depends on the support in the

00:07:33.520 --> 00:07:38.199
OB version for the Babel work. Python is really well

00:07:38.200 --> 00:07:45.599
supported, and yeah, Emacs Lisp. Others, Shell, you know,

00:07:45.600 --> 00:07:50.439
it works, but it's hard to get both the values, the variables

00:07:50.440 --> 00:07:53.479
out of the environment variables into your thing. So most

00:07:53.480 --> 00:07:58.959
everything is just with the results of output. So, you know,

00:07:58.960 --> 00:08:03.079
some languages aren't quite as good as others for sure. I

00:08:03.080 --> 00:08:06.879
would love to see better support for more interesting

00:08:06.880 --> 00:08:10.439
languages, especially ones that are compiled. I've been

00:08:10.440 --> 00:08:16.639
dabbling with Rust and like, yeah, what can we do to have Rust

00:08:16.640 --> 00:08:21.559
more iterative as well? So...

NOTE Q: Do you use inline org function calls and org babel library and such?

00:08:21.560 --> 00:08:29.159
Do you use inline org function calls in Org Babel library? So

00:08:29.160 --> 00:08:33.599
I used to do a lot of Org Babel libraries to kind of share

00:08:33.600 --> 00:08:35.639
things.

00:08:35.640 --> 00:08:46.399
Yeah. What I. But yeah. Sorry, I'm just kind of thinking

00:08:46.400 --> 00:08:49.839
through here. I've done a lot of it in the past. There were a

00:08:49.840 --> 00:08:54.919
lot of bugs in it. Oh, I don't know, eight years ago when I was

00:08:54.920 --> 00:08:59.359
playing with it. I bet things have improved a lot more and it

00:08:59.360 --> 00:09:04.239
probably saved me a lot more effort. Right now, most of the

00:09:04.240 --> 00:09:08.639
literate devops, the devops kind of stuff that I'm doing, is

00:09:08.640 --> 00:09:14.079
calling a lot of back-end programs and that sort of thing. So

00:09:14.080 --> 00:09:19.359
the Org Babel kind of has limited help in that regard. And as

00:09:19.360 --> 00:09:23.999
far as my Emacs work, well, it's just part of the session. So

00:09:24.000 --> 00:09:26.759
it's going to be available or not. So that hasn't been as

00:09:26.760 --> 00:09:30.559
helpful either. So it's kind of dropped off. But I bet if

00:09:30.560 --> 00:09:34.519
you're using something like, say, Python, it might be a lot

00:09:34.520 --> 00:09:36.969
more helpful.

NOTE Q: How do you handle the cases where org markup may sometimes interfere with some of the code?

00:09:36.970 --> 00:09:40.159
Another question, how do you handle the cases

00:09:40.160 --> 00:09:43.999
where markup may sometimes interfere with some of the code

00:09:44.000 --> 00:09:50.559
in places where you can't escape? Oh, okay. All right. Let me

00:09:50.560 --> 00:09:54.719
see if I understand the question correctly.

00:09:54.720 --> 00:10:01.759
When I, like, when I'm making prose, and I'm talking about a

00:10:01.760 --> 00:10:04.839
function that I've written somewhere else, like, oh, I need

00:10:04.840 --> 00:10:09.439
to work on this, or this calls this, and yeah, I'll use the

00:10:09.440 --> 00:10:14.839
tildes or the equal signs on either side to make sure it's.

00:10:14.840 --> 00:10:20.399
that it's clear that it's code. In my xref, when I'm doing a

00:10:20.400 --> 00:10:27.479
thing-at-point so it can go look for that symbol, I do look for

00:10:27.480 --> 00:10:31.919
those things at the end and strip them off so that I can mark it

00:10:31.920 --> 00:10:35.039
up and still search and it's still okay. I'm not sure if

00:10:35.040 --> 00:10:39.359
that's the answer to the question. Yeah, clarifying. I'm

00:10:39.360 --> 00:10:41.759
making prose. I'm talking about a function I've written

00:10:41.760 --> 00:10:47.319
somewhere else. Yeah, yeah, yeah, that is what I'm talking

00:10:47.320 --> 00:10:53.279
about, where a function with tildes on either end, and if I do

00:10:53.280 --> 00:10:57.359
an xref search find for that symbol, it'll strip that off and

00:10:57.360 --> 00:11:01.439
then still look for the function name, so I can still mark it

00:11:01.440 --> 00:11:06.219
correctly.

NOTE Q: You said at the start that literate didn't catch on in corporate DevOps - why not?

00:11:06.220 --> 00:11:08.439
You said at the start that literate didn't catch on in

00:11:08.440 --> 00:11:14.719
corporate devops, why not? You know,

00:11:14.720 --> 00:11:18.919
I guess the big thing is not everybody's using Emacs,

00:11:18.920 --> 00:11:20.610
and I don't think anybody would be

00:11:20.611 --> 00:11:23.651
doing literate programming if you didn't

00:11:23.652 --> 00:11:25.199
have Emacs. I mean, you got to have Org, or it just

00:11:25.200 --> 00:11:29.420
doesn't work that well, right?

NOTE Q: Why not that full stack on Markdown?

00:11:29.421 --> 00:11:36.359
Why not that full stack on Markdown? Yeah, so I often do a lot

00:11:36.360 --> 00:11:44.279
of Markdown. I have got, so I've gone through and make my

00:11:44.280 --> 00:11:49.039
markdown look a lot like Org. So my headers are the same size

00:11:49.040 --> 00:11:54.759
as org. When I mark, do the triple back ticks, you know, and

00:11:54.760 --> 00:11:59.279
specify your language, we can now colorize that.

00:11:59.280 --> 00:12:01.521
So you can kind of now have it

00:12:01.522 --> 00:12:05.679
syntactically marked up. It would be

00:12:05.680 --> 00:12:11.199
interesting if we kind of expanded on Markdown so that I

00:12:11.200 --> 00:12:14.479
could do a C-c twice on it and run that code block.

00:12:14.480 --> 00:12:22.119
That's a real good idea. Maybe we should work on that.

NOTE Corwin's aside on orgvm

00:12:22.120 --> 00:12:28.039
How does your management of TODOs, projects, and tasks

00:12:28.040 --> 00:12:31.679
interact with this literate mindset? I can't believe I'm

00:12:31.680 --> 00:12:33.879
going to do this, but Howard, I'm going to break right in

00:12:33.880 --> 00:12:37.119
there because I just can't. I need to talk about that. So this

00:12:37.120 --> 00:12:41.799
is I bought a domain. And really what I mean is I have this

00:12:41.800 --> 00:12:45.599
domain if somebody gets some work done in this area. I'm

00:12:45.600 --> 00:12:48.839
fascinated by this. That's mostly really actually my whole

00:12:48.840 --> 00:12:52.599
comment. But I just wanted to say, indeed, that is something

00:12:52.600 --> 00:12:56.599
maybe we should work on. Well said. I think the idea of having

00:12:56.600 --> 00:12:59.559
something that's full-stack baked around Emacs is pretty

00:12:59.560 --> 00:13:03.079
fascinating, just thinking about it as some command line

00:13:03.080 --> 00:13:05.639
tool that we can run to get some work done, and then there are

00:13:05.640 --> 00:13:07.969
documents involved, and as you know coming back

00:13:07.970 --> 00:13:10.511
to the kind of corporate

00:13:10.512 --> 00:13:12.759
sense of some of the things like there...

00:13:12.760 --> 00:13:15.319
that's a little dicey the same way a free software

00:13:15.320 --> 00:13:19.038
project raising money for itself is a little dicey.

00:13:19.039 --> 00:13:21.720
It might be a necessary way to get through

00:13:21.721 --> 00:13:23.882
certain kinds of things and like

00:13:23.883 --> 00:13:26.559
what the corporate side of the world brings to the table

00:13:26.560 --> 00:13:31.989
Here in my mind is that idea of I've got a formal process,

00:13:31.990 --> 00:13:33.830
like the process itself is an asset.

00:13:33.831 --> 00:13:35.239
If I were selling my company,

00:13:35.240 --> 00:13:39.399
that would be visibly of value to outside auditors that

00:13:39.400 --> 00:13:43.257
would help us arbitrate the sale. It's just empirical.

00:13:43.258 --> 00:13:48.239
Then tie that together with free software is maybe a little

00:13:48.240 --> 00:13:53.159
unstated ethos of doing our work in the open, and you might

00:13:53.160 --> 00:13:58.759
even deal with some of the ick factor. that you know that for a

00:13:58.760 --> 00:14:05.119
handler. Maybe so, but yeah, the downside to that is you'd

00:14:05.120 --> 00:14:09.679
still need to use Emacs to run through it, right? You know,

00:14:09.680 --> 00:14:13.719
for all those cool features, yes, it would be kind of a yet

00:14:13.720 --> 00:14:17.519
another killer app that we would have. So my domain name is

00:14:17.520 --> 00:14:22.239
orgvm, and my concept is really put org into a box, build a UI

00:14:22.240 --> 00:14:25.119
around it, it executes things that manipulate files that

00:14:25.120 --> 00:14:30.239
generate, let's say, And that's just one conceptual

00:14:30.240 --> 00:14:34.359
solution. But I really do think this is a super fun topic. And

00:14:34.360 --> 00:14:37.479
that's the space. I'm not sure my idea is that wonderful. I

00:14:37.480 --> 00:14:42.439
personally haven't soaked too many weekends into it. But I

00:14:42.440 --> 00:14:45.159
just love the way you're thinking in terms of, well, we

00:14:45.160 --> 00:14:49.519
should think more about that. Gosh, that's great to hear.

NOTE Org and Markdown fragmentation

00:14:49.520 --> 00:14:53.399
Yeah. Yeah, I mean, just like the talk yesterday on the

00:14:53.400 --> 00:14:57.639
future of org, it's like, let's standardize it. Because,

00:14:57.640 --> 00:15:03.239
yeah, we don't want to have org fragmented like Markdown is.

00:15:03.240 --> 00:15:06.839
Markdown is terribly fragmented. You know, everybody's

00:15:06.840 --> 00:15:10.199
got different implementations. And Yeah, what I've ended

00:15:10.200 --> 00:15:15.039
up doing, I don't know if you've seen my blog, but I often I'm

00:15:15.040 --> 00:15:19.119
always just writing an org and talking to myself and writing

00:15:19.120 --> 00:15:22.919
questions and answers and essays come out of that. And then

00:15:22.920 --> 00:15:26.319
I'll put them on my web page and easy. It's easy to publish to a

00:15:26.320 --> 00:15:30.079
web page. Well, I do the same thing at work, but I need to have

00:15:30.080 --> 00:15:33.319
it marked down. I don't start Markdown though. I'm always

00:15:33.320 --> 00:15:36.479
starting an org because that, you know, I can really work

00:15:36.480 --> 00:15:40.239
through the problem space, you know, executing code blocks

00:15:40.240 --> 00:15:44.759
and making sure they work and all of that sort of stuff. And

00:15:44.760 --> 00:15:47.959
then I just export to Markdown and then go cleaned up a little

00:15:47.960 --> 00:15:51.679
bit if I need to. And that makes sense. But I am editing

00:15:51.680 --> 00:15:55.999
Markdown afterwards. So yeah, it would be nice. It would be

00:15:56.000 --> 00:16:00.359
nice. It's just, it's all done over here as opposed to, you

00:16:00.360 --> 00:16:02.879
know, Adding it over there, but yeah, let's think about

00:16:02.880 --> 00:16:06.519
every bit as much as as that. You know, I jumped in in the

00:16:06.520 --> 00:16:09.959
spirit of yes, let's think about it. You know, your, your

00:16:09.960 --> 00:16:12.599
comments about, let's think about the workflows that work

00:16:12.600 --> 00:16:17.919
for us. Wow. Does that hit home? Right? So great. Yeah. Yeah.

NOTE Q: How does your management of "TODOs" (projects/tasks) interact with this literate mindset, any insightful things you do on that front?

00:16:17.920 --> 00:16:25.279
Yeah. Okay. So, uh, on to do's and that sort of thing, um. You

00:16:25.280 --> 00:16:32.199
know, a lot is the same as it was 10 years ago. At the beginning

00:16:32.200 --> 00:16:33.319
of every sprint,

00:16:33.320 --> 00:16:38.279
my company, we're using JIRA.

00:16:38.280 --> 00:16:46.159
All jokes are valid when I say that. But I just go to its web

00:16:46.160 --> 00:16:49.639
page. I copy all the tasks that I need to do that sprint. I

00:16:49.640 --> 00:16:54.119
wrote a function that takes that code and reformats it as a

00:16:54.120 --> 00:16:58.199
bunch of org tasks for me to do that I can just now have all my

00:16:58.200 --> 00:17:02.799
to-dos. And I start to work off of that from that point on. So

00:17:02.800 --> 00:17:06.479
it'll reference all the projects, and I do symlinks to every

00:17:06.480 --> 00:17:12.479
code base that I need to use. Most of the to-dos I put inside my

00:17:12.480 --> 00:17:16.639
code block is kind of just for me, just so I can remember it.

00:17:16.640 --> 00:17:21.086
Because the work that I have to do

00:17:21.087 --> 00:17:24.119
needs to be tracked a little more

00:17:24.120 --> 00:17:30.629
fine-grained, I guess. Yeah.

NOTE Q: Do you LP also on larger projects?

00:17:30.630 --> 00:17:33.439
Do I use LP also on larger

00:17:33.440 --> 00:17:37.199
projects? More files and nested directories? Yeah, I

00:17:37.200 --> 00:17:43.879
haven't really done nested directories, but I can now. Now

00:17:43.880 --> 00:17:49.839
that I've now kind of realized that I have the feature that I

00:17:49.840 --> 00:17:54.439
demonstrated where I can just jump to any projects for a

00:17:54.440 --> 00:17:59.559
particular project, all the org files and all the headings

00:17:59.560 --> 00:18:02.439
show up, that works in nested directories.

00:18:02.440 --> 00:18:10.999
Oh, okay, yeah, somebody's typing it in. Yeah, so it's

00:18:11.000 --> 00:18:15.359
definitely possible. And I have now, since I recorded the

00:18:15.360 --> 00:18:20.519
talk, I've been busy typing in and trying to extract that out

00:18:20.520 --> 00:18:24.479
of my init file and make it into a package. I'm looking for a

00:18:24.480 --> 00:18:30.239
good name right now. I'm calling it jobs, jump to project

00:18:30.240 --> 00:18:36.399
sections. Anyway, but yeah, I think that's kind of a nice,

00:18:36.400 --> 00:18:38.935
useful feature.

NOTE Q: Have you used Cucumber/Gherkin/BDD and do you think it has a strong overlap to what you talked about here?

00:18:38.936 --> 00:18:41.919
Have I used Cucumber, Gherkin, and other

00:18:41.920 --> 00:18:44.479
behavior-driven development?

00:18:44.480 --> 00:18:50.719
Have I, I mean, I do a lot of...

00:18:50.720 --> 00:19:00.279
more test driven. I do a lot of unit tests and I just put it

00:19:00.280 --> 00:19:04.679
right in my code base because if it's in my pros, I can just

00:19:04.680 --> 00:19:07.199
shove it in there. I've got the test right next to the

00:19:07.200 --> 00:19:11.519
function that I'm testing. I like that so I can kind of see it.

00:19:11.520 --> 00:19:15.359
I don't tangle it out to that same source file. I tangle it

00:19:15.360 --> 00:19:19.119
somewhere else if I tangle it at all because I don't need to. I

00:19:19.120 --> 00:19:23.199
can just, you know, C-c that and run it. I like that

00:19:23.200 --> 00:19:24.879
aspect of it.

00:19:24.880 --> 00:19:29.319
Yeah, just keeping things together. That's the big problem

00:19:29.320 --> 00:19:32.479
I have with a lot of tests is the tests are somewhere else.

00:19:32.480 --> 00:19:35.319
It's separate from the code. I like seeing it all together,

00:19:35.320 --> 00:19:39.879
but a lot depends on how extensive it is. So for a lot of the,

00:19:39.880 --> 00:19:43.359
you know, the tests that we end up doing where, you know,

00:19:43.360 --> 00:19:47.759
you've got to do a lot of mocks and a lot of startup and tear

00:19:47.760 --> 00:19:51.839
down, that kind of thing. Yeah, that doesn't help as much.

00:19:51.840 --> 00:19:54.599
And you probably have to kind of go old school on that.

NOTE Q: What granularity are you looking for re your org files and contents, with respect to a codebase that it tangles to, or in non-coding contexts?

00:19:54.600 --> 00:20:01.359
What granularity I'm looking for with my org files and my

00:20:01.360 --> 00:20:03.634
subcontent? That's a real good question

00:20:03.635 --> 00:20:05.255
and really subjective.

00:20:05.256 --> 00:20:13.159
I change that over time. I begin by just dumping.

00:20:13.160 --> 00:20:16.378
I just dump everything in my head into a file

00:20:16.379 --> 00:20:19.679
and then I go through and start to refine it.

00:20:19.680 --> 00:20:26.159
My goal at one point was to have an Emacs config file that was

00:20:26.160 --> 00:20:29.919
really small and simple. And boy, that just doesn't happen.

00:20:29.920 --> 00:20:35.759
It's just too fun to add things and try new ideas. And I found

00:20:35.760 --> 00:20:41.839
my files were just littered with good ideas that were

00:20:41.840 --> 00:20:47.119
half-baked and not finished. And so it's like, oh, I need to

00:20:47.120 --> 00:20:49.959
extract these and put them into different files so I can keep

00:20:49.960 --> 00:20:54.359
it clean. And so I think it's like with any code base, you're

00:20:54.360 --> 00:20:58.999
just going to keep refactoring. It's an iterative process.

00:20:59.000 --> 00:21:04.199
So having the ability to, like with an Org file, where you can

00:21:04.200 --> 00:21:09.159
archive a subtree. Okay, this idea didn't pan out. Archive

00:21:09.160 --> 00:21:13.519
it. I can come back to it later. Being able to just kind of

00:21:13.520 --> 00:21:20.399
shove it somewhere else is really a nice little feature. All

00:21:20.400 --> 00:21:25.079
right. Not a question, just a comment. We need more of your

00:21:25.080 --> 00:21:29.239
insightful posts and videos. Oh, thanks.

00:21:29.240 --> 00:21:35.519
I appreciate it. Yes, it's been a fun journey. And I think we

00:21:35.520 --> 00:21:38.519
are coming up on our time, actually. So that is just an

00:21:38.520 --> 00:21:41.919
amazing quiz. And it helps me from manipulating, as I said,

00:21:41.920 --> 00:21:46.959
or as I put it earlier, like my chance as an organizer, or not

00:21:46.960 --> 00:21:50.679
manipulating, monopolizing my chance as an organizer to

00:21:50.680 --> 00:21:53.439
just get a chance to pick your brain on all kinds of things,

00:21:53.440 --> 00:21:58.959
which is too kind, too kind. Appreciate it. It's been fun.

00:21:58.960 --> 00:22:04.679
All right, I'll try answering more questions online as

00:22:04.680 --> 00:22:07.959
well. All right, talk to you later. And we appreciate your

00:22:07.960 --> 00:22:10.399
being in a huge resource that you are to the community.

00:22:10.400 --> 00:22:14.199
Thanks to everyone for tuning in and we'll be coming over to

00:22:14.200 --> 00:22:18.239
our next talk in just a moment here. And so bear with us

00:22:18.240 --> 00:22:23.239
through the transition as we slip into, I think it's our, is

00:22:23.240 --> 00:22:26.919
that our penultimate or our ultimate talk? We have one or two

00:22:26.920 --> 00:22:30.119
left, I'm not sure. I think we've got a couple of talks left.

00:22:30.120 --> 00:22:34.079
I'm back. Thank you, Howard. And we will be moving to the next

00:22:34.080 --> 00:22:37.159
talk in about six minutes. So if you need to grab some coffee,

00:22:37.160 --> 00:22:42.119
some tea, use the time wisely. And to confirm, we will have

00:22:42.120 --> 00:22:44.319
one, two, three more talks this afternoon. So there's still

00:22:44.320 --> 00:22:48.160
plenty to go around. See you in a bit, folks.