WEBVTT

00:00:00.000 --> 00:00:03.080
Welcome to the deep dive. And before we jump

00:00:03.080 --> 00:00:04.799
into the actual material today, I was looking

00:00:04.799 --> 00:00:07.160
over the directory metadata for this session.

00:00:07.160 --> 00:00:09.759
Oh, yeah. Yeah. And it perfectly sets the stage

00:00:09.759 --> 00:00:11.080
for what we're going to be doing today. Like,

00:00:11.259 --> 00:00:13.300
if you were searching for this, the title you'd

00:00:13.300 --> 00:00:17.839
see is the deep dive, decoding ISO 2047 and the

00:00:17.839 --> 00:00:20.359
hidden language of computer terminals. That is

00:00:20.359 --> 00:00:22.920
quite the mouthful. It is. But the description,

00:00:22.920 --> 00:00:25.660
it captures the essence of our source material

00:00:25.660 --> 00:00:29.160
perfectly. It reads. Ever wonder what happens

00:00:29.160 --> 00:00:31.120
behind the screen when you hit backspace or hear

00:00:31.120 --> 00:00:34.060
a computer bell? Right. In this deep dive, we

00:00:34.060 --> 00:00:36.520
explore the fascinating, outdated world of ISO

00:00:36.520 --> 00:00:40.659
2047, the 1975 standard for graphical representations

00:00:40.659 --> 00:00:43.740
of 7 -bit control characters. From Teletype Model

00:00:43.740 --> 00:00:47.039
33 quirks like WRU, who are you, to the obscure

00:00:47.039 --> 00:00:49.020
visual symbols used for debugging early tech,

00:00:49.299 --> 00:00:51.460
we unpack the hidden codes that built modern

00:00:51.460 --> 00:00:53.820
computing. It really hits all the marks. It does.

00:00:54.039 --> 00:00:56.479
And we've got all those target SEO keywords woven

00:00:56.479 --> 00:01:00.000
in there, too. ISO 2047, computer control characters,

00:01:00.259 --> 00:01:03.320
seven bit coded character set, tech history,

00:01:04.599 --> 00:01:07.959
teletype model 33, ASCII debugging, graphical

00:01:07.959 --> 00:01:10.239
representation of control characters, legacy

00:01:10.239 --> 00:01:13.939
computing, Unicode control pictures. The works.

00:01:14.140 --> 00:01:17.079
Covering all the bases. Exactly. But beyond the

00:01:17.079 --> 00:01:19.500
metadata, the core question we are exploring

00:01:19.500 --> 00:01:22.260
today is something most of us won't, you know,

00:01:22.260 --> 00:01:24.019
we just never think about it. We take it completely

00:01:24.019 --> 00:01:27.060
for granted. We really do. When you, the listener,

00:01:27.299 --> 00:01:29.739
type on a keyboard today, the feedback loop is

00:01:29.739 --> 00:01:32.879
instantaneous. It's visual. Very tangible. Right.

00:01:33.159 --> 00:01:35.939
You press the letter A, and a luminous A appears

00:01:35.939 --> 00:01:38.180
on your screen. But what happens when you press

00:01:38.180 --> 00:01:39.780
a key that tells the computer to do something

00:01:39.780 --> 00:01:41.799
completely invisible? That's the million dollar

00:01:41.799 --> 00:01:43.859
question for early computing. How do you visualize

00:01:43.859 --> 00:01:46.219
a command that simply says, start a new line,

00:01:46.859 --> 00:01:50.239
or acknowledge this message? You've hit on a

00:01:50.239 --> 00:01:52.599
fundamental problem of early computer engineering

00:01:52.599 --> 00:01:55.079
there. We are essentially talking about the translation

00:01:55.079 --> 00:01:57.459
of functional mechanics into a visual language.

00:01:57.500 --> 00:01:59.959
Right. And in the early days of computing, that

00:01:59.959 --> 00:02:02.900
translation was quite literal. I mean, you couldn't

00:02:02.900 --> 00:02:05.400
just trust that a machine received an invisible

00:02:05.400 --> 00:02:07.239
command. You had to see it. You often needed

00:02:07.239 --> 00:02:10.219
to prove it physically. Yes. And that necessity

00:02:10.219 --> 00:02:13.340
is exactly what brings us to our sole source

00:02:13.340 --> 00:02:16.090
for today's discussion. It's a Wikipedia article

00:02:16.090 --> 00:02:20.550
detailing ASO 2047. Which is an incredibly dense

00:02:20.550 --> 00:02:23.710
read. It is not a narrative at all. If you pull

00:02:23.710 --> 00:02:26.550
up this article, it is just a dense, incredibly

00:02:26.550 --> 00:02:29.250
bureaucratic table. Just a wall of text. A wall

00:02:29.250 --> 00:02:31.669
of acronyms, hexadecimal codes, and geometric

00:02:31.669 --> 00:02:34.310
shapes that honestly, they look like alien hieroglyphs.

00:02:34.349 --> 00:02:36.490
They really do. But the premise here is that

00:02:36.490 --> 00:02:39.689
this dry table is actually a blueprint. a blueprint

00:02:39.689 --> 00:02:42.610
of early digital communication. It's a catalog

00:02:42.610 --> 00:02:44.530
of invisible forces. That's a great way to put

00:02:44.530 --> 00:02:46.509
it. So to start at the absolute foundation here,

00:02:46.810 --> 00:02:49.990
what exactly was ISO 2047 trying to solve back

00:02:49.990 --> 00:02:52.990
in 1975? Well, to understand the solution, you

00:02:52.990 --> 00:02:55.430
really have to understand the specific hardware

00:02:55.430 --> 00:02:57.949
environment of the mid -1970s. OK, set the scene

00:02:57.949 --> 00:03:00.169
for us. We're talking about the era of terminals,

00:03:00.969 --> 00:03:03.870
specifically video display terminals, or VDTs.

00:03:04.689 --> 00:03:07.409
And they're electromechanical predecessors, like...

00:03:06.919 --> 00:03:09.680
Teleprinters. The loud clunky machines. Exactly.

00:03:10.139 --> 00:03:12.919
So ISO 2047, which was published by the International

00:03:12.919 --> 00:03:15.400
Organization for Standardization, is formally

00:03:15.400 --> 00:03:18.800
titled Information Processing Graphical Representations

00:03:18.800 --> 00:03:21.379
for the Control Characters of the 7 -bit Coded

00:03:21.379 --> 00:03:24.259
Character Set. Quite the title. Very dry. But

00:03:24.259 --> 00:03:28.099
its entire purpose was to assign a printable,

00:03:28.120 --> 00:03:31.060
visible picture to a command that is inherently

00:03:31.060 --> 00:03:33.580
unprintable. But why? I mean, why would you want

00:03:33.580 --> 00:03:36.139
to print an unprintable command? If I press backspace,

00:03:36.199 --> 00:03:39.000
I want the cursor to move backward. I don't want

00:03:39.000 --> 00:03:41.139
a picture of a backspace to appear on my screen.

00:03:41.460 --> 00:03:43.300
And normally, yes, you wouldn't. But think about

00:03:43.300 --> 00:03:45.539
what happens when something breaks. OK. Imagine

00:03:45.539 --> 00:03:48.599
you are a systems engineer in 1975. You've got

00:03:48.599 --> 00:03:51.319
this massive mainframe in one room, and it's

00:03:51.319 --> 00:03:53.400
communicating with a terminal down the hall over

00:03:53.400 --> 00:03:56.759
a noisy analog telephone line. So lots of static.

00:03:57.139 --> 00:03:59.780
Lots of potential for errors. Endless potential

00:03:59.780 --> 00:04:03.439
for errors. The terminal keeps crashing or printing

00:04:03.439 --> 00:04:06.599
garbage characters. You need to look at the raw

00:04:06.599 --> 00:04:10.560
stream of data coming over that wire to see what

00:04:10.560 --> 00:04:12.740
the mainframe is actually sending. Right, so

00:04:12.740 --> 00:04:15.080
you put it in a diagnostic mode. Exactly. But

00:04:15.080 --> 00:04:18.959
here's the catch. If you just send the raw data

00:04:18.959 --> 00:04:22.639
stream to the terminal to display... The terminal's

00:04:22.639 --> 00:04:24.579
hardware is just going to interpret those control

00:04:24.579 --> 00:04:27.579
characters. Oh, I see. If the mainframe accidentally

00:04:27.579 --> 00:04:30.199
sends a clear screen command because of line

00:04:30.199 --> 00:04:33.310
noise, your terminal clears the screen. So you

00:04:33.310 --> 00:04:35.550
lose the very evidence you were trying to examine.

00:04:35.689 --> 00:04:39.069
You lose the evidence. So engineers built a monitor

00:04:39.069 --> 00:04:41.850
mode or a transparent mode into these terminals.

00:04:41.930 --> 00:04:44.290
How does that work? In this mode, the terminal's

00:04:44.290 --> 00:04:46.269
character generator, the internal circuitry that

00:04:46.269 --> 00:04:48.829
maps a binary code to a pattern of pixels on

00:04:48.829 --> 00:04:52.050
a screen or pins on a print head, it bypasses

00:04:52.050 --> 00:04:54.230
its normal instructions. It stops obeying the

00:04:54.230 --> 00:04:56.689
commands. Right. Instead of executing the control

00:04:56.689 --> 00:04:59.189
character, it looks up a special table and draws

00:04:59.189 --> 00:05:01.490
a symbol on the screen representing that character.

00:05:02.089 --> 00:05:05.430
ISO 2047 was the international agreement on what

00:05:05.430 --> 00:05:08.589
those specific symbols should look like. It also

00:05:08.589 --> 00:05:11.110
established standard two -letter abbreviations

00:05:11.110 --> 00:05:13.329
for every single command. Just to ensure there

00:05:13.329 --> 00:05:16.189
was zero ambiguity when engineers were talking

00:05:16.189 --> 00:05:18.250
to each other. Precisely. No guessing involved.

00:05:18.389 --> 00:05:20.870
It's kind of the equivalent of a mechanic taking

00:05:20.870 --> 00:05:23.430
the cover off an engine. to watch the valves

00:05:23.430 --> 00:05:25.569
move rather than just listening to the car run.

00:05:25.990 --> 00:05:27.910
You have to expose those hidden mechanics. That's

00:05:27.910 --> 00:05:30.089
a perfect analogy. But the source material indicates

00:05:30.089 --> 00:05:32.769
this didn't just spring out of nowhere in 1975.

00:05:33.370 --> 00:05:35.149
The timeline in the article shows a much deeper

00:05:35.149 --> 00:05:37.870
lineage. Right, it does. Standardizing a global

00:05:37.870 --> 00:05:40.069
visual language takes a lot of time. I can imagine.

00:05:40.220 --> 00:05:42.740
The Wikipedia text explicitly notes that the

00:05:42.740 --> 00:05:45.000
graphics and the two -letter codes formalized

00:05:45.000 --> 00:05:48.420
in ISO 2047 were essentially carried over, completely

00:05:48.420 --> 00:05:50.699
unchanged, from much older standards. Really?

00:05:50.839 --> 00:05:53.839
How old? The primary ancestors are a European

00:05:53.839 --> 00:05:57.579
standard from 1968, known as ICMA 17, and an

00:05:57.579 --> 00:06:02.319
American standard from 1973 called ANSI X3 .32.

00:06:02.639 --> 00:06:05.339
1968, let's just... ground ourselves in that

00:06:05.339 --> 00:06:07.540
year for a second. It's early. That is incredibly

00:06:07.540 --> 00:06:10.259
early in the timeline of widespread data communication.

00:06:10.860 --> 00:06:13.300
We are talking about the Apollo program era here.

00:06:13.300 --> 00:06:16.980
Yes. The fact that the European Computer Manufacturers

00:06:16.980 --> 00:06:21.040
Association, ECM, was already recognizing the

00:06:21.040 --> 00:06:23.639
need to draw pictures of network control codes

00:06:23.639 --> 00:06:26.899
in 1968. Yeah. I mean that tells me data networks

00:06:26.899 --> 00:06:29.899
were already getting way too complex to troubleshoot

00:06:30.300 --> 00:06:32.720
by merely guessing what was going wrong. Oh,

00:06:32.759 --> 00:06:35.240
the complexity was scaling incredibly rapidly.

00:06:35.779 --> 00:06:38.079
In the late 1960s, you were transitioning from

00:06:38.079 --> 00:06:40.879
isolated mainframes running batch jobs to time

00:06:40.879 --> 00:06:43.040
-sharing systems. Where multiple users are accessing

00:06:43.040 --> 00:06:45.019
a central computer at the same time. Exactly.

00:06:45.279 --> 00:06:47.779
Via remote terminals, you suddenly had data streams

00:06:47.779 --> 00:06:50.800
intermingling, complex routing codes, and constant

00:06:50.800 --> 00:06:52.839
communication handshakes. The margin for error

00:06:52.839 --> 00:06:55.040
must have been high. Very high. And the cost

00:06:55.040 --> 00:06:57.560
of computer time was astronomical back then.

00:06:57.980 --> 00:07:00.240
If a batch job failed because a single control

00:07:00.240 --> 00:07:02.399
character was corrupted, you wasted thousands

