summaryrefslogblamecommitdiffstats
path: root/2020/subtitles/emacsconf-2020--13-experience-report-steps-to-emacs-hyper-notebooks--joseph-corneli-raymond-puzio-cameron-ray-smith.vtt
blob: 1551308034e930a7c21c4a7c4e5857b019dc8d28 (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







































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































                                                 
WEBVTT

00:00:00.320 --> 00:00:03.280
Joe: Hi, I'm Joe Corneli.

00:00:03.280 --> 00:00:06.879
This is work I did with Ray Puzio and
Cameron Smith.

00:00:06.879 --> 00:00:11.123
They're the main protagonists in
this story.

00:00:11.123 --> 00:00:14.960
They are researchers who've been working

00:00:14.960 --> 00:00:17.490
on theoretical biology.

00:00:17.490 --> 00:00:21.357
In a typical project, they may use
Maxima and Julia.

00:00:21.357 --> 00:00:24.800
Their work combines biology, physics and
computer science.

00:00:24.800 --> 00:00:29.439
The latest work-in-progress is on
branching processes for

00:00:29.439 --> 00:00:30.800
cancer modeling.

00:00:30.800 --> 00:00:34.719
How can Emacs possibly help?

00:00:34.719 --> 00:00:37.360
Let's have a look. Moving code

00:00:37.360 --> 00:00:38.399
and data between these different

00:00:38.399 --> 00:00:39.680
programs by hand is

00:00:39.680 --> 00:00:42.000
annoying. Separate workflows for

00:00:42.000 --> 00:00:44.399
writing up notes and preparing
publications

00:00:44.399 --> 00:00:46.000
is perhaps even more annoying. All of

00:00:46.000 --> 00:00:48.640
it is time consuming and error-prone.

00:00:48.640 --> 00:00:52.000
So what about maybe using Jupyter?

00:00:52.000 --> 00:00:53.760
We found something called Script of

00:00:53.760 --> 00:00:55.199
Scripts. It solves some of those

00:00:55.199 --> 00:00:58.399
problems because you can use

00:00:58.399 --> 00:01:01.120
Maxima and Julia together, but we were

00:01:01.120 --> 00:01:02.640
quite happy to explore Emacs-based

00:01:02.640 --> 00:01:04.890
solutions, being Emcas enthusiasts

00:01:04.890 --> 00:01:07.760
We even got Cameron to be
enthusiastic about

00:01:07.760 --> 00:01:10.057
doing Emacs, so that went nice.

00:01:10.057 --> 00:01:12.400
Here's a little feature grid

00:01:12.400 --> 00:01:15.360
of Emacs + Org versus your

00:01:15.360 --> 00:01:18.390
generic tools that are in a

00:01:18.390 --> 00:01:20.123
different, more general ecosystem.

00:01:20.123 --> 00:01:21.520
As you can see, it's quite

00:01:21.520 --> 00:01:22.957
feature-complete. You've got your

00:01:22.957 --> 00:01:25.520
maxima-mode, julia-mode. You can use both of them

00:01:25.520 --> 00:01:27.119
inside of org-mode.

00:01:27.119 --> 00:01:28.720
You can present things with org-tree-slide.

00:01:28.720 --> 00:01:31.490
You can set up a wiki inside of org-roam.

00:01:31.490 --> 00:01:33.680
This is one I found

00:01:33.680 --> 00:01:35.759
rather recently. You can even use

00:01:35.759 --> 00:01:37.759
compatibly with org-roam, something called

00:01:37.759 --> 00:01:42.159
logseq, which is in the browser, so that's
nice.

00:01:42.159 --> 00:01:44.957
You can do real-time collaborative
editing,

00:01:44.957 --> 00:01:47.657
either in a kind of pairing style

00:01:47.657 --> 00:01:49.280
or in a more Etherpad style.

00:01:49.280 --> 00:01:51.520
Obviously, you can manage your references.

00:01:51.520 --> 00:01:53.457
You can typeset whatever you want.

00:01:53.457 --> 00:01:55.759
You can publish work in progress on
a blog.

00:01:55.759 --> 00:01:57.439
Firn is another one of these

00:01:57.439 --> 00:01:59.790
external Org Mode tools.

00:01:59.790 --> 00:02:00.560
It's not actually in Emacs,

00:02:00.560 --> 00:02:03.557
but works with Org Mode stuff. And, you know...

00:02:03.557 --> 00:02:05.657
So we're good to go with all of that.

00:02:05.657 --> 00:02:07.423
So what does that look like? Well,

00:02:07.423 --> 00:02:09.423
here's a little example from before

00:02:09.423 --> 00:02:12.800
they were doing... before we started
really thinking

00:02:12.800 --> 00:02:13.890
seriously about this stuff.

00:02:13.890 --> 00:02:15.599
So this is just Maxima.

00:02:15.599 --> 00:02:17.440
Well, Maxima doesn't have a long running

00:02:17.440 --> 00:02:19.280
process by default. If you've ever used

00:02:19.280 --> 00:02:22.480
Python, you have something called
sessions.

00:02:22.480 --> 00:02:23.920
They don't have that for Maxima, at least

00:02:23.920 --> 00:02:24.959
not by default.

00:02:24.959 --> 00:02:27.599
So how... What was the workaround?

00:02:27.599 --> 00:02:29.360
There's this thing called

00:02:29.360 --> 00:02:32.480
solve-for-u here

00:02:32.480 --> 00:02:34.879
that shows up down below again in these

00:02:34.879 --> 00:02:36.319
angle brackets, which you've seen maybe

00:02:36.319 --> 00:02:37.360
in someone else's talk,

00:02:37.360 --> 00:02:40.480
which means go to the previous

00:02:40.480 --> 00:02:41.920
thing that was named solve-for-u

00:02:41.920 --> 00:02:43.920
and do that all over again, so they do

00:02:43.920 --> 00:02:45.280
that over again.

00:02:45.280 --> 00:02:47.440
Here's the little Maxima code for

00:02:47.440 --> 00:02:48.990
defining usol, so you've now

00:02:48.990 --> 00:02:51.723
defined usol, and then you can use it

00:02:51.723 --> 00:02:54.000
in the next expression. You get out a
nice juicy

00:02:54.000 --> 00:02:56.560
zero at the end. It's a little bit

00:02:57.200 --> 00:02:58.959
like a partridge in a pear tree to have to

00:02:58.959 --> 00:03:00.640
redefine everything every time.

00:03:00.640 --> 00:03:02.490
So this is clearly at the level of

00:03:02.490 --> 00:03:04.159
work-around. Maybe just

00:03:04.159 --> 00:03:06.223
one more time looking through

00:03:06.223 --> 00:03:11.599
that stuff.

00:03:11.599 --> 00:03:13.760
Sorry. So, looking through that stuff,

00:03:13.760 --> 00:03:15.280
this is... We're going to need something

00:03:15.280 --> 00:03:17.200
like that, probably, for stitching

00:03:17.200 --> 00:03:19.599
Maxima and Julia together. so it's

00:03:19.599 --> 00:03:20.890
good to look a little bit

00:03:20.890 --> 00:03:22.590
about how that might work.

00:03:22.590 --> 00:03:23.920
First of all, you can cache

00:03:23.920 --> 00:03:25.680
results, so if you wanted to save the

00:03:25.680 --> 00:03:28.480
date out of block one at a certain
time and

00:03:28.480 --> 00:03:30.990
then use it again later...

00:03:30.990 --> 00:03:33.280
At the time when I ran this code,

00:03:33.280 --> 00:03:34.640
you can see I've got two slightly

00:03:34.640 --> 00:03:36.623
different time stamps down below.

00:03:36.623 --> 00:03:38.323
One's the cached result, and the other

00:03:38.323 --> 00:03:40.319
was the result of reevaluating

00:03:40.319 --> 00:03:42.640
the block. So you can move things around.

00:03:43.760 --> 00:03:46.000
That's going to be useful. But you know,

00:03:46.000 --> 00:03:46.923
that's not really the main problem.

00:03:46.923 --> 00:03:48.080
The main problem is

00:03:48.080 --> 00:03:50.799
making Maxima long-running.

00:03:50.799 --> 00:03:53.920
The core of this talk is a new observant

00:03:53.920 --> 00:03:56.400
facility, which is a general purpose

00:03:56.400 --> 00:03:59.280
way to do that kind of thing, which

00:03:59.280 --> 00:04:01.823
involves a very simple change to ob-core.

00:04:01.823 --> 00:04:04.239
We'll give a quick

00:04:04.239 --> 00:04:05.360
overview of that and show

00:04:05.360 --> 00:04:08.480
an example. So here's the example,

00:04:08.480 --> 00:04:11.760
a very simple sort of silly example.

00:04:11.760 --> 00:04:12.957
What does it mean to have

00:04:12.957 --> 00:04:13.990
a long-running process?

00:04:13.990 --> 00:04:14.640
Here, I've set this

00:04:14.640 --> 00:04:18.560
display2d to be false, which just
means that

00:04:18.560 --> 00:04:19.440
things are going to come

00:04:19.440 --> 00:04:22.320
come across in 1d. Then I ask it to

00:04:22.320 --> 00:04:25.199
expand something. I get LaTeX
by default.

00:04:25.199 --> 00:04:27.280
So that's what it means. It's that I've sent

00:04:27.280 --> 00:04:28.639
something in and it's going to come

00:04:28.639 --> 00:04:30.240
across in one view, which is great.

00:04:30.240 --> 00:04:32.080
Maybe you'll also notice that there's

00:04:32.080 --> 00:04:34.560
no semicolon, if you're a Maxima fan,

00:04:34.560 --> 00:04:36.720
and things are coming across as TeX.

00:04:36.720 --> 00:04:38.400
So those were some little bonus features.

00:04:38.400 --> 00:04:40.320
I'll show you how that works later.

00:04:41.040 --> 00:04:45.440
The change to ob-core is as follows.

00:04:45.440 --> 00:04:48.880
Actually, this should say...

00:04:48.880 --> 00:04:51.520
Instead of stream here, it should say

00:04:51.520 --> 00:04:54.800
servant. Sorry. We tried an experimental

00:04:54.800 --> 00:04:56.160
version which was called stream, so now it's

00:04:56.160 --> 00:04:58.160
called servant. But all it does is it

00:04:58.160 --> 00:05:01.520
overrides org-babel-execute lang for

00:05:01.520 --> 00:05:02.639
arbitrary lang

00:05:02.639 --> 00:05:05.919
if you have a servant

00:05:05.919 --> 00:05:07.840
in your params. So that's the

00:05:07.840 --> 00:05:09.759
change that hasn't been

00:05:09.759 --> 00:05:11.919
pushed out or sent as a patch to anybody,

00:05:11.919 --> 00:05:13.759
but it's a pretty minor change.

00:05:13.759 --> 00:05:16.960
Here's an overview without the code.

00:05:16.960 --> 00:05:19.080
Just a high level overview of

00:05:19.080 --> 00:05:20.720
observant.el.

00:05:20.720 --> 00:05:22.160
It stores information about these

00:05:22.160 --> 00:05:24.479
processes in a hash table.

00:05:24.479 --> 00:05:26.080
It can do pre-processing and

00:05:26.080 --> 00:05:27.600
post-processing.

00:05:27.600 --> 00:05:29.759
It does all these things. It stores

00:05:29.759 --> 00:05:30.720
the output.

00:05:30.720 --> 00:05:32.479
I mentioned here that, in principle, we

00:05:32.479 --> 00:05:34.080
could store lots of output and have a

00:05:34.080 --> 00:05:35.657
kind of browsable history,

00:05:35.657 --> 00:05:37.790
although we don't do that
presently.

00:05:37.790 --> 00:05:38.790
But that's what observant does.

00:05:38.790 --> 00:05:40.639
It does what you might expect.

00:05:41.440 --> 00:05:46.190
Here's the Maxima on-ramp

00:05:46.190 --> 00:05:48.160
to get Maxima brought in.

00:05:48.160 --> 00:05:49.257
You have to obviously have

00:05:49.257 --> 00:05:51.360
a Maxima process you can call.

00:05:51.360 --> 00:05:54.960
puthash... this is the preprocessing

00:05:54.960 --> 00:05:57.840
thing I mentioned, adding in some Tex

00:05:57.840 --> 00:05:58.960
and adding in--

00:05:58.960 --> 00:06:01.520
or deleting, rather--a substring.

00:06:01.520 --> 00:06:03.759
Here is why you delete the
substring.

00:06:03.759 --> 00:06:06.960
It's because Maxima thinks it's a good

00:06:06.960 --> 00:06:08.240
idea to tell you false

00:06:08.240 --> 00:06:10.080
once you run check on things.

00:06:10.080 --> 00:06:11.759
You've got to delete that back out to

00:06:11.759 --> 00:06:13.680
get something coherent out of it.

00:06:13.680 --> 00:06:16.960
So this is how to set up Maxima.

00:06:16.960 --> 00:06:19.157
That's enough, really, of the demo.

00:06:19.157 --> 00:06:20.000
It's not really a demo for

00:06:20.000 --> 00:06:21.919
show and tell, but as this is an

00:06:21.919 --> 00:06:23.600
experience report, I wanted to talk about

00:06:23.600 --> 00:06:25.440
the experience of doing this.

00:06:25.440 --> 00:06:28.080
Some negatives, like we tried to

00:06:28.080 --> 00:06:30.160
get Emacs Jupyter working

00:06:30.160 --> 00:06:34.190
prior to working on observant.

00:06:34.190 --> 00:06:36.000
We couldn't get it doing

00:06:36.000 --> 00:06:37.919
everything we wanted, despite a bit of

00:06:37.919 --> 00:06:40.160
heavy lifting and debugging and stuff.

00:06:40.160 --> 00:06:42.880
So that's not finished. That was a bit
difficult.

00:06:42.880 --> 00:06:45.360
On the other hand, working on

00:06:45.360 --> 00:06:47.759
observant was fun, pretty lightweight,

00:06:47.759 --> 00:06:48.479
and easy.

00:06:48.479 --> 00:06:50.400
We got some experience co-editing

00:06:50.400 --> 00:06:52.400
things with these real-time tools.

00:06:52.400 --> 00:06:55.919
Obviously, the stack is somewhat work in
progress.

00:06:55.919 --> 00:06:58.000
I just wanted to give a shout out to

00:06:58.000 --> 00:07:00.800
crdt which was really fun,

00:07:00.800 --> 00:07:03.919
and Qiantan was making

00:07:03.919 --> 00:07:06.057
bug fixes for that as we go.

00:07:06.057 --> 00:07:08.960
Similarly, for firn and logseq,
the maintainers

00:07:08.960 --> 00:07:10.160
were really responsive,

00:07:10.160 --> 00:07:12.960
so that was nice. We did try to

00:07:12.960 --> 00:07:14.560
get Emacs running in the browser,

00:07:14.560 --> 00:07:15.840
thinking it would be really nice for

00:07:15.840 --> 00:07:19.290
people who didn't want to install it

00:07:19.290 --> 00:07:21.120
to get a chance to just try it,

00:07:21.120 --> 00:07:23.120
but actually, browsers capture things

00:07:23.120 --> 00:07:27.120
like C-n, so that was a bit annoying.

00:07:27.120 --> 00:07:28.479
But we did get lots of great feedback

00:07:28.479 --> 00:07:29.759
and interaction with people, including

00:07:29.759 --> 00:07:31.599
around this conference. Thank you

00:07:31.599 --> 00:07:33.759
to those who we've had discussions with.

00:07:35.599 --> 00:07:37.680
So, future work. Okay, so... Maybe you

00:07:37.680 --> 00:07:41.039
remember, I gave a talk a few years back
on Arxana.

00:07:41.039 --> 00:07:44.479
What might this have to do with Org
Mode?

00:07:44.479 --> 00:07:45.919
That's always the question one asks

00:07:45.919 --> 00:07:47.039
about Arxana.

00:07:47.039 --> 00:07:48.720
Arxana... One of the things it does

00:07:48.720 --> 00:07:50.319
is transclusions, and so that could be

00:07:50.319 --> 00:07:51.680
actually very helpful

00:07:51.680 --> 00:07:54.000
in connection with this "combined notes

00:07:54.000 --> 00:07:55.520
and write-up" workflow. So you might have

00:07:55.520 --> 00:07:58.400
an Org Mode. Some of these

00:07:58.400 --> 00:08:00.800
results we got back as raw results

00:08:00.800 --> 00:08:03.199
could go right into your write-up in a

00:08:03.919 --> 00:08:07.520
convenient way, at a level above--

00:08:07.520 --> 00:08:09.039
transparently, a level above the notebook.

00:08:09.039 --> 00:08:11.280
So you'd have the notebook alongside the

00:08:11.280 --> 00:08:13.440
write-up in that case,

00:08:13.440 --> 00:08:15.599
which is a variation on the

00:08:15.599 --> 00:08:17.423
literate programming workflow.

00:08:17.423 --> 00:08:19.120
This is speculative. Who knows?

00:08:19.120 --> 00:08:20.000
The other thought is,

00:08:20.000 --> 00:08:22.080
it just relates to the idea of network

00:08:22.080 --> 00:08:23.520
programming. So we can imagine these

00:08:23.520 --> 00:08:25.990
networks of computational nodes

00:08:25.990 --> 00:08:27.623
sitting inside of org-roam,

00:08:27.623 --> 00:08:28.800
calling each other.

00:08:28.800 --> 00:08:31.199
You would want to maintain some

00:08:31.199 --> 00:08:33.357
kind of model of that process.

00:08:33.357 --> 00:08:36.640
A general question is: how do we have a
remote control for

00:08:36.640 --> 00:08:37.957
long-running processes?

00:08:37.957 --> 00:08:38.320
You could do that

00:08:38.320 --> 00:08:39.857
in Lisp or Clojure,

00:08:39.857 --> 00:08:41.657
but maybe we could have something

00:08:41.657 --> 00:08:44.080
a little bit like that here.

00:08:44.080 --> 00:08:45.839
Conclusions: what have we actually

00:08:45.839 --> 00:08:48.080
addressed? Well, we addressed

00:08:48.080 --> 00:08:50.080
accessing any long-running process with

00:08:50.080 --> 00:08:51.600
a simple Org Mode interface.

00:08:51.600 --> 00:08:52.959
Obviously, we're not the only people to

00:08:52.959 --> 00:08:54.880
think about notebooks, but we think that

00:08:54.880 --> 00:08:56.880
Emacs has some advantages

00:08:56.880 --> 00:08:58.880
related to reproducible research and

00:08:58.880 --> 00:09:00.757
interdisciplinary collaboration.

00:09:00.757 --> 00:09:02.590
Let's just say that we think

00:09:02.590 --> 00:09:04.880
something is reproducible if it's
actually teachable

00:09:04.880 --> 00:09:07.200
to someone new and they can do it.

00:09:07.200 --> 00:09:09.190
Org Mode seems very useful for that.

00:09:09.190 --> 00:09:11.680
Many of the other talks have touched
on this.

00:09:11.680 --> 00:09:14.399
Interdisciplinary collaboration is great.

00:09:14.399 --> 00:09:16.000
This was an interdisciplinary

00:09:16.000 --> 00:09:17.839
collaboration on some level, but

00:09:17.839 --> 00:09:19.680
what about future work for

00:09:19.680 --> 00:09:21.190
bringing in scenario planners,

00:09:21.190 --> 00:09:22.320
simulation scientists,

00:09:22.320 --> 00:09:24.480
and local farmers, and building something

00:09:24.480 --> 00:09:26.023
that they can all use

00:09:26.023 --> 00:09:27.857
that's more than the sum of the
parts?

00:09:27.857 --> 00:09:30.720
So a little future work for everybody
else here.

00:09:30.720 --> 00:09:32.160
We think science should be widely

00:09:32.160 --> 00:09:34.560
teachable, shareable, semi-automated,

00:09:34.560 --> 00:09:36.720
transdisciplinary, and real-time

00:09:36.720 --> 00:09:40.399
like EmacsConf. So you can get in touch

00:09:40.399 --> 00:09:43.279
via these methods. The code--which

00:09:43.279 --> 00:09:45.200
is very much early stage work in
progress,

00:09:45.200 --> 00:09:46.640
as this was meant to be an experience

00:09:46.640 --> 00:09:48.800
report, not a "it's all done, here, it is

00:09:48.800 --> 00:09:49.920
polished" report--

00:09:49.920 --> 00:09:51.680
it's also online if you'd like to

00:09:51.680 --> 00:09:53.360
have a look. That's the end of the

00:09:53.360 --> 00:09:54.560
talk. I don't know if there's time

00:09:54.560 --> 00:09:57.440
for questions or not, but um I'm at your
disposal now.

00:09:57.440 --> 00:10:00.240
Thank you.

00:10:00.240 --> 00:10:04.079
(Amin: Many thanks for the tough job.

00:10:04.079 --> 00:10:07.120
Let's see. We have about I think four

00:10:07.120 --> 00:10:08.880
minutes for questions,

00:10:08.880 --> 00:10:10.880
and we have a couple of questions on

00:10:10.880 --> 00:10:12.320
the pad. Would you like to read them

00:10:12.320 --> 00:10:14.240
yourself or should I read them to you?)

00:10:14.240 --> 00:10:16.423
Just for the sake of easy management

00:10:16.423 --> 00:10:18.079
why don't you read them out, if
that's okay?

00:10:18.079 --> 00:10:21.279
(Amin: yeah, sure. They ask, "Have you looked

00:10:21.279 --> 00:10:25.440
into trying Sage Math? I've long wanted

00:10:25.440 --> 00:10:33.760
to use Sage Math in Org files.")

00:10:33.760 --> 00:10:36.959
Ray: Right. I wrote the answer that

00:10:36.959 --> 00:10:39.279
it should be possible because one can

00:10:39.279 --> 00:10:44.839
call it from a command.

00:10:44.839 --> 00:10:48.190
(Amin: okay, and I see there's

00:10:48.190 --> 00:10:50.079
another Sage Math question that you seem
to have answered

00:10:50.079 --> 00:10:52.100
as well, so I guess I won't repeat that.

00:10:54.880 --> 00:10:56.959
There's... "Let's not forget about embedded

00:10:56.959 --> 00:11:00.640
Calc in Emacs.")

00:11:00.640 --> 00:11:05.040
Joe: So the first demos actually were with
Calc.

00:11:05.040 --> 00:11:06.640
That's useful. Although I think it was a

00:11:06.640 --> 00:11:08.240
different--kind of a different command
line.

00:11:08.240 --> 00:11:11.839
Ray: Well, that was UNIX Calc.

00:11:11.839 --> 00:11:13.839
Joe: So, sure, there is calc, so that...

00:11:15.680 --> 00:11:19.120
Ray: Calc is already in Org Mode.

00:11:25.680 --> 00:11:39.760
(Amin: Still looking for questions.

00:11:39.760 --> 00:11:41.760
Okay, I think that's about it. I don't see

00:11:41.760 --> 00:11:44.320
any questions on the Etherpad.

00:11:44.320 --> 00:11:47.440
And let's see...

00:11:47.440 --> 00:11:53.040
Anything on irc?

00:11:53.040 --> 00:11:55.760
Nothing but praises and everyone

00:11:55.760 --> 00:11:57.290
thanking you. Thank you.)

00:11:57.290 --> 00:11:59.120
Ray: all right, you're welcome.

00:11:59.120 --> 00:12:00.240
Joe: Thanks a lot!

00:12:00.240 --> 00:12:01.923
We'll see you guys around then.

00:12:01.923 --> 00:12:06.800
Amin: Cheers, and see you around!