- Numbers aren’t things, they represent things.
“The square root of negative one says to pi ‘be rational’ to which pi responds, ‘get real.'”
The ability to express numbers is incomplete. Try to express 1/3 or pi as a decimal. You can’t do it with exact accuracy. Numbers represent a concept. Words are the same way.
What does ‘fast’ actually mean?
What does ‘stable’ mean?
What does ‘Complete Developer’ mean?
These are all terms we define fluidly or situationally. What is fast to the turtle is slow to the rabbit. What is stable to Facebook API developers is chaotic to anyone else. We chose the name Complete Developer so that we could leave ourselves open to discuss many topics affecting developers. Also, there are a limited number of good domain names available in the .com space.
- There is complexity all the way down.
“It’s turtles all the way down.”
What happens when you pull down a page from the web? It appears simple and quick but those words are fluid and belie the complexity of what is taking place in a relatively short amount of time.
- HTTP handshakes underly the page and all it’s assets
- TCP handshakes underly HTTP
- IP handshakes underly TCP
- Ethernet underlies IP
- IEEE 802.3u underlies Ethernet
- Hardware Interpretation of signals underlies IEEE 802.3u
- Manufacturing complexity underlies the hardware interpretation
We deal with this complexity through abstraction.
- Your are not one Person. You are a collection of interfaces.
“I don’t hide behind masks, I bring out the part of me most appropriate to the situation.”
Think about how you act toward your spouse, your kids, your boss. Each of these you treat differently. You do not use the same tone when disagreeing with your spouse as with your children. Now compare this to object interfaces.
Several years ago the concept of the masks we wear was popular in pop psychology. For many of us it is less about putting on a mask than it is about interfacing with different people in our lives.
- It is impossible to directly perceive anything.
“What the joke displays is a switch in perception. This is important in changing the way we think.” ~ Edward de Bono
Look around the room, do you see things that appear solid? They are mostly empty space. Perception is heavily dependent on pattern matching, and pattern matching misses.
Perceptually everything you experience has already happened by the time you receive the inputs and process them in your brain. It takes time for your sensory organs to convert data into a neuronal transmission and more time for that to reach your brain.
- It is impossible to put anything out in a way it can’t be misinterpreted.
Rule 13 of the Internet: Anything you say can be turned into something else.”
This derives from facts that there is complexity all the way down and you cannot directly perceive anything. Communication is a protocol where sometimes the sender is bad, other times the receiver. You’ll see this in everything you in computing at some point.
The entire genres of romantic comedies and sitcoms have been built on this principle. Go back and watch your favorite sitcom or romcom and you’ll see this trope is pervasive in the genres.
- Life is a series of feedback loops, not linear relationships.
“A bunch of privates were sitting around a campfire. One asks, ‘Sergeant tell us a story”
The Sergeant begins, ‘A bunch of privates were sitting around a campfire…'” ~ Joke from BJ’s grandfather
Very few things have perfect linear relationships, most are non-linear. They work until they suddenly don’t work any more. “Feedback loops take the system output into consideration, which enables the system to adjust its performance to meet a desired output response.” ~ Wikipedia
The human mind is alarmingly terrible at predicting non-linearity. Our language roots are for primitives with sticks hunting animals. We are using our language in a society with space travel, global communication, and increasingly better systems for everything.
- The universe doesn’t care.
“I like to say, the universe doesn’t care about our common sense. We have to force our ideas to conform to the evidence of reality rather than the other way around. And if reality seems strange, that’s okay.” ~ Lawrence Krauss
This can be good or bad. Your results are heavily influenced by your perception. You can see it as meaning what you do is inconsequential or as freeing.
- No map is big enough to describe the territory accurately.
“A map is not the territory it represents, but, if correct, it has a similar structure to the territory, which accounts for its usefulness.” ~ Alfred Korzybski
Abstractions leak because they are simplifications. Nothing in the field is not an abstraction. Computer science is built across the top of electrical engineering, electronics, material science, and mathematics. If you dig deep enough you will come to one of those fields because computer science is wrapping and abstracting them. It puts them in a form that we can deal with.
The previous episode covered modelling which is basically the creation of abstractions. In doing this it is important to remember that the abstraction, the model, or the example is not the concept but a way of conveying the concept in simplified terms. This is why philosophers and teachers use parables to convey difficult concepts.
- If A changes B and the change in B can be observed from C, then there is a communication channel between A and C via B.
Communication – the human connection – is the key to personal and career success.
~ Paul J. Meyer
If Will writes a statement on the white board and BJ can see the white board. Will has communicated with BJ through the white board. This can have alarming implications for security. SQL injection being the most obvious. A man with the last name O’Malley enters his name with the apostrophe and breaks the system. He now knows that the system is vulnerable to SQL injection attacks.