00:07:02.399 --> 00:07:05.579
of dollars. Wow. Establishing a unified diagnostic

00:07:05.579 --> 00:07:08.079
language wasn't just an academic exercise for

00:07:08.079 --> 00:07:10.680
these guys. It was an economic necessity. And

00:07:10.680 --> 00:07:13.579
that necessity clearly resonated globally because

00:07:13.579 --> 00:07:16.240
the article lists the different national adoptions

00:07:16.240 --> 00:07:18.579
of this standard. And it kind of reads like a

00:07:18.579 --> 00:07:21.000
roll call of the emerging tech powers of the

00:07:21.000 --> 00:07:23.259
late 20th century. It really does. It mentions

00:07:23.259 --> 00:07:26.339
the standard was adopted in China as GBT 3911

00:07:26.339 --> 00:07:31.540
1983. In Korea, it was KSX1010, which the source

00:07:31.540 --> 00:07:35.500
notes was formerly known as KSC5713. And in Japan,

00:07:35.899 --> 00:07:40.920
it became JISX0209 in 1976. That geographical

00:07:40.920 --> 00:07:44.139
spread is crucial to understand. Computing was

00:07:44.139 --> 00:07:46.779
ceasing to be purely an American or European

00:07:46.779 --> 00:07:49.480
domain. Right. For an IBM mainframe in New York

00:07:49.480 --> 00:07:51.360
to eventually communicate with a terminal in

00:07:51.360 --> 00:07:54.100
Tokyo, the foundational layers of how data was

00:07:54.100 --> 00:07:56.040
structured and how errors were visualized had

00:07:56.040 --> 00:07:57.910
to be identical. It's the digital equivalent

00:07:57.910 --> 00:07:59.949
of agreeing on international maritime flags.

00:08:00.290 --> 00:08:02.509
Exactly. A universal language for ships passing

00:08:02.509 --> 00:08:04.329
in the night, or in this case, packets of data.

00:08:04.470 --> 00:08:06.470
But there's a specific detail about that Japanese

00:08:06.470 --> 00:08:07.930
standard and the source that really caught my

00:08:07.930 --> 00:08:13.029
eye. It says JISX0209 .1976 was officially abolished

00:08:13.029 --> 00:08:16.430
on January 20, 2010. January 2010. That is quite

00:08:16.430 --> 00:08:18.930
a late date for something rooted in 1960s terminal

00:08:18.930 --> 00:08:22.029
debugging. It is incredibly late. Right. I mean,

00:08:22.149 --> 00:08:25.149
by 2010, the iPhone had been out for three years.

00:08:25.370 --> 00:08:28.709
We were firmly in the era of high -definition

00:08:28.709 --> 00:08:32.070
touch screens and cloud computing. Yet somewhere

00:08:32.070 --> 00:08:34.610
in the Japanese industrial standards bureaucracy,

00:08:35.090 --> 00:08:37.230
a committee finally looked at a document detailing

00:08:37.230 --> 00:08:40.210
how to draw tiny geometric shapes for 7 -bit

00:08:40.210 --> 00:08:43.029
teleprinter codes and decided, yep, it's finally

00:08:43.029 --> 00:08:45.330
time to take this off the books. It speaks volumes

00:08:45.330 --> 00:08:47.889
about the concept of technical debt and just

00:08:47.889 --> 00:08:50.509
the sheer inertia of infrastructure standards.

00:08:50.690 --> 00:08:52.909
Once it's in print, it stays in print. Well,

00:08:52.909 --> 00:08:54.990
when a standard is embedded into the firmware

00:08:54.990 --> 00:08:57.610
of millions of devices worldwide, you can't just

00:08:57.610 --> 00:08:59.750
unpublish it because it feels old. Good point.

00:08:59.850 --> 00:09:01.990
There might be a shipping company or a banking

00:09:01.990 --> 00:09:04.690
back end somewhere still utilizing a legacy system

00:09:04.690 --> 00:09:08.529
that references that specific 1976 document for

00:09:08.529 --> 00:09:10.950
compliance. Right, some dusty server rack in

00:09:10.950 --> 00:09:14.509
a basement. Exactly. Standards bodies are notoriously

00:09:14.509 --> 00:09:17.570
conservative, and rightly so. They only abolish

00:09:17.570 --> 00:09:20.169
a standard when they are absolutely certain its

00:09:20.169 --> 00:09:22.649
removal won't cause a catastrophic ripple effect

00:09:22.649 --> 00:09:25.690
in legacy systems. So if the Japanese standard

00:09:25.690 --> 00:09:28.350
was abolished in 2010 and the source notes that

00:09:28.350 --> 00:09:31.490
the graphical symbols of ISO 2047 are generally

00:09:31.490 --> 00:09:35.389
considered outdated and rare today, what replaced

00:09:35.389 --> 00:09:37.429
them? That's a great question. If a programmer

00:09:37.429 --> 00:09:40.230
today needs to look at a raw data stream and

00:09:40.230 --> 00:09:42.990
spot an invisible control character, how do they

00:09:42.990 --> 00:09:45.350
do it without these specific geometric symbols?

00:09:45.809 --> 00:09:48.529
The need to debug data streams definitely hasn't

00:09:48.529 --> 00:09:52.230
gone away. but our displays are no longer constrained

00:09:52.230 --> 00:09:54.629
by low -resolution character generators. We have

00:09:54.629 --> 00:09:58.190
millions of pixels now. Right. Modern tools typically

00:09:58.190 --> 00:10:00.889
rely on text -based representations. The source

00:10:00.889 --> 00:10:04.669
mentions two common methods. First, the ISOIEC

00:10:04.669 --> 00:10:07.789
646 three -letter abbreviations. Okay, what does

00:10:07.789 --> 00:10:10.000
that look like? So instead of drawing a strange

00:10:10.000 --> 00:10:12.480
symbol for the escape command, a modern text

00:10:12.480 --> 00:10:14.860
editor in debug mode will simply display the

00:10:14.860 --> 00:10:17.419
letters ESC in a little colored box. Oh, that

00:10:17.419 --> 00:10:19.580
makes total sense. Much more readable for a modern

00:10:19.580 --> 00:10:21.740
programmer than trying to memorize abstract shapes.

00:10:21.980 --> 00:10:23.840
Precisely. You don't have to consult a manual

00:10:23.840 --> 00:10:26.720
to know what ESC means. The other common method

00:10:26.720 --> 00:10:29.200
mentioned is carrot notation. Carrot notation.

00:10:29.460 --> 00:10:32.580
Yes. This is highly prevalent in Unix and Linux

00:10:32.580 --> 00:10:35.500
environments. You use an upward pointing carrot

00:10:35.500 --> 00:10:38.039
symbol followed by a letter. I've seen that.

00:10:38.299 --> 00:10:40.519
For instance, the escape character, which is

00:10:40.519 --> 00:10:43.320
the 27th character in the ASCII table, is represented

00:10:43.320 --> 00:10:46.960
as carrot bracket. A line feed is carrot J. Carrot

00:10:46.960 --> 00:10:49.500
J. It's a shorthand that maps the invisible control

00:10:49.500 --> 00:10:52.460
codes to the visible alphabetical keys on a standard

00:10:52.460 --> 00:10:55.639
keyboard. So we traded custom geometry for practical

00:10:55.639 --> 00:10:57.639
typography. We did. It's much more efficient.

00:10:58.259 --> 00:11:01.120
But for the duration of this deep dive, I want

00:11:01.120 --> 00:11:04.519
us to live in that era of custom geometry. I

00:11:04.519 --> 00:11:06.879
want to look closely at the logic of these glyphs.

00:11:06.940 --> 00:11:09.720
because they are an incredible window into how

00:11:09.720 --> 00:11:12.879
engineers conceptualize data when data was still

00:11:12.879 --> 00:11:15.440
a very new concept. It's a fascinating way to

00:11:15.440 --> 00:11:17.500
look at it. Let's look at the very first entry

00:11:17.500 --> 00:11:21.500
in the standards table, hexadecimal 00. Hex 00,

00:11:21.639 --> 00:11:24.139
the very bottom of the 7 -bit architecture. A

00:11:24.139 --> 00:11:27.299
common abbreviation is NUL. The full name is

00:11:27.299 --> 00:11:30.159
simply null. Yes. Now the concept of null is

00:11:30.159 --> 00:11:31.919
philosophically interesting before you even get

00:11:31.919 --> 00:11:34.519
to the computing part. Very true. It's not a

00:11:34.519 --> 00:11:37.090
space. A space is a tangible thing. It moves

00:11:37.090 --> 00:11:40.570
the cursor forward. Null is the absolute absence

00:11:40.570 --> 00:11:43.129
of value. But how did that actually function

00:11:43.129 --> 00:11:46.029
in early hardware? Well, in the context of the

00:11:46.029 --> 00:11:48.309
early punched paper tape systems, which were

00:11:48.309 --> 00:11:50.889
heavily used for data storage and terminal input,

00:11:51.419 --> 00:11:54.580
Null was incredibly literal. Literally nothing.

00:11:54.820 --> 00:11:57.820
Exactly. A paper tape represents data by punching

00:11:57.820 --> 00:12:00.779
holes in a row. A seven -bit code meant there

00:12:00.779 --> 00:12:04.220
were seven possible positions for a hole across

00:12:04.220 --> 00:12:06.419
the width of the tape. OK, I'm picturing that.

00:12:06.519 --> 00:12:08.899
For the NUL character, the punch mechanism simply

00:12:08.899 --> 00:12:12.179
didn't fire. A row with absolutely zero holes

00:12:12.179 --> 00:12:14.679
punched in it was a null. So it was just blank

00:12:14.679 --> 00:12:16.940
tape? Just blank tape. Why would you need to

00:12:16.940 --> 00:12:18.580
send blank tape? What's the point of sending

00:12:18.580 --> 00:12:22.090
nothing? Primarily for mechanical timing. Mechanical

00:12:22.090 --> 00:12:24.190
timing? Remember, these were heavy, physical

00:12:24.190 --> 00:12:27.129
machines. If a command told the teleprinter's

00:12:27.129 --> 00:12:29.750
heavy metal carriage to return to the left margin,

00:12:30.549 --> 00:12:32.889
that physical movement took a fraction of a second.

00:12:32.990 --> 00:12:34.929
Because it's a heavy piece of metal flying across

00:12:34.929 --> 00:12:37.669
the machine. Right. If the computer kept sending

00:12:37.669 --> 00:12:40.429
text data during that fraction of a second, the

00:12:40.429 --> 00:12:42.450
letters would print randomly across the paper

00:12:42.450 --> 00:12:44.629
as the carriage was flying backwards. Oh, wow.

00:12:44.789 --> 00:12:46.750
It would just streak across the page. It would

00:12:46.750 --> 00:12:49.110
be a mess. So the computer would send the carriage

00:12:49.110 --> 00:12:51.230
return command and then immediately send a stream

00:12:51.230 --> 00:12:53.750
of null characters. I see. The tape reader would

00:12:53.750 --> 00:12:56.289
read the blank tape, do absolutely nothing, and

00:12:56.289 --> 00:12:58.769
effectively buy time for the mechanical carriage

00:12:58.769 --> 00:13:01.909
to finish its journey. Null was a digital pause

00:13:01.909 --> 00:13:04.470
button. That's a brilliant way to frame it. A

00:13:04.470 --> 00:13:06.639
digital pause button. button? Yeah. But here

00:13:06.639 --> 00:13:09.519
is the challenge for the ISO 2047 committee.

00:13:10.419 --> 00:13:12.799
How do you draw a picture of a pause button?

00:13:13.220 --> 00:13:15.779
It's a paradox. How do you visualize nothingness?

00:13:16.779 --> 00:13:18.820
According to the table, the official symbol they

00:13:18.820 --> 00:13:23.820
chose for NUL is a tiny empty box. U plus 2395

00:13:23.820 --> 00:13:26.639
in modern Unicode. And the official two -letter

00:13:26.639 --> 00:13:30.950
abbreviation is NU. An empty box is a very pragmatic

00:13:30.950 --> 00:13:33.149
solution, really. And if you want to show that

00:13:33.149 --> 00:13:35.230
a character space is occupied by a command that

00:13:35.230 --> 00:13:37.210
does nothing, you have to provide a boundary

00:13:37.210 --> 00:13:39.129
for that nothingness. Right, because otherwise

00:13:39.129 --> 00:13:41.870
it's just blank space on the printout. Exactly.

00:13:42.190 --> 00:13:44.909
If they just left it blank, the debugging engineer

00:13:44.909 --> 00:13:46.990
wouldn't know if the system received a null,

00:13:47.190 --> 00:13:50.350
a space, or if the printer simply dropped a character

00:13:50.350 --> 00:13:52.669
due to a fault. That distinction is critical

00:13:52.669 --> 00:13:55.110
when you're debugging. It is. The empty frame

00:13:55.110 --> 00:13:57.190
proves the character was successfully received

00:13:57.190 --> 00:14:00.009
and categorized as empty. It's proof of abscess.

00:14:00.029 --> 00:14:03.590
That's so clever. But standardizing these symbols

00:14:03.590 --> 00:14:06.649
wasn't always a clean, logical process. Far from

00:14:06.649 --> 00:14:08.929
it. We see evidence in the source that there

00:14:08.929 --> 00:14:11.649
was friction and debate over how to represent

