Episode notes
In the latest episode of Programming Throwdown, we delve into the captivating world of interactive fiction. We explore: Wordnet, Inform, and how games in the past have been the forerunners of today’s NLP challenges.
Chapters
Tap a chapter to play from there.
Transcript
Read the transcript · about 12,280 words, follows along as you listen
A:Programming Throwdown Episode 162: Interactive Fiction. Take it away, Patrick! I feel a little
B:Bad that we're doing interactive fiction in a non-interactive format, so we should release this episode as an interactive, interactive.
A:If you email us programmingthrowdown@gmail.com.
B:Very good. This is spoken from someone who participates in social media. All right, my opening topic is picking game difficulty settings. Jason and I were warming up in the what is in the green room, although it's neither green nor room, but we were warming up before the podcast, and we were talking about video games. There's some new video games coming out. People are really stoked for them. I was asking him if he was into it. He's like, 'Oh yeah.' I was like, 'Oh man, I can't get into them.' Specifically, there's a new Bethesda game—famously previous makers of Fallout—and I just can't get into Fallout games. I know, I want to. People tell me I should, and Jason gave me the revelation of like you got to set the difficulty setting correctly. And then I realized I think I have this thing where I just, you know, you start the game and it gives you your difficulty settings, and it's like, 'You know, Story Mode, Easy, Normal, whatever.' And I read the subtext, I'm like, 'Oh, I should go for Normal,' but I think I just need to realize I'm not a normal gamer and I just need to lower the difficulty settings.' I guess this was ingrained in me when games didn't have difficulty settings. You know, when you open Super Mario Bros., there's no like, 'What mode would you like to play on?' You just played on the difficulty setting. Well,
A:Yeah, because of that it became a benchmark for your talent. It's like have you seen World Seven? No, you haven't. You know only.
B:Because of the flute. Yeah.
A:That's right, the flute. But you're right, that's the temptation is to say like it's basically, you know, the game starts by asking you, 'Are you smart or not?' You're kind of like, 'Oh no, no. I mean, this is the worst way of looking at it.' Right? Oh, it's like you come into it and say, 'Well, yeah, I'm not a smart guy.' Yeah. I mean, I should clearly play this game on Hard, but no, that's not the right way of thinking about it.
B:So, so on this topic, I learned about a new World, briefly, that I've never played. And so I've never been an esports gamer other than like the three times I tried logging on to some multiplayer game and heard people significantly younger than me coming over the audio channels complaining about how bad I was and then getting booted within minutes of joining a server because I didn't know what to do, and I just persevered. Which game was this? I don't want to fess up. So but I did read an article briefly which was fascinating. It definitely wasn't a real life game because that would okay. Anyways, Diablo 4. There were live streamers in a race to sort of like max their character levels, be the first to like complete the game, and I guess the hardest setting in Diablo 4—I'm not super familiar—is you have permadeath. So if your character dies, that's like that's it. Like it wipes it from the game. Oh wow. And so if you cannot die even once while leveling up your character, getting to the hardest thing, completing the game, going through these dungeons, whatever, right? You
A:Imagine you have an internet hiccup or something. It's devastating.
B:So this is what happened. So the person I guess you're teeing it up very nicely. Something about and I don't—this is where it sort of starts to fall if I didn't care enough to read deeply. So I guess like the first 100 people to like beat it in this certain mode, we're going to be like carved into a statue in the headquarters of Blizzard. I think makes Diablo 4. Yeah, that's right. And so they're going to like engrave their names on a statue or whatever. And one of the things I didn't realize is exactly this. So the way the sort of like top runner, the front runner ended up dying is he had a brief internet glitch. He or she actually don't know. Oh, they had a brief internet glitch. And so in order to prevent people disconnecting when they got into a fight above their level, they instituted exactly what Jason alluded to: if you have an internet hiccup, not that your character—they will kill your character, not that your character could die in the game, but it will actually just kill it because they think you're trying to cheat.
A:Basically like intentionally. Yes. Oh no. So,
B:It's like anti-cheat measure. And so this is what happened. The guy had an internet—the person had an internet hiccup, and their you know front-running character they had spent many hours doing anyways bit the dust. Oh man, unbelievable.
A:You know our.
B:Hundreds of hours, dozens of hours. Yeah, it was.
A:Brutal. I mean, why is that any better than just letting your character stand there and get hit by the enemies? I mean, it seems like at least that way you have a chance of coming.
B:Back to reconnect. Yeah, I'm not sure. I mean, it's also a.
A:New game. So something about the game? Maybe disconnecting? Like there's some technical thing, but that is what can you imagine? You go into work, the first thing you see is a giant statue with ten usernames from the internet. But yeah, the difficulty. So, you know, I went into it when I was younger, thinking, yeah, the difficulty is really like an IQ test type thing. And I remember I played SimEarth on the Super Nintendo in like the year, like 1989 or something, or whenever it came out, '91 or something. And I remember they said, oh, if you can beat this The Modern Era level in SimEarth on Hard, then you know you're good enough to be like actually President? Like literally President. And you know, I was a really, really gullible child, so I actually believed it, and I spent countless hours. I finally beat it on Hard, and I actually felt like, okay, now I'm ready. You know, you know, I'm not born in this country. I'm born in Canada, but that's okay. I have my SimEarth high score, and I'm just gonna walk into the White House.
B:Jason ever gets a trip to the White House? I guess that's the question. He's gonna ask. So how long did it take you to be?
A:Oh yeah, but now, you know, and this could be just a natural cycle. And so maybe this advice doesn't apply to everybody, but I got to the point now where I say, you know, how can I maximize my fun? And if you know, in a lot of these Bethesda games what I find fun is exploring all the different ways that you can do things, like the ways you can manipulate the physics. And yeah, I have a character that has a big sword but also a little sword and a shield and fireballs and everything, and a bow and arrow. And so because of that, the way these Bethesda games work is if the less specialized you are, the harder the game is because the monsters are all specialized. And as you go through the game, you're just not leveling any one thing up high enough to take on these monsters. And so, you know, you have to compensate for that by not playing on really hard difficulty. And if and on the converse it's also true, like you could play on really hard difficulty, and if you focus on one thing, then you can have a much easier time. But now for me, the difficulty has been more like what is going to maximize the fun? Like I played this game called Terra Nil, which was a puzzle game. I started playing it on Normal, and I realized like I got through like 20 of the content in 15 minutes or something. Oh, I realized that okay, yeah, I need to play this on a harder difficulty otherwise I'm not gonna get my money's worth. But then for all the Bethesda games I tried on Hard and just got wrecked because I wasn't planning ahead with my character. So, so yeah, that's my best advice is really just tune the difficulty in the games where you have to pick the difficulty at the beginning. That's actually I think becoming kind of an anti-pattern in game design. You kind of force your hand a little bit too early. Yeah.
B:I could I could believe that. I think there's also the equivalent, I guess, would be where do you find yourself if you play Minecraft? I guess it's ubiquitous enough, like whether you allow yourself to go into Creative to kind of give yourself a little bit of a head start so you can play Survival mode enjoyably or are you like no, staunchly like I can only use Diamond materials that I actually mine from the bottom of the Earth. You know? Like they're like who who's to say one is right and one is wrong? Like yep.
A:Yep. I think it's the balance between like enjoying yourself in the moment versus having the satisfaction, you know, at the end, and so you're kind of trading off one for the.
B:Other. Well, cool. I'm gonna move into my first news article, and that is I oh, this is this is I gotta caveat this. This is a supposedly internal memo Google to Googlers about them having no AI moat, but neither does OpenAI. We've kind of referenced this before, but I'm putting this link in here. And it's just one particular analysis of this. But basically the upshot being here that you know a lot of people believe we're at sort of a pivot point for AI and these models, and there's sort of this race to get them all implemented and be first mover because in many cases historically with technology, the sort of like first to market, you know, gets a seat at the market share table. And that's really hard to overcome. And they sort of call this, you know, a moat. So if you think about people making cell phones today, it's those are moats because the volume at which they do so we hear about new laptop companies or cell phone companies every so often attempt to enter the market, but they sell so many less units that all the tooling costs. So if you buy an Apple product or a Google product, the unboxing experience, just the cost to like make that box—that way you need to buy, you know, 100,000 units, which if you're a startup that's really hard to sell that much hardware. And so there it's not clear yet for AI if people getting there first are going to have a moat and what kind of data may be necessary and who has that data? And if you sort of have a somebody coming and using your service and essentially giving you feedback and ratings against how you're doing, is that kind of first mover advantage going to prove to be a moat? And so this internal article one just an interesting analysis I think of how that the different moving pieces of AI. So there's the data, there's the feedback, there's the training, and how you do the training, but.
B:There's also having others do optimization on your models for you and in your frameworks and making them run on lower capacity devices. So if we look at and we've talked about a few of those on the show, but like OpenAI ChatGPT, but then others are approaching that level with significantly cheaper hardware. So they kind of had to figure it out, but now others can replicate on a single computer with much more limited data sets. And so this was sort of an internal memo, but I'm just using it as that sort of topic that is interesting to me from an economic standpoint to I don't know if this will be transformative in the way people are or whether this is like a sort of false start, local maxima, whatever kind of thing. I don't know yet, but no one knows. And it's kind of interesting to sit there and watch as big companies try to figure it out. Someone was noticing that, as an example, Bing deployed some OpenAI-powered chatbots, but then over time they've sort of gotten less useful as people have found like jailbreak escapes for like protections that were put in so that they wouldn't be racist or wouldn't be discriminatory or wouldn't be you know doing things they wouldn't want to. And people are finding like ways around it, so they keep limiting and limiting and limiting there. It's this sort of interesting exploration of the space as everyone attempts to figure out what matters, what doesn't matter, what economic incentives are there aren't there? How do we apply our deploy our resources against it? So it's sort of fascinating in an internal look potentially hopefully if that leak is true, but you know an internal look at how Google is thinking about that problem and orienting itself. Yeah.
A:That makes sense. I read that. I'm not sure if I believe it or not. I do think that you know getting customer feedback, you know turning that into more signal for the model and all that, you know you can build them out there, but yeah, I also am really curious. I think a lot of people sense just an enormous amount of uncertainty. I know I personally have been doing less Googling. For example, I recently decided where the whole team is going to go to a baseball game, so we're all going to meet in the same city because we're all spread out all over the country. We're all going to gather in the same city and go to a baseball game, and so I wanted to see if we could get a box office and what that costs per person and all that. So I actually went into Bard and I said, 'How much does a box office cost for the Pittsburgh Pirates?' You know, and it told me the answer. And this is the kind of thing where like even if it hallucinates—if it hallucinates too high, then I will not do the box office; it's not a big deal. I'll just get the group tickets. It doesn't really ruin my life, right? If it hallucinates too low, then I'll call the person at the box office and they'll tell me the right answer. Same thing. So it's not like it's going to ruin my life if it hallucinates, but you're right, but it like saved me from having to click on a link and then, you know, all of that like find the right link in the page.' And so that's just one example. I've definitely been doing a lot less Googling, I noticed.
B:That's interesting. So for those thought experiment questions, like how much does it cost to rent a private jet? Like, I know it's expensive, right? But like how expensive is it? Ten thousand dollars, a hundred thousand dollars? Like how is it billed? You're right, I wonder that. If it has enough ingested enough, it may be hard to Google because most of the time that you're gonna get sponsored links. And I mean, I've tried before because you're having that idle conversation which is like, 'How much does it cost to, you know, go to the ski town in a private jet?' And it's like, 'Get a quote.' I'm like, 'I don't want to quote. I'm not serious. I know I'm not going to pay for it, but I do want to know how much it is. Like, I'm curious.'
A:Well, Bard nailed it. So I ended up going the group ticket route, and but you know, the same page that sells the group ticket sells the box offices of course. They kind of watch you. They're trying to steer you into the box office, and it is basically right on like whatever Bard said was the right answer. I think it was basically around like 200 bucks a person.
B:With some minimum number of people, I assume, but yeah.
A:Yeah, you actually buy the whole box, but there's different sizes of boxes, right? But they all come out to about that. And so yeah, I mean, I think Bard will cannibalize the the whole—you know, not 100, of course, maybe not even 50, but even if it's 10. The other thing is, I feel like a lot of the people who are moving over to Bard now are the people who will click on the expensive ads. So that's another problem. So yeah, I do think they have a right to be scared, but I do think also that there is a moat if it's done correctly. One of the things that I was really interested in kind of adjacent to that is whether this is going to be a centralizing or decentralizing force. You know, I feel like recommender systems, which is what you know I mostly worked on, was a centralizing force. Like you have more personalization, you know, more about people and what they want, and you don't tell anyone that information; you just keep it in your own company, and so you could do a better and better and better job finding content for them. And so it's a centralizing force, but something like this could be a decentralizing force where, for example, every advertising studio in every city could be using the same ChatGPT, but it's so cheap that it's kind of like it becomes almost like a utility where ChatGPT makes a tiny bit of money, but the people making most of the money are just these, you know, advertising boutiques spread out across the world. And so it's kind of a decentralized value one day we'll look.
B:back and then we'll know the answer, and we'll either have been early impressions or very wrong. Well, yeah.
A:It can't be any worse than our Bitcoin episode. Nope, nope, nope.
B:Nope, nope.
A:Next topic. All right, my next news is Stable Diffusion QR codes. This blew my mind. I really don't quite understand how it works. I thought I knew how it worked, and then I read it and I realized I don't know how it worked. But what someone did is they made it so that you can have a QR code that is also like really artistically beautiful, like it's this like scene of a person standing over a mountain, and the actual bits of the QR code are almost unrecognizable because they've been surrounded by all this other content, and it just seems to flow seamlessly. So yeah, check out these QR codes; they're pretty cool. You know, check out on the show notes, get grab a link and take a look at them. It uses something called a ControlNet, which I haven't done research on, but my guess is you fix the actual pixels that need to be black and white. You fix those or at least some percent of them, and then you allow the rest of the image to be in-painted, and it looks really cool.
B:Yeah, so I too was like a little confused. But so Jason's right. It's basically you take like a QR code, which is very like binary, right? It's like black and white block pixels, large chunks. If you add enough error-correcting bits into it, then you basically like ignore that's a QR code and you paint a painting that happens to have light and dark splotches in approximately the right area, and you run it through a low-pass filter, right? You like get your phone far enough away. The idea is that like the light and dark and thresholding—that you can get it there now. It seemed the people were saying that only some percentage of them actually end up working. Like it's not a very controlled thing; you have to kind of experiment a bit. And then Jason and I were talking as well, which we forget is sort of I guess it's kind of like the hash collision attack that you could also do the same input or change parts of the URL that don't matter, like capitalize letters in the URL, which are ignored, like http big h little t t p. You know, little h big t little t. You know, sort of like scramble the inputs to get slightly different QR codes to try to find one that maybe works a little bit better. And so kind of an interesting thing, but I could—that's sort of very interesting to me that like imagine a graffiti artist like putting one up on the side of the building and getting close enough, and like you go to take a picture of it, you realize this picture it didn't even look like a QR code. It's also a QR code? Like, oh, it could be super cool. Oh man.
A:That is such a good idea. You know, and you could also take a QR reader library and do a closed loop thing where you generate the photo, you run it through maybe 10 QR reader libraries until all 10 of them find the URL, you generate another one. Just keep
B:trying keep tweaking really Cool. I think those kinds. Of like not like transformative uses, but also like you were kind of saying like it's just a matter of time and permutations. It's like what computers are really good at. Like let it just struggle trying like a human would give up. Oh, I painted this painting and it failed your like arbitrary benchmark. Screw you! Give me my money. But like a computer will just sit there and try for what, you know, a year? Like six months, whatever. Who cares? Like until you find a picture you like that passes your benchmarks. Oh, I have.
A:A bit of a spoiler if you've ever played this game, but there's this game called Chrono Trigger that came out in the '90s. It's like an RPG game, and there's this—you go back and forth through time, right? That's that's the Chrono part of the Chrono Trigger. And so there's this one part where I don't—I'm gonna get this wrong because it's been so long, but basically there's this desert, and the desert like somehow you feel like you need to like bring life to the desert. I don't remember why, but the way you do it is you have a robot who's like one of the characters in your party, and all the characters have like really interesting dynamic characters. They have good dialogue. And so what you figure out is to take the robot to the desert at the beginning of time and leave him there, and then go to the end of time, and he's like still curating the desert, except now it's like a—it's like a tropical forest or something, right? And it just—it just blew my mind. It's like, okay, now I realized like that whole, you know, as a child, it kind of like hit me. Then they're like, okay, you know, I just went forward in time, but the robot experienced like 10,000 years of transformation or something, you know? It's kind of like that you can just let a computer go and come back to it after it's painted, you know, 10 million images. It's kind of a weird thing.
B:My next topic is—I feel like maybe we've had this before, but it came up again, and ah, it's a good one. So I'm doing it again anyways: learning to make digital music, which is sort of like beats, I guess. I don't know how to describe electronic music. Anyways, this is learningmusic.ableton.com, which Ableton is a Digital Audio Workstation, a DAW. So this is like one of my lingering—I love watching YouTube's videos. I tried every so often. I'm terrible at it. But how like teaching the structure of music, right? So you have like the underlying beat, you have a melody, and the webpage is just really cool just to play around with because they have some little snippets of this DAW workflow in there. So, you know, a grid pattern where you have four bars, and then each row—so it kind of looks like a matrix, I guess. Like the top row is a hi-hat, the next row is a clap sound, the next row is a snare drum, the next row is a bass drum, and you're clicking in the squares and sort of programming how the drum track sounds. And then you have vertical bars to represent notes on a music staff, I guess, and then you know you're programming the melody, and it's sort of teaching you kind of like the components and the structures. I will say I did most of it, and it doesn't really teach you like good music; it just teaches you like the structure. So if you had a music in your head, you could learn how to put it into the computer, but I don't have the music in my head, so that part's a little bit missing. But yeah, definitely check it out. Yeah, super cool easy way to play around with, you know, show kids like it's very—I would say like an intuitive learning experience.
A:The same thing where like I don't understand how they came up with this pattern and why that sounds good. But yeah, this is I love stuff like.
B:This. So if you wanted to make mediocre to bad music, and you're me, this will teach you how to do it. Nice.
A:No, this is amazing. You definitely got to play with this. Yeah, I think this is great for kids too—very accessible. You just click on these boxes and it will add more like change the sound. Cool. All right, my next topic is GPT for all. There's probably a temporary name because I know OpenAI has been trying to sue anyone who has GPT in their name. Oh really? But GPT for all is a desktop application. You install it on your desktop, and it has a list of open-source chat engines, and so you pick an engine or pick multiple engines, and then now you have like a GPT on your desktop, and it's all local. Once you download the engine, you don't have to download anything else. And so I had a bunch of questions. One thing I noticed with the open-source ones is you have to kind of cheat a little bit. So instead of just saying like, 'You know who built the Eiffel Tower?' You actually have to say 'Question: Who built the Eiffel Tower' [new line] 'Answer: A:' and if you do that, then it knows. If you don't, then these language models will just go off the rails. We actually talked about this with Hagai in that episode, so if you missed the Generative AI Large Language Model episode that we just did, definitely go back and give that one a listen. But this is really, really cool. It runs totally on your desktop. It runs basically real-time like it's generating one or two words a minute, a second. And I really enjoyed this. I think if we could get it on a phone, that would be even better. I'm sure they're working on.
B:It. I saw as well some—so there's this tool for gluing together a lot of these things called LangChain. Do you know about this? Oh no, I haven't heard of that. Okay. So like somehow I ended up in my YouTube feed and I watched like a few videos about, and I keep getting random like how to make money by generating, you know, various like print-on-demand Amazon books using AI. Okay, so this LangChain is a way of doing the stuff that we've been talking about but gluing it all together. So you want to take text and run the embedding on it so that you can search a vector database. So you want to use OpenAI to do the embedding, you know, put in your token, and it'll help you. Now they're actually producing like I guess we would call them whizzy-wig or like non-coding ways of like just dragging connecting the boxes together. So if you wanted to like run multiple open-source generators and how would you combine them? And so there's little blocks, and you're dragging the blocks around. And so it—we've talked about before like if you want to ask a question like against a corpus, how do you ingest that corpus? So there's like ingestors. So like, 'Oh, I want all Hacker News articles and links and comments to go into something.' So if I'm searching for what's a good C++ tool to do debugging, right? Then like all the Hacker News corpus is in there. And so they have these blocks, and you can kind of just plop them down and connect them. Community is just moving super, super fast around like how to connect all these up, how to do this hybrid workflow in a way I've not really seen before where like, 'Oh, I might send my tokens up to, you know, OpenAI's tokenizer,' but then locally I may, you know, do this text parsing and the splitting, and this sort of cloud-local hybrid is really interesting to see evolving.
A:Yeah, totally. I know that they—there's also been a ton of work on trying to get these models to run on all sorts of different hardware and figuring out what concessions you can make. I was amazed to see the four-bit quantization. Whoa! You only have 16 values for each weight in the neural net after you're done training it, and that still works really, really well. So yeah, that—that blew my mind. Oh.
B:I see this. I'm gonna check this out later. Now that's I would not have assumed you could go that.
A:Low. Yeah, yeah, it's wild. Yeah, I wonder, you know, honestly, I feel like this gets back to the thing we talked about with a guy where there's just not enough data to satisfy these huge models. I almost wonder if maybe they could even do the quantization during training? It'd be even better. All right, time for Book of the Show. What's your Book of the Show? Patrick, mine is.
B:A graphic novel by an author I've recommended probably 75 percent of the time. But anyways, Brandon Sanderson and the graphic novel is White Sands. And in this sort of same universe as a lot of his other works, but actually interestingly, the graphic novel—so I have this, I read the graphic novel. It is good, but I did something which I had not done before, which is I've talked about before doing audiobooks. So, um, audiobooks of a graphic novel. A bit weird. Yeah, sure, I get it. But I did a specific which is like a visual audiobook. Oh, what is it called? And what it does is instead of just one single narrator sort of graphic audio—there we go—is the sort of like specific group that did this one. Rather than just a single narrator reading or like you know two narrators, they have like sound effects like, 'Oh, you know, so and so was walking across the sand.' Okay, I'm doing terrible quality art that's like the old radio era. Yes. And so they—they kind of did audiobooks for this novel, and I listened to it with my kids, and it was sort of like a little bit more immersive for them to kind of like hear the, you know, 'I'm walking across the desert and the wind is swirling,' and you know, you hear the sound of the wind. I some people probably find it really annoying, but also every character has their own voice actor doing it, so not just someone having a slightly different voice, but actually like it's a full cast does the whole thing. It's really cool, and this is the first time I've listened to—so the book was good, yes. But also this particular presentation style was pretty legit. I liked it, you know.
A:That you mention, there is no generative AI for sounds yet. Like you can't type in, you know, feet crunching on the ground and get an MP3, but if you could.
B:Get to it, man. Before the podcast comes out, you gotta hurry.
A:But you—I mean, imagine if you did that, then you could take old audiobooks and add sound effects to.
B:Them? What sound effects would get added to our podcast, Jason? No, I.
A:Mean snoring. A podcast? It would—who knows. It would be maybe we put a laugh track in every time.
B:We do our like Book of the Show. You would get some sort of jingle.
A:Yeah, that's right. But no, I think for things that are atmospheric, right? Like books that have world-building and stuff, that could be really neat. That'd be cool. My Book of the Show is a total—a bit of foreshadowing here. It is an interactive fiction book that I wrote, and so you can go to generativefiction.com and you can play this interactive fiction game. And we'll talk about it in the actual show, but you know, I've always wanted to make one of these. This is how I got into computers. My very first computer—my parents actually were in the classified ads. They had this—they had this really nerdy kid, and they didn't know what to do with him. And they were in the classified ads and saw this person was giving away—not giving away, they were selling a computer, so they contacted this person. It was this old gentleman. He said sure, you know, and so he actually came over to our house, like actually drove to our house with a Commodore 64, and he set it all up, and he showed me all these games that he had bought over the years and everything. And this one game had a hardcover manual, and I thought that was really interesting. So he was explaining how—yeah, you got it's actually a book you read. You literally read this 50-70 page hardcover book, and then the
A:last chapter of the book, like it's not over. It just switches to the video game. And so that's how I really got into pretty much everything. And so it's true, you read this book, you get to like Chapter whatever it is, and then it's the end of the chapter. It's like, okay, put in the first disc, and the game just picks up where the book left off, except now you can take actions and stuff. So it was really magical. And so you know, I thought I've always wanted to do this. It ended up being easier in some ways, harder in other ways, but I was able to pull off a little generative fiction book of my own. Very cool. Yeah, go ahead and folks can check it out, and also check out the show. You know, we love creating stuff for our audience, loving doing the Book of the Show. You know, if you want to support the show and all the work that we do, you can support us on Patreon, go to patreon.com/programmingthrowdown. And with that, it's time for Tool of the Show. My Tool of the Show is Gatsby.js. If you go to programmingthrowdown.com, you'll see it looks totally different. That's because I rewrote it, and so I used Gatsby for that. Gatsby is really interesting. I've been wanting to build something with it for a long time. And the way it works is it has a series of data sources, and what it will do is it will automatically generate a GraphQL API for your data sources. But all of this happens at compile time. So like when you say, 'Gatsby build,' it does a bunch of stuff, and at the end you just get some static HTML and JavaScript. But what
A:it does is it actually, when you say Gatsby build, it starts up a server, a GraphQL server. It connects that server to all your data, which could be, you know, JSON files in your computer. It could be like a database. It could be a content management service, which is something we should talk about another show, but you know, it connects to all of these things and then it says, 'Okay, I'm ready. You know, ask me questions about like your site.' And then it starts going through all of your .html and .js files and getting queries out of those files, executing those queries, and then putting the data in. So for example, you know, I have a JavaScript file which is like (parentheses episode close parentheses there's like (parentheses like show dot episode close parentheses) dot js. Like that's the name of the file, and it's kind of a weird name of a file, but Gatsby uses the file name to figure out like what should go there. And because it has the parentheses, you're telling Gatsby there's going to be actually a lot of these. So like I want you to run this query like show dot episode, and if you get back 100 results, I actually want 100 web pages, and Gatsby will do all of this for you. And what you end up with at the end is this static site that you can put on GitHub. You can host it on S3, your Amazon storage. You know, it doesn't need a server at that point. It just needs a way to transfer these files to your browser. So yeah, I was really impressed by it. It even has a search, so you can go to programmingthrowdown.com and you can search for C++ or Java or whatever you want, and you'll get all the episodes where we talk about these things.
A:And that entire search is running in your browser. Like the search engine, entire search database is downloaded to your browser when you do a search. Really amazing technology. I was really satisfied by it, and I would recommend if you're building a site like that, definitely start with Gatsby. I was really impressed. I think Next.js is what I use to build the Fortuna site, and that's because that needs to be a lot more client-server. So you know, Gatsby is not for everything, but if you need just a static website, I was super impressed by what it does. Very.
B:Cool. My Tool of the Show is a game continuing my long-standing tradition of wasting everyone's time. And this game is Paglin. Paglin is available on PC, Android, and iOS. I think on iOS, which is how I was playing it. It's free to download and get effectively a demo. And then if you want to play more levels, then I believe it was like nine dollars, which is a little expensive for a game, but I think the normal default price on Steam is like 20. So the mobile discount, I guess. And this game is a play on like Pachinko and a roguelike, which is a crazy combination. Okay, what is Pachinko?
A:Have to explain this.
B:Pachinko is a Japanese game where metal marbles fall in the top, and there are various pegs or like spinners. So kind of like a pinball machine except you can't push the pinballs back up, so they sort of bounce around and fall down through various obstacles. And so you have some your sort of ball bearings that go in through the top. You can control sort of the angle they come in at—they're sort of like an angle selection. And then there are various types, which is the roguelike element. So they have various stats, and then you have enemies coming at you, and so you need to launch into blocks that are on the screen, which you will bounce around the screen and off of and eventually off the bottom of the screen. And each kind of block you hit and the kind of ball you're launching—the combination gives you sort of your attack or a healing ability or whatever. And as you progress through sort of like the roguelike card games, you can acquire new—I don't remember what they call them—stones, new things that you launch that have different stats where you can upgrade them to get better stats. And then the enemies are coming at you, and it's again like a roguelike. So eventually if you're not able to defeat the enemy before it gets to you, they'll kill you, and then you lose; you're going to start over.
A:But each time you start, you have like a little bit more of a head start until you can.
B:Win. Yeah, this is basically the progression, the sort of standard formula there, but seeing it applied to that style of game was a new one for me. So I've been playing that and enjoying it. That looks awesome. I used to love.
A:Bust a Move, which is similar idea, similar. Yeah, yeah, same kind of vein. Yeah, actually that's the one game that my wife and I will play together, and she's not a gamer at all, but she loves like Tetris. Does she beat you to Move in these games? We're pretty evenly matched. Okay, evenly matched. Yeah, she's—it's interesting because in that game one of us will get on a roll and just like the whole night just be like winning every almost every single game, but it's sometimes she's on a roll, sometimes I'm on a roll. It just kind of maybe depends on like whether you're in the zone or not, I guess.
B:Do you keep track of your like Elo rating and like see you know?
A:Infinity or divide by zero? It doesn't work.
B:With all two people, I guess. Yeah.
A:All right, on to the topic. So Patrick, you have never played interactive fiction?
B:Oh, you confessed my dirty secret. I played the first 30 seconds of Hitchhiker's Guide to the Galaxy Interactive Fiction, or the first five minutes, and got immediately confused and sort of bombed my way out.
A:Yeah, that's you know, that's a really good point. I think a lot of the early interactive fiction, you know, was very frustrating. Like you kind of—so there was a lot of bad design patterns in a lot of interactive fiction games. I think they've gotten better over the years, like anything, but they definitely suffered from that. You know, one of the biggest anti-patterns in my opinion from interactive fiction is in a lot of them they wanted you to kind of—it's hard to generate the content, right? Because you have to write the room descriptions. You have to see, you have to think about anticipating all the things a person could do in that room and like write answers for all of those things. So let me let me kind of walk it back.
A:So interactive fiction is basically a text-based game. You write text to kind of you know advance the story or have your agent you know do things, and in exchange you get you know text feedback. And so for example, you can type 'look,' and you'll get a description of the room. You can type 'go north' or 'open the door' or 'pick up the torch,' and your character will kind of do these things. And so as you can imagine, this is extremely open-ended, right? I mean, think about Minecraft. In Minecraft, you can go left, you know, forward, backwards, right? You have an interact key that does all your interactions, and then you have kill, right? So that's basically—I mean, I know it's there's a lot of emergent behavior there, but on the surface, the action space is relatively small. In this case, you can type anything. Like the game is supposed to let you type just about anything, and even though they try to guide you a certain way and there's usually a help screen in the beginning that kind of gives you a list of suggested actions and a way to structure your inputs, it's still like extremely wide surface area. And so because of that generating content is really time-consuming and hard on disk space and all of that. And because of that they would often kill your character and make you start over. And so I don't know, I never played Hitchhiker's Guide, but in a lot of these games you would you know take some actions. You would try something. There was one game called Amnesia, and you wake up, and the first thing you might want to do is walk out of the room. So you type like 'open door,' 'walk out of the door,' and someone just comes and kills you.
A:It's like, okay. Yeah, that didn't work, so you start over again. So you realize, okay, you know I can't just walk out the door; I have to jump out the window or what have you? Um, and you might get further along, and then some someone kills you. You have to start over. I think that the starting over um just ruined it for a lot of people like that. That caused a lot of people not to be playing. Is that what happened to you, Patrick?
B:Was it different? Yeah, I think this is thing you're saying. It's like maybe I should just like read the strategy guide or something a little bit more, but I try not to to not spoil it. But then I don't know. It's like what are the verbs that I can use? Like, you know, I'm playing some game like Talk. No, you can't talk. There's no one to talk to. Like, you know, okay. Well, I don't understand what I'm supposed to do. Like there's sort of something expected of me, but I'm not sure like what is expected. Or it's sort of like you were describing Minecraft. Like what is the point? Like I'm not clear that there's not a like overarching push for me to do a very specific thing. And so I think I just needed to wrap my brain. I was expecting an experience more like, you know, Donkey Kong Country or Super Mario. It's like the game is scrolling left to right. It's very clear, you know what I need to do. And here it was not. It's, you know, three-dimensional time, so I guess four-dimensional. And like it's not clear how I'm supposed to proceed through the world or what order. Or oh, I'm here and I clearly need a key, but I don't know where the key is, so I need to go try every room scouring it for a key. I I don't know. Then I always sort of bail when there's like some grinding aspect.
A:Yeah, yep, that makes sense. I think you know Colossal Cave is one example of that where you pretty much can't, you know, make progress in that game without literally drawing your own map or nowadays downloading it from the internet. And I just wasn't ready to like buy grid paper and start, you know, mapping out the game by hand. So it just I never made it very far in that game. But yeah, I think the way the way that these games work always really fascinated me. Um as a as a really young child, I actually, you know, I was pretty sure that there wasn't a human like there wasn't a human like on the other end like typing these answers, but but I had no idea like how it was possible. And what I thought was as a child, I thought that somebody just, you know, thought about everything anyone could say and just put, you know, hundreds of thousands of hours into the game. Um But what I found out later was that, you know, there's a lot of Natural Language Processing and like statistical tricks that people can play that kind of guide you in a certain direction where it feels like you're doing anything you want, but you're really not. It's kind of just slowly coercing you to do something specific, I think.
B:For that one, the one that uh I guess like the modern equivalent is, you ever play the game Scribble Knots? Oh yeah, the game is great. So so Scribble Knot it's a game where you're supposed to like get through a level, but you can just type in words and sort of like summon whatever you're looking for. And so at first it's sort of confusing. Like you can type in a crazy amount of words, but once you sort of like start pushing the limits out of it, it turns out like many of the words we have map to sort of like some foundational object. So like Jason's saying like Natural Language Processing. So how many different kinds of cats can you name? You can probably name whatever 20 different kinds of cats, but they're all going to collapse down to a generic looking cat that while not expressing what you said gets you close enough for a cartoonish game where you're satisfied with it. So yeah, you may be able to name 10,000 objects, but in practice maybe there's only like, you know, a few hundred that the sort of programmer needs to account for, which is still a large number, but much better because, you know, a lot of them are variations on a common theme or have a mapping to each other or just a size difference. Right? You can name 10 kinds of whales, but I could make one generic whale and then just make it slightly different sizes, and you'll be satisfied.
A:Yep, yeah, exactly. I mean, a couple other things is is one is um text is extremely tiny like uh um like maybe the Whole dictionary can fit in two photos or something. I mean, I'm trying to figure out if I got that right in terms of scale, right? But let's say how many characters you think a dictionary is? Maybe that's a good question. Let's say a dictionary is like 800 pages or so and so maybe that's like 16,000 characters, and so that's like not even a piece of an image. Like a tiny piece of an image, right? Um so while Patrick looks that up. Yeah, I mean you can fit an insane amount of text on a floppy disk, you know, or a CD, right? Even way more text you'd ever read. And so, you know, especially, you know, in the 80s and the 90s it just felt like these worlds were absolutely enormous um because they were all in text. And so the the way a lot of these things worked is there is a uh open source thing called WordNet. WordNet is really fascinating. It's a tree of all the words, all the nouns on the planet, right? So oh wow! So the root of everything in WordNet is entity. Like literally everything is an entity. Um and then I think at that point it's either an abstraction or an artifact, I think is the next level, but but basically like you can put in any word you want—Narwhal or Tiger or Couch or anything—and and it will be a node. If it's a noun, it will be a node in this tree. And then there's VerbNet which is more or less the same thing for verbs. And so, you know, as Patrick was saying with Scribble Knots, you know, you might in your description in your text adventure you might say something like, uh, you know, there's a statue of a whale on the table. And the programmer who programs it, they'll look at WordNet and they'll say, okay, a whale is this type of like aquatic animal which is a fish which is an animal which is an entity or whatever. And they might say, okay, I'm just gonna pick 'animal.' So if the person says 'pick up the animal' or 'pick up the whale' or even 'pick up the lion,' it'll pick up the statue of the whale because they made it that generic, right? And so you might the game might tell you there's a statue of a Narwhal, but if you say 'pick up the fish,' it'll still pick it up. And so that trickery there is what makes things feel so open-ended and magical. Like you can say 'go north' or 'walk north' or 'move north' or 'travel north,' and without a lot of work, the programmer can make all of those kind of
B:collapse to the same concept. So the Oxford English Dictionary is 350 million characters. So that's
A:It's like 350
B:Megabytes, right? Yeah. So what is
A:that in terms like mega is a megapixel the same as a mega? I don't really know how to relate. Oh dude, we're
B:gonna get trouble, but it's 350
A:megabytes. It's basically like 100 photos, but
B:WordNet, which we're talking about, is only 16 megabytes. Yeah, so because you don't need to keep like how much of the Oxford English Dictionary is redundant, though, right? Like if you were to compress it so like these words aren't
A:defined in WordNet. They're only defined in relation to each
B:other. They're just relationally connected. Yeah, so it could actually be even more compact, and that says I mean, I don't know. It looked like it started in the '80s and it hasn't been updated in a few years, about 10 years. But yeah, so it's 16 megabytes. So even if you took a small skim off of, you know, just some fraction of them, you could easily fit this in a—in a sort of game a long time ago.
A:Yeah, exactly. And you could also, in post-processing, you could eliminate all the words that didn't actually show up in your game or
B:Something? Oh, that's true. Yeah, but
A:Yeah, so I—you know, it's a combination of the fact that TEX is so cheap and you know some of these foundational technologies being around even in the '80s that that made text adventures just really magical. I mean, I remember thinking that I could just say anything and and just mapped it to something that was at least directionally, you know, kind of in line with what I—with what I wanted these characters to reply with. And so I remember just really falling in love with these with these games and playing a ton of them. Um yeah, I mean there was actually a lot of adult content, not like triple-X content, right? Oh, okay. All these games are like smoking and drinking or you would get shot or whatever, but fortunately my parents would just let me buy just about anything. So so uh so yeah, it was uh it was pretty wild, but it was a ton of fun, and you know highly recommend going back if you were to go back and play text adventures. Now definitely check out the IFDB Interactive Fiction Database. Um they have kind of like best games of all time, you know? Most of these games you can play on the internet for free now. I guess if I had to pick one, I would suggest folks play Fatopia, which is an awesome game. It's very linear, which is good for beginners, right? Oh, for me? Yeah, let's
A:go. Yeah, for Bad. Yeah, any good, actually. I think in the beginning of the description, like at the top of the description in bold, it just tells you exactly what you're supposed to be doing, you know, at a high level, like get off the island or like explore the ship or something. Um and so you know, it's very linear. It's linear as from a gameplay perspective, but you're actually moving around in time, so the story is very interesting. It's an extremely touching story, like it's very—it has an extremely tragic ending that will bring you to tears. It's a very heart-wrenching story. You could beat the whole thing in like three hours, maybe maybe even less. So there's uh yeah, it's not gonna be a huge time sink. They have it on the phone and everything. It's it's like the most popular interactive fiction game, so it probably has dedicated apps and everything. All right.
B:I'm gonna make it homework to go try this one out, and so that
A:way I can try out Fatopia. It is deep, and so actually another shameless plug while we're doing shameless plugs, I created a website visual-if.com where I took the game Fatopia and I ran it against a really old old old version of Dolly. This is before back when like I was one of very few people who could use Dolly way before they announced it just through connections. I rendered a ton of content, but I'm actually—I need to go back and redo it all with the latest Dolly because it would be a million times better. Um but you can go there and while you're playing the game, it's rendering photos of the game, which is uh I think something that we should be trying to do with all
B:of these games. So we talked about like reducing the words or using ontologies to kind of like map and understand what you're attempting to do, but I think the other thing that uh from my reading about a lot of these is sure you Jason was talking about like looking up online what the mazes and sort of drawing it out. But I mean since I don't even know how long like maze generation has been a form of what I'll call procedural generation, that a lot of these games could use. So now if you go to play the game and you have rules for, you know, I need one way in, one way out, I want these kinds of rooms to be done, then you can write a procedure for generating these on the fly, and then every time you play it's going to end up being a little bit different. And I think procedural generation is something like we already referenced, sort of Minecraft and others that continues to be very very popular today, and we'll probably have a whole show to talk about various ways of doing procedural generation, but it's interesting to me to think like I when I think about writing a maze generator, which I feel like people get introduced to pretty early when they do computer science, you always think about it in the sort of visual representation. But here you could make a maze with no visual representation and instead you're literally text-based sort of attempting to move through the maze. I guess if you wanted to be arbitrarily brutal with a difficulty setting, you could make a very complicated maze that the person is attempting to get through via description, right?
A:And with text it doesn't even have to be Euclidean. Like you could have no spaces, and trust me, I've seen some painful interactive fiction games where
B:Is that a thing like Portal? Like you know folded spaces? No. Oh no. Yeah, I
A:I mean, like there's some of these games and it's not even—it's kind of just bad design. Like for example, you might go east and then go up and then go down, and you kind of think that if you went west, you'd be back where you started, but just the way the game was going down actually also moved you west. So you just—there's just all these like weird non-Euclidean things to a lot of these games. Yeah, one-way doors and everything. So it can get pretty gnarly, and that's where playtesting. You can't get away from playtesting, especially with text-based games. But yeah, I think the procedural—like actually, you know, Amnesia is a good example where eventually you will find a way to leave your hotel without getting shot. You already told us; you already spoiled it. Yeah, yeah, spoiler: you won't get shot in the first five minutes, but it takes you like for an hour to figure it out. Like you have to—there's one point in the game where, where, yeah, you walk out, you get shot, and it's like, 'Okay, I figured out how to not get shot.' Oh, but I forgot to put clothes on, and they didn't tell me until it was too late. And so now I get arrested for being naked, and then the game's over.' Of course, it was—you know, a mess as far as game design is concerned. But if you could make it out onto the streets, and you're in Manhattan, if you can make it out onto the streets of Manhattan safely, you literally had all of Manhattan, and like all the most popular buildings were on the right street, and you could go to any street, and the streets connected the same way they do in Manhattan. And they put the entire city there on a floppy disk, which was just absolutely remarkable. And as you said, I think it was almost all the descriptions were kind of like pieced together on the fly. Like there wasn't a fixed description of
A:every intersection. It was all just composed of a bunch of facts that they joined together on demand.
B:I feel like there's always a relationship between interactive fiction and—I've never done them, but tabletop RPGs where, like, yeah, you know the Dungeon Master sort of has a description of the dungeon, and you're moving through it, which is cool. But the thing that has always fascinated me is some of them; it becomes like a cooperative storytelling. Like we are collaboratively deciding what. And you get—oh, like you're kind of saying, 'Almost do anything you want.' Like, 'I want to get an airplane and go to Hawaii and just take a vacation for a week.' Okay, well, what does that do to the world? Right? And rather than, 'A pre-can you got to do it my way,' it's—there's not even necessarily a clear destination. I've never been able to kind of play a game like that, but I always thought it would be really cool to kind of get into this storytelling mode where it's not a protagonist/antagonist relationship; it's just sort of like I'm choosing to do something, and then you're riffing off of the thing. And so it's a very improv style, and I feel like interactive fiction attempts to kind of get a part of the way there. And with some of these tools we've been talking about, like procedural generation and AI, it feels like you could ultimately get to this where like the game could just be whatever you want. You just one game, and the game is just—you know, whatever you want it to be, whatever play style you're playing. And maybe there's some still game elements to make it a game, but it even maybe loses that distinction a bit because you're just fishing off the coast of, you know, Bermuda for reasons, and you have a whole career as a fisherman now, and it becomes a fishing simulator, and you know someone else is playing something completely different.
A:Yeah, you know, I also never played tabletop, but I've heard just fantastic stories from friends who have played it. The one that comes to mind: Someone said that they were—they were trapped in like a jungle and they were surrounded by lions or monsters or something, and someone had figured out that he could cast his icicle spell on a tree, and instead of trying to like injure someone with the icicle spell, which is what you know the game is designed around, instead they just cast it on a tree, hit the tree with an icicle, and then put a bucket under the icicle so that they all could drink so that they could survive in the wilderness. It's like that kind of—like, you know, just human ingenuity. It's—I think that's why it requires a human Dungeon Master, but maybe again with all this generative AI, maybe there's something that people could do there, like that programmers could do there.
B:I feel like we're getting into some—some description of a metaverse. I feel like there's gonna—there's a—there's a—there's a side rabbit trail here, but I think we'll just leave that one aside.
A:For now. Yeah, it's so true. Yeah, that's—it's wild, but I think you know definitely take some time to check out IFTB and check out Photopia if you want to make an interactive fiction, there's a bunch of tools to help you do it. In the case of Fortuna, the thing that I talked about in the tool this show, you know, I wanted to integrate ChatGPT, and so I had to basically write the parser by hand. Yeah, that took a lot of time. I mean, I have a background in AI and all that, so it was—it was not too bad, but I wouldn't really recommend that to folks. There are a bunch of amazing tools out there for generating text-based games, and one of the most common is called Inform. So Inform was, I believe it was the tool that one of these companies that made a ton of these games used Inform, and then eventually Inform became a tool that you could buy, and then it became a tool that you could use for free, and then now I think it's even open source. But Inform is really interesting. You actually create the game; the source code of your game is English. So your game source code is like, 'There is a room. Here's the description of the room. There's a torch in the room. You can pick up the torch. There's a chest in the room. The chest is openable. The chest has its own inventory.' Like you literally say those words, and then that's the source code of the game. And so that by itself—I mean, maybe that deserves a whole show on; like it's like prose source code. But but that's fascinating, you know? It's worth trying to make a game in Inform just because of the whole experience there. Wow.
B:This is crazy. I—I'm looking at it now, and so they're giving an example of how you would describe a room. So I'm just going to read this one from their page: 'East of the garden is the gazebo. Above is the treehouse. A billiards table is in the gazebo. On it is a trophy cup. A starting pistol is in the cup. In the treehouse is a container called a cardboard box.' That's crazy that like, yeah, it's almost like you're writing how you would play an interactive fiction game to make an interactive fiction game.
A:Yeah, exactly. Yeah, it's—it's totally mind-blowing. It's the kind of thing where, you know, it is kind of restrictive. Like, you know, it wasn't clear to me how to like integrate that with ChatGPT. You know, it's not like, but it's really interesting. It's a great way for people to get started just building anything on the computer. If you're looking for something that's more traditional, there's also TADS Text Adventure Development System, that's more of like a traditional programming language where you kind of assign properties to things, and there's probably like JSON or YAML, or there's some—there's some file that describes the different objects and everything. But yeah, there's a lot of really good content, you know. And then as far as designing a good interactive fiction game, I want to recommend Emily Short's blog. She has a fantastic blog on how to design it, how to keep people motivated, you know, what's a good way to start a game like that? So, like Amnesia is an example of a bad way to start a game because it's like 'Open the door, you died.' You know, so it's—you need to kind of start with something that's very guided where people, you know, you kind of give
A:all the right hints for someone to do X, and they do X, and you pat them on the head and say, 'Good job.' But just to make sure people could do the basic concepts and then start moving into trying to assemble intuition so that if you're following things right, if you're observant, you could go through the whole game without dying. And when you die, you find out, 'Okay, you know, I actually should have seen that coming.' And so, you know, she and other game designers are really good at kind of explaining how to do that properly. So yeah, a bunch of great resources. You highly recommend people give it a shot; it's really fun. And I think, you know, this is an area that's ripe for generative AI. I mean, I took a crack at it with my thing, but I think in general having this sort of generative AI that can sort of weave itself into the story is something that is going to profoundly change these text-based games. Like I think it might even bring a second life to them, but if not, at least it's going to be extremely transformative to them because, you know, for example, you might say, 'Oh, the bricks are really mossy,' when you're writing the description of some cave, and you're just—you know, filling in content. You don't really want the player to care a lot about the bricks. You're just—you know, continuing to build the atmosphere, world-building.' Yeah.
A:World building. That's right, but your player doesn't have your brain, right? And so they might think, 'Oh, there's something to that,' and they might want to look at the bricks. And so, you know, if you say something like, 'Oh, the bricks aren't here,' or like, 'There's nothing interesting about that,' like a generic answer, then it kind of gets a little frustrating. Um and so here you have the potential to like have an AI describe anything, and it's really going to change this field in a huge, huge way. Even, you know, adjacent things, like we talked about Bethesda games. Like imagine Skyrim, but you could just say anything you want to the NPCs, and they will answer—you know—in an atmospheric way. I think there's just something incredibly powerful there. Well.
B:I learned a lot today about interactive fiction as a genre that I've always heard about but never done. So, so I've got my homework to go play—go play for anybody. I gotta open up in a tab already. So apparently, I'm gonna cry at the end. So I'm not sure I'm ready for that, but like we're going here. We're going to go.
A:Yeah, I mean, I don't consider myself a particularly sentimental person, but I when it comes to movies or games or something where there's something tragic, I guess I'm a sucker for being sad at tragic things or something. I don't know exactly how to describe that, but even like if they start playing the song, like if a main character is going to get injured or die or something, you just get that song that starts playing. You know, like the most nearest example is when Luke Skywalker—you know, old Luke Sky—well, am I gonna spoil something important anyways? Basically, Luke Skywalker sacrifices his life in one of the Star Wars movies, and I started tearing up. Like, I'm just a sucker for that stuff, I guess. So you might not cry in Fatopia. That's where I'm going with this. I have a very low barrier to entry for crying happy stuff. Cool. Well, hey, definitely, you know, folks out there check out interactive fiction. It's a ton of fun. It's a great way to get started coding. Um, there's a ton of free games are super high quality, very accessible. You can play on your phone, you can play on anything. It's just text. You will catch everyone next time. Thanks again for supporting this show. Thanks Patrick for putting up with me. This is my episode that I really wanted to get out there.
A:So thanks for indulging me in an interactive fiction episode, and we'll catch y'all later.
B:Music by Eric Barndorler. Programming.
A:throwdown is distributed under a creative commons attribution share alike 2.0 license you're free to share copy distribute transmit the work to remix adapt the work but you must provide attribution uh to uh patrick and i and uh share alike and kind you
Transcript supplied by the publisher with the episode.
Programming Throwdown
by Patrick Wheeler and Jason Gauci · English · Tech & Science
Programming Throwdown educates Computer Scientists and Software Engineers on a cavalcade of programming and tech topics. Every show will cover a new programming language, so listeners will be able to speak intelligently about any programming language.
More from Programming Throwdown
-
E165 · 25 Sep 2023 · 1 hr 17 min
165: Differential Equations
Patrick and Jason explain differential equations and why programmers should care about them. They cover rates of change, ordinary versus partial differential equations, numerical solvers, and practical examples ranging from simulations to PageRank and game physics.
-
E164 · 11 Sep 2023 · 1 hr 31 min
164: Choosing a Database For Your Project With Kris Zyp
Things to consider when choosing a database Speed & Latency Consistency, ACID Compliance Scalability Language support & Developer Experience Relational vs. NoSQL) Data types Security Database environment Client vs Server access Info on Kris & Harper: Website: harperdb.io Twitter: @harperdbio, @kriszyp Github: @HarperDB, @kriszyp.
-
E163 · 14 Aug 2023 · 1 hr 29 min
163: Recursion
Patrick and Jason break down recursion as a practical problem-solving technique rather than a classroom trick. They cover base cases, recursive steps, common pitfalls such as nontermination and stack limits, and real applications in trees, graphs, and divide-and-conquer algorithms.
-
E161 · 10 Jul 2023 · 1 hr 33 min
161: Leveraging Generative AI Models with Hagay Lupesko
MosaicML’s VP Of Engineering, Hagay Lupesko, joins us today to discuss generative AI! We talk about how to use existing models as well as ways to finetune these models to a particular task or domain.
-
E160 · 26 Jun 2023 · 1 hr 30 min
160: Position Localization
It’s a question that may seem easy to answer on the surface, but in truth hides more complexity than people expect. In today’s episode, we tackle the latest on AI, creative endeavors, and more before diving into the meaty discussion of position localization.
-
E189 · 24 Aug 2026 · 1 hr 23 min
189: Agentic Loops
-
E188 · 9 Jul 2026 · 1 hr 36 min
188: World Models
-
E187 · 2 May 2026 · 1 hr 38 min
187: Agentic Coding
-
E186 · 3 Feb 2026 · 1 hr 28 min
186: Becoming a Manager
Patrick and Jason discuss what it means to become a manager and how the role differs from individual engineering work. They cover hiring, coaching, performance management, team goals, and when moving into management is or is not the right choice.
-
E185 · 4 Nov 2025 · 1 hr 32 min
185: Workflow Orchestrators
Patrick and Jason break down workflow orchestrators and why they matter for batch jobs, long-running tasks, and resumable distributed systems. They compare tools such as Airflow, Dagster, Temporal, Ray, and Kubeflow while explaining the infrastructure patterns behind them.
