Fun Fact!
Quick background for anyone who needs it: Our modern number system is base 10. That means we count until we reach ten and then we add a one to the tenths place. Ever wondered
why we count like this and not say, base 8 or base 16? Well it's because we have ten fingers! It's that simple, when we first started developing our number system, we used our
hands to count, so everything was based off the fact that we have ten fingers. Seems obvious but I thought that was so interesting when I first heard it. Also, ever wondered why time is in terms of 12? (60 seconds/minutes, 24 hours in a day) Well it's because the romans counted with their knuckles (excluding their thumbs), which means they counted in base 12! There's your fun fact of the day! Tell your grandma!
Another fun fact!
Just thought of another one. Not sure if this is well known or not but guess what? Do you know what the difference between FM and AM radio is? FM stands for "Frequency Modulation"
and AM stands for "Amplitude Modulation". Each channel on FM radio is just a signal with a slightly different frequency, versus AM where each station is just a different amplitude.
I just learned this and that's so cool! To me at least.
Last fun fact (probably)
Ok this is a CS fact I learned today that I think is really clever, but maybe its not and I'm dumb. Also you need some CS background to get this one because I can't explain all the background here it would take too long. So basically, UDP uses a checksum to verify that it's packet doesn't have corrupted data. The checksum is a 16 bit binary number that is calculated by adding up the header and data of the UDP packet (which are also binary, so this is just binary addition {also if there is a carry one you need to add it back to the front of the number}) together, and then taking the one's compliment of the sum. Now you might be wondering, why the one's compliment? Well it's actually really interesting: because different processors use different binary notation (some with the MSB being first, other with it as last), if the receiving host just recalculated the checksum and compared it to the provided checksum, they could have different answers if the sender and receiver use processors that use different notation. So instead, when a host receives a UDP packet it adds up the entire packet's binary including the checksum, and expects the result to be zero. Isn't that so clever? That way, regardless of how you process binary, if there was no corruption the sum will be zero, or if there was corruption it won't be zero. I hope that made sense, I think it's really cool :)