00:14:11.649 --> 00:14:14.639
certain concepts. There's a very specific, almost

00:14:14.639 --> 00:14:17.159
tedious footnote regarding the character at XO5.

00:14:17.700 --> 00:14:21.039
The inquiry character. Ah, yes, ENQ. The common

00:14:21.039 --> 00:14:24.220
abbreviation is ENQ, and its primary visual glyph

00:14:24.220 --> 00:14:27.799
in ISO 2047 is a cross shape. It looks very similar

00:14:27.799 --> 00:14:30.100
to a Maltese cross. That's right. But the footnote

00:14:30.100 --> 00:14:32.440
points out that the standard also provides a

00:14:32.440 --> 00:14:34.240
fallback glyph. If you couldn't draw the cross,

00:14:34.580 --> 00:14:36.480
you were allowed to use a box with an X inside

00:14:36.480 --> 00:14:38.820
it. Yes. And here is the fascinating historical

00:14:38.820 --> 00:14:42.299
wrinkle. The older 1968 European Standard, Irene

00:14:42.299 --> 00:14:45.500
17, only listed that box decks. It didn't feature

00:14:45.500 --> 00:14:47.740
the cross shape at all. That seemingly minor

00:14:47.740 --> 00:14:50.620
detail is actually a massive clue about how standard

00:14:50.620 --> 00:14:54.200
-setting bodies function. Between 1968 in Europe

00:14:54.200 --> 00:14:57.460
and 1975 on the global stage, a debate occurred.

00:14:58.019 --> 00:14:59.639
But why do you think they felt the need to change

00:14:59.639 --> 00:15:02.759
it? A box deck seems perfectly clear. It means

00:15:02.940 --> 00:15:05.179
Hey, look here. We have to speculate slightly

00:15:05.179 --> 00:15:07.139
based on the hardware constraints of the time,

00:15:07.519 --> 00:15:10.419
but the most likely culprit is visual clarity

00:15:10.419 --> 00:15:12.919
on low -resolution displays. Visual clarity.

00:15:12.980 --> 00:15:16.659
Think about it. A boxed X requires drawing a

00:15:16.659 --> 00:15:18.659
square and then drawing diagonal lines through

00:15:18.659 --> 00:15:21.710
it. Yeah. On an early dot matrix screen, which

00:15:21.710 --> 00:15:24.570
might only use a 5 pixel by 7 pixel grid for

00:15:24.570 --> 00:15:27.570
a single character, drawing a box with an X in

00:15:27.570 --> 00:15:30.850
it often results in a solid, unreadable smudge.

00:15:31.009 --> 00:15:33.309
Oh, because the pixels just bleed together. Exactly.

00:15:33.389 --> 00:15:35.190
You don't have enough resolution to render the

00:15:35.190 --> 00:15:38.090
distinct lines. A distinct cross shape, however,

00:15:38.350 --> 00:15:41.389
requires fewer pixels and relies on stark horizontal

00:15:41.389 --> 00:15:44.210
and vertical lines. Which CRT monitors handle

00:15:44.210 --> 00:15:46.990
much better. Much better. It's just easier to

00:15:46.990 --> 00:15:49.279
draw on a primitive screen. So the global committee

00:15:49.279 --> 00:15:51.480
probably realized the European design was too

00:15:51.480 --> 00:15:53.519
complex for cheap hardware. But they couldn't

00:15:53.519 --> 00:15:55.259
just delete it. They couldn't. You can't just

00:15:55.259 --> 00:15:57.960
invalidate the older European standard entirely

00:15:57.960 --> 00:16:00.039
because there was already hardware out in the

00:16:00.039 --> 00:16:03.700
field manufactured between 1968 and 1975 that

00:16:03.700 --> 00:16:06.500
used the boxed X in its ROM chips. So you'd break

00:16:06.500 --> 00:16:08.820
compatibility if you just erased it. Exactly.

00:16:09.360 --> 00:16:12.429
So the ISO committee compromises. They promote

00:16:12.429 --> 00:16:14.909
the clearer cross -shape to the primary status,

00:16:15.409 --> 00:16:17.830
but they enshrine the boxed X as an official

00:16:17.830 --> 00:16:20.970
fallback to ensure backward compatibility. That's

00:16:20.970 --> 00:16:23.649
amazing. It's a bureaucratic fossil preserved

00:16:23.649 --> 00:16:26.169
right there in the standard. It really emphasizes

00:16:26.169 --> 00:16:28.330
that these aren't laws of physics we're looking

00:16:28.330 --> 00:16:31.190
at. They are human agreements subject to all

00:16:31.190 --> 00:16:33.529
the messy realities of hardware manufacturing

00:16:33.529 --> 00:16:36.090
and committee negotiations. Completely. Let's

00:16:36.090 --> 00:16:38.860
move deeper into the table. If null is about

00:16:38.860 --> 00:16:41.259
nothingness, the next cluster of characters we

00:16:41.259 --> 00:16:44.759
see is intensely structural. I look at this block

00:16:44.759 --> 00:16:47.580
of codes and I see the absolute necessity for

00:16:47.580 --> 00:16:49.899
rigidity in early networking. We're talking about

00:16:49.899 --> 00:16:52.580
Hexo V1 through Hexo 4 now. Exactly. Let's look

00:16:52.580 --> 00:16:54.759
at those. These are the communication control

00:16:54.759 --> 00:16:57.200
characters. They manage the flow and structure

00:16:57.200 --> 00:17:01.379
of the data payload. At Hexo 1, we have SOH or

00:17:01.379 --> 00:17:03.899
Start of Heading. Start of Heading. Hexo 2 is

00:17:03.899 --> 00:17:08.390
STX Start of Text. 0x03 is ETX, end of text,

00:17:08.789 --> 00:17:12.569
and 0x04 is EOT, end of transmission. When I

00:17:12.569 --> 00:17:14.910
see these, I immediately think of how we use

00:17:14.910 --> 00:17:17.289
the Internet today. If I send an email, I just

00:17:17.289 --> 00:17:19.190
type the message, hit send, and I never think

00:17:19.190 --> 00:17:21.190
about how it gets there. It's seamless for the

00:17:21.190 --> 00:17:23.890
user today. But these codes suggest that in the

00:17:23.890 --> 00:17:27.210
1970s, the application, or even the programmer,

00:17:27.710 --> 00:17:29.970
had to manually build the envelope for the data.

00:17:30.140 --> 00:17:32.180
That's a very accurate analogy, building the

00:17:32.180 --> 00:17:34.839
envelope. In early network topologies, data didn't

00:17:34.839 --> 00:17:37.880
flow in a continuous unstructured stream. It

00:17:37.880 --> 00:17:40.420
had to be meticulously packetized. Every piece

00:17:40.420 --> 00:17:42.660
had its place. Exactly. The start of heading

00:17:42.660 --> 00:17:45.200
SOH character acted as a loud announcement to

00:17:45.200 --> 00:17:47.920
every switch and router on the network. It essentially

00:17:47.920 --> 00:17:50.400
said, attention, the data following this character

00:17:50.400 --> 00:17:53.059
is not the message itself. It is routing information.

00:17:53.200 --> 00:17:54.759
Like the address on the outside of the envelope.

00:17:55.000 --> 00:17:57.240
Exactly. It contains the address of the destination

00:17:57.240 --> 00:17:59.420
terminal. So the machines would read the heading,

00:17:59.759 --> 00:18:02.039
to figure out where to send the data, and then

00:18:02.039 --> 00:18:03.920
they would encounter the STX, the start of text

00:18:03.920 --> 00:18:06.440
character. Precisely. STX told the receiving

00:18:06.440 --> 00:18:09.519
machine, the routing information is over. Everything

00:18:09.519 --> 00:18:12.059
from here on out is the actual payload you need

00:18:12.059 --> 00:18:14.599
to print or display for the human operator. The

00:18:14.599 --> 00:18:17.119
actual letter inside the envelope. Right. And

00:18:17.119 --> 00:18:19.299
this would continue until the machine received

00:18:19.299 --> 00:18:21.559
ETX, the end of text character, which closed

00:18:21.559 --> 00:18:24.759
the payload. And finally, EOT, end of transmission.

00:18:25.049 --> 00:18:27.670
which I imagine was the definitive sign off,

00:18:27.890 --> 00:18:29.829
like, I am dropping the connection now. Yes.

00:18:30.029 --> 00:18:32.289
EUT was the command to disconnect the circuit

00:18:32.289 --> 00:18:35.150
entirely, hang up the phone, basically. Visually,

00:18:35.410 --> 00:18:39.569
the ISO 2047 symbols for these four are quite

00:18:39.569 --> 00:18:42.710
clever. I'm looking at them here. SOH, the start

00:18:42.710 --> 00:18:44.789
of the heading, looks like the top left corner

00:18:44.789 --> 00:18:48.650
of a box. Yes. STX is an upside down T. ETX,

00:18:48.789 --> 00:18:50.710
the end of the text, is the bottom right corner

00:18:50.710 --> 00:18:53.750
of a box. You can literally see the visual framing

00:18:53.750 --> 00:18:55.789
of the data packet. It's very architectural.

00:18:56.309 --> 00:18:58.769
The geometric shapes provide a distinct visual

00:18:58.769 --> 00:19:01.109
boundary when reviewing a diagnostic printout.

00:19:01.549 --> 00:19:03.750
You can see the start and end of the blocks at

00:19:03.750 --> 00:19:06.190
a glance. It's all very rigid and mathematical,

00:19:06.710 --> 00:19:09.789
but... nested right next to these structural

00:19:09.789 --> 00:19:13.069
commands is my absolute favorite detail of this

00:19:13.069 --> 00:19:15.089
entire Wikipedia article. Oh, I know what you're

00:19:15.089 --> 00:19:18.029
gonna say. It completely shatters that cold mathematical

00:19:18.029 --> 00:19:20.509
feeling and injects a bizarre sense of human

00:19:20.509 --> 00:19:23.529
conversation into the network. It involved that

00:19:23.529 --> 00:19:25.849
inquiry character we were just discussing, the

00:19:25.849 --> 00:19:28.289
one with the cross and the box decks at hex 05.

00:19:28.450 --> 00:19:30.990
It is a striking historical note. According to

00:19:30.990 --> 00:19:33.329
the source, If you were sitting at a teletype

00:19:33.329 --> 00:19:35.930
Model 33, which was arguably the most iconic

00:19:35.930 --> 00:19:39.230
and ubiquitous terminal of the era, the physical

00:19:39.230 --> 00:19:42.109
key on the keyboard for this inquiry command

00:19:42.109 --> 00:19:44.609
wasn't labeled E and Q. No, it wasn't. It was

00:19:44.609 --> 00:19:47.630
labeled W R U. And the article helpfully translates

00:19:47.630 --> 00:19:50.930
that for us. W R U stood for Who Are You? Who

00:19:50.930 --> 00:19:54.230
are you? It is a direct literal translation of

00:19:54.230 --> 00:19:56.369
what the network handshake protocol was attempting

00:19:56.369 --> 00:19:58.450
to achieve. I find that endlessly fascinating.

00:19:58.730 --> 00:20:00.609
I'm imagining a computer operator in a noisy

00:20:00.609 --> 00:20:02.890
room needing to verify a connection to a terminal

00:20:02.890 --> 00:20:05.309
in another city. They don't run a diagnostic

00:20:05.309 --> 00:20:08.150
script. They reach out and press a physical button

00:20:08.150 --> 00:20:10.089
that asks the machine on the other end of the

00:20:10.089 --> 00:20:13.009
telephone wire, who are you? It's very personal.

00:20:13.150 --> 00:20:15.470
It is. It is an interrogation happening over

00:20:15.470 --> 00:20:18.190
copper wires. To understand why this was necessary.

00:20:18.440 --> 00:20:20.920
You really have to understand the lack of security

00:20:20.920 --> 00:20:23.940
and certainty in early dial -up networks like

00:20:23.940 --> 00:20:26.059
the Telex system. It was basically the Wild West.

00:20:26.220 --> 00:20:28.920
It really was. You were literally dialing a phone

00:20:28.920 --> 00:20:31.700
number to connect your terminal to another terminal.

00:20:32.059 --> 00:20:34.380
There were no digital certificates. There was

00:20:34.380 --> 00:20:37.339
no cryptographic authentication. It's a phone

00:20:37.339 --> 00:20:39.680
connection. Right. If you dialed a wrong digit

00:20:39.680 --> 00:20:42.500
or if the telephone exchange misrouted your call,

00:20:42.680 --> 00:20:45.140
you might connect to a terminal in a completely

00:20:45.140 --> 00:20:47.599
different company. And if you just started transmitting

00:20:47.599 --> 00:20:50.349
a financial report right away, you've just committed

00:20:50.349 --> 00:20:53.289
a massive data breach. Exactly. You've just handed

00:20:53.289 --> 00:20:56.970
your secrets to a stranger. So standard operating

00:20:56.970 --> 00:20:59.690
procedure dictated that before you sent any payload,

00:20:59.950 --> 00:21:03.890
you pressed the WRU key. This sent the E &Q character

00:21:03.890 --> 00:21:05.990
down the line. And what happens on the other

00:21:05.990 --> 00:21:08.410
side? The receiving teletype, upon receiving

