Episode Transcript
Available transcripts are automatically generated. Complete accuracy is not guaranteed.
Speaker 1 (00:01):
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
(00:21):
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 (00:43):
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
(01:04):
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 (01:14):
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 (01:33):
That's awesome.
Speaker 1 (01:34):
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.
(01:56):
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 (02:03):
That's really fun. Yeah.
Speaker 1 (02:04):
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 (02:22):
Oh right, yeah, now we get to the killing fields.
Speaker 1 (02:24):
Yeah. There were two assassination attempts on Cherald Ford, President
Gerald Ford, both of which failed.
Speaker 2 (02:32):
In culture Jaws, Oh man, dude, Steven Spielberg's big hit.
Speaker 1 (02:38):
Right, still a great You know, I think more people
are afraid to watch Jaws than like Friday the Thirteenth.
Speaker 2 (02:45):
You're probably right.
Speaker 1 (02:46):
But the fact of the matter is it's not a
gory movie. It's just a tense movie.
Speaker 2 (02:54):
Well it's that music is killing, right, John Williams Man,
John Williams made it.
Speaker 1 (03:00):
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 (03:22):
There you go Albuquerque, Paul.
Speaker 1 (03:24):
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 (03:43):
Yeah, progress, Yeah, So.
Speaker 1 (03:45):
Do you have anything in science and tech a space
that you want to talk about in nineteen seventy five.
Speaker 2 (03:49):
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
(04:10):
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 (04:18):
Wow, and because who needs those things? Yeah?
Speaker 2 (04:25):
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.
(04:50):
That becomes Zork many years later. But the original version
is cle.
Speaker 1 (04:53):
Yes, so these are like the Infocom text adventure games.
Speaker 2 (04:56):
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 (05:04):
Did I hear in the news that EA got bought.
Speaker 2 (05:07):
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 (05:22):
Yeah.
Speaker 2 (05:23):
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
(05:45):
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,
(06:06):
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 (06:22):
So back when America and Russia liked each other.
Speaker 2 (06:25):
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
(06:47):
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.
(07:08):
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
(07:31):
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
(07:52):
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
(08:12):
you couldn't match them up.
Speaker 1 (08:14):
Right, So you had to have like a holding area
between the two.
Speaker 2 (08:17):
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
(08:40):
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 (08:48):
Wow, that's cool. So this is like I just want
to talk about software, man.
Speaker 2 (08:55):
But there you go. There there's a history bit.
Speaker 1 (08:59):
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 (09:09):
Awesome, boar man, what you got?
Speaker 1 (09:18):
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 (09:29):
Remember that, Yeah, I remember, published late in the year
and a lot of f bombs dropped as I recall.
Speaker 1 (09:36):
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
(09:57):
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
(10:22):
shows how it works.
Speaker 2 (10:23):
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 (10:30):
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,
(10:51):
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 (11:09):
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
(11:31):
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 (11:50):
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 (12:00):
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 (12:12):
I know he is.
Speaker 2 (12:13):
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 (12:25):
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 (12:38):
That's cool, that's a good idea.
Speaker 1 (12:40):
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,
(13:04):
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 (13:19):
Aesome, that's the point I want to bring cake and people.
Speaker 1 (13:24):
Welcome back, Matias, thank you.
Speaker 3 (13:26):
Let's be good to be back.
Speaker 2 (13:27):
Awesome. All right, what have you been up to, friend, presumer?
Your cake centric? Is you're very cake browne.
Speaker 1 (13:33):
Well yeah, let's just start with refresh our memories about cake.
Speaker 3 (13:37):
Yeah. So Cake is a cross platform, cross environment, cross service,
open source built orchestra and framework and.
Speaker 1 (13:47):
It's not very ambitious, just a little slice of Yeah.
Speaker 3 (13:50):
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
(14:12):
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
(14:33):
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 (14:49):
So interesting. So what does it mean to you have
a Cake SDK, Well.
Speaker 3 (14:54):
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
(15:14):
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
(15:37):
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 (15:53):
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 (16:08):
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
(16:29):
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 (16:44):
You're preaching the choir mane.
Speaker 3 (16:46):
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
(17:07):
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,
(17:30):
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
(17:50):
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.
(18:13):
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
(18:33):
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
(18:54):
get a better develop a few cycle. So that's I
think what the CAKE brings to the tail.
Speaker 2 (19:00):
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
(19:20):
on a separate line each time like a crazy person,
knock yourself out, that's fine, lay it out however you want.
Speaker 3 (19:25):
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
(19:46):
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,
(20:07):
because it will end up in the artifacs folder because
you can test that locally and you can upload it.
Speaker 1 (20:12):
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 (20:21):
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 (20:41):
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 (20:48):
Yeah, it's agnostic. It's it's more orchestrating the tasks you.
Speaker 4 (20:52):
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 (21:04):
So now we know what cake is. You have some
stks that you want to talk about.
Speaker 3 (21:07):
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
(21:28):
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
(21:52):
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
(22:14):
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
(22:36):
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
(23:00):
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 (23:13):
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
(23:34):
rights at all. They could they could be able to
run separately.
Speaker 3 (23:37):
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
(23:58):
to be installed and things, so that's also good.
Speaker 2 (24:00):
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 (24:18):
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
(24:39):
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
(25:02):
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 (25:10):
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 (25:31):
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
(25:53):
is make it really easy, don't need to find out
which esoteric environments.
Speaker 5 (25:57):
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
(26:19):
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 (26:39):
And you support Android in iOS too right.
Speaker 3 (26:41):
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
(27:02):
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
(27:23):
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 (27:29):
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 (27:46):
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 (27:58):
Ye love it.
Speaker 2 (27:59):
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 (28:03):
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 (28:27):
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
(28:51):
never used. You know. Heck, there's still Team city support.
Who's got Team City anymore? That's awesome team City.
Speaker 3 (28:58):
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 (29:20):
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 (29:42):
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 (30:02):
Yeah, you've got to build software and you need good
tools to make it easy to do so.
Speaker 3 (30:07):
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
(30:30):
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,
(30:51):
it has a boundary as a start and a stop date.
Speaker 2 (30:54):
That's not how open source projects work in this no no.
Speaker 3 (30:57):
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 (31:13):
But I do my actual job so that I can
pay my mortgage.
Speaker 3 (31:17):
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
(31:39):
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
(32:00):
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 (32:09):
Also the thing they needed for their project and then
they're gone.
Speaker 3 (32:12):
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
(32:37):
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 (32:55):
Are open source stare.
Speaker 3 (32:59):
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 (33:12):
With it's your build system like this, but also a
small piece of work.
Speaker 3 (33:16):
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,
(33:37):
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,
(34:00):
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
(34:22):
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 (34:40):
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
(35:01):
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 (35:16):
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
(35:38):
that they have actually done a purchase.
Speaker 1 (35:40):
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
(36:01):
to that without having to jump to a lot of hoops.
It seems to me, I am I based about that.
Speaker 3 (36:06):
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 (36:24):
As so we think it's important. But that doesn't mean
your customers think no it should.
Speaker 3 (36:30):
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
(36:52):
or otherwise just being people wou take rashed actions to
might even not solve the problem.
Speaker 1 (36:59):
So yeah, not everybody listens to security this week and
there you go, they should I do.
Speaker 2 (37:05):
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 (37:20):
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 (37:29):
Right.
Speaker 3 (37:30):
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 (37:49):
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 (38:03):
Yeah, and that's why for reference sea log for j Yeah.
Speaker 3 (38:07):
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
(38:30):
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
(38:53):
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
(39:13):
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 (39:25):
There, and a word documented was always wrong right well.
Speaker 3 (39:30):
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 (39:38):
So that's it's what happened last time, but often.
Speaker 3 (39:43):
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 (39:52):
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 (40:01):
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 (40:17):
That's good and good to know.
Speaker 3 (40:18):
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 (40:39):
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 (40:57):
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,
(41:18):
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
(41:39):
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 (41:48):
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 (42:02):
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 (42:12):
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
(42:33):
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
(42:56):
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 (43:16):
Yeah, this is great stuff, what's coming up next in
your inbox?
Speaker 3 (43:21):
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
(43:42):
st K and we will launch that just after the town.
Speaker 2 (43:45):
Right be thinking this has got to be SYNCD with
dot net ten is obviously their changes the foot.
Speaker 3 (43:50):
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
(44:13):
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
(44:34):
this has been the whole The new Tennis K has loads.
Speaker 1 (44:37):
Of loads of stuff.
Speaker 3 (44:38):
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
(44:58):
areas too.
Speaker 2 (44:59):
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 (45:18):
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 (45:27):
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 (45:41):
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 (45:56):
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 (46:02):
Yeah, you and me both. If you find a source,
let me know.
Speaker 2 (46:05):
It's going to be a mere three thousand dollars.
Speaker 3 (46:07):
Yeah.
Speaker 1 (46:08):
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 (46:18):
Should go up next here.
Speaker 2 (46:20):
We'll try and figure it out. We will try to
figure that.
Speaker 1 (46:23):
But we had.
Speaker 3 (46:23):
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 (46:29):
To fly in to Copenhagen and take train up.
Speaker 1 (46:31):
We interviewed some of our idols there. It was really great, yeah.
Speaker 2 (46:35):
Back in the day.
Speaker 1 (46:38):
All right, Well, is there anything else you want to
throw out there before we say goodbye? Tis?
Speaker 3 (46:42):
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 (47:03):
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 (47:36):
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,
(47:59):
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 (48:09):
They keep us in business.
Speaker 6 (48:10):
Now go write some code, see you next time you
got jud Middle Vans.
Speaker 3 (48:16):
Then on Texas