Tricksters are found in the mythology and stories of almost every culture. From Coyote to Prometheus to Loki, today is April 1st or April Fools Day a day we as a culture celebrate tricksters and pranksters. In cultural stories, or myths tricksters play tricks to teach or create changes that leads to growth. In Norse mythology which has been in the movies lately Thor would not have his hammer without Loki, nor Asgard it’s walls. This episode will be a little different from most as the guys discuss nine lessons a trickster would teach programmers.
- 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.
This being the April 1st episode Will appropriated IoTease. He describes an interesting piece of technology useful for those late night trips to the toilet. It is the IllumiBowl Toilet Night Light. A multicolored light allowing the user to chose their preferred toilet light color or a rotating color palette. It fits any toilet, is battery powered and motion activated.
Tricks of the Trade
Not to be outdone Beej seized Tricks of the Trade to discuss the psychology of tech support calls. When offering support be it part of the job or to a frustrated family member using a little social engineering can accomplish your goals without making the person you are helping feel stupid.
We threw Jason a curve ball with this episode coming out so soon after the previous one and he wasn’t able to master the audio for us. Beej did his best but is not the guru.
The idea that “no map is big enough to describe the territory accurately” was misattributed to Alan Moore actually it originates from Alfred Korzybski.