00:21:08.410 --> 00:21:11.309
an E &Q, was hardwired to respond. It didn't

00:21:11.309 --> 00:21:13.250
require human intervention on the receiving end

00:21:13.250 --> 00:21:15.690
at all. Oh, so the person on the other end didn't

00:21:15.690 --> 00:21:19.390
have to type I am Terminal 5. No. Inside the

00:21:19.390 --> 00:21:22.309
receiving teletype was a mechanical component

00:21:22.309 --> 00:21:25.250
called an answerback drum. An answerback drum?

00:21:25.430 --> 00:21:29.349
A physical drum? Yes. It was a literal rotating

00:21:29.349 --> 00:21:32.849
cylinder with rows of small metal pegs. Like

00:21:32.849 --> 00:21:35.730
a music box. Exactly like a music box. When the

00:21:35.730 --> 00:21:38.569
machine was installed, a technician would physically

00:21:38.569 --> 00:21:42.190
break off specific pegs to encode the machine's

00:21:42.190 --> 00:21:44.430
unique identifier. So they programmed it with

00:21:44.430 --> 00:21:47.049
pliers? Literally. They'd encode perhaps a company

00:21:47.049 --> 00:21:49.730
abbreviation and a terminal number. When the

00:21:49.730 --> 00:21:52.289
E &Q signal arrived, it triggered a solenoid

00:21:52.289 --> 00:21:55.309
that spun this drum. And as it spin? As the drum

00:21:55.309 --> 00:21:58.049
spun, the remaining pegs tripped contacts that

00:21:58.049 --> 00:21:59.950
transmitted that unique identifier back down

00:21:59.950 --> 00:22:02.529
the phone line. That is incredible. So the receiving

00:22:02.529 --> 00:22:04.970
machine physically played its own name back across

00:22:04.970 --> 00:22:07.069
the wire. That is exactly how it functioned.

00:22:07.130 --> 00:22:08.829
And the operator sitting at the transmitting

00:22:08.829 --> 00:22:11.269
terminal would see that unique identifier print

00:22:11.269 --> 00:22:13.569
out on their own paper roll. And if it matches?

00:22:13.900 --> 00:22:16.140
If it matched the machine they intended to reach,

00:22:16.480 --> 00:22:18.680
they knew it was safe to transmit the STX and

00:22:18.680 --> 00:22:23.099
the payload. Who are you? Was a fundamental security

00:22:23.099 --> 00:22:26.140
protocol built out of spinning metal and solenoids.

00:22:26.380 --> 00:22:29.380
It's just so tactile. And it makes you view modern

00:22:29.380 --> 00:22:31.160
networking through a completely different lens.

00:22:31.200 --> 00:22:33.539
It really does. When I open a web browser and

00:22:33.539 --> 00:22:36.339
connect to my bank, there is an immense amount

00:22:36.339 --> 00:22:39.559
of cryptographic handshaking happening in milliseconds.

00:22:40.319 --> 00:22:42.740
TLS certificates are being verified, public keys

00:22:42.740 --> 00:22:45.779
are being exchanged. But conceptually, at the

00:22:45.779 --> 00:22:48.900
very bottom of the stack, my laptop is still

00:22:48.900 --> 00:22:50.900
just walking up to the bank server and asking,

00:22:51.119 --> 00:22:53.839
who are you? And demanding proof. The fundamentals

00:22:53.839 --> 00:22:55.680
haven't changed. We just automated the music

00:22:55.680 --> 00:22:57.839
box drum. It is the exact same paradigm, just

00:22:57.839 --> 00:23:00.079
abstracted behind millions of lines of code.

00:23:00.700 --> 00:23:03.160
The Teletype Model 33 just made it wonderfully

00:23:03.160 --> 00:23:05.869
explicit for the human operator. Well, since

00:23:05.869 --> 00:23:07.890
we are talking about spinning drums and solenoids,

00:23:08.089 --> 00:23:10.809
let's lean into that. Because as abstract as

00:23:10.809 --> 00:23:13.250
start of heading is, the reality is that many

00:23:13.250 --> 00:23:15.890
of these 7 -bit codes were designed to control

00:23:15.890 --> 00:23:19.329
heavy physical machinery. And what's wild is

00:23:19.329 --> 00:23:22.190
how much of that physical vocabulary has survived

00:23:22.190 --> 00:23:25.509
into our modern glass screen era. Let's look

00:23:25.509 --> 00:23:29.190
at hex 07. The common abbreviation is BEL. The

00:23:29.190 --> 00:23:32.549
full name is Bell. And in 1975, that wasn't a

00:23:32.549 --> 00:23:34.849
metaphor. It was a literal command to ring a

00:23:34.849 --> 00:23:37.650
bell. Explain the use case for that. I mean,

00:23:37.730 --> 00:23:39.809
why does a computer need to ring a bell? Remember

00:23:39.809 --> 00:23:42.509
that early data processing often involves long

00:23:42.509 --> 00:23:45.490
periods of waiting? An operator might start a

00:23:45.490 --> 00:23:47.809
batch job that takes two hours to compile on

00:23:47.809 --> 00:23:49.910
the mainframe. Right. They aren't going to sit

00:23:49.910 --> 00:23:52.210
and stare at a silent terminal for two hours.

00:23:52.269 --> 00:23:54.069
They might be in the next room sorting punch

00:23:54.069 --> 00:23:55.930
cards or getting a coffee. They seem to need

00:23:55.930 --> 00:23:58.809
an alert. The mainframe needed a way to alert

00:23:58.809 --> 00:24:01.569
the operator when the job was done or, more importantly,

00:24:01.730 --> 00:24:04.369
when the job encountered a fatal error and halted.

00:24:04.359 --> 00:24:06.980
So it sends a BEL character down the wire? Yes.

00:24:07.279 --> 00:24:09.900
Upon receiving Hexo 7, the terminal would trigger

00:24:09.900 --> 00:24:13.039
a circuit that rang an actual 110 volt mechanical

00:24:13.039 --> 00:24:16.200
bell inside the casing. Like a fire alarm? Essentially.

00:24:16.640 --> 00:24:19.079
It was an audible alarm built directly into the

00:24:19.079 --> 00:24:22.119
tech stream. You could embed BEL characters into

00:24:22.119 --> 00:24:24.019
your code so the machine would literally chime

00:24:24.019 --> 00:24:27.299
when it reached certain milestones. The ISO 2047

00:24:27.299 --> 00:24:29.900
symbol for it is great, too. In modern Unicode,

00:24:29.960 --> 00:24:33.059
it's U plus 237E, and it looks a bit like an

00:24:33.059 --> 00:24:35.740
old -fashioned tell deskbell with little vibration

00:24:35.740 --> 00:24:38.039
lines coming off it. It's a very charming glyph.

00:24:38.220 --> 00:24:40.460
But the physical control goes far beyond just

00:24:40.460 --> 00:24:42.960
making noise. It dictates the entire geometry

00:24:42.960 --> 00:24:45.559
of how text was laid out on paper. I'm looking

00:24:45.559 --> 00:24:47.680
at the list of format effectors. Ah, the format

00:24:47.680 --> 00:24:50.759
effectors. At hex 08, we have BS, backspace,

00:24:51.559 --> 00:24:55.240
HT at hex 09, horizontal tabulation, LF at hex

00:24:55.240 --> 00:24:59.460
0A, line feed, BT at hex 0B, vertical tabulation.

00:24:59.680 --> 00:25:04.720
FF at 0xC, form feed, and CR at 0xD, carriage

00:25:04.720 --> 00:25:06.910
return. These commands are direct descendants

00:25:06.910 --> 00:25:09.029
of the mechanical typewriter. A computer screen

00:25:09.029 --> 00:25:11.069
today can place a character anywhere instantly

00:25:11.069 --> 00:25:13.130
using coordinate geometry. Just light up a pixel.

00:25:13.410 --> 00:25:15.930
Exactly. But a teleprinter operates under strict

00:25:15.930 --> 00:25:18.390
physical laws. The printhead is a heavy block

00:25:18.390 --> 00:25:20.390
of metal. It moves sequentially left to right.

00:25:20.750 --> 00:25:22.849
The paper feeds linearly from a roll or a stack.

00:25:23.130 --> 00:25:25.009
Let's break down the distinction between carriage

00:25:25.009 --> 00:25:27.650
return and line feed. Because I think a lot of

00:25:27.650 --> 00:25:30.990
people today use the enter or return key on their

00:25:30.990 --> 00:25:33.829
keyboard and assume it's one single action. Just

00:25:33.829 --> 00:25:35.829
go to the next line. It feels like one action

00:25:35.829 --> 00:25:39.970
to us now. But historically it was two very distinct

00:25:39.970 --> 00:25:42.390
physical movements. It's a crucial distinction.

00:25:42.759 --> 00:25:46.519
Carriage return, hex 0D, specifically commanded

00:25:46.519 --> 00:25:48.920
the heavy printing mechanism, the carriage, to

00:25:48.920 --> 00:25:51.079
slide all the way back to the left margin. Just

00:25:51.079 --> 00:25:53.319
horizontal movement. Yes, but it did not move

00:25:53.319 --> 00:25:55.779
the paper. If you only sent a carriage return,

00:25:56.160 --> 00:25:58.420
the next line of text would print directly on

00:25:58.420 --> 00:26:00.839
top of the previous line. Oh man, so you just

00:26:00.839 --> 00:26:03.200
get an illegible black smudge of ink. Exactly,

00:26:03.259 --> 00:26:04.940
you're just striking the same piece of paper

00:26:04.940 --> 00:26:07.400
over and over. So you needed the line feed, hex

00:26:07.400 --> 00:26:11.519
0A. Yes. Line feed commanded the platen, the

00:26:11.519 --> 00:26:14.240
roller holding the paper, to rotate exactly one

00:26:14.240 --> 00:26:17.079
notch, advancing the piper up by one line. Vertical

00:26:17.079 --> 00:26:19.200
movement. Therefore, to start a new line of text

00:26:19.200 --> 00:26:21.160
correctly, the computer had to transmit both

00:26:21.160 --> 00:26:23.339
characters. A carriage returned to move left

00:26:23.339 --> 00:26:26.079
and a line feed to move down, often abbreviated

00:26:26.079 --> 00:26:30.539
as CRLF. CRLF. And the ghosts of that physical

00:26:30.539 --> 00:26:33.539
necessity still haunts us today. It does. It

00:26:33.539 --> 00:26:36.440
causes headaches even now. It is the reason why.

00:26:36.730 --> 00:26:40.250
For decades, text files created on a Windows

00:26:40.250 --> 00:26:43.529
machine looked broken when opened on a Unix or

00:26:43.529 --> 00:26:46.069
Linux machine, and vice versa. The great new

00:26:46.069 --> 00:26:49.009
line format war. Because Windows operating systems

00:26:49.009 --> 00:26:52.210
historically used the two -character CRLF sequence

00:26:52.210 --> 00:26:55.509
to mark a new line mimicking the physical teleprinter.

00:26:55.890 --> 00:26:58.569
While Unix -based systems decided that was inefficient.

00:26:58.750 --> 00:27:01.170
Right. They just used a single line feed character

00:27:01.170 --> 00:27:03.930
to represent a new line. We had a digital format

00:27:03.930 --> 00:27:07.069
war purely because of the ghost of a 1960s mechanical

00:27:07.069 --> 00:27:10.009
carriage. It is the ultimate example of skeuomorphism.

00:27:10.509 --> 00:27:12.589
We retained the data structure of the physical

00:27:12.589 --> 00:27:15.150
mechanism long after the mechanism itself was

00:27:15.150 --> 00:27:18.230
replaced by pixels on a screen. But visualizing

00:27:18.230 --> 00:27:20.450
these physical movements for the purpose of debugging.

00:27:20.880 --> 00:27:23.539
proved to be incredibly tricky for the ISO committee.

00:27:23.880 --> 00:27:26.279
Very tricky. The standard really seems to struggle

00:27:26.279 --> 00:27:28.519
when it comes to the backspace character. Let's

00:27:28.519 --> 00:27:30.720
look at the footnotes for hex 08. The problem

00:27:30.720 --> 00:27:33.220
with backspace is representing kinetic energy

00:27:33.220 --> 00:27:36.299
in a static single character space. Right, because

00:27:36.299 --> 00:27:39.039
the command means move the print head one position

00:27:39.039 --> 00:27:41.960
to the left. Which is easy to do mechanically,

00:27:42.039 --> 00:27:44.480
but hard to draw if you can only take up one

00:27:44.480 --> 00:27:47.180
space on the grid. Exactly. The footnote in the

00:27:47.180 --> 00:27:49.930
standard acknowledges this difficulty. It states

00:27:49.930 --> 00:27:52.990
that a best -fit approximation must be used.

00:27:53.309 --> 00:27:55.529
Its primary suggestion is an arrow pointing to

00:27:55.529 --> 00:27:58.390
the upper left. Okay. But then the source lists

00:27:58.390 --> 00:28:01.890
an entire array of alternative, defensible choices.

00:28:02.789 --> 00:28:05.210
It suggests hooked arrows, arrows that curve

00:28:05.210 --> 00:28:07.910
back on themselves in a U -turn shape, arrows

