Coding Blocks - Some Fun APIs
Episode Date: May 24, 2021We couldn't decide if we wanted to gather around the water cooler or talk about some cool APIs, so we opted to do both, while Joe promises there's a W in his name, Allen doesn't want to say graph, and... Michael isn't calling out applets.
Transcript
Discussion (0)
oh snap we're recording uh you're listening to episode uh 159 of coding blocks um you should
subscribe maybe on itunes spotify stitcher wherever you like to find your apps uh we're
we're likely there already probably all right well uh you can also check out the website where
you can find show notes examples discussion more links all sorts of stuff and uh you can send
feedback questions and rants to Twitter or email
comments at codingblocks.net.
Yep.
Be sure to follow us on Twitter at CodingBlocks or head to www.codingblocks.net
and find all our social links there at the top of the page.
And with that, I am Alan Underwood.
I'm Joe Zach.
And I'm Michael Outlaw.
If we're going to like prolong the W'm Michael Outlaw. If we're going to prolong the W's.
Outlaw.
I just realized too, Joe, you ruined it.
Because we could be between the three of us, dub, dub, dub.
But you don't have a W in your name.
Oh, yeah, no.
I used to.
We're just dub, dub.
Dub, dub, W. There we go.
No, there's no third W.
There's just dub, dub.
Oh, okay.
I used to have a W.
Wait, how do you
use that?
Because you
changed when you got married. You changed your name
as part of the... When I was a kid.
Or maybe
before I was born.
My name was
shortened. I think he's messing with us.
All in favor of he's messing with us
there's no you can go look at the i don't know polish family names you won't find any zacks
sure you'll find lots of zakasowetskas and zakasiewicz and stuff but wait are you polish
yeah for oh interesting so he may not be lying it was like like Zach Zawetzki. Would you really believe this?
Maybe.
I don't.
I don't believe anything.
Last few minutes, nothing.
Have we started recording yet?
I don't even know if we started recording.
He's buying a domain name right now, and he's going to point out the facts as soon as he gets his domain name.
This is also the same guy who, like every every episode introduces himself with a different name last
time he was joe me the money and now you're gonna believe that he's uh what was how did you pronounce
it again something with a w in it like no way i'm not buying it ski or something yeah i don't buy it
it's like zakowski or zacka sowetsky or something like every polish house name has a w in it
that's pretty awesome this episode is sponsored by Datadog,
the monitoring and security platform for end to end visibility into your Java
applications.
And Linode,
simplify your infrastructure and cut your cloud bills in half with Linode's
Linux virtual machines.
And ConfigCat,
the feature flag and config management service that lets you turn features on after deployment or target specific groups of users with different features.
All right.
So getting into this podcast, the first thing we like to do is thank those who have taken the time to write us a review.
So we don't have names next to this.
Joe, you want to take this first one?
Yeah.
So big thank you itunes
lp 1876 and outlaw you want to get the audible ones sure on audible we have john and lee so
thank you very much seed those up and by the way lee likes candy and beer not sure which one's more
yet but beer i think he established beer if i remember right
yes appreciate those so we look forward to more three-letter name uh reviews coming in
those are the easy ones yeah uh all right so this particular episode we didn't even have a topic
introduction so we're recording on a Saturday, which is odd for us.
So none of us are really prepared for any of this.
But in this episode, we're going to do a little bit of water coolery type stuff and also talk about some APIs that we like sort of tying into the episode before last.
So I guess I'll start off with the I think the only water cooler one in here.
And this was just a question to kind of find out what you guys think opinion wise, because we've all been, I think we have vastly different opinions on this.
So, I'm curious about it.
So, we've talked about where people will take a technology and
they turn it into their hammer right um and by that we mean they they overuse it they use that
one technology to solve every problem they ever have rather than looking for other technologies
right so if you're a carpenter right and you had a hammer, you could probably do most of what you needed to do in a very dirty way.
You could technically dig a hole with a hammer.
Right. You could even cut a board by smashing it to pieces, right?
Or maybe using the claw in.
Right. Yeah. You could make a hammer do a lot of things, but it's not really good at that. You buy a saw to cut a piece of wood, right?
So we've talked about in the past, a lot of people like to use relational databases as their hammer.
And the reason is, is because you can do anything with a relational database.
Well, I wasn't even thinking of that.
Like, I was thinking of Java, for example.
Like, you know, it could be your language.
So, like, you know, if Java is your language, you could totally overuse Java, for example.
I'm not going to say that applets were an example, but, you know, you could try to like put it everywhere.
Right. In places that maybe it shouldn't have been used.
Right. Yeah, totally.
Where there's like a better technology.
And so here's my question.
Where do you draw the line?
So we,
we,
I think the three of us can agree that taking one thing and making it your
hammer and being like,
you don't,
you don't diverge from this hammer because you know how to use this thing,
be it a relational database or your language of choice.
There's a point where you have to go.
This doesn't make sense.
Why are we doing this? Right? Where, where's that line drawn? So I'm going to bring up an example.
So let's say that you have, you have an application and you need to, in this application, show this relationship diagram, right? Like maybe it's a, I don't know,
like think, think of Facebook just as an example, right? You have your first layer of connections
that are your friends. And then there's another layer of connections that are friends of friends.
And then there's another layer, right? When you go that route, say what?
Topology, like a graph.
Right, a graph.
I was trying to avoid that word.
Network, there we go.
A network diagram type thing.
So you can do this in a relational database, right?
You have relationships where things are just, you know,
this ID ties to that ID ties to that ID.
Writing that query is disgusting and probably not performant.
But at what point do you say there's another technology out there?
You have this one need right now for it.
And you look and you say, hey, there's these things called graph databases that do exactly what you need it to do, which is this person has these direct connections, has these connections, has these connections, right?
Like that is that sort of in Joe's act.
Correct me if I'm wrong here, but that's kind of how you write the queries.
Like this person has this, has this, has this.
Like that's it.
You're done.
Now, is it enough for one use case?
Maybe it's an important use case, but you just have that one to bring in a new technology stack.
Or because here's the thing, right?
Bringing in that new technology stack means that you have to
learn how to load that data. You have to learn how to set up those nodes, those representations,
those relationships. You have to maintain that technology, keep it running operational,
all that kind of stuff, right? There's a lot of hidden baggage that comes with anything you bring
on. So that happens if you bring in this thing, but if you try and
keep it in the relational database, now you have to figure out how to load these tables, set up
these schemas, write the queries, keep it performant, do all this kind of stuff. Where's that line where
it says, you know what, this use case is good enough, big enough to where we want to bring in a tool specific for the
job do you want to take it jay-z i know the answer so i'm i'm going to put on my design
pattern evangelist slash jim hummel sign uh hat and basically if you factor it well you should
be able to swap things out without too much pain so just pick one uh you can sweat and sweat and sweat over what's the
right thing to do and it's really hard you know question and even if you know the details of the
situation it's still really hard so try your hardest to make it so you can swap that thing
out if you need to and then just pick one i will say too um if you have one technology going to two
is a harder decision than it is to go from 19 to 20 right because you've already kind of invested
just kind of being a crazy mess and so um you know there's something to be said for uh just
trying to keep things simple and so um yeah i at this point i i kind of go back and forth like
right now um i'm feeling a little bit like,
man,
just hang on with what you got unless you're sure it's not going to work.
And if you have some skills requirements or something where you,
you know,
you're questioning that,
then that's another story.
But if you think that there might just be an easier way to do something,
um,
then,
you know,
it depends.
Like Kubernetes has kind of modularized things in a lot of ways, so you can kind of
have a good separation
deal with things like the network layer
and have separate components, so that kind of eases some
of that pain, but you may not be invested.
If you're just doing a small project, then you don't
have that kind of stuff already.
But that's what I was kind of saying. If I have 19
services and the service mesh set up and it's
all, I've got a mature
CICD pipeline, then yeah, sure, add it. If I've got a mature cicd pipeline and yeah sure add
it if i've got a little project now that's you know um kind of stringing together a couple small
you know like hosting platforms in order to keep that thing going then adding another one is a
really big deal and it's really going to increase the fragility of your project so um, that's, that's where I'm at. Just do it right.
I'm dying. Okay. Uh, let me, let me give you the correct answer. Then the correct answer is it
depends because, uh, so in your, in your one example, like if that is the only, if you only have the one use case that you have and that one use case is maybe
not a heavy hit use case, right? Like it's, it's only going to be hit like, you know,
2% of the time or something like that, then it might not be worth the additional effort to take
on that other technology, especially with like, you mentioned the bringing in the infrastructure
for it, bringing in like any kind of the bringing in the infrastructure for it,
bringing in like any kind of data that you'd have to, cause you're basically going to dupe
some storage for that data to put it into that other technology, like, you know, going from a
relational database into a graph database. And so that, that comes at a heavy cost and it might not
be worth that cost if that thing is only going to be hit like one or 2% of the time. And you know,
that one or 2% of the time, okay, so it takes it a half a millisecond longer because it's coming
from relational database. And maybe the query is like a little bit more complex to understand,
but it's functional. Then functional is often the times, you know, more often than not, you know,
good enough, right? Like don't let perfect get in the way of good enough, right? You know, more often than not, you know, uh, good enough, right? Like don't let perfect get in the
way of good enough, right? You know, going back to like our Zappos discussion from last time,
right? You know, it wasn't perfect that they were have to rush out to the store to buy the shoes
and then sell it, but it was good enough that it got them acquired by Amazon. Right. So it, but
if that use case is like the primary thing that's going to be utilized a
hundred percent of the time,
then yeah,
sure.
It would might,
it might make more sense in that case to evaluate like,
Hey,
or is it worth the pain to bring in this other technology and to like stand up
the database and figure out how to sync the data from one source to the next
because it is going to be such a heavy use of uh you know
of our application i like that approach i like that quite a bit actually so how important is this
or how um pivotal is it to your application i like that i like that a lot i i've i've been
thinking about this a lot because you because maintaining different stacks can be a pain
and there's always the, now let's not do it now
it doesn't feel like the right time now
and then the next use case comes up and you're like
man, we should have done it then
I wish we had done it then because then we'd have it now
but you can't know because you weren't there
that's a tough, tough tough hard line to be on
well especially if you think that like you only have the one use case right now but you
think that there are more coming then that should be part of the evaluation criteria too
at least in my mind because part of the thing too that like i mean we struggle even with
with this even like on you know the regular day job kind of situation where it's like, you want to bring in this new
technology and there's always going to be some, like, you know, from everyone on the team,
regardless of their involvement with it, like something else, we got to bring in something
else. Like, I don't want to deal with the hassle of it's a pain, but you know, it's like, okay,
I realize it, but once we establish it, then there's other things that we can do with it that are going to be beneficial.
And so, like, you know, I keep in my mind, and I've made this reference to other people too, like, if you go back and look at, like, we've discussed on this episode the Uber engineering blog, right? And how they have like all these like great blog articles and diagrams of their,
you know, how they grew their data lake, right? And they would have like specific copies of data
out into different types of, you know, databases or, you know, whatever the storage mechanism was
so that they could, you know, have
it available in a format that was specialized for that particular use case. Right. So there,
there is definitely a benefit to doing that. And you shouldn't silo yourself into a world where
you're not willing to do that. So if that means putting it into a document database for one use
case, you know, that's
more, uh, this better index for searching versus another one that's better index for,
uh, relational kind of queries versus another one that's better for graphing versus another
one that might be just better for, uh, archival sakes, then, I mean, you should, you shouldn't
automatically discount something just because you're, you don't want to bring in a new technology.
That's wrong.
Yeah.
Unless you're bored.
Unless you're bored.
Always the great reason to bring things in.
Yeah, I mean, I guess the only counter to that is the whole Yagni, right?
You have an idea that there might be something that you could use in the future, but sometimes it's hard to know.
So Yagney, for those who don't know, is you ain't going to need it.
And it's hard to know.
So it's always tough.
But I think what you said, Outlaw, makes the most sense.
Is this a 1% hit thing?
If it is, then maybe it doesn't matter.
If it's something that you think is going to be a 20 to 30% use case on
anything, then maybe it does make sense to,
to at least shave off some time to consider what alternatives are out there.
I like that.
All right.
That's my water cooler thing.
The hard question out of the way. All right. And so I got a. All right. That's my water cooler thing. The hard question out of the way.
All right.
And so I got a couple of APIs.
So we talked about,
we had the API episode where we talked about different kinds of APIs,
not just rest and different things you can do with it.
And then we had the entrepreneurial episode where we talked about different
ways you can make money.
And so then I thought it'd be fun to
kind of take a stab at kind of putting
together a couple rough business ideas, and that
didn't go very well. So instead,
I just kind of
got a couple APIs that I was
able to find that I thought were just really cool
that I could do kind of cool stuff with.
And so the first one I want to mention is
called ROG,
which is a video game database
and uh there is a free tier and there's also a paid tier that goes up to i just had it
uh just had it uh i don't know i think it was like around like a hundred dollars two hundred
dollars uh that you could kind of pay if you're doing a ton of requests the free tier is going
to be flying for small projects it's totally great uh what's really cool about is that you can go and search uh basically the history of video
games you can look genre studio technologies you can find youtube videos about this stuff um
platforms consoles so if you wanted to make a website all about first-person shooters and just
have every first-person shooters have a database on there have make it so people can kind of add tips tricks and information about items in that game or whatever if you want to kind of take
that and expand it this is a great way to kind of get that bedrock and keep up to date and so i just
thought that was pretty cool and that guy kind of got me thinking about other video games and so i
went and took a look at um some other apis that are kind of in the neighborhood. And so first I got to mention the Poke API,
which is something I got from Jim Taylor
over at.NET Core Podcast and Types and Spaces.
He built a Pokeblazer app using the Poke API,
which is a free API that has a ton of Pokemon data.
And when I say ton, I mean it's got images,
it's got information about all the different moves and how much damage they do across the game.
So you can go look at Charmander and see game by game what's changed and just pull back a ton of data.
It's really cool.
And there's some legal limitations there.
Hey, going back to your, I'm not sure how you pronounce it, the ROG.
Is that how you pronounce it?
ROG.
W-A, no, I'm sorry, R-A-W-G.
ROG.
You were looking for the request per month.
If I'm reading this correctly,
if this is the one you're talking about,
it was for the free tier, it was 20,000 requests per month.
Yeah, that's pretty good.
Yeah.
Do you have the pay for the next tier up?
It's 50,000 and that's $150 a month.
Okay.
And then if you want the enterprise version, you know, they don't even include a price on it, which, you know, my parents always
said, like, if you got to ask the price, then it's too expensive. Uh, and that was a million
requests per month up to, you know, what's cool about this though, the, the Jay-Z didn't go into
is if you hit that thing, they have like, it it's really well done. Oh, yeah. You can go down
the code snippet thing and basically say,
hey, which language do you want to hit
this API in? And it'll generate the code
for you. So you can basically copy
and paste this thing into an app
and have it running in no time.
I love documentation like
this. Yeah.
Yeah, it's really good. And, you know, we talked about different ways
you can make money. This is an example where back-end programmers went and they built an api and now
they sell it on api marketplaces and the fact that it's 150 is really interesting to me because it
tells me that there's probably at least one person out there that's willing to pay 150 and the only
reason they're willing to pay 150 is because they make more than that yeah so it it kind of gives you a hint there
you could make a video game kind of historical website pair it with the right kind of other
things with this like amazon affiliates or sponsors or you know a youtube channel or whatever
and make probably you know a multiplier of that 150 at a minimum. Now, in fairness, though, like regarding that documentation,
though, this is on rapid API dot com, which we mentioned in that API episode a couple back. So
I'm not sure if it's like because, you know, prior to that episode, I hadn't really, you know,
seen a lot about rapid API. So I'm not sure if that's just the format that they provide the
documentation in. It's like they've already got this like great template and like contributors have to follow that template or something maybe
yeah so um this is my tip of the week so uh it's a little unfortunate i'm gonna bust it now
but rapid api uh presents um like a consistent interface to find other apis so they take all
sorts of apis and they bring them together and they give you like examples and, you know, single clicks that you can use.
I didn't realize you were looking at that link.
And so that's how I found most of my APIs.
And this is really amazing because it makes it really easy to compare two APIs that may be similar and like kind of get them and kind of apples to apples in similar ways.
Because otherwise you're just like browsing through the marketing materials trying to figure out what's actually different between two apis uh the second link is actually uh the link to like the you know
the company's website that's got more in-depth information on the different calls and stuff
and it's got some examples but even there um like the uh the actual home page has a lot kind of more
inspirational type things we can kind of see like what people are doing if you just go to rock.io
you can see um kind of like a little bit
more about the kind of stuff that they're doing and so i'll put a link here too but it's got like
images and stuff just bouncing around on rapid api looking at like other um apis they they are
all in that same kind of format so that's awesome yeah it's really cool so yeah i just went to
rock.api.io
and you can see they basically got
like a video game website
kind of built up around it.
So they probably built this website
and said, let's go ahead
and make the API and sell it.
Wait, I just want to redo that URL
in case if anybody was trying to follow along.
It was api.rog.io.
Yeah, for examples.
But if you want to go to the actual
like kind of marketing site for it,
like the just kind of see thei being used to make a website uh then rog.io is the way to go
and uh so if you go check that out it's just got a website full of uh of images video games and you
like mouse over the image and it shows you a little clip of the game you can click plum play
the full video you can see metacritic reviews release date action rpg you
can drill into any of these things so charts we go look at the top charts for uh 2021 for
uh strategy games you know even like that i'm sorry even the format of the uh rog documentation
though it it reminds me of the docker format where like the center panel is like you know
uh content about it but the right
hand pane would be like examples and then there's a left hand pane that's like the the tree the
navigation tree it's very well formatted i really like it yeah totally and so even with the free
tier like you can make it cool it's like kind of video game search based kind of uh api there
and it's probably backed by elastic like kind of the way they have some of the pages laid out and the actual wrong.io
look very elastic to me i think you just like saying wrong i do uh so i also went like i
mentioned i went and googled just a couple other games i'm playing legends of routine rune tarot
it's kind of like a game kind kind of like Magic or Hearthstone.
They've got a fantastic API with images of all the cards, resource costs and stuff.
So you can make a cool little site where you can make decks and save them and stuff.
Destiny 2 is another game that's got a really nice API that people have made mobile apps and stuff.
So people can kind of keep track of events and whatnot.
I did go looking for Overwatch.
I found an unofficial Overwatch API, and Blizzard has APIs,
but I could not find an official Overwatch API.
Oh, Blizzard has an official one.
Do they?
They do.
You have the URL here?
Develop.Blizzard?
Yeah, so I found Blizzard, and I found they have uh about games but uh when i was looking overwatch
was not listed oh you wanted specific to just the one game yeah so they have information on
battle.net so i think you can get like stats and stuff from games so i don't know i don't know how
much there is specifically about overwatch but i was hoping to basically find something to say like
hey give me all the characters like give me some images get me some information about their moves and i can go make like a team composition website which i think um a comment 100 years ago with
overwatch there has to be i mean i know that they're they must have it because i've seen
websites where it's like hey you know you can go in and give your uh battle.net id and it'll say
like hey here's your overwatch stats um you know like how well you
did in this game or the last game or in total and uh so i definitely there's an unofficial one that
seems to be popular that uh i see you know says it provides some of that stuff but maybe you can
get it all from the blizzard you know battle.net api i don't know but i couldn't find any actual
calls or anything but yeah i'm looking here and there's another one uh overwatch api unofficial but you can get player profile stats
and segments and so i don't know how they're doing that maybe they're just wrapping the other
one and kind of catering it more towards overwatch i don't know other kind of point is like if you
have a video game that you like then this is a great way just search and see if they have api and if you ever saw you play like one of those like survival games or a massively
multiplayer online game where you have to like go look up this item and see what other stuff you can
craft with it or whatever then the way a lot of those people make those kind of wiki type sites
is by finding an api for that game querying, and then kind of building a website around it.
You could even jam stack it,
like take all that stuff,
generate it if you don't need real-time data,
do it all at build time,
and then make calls out to APIs
for any specific real-time data you need.
And there you go.
You just made an awesome video game website.
And maybe it makes a couple bucks.
Who knows?
This is totally off the rails,
but that whole converse comment
about the the rog format the documentation i was thinking of the kubectl documentation now the
docker and but i found at the bottom of the the rog um site where it said like uh it was i forget
exactly how they worded it but something about about, you know, following the, powered by Redock.
And I went and there's like a whole GitHub repo on Redock.
And it is that, it's an OpenAPI Swagger generated API reference document that is that format.
Oh, wow.
That we were describing and, and it doesn't look like cube cuddle is using the same,
um,
thing for,
for it's,
uh,
you have to generate this documentation,
but it is.
And if you're familiar with that cube cuddle document format,
then it is in that type of format.
So now I'm going to have to add redock to all of my projects to,
cause that looks really nice.
That's pretty fantastic.
Like that means that they're generating
all of that documentation on the fly it's like every time the version's automatically updated
like boom documentation's already done too yep yep and it looks like it's a react component too
so you could probably embed it into existing websites pretty easily too so you're going to
embed it into your documentation oh it's probably the re part yeah yeah that's really nice yeah i
mean that's a great tip of the week what What if you're, though, on Angular?
I would have to assume it would still work because, you know,
this is generating on the fly.
So I would assume this part doesn't care about the rest of your app
because it's its own thing.
It's its own endpoint, I would assume.
Maybe.
Yeah, I don't know.
That sounds like a good project.
It's really cool though it does
look really cool redock so any game you like you should give it a shot and see what kind of data
is out there and if i mean if you're gonna be making a website why not make it about something
you enjoy so i found uh an api i would like to add uh to our conversation which is redock
just kidding all right number two so number two i'm stealing uh i listen to a podcast called
oh geez um i'll remember it in a second here that's a really long and weird name
oh geez i'll remember you know podcasters they don't uh they're not so good with brevity
is that a stab at us
i mean you don't get into this business because you don't like talking right
or maybe you do and it's because your friends drag you into it yeah that's happened
so uh so this podcast is called not so standard deviations with roger pang and hillary parker uh so not so
standard deviations uh it's i got for a while there i was like oh you know i'm gonna try and
learn more about math and machine learning and so i subscribed to a bunch of uh like statistics
oriented and like data science podcasts and that was like the only one that i just kept up with
just because i just like it and so i was learning something uh but they were talking about uh the guy's uh he's like a
professor works at some university in uh around baltimore and he was working on a project where
he was getting satellite images uh from places around baltimore and using using it to compare
images from like one day to the next so like you could do things like looking at number of cars and
parking lots around a walmart to see how COVID was affecting shopping.
And he was looking at like for pollution.
You'd look at like maybe water levels or trying to measure droughts by kind of looking at these things by literally taking the same picture from – you can even do it multiple times a day.
But say a week apart and say has the water gotten bigger or smaller in this lake so he's just
talking about doing cool kind of stuff like that or looking at how the trees change with the seasons
or whatever uh just uh and he just mentioned just kind of rattle off a couple really cool ideas
that things were people doing in data science uh with satellite imagery and so i looked and
there are a surprising number of companies with satellite imagery GIS map data available for sale.
And I got two here that had just really nice websites, planet.com and highbirdie.com.
And Birdie is spelled B-I-R-D-I.
And the company name is actually just Birdie.
But let me tell you the kind of stuff that these companies
uh offer and these are not there are far more companies that do stuff like this
so tiling services so you know when you use something like a google maps and it's it's not
so much noticeable anymore like a map quest or a being and you kind of move the map around and you
see it kind of pop around in squares. You ever seen that?
Yep.
Yep.
Yep.
Especially at Google maps.
You used to do that a lot too.
You'd see like one,
one square load in.
Yeah.
If you ever want to see it,
if you ever,
if you ever want to reproduce it,
just go open up your dev tools and then change your,
uh,
your throttling.
Uh,
if you check toggle your device type,
you could change your throttling to say,
you know,
a really low-end
mobile connection and then go to it yeah and you you'd see and i don't know how many pages like
normally shows up on a website i'm sure it has to do with your resolution but they figure out
basically um they chunk this huge gigantic picture of the world uh world into all these small
pictures and then they only send you a few pictures that your your browser
will stitch together in order to see the map and so they're responsible for basically providing
those images so you say like i don't know here's my location here's my latitude and longitude and
i want 50 miles and they'll say okay well here's uh 12 images at this resolution that you can use
to display on your website in order to show that
area. And here are the, you know, maybe the 15 around that we'll go ahead and kind of pre-buffer
those. So you've got those available in case somebody needs to move it a little bit. Now,
their APIs take care of kind of stitching out stuff together. So, you know, don't get me wrong,
you're not getting all this stuff back. But the point is that they've got different kinds of
images, like maybe thermal images or, you know, weather patterns or stuff
like that. And they're responsible for kind of chucking that up. So you can, you know,
have that kind of service where you say, here's a location, show me things nearby,
and then you can let the user kind of browse around. So that's the kind of stuff that they
offer with their imagery. Now here's things starting more interesting analytics so road and building detection uh
change detection uh one here uh one thing and this is uh relates to the the change detection
i saw they particularly called out on uh planet.com uh sorry uh was on birdie.com was a
well pad detection detection now that name stuck out to me because i didn't know what the heck i meant so i wouldn't look it has to do with building pads concrete pads for oil wells
so if you're an oil company and you're curious where your competitors are drilling for oil
then you can sign up for this service and see where new oil pads have been built.
And because they've got a historical data, you can say like, hey, let me see for the last three years.
Where have new oil wells been being built in these couple areas that I'm interested in?
I want to see where other people are drilling.
Aircraft detection was another one.
So they would show a picture of an airfield and count the number of airplanes basically which is another cool way of kind of like tracking travel um so if you're working
and say in the government you want to know how covet affected uh small airports this is a way
to find that out and that's a pretty cool way of like you know solving some pretty interesting
problems that are really hard to do without satellites which pretty expensive to put up there
if you want to create your own satellite for a small project right that one feels like it has
military use cases yeah maybe it does i did hear um one thing uh roger mentioned on on the podcast
was that uh there are limits to the resolution for the satellite services and uh like the
government basically there's there's
information about the government has access the u.s government at least has access to much much
higher resolution so they're actually capped like by law like what they can send you and so that's
probably where some of that stuff like the detection comes in because it's probably not
too easy to get a resolution that can say count cars or something or see even see people but um they have that information they just can't release it to you but maybe they can release it
to the government who knows that's really contracts that's really interesting because
i don't know if you guys remember years ago when gps was becoming popular there used to be similar
type things around that like you couldn't back in the day the government could gps locate you within you know
a foot but um regular you know civilian type stuff it it couldn't be within 30 feet or something i
mean i think it's changed over time but but yeah that that's really interesting yes yeah it's really
cool uh and so this is an example of something you know like i mentioned like you can't just shoot your own satellite up and start doing this stuff so this is an example of something, you know, like I mentioned, like you can't just shoot your own satellite up and start doing this stuff.
So this is an example of something where the pricing is hidden.
So I don't know what it would take for a small number of requests.
But if you only have a small number of requests, it may not be that bad.
This is an example of something that you could absolutely build a business on.
And this is absolutely information that you just can't go out and get on your own. So you kind of have to like, you know, cooperate and partner up with a company like this because you just can't get this data on your own.
You can't get the same kind of data from even something like Google Maps or whatever.
The last one I wanted to mention for maps is tasking.
So this is where you can say, I really care about Lake Okeechobee in Florida.
I want to see how it changes throughout the day.
I'm tracking bird migratory patterns.
So how about I pay you extra and I say I want snapshots of Lake Okeechobee 12 times a day at this resolution.
Then they'll do it when they fly over they will point their cameras uh at your location and take pictures specifically just for
you and one thing i thought was interesting that they mentioned on the show i was speculating
basically about when um remember was it the Evergreen or whatever, whatever that barge was that blocked up the Suez Canal?
How many companies, like either news organizations or just shipping companies, were going and buying these, basically tracking information to see how far along that project was for digging that out and trying to get that information from satellite.
And they were speculating on that. So, you know know i don't know if that's actually true or not but it's just kind of
a cool example where you can kind of think like oh there's a an incident uh over in this part of
the world let me get a bunch of pictures of to track and see uh you know what's happening after
like uh i don't know national disaster or something so it's pretty cool that you can do
this kind of stuff and and again it's just cool that you can do this kind of stuff.
And,
and again,
it's just not something you're going to be able to build on your,
on your own.
But if you partner with something,
you can build some truly unique and impressive projects for your resume,
maybe for your life.
I don't know.
This is really cool.
I'm all over the website reading stuff right now.
There's in their FAQ,
one of the things,
can I use birdie products
to track competitors activity and their answer yes you can upload any location you wish to track
into our platform giving you valuable competitive insight without the need for disruptive or costly
ground resources so yes in short you can spy on your competitors. Yeah. And you imagine market research, too, like, you know, the airplane thing.
Like if you're trying to, you know, building a restaurant is not a great idea.
But maybe if you're trying to tell you a parking lots, if you want to do car detection on parking lots, you're trying to decide whether you want to build a new giant sportsplex.
Then maybe you do want to look at parking in the area or just how much traffic, you know, how many people are moving into that area and out of that area every day.
And this would be a way to do that.
It's really neat.
Yeah, it's neat.
So I'm curious about the pricing.
I wish they had it on the website because it would be something cool.
It's like, hey, could for $100, could I do a small like research project?
Like that would totally be worth it.
I don't know.
They probably want to sell you a subscription though they say it's affordable they don't say what it
is we have affordable imagery packages yeah yeah i wish i had at least for the beginner one on there
is it just me though like do you ever just get, like, upset?
Like, you just find, like, the mapping software.
It doesn't matter which one it is.
Pick one.
It could be as simple as, like, Google Earth.
Like, just fascinating to just go poke around.
Totally.
You get to play CSI on your own.
Like, I'm going to zoom in, and it does that cool zoom in view, you know?
Yeah. on your own like i'm gonna zoom in and it does that cool zoom in view you know yeah like i love to poke around on on uh just spin that the globe on google earth and be like let me zoom in on this
area what does this look like you know what you would love outlaw they actually have google earth
in vr and i'm telling you right now that is is a trippy, cool experience. Like you could basically jet your way around the world and, and you know,
like, like you're talking about,
it'll do that zoom thing on Google maps or earth or whatever else.
But when you're in there and you can just look around at things,
it is amazing.
So they have,
but did you also know that they have the, uh,
view if you were to turn around?
So there's also Google sky.
Oh,
that's funny.
Have you ever looked at that?
No,
I don't think I've heard of it.
So,
uh,
Google.com slash sky.
And it's basically like Google earth,
but for looking at the stars.
Oh,
that was pretty nifty.
Yeah.
And so you can do the same kind of like zoom
in and whatnot and see like you know bands of galaxies or whatever and see the tiling there too
it's super cool and as you zoom in you can see the resolution that's like the the tiles actual
images that you send to you change it's like hey look i'm looking at four by four i zoom in now i'm
looking at five by five and i can tell that can tell that it's changed the actual images.
Yeah, and if you zoom in on a given galaxy or whatever,
you'll start to see more and more of the stars start to...
What am I trying to say here?
The quality of their rendering starts to get better as you zoom in,
you know,
as good as like what current Hubble technology can provide.
Right.
Or now there's like a better one than Hubble though too.
Right.
Isn't there,
isn't there a new one?
Or no,
they keep upgrading the camera on Hubble.
I think is what,
yeah,
whatever.
Um,
yes.
And so I totally love all the stuff related to it.
It's totally creepy by the way
like all of that you know planet.com and birdie uh or highbirdie.com you know that the data that
they can provide is creepy yeah yeah there's definitely some ethical issues it's like hey
what time does this person usually uh leave for work every day let's uh you know let me schedule
some stuff uh let's get five pictures between an hour of 9 and 10 a.m something like that but i don't
i don't think they can give you that uh that high of a resolution and it's that's why they have those
laws and regulations in place right um to try and protect against that stuff although you know hey
who knows uh so that's what i got here, is a good way of getting into the affiliate game.
And so this is,
uh,
an API called rainforest API and they call it,
uh,
the bill themselves is the missing API for Amazon dot,
you know,
whatever,
calm UK,
FR.
Oh,
what a great name to go along with it to Amazon and rainforest.
So Amazon has APIs for
information about the products and whatever. But this
website has more information, presumably
because they're doing some scraping and some
other things that would be tough for you to do.
And so they'll sell
an API on top of it where you can get
things like reviews or categories
or real-time products,
offers, things that are in sales, stuff like
that, bestsellers. So this is a great way to build websites where if you want to try to build something like you know
we talked about compare some website like compare keyboards or whatever this is a good way of doing
it and they do have their api pricing uh listed uh so nine dollars a month you get a beginner plan
that's got a couple hundred uh requests actually oh and even if you there's a free 100 request
trial that you can do with no credit card.
But what's interesting about this is the pricing.
Oh, sorry.
And it's $10,000 a month for the starter
plan. There is a $9 developer plan
too that's much lower.
But $9 is the
minimum. 500 requests a month.
It goes up
to $90,000 a month.
So then there's plenty of plans in between you know there's uh the infrastructure xl or infrastructure volume uh this is another
thing where it's like if you see they're charging ninety thousand dollars per month
you can make way more than that using this product.
So get your brain juices flowing.
This is, you know, we talked about like Tractor or Camel, Camel, Camel.
These are kind of Amazon websites that let you like wish lists and compare prices and stuff like that.
That's the kind of website that you can build on this without having to do all like the sweat and work and worry about throttling and getting around all the funky APIs and stuff.
They take that pain away from you, but you're going to pay for it.
But I always like whenever I see a high price tag like that,
it just lets you know that assuming this isn't just a flash in the pan kind of BS website that's going to disappear next month,
they're probably doing a lot of business through this.
Man, that's great.
$90,000 a month there.
I don't know if I could afford that.
I was fired yesterday from the
keyboard factory because I wasn't putting in enough
shifts.
$90,000 might be
a bit tough.
Oh my gosh.
That will get you $500 million requests a month
by the way that $90,000 plan.
With 250 custom zip codes. I don't know plan with 250 custom zip codes i don't know
what the zipper postal codes i don't know how that factors in that's interesting i was wondering too
yeah i saw that too like it was limited to one if you were on the developer plan like maybe one zip
code from where you're calling from i don't know yeah yeah that's interesting we'll never know
there's no way we could possibly know and uh it'll be a forever be a mystery uh yeah i mean i could i could google it but um oh localization
you can get localized data like okay because amazon we've seen this before amazon will have
different prices from different locations so maybe a product's 9.99 for me and you 10 hours north uh
11.99 so i can actually say in comparing you maybe do arbitrage so it's another kind of way we talk
about making money where you look at differences and stuff like that and so if you can see that
something is significantly cheaper a few zip codes away then you can order from there and sell to
people in the other one and make a little bit of money.
Stupid colonial pipeline.
Why does it got to be more expensive here?
Yeah,
no,
that was the Georgia company too,
wasn't it?
Were they?
I think so.
I didn't realize that.
Okay.
Um,
well,
that's cool.
Yeah.
Yeah. I think my head's where yours is, Joe, is if they're able to charge, like even, even
the low end one, nine bucks a month, all the way up to 90 K a month, there's money in,
in making this thing easy and available to people.
Yep.
And this is something where those Amazon APIs exist.
They just took it and they made it better and they added some stuff.
So if you're a developer and there's an API that you wish did a little bit
more,
why don't you take it,
wrap it,
add that stuff you want,
go sell for $90,000 a month.
Yeah.
Easy,
easy,
easy money.
Yeah.
And,
and if you're,
if there's an API you're looking for there,
go to rapid API.com.
They apparently have a great listing of all of,
uh,
you know, a bunch of APIs and, and also great documentation to go along with it you find
i found a whole bunch of covid related ones that look pretty cool to play with you know
you might be able to find some cool things oh yeah and i should mention too on the resources
will be like section of the show notes which are amazing by the way uh i uh have a bunch of
different other api kind of discovery websites like programmable web api.nasa. I have a bunch of different other API discovery websites like ProgrammableWeb,
API.NASA.gov
has a bunch of NASA
and just
some other ones. So other ways to find APIs
that we'll have a link to the show notes.
Did you know that ants don't get sick?
Oh, really?
Yeah, isn't that weird? It's because they have great antibodies.
Oh my gosh.
Thank you, Joe Recursion Joe.
That's really good.
This episode of Coding Blocks is sponsored by Datadog,
the monitoring platform for cloud-scale infrastructure and applications.
Datadog provides customizable dashboards, log management,
and machine learning-based alerts in one fully integrated platform so you can seamlessly navigate, pinpoint, and resolve performance issues in context.
Now, you've heard me gush over DataDog before, right?
Like, that's nothing new.
And, of course, we're talking about APIs this go-around.
So, of course, DataDog has an API that you could use.
Of course they do.
So you can go to docs.datadoghq.com slash API slash latest, and you can find out all
about their amazing APIs that they have and all the cool things that you could do with
it.
I mean, we've talked about it before, like how you could just easily, you know, I made
the reference in the past about Python, like how you could just easily pip install a Datadog because, I mean, who doesn't like to pip install all your favorite packages?
And, of course, Datadog should be one of them.
Now, I just had some travel plans that got messed up because of a Colonial Pipeline issue that's been affecting my area of the world.
And how I wish they were using data dog security monitoring for
real-time threat detection and i was just as always scrolling through and just being amazed
by the visualizations but what's really cool is in addition to being able to see what's going on
they have real-time threat detection configurable rules tons of integrations as you know so you can
actually monitor the things that you use, 450-plus integrations.
And they actually have a workflow around incident management.
So you can get those tickets cut to the right people and have those things resolved immediately as soon as possible before it shuts down oil and gasoline to the southeast side.
So actually a whole kind of eastern seaboard pretty much of the United States.
So attention, guys. I didn't guess i didn't
even think about that but yeah colonial pipeline if you're listening uh you need some data dog in
your life so that you could monitor your application and maybe be aware of like you know some things
that are happening that you're like oh that doesn't look right because i'm sure data dog
would have you covered and this would have you know you could have saved us all a bunch of time and effort and definitely Jay-Z's vacation.
So yeah, monitor all your databases,
your cloud services, your containers,
your serverless functions,
all in one place with Datadog's
450 plus vendor-backed integrations.
450 plus vendor-backed integrations.
And if an outage occurs, Datadog provides seamless
navigation between your logs, your infrastructure metrics, and application traces in just a few
clicks to minimize the downtime. Try yourself today by starting a free 14-day trial and receive
the cutest purple Datadog t-shirt after installing the agent. Yep. So you can do that by visiting datadoghq.com slash coding blocks to see how you can enhance
your visibility into your stack with Datadog.
Again, that's datadoghq.com slash coding blocks.
All right.
Well, you know, as we've said so many times before, you've heard if you haven't already
left us a review, we would greatly appreciate those.
They really do, you know, mean a lot to us.
So, like, if you ever were like, man, I would love to buy these guys a beer or a cup of coffee or something to say thank you, like, hey, you could leave us a review.
And we would appreciate that equally as much.
Not that we wouldn't appreciate the beer.
But you could find some helpful links at W.
I guess it's only the two dubs we decided, huh?
No, there's also a third one in there.
W as well.
Codingblocks.net slash review.
You can find some helpful links there,
and we would appreciate that.
They really do put a smile on our face.
And yeah, with that, I could tell a joke,
or we can do some surveys.
Joke.
Joke.
I don't think you've told any jokes this episode, have you? No. Okay. I could tell a joke or we can do some surveys. Joke. Joke.
I don't think you've told any jokes this episode, have you?
No.
Okay.
Well, that's awkward.
Well, okay.
How about this instead?
How about if I were to pitch a movie idea to you?
Are you ready for this instead of a joke?
If I pitch the movie idea?
Yeah.
Okay. So it's a heartfelt romance about two data scientists that have never met,
but they leave each other carefully commented notes in a shared code base.
And in the process, they fall in love.
And we call the movie The Jupiter Notebook.
I'm definitely going to mess up this name.
Gregorgly?
No.
Oh, Greg.
Oh, does he just go by Greg for short?
Yep.
Okay.
Well, thank you, Greg.
And I'm sorry I butchered your name.
You can call me Mackle.
I give you permission.
All right, so with that,
let's head into my favorite portion of the show,
Survey Says.
All right, so a few episodes back, we asked, while in Slack,
do you reply in the channel?
Because I don't want to risk someone not seeing my thoughts or in a thread because I like to keep my conversations tidy like my desk.
All right.
So this is what episode 159 so it's alan's turn to go first thanks to uh to techco's
trademarked uh pattern for who should uh go win during the reviews or i'm sorry surveys
yeah oh man i know what it should be but i hate that option so i'm gonna say in the channel
and we'll go 51 okay i really want to win this time
so uh what i'm gonna do is go uh thread and um i can pretty much pick any percentage and win. So let's go 75.
Okay.
Wow.
Okay.
So just to be clear,
Alan goes with in the channel at 51%, and Joe goes with in a thread at 75%.
Because any number will win.
Any number will win, so I can play it safe.
All right, we ready?
You ready for this?
Yep.
Joe, Zach wins big time.
Really?
I knew it.
In a thread, 76%.
Oh, wow.
Yep, I knew it. Wow, okay%. Oh, wow. Yep, I knew it.
Wow, okay.
So, yeah.
So, I will continue to.
Good thing I was a conservative, though.
Woo.
Conservative.
Right.
Yeah, you were so conservative there.
You know what, though?
My frustration with the threads are there's no shortcut to do it.
Like, you have to click on
something and that that drives me crazy like if you reply in the channel you just keep typing right
but to go to a thread you actually have to go up and click on something to be like hey reply to
this thread and that's why i've always hated it yeah threads really are so much better because uh
have you ever done something where you like you type a response to somebody and you realize oh
crap it's three hours later right and i want them to see
because it's important for them so you tag them and you're like man that stinks i wish there was
a better way to do that like if you're just doing the thread they'll get the notification about it
yeah the threads are better they're just not as convenient yeah totally well maybe not to start it
but then to keep going on it. It's totally true.
Plus in Slack, you can see the thread as well as the general conversation in the same view at the same time.
So much better experience from that point of view. Now, I've kind of grown to the point in, say, a Google chat, for example, to where you can spawn new threads in Google chat. And, and in the beginning I was
just like, no, just like, you know, my, my mindset was just like, Oh, just throw it all in the one,
you know, one main thread for the whole channel. And that's fine. Like I didn't care,
but now I want like very specific, uh, you know, threads on a very specific topic.
And if anybody hijacks my thread,
inside I'm like, oh man, why? Come on, now it's going to get, the conversation is going to get derailed.
So, I mean, I do like that about
Slack. And I find that the quality
of it seems to be higher too. you know if you if you start a thread
the thread doesn't get derailed as often it seems or maybe that's just been my experience like
you know the derailment happens in the in the main general part not in your individual i think
that's true i mean overall i think that the threads do make a lot of sense yeah so i will
continue to try and make myself do it.
Yeah.
Okay.
Well, that seemed like it hurt you though, but okay.
A little bit.
Okay.
Well, how about this then?
Just a general rule of life.
Okay.
You ready?
If you're just getting started in programming,
then you should know this.
Like,
you know,
keep,
keep this thought in mind.
This is what you're signing up for.
90% of programming is debugging.
The other 10% is writing bugs and the last 20% is cursing.
It's very true.
The math,
my chicken.
So yeah, that's,
that's a Joe recursion, Joe and Aaron. Thank you. Yeah, that's uh jerry curzio and aaron thank you yeah that's awesome um
yeah all right so how about uh this episode survey we ask how often do you leak code
and your choices are never i'd rather fill in the blank or when I'm prepping for a big interview or all the time.
Got to keep this all sharp or well, sometimes I start, but then I remember I don't want
to.
Hey, did we do the survey?
Did we?
I don't think so.
I don't recall it. All right. Well, we Did we? I don't think so. I don't recall it.
All right.
Well, we'll see.
I don't think so.
All right.
That's fine.
Even if we have updated information here.
Yeah, leave us a comment.
Yeah, you correct us where we're wrong.
I don't know.
My mind might not be all together with it because I stayed out all afternoon to watch the sunset, but then it dawned on me.
That's another one from Joe.
He was on a roll.
Yeah, that's really good.
Joe ain't killing it.
This episode is sponsored by Linode.
Simplify your infrastructure and cut your cloud bills in half with Linode's Linux virtual machines.
Develop, deploy, and scale your modern applications faster and easier.
Whether you're developing a personal project or managing larger workloads,
you deserve simple, affordable, and accessible cloud computing solutions.
You can get started on Linode today with a $100 free credit for listeners of CodingBlocks.
You can find all the details by going to linode.com slash CodingBlocks.
Again, that's $100 in free credit.
Use how you want.
You want to spin up your own Kubernetes environment?
Go for it.
You want to spin up some volumes, VMs, whatever you need.
Start devving today on it.
Linode has data centers around the world,
so you don't have to worry about proximity and speed and latencies.
They've got data centers all around the world to have you covered there.
Same simple and consistent pricing regardless of the location that you pick.
I've talked about how easy it is to set up Kubernetes in Linode, but that's not the only way to do things.
In fact, I am going to live right now create a Linode by logging in with GitHub.
So I haven't typed anything yet
i'm gonna go with uh ubuntu 21.04 i'm gonna choose the cheapest one five dollars a month
because we wanted to get your buy the ram shared cpu i'll leave the tags fine uh let it generate a
root password for me okay and uh second click oh sorry i forgot my region uh let's do dallas texas
that's not my closest but whatever oh i do have to provide you root password okay i'm sorry so
there we go done it did take me 10 seconds to create that so i apologize you know if i had
practiced it i probably could have gotten down to zero seconds but uh yeah it's five dollars
a month for the cheapest plan and so that $100 credit will get you a lot of mileage.
Yeah.
And I mean, Linode, if you're a listener of this show, then probably you have some sort of desire to do development type things.
Linode goes out of their way to cater to the development community.
They have developer videos.
They've got Terraform providers.
They've got all kinds of things to allow you to get up and running pretty
quickly.
So definitely,
definitely love what they've put together and,
and how they've grown over the years,
right?
Like we've been them with them for a while now and they're,
what they've provided keeps growing and growing.
So.
I totally forgot.
I wanted to call this out too.
Did you know that Linode has a,
like if you log in, create your account, log in, and you can do this with your free account,
by the way, uh, with your, with your a hundred dollar free credit, they have a marketplace.
You can go into that marketplace and install things into your Linode environment.
Right from there. You want Grafana done.. You want Jenkins? Done. You want WordPress?
You can literally just click on the thing that you want and you're like, yeah,
create a Linode environment with that thing on it. And oh, by the way, they have information for
everything about it. So if you're like, oh, hey, WordPress. And they're like, well, hey,
here's more information and here's guides on how to use WordPress. You want to set up your own Docker environment in Linode.
They have instructions for that. So not only can you easily do it, but they have an easy place for
you to get the documentation that you might want for it. You want to create your own MariaDB? Easy.
Just click the button. You need some Prometheus because you want to be able to monitor that thing, right? Done. They make it so simple to use their environment.
Yeah, so choose the data center nearest to you.
You also receive 24-7, 365 days a year human support
with no tiers or handoffs regardless of your plan size.
You can choose shared and dedicated compute instances
or you can use your $100 credit on S3-compatible object storage,
managed Kubernetes, or whatever else.
If it runs on Linux, it runs on Linode.
Visit linode.com slash coinbox
and click on the Create Free Account button to get started,
and that will get you $100 in credit.
All right, so keeping with the theme of this show,
I figured I would go ahead and throw in one,
but, you know,
Joe Zach kind of took the one that I had and made it better.
So mine was basically the Amazon MWS API,
which is their marketplace web service API.
And, and it's funny because I never thought that wrapping their API would make any sense.
But apparently it's a lucrative business.
And he mentioned, I think briefly in passing, like some of the challenges with working with the AWS version of it is you'll have limits, right?
They can throttle you.
Some of their stuff isn't really documented all that
great. I mean, there's tons of documentation, but trying to find exactly what you need can be a pain.
You know, it's actually a little bit more of a complex setup. I mean, a lot of the people that
do AWS stuff are developers, you know, and so they kind of just expect you to, to just dig your way through all the
documentation to make stuff happen. So, you know, that said, there are some really powerful things
you can do in here, right? Like this is more than just product type stuff. If you are,
if you are somebody that's running an Amazon web store or, or, you know, maybe your fulfillment
service or something like that, they have APIs for all this in here, right? Like, so you could, I don't know, find out how much you made last month. You
could find out what you have that you need to ship. You can find out where you've got negative
reviews or anything like that. So there are tons of products built around these APIs, right? Like
I've looked into doing Amazon fulfillment by Amazon type stuff in the past. There's products for after you ship out your thing that you can pay for that will auto email
the people who bought those products after a set number of days, right? So that the people will
have gotten the product, hopefully opened it and all that kind of stuff to remind them,
Hey, thanks for buying this. Hey, would you mind leaving us a review? Right?
Like that's, that is a product you can pay for right now. So there's all kinds of ways to use these APIs to build something that people would pay you to use, right? If you're adding,
even if it's something very niche, just like what I said, you know, trying to get feedback after the product's gotten to the customer.
So this was,
this was one of the APIs that I have messed with in the past.
And I don't know.
I just,
I haven't ever taken it very far,
but there's a lot of good stuff in there.
And then,
man,
I don't know why my throat's all messed up right now.
Uh,
the other one allergies,
it must be,
um,
the other one that isn't an API that I wish it was,
and it's super frustrating is Libsyn.
So that's where we host our podcast.
And in the past,
I'd tried to do some things to automate some of what we do
behind the scenes. And it's hyper frustrating because they don't publish an API anywhere.
And as far as I could tell what little APIs that they do have, they're, they're very purpose built for those pages that that call them and so i ended up having to scrape
it um which is a little frustrating it made me question like what do you guys think like if i'm
paying for a service that part of their service is to give me statistics, it feels like they should provide an API.
Yeah, and either way to get that out.
Yeah.
Even if it's just emailing me a monthly report or something like that.
Well, they have that.
They do have the ability to generate Excel files.
That's not good enough.
Yeah, I don't want to click it.
Give me a Google Sheet or something.
Yeah, that's what I'm saying.
The whole thing is frustrating.
If you're paying for a service and it's just, I don't know, it's not statistic type driven, then fine.
But when there's stats and charts and graphs and things that you can use to help you and your business,
it seems like you guys are already doing something like that for your own site.
Why not make that a part of what we can use?
Right.
Like it drives me crazy.
So charge me an extra five bucks for it.
I don't care.
Like when I saw that you had this one down, I was like, oh my God, why did this not dawn
on all of us?
Like, I mean, it's totally something like for those, you know, if you're not, if you
don't have a podcast, then, you know, you probably wouldn't care about that API.
But yeah, it, it has definitely bugged me that there's never there has never been an api and people have asked
for it over the years people have been asking for years from libsyn like hey what do you have an api
can you make an api and they're like nope we don't have one and i'm like you know dude it's 2021
like get with it now to your comment about the scraping, there's a truckload.
Like, you go on GitHub, there's a whole bunch of resources that people have put out on GitHub for scraping Libsyn.
But I'm like, it's lame.
Like, come on, man.
Put an API out.
I just realized something.
So, yeah, I've complained about it.
And I've actually written my own scraper to go get
stuff.
People are wrapping the Amazon stuff and charging for it.
Why wouldn't you do the same thing right here?
Hey,
Libsyn doesn't want to do it,
but you know what?
Maybe I'll finish writing that little API wrapper and,
and sell that for five bucks a month.
Right.
I don't know.
Yeah.
For real.
Pretty interesting.
But yeah,
it's a frustrating one,
but anyway,
right.
That's a,
that's what I had.
Okay.
So,
uh,
well,
I feel like I,
I,
I guess Joe took it way more serious than I did.
Uh, cause I'm only going to have like a couple that are, are like maybe one that's going
to be like super serious.
But I was trying to think of like, from the point of view of, well, I guess in Allen's
too, um, you know, we're, we're more serious.
Cause there was only like one that I was thinking about, like something that I have really wanted
to do that I like lately that I've like, or even by lately, I mean, even like say the past 24 months. Right. Um, and, uh, that was related to like, uh, stocks and
indexes and things like that. And, uh, so there's alpha vantage that, um, I actually have played
with, uh, their, their APIs for like getting back, um, stock prices and historical, uh, prices and things
like that. Um, it, unfortunately, like for what I specifically wanted at the time it fell short,
which was, um, I learned more that I didn't know, which apparently like to get something like a Dow, uh, you know, history,
right? Like that, that price, like that's something that the Dow actually charges for.
And so depending on, you know, you're not gonna be able to just get that for free from something
because there's, there is an actual cost to it. Um, that I never like bothered to realize before.
And so I was like, Oh, well, I guess I can't, um, you know, realize before. And so I was like, oh, well,
I guess I can't, you know, get what I was looking for at the time. But it is a pretty cool API
though for playing around with stock APIs. So if you wanted to create something, I was using it
specifically because I think, when did we get the Streamdex? Last year, I think it was. And what bothered me was that there were some cool buttons already,
like some code out there that you could put little stock ticker watchers on your button.
So I have some buttons that are set up to just watch particular stock symbols.
But I also wanted to just be able to see the market as a whole.
And that's why I liked things like the Dow, for example like an indicator of like how well the the whole market is doing um and so i
wanted i was trying to code up a button to to just follow the dow and and then i realized like oh i
would actually have to pay for that and like i can't be bothered to do that i mean come on it
should be available for free, man. Come on.
Not just to show all my stream deck and paying $5 a day.
Yeah, come on.
So, you know, it was unfortunate for my needs, but that's not to say that like, hey, there's some really cool stuff out there that you could do with it.
So definitely take a look at it.
You know.
And then, okay, so this one, this is where we go off the rails.
And, you know, but in keeping with me, I think this one's pretty consistent for me.
And, you know, I'm going to let you decide.
But I found this great API that I really like called I can has dad joke.com. And I even
wrote a little, uh, shell script for myself so that I can like call it. And I like anytime I'm
ever bored, I can just be like, you know, dad joke.sh and boom, there's my, my new joke to like,
just pick me up. So, uh, you know, like I just, you know, my latest one that I ran, it says,
um, I'm tired of following my dreams. I'm just going to ask them where they're going and meet up with them later. So, so like, you know, you could just randomly, you'll get a new dad joke,
but then, uh, yeah, I found another one that was like worth a mention that was kind of similar
in that kind of vein. So do either of you remember,
um,
from Saturday night live and I'm trying to remember the actor's name who
later went on to be a Congressman,
um,
who played Stuart Smalley?
No clue.
Do you remember the Congressman?
Yeah,
yeah,
yeah.
Uh,
what was his name?
Stuart Smalley was played by,
uh,
shoot.
Al Franken.
Al Franken.
Yeah.
Al Franken.
Wow.
I didn't know who went on.
Yeah.
He went on to be a,
uh,
I think a Senator from like one of the,
from Minnesota or something like that.
Maybe.
Um,
no,
I don't remember exactly. Yeah, the guy has like a,
you know, Harvard education and was on SNL. So yeah. At any rate, he gave me this, like,
I kind of have this thought in mind when I found this other one called affirmations.dev. And so with that API, you can just, you know, get some back positive
reinforcement. So if you're looking for something in your day, right, it'll just return back like
a JSON response of the affirmation. So struggling means you're learning was today's affirmation.
Again, and I like wrote a little, you know, script around that one too. Like, you know,
these are one-liner curl scripts, so don't get excited.
Um, I do like it though.
Yeah.
But yeah, I thought like, Hey, you know, uh, that was kind of fun, but then it's a nice
positive thing for your day.
Yeah.
Yeah.
Right.
Thank you.
Thank you for recognizing.
Now, speaking of positivity in your day, this one is totally up there.
And, uh, I want to figure out, I want to like incorporate,
we need to incorporate this in as part of coding box.net. If you go to HTTP dot cat,
and that is the URL HTTP dot cat, it is an API that can return back a cat image as your status code
and it is some of them are so hilarious like uh there was one in here like when i found it they
were talking about like the teapot one being like the most hysterical and i was like no that's not
even there there are funnier ones than that and now i'm trying to remember which one it was that
i found was the most hilarious but partial content content, maybe, um, I don't, I don't even remember, but, uh, you know,
like look at the method four or five method, not allowed. That one's pretty good.
420 is a relevant 420. Oh yeah. Um, so they're, they're so, they're so great though. Right.
And so you could, you, what you
can do is you could have like, use these as the status that's returned back. Like if you wanted
to have like a custom error page, like for a four or four page, you could return this back,
like one of these codes back as your status if you wanted to. And you could just add a dot J,
uh, you know, like, so you could say like HTTP cat slash four or four, and it would return back
the image for, for that. And if, and if you needed to, you could just add a dot JPEG extension to it.
Uh, and there you go. There's your, your, um, you know, funny little image for your, uh, your
website status or whatever. And then this was another one that like, I thought like this,
just, uh, these next two just warranted, uh, being mentioned again, um, that are in this
whole vein of like, Hey, you know, you want to create something and, uh, you know, you need an
API for, for this particular thing. And, uh, you know, especially for testing. So random user.me,
which we mentioned in episode one 27, uh, to just generate, like, you know, to just return back like
a random user series, you, you don't have to, you could just say like in their, in their API,
like, Hey, uh, you know, I, I just need a user period and it would, and it would return back one. Or you could say, Hey, I specifically need a male or specifically need a user period and it would return back one.
Or you could say, hey, I specifically need a male or I specifically need a female user.
It would return back that specific format.
And I remember we found that because I think it was a tip of the week that Alan gave back
in episode 127 or maybe 26 for Muzzle. I think it
was 126. You gave a tip of the week for Muzzle. And then during the recording of that, I was like
digging into how they were generating some of the things. Cause remember they had like really funny
comments that were coming back and I was like, man, where are they? How are they generating
this? They just have like a hard coded list. And then that's when I
realized that they were making a call out to random user.me to get a, you know, a random user
that they would then, you know, uh, use as part of their, their app. So, I mean, there was like
a really cool use case for it, you know, from muzzle. I want to say it was muzzle.com, but I don't remember. It was a muzzle was a, uh, a extension to add onto OS 10 so that, um, if you went into like a screen share or
presentation mode, it would automatically, um, mute all notifications so that you wouldn't have
anything embarrassing pop up while you're, you know, giving a presentation or screen sharing. So there were real cool uses for randomuser.me.
And that also, during that episode,
we had mentioned one that I thought was pretty cool.
It's not technically an API,
but still cool to go to would be RememberTheAPI.com, where you could get a mug full of all the Git, with a Git cheat sheet printed on it, or notebooks or whatever, mousepads.
All kinds of different products that have things written on it, APIs type or documentation cheat sheets or whatever written on it. So I felt like kind
of warranted, uh, uh, a callback, you know, given the topic that we're, we're discussing.
Like, um, I think the cat one might be the winner here, right? Yeah, that's cool. Super cute.
It is. Uh, I, uh, we really need to, uh, incorporate that in as part of our status codes on codingbox.net.
They're so great.
The 405.
Oh, I remember.
I found the funniest one.
Oh, here's the funniest one.
Go to http.cat slash 400.
Oh, yeah.
That one is by far my favorite.
That was the most hilarious one, I um okay so uh yeah i can't describe it though no we can't describe that one let's just say
that cat is not happy with you right it's at least pg-13 okay you know feature flagging is a simple concept it enables you to ship features faster
test in production and do easy rollbacks all without redeploying code so it's super cool
you know feature right and it teams using feature flags release new features with less risk and
release more often and developers using feature flags need to merge less often and we've
talked about all of these benefits as it relates to like i think it was the devops handbook that
we talked about using feature flags this episode is sponsored by config cat now config cat is a
feature flag service that enables you to easily use flags in your code with ConfigCat libraries for Python and nine other platforms.
Yeah, platforms like Java,.NET, JavaScript, popular JS frameworks like Angular and React,
as well as SDKs for Android and iOS.
Toggle your favorite feature flags visually on the visual dashboard,
and you can hide or expose features in your application without redeploying code.
You can set targeting rules to allow you to
control who has access to those new features. Yeah, ConfigCat allows you to get features out
faster, test in production, and do easy rollbacks. With ConfigCat's simple API and clear documentation,
you'll have your initial proof of concept up and running in minutes, and you can train new members
in minutes also, and you don't pay extra
regardless of the team size. With a simple UI, the whole team can use it effectively.
So whether you're an individual or a team, you can try it out with their forever free plan.
Release features faster with less risk with ConfigCat. Check them out today at configcat.com all right so we've got resources we like here
um we'll have several of these these links in the in the show notes so as always check that out but
now it's time for my favorite portion of the show it's it's the tip of the week there we go
all right and uh yeah i kind of uh already used mine uh rapidapi.com it's a great way to find
uh apis and it's got that really nice interface like a lot of mentioned so you can get a good
sense of what you're getting into before you get into it and uh you can browse by category there's
some cool ones we didn't really talk about like facial recognition and text analysis which
are just kind of cool stuff that you can do and you can find data from uh so another api like
twitter or something or get some images
whatever just kind of have some fun with it so uh next time someone says to you like oh i don't
really have an idea for uh for a side project just um rapid api.com all righty well i'm going
to make up for joe's lack of uh a tip of the week with my 18 um But I will point out that, you know, initially I didn't think
my chiropractor was any good, but now I stand corrected. So thank you, Derek. All right. So
one thing I don't know that we've ever called out specifically that I thought that maybe we should,
because, you know, just talking with some peers and everything, you know,
uh, somebody had mentioned to me, they're like, Oh, I didn't realize you, cause I was giving a
demo and I was playing around in the, the Dom and what, you know, like if you're in Chrome or
Firefox and you open up, you press F12 and you're in the inspector, you know, and you're playing
around with the sources and everything. And I just started like literally hacking away at the Dom
right there and like seeing the, uh, Chrome, you know, change the change the presentation as I was doing it. And, you know,
a peer was like, oh, I didn't realize you could actually do that. So I wanted to call that out
as a way that like if you aren't if you didn't know, you can do some super cool,
like immediate prototyping of something. And I used to do this a lot with, um, with like people
who, who were neither designer, like they were kind of like the business owner of the thing.
And they're like, well, I want this to look like this. And I'm like, okay, well, let's just
experiment with it. Right. So, you know, go to your webpage, press F12, go to the elements tab
in Chrome or inspector and Firefox. And you could literally just start like adding or removing parts to the DOM and it'll
it'll just get uh you know displayed and you can change you add and remove CSS to see like hey well
what if we made the CSS look like this and that and um you know eventually like you can get it to
a point to where like uh you're gonna have to like f5 you know reload the page and and um over. But I just felt like that was something that, you know, if you didn't know, we should
call it out. Like you can do some really cool immediate prototyping with your Dom and, and,
and like, Oh, Hey, here, you know, here's another tip, by the way, like you ever go to a webpage
and they like immediately pop up some kind of screen that was like, you know, you can see the
content behind it, but yet you have to like log in and sign up for their newsletter before. No, you don't just go to the F just F 12,
go to that Dom, delete that div. And you know, there you go. Um, um, I do that a lot. Yeah.
Right. It's cause those things are so annoying. Okay. So, um, then a friend of mine, uh, he wrote this article that, um, that like I've,
you know, he's really been pitching canines and like trying to get the world to switch
to canines and everything. And, um, you know, I definitely like had, had some, uh,
some growing pains with it first that I think were like more on like my end and, and, you know, I definitely like had, had some, uh, some growing pains with it first that
I think were like more on like my end and, and, you know, with like my specific environment
or whatever, you know, but like I forced myself to like, you know, okay, I, you know, my friend
has got this like love affair for it.
There's gotta be a reason.
I gotta force myself to just use it and see what's going on.
Right. So I'll share a
link to the, to the article in question. In fact, let me go ahead and put it in here. Um, but, uh,
yeah, so there, there's a link to the, uh, to the article. Um, but, um, and what, what was the
article's title? I forgot. Oh, Getting Started with Canines.
But yeah, I've gotten to the point now where like, you know, I just keep it open, like even for like local development purposes, because I'm doing a lot of local development
using Scaffold here lately.
And so it's like really nice way to be able to just kind of like watch the status of my
pods.
You could do the same thing with like a kubectl get pods
dash dash watch, but I'm just, you know, leaving it open and seeing the status of it, but I can
like easily switch to other, uh, Kubernetes object types, you know? So if I wanted to like, Hey,
let me see a cron jobs. Oh, Hey, let me switch to namespaces. Oh, Hey, let me switch to jobs.
I can easily just, you know, press colon and then start typing
in the thing and, and then filter on it. So, um, you know, I've definitely been forcing myself to,
to like discover like, well, why are, why are others like so in love with this thing to like
force myself to, and I'm definitely coming around to it. And, um, and you know, there's another
cool thing too about it too, is that like, uh, by default, you know, the colors just make it so easy to differentiate things, you know, like, so
if a pod is in a bad state, right?
Like it's going to be red.
And if it's terminating, it's going to be like a shade of a violet or purple or something
like that, you know?
And, uh, you know, things are good.
They're green, you know?
So you can just like right away, if you just have it open to monitor your environment, you can kind of add a glimpse, right?
You don't have to like really pay attention to what it is.
You can just glimpse that and be like, okay, there's something is bad and I need to go investigate it, right?
But did you know canines also supports skins?
So you can provide your own, you can, you can skin it. There's, there's skins that it comes
with that you can use, but you can also provide your own skins. But here's where it goes even
cooler. You can have cluster specific skins if you wanted to. So if you wanted to like highlight
a cluster name is like, you know, red, uh, you know,
cause it's production and you want to like note that, Hey, be careful of what you're doing here
or like orange. Cause it's a staging environment or green. Cause it's a local environment or
whatever. You could totally create custom cluster specific skins. Uh, if that, if that is, uh, you
know, suits your need. So I wanted to call that out.
Yeah. I didn't know that. Um, you knew that Joe? No, no, that's really cool.
So then, uh, another one, and I think this one, Oh shoot. This one was provided by, uh,
Hey Joe recursion, Joe. Um, we've all heard of XKCD, right? Like you, we've all seen the
cartoons from XKCD.com. They're, they're fantastic. There's probably like 18 babillion by now. Um,
but he showed me one that I hadn't heard of. That's kind of a similar vein that I thought
that I would share with you guys called monkey user.com. And it is equally funny as some good ones on there. So I wanted to point that out.
Um, and then, uh, I think it was last episode I had called out like remapping, uh, no, not
remapping. Um, like I caught out the, the control shift W to close windows and how I didn't like it
because,
uh,
you know,
I'm so often like just doing control D like a sane person would,
uh,
to close out my terminals.
Well,
Devin pointed out,
turns out you can remap all the keys in windows terminal.
And he,
uh,
gave me a link to the Microsoft documentation for it where like it shows
here's the default, uh, where like it shows here's the default
commands or, you know, the default, you know, what would you call it? Key mappings, key bindings,
but you could totally customize all of it if you wanted to. So I'll have a link to that as well. And then we are on to tip number 17. And this one is super cool.
I'm still learning a lot about this one, but I wanted to share it as soon as I heard about it,
because I was like, this is too awesome to not share. So do you remember when our love affair
for, when we discovered our love affair for tools like drill and Presto and how you
could like just connect random data sources and treat them all as like they
were part of the same thing and query them and join them.
Right?
Oh my God,
guys,
my love affair for Postgres just knows no bounds.
It turns out Postgres can also do that.
Postgres has this concept called a foreign data wrapper. And you can create this
foreign data wrapper, the same exact thing like you would have done in Drill or Presto.
You can wrap some other external data source to it and query it and join on it, just like it was
any other table in your database. And there's a, there's a wiki that I, that I included in here
for, um, wrappers that people have provided for this. Like some of them are web specific wrappers.
So like there's a, um, what were some of the cool ones in here that I saw, uh, an S3 wrapper,
a Facebook wrapper. Um, there was a DynamoDB wrapper, a MailChimp wrapper, Twitter wrapper. But then
there was big data wrappers for like Elasticsearch and BigQuery and Hadoop and Hive and HDFS.
Like it was just like so cool. Like I'm still, there's a truckload of them in here. And some
of these in the wiki, these are not like necessarily officially supported, but these
are wrappers that other people, like there's GitHub links that other people have included, like how you can use these wrappers within Postgres.
So definitely not advocating to make Postgres your new hammer necessarily, but depending on your use case, it might be a good fit for your need there. And, and in fact,
here's another cool thing too, was that, um, and I haven't looked at all of these GitHub repos to
see if this is how it works, but that foreign data wrapper that you create in Postgres, like
part of its documentation or part of its implementation is you can provide a
program that says like, hey, for this data wrapper, go run this program, which could be something as
simple as a WKit or curl command, right? And which means that you could write a curl command to say
like, hey, go hit this endpoint and, you know, whatever data is returned back from that,
Postgres is going to use that as part of the join, which means you could write your own custom
endpoint to do whatever you wanted to do, to join on whatever you want to join.
So all of these APIs that we've talked about in this episode, right? If you wanted to create an
API to get some data, like Alan mentioned with Alan mentioned with the, um, the Amazon, what was,
what would you, would you call that again? I forgot that the AW, no AWMS or something like
that. Uh, AWM, what was that thing called Alan? Uh, the MWS. MWS. There you go. Sorry. So you,
you could write, if you wanted to write a, an API endpoint that called the NWS, right? And join that data back in, you know,
so that Postgres could make that call to get that data and then join on it with other data that you
might have in a relational database. Totally possible. And the cool thing about this is like,
this can work with CSV data, for example. So, and you could say like,
hey, there's a header column
or there's not a header column,
but Postgres will also totally accept JSON.
So what's coming back
could just be a JSON blob
and then your Postgres queries
could be interpreting the JSON result,
the payload.
I mean, Postgres is amazing.
There's so many cool things
that you could do with it.
This reminds me of linked servers and sql server except on steroids a little bit yeah it looks like you can
define your own where you're kind of you kind of stuck with whatever's bundled with sql server
right yeah this this is this is heavily on steroids. Yeah.
Like it's got acne all over its back and it's really hairy.
This is really cool.
I will say, though, because you mentioned drill and those kind of things, right?
The big difference here for me, and this is cool.
Like I don't want to take away from it at all, but like Drill and Presto and those, those are scalable, right? This, I think, sounds like it, or from what I was looking at, it looks like it's more just like a link server to where you have your Postgres server.
It can call out to these things, get the data and join it back, right?
But it's not like you have a bunch of nodes that are running these things, I don't think, looking at it.
No, not necessarily. Keep keep in mind postgres can do
scalable reads postgres can scale horizontally for reads it's the rights that are are limited
to the to a primary node so depending on your use case right now i haven't like put this like i said
i'm just learning about the foreign data wrapper.
So I haven't put it through his paces to see like from a performance point of
view,
like how well,
how well that works.
But you know,
I wouldn't immediately discount it on that alone.
Like I,
that would be something that I would want to dig into a little bit more.
Exactly.
Yeah.
To give it its fair shake.
And,
and that's not to take away from drill and presto though by the
way like those pieces of technology are amazing and i'm still trying to like talk jay-z into uh
let's do a live session on um what was the the the apache one that you talked about last time
it started with the s superset or something like that yeah i cannot remember was it superset no
it wasn't superset though was it i thought i made that st that name up. I've forgotten this thing like 10 times.
You're talking about the thing that allows you to view data in your database, like graph things and whatnot.
Yeah, it was superset.
Apache superset.
Oh, my gosh.
I thought I just made that up.
But yeah, it turns out I should work for Apache and make up project names.
But yeah, so I'm definitely not saying that this replaces anything like that.
And this goes back to your question at the start.
When do you bring in a new technology, right?
And so don't make something your new hammer.
And I'm not advocating to make Postgres your new hammer,
but it is a super cool capability that,
depending on what you're trying to
accomplish, it might be good enough, especially for like proof of concepting something. It might
be like, you know, good enough. Like, Hey, right now I don't want to take the hit to like spin up
infrastructure for a new, a new tech stack and have to learn it. But I want to see like, Hey,
can I make, how can I make this work in the UI? What would the interaction look like?
And now I can go back and, you know, rework the architecture.
I think the part to me that's super cool about it is the fact that it's up to you.
If you want to add a new one, you can.
Like they have something in here for Parquet files, right?
I mean, if you understand the technology, then you can go make something.
And that's pretty awesome.
Yeah, it's so awesome.
Was there Hudi in here?
Were there Hudi files in there?
I doubt it.
Or no, wait, I think Uber calls it, they don't call it Hudi, they call it Hoodie.
It's Hoodie, yeah.
No, I doubt they have that in there.
I mean, that's more of a niche case i would think but but to your point though like you could actually create it because it's you know you can make it call whatever
program you wanted it to call pretty pretty nifty all right so for mine i mentioned that um i had
hacked the libsyn stuff like you know going through chrome and looking at at the at the request the xhttp
request and all that kind of garbage to find out you know how to get the stats and at the time when
i was doing that i was doing it with node.js and so i thought that it'd be worth people knowing
about there is a library for doing dom reading and querying in Node.js, and it's called Cheerio.
And it's a pretty cool library.
So if you ever have a need, I mean, I've done all kinds of things in the past.
It wasn't just trying to get Libsyn type stuff, but, you know, you need to get some information
off a web page or something.
Having a DOM query tool is really nice.
So definitely check that one out.
It was fun and it wasn't hard to do at all. Isn't that what jQuery is though?
It's not far off. I'm not trying to be too much. I'm not like really trying to be a jerk,
but isn't that really like what jQuery is? It kind of is. And the irony behind what you just
said right there is they actually say on the
Cheerio page that it's basically jQuery without all the other kind of stuff that it needs for
querying the DOM. It's a server-side version of it, more or less.
Oh, this is server-side.
Server-side. Yeah.
Okay. Maybe that's the key thing. Because I'm looking at this thing, I'm like,
these statements look like jQuery calls. What's the difference? What am I missing?
Yeah. It's querying the DOM, but it's in a, you know, a Node.js app instead of something
in your UI. Okay. Yep. Um, which I would imagine if you have some sort of package manager,
you could bury this into your UI too, but you don't need that. So I wouldn't recommend it.
And then here's another thing that I stumbled across the other day, guys, that kind of blew my mind.
So we've talked about JetBrains.
They, you know, we give away JetBrains things frequently here on the podcast. If you're not a part of our newsletter, you should probably sign up for our newsletter because we are constantly
giving away free,
you know,
licenses to jet brains and other things,
but they have a new tool or maybe it's not new.
I don't know how old it is,
but it's called MPS as in Max. Meta Programming System.
Yeah, Meta Programming System.
Dude.
And what this is, this is interesting to me.
I never really would have thought about it, but what it is, it's a way for you to build a language for your business users to kind of generate their own code for,
for rules engines types of things.
So we're said,
said in like the,
the terminal,
you know,
the real terminology,
like don't create your own domain specific language.
So your own domain specific language for your business users.
And I think that's,
what's the most interesting about this.
So,
um,
what was spec flow? Spec flow was the
thing that we went to a long time ago where it was all about business users creating the,
the unit test, we'll call them, um, to test your software, right? And they could use
this domain specific language for spec flow to be able to get things out, but they had to know your system.
What this is, is it allows you as a business to be able to communicate, have your business users communicate their needs for something so that it can generate the code that your system then runs.
And I included a link to one of the case studies here, which I believe was
a tax thing from an international government. But one of the things that's interesting right here
is they have this thing that they show that is an example tax rule and they write it out and it says
rule result tax amount, first bracket zero 01 valid from 2014. So that right there
already generates code that says, hey, if the year is greater than equal to 2014, do this. And then
the next line, I'm not going to read the whole thing, but the next line says the result tax
amount of the first bracket of a taxpayer must be set at the maximum value of A and B if he meets all of the following
conditions. So what's really interesting about this is if you create this domain specific language,
which this IDE helps you do, by the way, they have tutorials to walk you through it,
then you no longer have to translate the real talk from the business people into the specs that you need to put into your rules engine.
They write it.
It generates the code and then you run it in basically like a rules engine.
This particular one right here, it says, based on these tax rules, the ALIF generates code for the FICO Blaze rule engine,
which I guess is some sort of standard in what they do in their industry.
But that's pretty interesting, right?
Yeah, this thing looks so cool, man.
Yeah, the tooling around it looks really cool.
It's kind of hard to describe and let's see it,
but I mean, it looks exactly like you would draw this out on paper
if you were kind of designing some sort of system around this kind of language.
Yeah, so it's kind of odd to wrap your head around because usually you're,
you think about domain specific language and like what we talked about in
domain driven design,
where it's like,
you know,
you have to have the ubiquitous language.
This is truly defining how people write the rules so that you can use those rules to generate the code that's
run like pretty, pretty neat. So like I said, I just stumbled upon it the other day. I don't
even remember what I was looking for up on the jet brain side. I was probably trying to figure
out how to upgrade IntelliJ because it wasn't doing it properly or whatever. But, um, and then
I saw this and I was like, Oh, that's interesting. And I've also been looking at ASTs here lately,
abstract,
abstract syntax trees.
And it's probably how I stumbled into this thing.
I'm not even really sure.
I'm telling you over the years,
I mean,
JetBrains is another one of those companies that like,
they just never fail to impress.
Like I agree.
So many cool things coming out of that company.
Yeah.
I mean,
I use their
tools daily and for the most part, I always walk away impressed. I mean that some of them are
written in Java, so they can be heavy. Well, I mean, they're all written in Java. I believe all
their IDs are. So there can be a heavy footprint sometimes, especially if you have a massive
project open. but I mean,
we've seen, we've seen similar issues with visual studio, you know?
So, so speaking of footprint, uh, how do you find Will Smith in the snow?
Fresh Prince, all the fresh Prince. I don't know. Oh, I was muted.
Follow the fresh Prince.
Ah, fresh.
Jay-Z wins.
Yeah.
How long have I been needed?
Okay.
Well,
uh,
you know, with that,
we hope you enjoyed the show.
Uh,
subscribe to us if,
uh,
in case,
you know,
someone gave you a link or something and you're not already subscribed to us.
Uh,
we would appreciate it. You can subscribe to us on iTunes, Spotify, you know, someone gave you a link or something and you're not already subscribed to us. Uh, we would appreciate it.
You can subscribe to us on iTunes,
Spotify,
Stitcher,
wherever you like to find your podcasts.
Uh,
we hope to be there.
And if we aren't,
let us know.
And,
um,
I guess Alan or Joe will figure it out.
It's like,
if you give them a ticket for it,
like they'll get to it within a couple of years.
I think that's right.
What's our SLA on that?
It's pretty good.
It's plus or minus really good.
Yeah.
Pretty good for me. Yeah. It's a really good SLA. You'll be impressed. Um, and, uh,
you know, if, like I asked earlier, uh, if you haven't already left us a review,
we would greatly appreciate it. You can find some helpful links at www.codingblocks.net
slash review. Yep. And while you're up there, like we say, every show, like we have pretty extensive show notes. So go check those out. On occasion, we'll have some pretty good discussion up there as well. And you can send any feedback questions or rants to our Slack channel, which if you can't get in, you know, DM us on Twitter or drop us an email or something and we will get you added.
You can also ask a friend who's already in the Slack
channel and they can add you as well.
I think. Yeah.
Sorry about the problems with that.
We're trying to figure out something.
In the meantime, that's the way.
One of those ways you can contact us
is on Twitter, at CodingBox
or CodingBox. Now you can find
social links at the top of the page.
W.