The Changelog: Software Development, Open Source - Vibes from Strange Loop (Interview)

Episode Date: September 28, 2023

This week we're taking you to the hallway track of the final Strange Loop conference. First up is AnnMarie Thomas — an engineering, business, and education professor. AnnMarie gave one of the openin...g keynotes titled "Playing with Engineering." We also caught up with many first-time and multi-time attendees who shared their favorite moments from Strange Loop over the years. You'll hear from Richard Feldman, Colin Dean, and Taylor Troesh. Last up we talk with Pokey Rule. He gave a talk about his project called Cursorless which is a spoken language for structural code editing. Changelog++ subscribers get a super extended version of this episode which includes everything we recorded at Strange Loop. Become a Changelog++ subscriber

Transcript
Discussion (0)
Starting point is 00:00:00 This week on The Change Law, we're taking you to the hallway track of the final Strangelove conference. First up is Anne-Marie Thomas. Anne-Marie is an engineering, business, and education professor, and she gave one of the opening keynotes titled Playing with Engineering. We also caught up with many first-time and multi-time attendees who shared their favorite moments from Strange Loop with us over the years. You'll hear from Richard Feldman, ThatColinDean, and Taylor Troche.
Starting point is 00:00:44 Last up, we talked with Pokey Rule. He gave a talk about his project called Cursorless, which is a spoken language for structural code editing. So cool. For our ChangeLaw++ subscribers, you get an extended version of this episode that includes everything we recorded at Strangeloop. You can become a ChangeLaw++ subscriber
Starting point is 00:01:01 at changelaw.com slash plus plus. I also want to give a big thank you to Alex Miller, the organizer behind Strangeloop, for being so kind to us and getting us there for the final Strangeloop. And of course, a massive thank you to our friends at Fastly and Fly. Fastly is super fast globally. Check them out at fastly.com. And Fly helps us put our app and our database close to you all over the world with no ops. Check them out at fly.io.
Starting point is 00:01:38 What's up, friends? I'm here with James Cowling, co-founder and CTO at Convex. They're one of our new sponsors and they're building a full stack platform for the TypeScript era. So James, you have some awesome docs for Convex and inside those docs is a document that sort of describes the entire world, the entire thinking, the framework of Convex. It's called the Zen of Convex. Can you describe that for me? From my time building large scale applications, I believe very strongly that there are a certain set of abstractions, primitives, and ways of solving problems that make life easy forever,
Starting point is 00:02:12 and they compound in positive ways, and ways to solve problems that make life worse every day. And the things, you know, everyone can recognize these things. What makes life easy is clean abstractions, information hiding, composability. What makes life hard is conditionals, checks everywhere, corner cases. Now, the Zen of convex is about how to build applications in a way that scales for you. And in convex specifically, one key component of that is influenced actually quite a lot by languages like Haskell to think in terms of transactions. Everything is a transaction. You like Haskell to think in terms of transactions. Everything is a transaction. You don't have to think about functions interacting with each other because they're transactional. Think in terms of deterministic execution, so functions that
Starting point is 00:02:53 are deterministic so they can get replayed, they can get cached, and if any of the inputs to that function changes, we can push those functions in real time, the new results of those functions to you in real time over a web socket. So the zen of convex is about thinking about the kind of ways of building an application that are going to pay dividends to you in the long run. Now you can use convex and completely ignore the zen if you want, right?
Starting point is 00:03:16 You can use convex just as a workhorse tool. We think that frameworks design in such a way that it encourages you to do things in the right way and in a way that will scale and a way that will make you to do things in the right way and in a way that will scale in a way that will make life simple for you in the long run okay if you're looking for a better type of back-end convex is the full stack typescript development platform you've been looking for replace your database server functions and glue code get started at convex.dev that's c-o-n-v-e-x.dev again convex.dev. Again, Convex.dev. All right, so we have Anne-Marie Thomas.
Starting point is 00:04:14 Is that how you say your name? Exactly, yeah. Who gave an amazing keynote this morning. That's right. Play with Engineering, is that the title? Playing with Engineering. That was close. Playing with Engineering.
Starting point is 00:04:24 Going off memory here. I would call it a multimedia presentation. Many of our audience have probably been to conferences, have probably given talks. There's a lot that goes into a talk, especially a keynote. It's at a beautiful auditorium, right? It's the prettiest theater I've ever spoken in. Is that right? Yeah.
Starting point is 00:04:42 Thousands of people in the audience. And off to a smashing start. And then a little audio-video snafu. You did so well, though. Which was going to become a much bigger snafu later on, because you had some audio that needed to be played. And then... Yeah, someone thought I set it up,
Starting point is 00:05:00 because we realized the sound didn't work, and the first one was about a project with deaf kids, so it was perfectly accessible without sound. But that wasn't true for the later stuff. But later on it was going to get required. What were you thinking in that moment when the audio wasn't working? First of all, you handled it so well. Oh, thank you.
Starting point is 00:05:18 I want to pull up the Slack because somebody gave you a very nice compliment, better than I can, about that. But what were you feeling and thinking? Well, I knew it could work. Yeah, I mean, because we had tested before and when I went up, and so I, when the sound wasn't working, I realized how lucky I was that it was perfect
Starting point is 00:05:34 for what the topic was at that moment, the Playful Learning Labs work in the deaf community. But I also, yeah, I did know that the later stuff, which was at our work with OK Go and also some music visualization stuff wouldn't work without it. But I also know that, you stuff, which was at our work with OK Go and also some music visualization stuff wouldn't work without it. But I also know that, you know, the audience, it's the first day,
Starting point is 00:05:49 so you can't like stop. So I think what I did, and I'd have to watch it later, was kind of go to the front and like make it clear that have someone come help on the tech. And then I, in the back of my head though, I don't remember what I said because I was making some joke about it,
Starting point is 00:06:01 but I was thinking, all right, if they don't fix it, I need to change the talk. So I was mentally prepping that we couldn't have done OK Go. So I would have tried to flub my way through a talk on magic and slide ahead. I couldn't even tell that you were in the back of your mind thinking of plan B, really. I mean, we all kind of do that to some degree when things go wrong. But your presence didn't at all reflect the internal like oh my gosh
Starting point is 00:06:26 should i have a plan b can i just change my talk basically which was that's a big deal thank you i mean i was a talk on play and process and how it's about process and not product right and it really played to your strengths someone did ask if it was actually intentional i'm curious about this slap message because i remember what she said yeah Yeah, so this was Mike English in the Strange Loop Slack said, this is the most gracefully I've ever seen someone handle such a major AV issue mid-presentation. Well, that was really sweet. Elliot Cable quoted that and then like 38 clap emojis, 8 plus 1s, and then 7 100 emojis. See, I never end up doing the thing I meant to do.
Starting point is 00:07:05 Also, maybe my talk was about how to handle tech issues, but that wasn't what I prepped for. If you lot anything in my talk, it's that things always go wrong in our stuff, and it's what you do with it. Yeah. Do you remember what you said, though? You said something about when we play,
Starting point is 00:07:19 we have to expect something or other. I'm paraphrasing. I must have said that things never go the way they expect because if it's about processing outcomes, how can you do something new if you already know the outcome? But I will confess that, yes, in the back of my mind, I was like, it's been a while. They're still standing there.
Starting point is 00:07:34 We're not going to go to OK Go. I think we're going to do a talk about magicians and magic and attention. Where are my cards? Where are my cards? I have cards in my backpack. So I don't know what I was saying, and I hope it was, like, sensical. It was smooth. It hit me because I was, so we, it's on hiatus right now, but we have a podcast called Brain Science.
Starting point is 00:07:54 Oh, cool. And obviously you learn much better in the state of play, right? You know this. Oh, yeah, absolutely. As a professor, so you know this. But to me, I'm, like, hanging on to your talk because I am a curious person who pays attention to brain science-y things. So neuroscience, those kind of things.
Starting point is 00:08:10 And so to me, it's like I'm hearing from somebody who's like steeped in literally educating and playing at the same time and engineering, all that fun stuff. And so just exactly what you said was on point because it wasn't going perfectly AV-wise. Talk-wise, great. Thank you. It was good. Yeah, no, I mean, that's all. Oh, I want to learn more about your brain science stuff because it wasn't going perfectly AV-wise. Talk-wise, great. Thank you.
Starting point is 00:08:25 It was good. Yeah, I know. I mean, that's all. Oh, I want to learn more about your brain science stuff. It's fascinating. Currently, I'm totally geeking out on magic. My daughter is a sleight-of-hand artist, and I can do a coup tricks, but I'm on sabbatical, and originally, my whole sabbatical was going to focus on magic, and so I've been reading
Starting point is 00:08:39 lots of books on magic theory. But it's interesting because a big part of my lab's model of play is surprise. Because when you're surprised, you're off-killer. And often you do good things when that happens because you have to be fully engaged in the moment. So when you're surprised, you're engaged. So if you can surprise your students when teaching, you get them in that moment.
Starting point is 00:08:58 And it's something that magicians are really good at. And also, if you go younger, and I work with kids too, a lot of magic in sleight of hand is based on the idea of object permanence. Like if you go younger, and I work with kids too, a lot of magic inside a hand is based on the idea of object permanence. Like if it was there, it stays there. That's also what magic is based a lot on. So I find it, as someone who wants to teach better always, I think there's a lot to learn there,
Starting point is 00:09:17 plus the engineering behind a lot of magic's quite cool. Have you ever found that your playful aspects of your teaching, so like if you're teaching physics stuff, you're going to, you gave the example. Go to the circus. Yeah, of a circus or somebody on a, spinning a ring or like these things that you're like very visual, very interactive and fun and kind of whimsy to use your word. Yeah. You ever find that like in that moment or after that moment
Starting point is 00:09:46 when it comes time to actually then go apply the principle or the, now let's do the math. Yeah. You ever find there's like a come down where it's like, I'm kind of liking the play part, but not the learning part. I mean, hopefully not. I mean, that class was sort of opt in and the math and physics was always there because they were doing experiments.
Starting point is 00:10:04 I mean, they were the pendulum. They were the bungee. Right. I think the point for it is we're trying to use play as a leverage tool for learning. So in that case, you really have to know the theory of, like, what are your learning outcomes? How do you map it to this? And it's not for everyone. Like, that class would have been awful for a lot of people.
Starting point is 00:10:20 And it was elective, right? And that's one of my favorite things to do with companies is ask people, like, what was your favorite learning experience? And I've done that at workshops and everyone does it and people want to like interrupt. I'm like, no, no, we're just listening. And you know, a lot of people will say these really big, like, we went to the circus to learn physics, or we did this art thing.
Starting point is 00:10:36 But some people will say, I mean, we'll never forget a big, very well-known programmer said, I love going into large lecture halls and the professor would lecture at the chalkboard and I'd learn that way. Right, and that's not what you think is going to be the most meaningful learning for many people, but for quite a few people it is. And it's so personal that I think with learning, that's one of the key things, is that there's not one right answer.
Starting point is 00:10:54 It's the opposite of calculus. There is not a right answer, and we can't pretend there's a right way to do it, so it's very messy. My son to this day, he's seven years old by the way i think i taught him this at least two years ago maybe three about kinetic energy and the way i taught him was because we have a swing set in our backyard and i pulled him up and we call him smoochies so i held him like close to my face i'm like okay i'm gonna let you go and you see if you can smooch me on your way back but you know so kinetic energy in that site in that stance will the i don't have to describe it oh yeah the person wouldn't swing any further forward than they were dropped yeah that's the way it works and so i'm talking about like i'm
Starting point is 00:11:33 holding you there's energy pent up and that's kinetic energy so he he learned that in a state of play it was a swing set so that just the fact that you can kind of like inject play and inject learning into like a concept like kinetic energy to a five year old. And he still understands it. And we talk about it to this day. That to me is like the ultimate of learning and play. When we did that class, the circus, the final exam was doing a circus about physics for sixth graders. But then we created a music video later.
Starting point is 00:12:00 And the song that the music video plays to, and you can find it online, was done by a band called Mighty Fairly and they took my course notes and it's beautiful, like in a nerdy way. One of the lines they show with Flying Trapeze is potential energy converts to kinetic me or star cross products meet. Like, they're just lovely. Like, they weren't just randomly using the words.
Starting point is 00:12:20 Like, we were doing cross products. We were doing potential to kinetic. Right. It was just beautiful, their ability to turn it into this like catchy song that is like totally geeky correct right how did uh how did okay go happen for you like how did you know the whole sandbox yeah how did that relationship happen do you know somebody are you in music like how did the relationship spawn and yeah i went to a conference. I drink too much coffee. And I got in line for a coffee before heading to the airport,
Starting point is 00:12:49 literally the last minute of the conference. And the person in front of me was the lead singer for OK Go. And I introduced myself and said they'd given a great talk at the conference and I love their work and I use them in classrooms. And they asked what I did and I said, I teach, I'm an engineering and education professor. And he said, oh, we should do something together. He didn't know me. And then I was like, well, I'm going I'm an engineering and education professor. And he said, oh, we should do something together. He didn't know me.
Starting point is 00:13:06 And then I was like, well, I'm going to be in L.A. in a few weeks. And he's like, why? I'm giving a talk. Hey, do you want to give a talk with me? This is truly like in coffee line at a conference. And he's like, sure. So, like, my second conversation with Damien was us giving a talk to 1,500 people. And then we chatted over a meal and said, like, all right, how can we work together?
Starting point is 00:13:23 And we got a grant the next week. A few months later, they were programming. They were on our campus filming our test content. And yeah, we're now, that's been, that was April of 2017. So we've done a lot since then. Wow. And in your talk, you mentioned that OK Go's music videos are very playful. It's not something that they kind of recognize.
Starting point is 00:13:44 Is that what I heard? Oh, they recognize they're playful. They don not something that they kind of recognize. Is that what I heard? Oh, they recognize they're playful. They don't recognize they're, they recognize that they were, that they are used in education settings like classrooms, but that was never something they worked on. Okay. And they, they have a model for how they do things and they call it playing in a sandbox. That's why we call it sad. They play in a sandbox of an idea.
Starting point is 00:14:01 But their play is hard work. I mean, most of those videos take over a hundred takes. Oh yeah, I'm sure. Yeah. So again, in play, who is it going to be playful for? Maybe it's playful for the audience. That doesn't necessarily mean it's fun or playful for you if you're facilitating the play, which we spend a lot of time talking about in our lab. Like, how do you make things fun for teachers? And then how do I make it fun for my team? And then what do I do? I have to come up with a way that I can still do something fun. Yeah.
Starting point is 00:14:27 So you told the story of this amazing set of songs and videos that came out of this collaboration during the pandemic with OK Go, yourselves, your students, and like tens of thousands of individuals, 15,000? Yes, somewhere over 10,000. We said about 15,000. 15,000 people around the world who send in themselves singing or... Or clapping or hand color.
Starting point is 00:14:51 We broke up five animated films into individual frames, so we had about 15,000 coloring sheets, or maybe less. We do the math. Thousands and thousands of coloring sheets, which is a non-trivial software challenge, it turns out, to then turn those into coherent film if you're not getting the video back, the frames back. So my students had to write instructions on how to use your camera to take a picture, but they still weren't all great.
Starting point is 00:15:14 So then there was some really good software wizardry among my 19-year-old students to make those into non-nausea-inducing, mostly registered animations. I noticed the edge moved around a little bit. I thought it was either artistically done or that's just what you had to work with. Okay, no, I'll be honest. You were seeing two videos. So what you saw was an animation
Starting point is 00:15:35 where we cut the square with the coloring on each sheet. Digitally, we cut those out and turned that into a rectangular film. We then had another set of footage that was the animation pegs that we actually used, but just not, and those sheets as they flipped.
Starting point is 00:15:49 So one was superimposed on the other. So this was really hard for people when they were watching and I got some people that were like, I know what my number was and that's not there. And I'm like, actually, flip forward four frames
Starting point is 00:15:58 and the number's not going to match, but your frame is there. So that one had two. The one you saw had two different. Gotcha. Okay. We had to do that because for that one had two. The one you saw had two different. Gotcha. Okay. We had to do that because for that one,
Starting point is 00:16:08 because of COVID, a lot of people couldn't mail back their stuff. And so some of them were digital and some were filmed. And so to make it so they were seamless, we had to do both and then combine. How does this project live now? I know it's digital.
Starting point is 00:16:21 It's an artifact. It's an artifact. You can find the five songs you can find on Spotify. And then the six music videos and a documentary about how the whole project happened, you can find on OK Go Sandbox. Right. What about all the drawings and things like that? Should it be like a mini museum or something like that?
Starting point is 00:16:37 I don't know. I'm thinking like. Yeah. I mean, I have cases of drawings. We've been talking about what to do with them. We'll see. Well, I think about that stuff. I have a hard time letting that stuff go from projects and the band saves a lot of their stuff so we have artifacts and then we one of them were done on post-it
Starting point is 00:16:54 postcards that were put in a giant praxinoscope for yuri's night and then those postcards were launched on one of blue origins new shepherd launches those postcards that went back to the schools that did them and they had their own displays. So the kids who did postcards with their classes, they got theirs sent to space. And then Blue Origin offered to fly anyone who wanted to send theirs, they could be flown, but we arranged to fly the postcards.
Starting point is 00:17:16 So their postcards went to space and back. And then back to them. And back to them. Yeah, and we're using a video. Yeah, not bad. That's pretty cool. I'd be just totally geeked out if I was a kid in school and that happened to my postcard, right? Yeah.
Starting point is 00:17:28 Yeah, like this is in space. Like this thing went to space and came back to me. Yeah. Wow. We had done a project, too, where we had kids design an art experiment. Because OK Go does a video that looks like they're in zero gravity, but they're not. They're in microgravity on a vomit comet, so a plane flying parabolas. Right.
Starting point is 00:17:43 We did art in space, which was OK, didn't actually send their stuff to space, but what would you send for an art project? And we had kids around the world design art projects they'd send to space, and then two were picked, and then my research students built them. One involved a lot of glitter that was hard to get safe enough to fly, and then one of them was basically a little guitar kind of thing. And those actually flew on a December 2019 Blue Origin flight. So Blue Origin was a fun collaborator for a lot of that stuff. Out of this world projects.
Starting point is 00:18:09 Huh. Yeah. Any more projects like this in the work with OK Go Sandbox or OK Go directly? I mean, OK Go, yeah, they'll have some stuff coming. They just released a great new song. Damien and his wife had a movie that they directed, so the Beanie Bubble, and they did a song for that. There's a visualizer. So OK Go Sandbox should put something out about that. So a little thing will come soon. In terms of big new things, there's definitely discussions.
Starting point is 00:18:37 The band, they had new music coming out, so we'll see where that goes. I'm on sabbatical this year, so I'm working on some children's museum exhibits and then doing a lot of work in the deaf community has been a big focus, and working with a company in Denmark that does a lot of playful things. This OK Go sandbox, is it a 501c3? Can people give to it? If they care about what you're doing, how can they support it? So my university is a non-profit, right? So it's a project of the University of St. Thomas
Starting point is 00:19:03 Playful Learning Lab in collaboration with OK Go. go so yeah funds that come to us and so we can only we could do it thanks to amazing corporate sponsors and individuals and yeah it's a yeah we we never knew where that project was going we thought it'd be a little thing and it it has spiraled way beyond our imagination but i'm slowly learning that's kind of how a lot of things work with the band i can say hands down their lead singer and that whole team of four guys, they're the most creative people I've ever worked with. And kind of for Strangeloop, I'd say their guitarist, Andy, is a computer scientist. So they think that way.
Starting point is 00:19:34 What did you think when you got invited to do a software conference keynote? I was so nervous. I've been so nervous. I've heard of this conference before, and if you read the rules, it's all like your talk should not be about process. It should be, and I was panicking about it, like, nonstop panicking about it. I was talking to some programmer friends, I'm like, I think they asked the wrong person. But, yeah, I've heard about Strange Loop for years
Starting point is 00:19:54 and how cool it is, so it's delightful to be here, and I'm sad I come just as attending, but better last than never. How did you like how Alex introduced you? His process to find keynoters, and how he found someone like you? I was lovely. I was so delighted when I got Alex's email. So sabbatical. You said a little bit of what you're working on now, but what's next or what's coming?
Starting point is 00:20:18 You know, a couple things. We're finishing up some papers. We just finished a huge computer science project, but we're still in the middle of it, with the deaf community. So we've been working for over 10 years at Metro Deaf School, which is a PK through 12 charter, actually a birth through 21 charter school in Twin Cities, where all the kids are deaf and about 13% are deafblind. And so we've been working with them on engineering projects. And during the pandemic, like an online camp with boxes and delivered. And we have been working on their after school.
Starting point is 00:20:43 We did an engineering class for all their middle schoolers, a 20-day engineering class that actually my students are presenting at at Princeton next week, I think. But we also, this summer, thanks to Google, we had a grant to look at computer science the past year. And so we've been working on videos that are interpreted in American Sign Language by an amazing deaf woman, so deaf interpreted as well,
Starting point is 00:21:07 on programming with the Scratch language, so that this fantastic curriculum out of Harvard, out of Karen Brennan's lab, can be a little more accessible in the deaf community, so we've been working hard on that and getting some papers out on that. I'm trying to learn some new things, so I've been deep diving into magic, I've been doing a lot of work on that.
Starting point is 00:21:26 I am working on some children's museum exhibits, which is always a blast. Yeah. And I'm doing some work with Lego as a consultant. So I fly to Denmark once a month and hang out with the team over in Billund. Cool. Yeah. And then my personal goal is trapeze. So just this weekend, I got asked to join my first flying trapeze team.
Starting point is 00:21:45 So I'm training for a show. No way. Yeah. Oh, my gosh. Middle-aged mom in the trapeze. I was going to say, magician wasn't enough. You're like, you know what? More of a trapeze artist slash magician.
Starting point is 00:21:56 It's all physics. Did you say sabbatical from or just sabbatical in general? Sabbatical from. Okay, because your version of sabbatical sounds like a lot of work to me. Oh, I mean, well, a sabbatical for an academic is you're paid half your salary for the year, basically,
Starting point is 00:22:09 and you're doing things that further you as a professor, but you don't have to go to all the faculty meetings or teach, and I usually teach between six and nine
Starting point is 00:22:17 courses a year, and I'm actually a business professor and an engineering professor, so there's a lot of faculty meetings when you're a dual appointee, so I get to skip most of those.
Starting point is 00:22:26 I see. Yeah, I still have my advisees, but... Some people meet a sabbatical differently, like they're searching for their next thing. I think that's why you probably asked that, Jared. Like, what's next for you? I didn't know that's how it works for... Oh, yeah, no, academics, like, every eight years,
Starting point is 00:22:37 we can... Is that a whole year? Mine is. I've never done a whole year, so I'm doing a whole year. Yeah. Well, you seem very excited about what you do and passionate about the people you work with, so taking the actual time off seems to be a challenge.
Starting point is 00:22:51 Oh, and I'm not good at that. Yeah. That's okay. We need more folks like you in education that, like, just, you seem to eke out every connection and possibility based on what I know from you. Yeah, no, we aspire to do that. Well, we appreciate you talking to us today. Thank you guys for asking me to.
Starting point is 00:23:09 It was fun. It's all physics. It's all physics. It's all physics. Awesome. Cool. Thank you guys. What's up, friends?
Starting point is 00:23:31 There's so much going on in the data and machine learning space. It's just hard to keep up. Did you know that graph technology lets you connect the dots across your data and ground your LLM in actual knowledge? To learn about this new approach, don't miss Nodes on October 26th at this free online conference. Developers and data scientists from around the world will share how they use graph technology for everything from building intelligent apps and APIs to enhancing machine learning and improving data visualizations. There are 90 inspiring talks over 24 hours, so no matter where you're at in the world, you can attend live sessions. To register for this free conference, visit neo4j.com slash nodes. That's N-E-O, the number four, J.com slash nodes. yeah so i'm richard feldman uh this is my 10th strange loop uh i i was in st louis when they started so i've been to the first several uh my best memory is actually from just before the pandemic. We used to have every year we'd have Elm Conf right before Strange Loop
Starting point is 00:24:49 in like the same venue. And that was awesome because I was like really in the Elm community and we'd just go and have an all-day Elm Fest and then followed by that immediately Strange Loop. So it was just great having like both of those back-to-back and then we'd have a lot of overlap or like people came out to Strange loop and they'd be trying out elm for the first time they just kind of wandered over to elm conf or it was just awesome it was it was a great time and i'm gonna miss it has it changed a lot over the years definitely yeah i mean what i would say what
Starting point is 00:25:19 hasn't changed is kind of the theme of the conference which i've always kind of thought of as stuff alex miller likes but it's kind of like cross-pollination, you know, it's like a little bit of art, a little bit of miscellaneous biology stuff, a little bit of practical stuff, functional programming. It's kind of like a good mix and like interesting speakers, whereas a lot of conferences are like very enterprise focused or very, you know, language focused, something like that. It's always been kind of a nice mix. Um, I think the main thing that's changed is that it's, it's gotten like bigger and better and more ambitious over the years. Like the first year it was in a theater and there were two, two tracks, each one in front of a movie screen. And that was it. And I remember one of the talks was on this new thing called GitHub.
Starting point is 00:26:04 And, uh, I was like, what is this? Yeah. I mean, we were using Subversion at work at the time, not even Git yet. So I was like, all right, this is an interesting pitch. Looks kind of like a neat tool. Was that 2009 then or 2000? I think that was 2009. 2009, right?
Starting point is 00:26:19 If it was 2010, that would have been behind. I think so. Alex was telling me that he was pulling up some pictures from then. And he saw me in one of the 2009 photos. So I guess I'll be in a slideshow later. That's cool. But yeah, I've spoken here three times. I've did all the Elm conferences.
Starting point is 00:26:35 I spoke at all those. So had a lot of memories as a speaker as well as a participant. Awesome. What will you miss most? Oh, definitely like just all the people coming together in one place. Like since I got here, I've just been going from one interruption to another. Like I'll be, I'll run into someone I know, start having a conversation and I see
Starting point is 00:26:53 somebody else like, Hey, let's, let's go. And it's just nonstop back to back since, since I set foot in the building actually before that, since the hotel, when I like left my hotel room and then we walked over together and you know and it's just nonstop. It's really hard to find such a great collection of awesome people. So you've also changed over the years. True. We've had you on the show years ago. You were like the Elm guy.
Starting point is 00:27:16 You were like Elm's unofficial official representative. I give a lot of Elm talks, that's for sure. A lot of Elm, and now you're not doing Elm. Yeah, so I'm working on an Elm talks. A lot of Elm. And now you're not doing Elm. Yeah. So I'm working on an Elm inspired programming language. It's kind of like, gives you like an Elm like experience, but in other use cases. So Elm is really like browser based UIs and Rock, R-O-C is the language I've been working on. And it's very focused on like other use cases. So like command line apps, servers, you know, kind of, I feel like to think of it as like the long tail of use cases.
Starting point is 00:27:47 Theoretically, you could even use it to write like a Vim plugin or something like that. Nobody's done that yet, but really pretty much anything you want. Tell me about servers and 2Es. Like, how does that work? Very simple. I mean, if you want to build a server in Rock, we have this, we're not going into a lot of detail on it. So you can build a 2E and a server in the same language? If you want to, yeah.
Starting point is 00:28:03 Yeah? Okay. So we have this concept called platforms and applications. And the basic idea is whatever you're about to build, you're saying, I'm going to build an application in Rock. You always have to pick a platform to build on. Exactly one. And a platform feels like, to you as a user, kind of like a framework.
Starting point is 00:28:18 But actually under the hood, it's doing a lot more than a framework would. It's doing stuff like providing all the IO primitives and also memory management. So that's how you can have something like, for example, a framework would. It's doing stuff like providing all the IO primitives and also like memory management. So that's how you can have something like, for example, like a database extension. In a lot of languages, if you're doing a database extension, it's like, okay, so in this database extension, I've got like HTTP and like multi-threading and like file IO.
Starting point is 00:28:38 Am I allowed to do all that stuff in a database extension? Maybe not. So the idea is that in a Rock platform, the platform says, I'm going to give you both a framework and also like, here's just the primitives that make sense in this use case. So if you're doing like a two-eacher, then somebody can make a platform for just that. That's got like APIs that make sense for that and a server. Same thing. Just APIs that make sense for that. So is Rock a platform to make money? Oh, no.
Starting point is 00:29:03 It's just for fun? Yeah. I mean, well, I'm doing it at work now, so I guess I'm getting paid to do rock stuff. Okay. But the goal is not to make money. The goal is to make a language that I want it to exist in the world. Okay. Awesome. Yeah.
Starting point is 00:29:15 And it exists. It does. Yeah. You can try it out right now. But it's not finished, is it? Rock-lang.org. Definitely not finished. Yeah.
Starting point is 00:29:21 No, it's very like early days. ROC-lang. Yeah, exactly. Okay. ROC-lang.org. Records not finished. Yeah. No, it's very like early days. ROC-Lang. Yeah, exactly. Okay, ROC-Lang. Like Rockafellang.org. Records. Yeah, it's a mythical bird.
Starting point is 00:29:29 The ROC. Is that what it is? Like Run DMC at Rock? No, who was that? Beastie Boys. Jay-Z. Jay-Z, I think. No relation.
Starting point is 00:29:36 Sorry about that. No relation. Rockefeller Records has no affiliation that I'm aware of with Rock the Programming Language. But he's open to a future sponsorship. An affiliation. You know, I haven't talked to him. I haven't seen him in a minute. That would be to work with Block. Because he co-owns some parts of Block.
Starting point is 00:29:51 Oh, you can put Rock on the Block chain. There you go. Okay. Why WebAssembly? That's alright. We're podcasting here. We got Nick on the microphone. Yeah, it's recorded, but there on WebAssembly. Sorry to ask. That's all right. We're podcasting here. We got Nikolai. Come on over and say it in the microphone so we can hear it. Nikolai, he's got a question for our friend here, Richard Feldman.
Starting point is 00:30:13 Go for it. Hi, I'm Nikolai Vasquez. Why the focus on WebAssembly? What do you want to enable by having Rockwell work with WebAssembly? So I would say there isn't a focus on WebAssembly. So Rock compiles to either machine code or to WebAssembly. So I would say there isn't a focus on WebAssembly. So Rock compiles to either machine code or to WebAssembly. Actually, almost all the use cases today
Starting point is 00:30:28 are not WebAssembly. The one that's on the website is we have a web REPL. So you can try out the language right in the browser. And actually, the entire REPL is running in the browser. So you can turn off your network connection and it still works. And that's basically like, you have a little stripped down version
Starting point is 00:30:42 of the Rock compiler compiled to WebAssembly running in the browser and then we also have like obviously like compiles it to your Rock code to WebAssembly then runs it in the browser. So that's like the main use case for it but there's plenty of stuff people can use WebAssembly for so if people want to they can do that. Do we have a follow up?
Starting point is 00:30:59 Oh no, I'm very involved in the Rust community. Okay. It works very well with WebAssembly so I also have a specific interest in it. Oh yeah, well Rock's compiler is written in Rust so I'm very involved in the Rust community. Okay. It works very well with Rust assembly, so I also have a specific interest in Rust. Oh, yeah. Well, Rockstar Power is written in Rust, so I'm very familiar with Rust capabilities. A lot of wasm love going on around here.
Starting point is 00:31:12 That's right. Awesome. Should have had a fourth mic. Good point. Well, Richard, thanks for stopping by, man. Yeah, thanks for having me. There you go. That's it.
Starting point is 00:31:23 That's it. That's all. Appreciate you, man. I listen to you guys all the time. Yeah, yeah. Love for having me. There you go. That's it. That's it. That's all. Appreciate you, man. I listen to you guys all the time. Yeah, yeah. Love it. Awesome. Great conversation.
Starting point is 00:31:31 Glad to get you on the mic then, man. Yeah, that was a good one. So I'm Colin Dean. I run Code & Supply up in Pittsburgh, a community of software professionals. We've run our own conferences for a long time, too, and I've wanted to come to own conferences for a long time too and I've wanted to come to Strangeloop for a long time, about 10 years or so since the first time I heard about it. Strangeloop has influenced our
Starting point is 00:31:55 conferences through people's feedback as well as people who are in the code and supply sphere going to Strangeloop and telling us all the good things that they they've experienced here. And so I had to come and see it myself. And finally, this year, after 10 years, I'm able to come. My girlfriend, longtime partner, about 15 years, has usually had a dog show on this weekend. She's a semi-professional handler and breeder. And it just so happens that on this particular year,
Starting point is 00:32:26 two shows swapped weekends. And so for the first time, I haven't had to stay home and take care of our many, many dogs. How many dogs you got? We have eight. Eight dogs? Eight dogs. And that's just what is at our house.
Starting point is 00:32:40 Question for you. But then the pandemic happened. As strange as this conference can be, because it's called Strange Loop, could you have brought the dogs? I probably could have gotten a beagle here. We breed beagles and vishlas. I probably could have gotten a beagle here, especially one of our smaller beagles. The vishlas don't travel super well, especially on planes. Well, they travel just fine in cars, but they're too big for planes. I'd have to put them in a crate and that never goes well for shipping dogs.
Starting point is 00:33:10 Could you get a bunch of seats for your dogs on the plane? Or do dogs have to be in the stowing area or whatever it's called? For the most part, if they're in a crate, they have to be in cargo. Right. Because you've got a private jet, just you and the dogs. Oh, then we just load them up. Get some cuddles in the cabin. Bring your girlfriend with you. But either way, it's been a journey getting here, right? You've tried a couple times
Starting point is 00:33:36 and to no avail. Schedules didn't align and finally show swapped schedules and here you are. How's it feel to make it to the final, the first and final for you? It's great so far. I've had some great interactions with random people and met some people. Seen people that have come to my conferences and that I've met at other conferences over the years.
Starting point is 00:34:00 I look a lot different. I've put on a little bit of weight since the last time I put throat on a conference. And I don't have my signature top hat, which is really throwing people off. Oh, there's a signature top hat. I don't even know about the signature top hat. You go in the ChangeLog Slack, you'll see the picture of me in it. Okay. And I use that picture everywhere.
Starting point is 00:34:21 Well, that makes more sense now because if you would have said you were that Colin Dean, I would know. You didn't see that Colin Dean in Slack with the top hat? I don't look at it. I've seen that Colandine. So you're that Colandine? I'm that Colandine. Oh, my gosh. I'm that jag with the hat.
Starting point is 00:34:33 Do you see how this works in the world? The real world is so weird. It's so weird. I don't know. It's weird to, like, interact with people online and then you meet them in person. Yeah, it is. It's weird to like, like interact with people online and then you meet them in person. Yeah. The team that I worked on for, for work, I got moved on to in like early 2021. We had literally none of us had ever met each other in person because we'd all started at Target, like during the pandemic, or we had been working on completely different teams
Starting point is 00:35:01 prior to the pandemic. Right. And then suddenly, I don't know, when it was October of last year, we all got together at the first place and were like, Colin, you're a lot taller than we thought. Yeah. And I'm like, yeah. I had my hat on.
Starting point is 00:35:15 They're like, oh, but the hat's real. That's how I knew you. Right, right. And that adds some interest, too, I'm sure, at least to the assumption of the height. So why no top hat? Like, what made you leave it at home? Good question.
Starting point is 00:35:26 I forgot it. You forgot it? Yeah. I thought I had loaded it in the car the night before, and it wasn't until I was already onto the parkway, and I probably could have had time to double back and get it, but it would have been really close. By the time I got to my gate, I only had about five minutes, five minutes, ten minutes wait before the boarding.
Starting point is 00:35:47 You're that kind of person? Yeah. Is that normal for you? Pretty much. There are times if it's a later afternoon flight, yeah, I'll show up three hours early, and I'll just sit there and compute a bit. But if it's a morning flight like mine,
Starting point is 00:36:01 not an early morning flight, but if it's a morning flight. It's like 10 o'clock. Okay. i'd have probably been early for that one what i also find cool about this story going back to like get the stranger finally is that this is you know in terms of us we have a similar story we've wanted to be here many years as well and it wasn't so much schedule it was just things you know Somehow we weren't able to make it. And so not only is it your first, it's our first, but then you're also in ChangeLog Slack, and you're also an avid listener of the podcast. And this is the first time you're meeting us, too. I know, right?
Starting point is 00:36:38 First time to StrangeLoop, first time meeting us. It's just, you know, it's wild how that works. Yeah. Yeah. And, you know, I've seen you guys, I have seen pictures of you guys, but it's always just been like your, yeah, avatars,
Starting point is 00:36:50 your avatars and interact a little bit. Right. Um, but yeah, it's always cool to, to meet people who are doing awesome content generation. Like you guys are a little bit of an inspiration for me continuing to do the stuff that I do.
Starting point is 00:37:08 I don't do podcasts, but Code & Supply records our meetups and publishes them online for people to see. You guys serve as an awesome model of how to do a podcast right. Thank you. We appreciate that very much, though. And several of them.
Starting point is 00:37:25 I think I've listened to all of them. I can't remember the one that the name of the one that had that Nadia did. Request for Commits. Request for Commits. It's a big request for that to come back. I'm on
Starting point is 00:37:42 the board of Homebrew. One of the things that I always have to think about is like, okay, howbrew and one of the things that I always have to think about is how are we going to fund the things that we're doing and I think having requests for commits be like it's not actively
Starting point is 00:37:56 in the front of my brain but it's a basis for thought and the knowledge that Nadia and guests were able to share kind of formed a basis for thought. Yeah. And the knowledge that Nadia and guests were able to share kind of formed a basis for how I approach trying to find ways to get people who are doing open source money. Yeah. I used to be on the GrataPay staff and trying to get people to just give money in that way. Yeah.
Starting point is 00:38:21 Wow. More lines crossed over there. Chad Whitaker. Yep. Another Pittsburgher. Yeah, that. More lines crossed over there. Chad Whitaker. Yep. Another Pittsburgher. Yeah, that's true. Pennsylvania, Pittsburgh area. Yeah.
Starting point is 00:38:30 So Request for Commits is still available to listen to, for those listening. changelog.com slash RFC. Is it still? Did we ever get RFC.fm? I think we gave it up. I think we did. Oh. But.
Starting point is 00:38:44 It might still be there. I don't think it is, though. That was a cool name. RFC.fm? I think we gave it up. I think we did. Oh. But. It might still be there. I don't think it is, though. That was a cool name. RFC.fm? 20 episodes. Good. Still. Still probably.
Starting point is 00:38:52 Seinfeld right there. They Seinfeld that one. They did. Leave it one more. They really did. Well, Colin, thanks for listening all these years. Thanks for. He's that Colin Dean.
Starting point is 00:39:01 He's that Colin Dean. That Colin Dean. Top hat Colin Dean. Indeed. Nice to meet you, man That Colin Dean. Top hat Colin Dean. Indeed. Nice to meet you, man. Nice to see you face to face. Yeah, and hopefully when next I get to finally throwing another conference in Pittsburgh, we'll get you guys up there.
Starting point is 00:39:13 We'll come, man. We'll be there. I've never been. Doing this. Take me to the mansion. Take me to the river. Nemacolon. Take me to the river house.
Starting point is 00:39:21 Yaka Ganey River? Pycon's next year and the following year. And then we'll see what happens after that. All right. Might do Uptime or Hardifacts in 2024. Yes. Cool. Cool.
Starting point is 00:39:33 Thanks, guys. That's it. That was cool. Thanks for the chat. Hello. I am Taylor Trosh from good old Taylor Town. I would like to tell the story of my first strange loop many, many years ago. And this is my, uh, six or six or seventh. So this had to be like kind of 2012, something
Starting point is 00:39:52 like that. So I got this Airbnb out, out by the river and it took me like an hour or two to find it in the middle of the night because it was just this old abandoned building. And I, I was very scared and nobody was texting me back. I was in, I had nowhere to go just this old abandoned building. And I, I was very scared and nobody was texting me back. I was, and I had nowhere to go. I'm totally alone. And so finally, finally these guys say, Hey, are you, are you in the Airbnb? I was like, yeah. Oh yeah. Come on in. We're, we're in here. You're, you're in with us. So I was like, Oh, do you guys own the Airbnb? I'm walking in. There's a guy passed out on the couch with some illicit substances on his chest. And they say, oh, that's the host.
Starting point is 00:40:33 That's the guy that owns the Airbnb. Okay. They look at me and they're like, you want a drink? Here's a shot. Pour me a shot. I was like, what do you guys do? He's like, I'm a regional manager for McDonald's. Another guy's like, I own a car salesman place or something like that.
Starting point is 00:40:50 And so we're just chatting. And then a commotion starts. This is like two in the morning and like nine girls walk in and they're pulling each other's hair and they're hitting each other in the face. Okay. this is 100% all true. I promise. This happened. Okay. So they were on vacation in St. Louis on a bachelorette party. And literally half an hour before, they all just found out that one of the people in the bride's party slept with the groom.
Starting point is 00:41:27 Yikes. So this was the situation. We have the Airbnb host passed out on the couch. We have these two guys that are like, I'm talking to, and they're kind of creepy. Yeah. I'll get to that in a bit. And then we have this bridesmaid party where they're literally punching each other in the face. That is when I make my move out to go upstairs. This place is still a rundown building.
Starting point is 00:41:55 There's literally on the second floor, you can see down into the first. There's a giant chasm in the floor that you have to walk around because you can fall down into the first floor. This place is like three stories. It's like this old brick building. Wake up the next morning because there was a motorcycle show outside. And so at 5 a.m. there was motorcycles lining up. Okay. They're loud. Okay. So I want to bring, come back to the next night. These guys, I come, come back from Strangeloot and all the girls have made up at this point. They're the weddings back on. Oh wow. These two guys that I was talking to, they went out into town and brought some girls back from the bar. And so I get back
Starting point is 00:42:32 and we're all chatting and the girls are like, oh, yeah. These guys say that they work in investment banking. And I was like, oh, that's not what they told me. You outed them. Well And I was like, Oh, that's not what they told me. Like, uh, you outed them. Well, I was thinking internal thought and internal thought.
Starting point is 00:42:52 Oh, you're thinking that I'm thinking this. Okay. Uh, is that a big difference? So then one of the girls pulls me aside and says, I'm uncomfortable. Can you like escort me out? And so they brought back, you mean? Yeah. The girls, they brought back. Okay. So I essentially had to, like, so I left with them,
Starting point is 00:43:09 helped them get an Uber and stuff, and, like, kind of, like, Got in with them? It was just such a weird situation. Because you can't say no to something like that. Did they take your stuff with you, or did you have to go back and get your stuff? No, that's the problem. This is urgent, and it's in the middle of the night. And so my stuff is at this Airbnb with these guys.
Starting point is 00:43:25 I don't know what they're doing, right? Right. And all they know is that I'm in this weird position where they said, like, hey, we're good. But they didn't want them to leave. Right. You took their girl and left. So I escorted them out, and I had to leave my stuff at the Airbnb.
Starting point is 00:43:39 Luckily, they didn't touch my stuff. I didn't see them again until the next day in which i was like yo what's the deal and they're like oh yeah we just lie a lot and that was it that was it that like that was such an unsatisfactory ending but uh i think they were so drunk the night before they don't they didn't remember anything we just lie a lot so the moral of the story is uh if you ever stay in st louis the grand union station Hotel is an amazing hotel to stay at. Hopefully the conference was good. Oh, the conference was amazing.
Starting point is 00:44:14 That's the story. That's the ending point right there. That's his ending right there. If you have to. I do have one more from last year. See, he's got more. He's got more. A strange loop memory from last year. I've been coming for a long time, but last year was See, he's got more. He's got more. A strange loop memory from last year.
Starting point is 00:44:25 I've been coming for a long time, but last year was a highlight, for sure. I am somebody who likes to give gifts out. I carry a little bag of trinkets and gave one to somebody and he said, oh, hey, thank you. My daughter's gonna
Starting point is 00:44:41 love this little hair clip. I'm gonna send a magician after you later. I'm like, well, little hair clip. I'm going to send a magician after you later. I'm like, well, okay. I don't know what that means, but I've got a magician on my tail. So I'm in the middle of a conversation with somebody the next day and somebody taps me on the shoulder and said, are you Taylor? I'm like, yeah. He's like, I've got some card tricks to show you. And so he starts showing me card tricks. It was pretty good, right? And he's like, yeah, yeah, I'm the magician that so-and-so sent after you. Again, he's like showing me tricks.
Starting point is 00:45:16 And somebody comes to him and pulls out a deck of cards and says, is that the such-and-such shuffle? Let me show you. And so they start having a magic battle. What? Like doing card tricks. And I think at this point, they'd both exhausted their very comfortable tricks,
Starting point is 00:45:33 and they keep on messing up. And it's getting sloppier and sloppier because they're going further into their repertoire in this magic off. And so I kind of am like, hmm, how do I get out of this? Because I was stuck with the, I was stuck in the crossfire. Right.
Starting point is 00:45:50 And so I said, so how long have you been into magic? He's like, oh, I'm a microbiologist. I was like, oh, magic is a new thing. I'm like, oh, okay. Like this makes a lot more sense. Oh, man. And that's another good strange memory. Did you feel compelled to keep watching despite them messing up? So the thing is, I'm a very bad magician myself. So I tried to enter the fray.
Starting point is 00:46:17 I was not even worthy of being looked at in their eyes. I do coin magic. So it's way inferior to card magic. I see. I like this idea that there's an upper and lower echelon of magicians. Oh, yeah. You should... Oh, there is, for sure. Yeah. Card magic, I think, is near the top. The people with the rings, those are the ring leaders. It's kind of like the comedians that do ventriloquism or any sort of props. They're just...
Starting point is 00:46:47 Prop people are at the bottom. So like coin magic is bottom. Is that what you're saying? Coin magic, I would say, is near the bottom. I would say... Who are you better than? Let's see. See.
Starting point is 00:46:59 Who's lower than me? Oh, clowns, dude. Clowns. Yeah. They're kind of at the bottom of comedy, too. They're the top of comedy. No way. Clowns?
Starting point is 00:47:10 They're the top of comedy, but the bottom of magic. Okay. I'm not sure I like your spectrum. what's up friends this episode is brought to you by passport finally a password manager built for organizations and teams that take their security seriously. Passbolt is trusted by 15,000 teams worldwide, including Fortune 500 companies, the defense industry, universities, startups, and many others. And I'm here with CEO and founder of Passbolt, Kevin Muller. So Kevin, the password manager space seems kind of crowded.
Starting point is 00:48:01 What made you build Passbolt? It's a very crowded landscape. The problem is they all are doing the same thing. They all have the exact same security model with very minor differentiators. They are all cloud-based solution, except for Bitwarden. One of the reasons why we actually decided to do Passbolt is because we felt the pain in my previous company, which was a web agency. And the reason why we felt the pain is because we felt the pain in my previous company, which was a web agency. And the reason why we felt the pain is because we were a technical team. So as a technical team,
Starting point is 00:48:29 every time we are starting a project, we are given like a dozen or hundreds of passwords from our customers. And we were like, okay, we need to centralize this. But most importantly, we need to collaborate with this data. We need to share them very quickly with a lot of granularity and permission control. And then we started looking at what other players were doing.
Starting point is 00:48:47 And we were like, yeah, it's cool, but it's really like consumer type of use cases. You know, it's more like, how can I authenticate on my Facebook account if I don't remember the password? And even though they developed enterprise offer on top of it, the collaboration is still very clunky. Most of them are not able to do audit logs properly, to provide traceability. So I think this was the trigger for us to start developing Passbolt.
Starting point is 00:49:09 We were like, we want something that's more aligned with us as a tech team. Yeah. So what did you focus on? How did you begin with this project? So the first thing we did when we built Passbolt, the core component that we wanted to keep coming from the world of KeePass was to be open source. And on top of it, we decided to focus on three key areas that seem to us very important for
Starting point is 00:49:31 technical teams, which are security, privacy, and collaboration. Security is really important because tech teams are savvy. They understand exactly how security works. They are the guys who will come to a website and download the security white paper just to understand if it's marketing or if there is real tangible value behind the software. Because also Passbolt is only B2B, you will really push the security model ahead of what everyone else is doing. For example, Passbolt provides a secret key that is associated to the user, and it's impossible to connect to Passbolt if you do not have the secret key. So basically just knowing the username and the password of an account is not enough to connect into it. You also need a secret key. This is the same security model
Starting point is 00:50:14 as what you would have with a crypto ledger or some other highly private security component. It makes a huge difference in the sense like Passbolt is not sensitive to brute force attacks, for example. LastPass is sensitive to brute force attacks. So you can guess the username and the password of a user and brute force into his account. With Passbolt, it's not possible. You need to know the secret key. That's the first component. The second component is the collaboration. You can share passwords with a lot of granularity and traceability. You know, we do not do shared vault with plenty of passwords in one encrypted vault, no. Password is encrypted each time for each user with this public key, which then you can decrypt with this private key.
Starting point is 00:50:55 So this gives a lot of granularity and a lot of control with the permission and the access rights. The third part is the privacy. So as I mentioned, Passbolt is open source. You can download it, install it on-prem. We provide Linux native packages for most distros. It literally takes one minute. APT get, install Passbolt. You can start it for free.
Starting point is 00:51:14 We have a community edition and you get rolling. Okay, the next step is to go to Passbolt.com or install on Linux with Apt. Too easy. Again, that's Passbolt.com. P-A-S-S-B-O-L-T.com. Security first, open source. Check it out. All right, well, we're here with Pokey Rule,
Starting point is 00:51:51 the guy whose name I will never forget. Just a unique name. Some of it's self-given. Some of it inherited. Yeah. Right? I don't know. What's the name?
Starting point is 00:51:59 Well, not self-given. It was given to me by my parents, but I was quite young when I got it. But not unborn. It's not on your birth certificate. Not on my birth certificate. Pokey, you're talking about. Yep, Pokey.
Starting point is 00:52:09 Why did they call you that? When I was a baby, I was really fat, so my parents called me Porky. Oh, okay. And then they went to send me to school, and obviously their friends told them they couldn't call a little fat kid Porky, so they did the only natural thing that two strange hippie parents would do and drop the R. Okay. And here I am today. I thought maybe you slimmed down and they had to take the pork out.
Starting point is 00:52:30 No, no, no, no, yeah. Did I bring up a wound at all? No, no, it's fine. It was years ago. I mean, he literally goes by this name, so you probably talked to a lot of people about it. You do wear it with somewhat honor, I guess. Is it honor you wear it with? Yeah, I like it. I mean, I could
Starting point is 00:52:46 have dropped it. Yeah, he had the choice. It's his name. Yeah, it was a choice. Yeah. But I saw your talk title on the schedule. I was like, cursorless, that's interesting. Spoken language editing stuff, you're going to have to tell us about it. But I was like, okay, spoken language, that's cool
Starting point is 00:53:01 for a podcast. And then I was like, pokey rule. Who is this person? Yeah, I got to find pokey rule. So we found you, thankfully. We met you yesterday. Sure did. We wouldn't let you talk to us. We're like, no. That's right. We want to talk to you on these microphones. Don't waste tape. We're happy to have you here. You just finished your talk. I did. The pressure is off. The pressure is off. Tell us about Cursorless because I didn't get much further than your talk title. Yeah, no worries. So Cursorless is a spoken programming language for editing code and text.
Starting point is 00:53:32 Okay. Why editing and not writing? Yeah, it's a good question. So because 90% of what you do when you are coding is editing. Okay. You copy and paste it off of Stack Overflow and then you edit it. Or like Copilot writes it and then you edit it is editing. Okay. You copy and paste it off a stack overflow and then you edit it or like copilot writes it and you edit it, right? Like actual straight line coding is maybe five, 10%. You find it somewhere else in your code base, you copy it, you change it, right?
Starting point is 00:53:53 So like editing code is coding. And when I first arrived on the scene with voice coding, it was great for writing code in a straight line. So for that 5% of the time I was cruising, right? But for the 90% of the time when I was editing code, it was really painful. I see. So why did you start voice coding in the first place? So I had repetitive strain injury. So basically, I spent too much time hunched over a computer.
Starting point is 00:54:16 Yeah. And it was painful to use a keyboard. And so I tried all kinds of stuff. I, like, hired a guy off TaskRabbit, and I dictated him shortcuts. That was pretty brutal. And then eventually started, I found this amazing software called Talon Voice,
Starting point is 00:54:32 which allows you to build custom grammars for whatever you want. There was a community grammar, found some limitations, and I built Cursorless on top of it. So that's cool. So we talked to Josh, was it Josh Como, a couple years back?
Starting point is 00:54:43 Oh, yeah. He also did that. He had RSI. Yeah. And his was more like, here's how I do it. So that's cool. So we talked to Josh, was it Josh Como a couple years back? He also did that. He had RSI. And his was more like, here's how I do it. Right. I don't think he built anything on top like you did with Cursorless. No. No, no, no. Yeah. But similar situation, I guess. Yeah, exactly. Yeah, and his blog post is a great
Starting point is 00:54:58 resource for people starting. It's like one of the top things that pops up when you do voice coding. But you take it a full step further. You're like, I'm going to create a language around this. That's right. Are you doing the pops then too? I do, but mine is... Yeah, so instead of a like... I can't make that sound. It's harder for you?
Starting point is 00:55:16 That's what I do. It might not translate so well in this somewhat loud room, but you're popping. I hope you don't have a pop filter on this thing. I can't write an E because I keep pop filtering my E. What's a typical command sound like, I guess?
Starting point is 00:55:34 Yeah, so an example is spike every funk air pass bat. Spike every funk air pass bat? Yeah. I feel like we need to get a loop of that and some Breakmaster beats behind it. Spike every funk, air past bad. Yeah. I feel like we need to get a loop of that and some Breakmaster beats behind it. Spike every funk, air past bad. Did you make it musical on purpose, or is it just a side effect?
Starting point is 00:55:52 Yeah, that second time I did. Yeah. That was good. It was a solid second take. Put a beat behind it. This could be a new form of music. Okay, so what does that do? Right.
Starting point is 00:56:01 So what that does is it inserts a new line before every function in a particular range of function defined by two particular endpoints, air and bat. Right. So spike every funk air past bat. Right. So we're spiking, putting a new line before every function in the range between the air function and the bat function. Now, what are the air functions and the bat functions? You probably are going to ask. So air. Um, so this is where we get into, and this is on a podcast is going to be tough, but there's hats all over the little tokens on your screen. There's like these
Starting point is 00:56:34 little hats that we put right over certain letters. And so if there's a hat over an a, then that token is called air because air is what the word we use for a, and if there's a hat over a B, then we call that token bat. And so funk air is the function which has a hat over an a somewhere in it. And funk bat is the function that has a hat over a B somewhere in it. Okay. So that's spike every funk air past bat. So do you have a,
Starting point is 00:57:00 basically a code word per letter? Yep. So this is a lot like CB radio stuff, right? Yeah. So, you know, it's, yeah, exactly. Like the international, like Alpha Bravo, Charlie, Delta. Yeah, exactly. Yeah, so it's like that, except that's way too slow.
Starting point is 00:57:14 Well, that's like two syllables per letter. Because Alpha is longer than Air. I have no time for that, right? If I'm coding all day, two syllables. It's challenging, too. I would say, like, Lima, you know, Victor, Mike. Well, Mike's not bad. Mike's good. Mike, I can, yeah. like, Lima, you know, Victor, Mike. Mike's not bad. Mike's good. Mike, I can, yeah. So single syllable,
Starting point is 00:57:28 you know. Have you ever thought of going zero syllabic? I mean, so that's what the pops are. Yeah, exactly. Even faster. That's right. So what do you map a pop to, then? So I pop does two things. Pop wakes up Talon, which is
Starting point is 00:57:44 the software that Curseless is built on, right? So if it's sleeping and I'm talking to someone, I can pop, and that will make it start listening. And then once it's listening, Pop will repeat the most recent phrase that I issued, right? So if I said spike every funk here, pass bad, and I popped, it would do that again. Okay. That's super useful, I'm sure. Yeah, and it's great because you can make these kind of on the fly macros because a phrase can be multiple commands in a row.
Starting point is 00:58:08 So you can be like, delete this and then go to the next function and then you just pop and it just keeps doing it over and over again. So I guess since you had this injury, you don't have a lot of choice. So I mean, at the time I started, I did not have a lot of choice. Now you do. You're sort of forced to figure out a way if you want to keep programming. Yeah, exactly. Exactly.
Starting point is 00:58:28 Is it any more mentally taxing to do this method of editing, not coding? Is it, like, dramatically different? Does your voice get strained? Like, what other side effects come from having to speak your coding? Totally. So, initially, absolutely. There's a large mental load. And that's because, like, I mean, you can kind of think of it as, like, you know, like
Starting point is 00:58:50 brain one, brain two, right? We have, like, this more modern brain which can think intelligently about code, right? And, like, it's our language center and does all this sort of stuff. And then there's, like, our lizard brain, our, like, brain one, which system one, I think, is called in this, like, you know, this nomenclature, which is basically like the thing that's like muscle memory and like doesn't require thinking. And you only have one brain, too. Right. So at the start, when you're trying to voice code, I have to remember spike every funk. Like, what are the words? Right. And like it leaves no space for actually like thinking about code.
Starting point is 00:59:21 But what happens is like anything, it moves into system one and leaves system two free as you practice. And so now, no, it's easier than a keyboard and it's faster. But at the start, absolutely. Is it forgiving? Like I know when I talk to Siri, this is my interpretation of how it might be to do this. When I talk to Siri, I'm not the perfect speaking
Starting point is 00:59:42 every single time. I might slur something or, right. You know, I might with something and Jared thinks I'm saying withy or whatever. Yeah. You know, like, is there room for error in your speech pattern? Like, do you have to be precise? How, how challenging is that? Yeah. So I guess there's kind of like, um, two, two ways in which you could define forgiving, right? So like one is forgiving in how you enunciate and the other is forgiving in what you say, right? So you could very clearly say a command that's not real, right? On the other hand, you could slur a perfectly normal command, right?
Starting point is 01:00:17 And so there's sort of two questions there. And so in terms of is it forgiving with like just slurring speech, speaking fast, but it's the right command, it has gotten much, much better. Like, yes, it is fair. Like the recognition engine has gotten quite good because it's trained on millions and millions of hours of speech. And it's gotten to the point where it's fairly accurate. In terms of like is it forgiving if you just kind of like do something that's not quite right? Not at all.
Starting point is 01:00:39 And that's it's a double edged sword because the problem with Siri is like you don't necessarily know what you are allowed to say, right? Whereas with this, it's an extremely precise grammar. And so on the one hand, that means that you know exactly what you're allowed to say. But on the other hand, if you go outside of that, it's not going to work, right? So it just cancels it. It just ignores the… If you're lucky, it cancels it. It just does it.
Starting point is 01:00:59 But oftentimes what it will do is it will find the closest thing that sounds like it and then, you know, your computer explodes. Oh, my gosh. What's your undo sound? So if I'm in the middle of a command and it's going south, like you're calling a horse. And that'll cancel the in-flight command. Like, whoa, Nelly. Exactly.
Starting point is 01:01:17 So if I do that, as I'm issuing, that'll cancel in-flight. Okay. If it's after it's already run, then I basically say nope, and that's undo, and then I just pop to the undue. Speaking of nope. Have you seen that movie? It's a good movie. It's a great one. It is a great one. I love that one. Uh, that's cool though. I mean, that's the hard part. If you mess up, how do you get out of it? And how do you, like this time I'm talking to Siri, I'm like, this is going south. I just say, cancel, cancel, cancel. That's my, I mean, I just, for whatever reason, I got to say it three times.
Starting point is 01:01:45 You know, I don't know. It's my thing, but. No, it's funny. Actually, in the built-in community grammar, instead of making a sound to cancel, you actually do have to say cancel twice. Okay. Yeah. So you're onto something.
Starting point is 01:01:56 I'm a maximizer, so I always add one more to the requirement in most cases. Yeah. Yeah. Cancel, cancel, cancel. Yeah. So do you still use this day to day then? Yeah, yeah, yeah. So.
Starting point is 01:02:08 But optionally, you don't have to. Exactly. So yeah, I can now, like it's comfortable for me to use a keyboard. I can. And like occasionally I will use a keyboard if like for whatever reason, like my voice is tired or if like, you know, like maybe it's a super duper loud cafe, then I can use a keyboard. But yeah, my preference nowadays is to code by voice and I do most of my coding by voice.
Starting point is 01:02:28 I was watching two folks, uh, last night at the party sign and they were like furiously signing, like they were emotionally signing. And I was like, that is so cool because they can communicate. This is a loud space, right? To communicate clearly in a loud space, you have to elevate your voice, strain it, struggle to hear somebody, all these different things. Whereas somebody who can sign, whether they're hearing impaired or not, is like a superpower because they can talk in scenarios where you cannot. A hundred percent. And that's why I think like every medium has its advantages and its disadvantages, right? And so in certain situations, voice as a medium has disadvantages that signing and using your hands don't. But on the other hand, if I'm eating Cheetos and my fingers are completely orange, I don't want to use a keyboard, right?
Starting point is 01:03:16 Good point. I was thinking of something more dramatic where maybe, you know... More dramatic than that? I'm stuck on the Cheetos thing. This is a really good point. You had to pull the kill switch, right? Like somebody came in your house and like, you need to wipe your drive and you've got a command for that or whatever.
Starting point is 01:03:32 Click, click. Yeah. You can't take it. They got your hands tied up and you're like, I can't type. Nope. All the things. Nope at all. Nope.
Starting point is 01:03:42 All the things. That's awesome. I don't have that. I can't do that. You could, though. You could. You could. You could install it.
Starting point is 01:03:51 More likely is you just got some Cheetos on your fingers, though, and you don't want to touch a keyboard. That's a more day-to-day. Yeah. I mean, I get in that situation. I avoid Cheetos. But any kind of food, you're like, this is kind of gross, but I'm really hungry and I want to keep going.
Starting point is 01:04:03 Exactly. That's exactly right. So do you still use, so is this like a meta thing that sits over the top of the OS as an editor deal? Yeah. So like I would say 90% of the code base lives in a Visual Studio Code extension. Okay. So that's where most of the real bulk of the logic is, is in that VS Code extension. But basically, just like to give you the stack, there's Talon Voice, which is the engine that you define a grammar of like, here's what you're allowed to say.
Starting point is 01:04:30 You can say spike, whatever, et cetera. Talon, you can define any grammar you want. And you tell Talon, look, these are the type of things that I can say. And then here's what should happen when I do that. And Talon will then sit there listening. And so basically what we've defined, so Talon is something you install on your computer and it just runs. And it uses accessibility APIs, et cetera.
Starting point is 01:04:47 And then Cursorless is basically a grammar for Talon combined with an engine in VS Code and basically a way to send JSON payloads describing your commands from Talon to VS Code. That's interesting. Does Cursorless then add like the top hats and stuff for you to see? Exactly. So the VS Code extension will put those little hats on everything as well. But if you want to interact either outside of VS Code or even with the menuing system and stuff,
Starting point is 01:05:13 that's all just Talon stuff, right? So Talon itself, there's in some sense no command set that is baked into Talon. There is a community grammar, which pretty much everybody uses, and that does all that stuff, right? And so you install Talon, it suggests to install the community grammar. So to do things like controlling menus
Starting point is 01:05:33 and sending emails, Slack, I mean, everything, yeah. So does Cursorless replace that or merge into it? It merges into it, yeah, exactly. And so because Cursorless is really laser-focused on code editing, things like, for example, if I want, there's like Talon has, like the community repo has things like Camel, which is a formatter, right? So if I say Camel Hello World, that's going to type out Hello, then capital World, right? Camel case Hello World. And so if I wanted to, like, change, like, let's say I have a function call, right?
Starting point is 01:06:03 Like, you know, foo calling on argument is bar, and I want to change that foo to something else, call a different function called hello world. I could say change callee camel hello world. So that first command, change callee, that's cursorless, which will delete foo and put your cursor there. And then camel hello world, that's the community command, which will type it out.
Starting point is 01:06:22 Makes sense. So they integrate together, yeah. That's cool. So in your talk, did you live demo? Did you have any tech? A bit controversial, but I did not technically have a live demo. What I did was I made a keynote presentation with animated voice commands. So basically Wizard of Oz voice coding,
Starting point is 01:06:41 which made it way, way, way more visual than actually doing it. But then because I was worried there'd be a riot. I put up a QR code on my YouTube channel so that people could like see all my live code, all my coding sessions. So you got some stuff out on YouTube. I'm trying to see what people can watch because the video will be out soon. Yeah. Maybe you get out there right by the time this episode goes out. So if people want to watch your talk, they can go watch it. Or you got other stuff on YouTube. Exactly. They can watch the talk to get like an overview of what it is, like, et cetera, learn all about it, get that visual to understand it. And then, you know, if they want to see what it looks like at speed, then they can check out my YouTube channel and I have like things to teach
Starting point is 01:07:15 you. And then things where I just like turn on the camera, eat some Cheetos and start coding. Is it hard to pick up, like to adopt it? Does it take a lot of like, I know dev environments are highly personalized in a lot of cases. Is this like a dev environment for you? How much of this translates to like any given developer? Yeah, so I mean, it all translates to any given developer. But that being said, there is a learning curve, I'm not going to lie. Like, you know, it's not like you just all of a sudden sit down and just like chuck every funk air pass back.
Starting point is 01:07:44 Like, you know, it's a language you have to learn, right? But it took you a while to learn a keyboard too, right? So it's like you do have to learn it. There is a learning curve. And it's also customizable, right? So you can change it and make it work for you if it doesn't really work well for you. How does it work with like stall outs? And we talked about slurring.
Starting point is 01:08:01 But I imagine if I'm looking at my code and I say spike every line, what do you say, spike what? Spike every funk air pass bat. Spike every funk, and then I'm like, look over here, it's the C, I gotta be like cat, is it cat? Yeah, let's call it cat. Kitty. No, tell me the right one.
Starting point is 01:08:17 I don't want to be wrong. It's cap, you were pretty close. Cap. C-A-P, yeah. C-A-P. So I say cap, and I'm like, and I find an F, and I say. Fine. Fine.
Starting point is 01:08:30 Yeah. So I say cat, pass, cap. See, I already screwed it up. Now my computer's blowing up. Nope, nope, nope. Cancel, cancel. Cap, pass, fine. Yeah, right.
Starting point is 01:08:41 And it's like, is it waiting for me to get to that? Yeah, so there's something called the speech timeout, which is basically how long it's going to wait before it decides you're done with the command. Gotcha. And so you can configure that, minus 400 milliseconds. For sure, okay, that's good. Gotcha. And so basically,
Starting point is 01:08:57 yeah, I mean, so if it's like kind of you're halfway through it, that's when you would use that horse click sound and like, and cancel it out. Gotcha. But yeah, no, it doesn't wait around for you what you can do so i have a like one of some people have all their tricks so there's a there's one buddy in sweden who's like one of the core contributors and he uh he steals the trick that uh air pilots use so he would be like chuck every funk uh cat past uh drum so he he just stalls it with a sound. Yeah, because there's what's called the voice activity detector, right?
Starting point is 01:09:30 And as long as you're making that noise, it's like he's still talking. That's cool. In this case, it's like, uh, yeah. And that doesn't get interpreted as a word because it's just a noise. I'm pretty sure that's why airplane pilots do it, too, to hold the airspace, I think. That's what he tells me. Okay. Does he get confused later in life and he's talking to you and he's thinking and he's eyeing what he's talking to you, but not a computer? Does it occur in his everyday speech?
Starting point is 01:09:54 No, this guy talks nonstop. He's a machine. There's no pauses. Well, I was wondering if a lot of us, we work to remove filler words from our language. And he's just adding them back in. So I would use like, you know? us, we work to remove filler words from our language. And he's just, like, adding them back in. So I would use like, you know. Like, like, like. So you spike every line.
Starting point is 01:10:09 Air, like, like. You can actually map a command to do nothing. So if you wanted to, you could map like to, it's called skip. I wouldn't want to because then I'd say like way too many times. But it is true. You do get bleed over. So, like, for example, I was, like, biking along a crowded canal towpath, right? So, like, there's like all these
Starting point is 01:10:25 pedestrians I got to get around and I'm a polite cyclist. I'm a polite cyclist. So I keep, you know, I keep saying on your left, on your left. And like, there was a part of my brain, I'd just been like, you know, like a marathon coding session. I go on your left, I get to the next one. And I wanted to pop to repeat it. I wanted to pop. You should have popped it, man. I was like, why can't I do that? They're like, why is this guy clicking at us or popping at us? What's wrong with this guy? You'll end up on some gal's TikTok,
Starting point is 01:10:54 you know, where they have this guys who are hitting on him. They're like, this guy is popping as he drives past us. Speaking of TikTok, I have an idea. Oh, yeah? Okay. I think that TikTok is a prime place to blow up something like this. And I think if you took the idea that Jared kind of gave you earlier, which was like do it in song, basically.
Starting point is 01:11:13 Okay. If you could do some TikToks where you're like, it sounds like you're doing it to a beat maybe even. Right, right. One video is like, guess what? I just coded. And the next one is like the screen of you. I don't know.
Starting point is 01:11:23 I'm not designing how you do it. So it sounds like music. Yeah. And then it turns out. You can use that as a virality thing to be like, this is, because Deep Talk Love is interesting. I like that. Strange and interesting. And this is a strange loop, so why not, right?
Starting point is 01:11:34 That's not a bad idea. Yeah. So I gave a talk a few months ago at like an art conference. And so I basically, I took some voice commands and like, I just read them out as if it was poetry. And then like had the screen come up behind me, like gradually fade in and show like all the stuff that was flying around. So this would be like TikTok bites of that. But music, I like it.
Starting point is 01:11:52 I like it. Do I have to pay royalties or is that idea free? A slight credit. Hey, listen to my friends over here on this podcast. I'll give you a shout. I feel like him doing that looped to music. Like we kind of already own that. Yeah.
Starting point is 01:12:06 I don't know. We'll work something out. Yeah, I love my little stuff. Fraction of a penny, you know? Yeah. Awesome. Anything else, Adam? I'm clear.
Starting point is 01:12:16 I love it, man. I kind of want to try it. Yeah, you should. Yeah, man. Cursorless. Look it up. Cursorless. I'm definitely saying cancel, cancel, cancel.
Starting point is 01:12:23 So I'm halfway there. I mean, that's pretty much it. That's half the battle. I mean, I gotta go home and work on my clicks and my pops. And your cats and your caps. That's right. Well, thanks for sharing that with us. Pretty cool.
Starting point is 01:12:34 Yeah, thank you so much for having me. Cool. Yeah, that was fun. I think it's okay for things to end. So, big trees in a forest sort of compete for their trunk of sky and all that corresponding life energy. And big trees protect some young trees under the canopy. And when that big tree falls, the sky opens up, those young trees raise up to fill it.
Starting point is 01:12:58 I hope that Strangely Benning creates space in your life and mine for other things to grow. So, thank you for being here with us all these years. strangely bending great space in your life and mine for other things to grow. So thank you for being here with us all these years. And I hope it's been as important of our life as mine. That is all we have for you, now and in the future. So please stick around, have a drink, and if you want to get something signed, do that. And thank you so much. Well, that's as close as we can get you to the actual conference. Everyone we spoke to loved this conference, whether it's their first time or their seventh time.
Starting point is 01:14:04 Everyone, and I mean everyone, adored this conference. Alex Miller and the organizing team has done a great job, no, a fantastic job organizing this conference every single year, and it will be missed. As I mentioned, we do have an extended episode for our Plus Plus subscribers, lots more content to share, but only for our Plus Plus subscribers because it's just so much. All the content that we got from Strangelube is for you, our Plus Plus subscribers. And if you're not a Plus Plus subscriber, you can correct that by going to changelog.com slash plus plus.
Starting point is 01:14:39 It's better. Ten bucks a month, a hundred bucks a year. Directly support us. Drop the mads. Get closer to that cool Changelog medal. And of course, that awesome bonus content. Once again, changelog.com slash plus plus. One more thanks to our friends and partners at Fastly, Fly, and TypeSense.
Starting point is 01:14:58 And to our Beats Master in residence, Breakmaster Cylinder. Those beats, so good. So good. That's it. The show's done done we will see you on friday like every funk air past bat

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.