Alright, so we have AnnMarie Thomas. Is that how you say your name?
AnnMarie Thomas:Exactly, yeah.
Jerod Santo:Who just gave an amazing keynote this morning.
Adam Stacoviak:That's right.
Jerod Santo:"Play with engineering", is that the title?
AnnMarie Thomas:"Playing with engineering." That was close.
Jerod Santo:"Playing with engineering." 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 in a beautiful auditorium...
AnnMarie Thomas:It's pretty \[unintelligible 00:04:37.11\]
Adam Stacoviak:Is that right?
AnnMarie Thomas:Yeah.
Jerod Santo:Thousands of people in the audience... And off to a smashing start... And then a little audio/video snafu...
Adam Stacoviak:You did so well though.
Jerod Santo:...which was gonna become a much bigger snafu later on, because you had some audio that needed to be played...
AnnMarie Thomas:Yeah.
Jerod Santo:And then --
AnnMarie Thomas:Yeah. Someone thought I set it up, because we've realized the sound didn't work, and the first one was about a project with deaf kids... So actually, it was perfectly accessible without sound. But that wasn't true for the later stuff.
Jerod Santo:But later on it was gonna get required. What were you thinking in that moment, like when the audio wasn't working? First of all, you handle it so well.
AnnMarie Thomas:Oh, thank you.
Jerod Santo: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?
AnnMarie Thomas:Well, I knew it could work... Because we had tested it before when I went up; so when the sound wasn't working, I realized how lucky I was that it was perfect for what the topic was at that moment, the Playful Learning Lab's work in the deaf community. But I also -- yeah, I did know that the later stuff, which was that I work at OK Go, and also some music visualization stuff wouldn't work without it... But I also know that the audience -- it's the first day, so you can't like stop... So I think what I did, and \[unintelligible 00:05:50.10\] was kind of go to the front and make it clear that I need someone to come help with the tech. In the back of my head though I don't remember what I said, because I was making some joke about it, but I was thinking "Alright, 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 sleight of hand.
Adam Stacoviak:I couldn't even tell that you were in the back of your mind thinking a 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 "Oh, my gosh. Should I have a plan B? Could I just change my talk, basically?" which was -- that's a big deal.
AnnMarie Thomas:Thank you. I mean, it was a talk on play, and process, and how it's about process and not product...
Jerod Santo:Right. It really played to your strengths.
AnnMarie Thomas:Yeah, someone did ask if it was actually intentional.
Adam Stacoviak:I'm curious about the Slack message, because I remember what she said. It was so good what she said, too.
Jerod Santo:Yeah, so this was Mike English in the Strange Loop Slack... He said "This is the most gracefully I've ever seen someone handle such a major A/V issue mid-presentation."
AnnMarie Thomas:Well, that was really sweet.
Jerod Santo:Elliot Cable quoted that, and then like 38 clap emojis, eight plus ones, and then seven 100 emojis.
AnnMarie Thomas:See, I never end up doing the thing I'm meant to do... So maybe my talk was about how to handle tech issues, but that wasn't what I prepped for. And if you learn anything from my talk, it's that things always go wrong in our stuff, and it's what you do with it.
Jerod Santo:Yeah.
Adam Stacoviak:Do you remember what you said though? You said something about "When we play, we have to expect something or other..." I'm paraphrasing, but you said --
AnnMarie Thomas:Yeah, I must have said that things never go the way you expect, because if it's about process, not outcome... How can you do something new if you already know the outcome?
Adam Stacoviak:That's right.
AnnMarie Thomas: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... We're not gonna go to OK Go... I think we're gonna do a talk about magicians, and magic, and attention... Where are my cards?" \[laughter\]
Jerod Santo:"Where's my magic?"
AnnMarie Thomas:"Where are my cards? I have cards in my backpack." So I don't know what I was saying, and I hope it was sensical, because I was --
Adam Stacoviak:No, it totally made -- and that hit me, because I was... So we -- it's on hiatus right now, but we have a podcast called Brain Science.
AnnMarie Thomas:Oh, cool.
Adam Stacoviak:And obviously, you learn much better in the state of play.
AnnMarie Thomas:Oh yeah, absolutely.
Adam Stacoviak:\[00:07:59.24\] You know this probably, 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 sciency things. So neuroscience, those kind of things... 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, and all that fun stuff... So just exactly what you said was on point, because it wasn't going perfectly AV-wise; talk-wise, great.
AnnMarie Thomas:Thank you.
Adam Stacoviak:It was good.
AnnMarie Thomas:I want to learn more about your brain science stuff. Currently, I'm totally geeking out on magic. My daughter is a sleight of hand artist, and I can do a few tricks... But I'm on sabbatical, and originally, my whole sabbatical was going to focus on magic... And so I've been reading 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-kilter, 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. And it's something that magicians are really good at it. Also, if you go younger - and I work with kids, too - a lot of magic and sleight of hand is based on the idea of object permanence. Like, if it was there, it stays there. But it'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, plus the engineering behind a lot of magic's quite cool.
Jerod Santo: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 --
AnnMarie Thomas:Of a circus.
Jerod Santo:Yeah, of a circus, or somebody spinning a ring... These things that are very visual, very interactive, and fun, and kind of whimsy, to use your word...
AnnMarie Thomas:Yeah.
Jerod Santo:Do you ever find that in that moment, or after that moment, when it comes time to actually then go apply the principle or the -- "Now let's do the math." Do you ever find there's like a come-down, where it's like "Ah, I'm kind of liking the play part, but not the learning part"?
AnnMarie Thomas:I mean, hopefully not. I mean, that class was opt-in, and the math and physics was always there, because they were doing experiments. I mean, they were the pendulum; they were the bungee. 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 what are your learning outcomes, how do you map it to this? And it's not for everyone. That class would have been awful for a lot of people, and it was elective. And that's one of my favorite things to do with companies, is ask people "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 a lot of people will say these really big, like, "We went to the circus to learn physics", or "We did this art thing." But some people will say -- I will never forget, a very well-known programmer said "I love going into large lecture halls, and a professor would lecture at the chalkboard, and I'd learn that way." And that's not what you think is gonna 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. It's the opposite of like 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.
Adam Stacoviak:Yeah. My son to this day knows -- 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 swingset in our backyard, and I pulled him up -- and we call him Smoochy. So I held him close to my face, and I'm like "Okay, I'm gonna let you go, and you see if you can smooch me on your way back." So kinetic energy in that stance will -- I don't know how to describe it, but...
AnnMarie Thomas:Oh yeah, absolutely.
Adam Stacoviak:...the person wouldn't swing any further forward than they were dropped, and that's the way it works. And so I taught him about "I'm holding you, there's energy pent up, and that's kinetic energy." So he learned that in a state of play. It was a swing set. So just the fact that you can inject play, and inject learning into 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.
AnnMarie Thomas:When we did that class at the circus, the final exam was doing a circus about physics for sixth graders. But then we created a music video later, 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 \[unintelligible 00:12:08.12\] Which is lovely. They weren't just randomly using the words; like, we were doing cross-products, we were doing potential to kinetic, and it was just beautiful, their ability to turn it into this catchy song, that is like totally geeky-correct.
Adam Stacoviak:\[00:12:30.22\] Right. How did OK Go happen for you? The whole sandbox... How did that relationship happen? Do you know somebody? Are you in music? How did the relationship spawn and the partnership form?
AnnMarie Thomas:Yeah, I went to a conference... I drink too much coffee, and I got in line for a coffee before heading to the airport, 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 gonna be in L.A. in a few weeks", and he's like "Why?" I'm like "I'm giving a talk. Hey, do you wanna give a talk with me?" This is truly like in coffee line, at a conference. And he's like "Sure." So my second conversation with Damien was us giving a talk to 1,500 people. And then we chatted over meal and said "Alright, how can we work together?" And we got a grant the next week; a few months later they were on our campus, filming our test content... And yeah, that was April of 2017, so we've done a lot since then.
Adam Stacoviak: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... Is that what I heard?
AnnMarie Thomas:Oh, they recognize they're playful. They don't recognize they're -- they recognize that they're using education settings, like classrooms, but that was never something I worked on. And they have a model for how they do things, and they call it playing in a sandbox. That's why they say they play in a sandbox of an idea. But their play is hard work. I mean, most of those videos take over 100 takes, and...
Adam Stacoviak:Oh, yeah, I'm sure.
AnnMarie Thomas: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 - 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 go with a way that I can still do something fun, because...
Adam Stacoviak:Yeah.
Jerod Santo: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?
AnnMarie Thomas:Yes, we say about 15,000.
Jerod Santo:15,000 people around the world who send in themselves singing, or...
AnnMarie Thomas:Or clapping or \[unintelligible 00:14:49.16\] we broke up five animated films in the individual frames, so we had about 15,000 coloring sheets... Or maybe less; we need to 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 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... 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...
Adam Stacoviak:Right. I noticed the edge moved around a little bit, and I thought it was either artistically done, or that's just what you had to work with.
AnnMarie Thomas:I'll be honest, you were seeing two videos. So what you saw was an animation 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... So one was superimposed on the other. So this was really hard for people when they were watching, and I got some people to -- I know what my number was, and that's not there, and like actually, if you flip forward four frames, the number's not gonna match, but your frame is there. So that one had two; the one you saw two different --
Adam Stacoviak:Gotcha. Okay.
AnnMarie Thomas:We had to do that, because for that one -- because of COVID, a lot of people couldn't mail back their stuff. 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.
Adam Stacoviak:\[00:16:18.21\] How does this project live now? I know it's digital, it's an artifact...
AnnMarie Thomas:That's right. The five songs you can find on Spotify, and then the six music videos and the documentary about how the whole project happened you can find on OK Go's sandbox.
Adam Stacoviak:Right. What about all the drawings and things like that? Should it be like a mini museum, or something like that?
AnnMarie Thomas:Yeah, I mean, I have cases of drawings, and we've been talking about what to do with them. We'll see.
Adam Stacoviak:Well, I think about that stuff. I have a hard time letting that stuff go from projects...
AnnMarie Thomas:We save it all. And the band saves a lot of their stuff. So we have artifacts. And one of them we've done postcards that were put in a giant praxinoscope for Yuri's Night. And then those postcards were launched on when one of Blue Origin's New Shepard 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 into 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.
Jerod Santo:So their postcards went to space and back...
AnnMarie Thomas:And then back to them, to the school.
Jerod Santo:And back to them.
AnnMarie Thomas:Yeah. And were used in a video... Yeah, not bad.
Jerod Santo: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?
Adam Stacoviak:Yeah, like "This has been to space...!"
Jerod Santo:"This thing went to space and came back to me."
AnnMarie Thomas:Yeah.
Adam Stacoviak:Wow.
AnnMarie Thomas:We had done a project too where we had his design and 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. We did art in space, which was -- OK Go 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. 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 December 2019, Blue Origin flight. So Blue Origin was a fun collaborator for a lot of that stuff. Out of this world projects...
Jerod Santo:Huh.
Adam Stacoviak:That's cool. Yeah. Any more projects like this in the work with OK Go's sandbox, or OK Go directly?
AnnMarie Thomas: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, the Vini Bubble, and they did a song for that. There's a visualizer. So OK Go sandbox should put something out about that... So yeah, a little thing will come soon. In terms of big new things, there's definitely discussions. The band - they have 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...
Adam Stacoviak:This OK Go sandbox, is it a 501(C)3? Can people give to it? If they care about what you're doing, how can they support it?
AnnMarie Thomas:Yeah, no, it's a project. My university is a nonprofit. So it's a project of the University of St. Thomas, Playful Learning Lab, in collaboration with OK Go. So yeah, funds that come to us -- so we could do it thanks to amazing corporate sponsors and individuals... And yeah, we never knew where that project was going. We thought it'd be a little thing, and 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 for Strange Loop, I'd say - their guitarist, Andy, is a computer scientist, so they think that way.
Jerod Santo:What did you think when you got invited to do a software conference keynote?
AnnMarie Thomas: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. Like non-stop 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, 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.
Adam Stacoviak:\[00:20:00.03\] How did you like how Alex introduced you? His process to find keynoters, and how he found someone like you.
AnnMarie Thomas:That was lovely. I was so delighted when I got Alex's email. So that was... Yup.
Jerod Santo:So sabbatical... You said a little bit about what you're working on now, but what's next, or what's coming?
AnnMarie Thomas:You know, a couple of things. We're finishing up some papers... We've just finished a huge computer science project; well, 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 deaf-blind... And so we're 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. We did an engineering class for all their middle schoolers, a 20-day engineering class that actually my students are presenting 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, 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. I am working on some children's museum exhibits, which is always a blast...
Adam Stacoviak:Yeah.
AnnMarie Thomas:...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...
Jerod Santo:Cool.
AnnMarie Thomas:Yup. And then my personal goal is trapeze, so just this weekend I got asked to join my first flying trapeze team, so I'm training for a show...
Adam Stacoviak:No way. Oh, my gosh.
AnnMarie Thomas:Yeah. Middle-aged mom on the trapeze.
Jerod Santo:So a magician wasn't enough... You're like "You know what, I'm more of a trapeze artist/magician..."
AnnMarie Thomas:It's all physics...
Adam Stacoviak:Did you say sabbatical from, or just sabbatical in general?
AnnMarie Thomas:Sabbatical from.
Adam Stacoviak:Okay. Because your version of sabbatical sounds like a lot of work to me...
AnnMarie Thomas:Well, a sabbatical for an academic is -- well, you're paid half your salary for the year, basically, 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 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.
Adam Stacoviak:I see.
AnnMarie Thomas:Yeah. I still have my advisees, but...
Adam Stacoviak:Some people mean sabbatical differently, like they're searching for their next thing... I think that's why you probably asked that, Jerod, like what's next for you. I didn't know that's how it works for --
AnnMarie Thomas:Oh yeah, academics, like every eight years we can...
Jerod Santo:Is that a whole year?
AnnMarie Thomas:Mine is. I've never done a whole year. So I'm doing a whole year.
Adam Stacoviak: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.
AnnMarie Thomas:Oh, and I'm not good at that.
Jerod Santo:\[laughs\]
AnnMarie Thomas:But that's okay.
Adam Stacoviak:We need more folks like you in education, that just -- you seem to eke out every connection and possibility, based on what I know from you.
AnnMarie Thomas:We aspire to do that.
Jerod Santo:Well, we appreciate you talking to us today.
AnnMarie Thomas:Thank you guys for asking me to. It was fun.
Jerod Santo:It's been awesome. It's all physics...
Adam Stacoviak:It's all physics.
AnnMarie Thomas:It's all physics.
Jerod Santo:Awesome.
AnnMarie Thomas:Cool, thank you, guys.
Jerod Santo:Thank you. **Break**: \[00:23:18.21\]
Richard Feldman:Yeah, so I'm Richard Feldman. This is my 10th Strange Loop. I was in St. Louis when they started, so I've been to the first several... My best memory's actually from just before the pandemic. Every year we'd have ElmCon right before Strange Loop, in like the same venue... And that was awesome, because that was really about 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, where people came out to Strange Loop, and they'd be trying out Elm for the first time, and they just kind of wandered over to Elm Conf... It was just awesome. It was a great time, and I'm gonna miss it.
Jerod Santo:Has it changed a lot over the years?
Richard Feldman:Definitely. Yeah. I mean, I would say what 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; 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 language-focused, something like that. It's always been kind of a nice mix. I think the main thing that's changed is that it's gotten bigger and better and more ambitious over the years. The first year, it was in a theater, and there were 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...
Jerod Santo:\[laughs\]
Adam Stacoviak:Really?
Richard Feldman:Yeah. I was like "What is this?" We were using Subversion at work at the time; not even Git yet. So I was like "Alright, this is an interesting pitch. It looks kind of like a neat tool."
Adam Stacoviak:Was that 2009 then, or...?
Richard Feldman:I think that was 2009.
Adam Stacoviak:2009. If it was 2010, that would have been behind.
Richard Feldman:Yeah. 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.
Adam Stacoviak:That's cool.
Richard Feldman:But yeah, I've spoken here three times, I did all the Elm conferences, I spoke at all those... So I have a lot of memories as a speaker, as well as as a participant.
Jerod Santo:Awesome.
Adam Stacoviak:What will you miss most?
Richard Feldman:Oh, definitely just all the people coming together in one place. Since I got here, I've just been going from one interruption to another. I'll run into someone I know, start having a conversation, and then I'll see somebody else, like "Hey! Let's go--" And it's just nonstop, back to back, since I've set foot in the building. Actually, before that; since the hotel, when I left my hotel room, and then we walked over together... It's just nonstop. It's really hard to find such a great collection of awesome people.
Jerod Santo:So you've also changed over the years...
Richard Feldman:True.
Jerod Santo:We've had you on the show years ago.
Richard Feldman:Yeah. For Elm stuff.
Jerod Santo:You were like the Elm guy. You were like Elm's unofficial official representative...
Richard Feldman:\[laughs\] I gave a lot of Elm talk, that's for sure.
Jerod Santo:A lot of Elm, and now you're not doing Elm.
Richard Feldman:Yeah, so I'm working on an Elm-inspired programming language. It gives you an Elm-like experience, but in other use cases. So Elm is really like browser-based UIs, and Roc is the language I've been working on, and it's very focused on other use cases. Like command line apps, servers... I like to think of it as like the long tail of use cases. Theoretically, you could even use it to write like a Vim plugin, or something like that. Nobody's done that yet, but... Literally, pretty much anything you want.
Adam Stacoviak:Well, tell me about servers, and TUIs. How does that work?
Richard Feldman:Very simple. I mean, if you want to build a server in Roc, we have this -- we're not going into a lot of detail on it, but...
Adam Stacoviak:So you could build a TUI and a server in the same language?
Richard Feldman:If you wanted to, yeah.
Adam Stacoviak:Okay.
Richard Feldman:\[00:28:04.05\] So we have this concept called platforms and applications. The basic idea is whatever you're about to build, you're saying, "I'm gonna build an application in Roc", you always have to pick a platform to build on. Exactly one. And a platform feels to you as a user kind of like a framework, 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, 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 HTTP, and like multi-threading, and file IO... Am I allowed to do all that stuff in a database extension? Maybe not." So the idea is that on the Roc platform, the platform says "I'm gonna be both a framework, and also like, here's just the primitives that makes sense in this use case." So if you're doing like a TUI, then somebody can make a platform for just that, that's got APIs that makes sense for that. And a server - same thing, just APIs that makes sense for that.
Jerod Santo:So is Roc a platform to make money?
Richard Feldman:Oh, no.
Jerod Santo:It's just for fun?
Richard Feldman:Yeah. I mean, well, I'm doing it at work now, so I guess I'm getting paid to do Roc stuff...
Jerod Santo:Okay.
Richard Feldman:The goal is not to make money. The goal is to make a language that I want it to exist in the world.
Jerod Santo:Okay. Awesome. And it exists.
Richard Feldman:It does. Yeah. You can try it out right now.
Jerod Santo:But it's not finished, is it?
Richard Feldman:roc-lang.org. Definitely not finished, yeah.
Adam Stacoviak:roc-lang.
Richard Feldman:Yeah, exactly.
Jerod Santo:Like Rocafella Records.
Richard Feldman:Yeah. It's a mythical bird.
Jerod Santo:The Roc.
Adam Stacoviak:Is that what it is? Like Run DMC Roc? No. Who was that? Beastie Boys.
Richard Feldman:Jay Z. But no relation.
Jerod Santo:Jay Z I think, yeah.
Adam Stacoviak:Sorry about that.
Jerod Santo:No relations. \[laughs\]
Richard Feldman:Rocafella Records has no affiliation that I'm aware of with Roc the programming language.
Jerod Santo:Not yet, but future sponsorship...
Adam Stacoviak:He's open to an affiliation.
Richard Feldman:\[laughs\] You know, I haven't talked to him. I haven't seen him ever, so...
Adam Stacoviak:They \[unintelligible 00:29:46.02\] because he co-owns some parts of Block,
Jerod Santo:Oh, you could put Roc on the blockchain.
Adam Stacoviak:That's right.
Richard Feldman:There you go. Okay. Why WebAssembly? \[unintelligible 00:29:59.11\]
Jerod Santo:That's alright --
Adam Stacoviak:We're podcasting here. Come on my microphone.
Jerod Santo:Yeah, it's recording, but here, come over and say it in the microphone so we can hear it.
Adam Stacoviak:This is Nikolai. He's got a question for our friend here, Richard Feldman.
Richard Feldman:Go for it.
Nikolai Vasquez:Hi, I'm Nikolai Vasquez. Why the focus on WebAssembly? What do you want to enable by having Roc work with Web Assembly?
Jerod Santo:See you later, Adam.
Richard Feldman:I would say there isn't a focus on Web Assembly. So Roc compiles to either machine code or to Web Assembly. Actually, almost all the use cases today are not Web Assembly. 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 like turn off your network connection and it still works. And that's basically like -- we have a little stripped-down version of the Roc compiler compile to WebAssembly, running in the browser. And then we also have, obviously, it compiles your Roc code to WebAssembly and then it 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.
Jerod Santo:Do we have a follow-up?
Nikolai Vasquez:Oh, no. I'm very involved in the Rust community...
Jerod Santo:Okay.
Nikolai Vasquez:And it works very well with Web Assembly, so I was \[unintelligible 00:31:02.04\]
Richard Feldman:Oh, yeah. Well, Roc's compiler was written in Rust, so I'm very familiar with \[unintelligible 00:31:07.20\]
Jerod Santo:A lot of WASM love going on around here...
Adam Stacoviak:That's right.
Jerod Santo:Awesome.
Adam Stacoviak:I should have had a fourth mic.
Richard Feldman:\[laughs\]
Jerod Santo:Good point. Well, Richard, thanks for stopping by, man.
Richard Feldman:Yeah. Thanks for having me. That's it?
Jerod Santo:That's it.
Richard Feldman:Cool.
Adam Stacoviak:I appreciate you, man.
Nikolai Vasquez:I listen to you guys all the time...
Jerod Santo:Yeah?
Nikolai Vasquez:I love it.
Jerod Santo:Awesome.
Nikolai Vasquez:Great conversations.
Adam Stacoviak:Glad to get you on the mic then, man.
Break:\[00:31:28.10\]
Colin Dean: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 Strange Loop for a long time. About 10 years or so since the first time I heard about it. Strange Loop has influenced our conferences through people's feedback, as well as people who are in the coding supply sphere going to Strange Loop and telling us all the good things that 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, two shows swapped weekends. So for the first time I haven't had to stay home and take care of our many, many dogs...
Adam Stacoviak:How many dogs have you got?
Colin Dean:We've got eight.
Adam Stacoviak:Eight dogs?!
Colin Dean:And that's just what is at our house \[unintelligible 00:32:38.29\]
Adam Stacoviak:Question for you... As strange as this conference can be - because it's called Strange Loop - could you have brought the dogs?
Jerod Santo:\[laughs\]
Colin Dean:I probably could have gotten a beagle here. We breed beagles and vizslas. I probably could have gotten a beagle here, especially one of our smaller beagles. The vizslas 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.
Adam Stacoviak:Could you get a bunch of seats for your dogs on the plane? Or dogs have to be in the stowing area, or whatever it's called?
Colin Dean:For the most part, they have to be -- if they're in a crate, they have to be in cargo.
Adam Stacoviak:Right.
Jerod Santo:Could you have gotten a private jet, with just you and the dogs...?
Colin Dean:Oh, then we'd just load them up.
Adam Stacoviak:Load them up, right?
Colin Dean:Get some cuddles in the cabin, you know... \[laughter\]
Jerod Santo:Bring your girlfriend with you...
Adam Stacoviak:But either way, it's been a journey getting here, right? You've tried a couple times, and to no avail, schedules didn't align... And finally, shows swapped schedules, and here you are. How's it feel to make it to the first and final for you?
Colin Dean: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... I look a lot different; I've put on a little bit of weight since the last time I've put on a conference, and I don't have my signature top hat, which is really throwing people off...
Jerod Santo:Oh.
Adam Stacoviak:There's a signature top hat?
Jerod Santo:We didn't even know about the signature top hat.
Colin Dean:Yeah. If you go in the Changelog Slack, you'll see the picture of me and it. And I use that picture everywhere. People are always like "Oh, you're the top hat guy."
Adam Stacoviak: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've seen that Colin Dean. So you're that Colin Dean?
Colin Dean:I'm that Colin Dean.
Adam Stacoviak:Oh, my gosh! Do you see how this works in the world?
Jerod Santo:The real world is so weird... \[laughter\]
Colin Dean:It's weird to interact with people online, and then you meet them in-person...
Jerod Santo:Yeah, it is.
Colin Dean:The team that I worked on for work - I got moved on to in like early 2021... 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 prior to the pandemic. And then suddenly, I don't know, when it was it - October of last year, we all got together at the first place, and they were like "Colin, you're a lot taller than we thought..."
Jerod Santo:Yeah.
Colin Dean:I'm like "Yeah..." I had my hat on, and they're like "Oh, but the hat's real. That's how I knew you."
Adam Stacoviak:And it adds some interest too, I'm sure; at least to the assumption of the height. So why no top hat? What made you leave it at home?
Jerod Santo:Good question.
Colin Dean:I forgot it...
Adam Stacoviak:You forgot it?
Colin Dean: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, 10 minutes wait before the boarding.
Adam Stacoviak:No way... You're that kind of person?
Colin Dean:Yeah. Yeah.
Adam Stacoviak:Is that normal for you?
Colin Dean:\[00:35:51.02\] Pretty much. There are times -- if it's like 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 like a morning flight like mine -- not an early morning flight, but if it's a morning flight...
Adam Stacoviak:What time was your flight?
Colin Dean:It was like 10 o'clock.
Adam Stacoviak:Okay. I'd probably have been early for that one. What I also find cool about this story, going back to getting to Strange Loop 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 scheduled, it was just... Things. 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, so...
Colin Dean:I know, right?
Adam Stacoviak:So... First time to Strange Loop, first time meeting us... It's wild how that works.
Colin Dean:Yeah. And I have seen pictures of you guys, but it's always just been like your...
Adam Stacoviak:Avatars, yeah.
Colin Dean:...your avatars. And interacted a little bit, and... But yeah, it's always cool to meet people who are doing awesome content generation. You guys are a little bit of an inspiration for me continuing to do the stuff that I do.
Jerod Santo:Cool.
Colin Dean:I don't do podcasts, but Code & Supply records our meetups, and publishes them online for people to see... And you guys serve as an awesome model of how to do a podcast right.
Jerod Santo:Well, thank you.
Adam Stacoviak:We appreciate that, very much so.
Colin Dean:And several of them. I think I've listened to all of them... I can't remember the name of the one that Nadia did...
Jerod Santo:Request for Commits.
Colin Dean:Yeah, Request for Commits. That was like --
Adam Stacoviak:There's a big request for that to come back... I'm just kidding. There's no requests.
Colin Dean:I'm on the board of Homebrew, and one of the things that I always have to think about is "Okay, 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 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 how I approach trying to find ways to get people who are doing open source money. I used to be on the Gratipay staff, and trying to get people to just give money in that way...
Adam Stacoviak:Really?
Colin Dean:Yeah.
Adam Stacoviak:Wow, okay. More lines crossed over there. Chad Whitaker...
Colin Dean:Yup. \[unintelligible 00:38:24.18\] Pittsburgh.
Adam Stacoviak:Yeah, that's true. Pennsylvania, Pittsburgh area...
Colin Dean:Yeah.
Adam Stacoviak:So Request for Commits is still available to listen to, for those listening... Changelog.com/rfc. Is it still -- did we ever get rfc.fm?
Jerod Santo:I think we gave it up.
Adam Stacoviak:I think we did. It might still be there... I don't think it is though. That was a cool name. rfc.fm.
Jerod Santo:20 episodes...
Adam Stacoviak:Seinfeld right there. They seinfelded that one.
Jerod Santo:They did. Leave them wanting more...
Adam Stacoviak:They really did.
Jerod Santo:Well, Colin, thanks for listening all these years, thanks for --
Colin Dean:Yeah, sure.
Adam Stacoviak:He's that Colin Dean.
Jerod Santo:He's that Colin Dean. Top hat Colin Dean.
Colin Dean:Indeed.
Adam Stacoviak:Nice to meet you, man. Nice to see you face to face.
Colin Dean:Yeah, and hopefully when next I get to finally throw another conference in Pittsburgh, we'll get you guys up there.
Adam Stacoviak:We'll come, man. We'll be there.
Jerod Santo:I've never been.
Adam Stacoviak:Doing this.
Jerod Santo:Take me to the mansion. Take me to the river.
Adam Stacoviak:Nemacolin.
Jerod Santo:Take me to the river house.
Adam Stacoviak:\[unintelligible 00:39:20.14\]
Colin Dean:PyCon is next year and the following year, and then we'll see what happens after that.
Jerod Santo:Alright.
Colin Dean:We might do Uptime or Hartifacts in 2024.
Adam Stacoviak:Yes.
Jerod Santo:Cool.
Colin Dean:Cool. Thanks, guys.
Adam Stacoviak:That's it.
Colin Dean:That was cool. Thanks for the chat. **Break**: \[00:39:40.02\]
Taylor Troesh:Hello. I am Taylor Troesh, from good old taylor.town. I'd like to tell the story of my first Strange Loop, many, many years ago. This is my sixth or seventh. So this had to be like 2012, or something like that.
Jerod Santo:Okay.
Taylor Troesh:\[00:39:53.00\] So I got this Airbnb 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 was very scared, and nobody was texting me back, and I had nowhere to go. I'm totally alone. And so finally, finally, these guys say "Hey, are you in the Airbnb?" I was like "Yeah." They're like "Oh yeah, come on in. We're in here. 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. That's the guy that owns the Airbnb."
Jerod Santo:Okay...
Taylor Troesh:They look at me, and they're like "Do you want a drink? Here's a shot." He poured me a shot. I was like "What do you guys do?" He's like "I'm a regional manager for McDonald's." And the other guy's like "I own a car salesmen place", something like that. 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... This is 100% all true. I promise. This happened.
Jerod Santo:\[laughs\] Okay...
Taylor Troesh: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.
Jerod Santo:Yikes!
Taylor Troesh:So this was the situation. We have the Airbnb host passed out on the couch, we have these two guys that I'm talking to, and they're there kind of creepy... I'll get 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; 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. I wake up the next morning, because there was a motorcycle show outside... And so at 5am there was motorcycles lining up. Okay.
Adam Stacoviak:And they're loud.
Taylor Troesh:Okay, so I want to come back to the next night. These guys... I come back from Strange Loop, and all the girls have made up at this point. The wedding's back on.
Jerod Santo:Oh, wow.
Taylor Troesh: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, and we're all chatting... And the girls are like "Oh yeah, these guys say that they work in investment banking." I was like "Oh, that's not what they told me."
Jerod Santo:You outed them.
Taylor Troesh:Well, I was thinking this...
Adam Stacoviak:It was an internal thought.
Jerod Santo:Oh, you were thinking that. You didn't say that.
Taylor Troesh:Yeah, I'm thinking this.
Jerod Santo:Okay. It's a big difference.
Taylor Troesh:So then one of the girls pulls me aside and says "I'm uncomfortable. Can you escort me out?"
Adam Stacoviak:The girl they brought back, you mean?
Taylor Troesh:Yeah, the girls they brought back.
Adam Stacoviak:Oh, okay.
Taylor Troesh:So I essentially had to -- so I left with them, helped them get an Uber and stuff, and kind of kept the... It was just such a weird situation, because you can't say no \[unintelligible 00:43:14.29\]
Adam Stacoviak:And you took your stuff with you, or you had to go back and get your stuff?
Taylor Troesh: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, and I don't know what they're doing... And all they know is that I'm like trying to -- I'm in this weird position where they said "Hey, we're good..." But they didn't want them to leave.
Jerod Santo:Right. You took their girl and left...
Taylor Troesh:So I escorted them out, and I had to leave my stuff at the Airbnb. 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.
Jerod Santo:\[laughs\] And that was it.
Taylor Troesh:Like, that was such an unsatisfactory ending, but...
Adam Stacoviak:It could have been so bad.
Taylor Troesh:I think they were so drunk the night before, they didn't remember anything.
Jerod Santo:"We just lie a lot.
Taylor Troesh:So the moral of the story is, if you ever stay in St. Louis, the Grand Union Station Hotel is an amazing hotel to stay at.
Jerod Santo:\[00:44:07.14\] Hopefully the conference was good...
Taylor Troesh:Oh, the conference was amazing. \[laughter\] That's the story...
Jerod Santo:That's the ending point right there. That's his ending right there.
Adam Stacoviak:If you have to...
Taylor Troesh:I do have one more from last year.
Adam Stacoviak:See, he's got more. He's got more.
Taylor Troesh:A Strange Loop memory from last year. 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 I gave one to somebody, and he said "Oh, hey. Thank you. My daughter is gonna love this little hair clip. I'm gonna 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 says "Are you Taylor?" I'm like "Yeah." He's like "I've got some card tricks to show you." And so he started showing me card tricks. It was pretty good. And he's like "Yeah, I'm the magician that so-and-so sent after you." Again, he's like showing me tricks... 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...
Jerod Santo:What...?
Taylor Troesh:...like doing card tricks. And I think at this point they'd both exhausted their very comfortable tricks, and they keep on messing up. And it's just -- it's getting sloppier and sloppier, because they're going further into their repertoire in this magic-off...
Jerod Santo:\[laughs\]
Taylor Troesh:So I kind of am like "Hm... How do I get out of this?" Because I was stuck in the crossfire. So I said "So how long have you been into magic?" and he's like "Oh, I'm a microbiologist." \[laughter\] He's like "Magic is a new thing." I'm like "Oh, okay. This makes a lot more sense."
Jerod Santo:Oh, man...
Taylor Troesh:And that's another good \[unintelligible 00:46:04.19\]
Adam Stacoviak:Did you feel compelled to like keep watching, despite them messing up, and...?
Taylor Troesh:So the thing is, I'm a very bad magician myself, so I tried to enter the fray. I was not even worthy of being looked at in their eyes. I do coin magic, so it's way inferior to card magic.
Adam Stacoviak:I see.
Jerod Santo:I like this idea that there's an upper and lower echelon of magicians.
Taylor Troesh:Oh, yeah.
Adam Stacoviak:Oh there is, for sure.
Taylor Troesh:Yeah, card magic I think is near the top. The people with the rings... Those are the ringleaders.
Jerod Santo:It's kind of like the comedians that do ventriloquism, or any sort of props... They're just --
Taylor Troesh:Prop people are at the bottom.
Jerod Santo:So coin magic is bottom. Is that what you're saying?
Taylor Troesh:Coin magic I would say is near the bottom.
Jerod Santo:Who are you better than?
Taylor Troesh:Let's see... Who's lower than me? Oh, clowns, dude.
Jerod Santo:Clowns...
Taylor Troesh:Yes.
Jerod Santo:They're kind of at the bottom of comedy, too.
Taylor Troesh:They're at the top of comedy.
Adam Stacoviak:No way... Clowns?!
Taylor Troesh:They're at the top of comedy, but at the bottom of magic.
Jerod Santo:Okay...
Adam Stacoviak:I'm not sure I like your spectrum.
Break:\[00:47:22.10\]
Jerod Santo:Alright, well, we're here with Pokey Rule, the guy whose name I will never forget... It's a unique name.
Adam Stacoviak:Some of it is self-given, some of it inherited.
Pokey Rule:Yeah. Well, it was given to me by my parents, but I was quite young when I got it... But not unborn.
Jerod Santo:It's not on your birth certificate.
Pokey Rule:Not on my birth certificate.
Jerod Santo:Pokey, you're talking about.
Pokey Rule:Yup, Pokey.
Jerod Santo:Why do they call you that?
Pokey Rule:When I was a baby, I was really fat, so my parents called me Porky... And then they sent me to school, and obviously, their friends told them they couldn't call a little fat kid Porky, and so they did the only natural thing that two strange hippie parents would do and dropped the r. And here I am today.
Jerod Santo:I was gonna say, I thought that you slimmed down and they took the pork out... \[laughs\]
Pokey Rule:No, no, no, no... Yeah, yeah...
Adam Stacoviak:Did I bring up a wound at all...?
Pokey Rule:No, no. It's fine. It was years ago, I've recovered.
Jerod Santo:I mean, he literally goes by this name, so he probably talked to a lot of people about it.
Adam Stacoviak:That's true. You do wear it with somewhat honor, I guess. Is it honor you wear it with?
Pokey Rule:Yeah, I like it. I mean, I could have dropped it...
Jerod Santo:Yeah, he had the choice. It's his name.
Pokey Rule:Yeah, it was a choice. Yeah.
Jerod Santo:When I saw your talk title on the schedule, I was like "Cursorless. That's interesting." Spoken language, editing stuff... You're gonna have to tell us about it. But I was like "Okay, spoken language. That's cool for a podcast." And then I was like "Pokey Rule. Who is this person? I've gotta find pokey Rule." So we've found you, thankfully. We met you yesterday.
Adam Stacoviak:Sure did.
Jerod Santo:We wouldn't let you talk to us...
Adam Stacoviak:We were like "No! Go Away!"
Jerod Santo:...because we wanted to talk to you on these microphones, so...
Adam Stacoviak:"Don't waste tape!"
Jerod Santo:We're happy to have you here. You just finished your talk...
Pokey Rule:I did.
Jerod Santo:The pressure is off...
Pokey Rule:The pressure is off.
Jerod Santo:Tell us about Cursorless, because I didn't get much further than your talk title.
Pokey Rule:Yeah, no worries. So Cursorless is a spoken programming language for editing code in text.
Jerod Santo:Okay. Why editing and not writing?
Pokey Rule:Yeah, it's a good question. So because 90% of what you do when you are coding is editing. You copy and paste it off of a Stack Overflow, and then you edit it. Or like Copilot writes it and you edit it. Actual straightline coding is maybe five, ten percent. You find it somewhere else in your codebase, you copy it, and you change it. 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. But for the 90% of the time when I was editing code, it was really painful.
Jerod Santo:I see. So why did you start voice-coding in the first place?
Pokey Rule:So I had repetitive strain injury. So basically, I spent too much time hunched over a computer... And it was painful to use a keyboard. And so I tried all kinds of stuff. I hired a guy off TaskRabbit and I dictated him shortcuts, and that was pretty brutal... And then eventually started -- I found this amazing software called Talon Voice, which allows you to build custom grammars for whatever you want... There was a community grammar. I found some limitations and I built Cursorless on top of it.
Jerod Santo:So that's cool. So we talked to Josh -- was it Comeau a couple years back? He also did that -- he had RSI, and his was more like "Here's how I do it." I don't think he built anything on top, like you did with Cursorless, right?
Pokey Rule:No. No, no, no. Yeah.
Jerod Santo:But similar situation, I guess.
Pokey Rule:Yeah, exactly. Yeah. And his blog post is a great resource for people starting. It's like one of the type things that pops up when you search for voice coding.
Jerod Santo:Yeah. But you've taken it a whole step further. You're like "I'm gonna create a language around this."
Pokey Rule:That's right. Yeah.
Adam Stacoviak:Are you doing the pop sound, too?
Pokey Rule:I do, but mine is \[00:55:09.03\] Yeah. So instead of \[00:55:12.23\] which is -- I can't make that sound.
Jerod Santo:It's harder for you.
Pokey Rule:\[00:55:15.09\] That's what I do.
Adam Stacoviak:It might not translate so well in this somewhat loud room, but... You're popping.
Pokey Rule:Yeah. I hope you don't have a pop filter on this thing. \[laughter\]
Jerod Santo:"I can't write an E, because they keep pop-filtering my E."
Adam Stacoviak:Oh, my gosh... Get the pop filter away!
Jerod Santo:What's a typical command look -- or sound like, I guess?
Pokey Rule:Yeah, so an example is "Spike every func air past bat."
Jerod Santo:"Spike every func air past bat"?
Pokey Rule:Yeah.
Jerod Santo:I feel like we need to get a loop of that, and some great master beats behind it...
Adam Stacoviak:Do it again.
Pokey Rule:"Spike every func air past bat."
Jerod Santo:Do you make it musical on purpose, or is it just a side effect?
Pokey Rule:Yeah, the second time I did. Yeah.
Jerod Santo:That was good. Let's loop that sucker. Put a beat behind it. This could be a new form of music. Okay, so what does that do?
Pokey Rule:\[00:56:01.11\] Right. 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. So spike every func, air past bat. 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 in the bat functions, you probably are going to ask... So air, this is where we get into -- and this on a podcast is gonna be tough, but there's hats all over the little tokens on your screen. There's these 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 the word we use for a. And if there's a hat over a b, then we call that token bat. And so func air is the function which has a hat over an a somewhere in it, and func bat is the function that has a hat over a b somewhere in it. So that's spike every funk air past bat.
Jerod Santo:So do you have basically a codeword per letter?
Pokey Rule:Yup.
Jerod Santo:So this is a lot like CB radio stuff, right?
Pokey Rule:Yeah, exactly. Like the international, like, alpha, bravo, charlie, delta, that kind of thing?
Jerod Santo:Yeah, exactly.
Pokey Rule:Yeah. So it's like that, except that's way to slow. That's like two syllables per letter.
Jerod Santo:Because alpha is longer than air...
Pokey Rule:I have no time for that, right? If I'm coding all day --
Adam Stacoviak:It's challenging too, I would say... I mean, Lima, Victor, Mike... Well, Mike's not bad.
Pokey Rule:Mike's good. Mike I can -- yeah.
Jerod Santo:So a single syllable... Have you ever thought of going zero-syllabic?
Pokey Rule:I mean, so that's what the pops are.
Jerod Santo:Yeah, exactly. Even faster.
Pokey Rule:That's right.
Jerod Santo:So what do you map a pop to then? Space?
Pokey Rule:So pop doe two things. Pop wakes up Talon, which is the software that Cursorless is built on. 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. So if I said "spike every func air past bat" and I popped, it would do that again.
Jerod Santo:Okay. That's super-useful, I'm sure.
Pokey Rule:Yeah. And it's great, because you can make these kind of on-the-fly macros... Because a phrase can be like multiple commands in a row... 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.
Adam Stacoviak:So I guess since you had this injury, you don't have a lot of choice.
Pokey Rule:So at the time I started, I did not have a lot of choice.
Adam Stacoviak:You were sort of forced to figure out a way, if you wanted to keep programming.
Pokey Rule:Yeah, exactly. Exactly.
Adam Stacoviak:Is it any more mentally taxing to do this method of editing, not coding? Is it dramatically different? Does your voice get strained? Like, what other side effects come from having to speak your coding?
Pokey Rule:Totally. So initially, absolutely. There's a large mental load. And that's because -- I mean, you can kind of think of it as brain one, brain two... We have this more modern brain which can think intelligently about code. And it's our language center, and it does all this sort of stuff. And then there's our lizard brain, our brain one, which -- system one I think it's called in 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 two. So at the start, when you're trying to voice code, I have to remember, spike, every, func, like what are the words... And it leaves no space for actually thinking about code. 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.
Adam Stacoviak:Is it forgiving? I know when I talk to Siri -- this is my interpretation of how it might be to do this... Because when I talk to Siri - you know, I'm not the perfect speaking every single time. I might slur something, or I might whif something, and Jerod things I'm saying \[unintelligible 00:59:47.08\]
Jerod Santo:What happened earlier, yeah.
Adam Stacoviak:\[00:59:50.21\] Yeah. Like, is there room for error in your speech pattern? Do you have to be precise? How challenging is that?
Pokey Rule:Yeah. So I guess there's kind of two ways in which you could define forgiving. One is forgiving in how you enunciate, and the other is forgiving in what you say. So you could very clearly say a command that's not real. On the other hand, you could slur a perfectly normal command. And so there's sort of two questions there. And so in terms of is it forgiving with just slurring speech, speaking fast, but it's the right command - it has gotten much, much better. The recognition engine has gotten quite good, because it was trained on millions and millions of hours of speech, and it's gotten to the point where it's fairly accurate. In terms of is it forgiving if you just kind of like do something that's not quite right? Not at all. And that's a double-edged sword. The problem with Siri is you don't necessarily know what you are allowed to say. 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 gonna work.
Adam Stacoviak:So it just cancels it? It just ignores the --
Pokey Rule:If you're lucky, it cancels it. But oftentimes, what it'll do is it'll find the closest thing that sounds like it, and then, you know, your computer explodes. \[laughs\]
Adam Stacoviak:You're like "Oh, my gosh..."
Jerod Santo:What's your undo sound?
Pokey Rule:So if I'm in the middle of a command and it's going South, \[unintelligible 01:01:10.00\] Like you're calling a horse. And that'll cancel the in-flight command.
Jerod Santo:\[unintelligible 01:01:14.12\]
Pokey Rule:Yeah, exactly. So if I do that, that'll cancel it in-flight. If it's after it's already run, then I basically I say "Nope", and that's undo, and then I just pop to repeat the Undo.
Adam Stacoviak:Speaking of Nope, have you seen that movie? It's a good movie.
Pokey Rule:It's a great one. I love that one.
Adam Stacoviak: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 --
Pokey Rule:Totally.
Adam Stacoviak:There's times I'm talking to Siri, I'm like "This is going south." I just say "Cancel, cancel, cancel." For whatever reason, I've gotta say it three times. That's my thing.
Pokey Rule: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.
Adam Stacoviak:Okay...
Pokey Rule:Yeah. So you're onto something there.
Adam Stacoviak:I'm a maximizer, so I'll always add one more for the requirement, in most cases...
Pokey Rule:Okay. That might be too much... \[laughs\]
Adam Stacoviak:So yeah, cancel, cancel, cancel.
Pokey Rule:Yeah.
Jerod Santo:So do you still use this day to day then?
Pokey Rule:Yeah, yeah.
Jerod Santo:But optional. You don't have to.
Pokey Rule:Exactly. So I'm comfortable using a keyboard, I can. Occasionally, I will use a keyboard, if for whatever reason my voice is tired, or if -- maybe it's a superduper 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.
Adam Stacoviak:Yeah. I was watching two folks last night at the party sign, and they were like furiously signing. They were emotionally signing... And I was like "That is so cool, because they can communicate --" This has a loud space. 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.
Pokey Rule:100% And that's why I think every medium has its advantages and its disadvantages. 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?
Jerod Santo:Good point.
Pokey Rule:So they both have advantages.
Adam Stacoviak:I was thinking of something more dramatic, where maybe --
Pokey Rule:More dramatic than that...? \[laughs\]
Jerod Santo:I'm stuck on the Cheetos thing; this is a really good point. Go ahead.
Adam Stacoviak:Where you have to pull the kill switch. Like, somebody came to your house, and you need to wipe your drive, and you've got a command for that, or whatever...
Jerod Santo:Nope-nope. Click-click. Cancel-cancel.
Adam Stacoviak:They've got your hands tied up, and you're like "Oh no, I can't type!" \[laughter\] "Nope all the things!"
Pokey Rule:Yeah, nope it all.
Jerod Santo:Nope all the things. \[laughs\] That's awesome.
Adam Stacoviak:I don't have that. I can't do that.
Pokey Rule:You could though. You could install it.
Jerod Santo:More likely you've just got some Cheetos on your fingers though, and you don't want to touch the keyboard.
Pokey Rule:That's a more day to day, yeah.
Jerod Santo:I mean, I'll get in that situation. I won't have 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."
Pokey Rule:Exactly. That's exactly right.
Jerod Santo:\[01:04:05.16\] So is this like a meta thing that sits over the top of the OS? Is it an editor deal?
Pokey Rule:Yeah, so I would say 90% of the codebase lives in a Visual Studio Code extension.
Jerod Santo:Okay.
Pokey Rule:So that's where most of the real bulk of the logic is, is in that VS Code extension. But basically, just to give you the stack, there's Talon Voice, which is the engine that you define the grammar of "Here's what you're allowed to say. You can say spike", whatever etc. In Talon you can define any grammar you want, and you tell it "Look, these are the types 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, etc. 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.
Adam Stacoviak:That's interesting.
Jerod Santo:So does Cursorless then add like the top hats and stuff for you to see?
Pokey Rule:Exactly. So the VS Code extension will put those little hats on everything as well.
Jerod Santo:But if you want to interact either outside of VS Code, or even like with \[unintelligible 01:05:10.27\] system and stuff, that's all just Talon stuff, right?
Pokey Rule:So Talon itself -- in some sense, there's no command said that is baked into Talon. There is a community grammar, which pretty much everybody uses, and that does all that stuff. And so when you install Talon, it suggests to install the community grammar, to do things like controlling menus, and sending emails, Slack... Everything.
Jerod Santo:So does Cursorless replace that, or merge into it?
Pokey Rule:It emerges into it. Yeah, exactly. And so because Cursorless is really laser-focused on code editing, things like, for example, if I want -- the community repo has things like Camel, which is a formatter. So if I say "camel Hello World", that's gonna type out "Hello World." So if I wanted to change -- let's say I have a function call, like foo calling on argument is bar, and I want to change that foo to something else, call a different function, call Hello World. I could say "Change call e, camel hello, world." So that first command, "change call e", 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.
Jerod Santo:Makes sense.
Pokey Rule:So they integrate together, yes.
Jerod Santo:That's cool.
Jerod Santo:So in your talk, did you live demo, did you have any--
Pokey Rule: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.
Jerod Santo:Gotcha.
Pokey Rule: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 see all my coding sessions.
Jerod Santo:Alright, so you've got some stuff out on YouTube. I'm trying to see what people can watch, because the video will be out soon... And maybe you can get it out there by the time this episode goes out. So if people can watch your talk, they can go watch it - have you got other stuff on YouTube?
Pokey Rule:Exactly. They could watch the talk to get an overview of what it is, et cetera, learn all about it, get that visual to understand it, and then if they want to see what it looks like at speed, then they can check out my YouTube channel, and I have things to teach you, and then things where I just turn on the camera, eat some Cheetos and start coding.
Adam Stacoviak:Is it hard to pick up, like to adopt it? 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 any given developer?
Pokey Rule:Yeah, so it all translates to any given developer. But that being said, there is a learning curve, I'm not gonna lie. It's not like you just all of a sudden sit down and just like \[unintelligible 01:07:42.01\] It's a language you have to learn. But it took you a while to learn the keyboard too, right? So you do have to learn it, there is a learning curve, and it's also customizable. So you can change it and make it work for you if it doesn't really work well for you.
Jerod Santo:How does it work with like stall-outs? And we talked about slurring... But imagine if I'm looking at my code, and I say "Spike every line--" What did you say, spike what?
Pokey Rule:Spike every func air pass bat.
Jerod Santo:Spike every func, and then I look over here, it's the c, I gotta be like cat... Is it cat?
Pokey Rule:Yeah, let's call it cat.
Adam Stacoviak:Kitty.
Jerod Santo:No, tell me the right one. I don't wanna be wrong.
Pokey Rule:It's cap. You were pretty close.
Jerod Santo:\[01:08:19.04\] So I say cap, and then I'm like "Ehhhmmm..." and then I find an f, and I say...
Pokey Rule:Find.
Jerod Santo:Find.
Pokey Rule:Yeah.
Jerod Santo:So I cap...
Pokey Rule:Pass.
Jerod Santo:Cap pass -- see, I already screwed up. Now my computer's blowing up. Nope, nope, nope! Cancel, cancel. Cap pass find.
Pokey Rule:Yeah. Right.
Jerod Santo:And like, is it waiting for me to get to that?
Pokey Rule: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.
Jerod Santo:Gotcha.
Pokey Rule:So you can configure that. Mine is 400 milliseconds.
Adam Stacoviak:For sure. Okay, that's good.
Jerod Santo:Gotcha.
Pokey Rule:So it's kind of like if you're halfway through it and that's when you use that horse click sound, and cancel it out...
Jerod Santo:Right. Gotcha.
Pokey Rule:But yeah, no, it doesn't wait around for you. What you can do -- so people have other tricks. So there's this one buddy in Sweden who's like one of the core contributors, and he steals the trick that airplane pilots use. So he will be like "Chuck every func ehhhhh... Cap past ehhhh... Drum."
Jerod Santo:So he just like stalls it with a sound.
Pokey Rule:Yeah, because if you're like "Ehhhh" - there's what's called the voice activity detector. And as long as you're making that noise, it's like, you're still talking.
Jerod Santo:That's cool.
Pokey Rule:Yeah. And that doesn't get interpreted as a word, because it's just a noise. I'm pretty sure that's what airplane pilots do too, to hold the airspace. I think. That's what he tells me, so...
Jerod Santo:Okay.
Adam Stacoviak:Does he get confused later in life, and like he's talking to you, and he's thinking, and his eyeing when he's talking to you, but not the computer? Does it occur in his everyday speech?
Pokey Rule:No, this guy talks like nonstop. He's a machine. There's no pauses.
Jerod Santo:Well, I was wondering, a lot of us, we work to remove filler words from our language...
Adam Stacoviak:Yeah, and he's adding them.
Jerod Santo:He's adding them back in. I would use "like".
Pokey Rule:You can actually map a command to do nothing. So if you want it, you can map like to -- it's called skip, and...
Jerod Santo:I wouldn't want to, because then I'd say "like" way too many times.
Pokey Rule:That's true. But it is true, you do get bleedover. For example, I was like biking along a crowded canal towpath, so there's all these pedestrians I've gotta get around.
Adam Stacoviak:You're like "Spike, spike!"
Pokey Rule:So I'm a polite cyclist, so I keep saying "On your left! On your left!" And there was a part of my brain... I'd just been like on a marathon coding session. I go "On your left!" I get to the next one, and I want it to pop, to repeat it.
Jerod Santo:\[laughs\] You should have popped in there.
Pokey Rule:I was like "Why can't I do that?"
Jerod Santo:They're like "Why is this guy clicking at us, or popping at us?"
Pokey Rule:"What's wrong with this guy?" \[laughter\]
Adam Stacoviak:That's funny...
Jerod Santo:You'll end up on some gal's TikTok, where they dis guys who are hitting on them. Like "This guy is popping as he drives past us."
Adam Stacoviak:Well, speaking of TikTok, I have an idea.
Jerod Santo:Oh, let's hear it.
Adam Stacoviak:I think that TikTok is a prime place to blow up something like this. And I think if you took the idea that Jerod kind of gave you earlier, which was like do it in song, basically...
Pokey Rule:Okay, yeah.
Adam Stacoviak:If you can do some TikToks where you're like -- it sounds like you're doing it to a beat maybe even... One video is like "Guess what? I just coded." And the next one is like the screen of you -- I don't know, I'm like designing how you do it...
Pokey Rule:It sounds like music, and then it turns out...
Adam Stacoviak:You can use that as a virality thing, to be like -- because TikTok loves interesting.
Pokey Rule:I like that.
Adam Stacoviak:Strange and interesting. And this is Strange Loop, so why not, right?
Pokey Rule:That's not a bad idea. Yeah, so I gave a talk a few months ago, at like an art conference. Basically, I took some voice commands, and I just read them out as if it was poetry, and then I had the screen come up behind me, and like gradually faded, and show like all this stuff that was flying around. So this will be like TikTok bytes of that, but music. I like it. I like it. Do I have to pay royalties, or is that idea free?
Adam Stacoviak:A slight credit... "Hey, listen to my friends over here, on this podcast..."
Pokey Rule:Okay, I'll give you a shout-out.
Jerod Santo:I feel like him doing that loop to music - like, we kind of already own that, so...
Adam Stacoviak:Yeah.
Pokey Rule:Yeah, that's fair. Alright, we'll work something out.
Jerod Santo:Fractional penny, you know?
Pokey Rule:Yeah. \[laughs\]
Jerod Santo:Awesome. Anything else, Adam?
Adam Stacoviak:I'm clear. I love it, man.
Jerod Santo:I kind of want to try it.
Pokey Rule:Yeah, you should. It's Cursorless. Look it up.
Jerod Santo:Cursorless. I'll definitely check it out.
Adam Stacoviak:I'm definitely saying "Cancel, cancel, cancel", so I'm halfway there.
Pokey Rule:I mean, that's pretty much it. That's half the battle.
Jerod Santo:I'm gonna go home work on my clicks and my pops.
Adam Stacoviak:And your cats and your caps.
Pokey Rule:That's right.
Jerod Santo:Well, thanks for sharing that with us. Pretty cool.
Pokey Rule:Yeah, thank you so much for having me. Cool.
Jerod Santo:That was fun. \[01:12:38.26\] *I think it's okay for things to end, so... Big trees in a forest sort of compete for their trunk to sky, and all that corresponding life energy... And the big trees protect some young trees under the canopy, and when that big tree falls, the sky opens up, and those young trees raise up to fill it. I hope that Strange Loop can create space in your life and mine for other things to grow. So thank you for being here with us all these years \[unintelligible 01:13:06.10\] \[applause\]* *That is all we have for you. Now we enter the future, so please stick around and have a drink, and if you wanna get something signed, do that... And thank you so much.*