
Dizzying but invisible depth - rhdoenges
https://plus.google.com/112218872649456413744/posts/dfydM2Cnepe
======
Timothee
This is part of the things that I list under "human-built things I technically
understand (more or less) but are still completely baffling if I stop and
think about it".

Amongst these:

\- same example with Google Instant: the fact that what I type goes to Google
and back that fast and that I _never_ get somebody else's page is pretty
amazing;

\- CRT monitors: a flow of electrons is bent with electric current to hit a
specific point on the screen, for millions of dots at least 30 times a second
and it never misses its targets; (leaving aside that we were able to get a
constant flow of electrons in the first place…)

\- car engine: fuel is injected, compressed, lit up in cylinders at 3000rpm to
make a 4,000 vehicle move at 65mph and the engine barely ever have hiccups.

\- cell phones: I'm driving in California and can talk to my Dad who is in a
high-speed train in France. It works and you can't even notice a significant
delay.

And there are obviously so many more things like these…

It's like this Louis C.K. bit about people who complain about being stranded
40 minutes on the ground before taking part of "the miracle of flight". We
should spend more time amazed at when it works than pissed at when it doesn't.

~~~
Cushman
I think that's a red herring.

I mean, isn't that just the marvel of abstraction? I can show you how it
works, on a basic level: See, it goes around like this. This connects here.
That switch opens. This moves back, and that's the behavior that we're looking
for. Easy.

Why is it that when that same thing happens a hundred times a second, the
emergent behavior suddenly becomes mind-boggling? It's just the same thing,
_faster_. You already understand it. Your brain cant work fast enough to see
what's going on, but thats exactly why we built the machines: to translate
very fast things into things slow enough to understand. The complexity of the
speed is illusory.

It strikes me as like a small child, watching the cars go by-- Zoom! Zoom!
Surely that is the most amazing thing that exists. But when she grows up, she
learns that _everything_ has a velocity, which has to be _some_ number, so it
might as well be high. The interesting things are still interesting, moreso
even, when it's going very slow. Just going fast is kind of boring.

What's cool are the things that emerge when you abstract. You have a car, and
you know why that works. The connection between gasoline and forward motion is
straightforward enough. But as soon as you have three cars on a road, you have
_traffic_ , and that's something fundamentally new. And you can analyze the
traffic, figure out how it works-- but can you see how traffic is
fundamentally dependent on the behavior of gasoline? And gasoline on the
behavior of a refinery?

And what happens when the refinery is run by people who drive to work? Now you
have a recursive system. Can you still understand it? Maybe today. By tomorrow
it will have changed itself. Can you understand the change?

What happens when you think you understand the change, so you make a
prediction, but your prediction affects what happens, making you wrong? But
you take this into account when you make your prediction, becoming right
again, except now you're a part of the recursive system, and there will
_never_ be a right answer. Understanding has become _impossible_.

Now _that's_ baffling.

