All posts by rbowen

Gormenghast

I’m reading Gormenghast by Mervyn Peake.

It was mentioned almost in passing by Geddy Lee in his autobiography, My Effin’ Life. I imagine Alex and Neil reading paragraphs to one another as they went on their long bus rides from one concert to another. For his part, Geddy did not enjoy the books but acknowledged their role. Lyrical inspiration for Neil over the years.

I’ve mentioned before that some of the best things that I’ve read I’ve discovered through their mention in other books. This is usually Stephen King’s fault.

The writing is very Dickensian with long rambling descriptive paragraphs about mundane things.

Everyone that I’ve talked to about it who has actually read it says that it is just slow and plodding. So if you’re not a Dickens fan, you may not enjoy it, but I’m finding the pros to be poetic and descriptive, even while it is dark and ghastly.

I also discovered this morning that not only is there a TV series, but there’s also a final book that was released many years after the author died.

Voting vs Consensus

I’ve been thinking a lot lately about the word “consensus” as it is used in open source, and how it relates to the notion of *voting* on decisions.

While the English word consensus has a number of nuances, it usually means “everyone more or less agrees”. The nuance usually comes up between *most* of the community vs complete solidarity and agreement on a decision. It doesn’t usually mean complete unquestioning agreement, but it means that everyone can live with the outcome.

A vote, on the other hand, draws a bright line between YES and NO, and, one might argue, creates two camps, with winners and losers, which is pretty objectively a worse outcome than everyone agreeing. As a result, many open source communities shy away from a vote, because it is divisive – in the strictest sense of the word – ie, that it divides a group into two subgroups.

There’s a lot of tension and nuance here, though. In open source, we value diversity of opinion because it creates new ideas that you don’t get when everyone is in complete agreement. So in one sense, you want to cultivate, and encourage, disagreement. But you also, eventually, need to make a decision when those disagreements are intractable, and you can’t say yes to both options.

Furthermore, insisting on universal agreement forces some people to pretend to agree, in order to get along, or because there is pressure to achieve this artificial consensus. Voting allows people to express their dissent, yet still move on for the good of the entire community.

This is especially true when it comes to non-technical decisions, where there is not a clear, verifiable, testable, correct answer. And, frequently with non-technical decisions, reverting that “patch” later on is difficult, expensive, or even impossible.

Take, for example, naming a project. There is no right answer. (There may be some obviously wrong answers.) The answer cannot be tested or verified. And once decided, reverting that decision would be expensive, by many measures of expense, both socially, and in terms of work that would need to be done. If community members are deeply invested in their ideas, it may be time for a vote.

As observed in a private conversation earlier today, smart people should see the way the tide is running, and concede early to avoid deepening dissention. But, at the same time, people who see their position as objectively correct (hyperbolically, good vs evil), rather than merely being an arbitrary opinion (hyperbolically, red vs yellow) have an obligation to advocate for that position. This can be hard to disambiguate, when various people disagree about which category the disagreement falls into.

You should not vote “too soon”, nor should you vote “too late”. Too soon would mean don’t vote while there seems to be progress towards consensus. Too late looks like when there is no progress, and everyone is simply reiterating their arguments. MUCH too late would look like when the discussion starts to become angry or personal – that’s a clear indication that you’ve waited too long.

Another critical aspect is that once the vote has taken place, those who were not on the “winning” side must be willing to accept that this is, in fact, the desire of most of the community, and then move on, for the good of the community. Your dissent is noted. Your idea was considered. But another idea “won”, and it’s time to accept that and move on. This is exceptionally hard, but it is an indication that you’ve put the good of the community over your own personal victory. Accepting defeat is sometimes the most community-centric thing that you can do.

 

Habari and Blogging

Skippy published a post a couple of weeks ago about the history of his blog.

It’s a fantastic overview of the history of blogging. I was particularly fascinated by the history of Habari that he linked to. Lots of details that I had forgotten, including a post by me, calling out Matt for his misuse of the term meritocracy to refer to his BDFL model of governing WordPress.  While I remember the debate, I didn’t remember directly challenging Matt’s leadership style. Or that I ever looked that young.

 

The weirdest timeline

[Attempting to document my thoughts about the insanity of the second Trump presidency, since I sincerely hope that my grandkids will not believe any of this ever happened.]

Florida Man, and Stable Genius Donald Trump has made some weird cabinet appointments this week, from the man he mocked mercilessly as “Lil’ Marco” and said he wouldn’t trust to run one of his smaller companies (Secretary of State), to dog-killer Kristi Noem as head of Homeland Security.

This one, however, while expected, may be the most insane yet.

