We asked a Retired Microsoft Windows Engineer 100 Questions! Why oh Why? Find out!

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
[Music] so what the heck am i wearing i am wearing a windows tuck willa t-shirt what's windows stuck willa you ask that's nt 3.99 which you may not recall because of course it was never actually released so what i thought i would do is kind of ramble about that and a few other topics while we accumulate through glenn the awesome moderator hello glenn some topics for us to actually answer windows nt 3.99 there was kind of a bifurcation of the nt camp into cairo and let's do incremental work so were the people who wanted to do cairo and there was a grand vision for cairo with object-oriented file systems that ran as a database and so on and so forth then a whole new shell that was still in design and a number of features that were going to solve all the problems and then there were people like me who like to just add an incremental feature ship it add an incremental feature ship it and kind of repeat that process and that's the way i worked and there's a lot of people that worked that way as well um the problem was cairo was such a big leap that it didn't seem like we were ever going to get there and no matter how much progress we made it seems equally far away and i think what tuck willow was even though it wasn't a real thing it was just a t-shirt and kind of an internal campaign it was pushback on the idea of cairo being too far too much too bold too far away taquila which is a small town near seattle as opposed to cairo being over in egypt is much closer and that's the slogan we can get there from here so that explains the t-shirt uh or gulf shirt whatever heck so i actually liked it but i always thought it was a bit of a middle finger to the cairo guys so when we had the 25th year reunion i was pretty hesitant then i didn't wear it even though i kind of really wanted to because it's rather unique they only gave out a few of them to a couple people i thought it'd be cool but nah discretion is the better part of valor so i thought no i won't wear it and i walk in the front door and who's standing there dave c dave cutler and he's wearing his duck willow shirt so he was a little bolder than me or i overthought it or he underthought at one of the two so let me flip over here to my other screen so that i can check and see what glenn has accumulated here for messages did i know gordon lightweight i did not know gordon lightwing the architect of os2 although the guy that hired me was interviewed by gordon as his as appropriate i just figured that a couple days ago small gordon lightweight story when i moved to a building called red west which was kind of a uh one of the newest buildings and so therefore it was a little cheaper each building got a little more i guess we should say economical as they learned how to build buildings more economically and where i had you know actual nameplate on my door at the old building i just had paper that went in an acrylic housing and so you could put whatever you wanted on there and i put gordon that one and i used that as my name tag on my door because i wanted to see how many people would get it and i figured he actually was still on the payroll and worked at microsoft but did not have an office and i figured it'd be nice he could share with me nobody knew who gordon let one was so i thought that was kind of weird and that was no it wasn't late 90s actually it was early 2000s but even by then most of the developers you know wandered around the hallways and come to my office they would look at the door they'd know the name was wrong but they didn't know who gordon was so i found that kind of interesting did microsoft ever try their hand at chip manufacturing back then not to my knowledge now what went on in the research the r d groups who's to say because uh that was pretty far removed from where i was but in terms of the product groups just the xbox stuff would be and there might be some mobile stuff as well but in terms of desktop computing you know like the m1 chip not to my knowledge uh they were probably involved with the as the ia 64 instruction set where you had hp intel and a whole bunch of companies got together and you know as committees tend to to do produce something that is not actually ever in use today but um that's the closest they can what are your thoughts on the state of c sharp is it something you use i love c sharp it is literally my favorite language i work in it whenever i can although i've never been paid to do so i did not work in c sharp at all microsoft everything i did there was either assembly or c or c plus but i use the c sharp a great deal in my own projects at home i've written a number of fairly large scale things and the latest thing i wrote which is the led controller software all the server-side software that runs either on a pi or on your nas or on well anywhere that you can run linux or windows or mac the server-side stuff is entirely c-sharp and i have it i really had a lot of fun writing it because it's just a great language to work in um you don't get burned by stupid little mistakes because the compiler catches most of those kinds of things and it's a language that i feel very expressive and productive in so how big of a challenge was it for the nc team to upgrade windows nt4 to windows 2000 when the integration of active directory group policy and dns uh we actually had a pretty clean split between desktop and server side and so all the server-side stuff was really a different team um that i didn't interact with all that much except as a user so we were a large org because we had i don't know 10 000 people in the nt group and 100 000 people in the company eventually i don't know if it was that big when i was there but maybe it was like 50 000 at least and we went through the growing pains of having a large single ds and not having it to active directory even before that of course where everybody downloaded their mail address book every morning that was pretty painful you'd come in and the first thing you would do was you run to your desk and you'd start ms mail and it would then kick off the address book download for the day which would take i don't know 20 minutes half an hour depending how many people were doing it and it downloaded the directory of everybody at the company which was probably ten thousand people at that time so ten thousand people downloading ten thousand yeah that's a lot so um we were happy to pick up active directory and so on as users but i did not have a great deal to do with it in terms of the coding i did own some group policy stuff and the uh this quota that's as close as i got do you prefer unix like systems over windows so this is a bigger general topic this is probably the most frequently asked topic that i get it was did unix developer or did unix developers did windows developers at microsoft know about linux did they look at linux did they use linux did they take feature ideas from linux and so on and so forth i get a lot of these questions and the answer by and large is no now there were a number of us like myself i started using linux in 1992. i was really fascinated i like xenix i like bsd but for some reason i couldn't get a copy of bsd and xenx was commercial so i had a friend that actually had a pdp 11 in their dining room in their house well instead of their dining room furniture they had a pdp-11 and i always had unix envy because of that and i really wanted to set something up and so when i got the opportunity to do so with linux it was i was in there like a dirty shirt the thing is back then if you could build it deploy it and boot it that was pretty heroic i did manage to do so but i don't remember how long it took to do it what i wound with went up with was a pretty limited unix-like system because linux in the very early days was pretty limited i remember sitting down with the system 5 release 4 manual the big monster book and going through and just finding what worked and what didn't and annotating in my book and keeping track of that kind of thing so i was pretty interested in it and that's largely a function of having been at college at the time and because everything we did was basically pdp 11 stuff and vms was just used for a few things most of the hardcore cs stuff was still done on pdp for some reason and that meant we were all pretty good with unix-like stuff and c and so forth in this particular school um i got to microsoft you could tell almost nobody used it whatsoever on the server side they certainly the pms on the server side obviously were very familiar with unix from the enterprise standpoint in order to be competitive with it or target features and so on but in terms of desktop since i was in the ui shell team it's not like there was really anything going on in the linux desktop space that we were like wow i never thought of that they had icons and it was really basic if you look at red hat in the 90s i think red hat was the distribution i probably saw the most of back then so maybe it's fedora red hat are they the same thing is that the company and the product those are the two names i remember anyway so i don't think there was a lot of awareness but of the people that mattered there was respect for linux and there was an understanding of what it did well and certainly on the operating system side they were familiar with it and they targeted it and they arranged benchmarks and they we did that we went to meetings where they would bring up you know here's how fast it is to do this file operation set a million times under linux or under some other unix actually wasn't linux and here it is under windows and it depends if you write the code using anti-create file versus f open is really what it comes down to do you have an abstraction layer in between and that's something i actually just produced a video on wherein i go through and produce a custom windows windows a custom linux kernel and deploy it to my machine and show you how to go through and do that and so that'll be out on monday or tuesday following this video why did microsoft decide to put some actual work into activation for windows xp but it was ignored with windows 95 but is 95 less important than xp no but i think it was likely you got to remember windows 95 did not even come with tcp ip i don't think i think that might have been in the plus pack these first service pack windows 95 had tcp ip but it's not like people were online and there was no appetite i imagine for having 50 million people phone up by phone and do telephone activation so i don't think it became practical until a couple years later more like the xp time frame when pretty much i won't say everybody but the majority of people at least had some kind of access to internet dial up at least so that they go through and activate their software so that's probably the biggest part was the enabling feature also we picked up a lot of stuff for free quote unquote because office had done activation so we were able to get a lot of their code in terms of the hard technical stuff of obfuscation and protection and that kind of thing and reuse those aspects so there was some economy of scale as well what was the time like leading up to y2k primarily we were working on xp and i think we'd be working on xp at that time i got a printed timeline of operating systems because i know what i worked on and i know roughly what order but i don't map them well to the dates that i actually worked on them i believe that's primarily xp or xp sp1 sp2 no it wasn't sp2 that was a security push that came later so um there was not a lot of date handling in windows to be honest certainly creation dates and all that but they had that figured out they weren't putting two digit dates in any version of windows as far as i can think of that matters it's not like we had to go and hunt down two digit dates in the code because everything was going to be done as a positive offset from a date back in 1970 which is how dates are tracked in in unix time and there are other methods for windows time but either way that doesn't roll over for a long time so that's what they said about when to win 2k but i i mean a very long time what's your favorite windows release i think my favorite windows release is actually not numbered it is nt 351 plus the win 95 shell ported to windows nt we called it sure s-u-r shell update release there was a batch file you ran that then installed our new binaries on top of nt351 pretty sure it was 351 and i gave you the 1995 ui before nt4 came out with it so it was basically our ui upgrade kit for the previous version of nt and it was basically i don't remember how many guys run but it was small it was like four core developers maybe and there was people working on you know comm control and com dialogue and the bigger pieces like that as well but in terms of the shell it was maybe two or three guys four guys at most so it was nice to see the whole thing actually up and running there's a picture of me in my office you might have seen a couple of videos because i've used the picture a couple times it's the only picture i have in my old office where i'm standing there i got a bob shirt on and there's a dollar bill pinned to the cork corkboard what's going on there is i was responsible for porting the explorer.xc process to the win32nt unicode aligned mips risk alpha power pc all those changes came about at one time and we had to rewrite basically not rewrite but adapt and rewrite adapt slash and or rewrite all of the old code for this new platform we did that and we got to the point where it compiled and we had a bet i had a bet with bob day across the hall as to how far would actually make it because we had done a lot of automated things in terms of changing size of to a particularly smarter macro that would handle unicode and so on and so forth so we had all these changes that were all kind of nebulous and you knew something was going to break somewhere but how far would it make it would you know dll process attach boom or was it going to make it further and i said we're gonna at least see some icons or we're gonna see some boxes where icon should be and bob said no it's gonna blow up in like some early you can in maine or somewhere really early i forget exactly what he said but it was a little more pessimistic anyway long story short it came up it booted up it ran all the way to the desktop and then i sat there with the mouse and it looked at us and i was pretty stoked so i think as soon as i tried to do anything substantive it then blew up but i mean it got that far first compile so we were pretty happy with that and so that's probably why it became one of my favorite releases if not my favorite release can you tell us something about the competition with os2 um i cannot because basically they killed os2 and then i came along and i worked on nt so i was not somebody that was there from the os2 team and i didn't come over from deck i came in just at that time in 93 so i wasn't there for any of the drama that went on with the cancellation of wireless ii i wasn't married to os2 or any of those things i do know a guy that was my manager and he was involved with os2 and worked on os2 and was there when i was two got killed and so on and so forth probably participated in the decision as far as i know so i'm going to be doing an interview with him and he was there for ms-dos and the stack lawsuit and internet explorer the first versions so if you have any questions related to the first versions of internet explorer ms-dos 6 that era um stack the compression algorithm in particular any of those things let us know and i'll keep track of those questions and i will make sure they get asked when he's in the hot seat how do you feel about the direction that microsoft has taken regarding large feature changes in windows 10 major versions instead of iterative versions i'm a big fan of smaller changes more often so i kind of like i don't know if apple is a good example of that there seem to be more frequent upgrades but in terms of features versus bug fixes i can't really say which company pushes them out faster i would say however that i would prefer that there are features that i would like to see that seem really far away like uh processor re-virtualization on amd so that if i virtualize my processor and i run a hypervisor and i bring up windows and hypervisor can it then virtualize its processor out as well and there's scenarios like docker where you really want to be able to do that um i'm not sure if that's in the main code yet and it's been done for not done but it's been in for a long time but i don't think it's made it to the public release branch so it seems to take quite a while for features to percolate into the main trees so they're very conservative i do wish as a user they were faster as somebody right in operating systems i would you know bite off smaller chunks chew a little more and spit it out more often that's a terrible analogy but uh that's what you get for making them up on the fly can you talk about what programming languages microsoft uses for different parts of windows and why there are really only three languages there's going to be a tiny amount of assembly in the uh how the hardware abstraction layer which is what takes the actual cpu motherboard that combination and exposes it in a way that can be written to with c so it's really just the code you need to get c up and running more or less um from there you have a bunch of stuff that is especially down in the kernel that is still c itself i believe if i'm right user 32 is still c gdi is c shell 32 was c but is now c plus plus but shell 32 was a bit crazy they were so memory constrained on 195 and they're so sensitive and diligent about memory that what they did was they had their own minicom that was not really calm it knew how to like call through a qi pointer and get an interface handle or some really basic functionality but couldn't do anything more than that until you actually needed real com at which point it would then reload the real com and then let it do the work but it kept the memory footprint much smaller for a much longer time the difference also was they were not using c plus plus they were using c but they were still using classes and com objects and you're like well how you do that well you actually code a v table into your object with a bunch of function pointers at the beginning and it knows that hey this looks exactly like a c plus plus object when layout in memory and that's what they did so that was c plus written in c basically and then at some point they just said we're just gonna go to c plus plus and that was with the nt port i believe dave have you done much gaming over the years if so what were some of your favorite games from various eras i was a big arcade game player when i was a young kid i held and still hold the world record on the arcade game tempest and i believe space duel which is a less known game but tempest i have one here in the house and i play periodically i go through spells where i play at about 20 minutes a day every day and i'll do that for a couple months and then i'll unplug it pardon me bump the mic then i will unplug it and not look at the thing again for six months and then oh well hey look i have a tempus machine and i'll start over in this cycle so it depends what i'm doing i also really got into geometry wars 3 on the xbox which probably looks like tempest but um so it's not just color vector rgb games but it is that particular gaming model where it's simple casual gaming that is incredibly easy to pick up not the tempest is easy to pick up but um but really hard to master the nice thing for me about tempest is i can play there's only 100 levels well that's a lot levels but there are 100 levels and i can make it through fairly easily to a boat level 90 at which point i start to bog down and die off pretty reliably so it's interesting rewarding fascinating and frustrating that way back 40 years ago they designed a game that adapted its or has a ramp of difficulty that is gradual enough that 40 years later i'm still up against the slope of it i haven't you know got frustrated with the game and i haven't run past the game in difficulty and you know found it to be easy um some games like asteroids you would just master really quickly i have not played a lot of first person shooters battle royale that kind of thing i did the last game that i actually played was max payne and this is probably max payne 1.0 the first one and the reason i can play it is second person so the camera follows the protagonist as opposed to being first person through the person's eyes i get motion sick and bon i don't feel motion sick but yeah if i watch somebody play i get motion sick if i'm playing it it just kind of bothers me and gives me a headache um or eye strain more likely my gaming is pretty limited to old school looking stuff can you tell us what kind of pcs in terms of configuration os you were using during your work at microsoft yeah i can give you kind of a big picture snapshot when i came in i was in ms-dos and so everybody else generally had three to six and some people had 486's the top top machine at that point would be a 46 66 but only probably people had those at home maybe but they weren't buying those at work for compiling ms-dos um my machine when i came in was a pentium which of course is better than a 486 so i was like really stoked until i ran it i'm like it's not really any faster than the 386 uh 25 that i've got over here as a test machine and the reason is it was crippled in terms of cpu frequency to something like 16 megahertz what they wanted to do was to make sure that the pentium chip was fully compatible with everything we were making so they would give us a couple of these test units to make sure that everything worked but they were crippled in terms of clock rates so you didn't get any performance gain out of it when i finally got over to ole ar pc which was windows nt i believe i had made it all the way to 12 megabytes of memory the standard was eight megabytes memory and later i looked the system requirement is 12 so it was not a stretch to say you needed 12 to run the thing and that was a 386 40 i believe in that time from i don't know if that was the gateway box no the gateway box is a 33. um where there were a bunch of machines in that kind of 386 40 46 25 range so i went on for a long time and then because i went into nt i then started working on risk and part of the reason i wanted to work on risk was then you got a risk machine and so i would get a meps dual processor 200 megahertz i think that's 100 megahertz on each core pretty loaded up with ram for the time machine and the cost was that you then got to do all the work of porting a bunch of stuff over to the mips but that was kind of fun anyway so that was really what i used for the next couple years uh when i finally went back to windows pcs i think i got a name to athlon about that era so i don't actually remember what i went back to but my early days were pretty much uh 386 46 pentium how do you feel about task management flickering when resizing explorer what i don't have to end the live stream sorry i did not aware it was not aware that it flickered the only thing i've ever seen flickering task manager was when i first added the networking page they were not careful and they broke something so the networking page flickered as you did it um i'll play around later on my machine since i killed audio earlier just by clicking on things i'm not going to risk anything right now in what windows xp build was the build lab system first introduced the build lab actually predates windows xp by quite a bit the build lab goes back to before windows nt-31 so it was as soon as there were enough people working on the team that you needed a daily bill they pretty much assigned a couple people to produce a daily bill and then it moved into an official lab and so on and so forth so really there was always one why is my name not in the windows 95 credits in the explorer easter egg yes well there's two theories to this one theory number one i was in all arpc and then moved to windows nt uh before they did the list for the easter egg so by the time they did the list i was gone and working on nt so i was no longer in the win 90x whatever you want to call it uh ecosystem anymore or food chain so i was out of there so i did not make that list even though i had worked and contributed and i got a shipping award and stuff for windows 95 because i had done only rpc stuff um the other idea is that when the easter egg oh no it actually can't be responsible for because it antidates it but i'll tell you the story anyway so this is not why i'm not in there but when i i'm not an easter egg fan especially in operating systems i just i just don't think they're appropriate anyway so i get this email to it's like anti-dev group with a thousand some people on it here's the windows easter egg try it out and i'm kind of choked i'm like i just hate easter eggs so i'm like it's gotta be a way to crash this damn thing and i think about it for a minute and i realized well i can't size it down to zero in any dimension because i'm trying to get it divided by zero air it's probably the easiest way to crash anything and i can't get anything to zero dimension but i realize if i turn on the explorer bar now you can get the horizontal dimension of the right pane down to zero and boom the whole thing blew up right away and this was 30 seconds after receiving the email so like like an idiot i was a young man i replied all to the email and said by the way if you size it down to zero this crashes and that was pretty much all i said and i did a reply all to everyone not the classiest moment that's one i'd like to have back so sorry todd that's what i gotta talk i'm not gonna say otherwise but it was todd and uh and i want apology to todd how did.net and c-sharp come the life of microsoft i don't really know except i believe we did hire the guy that had been at borland that did their languages like turbo pascal and when he came to microsoft c sharp and the net runtime was largely a production of his appearance that's my understanding i don't know that that's entirely true why is the unix epic except in 1970 instead of 1900 well you'd have to ask like my grandpa but no actually i was born before 1970 so i should be careful whatever i say the only reason i can think of is to give themselves more headroom if they would have set it all the way back to 1900 then and this is the that date is only used for elapsed times from boot time forward so really if you never anticipate booting the system with a date before 1970 and unix is only so old even though it's old then you're fine capping it at 1970 and there's really no benefit to going back further but there is a cost to going back further in that the headroom and the number and how far it can reach forward is then limited so better to be as far forward as you can what did microsoft used before direct3d or opengl well i ported uh pinball from wind9x to windows nt as you may know and that was using win-g or create dibs section those may be the same thing but i'm pretty sure it was create dip section so what it was was you were able to create a region of memory that was effectively shared between the video card and the process or it was shared in a way to simplify it that you could push large blocks of memory out to the video card efficiently and that was really the first ability to almost act as a blitter chip with the video card under windows nt and so once they had that you were able to draw larger blocks fairly efficiently large sprites and all that so it was before direct 3d and directx once those came out they of course supplanted and replaced that but for that that era that was the only way you could really write a game and that's how pinball is written did you have anything to do with flight simulator no good friend of mine went over there to work over there for a year so though but what did you think of the removal of the star menu in windows 8. i was not a fan of windows 8 and the approach that they adopted uh to trying to make it a tablet operating system at the cost of not making it a desktop operating system anymore it's kind of how i felt about it and so yeah i was not a fan of having removed the start menu why does the control delete screen and nt remain at the previous resolution if you change it well that could be a bug but it actually probably stems more from the fact that your desktop is separate from the desktop the secure action sequence desktop so it comes up and it uses probably whatever resolution your desktop is using but if you change your resolution it doesn't have to go and change the resolution of the secure action sequence desktop that's my guess but that does have the cost of now every time you press ctrl delete or you get kicked over to that screen it's going to do a resolution change so you could argue it's a bug but you could also have two desktops running with different res or two window stations with different resolutions so what do you do in that case so the resolution is technically independent would you port pinball again for mobile if you'd be allowed to do so yeah that should be kind of a fun project i think i would probably just do it in unity or something like that do you know who came up with the idea of the windows registry no i don't actually know who came up with it i think uh if you remember my uh not the interns episode the dude living in the shack episode john firth i believe was responsible for what we called hives and that is what the registry is so it's a database of course of some kind tree style database i don't know how i feel about it in some ways for configuring operating system stuff i'm okay with any files so you unix gets by right and in other ways you don't want to have to scrape an entire file system when you're moving around user stuff so i can see an argument for both you shouldn't be placing large data in there and it really is i think best for stuff that roams so if it roams from machine to machine then it makes sense for me for it to be in its own little database independent of a bunch of any files scattered all over the world did you write some lines of windows ms-dos and x86 assembly yes everything i did in ms-dos i think was entirely in x86 assembly was it 8086 yeah actually it was because you couldn't assume 82 86 or even 81.86 so everything was just 8086. do you consider windows security inferior to linux ah i have the i'm working on a video right now which is sort of a windows versus linux round one open source versus proprietary and one of the topics in there is how does open source contribute to the security of the operating system and which is better open source or proprietary the argument i wind up making in this case and you'll have to tune into the episode of course to find out who wins the entire episode with round one but the argument i make is that it's much easier to find and therefore exploit bugs in an operating system when you have access to the source code by the same token they will eventually get fixed if the right people see them but there's a huge gap there in between when you release the source code while the black cats and the white hats are both searching for them at the same time and they're found in a random random non-deterministic order so if the black cats find him first it would have been better that it was proprietary and not found whatsoever in those cases so i think you can make a pretty strong argument that proprietary software is tighter in terms of security because it's harder to find exploits however that said it's a much larger target just by the nature of windows and the market everybody wants to break into windows so that makes it that much bigger of a target and that much more likely that you're going to get an exploit that probably at the end of the day makes windows less secure than linux just because it's such an attractive target that that's where people focus all their energies the other issue is sort of historical and that's the fact that people run as administrator now they've done kind of an admirable job i think with uac and running you in restricted privilege mode for a while until you escalate but the problem i think is i'm going to blame the apps because what happens is apps so frequently say i need to be administrator they don't even know why they need to be administrator it just didn't work right if they weren't careful they didn't ask for the right permission at the same point that they did have and as a result everybody runs as administrator and it causes a lot of security problems that you just don't have on unix because you can escalate using the pseudo command and otherwise run at low privilege all the time and escalate only when you is there ever you are occasionally prompted for your password in some cases by batch files and stuff but by and large you know what's going on and if you're asked for your password you stop and think at least on a linux system on a windows system when you get the uac prompt it's pretty tough to not make that a reflexive at some point you kind of have a trust feeling for how sensitive you are about the vendor of the software that you're using if some shenanigans shareware pops up i need to be admin right away i think about a little longer than if office installation needs to be administrator and this is not just the problem with windows because it also happens on the macintosh where you get that same prompt and after a while it's pretty easy to just reflexively start clicking okay on it so because of that under unix you are much more selective about when and how you run as an administrator and therefore the number of exploits that can actually get installed is just smaller as a result pour myself some coffee hang on please hey i didn't even sculpt myself yet i didn't even make a mess why do i do that when nobody's watching oh wait but you couldn't see why is it possible to write to the bitmap sector through the explorer bar are you saying that you can type something into the explorer bar of the browser that will write to the hard drives sector zero i'd like to see that otherwise i'm not sure what you're actually referring to ah earlier there was a question about build labs and i misunderstood it the question was actually intended to be about virtual build labs which i know nothing about because it happened after me sorry windows 10 s mode don't know what that is either you'd think see i'm not like a windows fanboy where i'm chomping at the bit to know every latest windows feature i just use it for what i use it for and so i don't often know what's going on i don't even know what s mode is so i apologize for that one that's why i'm more on the history side and less on the current support side can you talk about what your olay com work did what general problems did it solve yeah actually i can give you a brief summary of that so what i was working on is called the olay presentation cache and what it is is you can imagine if you have a word document with an excel chart and graph in it every time you scroll by or every time it has to render the chart you don't want to have to load excel and call across some com interface and say please render me this chart that would be hugely expensive it would work but the amount of memory demands and even cpu would be enormous so what they do is they let you draw it the first time they say here's a device context please render into it and i will basically record whatever it is that you do so that when i have to play it back i will just play back a metaphile which represents all the drawing commands that you did and so i was working on that and specifically on the enhanced metafile format for it so that you could provide an enhanced metafile which was a rendering of what your object should look like when it's in place in somebody else's document and then all the operating system does is replay that metafile now you can also do it with a bitmap and you can do with most other text or text formats with most other clipboard formats so you can do it with uh simple text even things like that hey i bet you that's really loud if i slurp and swallow my coffee right by the microphone what is it about programming that you like is it the feeling of success when it works or the challenge and finding an algorithm there was a somebody was telling a story on the microsoft old timers group and basically if i remember correctly what it was is he was teaching his kid to write in python or something i don't know if it was for school or no it was just for some hobby that the kid was working on and he probably was gaming and wanted to do something related to the game and needed to do some code to drive a bot or who knows something like that and uh the dad kind of walks by the kid's room and the kid's like damn dad come on in and he's trying to show it's so cool i read this and look it did exactly what i wanted and the father is like you know son doesn't matter how long you've been coding that feeling never goes away and that's why i code and kind of proud of himself as daddy walks out of the room 10 minutes later he walks by the kid's room again and he hears son of a why doesn't it work and he hears all this yelling and the father says ah and that feeling also never goes away which is largely true so you really do run the emotional gamut of highs and lows when you're coding and you know you can even get desperation after you've been looking at some kind of bug that's important to you that shouldn't not work and it's been two days or how did it ever where you know there's lots of scenarios where bugs can just become something that you can obsess over trying to fix so somebody else was asking me about ocd and whether or not i had thought that i developed ocd as a result of um being a programmer worrying about bugs and so on and so forth now to be clear i don't have ocd i just have oc probably because i don't have a disorder and it bugs me when people say i've got a little bit of ocd no you can't have a little bit of a disorder you either have a disorder or you just have a little bit of compulsive behavior and like them i just have a little bit of compulsive behavior i think where once i get focused on a problem i absolutely positively need to solve that problem before i can move on and it will haunt me and i will obsess over it until i do and this is a good trait when you're a programmer for many reasons less so in other areas of your life but how much asm still exists within windows very very little just the hardware abstraction layer because everything else has to be per cpu so let's say and this is a case that was true the pinball game all the sound code was written in assembly and when they just brought it over to the windows plus pack that's fine because it was obviously still x86 it'll run but i was running it on the mips alpha power pc and the other chips so i had to rewrite all that code in native c and just have it do the same thing that the assembly version was doing um so there's no way you would have to write literally four or back then four or five versions of that same assembly in order to be able to check assembly into the system the one exception i can think of that is dave c wrote some super fast hyper optimized console scrolling code and check that in for the mips so as far as i remember all the other platforms because dos has i don't want to get too far out of my out of my lane here and tell you how video chips work but i believe the ibm video chip that's in cga and ega and all all the stuff that's basically emulated in a console there is a character mode that the chips support whereas on the mips everything was bitmaps and so it was really slow if you scroll text so he checked in some assembly language that would quickly scroll bitmap console windows it doesn't wasn't needed at that level optimization for the other platforms and therefore remained in c for everything except the mips but that's like the only exception i can think of have i tried ios development with xcode on your mac i have tried a tiny amount of objective-c when that was still cool and did not like it i don't know anything about swift yet i have written ios apps and games but i did it all in unity which is nice because not only do you not have to learn the mac then but um it works pretty much everywhere you want to target it could you do live stream on some of the other topics you have on youtube other than microsoft uh i could i would just love to answer questions you have about them outside of the c confines of the microsoft topic if you fire them in here i'll answer if glenn passes them along if there's sufficiently sounding cool or interesting any programming language you really like uh well as i mentioned i'm a pretty big fan of c sharp but you know a language that i really was a fan of when i was younger but i've had no opportunity to play with was ada there was so much that you could specify in the language like if you had an array and the array index started at 11 and went up to 27 you could say that this is an array that goes from index 11 to 27. in c or any other language you're going to have to really offset that by having an offset index of 11 and then you're going to have 16 elements or whatever the delta there is and there's areas for bugs so the language and eliminates a set of bugs and a number of classes of bugs it's kind of one of those languages where if it compiles it's probably going to work so i've always wanted to play with it uh tell me anything about the screen savers when ninety the xp screen savers pipes or maze they were fun yeah who wrote those it's either like michael fortier or not android version but uh they're all french sounding names for some reason that's probably why i'm confusing them but i think was one of those guys then i'm probably way wrong um i was trying to get the pipe screensaver running and long story short there's no easy way i found the easiest way was to download or not to download to just play full screen the youtube video of three hours of pipe screensaver i got my fill do you still have the corvette you bought after you bought or sold the rights to zip folders no that was a 1994. and it ran a 11-6 straight out of the box at the racetrack here which was actually really fast no wait did not i did not ran 1365. sorry about that people uh my memory was a little uh confused there no around 1365 straight out of the box down at sir which was actually still very fast for an lt1 corvette in the day they were for an automatic car which this one actually was long story um they were more like a 14 second car but this one for some reason just blew a little quicker and then i put a supercharger on it which got it down to eleven nine then i decided to pull the motor out build a complete stroker motor with all hard enforced parts blew it out to 396 cubic inches from 350 by taking the rods at the 3875 and the boar it's a 4060 i think i'd have to look those numbers up i'm pulling those numbers out of my butt but uh long story short i put a lot of money a lot of time a lot of love a lot of effort into this motor put it all back together strapped the supercharger on headed back to the track around 11.9 exactly the same time that i had with the old factory motor so i was a little disheartened uh after that i drove it for a while and then traded it in on a yellow c7 no yellow c6 corvette z06 with the uh six-speed transmission and drove that for a number of years until the new uh supercharged 650 horsepower cars came out and then i realized i actually needed one of those so that's what i currently have the rear wheel drive it's a convertible but it's red so it looks kind of like these are folders corvette the uh the new one the c8 is obviously probably technically a much better car but the c7 with the supercharged 650 650 torque motor rear-wheel drive uh unmanageable amounts of power is really just the obscene extrapolation of everything i loved about cars as a kid take it to the max whatever the correct way to say that is and so i like it it's not the best car it's not a huracan it's not even a new corvette it's nothing fancy but it is like i said it's an extremely fast scary and powerful version of the long hood short deck big motor scary sounds and uh even though my wife's tesla is way faster are you a racing fan too what else are you passionate about apart from tech uh well i watch a lot of nfl when it's in season but i don't watch any other sports for some reason i do enjoy racing and i've taken my family and my wife and kids to the track here where we did the day of lapping and i think that was great for everybody because they also did like wet skid pad and wet abs braking which was my son's first real opportunity to do full lock up steer around cones under abs braking i think that's something everybody should get the opportunity to do so you know how to do it in a car um so i've done lapping there my brother and i went out to uh what's it called not spring there's a spring mountain maybe spring mountain anyway it's down outside of las vegas and it's where they have the driving school for the corvettes and if you buy a corvette you get a discount on the driving school and we went and spent the weekend there and it was an incredible amount of fun you get a real appreciation really quickly for what the cars are capable of which is an enormous amount beyond what you would ever use it for on the street so it's a real eye-opening experience and i think my wife's favorite story is at sir the track here what happens is the drag strip is the straightaway basically so you come up onto it maybe at 40 miles an hour then by the end of the straight depending on the car in the corvette i'm doing something like 160 165. she was driving the m3 which is a little bit slower car but basically you have to rotate the car and point it directly at the wall because you're going to drift sideways as you go around it but pointing your car at a wall at 100 miles an hour or 100 miles an hour it's got a certain pucker factor and it is very unnatural to do but as the instructor told her if you don't do this you will die so you learn to do it quickly so that's something i enjoy doing but what has been your favorite car and would you like to own in the future my favorite car by far is currently my uh 2018 mercedes s63 coupe and i just say couped it to bother one of my sons but um it's the two-door version because that's the body style i like and you don't see many of them and 621 horsepower all-wheel drive and it's a lot of fun and it has probably the best interior that i have seen in person i've seen a couple photos of a bentley that looked pretty nice but in terms of the interior it's it's really nice that's where you spend your time right so it's like if you're going to spend money spend it on a mattress that you lay down on for half your life and if you commute or drive a lot then spend time on your car interior because that's what you're going to be looking at for a lot of your day so i very much love that car the only thing i don't really like about it is the mct transmission which is it's a hydraulic clutch pack in place of a torque converter and the computer regulates the slip of it to simulate being a torque converter but it's not really a great simulation once you're rolling and once you're out of first gear and even into third gear then it's incredibly smooth and it's great and it shifts like lightning but it's kind of more like a dct down low so they haven't really got to the point where they've simulated an automatic transmission but they've done a good job of taming a dct even though it's an mct which is a hybrid of automatic and dct transmissions as i understand it we're past the hour but i'm just going to keep on rolling here as long as there's some interesting questions lots of developers don't like javascript have you read any javascript code what's your opinion of javascript i don't like javascript yeah actually it's not javascript that i dislike per se although i'm not a fan of typeless languages because i i like to compile it to help me and not hide things or not ignore things for me yeah have i written a js code yeah i've written a lot of js code in my life i just don't like doing it um and that is also a function of the development environment if i was writing an app end to end and i was all on the client side and you had a good ide and breakpoints everything you wanted in a normal language then javascript is not that bad and you can do that with visual studio code the problem is so much of it is putting stuff together shipping data off to the server waiting for a packet to come back handling asynchronous and promises and nonsense and none of it's fun so it's kind of one of those necessary evil things dave how do you feel about enthusiasts who unload earth leaked beta builds of windows to play around with well it's none of my business but you know i'm not going to encourage you to do anything wrong or legal or moral or against a contract that you've signed but have at it that's what i figure i mean as long as you're not leaking it further or doing any damage you might as well have a look what was the most bug-free code you ever wrote at microsoft probably task manager i would guess or you know probably some of the uh really core important parts of wpa that really had to not crash hi dave how did you start programming uh at the risk of repeating because i think i have mentioned this at least in one video but i get this question a lot so for a while i'm going to keep answering it as long as it comes up i started programming by wandering into a radio shack store and longer story short setting up the computer for them and then playing around with the basic interpreter i thought it understood english and i thought sn question mark was which is this error meant spelling error so i eventually figured out what words it would handle and which ones it didn't and assigning variables it was really like hit and miss but i'd ride my bike down there every thursday because we had late night shopping and i'd spend my three hours there i didn't save anything for months because there was nothing really worth saving but eventually i must have found a book on basic and figured out that there were actually keywords and how to code in basic because i have since found stuff in like fifth and sixth grade where i've written out on full scale my little basic programs that kind of thing um i remember writing a character generator for d and i sent it to gary gygax and dave arneson i think anderson artisan at uh who at uh whatever company at the time owned the license to d and one of them and i think it was arneson wrote back to me and had little corrections in my program and suggestions and that was really cool because i was something like 10 or 12 years old and i didn't really expect to hear back but to get the kind of encouragement from a random stranger was actually pretty cool so that's some of my earliest programming and then i got a commodore 64. went from there that was assembly language eventually and then to c on the amiga i've heard many professors talk about the complexity of the underlying software do you have any experience in car source code yes the first thing i ever did was i there was a bug in the camaro not the camaro the aforementioned corvette so once i put the supercharger on it and i got to the track it would not upshift from first to second gear when you had a really good first gear so if it really hooked and it really pulled hard it would bang the rev limiter and not shift and i would keep moving the shift point down in the computer but it didn't help it would just hang the gear and not shift long story short i found a bug in the code in assembly language and by reading and disassembling their code with ida pro where it has a speed sensor and if the delta in that speed sensor is unreasonable which to them is faster than a corvette could ever be it puts the transmission into limp mode which does not automatically shift um you have to manually bank shift it so that i was pretty proud of that and i think it was a really easy fix it was like a one byte fixed to no op out of branch or something so that it didn't do that anymore and uh that was it but uh i have done some stuff on my range rover i have integrated with the can bus on my m3 as well i just took it in and i noticed there was a wiring harness laying in the trunk so i'm like ooh gotta put that away what was i doing on the m3 oh i was playing with code so that if i went up and i hit the unlock button three times it would lower the top and if i hit the lock button three times it would raise the top i got it working but it wasn't really reliable enough and then the board kind of fell off in the trunk and i was really more interested in seeing if i could do it than actually making a product out of it and i was able to do it so that's where i left it did you work with jim kelly or lou perezoli yes both uh i worked for did i work for lou indirectly yes i did actually because i worked for life peterson and life peterson worked for lupe so is the source code in windows really well written or is there really well written or is there a lot of duct tape and baling wire buried in there it depends on what part you're talking about if you're talking about the heap manager it's elegant it's golden it's beautiful if you're talking about important parts of the kernel and stuff like that it's it's really nice code it really is now if you're talking about code that maybe somebody banged out in order to fix an edge case in the shell because when you do this and you hold down control then something weird you know if there's some weird case like that some of that code can get a little there was also a code that i would say came over from other teams that needed to be spruced up a little more than maybe it was before it got checked into the product but i mean that's a long time ago so i assume any of that stuff has been tidied up there's also tools like what's it called paula check basically they scan now for things in comments you shouldn't be putting like profanity and the word you know this would explode do you do all your private projects nowadays under windows or do you use any other os would you consider becoming a contributor to the linux kernel well i'mma tell you i was a little contributed with this channel back in 1992 so uh yeah they called me grandpa no actually i did i fixed some uh it was a handle leaks or memory leaks whatever build i had installed i found some leaks and i sent email to lioness at rutgers and that's really all i remember and i just gave my gifts no idea if they ever made it into the code or not so i'll tell everybody that they did because then i'm a contributor to linux windows and apple and therefore you can't escape me well apple only if you're running office because then you have com and only but yeah but do you do all your private projects nowadays under windows no actually for the last couple years i was not on windows at all i was entirely on the mac for desktop workout in the shop here using for video and editing and so on and because i had a mac in the shop which was where i was doing electronics projects that's all i was largely doing and so i was using the mac pretty much exclusively i then because i realized hey this code i'm using.net core supposed to run on linux and windows i then imported it to linux got it working on linux ran it on the pi then i ported it to my synology nas and it now runs on my nas box because it never gets interrupted it's on a ups and so my leds are controlled by the nas box which basically runs by christmas lights um so it runs on all three platforms actually now i run do i run that on windows whatever it is no i run the server side yes the.net core part i run the server side on windows right now because that machine's on a ups and gets rebooted less than the mac so pretty much i'll use anything if it i don't really want to learn swift i don't want to learn stuff that's specific to mac os i would prefer not to learn a whole bunch of stuff that's really specific to linux itself but there's not much that is so except for kernel stuff and i don't really need to know a huge ton of that so especially if i it can be general in terms of what i'm learning then i'm really happy can you talk about the windows path limitation to 260 characters yeah i believe that came out of is it an ms-dos limitation and it's probably the file system limitation and realistically i worked on the amiga and it did not have path links so path could be any length or any reasonable length i think and dealing with it as an application programmer is way more complicated because everything you do you have to call and allocate and ask how many bytes do i need okay now allocate that much memory now do my work and then free it whereas with maxpath you can just have a buffer on stack and it's literally like an instruction because it's just going to move ebp or something and allocate more stack space for that variable so it's way more efficient too and probably makes the system a lot faster so there's huge benefits to max path and very rarely have i ever been burned by maxpath i have been burned by max path but not that frequently so if you're going to make your own os company what would you different do different than what microsoft does or did well i did have my own company and it never got bigger than about 35 people but what we did is we had one big central iron server um called the nerva and everybody ran terminal server into that so i just kept adding memory and hardware to that singular box as the company grew now eventually you get to the point where the single core performance um or even the multi-core performance for people can be locked up get one person um hog and cpu and that kind of thing and you get 31 other unhappy people but as long as you're careful with that kind of thing um it was a centralized type of administration where i only really had to worry about one box and then the other 30 boxes were basically disposable so in terms of running a company and doing support for a large number not large like three dozen machines um i really like that approach and it was small enough that i was able to do you know tech support for my own company so of all the changes in windows has there been a change that made you do a face palm and wonder why just windows 8. maybe some other small stuff but yeah one day i did not get how did you get the code off the car in order to decompile it ah so back then i don't remember what it's called but there is the aldl port the assembly line diagnostics link there's a port underneath the dashboard and there's like a j1354 interface you plug into that and with the right software which i bought from a company you can pull the rom image out and then look at the raw image edit it change it and flash it back so if you could take the best features of windows nt like and unix like systems create the best system ever what would it be like it'd be like exactly like the video i'm releasing tomorrow on the world's ultimate hybrid desktop system windows as the ui and links distributions as your kernel and your command lines so something like that i find that interesting do you think there's still code that bill g wrote in windows or anything that is well no there is not bill g has not written code since the trs-80 model 100 which was a portable calculator and i could be mistaken on this but i think the last thing that he actually wrote for a desktop was donkey.bass the game that came in ms-dos where you had a car that drove down a road and a donkey would appear and you got to talk about which lane you were in i'm told he wrote that so nothing in windows and nothing in nt and nothing in ms-dos what am i learning right now i'm learning react trying to write a ui or be prepared to write a ui for my server so that i can go in and actually control it and edit it and change led parameters and so on without having to edit tables which is kind of how i'm doing it now are there any instances of dead beef okay so dead beef is a 32-bit value d-e-a-d-b-e-e-f dead beef and it spells out a word so you can see that in the debugger ah it's dead beef and so if you use that as a value to initialize a block of memory then it's easy to spot whether it's been overwritten or not later you can also use bad food and some others what is the most nostalgic feature windows that makes you go back in time apart from task manager probably the format because it's changed so little i mean it still looks like the morning i wrote the thing so talk a bit about the team development process in past videos you mentioned that it might take two days to compile windows by what machines was it compiled what compiler was used and how about today so i'll give you just kind of a basic overview of what the dev cycle was like we checked code out of a machine which was basically just a unc share it was not a database server it wasn't a source code source code control server by any stretch it was just a server hosting files and we used the program called slime slm.exe which was the source library manager which was our source control code to pull code out of that and all of it was done on the client so there's nothing going on in the server other than being a dumb server um from there you would only keep out the portion of the code that you needed to build so i would just probably keep out anti-private shell and their down somebody else might keep both anti-private user or anti-private gdi those kinds of projects and only build from there on down and so those are things you could build in maybe an hour or two um if you were working on a smaller portion and you didn't touch a header file of course then it's pretty quick you could re-link in a minute or two but if you actually touched a header file and had to rebuild the entire shell that in those days could take a long time it's not that you had to build the entire source code tree because you didn't and very few people ever did the only reason that i ever did was because i was lazy and i wanted to use the vc debugger which meant that i wanted pdb symbols the build lab was not interested in producing pdb symbols because they they're huge and b nobody uses them everybody's manly and uses ntsd and i36kd which are the two debuggers ntsd being the user mode side and i366 ai 386kd or you know varies by processor being the kernel debugger you would debug your code using those two debuggers normally i wanted to use vc so i was building much of the thing with my own symbols and that was fine for shell but if i had to wander out of the shell too far and i wanted to do source level debugging then you would have to build either the entire tree or whatever section of the tree that you cared about by and large i mean you still had to know ntsd and the debugger and be proficient in it because in the morning you would come in and there would be stress failures what happens is every night your machine your dev machine is used as a terminal and your test machine runs a batch file basically that pulls down 100 things to run and it runs them all at once and so you can imagine maybe it's creating databases and running pinball and doing all kinds of stuff and it's trying to crash itself basically if it does it falls into the debugger on your dev machine which anybody can connect to and debug the test machine so in the morning you come in and say look you own this component the debugger is crashed and hung in this um component because the triage team came in early and figured out where the stack was and you own it so you get assigned this bug please fix it so that would be some of your early morning if you had stress failures then you would work on your own code when you have something to check in you would build everything locally and once you had your binaries linking you could then check in as soon as you were sure that you had built everything that was impacted by your change and you had to be careful because if you change the header like shell.h it's a show that h1 the shell header file anyway whatever it's called that's probably consumed widely throughout the product so you probably either need to build the whole thing or have the build lab build it for you or find out for sure that your change is non-breaking because you can't check in a breaking change and then just later say i'm sorry i didn't build that part so you know and my machine's not powerful enough i needed a machine that's that kind of whininess once you were checked in the build lab would sync your change and build it then once per night they would sync everybody's changes and they would do a clean build of the entire world and of the entire world being the empty source kit base that's when a lot of things broke that only broke because you're doing a clean build and now it notices the dependency that you got away with when you were in the midday and didn't do it clean build because it was like a side project that linked in the header uh from above so that was generally the process and then the build lab would produce a bill that would come out in the morning and it would have a build number and it would be on a share and you would come in and probably upgrade your test machine to that new daily build you wouldn't update upgrade your dev machine probably more than once every week or so until a good stable build came out and it really depended on the quality of the daily builds if they were good builds i'd upgrade it every day or fire it off at lunch that kind of thing but uh if the bills were a little more sketchy then you might stay on a build for a week or so but it was important to be running current dog food builds as well because we had to find our own problems there were test teams and test engineers but you actually find a lot of stuff just by using the product why does nt4 2k xp2k3 secretly spawn a hidden window just before the login screen comes up closing at kills control alt delete and control alt escape no control let's escape possibly but you can't kill control of the leak because that's a secure action sequence and it's always hooked it will always go somewhere ctrl alt ctrl shift escape the only thing i can think of and this is just a guess but i'm going to guess that for task manager to say or for the shell to say start task manager right now please that's to send a window message to the win log on process but then log on process needs to have a window to receive messages so odds are it's creating a window which is hidden and then receives messages like wm secret message to start task manager right now because i pressed ctrl shift escape message so if you kill that window there's now no target for that message and therefore it cannot start total swag but that's my guess were you running checked or feed but free bills at home and at work um free builds are basically what you would run as a retail product no asserts no symbols the symbols are in a separate file whereas checked builds i have all the symbols they have all the asserts they have the extra code paths they have the extra testing whatever is built in to a debug build so checked builds are basically debug builds and generally i would never run a check build on my dev machine unless i was trying to catch some weird case you will occasionally run a check build on the test machine because it's so much more thorough it should make it through stress without an assertion but it's hard to get a check to build machine through stress without an assertion so what's the difference between zip files and windows cabinet files uh excuse me cabinet files are a completely proprietary compression mechanism that i believe they bought from another company and it has a better compression ratio than zip and they can what they do is they combine the cabinet file format with a is a dmf a distribution media format which uses extra space on a floppy disk and gets like 1.68 megs of space on a 1.44 make floppy plus the extra compression from the cab format allows them to get that much more data onto a distribution floppy what's your view on linux desktop versus windows are the desktop distributions ready to compete with windows not in my opinion mint is pretty and i kind of like looking at it but i don't wind up running any of the desktop interfaces i just wind up command line 20.04 lts ubuntu server is what i've been running everywhere as you'll see in the video that comes with tomorrow um i'm running windows as the shell and then i run consoles for all my distros so i'm not actually running any ui on linux right now at all i do in the vm when i'm running it under hyper-v i run the ubuntu uh i don't know what whatever the default is i wish i knew what the heck it was i tell you but i don't why is it impossible to create a folder named khan in windows hmm because tom scott is pompous no i'm kidding he's wonderful because that is a reserved word going back to ms-dos 1.0 prt being print um con being console so whenever it sees that name it overrides all other logic and says that's not a file name you mean the console and so if you type copy star to con it will actually copy all the files out to the console and make a mess in your console so because that's a reserved word effectively you can't name a file con either have i read the windows kernel devrant um i don't know which one that is if it is the uh why is the boot screen so ugly classic classic i can't talk about it though not without permission from the people involved anyway but came in one morning and there was quite an email trail why does microsoft still include a pretty crappy text editor like notepad here's one thing you may not know about notepad it is really really tiny here's what notepad is it is a window an edit control a menu resource that's pretty much it i mean there's some code there that if code equals idm exit then exit process and stuff like that or save your file or whatever but probably the reason notepad is so super basic is that there's no program there it's literally just a control wrapped in a window with a menu resource did you ever read the mini microsoft blog i did not because that was after my time but i know it was much loved by the people that did read it in his day seeing as you mentioned tom scott do you watch his videos yes i do i wish i could do everything in one take with an adorable accent but i cannot but i do enjoy his videos does the data mining by facebook and google and loss of internet privacy concern in any way and do you try to protect yourself in any way um it doesn't concern me because i take it as a given i guess i assume that anything i do on the internet is going to be logged and not looked at by a human but it's going to at least contribute to the algorithm that's going to decide what i'm going to see for advertisements and articles and content so if you keep typing in stuff about bananas you're going to get stuff about bananas back eventually so if i don't want bananas to impact me then i'm going to launch a vpn and i'm going to start a private browser session and then search for whatever product it is that i'm searching for that i don't want continually contributing to my source or to my search results but that's really about it um other than that i assume that what i'm doing is going to be known to certain parties and then i just act accordingly kind of like do you think alexa records you maybe so i don't say things around alexa that i'm not willing to have thrown in front of me in a court of law that kind of thing as a former employee do you have a master key for unlimited seats for things like server and office no we get well sort of we get a if you join the alumni group which is something like 100 or 200 bucks a year then you get access to something like five seats of office and a one terabyte one drive account kind of as a package deal then you get deals and other software but lately or the last couple years i haven't seen anything compelling it used to be like oh i go in and get visual studio for 50 bucks but now the free version of visual studio is good enough i have office so i'm pretty much set uh it is worth it in the sense of getting those seats for office for the price so i do that every year why was the alpha axp deck alpha port of windows 2000 cancelled um i don't know if it was casted before when it's 2000 came out was it that's possible i don't know of any specific reason for the cancellation of any of the meth platforms beyond user acceptance and market so it was no more work for us at that point to mean well it's a little more work but it wasn't a huge amount of work to maintain it once you doing the actual porting to alpha is a lot of work but uh keeping it that way is not what is the most controversial microsoft moment developers developers developers google it actually search for it on youtube developers developers developers three words is the windows ui built on top of the nc kernel or is it integral yes it's entirely built on top of it so the explorer loads shelf 32 dll shell 32 dll talks to other dlls like gdi dll and user32 dll and so on those are either in the kernel or talk to the kernel and that's how it gets this work done what do you think about the telemetry in windows 10 i'm less concerned with the telemetry in windows 10 than the fact that i can't set up a machine on windows and just call myself dave without setting up a hotmail account and all the nonsense so i've got to opt out like four different ways from sunday the out of box experience is terrible and i feel like i'm being harvested every time i set one up i also notice you have to scroll down and make sure you get the off-screen stuff to turn off advertising id and that kind of nonsense and that bugs me certain amount so i don't think they're doing anything nefarious i assume they're collecting advertising data and harvesting it and then trying to find out what ads will best generate revenue uh when showing to you and that's not a huge problem for me but i just sometimes the apple tax is worth it and i'd rather have the option of paying a little more for windows maybe getting you know i don't think there should be another skew of windows that's clean that would be kind of weird but uh some solution i'm also okay with the telemetry of hey you started task manager because that's all done in aggregates and i don't have a problem with that so the stuff that they use to report who does what with the operating system what crashes what works what doesn't work that kind of thing that i'm all fine with but the marketing side of it that bugs me like it does you i'm sure any thoughts on elon musk uh elon's mom is from my hometown so there's a small bit of trivia for you regina saskatchewan elon is a fairly amazing dude so there are a lot of questions i would like to ask him if he had spare time any interested in embedded programming dave um well i do a ton of atmel and esp32 programming now so to that extent yes i didn't know what i was going to do when i was in college i thought i know i'm going to program but i don't know what am i going to like make the code that blinks the clock on a microwave and then fortunately i read this book on microsoft which kind of told me what i wanted to do with my life but until then i wasn't sure it was like am i going to do vcrs or embedded systems or what the heck am i going to do is there a way to boot windows so that it shows what it's doing like linux does yes it's either slash sos or slash safe mode you might get then stuck in safe mode but you will see everything i believe or at least you used to in the olden days print it out as it gets loaded what's the most controversial microsoft moment probably some of the depositions with bill or when some of the emails were probably read on the stand and they look really bad because things you say in an email like hey let's crush these dudes man don't look good when there's mom and paw and they're sitting in the witness stand and you're a billionaire and they're looking at you and they read your email back to them and it's like let's crush those little competitors yeah it doesn't look good so you never want your email read aloud and that's another thing talking about you know voicing opinions in front of alexa that's fine as long as you're willing to own up to them and it's really the same deal with email anything you type in email is coming back to haunt you man what is something that once under nda at microsoft but no longer that once was under nda microsoft but no longer is on d.a that you'd like to share i don't know because i don't know what's public i guess the only thing is that well the xp source code arguably i don't know if that's public or not but you can certainly have a look at that and that's come out in the meantime what kind of music do you listen to do you have much interest in music yeah i have a playlist called shop with about 3 500 tracks that i listen to on random repeat in the shop and then when that's done i listen to classic rock or pop whatever is on and i will occasionally go to my playlist so that's kind of how i do it what's on there um again i'm not going to touch my machine but probably a lot of 80s 90s rock uh tragically hip and then modern stuff but i never know who sings it because i only hear it while working out and stuff so i'll just hear a song be like i know that song that's from the gym no idea who sings it i get this question a lot too do you think it is possible for microsoft to slowly change parts of the windows nt kernel to make a hybrid with linux kernel and then totally changed so that linux is a linux kernel or is this just a mad man's dream um madman's reading because here's why and i explain this in the video that's coming out tomorrow nt was originally architected to run separate subsystems in parallel on the same hardware and now that we have a hypervisor where each of these subsystems can be written to talk basically to the raw hardware through the hypervisor you have them running as full native raw operating systems as if they're running on bare metal pretty much while they're sitting on top side by side on the machine so you have the anti-kernel and you have the unix kernel and they are side by side and there are peers of one another and they are both running at full raw performance so now why would you implement one in terms of the other why would i stick the linux kernel under the antique kernel and then start people ask me this will they actually you know put the lex kernel in windows and start replacing the anti kernel with lex kernel i don't see that because it's an extra layer and it's just going to cause a performance degradation so i think for things that need linux or docker's linux environment you write them and run them in the wsl environment and for things that you want to run against windows or the docker for windows you run them in the windows subsystem and because of the way it's architected with the hypervisor it's really the best of both worlds so oh the i love sex easter egg that was put into dos how was it tracked to the workstation next to you that i don't know um i'm going to have the guy that called me about it on the show so that'll be one of the questions i will ask it what do you think of the xp source code leak especially from a learning standpoint to see how when all this was written well it's not a leak to me because well i haven't seen the code in a long time but um i grew up with the code so seeing it was not like a revelation if anything would be nostalgic to go back and look at code i wrote and stuff i worked with but having access to the actual source code for an api that you are calling and that is frustrating you for some reason is returning a random air code is enormously valuable so you can walk through the code read through and go oh look two thirds of the way down it returns e by banana and now i know why because these conditions have to be true for that to happen and oh yeah that is true if you look at my code so that kind of thing makes debugging so much easier than just getting back an air code and hoping the documentation tells you something about it which it probably doesn't so having access and being able to see the source code i would probably read that voraciously if i was a windows developer and if i was writing a windows app i would certainly be looking at the you know if you're allowed to please don't run out and you know jeopardize your job by looking at the export xp source code leak or something silly if you're not allowed to but presuming that you are allowed to and then it's legal and ethical to do so in your region and locale then it would be a good idea to do so because you can learn a great deal amount a great deal from it dave you've spoken out about autism can you please give some details why thank you uh well you can assume i'm somewhere randomly on the spectrum um i don't want to get into a whole bunch of medical information and jargon while i'm here on a live stream with a whole bunch of people but um i know a fair bit about it and i have a little experience with that sort of thing so occasionally i will throw in a one-liner about uh you know being wired that way or somewhere on the spectrum that kind of thing um it's something i may spend more time on i think it's a pretty relevant issue if you want to be a software developer in the industry it was something that you know certainly had an impact on me at microsoft in a way that i wish i would have known more about it at the time so that's kind of where i'm coming at it um not something that it is something that i want to spend a lot of time talking about but i think it could be valuable to people so i may yet do that so if it's something that's interesting let me know in the comments what happened to part two of the quad episode well we filmed it and what happened was we keep changing the quad um it's a little faster it's got better throttle controller and i keep i could make a whole channel on the damn quad because we're always rewriting code for it um so i should just sit down with my son and do episode two of the quad and the quad by the way is a 48 volt four-wheel quad that my son and i built by taking an old 300 watt unit and upgrading it to a 2000 watt and replacing the lead acid battery with lithium-ion pack and so on so forth and it was it was way too fast it was wickedly dangerous and we spent a lot of time with code trying to slow the electronic speed controller down that kind of thing i should make the second episode and i can't promise that i will but i certainly it's on my to-do list it's even officially on my list so do you comment your code yes yes i do i comment my code well i'm really proud of it because i want to show off and i comment my code when i want to explain to myself what it is that i'm doing because i think the code's not super clear but i'm really happy with the way the code is so as long as i explain what it's doing and i don't mean like gross spaghetti code or nonsense or anything like that i just mean these next three lines of code are pretty cool and they're pretty clever but i don't want to change them so i better explain what they're doing because it's not obvious when you first look that's the kind of thing i comment i know put big blocks saying this is a function that prints out information that does this and that i put in there what i'd like to read when i'm the guy debugging it what why do you think microsoft removed the calculator from 10 20 h2 they did i used on the calculator i did the or was on my team when we did the conversion to infinite precision math and let me tell you working on a calculator that takes some courage because can you imagine if microsoft chips calculated with a bug in it some weird case you imagine i mean it was bad enough when intel got into trouble with their f div bug that it would just be a huge embarrassment to microsoft to ship a calculator that didn't add numbers correctly so when they went and we made the change to infinite precision that's some pretty complicated code and there are many opportunities in there for it to go wrong or bad it did not but why did volume license and keys bypass product activation completely i assume you're aware it would be exploited yes but you did need the media so you couldn't use you couldn't just go to the store or go to your buddy's house and copy his retail copy of windows take it home and type in a volume key i made sure that didn't work and that's stupid but what did work is if you can get a copy of the volume media so that's a large thing to do in the year 1999 to download 650 megabytes and you could be there a while especially if you're doing it with a modem um even dsl that's going to take a while and that's why we had the oem bios.bin file in there which is the microsoft bob image oops i just told you what file's in now you know breaking news um that file is in there to act as digital ballast so that it's different on each sku so that the diff from volume to retail is at least 10 megabytes or 20 megabytes so that it's hard to download a patch that will turn your retail disk into a volume disk and that's what i was going for there so if you want to download and use a stolen volume licensing key you're going to at least need a volume licensing cd or a very clever patch of about 10 to 20 megabytes in size which is still hard to push around so there was some knowledge that the volume license would be exploited and there was no real way around it because we had no way around it because we had to have that so short of you know dongle or something have you ever seen code from someone else that has made you think damn that's clever or what the hell were they thinking probably the most clever code i've ever seen is a way of doing absolute value in x86 assembly language and i can't do it from memory you do a convert word to d word and then there's an xor with itself and there's a couple steps there it's like three instructions and it comes out and does abs and it's super fast and i never would have come up with this i don't know how they came up with it but it's an interview question i hear write abs in assembly language and of course it's the optimal solution and i did not get it offhand but when i saw it i was like wow well at microsoft how much did you interact with teams outside the os for an engineer who's interested in moving to the os dev how easy is it to transfer to a windows team moving around is actually very easy you just apply for an open posting and they're listed internally and so on so forth so if i wanted to move over to microsoft office i would just read their postings i would look for stuff at the equivalent ladder level that i'm at and i would send over and say i want to apply for this job you should talk to your boss and manager first to let them know that you're interviewing and that kind of thing and there are some other you know general rules but uh it's actually pretty easy in terms of interacting with teams we did a lot with office not a lot but some but very little actually not much with apps at all if you needed information from a team like gdi or user 32 that kind of thing but they were close enough to what we did they didn't feel weird going and asking information but did not spend a lot of time interacting with people in like far away buildings on different products working on microsoft dogs that needed support from nt and stuff like that so yeah not a lot of interaction with remote teams any plans for selling merchandise well i'm trying to talk my kids into like selling mugs because i don't want to be in the business of selling mugs but people ask me about it all the time so if you want a mug maybe let me know in the comments and i'll tell them yeah people actually want a mug what is your opinion on variable naming conventions camelcase i start with lowercase and then i upcase the first word and all subsequent words and what do i do for i sometimes use an underscore for class variable names did you use hungarian notation at microsoft if so how did you like it i did and i loved it if it was used incorrectly correctly if i understand the way it's supposed to be used you will just have the designation of what the pointer or what the variable is so if it's a pointer to a string that's not terminated it'll be psz if it's an index of characters it's ich when i do it i tell you what the string is psz fire escape ich buffer whatever it is um and i'm okay with that but i've had the debug of a lot of word code not a lot of word code but at the time that i did have to debug some word code it was written in the hungarian that's very compact without the part of the name that tells you what it is or why it is i should say it tells you what oh yeah i know that you're a pointer to a null terminated string i just have no idea what kind of string and why so there's this very abbreviated version of hungarian that i didn't like but i did like the hybrid version where the first part is the declaration of what this function or what this variable actually is and then the name so i enjoyed that it's not really necessary or useful i don't think so much um nowadays with all the tools and intelliseq and or tell us you can tell the choice and tell a choice and tell the type and tell the text and tell us something looking through the tempest code did you uncover anything about the gameplay that you didn't already know yes i found a bug and i wrote to the original author who never responds to me and he still did not respond to me i found a bug wherein when a pulsar makes it all the way to the top of the rail on a tempest tube it sometimes turns into a flipper and that's a bug in the code because he actually has an and instead of an or so he's clearing a bit instead of setting a bit and it's pretty clear in the code that if you end it it can't ever do anything other than clear it so pretty sure it's a bug and it causes a pulsar to turn into a flipper so that was one thing that i've always wondered well maybe there's a limitation on how many pulsars can be on the screen at one time but no how do you manage to keep track of what you can say and whatnot there's still a lot of stuff under nda and there is so talking about the spectrum stuff earlier my brain works in such a way that it has attached to every piece of information that i have kind of a sense of where i got it from and how trustworthy it is and so everything that i generally say i know at the back of my mind that i've heard it somewhere i've read it on the web i've heard it externally and generally as long as i've heard it from a third party source somewhere i'm willing to say it i just know what's interesting what's not so i'm not willing to say things that only i know and that i've never seen exposed publicly elsewhere that's kind of how i work it do you use sql server and so on in your personal projects no i usually use well yeah i use sql express or mysql or sql sorry i don't know how to say it i only read it in books do you recommend to get a c plus a c plus or a plus certification to get started um that i can't really tell you i would say you should be able to pass whatever test is required for that certification but whether that certification is valuable to another you or not in terms of getting a job that i don't know because it's passed you know it's newer than i've been in the market so here's a kind of question that i can answer that i get a lot of why does microsoft allow certain kernel bugs to exist for years a set anti-set process information bug allowed for an unkillable process by subtly corrupting the kernel structure for the process well i would have to see the code for that then i would have to look at it and know how anti-set process information manages to corrupt the kernel side because there's no way it should be able to do that and then i would bug somebody to fix that because that sounds like nonsense now sometimes there are cases where you have a bug in the product and so there are times when you have bugs in the product that you have to keep for backwards compatibility but i can't see that making a zombie process that you can't kill is something they would want to keep so how would you get started working at the kernel and hardware level i'd get a pi and i would start hacking on the linux kernel and i would do something interesting i'd get a compute module 4 and i would try to get a raid controller working and make the driver work and you're going to just troubleshoot for days and weeks but you'll learn a ton so here's something i was wondering and maybe you can tell me if this is of any interest i have written assembly language oh for a lot of my life but it's kind of an unloaded thing right now so there's two things that i thought might be interesting one is to even if i did it for the commodore pet or a similar simple architecture go through and like here is a simple assembly language program to do a screen saver clock and similarly you could do here's hello world for a windows app that is actually still calling create window and not using any frameworks or structures but actually doing it raw so i don't know if there's any appetite for this retro programming but if there is let me know in the comments because it's something that i could actually do a fairly good job of producing i think because of the way that i have in the past done the mix of code and commentary it's not something i get to do a lot because i don't have a lot of topics but if i were to pick that up as a set of topics it would be kind of fun to work on but if there's any interest was there a large cultural difference between the win 95 1950s teams and the nt colonel teams yeah yeah there really was um i mean there was mutual respect and everything but we kind of had that feeling that we didn't ever want it to crash and they were more of the if the crashes we'll restart it shut up get on with things and we got to make some money and we got to be small and fast and light and different goals so we were willing to say look pardon me you need some more memory but when you've got it it's going to be more robust whereas with 95 they said like you're going to run on 8 megabytes or whatever i actually don't remember what the hard requirements were but it's not going to be industrial strength robustness we're not going and that comes through in some choices like how much lives in the explorer process how much is shared in memory between processes so that if one process dies and corrupts memory it brings down other processes that kind of thing because of shared memory so these are philosophical differences between the way you would write code on a windows 95 platform on a windows nt platform and yeah i don't think it caused a lot of friction but it did mean that we had to change certain things and they may resented that we changed code they wrote and rust and react rust i have not coded in but if i understand it correctly is basically c but with memory that is managed in such a way that you will not unknowingly cross memory run over memory run over buffers and that kind of thing so the memory is much more controlled but it's otherwise very accessible to you with pointers and so on that sounds like a great idea to me so it sounds like c with memory protection in a way and i think that sounds like a really powerful paradigm i haven't tried it so i can't tell you a whole lot more educated than that in terms of react i'm liking it a lot i'm especially liking the component model where i can say this returns you know a blah and a blah is made up of these five objects and each of those cascades into a bullet list with an object and a checkbox and so on and so forth it's been extremely powerful as well as the mixing of javascript and hd html in whatever they call their little mix language that is a great way to write code the debugging is actually also good in visual studio code so it is i haven't had a lot of time to work on it but the experience as a web developer took a huge step forward with react that's all i know oh and the 10 gigabit stuff if you have suggestions for the 10 gigabit topic i would love to hear those as well the next one i was going to do was when i installed 10 gigabit in my house i was kind of shocked that when i went and actually instrumented and tested and used iperf and measured from point to point not everything was 10 10. in fact 10 gigabits was pretty rare in between any two points in the house that took a lot of debugging and changing of mtus and stuff like that to get it to work so i thought i would do an episode on chasing down actual performance issues and how to ensure good perfect 10 gigabit but what else so if there's other stuff you want to know about 10 gigabit please let me know well we're two hours in so i'd like to give a big thanks to glenn my moderator who's been feeding me millions of questions and to the people who have put the questions forth because a ton of a ton of great questions and not a lot of overlap but last time so i've got a quite a backlog of questions here so i will try to parse through some of those so that when i open the next live stream i can open with those while we're accumulating questions so again thanks for coming out and in the meantime in between time yeah can you imagine that i would blow that
Info
Channel: Dave's Garage
Views: 88,419
Rating: undefined out of 5
Keywords: daves garage, windows task manager, task manager, livestream, windows, easter egg, source code, windows 10, bill gates, history documentary, microsoft windows, easter eggs, windows war stories, windows 95, windows xp, windows 98, Windows source code, question and answer, q&a, qa, 100 questions
Id: Cp1DD5Cva8o
Channel Id: undefined
Length: 97min 59sec (5879 seconds)
Published: Mon Mar 01 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.