Become a Creator today!Start creating today - Share your story with the world!
Start for free
00:00:00
00:00:01
#17 - Village Idiots image

#17 - Village Idiots

defn
Avatar
42 Plays9 years ago
One for the vi lovers ;-) **Credits** Music Thanks to youthful exuberance of PTZERY for the intro / outro music The track name, chiming with our show theme, is Melon Hamburger https://soundcloud.com/ptzery/melon-hamburger. Listen to more of his work via his SoundCloud https://soundcloud.com/ptzery Design Thanks to the fabulous freelance designer, Lubov Soltan for the logo Follow her on Twitter @moolver_sin https://twitter.com/moolver_sin Check out her work at Deviant Art http://moolver-sin.deviantart.com Mixing Thanks to Wouter Dullaert for all the help with mixing and fixing of the audio Follow him on Twitter @wouter https://twitter.com/wouterdullaer
Transcript

Podcast Infrequency Jokes

00:00:21
Speaker
Well, number 17, for 2017. Yeah, that's spectacular. That's what I call a prime number. Yeah, I hope we're not going to go to episode 18 in 2018. That's a long delay. That's Duke Nukem's style eyes of the podcasting world.
00:00:44
Speaker
Well, this is going to be one of those rarest things on the planet, like it blooms every one year or something. It's like Sherlock. Yeah, maybe if we go with that, we can really...
00:00:56
Speaker
like Under Promise and Over Deliver. Exactly. And so we said no episodes and we still deliver one episode per year. Is that Under Promise and Over Deliver? I think it is, yeah. Do the maths, yeah. No more listeners, but you know. Yeah. All right. Should we actually start? Sure, sure.

Introduction & Name Challenges

00:01:18
Speaker
So you've got something to pimp, haven't you? Yeah, of course. So by the way, should we say who the fuck we are?
00:01:26
Speaker
Exactly. Happy New Year, everybody. Episode 17. Ray McDermott in Belgium. And this is Vijay from the Netherlands. Vijay, why the fuck don't you say your second name? It's a secret. It's not. I put it out there every time.
00:01:42
Speaker
Well, I have a middle name and a second name, and it's very confusing for people. You know the Indian names, right? They're really long. Well, mine is not that long, but I usually don't want to talk about the rest of my name, I think. VJ is enough, and even if I tell VJ, people keep typing V and J instead of typing actually VJ. Really?
00:02:03
Speaker
That's weird. I mean, I used to work with a guy, it's a nice guy called Harkunwapit, which is, you know, one of these long Indian names. Okay. And you look like... I'm pretty sure that's not how it sounds. How does it sound? Harkunwapit. You can say it again? Harkunwapit.
00:02:24
Speaker
I have no idea what you're saying. OK, well, yeah, that's probably why people match these names. But anyway, he, you know, Ha, Ha, Kun, Wa, Peep. OK, it's only like four syllables. But no fucker could pronounce it nobody. I mean, actually, it's OK. I could do it, obviously, badly. But people shorten it to Ha, Kun. And that's OK. But some people couldn't even go that far. And they would say Harry.
00:02:50
Speaker
It's not called fucking Harry. It's an Indian guy. Stop giving him English names. It's a bad thing actually. This is not really on topic, but fuck it. It's on topic for the fact that white people are terrible.
00:03:10
Speaker
But I think even I see that in other cultures as well, like the Chinese people, they try to help us by

Cultural Name Adaptations

00:03:20
Speaker
giving anglicized names. So they're like, OK, maybe it's them taking a pity on us. They're like, oh, fuck, you can't pronounce this anywhere. Just use something that you can use. I'm fine. Moving on.
00:03:33
Speaker
But that's very insulting. Yeah, I really spend a long time asking them, am I pronouncing it right? And then it goes to a point like, please stop it. You know, you're butchering my name, just use an English thing and then move on. Yeah, but it's like when Indian people get my name wrong, I really crucify them for it, you know? I don't. It's okay.
00:03:55
Speaker
But it's an easy... It's right, is it? Right. The funny thing is actually, the Belgian people don't get my second name. They just don't get it. Because you know Polish names have got all the Z's and the S's and they're all squished together. Well, according to Belgian people, my name is a bit like that as well because it's M-C-D-E-R-M-O-R-T-T. They've got no idea.
00:04:20
Speaker
How do you say that? They have no idea what to say. And it's always a confusion, you know, when I'm on the telephone to these guys. So it's really weird. But talking of like these weird names, I mean, my wife, her father was called
00:04:40
Speaker
but he changed his name to John when he came to England. Why did he change his name to John? Well, because his brother was called, his brother had changed his name to Johnny. Yeah. So Johnny and John. No parents would call their kids Johnny and John, but they were brothers, Johnny and John. And this was, this was not weird.
00:05:08
Speaker
We can cut that shit if you like. I think we should leave it at the end. New Year's revolution.

