/
chat-janis-mancevics.html
executable file
·1270 lines (1095 loc) · 48.2 KB
/
chat-janis-mancevics.html
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
997
998
999
1000
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>Emacs Chat: Jānis Mancēvičs - Org and literate programming</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="Org-mode" />
<link rel="stylesheet" type="text/css" href="http://sachachua.com/blog/wp-content/themes/sacha-v3/foundation/css/foundation.min.css"></link>
<link href='http://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css'></link>
<link rel="stylesheet" type="text/css" href="http://sachachua.com/org-export.css"></link>
<link rel="stylesheet" type="text/css" href="http://sachachua.com/blog/wp-content/themes/sacha-v3/style.css"></link>
<link rel="stylesheet" type="text/css" href="css/emchat.css"></link>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script><script src="js/emchat.js"></script>
</head>
<body>
<div id="preamble" class="status">
<div class="sticky contain-to-grid top-menu"><nav class='top-bar'><ul class='links'>
<li><a id='home' class='replace home-design' href='/emacs-chats/'>Home</a></li>
<li><a id='index' class='replace show-for-medium-up home-design' href='/emacs-chats/theindex.html'>Index</a></li>
<li><a id='contact' class='replace home-design' href='http://sachachua.com/blog/contact'>Contact</a></li>
<li class="right"><a href='/emacs-chats/sitemap.html'>Sitemap</a></li>
<li class="right"><a href="https://github.com/sachac/emacs-chats">Github</a></li>
</ul></nav></div>
</div>
<div id="content">
<h1 class="title">Emacs Chat: Jānis Mancēvičs - Org and literate programming</h1>
<p>
<a href="http://sachachua.com/blog/2014/04/emacs-chat-janis-mancevics/">Source</a>
</p>
<p>
Chatting with <a href="https://plus.google.com/u/0/114888672958382153886">Jānis Mancēvičs</a> about literate programming, Unity game development, and code folding.
</p>
<div id="outline-container-sec-1" class="outline-2">
<h2 id="sec-1">Audio and Video</h2>
<div class="outline-text-2" id="text-1">
<iframe src="//www.youtube.com/embed/HOy4h0a_0TI?list=UUlT2UAbC6j7TqOWurVhkuHQ" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe>
<p>
Want just the audio? <a href="https://archive.org/details/EmacsChatJanisMancevics">Get it from archive.org</a>: <a href="https://ia902503.us.archive.org/11/items/EmacsChatJanisMancevics/Emacs-Chat-Janis-Mancevics.mp3">MP3</a>
</p>
</div>
</div>
<div id="outline-container-sec-2" class="outline-2">
<h2 id="sec-2">Transcript</h2>
<div class="outline-text-2" id="text-2">
<p>
<b>Sacha Chua:</b> Okay. Hi and thanks. Janis, is that how you pronounce your name?
</p>
<p>
<b>Janis Mancevics:</b> Actually, the funny thing is that your previous
Emacs chat was with Iannis. Actually, it's written in English Janis
but it is “Iannis.” I'm all the same [inaudible 0:00:23] person.
</p>
<p>
<b>Sacha:</b> That works. Thanks for taking time to chat with me today. You
reached out in your email and you said that you started a video game
company. Not only were you working with Org to do literate programming
for your game but you also got other people to use it–a programmer, a
3D modeller… How does 3D modeling work with Org?
</p>
<p>
<b>Janis:</b> Not so much 3D modeling itself as more documentation on
things – how we communicate and pass information to each other. It's a
nice way. I can even email the text which is formatted correctly as
Org Mode file and the person can just copy and paste in Emacs. I love
that Org Mode is just plain text. It's awesome.
</p>
<p>
<b>Sacha:</b> So you got email and you're emailing Org Mode snippets
around. Do you also share your Org files through some kind of Git
repository? I'm guessing you got documentation in there too, right?
</p>
<p>
<b>Janis:</b> The interesting thing is that I have started to use Git a few
times but somehow Google Drive is the best option I'm finding because
I'm saving work each evening and just uploading a version. I don't
know. It's easier for me to work this way and communicate with people.
</p>
<p>
The thing that we are using, Unity, maybe you know. The cool thing
about that is the other person can work with his own scene and then I
can just import his assets into my project and use them. I think the
most interesting thing as how we use Emacs is just–I don't pretend to
say that it's all configured as we would like–but we are constantly
improving and experimenting which would be the best way. I just love
it. Actually we love together and already are sharing.
</p>
<p>
There is my other programmer whom I'm working with together. He was
studying last year in USA. He's already sharing with friends there the
way how we work. The cool thing is that we can have one CSS file and
we are just exporting Org as HTML and we have everything. Our
documentation codes, everything, is like standard way. We can
highlight code, we can do everything. It's just I haven't found any
instrument which can do the same way.
</p>
<p>
<b>Sacha:</b> I agree. I find it so useful that I can just use “=” signs to
say, okay, this part is going to show up in a fixed font in my blog
post. And there's syntax highlighting, which you're taking advantage
of already. It's really so convenient.
</p>
<p>
Do you use Org mainly for documentation or do you also do literate
programming with it?
</p>
<p>
<b>Janis:</b> Yes, actually we do.
</p>
<p>
This is the thing that we are using for documentation and the cool
thing is that.. It's bad, I can't show an example right now but maybe
later I'm going to send some examples. But we are making literate
programming code with literate programming and exported code is
already with documentation. In Unity, there is an assets folder where
you have the scripts and then we are working with Org file and just
tangling JS files.
</p>
<p>
We have the clean code without clutter which we can just jump,
experiment, test all the things, and then when we show that everything
is working, we just can implement the changes in Org file and just
have standard version. Org in this sense works as a backup as well. We
can hack around, play around with the code and only change we are sure
we can implement in Org.
</p>
<p>
The other person told that – I was asking him how it is to work with
this way and he's like, “Oh, I can't imagine. I just want to write
code like this.” [inaudible 0:05:17].
</p>
<p>
<b>Sacha:</b> So nice. How long has the team been doing this?
</p>
<p>
<b>Janis:</b> Actually we started to work together just from the beginning
of February.
</p>
<p>
<b>Sacha:</b> Wow! That fast and you've gotten used to the workflow, you
sorted out [inaudible 0:05:32].
</p>
<p>
<b>Janis:</b> Actually in the last one and-a-half month, I haven't a lot
configured my Emacs file. What I have done is I have thrown out all
the stuff. I put too much work that I know I won't use. This is one
thing. I'm usually collecting more, and more, and more. Then it comes
the time when I'm thinking, “No, I don't need that much.” And I'm just
throwing all the stuff I know I won't use because I now have
experience. I know how to do this but I don't need to clutter my file.
</p>
<p>
In two months I grew my Emacs file past 2,000 line of code but I have
thrown [inaudible] way, so it's around 1,000 lines.
</p>
<p>
<b>Sacha:</b> I have a problem with that myself. I have things there that
I've completely forgotten about. The last time I started from a
completely clean Emacs configuration was several years ago. Yes, I'm
delighted that you're actually cutting things out of your Emacs,
simplifying it and things like that.
</p>
<p>
<b>Janis:</b> Also two things. You said that your Emacs is loading – not so
fast like nine seconds. I noticed. I noticed this on Windows, it is
actually so. It loads for some reason slower than on Linux or OS X,
the same configuration, it loads like three times longer than OS X. I
don't know, it's signaling or something else. But it's strange.
</p>
<p>
<b>Sacha:</b> Yes. I don't worry about it so much because I start Emacs up
when I start up my computer and then I just never close it.
</p>
<p>
<b>Janis:</b> I am a bit similar to a few other persons. I'm constantly
restarting Emacs because when I was experimenting a lot, writing Emacs
Lisp–because a lot of Emacs Lisp, I haven't gone too much into it but
if you have some basic, even imperative programming knowledge, then
you can just simply start right and there is no problem like no
[inaudible 0:07:42] at all. So I was experimenting quite a lot in
that. I found those [inaudible].
</p>
<p>
<b>Sacha:</b> You have this other programmer. Did that other programmer use
Emacs before joining your team?
</p>
<p>
<b>Janis:</b> No.
</p>
<p>
<b>Sacha:</b> Okay, so from <b>scratch</b> scratch?
</p>
<p>
<b>Janis:</b> Yes. From scratch and he was using it in a week, cool, everything is fine.
</p>
<p>
<b>Sacha:</b> Wow.
</p>
<p>
<b>Janis:</b> I don't know if I have a teacher-talent or it's like I gave
him my configuration file, said approximately what is going on, and
just doing whatever he want with that file.
</p>
<p>
<b>Sacha:</b> Do you know the other resources that he found useful?
Tutorials, Emacs Wiki? What do you recommend?
</p>
<p>
<b>Janis:</b> Actually, the information source for him, I am the
information source. He hasn't gone too much into it. Maybe this is
because – I don't want to boast but for years, it has been like an
addiction for me to learn new software. So, then I have a skill to
learn very quickly. I know that I have to learn the basic idea of any
software and then everything of the rest, I will be able to do.
</p>
<p>
Actually I think one of the reasons why I started to love to use Emacs
is because I have used for the bit Blender, a 3D modeling software. I
think because the interface is so similar, I think that might be the
reason why I loved it because there is the same idea. You make as you
want windows into there, and switching into each window mode in which
you work. So it's almost the same idea. It might be the reason why it
was so easy for me to get the concept of Emacs and just pass it on.
</p>
<p>
<b>Sacha:</b> I've never looked at Blender that way. I always heard that
Blender's interface is very powerful but a bit challenging to learn,
and to hear that it's actually very similar to Emacs might encourage a
lot of people to try it out.
</p>
<p>
<b>Janis:</b> With Emacs, also one similar thing with Blender is that it's
like when you start to use it, then you want to use those things in
every other program. I'm usually catching myself when I'm writing some
text, for example, in email. I don't know if you use email in Emacs.
Because I would use even Twitter and email in Emacs.
</p>
<p>
What I don't like is I have to save my password in plain text. I know
that you can make correct rights for the file. I know it's unlikely
but if someone boost my computer with live CD, he can view my password
and I don't like this. I better use Gmail for example because I think
Gmail client is very, very nice and very good.
</p>
<p>
<b>Sacha:</b> Yes. So you like learning new software. Tell me what it was
like when you started learning Emacs. How did you get into Emacs in
the first place?
</p>
<p>
<b>Janis:</b> It was interesting to me.
</p>
<p>
At that time I was finding the best editor I could use. It was
actually like two or three years ago for the first time I used Emacs
and that was one thing I wasn't used to. There was almost only text
tutorials and there was those key combinations like CTRL+X, K and I
was like, “Wow, you have to press four buttons together.” I was like a
little bit, “Really?” Those things were funny.
</p>
<p>
But when you get past that, then actually as I said previously… I
was using Emacs just with default, things it had. [inaudible 0:12:00]
already with the standard commands and I didn't even know anything
about that you can customize it. I know that for the functionality, it
has basic functionality.
</p>
<p>
Only thing what I added to Emacs was autocomplete. Even then I didn't
think about customization. I just didn't know you can install that and
I didn't think about anything that I would need more. But when I
watched the [inaudible 0:12:27] tutorials, I was like, “Oh, yes.” I
wanted to start again, because for a long time I was trying Vim few
times and never gotten around it as [inaudible] somewhere previously
to this. [inaudible] Questions, that's hard but I started a little way
more and people didn't had any arguments against me. I won because
[inaudible 0:13:01].
</p>
<p>
<b>Sacha:</b> [inaudible 0:13:02] more?
</p>
<p>
<b>Janis:</b> I hope I'm not getting too loud. I'm excited.
</p>
<p>
<b>Sacha:</b> No, it's good.
</p>
<p>
<b>Janis:</b> Then again I was using for a time jEdit.
</p>
<p>
<b>Sacha:</b> Yes.
</p>
<p>
<b>Janis:</b> Actually I liked it pretty much when I was working only on
Windows for some time in the place I was working previously. Then I
used a lot [inaudible 0:13:29]. But then I started to use OS X and
Windows together and then I thought I want editor interface and I
started to use jEdit.
</p>
<p>
One thing which I didn't like about jEdit was that approximately at
that time when I started to use it, not maybe at the very beginning
but somewhere in the middle of the time, there were those big holes in
Java. I never liked Java. I thought it's blunt. Maybe someone won't
like me for these words but I know that jEdit, you install it on your
own computer and there shouldn't be any security issues.
</p>
<p>
But nevertheless, it was one of the reasons why it glitches, so it
might be glitch anywhere else and so on. Then I thought, almost the
best experience I had once was with Emacs. Previously, for the first
time, I used it for some two or three months. I just got used to it
and I could do everything in my work but I don't really know the
reason why I stopped. I guess there was problems in work and something
like that.
</p>
<p>
<b>Sacha:</b> Okay, so you tried a lot of different editors and then you
eventually came back to Emacs, and then you discovered you can
customize it?
</p>
<p>
<b>Janis:</b> Yes. Then I was pretty much hooked. I started to use it very,
very much.
</p>
<p>
I haven't done until now music-composing in Emacs, I'm sorry. It was
interesting that in previous chat, there was Iannis where he showed
the SuperCollider with the Org Mode. Actually right now, I have put my
priorities at what I have to do. So, I don't have the time to start
the work with but I have notes. I have already for [inaudible 0:15:51]
want to start work with SuperCollider.
</p>
<p>
<b>Sacha:</b> Excellent, there you go. Now you're excused.
</p>
<p>
Yes, it's really interesting to see the kinds of things that people
are doing with Emacs that go beyond, “I'm writing text with this. I'm
working on code.” You mentioned SuperCollider is going to be one of
your interests later on. Are there other things that you do with Emacs
that are maybe things that people wouldn't expect who just think of it
as a text editor?
</p>
<p>
<b>Janis:</b> People wouldn't expect to play games in Emacs.
</p>
<p>
<b>Sacha:</b> Which ones do you play?
</p>
<p>
<b>Janis:</b> Actually the most common I'm playing, Tetris or Snake. I
haven't played them for a while, I must admit. But sometimes – when I
was sitting, I had a course about Linux and there was a break or
something, I was playing and people started to pay attention what I'm
doing in text editor as well. They were getting excited, okay, because
I'm quite new to Tetris.
</p>
<p>
<b>Sacha:</b> Well, next time people are looking at you and going, “Why are
you doing this in a text editor?" You can break out artist mode and
start drawing. I was looking into Ditaa because you can actually draw
thing and then use Ditaa to turn them into actual graphics. Anyway,
lots of stuff.
</p>
<p>
<b>Janis:</b> This is cool and I have tried Emacs [inaudible 0:17:28]. One
thing I've impressed people just by drawing, but this is one thing…
What I tried to do is make documentation like diagrams and I think if
you get used to it, you can do it pretty quickly.
</p>
<p>
The one thing I don't like, I don't want to use external tools with
Emacs.
</p>
<p>
I have an interesting thing. I have a backup function in Emacs. I can
just press F4 and I'm saving my .emacs.d and .emacs file in a
directory where I'm having my backups.
</p>
<p>
I like that I have simple configuration, like, a simple way to
transfer my Emacs configuration to any other computer and start more
there. I'm working with three computers constantly, with different
operating systems mainly on OS X, but on Windows quite a bit as well.
It's good that you can just put there and just continue to work with
the latest configuration.
</p>
<p>
<b>Sacha:</b> Yes. That's what you get for having just internal tools
instead of "you have to find whether this tool will work on Linux, and
Mac, and Windows, and install it, and set up all the paths." It's great
that you keep it into Emacs.
</p>
<p>
Well, I actually had a question. Somebody is actually listening to
this live and I have a question.
</p>
<p>
<b>Janis:</b> Oh, cool.
</p>
<p>
<b>Sacha:</b> You mentioned you pick up a lot of different tools, or
language, or things like that quickly. Do you have any tips for how
you learn things quickly, especially in Emacs?
</p>
<p>
<b>Janis:</b> I won't be able to give a quick answer. The thing is that
what I do usually is just for the more complicated tools – I'm going
to tell this way. Take one tutorial, just go to understand the raw
basics. For example, Emacs tutorial is a good tutorial, if you are not
too lazy to go through it. Just read. Plain text is a good place. Then
just put target that you want to do something The real thing, you
would be proud–a little bit–but you will be proud of it. And then
create the thing. After that, you will find yourself that you can do
it. It's my motto for the life. “Experience makes you a better
person.”
</p>
<p>
Because to learn anything, you just have to do it. You just have to
take it and do it. You won't do it if you don't have motivation. It's
good to have some target. You want to create some application, do it
only in Emacs. You will have this raw idea.
</p>
<p>
For example, people are telling, “Oh, Blender is so complicated.” I
don't know. Blender, Emacs, they're quite simple applications. I have
to paraphrase. I love these applications because it's actually like
with any good game. It's simple to pick up but it's hard to master.
</p>
<p>
<b>Sacha:</b> Exactly. There's always more.
</p>
<p>
<b>Janis:</b> Yes. You shouldn't be satisfied with what you have. Because
I'm a programmer and I'm training all the time logical thinking,
this is one thing. Think how can you do this. I don't know. Maybe the
thing that helped me is I'm speaking four languages. This might be a
reason how I pick… for example, maybe this will help, for some person.
I learned, for example, to speak in Portuguese in some two weeks.
</p>
<p>
<b>Sacha:</b> Nice.
</p>
<p>
<b>Janis:</b> But I know that my Portuguese is bad. I wouldn't write any
article, anything like that. But what you have to do is you learn
those small connecting words–how you can make, and for that, and
things like that, and then you will find the way how to tell the thing
you want to say. This is the same way with any software. You take the
software, you learn a little bit of it, you make your own target and
then you use that knowledge and find a way how you can do it. If you
will look on the Internet, time to time, it will be so like that,
“Wow, I can do it easier this way.”
</p>
<p>
<b>Sacha:</b> Yes, I get that.
</p>
<p>
<b>Janis:</b> You will improve yourself constantly.
</p>
<p>
Also, one thing that helps is to document what you do. For example, in
Emacs, I'm constantly – not only in Emacs, one thing that is amazing
about Org Mode is that Org Mode is the best planning tool I have
found. I have tried but I was like, “Oh, I found FreeMind. Cool.” Then
I tried a couple of other things how I could manage the thoughts I
have in my head because I'm exploding with thoughts and going, and
going in too much different direction sometimes.
</p>
<p>
Org Mode lets me program the things I have in my mind, structured,
because before that, I was writing an email in not so good way. But
like poems, what I want to do, and now Org Mode gives me very nice
standard interface to do this, to put my thoughts. I find Org Mode the
best way for me to document what I think and even make little programs
on how I should so something in real life.
</p>
<p>
<b>Sacha:</b> Really? What are those programs like?
</p>
<p>
<b>Janis:</b> Returning to the previous points a little bit, and connecting
this with what you asked right now.
</p>
<p>
To learn anything and to complete any large task… For example, when
you do hand-drawn animation, you should start with the first frame,
and the last frame, and then one in the middle, then one in the middle
between those two, and go to the precision you need. So, you can
implement this idea in any other area of your life, because you can
take an Org file and make simple algorithm with the main things you
have to do. Then you can put more points in and more detailed tasks in
those points. So you go to the level you need to complete your task.
</p>
<p>
For me this is the most efficient way you can do or perform the task.
</p>
<p>
<b>Sacha:</b> I have never thought about tweening in tasks before, so thank
you for giving me that metaphor.
</p>
<p>
<b>Janis:</b> The thing about documenting is I'm doing similarly as with
the code for the Emacs. “I'm going to finish this start and then go
right to the next one.”
</p>
<p>
I'm a bit afraid. I hope I answered the first and last question
because I don't know if my answer was explanatory enough but I hope
so.
</p>
<p>
<b>Sacha:</b> It's very useful, yes.
</p>
<p>
<b>Janis:</b> So, I'm doing the same way as with document, and with Org
file, with Emacs initialization file. I am making bunch of my
thoughts, just putting on them, writing, don't sending to myself in
the email. You were using [inaudible]. It's actually pretty similar to
just Gmail. I'm just sending myself email. Then I have it on all of my
devices.
</p>
<p>
I'm collecting that, structuring them and then throwing a lot of them
out when I know I have already documented in another place or just
understand for example. When I thought at that moment, it's a great
idea. The thing I wanted to return was that I haven't looked at your
literately written .emacs file but I'm thinking time to time to make
my .emacs file as well in Org Mode.
</p>
<p>
But I wrote it. I downloaded Folding mode and I'm using it so I have
just my markings and just fold. I don't know if I can normally share
my screen.
</p>
<p>
<b>Sacha:</b> Yes. If you hover over the left side of the Hangout window…
</p>
<p>
<b>Janis:</b> I'm going to start Emacs and let's see if it won't be
[inaudible]
</p>
<p>
<b>Sacha:</b> If you're in Hangouts and you hover over the left side,
you'll see an icon that looks like a green monitor with an arrow on
it. You can use that to share either your entire desktop or a specific
window. Yes, I see your screen. All right.
</p>
<p>
<b>Janis:</b> Cool.
</p>
<p>
When I open my Emacs file, then I haven't folded the standard – this
is my thing, package initialization but I haven't folded the standard
configuration which is done through customize. It's not too much. Once
when I used Emacs file, something went wrong and my .emacs file was
corrupted, the way it was written and so on.
</p>
<p>
From that time, I don't like to put the standard customized
configuration into fold. I'm leaving this without folding. Then I just
have what I said, very simple structure. I have five points here. For
example, I'm doing keybindings. It sometimes doesn't pay off because
then if something breaks before keybindings, then I have to go from
another application. But there are keybindings which have to be. In
the end, I'm willing to take this risk.
</p>
<p>
For example I have a section here “Quick Utils” which I can open with
F9. I have, for example, function “Remove all duplicate lines from
selection”, for example. This wasn't mine. I think I might be doing
something on this. I might boot something but it's like that.
</p>
<p>
For example here is “Backup initialization configuration”, this is the
function with one variable which saves my backup through the shell. So
when I need to insert specifically mapped date, then I just throw it
into another buffer from it as I need it. Have I thrown all of the
other things out? I don't know. Eventually. I might have thrown out a
lot of other things I wrote but it might not be in this one.
</p>
<p>
<b>Sacha:</b> That's cool.
</p>
<p>
<b>Janis:</b> And other things I could show but I don't think they're too
interesting because those are standard ones which I have tuned. You
can find them on Emacs Wiki and so on.
</p>
<p>
<b>Sacha:</b> Are there any particular packages aside from Org that you
really like and you use a lot? You can just name them if you think.
</p>
<p>
<b>Janis:</b> I'm going to just go to the packages which is a reminder for
me. I installed on my Windows desktop application which allows me to
change desktops and it conflicted with my Emacs. I'm going to go to
the very end and what I have installed.
</p>
<p>
Autocomplete is one thing I'm using a lot and I have made my own
dictionary for Unity, Javascript version, my classes, methods and
things like that from that language. Then the simple little things
like expand-region and things like that that might not be too
interesting, I'm not right now using but I loved actually [inaudible
0:33:26] with JS2 modes. You can dynamically edit .js files but right
now I do not use Skewer mode.
</p>
<p>
<b>Sacha:</b> Yes. I was looking at that. It's fascinating to have the kind
of REPL, the Read-Eval-Print-Loop with Javascript in a browser.
</p>
<p>
<b>Janis:</b> Like pretty much. Some things are weird, not as smooth as in
demo which is shown in the YouTube. It won't work quite well. One
thing I love is Workgroups2. Undo-tree is like lifesaver. I love it.
</p>
<p>
<b>Sacha:</b> What does someone in convention do for undo tree? Did you mention something else before undo tree?
</p>
<p>
<b>Janis:</b> Workgroups2.
</p>
<p>
<b>Sacha:</b> Which one is that?
</p>
<p>
<b>Janis:</b> The highlighted line.
</p>
<p>
<b>Sacha:</b> Sorry. You're not showing your screen so I'm not sure what it's about.
</p>
<p>
<b>Janis:</b> What do you see?
</p>
<p>
<b>Sacha:</b> Your face which is also sort of cool but we [inaudible 0:34:38].
</p>
<p>
<b>Janis:</b> Okay, I'm going to try again.
</p>
<p>
<b>Sacha:</b> That sounds interesting and I don't think I've used it yet. [inaudible 0:34:47]. Workgroups. Okay, I see.
</p>
<p>
<b>Janis:</b> Workgroups2. It's cool than one thing I'm using a lot and
creating my own Yasnippets which are saved in my backup as well
together with everything. Yasnippets is very cool thing. I would
recommend to anyone to use them and just learn.
</p>
<p>
Actually right now, if I'm going to return to [video]… Actually,
right now, I'm a little bit past the all the time configuration phase.
Right now, right now, we're concentrating a lot on development. I'm
just adding the things I'm definitely seeing that I need, or just
marking that I have to do, or implement in the future.
</p>
<p>
<b>Sacha:</b> Which is super-important because otherwise you can spend days configuring Emacs and get no real work done.
</p>
<p>
<b>Janis:</b> Yes, that is true. I think showing off Emacs file is like
boring for the people. It's like looking at the code. I might think
posting something somewhere for people just to explore.
</p>
<p>
<b>Sacha:</b> Actually, the funny thing is when people watch other people
use Emacs, often it's similar things that we take for granted that
people go, “Holy cow, how did you do that? What is it that's giving
you these things?” I was talking about somebody else about Emacs Org
lately and the checkboxes in Org lists, he has had little boxes around
them. Apparently that's the thing from the solarized theme. It's just
these little things you get from watching other people and from
listening to other people talk about Emacs.
</p>
<p>
For example, I'm picking up a lot from you about, yes, you can use Org
Mode and literate programming as this one unified source, and you can
get your documentation, your code, and all these other good things
from it. It actually works fine if you have a team, so it's good.
</p>
<p>
<b>Janis:</b> Yes. That is why I said right now it's barely to say our
workflow, but the two applications, it's like hard rock applications
we are using. It's Emacs and Blender. So it might be interesting to
have conversation somewhere later in the future and to see what has
changed, and actually more team work and things like that.
</p>
<p>
Right now, Unity itself helps a lot with the teamwork. We don't have
to worry too much about standardizing even Emacs. Actually I like this
about Emacs because as I said previously, you have to learn idea, then
you will understand other person's .emacs file and you will be able to
use the things he has. Because what I said previously was, it's great
to have standard product in which you are working, but people should
have freedom to customize the product, the application, their own
exact needs, like they should be comfortable. That is one thing that I
love about some applications, that when you start to get proficient
into them, it's like the scientist did, not too long time
ago–experiment.
</p>
<p>
Only thing in our lives which gives us satisfaction throughout all our
life is constantly improving our skill. It's more powerful even than
love, because love gives much more emotions in shorter amounts of
time, but skill is the only thing which is giving when you're very
old. You're still getting satisfaction and appreciation from other
people. This is one thing I love about Emacs, Blender and some other
applications, then you are using that application and you are enjoying
using it.
</p>
<p>
<b>Sacha:</b> Yes, and you can customize it, and you learn to customize it.
Of course as you make it fit, they work better too. It just compounds
from there.
</p>
<p>
That's a lot of fun. Right now you're focused on getting your video
game sorted out, so you're not spending a lot of time working on
Emacs, but maybe some time later on, you will relax a little bit and
then dig into customizing it even more.
</p>
<p>
I was curious about one thing. Do you actually have Emacs talking
directly to Blender or do you just export segments. You mentioned
Javascript or other things like that and then you run that with your
[inaudible 0:40:40].
</p>
<p>
<b>Janis:</b> With Blender, actually the three products which we are using
is like I'm already going to my open source applications. Blender and
Emacs, I love them for a reason and I don't like what people are
making that, “Oh, open source. It's for free and that's why I should
use it.” Because for example right now if you know that Blender
community, they're making Gooseberry project. This would be the first
open movie which would be sponsored by people, and for example, the
creator of Wikipedia, they are making segments. This could be
revolutionary. They are trying to change film industry and they're
getting pledges. For example, we got from a friend yesterday, Latvia
is the first country in the Europe agreeing 100% support. [inaudible
0:41:40] on the Twitter of Blender put up in Twitter. Congratulations
to Latvia the first European country [inaudible 0:41:48] 100%.
</p>
<p>
I think that with this software and with the people, if I see that
someone is very dedicated at what he's doing, I'm going to help him as
much as I can. I just feel satisfaction from helping a person where I
know that my help gives or will create something great. It's cool. You
should check out Gooseberry.
</p>
<p>
<b>Sacha:</b> It sounds like a great project and it's good to see people
coming together to build something big like that.
</p>
<p>
I'm particularly interested in helping more people learn more about
customizing Emacs, building the space.
</p>
<p>
<b>Janis:</b> I'm sorry, I got away a little bit from [inaudible 0:42:42].
From Blender, the most important thing is that we are just sharing
settings. For example we need now specification, what exact setting
should have models for example for some specific behavior. Those
things are passed through Org files so we can easily implement them.
In documentation, we can easily open in any text editor and configure
them.
</p>
<p>
But the most communication between applications is Unity and Emacs.
With Unity, interesting thing is that you can put in Unity custom
editor and I could put Emacs as that custom editor, but there are some
problems that it doesn't pass normally–the file name. I might need to
look into it deeper, but I don't feel like it, because I just change
work space and continue to work in Emacs. The great thing is that
Unity compiles like when you just switch to Unity window, it updates
all the scripts, and they're precompiled.
</p>
<p>
I work in Emacs to everything in Org Mode, I have already documented
code, I can export HTML, Org more frequently. I'm just tangling code,
then the tangled code, I'm just switching to Unity, it's compiling and
I'm just a little–going, I know it's compiled and I have already
resolved it there in Unity. I could even open something in the show. I
don't know if it will open normally here. I'm going to try to do
applications.
</p>
<p>
<b>Sacha:</b> Sure.
</p>
<p>
<b>Janis:</b> On OS X, it's a bit easier because I can easily switch
workspaces but sometimes in Windows, I better work in one workspace
with those things. I have opened Emacs. For example I am writing right
now our in-house – hopefully it will share the whole screen, because
it allows me to share applications.
</p>
<p>
<b>Sacha:</b> You can share the entire desktop as well. Yes, I can see your
screen.
</p>
<p>
<b>Janis:</b> I don't know if it's working smoothly enough, but for example
I have here created - do you see the curve?
</p>
<p>
<b>Sacha:</b> Yes.
</p>
<p>
<b>Janis:</b> It's quite close to the ending stages. For example I can just
switch to Emacs. This is the main visualization script which is making
the stuff to happen. For example, I can just go into object, and just
put there in – and one thing I loved about Emacs is that if you have a
programmer which isn't as experienced–formatting a lot of code, then
this very cool thing which helps to write and to debug codes. For
example I have indentation like that this but in other applications,
you press tab where you need to go. Here I just mark the code block,
and it indents all the lines. It's awesome. Emacs just indentized
correctly. It knows the language by which you are using and you just
press and hold file with all the if, everything with all the
[inaudible 0:47:43] statements, everything is formatted as you need.
For example I'm just putting out message “m1”, and for example
switching back to Unity. If you see Unity – do you see Unity?
</p>
<p>
<b>Sacha:</b> Yes, I see Unity.
</p>
<p>
<b>Janis:</b> It has already compiled the code. Here, if I'm switching to
console, I can see it splitting all the time out, and updates in one.
</p>
<p>
<b>Sacha:</b> I can see how that's very convenient because you can just
switch back and forth. By the way I noticed that you have highlight
line on. One thing that I learned in the conversation with somebody
else is if you customize the phase for highlight phase I think or HL
line phase, or whatever it's called and you turn off the foreground
color, then it will keep the same highlighting that it usually has. It
just changes the background. Sometimes you set both the foreground and
the background, that ends up overriding with whatever syntax
highlighting you have. [inaudible 0:48:47].
</p>
<p>
<b>Janis:</b> This is a cool tip. One thing I'm doing, I was configuring –
and I'm configuring quite a lot Emacs but with standard shortcuts and
standard themes, it's fun to play with that but I'm not spending much
time that I'm going for the functionality. I'm trying to not override
the standard things or just change them to know where I know exactly
where they are. I'm trying not to break but to improve.
</p>
<p>
<b>Sacha:</b> Yes, that happens. That's cool. Thank you so much for sharing
that. It's really interesting to see people's workflow and to get a
quick demo of how you set up autocompletion and all these other
things. That's great.
</p>