The Stack Overflow Podcast

Web programming with nothing but Python

Episode Summary

We're chatting with Meredydd Luff, CEO of Anvil, about why he believes web programming has become overly complex. If you want to build a web app in Python and not worry about databases, server side code, or web design, it's time to give Anvil a try.

Episode Notes

Lots of people who work outside of programming learn Python as part of their job. When folks from telecom, academia, or medical science want to build a web app to help with their job or share their findings with the world, they may feel they need to learn Javascript, CSS, HTML, and half a dozen frameworks to get started. 

Anvil is a platform that hopes to enable the creation of great web apps with nothing but Python code. You can drag and drop your user elements and rely on Anvil to handle your server and database. 

He also created Skulpt, which you can check out here. It's decscribed as follows, "Python. Client Side. Skulpt is an entirely in-browser implementation of Python. No preprocessing, plugins, or server-side support required, just write Python and reload. 

Want to go deeper? Check out his talk on Full Stack Web Development with nothing but Python here. 

You can follow him on Twitter here and Github here.

Episode Transcription

Meredydd Luff The web's the greatest application delivery platform we have on Earth. But the bar for it is here, devote like a couple of years to learning five different programming languages, five or six different frameworks, oh yeah, and then all of DevOps and then maybe you can play this game.


 

[INTRO MUSIC]


 

Ben Popper Couchbase is a modern multi cloud to edge SQL friendly JSON document database for building applications with agility, performance, and scale. If you're new to Couchbase and would like to learn more, the Couchbase Developer Portal is the best place to start. It's loaded with tutorials, videos and documentation, as well as best practice tips, quickstart guides and community resources, including the Couchbase Developer Community Forum. Ready to get started developing on Couchbase? Visit couchbase.com/newtocouchbase.


 

BP Hello everybody! Good morning, and welcome to the Stack Overflow--ugh, I did it again--hello everybody, and welcome to Stack Overflow Podcast no matter what part of the universe you're in.


 

Sara Chipps I know. It could be afternoon.


 

BP It could be any time. I'm Ben Popper, Director of Content here at Stack Overflow and I'm joined by Sara Shipps, our Director of Community. Hi Sara. 


 

SC Hey, Ben, how's it going? How's the farm? Or the chickens?


 

BP The farm is good. There was about flock of like 30 turkeys on my backfield this morning. So I got pretty excited.


 

SC Wooaah. 


 

BP I think the season starts May 1st.


 

SC Do they fight the chickens or do they like hang out with the chickens?


 

BP It was the first time in my life I've seen the actual like classic American scene of the male turkey like puffs himself up, you know, and spreads his tail feathers. It's like "I'm here! It's spring!" So it's pretty exciting. So we have a great guest today from a company called Anvil, which is based in the UK. And I discovered them as I was trying to figure out how to build my dog park app. And I typed in something like, "easiest web app" or like, "no code, low code, web app" and Anvil popped up. And I think basically what it is, and I'm gonna get this wrong probably, it's like a platform for creating web apps with just Python. But you know, there was a couple of ones you recommended it right like Node Red, it was kind of in the same SEO space as that. 


 

SC Yeah, so great. There's a lot of great no-code solutions out there now and Pythons a good as any languages to do it with. 


 

BP So our guest today is the CEO and co-founder Meredydd Luff. Did I get the name close to right?


 

ML Yep, pretty close. If you're not reading the show notes, it's spelled M E R E D Y D D. So like Ben stood zero chance there. And he did fantastically.


 

BP Welcome, say your name for us. So people at home know how it should be said.


 

ML My name is pronounced Meredydd. And I'm very pleased to be here.


 

BP Meredydd, welcome. So yeah, tell us what's the inspiration here? Why Python? Why for this sort of, you know, use case? And why were you the person to build it?


 