Dutch Closure Day Event Planning

00:05:18
Speaker
It is New Year and I think things have been a bit quieter over the holidays and we did
00:05:24
Speaker
have a very nice episode with Malcolm Sparks from Jexxed and we also put the videos that we recorded, the interviews with prominent Closure personalities on YouTube. We are out on video channel and we even have three-digit views so it's crazy. It's just super popular in the
00:05:47
Speaker
Vegetarian closure, podcast slash into the world. It's an ecosystem. The multimedia empire. Yeah. Yeah. I think we will be just like Robert Murdoch pretty soon. We'll be going into print and.
00:06:04
Speaker
Anyway, so the videos are up, and I think, of course, the audio was also released in the podcast. So what is coming up? So what are we working on? So right now, I'm working on Dutch Closure Days, along with three other guys, Carlo, Max, and Joost. The four of us, we organized Dutch Closure Day last year, which has been super fun. And this year, we are doing the same thing on March 25.
00:06:31
Speaker
So the call for proposals is open, and I think we already have 10 proposals already. So it is going to be pretty fun. And we have a couple of sponsors, of course, Jext. As you know, Jext is sponsoring us. And at Goji from the Netherlands, they are also sponsoring us. And we are still looking for sponsors because it's a free event. We don't want to charge people that has been because it's a by community and for community sort of thing.
00:06:58
Speaker
So that is I think the activities for Dutch closure they are going pretty strongly. In Amsterdam on March the 25th in 2017 of course.
00:07:15
Speaker
So that's happening and from, I don't know, the other side of the country, well, the country that nobody cares about, is Belgium again? Yeah. It's a funny country. Yeah. Well, we had a nice meet up before Christmas.

Community Building & Meetups

