Hardware, Firmware, and Software – Biology, Culture, and Behavior 

Hardware, Firmware, and Software – Biology, Culture, and Behavior 

This article is part of larger context I e been documenting about my study of Anthropology and Computer Science, and how it changes the way you think. For example….

Hardware & Biology

I have always thought of Biology as quite similar to hardware. In fact, in the context of evolution, I use the words almost interchangeably. You get new hardware when you purchase a server, and new genotype/phenotype when you are born. In the case of hardware, this might represent the next generation of HP Server, in Biology this is your offspring. Repairs and augmentations can be made, but you ain’t getting new hardware until the next generation comes out. Generations change based on Darwinian evolution – variation and natural selection.

In hardware this means that with each generation, Product Managers and engineers choose what variation is available in a product line, then customer select which ones they want. The servers that sell well often go on generation after generation, whereas the lines that don’t sell are deprecated. If you know hardware, you will know the HP DL380 sold well for years and years producing models from G1 to G10 over a period of nearly 20 years. The complete history is interesting.

In biology, we don’t have so much control over the product lines, at least not ethically, as CRISPR Baby Scandle shows and Eugenics experiments of the early 1900s demonstrate. Instead, we leave the variation to non-deterministic, biological processes – aka sex and procreation. Then, mother nature, through competition decides who lives dies and finds a mate. Your line might succeed for many generations, it might not.

It’s interesting to note that every single one of us living today has a string of roughly 20,000 ancestors which succeeded in producing offspring. Every generation, twenty thousand times in a row, without fail. This is powerful. Long story short, biology and hardware are governed by Darwinian rules of engagement – we live and die, generation by generation.

Firmware & Culture

Firmware is different, it can be updated during the life of a server, albeit with some fiddling around. Historically, you needed special utilities to load the firmware, though the tools are getting easier. Honestly most people only updated it a few times, if ever, during the lifetime of a server.

Culture is similar. It can be changed, but it’s not easy. It requires large groups of people to make a conscious effort, typically involving verbal stories and books. Like firmware though, the tools are getting easier and the velocity of change is probably increasing. Now days cultural change happens through media like TV, movies and even YouTube.

Firmware is different than hardware though. Many of you have probably forgotten about Lamarck’s theory of evolution which competed with Darwin. Lamarck thought that if a Giraffe stretched it’s neck a lot during it’s lifetime, it would get longer (so far so good animals do grow and change). He also believed this “longer neck” could be passed down to it’s children (this ain’t how biology works – contwbtious epigenetics aside). Firmware is similar – updated versions may live on for multiple generations of servers, slowly having bugs fixed and features added over time.

While that doesn’t work with hardware and biology, it does work with culture – it changes during the creatures lifetime and it is passed on to their offspring in the changed state. It is Lamarckian in nature – who’d a thought.

Software & Behavior

The behavior of any specific program or individual can have wild variation specially (between instances – copies of software and individual creatures) and temporally (over the lifetime).

Software can be changed in memory while it’s running (temporal) – some programs self modify. It an also chabge spatially, as people copy and distribute it.

The same is true of individual behaviors, that is to say they change temporally, based on the age of the creature, and spatially, based on who the person is interacting with (style shifting in linguistics).

The study of this individual behavior is more the realm of Psychology than Anthropology, but the survival mechanisms within this individual behavior (Evolutionary Psychology) is of particular interest to the study of human evolution.

Suffice to say software and individuals are quite malleable.

Conclusion

A Server lives and dies in the market place based on the capability of it’s hardware, firmware, and software to function together as a unit which provides business value. Primates such as humans do the same, competing for resources as a single unit containing biology, culture and individual behaviors – the unit lives and dies together. All of the units, tied together as a product or creature is a powerful concept.

Next time you are at a coffee shop, look around – next time you are arguing with somebody on Facebook or Twitter, remember this framework. Each and everyone of us is the product of every generation before us. Every last one of our ancestors produced at least one successful offspring, with one hundred percent success, over the last 330,000 years, using almost identical hardware (brain, arms, legs, back, etc) – generations and generations of firmware – and 20,000 different copies of software. We are pretty amazing creatures, each and every one of us. We often focus on our differences without noticing what we have in common.

While this analogy, like all analogy, is imperfect, I love it because it helps put so many problems in context, quickly.

Read More

Computer Science & Anthropology

Computer Science & Anthropology

