Day 15: Pupation

Yes, that’s actually a word.

As I mentioned a few days ago, I raise caterpillars. I had two caterpillars that were growing well when the one in that post drowned, but later that day the other one began the process of turning into a pupa, which is the stage where its insides dissolve and re-assemble into an adult butterfly. And I was l fortunate enough to record video of that happening.

Some moths spin a cocoon of silk to encase themselves while they transform, but butterflies do not. Instead, they simply shed their skin. I say “simply”, but it’s pretty amazing.

As caterpillars hatch, they go through several stages, or instars, as they grow. At each of these stages, they shed their old skin to reveal a newer, bigger skin underneath, and each stage looks different than the others.

Black Swallowtail stages from caterpillar to butterfly
Eastern Black Swallowtail stages of development

Once the caterpillars have grown enough, they stop eating, and attach their tail end to a branch or other surface, and spin a sling of silk to hold them in place (see the “pre-pupa” in the image above). Over several hours the caterpillar just seems to be hanging out there, but there is a lot going on.

First, its body is detaching itself from its legs. It’s also sealing off its mouth and rectum. Then it begins forming a relatively tough, solid layer of skin underneath its existing skin. Once that skin is complete, the caterpillar begins to pulsate and wriggle, finally splitting its old skin and then shimmying its way out of it.

So when the caterpillar attached itself yesterday, I set up my phone’s camera to time-lapse, and left it running for several hours. The video is really amazing to watch.

If all goes well, this little guy will remain as a pupa for around 2 weeks, and then it will crack open that chrysalis, and emerge as a beautiful adult butterfly. I’ll be sure to post about that when it happens!

Day 14: Complacency

I saw this post on Twitter this morning:

My first reaction was “Wow! It’s gonna be a landslide!”. Even Texas is looking pretty blue.

But then I thought about what would happen if millions of people saw that, and decided that Trump’s defeat was a done deal? Why bother to vote?

I’m happy to see that people are finally realizing what a terrible leader Trump is, and that he is only ever thinking of himself. I’m shocked that everyone didn’t see that well before he was elected, but if we can get him out in November, we can repair some of the damage he has done before it is irreparable.

BLM Protestors in Philadelphia (photo credit: Chase Sutton)

We need every single person who came out to protest these past few weeks to also come out to protest where it really counts: the ballot box. We need to get rid on not only Trump, but every single Republican who has enabled him by putting party before country. We can never become complacent.

Day 13: Loss

I’ve been raising caterpillars for about 6 years now. I say “caterpillars” instead of “butterflies”, because once they emerge as an adult butterfly, I let them go, and my involvement ends.

The species I get to raise is the Eastern Black Swallowtail. We grow parsley in our garden, and parsley is one of the favorite host plants where swallowtails like to lay their eggs (along with rue, dill, carrots, fennel, and a few others). I found these cute caterpillars munching away on the parsley one day.

We counted an even dozen of them. As the days passed, though, their numbers steadily decreased. Only 2 of them made it to the pupa stage, and one of those pupas got eaten by a wasp. Finally, though, one of the most gorgeous creatures emerged! She was content to rest on my hand while her wings dried out, and after a while flew off.

My first swallowtail!

After that I decided to try to bring the caterpillars indoors to keep them from predators. I kept them supplied with food, and they grew well. A much higher percentage made it to adulthood, but there were some losses along the way. I had such a loss this morning.

I feed them with sprigs of whatever plant their eggs were placed on. To keep the sprigs fresh, I put them in a vase-like bottle. The problem is that sometimes the caterpillars aren’t too careful, and fall into the water and drown. To prevent that, I covered the opening with foil, and placed the stems through a small hole I poked in it.

What I didn’t take into account was that as the caterpillars move around and jostle the sprigs, the foil would tear a little, and in time the little hole I poked in the foil got bigger. The now-stripped stems then fell down into the water, and one of the caterpillars must have been holding onto one of those, and was carried into the water, too. When I got up this morning, I found him submersed.

By now I’ve raised around 100 caterpillars, and have had my share of them die. Some only get so big, and then suddenly die. Some have crawled out of the container I had them in, and if I didn’t find them in time, they would starve to death.

So I’m not sure why this one bothered me so much. I do feel responsible, in that it was my bad design that led to it drowning.

Sorry, little guy – I’ll make sure that I learn from this, and make things better for future caterpillars that come my way.

Day 12: Communities and Survivorship Bias

Communities, especially Open Source communities, tend to form some form of governance once they grow beyond a certain size. The actual size isn’t as important as the relationship among the members: when everyone knows everyone else, there’s really no need for governance. But when individuals come from different companies, or who otherwise may have different interests than the others, there needs to be some ground rules for making decisions on what does or does not get done. Without governance, projects will inevitably fork when these differences get large enough.