00:07:33
Speaker
Yeah. I think we talked about it on the podcast as well. Alex Miller joined us via webinar and talked about spec and it was really good. It was the
00:07:45
Speaker
Like I was saying before this before this show, every closure programmer in Belgium was there, you know, could have taken us all out, you know, one, one small hand grenade, you know.
00:07:59
Speaker
I'll probably just just convert them in one go to Scala, eliminating them or not being crazy. Yeah, there was a few closer curios as well as well. By the way, it was really nice. It was about like 25 people there and which was great.
00:08:17
Speaker
People really liked coming along to hear Alex talking about this new stuff. But we also had some interesting conversations afterwards and I wanted to have a little bit of a chat with you on this new year episode. Let's think about what we can do in the new year for the community.
00:08:37
Speaker
One of the things that I was asking people was, you know, it's great to see, you know, 25 people at the meetup because often we get like five or ten people and yeah, it's okay. It's in the middle of the week on a, you know, Wednesday in Brussels or whatever and people aren't always going to drag their bottoms out just to talk about
00:08:58
Speaker
you know, some junk. So the question is how do we make that, how do we build that community up, you know, what do we do? And so I was asking for feedback from these guys and they were saying things like, oh, you know, we can get a lot of this like talk stuff off the internet. Obviously unpublished stuff they can't do, but they could get a lot of the stuff off the internet spec and stuff, but they still came for the spec because it's new, I guess. But what people really wanted was they wanted
00:09:25
Speaker
to get like battle stories, stories about real production systems where people were kind of recounting what worked and what didn't work and how they managed to sell closure or how they overcome or how they didn't overcome. How can they get some help to overcome the battle for closure? What have you found in the sort of closure stuff?
00:09:52
Speaker
Yeah, close your meetup also. I think it evolved into something like a functional programming meetup in Rotterdam that I've been running. And I think what you're saying is pretty much true. People come there to get the experience from other people. That's the whole idea. And they're not actually looking for
00:10:09
Speaker
you know, coming there and then sitting down and then listening to a talk, which probably they can watch it in their own time. But what I'm trying to do with the meetup that we have, which is functional Rotterdam and Rotterdam, is have a mix of some sort of an interactive thing and a talk. The talks are about
00:10:30
Speaker
So I don't invite any fancy people from different places, people working in Amsterdam, people working in Notre Dame, in the Netherlands, essentially, and giving them a stage. And sometimes what happens is that some of the people who are going to bigger conferences, they want to give a talk. They want to give the talk here to get some feedback. So that helps. And the main interactive thing for building the community is the coding dojo. I think the dojo is really fun thing to do.
00:11:00
Speaker
That's what we've been doing for I think pretty long and everybody enjoys it so far and some people were asking me Hey, why don't we just do dojo? That's it for for one of the meetups. So it's really fun Yeah, so the the format is pretty simple. Yeah
00:11:15
Speaker
I was just going to say what format does it take, but you're about to answer the question, so you're ahead. I should take this to it. We don't rehearse this shit. Nobody knows it. Anyway, the format is pretty interesting.
00:11:31
Speaker
the idea is that you pick some reasonable problem and it's not about solving the problem but it is about you know people trying out different things and talking to each other and it's kind of chaotic but that's why it becomes more fun. So my process or format is I open
00:11:51
Speaker
Reddit daily programmers subreddit and there are like different small programming exercises or competitions if you will very small ones and you have easy intermediate and hard and then I read that loud and then we pick one of the thing that looks like fun and depending on the audience I pick the language that is used by least amount of people
00:12:16
Speaker
to make everybody super uncomfortable. But that's where the fun comes out. So we just ask, OK, who knows? I don't know. Closure. Nobody loses their hand. OK, we are going to do the closure and closure today. So then we have this timer. So every five minutes you always use closure.
00:12:37
Speaker
No, I think a couple of times we tried Haskell, we also tried Scala sometimes. It's pushing people a bit to get out of their comfort zone and have some fun. And so you start with the problem and then somebody gets up there on the stage and starts typing code for five minutes and other people keep shouting at them.
00:12:59
Speaker
I think before the show you were saying you know like it's more programming so that they're shouting and yeah more programming do you have like a projector or something yes yes or a big TV screen exactly so we project the screen of my laptop and then everybody goes to my laptop and then starts typing for five minutes and then we tell them to leave regardless of what state they're in that the timer is off
00:13:20
Speaker
And then they need to move. But this has been going on for, I think, almost 15 months so far. And most of the time, we do according dojos. So it's a very nice thing to try. I would really, really suggest it. And in one of the, I think even one or two situations, we were actually doing the foreclosure.
00:13:48
Speaker
exercises. So we open the foreclosure website and then we just keep going through the things. Everybody gets one problem and then they just stand up, try something out. So it is something that you should try. That builds the community in a sense that people interact with each other. That's what they come back for.
00:14:07
Speaker
So, right, yeah, yeah, yeah. Because that's the interesting part about that, is people like to meet other people, don't they? Exactly. Show off a little bit, but also you can show off in front of the computer, or behind the computer, or if you're a bit shy, you can
00:14:26
Speaker
you still get your chance to get on a computer and show your skills, you know, even if you, yeah, it's really good. In the end, it's all about people. I mean, of course, the technologies, they can, I mean, we don't expect them to learn like a language in half an hour, somebody just telling them, oh, introduction to closure. And then they go back and then they start,
00:14:47
Speaker
I don't know shitting out code left and right that's not gonna happen so but it's mostly the conversations and having fun together that builds it up so yeah it has been fairly successful I would say because even Rotterdam is not that
00:15:04
Speaker
popular destination. So Rotterdam has a very small community of developers. But we are attracting, I think, double digit numbers. So even going to 20, 30 people. So that's pretty good. That's really good. Yeah. So I don't know. Maybe I'll show up at one of those Belgian meetups. You can try giving away waffles or something. I don't know what Belgians are popular for. Beer waffles. Exactly. So you can say beer. Beer meetup. And then when they come in, they say, oh, sorry. We ran out of beer. There is closure.
00:15:35
Speaker
Actually getting people, getting people to sponsor us some beer is pretty easy. It's not that expensive to get 20 bottles of beer in Belgium, it's no problem. Even 40, you can go crazy. Double it.
00:15:50
Speaker
Yeah. Yeah. Yeah. That's true. Yeah. Well, that's what nice idea, actually. I mean, because we're trying to find a way out of these talks. And I think, yeah, dojo sounds good. Yeah. Mob programming sounds very interesting. I heard about it on this functional geeky podcast.
00:16:08
Speaker
And there was a guy there talking about it as a kind of even he was saying even it was interesting, like in the workplace, as a kind of option for getting people to build teams and stuff like that. Yeah. You know, because, you know, it's like pair programming, but with 10 people. Yep. And this is often, you know, where he's worked, often people end up preferring that style of interaction. Yeah, that's true. Because it's more democratic, you know, in many ways.
00:16:37
Speaker
I guess some people get frustrated by this noise and I don't think I could take it all day every day to be honest. No way. You need peace and quiet to write quality code. This is just for fun. This is just for something that you can build together.
00:16:52
Speaker
and have fun with it. But I think like, yeah, I think like sharing new ideas or something, you know, if you try to introduce a new language or something like that, like these brown bag things, rather than going for the brown bag thing, you know, maybe it's just go for like these more programming things just to show how, you know, 10 minutes, 15 minutes introductory stuff.

Closure's Impact on Legacy Systems

