 Hello, first time Next up we have Daniel Stanberg the author of curl and telling you it's What's cool when it's running on billions of devices? Hey, you can hear me, right? Let's go Hi first time. I just wanted to get this order into the spirit here By showing you little snippet from my inbox. I got an email It's actually a year ago now. It started out like this Nice and friendly right It was a woman She had even made me a couple of months ago. She had a big problem She you know, she had her account hacked on Instagram. She told me and wanted my help I had no idea why she would contact me about that, right? Talk to Instagram. I have no idea what you're talking about. Why are you emailing me anyway? Well, you know, I found your email address here So you must be sort of associated somehow, right? So please talk to your friends at the Instagram and sort it out for me So I tried to sort of explain to her that no, no, no, no, no, they use code I wrote so I had I didn't even know that until you told me so But she didn't really understand or she didn't really believe me. I think but in the end I think I convinced her that no, no, no Instagram did their thing. I did mine. It just happened to end up there So everything turned quiet for a while and then she made me again And she said yeah, well, I went aware that At my hacking code was used by Instagram. So well So she she brought me then some new evidence Sort of share with me that she had found my name also in the Spotify Terms and condition exhibit be right Dean look My name is a Spotify to Instagram and Spotify both on her phone. That's sort of that can't be a coincidence. I had been lying to her the entire time I was involved from the beginning. Please fix this and You know These are big companies. Have you don't want to mess with these guys You don't want to show that you're part of an Instagram and Spotify hacking ring So, please and she coined the phrase please unhack the hack And I sort of that that rhymes with me. So I'm trying to unhack hacks all the time. No That's sort of some interesting stories from my inbox. So I'd like to share some other stories from the hacking ring or perhaps More accurately an open source project that I've been Filling with for a while It's called current and we have a colon slash slash in the logo Carl is an old project, but just to make sure that We're all on the same page here. It's an open source project We make a command line to and we make a library and we transfer data Specified as URLs usually usually and it supports protocols basically, you know, HP FTP blah, blah, blah so of course We started a long time ago and a long time ago, of course We had sort of a lot of building blocks, but we didn't have a curl. So Like any other project we started some point and in my case I One point wanted to have a little tool to download currents rates from the web I was writing an IRC bot and in an IRC channel, you of course want to have some real-time currency exchange commands So I needed to just download currents rates like daily or so, right? It should be sites have currents rates. I just needed to download them so I Found a little tool In the same year this movie premiered 1996 So I started it that actually sort of make it download the HTTP couple of hundred lines of code HTTP 1.0. It's really really well It's probably not a simple protocol, but if you're doing it a bit carelessly and just fast. It's really simple. So Then then sort of yeah, that started to work and then suddenly we found out that wow They have currency on gopher sites, too I had go for support and Currency rates on FTP sites. So yeah, we added FTP support to and then the Previous to that moment. It had been called HDP get and it was called URL get and then one day we are added FTP upload support and suddenly the naming was wrong again, and we released car 1998 who supports HTTP go for an FTP Upload Yeah 1998 March 20. So and then Yeah, you know, we're an open source project. We're a bunch of friends. We add stuff We like and we fix some bugs and other people come around and we Keep on working on it and the number of lines of code sort of grew over the years I Think it's rather suspicious that we can actually have that. I mean where is it gonna end? But anyway, so we've been working on this little project. It's not as small anymore So now in 2017 we support. I think it's about 21 protocol 21 protocols, I believe and a lot of features and Basically What you want to play with with URLs and internet protocols and transfers back and forth and blah blah blah a lot of things so when we've been working on this little project in our bedrooms and spare time hacks Overtime it's not really and you know, you're sitting there in your chambers and working on stuff and suddenly You look around in the world and wow Look at that. There's a lot of people using my code, right? When did that happen? So and and You start to hear from people that they're actually using it Then you look around and you search the web and you find out that there's a lot of companies using code So though wow that's and that's these are sort of companies that I've found proven that they're actually using curl I'm sure that there are one or two more and and even if you sort of yeah You drown in these names, but even if you just look at some well-known brand names Those are some really fun brand names It's sort of amazing but So what would what would all these? Funny companies use curl for curl and when I say curl a lot of you a lot of Whoever I talk to they think about the little command line tool, right? All of these these really using the command line tool No Well, we started out a long time ago, of course when Mac OS X started to ship curl as a default Thing in Mac OS so it ships with curl and live curled by default And they have a lot of tools nowadays that they build themselves that use curl and sort of yeah That's a lot of devices using Mac OS and for some reason TV's are also very fond of using curl So basically any TV you have today have curl in it And I'm done of course I from some iPads It's default in iOS too. So that's like what a billion active devices Curly is not default in Android, but I'll show you soon that all of your Android phones have curl anyway So and and of course it's sort of big in in Linux Linux service and stuffs and right games has turned out to also be very popular too It's portable so you can move your games easily and it'll download things for all games And it's been very popular in version control system like it's just in git and some others and Yeah cars big in cars You wouldn't believe that a couple of years ago, right? Why would every single car needed? transfer internet transfer plan PPSP sites, of course, it's a default transfer library sort of in PHP PHP is what like a quarter of the internet a Lot of set up boxes blah blah blah and all sorts of fun things Facebook right they use it on the site and I mean As they say it you've succeeded when you manage to sort of coin a verb right And I would say that most people would actually understand and most in this room I'm sure that many of you would understand if you'd say just curl it you would know what it means It's not sort of what you do with your hair So all of this and I mean it's always interesting so it's a sort of But how many are actually using this and I all I get this question a lot How many users do you have like and I say yeah, we have billions of users, but what is a user really? I mean all of those Devices I mean most of you you won't even know when you're using curl, right? It's just embedded somewhere So I tend to say that we have a bunch of users Many and looking closer. I mean with so all those things devices cars TVs printers scanners set up boxes I'd say that basically all of you are running curl at least a couple of times today and I'd say most of the world is And I show you some fun Since I mean it's a fully open source it I'm MIT license people are downloading curl They're building it in their corner and they're running it and then they never tell me about it, right? How would I know when someone is using curl? I don't know but sometimes someone figures that out and send me link whoo look at what I found your name in my washing machine and Look, so and I started to collect a few and this is sort of yeah This is the license screen in iOS look in every single iOS device. Oh, that's fun Or what is this? Ah, that's the YouTube app on both iOS and Android what's that like two billion devices, right or or Skype? That's also Roughly a billion the stalls and what sort of make me really popular with my kids I could show them that I'm actually in sort of this is ending sequence of Grand Theft Auto 5 That makes games, right? That was popular for a few minutes and then they run off But this is sort of more sort of obscure things, you know You can find these if you really really search for it this ending sequence. This is my name in 42 minutes in the into the ending sequence I think I'm the only one whoever so Well, there's a YouTube video of it's a possibly two others, but yeah But other fun things then we can have a this is a Billboard outside Silicon Valley Curl and billboard and take a moment and read the command line. Yes What does it do? Actually the the ad guy who made this sign he contacted me later and apologized Doesn't make any sense and this is a fun. This is the Nasdaq building in New York I don't know if you're seeing all the way in the back But it's a good card nice curl command line in the middle of the screen and that is actually a command line You can you could invoke that to order a t-shirt So it's actually a genuine Ad campaign I write you want to really see this but that's this is an excerpt from a fun email with Person at Facebook when they they tried the patch in production seems to work fine And the patch in production. I think it's extra fun when it's to Facebook, you know 1.9 billion users monthly or whatever it is And nowadays basically every Mercedes car has curling it this license agreement actually lists every car model with a little checkbox if there's car and why not BMW or Volkswagen Yeah, right sky TV. This is a TV set top box Or and Phillips television and Well, these are all funny things, but we just come back to today Instagram and hacking Instagram and Spotify hacking ring thing Having my name in this Scenario some surrounding that makes interesting other sort of all right, sorry, I forgot about PlayStation 4, but When people then have my name all they can find my name in all these weird places and if we run into problems They find my name and then email me So, yeah, I'm really good that GPS is in Toyota Corolla's so if you have any problems just come to me It's quoted as he wrote it or the person wrote it to me. I see it's a golden gem So why why would they use curl our little thing we made a long time ago that's been going on forever? Well, it turns out that the internet is sort of a wild place You can follow the internet specifications and doing protocols. Yeah, you know, basically every protocol you're talking over the internet It's documented in some specification RFCs and everything But it turns out that we're all into putting putting these specifications differently and if you try to use them over the internet you'll find out that There are a lot of weird areas and corners you have to sort of fix and adapt to and it takes time and accumulated over time It's not that easy to just Ride a new client in in a short time and we already done this and it works Sorry wrong way And we're of course open so I mean we're here first time of course we're open source So it's easy for anyone and is the fact that is MIT license makes it extremely easy for all of these funny Commercial companies because they're never scared of what of the license really and we have a ridiculously stable API You can actually the first time we made the library We released it in the in August 2001 and actually those if you rebuild those example programs from then they still work Exactly as they did then we never broke those We modify the API or the ABI slightly over time, but Only very very good And it's still then a powerful enough a API for all of these Devices all of these use cases to actually get get things done transfer data I still want it and And Nowadays well C library. Yeah. Yeah, I'm safe language buffer overflows blah blah blah But it's still the fact that you cannot Get close to the portability and availability everywhere with any other language and you can with C And I think that has been part of the popularity that you can build this for Basically any operating system and any CPU can you can think of at least if your CPU has 32 bits or more and you can run Coral on it and that's that's powerful That means that you can write your programs basically put it everywhere and still work the same and you slip curl the same way and Then of course we have I think I would like bindings for 45 languages so you can pick your own language and we have a documentation The good thing I think with maintaining the API over the years is that we can maintain sort of just keep polishing the documentation the documentation documents the same API Yeah, it's decent stability and it has a lot of protocols It turns out that users actually use more than one protocol when they do internet transfers So we try to ask our users like roughly yearly How many protocols do you actually use with curl because it sometimes it seems ridiculous to keep supporting all these weird protocols Why would we do that? But it turns out that users are actually Very keen on using many protocols in their in their code It's C code. It's really only there to Transfer stuff. It is fairly fast. It's usually as fast as you can get I mean apart from the network being a slow bottleneck often Since we're talking about all these embedded devices, most of them have gotten the curl source code They built it for their device and they're running with it. That also means that they're sort of They they enjoy having things like you know disabling features they don't want in their car or TV and so they can usually shave off size and features they don't like or don't want and we have an How many TLS libraries can you Mention when you get up in the morning we support 12 TLS libraries and That's that's a hard challenge to just mention all of them. It's also sort of a This also goes with it It makes it really attractive for all these device manufacturers because they usually prefer one of the libraries and they Want to have it the small one or the featureful one or the one that goes with the best license or whatever and it makes it really handy for all of these to pick the one you want bit curled with it and it'll just fly and Okay, I mean we're at fast them. So maybe Why anyone would do anything open source isn't really a surprise to you and we're all sort of yeah, of course It would be open source, but I still want to just fast iterate over this that I Get this a lot when I tell someone, you know, yeah billions of devices cool, right and Why would I do that open source if if I got just a tiny amount of money for every Installation right I would be a millionaire or whatever But you all know that it doesn't work like that and it was never an alternative and it had never been anything near whether You see I mean I haven't done this myself and I always enjoyed sort of the atmosphere of open source I appreciated the day I learned about it and I always wanted to contribute back and it's always been like that and It's always been a team effort And no, I wouldn't be rich anyway So that's basically sort of sort of what it is and I just want to explain a little bit about how This is done then We're a small project when we were never big. We're still small But counted together if you accumulate over the years we have roughly 1500 names in this sort of thank-you file Which is a lot of names most of all helpers or contributors that have Contributed something like once and never came back and that's fine but They're still in there. So we have about 30 to 40 contributors per release and we do releases Every eight weeks or every other month We're a really really small poor team Possibly five so and we're all volunteers. There's no particular Commercial backing here. There's no big company. There's no there's really no money at all in all and we're of course We're doing things like you know open source style everything is public and we have mailing lists and Right we're on on github these days. So when I Usually when when I try to It goes back to a little that you know, you know, I'm not a millionaire. I don't get money for this Trying to explain this to an outsider. Yeah, yeah, but okay, but who pays for all of this, right? There's some happen to be some organization. There's there's a lot of code all those devices are running car, right? Who sets this up and what's the organization chart and everything? But where where a bunch of spare time hackers it's never changed. I Well these days I'm actually I'm employed by Mozilla and I get to spend a part of my work time on curl So that is to some extent company backing but apart from that. We're all just Doing it on our spare times I'm sure that we have a lot of contributors who are actually doing I mean they're using curl at work and fix bugs or add features for their employers and send them back to us, but I Don't know and we don't keep track of that and they're sort of they're not really affecting the Trajectory of the project or anything We've had a few companies over the years who actually sort of step up and pay someone to work on a feature I implemented SFTP and SCP support for by company for a company who said We'll pay for your time. I worked on it should be to support a while ago Also like that's a company stepped up and say I will pay your work time for a while if you do this and that's fine But really if you want to have in this sort of scenario companies only pay for feature development There's nobody's gonna step up. Hey, we'll pay you for fixing bugs for a year No, that doesn't happen. It hasn't happened yet Right, but basically so how do you you write software that get used by a billion people or more? It's it's there's nothing magic to this at all. It is Plain old simple software engineering. You just have to write something It should be a bit useful, you know Review that's good Test it Write some decent documentation documentation is you know, we all know this but it's still not as Common as we would like it to be but it's really useful and important to get it to get something popular It needs to be understood and you put on the stood you need to document it and then we release often and then we start over again and you just iterate like that for a long long time and It'll be a success in the end. Hopefully Well, that's how it worked out for us So and when Okay Billions of devices you all have like three devices running my code Do you trust it really? Or Will curl give us the next heart bleed sort of yeah, yeah, that's same well roughly the same code in Many many many many places. What happens when you someone figures out the way to trigger Some nastiness in a lot of vast amount of devices. I wouldn't be too fun so I hope not But what do I know? I'm just wanting to mention that we're of course aware of the situation sort of There's some sense of responsibility sort of yeah One once you have when you have just a few users, you know, you could just do another release tomorrow or next week It's fine. Just upgrade everybody, but suddenly when you're sort of Letting this whole billions of devices really sink in whoa, that's a lot of lot of devices so We're of course doing reviews. We review it as much as possible. I Can't say that we review every single commit, but a lot of them And we'll learn that having strict guidelines on code style has turned out to be really useful So we're sort of over time. We're being more and more strict that you should follow the code style It doesn't matter if you like it or not having a common style is Helps for readability for security and for understanding things So that's what we're going for and of course documentation So we should document everything so that you actually understand what you're doing when you're changing things and why you would change things and And perhaps you would understand API is properly when you're using them So you don't inadvertently cause problems like that and we test as much as possible testing is of course always hard We use valgrind as much as possible on tests we do We do static code analyzing as well As much as we can I would say we use coverity and we use clang analyzer a Lot Yeah, and we're part of that the Google OSS fuzzing project now and we're doing some other minor fuzzing and so we're starting with that and we just recently had a code audit by the Mozilla open source secure software effort or whatever it's called the MOSS and That's a great effort by the way they So we got a grant and they could pay a company a lot of money to spend a lot of time Reading coral source code and they found a lot of problems and reported them back and we fixed them and Hopefully we learned something from that and we'll try to not to reproduce the same problems in the future Let's hope that works. Yeah, I think you'll do Right, so that's what we do in order to Fix or rather make sure that we don't get a lot of problems because all right we have right now 60 CVs I Think I'm counting. I'm sure that we will have more we have more in the pipe But as always, I don't think anyone should ever judge a project by the number of CVs Not only because we have 60 but number of CVs is never an important counter is what you do with the CVs How you handle this that's what's important You all know that and I know that too and that's sort of what we're trying to make in this project Just make sure that we have to take care of those the best possible way so I just wanted to sort of Make a bit more about me then so Carl started well and Carl wasn't really different. I mean Carl was the third name of the project So it started in 1998 as Carl. So I've been doing this for a while It has sort of sort of Marked my entire life This is my primary hobby. This is what I do Sometimes when I when people report problems or they say This sucks and then they say no blah blah blah and they say well, you shouldn't take it as personal and That is then it feels Of course, it's personal. I just told you I spent 20 years on this 20 years and I Work on this two hours every day roughly Sometimes more sometimes a little less Two hours per day in 20 years, right? That's I Guess I get to work extra much extra on Carl now since Mozilla pays me for it as well. So Sort of just accumulating this I Spent a lot of time on this So possibly that is part of the explanation why we actually sort of got somewhere by now And I must say that looking at this it feels good that at least those 14,000 hours wasn't completely wasted Most of those emails probably Okay, but so Then people tend to ask me okay them, but why why keep up with it been doing this for 20 years, right? but I Really cannot put the finger on it anyone In any way other than yeah, it's just so much fun You know deliverance and something and and making sure that yeah, it works and people appreciate it And it just runs everywhere. That's an awful. I'm sorry That's an awesome feeling and you're real. Yeah, and then someone reports a bug Ah, we can't have that and then sort of we continue and someone adds a feature Strike me that we really need another feature and we add that and we add a bug and we need to fix that and That's just how it is. We just move on like every other project. It never ends and Right Everyone needs a hobby, right? But because I often get the question right 14,000 hours, right? That's a complete waste because what if you had gotten just a little hourly rate on that time You would earn a lot of money, but but I try to get the focus back on this being a hobby Most of most people at least in the sort of in war in our sort of Western world had most people Have some sort of hobby you spend time you go golfing or go canoeing or you go walking in the woods That's hobbies, right? That's also how big you just spend a lot of time in front of a computer and riding car So yeah, it's just the most fun. I can imagine Right and then when I've explained that they look at me a bit weird So, yeah, yeah, yeah You're a strange person anyway, so but seriously Isn't it ever done right 20 years? And it's just a command-line tool right and then a lot of people tell me that yeah I used to curl command-line tool in 2005 the first time or something like that and still works the same way, right? You can use the same options you use then they work now What happened? Did you spend 15 more years on making those same options work? Not exactly, but yeah, it feels like that sometimes But anyway, we're of course always heading heading forward upwards onwards and since we're Celebrating actually 19 years as a project in a month. We're actually having our first curl meet-up meeting in the real world In Germany in March, so if you're into Carl Check it up but Other things than happening apart from us meeting in Germany There's a future for for curl because now it's never really never Done it's never completed. It's never finished. There are always bugs And as you know the internet didn't really stop at any point during these 20 years So the internet is keep is keeping up. I mean it keeps Changing it keeps evolving and we need to keep evolving with that to in order to sort of work the way the rest of the internet does and make sure That everyone can do what they what they want to do on the current internet and the future internet Things like new protocol versions and new ways to do things and better ways to use compressions and blah blah blah I mean we introduced HP to a few years ago. We're gonna introduce the next protocols as soon as possible At 430 in the Mozilla room. I'll tell you something about the next protocols and Of course, this is open source. It'll just survive and It'll keep it rating. It doesn't matter if I get run over by a bus tomorrow or just get bored and just go home It'll be there. It'll still iterate. So it doesn't this doesn't sort of depend on me and There's truly no slowdown in sight If you're looking at sort of commit rates or line of lines of code or anything It's just going and going and going And of course you can help just join in and fix the bugs So I wanted to show you then a little peek of our roadmap going forward So this is sort of where how the magic is made in this project There it is Now the secret is out, right? So we have quite a lot of time I talk so fast or it's a little or whatever it is So if you have any questions, there are some mics or one mic at least or Something hi, thanks for a talk. Have you ever been approached by a Government agency or any other organization to build a back during the curl? Thank you for that lovely question If I had been contacted by a good foreign government to insert back towards in my code How would you know? But if they had approached me, I wouldn't tell you anyway, right? So I my my suggestion is that you go and review the code and tell me if you find it out Well, no, I have not been I've not been approached by a government or company or anyone to do anything of any sort of bad faith Not in the code and not a using the code in any way actually We are all friendly Hello, does anyone still use his gopher I But I every year when I ask this question to curl users, what are you using in curl? I asked them what protocols are you using in curl and there are always people marking that gopher? And it makes me curious if they're actually marking the gopher because they're using it or because they think I should keep it So I'm not sure but actually last time they Gopher was not the least used protocol out of the protocols we support so I Guess kind of following on from that I vote all the protocols you've had to implement which would you say? You spent the most time on it or has been the most difficult and I guess second part. Why is that Sam? Can you repeat that? So of all the protocols that you've had to implement as part of the curl project Which would you say you spent the most time on which has taken the longest to implement the longest to I don't The longest to write support for the longest to support there I think none of them ever stops being supported and none of them really stops being developed So I think all protocols that are the most used. They're also sort of most abused or Most most different flavors of them in the world. So like trying to support HTTP That's a never-ending game that will never stop and will never be fully compliant with everything in the world So so I'm not sure that we ever stopped developing sort of the HP support is going to be forever So if I was gonna name one protocol that is the hardest to support that is HP because it's a it's a Wild West to support it Hi, thank you for lip curl Do you think HTTP to will finally take over HTTP everywhere? I'll talk about that in a moseller on but yeah, I should be to it is As as it was made by the browser zone is supporting it should be to over HTTPS That is encrypted and if you're looking at if you're counting traffic in checking what Firefox records today Actually more than half of all the connections over HTTPS is using it to be to so it is already at least on its way Towards that. I don't think it'll ever truly reach a hundred percent because HP one and even I mean I should be one of one and HP that one of zero is going to remain in servers for a very very long time But there will also be new contenders After HTTP to so maybe it should be to will only be here for a period of time until the next one replaces it to be to Okay, a hypothetical situation the last license with your name in it has just been written What year is it and why is no one using curl anymore? Sorry, just just I'm asking you to predict the death of curl Why like under what circumstances will someone will will curl not be used anymore? I can't hear the question. Sorry why it like why Will like what would cause curl to no longer be used like it's on a billion devices Why would it stop being used ever? Is it because a new tool comes along? It's because it because you are like no longer supporting it like there's this massive open-source project What causes it to die? That's a really good question, and I think it's sort of As I never really understood why you took off. I think I would have a horse It's like well, I don't know But I would imagine that if I just listen into what people are saying then people I mean the constant mantra I get in my face every time I say something about Libcor is yeah It's written in C right buffer overflows bad bad bad So someone would would say that yeah the future of Libcor like would be another language That would be a safe language, and then everything would be grand and much better You can hear from my voice that I don't really believe in that, but maybe maybe that'll be what? Challenge it and replaces it eventually It's really hard to tell because I'm the ones are using it today They're using it for a reason and maybe those will fail for some reason and some other Devices or manufacturers will suddenly pick up something else and become much bigger. I don't know it's really hard to tell and For me it doesn't really matter. I'll just run this for as long as I think it's fun Maybe I'll get bored of it someday. Maybe I'm not but and maybe I mean it is good with competitors So it's fine as long as we should have many many competitors that won't be good for the ecosystem So fine make make more competitors. That'll be great Hi, thanks for the talk All those devices with your code in Many many of them are never gonna be updated and so there's gonna be bugs and maybe some serious ones How do you feel about that? Yeah, we have that's a sort of a major problem I think in a project that we have some of these Producers and of devices they have really really really long upgrade cycles like decades sometimes Someone shows up on the mailing list and asks us about hey, I have a bug in this version. All right We released that 14 years ago No, no, we don't want to update. We just want to fix So yeah, but I don't think I mean I think that is a pity and I think that is sort of It's drains our resources and everything because I think yeah, we fixed like we fix on average I think about 400 bugs every year Like 10 years, right? That's a lot of bugs that you have in your code. You should upgrade So I don't know I can't really affect that I can only suggest to them that they may be upgrade sooner or Consider this but I also think it sort of drives in the other direction as well I don't if you ever want to have some fun. You should follow me on Twitter and discuss URL syntax That is sort of a thing that Since we have devices using the internet with very very long update cycles We also need things to actually be somewhat stable URLs shouldn't change over time URL we have today should work in 10 years as long as the servers and everything is there the syntax shouldn't change the protocol That the things we do today. They should still work even in the future. Hi Talking about command line applications rather than the library. What do you think of W get and do you think it does anything better than curl? I I like to keep maintain the image that we renew fear struggle sort of the curl W get worse But W get is an excellent command line tool for getting things off the internet using a bunch of those Well, at least two protocols that curl also supports and it does a lot of other things So I think the W get is a great project and a great tool everyone should use it it has a small overlapping features with Carl, but Looking at what both projects can do that overlap isn't particularly large So by all means use whatever tool you would like the best tool for the job or the best tool you like Hi, thank you for the call so talk if you had to start over like from the beginning with Just a blunt draft we do something better or just something marginally better than the current curl because you said that there is like 50,000 commits something like that and it's it's very huge and I can think of a so big huge cut base without You know some design flow you want to fix or something that you let in your code and you never fix it because it just worked Which is do you want to have like starts all over again and do something better or is not just not possible It is I mean as an engineer is always attractive to consider the case Yeah, yeah, throw out the old rubbish just sort of clean plate and build a new nice house The way we see it now that it should work, but but I always resist that because I don't think that is a very long-term Solution everything is gonna be iterative all the time So even if I would rewrite everything today, it would still be an iterative process in a year's time So I don't really ever consider throwing everything out and starting over. I'm always in polishing what we have We making sure that we reach and change things so that it becomes better without Rewriting everything from scratch. So it's really for me. It's more of a No, I would never start over That's basically not gonna happen, but so Did we do decisions in the beginning and and Things that were stupid that we're suffering from today. Yes, we did and maybe a bunch of those decisions and choices We should have done it differently and we would have been happier today, but Yeah, but who doesn't I mean Who who don't do stupid decisions through life, right? We just have to live with them and sort of make up for them over time and it tends to work out anyway Thanks No more questions for 30 in the museum. Thank you