ML I guess it goes back to how I started programming. It was back in the days of DOS and I discovered this amazing program called QBasic. And you could write a few lines of code. And you could make programs that would draw text on your screen or play noises or take input from the joystick, you know, all those things that you know, a kid of that ages is really excited about. And the barrier to entry was so small, because you could pick it up and you could once you learn a little bit of how to code, you then have something that you could use and show your friends. And I grew up a little bit, I graduated on to Visual Basic and Delphi. And these things that were rather similar but for Windows, you could drag and drop build your what your window was going to look like and then write a little bit of code to run when you click the button or entered the text field. And then you had it, you had an application that worked like everything else on your system. And then the web revolution happened, and suddenly we lost it. And now there's like, there's a sign at the entrance entrance to the park that says you must be this tall to ride this ride. Only 'this tall' is you must know HTML and CSS and JavaScript and Python and SQL and React and Redux and Webpack and Bootstrap, and I've run out of fingers, but it keeps going. And this is completely unfair to yes, sure. I'm selfish. I think of kids like me just starting out. But anybody who hasn't plowed their career into being a full stack web developer. You know, the world is full of data scientists who still need to be able to present the stuff that they're doing as an interactive tool for someone else to use. Manufacturing engineers who need to be able to produce, you know, a dashboard for what their machinery is doing. Back end engineers who need to be able to throw together an admin panel. Embedded engineers. There's a whole bunch of people who should be able to build things for the web, because the web's the greatest application delivery platform we have on Earth. But the bar for it is here, devote like a couple of years to learning five different programming languages, five or six different frameworks, oh yeah, and then all of DevOps and then maybe you can play this game. And we thought this was ridiculous. So we built something that anybody who could speak a little bit of Python could use instead. 


 

BP Sara, coming from a background where you've learned databases first, and then a lot of web development, and now work at a company where, you know, we have to think about things at scale. Do you run into people who you feel have come up against similar frustrations? I mean, I know for me, there was a little bit of this, certainly, like, where do I start? And when I do start on something, yeah, how do I avoid sort of that branching past where I, you know, to get somewhere I keep, you know, encountering another door that I don't know how to open? 


 

SC Yeah, I think I think it's a big one, I think I hit that frustration a lot with Ruby on Rails. Whenever I need to get a Rails app running on my machine, I always give two to three days to do it. Because there's always a ton of dependencies, right? There's like so many dependencies going on, and you don't know what version of Rails you need, and you don't even know version of dependencies you have already installed or what you need, and all those things. And so it takes so much time. Do you see the same thing in the Python world? I guess, I guess you do. I guess that's what you're saying, yeah.


 

ML Yeah, hugely. I mean, that's wonderful. Because like, I was just talking about the plight of someone who hasn't built web apps before. This is like, as someone who's clearly done this before, and you still need to block out a couple of days to get it set up. That's I mean, it, that's hilarious, you know, terrible way. But yes, absolutely. You see this an awful lot in the Python world. Like even people like you who've been around the block a couple of times, we're building a web application, right? Just getting from zero to okay, now I'm writing my application logic is, is quite a heavy lift.


 

SC That makes sense. Do you see a lot of folks finding Anvil, because they're looking for that 123 setup and go, what is the use case that you see the most?


 

ML So I think it might help to explain what Anvil actually is. So if you're building an application with Anvil, you'll start at an online editor. So you go to Anvil.works, signup, login, you get a web ID. And you start out with a drag and drop designer, so you can build what your user interface on your web page is going to look like. And then, if you like double click one of the buttons, you are then editing the Python code that runs in your web browser, when that button gets clicked. And you can also add server side code. And instead of having to set up like HTTP endpoints, and match all your stuff into JSON on the way, you can just say, actually define some functions in your server side code, and then call those functions from the browser. And then, it's all serverless. So you can hit a button, choose a URL and deploy it there on the web. There's also like a hosted database for storing your data. So you don't have to set one of those up either. So really, the people we see the most of I mean, we see people in all walks of life, it's really quite fun talking to them, like I, I never knew about telecoms fraud prevention. But of course, there are telecoms engineers, where that's their sphere of expertise. They write a lot of Python driving telecom switches, but they wanted to create an interface for customers to be able to manage their own number applications. And that's an example of something where someone with that skill set can just get up and go and build a web application. Whereas previously, they would have had to collaborate with someone else or hire an agency or a whole bunch of other stuff that would have been an awful lot more work. So a lot of people in that case, like a lot of people who aren't full stack developers, but another nonetheless write code, and actually like the Venn diagram over the overlap there is really quite substantial.


 

