Coding Blocks - Some Fun APIs

Episode Date: May 24, 2021

We 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)
Starting point is 00:00:00 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
Starting point is 00:00:34 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.
Starting point is 00:00:53 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.
Starting point is 00:01:03 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.
Starting point is 00:01:21 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.
Starting point is 00:01:47 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
Starting point is 00:02:16 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,
Starting point is 00:02:41 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
Starting point is 00:03:16 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.
Starting point is 00:04:09 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?
Starting point is 00:04:57 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.
Starting point is 00:05:28 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,
Starting point is 00:05:49 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.
Starting point is 00:06:14 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.
Starting point is 00:06:53 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?
Starting point is 00:07:35 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?
Starting point is 00:08:04 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
Starting point is 00:08:47 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
Starting point is 00:09:38 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.
Starting point is 00:09:56 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
Starting point is 00:10:09 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
Starting point is 00:10:26 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
Starting point is 00:11:24 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,
Starting point is 00:12:02 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.
Starting point is 00:12:30 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
Starting point is 00:13:01 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
Starting point is 00:13:28 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.
Starting point is 00:14:07 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
Starting point is 00:15:05 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.
Starting point is 00:15:34 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?
Starting point is 00:16:04 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.
Starting point is 00:16:26 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
Starting point is 00:16:46 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
Starting point is 00:17:02 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
Starting point is 00:17:40 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.
Starting point is 00:18:20 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.
Starting point is 00:18:45 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.
Starting point is 00:18:59 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,
Starting point is 00:19:28 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
Starting point is 00:19:44 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
Starting point is 00:20:31 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.
Starting point is 00:21:11 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
Starting point is 00:21:57 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.
Starting point is 00:22:12 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
Starting point is 00:22:37 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
Starting point is 00:23:19 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.
Starting point is 00:23:59 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?
Starting point is 00:24:18 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
Starting point is 00:25:01 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
Starting point is 00:25:49 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
Starting point is 00:26:12 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
Starting point is 00:26:31 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,
Starting point is 00:27:07 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.
Starting point is 00:27:22 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,
Starting point is 00:27:48 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
Starting point is 00:28:05 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
Starting point is 00:28:49 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
Starting point is 00:29:37 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
Starting point is 00:30:21 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
Starting point is 00:31:00 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.
Starting point is 00:31:12 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,
Starting point is 00:31:20 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
Starting point is 00:31:45 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
Starting point is 00:32:20 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
Starting point is 00:33:12 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
Starting point is 00:33:55 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
Starting point is 00:34:37 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.
Starting point is 00:35:27 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.
Starting point is 00:36:08 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
Starting point is 00:37:07 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.
Starting point is 00:37:29 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,
Starting point is 00:37:43 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.
Starting point is 00:38:30 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
Starting point is 00:38:50 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.
Starting point is 00:39:19 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,
Starting point is 00:39:58 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?
Starting point is 00:40:12 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,
Starting point is 00:40:21 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,
Starting point is 00:40:51 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.
Starting point is 00:41:13 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,
Starting point is 00:41:20 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
Starting point is 00:41:54 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,
Starting point is 00:42:16 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
Starting point is 00:42:30 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
Starting point is 00:42:49 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
Starting point is 00:43:14 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.
Starting point is 00:43:46 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.
Starting point is 00:44:21 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.
Starting point is 00:44:38 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
Starting point is 00:45:12 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?
Starting point is 00:45:48 Yeah, no, that was the Georgia company too, wasn't it? Were they? I think so. I didn't realize that. Okay.
Starting point is 00:45:57 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.
Starting point is 00:46:19 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.
Starting point is 00:46:33 Yeah. Easy, easy, easy money. Yeah. And, and if you're, if there's an API you're looking for there,
Starting point is 00:46:40 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,
Starting point is 00:47:06 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.
Starting point is 00:47:22 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?
Starting point is 00:47:56 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
Starting point is 00:48:23 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.
Starting point is 00:49:06 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.
Starting point is 00:49:47 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
Starting point is 00:50:12 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.
Starting point is 00:50:49 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.
Starting point is 00:51:14 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.
Starting point is 00:51:27 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?
Starting point is 00:51:41 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?
Starting point is 00:52:11 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.
Starting point is 00:52:29 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.
Starting point is 00:53:00 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.
Starting point is 00:53:52 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.
Starting point is 00:54:18 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.
Starting point is 00:54:30 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
Starting point is 00:54:45 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
Starting point is 00:55:21 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.
Starting point is 00:56:14 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.
Starting point is 00:56:46 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?
Starting point is 00:57:05 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.
Starting point is 00:57:18 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.
Starting point is 00:57:50 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.
Starting point is 00:58:08 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.
Starting point is 00:58:29 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,
Starting point is 00:58:53 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.
Starting point is 00:59:17 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
Starting point is 00:59:45 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.
Starting point is 01:00:28 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,
Starting point is 01:00:53 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,
Starting point is 01:01:07 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.
Starting point is 01:01:46 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,
Starting point is 01:02:25 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,
Starting point is 01:02:49 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
Starting point is 01:03:26 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
Starting point is 01:04:12 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,
Starting point is 01:05:09 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.
Starting point is 01:05:26 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,
Starting point is 01:05:43 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.
Starting point is 01:06:31 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.
Starting point is 01:06:52 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
Starting point is 01:07:14 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.
Starting point is 01:07:55 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.
Starting point is 01:08:13 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.
Starting point is 01:08:28 Yeah. For real. Pretty interesting. But yeah, it's a frustrating one, but anyway, right. That's a,
Starting point is 01:08:33 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.
Starting point is 01:08:45 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
Starting point is 01:09:28 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
Starting point is 01:10:19 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.
Starting point is 01:11:05 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.
Starting point is 01:11:40 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,
Starting point is 01:12:26 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,
Starting point is 01:12:38 yeah. Uh, what was his name? Stuart Smalley was played by, uh, shoot. Al Franken. Al Franken.
Starting point is 01:12:47 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,
Starting point is 01:12:58 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
Starting point is 01:13:33 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.
Starting point is 01:13:56 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
Starting point is 01:14:26 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
Starting point is 01:15:10 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
Starting point is 01:15:58 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
Starting point is 01:16:49 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
Starting point is 01:17:38 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.
Starting point is 01:18:40 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.
Starting point is 01:19:02 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
Starting point is 01:19:58 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,
Starting point is 01:20:38 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
Starting point is 01:21:26 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
Starting point is 01:22:07 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,
Starting point is 01:22:51 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
Starting point is 01:23:33 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,
Starting point is 01:24:31 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.
Starting point is 01:25:04 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.
Starting point is 01:25:43 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
Starting point is 01:26:21 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?
Starting point is 01:26:48 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
Starting point is 01:27:30 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
Starting point is 01:28:18 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,
Starting point is 01:28:51 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
Starting point is 01:29:05 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?
Starting point is 01:29:53 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
Starting point is 01:30:26 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,
Starting point is 01:31:30 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.
Starting point is 01:32:14 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,
Starting point is 01:33:05 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.
Starting point is 01:33:21 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.
Starting point is 01:33:55 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
Starting point is 01:34:43 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,
Starting point is 01:34:55 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
Starting point is 01:35:16 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.
Starting point is 01:35:43 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
Starting point is 01:36:11 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.
Starting point is 01:36:45 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.
Starting point is 01:37:00 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.
Starting point is 01:37:53 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
Starting point is 01:38:25 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,
Starting point is 01:38:59 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.
Starting point is 01:39:36 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,
Starting point is 01:40:10 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.
Starting point is 01:40:22 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
Starting point is 01:41:06 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,
Starting point is 01:42:00 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.
Starting point is 01:42:34 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,
Starting point is 01:42:55 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.
Starting point is 01:43:29 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.
Starting point is 01:43:43 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?
Starting point is 01:44:12 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.
Starting point is 01:44:34 Well, uh, you know, with that, we hope you enjoyed the show. Uh, subscribe to us if, uh, in case,
Starting point is 01:44:40 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.
Starting point is 01:44:50 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,
Starting point is 01:44:57 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,
Starting point is 01:45:09 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.
Starting point is 01:45:56 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.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.