00:28:07.910 --> 00:28:10.670
with a right -angle bend pointing left, arrows

00:28:10.670 --> 00:28:12.990
curving downwards and leftwards. It's almost

00:28:12.990 --> 00:28:15.230
comical. They're throwing every possible curved

00:28:15.230 --> 00:28:17.589
line at the problem. Why was a simple straight

00:28:17.589 --> 00:28:20.589
arrow pointing left Not good enough. Because

00:28:20.589 --> 00:28:23.450
a simple straight arrow pointing left is already

00:28:23.450 --> 00:28:26.049
a standard typographical and mathematical symbol.

00:28:26.089 --> 00:28:29.049
Oh, like the lesson sign. Or just a general directional

00:28:29.049 --> 00:28:31.329
indicator. It could be confused for a logical

00:28:31.329 --> 00:28:33.170
operator depending on the context of the code.

00:28:33.809 --> 00:28:35.829
The debugging engineer needed to see a symbol

00:28:35.829 --> 00:28:38.450
that instantly conveyed the action of the mechanism

00:28:38.450 --> 00:28:41.400
retreating against the normal flow of text. So

00:28:41.400 --> 00:28:43.599
the hooked and looping arrows attempt to visually

00:28:43.599 --> 00:28:46.259
communicate a reversal of momentum. Exactly.

00:28:46.440 --> 00:28:49.819
Graphic design under extreme constraints. But

00:28:49.819 --> 00:28:52.700
if we are talking about extreme physical actions,

00:28:52.880 --> 00:28:55.299
we have to look at the device controls. This

00:28:55.299 --> 00:28:57.940
is the section of the table, encompassing DC1

00:28:57.940 --> 00:29:01.779
through DC4, occupying hex codes 11 through 14.

00:29:02.029 --> 00:29:05.690
These are arguably the most raw physical commands

00:29:05.690 --> 00:29:07.849
in the entire standard. Why do you say that?

00:29:08.190 --> 00:29:10.650
Well, the names are deliberately generic. Device

00:29:10.650 --> 00:29:13.069
Control 1, Device Control 2, and so on. They

00:29:13.069 --> 00:29:15.450
were designed as wild cards. The standard didn't

00:29:15.450 --> 00:29:17.990
mandate what they did. It just provided the code

00:29:17.990 --> 00:29:20.349
so that hardware manufacturers could wire them

00:29:20.349 --> 00:29:22.789
to turn specific peripheral devices on and off.

00:29:22.990 --> 00:29:25.470
And the Wikipedia article gives us a vivid example

00:29:25.470 --> 00:29:28.150
of how they were actually used in practice, returning

00:29:28.150 --> 00:29:30.910
to our favorite machine, the Teletype Model 33.

00:29:31.069 --> 00:29:34.009
It explains exactly what these generic controls

00:29:34.009 --> 00:29:36.789
triggered on that specific hardware. Yes. On

00:29:36.789 --> 00:29:39.309
the Model 33, these controls managed the physical

00:29:39.309 --> 00:29:41.529
paper tape system. It's a paper tape. A teleprinter

00:29:41.529 --> 00:29:43.450
wasn't just a keyboard and a printer. It often

00:29:43.450 --> 00:29:45.970
had a separate paper tape puncher and a paper

00:29:45.970 --> 00:29:48.069
tape reader bolted to the side of it. Like a

00:29:48.069 --> 00:29:50.430
massive attachment. Right. This allowed you to

00:29:50.430 --> 00:29:52.990
record data offline and then transmit it later

00:29:52.990 --> 00:29:55.869
at maximum speed. And the device controls manipulated

00:29:55.869 --> 00:29:58.759
those peripherals. The source notes that DC2

00:29:58.759 --> 00:30:01.460
and DC4 were commonly mapped to the puncher.

00:30:01.759 --> 00:30:05.279
DT2 was labeled tape E, and DC4 was labeled with

00:30:05.279 --> 00:30:08.140
an abbreviation that effectively meant not tape

00:30:08.140 --> 00:30:10.819
E or tape off. Consider the reality of that.

00:30:11.279 --> 00:30:13.819
You are a terminal receiving a quiet stream of

00:30:13.819 --> 00:30:17.180
data. Suddenly, the invisible DC2 code arrives

00:30:17.180 --> 00:30:20.380
over the wire. Tape E up? Immediately, a heavy

00:30:20.380 --> 00:30:23.339
electrical motor engages. A complex mechanism

00:30:23.339 --> 00:30:25.960
of hardened steel pins begins violently punching

00:30:25.960 --> 00:30:28.299
holes into a thick strip of paper tape at 10

00:30:28.299 --> 00:30:30.220
characters a second. It must have been so loud.

00:30:30.339 --> 00:30:32.240
It is loud, it generates heat, and it creates

00:30:32.240 --> 00:30:35.279
literal physical confetti. It continues this

00:30:35.279 --> 00:30:37.440
industrial process until the DC4 command arrives

00:30:37.440 --> 00:30:39.960
and the motor abruptly shuts off. The computer

00:30:39.960 --> 00:30:41.779
is reaching across the country and physically

00:30:41.779 --> 00:30:44.160
turning heavy machinery on and off in your office.

00:30:44.279 --> 00:30:46.400
It's a very visceral form of remote control.

00:30:46.599 --> 00:30:49.599
And the source also mentions DC1 and DC - Yes.

00:30:50.119 --> 00:30:52.680
DC1 and DC3 were mapped to the paper tape reader.

00:30:53.240 --> 00:30:56.759
DC1 was commonly referred to as XON and DC3 as

00:30:56.759 --> 00:31:00.380
XO off. XON and XOF. If you wanted the terminal

00:31:00.380 --> 00:31:02.200
to start transmitting the data that was stored

00:31:02.200 --> 00:31:04.640
on a punched tape, you sent the DC1 command.

00:31:05.220 --> 00:31:07.680
A motor would engage, physical star wheels would

00:31:07.680 --> 00:31:10.299
pull the tape over a reading head, and the terminal

00:31:10.299 --> 00:31:12.680
would start sending data based on the holes it

00:31:12.680 --> 00:31:17.049
sensed. DC3 would halt the reader. This XON -XOF

00:31:17.049 --> 00:31:19.549
concept became a massive part of computer history,

00:31:19.690 --> 00:31:22.470
didn't it? A huge part! It evolved from physically

00:31:22.470 --> 00:31:25.170
stopping a paper tape motor into a broader software

00:31:25.170 --> 00:31:27.589
concept called flow control. Exactly right. If

00:31:27.589 --> 00:31:29.569
a computer was receiving data faster than it

00:31:29.569 --> 00:31:32.509
could process it, it would send an XOFS command

00:31:32.509 --> 00:31:35.109
to tell the sender to pause. Once it caught up,

00:31:35.410 --> 00:31:38.910
it sent XON to resume. We abstracted the physical

00:31:38.910 --> 00:31:41.369
paper tape motor into a software buffer limit.

00:31:41.720 --> 00:31:44.339
It is another instance of physical reality mapping

00:31:44.339 --> 00:31:46.599
directly into software architecture. And the

00:31:46.599 --> 00:31:48.460
visual symbols assigned to these four device

00:31:48.460 --> 00:31:51.579
controls in ISO 2047 are wonderfully abstract,

00:31:51.740 --> 00:31:53.940
yet somehow fitting for industrial machinery.

00:31:54.119 --> 00:31:55.779
What do they look like? They are represented

00:31:55.779 --> 00:31:58.099
by circles with different quadrants filled in

00:31:58.099 --> 00:32:02.400
or shaded. DC1 has the top left shaded, DC2 has

00:32:02.400 --> 00:32:04.519
the top half shaded, and so on. Oh, interesting.

00:32:05.059 --> 00:32:07.940
They resemble the phases of the moon, or perhaps

00:32:07.940 --> 00:32:11.519
more aptly, the rotating cams and gears inside

00:32:11.519 --> 00:32:14.640
the machinery they controlled. It's an industrial

00:32:14.640 --> 00:32:17.420
aesthetic for an industrial function. But eventually,

00:32:17.519 --> 00:32:19.619
the machines had to do more than just punch tape

00:32:19.619 --> 00:32:22.259
and ring bells. They had to manage the complexity

00:32:22.259 --> 00:32:25.180
of the data itself. Right. the logic of the network.

00:32:25.420 --> 00:32:27.140
Let's move to a group of characters that I think

00:32:27.140 --> 00:32:29.440
of as the bureaucracy of the network. Because

00:32:29.440 --> 00:32:31.619
once you have machines talking to machines without

00:32:31.619 --> 00:32:34.259
humans intervening, you need an automated way

00:32:34.259 --> 00:32:36.980
to manage disputes, confirm receipts, and organize

00:32:36.980 --> 00:32:39.099
the paperwork. This is where we see the true

00:32:39.099 --> 00:32:41.700
foundation of network protocols. The core of

00:32:41.700 --> 00:32:43.700
this bureaucracy rests on the acknowledgement

00:32:43.700 --> 00:32:46.930
characters. Let's look at those. At hex 06, We

00:32:46.930 --> 00:32:50.210
find ACK, standing for acknowledge, and at hex

00:32:50.210 --> 00:32:53.950
15 we have NA, negative acknowledge. I love how

00:32:53.950 --> 00:32:55.710
straightforward these are. The visual symbols

00:32:55.710 --> 00:32:59.130
chosen for ISO 2047 are universally understood.

00:32:59.529 --> 00:33:02.190
The symbol for ACK is a literal checkmark. Simple

00:33:02.190 --> 00:33:05.009
and effective. Just a simple graphic indicating,

00:33:05.430 --> 00:33:07.809
yes, the data was received and the check sum

00:33:07.809 --> 00:33:10.660
is correct. The symbol for NAC is the same check

00:33:10.660 --> 00:33:13.519
mark, but with a horizontal line struck forcefully

00:33:13.519 --> 00:33:16.180
through it. A visual veto. Exactly. A visual,

00:33:16.619 --> 00:33:18.380
know the data is corrupted, please send it again.

00:33:18.799 --> 00:33:22.059
It's like grading a test. The elegance is in

00:33:22.059 --> 00:33:25.279
the simplicity. Early data transmission over

00:33:25.279 --> 00:33:27.980
analog telephone lines was incredibly prone to

00:33:27.980 --> 00:33:30.880
errors. Static on the line would frequently flip

00:33:30.880 --> 00:33:34.000
a bit from a 0 to a 1, turning an A into a B,

00:33:34.240 --> 00:33:37.119
or worse, turning an A into an end of transmission

00:33:37.119 --> 00:33:38.819
command. Which would just terminate the whole

00:33:38.819 --> 00:33:42.079
session. Right. So data was sent in blocks. A

00:33:42.079 --> 00:33:44.319
transmitting machine would send a block of text,

00:33:44.640 --> 00:33:47.859
followed by an ETC character, hex 17, end of

00:33:47.859 --> 00:33:49.559
transmission block. And then it would just wait.

00:33:49.740 --> 00:33:52.420
Exactly. It would pause and wait for the receiving

00:33:52.420 --> 00:33:55.140
machine to process the block. The receiver would

00:33:55.140 --> 00:33:57.500
calculate a checksum mathematically to verify

00:33:57.500 --> 00:33:59.839
the data's integrity. And if it's good? If the

00:33:59.839 --> 00:34:02.480
math checked out, it transmitted an ACK back

00:34:02.480 --> 00:34:05.240
down the line. The sender, upon receiving the

00:34:05.240 --> 00:34:08.019
ACK, would proceed to send the next block. And

00:34:08.019 --> 00:34:10.920
if it's bad? If the receiver detected an error,

00:34:11.400 --> 00:34:14.820
it sent an AK. The sender would then rewind and

00:34:14.820 --> 00:34:18.460
retransmit that same block. It is a highly choreographed

00:34:18.460 --> 00:34:21.079
continuous loop of verification. And intertwined

00:34:21.079 --> 00:34:25.760
with that process is SYN at hex 16. Synchronization.

00:34:26.079 --> 00:34:28.380
What was the role of that character? SYN was

00:34:28.380 --> 00:34:30.719
essential for synchronous transmission systems.

00:34:31.380 --> 00:34:33.659
In simpler asynchronous systems, like standard

00:34:33.659 --> 00:34:36.420
dial -up modems, every individual character was

00:34:36.420 --> 00:34:39.420
framed by a start bit and a stop bit. to tell

00:34:39.420 --> 00:34:42.099
the receiver when to read. Start reading, stop

00:34:42.099 --> 00:34:44.699
reading. Right. But that added a lot of overhead.

00:34:45.199 --> 00:34:47.699
Synchronous systems transmitted data in a continuous,

00:34:47.840 --> 00:34:50.320
rapid stream without start and stop bits. To

00:34:50.320 --> 00:34:52.480
make that work, the transmitter and receiver

00:34:52.480 --> 00:34:54.619
clocks had to be perfectly locked in time with

00:34:54.619 --> 00:34:56.619
each other. Like two musicians keeping the same

00:34:56.619 --> 00:34:59.019
beat. Precisely. Before transmitting the actual

00:34:59.019 --> 00:35:01.260
data, the sender would stream a continuous series

00:35:01.260 --> 00:35:04.920
of SYN characters. SYN, SYN, SYN. The receiving