BP I want to ask the sort of maybe aesthetic writerly question, and maybe there is no good answer. But like, it's interesting to think about people, as you say, who have to learn Python because it applies to their, you know, job, and then also want to use that same skill, set that same language to then build stuff for the web, when it's useful for them. Can you look at a website and say, "Oh, yeah, the person who wrote who created this, you know, definitely a Python person" or like, the kinds of stuff that people build with Anvil, you say, you know, this makes perfect sense, because you're using Python. It lacks certain functionality or flavor or, you know, design that you might get if you decided to go a different route, you know, HTML, CSS, all that stuff.


 

ML I think that's, I mean, we should dispel any myths that Python is an underpowered language for this kind of work for ordinary, if you're using classic, full stack web development. Like when was the last time you used Instagram?


 

BP You know, 30 seconds ago?


 

SC Um, yesterday.


 

ML Right. That's a Python back end. So the genius of Python and why we chose Python as the language for Anvil is that it is used for everything from teaching a bunch of nine year olds how to code for the first time. And you know, for that, things like that it's very popular, with teaching curriculums it's very popular, with the Raspberry Pi community. And it's everything from there to deep minds built beat the human mind at the game of Go for the first time ever, like that happened in Python. Instagram, that happened in Python. So I don't think there is a way you can look at a project and say, yes, definitely, that's Python, because it has Python's limitations, but what you can do is you can often look at a person or an industry, a person's background or what they're doing and go, yes, you are clearly bumping up against the limits of the tools that you have in your hands. 


 

BP That makes sense. And so, you know, you were sort of sharing with some of the motivations for doing this. And I guess, you know, it sounds like yeah, some of those were personal motivations. But you know, some of it, I guess, is also just to do with, as you said, you know, this sort of rise of Python, it's growing popularity and the fact that more and more people, you know, might have this skill set. You shared with me that you are working on an auto-completer. Just back out a little bit, what is an auto-completer do? And when you sit down to build one yourself, what does it take? 


 

