In Go programming, pointers allow functions to modify values outside their scope by passing references rather than copies. The star syntax (*) defines a pointer, while the ampersand (&) operator generates a pointer to its operand. When working with structs, methods can be defined on either value receivers (which receive a copy) or pointer receivers (which receive a reference). Methods on pointer receivers can modify the underlying struct's fields, while methods on value receivers cannot. This distinction is crucial for understanding how Go handles memory and data modification, as it enables efficient data sharing without unnecessary copying while maintaining Go's safety guarantees.
Deep Dive
Prerequisite Knowledge
- No data available.
Where to go next
- No data available.
Deep Dive
Code + Coffee + Chat: Learn Go with boot.dev
Added:That's so funny.
Okay, now I'm live on YouTube.
Uh yeah, I don't know, man. I'm just I just don't I don't see the uh I don't see the appeal of just letting things run on a loop. But hey, man, to each his own, right?
If you're having fun, Milty, I'm having fun. Are you a Linux guy? Are you falling out of the Windows? I'm still on I'm still on Windows uh for my like daily driver everyday needs. I like Linux, though. Linux is totally totally fine. No objection here. I I've not really daily drove Linux as like a desktop computer, but I've used Linux pretty regularly for uh hosting, you know, ser Ubuntu server for for all the VPS's that I run. Um, and then of course like I have WSL locally and I have a couple VMs, you know, I can spin up a VM in in HyperV uh if I want to, you know, explore some specific DRO or something.
I was sitting there talking like surely the link should pop up through. No, that it's good that you came and checked on me because I I probably would have never I probably would have wouldn't have realized.
Hello Tariq. Hello Tyler. Good to see you guys. If I was stinking rich, I could see the appeal.
Dude, I can't afford to. I mean, I really can't afford to be an agent engineer, you know? Like I don't have I haven't achieved financial independence.
And so every dollar I spend is much better spent invested than it is on some token to generate code I could have written by hand. Obviously I understand if your employer gives you like an unlimited budget of tokens for your own per personal and professional use, then that's wonderful. But I'm not going to spend $200 a month or spend I mean it's even a reach to spend, you know, $20 a month uh on generating code. This just doesn't just doesn't make sense for me.
Uh Turfiki, I don't really use AI assisted coding. Um I I have and I've done it and I know how to do it and I you have used the agents fairly regularly over the last I don't know 18 24 months. Uh because I don't want to be I don't want to be a lite but I don't in particularly enjoy it you know. So if you if you sat me down in front of Claude Code and said, "Hey, build something." I'm more than capable of doing it. But it for my own side projects in my own free time. Um yeah, I just I just want to I just want to code like a trad coder.
Legion, I hate micro slop. Well, that is totally okay. You are free to hate micro slop.
You're you're totally You're totally free to do that.
Honestly, you could always disagree with me and I'm still gonna love being around here. I always love to hear your thoughts. Yeah, of course. Yeah. Yeah, you can. I mean, I think that's the that's the part of the whole AI coding that I think bugs me the most is just people who are very evangelical about it. I think you I think there's a world where both can coexist. You know, if you if you want to use AI assisted development at work to power through all those tasks that you don't really give a [ __ ] about, you know, and you want to use your own brain power and fingers to write the code that you do care about, I think that's to there's I think both things can exist, right? Um or if you want to be a completely agentic AI person, you know, like who it's your life, right? Like who am I to say what you should or shouldn't do, right?
Microsoft needs to improve their loop engineering.
Microsoft make Windows better or no computer make Windows 11 better.
Make File Explorer go ver Vroom.
Computer make File Explorer go burr.
Good morning, selection phase. Good to see you.
Now that I have cloud code, maybe I should start vibe coding some bloated electron apps. You could do that. You could do that. That's one option. Good morning, Rocking Brain. Nice to see you.
Uh, I'm doing well. Yeah, life's good.
I've got some coffee. I'm going to try to get through some boot.dev. I've got my handy little Pomodoro timer courtesy of uh courtesy of our good friend Kale who's in the chat. Hello again, Kale.
Thanks for being a member over there on the YouTubes. Appreciate you.
call it VS Claude.
I think a I think actually a lot of their energy right now is being spent on the new GitHub uh co-pilot app. I don't know if you guys have seen that. I think that's where a lot of their AI related tool chain development is going.
I still think the C-pilot CLI is really good. Um, but and I've not used the Copilot app, but I've seen a lot of people make videos and uh and post about it that are on the um the developer the developer advocacy group there. So, I'm guessing that's where a lot of their focus is right now.
Microsoft is the broken clock. That's right. Twice a day. Yeah. I mean, they definitely have had some missteps. I mean, there's there's definitely things that I criticize Microsoft for, but there's also things that I I have a lot of respect for Microsoft for, right?
Like, especially the de the developer division at Microsoft. I mean, you have some of the best some of the I mean, Eric Gamma works at Microsoft on VS Code. I mean, Jeffrey Snowver, the guy who came up with power shell, I think he just retired or I think he either left and went to Google or retired or something.
He just left. But there's so many there's so many very good engineers uh that work in the developer division there and so many I mean language server protocol Microsoft debug adapter protocol Microsoft TypeScript Microsoft VS Code Microsoft like Monaco editor Microsoft like there's so many uh there's so many good things that the developer division that have come out of there uh and have benefited open source or just developers at large. That's it's hard to kind of it's hard for me with a broad brush to be like Microsoft all bad, right? Um it's when you're dealing with an organization that large and that big, it's kind of like impossible for there not to be some good in there somewhere, you know?
Misery Protocol Micros.
I'm not familiar with that one.
Hello bird. Nice to see you. So you are learning coding from scratch or already developer? So I already know how to code. I'm more of doing boot.dev for the fun of uh grinding the levels to get to arch mage. That's my my goal is to get to level 100. I'm at I'm at level 70 currently.
So yeah, my goal is to get to level 100.
I think I know. I think after this maybe we'll go I think after this we might see if we can't work on Mark Robber's hack pack on stream. I think that would be fun to do.
I'm just trying to find fun things to do on stream other than build my own projects because um a lot of people on the internet right now are kind of like they're they're very at up with AI and all they want to do is talk to people about why they should use AI, how they should use AI, why would you ever code by hand, why would you ever build something yourself?
and uh kind of takes all the fun out of coding and programming when you're constantly having to defend why you're doing something. So, I've just kind of switched over to uh trying to find other activities that we can do live on stream. I've had I've had the idea that I I might I might work on my own projects but do it in like membersonly streams so that way I can sort of if you're willing to pay money to support my channel then you're probably not somebody who's going to hang around and talk [ __ ] about whether or not I use A or not AI or not. So I might do that.
realized I rushed and didn't fix all the colors with that fix. Quick fix. No worries, man. No worries.
Yeah, this is working plenty fine for me. Yeah, plenty fine for me.
You you you work on it whenever you have the time, whenever you feel like it.
Since Window has failed me, my goal now is to move Windows to Linux. trying to customize my Linux tool to look like Windows, but the lag can stay on Windows. That'd be good. Yeah, that'd be that'd be sounds like a great project. I still think uh VMs are a great way to explore different distros and try things out and you know what I mean.
Hyper HyperV makes it super easy to do that stuff. Um I don't know if you've ever used HyperV, but if you have Windows 11, it should be built in. It might even be there in Windows uh Windows um Windows 10. I'm not sure. Uh but it makes it super easy. If you if you're familiar with like Virtual Box, it's kind of this similar thing, but it's good stuff.
Hey, what's up crew, man? Yeah, long time no see, dude. It's been a minute.
Oh, you bought a new machine. Okay.
Yeah, forget about virtual means machines.
Give me the real thing.
It has no dedicated graphics card, but it still runs better than my gaming laptop. Nice. That's awesome. Must have a nice nice maybe integrated graphics in there with the with the CPU.
That's fun, dude. Yeah, new hardware is always fun. I'd love to get a new computer, but I I just bought a I just bought a new microphone for my setup here at my desk, and I bought a new lens for my camera. And so, I'm a little I'm a little tapped on the uh on the upgrade on the upgrade funds. I just spent I just say saved up to buy that stuff and that was a pretty penny. But yeah, new computer is always good times.
Let's see. Crew, yeah, was busy with work and life. what you get working on.
I am doing boot.dev. I don't know if you've ever heard of this website. It's basically like a um it's basically a developer education platform.
Um and they have like these different courses and then they have these paths which are essentially a set of courses that they've sort of curated in a particular order. Um, and I just decided to work on trying to complete as many of these courses as I can on the way to getting to their kind of top level, which is uh Arch Mage is their top level. So, that's what I'm working on right now.
Yeah, de kind of like a dev boot camp, but uh but it's like gamified. It's like playing a video game is the way I kind of look at it. It's for me it's large it's largely about the entertainment factor but I but I am learning stuff like I took a course on C which was fun.
Uh this one right here learn memory management C that was fun and we built a small portfolio project which does something actually pretty cool.
It's like an emulator.
Uh, let's see.
Make run Space Invaders.
So, just to be clear, I didn't build Space Invaders. I just built the little emulator that runs an existing Space Invaders game, right?
So, this was pretty cool to build. We did that. That was what we did the last couple streams.
And now we're on to learning. Go is what we're doing now. I think at some point we're going to build a Pokedex with Go, so I'm interested to see how that turns out.
But yeah, that's what we've been doing.
Just stuff like that.
It is cool. Yeah, it was very it was a lot of fun to build. Uh it was uh difficult, that's for sure. There was a there was a bunch of bitwise math in it.
We had to like shift bit. We had to like sh, you know, give a eight bit number, give me the four least significant, give me the four most significant, right? We had to like do all this like bit shifting and parsing of a binary file and stuff. It was definitely it was way outside of my comfort zone. Uh, thank you, Kale. I don't know if it's sick, but it works. It works. Uh, it does work. Um, but yeah, it was way outside my comfort zone, but it was it was fun.
We are using Go as our backend tech choice. I didn't mangle with Go before, but it's really cool. I like Go. Yeah, I like Go, too. I'm glad I learned it last year. I learned it last year for um Advent of Code, and I had a ton of fun doing Advent of Code in it. I haven't built I think the only the most significant thing I've built in it is a TUI application called term tier which just lets you basically it just basically lets you rank uh do tier lists in your terminal. This is probably the most significant thing I built with Go. I did I did build a static website with Go which was kind of fun. My links page is built with Go.
Um yeah, it's good stuff. I think this year I want to try to do Advent of Code and Rust. I think is what I'm going to try to do this year.
Hello far follow. Good to see you.
Everyone tells me to go, but no one wants me to stay. Well, you're welcome to stay here. We're talking about a different kind of go.
The other kind of go.
The go. The gopher.
All right. So, we need to loop over.
We need to loop over the go strings package. Okay, cool.
I didn't know if they'd let us use the strings package.
So, let's do um contains. I don't think I've used that before.
Okay. So, let's do um normalized message equals strings.2 lower message.
Got to use that walrus operator.
Can't forget the walrus.
Then we'll say if strings do norm or strings.contain normalize message and we're looking for urgent urgent then tags. Append tags append urgent like this.
Then if message if any for any message for any message that contains sale regardless of casing the promo tag should be applied. If strings contains normalize string normalize message sale pends promo then we just return the tags. I don't know if I'm doing this part right.
See, and they want me to return messages.
Message.tags undefined.
Cannot use MS variable. Type in as message. Oh, yep. So, this should be message.
Line 35.
No, line 22. Sorry. Line 22.
Cannot use message variable of strruct type as string value in argument to lower strings.
Oh, so this has content.
Uh, and then I always keep forgetting.
Got to reassign this to tags.
Tags.
Okay. Test failed for message ID expecting this actual this.
Hold on. What? How did this fail? It says expecting empty array actual empty array and it failed.
Expecting urgent actuals this promo actuals this. So, how does contains work?
I was tasked with working on desktop app for our platform and it was necessary to go FS. Kudos to company to giving me a road trip to Canary Islands after this hell. Wow, you got Canary a Canary Islands trip from from your work. That's cool. Also, what's uh what's to go FS?
What's FS stand for?
I don't know go at all. Most I've seen right here. Yeah, goes. Go's good. It's fun. If you've written TypeScript or any if you've written TypeScript or really any C like language, I think Go will feel pretty familiar. It's got a uh pretty straightforward type system and it has a lot of C like syntax.
A full stack. Okay. Very cool. Yeah, man. That's awesome. Congratulations.
Huh?
There we go.
Okay, so that's an interesting I guess I didn't uh let's ask Boots. Hey, what's up network bib? Good to see you. How are you doing?
Hope it's well.
So, we got uh this loop. Why does this loop work?
But if I range over messages, uh it doesn't.
I think I've stubbed my toe on this before. I feel like I remember in um in Advent of Code doing the same thing where basically this syntax works.
Oh, there we go. Figured it out.
Uh this gets at the subtle subtle but important go concept. Range.
Range copies each element into your loop variable. when you write I message range messages message is a copy of messages I that part is fine here because you're not just uh reading a message to pass to tra tagger but not trying to mutate it directly so actually this version should work correctly too as long as you assign back through messages it tags okay so range makes a copy need to put that one in my back pocket range makes a copy range makes copy.
I'm doing good. Currently 3D printing a load of stuff to organize my drawers.
Very cool. I've never used 3D 3D printing. Uh the library here that where I live, they actually have a 3D printer and it's kind of been on my list to to spend some try time trying to figure out how to use it and how to how to do things with it. Um, I always watch my actually and my nephew just got a 3D printer too and I've been seeing some of the stuff he's been making and I think I think it's pretty cool. Um, but myself I I'm I'm like zero experience with doing anything with 3D printing.
Nine people watching but no one is typing. Well, we're happy all nine of them here are here. And I hope those nine people are just chilling, enjoying the vibes, maybe working on their own projects.
No, no pressure to chat, you know what I mean? Uh, I'm trying I'm trying to with my streams, I'm still just trying to make a place a safe place, you know, for people to come and chill and hang out and nerd out about whatever they're into. Work on their own projects, drink some coffee or tea, you know, just hang out.
I appreciate that, Kale. Chill, man.
That's all that's all we're here to do.
Chill and coffee, code, and chat, you know.
I guess not today. Good morning. Good to see you, Mark. How are you doing?
Looking at how to modulize the Pomodoro timer. Very cool.
Good to see you, Mark.
Oh, sorry. I didn't see your message.
Can you beat me today? Ah, I'm one of these times. One of these times I am.
Thank you for I appreciate you doing that. Going to Twitch and then coming to YouTube. Appreciate it. I don't know. I don't know how much engagement helps with the whole algorithm thing on Twitch or YouTube, but I appreciate it.
My friend also has a 3D printer, but he only makes fidget toys and a big ass sword.
Sounds good to me, man.
Anybody can happily 3D print me a big ass sword any day of the week.
Uh, Pomodora is great. Paulo, is that an app or you just meant like Pomodoro in general? That that Yeah, I'm using um I'm using our good friend Kale here, Kale JK who's in the chat. He made this uh pretty slick uh Pomodoro timer that goes in your terminal. He built it in C++. It's It's pretty slick. So, I that's what I've been using now to track. I used to use this web app, but that felt kind of off-brand. you know, we do everything in the terminal around here. So, so uh we we migrated to to that application.
Okay. Maps are similar to JavaScript objects, Python dictionaries, and Ruby Ruby hashes. Yes, I know about maps.
Hello, Gunheis. Thanks for being a member, man. Appreciate you. Also, did you update your profile picture to Vegeta? [ __ ] yeah, dude.
I signed up for Crunchyroll on Amazon and I've been re-watching all the Dragon Ball uh Dragon Ball Z and Dragon Ball seasons. I'm on Dragon Ball season 1 and my plan is to just go through them all.
Yeah. [ __ ] yeah, dude. Vegeta, [ __ ] yeah, dude. I'm such I'm such a Dragon Ball Z nerd.
Uh my my brother and I growing up, we used to like pretend Saiyan fight, you know, like Piccolo.
We we used to do that [ __ ] nonstop.
Uh I have watched you Hakashio, but not as much as probably I've watched Dragon Ball Z. Um, I got exposed to all that stuff through tsunami, you know, when when um in like the early I guess early 2000s, you know, uh there was this uh this block of shows that was always on from like 3:00 to 5:00 every day after school on Cartoon Network here in the United States. And that's what me and my brother would do every day after school.
We'd come home, get a snack, and watch all these tsunami shows. Dragon Ball, Dragon Ball Z, uh Gundam Wing.
Oh, there's I mean there's there's a bunch of them, but good times.
Yeah, we Yeah, me and my brother also did that until one of us cries. Yeah.
Yeah. Me and my brother, I tell my kids, I tell my sons that all the time that like me at my age, at their age, me and my brother were fighting constantly and and and by that age, we were like physically fighting, by the way. Thank you for being a streamer, bro. Oh, that's super nice, man. That That's very kind.
Last time I had Jiren Avatar, now it's time for Vegeta. I'm currently on Buu Saga. Oh saga's good re-watching everything because of new super yes there's a new one getting ready to come out right or did it just or did it just come out reviewing PRs and watching stream even this fable thing is not capable to fix issues but tends to patch a bug with workarounds too often yeah they they tend to do the path of least resistance a lot of the time crew like there's a lot of times where I'll if I'm if I am using a code and I'm using one of those harnesses I find myself watching it think and and as it's thinking I'm like, "Oh no, [ __ ] that. That's the wrong path." And I have to hit escape and be like, "No, you no you [ __ ] Don't do that. Don't disable warnings."
Hello, Satcha. Good. That's peak childhood for me.
Uh, it did just come out progressing slowly, but still. Yeah, I haven't I haven't seen it. I haven't seen the new stuff. That's actually the reason why I signed up for Crunchyroll was so that I could go back and Oh, sorry. Am I disconnected again? Thank you, Kale, for pointing it out. Apologies.
What is BOT? I'm guessing Devoyer asking what's what's Boot.dev. Sorry about freezing up there. Sorry about the lag.
Uh boots.dev is just like an educational platform. Um, it has a bunch of different courses and paths, but it's all sort of gamified.
It's good.
Uh, what is your internet setup? So, I have Google Fiber. I have their three gigabyte per second gigabit per second plan. And then as far as the setup goes, I just have my router upstairs in my kitchen.
And then I have a giant ass Ethernet cable coming down my stairs and into the basement where my office is. And then that cord, that Ethernet cord goes into this switch, and it's not a managed switch. It's it's an unmanaged switch.
And that switch has a connection for my Xbox and a connection for my computer.
It's one gig. Yes, that's Yeah, but I I think mine is the 3 gig uh the 3 gig plan.
Is it a one gig switch? Let me look. I think so.
The speeds on my computer always tell me I'm getting about a gig down and a gig up.
Sorry, I can't really The light's not bright enough to see the bottom of this thing. I'm getting old. I got to pull out my flashlight to read stuff.
Yes, it's a one gig switch.
It's a four port TP link switch, but it's it's unmanaged.
Yeah, I'm not sure. I don't know what it is. I I have a suspicion that the either the circuit that the router's plugged into maybe on maybe have maybe has dirty power or something like when our AC kicks on and off. I'm wondering if that's causing the router to cut out.
Oh, that was our timer.
But I honestly don't know. Like the other day, what was super weird was the other day I ran a ping command.
Like I just had a ping command running in the background and when the connection dropped on Twitch or YouTube, the ping did not get did not have an interruption, which makes me think it's it's more related to maybe Mel Studio and maybe how Mel Studio is handing handling the the distribution of my stream to those platforms. forms. Maybe um I don't know. Maybe I mean I guess I could I could look at doing something like reream. Maybe find another another service or try going back to OBS. I just hate moving all my [ __ ] That's it's so painful to move your to reset up all your scenes and everything.
It's you downloading Dragon Ball Z porn.
I mean, I like Dragon Ball Z, but I don't want to jerk off, dude.
But your one point of failure is your router. Yeah, I think I think I think it might I I wonder if I would I wonder if we could run an experiment where I move the router to a different outlet in the house and maybe plug it into I have a um I have a battery uh what do you call it?
Power supply. I have a power supply. So, I wonder if I don't move the power supply to a different location and plug the router into I mean, the the router is currently plugged into the power supply.
But maybe it's the circuit that the power because the the power supply and the router are on the same circuit in the house. So, I'm wondering if maybe I move that move the two, but who knows?
I know you should switch to Linux, bro.
It's got to be Windows, man.
Kale, it's either router or your streaming platform. Yeah, we got to it's it's got to be something because the ping the ping stays up and we'll just let this run and then the next time the next time it happens, we can take a look at the ping again. But yeah, it's I don't think it's the connect. I don't think it's the phys the the physical connection.
I honestly don't know.
I'm talking out of my ass. But it's a it's a it's a continuing thing.
Mark crazy.
Do you have an idea to use Cloudfare tunnels? I'm having a hard time connecting my device to it without having a domain name since we have an ISP always overwritten router with CGNAT. So Mark, my I haven't used Cloudfare Tunnels, but I am a big shill for Tailscale. I think Tail Scale is like absolutely wonderful if you're looking for a way to network your devices together. Um, I would highly recommend men tail scale.
That's what I'm using for all of all of my devices and my kids devices and my wife's devices. Uh, it's great. It's super easy to work with. They have mobile apps. Um, they have this really great feature where you can sort of basically they basically give you like airdrop functionality where you can easily move files and photos and stuff from your mobile device um really any device to another device. It works really well. Yeah. Tail scale. That's that's if you're if you're interested or you're looking for a product like that, that's what I would look at is Tail Scale. It uses like a peer-to-peer. It's it's more it's more complex than what I'm how I'm going to desri describe it, but it basically uses sort of a a peer-to-peer networking model to get all your devices linked up together and it provides magic DNS out of the box. Lot lot of cool lot of cool functionality.
So yeah, curious about the dashboard or TUI that you're using now. So this is so the it's really just Windows terminal in with a split pane. So the left pane is an application called bottom. And I can I can link that in the chat. Type exclamation bottom. It's it's basically if you've heard of btop or htop, right? It's kind of a it's a crossplatform app that's sort of a play, right? That's why they I think that's why they named it bottom was like a play on words against the the current popular ones over there on the Linux and uh Mac OS's. Um and then the stuff on the the split plane on the right is a Pomodoro timer that our good friend Kale uh Mr. Kalejk in the chat there. He actually built this and shared this with us uh yesterday on stream because I was looking for a Pomodoro timer that could run in the terminal and he just so happened to have one. So that's what we're using over here.
Yeah, you really should, Mark. I I wish I had like a referral code or something, but it the the free the free plan is very generous. Uh it's very generous.
You can connect basically unlimited devices and I think you can have up to three users on your free tier plan. Um I actually signed up to pay for it cuz I needed four users uh with with my two kids and my wife and then myself. But big big fan of tail scale and it it it can also work for even if you're just talking about like networking between uh infrastructure devices, right? And you don't want to do that over publicly exposed IP addresses or domain names, right? You can even do it use tail scale to do that, right? Connect network your machines together. It's uh it's very good product.
I have not tried openwrt. I've not tried openwrt. And apparently there's a new version, there's an open source version of tail scale called headscale that's a little bit more complicated to get set up, but it's free and kind of offers all the same functionality of it. But I I have not I have not tried uh OpenWRT prefer wire guard. I have not tried wire guard. I've heard of wire guard but not not used it.
Let's see. Although it's not mesh networking like tail scale but tail scale is kind of built on wire guard.
Oh, very cool. So, it's like the underlying technology.
I still use DSL dialogue on my Win 98 machine.
Hey, you know, if it's working, it's working, right? If it's not broke, don't why fix it, right?
What if I'm planning to what I'm planning to is to host something I I find it costly on my side to host on a hosting platform just for multiple hobby applications.
Uh yeah, and the the the pain point I I kept running into the uh to the platform hosting was the cold starts, right?
Because I didn't want to pay. So you always end up on the free tier, but then because you're on the free tier, all your applications basically get shut down periodically, right? If they don't get a lot of traffic. Uh and so then so then if anybody does, you do want to share your project with somebody, then when somebody hits it, they could encounter a timeout or it takes a long time to load.
That's that's why I stopped hosting it on those cloud cloud providers. And another reason I stopped probably the larger reason I stopped hosting on the cloud providers was just I I heard all these horror stories of people running up these really huge bills and that scared me. So So I stop so I was like no I the thing I care the most about right now is my financial well-being. So, I am not going to blow up my bank account on a uh on a silly hobby project.
I use IP tables and the original DARPA code.
Let's see. I'm serious. Just for curiosity, I dial it once a month to see if my provider still supports it.
Surprisingly, they do. Well, that's very cool. Very interesting.
I remember dialup.
Wait, what? I was kidding.
Caffeinated M. Hey, what's up, Caffeinated Minds? Thanks for being over there on the Twitch.
Appreciate you, man. Hope you're doing well. Buy an old machine and teleost.
Yeah. So, I have that's actually I show I was showing showing Kale the other day. So, I have two VPS's here in my basement which are repurposed Mac a MacBook Air and a repurposed Mac uh Book Pro. Sorry, don't mean to mess up the camera. And then I have a Dell Octoplex upstairs um in my kitchen. And then um I have a a I have a a NAS that's running true NAS and then I have a VPS that's in Oracle's cloud. And that kind of sums up my infrastructure. I I have a bunch of other like desktop computers that are set up around the house that I use for running like um I use them for like git t actions runners, but people can also use them as like normal computers.
Damn, I miss old times. MSN MSN Messenger, Yahoo, old style Google. I was never a big Messenger kid. My sister was though. I I distinctly remember my sister being on on MSN Messenger pretty incessantly.
MSN rules. My I I didn't have a MySpace.
I did not have a Tumblr. The first the first social media I had was Facebook and I think I was 17 maybe maybe I was a little bit younger maybe maybe six 15 16 something like that when I got my when I got a Facebook I didn't have an iPhone till I was I think I was like 19 or 20 until I had my first smartphone.
IRC is the best. I've literally never used IRC. never used it, but everybody tells me that's where all like the OG hacker kickass programmers hang out is on IRC. That's where all the old the gray beards, the the wise ones. That's where you find all the wise ones is on IRC.
My s first social media was XHamster.
I've never heard of that.
Uh we are on it technically here on Twitch. Oh, you mean the um the chat runs on IRC?
Interesting. Well, I guess I guess that makes sense because when I was building my uh when I was building my term my terminal chat app that I've been working on, I when I was reading their docs, they had two different ways you could connect to their chat. You could use IRC or you could use uh websocket websockets.
Uh and I ended up using websockets, but I think internet I think IRC was available option on there.
Uh, substack. I have a substack and I started to use it a little bit, but then I kind of fell off.
But I do have a substack.
They have two They have two different APIs for the chat, right? They have Twitch IRC Or they have event sub.
But yeah, that's pretty cool. I guess I so I guess I have used IRC since I've used Twitched out. I don't know what that was.
Let's see. Websockets are the transport layer. IRC is the API kind of. Oh, okay.
That's that's a misunderstanding on my robot voice. Steven, sorry about that. I Yeah, my for whatever reason, my computer hung there for a second.
So, maybe maybe it's my maybe it's the physical machine.
Maybe my machine is the problem. Maybe it's not the router.
Oh, that's okay. Yeah. So, Twitch Twitch still supports IRC. You can use raw TCP IRC or you can use IRC over websockets.
And then they also have the Twitch events event sub websockets um which is a different API altogether I guess to the Twitch IRC API and I'm pretty sure I'm in my app I'm using the event sub websockets API and then I'm using the REST API to send the messages.
I think the Twitch IRC is a is kind of like their legacy thing. I don't think they're pushing people pushing developers towards it.
Let's see. Yeah, Stephen, I have a couple to you Intel EMC's you could stream off of. Is that the Is that part of the new server rack that you have?
You should upgrade, Stephen. 2x 2x AMD Thread Rippers, one TB RAM, 6 TB ROM.
Your current machine lags ASF. I would I really just want um I really just want a computer I think for streaming that has a graphics card in it cuz my current machine does not have a graphics card in it. It has I mean it has integrated graphics but not dedicated graphics card but that I think that would help.
Okay, we're not doing a very good job honoring the Pomodoro timer, are we?
There's no money for graphics card. Get a 1030 GT. Yeah, everything's expensive, dude. Everything's expensive. That's why I'm just kind of making do, you know?
I'm making do.
Okay.
One UDEL R350 is 10,000 USD. Holy [ __ ] To use 38K. That's crazy, dude. Who has money to buy computers like that?
I mean, if you have if you have 11 grand sitting in your bank account, I mean, [ __ ] Why Why don't you have that sitting in an index fund, right? Or if you have 38K, that's crazy, dude. That's some crazy money.
Elon Musk. Yeah, I guess Elon Musk does have it.
That is that is uh our boy Elon Musk does indeed have it.
That's crazy.
I love how Lionus Torvalds sums up Elon Musk on Lionus tech tips. Perfection.
What did he say? I watched the episode, but I don't remember what he said.
Oh, see I just I just disconnected again. I disconnected from YouTube.
Okay, I'm reconnected to YouTube. Twitch is still reconnecting now. Twitch is reconnected, but there was no inter there's no interruption in the ping.
So, I don't I don't understand. I don't I don't understand. Lurk away, Mark. Go for it. So, there's no interruption in ping. And if I do a speed test, I've got good latency. I've got good connection.
Yeah, I'm sitting at 800 800 megs down.
Should have plenty plenty enough to stream. I think I have I'll have about 800 I wonder if I'm making the problem worse by doing the speed test right now.
Huh.
Yeah. I don't know, man. I don't is a buffer float. What?
What's a buffer float?
Buffer float. Did Kale Is Kale diagnose my causes spikes in your internet connections latency when a device on the network uploads or downloads files.
First, we test the latency of your internet.
Buffer flow is an undesirable latency that comes from a router, your QoS uh or other network equipment buffering too many data packets. Buffer float bloat can buffer bloat or or is it float packet delay variation as well as reduce the overall network throughput. When a router switch is configured to use excessively large buffers, even very high-speed networks can become practically unusable for many act interactive applications.
Maybe pulling your full wie to the switch and then bada bing, I got to now write you an explanation.
Yeah. I is there anything that I can do to troubleshoot it further or to make it better? Is there something?
Hey, what's up, caffeinated minds?
Thanks for being a member over there on the YouTubes. I appreciate that. It's very kind of you.
Yeah, I would love I would love to figure this out because I just feel like, man, I have I feel like I have decent internet. I feel like I shouldn't have to deal with interruptions. I'm hardlined in, you know.
I wonder if I just bypass the switch.
What if what if I try what if I tried bypassing the switch and just and just run the Ethernet straight from uh router to computer.
Hold on. I'm ordering takeout. No worries, dude. No worries. Do your thing. Do your thing. Yeah. It's al it's also not probably good of me to use my my uh my chat as my uh it shouldn't take advantage of all these smart people.
Let's see. That might solve the problem.
How long is your your So, this is a Hold on. Let me look on I bought it on Amazon, so I'll be able to look up how long. It's a long one. It's very long.
Uh I've always thought maybe that it was related to that. Maybe uh so it would be a 100 ft cat 6 Ethernet cable and it's rated for 10 gigabit per second.
And then the switch itself is a 4 gig TPLink switch uh that has 1 gigabit per second.
Yeah, long tables can be issue, huh? So, I guess I just I guess I need to try some stuff. I guess I need to try either moving my streaming setup into the kitchen or I need to try maybe figuring out how I >> I need to I need to run some experiments, you know, >> like over the course of several streams try some different setups.
It's within the 320. Okay, cool. Well, that's good. I had I'm Aussie. Had to convert to feet.
chat as it that's a bull strategy cotton.
I don't know. There's quite a few smart people that hang around my chat, you know, like I will I will happily take the brain power.
Uh that might solve the problem. How long uh maybe here's the problem. It I guess it I don't know. I guess I guess I would be interested to try bypassing this little switch that's on my desk here.
Um cuz it is a cheap it is a cheaper switch. I mean I'm it's nothing it's nothing to write home about. So maybe there's a maybe there's a problem there.
And seeing if I and maybe basically just remove remove variables, right? Run experiments to isolate different variables and see if we notice less of a issue during streams.
The power supply for the switch and router is something I am suspicious of.
Gunh high. So that's that's something it is. It is. The thing is it's plugged into a UPS, which is so so weird cuz I would think even if it even if it was even if that circuit was kind of dirty power in the house.
I guess I would think the UPS would mitigate that, but maybe it's not doing a good enough job.
I sent you a link in Discord to a buffer FL. Okay.
I probably don't want to run it on stream, do I? Probably something to do off stream just cuz it might take down the stream.
Yeah. Oh yeah. It says before you start, disable any bandwidth heavy task on your network. It's important that your internet connections upload and download connections aren't saturated already.
Make sure no devices are currently uploading or downloading large files from the internet. Make sure your connection to your router is at least as fast as your internet connection itself.
For example, if you have gigabit fiber internet connection, make sure you're connected over a gigabit Ethernet. Our speed test won't be able to saturate your internet connection to test for buffer flow if you're limited by your Wi-Fi connection.
This problem does need checking out.
Okay, I have to go to the restroom and I need to make more coffee.
So I will be I'll be a back.
See you guys. Have a good day, man.
Thanks for stopping by.
Bobby again.
Okay, we're back. Sorry, that was a longer longer break than normal.
Sorry about there.
For those of you still here, thank you for hanging around.
For those of you who left, you're dead to me.
Just kidding.
Just kidding.
I run two routers, two access points, five switches. Holy [ __ ] Talk about redundancy, dude.
Okay, we shall resume.
So, what were we doing? We're building up a map, right? So, we're building up a map of names.
at I that's the current name. So we need to do is we need to say basically uh results equals walrus operator. We need a map of string the user like this. And then we need to say uh results at name names I equals a new user strct and its name field is going to be set to names at i and it's uh number phone number.
It's phone number field is going to be set to phone numbers at I like so then we'll return our results.
See not enough return values. Uh so we need oh we need map and air. So this would be nil and then down here the air is nil.
run undefined user.
You're right. It's lowercase.
Success.
See, insert a key, get a key, check if a key exists, delete an element. I really do like this syntax for checking if a key exists. It's nice.
I'm watching you in VR right now. Why not? Why not, man? YouTube in VR is pretty good. Yeah, we have we have a MetaQuest and I've done uh I've actually like programmed in VR, right? Like I'll set I connected it to my laptop and I have like the three virtual monitors. It works pretty good.
It's definitely not something that you do for a long period of time, right? It could just the weight of the the weight of the device on your face and stuff and the resolution is still it's I mean it's good. It's but it's not quite like looking at a screen.
I use virtual desktop. Oh, very cool.
Yeah.
Yeah, that's awesome.
Yeah, the res. Yeah, exactly. It's it's I mean it's impressive how good it is for what you're doing. It just needs to get a little, you know, maybe like 20 30% better.
Okay. If the user doesn't exist in the map, return the error uh not found. So we're going to do uh okay and user that's going to be equal to our users at name if okay. If okay. If not okay then we are going to return false and an error.
This is going to be uh not famed otherwise.
Oh, it's the opposite. It's user.
See, I use the headset when I recline and I can still type and look at the ceiling. That's great, dude. Yeah, I love that.
The flight sim flight simulator I could see being very cool.
My kids play our Meta Quest quite a bit.
I've only really used it to watch YouTube and uh connect to virtual desktop.
What got you into it? That's very cool.
Very cool. All right, we must respect the timer. So, now we're on break.
Uh, be right back. I'm gonna run upstairs real quick. I'm going to check on the router real quick. I'm just now that we've been talking about it, now it's kind of uh in my brain.
I'll be right back. I'm just going to check on something.
Okay.
I fiddled with it enough.
Oh, you used to do flight sim as a kid and you built a flight simulator. That's awesome, dude.
I bet that was reasonably difficult, huh?
All right, that was probably five minutes, don't you think? So, let's skip that one.
And let's go back.
No, I mean not not the code, but I meant like the actual No, like the like the device, right? The flight simulator setup is what I was thinking you were meaning.
Yeah, that I mean that's equally as cool.
I mean, I don't know what it would take to build a flight simulator in terms of the software. That sounds like there'd be a lot of complicated math involved.
Okay. So, what's it? User. Okay. If user scheduled for deletion, then we should return return deleted. True.
nil and delete the record from the map.
So we do delete uh users and we give it our name this otherwise we return we return false and unexpected new line for comma line.
Oh, yep. This should be your turn.
What are you learning on bootdev? We are doing the learn go course which I I spent last October learning go as well as doing advent of code last year in go. So I sort of already I would say I sort of already know go. Uh but that's just the next that's the next uh course in our path and we are proceeding linearly through boot.dev at the moment. Also good to see you King Bucky.
How are you?
What makes a type qualify to be used as a map key.
Um the type is go native not custom. The type is comparable.
comparable to use a struck directly as a key which is simpler to nest maps. Uh probably to nest maps if I had to say but you don't agree with that.
I think I would just nest it myself. I think using a strruct as a key seems a little bit like an anti pattern if I do say so myself. [ __ ] I think VR the moment is pretty good gimmick other than if you're using it for flight sim or VR gaming. Yeah, it's it's a I mean unless I mean my kid the thing is my kids have definitely got enough use out of it for gaming. But yes, I would agree with you in in all practicality from my perspective. Yes, it would go in the gimmick category at the moment.
Implement the updated update counts function. and it takes his input message users a slice of strings and valid users a map of string int. It should update the valid users map with the number of times each user has received a message.
Each string in the slice is a username uh but they may not be valid. Only update the message count of valid users.
So if Benji is in the map and appears in the slice three times the key Benji in the map should have the value three.
Okay. So we should four uh user range over uh messaged users and then these are our usernames. So we need to say uh what is it? Okay, valid user is equal to valid users at this particular user key.
If okay, then if okay, then we're going to say uh valid users at users gets incremented by one.
Declare not used valid user.
Um guess let's just discard this.
Okay. Nonboolean condition in if statement.
Are these are those the opposite? Is it is it the opposite here? Should be valid. It should be discard. Okay.
There we go.
Hey, what's up Kapal? Kapa or Kap Kapa? Yeah, Kapa. Did he end up completing the chip eight? Yes, I did.
Yeah. Yeah. Here's a little quick uh quick little demo. Um we got it working.
I've only played two programs on it, so obviously it probably needs a little bit more battle testing, but here is Space Invaders on running on the emulator, which is pretty cool. And it's got sound and everything.
the little beeps.
But yeah, that was fun. It was fun. It was definitely a very uncomfortable project. Uh the the bitwise math I felt very awkward doing. I've never done that much bitwise math or that many bitwise operations, I think, in any program I've ever written before.
But I guess that probably means that I've never worked uh in that kind of domain either. I'm guessing it must be more common maybe to do stuff like that when you're working in lower level system stuff.
But yeah, it was it's it's fun. It was good times. Good times.
Simple game. I showed it to my son though. I was pretty excited about it once I got it working that morning. He thought it was cool.
I had to explain to him. I was like, "I didn't build the game, though." You know, I was like, "I didn't build the game, but I did build the thing that runs the game." And he was like, "That's equally as important, Dad." And I was like, "Thank you for Thank you for uh acknowledging that.
Nice. Thanks. I'll go watch the older VODs then to follow that. Thanks for demoing." Oh, sure. Yeah, for sure. The VODs are up there, so you're welcome to You're welcome to watch them anytime, man. appreciate you stopping by the stream this morning.
>> Is telling you to drink some coffee.
>> Thank you, Mark. Appreciate you. Hello, Captain Lucho. Good to see you.
Just had to stop. It's fun for like 20 minutes. Exactly. It's not a long-term activity.
It hurts. It it actually there's two things about it that are uncomfortable.
The weight of the the weight of the um the weight of the mask on your face, but also if you really want to if you really want to have like a nice viewing experience, you've got to have it pretty tight to your to your eyeballs. And that gets uncomfortable after a while, too, I find.
Complete the count words function. Just take a slice of strings, return a map showing how many times each word appears. Count each word exactly as it appears. Go and go are different words.
If the input slice is empty, return an empty map. Repeated words should increase that word's count.
Okay, easy peasy, right? So, we just do uh let's see, we do Oh, we have to accept the challenge.
We do result equals this map string int.
We do for stir over the words.
And we say if Then we do result stir.
If exists we will do result stir plus equals 1 continue.
Otherwise we do this guy.
Who needs a handheld when you got a PC?
Yeah, exactly.
Have I ever used sunlight and moonlight for RDP? I have not. And gaming RDP more specific, I've never used uh RDP for gaming. Yeah, I've I've really I've really not ever played gaming on uh PCs before. I I bought a I bought a um G14 a Zephris G14 laptop in like 2021 cuz I thought I would like to game on a computer and I actually ended up hating it. And now I just basically just game exclusively on my Xbox.
And I've always gamed on an Xbox. That's just I had a Nintendo 64 growing up and a Gamecube. My first gaming console was a Sega Genesis. Then my parents got us a Nintendo 64.
Then a Gamecube and an Xbox.
Uh, and then when I got older, like got into high school and stuff, then me and my brother bought put our money together to buy a 360.
And then eventually each of us got old enough, we had jobs and stuff where we bought our own Xbox Ones and whatnot.
But I've always been just a console gamer.
Yeah, the the the fact that the Xbox Game Pass translates to PC is pretty cool. Yeah, maps can have at most blank values with the same key, one.
Attempting to get a value from a map where the key doesn't exist returns the zero value. A function can mutate the values stored in a map and those changes blank the original values.
What does the second return value from a retrieve operation map? The boolean that indicates whether the value at key is a zero value. A boolean whether the key that key is a nil value.
Hey, what's up Bradley? Nice to see you sir. Thank you for stopping by this the stream again. It's very kind of you.
Appreciate you. Always nice to see familiar faces around these parts.
Okay. Maps can can contain maps creating a nested structure. For example, a map string of map string ins.
Um, what's our goal here?
Because text.io is a glorified customer database. We have a lot of internal logic for sorting and dealing with customer names. Complete the get names get name counts function. It takes a slice of strings and returns a nested map. The parent maps keys are all the unique first characters of the names.
The nested map keys are all the names themselves and the value is the count of each name.
So it creates the following nested map.
Okay.
So I guess first and foremost we need our result which is going to be a map of rune that maps to a map of string to int right initialize that and then for uh name name range over names and Then I guess let's start by building up the Yeah. How do I want to do this? So basically we need to map we need to get the first character right of this particular name. We need to check if that's in the existing result set. If it is in the existing result set, then we have to check if so let's do this. We'll say um t or what do I want? First char key is going to be equal to uh or I guess maybe I should use the correct go vernacular. First rune key equals name at zero like that. And we'll say if key key exists is going to be equal to result first rune key. So if key exists, we need to do something. If key doesn't exist, what do we need to do? If key doesn't exist, um I'm just going to do else here, we're going to insert it, right?
Or maybe we do this. We do if key key does not exist, then we want to place it in there. So, we want to do uh key result at first room key and then because it doesn't exist we need to basically initialize it to a map of string int here. So now we can basically at this point in our loop we can guarantee that there's the key is always there now at this point. So then we can say okay uh for the entry and for the entry we'll say okay give me result at the first rune key and then for the entry we need to check if it exists. So uh name exists in which case we'll do entry at name and then we'll say if name exists we want to do entry I can't remember if this hands back of copy I I I don't think it does. So this should be if name exists then we can do entry at name plus one and just continue.
Otherwise if the name doesn't exist we'll set it to one then we'll return our results.
I think I think did I did I start our timer again? Yeah, I was like I think our timer is running. Felt like it had been a long time before before it beeped.
It run.
Cannot use first rune key of type bite as rune value in map index.
Okay, so this actually gives you back a bite.
So, do I need to cast this? Maybe.
Uh-oh. Did I create an infinite loop?
All right. Uh, one failed. Let's see.
length names 300 initial expected names with initial one actual names with initial zero name is an so it's emoji so what what are we doing here something about the emoji what's unique about an emoji The the test suite is not printing the map you're returning directly, but instead checking a few specific keys.
You can convert a string into a slice of runes as follows.
I mean, that's basically I think what I'm doing here. I guess I could I guess I'll try their cast and say give the the internet this damn internet man. Son of a [ __ ] It is interesting. YouTube reconnects really fast. Twitch takes like 10 seconds every time.
Okay. So, this is the experiment we're going to run on the internet tomorrow when we stream. We're going to take out the switch at my desk and we're going to take Ethernet directly to the PC. That's this experiment we're going to run tomorrow on stream. The next day, if that goes well, we'll leave it. If it doesn't go well, the next experiment we're going to run is we're going to move the router temporarily to a different circuit to a different a different circuit of the house.
uh whenever we stream and we'll see if that makes any difference.
My wife's just going to love me having a big cord running through the house to connect the to connect the router. She going to love that.
Oh, that was that issue on your end froze for me. So, refresh. Yeah, I'm pretty sure it's on my end. Bradley app periodically maybe let's say five or six times over the course of three and a half hours or so streaming my connection will just drop and then it almost always comes back but it almost always it almost always drops.
Although I remember I remember there being times during the I I remember there being times over the last eight months or a year of streaming where we would have days where we would have entire streams where we didn't have connection issues.
So there's there's definitely some variable at play. It's just isolating what it is.
Okay. Question.
Why did this work for the emoji test case but not this?
Is it because emojis are represented with multiple multiple types?
Okay, so this worked.
Uh, but this this didn't work. If I went first rune key equals uh room name zero.
What? Oh, I haven't submitted it. No, don't don't don't don't don't use don't use my salmon just yet. I think I have the right answer.
I just want to know why it why it does that. Hey, what's up, Justin Technologies? Nice to see you, man.
We're having a big old party here. Let's see. Um, ghost strings are sort UTF8 encoded bytes, not runes. A rune a rune represents a single unicode code point, but in UTF8 code points outside the basic ASKI range take up multiple bytes.
So name zero indexes into the string as raw bytes. For emoji like this guy which is encoded by four bytes in UTF8. Name zero gives you just the first bite.
Cool. That's good to know.
That's good to know. Distinct words.
Complete the count distinct words function using a map. It should take a string of slice to return the total total count distinct words assume words are separated by spaces. Uh casing should not matter.
Um I think I think I understand what they're trying to get at.
I think Hello and hello and hello should be considered the same. So I guess let's do four uh message range over messages.
And we'll go ahead and say uh for word range over stringsplit message at space. And we'll have to import the strings package.
Bradley, are where are you at, Bradley?
Are you Are you on the other side of the world? I feel like maybe we've talked about this in the past.
Oh, Pomodoro time's up.
Short break, which means coffee time, and also kettle bell time.
Yeah, I'm indeed down under. That's what I thought. I thought you were in Kale's neck of the woods.
9:40, huh?
You're at the end of your day. I'm just getting started.
Did we just become best friends?
>> Hey, hey, casual waff waffle. Thank you for the follow, man. That is a very kind of you. I appreciate it.
Hey, casual waffle also. Great great username. Very, very clever, original.
Well done.
Let's see.
K.
I'm answering YouTube comments. I'm answering YouTube comments while streaming on YouTube.
It's very meta.
What's up, Bradley? I've been reading Deep Work by Cal Newport. Would recommend, dude. Great book. Great book.
I read that book. Cal Newport is the man. He also has another book that I read called Slow Thinking that is really good and it's a particularly good given the current state of the world right now.
Uh when it comes to AI uh is it slow? No, it's slow productivity. Sorry. Slow productivity is the name of the book and it is very good.
Yeah, I'm a big big Cal Newport guy. Uh the first book though, wasn't was his first book deepwork? I thought there was a book he wrote before uh before deep work.
So good they can't ignore you. I think that book was I think that book was before.
Let me see. Uh, Cal Newport.
I'm a big book nerd.
I like non-fiction books, though. I I read way more non-fiction than I do fiction.
Yeah, he he write he writes very well.
It's very clearly understand. Yeah, slow productivity is very good. I had slow productivity was recommended to me by a colleague of mine. He doesn't work with me anymore at my current company, but he used to and he was the one that recommended that book to me and it's very good.
Okay, back to no more YouTube comments.
Back to the back to the boot.dev. Okay, where were we? We were splitting a string. So, we're ranging over the words that we just split.
And we want to put in we basically just want to say if uh actually we don't even need to check right we just need to say um results word true I think and then we can just give it the leng we just return the length of the results.
Okay. 19 expected two unique words.
Actual five unique words.
Oh, we got to we have to normalize the words. So, we do um well, we can normalize the word or we can normalize the message. I'm not really sure which is the better approach.
Uh I guess I'll just do the normalized message. So we'll say uh normalized message equals strings.split.
Um or actually let's do it. Let's just do this. We'll just say two lower uh taking the message and then we'll instead of here we'll say normalize message like that.
Sorry, leaning back away from the mic.
Now run.
There we go.
Okay, let's see. Expected zero unique words. actual one unique word.
So empty strings don't count.
If uh word equals empty, nope, not Python. Right. And go.
Continue.
Do I have any more? Oh, I don't have any armor. Dang it.
I should have been paying attention to that. Let's load up on some armor.
Dang it.
Okay.
Oh man, I gotta gotta use the restroom again.
Oh, whoops. I didn't mean to switch the coffee cam.
BRB. Sorry guys, taking a lot of breaks this stream.
What are you going to do?
Nature calls.
Oh boy.
We have not been very productive today.
It's killing me. It's killing me.
I was hoping we'd get done with this go.
Somehow I screwed up my Okay, let's try to lock in here, Stephen.
All right.
Introduction to pointers. Oh, this is going to be nice after just coming off the C course.
Uh, let's see. Star syntax defines a pointer. The operand the ampersand operator generates a pointer to its operand. Okay. Fix the bug in the get message text function. It's supposed to return a nicely formatted message the console containing SMS recipient message body. However, it's not working as expected. Run the code and see what happens.
Okay, we have I love you pumpkin is the expected.
Um and the actual is just uh addresses, right? Those are just so we need to actually do this.
So that over.
Okay.
Submit assignment. Complete the remove profanity function. It should use the strings.replace all function to replace all instances of the following words in the input message with asterisk. It should update the value in the pointer and return nothing. Do not alter the function signature.
Um, okay. So, we're going to do strings dotreplace all.
And let's see where where's the documentation?
So replaces all return replace all returns a copy of the string s with all non-over overlapping instances of old replaced by y. If old is empty, it matches at the beginning of the string uh after each ut.
So we're given a pointer, right? So we should dreference it when we pass it. So we should do something like I think like this we should do this message stringsreplace all message and we'll do it one more time and then we want to replace fub with force four and I I think it's old, new. Yeah. So, old. What you want to replace?
What you want to replace it with?
And then which is going to be three, four, five.
Let's say cannot use I thought. Let me see.
Oh, maybe I don't. Maybe it'll just take a pointer.
So, how do I dreference it?
There we go. We do this like that.
So do I need to do var message string and then okay want me to do it explicitly here.
Okay. Uh let's see. It failed. Uh two failed, one skipped.
So FUB is working.
But RZ is not um so this returns the new version, right?
So, what happens if I just override it?
Okay, I'm lost somewhere.
Okay, I'm struggling to figure out what this is getting at.
Okay. Yeah, but why can't I then I see what you're saying, but why do I have to call the dreference operator on every single operation?
Okay, that's great and everything.
Okay, but why? So, so why can't I just dreference once into a variable and then use that variable throughout the function.
Let's see. Good instinct to simplify this. If you can actually do that something like oh so I'd have to reassign at the end.
So we dre we dreference to the value and then we just keep reassigning to the value.
like so.
Then we reassign here message Okay, let's see. Functions in Go generally pass variables by value, meaning that functions receive a copy of most non-composite types.
Um, when your function receives a pointer to a strruct, you might try to access a field like this and encounter an error. instead access it like you normally do using a selector expression.
This approach is the recommended simplest way to access strrus struck fields and go and is shorthand for dreferencing dot. So this is where the very cike syntax comes in. Now now I kind of know what people were talking about now that I know have written some C.
Um let's see write and analyze message function. It should accept a pointer to an analytic strct and a message not a pointer. Uh it should look at the success field of the message strct and based on that increment the messages total fields of the analytic strct as appropriate.
Okay.
So you want a function.
So funk is going to be analyze analyze message.
And is it going to return anything?
Don't think it's going to return anything. It is going to take a analytics analytics pointer and a message which is going to be message.
And then we're going to say um if if message success we are going to do analytics dot messageages failed messages succeeded.
So messages succeeded gets incremented by one.
Uh else analytics dossage messages failed it's incremented by one.
Messages failed. Messages succeeded.
And then we're also going to update the total messages messages total.
I feel like this is running a little slower doing the submissions.
I don't know why I feel like that but today it seems like it's running a little slower for me.
Okay. What is the value of pointer y after the code on the left executes?
So it would be 100 100.
Yeah. 100. What is the value of x after the entire code block on the left executes? Okay. So, this is a little I think this is a a tricky one, right?
Because basically we're saying 50.
Someone's upstairs banging on the floor.
50 is equal or x is equal to 50. The value then we set the y pointer equal to the address of x.
Which means then when you dreference Y here, it's really pointing to the 50. I think it overwrites it. So I think it's 100. Yeah, I thought it's a little tricky one right there. Let's see. Pointers can be very dangerous. If a pointer points to nothing, the zero value of the pointer type is nil, then dreferencing it will cause a runtime error um that crashes the program. Generally speaking, whenever you're dealing with pointers, you should check if it's nil before trying to dreference. Let's make our profanity checker safe. Update the remove profanity function. If messages if message is nil, return early to avoid a panic. After all, there are no bad words to remove. So, we'll do if message equals nil bail.
I feel like that would be a such a I feel like that would be such an awesome keyword for languages to introduce in place of return. You can just say bail in a function.
I feel like someone needs to come up with a programming language programming language that uses that keyword.
Chances are someone probably already has cuz there's a programming language that does everything.
Which is more live? Which is more widely used in go value receivers or pointer receivers? Uh probably pointer.
Okay. Methods from pointer receivers don't require that a pointer is used to call the method. The pointer will automatically be derived from the value.
Notice C is not a pointer in the calling function, but the method still gains access to a pointer to a pointer to C.
Fix the bug in the code so that set message sets the message field of the given email strct and the new value persists outside the scope of the set message set message method. Okay.
Where are the values? Where are the values in which pointers point to usually stored in Go? Occasionally, new Go developers hear pointers don't pass copies and take that to a logical extreme. No, bad. Stop. Here are my rules of thumb. First, worry about writing clear, correct, maintainable code. If you have a performance problem, fix it. But before even thinking about using pointers to optimize your code, use pointers when you need a shared reference to a value. Otherwise, just use values. If you do have a performance problem, consider stack versus heap and copying. Interestingly, local non-pointer variables are generally faster to pass around than pointers because they're stored on the stack, which is faster to access than the heap.
Even though copying is involved, the stack is so fast that it's no big deal.
What you just said?
Oh, local nonpointers.
Sorry, I misread that. Which is typically more performant to pass to a function, especially for small amounts of data.
Uh, value.
I'm glad I bought that armor. Implement the update balance function. And it should take a customer pointer and a transaction. Return an error depending on the transaction type. It should either add or subtract the amount from the customer's balance. If the customer does not have enough money, it should return an error insufficient funds and leave the balance unchanged. If the transaction type isn't a withdrawal or deposit, it should return the error unknown transaction type. Otherwise, it should process the transaction and return nil.
Yes, sir.
Uh we want a [ __ ] [ __ ] that takes a receiver. Let's call the receiver C. It is a pointer to customer.
It is going to be called update balance.
Uh it's going to take a transaction as the parameter.
Call that T and return an error.
Like so. Let's move this up a little bit.
I fell asleep. Food coma. That's hilarious. I guess that tells you how exciting my streams are, huh?
The music, the music, and the food. Sounds like you're having yourself a good evening over there.
Okay.
So I guess the first thing is first thing we should say is if or I guess the default should be errors new unknown transactions then that's the default case And then we'll do a check that says if uh if t dot transaction type equals a uh got some constants that we can use.
Transaction deposit then we need to return nil and we want to do some stuff. So basically we want to say uh C do balance needs to be increased by the deposit amount if the transaction equals transaction withdraw. Oh, then we need to make sure that they have enough money, right? So, we need to say if uh C.Balance is less than transaction.
Oh, that shouldn't be transaction. That should be T.
Should be T. Should be T. Should be T.
Then we need to return error errors dot new insufficient funds otherwise we can return nil but we first we need to decrement by the amount.
Yep. I think that's right.
Undefined update balance.
What are you talking about? We have update balance right here.
Oh, whoops.
The signatures off. Should be like this.
That's how they expect it to be called.
undef Oh, yeah. This should be lower case, too.
There we go.
Yeah. Then I woke up, forgot about the washing machine and the dishwasher. Oh, dude. You got to do your chores, man.
All right, we're on break for 5 minutes.
So, why did this fail? Uh, transaction unknown. Amount 50. Expected balance 100. Actual balance 100 unknown transaction.
Oh, damn it, dude. It's always the small stuff that gets you.
Devil's in the details.
All right, break time.
Oh, this is a long break. I don't want a long break. Let's do a short break.
You always do active instead of active.
Yeah, I always spell uh text and I always try to spell test or text and I always flip it. So, I'm I'm trying to spell test and I accidentally type text or vice versa. I type test a lot throughout my day at work just because of what I do for work and I'm always misspelling it and I don't know why.
Anything interesting going on in the news?
Programmer news.
I built the future of learning for developers.
>> Hello everybody. I'm Nick and for the past seven years I've been teaching you how to do net and car. I've been showing you cool tips and tricks and maybe a cool nougat package. But I never really talked about what I've been building and I think it's time I show you because I've been building basically what I think is the best learning platform for developers especially for the future and the future unfortunately it is AI heavy.
I'm not the biggest fan of it, but it is what it is and the value is there. So, I think learning has to adapt because it fundamentally changed. I think everyone should be aware of what I'm going to show in this video. And honestly, everyone should be using it or at least a version of it. It doesn't have to be that, but I think honestly if another platform that you prefer more offers a learning experience like that, that's what you should be using to learn. I'm not just going to showcase the platform.
I'm also going to talk about the architecture and the choices I made building this platform and running this platform. So, architecture diagram, maybe costs, stuff like that. And if you have any questions, please leave a comment down below and let me know what you want me to address and maybe expand on in a future video because I'll watch that. I I have some I have some thoughts about this. So, Nick Chopsis, he la he has Dom Train, right, where he's teaching people how to code. And there's another.net creator, his name is Milan.
Milan Jovenich. He just launched a platform too called uh he just launched a new platform. What is it called?
It's called like uh uh Milan Joe.
Kotta something. It's some some It's some platform. Katada bench. That's what it is. Katada bench.
Yeah, it's this one.
And here's the thing though, like listening to Nick talk about that right there. The thing is is if if the future is really AI, right? It's like there's like there's like an inconsistency to this narrative.
If the future is AI and AI is that good, why would you want to invest in learning, right? Because the AI is going to get so good then it's not going to matter anymore.
Then on the flip side, you have people that that are like, well, the features AI, but you still got to know how to drive AI.
Okay, but to drive AI, you need to learn. And I don't think you can learn from driving AI. So it's like this catch 22 of like the future of developers is using AI, but AI is absolutely horrible to actually learn from. You just get increasingly dependent upon it. Like I think AI actually makes you worse at at your skills in my opinion. Makes you faster, no doubt makes you faster, but I think it makes you worse at the actual thing you're doing with it. So, it's this weird catch 22. I don't really understand.
And like also, I don't care for like the foregone conclusion that like uh it is what it is. So, we just need to we just need to accept it and move on with our life, you know? It's like I don't know. Why do we have to accept it?
Dunning Krueger effect. Yeah. Nick Chopped. I think it's Chopsis. Chop Chopsis. Chopsis. I think it's it's one of those two. Uh he's not from the he's not he he's not from the UK. I think he or he's not from the US. I think he's from the UK. Uh but I'm not exactly sure how to pronounce that last name.
Let's see how Let's see how Speakerbot pronounces it.
Nick Chaps.
>> Chaps. I I I don't think that's right.
But but I think it's it's something like that.
I like his content. I've I've really always enjoyed his.net content a lot. Um and I think it's great that he's trying to build a business and everything. I just I just don't really understand.
It's like, oh, well, AI has fundamentally changed our It's like AI has fundamentally changed our field and it's replacing the need for your job, but you need to go and spend money to learn how to do your job better.
Kind of kind of a weird kind of a weird juxiposition in a way.
Okay, every Go program is made up of packages. You have probably noticed the package main at the top of all the programs you have been writing. A package named main has an entry point at the main function. A main package is compiled into an executable program. A package by any other name is a library package. Libraries have no entry point.
Libraries simply export functionality that can be used by other packages. Uh fix the bug in the code.
Let's see. Web Assembly expected magic word.
I don't know what that error means.
Fix the bug in the code.
There we go.
All I want is local AI to improve so I can leave an Sloppic in the desk. Local Having local AI would be cool. having having tokens that you can produce locally would be very very cool. Yeah, I think that's I think fundamentally that that will kind of be I think if it if if in if AI is going to be as revolution if AI is going to be as revolutionary as people claim it's going to be, we have to figure that out. We have to figure out how people can run models locally on commonly available hardware. Otherwise, it just doesn't it doesn't tr translate to the end consumer. I mean, it makes sense in a business case, like if you're if you're running a business, then yeah, it makes sense to purchase a service that provides you tokens, but if you're an enduser uh consumer, like there one there's no real good use case for it other than to like do generative things with it. But like you're you're not you're not generating income most times or generating revenue from the stuff you're using. the tokens on. So, it really just becomes a cost on your on your on your financial statement. And most consumers are going to be like, well, I could have I could have written that thing or I could have like like I was saying earlier, uh it doesn't make sense in my own personal projects to be spending lots of money on AI because I don't make any money from my personal projects, right? and I and I will have much better returns from just taking the money that I would have spent on tokens and investing it in the market. So, it kind of comes back to that thing of like the best alternative consumers would be to have some sort of local model built in or at least runnable with their hardware locally.
But most of the model most of the local capable models don't run on just commonly available hardware, right? You got to you got to have an investment in having expensive dedicated hardware, which is not realistic. Like my mom isn't going to be like, "Yeah, let me go out and buy a brand new computer just so I can have my own local LLM." Nor is she going to probably be like, "Yeah, let me pay $10 a month for Chat GBT or whatever." It's just it's not I don't think that's the future.
I use local AI. Anything more and you should be able to tell it what to do with Quinn 35 uh 35 billion. So I've tried uh I mean I don't have any dedicated GPUs though. So that's pro that's the thing is like if I I think you need a you need a you need a solution where it just works like on any given on any given piece of hardware you have available it should just work right what that takes from a technical perspective I don't know but it it shouldn't require you to have these very specific dedicated uh very expensive hardware requirements hardware is just not good enough to use locally that's Oh, that's for me. Uh, Fanberg, that's the same. I'm in the same situation.
NPU llama.cpp. Nice. Yeah, I don't have an MPU. Um, or a machine with an MPU, but something like that would be, I think, a big a big unlock for the consumer side of the equation. I mean, again, in like in business context, there's always going to be justifications to spend money on services, but for consumers.
I just don't I just don't see it.
I'm also not the target market for it because I don't want it. You know what I mean? It's like I'm not a very good target market for it. Although I would I guess that if if I had local AI if I had local tokens like the tokens I didn't have to pay for I think I would immediately build some sort of readonly coding harness right some sort of I don't really want an agent I don't really want an agent to write the code but I would love to have like a pair programmer type of agent harness that's like available to help me sort through the code to read the to better understand the code if I'm confused or to help me debug things like that.
That would be cool.
Let's see. I mean, my S325 Ultra can run Quinn 3B 9 billion. I don't think I don't think I could I don't think my computer will do that. I mean, I think it will, but I think it'll be so slow and it'll eat through so much of my resources, it won't actually be effective.
Uh, let's see. Do I have it on here?
I don't know if I have it downloaded.
Uh, let's see. Olama probably would be even worse, too, with everything I have going on right now on the machine.
What was it? What were we saying? Quinn three.
Use the terminal. Don't use Olama. What?
What do you mean? You mean over like a REST API? You don't want a gooey. You don't want some sort of guey to work with it.
Does do they have a chat interface in the terminal?
Oh, you can chat in the terminal. Oh, that's cool. Oh, with Llama CPP can. I don't know if O Lama has that. Does Olama have that? I mean I O Lama works with um you can use it with different coding harnesses.
Let's see. Uh launch we can use it with let's try it with open code.
Oh I need to I need to first install the model though.
The way to achieve AGI is to distill my brain.
That's funny.
I don't think you'd want to instill my brain for AGI.
Excuse me.
Then you just change that command to run.
Will it uh Oh, you mean for Llama Llama CPP or for O Lama? Oh, for Olama 2. I thought Olama Run just started the server.
Did that change?
It This shows how much I've used Olama in the last year and a half.
I think my computer will do worse than your uh than your um what was it? What was the phone? S25 Ultra. I think uh I think my computer will do worse than your S25 Ultra.
You need to run a quantitized version.
SM to learn tiss. I'm kidding. I'm kidding. Uh quantitized version. Do they have that on Olama? Can you pull one of those?
But you see, but like just just in that statement alone, right? Like I know you're joking around, but like what would my mom know that like if my mom wanted to use AI locally or have a local AI, right? This this would not work.
Like, okay, mom, go to you got to find this specific you got to find this model, but this specific version of the model, right? You've got to go to your terminal or you've got to open up this app. You got to download it.
It's just it's not going to ever be ubiquitous unless they make it less.
It's got to be less friction. It's got to be easier.
Cody Hudson, what are challenges of trying to become a self-taught full stack developer? I'm in the Dallas area.
Well, very cool. How's Dallas? My my stepdad's a big Dallas Cowboys fan.
Um, I think the challenges of becoming a self-taught full stack developer, I think for a lot of people it's just uh I think a lot of for a lot of people it's accountability, right? It's um sticking with something long term, right? Doing a little bit every day because it's not going to happen overnight. Like this whole like, you know, get a six figure job in 90 days. I I think that era has passed. Like maybe that was a thing in 2020 or 2021 uh that people were doing, but I I think that's passed. So, I think you're going to have to be patient. It's not going to happen overnight.
Um and then obviously you're coming into a market where you're competing with all of this AI narrative, right? And and I don't think a lot of that narrative is real. Uh I mean some some of it there's some truth in it to some extent but this whole idea that like software's dead and software engineering's dead yada yada I don't think that's that's true but it is having an effect I think on how companies are approaching hiring.
I think that'll eventually change. I don't think that's going to be for the long term. So you just have to be I think you're going to have to be patient. You're going to have to be persistent. You're going to have to be willing to be rejected many many times.
uh you know, if you've only applied to 20 jobs and got rejected from every one of them, you're just getting started.
So, uh and granted, I should say this is like N equals one type of advice, right?
I've um I've not helped people get jobs, so I'm just speaking from my own personal experience hunting for jobs and trying to get into tech. Uh I wish I wish you the best, though. But I think you're just going to have to be patient. You're going to have to be persistent.
Look at this thing. I'm going to crash my computer.
Yeah. See, like this this is not usable, right? I mean, look at that.
And it's jacked my CPU usage to 92%.
Like that's not that's not going to work.
Okay, let's let's try your let's try the um Okay, you're saying use a quantity. Oh, no. I want to actually say bye. Stop.
Okay, so you're saying pull a Let's see.
Olama 3.5. Oh, you already have it.
Thank you, sir.
So, let's see. O Lama remove Then build a model file from Quinn UR helpful system parameter temperature top.
Why do I have to build a model file? Why won't it just work?
dude, we completely got distracted from doing boot.dev. You know, you completely derailed the stream, Kale. I blame you.
uh parser given the import path of path to rand which of these package names are allowed by go uh rand uh rand given the import path of path to rand which of these package names are allowed by goat rand What can go have at least one package?
I don't I don't know. I'm guessing.
Explain to me.
Hey, Kyler. If you're going to be down here, I need you to shut these doors cuz the TV is too loud.
Uh, hey Cody, I think I answered your question. I don't know if you heard me.
I'd suggest save time off stream. Just download LM Studio, import all your G gi GIFs, and play around with params. Yeah, I just I don't care enough about the local AI to do to take the time to do all of it. You know what I mean?
Okay, let's let's run this.
But I'm curious because I I just don't think the hardware I don't think my hardware is capable of doing it.
That's completely fair. Yeah. I just don't I don't think it's Yeah, that's still not I mean that's still not usable, right? Like what's up Gorgor Mendle? How are you?
Good to see you.
It's not for everyone. Yeah. I mean, I think I think I would be more excited to have to I think I would be more interested in making it work if I was confident that I could make it work as well as using the non-local version, right? I think that that would like if you if I bought a uh one of those what are they DGX Sparks or whatever or I got like a really beefy machine I think I would be excited to try to figure out how to do the local stuff. But if uh if if I don't have the hardware to do it then it's just not I don't feel like it's worth the effort the investment of the time and energy. Oh, I need to remove that model.
We are doing well over here. Greor took six months. Yeah, that's fair.
That's a lot of tinkering.
A lot of tinkering.
I And it it probably would matter to me more too if I I think if I had a deeper interest in using it.
And I would and I would pro if I had a deeper interest in using it, I would probably willing to pay the money, right, to buy the hardware I needed to make it work.
I can't say I use it to do agentic stuff anyway. Well, that's I mean it's just Yeah, I I totally see what you mean.
Yeah. Yeah. I mean I I I just want like I just want to be able to like you know how you know how like the file system is ubiquitous to your to your operate to your OS. You know I think local AI has to get to that point, right? That's when I think AI would be really really widely adopted and useful for people.
But I think until we get to that point, I think it's going to largely remain an inter enterprise product. You know, it's a it's a toy that consumers uh that that consumers use use for novelty, but it'll mainly be an enterprise product.
Yeah. I don't think Frontier models are either. Yeah. And I don't think they will be. I just I think that's why you see OpenAI pivoting so hard to enterprise enterprise solutions and enterprise customers. For sure, Gregor, this all AI just seems like the taking jobs narrative is more like making people rely on AI so much that it will take jobs more like mental slash problemsolving power thoughts. Uh yeah, I just have a very I guess I just personally have a very um I like have a I have a very nuanced I guess feelings and opinions about AI. I think I think AI is I think and I'll just say like I think generally when people are talking about AI right now they're talking about large language models. I think if you if you look at AI in a much bigger scope, obviously AI has been very useful in a bunch of different specific applications and use cases in the world.
So I think in the conversation of like large language models as they're being applied to uh the world today, I think they are a very useful tool for for certain tasks.
I'm not really convinced they're going to take everyone's job. I just I think we're a long ways away from that.
Um, and I think my largest concern like selfishly as an individual is just I personally feel like over excessive use of AI really does [ __ ] my personal abilities in a meaningful way. And I think that there's going to be in five or 10 years, we're going to be having conversations about excessive AI use the same way we've had conversations about the impact on social media on like the the impact that social media and the technologies that surround social media.
The way there's been kind of a social realization about the negative impacts on our social well-being or our emotional well-being. I think we're going to have the same type of discussions in five or 10 years when we start talking about the impacts of excessive AI use on our mental well-being and our mental capabilities.
Um like I I think society right now is largely running an experiment on itself.
Um and I think we're going to wake up in a decade and there's going to be a lot of literature to show that that AI is not good if you want to learn. It's not good for skill acquisition. It's not good for skill retention. Um, I think you're going to have cases where AI has been implemented in education and we're going to find out that AI just completely devastates student performance and there'll be a big upheaval to then pull AI out of educational settings.
And that that's just that's just tends to be how we handle technology as a society. We tend to have this really new cool toy. We race ahead with it and then and a bunch of people make a lot of money from it and the hype around it and then society is kind of left reeling and trying to sort out the aftermath of it.
That I think that's what'll happen with AI.
Yeah. Prof professional fallout. Yep. I could write an essay to respond to this topic. I hate it. I love it. I would would have rather it never existed.
Yeah. Yeah. Honestly, I would trade it for cheaper for cheaper RAM and cheaper hard drives. I would trade it instantly, you know, give me give me back the cheap hardware and take your LLM.
Yeah, but you will have like a whole generation of AI only students that cannot really do much on their own.
Yeah. Well, and I don't know if they won't be able to do much on their own, but I think they there will be a generation of students that feel like they were sort of mis mistreated in a way, right? Not not not like abused, but we h we handed them a tool not knowing what the side effects of that tool were, right? It's like it's like prescribing someone medicine when there hasn't been verifiable, you know, full fully flushed out safety studies and clinical trials on that drug, right? And that's kind of I think what we're doing with AI. I think the nobody is nobody is doing a good job having a conversation about the fact that there is a there is some sort of effect on the individual, right? There is some sort of interplay on our psyche between um how our brain is developing and and what the effect of excessive AI usage is on it. And there's not really many people who are doing a good job talking about that.
Yeah. Yeah. I And you you say co you say here's some cocaine. Um I really do I really do think that art or a lot especially these agentic harnesses that people are put building and putting together. They do really have an addictive quality to them. They very much they very much look like a slot machine. Granted, I know that people are using them to do productive tasks and accomplish work and yada yada yada, but they I I think they light up the same exact pathways that things like gambling light up in our brain. And I think that's what that's what causes the whole AI vampire syndrome where people are just like they're stuck fixated to the to their screen. It's it's the variable reward schedule. you you pull that lever or you type that prompt and you get exactly what you want. It was magical.
It was perfect that time and you're constantly seeking and you're just like, "Okay, this time it wasn't quite right.
Let me change some stuff." It and so I think it really does pull on those pathways in our brain. Yeah. It's uh that's the that's the stuff personally I'm worried about. I'm worried about it for me. I'm worried about it for my kids.
Um, I don't really I don't really care about everybody else. Like nobody that you're not my responsibility, but you know, for me and and my kids, you know, I I these are the things I'm most concerned with.
And that's why I've largely that's why I've largely pulled back how much I use AI to do things. Um, and if that makes me if that makes it more difficult for me, I guess to remain employable in this field, so be it.
Yeah, I don't want a doctor who wasn't proctor to do their theories 100%. I remember my bachelor's studies, the largest report I wrote was 12k words.
Well, this could be another this could be a 20k. This could be a book.
Somebody's going to write a book about this.
Wonder if there are any studies, but this sounds reasonable. So, I'm not sure about the the physiological studies, but there's been recent papers. The most recent paper I read on it was a paper called system. It was uh basically systems three thinking. Let me see if I can find a paper.
I wrote I wrote up a blog post about it.
Um actually let me just go to my blog because I have the link to the paper in that blog this is uh this paper was pretty interesting and there's been there was another paper I read at the at the beginning of this year where they basically had like can't remember the exact experimental design but they had like three different groups they had a and each group had to write an essay and one group used AI one group didn't use AI and I think there was there was like a third group involved and they had the people write the essay with and without and then they basically quizzed the people on what they had wrote about about what they had wrote and the people who used AI like 20 minutes after writing the essay couldn't couldn't answer questions about what they wrote.
It was really it was really alarming.
Um, and then this paper was pretty alarming too because it basically shows uh based on the results that when you interact with an AI, you largely are offloading a lot of your cognitive reasoning and abilities to this this um to this third system that they're they're calling systems three thinking is what they're what they're calling it, which is kind of a it's kind If you've if you've heard of Daniel Conaman's system one, system two thinking, it's sort of an extension of that. But the the the experiments and the results of those experiments are are um are pretty interesting. Um, see if I can find a sentence in here that's see across three pre-registered experiments using an adaptive cognitive reflection test. We randomized AI accuracy via via hidden seed prompts.
Participants chose to consult an AI assistant on a majority of trials.
relative to baseline accuracy significantly rose when AI was accurate and fell when it was when it aired the behavioral signature of cognitive surrender. So they're basically saying people defer to AI. Even when AI is wrong, they defer to it. When it's right, it's great. But because AI is probabilistic, right? You're sort of giving up, right? Your ability to be like, "Oh, maybe I should not trust what AI says." Um, I don't know. It's a pretty interesting paper. I'll link it. I'll link it here so you can if you if you're interested in reading it. But I think over the next decade we're going to have lots of research like that and we'll probably have some research on the physiology of it, how it affects our neurology.
Um like I would I would love to see somebody's brain in a functional MRI while they're using cloud code. Like what does that look like? And how does it compare to someone's brain who's at a slot machine? Like do those do those uh do those MRIs show the same pattern of neurological activity?
Let's see. Artificial intelligence educational applications college students creativity academic emotions student. Uh okay. I haven't read that one. Hey, what's up Oblivion? Sorry, I didn't see your I didn't see you come in, but they didn't write it. Uh, hold on.
What?
I think I think I missed that.
Yeah, that scares me. Really? Wonder. I think I think there will. I believe there will. I just I think right now we're all it's we're so early right in the in the cycle like the science won't catch up for another 5 to 10 years but we're all going to be experiencing the effects I think we can all speak to it from our own individual experience too to some extent I know I can it's anecdotal obviously right But Uh this was this was the this is the other uh Greger this was the study that let's see the essays that were written in different ways. They can't answer questions on their essay because they didn't write it. I don't know why that study had to happen but I guess educators are really out of touch with how computers work. Uh yeah, I don't I guess I guess it's an important study because it shows that there is some there is telling something to write something and writing something are not the same. And right now that is what is being portrayed. I feel like like they're they're saying that you you can have great understanding about something by just thinking about the thing, but I don't think that's the case. like you actually have to express that thinking in a tangible way.
I I found that paper compelling myself.
AI stands for an Indian. Hey, what's up gun eyes? Good to see you again.
You're still here? I am still here. I haven't been very productive today. I've taken a lot of breaks.
Talked a lot about random things.
We haven't I think we did 20 lessons today or something like that.
Yeah, I don't even think we did made it through. I think we made it through two chapters. So, not not a super productive day, but uh yeah, we're having fun.
We're having a good time. We were discussing uh we were we were basically having the this is your brain versus this is your brain on AI conversation.
No wonder Go is dot dot dot. What do you mean go is not? You don't like go?
No. will go for you.
Go is good. What are you saying? Go is good. I think go is great.
What is a Go module? An executable main package, a library package, a file of Go code, a collection of packages that are released together. Um, a Go module.
Let's see. Uh, Go programs organized into packages. A package is a directory of Go code that's all compiled together.
Functions type blah blah blah. A repository contains one or module. A module is a collection of Go packages that are released together.
Do packages in the standard library have a module prefix? Uh, no.
What is an import path? Uh, module path but plus the package subdirectory.
Okay, let's clear up a few points before we start writing Go locally. Do you need to put your Go your code inside your Go path? The go path environment variable will be set by default. Since we're working go module setup, you don't need to worry about that. If you read something online about setting up your go path, that documentation, not every language is for everyone. Oh, for sure. For sure. I agree with that 100%. And my my opinion has always been um people should use the tools that they most enjoy.
My dog keeps banging on my office door.
Okay, so let's uh run these commands.
Close lesson.
You earned a sharpshooter chest.
Uh, maker. Hello. Go.
CD. Hello. Go.
Go. Mod in it. Uh we can do uh github.com/hello go okay catgo.mmod wonderful run and submit the CLI Inside Hello Go, create a new file called main.go. Uh, touch main.go.
Paste the following code into your file.
That's why I'm still using Notepad++.
Love the tool. Yeah, I Hey, I say use use what you like, you know.
I guess I had to escape that.
I just think I just think life is too short like and I don't think any of this stuff is that serious, right, for it to really matter, especially in 2026. I think most tools, most languages get the job done, you know?
I mean, when somebody can build Doom in the TypeScript type system, I I think you're I think your language or tool of choice will be just fine.
Okay. Ensure that you are in hello Go directory. Then run go install.
If all went well, Go compiled and installed the Hello Go program globally on your machine. Run it with Hello Go.
Hello Go.
I don't think that worked. I think it interpreted it as a directory.
Let's see if you specific go install.
Uh yeah, I don't think that's going to work. Um let's see the indigo.
There we go.
I don't I don't think this is I think this is I don't think they're going to check for this.
Yeah, I was I think if I just run it from the project directory, it'll be fine. Navigate to the parent directory of Hello Go.
Yep, that's where we are. Create a my strings directory as a sibling directory. Uh, okay.
So, maker, which is going to be my strings cd into my strings. Go mod init my strings.
Create a new file my strings.go go in that directory and paste the following code.
Of course, don't get me wrong, Go is probably fantastic and fast language, so I've heard, but I just can't learn it.
No worries, man. Yeah, no worries.
I I like it. I all the time I spent enjoying it I've or all the time I spent writing it I've enjoyed but I totally understand if that's not uh if that's not for you. You know what I mean?
You I am not much of a uh programming or AI evangelist.
I say do what makes you happy. you know, live the life you want to live. Steve Jobs had uh Steve Jobs had it right. I mean, for all Steve Jobs uh faults, uh that thing he said at that Harvard commencement speech, he had it right. Um you cannot live your life based on dogma, which is uh living based on the conclusions of others or something to that effect.
Gregor Minda, what's your top three uh three languages? Oh, you're talking to Gunheis, but man, [ __ ] Java.
That's kind of That's kind of how I feel about Python. It's like, I know Python's a wonderful language with a rich ecosystem and lots of people love it and it has wonderful use cases, but [ __ ] Python.
That's exactly how I feel.
Hey yes Finel thanks for being a member man I appreciate that hating job is the only dogma I will say except I mean I guess you have to draw this the line somewhere huh position encoding param is required in vim lsp util make range huh okay see notice there is no package go funk main the package run go build because this isn't a package it won't build an executable however go build will still compile the package and save it to our local build cast. It's useful for checking for compilers.
Okay. Go to the root of my strings.
Let's do split pane down.
So we can close that window and we can do uh cd my strings.
Then we need to submit our checks.
Um I don't know. I might I might move my camera next stream.
I don't think the dual format thing is doing anything on YouTube. So, I think I might move my camera someplace else on the next on the next stream.
Okay. Uh modify with the below. Don't forget to replace remote. Okay. So, we will go to um what do I want to do? I think I can go.
Can't I go up over here?
How do I How do I navigate? There we go.
I was like, how do I navigate back? So, go back to hello world main.
Um, and now we need to do what? We need to say format.
We need to do uh github.com/stephven freeborn mystrings and then we'll do uh my strings dot reverse Now, why are you complaining? Could not import hard modules.
I think I spelled it right.
Oh, I have to Okay. Um, replace github.com/stephven freeborn my strings 0.0.0 zero. Redirect that to dot dot do my strings require.
Uh yes.
Wonderful.
Let's see. Go.
Go. Build.
Hello. Go.
Uh, that didn't work.
>> Hey, thanks for subbing. Who was that?
Gandalf. Thank you for the sub, man. I appreciate that.
Go build.
Okay. I must have done I must have implemented this wrong.
Yeah, it's cuz it's not it's not reversing. Let's see. Go run may not go.
Okay, so we're using we're not using the right thing, right?
Go build.
Go build. Not.
I think it's using the global, isn't it?
There we go. There we go. Okay, there we go. But how are they going to run the command?
See, checks. Okay, they're going to do it correctly. So here, I hope Gandalf is not a Java lover. I'm sure he's not. I'm sure he's not. I'm sure he's I mean, the thing is there's probably a time that will come when I learn Java on stream. I mean, that's probably going to happen.
So, I don't want to bash it too much.
I've always felt like Java was the language I should be writing because of how big of a coffee lover I am. It seemed so much on point.
but never made my way to it.
Uh, all right. So, uh, it is time for me to work. Unfortunately, this was a very, uh, this was a very odd stream.
The productivity was not great. The conversations were all very random, but I mean, it was fun. It was just, it was not like our normal stream. So, but I appreciate you guys hanging out with me.
Gunheis, appreciate it. Thanks for being a member. Gregor Mendle, appreciate all your questions, man. Thanks for hanging out here. Also, love the username. I'm guessing you might be into biology or something like that. I don't know. I don't know where else you would come up with that username from.
Als, hey, I'm guard the chat. It's me, Gandalf. Do you remember me? I do remember you. It's been a long time since since I've seen you around my YouTube channel. Uh, but yeah, nice to see you again. Hope you're doing well.
Greor, I am bioinform bioinformatician.
Okay, that makes sense then. No wonder your username is Gregor Mendle. What's up, Kale? Have a good day, man.
Appreciate you hanging out.
Thanks for being a member. Appreciate it. It's long time. I'm pretty good. You I'm good. I'm good. I got to run to work, so it's it's bad timing, but uh it was nice to nice to see you around the channel again.
All right, I'm outie. Bye, Gregor. Bye, Kale. Bye, Gun. Anybody else? Anybody on the Twitches? Bye, guys. Bye. Have a good day.
Related Videos