00:35:04.920 --> 00:35:07.059
hardware would lock onto the repeating bit pattern

00:35:07.059 --> 00:35:09.199
of the SYN character and adjust its internal

00:35:09.199 --> 00:35:11.800
clock to match the incoming signal exactly. Once

00:35:11.800 --> 00:35:13.780
they were synchronized, the data payload could

00:35:13.780 --> 00:35:16.559
flow seamlessly. Okay, so we have the check marks

00:35:16.559 --> 00:35:18.760
for success, the crossed out check marks for

00:35:18.760 --> 00:35:21.199
failure, and the synchronization beats to keep

00:35:21.199 --> 00:35:24.579
time. But what happens when the bureaucracy fails

00:35:24.579 --> 00:35:27.849
entirely? What happens when a machine is hopelessly

00:35:27.849 --> 00:35:31.090
confused or a process needs to be violently aborted?

00:35:31.269 --> 00:35:33.309
That's when you hit the panic buttons. We have

00:35:33.309 --> 00:35:35.630
panic button characters. The most direct panic

00:35:35.630 --> 00:35:39.710
button is Canon at hex 18 cancel. And what does

00:35:39.710 --> 00:35:43.750
that look like? Its symbol in ISO 2047 is a stark

00:35:43.750 --> 00:35:46.690
geometric shape. It resembles an hourglass or

00:35:46.690 --> 00:35:49.150
two triangles touching at their points. What

00:35:49.150 --> 00:35:52.030
triggers a cancel command? CAN was generally

00:35:52.030 --> 00:35:54.369
used to tell the receiving system to completely

00:35:54.369 --> 00:35:56.389
discard the data it had just received in the

00:35:56.389 --> 00:35:58.789
current block, usually because the transmitting

00:35:58.789 --> 00:36:00.909
system itself realized it had made an error,

00:36:01.369 --> 00:36:03.670
or the human operator hit an abort sequence.

00:36:03.730 --> 00:36:05.670
So it just trashes the current block. It's a

00:36:05.670 --> 00:36:07.369
command to wipe the slate clean for the current

00:36:07.369 --> 00:36:09.750
operation without dropping the connection entirely.

00:36:10.110 --> 00:36:14.329
And then there is SUB at hex 1A, substitute character.

00:36:14.639 --> 00:36:17.619
The standard dictates its visual symbol looks

00:36:17.619 --> 00:36:19.639
like a little blot containing a question mark

00:36:19.639 --> 00:36:23.699
shape, or perhaps a reversed S. Why would a machine

00:36:23.699 --> 00:36:26.460
need to substitute a character? The substitute

00:36:26.460 --> 00:36:28.599
character was a crucial mechanism for graceful

00:36:28.599 --> 00:36:30.639
failure. Graceful failure. I like that term.

00:36:30.880 --> 00:36:33.119
Imagine a terminal receiving a stream of text

00:36:33.119 --> 00:36:36.619
and one specific byte is garbled by line noise

00:36:36.619 --> 00:36:39.659
so badly that the terminal's hardware simply

00:36:39.659 --> 00:36:42.400
doesn't recognize it as any valid character in

00:36:42.400 --> 00:36:46.130
the 7 -bit set. It's just junk data. Right. Older,

00:36:46.190 --> 00:36:48.730
less sophisticated hardware might simply crash

00:36:48.730 --> 00:36:51.530
or hang indefinitely when it encountered an illegal

00:36:51.530 --> 00:36:53.409
instruction. Which is catastrophic if you are

00:36:53.409 --> 00:36:56.170
in the middle of a large job. Exactly. So more

00:36:56.170 --> 00:36:58.030
advanced hardware was programmed to catch that

00:36:58.030 --> 00:37:00.650
error. Instead of crashing, it would say, I received

00:37:00.650 --> 00:37:03.670
an unreadable byte. I will discard it, and in

00:37:03.670 --> 00:37:06.090
its place on the screen or printout, I will insert

00:37:06.090 --> 00:37:08.789
the SEB character. Oh, I see. It was a visible

00:37:08.789 --> 00:37:11.530
placeholder that told the human operator something

00:37:11.530 --> 00:37:13.909
was supposed to be here, but it was lost in transit.

00:37:14.199 --> 00:37:16.500
It allowed the rest of the transmission to continue

00:37:16.500 --> 00:37:19.139
uninterrupted while flagging the specific point

00:37:19.139 --> 00:37:21.659
of failure. It's a managed failure state. I don't

00:37:21.659 --> 00:37:23.099
know what this is, but I'm not going to let it

00:37:23.099 --> 00:37:26.199
ruin the whole document. That is very smart engineering.

00:37:26.300 --> 00:37:28.559
It's pragmatic. But if we are talking about smart

00:37:28.559 --> 00:37:31.039
engineering, we cannot talk about this standard

00:37:31.039 --> 00:37:35.739
without bowing down to Hex 1B, ESC, ESCAPE. Yes,

00:37:35.920 --> 00:37:40.860
ESCAPE, represented in ISO 2047 by a circle with

00:37:40.860 --> 00:37:43.000
a horizontal line drawn through the middle of

00:37:43.000 --> 00:37:47.880
it. U plus 238B in modern Unicode. It is arguably

00:37:47.880 --> 00:37:50.320
one of the most powerful and significant control

00:37:50.320 --> 00:37:52.719
characters ever devised. Why is it so powerful?

00:37:52.960 --> 00:37:55.440
In modern computing, I hit the S key to close

00:37:55.440 --> 00:37:57.960
a full screen video or cancel out of a dialog

00:37:57.960 --> 00:38:00.559
box. It feels like a very mundane go away button.

00:38:00.960 --> 00:38:02.699
But historically, it was much more than that.

00:38:03.099 --> 00:38:06.260
The clue is in the name. Escape. It is an escape

00:38:06.260 --> 00:38:08.260
from the limitations of the seven bit architecture.

00:38:08.420 --> 00:38:10.460
What do you mean? You have to remember the fundamental

00:38:10.460 --> 00:38:12.780
constraint these engineers were working under.

00:38:13.150 --> 00:38:17.789
A 7 -bit code only allows for 128 unique values.

00:38:18.150 --> 00:38:20.949
Total. Just 128. That includes all your uppercase

00:38:20.949 --> 00:38:23.349
letters, lowercase letters, numbers, punctuation,

00:38:23.730 --> 00:38:26.170
and all 32 of these control characters we've

00:38:26.170 --> 00:38:28.210
been discussing. That leaves absolutely zero

00:38:28.210 --> 00:38:30.829
room for anything else. Exactly. What if you

00:38:30.829 --> 00:38:32.690
want to tell the terminal to change the text

00:38:32.690 --> 00:38:36.469
color to red? Or clear the screen? Or move the

00:38:36.469 --> 00:38:39.619
cursor to coordinate line 10, column 20? You

00:38:39.619 --> 00:38:42.960
don't have any unique 7 -bit codes left to assign

00:38:42.960 --> 00:38:44.920
to those complex commands. You've run out of

00:38:44.920 --> 00:38:47.619
numbers. So how does escape fix that? The escape

00:38:47.619 --> 00:38:50.039
character fundamentally alters the state machine

00:38:50.039 --> 00:38:52.719
of the receiving terminal. It acts as a massive

00:38:52.719 --> 00:38:56.039
modifier key. When a terminal receives the ESC

00:38:56.039 --> 00:38:58.139
character, it essentially stops treating the

00:38:58.139 --> 00:39:00.500
incoming data as normal text. It shifts gears.

00:39:00.960 --> 00:39:03.119
It says, okay, the very next characters I receive

00:39:03.119 --> 00:39:04.860
are not letters to be printed. They are part

00:39:04.860 --> 00:39:07.639
of a special extended command sequence. So you

00:39:07.639 --> 00:39:09.480
string characters together to make new commands.

00:39:09.739 --> 00:39:13.179
Precisely. These became known as ANSI escape

00:39:13.179 --> 00:39:16.059
sequences. For example, if the terminal received

00:39:16.059 --> 00:39:19.000
an A, it would print A. But if it received the

00:39:19.000 --> 00:39:21.820
ESC character, followed immediately by an open

00:39:21.820 --> 00:39:24.559
bracket, followed by the letter A, the terminal

00:39:24.559 --> 00:39:26.659
wouldn't print anything. What would it do? It

00:39:26.659 --> 00:39:28.880
would interpret that specific multi -character

00:39:28.880 --> 00:39:31.699
sequence as a command to move the cursor up one

00:39:31.699 --> 00:39:34.360
line. That's brilliant. By utilizing escape as

00:39:34.360 --> 00:39:37.039
a gateway, engineers essentially unlocked an

00:39:37.039 --> 00:39:39.429
infinite number of command combinations without

00:39:39.429 --> 00:39:42.510
needing to expand the underlying 7 -bit architecture.

00:39:43.250 --> 00:39:45.909
It allowed hardware to evolve incredibly complex

00:39:45.909 --> 00:39:48.650
graphical interfaces over rudimentary connections.

00:39:48.909 --> 00:39:50.909
It was a trapdoor built into the foundation that

00:39:50.909 --> 00:39:53.579
allowed the entire system to scale. The foresight

00:39:53.579 --> 00:39:55.719
to include that in the standard is just staggering.

00:39:55.960 --> 00:39:57.840
It saved the computing industry from locking

00:39:57.840 --> 00:40:00.260
itself into a dead end. Before we leave the bureaucracy

00:40:00.260 --> 00:40:02.139
section, though, I want to look at how they organized

00:40:02.139 --> 00:40:05.380
information itself before the era of visual operating

00:40:05.380 --> 00:40:07.800
systems. We have four specific characters at

00:40:07.800 --> 00:40:11.719
the end of the 10 series hex codes, FS, GS, RS,

00:40:12.019 --> 00:40:15.380
and US. The information separators, hex 1C through

00:40:15.380 --> 00:40:18.239
1F. Now, if I'm a listener sitting here at my

00:40:18.239 --> 00:40:21.530
laptop, I organize my digital life very visually.

00:40:21.949 --> 00:40:24.710
I have a desktop. I open a folder called Finances.

00:40:25.050 --> 00:40:28.590
Inside that, a subfolder called 2026. Inside

00:40:28.590 --> 00:40:31.429
that, a spreadsheet file. And in that file, I

00:40:31.429 --> 00:40:34.269
have rows and columns of data. It's all spatially

00:40:34.269 --> 00:40:36.550
organized? I can see the hierarchy instantly.

00:40:37.090 --> 00:40:39.570
How did engineers manage that kind of hierarchical

00:40:39.570 --> 00:40:42.570
data structure in a linear stream of 7 -bit text?

00:40:42.710 --> 00:40:45.289
They managed it precisely by using those four

00:40:45.289 --> 00:40:47.570
invisible separators. They are the primitive

00:40:47.570 --> 00:40:49.949
structural ancestors of your folders and files.

00:40:49.969 --> 00:40:52.230
Okay, walk me through it. You have to imagine

00:40:52.230 --> 00:40:54.570
data being written sequentially onto a massive

00:40:54.570 --> 00:40:57.349
reel of magnetic tape. There are no visual folders

00:40:57.349 --> 00:40:59.809
on a tape. It is just a million miles of ones

00:40:59.809 --> 00:41:02.889
and zeros. To make sense of it, a database program

00:41:02.889 --> 00:41:05.050
needs markers embedded directly into the text

00:41:05.050 --> 00:41:07.170
stream to define the boundaries of the data.

00:41:07.489 --> 00:41:09.409
So how did the hierarchy work? Which one is the

00:41:09.409 --> 00:41:11.619
smallest? It started from the smallest element

00:41:11.619 --> 00:41:15.460
and built upwards. U .S. at hex one F is the

00:41:15.460 --> 00:41:18.340
unit separator. A unit might be the smallest

00:41:18.340 --> 00:41:20.820
discrete piece of information, for example, a

00:41:20.820 --> 00:41:22.980
person's first name. You would separate the first

00:41:22.980 --> 00:41:25.679
name from the last name using a U .S. character.

00:41:25.739 --> 00:41:29.360
Like the comma in a modern CSV file. Exactly

00:41:29.360 --> 00:41:32.630
like that. The next level up is R .S. the record

00:41:32.630 --> 00:41:35.809
separator at hex 1E. A record is a collection

00:41:35.809 --> 00:41:38.929
of units. So a complete mailing address, name,

00:41:39.190 --> 00:41:41.869
street, city, zip, might constitute one record.

00:41:42.329 --> 00:41:44.889
You use an RS character to separate one person's

00:41:44.889 --> 00:41:46.630
full address from the next person's address.

00:41:46.769 --> 00:41:49.909
And it scales up from there. Yes. Next is GS,

00:41:50.230 --> 00:41:53.150
the group separator at hex 1D. You might group

00:41:53.150 --> 00:41:55.510
thousands of individual records by geographical

00:41:55.510 --> 00:41:58.389
region. A GS character would mark the end of

00:41:58.389 --> 00:42:00.110
the East Coast group and the beginning of the

00:42:00.110 --> 00:42:02.190
West Coast group. And the biggest one. Finally,

00:42:02.550 --> 00:42:05.429
at the top of the hierarchy is FS, the file separator

00:42:05.429 --> 00:42:08.510
at hex 1C. This would separate entirely distinct