I know a lot of people worship Elon Musk for his … well, I honestly don’t know for what. I guess, like with Trump, they believe the lie that he’s a good businessman – presumably because – like Trump – he bought a lot of businesses with Daddy’s money, and then largely let them run on their own while taking credit for them. The one business that he actually actively participated in – Twitter – is now worth about 20% of what it was worth when he took over, but, still, somehow, people think that he’s doing a job there. I guess it makes sense why Trump likes him. They’re practically the same person.

Trump seems to think that Musk’s genius is … firing people. So, Trump played a role on a TV show where he got to fire people, and here’s someone who does it IN REAL LIFE! That is quite the resumé, right?

You chose this

Donald Trump told you who he is. He did not sugar coat it.

He told you that he views women as property who should be told how to think and how to vote, whether they like it or not. He told you that he will take vengeance on anyone who disagrees with him. He told you that he supports Putin, that he thinks Hitler had a lot of great ideas, and that he thinks Kim Jong Un’s method of government is something that we should try.

He told you that he believes that foreigners are intrinsically less worthy of life, liberty, and happiness than Americans. That foreigners are more likely to commit crimes, especially if they are from countries where people aren’t predominately white. He told you these things despite decades of data that proves it’s not true.

He told you that people not like “us”, whether in skin color, or gender, or ethnicity, or sexual orientation, are suspect, and should be punished for being different.

He told you that he won an election that he clearly lost, and even though he didn’t believe that, and none of you believed that, you continued to repeat the lie again and again until you could accept it. He told you this despite overwhelming evidence that it was a lie.

He told you he doesn’t believe in science, preferring “common sense” to centuries of accumulated knowledge.

He told you that tariffs will fix our economy, despite clearly not understanding what a tariff is, and despite the opinions of every economist who evaluated his plan.

He told you that his tax plans will improve life for the average American, despite the fact that he has only, ever, reduced taxes for the very very rich, and for companies.

He told you that he is a great businessman, despite having driven almost every one of his buisnesses into bankruptcy over the years.

He even told you that he supports the right to an abortion, which is something you said was a deal breaker. Yet you seem to believe that he is the more “pro life” candidate, despite him explicitly telling you his position, repeatedly.

You chose him anyway. I’m sure you had your reasons. I expect you even thought they were good reasons.

Some of you – many of you, even – said that you knew who he was. Some of you even acknowledged that he was all of the above things, but that, somehow, that didn’t rise to the level of voting against him. That, somehow, either he didn’t mean the things that he has promised to do, or that “the system” would prevent the worst of his promises.

I guess, at this point, we can only hope that you are right. That when he tries to deport millions of immigrants, for the crime of being foreigners trying to make a new life, that he’ll be thwarted by decent people. That when he tries to impose tariffs on every import, someone will explain to him in small words what a tariff is, and that, somehow, he’ll understand. That when he tries to persecute people for the crime of loving someone that he thinks they shouldn’t love, that the basic principles of the Constitution will somehow prevent that, even though he owns the Senate, and the Supreme Court.

(The irony that only Mitch McConnell has the will and the ability to turn the will of the Senate against these injustices is not lost on me.)

That somehow, against all evidence, he’ll have someone in his circle of advisors who is willing to tell him no, and not amplify his worst instincts.

But don’t forget that you chose this. You cannot pretend that you didn’t know. You cannot pretend that you misunderstood what he has promised to do to all of us, and those we love. He has been very clear about this. Even while he has rambled insanely about so many other things, he has been consistent, for 8 years now, in his diatribe against reason, against democracy, against freedom, and against science.

You chose this.

 

Mr. Vance seems to be just a smarter version of Trump

One thing that was kind of refreshing, listening to Senator Vance on Tuesday evening, was his ability, unlike his boss, to complete entire sentences – even entire paragraphs – without changing the subject, praising himself, or wandering into meaningless babble. Often he would even address the topic that was being asked about, and remain on that topic through his entire answer. He sounded startlingly intelligent, especially in contrast to Trump.

I often wonder how intelligent, educated people can listen to Trump and conclude that he is a leader and a statesman. But I know some who do. I often find myself guessing where he might have gone with a sentence had he ever reached the end of it, but he so seldom makes any sense.

With Vance, he was mostly clear in articulating his positions, and, if they are aligned with Trump’s (and, really, who can tell?) then I’m even clearer now than before why I disagree with them.

If nothing else, their contempt for immigrants is pretty revolting. Their willingness to dehumanize anybody not like them is unnerving.

Even apart from the almost comical nonsense about eating pets, the desire to scapegoat hard working immigrants who are here legally, rather than address the reasons they are here, or simply to distract from actual problems, is lazy and cowardly, but also hurts real people who are trying to provide for their families.

