Computers as a social construct

Sdílet
Vložit
  • čas přidán 13. 07. 2024
  • Follow me on Mastodon: hachyderm.io/@fasterthanlime
    Support me on Patreon or GitHub: fasterthanli.me/donate
    Those who learn from history are doomed to repeat that fucking proverb.
    Contents
    00:00 Things we discover vs things we decide
    02:30 Let's talk about numbers
    06:36 Why bother with binary?
    08:10 Making up encodings
    09:58 Counting higher
    12:30 Why little-endian?
    18:45 The sins of the father...
    20:12 And now for some x86 assembly
    23:25 Wait, what's a function?
    24:15 And now for some disassembly
    27:08 Seeking linker, must be willing to relocate
    30:03 Self-ad break
    30:45 No really, how /are/ x86 instructions encoded?
    32:49 Credits
  • Věda a technologie

Komentáře • 113

  • @fasterthanlime
    @fasterthanlime  Před 2 lety +148

    Trivia time! You may have noticed I used the term "pick your own adventure" when explaining relocations. That's because "choose your own adventure" is a trademark of Chooseco LLC, which sued Netflix when they used the term to describe Bandersnatch.
    I probably would've gotten away with it here, but I'm not about to take any chances 😬 and now you know!

  • @kyle-silver
    @kyle-silver Před 2 lety +128

    It’s also a convention that bits are either 0 or 1. I remember reading that some early vacuum tube computers could store more than 2 states per tube. Imagine a computer based on quintic logic gates!

    • @KaneYork
      @KaneYork Před 2 lety +25

      Modern storage stores multiple states per cell, too, but it's typically 4 or 8 states.

    • @fasterthanlime
      @fasterthanlime  Před 2 lety +43

      @@KaneYork I almost mentioned flash storage in the video (tl;dr "it's complicated") and went "okay now I'm /really/ out of my depth" and noped out of there. It would be a fascinating topic for its own video though!

    • @KaneYork
      @KaneYork Před 2 lety +5

      @@fasterthanlime The part where they make sure that adjacent charge => bit encodings are all different enough for error correction to notice any charge drift is also very neat

    • @alexchichigin
      @alexchichigin Před 2 lety +15

      There was a computer based in 3-value "bits" (trits?) built in USSR. "Сетунь" was the name of the machine. en.wikipedia.org/wiki/Setun

    • @LuxurioMusic
      @LuxurioMusic Před rokem +1

      @@alexchichigin Yep! I was designing some transistor based ternary logic gate circuit boards based on a hackaday io project called Tern a couple years ago. I should get back on that, I really find ternary logic fun. The interesting thing is, as soon as you have two inputs, you end up with just /so/ many possible gates.

  • @girdus1859
    @girdus1859 Před 2 lety +39

    I did not want to find out this way.💀

  • @maurimura
    @maurimura Před rokem +10

    This is a masterpice, I loved it.
    So turns out 2007 was 16 years ago, sorry you had to find out this way. Blame this video for theaching me how to add two numbers

  • @Z4XV0
    @Z4XV0 Před 2 lety +33

    That “2007 was yesterday” cut was excellent, I burst out laughing so hard.

    • @djbailey1982
      @djbailey1982 Před 2 lety

      Same XD

    • @tasse0599
      @tasse0599 Před rokem

      Is it a reference to something?

    • @d4rkn355
      @d4rkn355 Před rokem +3

      ​@@tasse0599 it is a reference to time and us getting older

    • @jorgevillarreal2245
      @jorgevillarreal2245 Před rokem

      Ah, the year when "What every programmer should know about memory" article by Uldrich Drepper came out

  • @MrSmitheroons
    @MrSmitheroons Před rokem +7

    Love this, I'm only 3.5 minutes in so far but it's already like "Yes, where has another person in the tech space thinking like this been (and saying it out loud and in detail) been all my life."
    P.S. I think the venn diagram of people who realize the world is built on social constructs/contracts and those who are enthusiastic about etymologies of words has to be approaching a single circle. Etymology reveals the vagaries of the past in terms of socially constructed human conventions of understanding like little else can. A little road map of how we got from then to now, from there to here. With pretty strong hints at "why" we got here, too.

  • @gbrls_yt
    @gbrls_yt Před 2 lety +28

    hey amos, this is such great content! I liked how kind of adapted the style of dialogue from your blog to a video format. Keep the great work!

  • @apoc_dev
    @apoc_dev Před 2 lety +15

    Yes this is the content I want on my feed when I get home at 1am from boozing. Keep it up lad.

  • @ankur-dhama
    @ankur-dhama Před 2 lety +35

    Next video suggestion: "Just like software modern CPU can be patched: Introducing microcode"

    • @fasterthanlime
      @fasterthanlime  Před 2 lety +31

      If I knew of a safe way to experiment with it, I would love to cover that! But it doesn't fit with the objective I've set myself for this series of videos, which is-

  • @wololo1657
    @wololo1657 Před 2 lety +6

    This was both entertaining and informative. I appreciate the hard work you put into this and hope you can make some more soon!

  • @edgeeffect
    @edgeeffect Před rokem +6

    I've always considered little-endian to be absolute madness (and I started doing Z80 machine code in 1981). But in one quick explanation (I don't think anyone, in all those years, has considered EXPLAINING it until now) and it becomes obvious! Thanks for overthinking it for me.

  • @Redoxeon
    @Redoxeon Před 2 lety +14

    I just sent this video to my non-computer friend who thinks I'm a literal wizard. This stuff seems way accessible! We'll see if he understands haha

    • @fasterthanlime
      @fasterthanlime  Před 2 lety +9

      Please report back! I'm really curious how accessible those are to folks who don't already know most of it (the bulk of my audience so far)

    • @gerooq
      @gerooq Před rokem +1

      @@fasterthanlime i think that is a good thing

  • @bezobraznos
    @bezobraznos Před 2 lety +7

    The suspense in the end though

    • @fasterthanlime
      @fasterthanlime  Před 2 lety +2

      The cliffhangers will continue until I run out of introductory material!!

  • @Octal_Covers
    @Octal_Covers Před rokem +1

    Optical discs don't encode data in pit or land, it encodes the data in the transition from pit to land / land to pit. A transition in the period indicates a 0 and no transition indicates a 1

  • @danielrhouck
    @danielrhouck Před rokem +1

    I think a PIE CYOA would be “To talk to the gators, turn 3 pages forward”, the advantage being that you can then shove the entire lake area into multiple books without having to rewrite all the page numbers (and also security implications; nobody knows what page they can need to go to get the treasure without actually following the book)

  • @benediktzoennchen
    @benediktzoennchen Před 2 lety +4

    Great video! I like that you point out that many things are just conventions. However, I also think that many things are not just conventions. For example, anything except unary requires log-space because you can represent exponentially many things is something really fundamental.
    What strikes me after studying computer science for years is that we spent really little time on the term "information". We just went over Shannon's entropy definition, and bam, that's it, that is information. Nowadays, this definition is unsettling because information systems are injected with value - they make decisions and no longer seem to work on a pure syntactical basis.
    What I also think a lot about is the simple concept of an "interpretation" which is just a function from a set of representations (encoding) to another set, i.e., what these representations "mean". If you think about it, everything within a computer realizes some sort of interpretation. The keyboard interprets pressure into letters, every compiler, interpreter, and program is, in the end, an interpretation, and we do nothing but build these interpretations on top of other interpretations. We are free to choose them as we like! But, as you rightfully pointed out, it is convention/standardization that enables communication. We have to use the same interpretations to understand each other. In the case of natural language, we never share the exact same interpretation - we will always be a little misunderstood, which makes us subjects. That's different in CS. Here we are unambiguous, and that can be pretty beautiful and relieving.

  • @kayakMike1000
    @kayakMike1000 Před rokem +1

    Well ... That's not how I learned "computers". I learned by beating my brain into a pulp on several hundred little projects.

  • @misterinterrupt
    @misterinterrupt Před rokem +1

    8 bits in a trenchcoat is hilarious

  • @Dygear
    @Dygear Před rokem +1

    Little known fact of the fall of the Roman Empire. The Visigoth where actually chanting "Death to Roman Numerals" as they invaded Rome.

  • @cthree87
    @cthree87 Před 2 lety

    fantastic, loving the videos :)

  • @LangweiligxD135
    @LangweiligxD135 Před 2 lety +1

    Amazing video, thank you!
    Surprised, it doesn't have more views

  • @alexkazimir3835
    @alexkazimir3835 Před 2 lety

    Great material!

  • @PLAYGAME-wj9bw
    @PLAYGAME-wj9bw Před rokem

    Amazing video

  • @pweddy1
    @pweddy1 Před rokem +2

    Generally speaking the term "8 bit" refers to the datapath/ALU size not the bus size. This was particularly true prior to the 32 Microprocessor era. Most 16bit machines addressed more that 64K words.
    PDP 7, interestingly enough, and it's ancestors were 18 bit machines instead of 8 or 16 and only addressed 64K. Because, well, the processors were hand assembled using discreet components and ram was often based on physical rings.

  • @VincentVanZgegh
    @VincentVanZgegh Před 2 lety

    Great content! 💎💎

  • @hugoviala7365
    @hugoviala7365 Před 2 lety +1

    Merci pour cette chanson de conclusion :D (et pour toute la vidéo)

    • @fasterthanlime
      @fasterthanlime  Před 2 lety +2

      C'est vrai qu'elle reste dans la tête celle-ci.

  • @JaapvanderVelde
    @JaapvanderVelde Před rokem +19

    Pedantry incoming: you'll find that the *average* (or 'mean') number of fingers on humans is actually a bit below 10, although it would round to the integer 10, unless you happen to be in a particularly harsh yakuza gang or something. The *mode* for the number of fingers is certainly 10.

    • @dieSpinnt
      @dieSpinnt Před rokem +2

      Well, it is debatable if your statistic counting has any deeper meaning, as you (I guess) look at the loss of fingers? That doesn't mean that that human (or Yakuza Member, hehe) doesn't have 10 fingers. Also you did a bad job in researching, because you totally ignored Polydactyly which is more common than finger losses through accidents. Hexadactyly - has a human frequency of 1 in 3,000 in Europe, Asia and North America and 1 in 300 in Africa. In about 40 percent of cases, the change is bilateral. I would reconsider your "The mode for the number of fingers is certainly 10.", this is not only arrogant and uninformed, also mother nature has certainly another opinion than you (which also shifts the statistical number above 10!!! I mean, if we stay in REALITY and not in a Hollywood movie about Japan).
      Sorry for that, its the internets ... every good deed, like pedantry will be immediately punished! And now: "5 beers for the sawmill workforce" (signing that with a hand with only 3 fingers up...). Cheers, Jaap:)))

    • @JaapvanderVelde
      @JaapvanderVelde Před rokem +1

      @@dieSpinnt mind you, that's why I said *mode* - it seems like you're still talking about average/mean? The mode for the number of fingers is certainly 10 (on humans anyway, no need to move the goalpost there). Do you dispute that? That is, would you say there's a number of fingers more common than 10 in the general human population?

    • @gavintantleff
      @gavintantleff Před rokem

      Wouldn’t the median also be 10?

    • @JaapvanderVelde
      @JaapvanderVelde Před rokem +2

      @@gavintantleff the median would be the middle value. Given that a staggering number of people has 10 fingers, all the other numbers will be to the far left and right of the massive glob of 10s in the middle of the centerline, so yes for numbers of fingers the mode and median are very likely to be the same. However, a mode is a bit more telling, or at least a very different measure. Imagine that there are about as many people with 0 fingers, 1 finger, 2 fingers, etc. all the way up to 20 fingers (I know, freaky). In that case, the median would still be 10, but the mode would be whatever number of fingers happens to be a bit more common than the others - that's why mode is a bit more telling when you're really speaking about what is common. In this example, the rounded average would likely also be 10. For another example imagine that almost all people have either 1 finger or 11 fingers, and there's about the same number of either type, perhaps a handful more 1s - but there's a few people with 10 fingers. That would make the median 10 (just happens to sit in the middle), the mode the larger of the 1s and 11s and thus the 1s, and the average something like 5 or 6. Which one of those do you feel is most representative of being 'normal'? The average is a number that literally nobody has for fingers, not even close. The median is close to the 11s, but the 1s are the most common. The mode accurately represents that. There's good reason we have all three measures.

  • @actuallyasriel
    @actuallyasriel Před rokem

    I was hoping for a bit more philosophy, haha. Still, great video, you kept me all the way through and I learned stuff!!

  • @thinking_face
    @thinking_face Před rokem +2

    It's definitely a good impulse to prod toward being more inquisitive about compsci education, but my experience with the computer architecture and compiler engineering courses has been that they, much more so than other courses, absolutely do try to go into the "what if we did it this way?" questions and present most of our current mainstream computing reality through the lens of tradeoffs in design. Admittedly, I'm only a few minutes into the video but I just wanted to leave my little impression that this bit of my overall education has actually been far less dogmatic than other ones.

  • @ta3113ta
    @ta3113ta Před 2 lety

    Oh, I love this video.

  • @JosephHenryDrawing
    @JosephHenryDrawing Před 2 lety +3

    "Mon petit oiseau a pris sa volée" thanks for this great video! I love the way you explain things in details and this is real curiosity here! Hello from France 🇫🇷

  • @PecPur
    @PecPur Před rokem

    This video is to me a tall glass of water in a desert.

  • @Qlics
    @Qlics Před 2 lety +5

    Tiny correction: at 13:52 the binary value for 97 on the right is not correct. Still awesome video though! :)

    • @fasterthanlime
      @fasterthanlime  Před 2 lety +12

      Whoops, nice catch! That one slipped by my editor. (That's me, I'm editor)

  • @patiencebear
    @patiencebear Před rokem

    Re: 01:40 An interesting detour would also be the question if we need clock cycles per se. If your problem space allows it, an anolog computer might even be a better fit than your cycles based speed calculation.

  • @tHe0nLyNeXuS
    @tHe0nLyNeXuS Před rokem

    I looooooooooved the foreshadowing of Big-endian vs Little-endian. Almost fell out of my chair.... XD

  • @Redrios
    @Redrios Před rokem

    Jacques Lacan Seminar on The Purloined Letter, from his Ecrits, not the seminar so you might as well skip it all till he starts with the minimum set "of at least" 4 elements in a system, each built in net, precisely 00 01 10 11 and so on to spark the whole universe of significance in a few words in our 42000 thesaurus tokens battery thing. Most subversive epistemological foundation for his strucuralist flavor, then If amused, read the purloined letter, first half :D

  • @oxylibrium8955
    @oxylibrium8955 Před rokem

    I really want this rendition of mon petit oiseau on Apple Music now; I come back for it every time I feel down @ 32:48

  • @CarterColeisInfamous
    @CarterColeisInfamous Před rokem

    0:36 you just named my new group protocol

  • @frnc.
    @frnc. Před rokem

    This kind of videos are amazing even if I don't understand half of them.

  • @alexchichigin
    @alexchichigin Před 2 lety +1

    3:03 but _even spacing_ is just another _convention_! There's nothing inherent about _drawing_ natural numbers as _evenly_ spaced. :D

  • @superhawk6105
    @superhawk6105 Před 2 lety +1

    15 years ago :O

  • @notlessgrossman163
    @notlessgrossman163 Před rokem

    Odd I expected the video to present completely different paradigms in computation but it was good review of undergraduate cs intro to computers

  • @TheRealisticNihilist
    @TheRealisticNihilist Před rokem

    This is so nuts. Seems appropriate for a Socrates quote or something.

  • @TobiasFrei
    @TobiasFrei Před rokem

    Don't remember how we did Umlaute in Swiss z/OS data centers in early 2000nd, but we did 😂

  • @jvcmarc
    @jvcmarc Před rokem +1

    I like the part about etimology, but the italian word "ciao" has the same origin as the english word "slave", so words having the same roots doesn't mean a whole lot, meaning changes alot with time

  • @Evan490BC
    @Evan490BC Před 2 lety +1

    Amos, any chance of resurrecting OOC? I understand you have moved into Rust now (it's a language the principles of which I like, but it feels much more low-level), but it's such a shame that OOC is abandoned. I wish I could take it over, but I am not a systems programmer, unfortunately...

    • @fasterthanlime
      @fasterthanlime  Před 2 lety

      Sorry, no chance at all. If I were to make a language today, I would probably make a lot of different choices!

  • @SianaGearz
    @SianaGearz Před rokem

    Analogue computers used to be a thing. Though they were largely fixed function machines or had little configurability. But how far could you push it? Modular synthesizer, perhaps.
    I can also think of a computer that is a modern computer in every conceivable way, except it's not electronic. Zuse Z3. It's entirely electromechanical. I have seen a working replica of it, impressive indeed; it's currently being cleaned up and restored, might come back next year or so.

  • @adampisula6432
    @adampisula6432 Před rokem

    IT Adam Ragusea, man I love this guy

  •  Před 2 lety

    What have Plan 9 ever done for us?

  • @neuro5261
    @neuro5261 Před rokem

    i liked the video. whole numbers are 0 and up, natural numbers is 1 and up.

  • @olafbaeyens8955
    @olafbaeyens8955 Před rokem

    Analogue computers are more in touch with their feelings, as are Quantum computers and modems.
    Now that I think off even digital signals have some fuzziness like when to decide to be 0 or 1 or undecided.

  • @einsjannis
    @einsjannis Před rokem

    First I laughed at the 15years joke until I realized you were talking about 2007

  • @herrxerex8484
    @herrxerex8484 Před 2 lety +1

    Wow , I guess I am a computer now.

  • @lizzienovigot
    @lizzienovigot Před rokem

    I’m triggered by “10 is the average amount of fingers among humans”. I don’t have any data to back it up but intuitively it feels that while surely there are cases when ppl are born with more than 10 fingers, it’s far more common to have some of your fingers removed while living….

  • @leyasep5919
    @leyasep5919 Před rokem

    Pun time :
    Did you know that EAX is the low RAX ?

  • @Kavukamari
    @Kavukamari Před rokem

    what he was gunna say is "everything is arbitrary and terrible" yw

  • @sinyud
    @sinyud Před rokem

    “Digit” etymology = finger

  • @leyasep5919
    @leyasep5919 Před rokem

    Did you skip the 8080 ? 🙂

  • @RoamingAdhocrat
    @RoamingAdhocrat Před rokem

    I mean I have a computer that stores numbers as a rotation of a shaft

  • @max_ishere
    @max_ishere Před rokem

    10:43 wait are you actually going to tech me x86 ASM better than my classes which I absolutely did not skip?

  • @meithecatte8492
    @meithecatte8492 Před 2 lety

    5:30 amos is an intuitionist confirmed 🙃

    • @fasterthanlime
      @fasterthanlime  Před 2 lety

      Now then, I've been called many things before, but never an intuitionist!
      (...I'll allow it)

  • @domenvake3077
    @domenvake3077 Před rokem

    Ananas!!

  • @andrewdunbar828
    @andrewdunbar828 Před rokem

    ¡Es una piña!

  • @moth.monster
    @moth.monster Před rokem

    cool video, i'd follow you on the fediverse but the instance you're on blocks mine :(

  • @Redrios
    @Redrios Před rokem

    shannon's fault? von Neuman's? Frege? I wish computer science was my fault

  • @alexferreira4401
    @alexferreira4401 Před rokem

    C++ users trying to convince you 32:31

  • @pentekimi
    @pentekimi Před rokem

    humans do not have on average 10 fingers on their hands. However the median number of handfingers a human has is 10

  • @BertPdeboy
    @BertPdeboy Před 2 lety +1

    Sounds like someone broke from dissecting past decisions x)

  • @TheHippyhopp
    @TheHippyhopp Před 2 lety +1

    Wtf where is Rust??

  • @CalebJasik
    @CalebJasik Před 2 lety +1

    that was some good shit. computers are fake

  • @ithinktian6752
    @ithinktian6752 Před rokem

    yo nanas is indonesian yo

  • @nextlifeonearth
    @nextlifeonearth Před rokem

    Dozenal > decimal. The Arabs that made up the current number system had no clue what they were doing either. "let's make our system based on a number that can only be divided by 2 and the least useful prime number that comes after it! Because hand!"

  • @remiwi2399
    @remiwi2399 Před rokem +1

    I have nothing against this video or your videos in general, but this title left me disappointed. The intro made it seem you'd get into a bit more of what the title promises, but you slowly change into a technical explainer, and then into a straight up technical tutorial...

    • @christianh2581
      @christianh2581 Před rokem

      Same here, i watched the video but dont understand what the title and start has to do with it

  • @anyadatzaklatszjutub
    @anyadatzaklatszjutub Před rokem +1

    rockin' that markus like a bause

  • @digama0
    @digama0 Před 2 lety +3

    It saddens me that you would think of little endian as anything other than the correct way to lay out numbers. Mathematically everything just works better: you can work out the place value of a digit based on the base address, you can truncate modulo 2^N by decreasing the read width, you can extend the value to more bytes by putting zeros at the end without moving the existing ones, and it naturally generalizes to the 2-adic numbers ( en.wikipedia.org/wiki/P-adic_number ) when you consider the bitstream as infinite. By comparison, reading the first few bytes of a long number tells you very little unless you also know the length (i.e. the basepoint so that you can work at it from the other end...). If anything, we should find out who had the idea to put the MSB first (probably those darn Romans again). The RTL languages like Arabic and Hebrew interestingly get this one right, since they *don't* flip numerals, as you mentioned, so the LSB comes first in reading order, As God Intended.

    • @animowany111
      @animowany111 Před 2 lety

      Least significant digits are called that for a reason. If you read some long number, say a 10-digit one, it doesn't really matter if the last digit is a 3 or a 5, but it matters if the number is roughly 20 or 80 billion. If you want to compare two little-endian numbers, which one is bigger, you can stop early at the first mismatch, if you want to compare big-endian numbers, you need to either read them all at once then compare, or compare while reading backwards.
      This is one of the things scientific notation does not get right, it starts with the mantissa instead of the exponent. If we want to compare, say 1.85×10^43 and 6.02×10^23 - you have to read all the way to the end of the notation to see which is bigger. If the exponent was placed first, you'd be able to tell which is bigger instantly.

    • @digama0
      @digama0 Před 2 lety +1

      ​@@animowany111 You still need the length for both of those applications though. Sure the LSB itself is less significant, but the LSB end is more important because it's like the zero of the number line - it is the basepoint for measurement. If you don't know the length or the length is variable, you can't line up 987 and 1234 on the left end and say that the first one is larger because it starts with 9.
      *If* you know that your numbers have aligned basepoints, then yes, the best way to compare them is to go digit by digit starting at the largest stored place value, i.e. the MSB.
      If all your numbers have a fixed size and you don't subdivide them, then this is not an issue, and indeed no one really talks about big/little endian ordering when it comes to the bits in a byte, because x86 doesn't really read bit by bit so you can't observe either ordering. It is only when you have variable length accesses that the question comes up, and that's exactly where little endian shows its advantages.
      Scientific notation is to my mind a different sort of thing than big/little endian, because it's not part of a uniform system, there is no third component beyond exponent and mantissa. So I think you can rule on that one independently of your perspective on big/little endian. I can see the advantage of making it match the ordering of the digits though: put the exponent last if the digits are spelled in little endian and first if the digits are in big endian, since that makes comparison more uniform. IEEE actually does this: the exponent is stored on the MSB end of the 64-bit word, so you can use a single integer comparison to correctly compare IEEE floats (except for the sign bit, which works by sign-magnitude representation), and this is exploited in radix sorting, for example.