Plummer provides a lucid breakdown of the Unix file abstraction, demonstrating how a single, elegant metaphor can unify complex hardware under a consistent interface. It is a vital reminder that the most enduring software architectures are built on simple, composable foundations.
Deep Dive
Prerequisite Knowledge
- No data available.
Where to go next
- No data available.
Deep Dive
Everything Is a File? | Shop Talk
Added:Hey, I'm Dave. Welcome to Shop Talk, where we answer all the week's best questions from the regular series episodes and from the comments and questions you have online. We might as well jump right into a good one. Glenn, what do you got for us?
>> Well, let's go to Jeremy Mikola. Uh, how do CPUs actually talk to hardware? Is there a special talk to hardware instruction? Yeah, that'd be a whole episode, but I can give you kind of a rough breakdown of it. And there's two ways the CPUs talk to hardware, and that is through special instructions built into the CPU or using memory mapped IO.
And I'll tell you what those roughly are. So on the Intel the x86 the IO let's saying you're running on an 8086 or 8088 in the old days of MS DOSs not under a protected mode operating system to keep it simple but there are instructions like in and out and you give it a port number like 64 and you say give it the value AL which is seven.
So you're going to say, I'm going to send the value 7 to the keyboard register by sending it to port 64. And you just have to have this general agreement that port 64 is the keyboard port. Um the problem is of course there are only so many addresses and you might have remember this with sound blasters.
You got to go set it to 268 or whatever the number was. Uh and you had to make sure you didn't conflict with some other device was also using that same port address and you could get into cases where there just weren't enough choices.
So that's the downside of it. Plus it does it has other limitations as well.
So what later systems generally went to is memory mapped IO and this is like the PDP11 and other systems where the hardware will actually put memory into the uh memory map. And so uh com 64 is a great example. So the VIC 2 chip which controls all the graphics appears at I think it's D800 or something in in in the memory map. And so you just go to that address in memory. And if you want to change the spring, you change an address in memory and it's mapped into the chip itself. And so it's a much more flexible way, but probably I'm guessing the hardware design is more challenging.
I'm not a hardware guy, so I would guess that's why. But I mean, I know how to do it for simple things like the 64. It's just like a PAL chip to select which chip is active.
>> But sorry, a what chip? A PAL chip.
>> Yeah, programmable application logic or something like that. It's basically if I give you an address and you can control eight chips based on the address that I give you, which of those chips should be active? So maybe some RAM chips in most areas, maybe some ROM chips in other areas, maybe the video chip at particular >> uh spots and you can do it with simple logic tables, but once it becomes complex, they generally do it in a big table and they program that into a chip called the PAL.
>> Okay.
Weird. So uh this may not stay in the episode but let's see out >> weekly I meet with a British friend of mine or English friend and we do the the jumper crossword from the independent in England and there was a question mentioned something about the a type of pro of computer chip memory chip that can only be erased using ultraviolet light.
It >> could be a worm. Well, it the answer it provided was EPROM.
>> That's a better answer.
>> Oh, okay.
>> So, that is a chip. Let me grab one.
>> Let's see if we can line this up. So, here's a bunch of EPROMs.
>> Yes.
>> So, they look like just regular big ROM chips, except you know, they all have a little glass window.
>> Yeah.
>> Actually, it's not glass. It's quartz cuz they have to let UV through. And glass tends to block a lot of UV, so they use quartz, which lets UV through.
>> So you can erase them by shining UV light in there. How that process works.
Nobody knows.
>> I was going to say, you know, when you're sitting on a ground, well, I guess a follow-up question like, how the hell do they get the light in there? And then you like, oh, well, there's a quartz. So yeah. So there's literally you can read the chip and there'll be numbers in there and then you expose it to ultraviolet light and they all go to FF. So they all go to ones, but >> right.
So that's you're not programming those EPROM chips in a typical computer though. That's outside the computer.
>> Yeah. And normally you have a USB device that is the writer.
>> Really? Oh wow. Okay.
>> Now my old Kim 1 has a built-in board that does it and it's in the computer.
So that's an exception to that rule. But >> So what's the E stand for in EROM?
Uh, electronically programmable or erasable.
>> Electronically. Okay. Or erasable. Oh, probably. Okay. Yeah. Hm. Ultraviolet.
Yeah. I just thought that's bizarre.
That was >> because there's also E electronically erasable. And I've seen that term. I've seen EA ROM electronically alterable.
That's what they use in Tempest for the high scores.
>> Okay.
>> So, you an EPROM, you know, if you want to change the value, you'd have to pop it out, put it under the light for four hours or depending how bright the light is, >> and then It takes hours cuz my my I've got a little box.
>> Okay.
>> That uh >> Wow. I'm >> So, this is the lid from the box.
>> Oh, jeez.
>> And it's got a UV tube in there. And so, I plug it in and I blast them with this direct UV tube. And I know that within a couple hours they're erased. For all I know, it could take 10 or 15 minutes.
But >> that's an easy bake oven for computer boys.
>> Yeah. For dudes. Well, not that girls can't erase UV or you can't erase problems, but >> that's the closest you got to an easy bake oven, eh? Yeah.
>> Well, you can put a UV bulb in an Easy Bake oven, put your ROM chips on that little tray, like the pizza thing, and slide it in there and girls could erase theirs in there. So, that's >> And the pink one or >> the pink ROM chips. Thank you. That was uh that was fascinating. I'm glad I asked that question and scratching my head at the cross word puzzle, but did get the answer with no help. So, uh Todd Marshall, uh again, we're getting into this technical stuff here. So, if you were to write Unix, would it be different? Uh how many rules do you have to know to keep your keep from blowing yourself up as you try to just get your work done?
I'm not that creative. So I would probably do like Lionus did and uh stick to a known and welldefined provable interface and I would probably copy the Linux kernel interface as well.
You could copy the Windows one but it was intended to solve perhaps slightly different problems uh different architecture. I understand actually the Unix one better because I spent a lot of time on the PDP11 playing with Unix and with the source code to the kernel and modifying the kernel and so on. So, ironically, even though I worked at Microsoft, I wasn't a kernel guy. So, I my exposure to the kernel was largely as a consumer and as the occasional dabbler in kernel code, but on on Unix, I have a much better grasp of it. So, I would probably emulate that or not emulate it, but you know, repeat the things I've learned from that path, >> right? And then he said in the same he says asked the same about C and C++. And then he goes on, he says, how much do you have to know about clocks to use the concept of time and schedule a meeting?
I think you have a nice little response for that one you've talked about before.
>> Oh, yeah. We were talking about there's a line in a movie where uh >> secret agent girl is flying on an airplane with another secret agent guy and she wants to know what's going on cuz she's allegedly been kept in the dark and so she asks him is there anything I should know and he says uh you're asking me how a watch works and let's just keep our eye on the time which is a great line to explain the whole you know trying to understand too much too early can sometimes overwhelm you and get you confused more than it learns more than it teaches you. So cool. Uh, Omega Sparky, when I first learned about Unix's view of everything as a file, it blew my mind, but then learned to love it and wish it was everywhere. Yes, I octal is a weird but necessary wart for things that need configuration, but man, thinking of everything as a stream of bytes is really powerful.
Yeah. Yeah. And it's not so much that it has to be the only way of doing things, but to be able to have almost un universal access to all devices and to treat them as a stream of bytes means that your format command could format almost anything as long as that device exposes itself as a raw stream of bytes.
So there are so many tools that scale well to you know like from cat and a and set and grap all these tools work really well with streams and because everything in Unix is a stream they work very well. So you can compose things and uh with Windows or PowerShell you can probably often achieve the same effect and of course it supports piping and all that just in a very similar fashion now but uh yeah I think it's a good fundamental design you know makes sense to me it's not the only way to do things but it works so all these streams and pipes everything just flows so nicely. Yeah, it really does.
>> Evan, call back. Dave, it seems like it would be fair to say Windows has many of its operational functions built on the back of C or perhaps Unix in reality.
So, in reality, is it Unix operates in C or C operates in Unix?
>> I think Windows probably owes more to systems like VMS and >> um RSX11M because those were the things that Dave Cutler did first.
>> Yeah. Uh, and I don't know that they were in C. I think they were in bliss is is generally the language I believe they were using.
>> Okay.
>> Sorry if I just pulled that under my butt, but uh I'm just going to claim bliss and we'll see.
>> Hey, but bliss out of your butt is better than bliss out of someone else's butt, right? Yeah. I don't know.
>> Check me in the comments if I'm wrong, but that's how I remember it. So, >> let's get into some neurodiversity uh stuff and learning. So, S. Thomas says, "Hey Dave, just have to again say I see a lot of me and you and as I'm in the UK, I'm currently on the waiting list for a diagnosis. Um, he's known he's been different since primary school, but in the days there was not a lot known as you know. Have you ever used a Oh, so that's and then he he goes on to little computery question here. Have you ever used a Tatang TS1 in Einstein?" And also wants to know if you've ever programmed in Pascal.
>> I've done a bunch of Pascal. We did it in college. So I took a whole not it wasn't the whole class but it was probably half of the class in CS200 was Pascal. So uh got a fair bit of exposure to it then and then I played around with it at home with Turbo Pascal.
>> Yeah.
>> Um what was the other part of that question?
>> Uh he's asking about a Tatang TS1.
>> Yeah. That I I'm not familiar with.
There are a lot of British machines that we just got no exposure to over here.
>> We did get the Sinclair ZX80 which we called back then the Sinclair ZX80.
>> Yeah. because it was British.
>> Osborne. An Osborne machine made it out here maybe too.
>> Yeah. Is that British?
>> Yeah, I think so. Aren't they?
>> I'm not sure on the Osborne was, but maybe not. Uh Mike Hton is unit 8720.
>> No, wrong. Never mind. Ignore my outburst. I thought we solved the name of the guy from the other week that we're trying to remember, but no, that's Milhouse.
>> The guy? You mean the guy from the Simpsons? Yeah.
>> No, the guy from high school that was van something.
>> Oh, yeah. Yeah. Yeah. I still can't.
Yeah. And I couldn't find my yearbook, so I don't have it. So, I'll have to rely on this yearbook.
>> Oh. Oh, that guy. I'm thinking a different guy. Yeah. Yeah. Yeah. We >> Yeah. Van the picture. We were >> But it's not Van Halton.
>> Oh my god. We got Yeah, we're already into last week again.
>> Okay. Start over. Uh Mike Coutton is unit 8720 says yet another reason I feel I have some aspects of autism. Can you be so good at masking and not realize it? Yeah, it happens to a lot of girls who are generally you know as a generalization even better at social skills than men are especially at a young age. So I would say that smart and uh mature girls often tend to mask even better than boys their own age. And so they are even more likely to experience the thing where their symptoms go unnoticed or undiagnosed because they're able to mask their way through a doctor visit. So it's not that they're trying not to get diagnosed. They just know I'm in a social situation. This is how I'm supposed to act now as opposed to being, you know, I'm just going to sit there and be 100% autistic on them and let them figure it out. It's not your goal.
here. They still got to be able to figure it out. And that's why it took like 12 hours of testing because they can't do it based off of, well, what's the vibe off this guy and guys just go, "Well, here I am. This is what I am."
Like, deal with it.
>> Right. Uh, Mossad Hacker, I really enjoyed your recent video about autism and workplace. Uh, I considered being recruited to CIA cyber security. said, "I read that the CIA recruits individuals that are neurodeiverse, like high functioning, autism, anxiety, ADHD." You get any ideas on that or >> No, I've never been approached to to work there. So, um anyway, >> yeah, it's true.
um like I take it into a big room and then all of a sudden um I would imagine it makes sense especially you know if you're super brilliant but you have special needs that come with your neurodiversity then maybe places like the CIA are willing to accommodate them in order to get the raress of your genius. So they might put you in a your own office with a nice window and natural lighting or something like that that you might not get at a, you know, top 10 computer company these days.
>> Coding hut. And I like uh this one cuz he starts off. Uh, hey Dave, you always say you answer every comment with a question mark. Though my first question has not been aired, so hopefully this one will be. And I think we should >> That wasn't a question technically.
>> No, he's got question marks in it. But uh yeah, we don't this is shop talk and we don't answer every question. We we pull or pull from all the comments from all the the videos on Dave's attic and Dave's garage and usually there's 300 and some with a question mark that come out of it and we filter through those to find 30 or 40 that we can ask on this.
So we try to get some of the best ones and a couple of oddball ones, but we can't answer every question but keep asking. Anyways, >> not Pokemon. You can't catch them all.
That's Can you catch them all?
>> Pokemon?
>> Yeah. Has someone got them?
>> I thought you could. You got to catch them all.
>> Okay. Okay.
>> That's a slogan, I think.
>> Oh, okay. There you go. Uh, I know your general response to the should I get late diagnosed is yes. That said, my daughter was diagnosed a number of years ago. Since then, I've connected the dots to a lot of traits I have in common with her. So, my question is this. Is there really any benefit to having it confirmed on paper versus just living my life under the assumption that I would have a positive diagnosis? And he says, if there is an actual benefit, could you give any example of what they might be?
Yeah. So, for example, I learned to manage meltdowns a lot differently and more effectively than I did before I knew that I had autism because I didn't know that I was having meltdowns before I learned that I was because I had autism. I had episodes that I didn't fully understand. And then once I got an understanding of my diagnosis, I realized what they were. And so it allowed me to, you know, then make certain changes in my lifestyle and in the way I approach things and handle things and resolve things so that I have fewer of them. And you know, if there are eight things like that that you can do to better address your autism once, you know, well then the question is, well, should you do them anyway just because you don't have autism and not always? And I think the answer is you should know whether you've got autism and then you should look at the things that are common in autism and try to address them if they're impacting your life.
>> And I don't know if you want to talk about any of this, but was there uh like medication that >> there are a couple medications approved I think for autism now. I think ailify.
>> Okay. Uh and oh I'm not a doctor and I'm not a pharmacist but I don't I don't need you to name but was like were you >> this undiagnosed autism expressed it way showed itself in numerous ways for most of your life >> right >> um I imagine some of those those ways may have been identified with a doctor and addressed oh well try this and that might help with that little symptom. or this thing. Once you get an official diagnosis, does that did that shift or change the medical perspective in terms of medication? Oh, now you got all that stuff, then we should really tweak this because it might be a >> they had a different view of it then. Or >> not on the medication side, but finding out that I was officially diagnosed with autism caused me to seek out some counseling for about 6 to9 months >> that was specific for people with autism, which wouldn't have made any sense if I didn't have autism. So, >> so yeah, in that sense, it did change my medical stuff. I think I think the other thing is the the sort of awareness or whatever or yeah understanding from those around you right like your your your wife and your kids that oh okay now there's sort of a a bit different understanding of some of the well it kind of helped I wrote two books on it and had family members proof a lot of it so they had to read my opinions on autism and uh get educated through that process too. So, uh, where are we off to next here? Oh, uh, Oscar Oscar 5.
Uh, what is this? Anyone else puts up a video entitled Fop? I keep scrolling.
Dave puts one up. I watch. Fascinated.
Hitting the back button at regular intervals. So, a lot of people liked your fop episode. So, let's get into a question here from Christopher Norana.
uh curious how all of this works in DOSs or Windows style OSS where most of the stuff you mentioned is or was available.
Says I know that DOSS had reserved file names con and null that worked with uh uh standard in and out and dev null but nothing in standard error and of course none of the other fancy Unixy stuff. So he says are the raw underlying OS functions still similar enough? Yeah.
Well, they're not necessarily similar at the operating system level, but at the C runtime, they're they're essentially identical. So, you have standard in, you have standard out, you have standard air. Now, you're not going to have /dev0ero as a zero device uh or print or any of those things because those are all Unixisms, but you can fop LPT1 and then print and you can fop CO com zero or what COM 1 or COM 2 or COM 3 or whatever your modem is and then communicate with the modem through FOP and so you can treat all those things the same. Uh so it's pretty orthogonal.
Uh, Ziprock says, uh, F open in his opinion seemed basic at first when he was learning to program. Then he considered things you can do with a file. Uh, so how does a video game take asset files and pack it into a single file and retrieve them?
Well, it's up to the game. Let's say you have a header and then all your data. So now when you f open it, first you read the header and then you read the data.
And so as long as it was coming out as you planned it going in. Maybe I'm not understanding the question, but that's the basic gist of it.
>> Roger Levesur, one thing that bothers me to no end. Fop a file, then f close on the file should be success, then f close on the file again. What is the result? Do you get a return value of end of file and an error set to what's ebadf but if you do that it's a bug to close the same handle twice so that if if it's I assume it's undefined behavior which means it could blow up because you're passing it a handle that could already be reopened by somebody else or another thread let's say and you're closing it on their behalf. So it's at a minimum a bug in your code and probably catastrophic at that point.
>> Okay. So, he says this. You get this uh an error number set to Okay. Oh, you get an error number. Whoa, I just lost you.
>> No, I'm here.
>> Uh I can't see you.
>> Well, we're still recording, man.
>> Okay.
>> I can see there's no >> We can wait until it comes out.
>> Does it show you and your thing?
>> I can see me. I can see you.
>> I can't see you.
>> Oh, okay.
>> So, hopefully it's fine. If not, it'll be >> Let me pop you back in and then see what it says.
Yeah, I see me. Do you still hear me?
Clearly.
>> Yeah. Yeah, >> but you can't see me.
That's at least a quarter of the fun.
Uh, cloudless mirror. Dave, Microsoft UCRT does not provide functions like FM open and fop cookie and fop. Uh, how can you ask them to add that?
>> Well, how do you reach Microsoft? I would do it on Twitter and tag Microsoft and maybe you'll get lucky and one of the developers will see it and think, "Yeah, that's a good idea."
>> And then Simple Simon in the UK says, "Dear Dave, please can you do another video on MAPAP?"
>> Yeah, I should. It's hard to make that one mass market. That's mapping memory big files into memory and I got a huge performance win of several minutes cut down to seconds uh recently. So, I have a good example, but that's the punch line. And then what's the story? I'm not sure.
>> Well, it's a small audience. Maybe someday when you're Yep. So inclined. E.
>> Yeah.
>> Simon Clarkstone. Do you consider Unix file descriptors to be object-oriented?
>> They are opaque. Can only be acted upon by specific operations and have many implementations that differ greatly in internals but share the same interface.
So callers didn't care which implementation they are calling.
>> Well, you made a good argument. Yes, I changed my mind. Sure. Sure. their objects or anything. I don't think of them as such because there's no polymorphism other than, you know, there are APIs that operate on file descriptors and file handles that >> Yeah. Okay. I'll buy that.
>> Okay.
>> Who's your baby? What's that?
>> No, that was going to say that. I'll find the cartoon. Stick it up there. Uh, Michael's 840. From my understanding, in the olden days, MS DOSs, old for some and maybe early days for some, writing to a text file. Upon close, the system would append a control zed. Opening the same file in binary mode would read the entire cluster. What does Unix use to mark the end of file? And how does it handle that for binary data? I believe it has a file length. The notion of a file length so it knows when the stream is over. And it sets the end of file flag is true or false. It's end of file is weird. I think it's backwards from what you expect. But um either way, it sets the end of file condition when you've read all the bytes from the stream. So it doesn't matter where in the cluster that is and there's no control Z in Unix appended.
That sounds weird to me in MS DOS. That sounds like a bug or somebody pressed Z to finish the stream and it got written to the stream by mistake. But >> well, maybe if they'd press control zed instead.
>> Yes. Then it would work in Canada.
>> Yeah, it works. Yeah. and the UK. Uh DIY Dave, >> I know >> kilometers. Uh how many clicks? Hey Dave, uh this is DIY Dave. Okay. Hey Dave, this discussion of fo fop is tremendously insightful. It also brought to mind this question. Given the agnostic way fop works, doesn't that imply the possibility that object programming has had it all wrong? that abstractions and polymorphism should have been focusing on actions rather than things possibly. It's certainly another way of doing things. I don't know that it's proof that any one is superior. You could have had a file object with those uh member functions being what are you used to now as API calls. So you could restructure it both ways, which is preferable. I mean, I'm used to the way it works now and it has for 40 years. So I'm not going to change today.
Therefore, that's it shall stay that way.
>> I think so.
>> Yeah. Uh Ken Smith >> storage create from moniker. There you go.
>> From moniker.
>> Yeah. Moniker. It's a name.
>> Come on. You're a cross word man.
>> A a moniker. Well, that's what I'm trying to Mon. I'm trying to spell it now and then I get confused. It's like when I think of the word meant.
>> So in comm instead of a stream or a file or a location or a grid having a name, you can create or convert it to a moniker.
>> Yeah. Right. Okay. now. Yeah, I'm like that. Thank you. That just made it click. I'm like, that's okay. Hits me funny. Uh Ken Smith, he's got three questions here, Dave. All right. Uh since it is a pointer, I never dreference. Why does it have a type other than void?
>> Yeah, for your purposes, it could just be void pointer. Um >> Okay.
>> There may be user side code that you can actually look at the file descriptor.
I mean, you can certainly look at the file scripture. Whether you should or not is another question because, you know, if they change it at some point, but I'm sure they won't. I'm not sure of anything, but it's unlikely. Um, yeah, unless you're actually looking at the structure of the file descriptor yourself, then you don't need to know that it's a file object at all. That might be a convenience for user side programming that the way C headers work, but it could just be an opaque handle.
>> Okay? Otherwise, >> and then he says, "Am I am I right that the idea of device independent IO really came before Unix?"
>> Yeah, it came with at least Multics >> and it could have been could have been examples before that.
>> This last question, I just see it now.
Is this enough words to make the YouTube code counted?
>> I hope so.
>> I'm not sure what it's counting, but he got three questions in and only two of them were questions. So, but I asked the third one anyways cuz that's what I That's how we roll.
>> Uh, Craig Olmstead. So, I've been around long enough to have used pipes for a very, very long time. Are they just another file handle? Says, I've always mildly distrusted them, but a lot of systems, especially Unix space, depend on them, and I'm sure they landed rovers on Mars. I've never knowingly used named pipes.
>> We had a cool named pipes implementation that I don't fully remember the details of, but a guy named Bob Day wrote it, and it was to get around Windows 95 had a shared memory section and so instead of and it allowed all the explorer processes and shell windows to access certain things that were common to them all. Now that's great but on a system like NT it's a little dangerous because if you wreck that little area all your things die and or if one of them goes rogue they all die and so it's not a great design for a robust operating system. So we converted to be name pipes and that's the last time that I've used name pipes and that's 30 years ago. though >> the old days as they say. Yeah, apparently.
>> Brian Douglas, what are your thoughts on text streaming tools, Linux pipes, uh compared to structured data like PowerShell?
>> I tend to prefer the streaming one because you can find tools that do so many different things like O. Um that doesn't mean there's not O for PowerShell or Windows, but you know, if you get a new tool, they don't have to know anything about the structure of the data that they're operating upon. It can just be a stream of bytes. And so the tool can be like I don't know what this is but here you go I'm doing my thing and shove it all along. Whereas if you go with structured data then it has to understand how to pro how to process and parse that data.
>> Uh I think you had mentioned something before about this uh thing with the LPT1 and ports and stuff. So Brockman says how much work have you done with the old LPT1 ports with fop?
>> Brock man was my pseudonym once. So I'm interested.
>> Oh is that what you used to check into hotels?
>> Airline flights. Uh Kent Brockman, is that who you >> Brockman? There you go.
>> Sorry. Uh he says since it was a device, I'm assuming it would be treated like any other dev object.
>> I would believe so.
>> Okay. You haven't done anything with the old LPT1 ports with FOP?
>> I never have. I mean, I've used uh redirection to redirect streams of bytes to LPT1, and that's the same as doing FOP and writing to it. So, I assume it's equivalent.
So yes, I have >> if Malik isn't if Malik isn't magic, but you're using redirection. Oh, not misdirection. I'm thinking magic and illusion. Sorry. Uh >> no, that's you're going to bring up their heading again soon. So let's move along.
>> No, no, no. I was going to go pen and tell have that excellent routine where they show the seven different types of magic and there's whatever this and misdirection. He's got the cigarette and yeah, it's a nice little skit. He does it one way where you can't see it and then he turns around where you can see him doing all this stuff.
>> It's great. I've watched it a few times.
Nick Keely, uh, the shell allocates file descriptors. What if I call fork in my process? How is the shell involved at all?
The shell sets up your initial descriptors and hands them off to you.
If you call fork, they're duplicated into each process and then each process continues with its own copy of them.
I hope that's what you >> That's how it is. Yeah. Uh, Michael Palisios.
Uh he says, "Oh, I see how it is. Malik isn't magic, but F open total sorcery."
>> Absolutely.
>> Thought that was a nice way to end on that stuff. Uh let's get into a little stuff sort of just learning and education stuff. I don't know some of these. So Kyle Kinger says, "Why do CS classes not teach like what happens in real life?" Says he had a mainframe assembly instructor that gave out an initial assignment. and during the next class she'd uh change the requirements and that's what they'd now have to work on to get it done before the next class.
And someone asked why she did that. Her response is that well that's what happens in the real world. Expect your customer to change their minds. So should be teaching like that. I don't know about that example, but I think it's really important to teach the fundamentals as opposed to the current technology because the current technology changes so frequently that you could go to college, get a degree in computers, and then graduate and then 10 years later be completely obsolete because you didn't learn the basics. You just learned dbase cuz I was cool that year or something like that. So when I went I mean we you know you study a problem like the dining philosophers and the Chinese chopsticks and the guys are on the table with the plates and >> right >> it has nothing to do with MS DOS and I'm like well we should be doing this on microcomputers and stuff but of course it didn't matter. We were learning the fundamentals and not how to do it on a PC. So >> yeah. Uh and then hybrid robotics. It's funny when I read his name I want to say robotics. I'm like oh robotics. Uh um he sort of uh I don't know, we'll see. He questions your AI stuff. He says, "I must disagree with you on how a new person should learn how to program.
I agree in installing VS Code, but not on asking AI for the code. It is far too easy to recommend that a person use AI at the start. This will not build a solid understanding. There are many fine and easy tutorials on the net that people can learn Python basics from.
What is your view on this?" And just before you answer, I think you sort of made your view pretty clear. Um, and I don't think it's, oh, if you want to learn coding, do VS Code and get AI to start you off. But that's part of the journey, I think. Right.
>> The fundamental lesson in coding is fake it till you make it. No, I'm kidding.
>> Um, for me, >> and then go to AI and let it do it for you.
>> Fake it with AI until you make it and then learn what you're doing. No, that'd be terrible advice. So when I was a kid and I was learning the Commodore 64, I would look at the Commodore 64 programmer's reference manual and I would look at the example how to plot the little balloon sprite on the screen.
Now how to move that little screen or thing. And that's what I'm talking about asking AI, AI, give me the code to put the sprite on the screen and then you have to understand it. Maybe you type it in, maybe you make a copy of it. Now move the sprite. Oh, that's how you do it. I'm not saying go write the whole thing for me. I'm saying help you with each little step that you don't know the answer to until you know how to do each of the steps. But that's going to take diligence on your part to not just let it jump to the end and tell you how it ended.
>> Yes. And I and I think another important part of when you were talking about that you were saying like again use the debugger and step through that stuff.
>> Yeah. as you step through it. Again, I think my understanding was the use of AI and the debugger and stepping through it if you're going through with the intention of trying to figure out how this is working rather than just accomplish a goal. Um, it can speed up the process because you don't have to type all that stuff in.
>> So, if you're trying to learn how to write tic-tac-toe, there's two things.
Do you just want to finish tic-tac-toe or do you want to learn to be able to do it a second time without AI? And if that's the case, then you've got to go through and really understand the code and single step the code ideally. And that's a great way to learn it as you're saying. So >> yeah, there you go. I think that was the point. And we've >> Well, you've made it a second time.
Fireman, >> well, I can give you a third take on it.
No, just kidding.
>> Okay, I'll wait for a third one.
>> Let me manplain it to you, Glenn.
Yes.
All right. Got another one.
No, I thought you were going to give me a third one. Explain it to me. Oh, okay.
I thought that's You got me twice on that one. Uh, fireman says, "After the episode on F Open, I wanted to ask in the comments, when will I be able to take a CS course from Dave? It's funny to me that most of these questions are about the same thing."
>> Yeah. First, I got to get an honorary degree, then I can teach an honorary class. That's what I reckon.
>> Oh, there you go.
>> So, I need an honorary doctorate so I can be honorary professor and then teach an honorary class. and you would get an honorary certificate for taking that class.
>> I can get chat GPT to whip up an honorary diploma and send it off to you.
Is that uh that's not what you're looking for?
>> You want a legit honorary, not a fake?
Yeah. Okay. Okay. From an I can't help you with that.
>> University.
>> What's that? An accredited? Yeah.
>> Okay. Uh remember the No, the old in the back of matchbooks you could like send $10 off and get a certificate in fuel management accounting. I heard from I read in Richard Feman's book that he did some of the courses that you could use to get in the matchbook thing and he said they were actually really good highly condensed like readers digest versions of the topics that were useful and so he kind of raved about them which really surprised me. I thought yeah well that's a scam same as you know you're kind of sounding there but >> his experience was otherwise.
>> Wow interesting. Uh, Santisus, I have a horrendous Oh, okay. I Yeah, this is a technical. I have a horrendous C++ teacher that put this question in a test. Um, what's the difference between printing a new line with back slashn and using end l? So, I still hate him more than 20 years later, but the response is relevant to your story.
>> It's new carriage return new line. I believe anvil is going to be whatever the system end of line is and that could be character turn and a new line whereas you're just printing a new line and so one is different than the other because it's half as many characters. I think that's it's kind of a tricky question.
That's my tricky answer.
>> Maybe that's why it was on the test.
>> Yeah.
Excellent test question.
>> I didn't even study. How'd I do?
>> Yeah. Well, if it bugs you 20 years later, then it probably was a good question. Yeah. Oh boy. Here we go.
Hybrid robotics again. I'm going to call them hybrid robo ticks. Okay, I know that's wrong, but >> that's uh that's because I'm a jerk. Um he says, "Oh, try the Alter 8800A where I had to key in the bootloader on the front panel switches so I could use the paper tape reader on an ASR33 teletype to load basic so I could write programs.
I could then read and save programs from paper tape and save modified programs back to a fresh paper tape. Have you done this kind of thing on your PDPs, Dave?"
>> Yeah, I've done it on the altar, too.
And here's how you know you're hardcore when you prefer the altars that have the flat switches instead of the round switches cuz the round ones hurt your fingers after many many hours of toggling them in. But the flat ones you can just kind of wipe at them and they don't hurt.
>> Yeah, >> that's how hardcore I am. I know which switches are easiest on the fingers.
>> I'm just kidding. But it's true.
>> Yours your alter's got the route switches, doesn't it?
>> No, it's all flat babies.
>> Oh, is it? Oh, okay. It's actually a sec. That's the original machines are the round ones, >> but the replicas are all round ones.
>> So, the flat ones are only in the version B or something >> which came out three or six months later.
>> Okay. Uh, and now one of the other episodes, it was a recent one you did on Dave's Garage, the slot machine one, and it just it's taken off and got all kinds of comments. So, I've >> we're going to save that one for next week. So, join us next uh Friday. We'll talk a lot about that one. But I got a couple little teaser questions we pulled out of there just for the heck of it.
Sort of wet the appetites a bit and acknowledge that episode. Uh, Bad Wolf says, "Uh, are native reservation casinos held to the same standards or are there legal gray areas due to their sort of federal standing?"
>> As far as I know, they are not. Now, there are some laws like they have to return some other proportion of winnings like 65% but it's different than what Nevada sets. And there are other cases like the non-winning combinations kind of show you, oh I'm sorry, you almost hit jackpot, jackpot. Oh, but then it was a blank. They can't fake you out with that kind of thing in Nevada. But I think they can on native reservation. So whether or not those machines have a switch that says, "Give me all the hardcore stuff that's not legal in Nevada."
>> Uh, I have no idea, but it's quite conceivable. I know. I was up in Saskatchewan visiting my mom and they have right >> VTs up there and they have a whole set of requirements like you have to log in and tell her how long you're willing to play for and it will bug you when you get past that. You can set up rolling budgets and tracking and there's a clock on the screen at all times. So, there's all kinds of local requirements for that place. And and again, I know I remember when VTs came out cuz of course there's no gambling. Well, when I left Saskatchewan, there was no gambling, but VLTs were okay. So the difference between a VT and a gambling machine is VTs are video lottery terminals that you can have in a store. So they kind of follow under lottery rules.
>> I'm guessing kind of like the same machine in a casino is under casino regulations or >> Yeah. And some machines on Indian reservations are based on bingo and so you actually have a bingo card.
>> Yeah, that's the other Right. Yeah.
Yeah.
>> They're electronic bingo machines.
>> There you go. Uh raise Z or raise zed.
Um raise uh are slotsworked? There's a myth that the house can change the odds for every machine at once. Not well they could, but there are regulatory and logging and reporting requirements associated with each of those changes.
So it would be crazy of them to change individual machines, but they could change and say, you know, starting in December, our odds are changing. But they can't be like, "Hey, that dude, screw him, man. drop his odds.
>> So, but there are some settings that are need to be set on the machine. Like I mean, I've seen them adjust volume, >> payout percentage, that's one thing.
>> Okay.
>> Um, stuff like that. So, yeah, the limits for how much the payouts can be without a hand pay, those kinds of things.
>> But, but they are so you can do mass, >> I would think. I guess mass changes.
Okay. Yeah. Uh, and then the last little teaser here to Dwayne Carlton, Merit Music. Um, does this information apply to online casinos?
>> Well, they're probably floating in international waters, so like likely not.
>> I think you're >> Yeah. So, so same thing, I guess, with the with cruise ships and stuff, right?
I guess they would be governed by the nation under which the ship is registered.
>> And Liberia is very tough on gaming regulations, I understand. So, >> yeah. So, you know, you're using a Liberian or an online casino based out of Liberia, you're you're you're well covered. Yep.
other countries maybe not so much. Uh, okay. We got a couple of the little oddball ones now here to sort of uh take us through the end. Um, Premier Stace says, "Great video again. Hey Dave, I was wondering if I could make a request for a topic to cover."
>> Okay, >> the stack.
>> That's a good one.
>> I've watched video after video and none have explained it well. I still don't understand how it puts stuff on and then takes it off in order. Most videos explain it like that. I don't get how in detail this happens.
>> Yeah, there's his request.
>> I'll try. I was looking around for a place to write it down. I didn't see one, but I will try to remember.
>> Okay. And then he's got a couple of questions in there. But yeah, thanks for reminding.
>> The guy that recommended the FOP episode was a couple weeks ago on the show, and I did an FOP episode, but I could not for the life of me remember whose question it was, so I couldn't thank him. But if you're watching now, thank you for the fop idea.
>> John Rickard, have you done a segment on DD? If you want to talk about how Unix handled files, DD is practically required material.
>> Yeah, I didn't want to complicate the fopen discussion with DD, but DD does an F open and then it copies bytes for you.
So, >> okay, >> it's very cool and it's very handy.
>> Okay, Zimu.
>> Zimu, so says, "Hey, Dave's Garage. So fun to know I walked the same building.
Was the Flying Spaghetti Monster there at the time?" No, I'm not sure what that is.
>> Okay, different answer must be no.
>> Uh, and then Ryan Crop says, "Can you put your video version on Apple Podcast?" Uh, so I know Spotify and Apple Podcast. I think we'll do video stuff, too. Um, the only one that we do is the Shop Talk stuff. The audio of it goes on Apple Podcast and on Spotify, but none of the video.
>> Yeah, I think if you want the video, you have to go to YouTube. Everybody pretty much has access to YouTube and you can hate YouTube and not want to use it, but that's where it is. So, sorry about that. Here we are.
>> And uh and the Dave's Garage stuff is only on YouTube. No audio anywhere. So, >> I for one welcome our new YouTube overlords. And uh perhaps as a celebrity, I can be of use to them in their uh dopamine minds. No.
>> Yeah, I'm getting uh Oh, apparently I too welcome our YouTube overlords.
They're great.
Obi-Wan Jacobe. Um, oh yeah, he says, "Would you still design it like that? Everything is a file if you had to start over."
>> I don't have a better idea. So, yeah, I would. Right now, that's my top idea.
Not my idea. It's the top idea I know.
>> And the last one we're going to give to fast. Uh, and we get a lot of people making comments all the time about, oh, AI is writing your script and AI and blah blah blah. So, he says, so I thought this one was good. He says, how much time did it take you to write this whole dialogue? So, what's uh I don't know which one he's talking about, which episode that came from, but in general, how long does it take you to write an episode of Dave's Garage?
>> Probably about four hours, four to six hours, depending how much, you know, the research to figure out what to write and stuff takes longer. But the actual sitting at the laptop and poking it away and wearing away the keys, it takes about four hours thinking and typing and editing.
And then you record it, then you edit it, and you publish it and put the B-roll on there and spice it up and uh ship it out.
There you go.
>> And I do use I'm not making any bones about it. I use AI all the time when I'm writing scripts, especially to check my work so I don't say something boneheaded and wrong.
>> Fill in the areas where I said the, you know, I said the three things you need to know, but I didn't tell you that fourth one that I probably should have.
It's great for that kind of stuff. It's terrible for like write a witty script that people are going to enjoy reading, right? So, it's always like dash.
>> Yeah. The funny thing is I'm a couple times I think we've at your place we've sort of you know oh yeah write a little script on this one just to see what it does and you read through and it's like oh yeah I would never say that.
>> Yeah >> it's sort of sort of close but not quite. Uh oh what was and that was uh what was the piece we were doing with your voice um what was that uh what web application was that?
>> Seven labs or 11 labs. Seven Labs or Yeah, 11 Labs. 11. It's been upgraded.
It used to be seven Labs. Now it's 11.
>> Oceans 11. Oceans 13. Yeah, 11 Labs with your voice. And that was pretty neat.
And it got the voice close, but it still couldn't pronounce some things the right way. But >> it was close not to fool most people though, I think.
>> Yep. Fool most people most of the time.
It was 100% right 60% of the time.
>> Good enough for me.
>> Okay, that's all I got for you, Dave.
>> Well, thanks for joining us out here in shop tonight. Uh, please make sure you subscribe to this channel if you're not already because you probably won't see it otherwise unless you randomly happen to see it again and that's unlikely. So, we appreciate your patronage and your viewership. We'll see you next week right here in uh Dave's Addict with Glenn and Dave. And we'll see you next week. Bye. And I still can't see you.
>> Yeah, I sure hope everything recorded properly. Oh, that's right. When I talk about my NDA, you just hear I always respect my NDA. So, I'm not going to Well, it brings to mind a story about an old man, a wise man that once said to me, What was the story that I was thinking of? The uh Man, it's hot in here. What's the temperature in here? 71. That's crazy. I'm taking off my jacket.
>> Yeah. Yeah. It's officially summer in what, six days. I hear Franklin, I think, of that other cartoon. What was he? Yeah.
>> Franklin the Turtle.
The turtle killer.
>> Turtle the Franklin.
>> Franklin. Franklin the Killer. Franklin.
And what was the what was the dolphin show?
>> Uh, Flipper. Flipper.
>> Flipper. Flipper.
I was singing that. No. Twink or >> You don't remember the flipper songs?
It's like no one you see is faster than he. Oh, >> okay. They call him Flipper. Flipper.
Faster than lightning.
>> Yes, that's the part of the sea. I'm making >> There's another toy commercial.
>> Ah, whatever. I'm Yeah, I'm getting old.
Slinky is getting Yes.
>> Slinky. Slinky. Fun for a boy and a girl. That's what you're thinking of. Am I right? Am I right?
>> Yes. Yeah. There you go. I'm confulating with the >> There was only eight toys when we were that age, so it's it's not that big a stretch.
>> There's Lightbrite.
>> Yeah.
>> And then five. Yeah.
>> Yeah.
>> Oh, if you were a girl, they had the Easy Bake oven, so they had one more, but we had G.I. Joe's. So, >> are you counting the evil conval windup motorcycle?
>> Oh, that's right. That's the boy toy.
That's the boy version of the Easy Bake Oven.
>> There you go.
>> I never had one. My neighbor had one though.
>> Evil can wind up cycle.
>> But I still think the best was just the orange Hot Wheels plastic track and the little tabs that stuck it together. And man, cuz that you could like over the couch and around the chair and Yeah. And we had the little garage with the motors motorized.
>> Oh yeah. So it actually Oh yeah. Yeah.
We never had that. Yeah.
>> Well, we had to use gravity.
>> We did a lot of that, but we got this one at a garage sale when I was a little older and we s cuz you could then build >> Oh, second hand. Yeah. Okay. Well, that explains it. Yeah.
>> Yeah.
>> No, it's on the east end. You didn't see those firsthand on the east end, right?
>> Exactly. Yeah. You bought those from the South End Kids at their garage sales.
>> Yeah, it's 100% true. There you go. The one uh we had a I have no idea what they're called and I've looked it up and they were like little cars like Matchbox cars and they had a headphone jack on the side >> but then you use that to plug a gas pump into them.
>> Yeah. The gas pump was actually like 4 D batteries and would charge up either a super capacitor or a tiny battery in the cars >> and then the car would you release on the track and it would just rip and it was a whole banked oval thing. Right.
>> Yeah. I vac of steam. And then there were another type of car. I think there were larger too where you kind of pulled them back and that would sort of uh must have coiled up a spring and then you release it and they'd sort of fire off.
>> They're the SSTs, I think they were called, with a zip the rip cord.
>> Zip. Yeah. You pull the zip cord and Yeah.
>> And you got too close to your hair. It's like >> I heard a story very similar to that of Belelfford, but it was a guy with long hair and it was a drive shaft or something underneath a car in no fan belt or something like that. Yeah.
>> Yeah. Yeah. That's that's why I >> It's for my own safety. Yeah.
>> Exactly.
>> Well, there was that time when we were younger and you had the long hair down the center and it got caught in that machinery and that's why you have no hair there now, right?
>> That's right. That's right. Yeah. I was the trends setter. started the mohawk thing and then it got ripped off in a horrible accident mohawk. You had them both.
>> I had Yeah. Yeah. Just sculpted down the center, man.
>> Yeah.
>> I don't think you can say scalped, Glenn.
>> Freaking >> dehated.
>> Yes. Yeah.
>> Cuz if you lose your skin off your hand, it's deg gloved.
>> Degloved.
>> So if you lose the skin off your head, it should be dehated.
>> Yeah. Yeah.
>> Or dehelmeted. Probably dehated. He had it. Yeah.
>> Or in Canada dtoed.
>> He was out on his on his and he got detoxed.
>> Oh. Do you ever see anyone stick their tongue to a metal >> live?
>> I've seen hands in that stuck, but I've never seen anybody actually stick their tongue to something. I've seen videos of it and it looks terrible. But >> yeah, my friend's sister did it. We would have been about grade two, so she was probably in kindergarten.
And yeah, got it stuck to the little metal swing set in their backyard. So, >> they were able to melt it free or >> I you know what? I I think I blacked out.
>> I have no idea.
>> I remember it getting stuck and then that's it. Yeah.
>> But I don't I don't think she like fully licked the thing. She just kind of poked her tongue out.
>> That's all it takes. Yeah. still going to lose that amount of bark off your tongue.
>> Yeah. So, she might have like pulled it off and Yeah. Park is what they call >> cuz that tissue is dead anyway, right?
>> Yeah.
>> But I guess you leave behind more than you need to to be perfectly honest.
>> Yeah. I've debarked my tongue with salt and vinegar chips a couple of times.
>> Yeah. I've done the roof of my mouth with sour candy and stuff.
>> Oh, yeah.
>> And Captain Crunch.
>> Oh, really? That's more from friction.
cereal when you're on vacation or whatever and you're used to the tender grl of Rice Krispies that your mom buys you.
>> Tender >> the rough edges of the fancy candies poke your mouth.
>> Holy cow. Wow. You have a way with words.
>> It's all maybe just got a console right here. Oh, that's a good one.
>> Yeah. Oh, what do you think these things are? Right.
>> Yeah.
>> That's just pipe AI content, man.
Exactly.
>> Yeah. We can't make >> You know what you should say, Dave?
>> We can't make this up. But the hours we put in to make it look like we're just faking this though. Just winging it.
That's the hard work.
>> The real hard part is knowing it's Wednesday.
>> That's my challenge.
What do you mean? Oh. Oh, yeah.
>> Well, cuz every day ends in Y. So, I mean, there's no way to really tell.
>> Every day ends in Y is also true because every day ends in Y.
>> Oh, yeah. Yeah. Yeah. the word itself.
>> Yes.
>> All right. Are we ready?
>> Uh, one of us probably is.
>> Well, sir, I'll wait for you.
>> Okay, now I'm ready.
>> Okay. Hey, I'm Dave.
You like fries for that?
So, >> the birds, the gasoline, the goggles, they do nothing. The goggles. They do nothing. Oh, the way you say that. I just Yeah, I thought I had a decent Arnold, but yours is killer. Yeah, >> that's my only line, though.
>> Yeah. Well, that's Yeah, I have. Yeah.
>> Well, that and get out >> to the chopper.
>> All right, one more time.
>> Entertain yourself. Yes.
>> There we go.
Wait, that was too slow.
Got to get the canes right.
>> Oh, sorry. Jeez. This is where we spend all the effort >> trying to get the damn thing started.
>> Takes us 20 minutes.
>> Here we go.
>> Hey, I'm Dave. Welcome to Shop Talk, where we answer all the week's best questions from the regular episodes and from the comments that come up. And we answer them all here this week. Every week Fridays. That's probably today.
Glenn, how you doing?
>> Good. Today's Wednesday.
>> Let me try that one more time.
>> But the cadence was spot on, though.
That was >> Can't have it all at one time, though.
>> Oh, yeah. I forgot what I was going to say.
Felt my line.
>> I saw you just completely rocked into it and then stalled. It's like you just went blank. Uh, yep. You think I know that one?
>> I'm bad Dave's a bad developer. That's >> That's the screenshot, man.
>> There's your thumbnail, baby.
This little chair will be waiting for one of you and a rocking chair for another who likes to rock and a big armchair for two to curl up in.
All next time right here on Shop Talk.
Related Videos
LBF101 Creating an XML Changelog
liquibase7511
3K views•2026-06-15
Alta Labs Cloud Dashboard Real time Network & Xnet Insights!
ShinyTechThings
158 views•2026-06-17
Wait... Group Policy Not Applying? Check This First!
keeplearning_iT
144 views•2026-06-15
Leetcode Weekly Contest 506 | Life's boring these days
Pudeesht
2K views•2026-06-14
microJAM: MAKING A MICRO GAME FOR A GAME JAM IN CLOJURESCRIPT AND TOTALLY NOT C
janetacarr
156 views•2026-06-18
Partitioning vs Bucketing vs Clustering: How to Make Queries 100x Faster
thedataandaiguy
194 views•2026-06-16
Design Claude Code Like a Senior Engineer
hayk.simonyan
344 views•2026-06-19
Linus Torvalds: AI Won’t Replace Understanding Code
SavvyNik
140 views•2026-06-19











