+ - 0:00:00
Notes for current slide
Notes for next slide

This page intentionally left blank. ⬇️, ➡️, or spacebar 🛰 to start slidedeck.

1 / 20

💻 Computers 💻

👾

👾

👾

2 / 20

Computers

3 / 20

Computers

  • Binary
  • Bits and bytes
  • Endian-ness
  • Unicode
  • Hex
  • Magic numbers
  • Programming languages
4 / 20

Binary

Computers are made up of "ones and zeros."

It means it's made up of a binary system where everything is translated down into 0 or 1, or "no" and "yes" or "off" and "on."

It's similar to how Morse Code is composed completely of dots and dashes.

I'm not going to get into how computers make sense of all of this, but binary counting is explained well here.

5 / 20

Bits and bytes

bit = BInary digiT
byte = 8 bits

A lot of things get sorted out at the byte-level, which is why it is referred to so often.

6 / 20

Little endian, Big endian

Endianness refers to how bytes have been arranged and it necessary to know how to read a file. It's sort of like whether a file is held in memory backwards or forwards (but it's more complicated than that).

Big endian = Bytes are ordered from the most significant bit
Little endian = Bytes are ordered from the least significant bit.

7 / 20

Bit significance?

The most significant bit is the one of highest significance, often read as the number on the most left. If a bit string was read in the same way we counted, it would be the ten-million point.

Conversely, the least significant bit is the one on the far right.

I think this is true but it might be more complicated than this

8 / 20

ASCII, Hexadecimal, Unicode

These are all character encodings that help you talk to your computer, or for your programs to talk to your computer. They are like human-computer translation devices.

9 / 20

Back to Base

We count in base-10, which means we get to nine and then we go to one-plus-zero, or ten. Binary is just 0 and 1.

Hexadecimal is base16, which means it gets to 16 and then starts over. It's confusing to think about. But they are represented in our common human-language as 0-9 and A-F.

10 / 20

Hexadecimal

One Hexadecimal can represent four bits. That's half a byte (also known as a nibble -- yeah, really).

So hexadecimal in pairs, you can do cool stuff with. For example, the way color is displayed on computers using RGB is made up of 6 hex numbers (which is why A-F are in there too) and are broken into [Red part] | [Green part] | [Blue part] !

A really great overview is available here.

11 / 20

Reading hex

12 / 20

Unicode

I think it's well-known that emoji is possible because of Unicode. Unicode is another way to encode characters. Although Unicode isn't just Unicode, there are many different kinds of Unicode. Anyway, it's true what they say about emoji. Unicode also allows for very large and complex languages, like those based on Chinese characters, to be presented properly on screens.

13 / 20

� Mojibake! � � � �

(It's pronounced moh-gee-bah-k, not "'moji bake" like a BBQ featuring emoji)

Mojibake is what happens when computers don't speak the same language to each other. But because computers seem to aim to please, they do their best to give you what you want anyway, which sometimes just looks like garbage.

14 / 20

Magic numbers

Magic numbers (can mean a lot of things but also) are one way for file formats to identify themselves, usually but not necessarily at the beginning of a file. In this case, they might also be referred to as "file signatures."

The magic number for the audio format FLAC is 66 4C 61 43 in hexadecimal, which becomes fLaC when translated to text.

15 / 20

Programming languages

Programming languages are also like translation devices between you and your computer, just bigger.

There are many different types of programming languages. Here are some loose categories by which they are often defined:

  • functional
  • imperative
  • declarative
  • object-oriented
  • procedural
  • logic
16 / 20

Programming languages

These languages can be compiled or interpreted:

Do you have to do an extra step to put your code together before you run it, or can you just run it?

For example, QCTools is built in C++ and I have to build it every time I went to test some code. A Python script can be run by typing python cool-script.py into Terminal.

17 / 20

💻 Computers 💻

👾

👾

👾

2 / 20
Paused

Help

Keyboard shortcuts

, , Pg Up, k Go to previous slide
, , Pg Dn, Space, j Go to next slide
Home Go to first slide
End Go to last slide
Number + Return Go to specific slide
b / m / f Toggle blackout / mirrored / fullscreen mode
c Clone slideshow
p Toggle presenter mode
t Restart the presentation timer
?, h Toggle this help
Esc Back to slideshow