ML Oh, so this is, I mean, this is the joy of like a deep computer science nerd like myself. To be clear, like this is, I did my PhD in building usable programming environments. So like, I am deep into this stuff, and I don't pretend this is of universal interest. Nevertheless, I find it fascinating! So here, we're using a good programming environment. As you're typing your code, your programming environment will be suggesting code completions. So you know, you start to type a variable name, and it'll offer you oh, hey, here are you know, four variables that start with those characters in your code, and you can hit tab and complete one. Likewise, you know, you type in objects, and then you type dot and it will show you the you show you a drop down with oh, what functions, what methods can you call on it? What attributes does it have? And any serious you know, development environment worth its salt has one of these. So if you know, if you use for example, the other JetBrains family, so PyCharm, or IntelliJ, or WebStorm, you know, they have they have engineers dedicated to building systems that can look over your code and work out, you know, what variables are accessible to you right then. And, you know, if you use VS code, similarly, you've got like code servers that crawl over your Python or TypeScript or JavaScript or whatever code base and offer you completions for where your cursor is, what are the things you might validly type next and the languages grammar. And this is all very great. And we could have taken one of those off the shelf solutions, but for two problems. One is that as I previously mentioned, Anvil is a coding environment that works on the web, which means that like, when you hit the Tab key, when you're typing, there's just not enough time to go back to the server and scan your code, work out the completions and go back to the browser, right? If you think about how fast you can pick, hit your keys on your keyboard, 200 milliseconds just isn't enough. And the other thing more importantly, is that because Anvil actually gives you the full stack, the code completion can do things that you can't do in in classic web development. So in classic web development, you're writing, it's almost like you're writing three or four separate programs. You're writing queries on your SQL database that will spit out some kind of tabular data. And then you'll be writing something on your server side, whether it's Ruby or Python, whether you're using frameworks like Rails, or Django or just doing it raw, that will then process that into object. And then you have HTTP endpoints that will spit out JSON. And what form that JSON is, is kind of defined by your server side code, and then the JavaScript, you're receiving those objects off the wire from your HTTP endpoints. And that you'll be putting those into templating, engines and so on. And because the data has been through so many transformative steps, it's actually very difficult to get good code completion. Because if you're typing something in your JavaScript front end, and you're like, okay, this object dot, well, what attributes does that object have? We kind of don't know, because the answer to that is bundled up with like, the code you wrote in SQL and the code he wrote on the server side, and how your HTTP endpoints work out and your JavaScript code. And the typical code completion engine can only see your JavaScript code. But what Anvil can do is because it's all one language, because going from the client to the server was just calling a function, we can actually get, and because we have a built in database, we can actually get a lot better than that. So we built our own auto-completion engine that understands everything about the full stack of your app, so that you can be like in the UI editor, like doing the drag and drop and going okay, what text goes in here? Well, it is in fact, the current user object and the auto-completer and knows that that object is there. And it knows what columns are in that database row, because it knows about your whole stack. And the process of building, it was really fun. And I can absolutely explain that to you if you'd like. But I wanted to start out with like, what code completion is, and like how it's kind of failed us in the modern full stack world, and why we built our own because we reckon we could bring some of the magic back.


 

SC So what I'm hearing from you is you're setting up the autocomplete to work on the server side, and then are you cashing in on the front end, using local stores? So you can do your auto-complete? Did I hear correctly that you're not using any JavaScript? 


 

ML Oh, no, no, we are. So if you are programming in Anvil, you if you're using Anvil, then you don't have to use any JavaScript, you write your client side code in the browser in Python, and you write your server side code in Python. But the Anvil auto-completer, that's part of the Anvil editor. And so we wrote that, we actually wrote that in JavaScript. But because it's--


 

BP We caught you. No, no. You've shot--I knew it. I knew it wasn't Python all the way down. [Meredydd laughs]


 

ML No like of course, we build this tooling in JavaScript, because like when we set out to build Anvil, this stuff didn't exist. And believe you, me, we hit the same frustrations with full stack web development as everybody else. And there is this little dent, a forehead shaped dent in my desk next to my keyboard that's marked, "I am dealing with this pain. So other people don't have to". So to answer your question about the auto-completer. Anvil's auto-completer because it's built into the editor you're using to edit both your client side code and your server side code and configure your database. It can pause the Python you're writing on the server side and the Python you're writing on the client, and then walk over it and go well, okay, what type of this function return, ah, this function returns like a database row from that type. So in the client, when that function gets called, I know we've got a database row here. And so when someone types, you know, types that variable and types dot, we can offer them all the columns that are in that database table. So it's done in JavaScript, we actually pass the Python in JavaScript, using the same technology that we use to run the client side Python in the web browser. And then we have a JavaScript code that walks over it and does I mean, symbolic execution is the technical term, but basically looks at each line of code and goes, well, you know, I know this is type X. So if I call method Y on it, then I get type Z as my my return value, and walk through all that. And then when it encounters your cursor, it knows what options you have, because it knows what variables are, you know, in the function you're writing in. Does that make sense?


 

SC Yeah, that does make sense. So that's really interesting. When you say client side Python, that's not something that you hear that often. Is that something--


 

ML[Meredydd laughs] No it's not.


 