00:42:08.510 --> 00:42:10.909
datasets on the same magnetic tape, like separating

00:42:10.909 --> 00:42:13.050
the payroll database from the inventory database.

00:42:13.269 --> 00:42:15.190
So a program parsing the tape would just scan

00:42:15.190 --> 00:42:16.909
for these invisible characters to understand

00:42:16.909 --> 00:42:18.949
the structure of the data it was reading. Yes

00:42:18.949 --> 00:42:21.710
it just look for those markers. The visual symbols

00:42:21.710 --> 00:42:24.369
designed for these in ISO 2047 are brilliantly

00:42:24.369 --> 00:42:26.989
logical too. I'm looking at them. They are all

00:42:26.989 --> 00:42:29.730
U shapes or squares divided into four quadrants.

00:42:29.809 --> 00:42:31.289
They bill them in each other. For the highest

00:42:31.289 --> 00:42:34.230
level file separator FS the top left quadrant

00:42:34.230 --> 00:42:37.210
is filled. For group separator GS it moves to

00:42:37.210 --> 00:42:40.679
the top right. For Record separator RS, the bottom

00:42:40.679 --> 00:42:43.340
right, and for unit separator US, the bottom

00:42:43.340 --> 00:42:46.119
left. It's a progression. It's a visual representation

00:42:46.119 --> 00:42:48.840
of moving sequentially through the layers of

00:42:48.840 --> 00:42:52.139
the hierarchy. It is a very elegant graphic design

00:42:52.139 --> 00:42:54.780
for something designed to be purely utilitarian.

00:42:55.000 --> 00:42:57.699
It demonstrates a deep intentionality. They weren't

00:42:57.699 --> 00:43:00.059
just picking random shapes. They were building

00:43:00.059 --> 00:43:03.659
a visual syntax. Which brings us to the final

00:43:03.659 --> 00:43:06.500
and perhaps most intriguing aspects of the source

00:43:06.500 --> 00:43:09.750
material. We need to look at the anomalies, the

00:43:09.750 --> 00:43:12.369
edge cases, and the eventual afterlife of this

00:43:12.369 --> 00:43:14.750
visual syntax. Let's start with the bookends

00:43:14.750 --> 00:43:17.769
of the entire ASCII table. We've talked extensively

00:43:17.769 --> 00:43:19.750
about the control characters clustered at the

00:43:19.750 --> 00:43:22.630
lower end of the hex values. But nested in this

00:43:22.630 --> 00:43:25.030
standard are two other crucial non -printing

00:43:25.030 --> 00:43:27.909
entities that sit outside that main block. At

00:43:27.909 --> 00:43:30.269
hex 20, immediately following the control characters,

00:43:30.730 --> 00:43:34.969
we have SP. Space, the most ubiquitous invisible

00:43:34.969 --> 00:43:37.840
character in all of computing. We press the space

00:43:37.840 --> 00:43:40.800
bar more than any other key. It is the caricature

00:43:40.800 --> 00:43:43.239
we use to separate words and make human language

00:43:43.239 --> 00:43:47.519
readable. But in the context of ISO 2047 and

00:43:47.519 --> 00:43:50.139
terminal debugging, the space presents a unique

00:43:50.139 --> 00:43:52.760
problem. The problem is ambiguity. On a normal

00:43:52.760 --> 00:43:55.369
printout, a space is just blank paper. But if

00:43:55.369 --> 00:43:58.010
you are an engineer examining a diagnostic dump

00:43:58.010 --> 00:44:00.570
and you see a blank area between two words, you

00:44:00.570 --> 00:44:02.670
have to ask yourself a critical question. Did

00:44:02.670 --> 00:44:05.309
it mean to do that? Right. Did the computer intentionally

00:44:05.309 --> 00:44:07.849
transmit a space character, hex 20, or did the

00:44:07.849 --> 00:44:10.449
printer hardware simply fail to fire for a millisecond,

00:44:10.650 --> 00:44:12.989
leaving a gap? You can't debug based on assumptions.

00:44:13.250 --> 00:44:16.519
You need proof. Precisely. Therefore, in this

00:44:16.519 --> 00:44:19.039
diagnostic mode, you have to force the invisible

00:44:19.039 --> 00:44:21.699
space to become visible. You have to draw a picture

00:44:21.699 --> 00:44:25.260
of a space. ISO 2047 assigned it a very specific

00:44:25.260 --> 00:44:28.260
symbol, a tiny open triangle pointing upwards.

00:44:28.480 --> 00:44:32.340
In Unicode, it is U plus 25B3. I'm trying to

00:44:32.340 --> 00:44:34.699
visualize reading a diagnostic printout where

00:44:34.699 --> 00:44:36.659
every single space between every single word

00:44:36.659 --> 00:44:39.599
is represented by a tiny upward pointing triangle.

00:44:39.639 --> 00:44:41.780
It would look like an incredibly dense alien

00:44:41.780 --> 00:44:44.300
text. It would be visually chaotic. for a layperson,

00:44:44.559 --> 00:44:47.000
but for an engineer, it provided absolute certainty.

00:44:47.460 --> 00:44:49.519
Every triangle proved that a hex 20 code was

00:44:49.519 --> 00:44:51.440
successfully received and parsed. And then at

00:44:51.440 --> 00:44:53.800
the absolute opposite end of the 7 -bit table,

00:44:54.059 --> 00:44:56.539
far away from the control characters sits hex

00:44:56.539 --> 00:45:01.280
7f. The very last possible value, DEL, delete.

00:45:01.519 --> 00:45:03.539
The delete character is historically fascinating

00:45:03.539 --> 00:45:06.139
because its very existence is tied entirely to

00:45:06.139 --> 00:45:08.019
the physical properties of punched paper tape.

00:45:08.159 --> 00:45:11.090
More paper tape mechanics. Yes. We've talked

00:45:11.090 --> 00:45:14.570
about how a null character 0x00 is a row with

00:45:14.570 --> 00:45:18.010
absolutely zero holes punched. The delete character

00:45:18.010 --> 00:45:22.070
0x7f is the exact opposite. 7 bits means there

00:45:22.070 --> 00:45:25.650
are 7 possible hole positions. A value of 7f

00:45:25.650 --> 00:45:28.190
in hexadecimal translates to all 7 bits being

00:45:28.190 --> 00:45:32.300
set to 1. In binary, it is 11 11 11 11. So on

00:45:32.300 --> 00:45:35.179
a paper tape, a delete character is a row where

00:45:35.179 --> 00:45:38.019
every single possible hole is punched out. Exactly.

00:45:38.380 --> 00:45:41.559
Now consider why that specific physical configuration

00:45:41.559 --> 00:45:44.260
was chosen for the concept of delete. Imagine

00:45:44.260 --> 00:45:46.360
you are an operator typing on a teletype and

00:45:46.360 --> 00:45:48.199
the machine is punching the tape as you type.

00:45:48.360 --> 00:45:50.400
You hit the wrong key. You've type a B instead

00:45:50.400 --> 00:45:53.179
of an A. The physical hole for the B has already

00:45:53.179 --> 00:45:54.940
been punched through the paper. You can't un

00:45:54.940 --> 00:45:56.679
-punch a hole. You can't put the paper confetti

00:45:56.679 --> 00:45:59.099
back in. The physical error is permanent. Right.

00:45:59.099 --> 00:46:01.300
So how do you fix it? You press a physical button

00:46:01.300 --> 00:46:03.699
on the tape puncher that backspaces the tape

00:46:03.699 --> 00:46:06.199
one position, moving the erroneous B back under

00:46:06.199 --> 00:46:08.920
the punch bins. Then you press the rub -out or

00:46:08.920 --> 00:46:12.179
delete key. The machine fires all seven punch

00:46:12.179 --> 00:46:14.920
pins simultaneously, punching holes in every

00:46:14.920 --> 00:46:17.539
single position of that row. It physically obliterates

00:46:17.539 --> 00:46:19.860
the B by turning it into a row of seven holes.

00:46:20.059 --> 00:46:22.460
That is an incredibly clever mechanical hack.

00:46:23.099 --> 00:46:25.280
But how does the computer reading the tape know

00:46:25.280 --> 00:46:27.300
it's a mistake? The software drivers running

00:46:27.300 --> 00:46:29.460
the tape readers were programmed with a very

00:46:29.460 --> 00:46:32.239
specific rule. If you read a row with all seven

00:46:32.239 --> 00:46:35.539
holes punched, hex 7f, ignore it completely.

00:46:36.059 --> 00:46:38.500
Treat it as if it does not exist, do not process

00:46:38.500 --> 00:46:40.440
it, do not print it, just move to the next row.

00:46:41.059 --> 00:46:43.219
It was a physical mechanism for erasing data

00:46:43.219 --> 00:46:45.719
by obliterating it with maximum entropy. That

00:46:45.719 --> 00:46:47.639
is a brilliant piece of engineering history.

00:46:47.820 --> 00:46:50.380
and the visual symbol assigned to delete in ISO

00:46:50.380 --> 00:46:53.900
2047 perfectly reflects that concept of physical

00:46:53.900 --> 00:46:56.440
obliteration. The standard dictates it should

00:46:56.440 --> 00:46:59.039
be represented by a shaded, cross -hatched block,

00:46:59.699 --> 00:47:02.019
a solid mass of ink that covers the entire character

00:47:02.019 --> 00:47:05.619
space. In Unicode, it's U plus 25A8 or similar.

00:47:06.000 --> 00:47:07.780
It looks exactly like a physical redaction in

00:47:07.780 --> 00:47:10.440
a class -wide document. It is the visual representation

00:47:10.440 --> 00:47:14.199
of a void created by overwhelming presence. But

00:47:14.199 --> 00:47:16.199
the implementation of these brilliant symbols

00:47:16.199 --> 00:47:19.159
wasn't universally smooth. The source material

00:47:19.159 --> 00:47:21.579
points us to a highly specific curious anomaly

00:47:21.579 --> 00:47:24.139
regarding how this standard was adapted in certain

00:47:24.139 --> 00:47:26.579
environments. And I think this anomaly reveals

00:47:26.579 --> 00:47:28.500
more about the reality of early computing than

00:47:28.500 --> 00:47:31.199
the standard itself does. You are referring to

00:47:31.199 --> 00:47:34.250
the note regarding the Irish standard. Yes. The

00:47:34.250 --> 00:47:36.349
Wikipedia article references a document from

00:47:36.349 --> 00:47:40.090
December 13, 1995, titled Information Technology

00:47:40.090 --> 00:47:43.789
Irish 7 -bit Coded Character Sets. It's incredibly

00:47:43.789 --> 00:47:46.769
niche. But the source notes that in this particular

00:47:46.769 --> 00:47:49.769
Irish standard, the glyphs used for four specific

00:47:49.769 --> 00:47:54.510
control characters, ENQ, BS, CR, and ESSO, were

00:47:54.510 --> 00:47:56.730
considered anomalous. They did not match the

00:47:56.730 --> 00:47:59.730
shapes dictated by the global ISO 2047 standard.

00:47:59.929 --> 00:48:02.090
And the reason provided in the text for this

00:48:02.090 --> 00:48:04.170
deviation is the critical part. It states the

00:48:04.170 --> 00:48:07.670
anomaly was possibly to accommodate the low resolution.

00:48:07.849 --> 00:48:10.269
To accommodate the low resolution. That phrase

00:48:10.269 --> 00:48:12.449
just hits you with the stark reality of the hardware

00:48:12.449 --> 00:48:14.969
of the era. It grounds the entire discussion.

00:48:15.489 --> 00:48:17.590
We have spent an hour marveling at the intellectual

00:48:17.590 --> 00:48:20.309
effort required to design these intricate, meaningful

00:48:20.309 --> 00:48:23.280
geometric symbols. The International Committee

00:48:23.280 --> 00:48:25.619
debated whether inquiries should be a cross or

00:48:25.619 --> 00:48:29.400
a boxed X. They agonized over how to draw a curved

00:48:29.400 --> 00:48:31.940
arrow that perfectly conveyed the kinetic reversal

00:48:31.940 --> 00:48:35.619
of a backspace. They designed elegant four quadrant

00:48:35.619 --> 00:48:37.800
squares for the information separators. They

00:48:37.800 --> 00:48:40.460
built a perfect theoretical language. But then,

00:48:40.739 --> 00:48:42.840
that perfect theoretical language collides with

00:48:42.840 --> 00:48:45.360
the greedy reality of cheap hardware. Think about

00:48:45.360 --> 00:48:48.639
the monitors of the late 70s and 80s. A standard

00:48:48.639 --> 00:48:51.460
CRT terminal didn't draw smooth vector graphics.

00:48:51.780 --> 00:48:54.199
It used a character generator ROM that mapped

00:48:54.199 --> 00:48:56.800
a character to a rigid, coarse grid of pixels,

00:48:57.099 --> 00:48:59.940
often just five pixels wide by seven pixels high.

00:49:00.019 --> 00:49:02.659
That's only 35 tiny dots to draw a complex shape.

00:49:02.880 --> 00:49:05.800
Exactly. Try drawing the ISO standard for backspace,

00:49:05.980 --> 00:49:08.719
a sweeping, hooked arrow curving back on itself

00:49:08.719 --> 00:49:11.340
in a five by seven grid. It's mathematically