Anthropology and Computer Science don’t typically seem like they would have a lot of overlap, but they do. Each focuses on how discrete units change temporally and spacially. One focuses on human evolution, the other on engineering – one on statistics, the other on digital logic. In Anthropology, at least in the US, we study a lot of Biology, Linguistics and culture. We learn and practice methods of setting up experiments, testing and critquing, theory, reading and critiquing hundreds of papers. In Computer Science, we learn software engineering and algorithms, writing hundreds of hundreds of functions and programs, constructing software and debugging.

Studying Anthropology and Computer Science leaves a person with a strange view of the world. Everything around them seems to have predictable patterns – humans, machines, and the interactions of both. You see patterns in everything. You see patterns most other people don’t recognize – and you can make better decisions quicker. In fact it leads you to frustration when debating other people.

Thinking in this way, has led to the development of some personal theories, ideas and best practices. These theories relate to a lot of things that Sam Harris, Jordan Peterson and Eric Weinstein talk about. All of these people are extremely intelligent and very educated, yet I just don’t hear them frame these questions in the way that I think about them – in the frame of evolution.

I’ve developed a few theories and a few best practices that help me slice and dice arguments very quickly, and I can honestly say have helped me immensely in my personal and professional life. The plan is to flesh each of these out in follow on blog entries.

Theories, Analogies, and Best Practices

  • Hardware, Firmware, and Software – Biology, Culture, and Behavior – hardware is like biology, it is difficult to change – really it can’t be changed much until the next generation comes out. Firmware is like Culture, it can be reprogrammed, but it takes special tools and is often hard to test, and hard predict the results of an upgrade. Software is like the individual behaviour of a nuclear family – mother, father, and offspring. It’s the most easily changed, and also has great variation between instances.
  • Culture and Religion – Pools of Symbols – we know that humans operate on symbols, so it would make sense that these symbols would be pooled together in archetype and provide Darwinian survival generation after generation, like genes in a gene pool. Religion and architype feel so profound because they really are. If all there is relative value, these are pools of relative value.
  • Developmental Biology, Culture, and Behavior – we know that time has a profound effect on Biological development, why wouldn’t it have the same effect on Culture and individual behavior?
  • Symbols are Like Sprites in Video Games – We don’t operate on the underlying data, we operate on the symbols. I have seen this many a smart person to bad conclusions about evolution and human behavior.
  • Thinking of Things in Terms of 330,000 Years – for the vast majority of Human history, the smartest person in a group of 20-30 people was the one who led. Grouping symbols in emotionally engaging ways helps a group survive. Hence, the religious leader in any group was also the academic leader, and most likely the physical leader as well. It’s only in the last 10,000 or so years that this began to change. I always struggled to explain why intelligent people could believe in God, until I had this epiphany. I am not religious.
  • Thinking of Things in Terms of 25,000 Generations – when my daughter was born, I had the epiphany that her eyes, ears, voice, nose, arm length, gate, attitude and even intellect was the permutation of 25,000 generations of ancestors. The vast majority of her is probably made up of duplication of traits in ancestors, but there is also probably just a hair of new variation.
  • Thinking of Things in Terms of The Nearly Neutral Theory – things don’t have to be survivally advantageous to fix themselves in the genome, nor in culture, nor in individual behavior. They just can’t be so deleterious as to remove the individual from the gene pool. Hence, we witness all kinds of irrational behavior
  • Absolute and Relative Value in the Context of Human Evolution – there is no such thing as absolute value in evolution, everything is based on probability. Relative value helps construct everything around us and give meaning to life. I think it’s why Jordan Peterson’s theory about accepting responsibility actually makes people happier.

Strangely, when you study Anthropology and Computer Science you get comfortable with crossing the threshold between digital and analog, logical and statistical. Anthropology uses a lot of statistical testing, whereas computer science uses a lot of digital logic testing.

Nonetheless, they both focus on how things change temporally and specially. There are even second order equations in both, like developmental biology and self modifying programs.

But, you must also take care not to mix the two where it is unethical. In software it is ethical to be ruthless with your software changes, the same is not true when dealing with individuals who experience the world and suffer.

I hope you have a chance to dissect some of my articles, and critique some of these ideas.

Read More

Explaining Race Conditions to Non Programmers

Explaining Race Conditions to Non Programmers

A few weeks ago, I was down in Columbus at a coffee shop. This place happened to have a bathroom which needed a key to use. I went to the counter to ask for the key because mother nature called, but the key was nowhere to be found. Somebody was already in the bathroom and had the key with them.

