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

Injury is an Opportunity for Growth, Not Just Recovery

Injury is an Opportunity for Growth, Not Just Recovery

A few weeks ago, I injured my back boxing – badly. My left hand is numb and feels like I hit my funny bone – all the time, all day and night. It kinda sucks. I can’t squat, deadlift, run or ride a bike. These are things I really miss, but it’s going to be a few months, at best. That said, I have learned some very interesting things from this injury.

  1. I had to completely change my mindset – quickly. The week I injured my back, I still squated 310lbs three times. Then, three days later, I failed getting my deadlift to 350lbs – only made it to 275lbs. Lighting pain was shooting up my back in two places, but I was in a growth mindset. I was in a heavy week of training where my mind thought I was going to break person records. But, I figured out quickly that if I kept this mindset, I would become even more injured. I couldn’t walk right for two days. I had to take a step back and create new goals. That was very difficult mentally – depressing even.
  2. I had to learn to experiment again. I have mentioned this before, but when you simply can’t do something, you have to change your mindset. I almost killed myself squating 310lbs (three times I might add) with my back this way. To continue is madness and will genuinely cause me more injury, so I had to go back in the gym and experiment with things I didn’t ever want to do, like leg presses.
  3. I had to rethink strength training. I am a fairly strong advocate of the Mark Rippetoe method of Squatting. It moves the most weight with the most muscle mass over the biggest range of motion. Thus, it is the most efficient time splent in the gym. That said, I can’t do it. But, I can leg press 410lbs, ten times, do back extensions as a separate exercise, and do pull-ups without bothering my back. This gets me close, but moreover it gets me thinking differently. This leg press is WAY more weight than I can squat. It is stimulating more quad growth, which is useful in Jiu Jitsu with my guard. Coincidentally, we are focused on guard for the next 6 months. Growth, not just recovery.
  4. When I hear guys at the gym talk about injuries, my ears perked up. I am a lot more empathetic. It wasn’t that I wasn’t sympathetic, but injuries just didn’t interest me that much. For that, I feel like a bit of an asshole. I also feel a bit wiser now. Probably, I will be a better day for this 🙂

I am not going to stop training because of this injury. In fact, everything I have read says you need the strength training to recover faster and better. I am still doing:

  • Strength training 2/week
  • Jiu Jitsu 2/week
  • Yoga 3/week

Power lifting may be out for a while and I may never do boxing again (we shall see), but I am using this as an opportunity to strengthen my back (pull-ups, back extensions), up my Jiu Jitsu game (leg presses), and learn 🙂

Read More

A Product Management Conference in Cleveland? Who’d a Thought.

A Product Management Conference in Cleveland? Who’d a Thought.

Why would you attend a product management conference, when your time might be better spent learning technical skills or studying some new open source project? Well, the short answer is because there are aspects of product management in almost all jobs now. With the cloud and service based thinking, we all have to think about consumption, pricing & packaging (chargeback), lifecycle, and where we are going to provide value in the marketplace – even if it’s private marketplace, aka private cloud. Or, because the world loves hyperbole, I sometimes say – “we are all encouraged to think like product managers.” But, what does that mean?

It means we need to think beyond just the implementation and along the axes (yes, this is the plural of axis) of time and value. Time is hardest thing to do for primates to visualize, let alone other mammals. Value is another abstract concept that we aren’t very good at measuring without dollars. Both take training and practice. Product Management (PM) has been a profession for a long time. Both Pragmatic Marketing and Serius Decisions have been building and delivering product management training for a long time. As an aside, I have taken a good bit of the Pragmatic Marketing training, and it is quite good. They have modules like Focus, Build, Launch, Market, Price, etc.

In pursuit of personal growth as a Product Manager, I spent a few days in Cleveland, Ohio attending a product management conference called INDUSTRY Cleveland. I live in Akron, so it wasn’t far. There were some some really good talks. Here’s a list of some of the ones I found interesting with a bit of commentary:

So, if you are a senior architect, developer or even a sysadmin, I would suggest spending a little time to get a product mindset. It will really help with your interactions with customers and product management. It will also help you serve your peers better when you are building internal tools. And, who knows, you might find another avenue for your career growth…

 

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

The Willpower it Takes to Be Homeless

The Willpower it Takes to Be Homeless

Often, I think we are desensitized to how difficult it is to be homeless – to have very little control over our day to day life. We take for granted that we get to pick what shirt to wear, when to take a shower, when to have our first cup of coffee. Recently, this became apparent to me.

Yesterday, I ran into this homeless guy I have been friends with for about 10 years. I first met him when he offered to help me paint a house I was working on, in what people commonly refer to as “the ghetto.” While his painting services were suboptimal, we nonetheless stayed acquaintances – at first, not by my choice. Alas, ten years later, I kind of like running into him randomly and hearing about how he’s doing. It makes Akron feel like home.

I was coming out of Angel Falls coffee after working most of the afternoon there and he saw me. He quickly launched into telling me how he is in remission from cancer – the last time I ran into him, he thought he was going to die. He also mentioned he was off of drugs – another positive. Then, he mentioned that he is going to get disability next month. With pride, he said, “I am going to get my own place, my own clothes…”