00:49:11.340 --> 00:49:13.460
impossible to make it look smooth. The pixels

00:49:13.460 --> 00:49:15.590
just clump together. On the screen, it would

00:49:15.590 --> 00:49:17.389
look like an elegant arrow. It would look like

00:49:17.389 --> 00:49:20.630
an illegible glowing smudge. And if you are an

00:49:20.630 --> 00:49:23.369
engineer trying to debug a critical system failure,

00:49:24.090 --> 00:49:27.349
an illegible smudge is useless. You need clarity.

00:49:28.369 --> 00:49:30.659
So standard or no standard? Local committees

00:49:30.659 --> 00:49:32.980
and hardware manufacturers had to bend the rules.

00:49:33.500 --> 00:49:36.239
The engineers writing the Irish standard or whoever

00:49:36.239 --> 00:49:38.079
was manufacturing the terminals that standard

00:49:38.079 --> 00:49:40.800
was based on likely realized the international

00:49:40.800 --> 00:49:43.639
ISO shape simply would not render legibly on

00:49:43.639 --> 00:49:46.639
the low resolution cathode ray tubes or cheap

00:49:46.639 --> 00:49:49.099
dot matrix printers prevalent in their market.

00:49:49.639 --> 00:49:52.119
They had to choose simpler, blockier, perhaps

00:49:52.119 --> 00:49:54.800
cruder anomalous shapes for those specific commands

00:49:54.800 --> 00:49:57.500
because the literal pixels required to draw the

00:49:57.500 --> 00:49:59.260
international standard did not exist on this

00:49:59.050 --> 00:50:02.070
It is the perfect example of high -level bureaucratic

00:50:02.070 --> 00:50:04.389
theory crashing headfirst into the low -level

00:50:04.389 --> 00:50:06.929
physical constraints. The standard has to bend,

00:50:07.210 --> 00:50:09.909
or the system breaks. It's pragmatism over purity.

00:50:10.070 --> 00:50:12.789
It is a poignant reminder of the incredible constraints

00:50:12.789 --> 00:50:14.849
under which early digital architects operated.

00:50:15.409 --> 00:50:17.769
Every single decision was a negotiation with

00:50:17.769 --> 00:50:19.949
hardware limitations. So we know these symbols

00:50:19.949 --> 00:50:22.389
bent under the pressure of low resolution. We

00:50:22.389 --> 00:50:24.829
know from the earlier Japanese example that standard

00:50:24.829 --> 00:50:27.070
enforcement eventually aged out and was abolished

00:50:27.070 --> 00:50:30.090
in 2010. And the article itself plainly states

00:50:30.090 --> 00:50:33.389
that the graphical symbols of ISO 2047 are outdated

00:50:33.389 --> 00:50:35.869
and rare today, having been replaced by text

00:50:35.869 --> 00:50:39.269
abbreviations like ESC or carrot notation. So

00:50:39.269 --> 00:50:42.210
are they just gone? Is this entire visual language

00:50:42.210 --> 00:50:45.670
lost to history, existing only in obsolete Wikipedia

00:50:45.670 --> 00:50:48.710
tables? Fascinatingly, no. They are not gone.

00:50:49.210 --> 00:50:51.710
They have achieved a form of digital immortality.

00:50:51.829 --> 00:50:54.170
They have been preserved in amber within the

00:50:54.170 --> 00:50:56.889
ultimate arbiter of modern digital text. The

00:50:56.889 --> 00:50:58.869
source explicitly states that these specific

00:50:58.869 --> 00:51:01.510
visual symbols are preserved forever in the Unicode

00:51:01.510 --> 00:51:04.750
standard. Unicode, the massive foundational system

00:51:04.750 --> 00:51:06.809
that ensures a text message sent from an Android

00:51:06.809 --> 00:51:09.030
phone in Brazil, renders perfectly on an iPhone

00:51:09.030 --> 00:51:11.230
in Canada. the system that manages every human

00:51:11.230 --> 00:51:14.210
alphabet and every emoji. Yes. The mandate of

00:51:14.210 --> 00:51:16.650
the Unicode Consortium is essentially to catalog

00:51:16.650 --> 00:51:19.349
and standardize every single character from every

00:51:19.349 --> 00:51:22.230
human language, past and present. But their mandate

00:51:22.230 --> 00:51:24.909
also extends to crucial technical and historical

00:51:24.909 --> 00:51:28.869
symbols. They recognize that the ISO 2047 visual

00:51:28.869 --> 00:51:31.030
representations, while no longer used for daily

00:51:31.030 --> 00:51:33.369
debugging, are a fundamental part of computing

00:51:33.369 --> 00:51:36.070
history. They are the hieroglyphs of the digital

00:51:36.070 --> 00:51:38.070
age. So where do they live in the Unicode table?

00:51:38.269 --> 00:51:41.349
The ISO 2047 symbols for control characters are

00:51:41.349 --> 00:51:43.590
specifically mapped and cited in two Unicode

00:51:43.590 --> 00:51:46.230
ranges. First, the miscellaneous technical block,

00:51:46.449 --> 00:51:49.929
which spans hexadecimal codes 2300 through 23FF.

00:51:50.429 --> 00:51:52.590
Here you'll find things like the empty box for

00:51:52.590 --> 00:51:55.530
null and the literal bell symbol for BEL. But

00:51:55.530 --> 00:51:57.409
more specifically, there is a dedicated block

00:51:57.409 --> 00:51:59.989
called control pictures ranging from hex 2400

00:51:59.989 --> 00:52:02.750
to 243F. Control pictures. I love that phrase.

00:52:02.809 --> 00:52:04.570
It sounds like a wing in a modern art museum.

00:52:04.679 --> 00:52:07.800
Functionally, it is a digital museum. That block

00:52:07.800 --> 00:52:10.619
contains specialized diagonal acronym graphics

00:52:10.619 --> 00:52:12.760
designed to represent the control codes if a

00:52:12.760 --> 00:52:15.340
system absolutely needs to display them, preserving

00:52:15.340 --> 00:52:18.480
the intent of ISO 2047 in a modern typographic

00:52:18.480 --> 00:52:21.159
format. So while a programmer at a tech startup

00:52:21.159 --> 00:52:24.019
today will never use ISO 2047 to debug a cloud

00:52:24.019 --> 00:52:26.420
microservice, the foundational visual language

00:52:26.420 --> 00:52:29.280
designed by that committee in 1975 has been permanently

00:52:29.280 --> 00:52:31.980
etched into the master dictionary of human communication.

00:52:32.099 --> 00:52:34.579
It will exist as long as Unicode exists, which

00:52:34.579 --> 00:52:37.179
is to say, as long as our current digital civilization

00:52:37.179 --> 00:52:39.820
endures. That is a staggering thought. Let's

00:52:39.820 --> 00:52:41.400
take a step back and look at the whole picture.

00:52:41.769 --> 00:52:44.630
What an incredible, unexpected journey from a

00:52:44.630 --> 00:52:47.730
single, dry Wikipedia table. We started this

00:52:47.730 --> 00:52:50.170
deep dive looking at what seemed like an impenetrable

00:52:50.170 --> 00:52:53.650
list of 1970s hex codes and bureaucratic acronyms.

00:52:54.190 --> 00:52:56.230
But by digging in, by looking closely at what

00:52:56.230 --> 00:52:58.550
those codes actually represented, we discovered

00:52:58.550 --> 00:53:02.110
a vibrant, noisy, intensely physical world. We

00:53:02.110 --> 00:53:04.369
found heavy steel machines physically ringing

00:53:04.369 --> 00:53:07.530
bells to demand human attention. We found mechanical

00:53:07.530 --> 00:53:10.389
paper tape punches violently tearing holes in

00:53:10.389 --> 00:53:13.659
paper to record data. We found isolated terminals

00:53:13.659 --> 00:53:16.079
interrogating each other across crackling telephone

00:53:16.079 --> 00:53:18.820
lines, mechanically spinning drums to ask, who

00:53:18.820 --> 00:53:22.219
are you? We saw the monumental agonizing international

00:53:22.219 --> 00:53:24.820
effort to take invisible data commands and force

00:53:24.820 --> 00:53:27.539
them into visible graphical shapes just so human

00:53:27.539 --> 00:53:29.320
engineers could peer into the dark and understand

00:53:29.320 --> 00:53:30.760
what the machines were saying to each other.

00:53:30.940 --> 00:53:33.360
It really exposes the hidden physical architecture

00:53:33.360 --> 00:53:36.280
that underlies the smooth abstract digital world

00:53:36.280 --> 00:53:39.500
we inhabit today. Every sleek interface is built

00:53:39.500 --> 00:53:42.239
on a foundation of these crude physical negotiations.

00:53:42.760 --> 00:53:45.559
It absolutely is. And it fundamentally changes

00:53:45.559 --> 00:53:47.099
how you look at the device sitting in front of

00:53:47.099 --> 00:53:49.780
you right now. The next time you, the listener,

00:53:49.900 --> 00:53:51.679
are typing an email and you hit the enter key,

00:53:52.159 --> 00:53:54.280
I want you to remember that you aren't just moving

00:53:54.280 --> 00:53:57.500
a pixelated cursor down a screen. You are invoking

00:53:57.500 --> 00:54:00.000
a carriage return and a line feed, the ghost

00:54:00.000 --> 00:54:02.239
of a heavy metal cylinder slamming to the left,

00:54:02.559 --> 00:54:04.840
and a rubber roller ratcheting paper upward.

00:54:05.360 --> 00:54:07.659
When you press the S key in the corner of your

00:54:07.659 --> 00:54:10.099
keyboard, you are triggering a command designed

00:54:10.099 --> 00:54:12.960
50 years ago to break a terminal out of a 7 -bit

00:54:12.960 --> 00:54:15.719
prism. You are participating in a lineage of

00:54:15.719 --> 00:54:17.699
commands that stretches back through clattering

00:54:17.699 --> 00:54:20.380
teletype machines, across international standards

00:54:20.380 --> 00:54:23.519
committees in 1968, all the way to the foundational

00:54:23.519 --> 00:54:27.230
logic of the digital age. That historical continuity

00:54:27.230 --> 00:54:30.730
is profound and it raises a final provocative

00:54:30.730 --> 00:54:32.469
thought that I'd like to leave our listener with

00:54:32.469 --> 00:54:34.809
today. We have spent this entire session looking

00:54:34.809 --> 00:54:37.130
backward. We've examined the invisible control

00:54:37.130 --> 00:54:40.570
commands of the 1970s and the immense creative

00:54:40.570 --> 00:54:43.530
effort required to visualize them for human comprehension,

00:54:43.969 --> 00:54:45.929
but let's apply that logic to the future. Okay,

00:54:46.070 --> 00:54:48.559
let's spin it forward. If some future historian

00:54:48.559 --> 00:54:50.639
or digital archaeologist were to dig through

00:54:50.639 --> 00:54:53.599
the raw foundational code of the systems we use

00:54:53.599 --> 00:54:56.539
right now in the 2020s, long after our current

00:54:56.539 --> 00:54:58.960
screens, laptops and interfaces have turned to

00:54:58.960 --> 00:55:01.940
dust, what invisible control commands of our

00:55:01.940 --> 00:55:04.000
modern era do you think they would struggle to

00:55:04.000 --> 00:55:07.079
visualize? We aren't just dealing with line feeds

00:55:07.079 --> 00:55:09.920
and paper tape anymore. We are dealing with massive

00:55:09.920 --> 00:55:12.619
neural networks, opaque algorithmic weighting

00:55:12.619 --> 00:55:15.380
and decentralized cloud infrastructures. That's

00:55:15.380 --> 00:55:17.579
a huge question. What is the modern equivalent

00:55:17.579 --> 00:55:20.920
of a carriage return? Exactly. What new bizarre

00:55:20.920 --> 00:55:23.139
symbols would a future committee have to invent

00:55:23.139 --> 00:55:26.519
to visualize the invisible forces of today? How

00:55:26.519 --> 00:55:29.000
do you draw a static picture of a command that

00:55:29.000 --> 00:55:31.480
subtly adjusts a machine learning algorithm's

00:55:31.480 --> 00:55:34.159
bias? How do you graphically represent a protocol

00:55:34.159 --> 00:55:36.340
that silently trades a fraction of a cent on

00:55:36.340 --> 00:55:38.980
a high -frequency stock market in a microsecond?

00:55:39.360 --> 00:55:41.159
What would those new symbols look like? And more

00:55:41.159 --> 00:55:42.840
importantly, what would they say about what our

00:55:42.840 --> 00:55:45.469
society values and controls today? How do you

00:55:45.469 --> 00:55:47.969
draw the invisible forces of the 21st century?

00:55:48.650 --> 00:55:50.730
That is a brilliant question. Something deep

00:55:50.730 --> 00:55:52.929
to mull over the next time you stare at a blanking

00:55:52.929 --> 00:55:55.409
cursor on a blank screen. Thank you so much for

00:55:55.409 --> 00:55:57.369
joining us on this incredibly detailed journey

00:55:57.369 --> 00:56:00.789
through the hidden logic of ISO 2047. Keep questioning

00:56:00.789 --> 00:56:02.730
the invisible structures around you and we will

00:56:02.730 --> 00:56:04.130
catch you on the next deep dive.