Typically governance is established by what most people involved like to think is a meritocracy: the hardest-working, most knowledgeable people are the ones who make the important decisions. At first glance this seems perfectly fair, and it usually is—initially, at least. Over time, though, this system is prone to the problems of Survivorship Bias. Let me illustrate how that happens.

Imagine a group of people who are on a long hike through the wilderness. There will be some people who have more skill reading a map, or operating a compass, or who know the terrain better. When the group starts out, it is only natural that these people lead the group, and they are given the title of Navigator. The group creates rules that while anyone can provide ideas as to what direction they should head in, only Navigators can make that choice. It works well for a while.

As time passes, though, and people in the group learn more about map reading and terrain features, their knowledge begins to approach the level of the existing Navigators. At that point it would seem fair to also designate these people as Navigators, since they now have enough knowledge to make directional decisions. But the rule is that the only way an existing group member can be designated a Navigator is if all of the existing Navigators agree. In other words, the process is largely subjective, as there is no objective test for competency. It also calls for a good deal of trust.

After a while, some people realize that while the Navigators have generally been doing their job well, they have made some errors that have taken the group off of the ideal path. Some group members point that out, and want to adjust course to get back to where they should have been. The Navigators, though, prefer to keep moving forward, even if it makes for a longer and more difficult hike in the long term; they prefer the feeling of moving ahead. Those who disagree go off on their own in frustration. Others within the group get the clear message that if they ever want to become a Navigator, they should curry favor with the existing Navigators. And when they do make it into that core group, they feel that they have worked hard to earn it, and anyone else who wants to reach that level has to play by the same rules that they did.

This is classic survivorship bias. The only people who can change the system are the ones who agreed with it in the first place, and thus don’t really see a problem with it. The voices of disagreement fade away until they can no longer be heard, so everyone thinks it’s all good. The system self-perpetuates.

I’ve seen this in action in several communities, but none so strikingly as in the OpenStack community, both on the Nova team as well as the Technical Committee that is supposed to provide technical leadership. I originally wrote a draft of this a year ago when I was working in that community, and became increasingly frustrated at how decisions were made. I happened to “run into” (electronically, of course) a few former Nova developers who had moved on, and when I expressed my frustration, they both said that similar feelings were why they looked to move to a different project. That’s when the role of survivorship bias became clear to me.

As I’m no longer in the OpenStack community, I don’t need to vent about particular issues or personalities. That’s history to me. I do hope that people realize that survivorship bias can shape how a community views itself, because if you are coming up short in some areas, you won’t know about it, because the people affected usually leave rather than deal with that BS. If you care about growing a healthy community, you need to make it easy and welcoming for people to share their ideas. And you should also take the time when someone who was active decides to leave to do a sort of exit interview. You might learn something important.

Day 11: Spreading Racism

Mass protests in a time of the COVID-19 pandemic: are they foolish gatherings that will only result in spreading the disease?

In an editorial in today’s NY Daily News, the authors make the case that even though protests in response to the execution of George Floyd, Ahmaud Arbery, Breonna Taylor, and far too many others, are important because “racism is a deadly virus, too”.

I agree with the sentiment: racism is deadly, and we cannot just sit back and ignore it. But it is the analogy to a virus that really bothers me.

Viruses spread without intent. They do not choose their hosts. They are opportunistic: if a virus lands on a cell that it can infect, it does so. If it doesn’t, it dies. It does not have the capacity to choose.

Racism, however, is not randomly spread. Instead, it is actively taught to each generation. Children listen to their parents, and largely follow the values that they are taught.

When my kids were young and in day care, one of the other kids there called another kid a derogatory racial name. The woman who ran the day care handled it calmly, explaining to the boy why he shouldn’t call people those names. I talked with her about it afterwards, and she said that her grandmother had a phrase she used when she heard kids say ignorant things: “Well, he didn’t just lick that up off the floor!”

In other words, it wasn’t an accident; it wasn’t randomly spread. Instead, someone spoon-fed that to the child.

The only way to combat racism is education. For years most white people thought that the reports of police misconduct and brutality towards blacks was probably just “a few bad apples”, but that most were fair and respectful. Since the advent of ubiquitous video recording, though, those same white people are getting educated about the reality that POC have known for far too long.

And I hope that children growing up today see these protests, with people of all colors coming together to demand that things improve, and take away from this at the very least the concept that Black Lives Matter. They will be better equipped to deal with a racist relative, and refuse to be spoon-fed that bigotry.