I thought about that for about 24 hours, and it hit me. This is a big deal. When you have spent so much time on the street with so little control over your own life, it must feel good to be able to buy a shirt that “you” want – to decide where “you” are going to live.

This led me to a secondary realization – it takes tremendous amount of willpower to go on living when you have no control over anything. The dream of getting his disability next month really seemed to inspire him to keep going and get to the next step. We are all just trying to survive to make it to the next step…

Read More

The Many Versions of You – Comparing Yourself to Others in a Healthier Way

The Many Versions of You – Comparing Yourself to Others in a Healthier Way

“Should you compare yourself to others when attempting self improvement?”

That’s what we debated this morning at the local coffee shop. It started because a young guy said, “I try not to compare myself to other people” – his intention was to imply that you are somehow a better person if you don’t. It was some sort of pop-culture, Buddhist-like reaction. It’s common wisdom right?

When, I heard him say this, I thought silently to myself, that’s interesting, because I don’t even know how to make that delineation anymore. I think comparison is fundamental to self improvement. Whether it’s working out, learning a new subject or just attempting to become a better person (Buddhism anyone?). Here’s why…

A long time ago, I realized that the old me and the current me are not the same person. This sounds completely obvious at first, but a bit crazy when put it into action. It all started when I was documenting things for work early in my career. I would write something down, and then months or years later, I would read it again because the task needed done again. As soon as I’d look at it, I’d say to myself, “Who the heck wrote this? It doesn’t give any of the detail necessary to complete this task, much less modify the task for a new situation with any sort of confidence.” My first reaction was to be annoyed by the utter lack of foresight that “old me” had when he wrote it. I remember thinking, that guy was selfish, lazy, and didn’t write it all down. But, that guy was me, so I only had me to blame.

Then I realized, okay, I have to actually come up with a technique to help the future me who won’t be able to remember all of the things that I remember right now. I need to write to the future me and fill in the gaps so that when he reads it, he says “oh, this is pretty easy to do. I see all the backstory. I see why, I see how. I see how this other piece works that interacts with it.” I wanted future me to say to himself, “old me, you were pretty damn good!” 🙂

This thinking technique gives future you the warm and fuzzy feeling. Future you is very similar to a completely different person because you’re not going to be current you in two years when you read that documentation. This also serves as a good foundation for writing to others – though, I have found it’s always easier to write to future me because I have learned how my own brain forgets things. I have gotten to know future me pretty well, really well.

So, this led to the epiphany this morning while debating, that you’re really only ever you for a moment. The duration of “current you” is seconds at best. Ever forget what you were in the middle of doing? The old you is not the same as the current you. The current you is not the same as the future you. The only real you is the current you, so living in the present, as Buddhists say, is really the only thing that’s real – and also, quite logical.

So when you think about self improvement, you need a frame of reference – current you – you’re really comparing “current you” to a potential “future you.” The goal of self improvement is to ensure “future you” becomes something better. Basically, “current you” and “future you” are two different people. For any self improvement to happen, you’re really always comparing yourself to somebody else.

So, I don’t know how to separate future me, and past me from other people – logically, it’s similar.

Fine, then it’s OK to compare yourself to other people, but we all know there’s a healthy way and an unhealthy way. Well, first off, don’t take it to the extreme – to where you feel bad about how you’re performing now because of how the old person used to perform. Also, don’t feel bad because you want to perform better in the future and you can’t do it now. That’s the same as looking at some other guy at the gym who’s lifting more weight than you, and feeling bad about it. Don’t do that.

Conversely, don’t look over at a guy that’s not picking up as much weight and feel better than him, because that’s an unhealthy comparison because you’re only “current you” for a moment. Today, tomorrow or next month you could be injured, paralyzed, or find out you have cancer. Being competitive to the point of feeling superior will burn you, here’s why…

You’re really a summation of all of those past versions of you – you quite possibly will become the future you when you’re 70 and you won’t be able to do it anymore. Too young, too old, it has happened and will happen to all of us. Period. Let that sink in. Prepare for it. Really, just remember that the present you is composed of all these other yous that are in the past and future.

Now take it to another level, when you look over at the person at the gym next to you. Realize that they are… their past, current and future them. Don’t compare your current you to their current them because both of you are so much more than that. There’s no point taking the comparison to an unhealthy place where you’re thinking you’re better or worse than them. Think about it, they were a past them at some point and they weren’t able to pick up that weight, run as far, and didn’t know as much. Or if you feel better than them, just remember someday they might get better, and they might be able to kick your butt.

So, today, I tell you to break two Buddhist rules – live in the past, present, and future as well as feel free to compare yourself to other people – just do it in a healthy way. Think with more dimensions, this is a gift that, as far as we know, only Homo Sapiens has – use it. You will go through periods in your own life when you can and can’t do certain things, whether it’s learning, strength training, running or just walking. Accept that and live in the current you. Once you start thinking about it dimensionally, thinking about all the versions of you and them, the comparisons become a lot more healthy.

Read More