SC Yeah, right. Is there a world in Python--so I think of what I see in the node community of there's just a world of different view engines you could use to be writing client side, JavaScript on the back end, is that kind of how you're setting things up in Python? Is there a whole world of view engines in Python?


 

ML There is actually quite a world of them. I don't know if you have space in the shownotes for a link, but a colleague of mine actually gave a talk at Py Con UK, like walking through the design space of some of the engines for executing Python in the web browser. And you're right, there's a whole ecosystem. There's a ton of ways to do this. But we've, we have chosen one of them, we have chosen a Python to JavaScript compiler called Skulpt. It's an open source project. I'm one of the maintainers, anyone who fancies contributing to Skulpt. Totally check us out on GitHub, S K U L P T. And it actually originally started as an educational project. But it's been, it's a really good way of like embedding a Python runtime into something else. So it's kind of not opinionated about what API's, it offers your Python code, it just offers an emulation of the Python language in JavaScript. And then whoever is integrating it then says, okay, and I want to make these API's available to this Python code. And that was great for us. Because there are some solutions, like Brython, for example, which is the idea there as you can write Python in your script tags instead of JavaScript, which is like that's a trip. It's fun, the technology is awesome. But it therefore has some quite pre-determined ideas about Oh, if you're using Brython, and you must be writing HTML, you must be writing these sorts of API's to interact with with the browser. And we actually wanted to start from a clean sheet. We reckon that a lot of the problem with web development is the necessity to interact between all these different programming languages, all these different representations of your data and all these different frameworks. So we went okay, we're going to build a unified abstraction. We're going to choose which API's we expose, we are going to expose like a almost a classic UI toolkit like you would have seen back in the Visual or Delphi days. And we implement that in JavaScript. And you know, we do the bridge to the browsers, the browser's DOM and CSS for so and so on for making that happen. But in Python, you just interact with a set of Python classes that we've constructed to build your UI.


 

BP So sorry, just to back out for a second there, Skulpt is, can you just explain a little bit to a person like me what that's about and who the community working on that is?


 

ML Okay. So sculpt is a Python to JavaScript compiler. So at the very basic level, it's a JavaScript library, that you can feed a string, a string of Python code, you can feed it into that library, and it will spit out JavaScript that does what that Python code would have done. And it's not very, it is not the world's most efficient JavaScript. But what it is is JavaScript that accurately mean accurately represents the semantics of that Python 'cause will behave really exactly as that Python code would have done, if you'd done it on a local Python interpreter. And so we use that to turn the Python code you write for your user interface into JavaScript code that the browser then executes when you run your web app.


 

BP You had one other idea which you suggested, and so I'll take you up on which is writing good developer docs. You know, here at Stack Overflow, we have this product called Stack Overflow for Teams, which is basically like a private instance of Stack Overflow inside of your company. And you know, lots of developers are already use that q&a format and find it's a great way to sort of do documentation on the fly. Somebody has a question, you post it, then people answer they debate, the best answer gets uploaded, and boom, now you've got some reasonable documentation. But you did a talk on this and wrote about it on the Anvil blog. So what's your approach to doc--you know, the thing that every developer loves to hate, how do you do documentation right at Anvil?


 

ML So the thing about developer docs, if you are maintaining a developer facing product, so if you are building a platform, if you are building an API that you want developers to use, if you're building like a library, you're going to stick on your on NPM, or on PI API, or any of these equivalents. Your documentation isn't just your docs, your docs is your user interface. If you're building a developer product, your doc's are your UI. And they're also your marketing. And they define what your product actually is, you know, they're they're your UI, because the first thing that a developer does, when picking up your thing, it's going to be to click on the docs, whether it's a tutorial or a reference, or a list of what our API list of API methods, that's where they go first. That's how they can tell what your doc is like, that tells you where your product sweet spot is. They're also content marketing, and Stack Overflow knows this better than anybody else. But the world is full of people googling, "how do I do what your product does?" And that is, if they land on any form of your docs, you've just succeeded as content marketing, whether it's a tutorial for how to do X, or the Stack Exchange answer for "how do I do this particular thing?"


 