00:17:12
Speaker
And then like you say, these. Yeah, this is good. But I think I should try it. I think that's an interesting idea. I'm going to try it in my team tomorrow, not tomorrow, but on Friday.
00:17:21
Speaker
We'll see what happens. Yeah. Yeah. OK. So Dutch Closure Day is Belgian closure meetup. And yeah, closure conge videos are up. I haven't seen them yet. So we need to see what it is about. I've seen a couple. I've seen a couple. I think I talked about one last time. I think the one that's like, let's say, you know, obviously there's two
00:17:49
Speaker
Excuse me, there's one important one, which is Richard's talk on, you know, on why, how he eviscerates semantic versioning, you know, sending shock waves through the clergy community as we speak, you know, or everyone's like, oh shit, I'm never going to 1.0.
00:18:09
Speaker
Yeah, so it's going to be quite weird how Closure's numbering scheme works from now on, I think, and how everyone's numbering scheme works, how it all settles down. But that's obviously the big one, like the think piece from Rich. But there's obviously, that's a meme that's been around the industry for quite a while, so I think
00:18:33
Speaker
You know, it's a it's good to hear his take on it, but it's it's not exactly a new bit of thinking, I think. Yeah, that's true. It's not it's not a kind of not in a classic rich vein of, you know, of totally novel thinking. But it's still it's still good to hear it said in in relation to things like spec and stuff like that, you know, about how how how things should respect the contracts they're written to. Yeah.
00:19:01
Speaker
Or, like he says, just change the name. This is fine. Things don't have to stay the same, which is good. So there's that one. That's the big one. And then the other one, which I thought was quite big, was this new dynamic repple that was introduced. And for the life maker, I don't know what the hell the thing was called now, but damn it.
00:19:26
Speaker
I remember last time. So if you want to know what the thing is, please refer to our last episode. Oh man, it's gonna, it's gonna, it'll come back to me in the next 10 minutes and I'll just burst it out, blur it out, okay. It's a rebel! Oh god, yeah, so that thing, yeah.
00:19:52
Speaker
Yeah, so the interesting thing about that repel is that you can like do kind of visual coding a la Brett Victor. And if people haven't heard of Brett Victor or haven't read anything about Brett Victor, then stop now because nothing we say is interesting. Go and watch his videos and read his stuff because that guy is a god, in my opinion. I mean, he really is a very smart guy. A very smart guy.
00:20:18
Speaker
And he's made some groundbreaking stuff, that's for sure. And we're just beginning to catch up with the things that he demonstrated 10 years ago. Which is a bit like, was it Alan Kay was always talking about people in the 60s and the 50s. Yeah. We keep discovering the same shit again and again. We get it.
00:20:47
Speaker
But anyway, the nice thing about his stuff is that it does take us to a new kind of level on the tools. Now, obviously, you won't like it because it's visual. You're a fan of the text, obviously. So it's going to be weird for you. Maybe it will just pass you by. I'll try to take a look because I've been, yeah. I think just staying in AMAX is fine by me, but we'll see at some point.
00:21:14
Speaker
I need to try other things to see what other people are up to. Well, I think this is all built on the stuff that we were talking about many times before, which is this atom editor, this nucleus stuff, the stuff from GitHub where they essentially put Node as an application on the desktop.
00:21:39
Speaker
It's all based around that, so you can use, you know, in your native editors, you can use all the HTML stuff and all the libraries and all the quills and all this kind of stuff. So it's really, that's what's making it interesting, I think, is this kind of this tooling that you suddenly got that's really in your editor, because obviously with the browser, it doesn't know about
00:22:00
Speaker
about your disks and stuff like that. You have to give it special permissions, whereas, anyway, this is all boring stuff. But there's that one. But there's plenty more to see for sure. Yeah. But so you started with your new job, right? So you've been doing your stuff a lot. So is there something that
00:22:21
Speaker
What are you working on without revealing too much, maybe risking your job? Well, I definitely wouldn't be risking anything. Well, I'm working for a bank, so there's interesting problems because working for an American bank and the American banks are kind of, what should we say,
00:22:43
Speaker
There are there are sticking a lot of them anyway, even the ones that are kind of like super adventurous Well, I'm thinking about the adventurous ones like capital one Oh put a lot, you know these like guys speak at the carnage and stuff like this
00:22:59
Speaker
But those guys are just like every other American bank that is stuck in legacy land. It's mainframe-tastic. And it's just 7 euro, actually. You work at ING, don't you? Yeah, yeah, yeah. Or you did at some point. I think they're all mainframes to help. Yeah, they are. But I think the banking sector right now is trying to change to, I think, more technology-driven. So they're trying really hard.
00:23:21
Speaker
It's interesting to see. Yeah, so that's really why I'm on board is to think about like, well, how can we rev their, not just rev their platform, but rev their process and rev their architecture and, you know,
00:23:39
Speaker
kind of skip past the last 20 years, because they've been essentially idling for 20 years. They've got Java in there, so woo-hoo. But mostly, it's mostly just idling for 20 years. But I think they're feeling like all this mobile revolution, this whole, what they call digital revolution, this online stuff is finally becoming a game changer for them. And all this API-driven stuff as well is really important for them now.
00:24:08
Speaker
So yeah, it's quite a good gig for me because it's like having, it's not a greenfield obviously, but it's kind of like greenfield thinking and then you can say, okay, well, how do I apply that back into this legacy land and how do I,
00:24:29
Speaker
How do I bring that legacy land forward, respecting the kind of the information that people have given to the bank? Because I don't really want to respect their infrastructure because it's shit. But I do want to respect the thing that's important. And this is where closure plays really nicely, of course, is that what do we respect the most? We respect data the most.
00:24:54
Speaker
And that clues us into the thinking. What do we really care about with this old systems? We don't really care about their business logic too much because we're going to rewrite that anyway. Or we'll just throw it away and just do something tons better. Just a paradigm shift. So we can get some of these things off the shelf with services and stuff like that, but also we can just rewrite it.
00:25:22
Speaker
in a much cleaner way. So that's the interesting part. But then what we're trying to do, maybe you can ask me a question actually. Yeah, so I was wondering what kind of libraries, exactly. So I get the big picture now, but is it like a, it's a closure team of how many people? Is it just you and somebody? Oh no, no, it's not a closure team. I mean, I'm doing some closure, but we're doing,
00:25:52
Speaker
Okay, my job really is to be an architect there and to think about how we do continuous integration and continuous delivery. How do we set up like all of the structure that's necessary for like a polyglot environment actually. So I don't want to
00:26:12
Speaker
block everyone on closure or i want to say okay yeah you can do java you can do java script you can do ruby python whatever you want you know in fact this is interesting architecture in fact is which bits which bits of this world are kind of
00:26:30
Speaker
critical, which bits are like absolutes, which bits should we keep a kind of watch on and which bits should we be, which teams should have discretion about. And I think that's, it's always an interesting tension, isn't it? Yeah. With architecture. Yeah, yeah.
00:26:47
Speaker
But we're trying to say, OK, well, look, we really want to keep it simple and have protocols, all the kind of stuff where you cross boundaries, where you're sending messages and putting where your APIs are exposed. And we want standards around those things. But we don't really care. And Docker is helping us here, of course. What's actually in that box?
00:27:07
Speaker
It doesn't really matter. You can use whatever editor you want, you can use whatever language you want, you can use whatever stack you want, you can use whatever database you want. The main thing is you have to be able to expose your data in a standard way and you have to expose your documentation and expose your error messages and your log messages. Everything that comes out of that box has to be kind of standardized, but everything that's in that box can be as
00:27:32
Speaker
Yeah, I do. So is it something like a uniform architecture API driven thing that you guys are building? So you're trying to build something like a uniform architectural guideline for all the services that you're going to build? Yeah, I mean, what we're trying to do is we're trying to secure
00:27:54
Speaker
I mean, it's easy to make these guidelines because that's just ivory tower thinking. So I'm not really interested in that. And I don't think I would have been recruited if all I was doing was just togaffing the shit out of this thing. That's just really boring. And I'm not interested in that. So what we're doing is we're saying, OK, we can make these guidelines and we can make these absolutes. But that's just bullet points on a sort of web page.
00:28:18
Speaker
what we want to do is make that real. So we want to put together some infrastructure on Amazon and make it all happen and make it all fly. So the closure things come in, in respect of like, well, so some of the code I'm writing is to do like integration with Kafka, to prove that for event sourcing, do the bits or things like, well, we've got continuous integration engine, we've got a single sign-in engine, we've got
00:28:46
Speaker
Get hard. We've got these other things. How do we how do you provision all of those things? You know because what we don't want to do is just take one kind of like vendor provided All in one box for everything. That's that that would be you know, that would be back to the battle days That's that's 20 years ago. People are still trying to sell this big time. Yeah. Yeah
00:29:07
Speaker
Obviously, especially the big companies, because they say, oh, you're a big company, you're a bank, don't go to these best of breed things, you want everything integrated. Yeah, well, actually, pretty much everything can be integrated these days relatively easily.
00:29:25
Speaker
And we're proving that. One of the things that I'm doing now is essentially provisioning a whole bunch of infrastructure in Closure. And so I'm provisioning users, provisioning repositories in GitHub, provisioning CircleCI plans, Heroku platforms, all these various things. So various bits and pieces across the architecture that I can provision. And I've written a Closure program to do it. And I don't know.
00:29:53
Speaker
150 lines of code. It's great. It's really just amazing. And I think when people see that kind of thing, hopefully they like it and they think, wow, this is good stuff. Yeah. Anyway, so it's been three months for you already there, I think.
00:30:11
Speaker
I think this is the third month, yeah. So it's pretty good. So I'm getting my finger at the table. In fact, I'm going over to the US in a week or two. Somehow this episode turned out to be interviewing you for some reason.
00:30:27
Speaker
That's interesting. Maybe we should read it there. Leave it there. But what I wanted to talk to you about, actually, was not about my job. Forget that. You brought it up. Annoying. Well, I mean... We can cut this bit. No, that's OK. I think this is... What I wanted to talk to you about, actually, was the kind of like... Because I've been programming in Closure a bit, it kind of re-enlivens the excitement a little bit.
00:30:53
Speaker
And you're kind of seeing the reality of some of these things. And like I say, you can write all this stuff that I know for a fact that I've written these APIs in NOD and I've written these APIs in Java in the past and now I've written them in Clojure. To the same kind of thing, and it's just so much more pleasant to write them in Clojure, it really is.
00:31:19
Speaker
It's hard to express really how much nicer it is because you can just do it directly. If you pick a decent client library, like they have this HTTPS client library, it's very nice.
00:31:35
Speaker
And then you can do all of these API calls without having specific SDKs for each of these things. So for instance, if you look at Heroku, they have like a special Node.js library to integrate their REST APIs. Why are they doing that? I think it's just people are just lazy to just write it, should you read it directly.
00:31:59
Speaker
Yeah, well, but I think what it is to me is that I don't know if it's laziness or it's just the fact that these languages don't have the expressive power that Closure has. So it's more difficult to they need to write these like library wrappers of the APIs to make it more comfortable for people to consume their APIs, you know, because actually it's in certain languages and certain environments, it's more awkward to consume these APIs.
00:32:28
Speaker
I remember talking to, this is a bit off topic actually, but I remember talking to a guy in Toyota who worked on the mainframe and I was sitting to him, what about like mainframe, HTTP libraries have you got? And he's like, oh yeah, well, we can, we have TCPIP and we can, this is like four or five years ago. We've now got XML. Cool.
00:32:55
Speaker
Yeah, so you got TCP IP and you've got you've got XML you're pretty much there Yeah, I mean, you know with a few months worth you could have a basic curl implementation Yeah, I think it's it's been it is it is difficult to fight with legacy systems and then replace them so Good luck with that I think
00:33:21
Speaker
Well, I think what it is, what we're looking for is a way to focus on the data, to be honest. I think that's the key thing.
00:33:31
Speaker
What I was going to talk to you about, about the closure aspect though, was coming back to the thing we often talk about, but you know, I was excited about it because I've just done some recently, so screw it, we'll talk about it.

