Speaker 1 (00:08): [inaudible] Speaker 2 (00:08): Frank, it looks like you're doing a little holiday hacking in June. How's it going, buddy? Yeah. Well, James time doesn't exist. So how are they hacking in June? Sounds just about right to me, especially since I completely failed at my holiday hacks. Like, do you even remember what your holiday hacks were? You did one of them didn't you you're at the back thing? Wasn't that a holiday hack? Well, you know, it was, which was funny enough that I actually started working on it again. And I looked at the source code and it literally was the last commit was December 31st when I was hacking on it. But also funnily enough, one of my holiday hacks was to get the wilderness labs, metal board up and running. Do you remember that you saw these time? I don't understand. Remember that was six months ago. Oh my goodness. Speaker 2 (00:54): It's different lifetime. That was a whole different era. Um, I feel really bad now cause you actually accomplished two of yours. I haven't gotten any, I know I got a blinking light. You remember? That was about it. So that's about as far as most people get on their first run out, you got, you got to go on your second run out to get a two lights blinking or something like that. But, um, no, I haven't done, I guess a holiday hat hashtag, uh, emoticon. Um, but I have been doing IOT hacks, James and I love IOT hacks. And uh, for my Twitch stream I wanted something a little bit light hearted because I, you know, I don't know if you've been paying attention, but socially things have been very, you know, complex and stressful and I just want him to do something lighthearted. So how would they hack in June? You nailed it. Yeah, it was really exciting because I was doing my stream later on. You can find both myself at James Monte Magno and Twitch and at Frank Krueger on Twitch as well. We stream on every week and a little plug for ourselves there in case you didn't know that we stream. Uh, but, uh, yeah, I know it was really cool because the fun part about streaming I think is at the end of the LA I love the end of my streams. I like to sort of make a little video or GIF Speaker 3 (02:10): of what I worked on and what was cool about hardware hacks? Is that something like physical, you know, and you can almost clip just what you had done. And I sort of noticed that not only were you hacking on stuff, but it seems as though your hack led to other people building on top of your hack. And those people were in his all met, like they were inside of my, like Alex was inside of my stream talking about your thing. And then like I saw his tweet and then I saw your tweet and I was like, wow, this is really cool in what I thought was cool about your mid year holiday hack was that it was something that I wanted. Like I was like, Whoa. And you're, you're always talking about a balanced bond. You're talking about this one wheel thing. And I'm like, Oh, I could, I could physically use this as a developer. And of course who, none other than Frank Krueger would come up with something that would notify me when things went right and wrong. As I'm developing code, Speaker 2 (03:08): not really this the food's like, would you really want this? Okay, let me describe what it is before we get into why in the world you would want this, but I wanted this. Um, it's just, I call it a build light. It's as simple as when the build goes, well, show green. When the bill goes poorly, show red what a complex app we have here, James, instead of blinking and led, we're going to turn out different colors. Uh, but the devil's in the details. I wanted this to be a nice kind of solution. So what I wanted was IDE integration. Now I've done these kinds of things before where, um, I would have a CIC CD server and I would have a display showing, you know, green lights, red lights for all my builds and the CIC D server. Oh, that's nice. We we've, we might've even spoken about it on this podcast before. Speaker 3 (04:01): I believe you did for your bit rise builds. And I kind of call that a little cheating because there's web hooks. You know what I mean? Like that's ugly. I mean, he still did a lot. I don't want to discredit you, but I feel as though when I saw this, it felt very dramatically different because I've seen build light indicators on it. Also want those, but then yours was like a part of the IDE is like an extension inside of visual studio and as well. Speaker 2 (04:29): Yeah. And I can't give a great like history of story of why I wanted this other than when I was doing the Twitch show. I knew that every time, because gosh, you just sit in errors some days. And the things that I was doing on my Twitch show, it was like, here's 200 errors and I'm just going to work through them one at a time. And so when like the build would finally happen, I just wanted fireworks to go off. You know, I want the IDE to recognize what an achievement it is that I finally got the stupid thing building again. Um, I want it for test two, but w w we'll just talk about builds for the moment. And so yeah, the idea was I wanted that immediate feedback to, um, if I hit a button, I want the light to immediately switch to the thing, the CIC D bill, the thing that I have, it's nice, but the truth is I tend to ignore it because it becomes a piece of like office furniture. That's just annoyingly flickering at me sometimes. But when it's like tied to the key strokes on the keyboard, you get that immediate feedback, that way zero latency. It's almost like you're playing a video game. Like I'm going to keep hitting this button until the stupid light turns green. Speaker 3 (05:36): Well, and you know, as you were building this out and I saw photos of it in video of it, I started to think, what could this also also lead to? Because I am developing most days on my Mac and my PC, and I'm also streaming. And I was like, Whoa, this is cool that he could blink something. But what if Frank, the summon of his put this in your mind? What have you started to create a bunch of like OBS extensions and just like wrote stuff to disk and then like on your build stream, it could have like, how many builds you did like today? How many were successful? How many areas you have in common? You know what I mean? Like as a little down, because as you're streaming and working on stuff like that would be cool, but also that would just be nifty to extend into like LCD screens, just like here's my daily status report. You know, it's kind of where I thought maybe this would go cause my brain starts going and all sorts of directions and more than just, here's a color of a light. It goes, okay, well, how many areas and how many are left? And there's like pie charts and graphs. And like, you know, almost like a dashboard of just your day of studio, which could be like terrible or really good. You know what I mean? Speaker 2 (06:45): Yeah. Um, I use an app called breast skew time, which, uh, just this constantly capturing which app is in the foreground. And then it gives you guilt reports at the end of the week to make you feel bad for not working hard enough and watching way too much YouTube. Um, but like, I can't give you that precision, like, did you spend all day trying to fix one bug and that bug wasn't really important or was it all green lights all day? I don't know. I don't really need that. I just like the video game aspect of it. I'm sticking to that. I just love the immediacy of it. I just like blinking lights. It's like playing pinball while coding. We all just want some kind of like adrenaline pump or something like that, or dopamine, drip, whatever you call those things. And I think that, uh, the immediacy of blinking lights provides that. Oh yeah. Speaker 3 (07:33): So yeah. I mean, anything that's in your face that is really, um, giving you like that, that hit of dopamine, like, Oh, I did that thing. You know, this is, you know, I think that that is always, uh, a great, great, uh, experience that kind of keeps you going. It gives you motivated because you don't want to really walk out like, Oh, I gotta use the bathroom or like, I need to get water or like I'm done for the day, but then it's just sitting there like red, just staring at you. And you're like, it's sort of like the get hub dot, you know, when you go to get up.com and there just says this blue dot and we've talked about it a billion times, it's a, it's a blue dot of, I hate my life. I'm just like, Oh, I just want to not to be there, just go away blue dot Speaker 2 (08:14): notifications. You need your notifications actually speaking of a feature creep already, um, before I even did one Twitch stream of this, someone had a suggested feature, which was, they want to integrate with the Mac iOS notification system because sometimes builds take a while and sometimes you might forget or something like that. And so actually pop up notifications and all of that. I think like the biggest thing I learned from this, and I guess I need to relearn this lesson constantly is that it's really easy to write extensions for IDs. And I guess I just don't do it a lot because like, I, I think about like the maintenance and how much time and effort do I want to put into it, but you know, and just a two stream. So call it five hours of work. Um, I was able to write an extension for visual studio. Sorry. It only works on Mac right now. So visual studio for Mac, um, and then, uh, a device, an IOT device that has Amazon echo support and other neat wifi things. So I just like how easy it was, texts come a long way. Speaker 3 (09:25): And it really has. I mean, I think that's, it's, it's neat that you're able to tap into these systems cause it could be applied to other things. Uh, but I want to also sort of step back a bit, cause obviously I've, I've now spiraled out of control for 10 minutes about how this thing was, but morphine I'm writing them down, but also you, you did it on a little IOT board. Correct. And it's a board that I believe that we've talked about, about a billion times on this podcast. Speaker 2 (09:51): Yeah. Yeah. It's my favorite little IOT board because it's a very inexpensive and provides basically what you want for, um, wireless communications. I'm so over wired, James, I just want everything to be wireless. And so the board is called in, uh, I call it an SP E S P 32, actually there's two of them that ESP 82 66. And that ESP 32, I like the ESP 32 because it includes Bluetooth, Bluetooth who doesn't like Bluetooth, Bluetooth. But yeah, those are the boards I used. Speaker 3 (10:29): I was just out jogging the other day and I went to go plug in my USBC to a 3.5 millimeter headphone adapter and that saw it working and you know what I could, uh, come in, uh, nifty their Bluetooth, Bluetooth. Yeah, exactly, exactly. Speaker 2 (10:45): Uh, and the, uh, heart, heart, uh, anniversary clock that you have is an SB 32. It's not really using its radios for any good purpose, but there are definitely draining the battery and making it less long, less time, less still, still taking, still taking somehow. We'll see how many years. I'm really curious. Um, I mean, nevermind on the clock. Um, so, uh, immediately in my Twitch stream, someone asks, could you do this with, uh, excuse me, wilderness labs, meadow. And the neat thing is wilderness labs, meadow and writing.net code for the device, uh, that has an SB built into it. But as of the moment of my Twitch streaming of the software, SDK did not support, uh, the wifi communications that I needed. And so it's just a matter of time until I'm able to do this on a dotnet board, but until then you can get, excuse me, just get this little cheap ESP board, which is really quite wonderful. Speaker 3 (11:44): That was lovely. So let me get this straight. So there's how is, how was this working then? So I, you, you have an extension for visual studio. Does that extension then talk over Bluetooth to it? Or is there something else running on your desktop? Speaker 2 (11:59): Okay, great. So instead of Bluetooth though, I just went with an HTTP server, but you kind of nailed it. So high level, what we have here is just a very small extension for visual studio, which hooks into the build events. So build started build ended, that kind of stuff. So yeah, it took me a little while to remember how to write an extension, but once you get those and it's not so bad. And then what those do is just an HTTP request to some host out there. What's neat is, um, these devices, because they're on the wifi network. If you put them onto your wifi network, you can use both James [inaudible] M DNS to find the device Speaker 3 (12:46): good, old bonded your service. Everybody's favorite service. Then you didn't know it was running on your computer, but it's totally running all the time. Thanks, Apple, all your information to everyone who wants to know. And also I believe that if you install iTunes on windows, I think also Bon Jor may also run on windows, right? Speaker 2 (13:07): Oh wait. I, 100% does. Yeah, definitely. If you have iTunes on your windows, computer, you're running bonus or punch and they try to like install the printer drivers for you and everything. You don't need the bone Shaw or printer drivers, but it's kind of an elegant solution. Um, the way it would work with Bluetooth, I could have done this with Bluetooth, but then you would need Bluetooth on your computer, which now that I say that all Macs do have it, but I can't write an app, James, you know this without thinking, how would I make this work on windows? So I chose to do wifi, not Bluetooth. Speaker 3 (13:42): Yes. Because, uh, Bluetooth is, would not be standard on desktops on laptops. Yes. Cause I'm using a Bluetooth mouse currently, but I'm on my desktop. I had to buy a little Bluetooth dongle. And then because I wanted to use the, uh, my phone application to do phone calls. And that was kind of a pain in the butt to, to just to have another thing plugged into a USB port for no reason where like they're built into all the cars. I should get maybe an internal PCI slash wifi, you know, an all in one card. Speaker 2 (14:19): Hmm. Yeah. I'm sure they have, um, I've never bought one, but I'm sure they have them just as a side tangent. I, um, I had never done Bluetooth, Elly communications and a UWP app on windows. I've done it in iOS a whole bunch and I've done it on Mac a whole bunch, but never on windows. And it's a wonderful little API works. Great. So shout out to windows. If you're running an app on windows that does use Bluetooth, uh, the new API APIs are absolutely wonderful. Um, yeah. You just had that problem of not many windows computers except them. Yeah. Even the laptops. Huh? Cause they're not using system on a chip laptops. It's laptop. It's so cool. James. I love Bluetooth. The neat thing about Bluetooth is it advertises all of its services and that's technically what MDNS or bono shore is doing. It's advertising it's services. It's just, Bluetooth is obviously more compatible with things. Anyway, it turns out that if you buy like a smart light bulb, say a Phillips hue, it's just doing broadcast stuff on wifi anyway. So it's kind of become the standard in home stuff. Speaker 3 (15:36): Yes. It becomes, well, you know, my favorite part about smart things is that, you know, before you set them up, they're just like, I'm here, I'm here, please. I'm here, I'm here. And then anybody can get in. If you're in an apartment complex, like we both are, anyone could be like, yeah. And you're my light bulb. Now I got your light bulb, my light bulb. I mean, that would actually be, I mean, this is a terrible idea. Don't do this. Oh my gosh, wouldn't it be crazy to like, literally I know you have to do a bunch of other things, but it will be kind of crazy to like, just have a, like a ESB SB or whatever, or just your phone is constantly scanning for Hughes. And just again, your mind, that's terrible. Don't do that. And that brings us to this field sponsor of the podcast sync fusion. Speaker 3 (16:22): Yes. Are you building applications? Do you need to constantly scan for Bluetooth or wifi networks or smart light bulbs? Well, seeing fusion has you covered because they have all the most beautiful controls and widgets for any of your applications, mobile, desktop, web, you name it, they support it. I use infusion and all my applications and it helps me make my apps beautiful because I can't do it by myself. And that's why I use the free community edition of seeing fusion, which is pretty awesome. What's great about seeing fusion is they're built natively support all the different platforms and have hundreds of hundreds of controls. I use them on my Xamarin apps, but you can use them anywhere. It's cool because they actually support iOS, Android, UWP, WPF, and Mac iOS, Frank Mac iOS. It's a little platform in which we're both recording this podcast on. You can do that. I ship applications all the time on Macko ass and I can use my sync, fusion controls, beautiful things, charts, graphs, gauges out buttons cards, carers I'll use. All the things I got to do is go to sync, fusion.com/merge conflict to learn more, but all the awesome things that sync fusion has to offer. And thanks for sync fusion for sponsoring this week's pie. Speaker 2 (17:30): Thank you. Sync, fusion. And yeah, it's crazy. How many platforms they support. It's just insane. It's awesome. It's great. Awesome. Insane. So you want a war dialing Bluetooth device that just captures all the keyboards and my surroundings, my keyboard, my mouse. You want that? Okay. Right. Don't do that. No. No. Okay. So your OBS, you got the bonds, your stuff going and now we're back on track. All right. Push it back. Okay. So on the device, um, is running a little HTTP server, port 80, you know, real kind of standard HTP server. And uh, the way a bunch of our works is it just integrates with all the DNS on your computer. So at the beginning of your program, you just tell it what it should be called and then its name dot local becomes it's DNS entry. So in this case it was build light dot local, real easy. Speaker 2 (18:25): So yeah, that's the Bon Jor and then you can type that right into the browser. And it's now here's the fun part. It's C plus plus Arduino code. And you're writing a web server and C plus plus are doing okay. It's not the most friendly way to write a web server. James. I don't know if there's a templating language. I haven't seen a temporary language. It's really primitive, but I mean, what do you expect out of a C plus plus web framework? Really? What do you want? Yeah. Um, yeah, and I guess it would be a little bit nicer if you could use some C sharp stuff in there, I guess that'd be exactly. Won't that be nice. Could you imagine running like a razor page on one of these? Yeah. That'd be beautiful. Yeah, but we're not there instead. We're running crazy C plus plus code with a Lambdas. Speaker 2 (19:15): Did you know that C plus Wescott Lambdas? I did not know that. What version of CBOs? Pause to go that, Oh, who knows? C plus Oh, X one X, 10, 12. Who knows? I need to, uh, I need to, uh, they're on C plus plus 20, by the way. Stable is, but it must've been in there. Uh, I needed that. There's like a C plus plus conference that they do online. I shouldn't watch some of those other ones from the past. Yeah. Cool. I know I can't do half because yeah. I pride myself on being a C plus plus programmer, but like they keep changing the language and I go look at some people's code and I'm just like, I guess I'm not a C plus plus programmer anymore. I thought I was, but who knows? Anyway, I'm making it sound terrible, but really it's not that bad. Speaker 2 (20:02): Um, all this code is up on get hub. Hopefully we'll link to it and you can see, I, I want to see how many lines of code it is. Okay. Delay James delay. I'm delaying as Frank du, du du, du Luke's Lonza Cody's looking at fall. Possibly. There is James. Let's take a bet. Alright, let me, let me give you the feature set of this puppy. All right. Okay. This has, this has an HTTP web server with an API that's right. Arrest API. Like all the cool kids do. It has even air handling. If you get a four Oh four custom air four Oh four page, plus it's able to use this little party things to control and RGB led to show wonderful RGB colors. And, and on top of that, it has Amazon echo integration. Now, James, how many lines of code do you think that that would take on 4,582? Speaker 2 (21:00): Oh, I'm sorry. You're over, only always use prices, right? Rules. So it came in at 170 lines, which I think is really fair because a lot of this has, you know, white space and, you know, text strings and print FD, bugging, that kind of stuff. And I think the code is actually really easy to understand. So I really like these kinds of constraint environments. They make you tighten up your code. Don't get too fancy, no inversion of control here. We're just going to write some code, just going for it. Boom. Yeah. That's awesome. That's really not very many lines of code at all. Yeah. And it has to do a few tricky things like it has to go find your wifi network. It has to connect to that. It has to broadcast its name using MDNS and all that stuff. And on top of that, it has to pretend to be a Phillips. Speaker 2 (21:48): He is light bulb, which is just hilarious. So you're ready for that little hack. How fun that is. Well, so anything can be a Phillips use light bulb. Yeah. It turns out if we just respond to HTTP correctly, if you set up your server correctly, you too can be a Phillips light bulb at just 170 lines of code. Uh, no, I, uh, I shouldn't say it's not just 170 lines of code because I'm using some nice libraries that are available on our Duino. Um, and the one I'm speaking of right now has almost wonderful name James it's called FOMO ESP, but it's not like F O M O F a U X. So like false Mo I don't know what the mall would be there. Speaker 3 (22:33): Like pho pho French fo Mo fo isn't like false, like pho for, Speaker 2 (22:41): yeah. Nailed it. So this is a cool library and it becomes a foe Phillips who bulb and that's, what's so cool about it. And it's funny because, and honestly, I need to look into this. So I apologize that I don't know the answer to this. I don't know if this is an open standard or, you know, like, is it a wifi kind of standard or is it just a Phillips standard that, uh, Amazon echo and I'm assuming Google home and I'm assuming Apple, whatever. Speaker 3 (23:12): Well, that's the thing is once that's a thing, right? So once you tap into, cause if you had just developed our own magical protocol and you would have had to do a lot more configuration and weird things to get those things, working and tie into things. But once you are a Philips hue, light bulb or a light light, light effects or something like that, all of the power that is built on top of that ecosystem magically happens. Right. You could have, if that's done that, you can have all, you know, the Alexa integration, you can have the Google. Oh, did I just trigger? Everybody's yes, you did it. You did. I was working so hard not to say that word. Huh? You got the Dingus integration. You got the, we were, um, we were watching house hunters the other day, like you do and this family. And they're like, Oh, we have twin daughters, uh, Mary and Alexa. And you're like, Oh no. Oh no, you do that. And I said, I was like, you know, if we ever have a kid, Heather, we, we can't name our kid, uh, Alexa, Siri or Google just can't name them. So it was a little Google-y we're going to name her a little Googley. That'll get ugly. I was at Siri. What a cool name? I think Siri name it's evil. That they've claimed it. Yeah. I mean, no. Also if your name happens to be Alexa, then also a cool name too. I actually had a, there was, there was definitely kids in my school Speaker 2 (24:41): or even close, like the whole family of names around there. I feel bad for all those people. Yeah. Speaker 3 (24:48): Triggers. I'm sure Alex say, you know, like, and it was not that everybody quarantine podcasts people we've been inside of the way too long. Yeah. Speaker 2 (25:04): Uh, so I do have one thing to say about that and not the Alexa thing that's over. Oh God, I did it again. Nevermind. Anyway, there was the decision of whether to make the IOT device, the thing that's actually physically connected to the RGB led that's, you know, doing the light, uh, whether to make that a smart client or a dumb client. So when you do a build is a transmitting to the device, built, has succeeded, built, has failed that kind of thing, or is a saying, turn the color to this or turn off, you know, is it, is the device dumb or is the device smart? I guess, even though these are all hashtags smart devices, uh, you know what I'm saying though? Right? Where do you put that logic split? Speaker 3 (25:47): I would put it on the client, not on the device because then it could be sort of generic and then you don't have to update the device to update the law. You know what I mean? That's what I would do, but yeah. Speaker 2 (26:01): Uh, I really wasn't sure myself and just on a gamble and just went with what you said. I made the client dump. So when ever I want to change the color, I do an HDP requests and tell it changed to this color and it's worked out great. I think that was the smart choice. Number one, because yeah. Now it's able to pretend to be a light bulb. Cause now it kind of is it just kind of made my own. So that fits that model. Nice. So you don't have that impedance mismatch there. Um, plus like you said, uh, or kind of what I learned too is it's really easy to distribute and update extensions for visual studio. So whenever I want to change logic or add a feature or make it fancy, it's so much easier to do an extension update then has tell someone to reprogram their device, you know, go load this IDE, download the code, blah, blah, blah. So if people want to make one of these at home, I think just maintenance wise, it's a lot simpler. Speaker 3 (27:00): Nice. Yeah. That's a great idea. I love, I love that. Uh, and the need, and then you can customize it. You want maybe you, you know, grab the source code, modify it. Maybe you want it. So whenever you and someone new get it does something and you know, who knows if there's a new get update, it's like you open the project and then there's a billion things that I think about now with it. Speaker 2 (27:20): Yeah. Yeah. And thank God it's not just notifications. Um, but um, I guess it comes down to the robustness to what I've learned with IOT devices was, um, well, they can't break because the moment it breaks, I've usually forgotten how to program it or fix it. So I've just slowly learned over time to make the devices as stupid, simple as possible. Um, I don't do maintenance. It turns out I just forget how the project works. You know, I have a million little IOT devices that I don't remember how they work. James. I don't remember how to use them. Like even when I was doing this project, um, as copying and pasting code from a lot of other projects that were similar to this. So the nice thing is when I started this, I had basically done all of this, but in parts I've written visual studio extensions before I'd written simple little IOT devices before it was fun to just put it all together, but it was so nice to be able to copy and paste code from myself. Speaker 3 (28:22): That's a, that's a joy I've been, I've been doing that. I was just working on, I think it was the holiday hack, the back pain app. And I was doing, I forgot what I was doing. And I was like, let me just go to this good hub page and take a little snippet and just put her right in there. Uh, yeah. It's yeah, it's good to, uh, that's one of the joy of the modern day, having everything on get hub, just like going, Oh, I know this project and boom, boom, boom. Or before I used to, you know, you'd have to, Oh, what project was this in? Let me load this up, let me do this. And you're like have 18 IDs open. Like I think it was in this project and now I'm just, you know, go to GitHub and just type in something and boom, I can find it really quick. So that's always fun. Speaker 2 (29:05): You just made me wonder, do they have like username specific searches? Can I search just my reposts? Speaker 3 (29:11): Hmm. I think you can, but I don't know how, um, Speaker 2 (29:17): well, the deal is, I'm just bad at naming things. So like the reason I, I agree with you a hundred percent, by the way, everything you just said about get hub, because yeah, back in the day, I just used to have a project folder on my computer. You can never find old source code that way. It just didn't work mostly because I'm a bad namer, but get hub really saved my butt on this one too. While the chat room two. Oh, isn't it wonderful coding on Twitch and having a chat room there to like answer your questions. They really helped me out a bunch on this episode. Yeah. Yeah. Everyone's, everyone's great. I mean, that's, that's half of the reason why I love streaming is the community interactions and just everyone, like, have you thought about this? Have you done that? What about this? You know, to help them with code and just making decisions on the fly. Speaker 2 (30:03): So, yeah, it's fine. So I was having trouble with the extension. Um, at first you always have to, you know, create manifest files with, you know, weird versions, the gnome and dependency information and all that stuff. So, you know, I'm just copying and pasting code from everywhere. I could find it and it got to this like version number that seemed kind of important, but I had no idea what the set of two, but the chat room reminded me just search get hub. So we searched for everyone's, uh, visual studio manifest file and see what versions they were using. And it was kind of fun because he like, you would just go through people's usernames, like, Oh, James Martin Magno. I don't trust him. Let's skip whatever he said is probably wrong. But you move on to something that like Jonathan Dick wrote and you're like, Oh, that's probably right. Speaker 2 (30:46): So I'll just copy whatever Jonathan did there. That's true. True, true story. That's very accurate. So I'm just kidding. I wish you had an extension. I would have copy pasted, whatever you had there, I've never made an extension for visual studio. I was literally just thinking about making something the other day. What was, I was watching a video. Um, I was watching a video on these new dual screen laptops that Lenovo had and they built something into windows where like, as you start to drag a window, it would have like a little pop up overlay that would, um, give you like snap directions, like snap to the left snap to the right, or, Oh yeah, kinda, kinda nifty. I was like, man, I wonder if I could do something in inside of visual studio too, like as I'm, you know, highlighting some code or doing something you would just give a little pop up or something like that. Speaker 2 (31:39): I was like, Oh, I wonder how I do that. And I have no idea how to do that. So of, I have so many ideas about popups someday. We should learn how to make popups. James let's do it. Cool things. It was a fun reminder though, of the visual studio gallery, which is where all the extensions go. So in visual studio for Mac, you click the visual studio name and you choose extensions. And then there's a gallery tab and there's so many wacky little things there. I recommend everyone to go check out the a vs for Mac extensions. And obviously the big pink elephant in this room is port this puppy over to visual studio for windows switch should wow. That's a whole side topic, but it should be pretty easy because the logic here is not complicated. When a build starts doing HTTP request, when a bill then let's do an HEB request, keep it simple, keep it simple. I like that. In fact, I believe Javier has a bunch of visual studio and visual studio for Mac extensions that use Xamarin forms for the UI. Like if there's a UI part to it, which is kind Speaker 3 (32:40): of cool because then you're just building the extension for all intents once. And I'm going to put it in quote, cause there's packaging implications there and logic input implications obviously. But if you did have a UI, I thought that was kind of cool. It's uh, I always like that idea of building the UI on top of the UI framework. Like it's kind of cool, Speaker 2 (33:00): honestly, that was always a stumbling block for me because the few extensions I did write back in the past, it have user interfaces and they're easy enough to write in both visual studio and for visual studio for Mac. It's just that they're two totally different UI libraries. That's the problem. And so having that unified, um, UI layer two extensions is a really big deal. And I, yeah, I hope it stays nice and easy like that. This one I haven't put much of a you or I, sorry, I haven't put any UI in at all, but, um, it has some hard coded strings that perhaps shouldn't be hard coded for instance, um, the DNS name of the device it's looking for, it's always looking for build light, but that would be terrible in an office environment because there would be a million people with built lights and they would all intermix and be wrong and all that. So you should be able to change that name, uh, easily, but you know, that's feature creep. It was hard enough getting this thing to just blink green and red. Speaker 3 (34:02): It's cool though. So people can go to your get hub, they can just download the source code. It has the SB code and it has the visual studio extension. So literally this is a really cool example of IDE IOT integration Speaker 2 (34:16): all in one repo. Is that correct? Is that a correct statement? I think so. Yeah. And I put it all in one repo just for that one point to have like both things there, you know, both, both sides of the equation. And I want to give a shout out to Alex, uh, Hedley. Gosh, I hope I got the right. Um, Alex was super cool and became user number two actually went out and bought some RGB LEDs, connect them to a device, got through it somehow. Uh, Alex has always useful cause he, uh, uh, prods me to update the read me file. It's like I take the rebate. Frank shout out, uh, was user number two, got the code working. So it's proven it is possible for more than one person. It doesn't work on only my machine. Speaker 3 (35:00): Very cool. I definitely want to try this out. I thought it would be cool to, um, you know, set up a bunch of LEDs behind me for the stream. So like as I'm coding, right. You know, you could put like a strip of them and then there could be an indication of something happening, live interactive things going while you're streaming. I think those elements are quite enjoyable. So I'm definitely going to be probably buying a bunch of little tiny IOT devices yet. Again, thanks to Frank. Speaker 2 (35:28): I'm sorry, James. It's this the cost of being my friend as true, but yeah, I'm to, I'm going to do the exact same thing right behind me, because you mentioned it, you could do Speaker 3 (35:38): this with overlays and I love your idea of integrating with OPSB by the way. So I'll definitely look into that. I just have no idea how it will be S or our little switch from remember thingies work. Uh, I totally forgot what I was going to say. Nevermind. Wow. I think that that is a great holiday hack in June, and I'm very proud of you for all the things that you've done for, um, putting more IOT devices in my closet. So I appreciate that. So this one, now we're going to, it's going to be behind you. It's going to be in the physical world. We're going to all expect to see instantaneous feedback on whether you're a good coder or not. It's all I know mine's going to be red all the time. Not I think it would be great. Just be a, you know, and then the other part that you could do is there could be an option to like turn off the lights when, when you close visual studio or something like that. Speaker 3 (36:27): So like, you know, when you leave or whatever, that'd be kind of nice, but yeah, it should capture the exit events and yeah, that's where you can start mixing, um, smart client dumb client where the smart client could say, if I've been holding the same color for the last 20 minutes, maybe I should just turn myself off. Yeah, there you go. That's a cool idea. Yeah. There's so many cool ideas with this. I love every bit of it and I will definitely link to the get hub page there. Well, Frank, you did, I'm very proud of you by the way. I think it's awesome. This is super fun, James. Thanks for letting me talk about it. Um, it was super fun to do with the group, but um, you know, fun projects. I still haven't released my app, but it's fun to do fun projects. Speaker 3 (37:09): So thanks for letting me talk about it. You got to switch it up. I mean, literally I was watching, I was, I'm now addicted to, to watching, um, custom home work from home, like desk setup, you know, highlight, you know, you know, like beat people have like the most beautiful, organized, just picture as deaths in the organization. And I'm just like, Oh, that's not how that that's not how life works. And uh, and I was watching these videos and I, and this, this one streamer had this, uh, um, uh, monitor Mount and it looked way cooler than my monitor mountain. And I was like, well, it's cheaper, like 30 bucks. And it was just very sleek. So I was like, I need this in my life. So I spent, it took way longer to me an hour. And then I was underneath the desk today and I was like, I need to move it. Speaker 3 (37:55): But I had the monitor already attached to it. So I'm under the desk, like unscrewing it. And then all of a sudden I'm trying to hold it. I needed it is about it's going down. It's going down and was, I'm like, no, Heather, I need your help. And like, she's like, she was like, I'm coming. And then like, it's just like teetering. And she's like, I got it. Red alert, red alert. It looks a lot better. This all survived. Everything's good. Okay. I'm very happy about it. It's $30 better. Yeah, I think, I think I spent $30 or $40 on the other ones. Maybe 20 bucks. I dunno. But this one is an arm is so it's actually holding the monitor. It's holding the monitor. Yeah, I liked it because the, the, the YouTube guy, uh, the video that he did, he had it and he's like, I bought an additional arm and a, Speaker 2 (38:46): Mmm, Speaker 3 (38:46): like a telephone telescopic thing, not a telephone, but a telescopic thing to Mount his camera on. So you use another arm and then he could pivot that to move his cameras. Well, that's really cool, uh, usage of it. And what I liked about this is that it was, uh, on the desk. A lot of the arms just come out and they move around, but this one is like a pole and then you attach stuff to it. And I, that was pretty nice. So anyways, I'll put it in the show notes. So this week and home decoration, how to make your office better, but then he had all these peg boards and like, yeah, there's like all this stuff. I was like, Oh, that's not in the house. It has to go in the garage. I was like, how do you organize all your cables on cable? And then I read it all my cables. It was still a hot mess. I don't know what I'm doing anymore. But Speaker 2 (39:36): Manny James, I bought a bunch of super powerful bang nuts. And I hang all my tools on magnets. Now, I feel like I'm in the future, the power of magnets. Speaker 3 (39:44): Did I tell you what I did with a thick, with the, you know, the little audio interface box that we have our headphones and stuff plugged into? Speaker 2 (39:52): Yeah. I, uh, I put a annoying little box that has to be on my desktop all the time. So I put 3m stickies on it and it's underneath my desk hanging now. Oh, clever. You're thinking three-dimensionally captain Kirk will be proud of you. Speaker 3 (40:09): Yeah, but I use the, I use the Velcro ones, so like I could easily Velcro it on and off too. Yeah. Just kind of cool. It's like a swap it anyways. Speaker 2 (40:18): I saw that in a package. I use the Velcro. Yeah. I used the Velcro to Velcro the SSD drive to the back of my iMac Velcro. It is honestly astonishing. Whoever invented it. Space, age, space, age. Did, did NASA invent Velcro? I hope they did. I don't know if that's apocryphal or not, but they definitely get credit for it. I don't know if it's true or not though. Yeah. Tempurpedic hooks and not hooks. It's the not brand name. Can you remember the not brand name? Oh, the non Velcro brand name. Yeah. Hooks and something. I just can't remember what the other thing is. How did we get on this topic? James? It's just fun. Talking about hardware. I saw because this really is just office renovation. We've all been stuck in doors for the last four months. We're going crazy. Yeah. Speaker 3 (41:09): Let me, let me buy this, this, this metal pole that will, that will entertain me for an hour. I mean, telescopic, I need it. Amazon prime now I need it. All right. That's going to do it for this week's podcast. I hope that you enjoyed every single moment of it. Of course. Check out the show notes. I'll put the links to Frank's awesome projects over there. You can find us@mergeconflict.fm on Twitter at merge conflict FM. And of course you can find out is that, uh, proclaim from at Frank Kruger and at James onto Magno. And that's gonna do it for this week podcasts until next time, James automatic. And I'm Frank trooper. Thanks for listening.