BP Well, this is exciting to me, because my job is Director of Content Marketing, but now I can just take credit anytime somebody Googles something and ends up on Stack Overflow. Did you hear that Sara? I get all the credit.


 

SC Yeaaah, yeah.


 

ML No kidding! Right? Because you, you, you must know that the answers on Stack Overflow are the best content marketing you have, because they are the things that people are looking for.
 


 

BP No, it's true. I mean, sometimes we used to call that like user generated content, you know, really, it's the it's sort of the beating heart is the community and the interaction there. But we started just sharing great questions and answers through the podcast and the newsletter and social media. And people love that, you know, just like, "did you know" you know, and it could be even from, you know, our physics stackexchange kind of "question of the day" is a powerful thing that the community builds for us.


 

ML Oh, no doubt, I guess I was just I was riffing on what you were saying about if you have an internal Stack Exchange, is that Stack Overflow for Teams, you call it? Like, those are your docs. And those are an external Stack Overflow is content marketing for your developer product having answers out there. And it's they're not just answer shaped, of course, because like documentation can come in a bunch of different forms. There's a guy called Daniele Procida, who's created a framework he calls the Grand Unified Documentation Theory and given some great talks about this, and he basically divides it into tutorials which are okay, you want to learn this thing. Let me guide you through building a program with this developer tool. There's how to guides is you want to do this specific thing, here is exactly how to do this specific thing. And I think that's mostly where a lot of Stack Overflow answers sit. And then there's like explanations which are you know, those discursive posts that explain how everything works under the hood. And then there's your reference documentation, which is okay, this is the dry but on 100% utterly complete description of how everything works. And actually we divide those because sometimes you have like API docs, like, what methods does this class have. And sometimes you have reference documentation, like explaining, you know, this is how React's rendering process works. That's, that's not particularly tied to a budget to a particular function. But it is referenced, because it's explaining something in exhaustive detail.


 

BP Yeah, I was just gonna say, I was talking with someone from a doc to live, this sort of E-health company and their, their, their Team's customer. And one of the things that they were saying makes a lot of sense, which was the most popular questions and answers, and the one that people you know, inevitably find useful is, what do I do when I'm setting up my development environment? Right, like when I'm just sort of onboarding to the company? And like you said, it's kind of this entryway. And so those are the most popular questions because that, you know, they're, you know, always hiring. Not that they're the, you know, necessarily the questions that are going to, I mean, they'll make the more come the company more productive, not that they're, like, essential to the work day in day out. But everybody's gonna have that question. It's kind of the door to get it. I think I agree. 


 

ML Absolutely. Well, so this is where I'm, I'm, I'm afraid I'm going to go all kind of 'part of a nutritious breakfast' on you. Because although like that how-to and that q&a stuff is incredibly valuable. And if you don't have it, you'll end up with your users hurting badly. Like, it's not the only thing you need. You can't say, oh, Stack Overflow answers about our framework are the only thing anybody will ever need. No, you need an actual tutorial as well. And you'll need your API docs, you'll need your JavaDoc or Doxygen. Or, or equivalent. And so this is something that like how our documentation, I mean, operation, which is a is a very big part of what we build, because we build developer tools. And that those are our UI. Our documentation is we're very conscious about okay, here I am writing in tutorial, here I am writing reference, here I am writing explanation. Here I am writing well, autogenerated API docs, because API docs should be auto generated. And here is we have a q&a set section, we use our forum for this. But like that kind of scratches, the how-to itch. And so I suppose that like, the biggest thing I would say about building developer docs is like think about the whole developer journey. They will get to a point where the thing they most want to do is Google stuff and hit your Stack Overflow internal or external instance. But you got to think about the rest of that journey as well. Think about the tutorials, think about their onboarding dogs, think about the reference, think about the API docs, and you need it all. And if especially if you're building a product that's going to be used externally. So the number of startups who have API products, and they are like they are dying, they are parched in the desert for user attention and love from their users. And they put that marginal piece of effort into another piece of content marketing, when they don't have their documentation journey locked down. Yeah, I know. It's like telling people to floss. Everyone knows you should do it. And it's hard. And it's difficult. But like, I suppose for us, it's very easy, because because we know it's our UI we know it is customer facing, it gets a kind of priority boost within a developer focused organization that might not get inside other companies. 


 