Code Sharing: Functions vs JAR Files

00:33:43
Speaker
Was this, was this library and I was using like partial functions to wrap up some macros and it was an interesting one because I complain about Nord being, having a library and stuff like that, but I ended up writing my own library in closure.
00:34:00
Speaker
to, I mean, I say my own library, it's like 30 lines of code. So, this is not a library or whatever. You shouldn't publish your enclosures and then it becomes a library and then everybody starts pulling it and then cursing you. Actually, the funny thing is it doesn't make any sense for anybody else because I only really, I just noticed I was like repeating and repeating the same thing.
00:34:23
Speaker
Not that much in fairness, it's pretty dry. But I thought, I can improve this a little bit. I can knock a few lines out here and a few bits of repetition out here and there. So I ended up writing this little partial function that took some arguments and made it smaller and all this kind of stuff. And that's not so exciting. What was interesting was just this thought that, well, what I wanted to talk to you about was, well, at what point do you
00:34:52
Speaker
Do you just like, okay, screw the boilerplate. I'm going to write this little library or I'm going to pull in a big library or whatever. Or where do you, you know, where do you, Vijay, where do you kind of draw this line? Because I kind of drew it and I thought, well, I'm not going to go for another library, but I will write 30 lines of code just to make it a bit drier and make it a bit more pleasant for me. I think for me, it's all about
00:35:19
Speaker
the size of the code, I would say. Because if I see the code, sometimes what happens is that some of the libraries, if you're using them, and you need a couple of functions maximum. And if it is really a functional level thing, it makes sense that you can just grab that function and then just use it. But adding a new dependency, you're adding a lot of other crap to it. Every time you're building, it needs to go back to the closures and fetch the new thing and then see. And in the end, it's just 40, 50 lines of code.
00:35:49
Speaker
Nothing, nothing, you know. Yeah, we can take it to a level where we say, oh, you know, don't repeat, so keep getting stuff from somewhere else. But it becomes too much at some point. And also the maintenance of that library. I mean, we need to see whether that is active or not, and all kind of shit. And that is annoying. But I remember maybe we spoke about it some time ago. Like, it is still kind of an annoying situation that the basic unit of
00:36:20
Speaker
sharing the code is still a jar file, which is super annoying. I think it was a blog post by Joe Armstrong, the airline guy. So he says that the basic unit should be a function. So I should be able to just pull the function from anywhere I want. But that means the function has no dependencies at all. So functional programming is much more suited to get
00:36:48
Speaker
the function level sharing instead of, and especially with Clojure, it should be even easier because you don't have any, that was the whole idea, right? I have like handful of data structures, but I have a bazillion functions working on them rather than every library inventing their own data structure. So the line is right now, okay, it's a jar file that I need to pull in and I'll take a look at the code and I see if I understand the code and if it is small enough from my point of view,
00:37:17
Speaker
I would say screw it, I'm going to write it myself. I really don't want to get the whole another jar file into my thing and then dependencies and all the crap and especially it becomes horrible pretty soon and you'll end up with a lot of libraries like that.
00:37:33
Speaker
that are unmaintained or whatever. So that is the, yeah, it's a difficult choice, but you need to see. On your topic there, though, with the function stuff, I think the problem, I mean, because some people started doing that in Nord, and they got a lot of shit, actually. Oh, the left pad or something. Well, yeah, exactly. But that in itself was a different, that's a...
00:37:57
Speaker
Organizational discussion but but that but the concept of these small functions. Yeah, I mean they put it out. It's it's it's okay. I think yeah Yeah, I think I think it is okay. But um the but but but like you say as long as it's pure how do you prove it's pure? Well screw it. It's in should be
00:38:13
Speaker
like some spare costs, you know, no state is carried all this kind of stuff. So it's the purity that's important. Exactly. And it's, I guess, you know, spec helps with that kind of stuff. Probably. Yeah, yeah. Because we couldn't we couldn't really prove that in the past, I guess. But the other thing is you've got then you
00:38:31
Speaker
You've then got the problem with it is well how you discover these functions. Yeah, that's true. I think that that's because You end up spending more time. You would just write in your damn thing. Well, it has to be something like You know
00:38:47
Speaker
Pearl guys did, well, Pearl is still, I mean, they're still sharing the modules, but, you know, the CPAN, the comprehensive Pearl-AK network, the CPAN has all sorts of stuff in it. And there has to be a central namespacing authority or something where you can push your namespacing. The question is, the question is, how do you get like the equivalent of Google for your functions? Because you're trying to like express
00:39:11
Speaker
your desire for a particular set of semantics or functionality. And that's actually difficult to express, isn't it? That is true. But maybe it's, as you said, specs might help. So every function comes with a spec. And I just type in something saying, this is what I want and this is what the output. Then it can introspect the specs and then give you, oh, these are the functions that match. But they do something similar with Haskell. I mean, with Haskell, you have this Google or something. So I can type the signature.
00:39:39
Speaker
And it will show me all the functions with the type signature available so I can pick the appropriate function. So I can say, oh, I have a list of something. And I have another list of something.
00:39:56
Speaker
an individual type and then give me a list of the second thing something like that I can just type the whole thing as a signature and then it gives me which functions match this one so maybe if everybody moves to spec and then they they actually spec it properly every function then this this might be possible but but again it's it's more like a
00:40:18
Speaker
because closure by nature is not enforcing it. So it might be tricky to do that. But who knows? I mean, people, we are very, I think developers have been, our community has been very resourceful. So I think at one date, we might say that. That could be really, really nice thing, actually, if you could, like you say, if you can do a search on specs based upon, you know, on like claw jars or whatever, or, you know,
00:40:44
Speaker
Why not actually? I remember somebody trying like that. Maybe I really need to look up the history. Yeah, but like you say, it's the resources, the spec is the really like ground resource for this kind of thing. Otherwise you're kind of, well, I know, maybe this is the difference between like Google indexing the web and like guessing everything.
00:41:04
Speaker
which is hard work versus like this structured data type thing. But I think somebody did that a long time ago. I don't remember. Well, it was not like fully complete yet, but you could type in this is the input like a map and this is the output. This is the map. Then it will try to give you which function produces the output.
00:41:21
Speaker
So that was really fun to try. But that was basically executing all these functions. So I don't think that's the way you should go. But it is an interesting thing. So it's a fucking huge cache, though. Exactly. I'm pretty sure that invalidating that cache is a problem. No, I think it's scanning GitHub entirely. I'm pretty sure the code is basically memoize, memoize, memoize, whatever I'm not like.
00:41:50
Speaker
Yeah, it's just listening to the web hooks on GitHub. Yeah. Yeah. Yeah. So all right. When I can talk about experiments here, I mean, I think over the holidays, I've been looking into a couple of projects, interesting projects enclosure, of course, the machine learning stuff, maybe we should do some
00:42:06
Speaker
decent episode on closure machine learning state-of-the-art thing but the other kind of what kind of what kind of stuff are you looking at actually the sneak preview and that one oh it's it's basically a small experimentation with the closure I think it's called Clotex or something a small library to do some machine learning stuff to to play with cargo data sets
00:42:29
Speaker
So that was fun. And because they have some classification sort of competitions. So if they give you all the ingredients, you need to guess which cuisine is it, for example. So those kind of problems. It's been fun. And the other one that caught my eye recently is that there is an Ethereum client called, not a client, but Ethereum-based Ethereum. I don't know how to call it. Yeah, Ethereum, yeah. It's the blockchain thingy. The Bitcoin stuff. Yeah. Blockchain. Yeah.
00:42:58
Speaker
So there is a application called status that's a platform to build blockchain applications. So that looked pretty interesting because their front end is built using Closure React and it is open source. So I started digging into it a bit to see, well, I haven't been into blockchain that much, but I'm gonna get started with this kind of thing. So those two are the things that caught my eye during a quote unquote holiday period.
00:43:28
Speaker
Right, so it's been busy time. So yeah, I think that's what we've been working on, I think. And let's see. Proto-Rapple. Yeah, that's what you finally did, came back to you. Proto-Rapple.
00:43:48
Speaker
I think that there should be an episode where we just talk about stuff and forget their names and then every now and then randomly shout something and then just, oh, this is 10 minutes ago. I come back with this to a theme. Yeah. It's proto-apple. Okay. Cool stuff.
00:44:05
Speaker
Okay, I think that's pretty much it for this warm-up episode. But we're trying to get, well, I'm trying to get more guests. There are a lot of interest in people to show up on DeafN. We'll definitely reach out. I think there's plenty of people out there that we've talked to in the past and that are
00:44:30
Speaker
that are interested in it. So hopefully we can do another few podcasts this year. I think this is the 17th episode on 2017. So I think we should be able to pull out more numbers before we go to 2018. I'm pretty sure. We're in our teenage years now. We're allowed to be a bit immature. We'll grow up into ourselves.
00:44:55
Speaker
I don't think we'll ever grow up. We'll keep the podcast as immature as possible. So people can enjoy it properly. Anyway, maybe we should wrap up. Yeah. Okay. So in conclusion, episode number 17, beginning of the new year, we have some exciting episodes coming up and Dutch closure days, which is very near and dear to 50% of the deaf and Holocaust.
00:45:25
Speaker
100%, 100%. Exactly. Okay, we are all we're all behind Dutch closure days. So if you haven't gotten the tickets yet, I'd really recommend going to closure days.org. By the way, it's it's half full already. So I mean, half of the I've got my ticket, I've got my tool. Otherwise, you know, I had to pull some strings to get you in, you know, otherwise, it's gonna be very difficult. It's, yeah, it's got you got a tweeters tweeters on the on the deaf and podcast. Yeah, yeah.
00:45:50
Speaker
I will do that as well. And we have the call for proposals open. So if you guys, whoever is listening to this podcast, if you're interested in sharing your closure knowledge or it doesn't matter whether it is big or advanced or intermediate, you know, that's a weird order, but still.
00:46:11
Speaker
It's a map. It's just come out that way. Exactly. And maybe you start learning something, you're bigger and then suddenly you think, oh, fuck, I know everything. So you think you're advanced and over the period you realize, yeah, I don't know much. And then you get back to intermediate. So.
00:46:27
Speaker
You should always be intermediate, basically. I think so. But anyway, so if there is anything that you want to talk about, please see the website and there is a couple of proposals. Take a look at it. And we're going to have an amazing time with Dutch Closure Days this time. It's going to happen during the tulip season. So you can enjoy Amsterdam. And, you know, if you're coming from different countries, it's a beautiful time to be in the Netherlands. Definitely. So that's pretty much it for me, I think.
00:46:58
Speaker
Right, yeah. Yeah, me too, Matt. I think we need to wrap up and give these people a break. Yeah. Okay, wouldn't be nice for us to end without saying thanks to all the people that help us. So thanks very much to Pissari for the music. Thanks very much to Luboff for the design. And also to Roweter for all the mixing and fixing all the glitches.
00:47:23
Speaker
So we'll see you in episode number 18. Hopefully with a guest. Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy New Year! Happy
00:48:06
Speaker
you