But also, who is really like them? I’m not, and they have made clear their willingness to punish anyone who disagrees with them – to “go after” their detractors. Which presumably includes me.

So, thank you Mr. Vance for more clearly articulating the hatred and xenophobia of your running mate. It’s not like we didn’t know, but sometimes one likes to listen to complete sentences.

Open Source Summit Vienna 2024

This week I’ve been in Vienna for Open Source Summit EU. I’ve been attending this event for many years, and it’s always valuable in many ways.

A lot of that value comes from conversations at my employer’s booth. However, early this week I discovered that one of the side effects of my recent surgery is that I physically cannot tolerate the noise level in the expo hall, and I certainly can’t have meaningful conversations in that environment. That was very, frustrating, and probably means that I will, in the future, only attend events where I’m speaking or have other official duties … which is probably a good policy anyways.

What I was able to do, however, was attend a lot of great talks. And some other talks, too! And have a lot of very valuable personal conversations with brilliant people. Some highlights follow, in no order, and with no attempt at an actual narrative.

Make it easy to quit – Actively celebrate people who step back from maintainer positions. Celebrate what they accomplished and what they are moving on to. Don’t punish or otherwise shame quitting. This also incentivizes other people to step up, knowing that they don’t necessarily have to do it forever.

Not everyone should be a mentor. This doesn’t mean they are bad people, or that they’re bad at their job. Encourage them to do something else.

Outreachy actively evaluates how a project commuicates in public before allowing an internship there. Some projects stink at this, and that would be a terrible experience for the intern.

Actual comment from the stage in a keynote, from a multi-billion dollar company. “You probably can’t read this from where you’re sitting but it’s a really big deal!”

Talk idea for future event – tentative title “Story time with Uncle Rich – the early years of open source and what we (should) have learned.” I am constantly astonished by what we should have learned over the last 30 years and haven’t. Stuff like
* The myth of the all-wise founder
* Flame wars and bike sheds
* Inside jokes and how they shape toxic culture
* Corporate capture is not a new thing, like we constantly seem to think it is!
* Booth babes and llamas, and why everyone here looks like me (White men with beards)
* Being kind is an investment in your legacy
* … and so on

The CHAOSS Practitioner Guides suggest questions you may want to ask about your open source project, and what metrics migth help you find the answers. Current perspectives include: Responsiveness; Contributor sustainability; Organizational participation; Security.

Single-vendor projects are always a risk, even when you are the single vendor, and think that you can control the risk by being the one that drives the bus.

Presentation/Pedagogy isn’t about entertaining the class/audience, it’s about understanding what you want the outcomes to be, and focusing every single word and activity on those outcomes.

Sharing your work with the world is (can be) a selfish act. Sharing selfishly is about understanding that you get more out of sharing than you lose and much more than you put into it.

New (to me) phrase: “Legitimate Peripheral Participation” is the act of learning to be part of a group you’re not part of (Peripheral) by doing useful work (Legitimate) in that group (Participation), rather than just learning about it.

Each generation of a project (ie open source but not only open source) is responsible for mentoring the next generation. When you mentor someone, spend time emphasizing that it’s their job to mentor the next person, otherwise they will assume that it’s your job. A failure to communicate this will result in the eventual attrition and death of the community.

 

Rush week 14: Clockwork Angels

I’ve been listening to Clockwork Angels for several weeks now. It’s Rush’s final studio album, and even though it’s 12 years old, I’m still not as familiar with it as with their earlier albums.

I think my struggle with it is that, while I know it tells a story, I can’t figure out what the story is. I suppose I should read the novel at some point.

But, that said, there’s some great tracks on here.

Headlong Flight talks about looking back on a full life and reveling in those experiences. I love the line “I wouldn’t trade tomorrow for today” as an expression of living in this moment.

Perhaps my favorite track is “Wish them well”, which is about having compassion for the people who mistreat you. Wish them well, and move on. “Don’t even pause and ask them why.” This is such sage advice, which goes hand in hand with not trading tomorrow for today. “Spirits turned bitter by the poison of envy” are not worth another moment of your time.

The Garden reminds me of Candide and Leibniz, and the “best of all possible worlds”. And now, looking at the annoted lyrics on rush.com I see that Peart was, in fact, thinking of that when he wrote those lyrics.

So, yeah, I’m definitely going to have to read the novel.

Committers who don’t commit

At the Apache Software Foundation, there are two levels of recognizing participants in a project – Committers, and PMC members. The PMC nominates and elects new Committers and PMC members.

But what do Committers do?

