Emacs Chat: Iannis Zannos – Emacs and SuperCollider
Emacs! Music! Iannis Zannos shares how Emacs can be used for all sorts of awesomeness with Org Mode and SuperCollider.
Check this event page for details and comments =)
Audio and Video
Some of the code mentioned in during the chat:
- his Emacs configuration (Prelude meets org-mode)
- Compact but powerful tools for SuperCollider, with Emacs Org-mode intergration
Just want the audio? MP3
Transcript
Sacha Chua: Hello. I'm Sacha Chua and welcome to another episode of Emacs Live. Today we're going to be talking to Iannis Zannos, who is going to show us all sorts of cool things involving Emacs, Org Mode, music and other things you might discover from his configuration and from his story. Iannis, hello! Thanks for joining us.
Iannis: Hello.
Sacha: Tell us a little bit about who you are outside Emacs. What's your life like?
Iannis: Yes. Well, I teach Interactive Arts, mainly in music, computer music, here in Corfu, which is an island at the northwestern corner of Greece, at the department of Audio and Visual Arts. I do SuperCollider a lot. Sometimes less and sometimes more. I teach it. Besides that, I also dabble in other sorts of software like, you can say, notes processing. Of late, ChucK I like a lot, and I share it with the students. That's what I do.
Sacha: You've got to tell us about whether you've gotten your students successfully using Emacs as well.
Iannis: No.
Sacha: No? Even after you show them all the fun stuff you can do?
Iannis: You know, but it's changing.
Sacha: Okay. When you reached out to me over LinkedIn, you mentioned that you started with MicroEMACS. Tell me a little bit more about how you got into Emacs in the first place, and what that's been like for you through the years.
Iannis: Well, that was back in '85 I think. Beginning of '85, I was just beginning my PhD. Together with other couple of friends in Germany in Hamburg - German people… One of them was more of a computer geek, and he said, "Well, there's this cool thing out called Atari and it's more accessible than a Mac," which says a lot.
We got ourselves one. Very soon, MicroEmacs was out on it, and I was very happy to have it as an editor. I started doing macro programming on MicroEmacs straightaway.
Sacha: Wow.
Iannis: Then there was another guy who [inaudible 0:02:35] is now doing his ecology [inaudible 0:02:39] who was into Lisp like me. So we got some Lisp and Scheme interpreters - whatever it was - and started practicing on that. Just 1MB of RAM and 1MB of floppy disks, and you can do all sorts of magic with that.
Sacha: It's really old school.
Iannis: Yes. A lot with that.
I also built an APL interpreter. I programmed a whole system for transcribing, notating, printing, and analyzing music on this little thing. Thinking back, APL of all languages. I just don't know how I did that. It wasn't even the topic of my PhD thesis, but I used it for the PhD thesis. All my examples were printed on it. Many examples, hundreds of pages.
Sacha: So you're no stranger to making tools for yourself especially using [inaudible 0:03:40]?
Iannis: I like it very much.
Sacha: But you mentioned you had wandered away from Emacs for a while. How did that work out? Or do you always use Emacs?
Iannis: For my next studies, I had a lot of work on Symbolics Lisp machine for three years. I was using zMacs, and that was way cool. It's true, the myth that this was maybe the most advanced machine ever built. From one perspective, it's true, I think. It's very strange thing to experience.
At the same time we have the Apollo Unix workstation, [inaudible 0:04:24] in my program from that and I used it. I played, also, those very early pre-web online games with programming. I mentioned it because it interested me a lot. There was Star Trek. Some undergrad university students had installed it somewhere in the east United States. I was sitting in the [inaudible 0:04:54] the Pacific there and logging in, and playing that. It was a very interesting experience because it had no graphical interface, but with the text, you could program your own bots inside the game.
That probably was a major experience for me because I got the idea that you can program bots to do music. I've been thinking about programming languages of music for a while before that, even, but that was the first time to see it actually happen. A game like music, with other people all together, and you program your own tools, and let them, like little machines, like bots, and they make music.
I think it really set my frame of mind, I would say.
Sacha: How do you start experimenting with that?
Iannis: We also had a Mac there, one of the bigger ones at the lab. I was using it exclusively. After that, I went away, and we only had Macs. There was no Emacs on these. Not any good Emacs. So, I was away for 10 or 15 years.
Sacha: That's a long time.
Iannis: Until my colleague Aries told me, as I said, 2007, "There is this cool thing, Org Mode, out now," and that was it. It was a reason for coming back.
Sacha: Wow. You're going to be showing us some of the cool things you're doing with Org and music. But I just wanted to ask, when you started thinking about bots that make music, did you already start coding that, or is that something that you have been exploring more recently with Org?
Iannis: No. That was already part of that thesis I was writing at the moment. '93, very early. It took a while to mature.
Sacha: All right. So that's how you got into Emacs. You started a long time ago with MicroEmacs, and then you just kept going with it. Unfortunately, it wasn't really available on the Mac, but eventually you found Org Mode and Emacs on the Mac, and here we are.
Iannis: Yes. OS X being Unix, which is good.
Sacha: I want to jump into that lovely demo that you've started showing me the other day. Do you want to share your screen and show us the cool stuff you are working on?
Iannis: This is what SuperCollider [inaudible 0:07:47].
Sacha: Let me jump in here. By the way, if people have questions, you can use the Q&A link that you saw on the screen, and then you start watching the video to ask questions. You can also ask in the Emacs chat channel - #emacs-chat on IRC. All right, take it away, Iannis.
Iannis: Okay. Normally what one does to make a sound or something like a = sinosc.ar()
. It's got autocomplete, as you see. You write down the frequency and the phase, and the amplitude, and the play. That's already a shortcut in a way considering the old-style SuperCollider. Then you get a sound. Then you go “a.free” and you can free the sound. Or you can say, to start again, it's got to go there. You get sound again, and you can say, release
- alternative syntax, maybe five seconds, and now you got a five-second release. This is the starting situation. I was interested in improving on it.
Instead of having to write it here and access it later, like this, I can use this, which is called the “ChucK operator”, which comes with the ChucK, a programming language programmed by [inaudible 0:09:32] who is now in Stanford. He did it while he was in Princeton. It's already been taken up by other people in SuperCollider, but I found it quite interesting. The cool thing about it is that you can go write something like this and stop it. You don't need to be in SuperCollider now.
Maybe a different one… I start two of them. I can stop the last one that was ChucKed while the other one would continue. There, I could stop it by putting like this.
Okay. I can go even shorter, like with this one. Using a special shortcut, one doesn't even have to write anything here. Then one can play.
Sacha: I see, because it's randomized.
Iannis: This is what I wrote here.
Then I'll move through the different snippets in the document, which is not even the standard SuperCollider IDE. It usually needs the SuperCollider IDE. You have to wrap your code in parenthesis like here, and then you have to go there with your mouse, and click, and type the special command, and then you can execute the whole code. But with this piece here, you can actually execute it once.
Now, this is going to be a little bit dramatic. You get 10 bells together and then you… [inaudible 0:12:18] and something even more disturbing than that.
Sacha: Wow.
Iannis: [inaudible 0:12:49], I guess. [inaudible 0:12:57].
Now, this is something that I did almost exactly one month ago, while I was still developing this and trying to do all the other ideas. This is just an hors d'oeuvre part of it, not even the main meal.
The main part is the SuperCollider-Org Mode integration.
Sacha: You said you started working on this a month ago?
Iannis: I started in late January. The third major iteration. The first one was in 2003 and lasted on and off until 2006, and then there was another midways around 2008-2010, and this is the third major iterations. All the ideas and experience has accumulated.
Sacha: I see.
Iannis: I didn't even intend this to happen. I was just so inspired by ChucK, which I like very much and I respect a lot, and then I started to see the limits of both pieces of software: SuperCollider and ChucK. This, without noticing it, gave me the idea to try a few things and see how far I could go. That's how it came about.
Sacha: Naturally, you use Emacs because…
Iannis: Yes. You can't do all of this without Emacs and Org Mode. No way you can program all these shortcuts and especially get the snippets, navigate to different parts of code.
Sacha: Okay. Show us that part.
Iannis: Let's see what are we going to do, which may be this one. Here we are.
One can play either a headline or the code. Here is the code and here is the headline. To play the headline, you just write this "!". This is going to be a short first fast walkthrough.
It's not working. Interesting.
Sacha: As it always happens.
Iannis: Interesting.
Sacha: Here we are.
Iannis: [inaudible 0:16:31]. Now I can play little keys like this.
Then I can open and [inaudible 0:17:03] and I can even set the fade out time. At this point it should be around 50 milliseconds, so it's very fast. [inaudible 0:17:30].
Sacha: [inaudible 0:17:32] window.
Is there another window that you have open that we don't see?
Iannis: No, this is just one.
Sacha: Okay, all right.
Iannis: I'm typing “5” on the window itself and it responds [inaudible 0:17:52] nine-second fade off for example and it goes on. I get a knob so I can control. This is going to get more interesting when I have more controls.
Sacha: Sorry, is that knob in “SnippetDemo01.org”? Or is that somewhere else?
Iannis: No. This is not Emacs. This is the SuperCollider user interface.
Sacha: I see, okay.
Iannis: So I can make it faster. More controls also appear at [inaudible 0:18:31].
The next thing is to work with patterns which are sometimes difficult. [inaudible 0:18:38] sometimes complicated. To make it easier to replace parts of patterns inside patterns, and also to work seamlessly between sets of patterns, which is something that was already achieved almost 10 years ago by a library that's a major part of SuperCollider by [inaudible 0:19:02] and it's called just in time lib.
I've been thinking for a while of alternative approaches to this. That took me about three years on and off - not all the time - to find the right approach for that. In fact, I've been thinking even longer before that of how to achieve similar stuff. I think this time, I have the right path.
Let's listen to a pattern.
Sacha: Yes.
Iannis: Then next one, make it a little faster, a little bit louder. I can control the instrument and the duration independently. Here is the duration. So it's 1/10 of a second. Or I can change the pattern and just play. See the time. We have two tones, four tones. Then I'll move to the next one, which is a bit oriental. It would be interesting to try out the fade feature. Say, five seconds of fade time.
Because I'm controlling a single parameter, [inaudible 0:21:44]. I get the fade when I get to the next pattern, which is this one. Now it's going to get dense. [inaudible 0:23:44] which is fun.
Sacha: Okay.
Iannis: And fade out, I guess.
Sacha: You can step through it, and Org lets you label the patterns to make it more meaningful, I guess?
Iannis: Yes.
Sacha: You mentioned you use swoop
to jump around as well. You didn't show us that, but how do you do that?
Iannis: Just the easiest one-stop way to go through a file, but it's not the only one I use. There's a lot, quite a few others. You just type what you want to find. It's interesting if you want to work with code files. I can also show the other tools I'm using.
For example, either open the latest file – we are in Org Mode anyway, so this is not going to work – or use a project file. I can go, “PatternSynth”. I'm going to code. I can swoop through it. That's what I do, several times a minute, when I want to find the next method that I remember.
Here we are. There are no new patterns, but that's an exception. Now I can use the open later files, so I can go something like this. Open them in recent files, and choose another one, “Tree”. There we are, and now it says “Tree”. Here I will probably find a new. There you go.
Sacha: It's like an interactive occur.
Iannis: It is occur. That's a Japanese guy, I don't know his name. It's an addition on Helm. Of course there is a classic occur.
Sacha: But swoop is much faster, because you can see it right away.
Iannis: It is faster. I prefer it. If you noticed, I also used the vertical ido mode, which I discovered very recently. I think it's better than the horizontal one.
Sacha: Yes. I learned about it through… I think it was Bastien's Emacs Chat also, or one of those. There are all sorts of interesting conveniences in Emacs packages that are hard to come across because there's so many packages now.
Actually, would you mind taking us through some of your configuration file and sharing any useful tips that you've talked about?
Iannis: It's also on Github, same place that is where [inaudible 0:28:11] is. I use bookmarks for that. “Iani” is my configuration file. I use also projectile. I'm right now automatically at that project, so I can go find my init, or startup init. This is the mother of all.
This is file name directory of this file itself, and this is loaded by prelude automatically anyway. It looks for my custom Org file under my name, my username. Then I get to the username file, and this is it.
Well, this is really Batsov going off with this Guru mode. I don't know about this Guru mode.
Sacha: That's the one that forces you to use C-f or C-b, or things like that, right?
Iannis: It certainly doesn't work with Org Mode because you need to move through hierarchies all the time. Things like that, the cursor keys so it doesn't work. Then visible bell instead of beep, and then blink cursor, that I don't use. My color theme…
Sacha: When you have disabled - there's a tag there, does it automatically skip tangling it or do you also add that?
Iannis: No. I just wrote it.
Sacha: Okay. So the disable doesn't have anything.
Iannis: Instead of writing emacs-lisp
, I write “elisp” and that's it.
Sacha: I see.
Iannis: It's a way to debug actually. For a while, in the beginning it didn't look like it was more pretty. I was also used to writing pretty neat files by using Org Mode. was a bit suspicious about using it. I'm trying to be [inaudible 0:30:42] and after several months of using Org Babel for init file, I still have my doubts.
But then something happened which consolidated it, and that was something strange broke inside the init file. I could use something like tangle buffer - I think it's called, org-tangle-buffer
or something like that - to recompile it until I found the very block that was from. It actually stops. It goes with a cursor at the place where the block fails. This, you don't get when you compile a buffer.
I think I've got something over 50 little blocks here, 60, 70 blocks. It's quite a long file. It would have been two hours instead of 15 minutes if I didn't do it in Org Mode Babel.
That absolutely convinced me that this is the way to go. I could go through and it would stop exactly where it had the problem. There is no question, Org Babel is the way to go, especially for init files.
Sacha: Yes. I switched over because I love the way that you could organize your init file into a hierarchy. I had problems before where I would write a snippet , I would go to put it in my config file, and I would realize it's actually already there, because I completely forgotten about the code. But because it's on an outline, I know where things are.
Iannis: Yes. The outline definitely is a virtue, but you could do it in a more… If you are very well-disciplined as a coder, you can write a very beautiful Emacs Lisp init file too. Besides, there are couple of those inverted Org users inside of Emacs. I don't remember the names now, but you're probably aware of them. There are some ways to reduce the version of Org Mode, organizing mode, or some mixture they're off inside your Emacs Lisp. For a while I said, "Why not go there?"
But I think, besides the organization, it's the debugging that's absolutely the killer alternate for using Org Mode.
Sacha: I'm going to get into that more. I have to learn more about how to take advantage of Org Mode for debugging.
You mentioned when you tangle, it will tell you which block is problematic.
Iannis: Yes. org-babel-tangle-file
or just tangle. I don't remember.
Sacha: Cool.
Iannis: I only did it once, but it solved my problem in 10 minutes.
Sacha: Excellent. You've got internationalization, font size…
Iannis: Yes. I did this just for this here in 10 minutes after our initial talk. This is nothing. You can do it so fast and so nice.
Let's go on. “Maximize/toggle frame”, I also did very recently. That's nice, forward-sentence, I needed a lot for normal code.
Time stamp is nice too for making notes when you'd have an idea. You got the time stamp there.
Sacha: This is for taking notes and things that are not Org files, I'm guessing?
Iannis: No. This is to insert the time stamp when you want to insert it. Or to update the time stamp. Not just [inaudible 0:35:17] automatically you can make your hook and it inserts the time stamp when you create a new Org heading, but this is just to create one. If I update it now, it is 17:35. I can update the time stamp, just for taking notes for knowing when you have your idea.
Sacha: Okay. So you don't use Org Capture?
Iannis: I have my Org Capture now. I use it for more than a year or year and-a-half. I have this enormous capture template, complicated, several files. It got out of hand, and I stopped using it. Now I've written my capture which is here. We can use swoop to find it. Here it is.
Sacha: I see.
Iannis: It's a quick hack. It's not well done, but it doesn't matter. But it works perfectly, because it's a one-stop thing here.
Sacha: Yes, that works.
Iannis: Tags. Here we are. It's in my log. With that tradition, [inaudible 0:36:53] John Wiegley and the others, of using a single file. After having made so many other files… I used the many file approach for a while and gotten lost. You've got to know whether this belongs to notes, or to personal, or to-dos, or whatever. Here is one log file, and I write everything.
Then, like you suggested also recently in the Emacs list – I saw it just before logging in here – you can use another method to archive your notes somewhere else where they belong.
Sacha: Yes. org-refile
.
Iannis: Yes. You have a central - something like spine cord that runs through all notes, and then using the distributor things for archiving and organizing information without ever losing a main cord.
Sacha: That's true. It makes it faster, too, getting it out there.
Iannis: Much faster, yes. You have an idea. Okay, where should I write it? Under home? Or is it under information? Internet? Where should you go? And you already lost it. It doesn't work.
Sacha: Yes, it may not work. Cool. Where were we?
Iannis: We go to File. You can see how it's organized, actually. Like this. There's generic packages. You can go to “Generic Packages”, “el-get”, “Bring elisp up-to-date." dash.el is very beautiful. Magnar Sveen's dash.
Sacha: Yes. He talked about it. In the chat with Magnar Sveen, I think he mentioned dash, but I actually haven't dug into it myself. What are some of the things you're taking advantage of in it?
Iannis: Dash I've used for Org Publish Meta, which is that other library that is waiting to be alive. At some point, I'm going to restart blogging with Jekyll. That point better be soon - something like next week. After having done it several times, scrapped over tens of little Jekyll trials, the old scrappy way, it's time to really… And then I'm going to use this Org publish meta for that. You go to any file and publish to any other file that you want, any group of files.
Sacha: Yes. I actually mentioned Org Publish Meta on the Org mailing list in this because someone was asking how to publish different headings to different files. I'm hoping that's what it's for.
Iannis: It's really something one needs. It works, but I haven't really crash tested it or tested it out in the field yet. But it's not something I'm pressing a lot, so I can't sort of project that. I find it… External public commitment, too… But I guess it's going to happen soon for me. Then we'll see how it really works. It's going to be ironed out more. Because you probably know these things take some while to mature unless you're a genius.
There are geniuses out there. The person who programmed SuperCollider, this kind of person must just be clearly… James McCarthy started off programming his early tools in Macs, and he'd be doing other stuff around in music. It was always of high standard. He has his touch. I think it's more of the exception.
Sacha: Yes.
Iannis: This is something I wanted to show you actually. Do you know about switching windows?
Sacha: I know I should be using Windmove or things like that. I always just end up using C-x o
. What is it then?
Iannis: I'm in both windows now, so we don't see a difference. I go to another one like this one, and now I can switch the position of the window, move between the windows, and I can go to another one. Maybe this one, open it, so I can move with the cursors. It's something I use over time. I can navigate any way that I want. I can change position. I need to take another one to show you the position. Maybe like this and I can switch.
Sacha: That's handy.
Iannis: Yes, very handy. I can switch between phase studio buffers, or switch between windows, or switch the position of the windows. It's something again I'd use five minutes or every minute I have to do this. It's extremely convenient.
Sacha: Which package is that? Switch window?
Iannis: Switch window, yes. Here it is. It's actually a combination. It's two headings here. Here is one: switch window.
Sacha: I see.
Iannis: Actually, I don't use this. This is what we're going to see. If I go C-x o
- well, I don't use it. I don't need it.
Sacha: Yes, because you use Windmove instead.
Iannis: It's too slow. All I have to do is use my cursor keys. Let's go there. I don't use this. I just don't like the… This is what I use. Windmove and Buffmove. Beautiful packages. Really, really neat stuff. In here, I use the whole shebang… “icicles”, “menu”, “auto-complete”, “ido”, “helm”, SuperCollider, guide-key… Guide-key breaks the SuperCollider window. You need to get your feedback from SuperCollider immediately. I actually use all those different modes, like you saw. It's not too much after all, I might say.
Projectile too. Perfect. Projectile is wonderful. You get into the habit of creating a Git directory for every piece of work that you do. You got double benefits. You got your git, and you've already got another project, and you can switch between projects, like this. We are [inaudible 0:44:30] and I can go to “tiny”. There I am. I can move to directory. Here I am. Going to switch back.
Sacha: Yes. It's been on my todo-list. I think Magnar talked about projectile. It looks really convenient for finding things.
Iannis: Yes. You don't need speedbar at all.
Sacha: Yes, cool.
Iannis: You don't need speedbar. With projectile and helm, you're totally covered, and a bit of ido.
Sacha: I noticed you use ido, and helm, and icicles.
Iannis: Yes. Although I don't use icicles a lot, because it's a bit slow, and you need to go into regex to actually search better. So it's not that good. For example, let's try it.
For Lisp, it's good. I've got all the variables there. But I don't use it. It doesn't work on SuperCollider, which is where I would spend most of my time now. It would be useful if it did, so I could shoot between classes, methods, and things. But you can do that also with SuperCollider itself.
Sacha: Yes, okay. You use ido for commands. I saw smex in there. You have helm for swoop.
Iannis: Yes. I don't know what's happening here. Oh, because we're not opened anywhere else. Now we're back. Icicle, keybindings, lacarte also, which I hardly use anymore. Smex is what I think. It's made it nicer. Multiple cursors, I absolutely love. I use it every half hour when coding.
Sacha: Really?
Iannis: Yes, all the time.
Sacha: Awesome. You have to get the hang of it. I figure I'll get the hang of smartparens, and then I'll try to get the hang of multiple cursors, or iedit, or these other modes that require thinking.
Key Chords, is that the special character thing?
Iannis: What's it called? The famous jump, ace-jump. Something like whitespace. Again, I can go to this whitespace but I don't use it. I really don't use it.
I don't use key chords a lot. I used it for a while, like in this case, like this in Org Mode to make this code.
Sacha: Yes, I see that.
Iannis: That's how I write my documentation. This does save me some time.
Sacha: Okay, I see. It gives you additional keyboard shortcuts?
Iannis: Yes.
Sacha: Cool.
Iannis: That I have to use for highlighting my code in SuperCollider. It's here, you see there's a slight… (rainbow-delimiters)
Sacha: There are different colors. That's really helpful.
Iannis: Yes.
Sacha: I am so turning this on in the Emacs Lisp mode.
Iannis: Sorry?
Sacha: I have no idea it existed. This is good. Thank you very much.
Iannis: Welcome.
It works very well both with Emacs Lisp, SuperCollider. Then of course there's paredit for Emacs. Beautiful. For Lisp, I mean. For SuperCollider, it doesn't really work consistently, but SuperCollider has something that's like paredit light. I don't know where it is, or who did it, but it works beautifully.
The rest is not so interesting maybe. There we are, SuperCollider, Emacs Lisp, Org-mode, making it work with icicles although I don't use them so much anymore. But Org-Babel, Org mode latex, Org-reveal, Org-impress, these are very main, very important tools, I think. Very important tools.
Sacha: You do a lot of presentations with Emacs?
Iannis: Yes. I try to. I haven't actually used them, I must say. It's something I'm looking forward to. I have to practice them. I'm not yet good with them, not even with LaTeX. It takes all the time. I configured it and I used it for a while, then dropped it. At some point, I think I'm going to really switch.
One thing that I really use a lot is tables.
Sacha: Spreadsheets or just the table function?
Iannis: I use them for everything: for my project management, for complicated project budget resolution, and for quick calculations, for displays. I use them for fun, for maths, demonstrating the long integers of Emacs, and using powers of three, like with the famous Graham's number.
Sacha: Do you have any examples you can show?
Iannis: Somewhere.
Sacha: Org tables for fun and profit.
Iannis: Let me have a look. I made it online.
Sacha: That's another thing I want to get into more too. The Org table functionality is really deep and you can do all sorts of things with it. You just have to get the hang of the formulas.
Iannis: Yes. I can't find them. It strayed off.
Sacha: That's cool. That's all right.
Iannis: Also the Fermat numbers. I did it the Fermat numbers and the powers of threes or powers of four, and then rendered than in Org Mode from the table and put them on screen, online, and you would have to scroll horizontally for the number, for about five minutes. That's something really quite… not serious but it's something that you can't do otherwise. Not unless you have got Org Mode in Emacs. It's quite unique, actually. It's more unique than it sounds.
To do that was 10 minutes or 15 minutes at most, where you just type C-c
, C-e
and h o
, you've got an HTML file, and you can use TRAMP to put it on your site, and that's it. I'm a big fan of table. But Org-reveal, I haven't actually used in real life, and Org Mode latex, not yet really. I think it's going to come this year.
Sacha: I think it's fantastic that since you've been working with Emacs for so long, and still there's stuff that you're figuring out, there's things that you think, "Oh, maybe this year, I'll finally learn how to do this." The point where your Emacs configuration where you're like, "Oh, I actually don't use this anymore. I have things that I have forgotten about."
Obvious question, how do you keep learning more? Where do you go for ideas, where do you go for… what resources do you find helpful?
Iannis: What do I find helpful?
Sacha: Yes. In terms of learning more about Emacs.
Iannis: Well, Emacs-fu and Orgmode, I think, is a very good place actually. Really, it's quite central. I'm looking around, looking at how the community develops, and I think it's out there. I find it when I'm browsing to find things. I find it all over the place. I think it's got a future.
Sacha: It's very exciting.
Iannis: I think that's what's changing a little bit in the use of the landscape.
There is John Kitchin of course. You probably know, from Carnegie Mellon, with his chemistry stuff.
Sacha: No, I don't. More people I should talk to.
Iannis: Yes. Professor [inaudible 0:54:42] Chemistry and Material Science. He presented about literate programming in Python conference. Because he [inaudible]. It's online. You can find it.
Sacha: Awesome, I'm going to go check it out.
Iannis: John Kitchin. Very impressive. He's got data animation going on inside Org Mode live, literally, from running Python.
Sacha: Wow.
Iannis: I know. Really very good stuff. The whole theme. There's the other people that wrote about literate programming that use it, and so many other people are checking over. It's almost like a divide between Markdown and Org Mode, but I think Org Mode is very good [inaudible 0:55:42].
It's the one that got me back in Emacs. I believe that's now the one pulling Emacs. Org Mode is playing a major role in making Emacs widely used. Well, aside from that, Emacs-fu, there's the Emacs Rocks, there's the other one which is a good blog on Emacs, but I don't go there a lot.
Sacha: You're too busy customizing Emacs. You're too busy tweaking Emacs to go read a lot of things probably. Or playing with SuperCollider. When you're doing that, you're learning a lot also.
Iannis: I do everything with Emacs, of course, except reading email, which I haven't gotten around to. But web design, everything. All my organization is around, of course.
Sacha: Yes. Because once you got the tools, you can customize as much as you have. You're writing your own interfaces for SuperCollider and other things like that. It's really hard to use anything else. Maybe you have tips for other people?
Iannis: Is this type of user going to get more? Or is it going to stay a minority? That's a question that's at the back of my mind. Is it going to be more of a mainstream way of working, or is it just “geeks” so to speak, a certain type of person that can work with this? I don't know.
Sacha: When I asked in the beginning if you've gotten any of your students playing around with Emacs…
Iannis: Some of them very slowly. And even colleagues, sometimes they say, or young colleagues say, "That's the only thing I don't want to hear about."
Sacha: I guess all you can do is keep experimenting, and keep customizing, and keep being smug about what we can do with Emacs. And eventually people will be like, "Okay, fine. Tell me how you can start it."
Iannis: I don't feel like I need too much to convince anybody. I'm pretty convinced myself. But being so convinced, I just wonder what this frame of mind is for the more broader kind of computer user community. Whether this is going to stay like a small but convinced group, or whether this type of thinking is slowly going to erode and go to other places too. That's my theoretical question about the future of Emacs.
Sacha: I'm happy to see that, especially with Org Mode, right. It's been expanding beyond the usual base of computer geeks, whatever. We have writers, musicians, and scientists getting into it just because of Org.
Iannis: The person who did Wordpress is a young guy. I forget his name. [inaudible 0:59:06].
Sacha: Matt Mullenweg?
Iannis: No. It's a German type of name. He's a big Emacs user. He's the co-inventor of WordPress. [inaudible 0:59:20] person.
Sacha: Awesome, cool. It might be a minority now, but it does look like a lot of people are coming on, and it's always a fascinating community. People are coming over with all sorts of hacks - music, or tables, or all sorts of other things that people are doing.
This is great. Thank you so much for showing people the possibility of what you can do when you customize Emacs a bit more. I like the idea of literate music. It's great to see how you can use it even for performance. You can jump back and forth, you can organize things to make it easier for you.
Iannis: Like you mentioned also, Eric [inaudible 1:00:04] Overtone, Clojure [inaudible 1:00:09].
Sacha: Yes. That's all exciting. I'm looking forward to reaching out to the other people that you mentioned, maybe for this Emacs Chat where we get to peek at how other people use it.
Iannis: Yes. Okay.
Sacha: All right then. Thank you so much and have a great day. I'm going to end the broadcast now. Everyone else, thank you for listening, catch you next time. Bye.
Check out Emacs Chat for more interviews like this. Got a story to tell about how you learned about or how you use Emacs? Get in touch!