TOP 15 Data compression Interview Questions and Answers 2019 Part-2 | Data compression | Wisdom jobs
wisdomjobs
281 views•2019-06-28

CTS 158: 802.11w Management Frame Protection
ClearToSend
4K views•2019-02-04

NDSS 2019 Send Hardest Problems My Way: Probabilistic Path Prioritization for Hybrid Fuzzing
NDSSSymposium
496 views•2019-04-02

How realistic is Cities: Skylines?
CityBeautiful
159K views•2019-02-14

GUIs & TUIs: Choosing a User Interface for Your Python Project | Real Python Podcast
realpython
2K views•2025-04-04

The OSI Model - Explained by Example
hnasr
225K views•2019-05-12

Cloud Computing - Introduction
elithecomputerguy
98K views•2019-10-07

From Traveler's Dilemma to Dynamic Routing | Demystifying Networking
IITBombayJuly
5K views•2019-08-04
Trending

WOW! Judge TURNS THE TABLES on Trump in His OWN $10B LAWSUIT!!!
MeidasTouch
197K views•2026-07-23

Playstation NO DISC/NO BUY Fight Is Over...
DavidJaffeGames
4K views•2026-07-23

Steam and Xbox Just Dropped The Hammer On PlayStation
OhNoItsAlexx
9K views•2026-07-23

Americans Confused in Australia for 17 Minutes Straight
IWrocker
17K views•2026-07-23