No problem, I stood outside the bathroom door and soon enough, a gentleman appeared. In a knowing manner, he offered me the key. In a moment of self admiration for my wit, I declined the key. I grabbed the door before it shut. We both smiled, knowing that I was fine getting in the bathroom without the key.

I felt proud of my efficiency. I didn’t need to hold up use of the key. As a sat down, as Gandolf would say, “things were put into motion which could not be undone.” But, it was only then that I realized this bathroom didn’t have stalls. I was exposed.

This was a race condition waiting to happen….

At any minute, somebody could walk in and I was trapped. The key was now happily laying on the counter with the Baristas. Any unknowing customer could grab the key and head toward the bathroom.

This had all the making of a classic race condition in programming – self admiring wit, gloating thoughts of efficiency, and a lack of foresight.

So, the next time you use a public bathroom which needs a key, remember to take the key. For those of you that do program, remember to do proper file locking, or lock management in a distributed system.

Remember the bathroom rule!!!

Read More

Netflix – Technology Wizards or Good Content?

I love the content they produce like Orange is the New Black, Narcos, Stranger Things, and House of Cards. But, remember back to before Netflix produced this content? They were struggling with subscribers, under attack from cable companies, and their future looked very, very uncertain. So, how did they turn the ship around?

They started producing their own content. And, let’s be clear – software engineering at Netflix did not make that decision. This is a quintessential “business decision.” This was a decision to create value for their market – people who watch content through the Internet. They were a content distributor and they decided to enter an adjacent market – content creation.

Yet, time and time again Netflix is referenced as some kind of technology wizards, contributing the OSS Stack, moving to the cloud for almost everything, hiring only the best and the brightest.

They are held in high regard for “disrupting” the cable industry – but, for the wrong reasons. It’s not their technology that is their differentiated value proposition to the market. It is their cunning move to create content akin to HBO. At the same time, this places them in a stronger position to negotiate better contracts for their distribution business.

I would argue that they have succeeded, not because of their technology, but despite it. Their end user experience is rather lacking, yet they keep attracting and retaining subscribers. Here’s a few examples.

1. They finally, just recently added the ability to download movies and watch them offline. Even now, not all content can be downloaded, even some they produced, which makes no sense to me. Google Play and Amazon Prime have had this since almost the beginning of their service, yet nobody hails them as some great innovators.

2. It takes forever when you rewind or fast-forward. Again, Google Play and Amazon Prime both have smoother, better experiences.

3. Subtitles get blocked when the video is paused. Something thst is just really annoying when the reason that you paused it is so that you can read it slower.

So, the next time you hear somebody call Netflix a technology company, just quote their own CEO:

We spend money more like a media company than a tech company

Read More

Intrinsic Value of Free Software?

Intrinsic Value of Free Software?

I recently read an article by Benjamin Mako Hill called When Free Software Isn’t Better. This article addresses the fundamental argument of importance, between the Open Source engineering paradigms and political Software Freedom. For an outsider, this argument can read more

Read More

Allocation and Consequence

Pigeon FeathersThis weekend, I found the consequences of a hawk catching a pigeon in my driveway. It basically looked as though a grenade had blown it to pieces.  There were about a hundred and fifty feathers spread all over, strangely, there was not much red in the picture. This led me to a few thoughts on economics.

Also, this weekend, a couple of friends of mine, were having an extremely esoteric argument about version control systems. This is all the rage in programming right now.

It is wonderful that we have enough free time to discuss these obscure topics, but it is also one of the primary reasons that economists are led to believe that they are the only ones thinking about the “important” or “real” problems.

Seeing the pigeon, bothered me in a strange way, perhaps that I am not thinking about the important problems enough. Second, it’s body was completely annihilated, it is rare that we humans are left like that. Even if we die from a car accident or cancer, our bodies are usually left in tact for a funeral and burial. Humans like to control this process. To leave another human to be eaten by an animal is an insult to our pride. We are obsessed with the process.

The free spirited mind spends so much time thinking and arguing about the minutia, but in the end success or failure is binary, life or death. It is similar to how kittens play, while adults hunt and defend.

Your business and/or professional model must work or you will die. You can struggle all you want and still, indeed, fail. There is nothing wrong with incorporating new thoughts and techniques into your hunt, but do not place too much time and energy into fine tuning means to an end, while loosing sight of the end. In fact, we all fail eventually!

Read More