binary solo
introductions
Conduct
Social Rules
- No feigning surprise
- No well-actuallys
- No back-seat driving
- No subtle-isms
recurse center <3
all your
feelings
are valid
binary solo
(core content!)
(technical digressions!)
⚠ technical digression ⚠
binary solo
can you send messages
with just 1s and 0s?
how to count!
back to basics 🤓
the normal way
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, …
"Decimal"
"Base 10"
the normal way
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, …
"Decimal"
"Base 10"
first weird thing: from now on, we will start counting at zero
the normal way
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, …
"decimal"
"base 10"
something interesting happens here!
kill the 9s!
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, …
"base 9"
… 18, 19, 20, 21, …
… 88, 89, 90, 91, … 99, 100, 101, …
kill the 9s!
0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, …
"base 9"
… 18, 20, 21, …
… 88, 100, 101, …
how about the 8s!
0, 1, 2, 3, 4, 5, 6, 7, 10, 11, …
"octal"
"base 8"
… 16, 17, 20, 21, …
… 76, 77, 100, 101, …
POWER
OF TWO!
…
0, 1, 2, 10, 11, 12, 20, 21, 22, 100, 101, …
"base 3"
drumroll...
the last two digits!
the last two digits!
0, 1, 10, 11, 100, 101, 110, 111, …
"binary!!!!!!!!"
"base 2"
POWER
OF TWO!
count to 10000
(in binary 😉)
places: decimal
eg: 9201
- 9 in the thousands column
- 2 in the hundreds column
- 0 tens
- 1 ones
place | name |
---|---|
1 | "ones" |
10 | "tens" |
100 | "hundreds" |
1000 | "thousands" |
⚠ technical digression ⚠
places: decimal
eg: 9201
- 9 * 1000 +
- 2 * 100 +
- 0 * 10 +
- 1 * 1
place | name |
---|---|
1 | "ones" |
10 | "tens" |
100 | "hundreds" |
1000 | "thousands" |
= 9000 + 200 + 0 + 1
= 9201
⚠ technical digression ⚠
places: decimal
eg: 9201
- 9 * 1000 +
- 2 * 100 +
- 0 * 10 +
- 1 * 1
place | name | aka |
---|---|---|
1 | "ones" | 100 |
10 | "tens" | 101 |
100 | "hundreds" | 102 |
1000 | "thousands" | 103 |
= 9000 + 200 + 0 + 1
= 9201
⚠ technical digression ⚠
places: binary!
place | name | i.e. |
---|---|---|
1 | "ones" | 20 |
10 | "twos" | 21 |
100 | "fours" | 22 |
1000 | "eights" | 23 |
1
|
1
|
10
|
2 |
11 | 3 |
100 | 4 |
101 | 5 |
110 | 6 |
111 | 7 |
1000 | 8 |
1001 | 9 |
1010 | 10 |
⚠ technical digression ⚠
places: binary!
eg: 1001
- 1 * 8 +
- 0 * 4 +
- 0 * 2 +
- 1 * 1
place | name | i.e. |
---|---|---|
1 | "ones" | 2 0 |
10 | "twos" | 2 1 |
100 | "fours" | 2 2 |
1000 | "eights" | 2 3 |
= 8 + 0 + 0 + 1
= 9
⚠ technical digression ⚠
places: binary!
eg: 0111
- 0 * 8 +
- 1 * 4 +
- 1 * 2 +
- 1 * 1
place | name | i.e. |
---|---|---|
1 | "ones" | 2 0 |
10 | "twos" | 2 1 |
100 | "fours" | 2 2 |
1000 | "eights" | 2 3 |
= 0 + 4 + 2 + 1
= 7
⚠ technical digression ⚠
send messages
with 1s and 0s?
hexadecimal
base 16!
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, …
⚠ technical digression ⚠
add some new digits here!
hexadecimal
base 16!
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, 10, 11, …
⚠ technical digression ⚠
12, 13, 14, 15, 16, 17, 18, 19, 1A, 1B, 1C, 1D, 1E, 1F, 20, …
… 99, 9A, 9B, 9C, 9D, 9E, 9F, F0, F1, F2, …
… F9, FA, FB, FC, FD, FE, FF, 100, 101, 102, …
POWER
OF TWO!
hardware setup
power up! 🔌
arduino
mini thermal printer
-
red & black: power
-
green & yellow: communication
-
one blink: all ok!
serial
RX: →Receive←
TX: ←Transmit→
(snacks!)
(foreshadowing snacks!)
bits & bytes
00001111
000000111
00000011
0000001
00001111
000000111
00000011
0000001
1 = 1
2 + 1 = 3
4 + 2 + 1 = 7
8 + 4 + 2 + 1 = 15
1 = 1
2 + 1 = 3
4 + 2 + 1 = 7
8 + 4 + 2 + 1 = 15
= B
= D
= H
= P
?????
bits & bytes
how computers store information
separating numbers
delays? spaces? newlines?
...chord hits?
00000010000001100000011100001111
0
1
2
4
1
2
3
8
8
256
9
512
10
1024
17
131,072
18
262,144
25
33,554,432
= 33,949,455 :/
can you send messages
with
just 1s and 0s?
"bytes"
if eggs came in packages of 8...
"bytes"
Every number is made of
exactly 8 bits (1s and 0s)
The highest number is only 255!
11111111 = 1 + 2 + ... + 127 = 255
00000010000001100000011100001111
00000010 00000110 00000111 00001111
= 2
= 6
= 7
= 15
= C
G
H
P ?????
ASCII!
0=[NUL] 1=[SOH] 2=[STX] 3=[ETX] 4=[EOT] 5=[ENQ] 6=[ACK] 7=[BEL] 8=[BS] 9=[HT] 10=[LF] 11=[VT] 12=[FF] 13=[CR] 14=[SO] 15=[SI] |
16=[DLE] 17=[DC1] 18=[DC2] 19=[DC3] 20=[DC4] 21=[NAK] 22=[SYN] 23=[ETB] 24=[CAN] 25=[EM] 26=[SUB] 27=[ESC] 28=[FS] 29=[GS] 30=[RS] 31=[US] |
32=" " 33=! 34=" 35=# 36=$ 37=% 38=& 39=' 40=( 41=) 42=* 43=+ 44=, 45=- 46=. 47=/ |
48=0 49=1 50=2 51=3 52=4 53=5 54=6 55=7 56=8 57=9 58=: 59=; 60=< 61== 62=> 63=? |
64=@ 65=A 66=B 67=C 68=D 69=E 70=F 71=G 72=H 73=I 74=J 75=K 76=L 77=M 78=N 79=O |
80=P 81=Q 82=R 83=S 84=T 85=U 86=V 87=W 88=X 89=Y 90=Z 91=[ 92=\ 93=] 94=^ 95=_ |
96=` 97=a 98=b 99=c 100=d 101=e 102=f 103=g 104=h 105=i 106=j 107=k 108=l 109=m 110=n 111=o |
112=p 113=q 114=r 115=s 116=t 117=u 118=v 119=w 120=x 121=y 122=z 123={ 124=| 125=} 126=~ 127=[DEL] |
---|
dec | hex | binary | ascii |
---|---|---|---|
65 | 0x41 | 0b01000001 | A |
66 | 0x42 | 0b01000010 | B |
67 | 0x43 | 0b01000011 | C |
68 | 0x44 | 0b01000100 | D |
69 | 0x45 | 0b01000101 | E |
70 | 0x46 | 0b01000110 | F |
71 | 0x47 | 0b01000111 | G |
72 | 0x48 | 0b01001000 | H |
73 | 0x49 | 0b01001001 | I |
74 | 0x4A | 0b01001010 | J |
75 | 0x4B | 0b01001011 | K |
76 | 0x4C | 0b01001100 | L |
77 | 0x4D | 0b01001101 | M |
78 | 0x4E | 0b01001110 | N |
79 | 0x4F | 0b01001111 | O |
dec | hex | binary | ascii |
---|---|---|---|
80 | 0x50 | 0b01010000 | P |
81 | 0x51 | 0b01010001 | Q |
82 | 0x52 | 0b01010010 | R |
83 | 0x53 | 0b01010011 | S |
84 | 0x54 | 0b01010100 | T |
85 | 0x55 | 0b01010101 | U |
86 | 0x56 | 0b01010110 | V |
87 | 0x57 | 0b01010111 | W |
88 | 0x58 | 0b01011000 | X |
89 | 0x59 | 0b01011001 | Y |
90 | 0x59 | 0b01011010 | Z |
H
E
L
L
O
01001000 01000101 01001100 01001100 01001111
send messages
with 1s and 0s!
dec | hex | binary | ascii |
---|---|---|---|
65 | 0x41 | 0b01000001 | A |
66 | 0x42 | 0b01000010 | B |
67 | 0x43 | 0b01000011 | C |
68 | 0x44 | 0b01000100 | D |
69 | 0x45 | 0b01000101 | E |
70 | 0x46 | 0b01000110 | F |
71 | 0x47 | 0b01000111 | G |
72 | 0x48 | 0b01001000 | H |
73 | 0x49 | 0b01001001 | I |
74 | 0x4A | 0b01001010 | J |
75 | 0x4B | 0b01001011 | K |
76 | 0x4C | 0b01001100 | L |
77 | 0x4D | 0b01001101 | M |
78 | 0x4E | 0b01001110 | N |
79 | 0x4F | 0b01001111 | O |
dec | hex | binary | ascii |
---|---|---|---|
80 | 0x50 | 0b01010000 | P |
81 | 0x51 | 0b01010001 | Q |
82 | 0x52 | 0b01010010 | R |
83 | 0x53 | 0b01010011 | S |
84 | 0x54 | 0b01010100 | T |
85 | 0x55 | 0b01010101 | U |
86 | 0x56 | 0b01010110 | V |
87 | 0x57 | 0b01010111 | W |
88 | 0x58 | 0b01011000 | X |
89 | 0x59 | 0b01011001 | Y |
90 | 0x59 | 0b01011010 | Z |
???
00000010 00000110 0000111 00001111
[stx]
00000010 00000110 00000111 00001111
[ack]
[bel]
[si]
????
0=[NUL] | 1=[SOH] | 2=[STX] | 3=[ETX] | 4=[EOT] | 5=[ENQ] | 6=[ACK] | 7=[BEL] |
---|---|---|---|---|---|---|---|
8=[BS] | 9=[HT] | 10=[LF] | 11=[VT] | 12=[FF] | 13=[CR] | 14=[SO] | 15=[SI] |
ASCII!
unicode
ò ж ҈ ☂ 🙀
⚠ technical digression ⚠
text: it�s hard
bigger numbers
and other kinds of data
⚠ technical digression ⚠
get code
binary solo!
✨️
0-serial-message.ino
(snack break)
computers talking
to each other
send messages
with 1s and 0s!
thermal-binary-message.ino
send images
with 1s and 0s!
thermal-image-message.ino
thermal printer art
The Counter Button
(Object #1)
Ailadi, 2018
WeAreNotListening
Tape Recorders
Raphael Lozano-Hemmer (2011)
Remembering
Nitcha Fame Tothong (2018)
Binary Solo 2018-08-25
By Phil Schleihauf
Binary Solo 2018-08-25
- 832