I like the way Carl Sagan put it: "If you wish to make an apple pie from scratch, you must first invent the universe" I've contended with this a lot in my experiences learning computing, programming, etc. Luckily my earliest interest was in embedded platforms (video game consoles specifically) so from an early point in my study I was already much familiar with the idea of a computer being a mindless piece of inorganic matter we overlay structure on in the form of programs. What that's lead to though is a neverending desire to avoid cruft and outside resources in general, which I've thus far found impossible. Yeah I might replace a driver for a device, but that driver talks through a kernel someone else wrote. Yeah I might replace a kernel subsystem, but it still interacts with everything else. Heck, I might write a kernel, but I'm certainly not writing myself a new browser to run it, I'd be bound to at least providing the same interfaces as others to do anything effective. Even still, that kernel, running on a modern CPU, is probably sitting up on top of at the very least microcode and perhaps even a BIOS or other firmware, neither of which I control. Going even further, say I write a game for the Sega Mega Drive. That console maps the ROM cartridge into low-core, so from the moment the CPU hits the RESET vector, it's my code, and this still​ wouldn't be entirely my own. The algorithms internally applied by various ICs on the board based on what I put in the registers aren't mine. It's not like I'm manually bit blasting the analog CVBS signal being pooped out the back of the thing, someone at Ti and/or Sega decided how that works and packaged it in a nice little video display chip for me. I could write every lick of 68000 code that the CPU touches from poweron to poweroff and still wouldn't be solely responsible for the end result. I'm not responsible for determining efficient blitting routines, scrollplane population, FM synthesis calculations, analog signal generation, nor most of the synchronization. That belongs to engineers at Sega, Ti, and whoever else was involved. This speaks to the necessity of good documentation, because any given part of a system becomes relevant when trying to understand it holistically and truly work "from scratch" on things, because any decision you don't make is still a decision you have to be aware of. There's no aspect of a design that won't be relevant to a consumer of that design at some point, that's why it's there after all. Even with side effects, it's better to understand them than not, as it's almost guaranteed if there is a corner that can be cut somewhere, not only is someone going to figure out how to cut it, they're going to make a mission critical decision based on it and blame the creator when it doesn't work. - Matt G. ------- Original Message ------- On Tuesday, January 3rd, 2023 at 7:57 AM, Warner Losh wrote: > On Mon, Jan 2, 2023 at 7:59 PM Larry McVoy wrote: > >> On Mon, Jan 02, 2023 at 02:13:45PM -0700, Adam Thornton wrote: >>> Which of these, if any, do you count? >> >> Any of them that are entirely done by you. > > With due respect, this seems like an impossible thing to have done. I think it's an arbitrary question. > > "No man is an Island" John Donne. > > Nobody on this list can claim to have anything they did entirely by themselves. Everybody used tools built by others. Everybody used an OS built by others. Even people that did a full OS + all the tools used other tools to boostrap that were done by others. They used hardware that was designed by others, made from chips made by others from raw materials mined by others. > > We all "stand on the shoulders of giants"[*]. While I get the connection to looking for someone that's independent, self sufficient, etc, it seems a bit arbitrary. I've done a ton of work on the FreeBSD kernel, for example, but it isn't all 100% me. Others have contributed to it, others have reviewed my work, others have given me (or the project) bug fixes. That project, as with so many others, are so much better due to the collaboration that happened between people. In many ways that's more important than doing something 100% yourself. > > Warner > > [*] "If I have seen further it is by standing on the sholders[sic] of others" -- Isaac Newton in a 1675 letter to his rival Robert Hooke