Become a Creator today!Start creating today - Share your story with the world!
Start for free
00:00:00
00:00:01
#14 - Euroclojure 2016 Interviews (Part 1) image

#14 - Euroclojure 2016 Interviews (Part 1)

defn
Avatar
37 Plays9 years ago
At EuroClojure 2016, we had the pleasure of talking with these fine folks: Colin "The Cursive" Fleming Jon "The JUXT" Pither Srihari "The Carnatic" Sriraman Carin "The Healer" Meier
Transcript

Embracing Episode Chaos

00:00:15
Speaker
Welcome to episode 13 then. No, 14. Welcome to episode 14. This is the beginning of the episode. We always start now with arguments about what the fucking episode number is called. So that's very good. Yeah.
00:00:29
Speaker
We always invent some number, but we don't double dig it, so we don't care anymore. Exactly. Yeah. All right, let's do this thing.

Introducing Special Episodes

00:00:39
Speaker
So no special guests. Well, actually, yes, some special guests, but in a kind of historic sense. Yes. Because we're going to do this. This is a kind of special show. We're going to do two specials. This is the first one. No, fuck. I'll edit this out.

Euroclosure 2016 Interviews Begin

00:01:11
Speaker
This is the first of two specials that are recordings of interviews we did at Euroclosure 2016 in
00:01:25
Speaker
good old Bratislava in Slovakia. We're going to have four interviewees on this one. Do you remember who they were, Vijay? Yeah, sure. Remember the first one? The first one is Colin. That was your nemesis, wasn't it? Oh, technically, Colin is not nemesis. He's a very nice guy, I think. But what he's doing is not his devil's work.
00:01:54
Speaker
Well, maybe not. Anyway, sorry, Colin, if you're listening to this.

Spotlight on Colin and John

00:02:02
Speaker
You did call him a devil on the show. Probably. I think he did. I apologize, but I know there are a lot of people who are interested in listening to him. So we start with a devil talking about cursive. That was pretty good.
00:02:22
Speaker
Each of these segments are about like fifteen twenty minutes long on day so i'm fairly short interviews. They're really kind of interviews around the stuff that the people are doing so so yeah colin is the is the cursive guy and then next we've got john pitha.
00:02:39
Speaker
Yeah, so John is from the consulting company called Juxt and probably know him from his blog posts about closure at a bank and closure at a publishing company. He's now working at Juxt helping companies write closure code along with Malcolm and other people.

Growing a Clojure Consultancy

00:02:58
Speaker
Yeah, the thing I like about John as well is he does a lot of, when he does talks, he always gives good talks. And so definitely you kind of look back at some of his talks.
00:03:10
Speaker
This was a very nice, lighthearted chat about growing a consultancy in Clojure. And also legacy code and how he came back to the same code base. So we really recommend listening to that one as well, obviously. And then, sorry, do you want to say something more about John?
00:03:32
Speaker
No, it's OK. OK. Yeah. And then we have Srihari from Nilanso, which is a company in India. And he was also a speaker at Euroclosure. We got to talk to him about what he does and what his company does. And at Euroclosure, he gave a talk about South Indian music generation and everything. So if you haven't checked out his talk, I really recommend checking it out. And the Euroclosure videos are up already.
00:04:00
Speaker
And that's the third interview that we have in this episode.

Teaser for Karen Meyer's Segment