BP No, no, I think you make a good point. I mean, one thing I've learned in talking to people about documentation endlessly, because sort of like, understand what it is, and whether or not Teams is a better solution is the frustration of being asked to write documentation not knowing exactly who's gonna read it, when, how much they need, is this too much or not enough. And then if you write it, not always getting that feedback, you know, have somebody read it, maybe they found the answer, but they didn't thank you, or they didn't say, you know, like, that, it just sort of goes to a void and you don't get the positive feedback. Whereas I guess if you make a customer facing, that's interesting, because you might get comments or see people, you know, go from there to try out the tool or something like that. That's an interesting way of positioning it in order to sort of not just get more value out of it, but be able to, like have that feedback loop of seeing people actually getting something out of the docs that you wrote.


 

ML Yeah, absolutely. And well, if you're, if you're not certain about it, all the bug reports on your documentation will come out as questions. You know, everything that your documentation doesn't cover, this is, this is the saving grace of having a q&a environment, which is anything that is not covered by existing documentation will turn up as a question there. And once it's answered that valid, that's a patch on your documentation. And so it's interesting. I mean, we haven't considered it, I'm not sure I would recommend just completely setting out from a clean sheet and going okay, we will discover all of our documentation via question and answer, but if you don't have it, you're going to be suffering because you're not going to discover the problems people have and that if that's your product, then you're not going to be discovering the things that are stopping people from buying from you. Right You know, that never ends well.


 

[MUSIC]


 

BP Alright, it is that time of the episode I'm going to shout out the winner of a lifeboat badge, somebody who answered a question with a score of negative three. And now it's all the way up to a score of 20 or more. "How to add hours and minutes to a date time variable in C." So thank you to Rj Regalado on that one. And Meredydd, I'll give a shout out to the UK's new 50 pound note celebrating Alan Turing, apparently full of geeky easter egg. So I guess if you're into computer science, and in the UK, go pick up a 50 pound note. And there's some cryptography inside of that piece of fiat currency. Egh. Who uses paper money anymore? Right, Sara? 


 

SC Blegh.


 

BP Maybe there's an NFT version of this 50 pound note I could get for 500 pounds. 


 

SC Yeeaah, for like $6,000.


 

ML Or just like dipped it in bleach first, leave it for 72 hours, might be safe to touch them.


 

BP Alright. Well, again, Meredydd, thank you so much for coming on. If people want to find you online, check out some of your work or writing where should they look and then also, if they want to play around with Anvil, what's the best way to get started?


 

ML So I am @Meredydd on Twitter. You can check us out Anvil.works. And it's free to sign up and use and publish applications forever. You can check other stuff I have written about on the blog, Anvil.work/blog. Or you can follow us on Twitter at Anvil_works. We post stuff there as well!


 

BP I'm Ben Popper. I'm the Director of Content here at Stack Overflow. I'm working on a long suffering dog park web app. It's not finished yet, but Anvil really pointed me in the right direction, which is Glitch, it's very simple.


 

ML Awesome! Wow. 


 

BP No, I'm just kidding. It was just that, you know, learning any code was too much for me. It wasn't that there was anything wrong with Anvil. And yeah, you can always email us podcast@stackoverflow.com and we'd love to hear suggestions and questions. 


 

SC I'm Sara Chipps, Director of Community here at Stack Overflow and you can find me @SaraJo.eth.