The name itself is a bit of a misnomer, because it comes from a specific technical detail from the past. That is, an individual can be given commit rights, which means that they could commit code to the SVN repository (or CVS before that).

But there’s two problems with this name, and this definition.

The most obvious one is that, today, in the age of Git (and really even before then) nobody commits their own code. Rather, they review and commit someone else’s code.

Granted this varies greatly from project to project, as well as from one patch to another. For example, I routinely commit my own changes to documentation or website content, But for code changes, most projects mandate (note, this is a *social* mandate, not a technical one) that a patch (pull request) receive some kind of review from other contributors, who will then agree on an action.

The second problem with the name and the definition is, in my opinion, the more damaging one, although it may be less obvious to casual participants. And that’s that it implicitly values *code* above all other contributions, and, as a result, makes it hard, or in some cases impossible, for non-code contributors to gain the respect and recognition that they have earned. It’s already hard enough for them to earn that respect, because these so-called “non-technical” skills are harder to measure, and are already undervalued by the people who think (wrongly) that writing code is the only important part of a software project.

I cannot tell you how many times I have been told, by PMC members of a given project, that they cannot nominate someone as committer who has written docs, who has produced events, who has donated legal talent, or various other non-code contributions, because that would open up the risk that they would then start modifying the code in the Git repository, and this would result in bugs and data loss and who knows what all disaster.

This is such nonsense. And the people giving these reasons owe it to themselves, and to their project, to actually think honestly about why they are gatekeepking project leadership from people making important non-code contributions.

But not only is it an invalid reason, it’s actively damaging to the project, for a number of reasons.

  1. Projects that refuse to respect non-code contributors are making themselves more susceptible to corporate control. This is because when the project won’t respect these contributions, companies have to step up to provide those services – marketing, events, legal work, design – and this gives them outsided control of the messaging of the project, which, in turn, makes it clear that they are, in reality, the power behind the project.
  2. If you don’t recognize and respect non-code contributors, they eventually feel that disrespect, and go away. This means that the coders, who are good at code but bad at other things, have to do those tasks anyway. This results in the tasks being done poorly, and stealing time from what they’re good at. Everybody loses.
  3. Software that is designed, implemented, and tested by engineers is never as good as software that has non-expert users as part of this planning process. I could, surely, elaborate, but I think you all know what I’m talking about.

And yet, I still have this argument with software projects, all the time. And they still make the same excuses. Makes me tired.

Then there are the projects that try take this issue seriously, but want to create a separate tier of membership for those non-code contributors. They believe that this is a way to give the recognition and respect that is earned, without … y’know … actually giving these people any *real* power in the project. This is, quite literally, creating second-class citizenship, and, in most cases, robs these people of the opportunity to advance to the next level of project management.

Short of renaming “committer” to something else (or maybe that’s an option too?), to convey what it actually means today, what can we to do to persuade projects to actually respect, and reward, non-code contributions?

Rush, week 13: A Farewell to Kings

The next installment in our #RushForCraig listen through all the albums is A Farewell to Kings. This album is from 1977, and is their fifth album.

This particular album was difficult for me to get to, because after my ear surgery, all music was an auditory assault, and it took me several weeks before I could even listen to any. But I finally got around to it.

It’s only got six tracks, with two of them being over 10 minutes. Unlike some of their later works, I really cannot say that there’s any unifying theme, or style. There’s some great tracks on it, but as an *album* it doesn’t really hold together for me.

And yet …

Although I’ve been listening to this record for more than 40 years, there’s a couple of tracks on here that I really wasn’t very familiar with. One in particular stands out – Madrigal. Madrigal is just so beautiful. It’s one of Rush’s very few love songs, but as it is with Rush’s love songs, it’s not a traditional one in any sense.

It’s a beautiful poem, and has a number of phrases that are echoed in later songs, some of them repeatedly over the years – slaying dragons, and “a distant pair of eyes”, in particular.

I read somewhere that Geddy wrote the lyrics Madrigal, but apparently that was wrong. This led me down the rabbit hole of figuring out what songs he did write. I am sure there’s a definitive list somewhere, but I haven’t found it yet.

Another significant track on this album is Cygnus X-1 Book 1: The Voyage. This is a 20+ minute saga about something or other, that lots of hard-core Rush fans insist is the best thing Rush ever did. And I just … don’t get it. But what’s significant about it for me is that it’s the main reason I ever listened to Rush in the first place. This is because after we left Tallahassee and moved back to Nairobi in 1983, my friend Kristina sent me a mix tape which included this track, and a glowing letter about how amazing it was, and I had to listen to it. And that’s what started it all.

Of course, Xanadu is just amazing, but everyone already knows that.