Jerod Santo
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?
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. 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.
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.
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...
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...
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
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...
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...
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...
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.
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.
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.
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...
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.
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...
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.
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?
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...
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.
Richard Feldman
Yeah, exactly.
Jerod Santo
Like Rocafella Records.
Richard Feldman
Yeah. It's a mythical bird.
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...
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.
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?
Adam Stacoviak
I appreciate you, man.
Nikolai Vasquez
I listen to you guys all the time...
Nikolai Vasquez
I love it.
Nikolai Vasquez
Great conversations.
Adam Stacoviak
Glad to get you on the mic then, man.
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?
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.
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...
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...
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..."
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.
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?
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...
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.
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
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...
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 --
Adam Stacoviak
He's that Colin Dean.
Jerod Santo
He's that Colin Dean. Top hat Colin Dean.
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.
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.
Colin Dean
We might do Uptime or Hartifacts in 2024.
Colin Dean
Cool. Thanks, guys.
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.
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."
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.
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.
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.
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...
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...
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."
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.
Jerod Santo
I like this idea that there's an upper and lower echelon of magicians.
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
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.
Adam Stacoviak
I'm not sure I like your spectrum.
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.
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.
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...
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"?
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?
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.
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 --
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.
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.
Jerod Santo
So do you still use this day to day then?
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?
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.
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.
Pokey Rule
So they integrate together, yes.
Jerod Santo
That's cool.
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.
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.
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...
Jerod Santo
Cap pass -- see, I already screwed up. Now my computer's blowing up. Nope, nope, nope! Cancel, cancel. Cap pass find.
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.
Pokey Rule
So you can configure that. Mine is 400 milliseconds.
Adam Stacoviak
For sure. Okay, that's good.
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.
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...
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...
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.
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...
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.
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.*