00:04:06
Speaker
And finally for this episode we have Karen Meyer. Yeah, so we start with a devil and end with an angel.
00:04:16
Speaker
Did I have it too cheesy? Yeah, I think it is. Yeah, it is. Well, we really want Karim Meir on our podcast, so that helps. But yeah, it was fantastic to talk to her and meet her.
00:04:31
Speaker
She was very kind to sit with us for some time and answer our questions. She's working at Cognica, sorry, Cognic Tech. Yeah, I shouldn't name our competitors. Also, she's the author of The Living Closure, which is a very nice introductory book about closure.
00:04:55
Speaker
So those are the four talks that we have for part one. So that's pretty much it. And I think all I can say is enjoy the interviews and do let us know what you think. And we would like to, not we would like to, but we will soon publish the videos of them on YouTube pretty soon.
00:05:16
Speaker
Yeah, I think we're nearly done with the videos. We hopefully will record those in the coming weeks. It does take a while, unfortunately, to get these videos sorted out. Yeah, I just want to add that there is a little bit of a sound quality issue on the recordings because we only had one microphone and we're passing a microphone around from person to person.
00:05:42
Speaker
So sometimes you hear little clicks on the microphone, or maybe sometimes you hear people not speaking quite so loud as you'd like them. So apologies for that up front. We still think that the vast majority of the quality of the recordings is pretty excellent. But yeah, enjoy the interviews and look forward to the next episode, part two, that will be released also very shortly. Cheers, guys. Okay, bye-bye.
00:06:13
Speaker
Welcome to our first ever Deafen talk show podcast combo. Um, I don't know how it's going to work out. We'll see, but we've got an awesome guest, Mr. Colin Fleming. Hello, Colin. We're going to do a bit of mic swapping here by the way. So just watch out for that. I'll be leaning in an intimate fashion here while I'm talking. Yeah. Okay. Colin. Yeah, no, that's it's, I'll grab it. All right. Who has the mic is speaking. Right. Exactly. Um, so it's good to be here. Thanks.
00:06:43
Speaker
Right, we've got to give Vijay a chance to speak now. I know he probably has lost his tongue a little bit in front of the devil that is cursive. But let's just give him a try. Yeah, so this is going to be a proper, I don't know, a clash of religious beliefs, I would say. So Colin is the creator of cursive, obviously, and I'm... Let's just see that happen. I mean, like, Hillary and Donald, you know, let's see it happen.
00:07:14
Speaker
No, so I'm obviously I'm going to devote emacs user. So well, let's not talk about emacs today. Let's talk about a bit more about cursive. So you're you're coming all the way from New Zealand. And this is your how many number of euro closures have you been and how is Pratislava treating you?
00:07:32
Speaker
So it's the third Euroclosure I've been to. I've been to the last two. I was in Barcelona last year and in Krakow, the year before that. And Bratislava has been great. I actually only arrived right before the conference started yesterday. So I've only seen the interior of the pub last night and the interior of the venue here, basically. But I'm sure Bratislava is lovely. People tell me it's very nice. But I just haven't seen very much of it yet.
00:07:54
Speaker
But the conference has been great, I mean I really like the closure conferences, they're always a small sort of friendly crowd. Because I've been to quite a few of them now, I've been to the conge in Euroclosure a couple of times and Closure West, so you meet a lot of the same people and it's like being in my lounge at home with some mates at this stage. So it's great, I mean I always really enjoy coming to them, they're a friendly crowd and yeah, they're really good.
00:08:17
Speaker
So, did you fly all the way here in one stop? Did you take one stop and then you're going to go straight back tomorrow or the day after? What's your plan in Europe?
00:08:28
Speaker
No, so I have actually done that a couple of times at the US conferences and from New Zealand it's definitely quite a beating. It's around a 24-hour trip from New Zealand to the US and it's only a six-hour time difference but it's still quite difficult and it's in the wrong direction, the jet lag when you're going to the States. No, but I was actually already in Europe so my wife is Spanish so I spend a bunch of time in Europe every year so my daughter can hang out with the in-laws.
00:08:51
Speaker
So, yes, I wouldn't have come from New Zealand just for Euroclosure, but when I was in Europe, it's, yeah, it's doable, that's right. And I'm actually, I'm going to the conge from Europe as well, even though it's still quite a long trip, but it's about half as long as from New Zealand and also about half the cost. So I'll definitely be looking forward to that as well.
00:09:16
Speaker
I'm pretty sure you keep writing cursive code in Emacs, so you don't need to say it on the camera anyway. I know that you have an unsessioned plan tonight about cursive and a little bit about that, if you can tell what are you planning to do in that one.
00:09:35
Speaker
And also maybe as a bonus question, what are your plans for Curcio? I mean, what are you working on right now? So that'll be great as well. Right, so the Unsession is tonight at 9 o'clock. So I've done Unsessions at a couple of previous conferences. I think this is the first time they've done one at Eurocloger, but they do them as pretty standard in the US conferences. And yeah, the Unsessions are always a lot of fun. So I haven't prepared a huge amount. What I basically do is I get up
00:10:02
Speaker
And I start demoing things randomly until people ask me questions, and then I answer the questions, and then it sort of goes from there. So it's always very informal. So definitely, if people are interested, they have the questions they want answered, or they just want to see what it's all about, and definitely come along. Yeah, I really like them, because it's a much smaller, it's a very different experience to speaking at a conference, because you interact with everyone, and it's very much question-driven.
00:10:26
Speaker
So, and you also, you talk about a lot more about things than just the technical aspects, like sort of, which is, which is good. Um, in terms of, when is your actual, I know this is not going to be live, so it doesn't really matter. We can cut this out, but what is your actual in session?
00:10:42
Speaker
It's at nine o'clock tonight. Yeah. Yeah. And yeah, in terms of what I'm working on, I mean, I always have a ton of stuff planned for cursive and I never have enough time to work on it. So I actually, I haven't been working on cursive as much as I would like the last couple of months, but I'm about to start getting more into it again.
00:10:59
Speaker
Clojus script support is probably the top thing on my list. So Cursor already has pretty good Clojus script support, but a lot of stuff around starting the ripples. So I've been talking to Bruce Hellman and also to Antonin Hildebrandt here at the
00:11:12
Speaker
the country wrote and do i can see what you have tools so i'd like to speak to both of them about integrating fig wheel and all that they've told stuff and and a curse of because it all works very well beginning it set up can be quite difficult so if i can have a one click close to script ripple i think that would be and i'd be very attractive to other people.
00:11:29
Speaker
So I need to improve CLJC support. And then I always have a ton of stuff to do. I'd like to add boot support, for example. That's quite difficult because of the nature of boot, but it's definitely becoming more and more important. So I'm going to need to do something quite soon. And other than that, just fixing bugs, new stuff, spec support will be coming up sometime soon. What's that? 1.9.
00:11:53
Speaker
1.9, right. Yeah, so I've added a bunch of support for a lot of the namespace keyword stuff that's going to be required for spec. But spec has a lot of scope to actually provide good editor support, I think, so marking errors in the editor when things don't conform to specs, especially around the macro specs, things like that, when people expect a function. And Cursive can see that the spec is expecting an int and you're past a string, something like that. So all of that should be doable, I think. And even just, what's that saying?
00:12:21
Speaker
Yeah, exactly. And just showing basically the specs and parameter pop-ups and things that in the documentation, all of that I think will be very useful. Okay. I think that's going to be very exciting for us closer to cursive devotees to look forward to. But I noticed on the
00:12:41
Speaker
the Closure mailing group. There's been a bit of conversation recently about types and with the spec stuff coming up. And you've had a little chat about Kotlin and things like that. And I know you've been advocating that kind of, let's say more typed stuff around the stuff at the interfaces between Closure and Java. Maybe could you give us like two minutes on why you're advocating for that? Because I think it's quite interesting
00:13:06
Speaker
Because clearly, if you're all closure, then spec does the job for that. But where you've got this interop interface, where you're mining that essentially with a cursive, then I guess it's a tougher job. So maybe you could just give us two minutes on that. That would be really good. Sure. So I'm not sure I can do it justice in two minutes. It's a complicated topic, and I think
00:13:30
Speaker
So I haven't fully worked out exactly why cursive suffers so badly from null pointer exceptions because when I, when I talk to a closure developers, they pretty much fall into two quite extreme camps who are either, I never see no pointer exceptions, um, or I see them all the time and they ruin my life. Um, and, and I'm definitely in the second camp and I haven't quite figured out. So, so you write the curse of basically is almost all API surface. I mean, there's almost nothing I do in cursive that doesn't call into IntelliJ, which is Java obviously at some point.
00:14:03
Speaker
The thing that Kotlin does really, really nicely is that because Kotlin allows you to express whether a type can be null or not, if you're assigning a value that comes back from Java to a not nullable variable, it will automatically insert an assertion at that point. As soon as a value is not what you expect, you get an exception.
00:14:21
Speaker
So Speck does actually allow you to do that, but the problem is you have to do it all the way around your API boundary, and in my case, that's half the application. So I'm actually very excited about Speck. I mean, it's an amazing system, but it's a tool like any other, and it works better in some cases than in others. And I think particularly the fact that Speck relies on generative testing to increase the confidence you have in your functions.
00:14:45
Speaker
I can't really use that so much because all of my code talks to IntelliJ and the generative testing aspect doesn't work so well. And I guess it's not really surprising that Kotlin works well for my use case because it's developed by JetBrains and so the use case is exactly my use case and it does work very nicely for that.
00:15:03
Speaker
I still don't know what I'm going to do. I don't want to write all of cursive in Kotlin. I'd much rather be using Clojure. And I'm kind of sad that I don't have a better solution for this yet. So I'm sort of casting around, and I've actually had some interesting conversations with people here at the conference. I spoke to David Nolan about it a couple of weeks ago as well.
00:15:19
Speaker
So I have some ideas there that are not fully developed yet, and I'm hopeful that I can come up with something that is at least 90% closure-like, but maybe helps me fix this problem. But I don't fully know what it's going to look like yet. So maybe some kind of library or something around that layer, maybe something like that.
00:15:38
Speaker
Yeah, possibly, some sort of static analysis ahead of time, maybe. The problem is that to automatically insert the assertions where you need them, it needs some kind of integration with the compiler. So if I were using spec, I would have to say I want all these functions to be instrumented at runtime. And you pay quite a reasonable cost for that. Obviously, the null checks, the cotton inserts also impose a runtime cost. But assuming that the assertion is correct,
00:16:06
Speaker
I'm hot spot should completely optimize that away i'm a speck will probably have a slightly more of it should still be pretty efficient i think but the main thing is is that i have to annotate all the functions manually saying you know i want run time checks at these and these and these points was with cotland just happens magically but for that to happen you need some kind of integration with the compiler.
00:16:26
Speaker
Right. Well, thank you very much. I think it's been an amazing first ever episode of the Deaf and Talk Show stroke podcast. I don't know if you want to add some final remarks to Colin. Yeah. Thanks a lot for joining us. And this has been a pretty exciting time for us, I think.
00:16:45
Speaker
and we'd really love to have you on the show on the podcast at some time so we can go deeper into what you're working on and perhaps spread the news around a bit about cursive and tell people that well it's going to be very difficult for me you know honestly but what you never know so we'll try that out yeah
00:17:05
Speaker
I'll just drop him off for one show, okay? We'll just have a private conversation, okay? No problem. Well, thanks very much. It's been really fantastic stuff. Okay. Thanks very much, guys. It's been a pleasure.
00:17:21
Speaker
Okay, we have John from Jexxed today. Welcome to our first talk show format of our podcast for some reason. Yeah, so this has been an amazing one. Of course, the honor is all ours. So first of all, this is a fifth Euroclosure. How many Euroclosures have you been to? And how is Gattislava a Euroclosure for you so far?
00:17:48
Speaker
So I'll answer those in sequence. So this is my fifth Euroclosure. I talked at the first two, and then I talked at the fourth. So I was actually hoping to talk at every single one. I think they wouldn't allow that. And rightly so as well. He wants to hear from me for that length of time. But this conference is great. The venue is fantastic, isn't it? And just the vibe as well, the sort of un-sessions and chats that are going on at the top on the balcony. Having a great time. Yeah.
00:18:17
Speaker
So you are also sponsors of your occlusion now and you've been running Closure Consultancy for some time and I've seen you speaking about Closure at a bank, Closure at a publishing company and you have a lot of experience with building large closure projects. So can you give us some idea about the difficulties or the fun stuff that you're facing building a Closure Consultancy?
00:18:42
Speaker
Yeah, sure. So Jux has been going for about four years. And really, there's lots of developers out there that want to do Closure. So I think it's kind of funny when you speak to companies and they say, oh, we'll never be able to hire in Closure. We can't hire Closure devs. There's more Closure devs on the market right now that are actively searching for good projects and are the good projects.
00:19:03
Speaker
So every client that has dabbled in closure or used closure always reports back that the hiring is one of the best things about it because they sort of get the CVs coming in, they get people actively seeking them out, and then the people that seek them out are top quality as well. So it's sort of a win-win for the employer.
00:19:21
Speaker
So that's one of the good experiences. And it's good for Jux as a company because we're very opinionated about our stack. We only do things using Closure. If we had a client that said, we love you guys, but we want to use Scala, then we'd probably just say no. So the way that we're so opinionated, I think, attracts good developers that want to work with us. So that's one of the strengths of Jux and it's one of the things that really excites us.
00:19:49
Speaker
So you started with Closure almost, how many years ago? From the beginning of Closure? I've been doing Closure since 2010, so that's probably six years. So yeah, it's been a good journey. As you say, we started with Closure in the banks. That's how I met my business partner Malcolm because he was doing Closure in a bank and he had a role called Closure in a bank and my role was Closure at a bank.
00:20:16
Speaker
So we sort of like looked each other up. And who is this person that's in my space that's capturing my domain? So yes, we sort of met. We went for lunch. And then we said, you know, we love this technology. And we love the fact that it energizes companies. And people want to do things simpler. And they want to reduce waste. And that could be the basis of a services company. We want to take that out and do it more often at more places. So that's what really inspired us to start with Joost.
00:20:44
Speaker
So we were having a chat before about building up a big project, and you were saying about refactoring code and stuff like that. I think it's one of these things where, like you said before, if you're building up and getting excited about stuff, everyone's really loving Greenfield projects. They love that kind of stuff. Every developer wants to be on the cutting edge of technology with Greenfield projects.
00:21:05
Speaker
But I guess at some point you have to get real and it has to be brownfield or it has to be a year in or two years in. Things must change a little bit when you're doing things like day in, day out in closure. The kind of like the excitement, the kind of passion that this wears off on. How are you finding that in terms of like, now you've done it professionally for so many years, how do you find that experience?
00:21:30
Speaker
I think that's a great question. It goes to the heart of one of the issues that I think does concern employers and does concern me, which is we're in a strange place where we've gone for a language where there's simplicity and there's less bloat and waste, but there is a side of it that can happen where developers look at this new technology, the new languages and frameworks, and sometimes they get a little bit drunk like,
00:21:53
Speaker
Let's use this, let's use that. We're gonna need this sort of distributed orchestration computation engine. We have to have it. We have to use spec or schema everywhere, like every single function. So I think we've gone for this simpler toolset, but then it's the next frontier of waste that bothers me. I think the way to do it is you still need leaders. I think it's what you said, Ray. You still need somebody that's on that
00:22:22
Speaker
bridged making sure that developers are still adhering to business value and business focus. And we're not just picking up the technologies and going through it, we're still maintaining that business focus. The challenges of...
00:22:46
Speaker
I think I've made mistakes in the past. I think in one of our big projects, I was very much trying to get buy-in from everybody and treat the project as a democracy. It's almost like now we're in a new space where we've got really fantastic developers and the tooling is fantastic. There's a temptation to think it should all come together and it's just going to naturally evolve to be an amazing project.
00:23:09
Speaker
But I've since learned that there really is no free lunch. Software is not a democracy. You still need somebody that listens and understands and empathizes with the developers on the ground, but ultimately sort of maintains the sort of respect of the trust that the clients put in us when they bring us onto their projects and they need to spend all that money basically to craft that delivery team.
00:23:33
Speaker
Yeah, I think that's really interesting because I am also into architecture and stuff like that. And we work with projects in an enterprise architecture mode where you have to tell people, OK, well, if you're going to do persistence, for example, you have to do it a certain way, use a certain library. You don't want all the styles to be completely different from one project or one application to the next. Obviously, things are going to evolve.
00:24:00
Speaker
You're not going to say, right, okay, you guys didn't use spec in the past, you use schema, so you've got to change everything tomorrow. There may be some advantages in doing that, but often it's not going to be the case. You're going to have to live with code that's a year or two old, and it's going to have to evolve over time when the business value is there, when people want to change it.
00:24:20
Speaker
So is that something which you're also thinking about? How do I keep things fresh but at the same time maintain an existing code base that is still serving the business? I think so, yes. It's like I'm a big believer that code always evolves.
00:24:43
Speaker
I really got into Paul Graham's writings about the organic bottom-up lisp and also this idea that your software is like a house, it's like you move in, you live in there and you're constantly trying to make it better, you're constantly trying to enrich the style of it.
00:25:00
Speaker
But I think the organic bottom-up thing is important because you're ever evolving the business language and the business is never done. So the code is always looking to sort of evolve and to meet the business halfway. So you layer on that business domain on top of the code.
00:25:16
Speaker
And I find that particularly appealing. I've just come onto a project that I was on three years ago, which is the big newspaper. There's 25,000 lines of code there. And for me, it's been a fantastic experience to go back to a code base that you were primarily involved in. And it was a bit of a shock at first because I sort of rocked up and one guy was quite angry with me. He was like,
00:25:44
Speaker
Exactly, and he said he built it too fast. There's not enough abstractions, there's not enough this, there's not enough that, there's not enough types, not enough schemes. And I felt, at first I felt dismayed actually. It was, you know, I kind of wrote this and these people aren't happy and, you know, it's now showing some problems.
00:26:01
Speaker
so I spent the first few days completely humbled actually because I went in there thinking there might be some sort of respect for what we did or there might be some sort of praise but it was kind of the opposite so it's like being judged ultimately you know when you pass on or something and so no it was nice but then I've sort of I'm really happy now because I've proved
00:26:25
Speaker
To myself, I think, and maybe we can share this in some way, that you can refactor a huge closure of code base. This code base is really big, and it needed refactoring. The smart people that were there when I joined them, their ideas were really good, actually, because they've been with it, they've seen it refresh eyes.
00:26:44
Speaker
They couldn't quite have the capacity, I think, just to implement some of those changes. So we had a sort of perfect storm where I had the energy, I had the experience of the code base, but I had enough of a gap in someone else's ideas to how to improve it. And myself and somebody else from Juxt, we worked there for about two months, and we've just refactored so much of it. And you can refactor a big enclosure code base. You can untangle it. You can bring it back. You can separate it. You can do these things.
00:27:12
Speaker
And I just don't think the same would be true if it was like in Ruby or Java, you know, where it just explodes out. So it's still a win for closure, even though it's been a bit of a painful experience.
00:27:27
Speaker
Well, you know, obviously you're a busy man. Euroclosher is a busy event for you, John. So thank you very much for taking the time out to talk to the Deaf and guys. On a podcast, we put it on a podcast, this one, if it all works out with the YouTube and our new tech, our new tech lead here, our new media engineer, then, you know, hopefully we get it out on the YouTubes as well. So thank you very much. Really appreciate it.
00:28:00
Speaker
Sreehiri, right? Hey, welcome to DefN talk show slash podcast. Hopefully it's going to be a video, but we'll see. So you just gave a talk about making music with closure, especially the South Indian Carnatic music.
00:28:16
Speaker
And you're obviously from India and you're working for the company Nalenzo, right? So can you give us some background on what your company does and what is your experience with Closure? And also a bit about your talk, which is based on music. I don't think it's related to your company though, but we never know.
00:28:36
Speaker
So I've worked that lens over the last three years. I've been here since its inception. We are a bunch of people who just want to do deeply interesting technology. And we were earlier, like five years ago, a Ruby shop. And then like we moved over to closure like three years ago. And since then, it's just been closure all the time.
00:29:05
Speaker
We are a consultancy and we are structured as a cooperative. So everyone's an equal partner. And there are like 14, 15 of us right now. And most of our clients tend to be in the big area. But we have an Indonesian and an Indian customer now. So that's progress, I suppose. We get to work in the same time zone for a change. So yeah, it's been interesting.
00:29:32
Speaker
Just maybe a second, just one little background question there is like what motivated the change in your team from Ruby to Closure? So Stephen Dearbald, who happened to be with us, had written Closure before at DRW. So he's probably the guy with the most closure experience on the team. So he had written it for like seven years back then.
00:29:59
Speaker
He wanted for us to try it out on one of our clients projects. This was actually Runa at the time, if you were familiar with that. A bunch of us knew people from Runa and they'd just gotten acquired by Staples and they'd become Staples Labs.
00:30:16
Speaker
And so we got to work with those folks and then the cognitive tech folks there. So that was pretty cool. So we got on board and we were productive for some reason within like two months in and we were like writing a closure code that was going into production. And then like this is actually quite productive.
00:30:34
Speaker
And I seem to be getting a whole lot of work done in much less time. And I guess that was like proof. It was good enough for me. Like the language sort of got out of the way. Like I spent like three months going through joy of closure, doing a bunch of closure on the side before I actually picked up actual work. But when I did, it felt like it really got out of the way and I got to focus on the problem more. Yeah, that was it for me.
00:31:03
Speaker
Let's just put it around that way. So you're also one of the main sponsors of Euroclosure. So thanks a lot for that. I mean, without sponsorship, we wouldn't be here and doing all this stuff. So that's pretty great. And so your company is a consulting company. And you guys do other than Clojure, other projects as well? Or how does it work? Which technologies do you work in mostly?
00:31:30
Speaker
We seem to like functional programming quite a bit. Like I said, we're just a bunch of hackers who really like to pick up the thing that's most technically challenging. Haskell seems to be something that people are interested in at the moment, but largely though, 95% of the work that we do tends to be in closure.
00:31:53
Speaker
We don't do any front-end stuff at all, but this little stuff that we do tends to be in React JavaScript space because it needs to be that apparently. Some parts like Abhinav from the company has managed to put an OLTP to OLAP transformer in Haskell introduction.
00:32:14
Speaker
So that's like a deterministic system that can be formally typed quite easily. And that's the sort of thing that you will want to write in Haskell. So he did that. So that's about it, I guess. Mostly though, it's closure.
00:32:31
Speaker
So regarding your talk, so you gave a talk about generating music, especially Carnatic music. So this is something that, because I'm a little bit familiar with Carnatic music and slightly familiar with Western music. So obviously I'm ignorant in both of those things. So I think I can ask stupid questions now. So
00:32:54
Speaker
I felt that the Western music is very fret-based, instrument-friendly, so to speak. And Carnatic music has all this stuff that you listed in the talk, like Gamakas and all that stuff. So what is your motivation to do generation of music, especially Carnatic music? And what are your goals with this one? Is it just a hobby or is it something like you want to take it to a next level?
00:33:23
Speaker
So, my fascination with this started off when I was doing Turbo C++ and you can make those weird CPU sounds and then I used to play these things that I was learning as a kid and was like, hey, I can make the machine make music.
00:33:38
Speaker
Then with closure and overtone, as soon as I found it, I was like, hey, I can do this really quickly. And I got there really fast. I basically built all the abstraction that I showed within a day really easily. And then that built the freedom that I needed to take things forward. So Carnatic music, like you said, does have a sense of continuity that most Western music does not.
00:34:06
Speaker
And modeling that was interesting. Now, how do I make something that's built for Western music, mostly make Indian music sounds? That was a challenge. And I wanted to do that. I really wanted to solve that as a problem. And it was interesting to me. Something I picked up on a weekend. I actually don't even forget where that started. But that was a fascination. I wanted to solve that. And I got somewhere with it.
00:34:36
Speaker
And then once you have clean code that just works mostly, you have this freedom of ripping things apart. And then you can add things newly that's quite easy to do. And I guess I just sort of kept doing that more and more. And there are actually quite a few people who try to do Carnatic computational music. And the reason why this is actually a thing is because it's interesting in Indian music. There are a lot of these
00:35:05
Speaker
concepts like Gama Kamsa and Raghav, which are constraints that you can use to model. You're sort of blind when you want to understand what is melody and what makes music more melodious. And you want to sort of grab every single abstraction that you can find and implement it and use it to make some generative music that is melodious. So Kannadik music happens to have a few of those.
00:35:31
Speaker
And Carnatic Music also has a large history and there's an evolution of knowledge that you can use to do something here. So there is this MTG at Barcelona and they have this thing called Comp Music, which is funded by the EU.
00:35:53
Speaker
that organization funds other research in India in IIT, Madras and Bombay and these people do research on Indian classical music as well. So I'm definitely not like the only person doing this music, this stuff and a lot of inspiration comes from these people and there's just a single chain
00:36:12
Speaker
It took me a while to figure out that this whole thing is just one thing, just new individual people that did this. I guess the next step for me is to bring these people together. There's a whole bunch of people doing these little small things. I want to bring them together and take this to the next step.
00:36:33
Speaker
People, you know, so I know a whole lot of people who just have these big collections of books, like, Oh, my granddad gave this to me and it has these beautiful compositions that are completely lost now. Or like, look at my collection is the biggest thing possible. I don't think those things should exist. I think it should just be a
00:36:54
Speaker
a generic database. All this data should be in Wikipedia. So I guess a lot of my inspiration for doing this is also that I feel Carnatic Music should move into the digital age. It's very long, far back now, and it needs to move in. Sorry. So my final question then. Emax or something else?
00:37:22
Speaker
Oh, so another Max guy. Just get out of here, OK? We've had enough of you now. God damn it. No, that's brilliant. Thanks very much. It's inspirational stuff.
00:37:36
Speaker
All right, well, yeah, so Karen, welcome to Jeff and talk show and podcast. Maybe use the talk show if we all worked out with the videos. Thanks for coming along. We're going to talk to you a little bit about living with closure, the book living closure about various things that you're doing in your daytime and in your nighttime activities.
00:38:01
Speaker
Well, at least to do with closure. And yeah, so I don't know. Do you want to give a bit of background about kind of how you got into closure and sort of what sort of things you're doing these days?
00:38:14
Speaker
Sure, yeah, happy to be here. Yeah, so I got into Clojure. The years kind of go by now. But a while ago, maybe about five years ago, I was a Java developer and enjoyed working in the language. But I wanted to learn a functional language. So my two choices I wanted to look at were Clojure or Scala.
00:38:35
Speaker
And for me, I kind of approached it like learning a spoken language. I just wanted to be immersed in a different way of doing things. So I chose closure. And I had never been exposed to Lisp before. So I don't know if I fell in love with Lisp or I fell in love with closure. But once I saw it, there was no going back. It was so beautiful. And then, of course, it's practical.
00:39:05
Speaker
get all your Java library so it lives on the JVM. You still use the things that you have used to before. Thanks for that. Thanks for that. So, Vijay. So, this is your first euro closure, or have you been here before? And also, you're going to talk about spec today, right? And can you give us some idea about what the talk is about in a little bit?
00:39:36
Speaker
And this is my first year closure. So actually my first time in this part of the area, and it's just beautiful. So and all the people that I've met are super nice and super smart. So it's been a great experience all around. So today I'm actually going to be talking about spec and a couple of kind of creative experiments that I've done with it. One is with combining spec with genetic programming.
00:40:04
Speaker
And the other is combining spec with self-healing code. So this is like when a function gets a runtime error, if it can use spec to sort of heal itself for that time and subsequent times. So the hope is, I always love taking advantage of
00:40:23
Speaker
having a group of people interested in closure and so many smart people out there. It's great to share ideas and hopefully get people's creative juices going and inspire them to explore more of a spec.
00:40:40
Speaker
So closure is code generating code, and now you're going to code fixing code itself, then basically we're all done. So we don't need to write code anymore because it's going to fix itself. That's pretty cool. OK, so you were just saying that you joined Cognite one year ago. So can you give us some insight into what kind of work you do there and your experience with Java before, which kind of projects that you worked on?
00:41:08
Speaker
Yeah, so it's been great working for Cognitech. I work remotely. So most of the time I am working in my house. Although I try to get out in a house. There is one time during the winter. Yeah, yeah, but it is a danger. You get so comfy at home because like during the winter you don't want to go out. But I realized I hadn't actually left the house for a whole week. And I was like, I really should get out.
00:41:35
Speaker
But it's a great experience. So we do consulting work. So I like that because I get to see a lot of different things depending on how long the project is. You get to be exposed to working with big companies.
00:41:51
Speaker
or working for startups, even working for game companies, which was a bit fun. So yeah, I get to do front-end, closure script stuff, back-end stuff, and then, of course, I have to dip my toes in Java every now and then, too. Fantastic.
00:42:12
Speaker
Okay, so also, as well as being the kind of consultant and a speaker, you've also written a book as well. So, Living Closure introductory book. I remember you talking on some, either if it was a speech you made or if it was a podcast, talking about the kind of motivations for it, like the storytelling.
00:42:32
Speaker
Maybe you can just recap that a little bit about why, you know, what was the motive? Because obviously writing a book is very hard, you know, I haven't done it, he hasn't done it, you know, we're just very, you know, in awe of people that will put the effort into writing books, I think it's impressive. So what was the motivation to go through all that pain?
00:42:50
Speaker
Well, first of all, I didn't know how hard it was. I had this idea that I write blog posts. It's not that much different, but just multiple blog posts. No, it's a lot different. But I'm glad that I went through it. But yeah, I believe that
00:43:12
Speaker
Narratives or storytelling is core to our human experience, and there's been some research to back that up. I think if you can combine telling stories with trying to teach, it hits at a different level than if you take the narrative out.
00:43:31
Speaker
I try to incorporate some narratives whenever I'm trying to get across concepts because I think it helps, or at least some people it resonates with. The other part for our living closure, the motivation was one night I helped organize the functional programmers group in Cincinnati.
00:43:53
Speaker
They're not all Closure developers. They come from all walks. Somebody had said, I had tried to learn Closure last weekend in two days and it was just too hard. I read a whole book in two days and I just don't get it. That's like me not
00:44:15
Speaker
exercising regularly at all, trying to run a 5K and saying, oh, this is too tough. I can't run. You need to have some sort of expectation that you can't do it all at once and that you need to slowly, especially if you're coming from a different paradigm, like object oriented, it actually takes your brain time to change.
00:44:35
Speaker
and time to make those new connections and start thinking and modeling the world in a different way. So I think we should set people up for this. It's going to be a process. And you're not going to get it all at once, and it's going to take some time.
00:44:48
Speaker
I think it's, I mean, athletics is a good one in terms of getting some training and I think other people have talked about learning a musical instrument and stuff like that where, you know, yeah, you can kind of make a noise pretty quickly, but actually if you want to become proficient at it or, you know, skilled, then it's going to take a bit of practice and all those kind of things.
00:45:10
Speaker
Why do you think the closure though, maybe it's a list spot or something, there's something about closure or FP, I don't know. I'm kind of blabbing around now, but there is some kind of barrier, mental barrier to either FP or closure or something where
00:45:28
Speaker
And maybe it was like that and I started as a C programmer and then eventually went into OO and it took a while for me to get OO I guess. But do you think we're going through the same barrier with FPOs or something special about FPOs? It's just something we have to go through where the programming community just has to basically get their head round it. It's a hard question.
00:45:50
Speaker
Well, right. So my own personal view of it is it's just the way you look around the world and you're translating problems and how you want to model the world. And that changes drastically if you look around and you see everything as objects, or you see things as beautiful chain data flows, just that mental representation
00:46:20
Speaker
And I actually have a picture in my talk this afternoon. I don't know if you're familiar with the duck rabbit. Yeah, it's an illusion. If you look at it one way, it looks like a duck. And if you look at it in...
00:46:37
Speaker
It's a duck-billed platypus. Yeah, if you look at it one way, it looks like a duck, and you look at it another way, it looks like a rabbit. Well, if you're so used to seeing just the duck, it's going to take you a while. But at some point, if you learn both ways of thinking, you can see both the duck and the rabbit. Yeah, right, right, right. They coexist. Yeah, I don't know which one's the functional duck. Well, they do say if it walks like a duck and talks quacks like a duck. OK.
00:47:04
Speaker
Well, okay, this is great. Any last remarks, Vijay? So, you use Emacs, right? That's fantastic. So, before we wrap up.
00:47:20
Speaker
I'm joking. Anyway, so apart from obviously closure is a big part of me. You're working full time. You're working for closure stuff. So what else are you into? I see that your talks are not just technical. They're related to something outside the general programming stuff. Like today you're going to do the genetic programming thing. I remember there was something related to the biology stuff before. So what are your hobbies apart from writing closure?
00:47:50
Speaker
Well, I really am a big integration proponent and integration of, you know, different disciplines into computer science and different taking things from different languages and bring it into closure. So that's really what kind of gets me excited when
00:48:07
Speaker
I can learn about slime mold and learn about these cool self-organizations that all these things are just like little cells all together, but together they can self-organize themselves and really have complex behavior. How do you then take those ideas and maybe translate them into our computer programming field? There's all sorts of things we can learn from different fields and that's what gets me excited.
00:48:38
Speaker
All right, okay. Well, thanks very much, Karen. Okay, we'll stop there.
00:49:10
Speaker
you