(And not to get all political, but this is also why a properly functioning
government is not merely a hard, but an intractable problem. No matter how
much you know what you're doing, you can't control something that controls
you... But that doesn't stop us from trying.)

~~~
suivix
>>But when she grows up, she learns that everything has a velocity, which has
to be some number, so it might as well be high.

It's annoying how you say 'she' because it distracts me from your content into
thinking about feminism.

~~~
Cushman
You must get annoyed a lot.

------
ChuckMcM
I found this disheartening. Life is complex but its not unknowable.

One of those 'life choices' I faced when I entered college was whether or not
I wanted to 'program' computers or to 'build' them. These would guide the
choice of EE or CS degree. My father asked if people with EE degrees were
allowed to program computers, I said of course they were. Then he asked if
people with CS degrees were allowed to build them, and the answer was no they
were not generally. So if I didn't know what I wanted to do, I should get an
EE degree since then I could do either.

Turned out to be pretty sage advice and knowing _how_ the computer does what
it does really helps program it. Especially if you are trying to wring every
erg of performance out of it. When I graduated with my EE degree (and a minor
in CS) I was proud of the fact that I could write a database in a languge for
which I wrote the compiler on a computer architecture that I designed using
circuits that I understood down to the physics of the PN junctions that
governed the behavior of semiconductors. (It really is math all the way down
sadly)

That being said, I firmly believe the human brain has a limit (which may be
case by case) of how much stuff it can hold at one time. And the notion of
abstraction, especially modularization and testable components, makes complex
systems possible.

This comes up in a variety of contexts. Sometimes I interview folks who can
draw a nice architecture on the white board with boxes and arrows and such. So
I ask them do go into one of the boxes, and lets draw that out in detail. And
then those sub boxes I want to go into their detail as well. My goal is to
understand that the candidate understands that 'boxes' are only a good way of
thinking about something if you understand what the box is really modelling.

A good example of this is that naive people treat a hard disk drive like a
box. It has a port you tell it to read logical block A or write logical block
B and it does some magic and makes it happen. But really it screws up now and
then, and it has very variable performance. So if you can't explain how you
have accounted for these properties of your box then you're not thinking
deeply enough about it.

Sometimes an 'architect' type (you know the type, Joel called them
Architecture Astronauts as I recall) they dismiss your whole area of expertise
as a box in their model. This can lead to some pretty dismissive thinking by
the 'doers' in the crowd, but it is important to know that without abstracting
that thing you're working on, the architect person wouldn't have enough brain
capacity left over to see the 'bigger' picture. As long as their picture of
your box is accurate, you should cut them some slack.

The bottom line for me is that it can be 'amazing' at how the complex system
runs but words like 'mystifying' and 'dizzying' make me nervous. If you're a
software developer and its 'mystifying' how your program can do what it does
that is a problem you should address. There was an excellent pointer to 'what
every programmer should know about memory' and there should be equivalents to
'networks', 'processor architecture', and 'disks'.

------
kiba
The technology that civilization creates is only possible because humanity
specializes. Humans aren't so smart by themselves, but we can do a lot of
thing if humans possess specific knowledge.

For example, one guy specialize and dedicate his life to metalworking. If I
try to know everything in the world, I could barely scratch the surface of
what that guy learned.

People can even specialize in multidisciplines. They don't know as deeply as a
specialist in a subject area but they know two area well and combine them into
useful combination.

It would seems that today's problem is more about the limit of human beings'
ability to store and synthesize information across vast disparate field. In
other words, we generated so much knowledge, but so much is just kept there
not being used.

Spaced repetition is a good example. It's a very powerful memorization
technique, but it is not being used in colleges and schools, except those who
discover it on accident.

It's also a timesaving tool in the programming profession. Instead of googling
and wasting 5 minutes for answers to our programming problem, we can save 5
minutes for many common tasks we memorize. It won't save us from debugging
woes but at least we get to the important programming problems faster.

There's also a storehouse of reliable information on self improvement written
by psychologists who done experiment and research things like willpower and
discipline, why it fails, and so on. Instead, we got distracted by techniques
that seems to work but have no scientific basis, or we get distracted by self
improvement gurus that have no idea what we're talking about.

We are specialists but we miss a ton of useful stuff that would be useful to
our specialization. It's like missing a thousand useful book every year
because you can never read them fast enough.

~~~
jamesbritt
Perhaps, but:

"A human being should be able to change a diaper, plan an invasion, butcher a
hog, conn a ship, design a building, write a sonnet, balance accounts, build a
wall, set a bone, comfort the dying, take orders, give orders, cooperate, act
alone, solve equations, analyze a new problem, pitch manure, program a
computer, cook a tasty meal, fight efficiently, die gallantly. Specialization
is for insects."

    
    
         -Robert A. Heinlein
    

[http://elise.com/quotes/a/heinlein_-
_specialization_is_for_i...](http://elise.com/quotes/a/heinlein_-
_specialization_is_for_insects.php)

~~~
pewpewlasergun
Why is this quote worth considering or insightful? What does it add to the
discussion? Have you done half of those things? Did you really get anything
out of it? Some insects specialize, some do not. One could just as easily say
farming is for insects, or flying, or a multitude of other things. Just
because several species of insects do something does not mean we should not.

This quote, along with a few others, seem to be always dropped into internet
discussions with no context or explanation, and I never see them add to the
discussion.

~~~
JoeAltmaier
Sure, lots of us have done more than half of those things. Its supposed to be
illustrative of how a person is a gadget for figuring out how to do whatever
comes along, instead of being programmed for a particular life plan.

But you knew that. I'd have to wonder why the pedantic complaint?

~~~
JoshTriplett
Because you didn't say any of it. The quote is amusing; using the quote to
contrast with the post it replied to adds much more. And personally, I got
something entirely different out of the quote than you did, and I found the
point of view you just explained interesting.

------
BoppreH
Reminds me of "Nobody knows how to make a pencil":

[http://alexbarnett.net/blog/archive/2006/11/18/Nobody-
knows-...](http://alexbarnett.net/blog/archive/2006/11/18/Nobody-knows-how-to-
make-a-pencil.aspx)

It's the same thing at every human technology. And this in turn reminds me of
Mostly Harmless, by Douglas Adams, where the protagonist finds himself in a
simple rustic village. He is unable to reproduce any of the technology from
his civilization and settles as a sandwich maker.

------
tamersalama
This article brings to mind "If Software Is Eating The World, Why Don't Coders
Get Any Respect?" discussion - <http://news.ycombinator.com/item?id=2919708>

Perhaps by making technology a Black box, we unintentionally shielded those
who deserve the credit (social and monetary) from receiving it. Maybe even
allowed some grey-area experts from controlling an industry with ones and
zeros at its core.

------
erikstarck
I have my 14 months old daughter playing right next to me. Two cells merged
and there was life, giggles, tears, words, laughter.

Now, _that's_ dizzying.

~~~
pjscott
As amazing as it is, it gets far more dizzyingly complex once you look at the
biology underneath it.

------
teyc
The real problem is in people patenting ideas that are of dubious innovation.
In fact, the patent office should negate patent applications if identical ones
appear within months of one another. This is because it shows that there is no
genuine leap of innovation that has occurred.

~~~
saulrh
This doesn't quite work; some of the most creative, innovative ideas in
history bubbled up from the collective unconscious in several minds at the
same time. Just look at the number of nobel prizes that get split between
people that discovered _exactly_ the same thing at _exactly_ the same time but
completely independently.

~~~
wtallis
You're misunderstanding the purpose of patents. They're not a reward to be
granted for every useful invention. Patents exist only to be an incentive for
innovation. In almost every case where several inventors are competing to get
the invention ready to patent, there is enough natural incentive that the
patent is not necessary. In those cases, granting a patent can just as easily
slow down the pace of technological progress, by forcing every inventor that
didn't get the patent to either stop working in that area or negotiate a
patent license before they can continue working to improve the invention.

~~~
saulrh
They give an incentive for innovation by granting the original inventor time
to bring his invention to market before an established entity uses its
existing resources to block him out. This model isn't very useful to software,
but it works perfectly fine with cars and tractors and other things that take
five years from concept to product.

One trivial improvement might be to split patents the same way that major
research recognitions are split. If two people come up with something
simultaneously and independently, why not give it to both of them?

~~~
quadhome
You're both missing the very important compromise of patents.

The temporary monopoly patents give were and are understood to be harmful.
But, they're less harmful than a world of trade secrets. Which is what we had,
before patents. See: guilds.

So, we the public offer intellectual property. And, in return, the details of
that property become public from the very beginning. And, after a few years,
everyone has freedom _and the instructions_ on how to make or do whatever.

~~~
teyc
Exactly. If the state of the world is that people can separately come up with
the same "trade secrets", then there is a case against it being patentable.

------
rickmb
In my opinion this post ignores the significant divide between the general
understanding of hardware and software.

Most people have a general idea of how an internal combustion engine works,
how their fridge works, how a tv works, hell, even about how a nuclear power
plant works. Most people wouldn't know how to make any of these things, but
it's not exactly a "dizzying invisible depth" either, and most people are
capable of making informed decisions without being engineers.

When it comes to software however, most peoples understanding remains
completely at the surface. I don't believe this is something we should accept
as "normal", because this is exactly what leads to many of the issues our
society is currently struggling with. Not just software patents, but many of
the current security and privacy issues or the huge unemployment.

The general understanding of software was not, and still isn't part of peoples
culture and education in the same way a basic understanding or hardware has
always been. This significantly undermines the decision making on all levels
of society, from government policy to personal choices. The patent mess is
just a symptom.

------
idan
I often try to explain this to friends, but in a shorter way:

Driving a car is essentially a controlled explosion taking place every second
about three feet in front of your face—and yet this very dangerous and messy
process "just works" for millions of drivers every day. We are more afraid of
other cars than we are of the fireworks right in front of our face. That's
pretty amazing.

------
icebraining
Obligatory XKCD: <http://xkcd.com/676/>

~~~
JBiserkov
<http://xkcd.com/485/>

------
Splines
Reminds me of a thought I had about babies: How does that little bunch of
cells grow into a living, breathing human being? Surely there isn't enough
information in there to do that.

Answer: It can't, and it doesn't. Not without the mother.

(I have no idea if this is indeed true, but I like the loopyness of the idea).

~~~
jarek
And here I was thinking this thing called DNA carried the information.

~~~
rickmode
Not all of it.

~~~
cooldeal
What's about egg donors or surrogate mothers then? Doesn't the baby turn out
like their parents?

~~~
pshc
You can't bootstrap in a vacuum. For one, the baby will inherit the surrogate
mother's bacterial line.

------
texel
Sort of puts arguments about "leaky abstractions" in the appropriate
perspective. Even assembly has a lot of turtles holding it up...

~~~
tomjen3
In fact on an x86 machine the byte code that programs are written in gets
translated into a specialized micro code which is then executed.

So even assembly isn't the lowest language.

------
tripzilch
Well, this kind of puts a new spin on the saying "any sufficiently advanced
technology is indistinguishable from magic"!

------
sylvinus
As Matt Ridley puts it in his TED talk (
[http://www.ted.com/talks/matt_ridley_when_ideas_have_sex.htm...](http://www.ted.com/talks/matt_ridley_when_ideas_have_sex.html)
) :

Nobody on earth knows how to build a computer mouse (all by himself).

~~~
wazoox
Actually nobody on earth knows how to make something apparently as simple as a
pencil (obviously much, much simpler than a modern computer mouse).

<http://www.fee.org/library/books/i-pencil-2/>

~~~
joezydeco
I'm surprised nobody has mentioned the Toaster Project, where the artist is
attempting to build a complete toaster from scratch (mining the metal out of
the ground, smelting, etc)

<http://www.thetoasterproject.org/>

------
Aissen
Same submission from a few hours ago:
<http://news.ycombinator.com/item?id=3115176>

(Apparently multiple sign-on URI leaked on my earlier submission)

------
Hitchhiker
People who got somewhat of a buzz reading the above may enjoy James Gleick's
new book @ <http://around.com>

------
hsuresh
This is similar to one of my favourite interview questions. I usually ask my
candidates to explain everything that happens from the time they type an
address in their browser till when the page they requested is rendered. You
can find a lot about candidates with this question.

------
jagatiyer
We need a new human layer to truly make meaning and create value over all the
technology.We need all this to come together to change our lives in ways that
parallel the invention of the wheel and the computer.Its clear the next big
thing is Personal webs!

~~~
Raphael
Are you talking about APIs that work directly with our biology? Like, get/set
data in the brain?

------
Dn_Ab
Keep going and it gets simple again.

You put a bunch of leptons and quarks in a specific ordering and they start
arranging other atoms in ways to help them understand their own specific
arrangement.

That they can is why I think it is simple. in the sense of elegant.

------
ScotterC
I've understood this for quite awhile but have had a really hard time
articulating it. This piece is a godsend.

------
pavedwalden
I simply could not get past the Groundhog-day intro.

------
ctdonath
Google "I, Pencil".

------
dos1
Was I the only one who was thinking: "Jeez, I've seen some of the code that
runs these complex systems, and the really amazing thing is that they ever
worked at all!" :)

~~~
barrkel
No, everybody thinks that. I'm strongly reminded of my commentary on Ryan
Dahl's rant a few weeks ago - <http://news.ycombinator.com/item?id=3056534> \-
"Everybody can look at a simple thing like a submit form in a web browser, and
sigh at the inefficiencies in the whole stack of getting what they type at the
keyboard onto the wire in TCP frames, the massive amount of work and edifices
of enormous complexity putting together the tooling and build systems and
source control and global coordination of teams and the whole lot of it, soup
to nuts, into a working system to do the most trivial of work."

------
zerostar07
I actually find the _simplicity_ of computing devices staggering and
beautiful. If the earth was wiped out tomorrow, one would only need to
remember what a turing machine is and how to make a semiconductor to rebuild
them.

Also, the rant becomes too broad to have a point.

~~~
0x12
Good luck with that.

Just making glass is going to take you a while.

Making semiconductors at a scale that you can start thinking of building a
working computer will take you quite a bit longer.

It's simple in principle. It would be far easier to stuff a bunch of people in
rooms with paper (assuming you could make that) and pencils (ditto) and have
them execute your program.

~~~
mechanical_fish
Among other things, "how to make a semiconductor" is like that joke about how
to make a million dollars: "First, you take a million dollars..."

You're going to spend years just bootstrapping your metal refinery to the
point where you can bootstrap your machine shop to the point where you can
bootstrap your chemical industry to the point where you can produce undoped
silicon of sufficient purity to make a decent integrated circuit. Sure, maybe
you can slap together a handful of cheesy transistors to rival the first-ever
transistor (Google up the picture of the first transistor; it's _hilarious_ ;
you can practically smell the hot glue wafting from that picture) but it takes
a bunch of transistors to make a computer, and you'd probably like your
computer to get through three whole clock cycles before melting.

You might actually be better off just recapitulating history by starting with
vacuum tubes. You'll need to master glassblowing and vacuum pumps to build
semiconductors anyway, and tubes have lots of handy uses. (You could build an
oscilloscope, which you will also need.) But you'll need to bootstrap your
metal wire industry (generators aren't that hard to make _if_ you can get
hundreds of continuous feet of insulated wire...) and note that you'd better
be very careful until you've had time to bootstrap your plastics industry;
there are scary stories from the early days of TV when they had high-voltage
circuits but nothing to insulate the wires with but varnish and paper...

~~~
prodigal_erik
Jeri Ellsworth managed to make transistors in a pottery kiln, starting with
modern wafers. She said it took three years of research and interviewing
graybeards who were working on it in the 1970s. Makes me hope she wrote that
stuff down.

~~~
0x12
The wafer is the hard part.

That's why I suggested making glass first, it's a good primer on the kind of
gear that might one day lead up to the tooling you'll need to make silicon
pure enough to make a transistor.

You'd be _much_ better off choosing a road that leads via relays, that's just
metalworking and some coating. Vacuum tubes would still be an order of
magnitude easier than silicon.

Think sandy beach + pit mine, before you turn that into a working transistor
you're going to be busy for a while.

~~~
JoshTriplett
> You'd be much better off choosing a road that leads via relays

One Portland State University professor built a relay computer, with an ALU:

<http://web.cecs.pdx.edu/~harry/Relay/>

Quite impressive to see it in action.

~~~
0x12
Thank you for that link. I took the liberty of re-posting it separately, it is
one of the coolest things I've ever seen built. Besides the memory (and that
would just add another couple of 10's of thousands of relays for a usable
machine) that looks like the shortest direct path between 'man on a beach' and
having a working automatic computer with a practical degree of reliability.

~~~
JoshTriplett
"practical degree of reliability" seems somewhat debatable; it apparently
burns out components fairly often when running. IIRC it uses quite a bit more
juice than it needs to, which might have something to do with it, so perhaps
it could be made more reliable.

~~~
0x12
Relay contacts tend to spark when they engage each other. You can get rid of
most of that sparking by adding diodes but that would be cheating
(semiconductors again), to a lesser extent using small neon bulbs across the
coils (that will still take them up to 90V though).

With 'practical' I meant that you would be able to run programs to completion
for for instance numerical problems.

Vacuum tube computers suffer from different problems (such as tube filaments
burning out) and I really wonder whether a well designed vacuum tube computer
would be more or less reliable than a well designed relay based computer.

Vacuum tubes got awfully small in their final days but the voltages involved
and the heat make me believe that relays would probably be more reliable, but
likely also more expensive and much slower.

~~~
stan_rogers
A capacitor will deal with the sparking -- they've been used (under the name
_condenser_ ) in conjunction with _points_ and mechanical distributors in
internal combustion engines for years.

This all presupposes a memory of methods to create reliable electricity,
though -- including rectification and filtering, if that memory involves
alternators. A purely mechanical representation of computing would probably be
more practical in a forced Iron Age reboot of society. A treadmill-powered
version of Photoshop would be a bitch, of course, but number crunching (at the
level needed for serious societal progress) would come fairly quickly.

~~~
JoshTriplett
The relay computer does use a capacitor: a huge 1F capacitor.

~~~
0x12
That's to stabilize the power supply, not to help with avoiding contact
erosion.

