Cake.SDK with Mattias Karlsson - podcast episode cover

Cake.SDK with Mattias Karlsson

Nov 06, 202549 min
--:--
--:--
Download Metacast podcast app
Listen to this episode in Metacast mobile app
Don't just listen to podcasts. Learn from them with transcripts, summaries, and chapters for every episode. Skim, search, and bookmark insights. Learn more

Episode description

Ready to integrate build automation into your applications? Carl and Richard talk to Mattias Karlsson about the new Cake.SDK as an additional component of the Cake (C# Make) open source project. Mattias talks about integrating the Cake scripting experience into your .NET console applications. The conversation digs into speeding up the building of infrastructure for testing and pre-production environments so that you can get features shipped quickly!

Transcript

Speaker 1

How'd you like to listen to dot net rocks with no ads? Easy? Become a patron for just five dollars a month. You get access to a private RSS feed where all the shows have no ads. Twenty dollars a month, we'll get you that and a special dot net Rocks patron mug. Sign up now at Patreon dot dot NetRocks dot com. Welcome back to dot net rocks. Where back on Terra Firma. I am anyway in my house. I'm Carl Franklin, and Richard is on the road and you're aware.

Speaker 2

I'm in Haldmun, the Netherlands, okay for a user group talk before I fly home tomorrow. But I've been, you know. We did Orlando at DEVENU session, then over to Lisbon for as your Dev Summit. Then I went and did TDC, which is a Trondheim Developer conference in Trondheim, Norway, and then down to Hello Stavanger in Stavanger, Norway and hung out with Alan Henderson. And then this week was tech O Rama and Utrecht and me.

Speaker 1

I went to Orlando and I came home and then I went on a cruise with a bunch of TV chefs cool yeah, and was that fun. It was so much fun. And just walking down the hallway and running into like Mark Murphy and Alex Cornaschelley and Andrew Zimmer and Alton Brown. Just really cool.

Speaker 2

That's awesome.

Speaker 1

The Norwegian cruise line boat food suck. Oh no, yes, but the restaurants were pretty good. But like the general buffet where everybody feeds at the trough, oh my god, just horrible, no flavor, no, you know, just just bulk food, nasty. It's funny. But the restaurants were great. And the chef's we're taking over the restaurants and serving their own dishes, and that was really cool.

Speaker 2

That's really fun. Yeah.

Speaker 1

All right, so let's talk about because this is episode nineteen seventy five, let's talk about what happened that year. I'll start so politically, Vietnam War is over, yeah I think it is. The US embassy is evacuated in Cambodia. Is the Kamara Rouge advanced on Non ten?

Speaker 2

Oh right, yeah, now we get to the killing fields.

Speaker 1

Yeah. There were two assassination attempts on Cherald Ford, President Gerald Ford, both of which failed.

Speaker 2

In culture Jaws, Oh man, dude, Steven Spielberg's big hit.

Speaker 1

Right, still a great You know, I think more people are afraid to watch Jaws than like Friday the Thirteenth.

Speaker 2

You're probably right.

Speaker 1

But the fact of the matter is it's not a gory movie. It's just a tense movie.

Speaker 2

Well it's that music is killing, right, John Williams Man, John Williams made it.

Speaker 1

So some other movies Dog Day Afternoon, One Flew Over the Cuckoo's Nest were released next year. It gets really really awesome for movies and TV. Wheel of Fortune premiered and Saturday Night Live debuted Wheel of Fortune in January, Saturday Night Live in October. Okay, now to the things that matter to us. Microsoft was founded.

Speaker 2

There you go Albuquerque, Paul.

Speaker 1

Allen and Bill Gates, the Pat Rock mood rings, popular trends, the first black manager in Major League Baseball Frank Robinson. Nice, definite milestone there in the first black golfer in the Masters, Lee Elder Way to go.

Speaker 2

Yeah, progress, Yeah, So.

Speaker 1

Do you have anything in science and tech a space that you want to talk about in nineteen seventy five.

Speaker 2

Well, I mean you mentioned Microsoft, of course, and that's also because the Altar eighty eight hundred had finally been released. It was in the magazine in nineteen seventy four and we mentioned it there, but now it's actually available for sale in January. Yeah. Also released in nineteen seventy five is the sixty five oh two processor. Wow made my motorola, So the one that will show up in the Apple two in the sixty four Even the NES was actually

powered by sixty five oh two. And in nineteen seventy five you could buy a sixty five oh two processor for twenty five dollars.

Speaker 1

Wow, and because who needs those things? Yeah?

Speaker 2

And in video game history, nineteen seventy five is the year that the Colossal Cave Adventure is written. Wow, running on a running on a mini computer, written by Will Crowther. This is the famous It is dark and you're likely to be eaten by a groove or you're in a twisty maze of passages all alike. Yeah, that's that's that. That becomes Zork many years later. But the original version is cle.

Speaker 1

Yes, so these are like the Infocom text adventure games.

Speaker 2

Right well before that. Yeah, Infocom you know use that the Temple Colossal Cave is the level. This is the original original original.

Speaker 1

Did I hear in the news that EA got bought.

Speaker 2

EA has gone private. Electronics no longer a publicly held company. Yeah, they got they're now gone private. We'll see what that represents. But a conglomerate of organizations, including some Saudi entities, have taken it private.

Speaker 1

Yeah.

Speaker 2

Over on the space side, two sets of missions that I think are very important. The Viking Margelanders launched this year, but we'll talk about them next to you in the next show when they land, because that's what the get cool. But the Soviets flew Venera nine and ten, launched in June, landed in October, and sent the first images from the surface of another planet. The Viking will do that from Mars,

but it won't. It will happen later. And of course this is this is Venus we're talking about, so temperatures so hot it melt lead and raining sulfur, dioxides, all that fluff. It's like dangerous there. And so while they make it to the surface, they do not last very long, just a few hours, and then they're destroyed by the forces that are under them. Any more important. In July of nineteen seventy five, the Joint Apollo so Use mission.

So this was an Apollo capsule and a Soyused capsule meeting up in space basically to do a handshake.

Speaker 1

So back when America and Russia liked each other.

Speaker 2

Well they really didn't, and this was a big deal was trying to deal with. This is the middle of the Cold War and they're trying to find a way forward. But there was a lot of stuff for the hoops they had to jump through. One. You know, the Soviet designs and the American designs were very different from each other. Soviet designs were very much automated. The cosmonauts did not operate the machine much. It was flown from the ground and that was concerning, and they didn't have a lot

of redundancy. If something failed, they were supposed to abort the mission. That was the point, either everything works or stop. Where Apollo was very could be hand flown. There was definitely a crew in charge of the vehicle, multiple redundancies, so things could break and they could switch over. So it was a challenge there. But here was the real problem. The docking systems not only were different, but they were

what we call probe and drogue. That is to say, there is a probe but a sticky outbit that has to go into a drogue and any bit, and neither side wanted to be the any bit. See any childish male behavior here, Yeah, so uh never changes. The solution was was called the androgynoust peripheral attached system, which by the way is actually a better solution where both sides coupled exactly the same way, so you don't have to

match up the pairs, right. The problem with probe and drogue is what if you got two vehicles and both that probes on them, you can't dock. So this was the beginning of a universal adapter system that is what is used everywhere then on. But the other issue here was that the atmospheres in the capsules were different the APO.

The APOLLO system used five psi of pure oxygen in the cabin, where the SOU system used fifteen psi like normal atmosphere pressure of nitrogen oxygen combination, and so they you couldn't match them up.

Speaker 1

Right, So you had to have like a holding area between the two.

Speaker 2

That's right. So the androgenous perphil attached system was not only a neutral docking system where two probes could dock into it. So everybody got to be a probe, but also provided a common atmosphere for that. Now, the SOUS also opened the pod bay doors. Holl that's it. So the Sous actually modified their system to reduce their pressure down to ten psi tapsule, which made things a little

bit simpler. But yeah, they would climb into this locker between the two in the in the apaths and that's where they were able to shake hands and so forth, mixing the atmospherees.

Speaker 1

Wow, that's cool. So this is like I just want to talk about software, man.

Speaker 2

But there you go. There there's a history bit.

Speaker 1

This is super That was really cool and I'm glad we're doing this. All right, Well, let's get started here, started, I say, but let's move on with better no framework, roll the music.

Speaker 2

Awesome, boar man, what you got?

Speaker 1

So about three years ago, episode eighteen eighteen, we did a show at NDC making open source work for Everyone with David Whitney.

Speaker 2

Remember that, Yeah, I remember, published late in the year and a lot of f bombs dropped as I recall.

Speaker 1

Oh, yeah, yeah, there was some anger there and you know a lot of the well, one big issue that we honed in on was how do we incentivize open source project maintainers to continue without compensation, right, yeah, I think one of the things. I don't know if I suggested it or you did, or one of us said, you know, there should be something built in a new get where you could contribute right right there when you download the package, you should be given an option. Hey,

you want to contribute to this project. Well, it turns out that's a thing now, Yay. Sponsorship on new GAT is a thing that's cool. And there's an article that we're going to link to announcing sponsorship on NEWCATA that shows how it works.

Speaker 2

I think it's just easier for people to support the projects they depend on. I check. Yeah, I like that a lot. Yeah, awesome, dude, nice find.

Speaker 1

Yep, that's it. That's what I got. So we're moving forward. Yeah, one step at a time. So who's talking to us today? Richard and grabbed a comment of Show nineteen seventy one. Just a few shows ago, our friend Egle Hanson talking a little about valuable testing. I just saw him at the conferences as well, and this was where we were talking about testing approaches and systems for making effective tests, right, Like that was all about it's like it's just testing

that makes your system more reliable, more valuable. And our friend our Dallas, that's Steve Smith commented where said we were talking about naming strategies around testing, and so he said, for organizing a naming test, I'm a fan of following SRP or single responsibility paradigms.

Speaker 2

With test classes. What this generally looks like is a test class per method being tested. This gets rid of classes that end with the name tests, although you may certainly have a folder called class test that holds individual test classes one per method being tested. Names of the test classes should be some class, some method. Then put it underscore in there if you like, and your casing

is up to you. Name the individual test scenario being tested, such as if you read the class name followed by the method name, it would describe a use case for the expectation. So calculator ad return some gives two integers or calculator ad throws given null argument. Now with some test fail, it's clear to anyone technical or not which use cases failed.

Speaker 1

You know, Steve doesn't like set standards no but for everybody, but I love his suggestions. They always make a lot of sense. He's a thoughtful man, there's no twoice about it.

Speaker 2

Saw him too at the conference as usual, you know, soft spoken, thoughtful. You got to listen carefully and you'll learn some things. And I suspect he already has a copy of Music to code By it.

Speaker 1

I know he is.

Speaker 2

Yeah, thank you so much for you're comment at a copy of music Go By. He's on its way to you. And if you'd like a copy of music Go buy, write a comment on the website dot at Rocks dot com or on the Facebook to publish every show there and if you comment there at reading the show, we'll tell your copy of us to go.

Speaker 1

I think Steve is one of the first contributors to that project, and he uses music to code By. I think he was the one who says to soothe his agitated dogs so they can go to sleep.

Speaker 2

That's cool, that's a good idea.

Speaker 1

Yeah, all right, well let's move on here. It's Mattias Carlson. He's back, or Mattias, I think we call you right, that's correct. Yes, a friend of ours from Sweden. He's a senior architect and partner at w com or Yeah, I think that's it. In Gothenburg, Sweden over twenty five years of professional experience software development, Microsoft Developer Technologies MVP,

and the dot net and DevOps categories. He's also deeply involved in the dot net open source community and is probably most known there as one of the lead maintainers of the dot Net Foundation project Cake And you thought it was just for dessert?

Speaker 3

Aesome, that's the point I want to bring cake and people.

Speaker 1

Welcome back, Matias, thank you.

Speaker 3

Let's be good to be back.

Speaker 2

Awesome. All right, what have you been up to, friend, presumer? Your cake centric? Is you're very cake browne.

Speaker 1

Well yeah, let's just start with refresh our memories about cake.

Speaker 3

Yeah. So Cake is a cross platform, cross environment, cross service, open source built orchestra and framework and.

Speaker 1

It's not very ambitious, just a little slice of Yeah.

Speaker 3

But that's why I like, it's hard time time to explain. But we've been around for a while, yeah, yeah, since twenty fourteen, and today, like what we're probably going to talk a little about is like in May this year we dot not pre before Micro just launched that you will now be able to just dot not and a c shop file because that has never been done before. And I was like, hey, hey, that's what's Kate been

doing for for almost eleven years. Now we'll essentially be able to put your C short code in one script file and have a script drunner to do it. And instead of yelling on internet and social media like they stole our idea or whatever, I have throll over. The punches are like, oh, I can throw away a lot of code and this is like a perfect fit for Cake, which means we're going to introduce KK SDK.

Speaker 2

So interesting. So what does it mean to you have a Cake SDK, Well.

Speaker 3

It's okay. We ever had the Shop DSL which was the script runner, We had the Frosting which was a console application. Now we will have a Cake SDK, and that means that we have moved everything that was code generation wise in the script runner. We have moved it into an regular dot STKA package, which means essentially you can just do a single C. Shop Virus is a new support dot K and we will bring all the goodness of Cake by just adding an STK reference to

to your product. Because with a new project less files the support for does not SK. They have a couple of pre prepotal directors. You can have things like SDKs, MS built properties, packages, projects, and things like that, which means for us has been really good because then we will get things like vis code support out of the box, which has been the pain point for us sometimes because we had all on language server for Cake because we

added out shually. So this will mean a lot of good things for us, I think.

Speaker 1

Right, So, what's a typical scenario where a developer might feel the need to use something like Cake if they're just trying to use them as builder, they're having a particularly difficult build, what would what would be the complexity of their situation?

Speaker 3

Well, I think the main scenario is like if you have more than your dot not pack, if you're a

scenario has something more on that. But also if you want something like usually today we have all all the cis have Jamo yeah, I hate it, and jammal is get get like everything you get one space wrong and like usually the flow is well, I open a text file, yammo file, right, I enter a few esoteric tasks that are better than it used to be with us, and they still it's it's source control is where you can follow what happens here.

Speaker 1

You're preaching the choir mane.

Speaker 3

That's that's like you have something that's more like an engineer, Like you have something that's in source control is version, but it has no discoverability and you have lack everything of a real program language. And that's the advantage if there's something like it, which is c sharp, is that you have things like, oh, I can use I can to take one string and concatenect with other in a language

I know. I don't have to look it up somewhere because has there Jamal and National DevOps as their Jamal and GIT clubs as their Jammal. But here with Kate, you get one sea sharp the sea shop you used daily, and you get a set of we call them alysses to get a set of methods that are strongly type static methods for things like dot m bield or dot pack, or we have all these set of methods to work for the file system like clean directories, or you can do I want to copy files, I want to sip files.

All those are strongly typed C sharp methods and they have strongly type parameters. You don't need to do like, oh, what is this version parameter? It's a string or is it an int or whatever is it? We will have that in a type either parameter or class for your for use. That's one. And we also have this sense of a task, so you can essentially have a workflow where you can define dependencies like before I build, I want to restore, and before I test I want to build.

You can define that Shane in C sharp. And also the biggest advantage you can run it locally before it push it because usually this like the workplace, I edit my YAMO file, I committed and push it. Eventually something happens somewhere advice while I go get my coffee, and then I went in for the agent to start, and then it installs dot net or something, and then you get an error online twenty two something something because I

couldn't find the file. And so in that way, cake will improve the feedback cycle because you can try it out locally first and get feedback quickly. You can also get all the intellicens and everything for everything, so you get a better develop a few cycle. So that's I think what the CAKE brings to the tail.

Speaker 2

Yeah, and you're sticking with one language, right, and you're not hopping I mean not that really consider a link yamal language. But it's still you know there is a syntax and an organization to it, mostly involving indents that that you have to deal with, like I think you're urgency sharp is nobody cares what you're indents or do what you want? You want you want braces on every on a separate line each time like a crazy person, knock yourself out, that's fine, lay it out however you want.

Speaker 3

And also things like upload artifacts, well that can be a you need to find a toss that is upload something something or and we have us like get of actions dot to come on dot upload artifacts, right, which is to coverbel and it will and we al those abstractions like we have we have typed if it's a file pof or if it's a directory pof, which means intent is clear just by looking at intelligence and method documentation, right.

And also one thing that's usually you don't know what often by context inlock, what's the current directory or what are the things that that and that's you will just get by the VAUT because if you do, it doesn't pack. You'll lower it ends there and you can test it locally and then it will work on c I too, because it will end up in the artifacs folder because you can test that locally and you can upload it.

Speaker 1

So you said orchestration, but you're really focused on build automation, right, I mean there's no do you touch containers at all or any of that.

Speaker 3

That's actually what anything I can do almost the YAMA we can do and that. So you can build containers, and you can even now with ten and you can even now build your with SDK, you can actually build your script into a container, so you can have that pre build the running so which means you can really you can have something that's yester and pre compiled and have really good stockup times.

Speaker 1

But it's not a run time orchestrator like you know you would have with Kubernetes or something like that. You really focused on building, right.

Speaker 3

Yeah, it's agnostic. It's it's more orchestrating the tasks you.

Speaker 4

Need to do to be able to to be able to like if you want to push the registry, you pull down from a registry, build art facts, or package up your output for a published or.

Speaker 1

So now we know what cake is. You have some stks that you want to talk about.

Speaker 3

Yeah, that's like the new SDK, and that's essentially what we've done, is like how can we take all like the simplicity and before Like, well, if you're going to see the current state of CAKE is we have a dot Nea tool which is essentially interprets a CAKE file,

which is uses the Grostling compiler to compile. And now with SDK, we will ask you just to be top level console application and just reference that, which means that the whole things with bootstrapping is almost the only thing you need to have installed now to use CAKE is the dott ESK, which has simplified. It's almost like a journey. But with the first Cake we were DONA framework and then you had to have a new get packaged that

someone needed some PowerShell bootstrapper to pull down. And then with doctor q twe the Doctor tool system game and then we could do installed tools and that was almost like the next iteration with this file application and like one thing you need is so that's ky and you can go on with simply and we are with s K. Also is that we everything that we know a love from CAKE, like we have all this like we have modules which can replace internal it's in Cake you can

things like logging and five system access and things that that's pull just work also with SDK, so you can also add a NuGet package reference and I will you will automatically code generate that for you. We have things like the College ass was our helpper commands for things. We have loads that the IM built in for things

like that that build do NuGet restore and things. But there are several things like some messages to teams or Slack or Twitter or things that the community provided and those of us add the package reference and the skillsomatically generate the proxim methods needed for those are just they're just available for you to use in the euroscript or in your console application. It's not so that that's essentially

what sk have done. All the magic bits that script undergund we do just as a regular or not that product now. So it simplifies a lot of things for us, and it's just we don't need to think about all the special things. It's just the DOTT console application essentially for their use now and.

Speaker 2

It's just make it immediately thinking about the security context on this that now you can run with lower security context in the script rather than when you're running this directly from the developers perspective and in the developer's security context, so it probably is a bit safer, especially if we have multiple contributors where not everybody has to have make rights at all. They could they could be able to run separately.

Speaker 3

And that's the cool thing about having container support now is that essentially you can do something in container. You can assentially mount the current repository and build in an isolated environment, which is really cool if you want to test stuff without affecting the developers environments. So I don't think you can help pre made developer containers that builds everything without their needing to know what dependencies that need to be installed and things, so that's also good.

Speaker 2

Yeah. Interesting, it's literally like I want to set build it. I set and make that is essentially set up this environment for me so I can do these tests and tear it back down again. Like that gets really powerful. That's cool, man. I like it a lot, and it should be thinking more broadly about how people want to build software now.

Speaker 3

And then I think there also little like that you reuse the tools that you use daily, so it's very little context switching, and you can use like vs code for what was supported up now with a tenement that we've supported for these product last files. Yeah, but also they have a path to you can do dot net project to convert. So actually before you have been stuck like if something becomes too advanced that you want the foolish to the idea. Before we the cake script, it

was like something special. Now we can actually just convert it to a sea shore project and you can use foolish as due if you if you want, right, So that's also advantages that we don't do fewer things and had off more to your martuals to support, and we can focus on our core problems to do bilo automation and that'd be important.

Speaker 2

Yeah, well you said build automations for a lot of different things. You want to set up a configuration for a test lab, you want to go to a pre prod for some load testing or you know other tests. Like there's a lot of if I feel like with the SDK approach, it's really shipping it down so I can write a set of scripts they will run in all those places, not have to make separate ones for each other. A lot of cut and pasting.

Speaker 3

Yeah, and that's what I mean to cross the environment because you can have the same build script and then based on the environment, and that's where where we try it. Also K provides abstractions. We have things like I am running on Linux, I'm I running a mac am I running on get up. We have or not running on things like git Clubs or Ash develops. We have ready made just pooly on property so you can check which is make it really easy, don't need to find out which esoteric environments.

Speaker 5

Variable don't know to know or notice or we have that already wrapped. So we have support for I don't know, twelve or thirteen build systems. We add the adams and go along, which means that you can have the same flow. So if you want portability to well like now we're working Asher DeVos, but we want to move to get up actions, there's very little you need. You can start that process now and essentially just change which boolean you're looking at. And also the cake tasks have support for

things like conditionals. You can say that this task we give actions, so we do upload artifacts and GILA actions and this if you're on Lasher Develops, we do upload artifact using that privider and but the rest of the bill flow is the same.

Speaker 1

And you support Android in iOS too right.

Speaker 3

Well as a target, but that's essentially then you're using something like like MAUI or you're saying that or anything you can like if you can execute like scriptwise. So the host will be either macros or Linux or Windows or FreeBSD or something like that. But what you can tower, anything you can build with a dot net scale or any other scale for that. It's very cool the part you can automate, and that's where the community steps in.

What the audience, because there are several hundred addings add over years to add things that I don't know about, things like the Android Estcade manager or something something that I don't use dailid that's some extension, or things like us AT communicating with slack bard teams or that we don't want in the box, but you can have it if you want.

Speaker 1

So firm listening to what you just said, it's the the big takeaway here, friends, is that rather than using the Cake command line app to do everything, now you can write your own c sharp apps and call the SDK to do whatever you want to do with the Cake in your own app.

Speaker 3

So yeah, so it's actually the sk just brings it in. So you have it available everywhere in a regular console application, so you will have things like dotnut build, or it just appears by adding a reference to scale.

Speaker 1

Ye love it.

Speaker 2

Why don't we take break? And then I want to change cares a little bit here and dig into some of these integration.

Speaker 1

Sounds good. We'll be right back after these very important messages. Did you know there's a dot net on aws community. Follow the social media blogs, YouTube influencers and open source projects and add your own voice. Get plugged into the dot net on aws community at aws dot Amazon dot com, slash dot net.

Speaker 2

And we're back. It's dot net rocks. I'm Richard Campbell, that's Carl Franklin. You know, you're hanging with our buddy Mattias, who's been poured years of work into kuh and now with the SDK approach. So if you just want to build into your own app, you can do that. And I've just been thumbing through the huge number of integrations here. I mean the obvious ones like visual Studio and get have actions and so forth, but boy, there's stuff I've

never used. You know. Heck, there's still Team city support. Who's got Team City anymore? That's awesome team City.

Speaker 3

Yeah, I've had a lot of developers like that, especially those of that loose hosted solutions, and also what we see there's also a trend of sometimes like stepping back from services, especially in Europe, like how can we do more on premise if needed? So that's where often those systems come in when you're running and none you're hosting yourself.

Speaker 2

Even support Jenkins yeah classic, oh yeah, and some of these are directly indicating some of them looked like the third their third party contributors that they actually did this and put it up on GitHub. So we had this conversation about new get contributions and so forth, like how much support do you get for this project but you've worked on in a long time.

Speaker 3

Well had some like Octopus Boiled Team have supported us some big computers, but like a few small but not any biggest. But it's been more of a marathon for us. Like for us, the motivation hasn't been financial. It's been sure most need to scratch our own inch and solve our own problems.

Speaker 2

Yeah, you've got to build software and you need good tools to make it easy to do so.

Speaker 3

Yeah, so all of us on the team are dot net developers and especially with me, a few of us are consultants or you work at product companies where this is something that we need to use. And that's why it's good to have we have a whole country organization and get up with things that all these addings exist and we can help provide that are in the box so you can find and the if you go like the cake has a tag on you gets you can

easily find all those two. But it's hard with Sometimes with money comes expectations also, so it's usually what I've done something for money has been me as a consultant to code for someone, which makes it really easy. Gets clear, it has a boundary as a start and a stop date.

Speaker 2

That's not how open source projects work in this no no.

Speaker 3

But I mean if you're sometimes hard to explain, like there's some have high demands sometimes so they're very demanding and their get up issues and and like sorry today I want to walk the dog and be my kids instead, So you're not a priority.

Speaker 2

But I do my actual job so that I can pay my mortgage.

Speaker 3

Weird, but like if you're paying for my work, then you will get priority. It's not it's like some of the things that that's the worst thing I can say, like you want to be paid to solve this or but it's it's like if you want me to pay artis you over my customers and my kids and my wife and I want something back. But also sometimes can be I know a couple of years ago there was like the student from brazila pin me and DM and he was so nice about it. So we just spend

like a night doing pair programming. So but that was like because I wanted to, And its like one of the driving factors, like like cakes have been for so many years, more like in Marathon, it's like not big bang things, but we had done a little each so we've been stable around. And there's a lot of open source product that they do a spike and then disappear, but it's.

Speaker 2

Also the thing they needed for their project and then they're gone.

Speaker 3

But it's almost harder to to do something where you can have be around like you have, like be around for a decade and still be active. That's harder long term because you need to take care of things, you have to be you have to like live with decisions you made twenty fifteen or twenty seventeen or that it's It's like, so I have a couple of interns now and I have to explain the whole job because we have been through the whole like Dotcore, one product, Jason Thing,

dot Court and the whole thing. Like you are like you don't know how good you have it. I'll tell my interns like you haven't seen the things I've seen.

Speaker 2

Are open source stare.

Speaker 3

But I mean, I think it's important that you do it for a recommendational thing because otherwise it will burn out. It's and the sad part I think is that enterprises should care about more about their software bilom.

Speaker 2

With it's your build system like this, but also a small piece of work.

Speaker 3

Yeah, but any dependency, I think you should care about more because if you look at your software the heroes, if you don't know who's behind one component, that's a risk. And if any if it was something any other things, you would ever treat that as a huge risk. But there's one guy that has this critical component and that's why we're kind of sad. Now when I see people, oh, then if this goes commercial, I will just rewrite it myself. Well, you should take care of the people before they go

bro the commercial or something. Why did they care about them when you just took their work for them? And also security device, it's really important to have a good index of what are your dependensies, how are they being patched, are they actively maintained and things that that, And that's the whole thing with what I really applaud you get for adding this support button. But at the same time, the cyndic in is like will people find that support? I would like this? Then this is the first step.

Hopefully the next step will be that if we'll be able to be report back into something like the dot cli or something that these are people you have packtes that you could support or even be part of things like the bill providers like I should have ups and get clubs and get hub Like could they want to do this data and say you have dependencies you should do some kind of funding to them.

Speaker 2

Yeah. Absolutely, And I've always looked at that from the GitHub perspective. It's from an area you're paying for an enterprise account. You hopefully have a bill of materials across all these different applications that all bill milt in your company, and you can look across the over source projects say all right, you know, from a CFOs project, I want to kind of check once a year and then have it allocated out of the project depend on and you

know make would obviously fall into that category two. But you know, one step at a time, they're doing the contributions at the new get level. Fine, you know, whatever mechanism moves as closer to the goal of making it easy for companies to do the right thing, because right now it's pretty hard.

Speaker 3

And problem is that people that have to monet they aren't part of that quisition process. That's one problem. That's the one problem with open source. Like someone does not that package add and and they just add that package and there's no like, as a maintainer, I don't know that someone has consumed my package, and they're like they can neither the CEO or CTO or whatever it knows that they have actually done a purchase.

Speaker 1

I want to go back to something you said in passing that it can create an index list of dependencies, right. I mean, that's everybody is realizing that having a software build materials or an s bomb these days is critical, but not just for your projects but for everything in your infrastructure. And this is just a way to add to that without having to jump to a lot of hoops. It seems to me, I am I based about that.

Speaker 3

I would challenge that everyone thinks it's important. There they think it's important once you have sit down and have discussion with management, like as a consultant, I like, do you know the risk you're putting yourself into ear like and then there's is a no brainer. But it's I really hope just.

Speaker 1

As so we think it's important. But that doesn't mean your customers think no it should.

Speaker 3

It should be just the supporting important. As you have a fire alarm or detector in your house, you should be able to have because if there is something like heart beat or something else, then you will. I want to be able to identify which dependence is do I have in my product to like, because are like the first thing? Are you affected or not? Or what that's or otherwise just being people wou take rashed actions to might even not solve the problem.

Speaker 1

So yeah, not everybody listens to security this week and there you go, they should I do.

Speaker 2

But also you know, an individual developer and given organizations only think about the things they added, They don't have an overview of all of the libraries that are used throughout the organization, and the people who are most could be most concerned about this, which tends to be leadership, aren't aware of what's happening.

Speaker 3

So that's what and that's why we like we use tools to index dependencies and report them back to some central location.

Speaker 2

Right.

Speaker 3

We often use things like actual log analyst disks to report as a central post. Then we can quite crearis across things and use tools to essentially what are the both the direct dependencies but also people tried tend to forget the transit dependencies have dependencies, right, and that's a rabbitoil.

Speaker 2

You have to go down and yeah, you have to explore the whole tree there to actually get at some of like this is how this is how deep this thing goes because there's always that little library called from that other thing that depends on this other thing. That's the one that goes away and everything breaks.

Speaker 1

Yeah, and that's why for reference sea log for j Yeah.

Speaker 3

Yeah, And I mean and you had the thing with open scesses. Well had the same thing, Like were a couple of people that had little attention, They weren't well known. Until everyone knows that the whole internet broke because of them, Yeah, and that was very unthankful for things. And that's why I think like CI tools and automation can really be really good because then you can you won't forget to

inventory stuff. You will test and build the same way because you want your bills to be reproducible and you want them to be as like things will change, the environment will change, you will have new dependence and things that, but you want them to be done in a similar way for all projects. And that's something I like. If you have something like a program language, then you can start thinking more like what's the recipe for our bills

in our systems? It can be more like an engineer for these things too, treat them as just like they should be just as high quality as you being with your regular code or video test or everything. And that's why we have done huge steps with things like JAM because before we had a point to clicking UIs and we had things that mut tasted over time and no one knows how how we got.

Speaker 2

There, and a word documented was always wrong right well.

Speaker 3

And that's the thing with reputation because it's usually it's either it's where we want to be or where we were but fairly where we are.

Speaker 2

So that's it's what happened last time, but often.

Speaker 3

Not saber reputation is where they wanted it to be. That was like the intentions for like the sister should have looks like this, and other things happened.

Speaker 1

I think that's going to be a common use of large language models is to parse logs and tell me what I need to today, you know.

Speaker 3

Yeah, And that's something's really cool, like being like take's being around for an eleven years. Is that I'm like, I sat down with curser one day and it could write cake scrips for me because there's so much nice out there. So actually I was impressed, Like how right it got it.

Speaker 1

That's good and good to know.

Speaker 3

And that's the thing about that. But well, if you have like a proper language with a language server and it has defined rules, that's perfect for all of them. So it can good for those scenarios too, Like you can actually be very productive if you have like constraints makes you more productive in elms and artis.

Speaker 1

I think that this software I think software development is one of those few maybe few, but certainly safe place for l l ms because we run our stuff through a compiler before we run it. You know, we we got fact checking. It's called the compiler.

Speaker 3

And if you have things like like I use a lot of we talked about testing in the starting of the program. You'll recommend like the listener there and I use a lot of snapshot testing as I should verify from simon cropt. Yes, so great, very because then it won't forget an assert, so you will always snapshot objects, which means that if things change, your test will fail. And you can also go for more like instead of doing those really small unit tests, you can go from

the outside in. And that's also really good because when an LM does something, they will get things totally wrong. But then you test at least hopefully will fail and if they don't fail, then you will have to fix your test also so they the next time you will catch it. So you're like, you will need to be an engineer and you need to you need to evolve.

Speaker 2

Yeah, for sure, And that makes a lot of sense. And it is interesting you see that these tools will be a way to get into the make flow if you want to, just because it's maturity means it's had great sample data to test.

Speaker 1

Are you going to have an MCP for for Cake or do you already I don't know if you if you need it, but we are like right because you have the s K. It's pretty self expand.

Speaker 3

But also like for some things it might think with us to work because we are using for a command line parsing, we're using the spectraor Console CLI product and it has now something called and the open sealizes back built in and some if you have suspect from something like Commander arguments. There's actually a person that did a

proof of concept MCP just now. Because if you get something that's parsonable machine, you have an MCP essentially, so all having if you have something that strongly typed, it will become easier. And and but I think and also if you can get more and more users, they can the advantage of something that live for many years that they can look at a lot of things. But I like this for things like the Agent m D they can put in the postories. We can have the instructions

as you can confined. I think something like we be learning become better because the instructions to to create boundaries for your LMS to make the more better context.

Speaker 1

Yeah, this is great stuff, what's coming up next in your inbox?

Speaker 3

I will be speaking at next week and dot dot com will be talking open my cake and like next by this airs it will all be done. So we are coming from from the black future, but we are like we were easing cakes versus six point zero. So the cake tool will still be supported along time the st K and we will launch that just after the town.

Speaker 2

Right be thinking this has got to be SYNCD with dot net ten is obviously their changes the foot.

Speaker 3

And that's been our mantra. We have always released the last years when the major version of the next comes out, and we'll almost have the same day or just after support for for kate with the dot version, so we will so we will launch at TWN and so that would be and will take a breeder hopefully it takes on Christmas and things. And for us there's been loads of fun because what I like when there's like big shifts and st K is it actually see it's as

a big code cutta and some fun. And this was fun because this like was one of the main just like when they have DOTTA tools or when when we had like the Rustling compiler and things that that's things that we can see like opportunities for some fe and this has been the whole The new Tennis K has loads.

Speaker 1

Of loads of stuff.

Speaker 3

There's so much there's so much talk about AI and things, but actually added a lot of developer good things that almost fall in the shadow of AI over there. Things you almost forget a fatigue, but there's a lot of good things in performance wise, there's new commands, so people should really play with dot ten and look at those areas too.

Speaker 2

It's it's not just yeah, and I'm I'm really looking forward to Studio twenty twenty six and just see what this rethink about. Yea, these new tools come into play and you know, more and more, I'm calling them just smart code generators, you know, because that's what they're doing for us. And if you use them well, they could spin up a pretty good code and if you don't, they'll make a mess.

Speaker 3

We've always been going to generate the code, and what I want to say is that I'm being good at maintaining code, because that's the next step. They're currently really good at spitting out code.

Speaker 2

Yeah, I think we got to get to a place where the model is trained against the codebase. That's there, and so it naturally constrains itself to the work that's come before and and you know, sort of keeps it in line. I think there's actually possibilities there and.

Speaker 3

It will be interesting with things like that. Would have liked the new like the framework that has new amdc ap use. But you have really good AI on the ship for developers. Yeah, like what can we do with local elms in concert with co pilot them. Yeah, that would be cool to see.

Speaker 2

A Yeah, trying to get my hands on one of those d d GX sparks and see if I can run the whole thing from there.

Speaker 1

Yeah, you and me both. If you find a source, let me know.

Speaker 2

It's going to be a mere three thousand dollars.

Speaker 3

Yeah.

Speaker 1

Tis you mentioned ordev the conference in Malmo, and Richard and I did that for several years. Boy, I really missed that place. I really missed that conference.

Speaker 3

Should go up next here.

Speaker 2

We'll try and figure it out. We will try to figure that.

Speaker 1

But we had.

Speaker 3

It's a great conference and it's good. It's like it's perfectly like Malm less by Copenhagen, and it's nice.

Speaker 2

To fly in to Copenhagen and take train up.

Speaker 1

We interviewed some of our idols there. It was really great, yeah.

Speaker 2

Back in the day.

Speaker 1

All right, Well, is there anything else you want to throw out there before we say goodbye? Tis?

Speaker 3

I don't know, like hopefully, like just play with the stuff if you want, and just ping thing else and give us feedbackcause we will take it where we think it's probably be. We won't. We still support all things, but I think this is probably way forward interesting and if we get that feedback from the community, will if people use it, they'll like it.

Speaker 1

Yeah, And hey, listeners, push the donate button. You know what I'm saying there, You go give him some monetary love. All right, Matias, thanks a lot. It sounds great and we'll talk to you, dear listener next time on dot net rocks.

Speaker 6

Dot net Rocks is brought to you by Franklin's Net and produced by Pop Studios, a full service audio, video and post production facilities located physically in New London, Connecticut, and of course in the cloud online at pwop dot com. Visit our website at d O T N E, t R O c k S dot com for RSS feeds, downloads, mobile apps, comments, and access to the full archives. Going back to show number one, recorded in September two thousand and two, and make sure you check out our sponsors.

Speaker 1

They keep us in business.

Speaker 6

Now go write some code, see you next time you got jud Middle Vans.

Speaker 3

Then on Texas

Transcript source: Provided by creator in RSS feed: download file
For the best experience, listen in Metacast app for iOS or Android