[Toybox] Fw: Re: Dude.

Oliver Webb aquahobbyist at proton.me
Sat May 4 09:37:47 PDT 2024


And here is a C-c C-v'd reply email I made to it (explanation for my actions
now that I had the full context, mainly)

------------------------------------------------------------------------------

After some thought, yeah you can  cc: this to the list or put it in your blog.
If you only cc: your reply to the list I will probably cc: my one too.

Also about the "you're just going to get angry again and not treat it as a
learning experience because the problem is clearly me." (since I can predict a
reply of "You got mad at the repeated "You will never change because you are
a bad developer", I guess you will never change" and misconstruing me trying
to _explain why_ I acted the way I did as a defense for acting like that now
I have the context or trying to blame it on you):

I probably should've picked up on the fact that _I_ was exhausting you earlier.
And like I said I wasn't trying to be hostile in this email ("You will never ch
[you get the point] is not a easy thing to be polite to). I noted some things I
was unsure about with the information I have on hand. But about half the email
is "In retrospective, now that I know [xyz], I was acting horrible, here's why
I thought it was okay at the time given the information I have. And now that I
do have that info why I will change how I act". It's something that _could_ be
misconstrued as being angry (although, that's up to interpretation, and I can't
stop someone else from reading a email I sent so that it sounds angry) and persistent.

Anyways, It doesn't matter that much now that the reply is out (I am 99% sure that
if you read this, it'll only be after you've replied to the below email. But honestly
I don't know. Still it makes attempts at correction more or less in vain) Here's the
C-c c-v'd text of my reply:



This email is not meant to be passive-aggressive or hostile, but is instead
meant to show why I did what I did. Now that I have some context, I recognize
a large amount of my actions as wrong.

Anything written in the past tense ("I thought", "I believed", "I assumed", ...) of
this email is usually _not_ what I currently believe now. A good portion of this email
is justifying my actions through what I used to believe with the context I was given.

On Thursday, May 2nd, 2024 at 13:48, Rob Landley <rob at landley.net> wrote:
> On 5/1/24 14:57, Oliver Webb wrote:
>
> > This is not a apology email,
>
> I didn't expect one. You still don't understand why I stepped back from
> interacting with you, and as far as I can tell never will.

The fact that this email is in my inbox tells me that "you will never improve"
was a backhanded "prove me wrong" challenge. And not something that you actually
believe.

> You attributed it to malice instead.

I attributed it to exhaustion amplifying defensiveness and irritability
about constructive criticism and attempts to improve the code you wrote
_at the time_ I sent those emails. I did consider why you were doing the
things you were doing and forming a coherent worldview about it instead
of just saying "This person is evil and bad because I say so". The reason
I acted the way I did was because the only model I could form based off the
information given to me was one where there was a established pattern of
your actions not being malevolent and evil, but the outcome being harmful
When met with different evidence, I will change my worldview to match it.

I wrote a fairly long thing about this last night that I might C-c C-v into
this email every now and then. To show how I looked at things at the time.

> You could have forked the
> project and pursued your own vision,
> you could have checked out busybox instead,
> but you didn't.

It's hard to talk about a case where this _did_ happen where I can't share much
information about the project. (I promised the main developer of it that I wouldn't
go against his wishes and share it before it was ready), But I jumped at it and spent
like 2 weeks doing it _precisely_ to take load off the list so you could do your thing.

After I was force-unsubscribed, I considered doing all of these. I already
have a fork of the project that is meant to rip the useful stuff out of toybox
(menuconfig rewrite, test suite, etc) so I could put them in my own projects.
And I don't really see a point in forking a project for the same reason toybox
development ended from 2007 to about 2011.
I already looked at busybox a fair amount (The only reason why I'm here is because
I saw busybox's "300 utilities in 2MB" and hit the talk comparing it to toybox when
I was interested). The main reason I never ran off there to do stuff was because
of the licensing politics (The reason I never tried to implement cut -DF in coreutils
either), the fact that it's being replaced by toybox, and the fact the code looks...

> But even that last email you posted to the list said you were
> keep going to "post patches "into the void" forever unless I did something to
> stop it. And that was after you declared I "wasn't rational".
(And also)
> I was waiting for you to pause before tackling the backlog, and you never did.

I was expecting you to get to the backlog eventually instead of letting it
pile up until it stops. The thing I sent you about "I'm trying to find things to
do because momentum" (One of the bc cleanup patches) which you replied to with a
list of commands without test suites was a signal to me as "No, I do want you to
continue working on stuff" because you gave me things to do.

> "Insanity is doing the same thing over and over again, but expecting different
> results."
> - Rita Mae Brown (maybe? attribution's all over the place:
> https://quoteinvestigator.com/2017/03/23/same/ )

The only difference between the traffic for March and April is that you
didn't respond to the list posts. I did the same thing I did in March because
I personally _saw_ (do not see now) the month of March as "the glory days". I actually did not
realize this was exhausting for you because I never noticed you trying to communicate it until April,
where the main threads you did it in were about stuff you worked on. Which is why
I assumed that you were being egotistical and defensive

> This is a parasocial relationship. I've never met you.

I never saw it as important that you do, I realize you are busy, it's why I didn't
reply to info about non-technical stuff with other non-technical stuff. If for some
reason you do want my full life story, I _could_ give it.

> I am annoyed at you the
> same way I was annoyed at the squirrel in the attic that kept chewing through
> the air conditioning wires. If you mature into a net useful developer, even if
> it's not for this project, that's GREAT.

I already see myself as "net useful" for what I've done. Not terribly important,
but also certainly not a net loss.

> But you are not uniquely
> irreplaceable. If you go away again 17 years into toybox development somehow I
> expect to find it within myself to carry on without you.

I never claimed I was, I claimed I saw a pattern of dissuading hobbyists and that
it was harmful, but not that I am important beyond being another person who proved
that pattern exists.

> You never asked "am I helping". You started with that as a bedrock assumption

"Talk is cheap, show me the code" was something I took to heart.

> and when you didn't get the response you expected you pushed harder. Just you,
> shouting into "the void", louder and louder.
>
> > and the repeated belittlement and derision directed at not just
> > me, but the people I work with has been beyond insulting.
>
> I have no idea who "aquahobbyist"'s co-workers are.
(And also this warrants a response)
> I unsubscribed you because it wasn't fair to the list's other subscribers,
> making them read the kind of abuse your last message was full of.

I have actually seen you dissuade hobbyists from working with toybox.
It was a big part of why I reacted the way I did and why I did not
stop for reflection until now.

If you _do_ want names, Ray Gardner is probably the most influential one.
And I can't say I would have thrown out that accusation if I didn't work
with him regularly. I'll say no more about the discussions me and
Ray had. If you want to look into what he's been doing, I really can't stop
you. (Andy Chu ala http://lists.landley.net/pipermail/toybox-landley.net/2020-June/027956.html
and Eli Shwartz (The pgk-config stuff where you deleted one of his messages)
were names that I had in mind too)

> and you never seemed to care that responding to you was work for me.
> You kept making more work for me and assuming that was free.
(also)
> I just checked how many emails you were "to or cc:" on in my outbox since the
> start of February, and there are 53 of them. You are, quite literally, angry I
> didn't feel I owed you more of a response than that.

"Seemed to care" is presuming prior knowledge, I thought you appreciated my
help because I appreciated your help throughout the entirety of March. I
don't get the impression of a exhausted developer dealing with a pest until
April 6th (The utf8towc() thread). I honestly didn't know that you were being
exhausted.

> Yes, you prioritized your replies over others for a while (and then switched to
> "coming to a decision" without me on github when I stopped interacting on the
> mailing list, representing yourself as a decision maker on the project to others
> there, yes I saw I just didn't react).

Here's what I wrote yesterday about this:

This is where the incoming github issues came into play, [...] I knew how to fix
most of the bugs that were coming in. Or at least give my 2c in a way that I knew
Rob would agree with. So I did, [...]

> I have other things competing with your constant demands for my attention.

It was never about attention, it was about trying to get work done. When I couldn't
get a response for the major issues and I still wanted momentum, I went to the minor
ones. And when I found a project I could work on that would benefit toybox, I spent
a week learning the ins and outs before coming back once I implemented what needed to be.

> I've been behind on everything since moving from texas to minneapolis in
> february, and speaking at my first in-person conference since the pandemic
> earlier this month. You may have noticed my "every 3 months" release schedule
> from the FAQ went 8 1/2 months between 0.8.10 and 0.8.11.

The time between 0.8.9 and 0.8.10 took about 8 months I think. I'd have to check
but in the release email for it it says it was significantly delayed.

> I was starting every single day spending multiple hours replying to your emails
> to try to politely explain crisis du jour (or why your failure to understand the
> existing utf8 code was not technically a crisis), and getting very little else
> done. (I have already spent more than an hour replying to this email, and I'm
> not done yet.) Interacting with you at that frequency was not helping the
> project. So I focused on other things for a bit.

This was not communicated to me in any way, and if it was I would've almost certainly
acted differently and tried to stop flooding you with patches more than I already was.
I spent half the month of April doing the exact same thing I did in March with the belief
that it was helping the project.

> Responding
> to me falling behind by increasing your rate of output was... certainly a decision.)

I believe that was me stopping work on "super secret project(tm)" because it was already
more or less done and moving back to toybox. Not "screaming louder".

> The result of the work I was putting in interacting with you wasn't improving
> the project, it was educating you personally. Often when I do a long writeup it
> goes in the blog and can be referenced later, or can turn into a FAQ entry. The
> fact somebody didn't already understand it implies that existing docs aren't
> through, clear, or well-indexed enough and something can be done to improve them.
>
> But "this API is unusable, clearly it should be like this instead" ignoring the
> fact that there are 9 instances of it being used in the current code which you
> could have looked at to see how it was used? And I had to point that out to you?
> That's on you, dude. That's about teaching you, personally, to be a better
> developer. Nothing to do with the project.
>
> I don't mind "the comment explaining this isn't in the header, the comment is
> right before the function body", but when that's in response to a message
> calling it "defective" in the title,

The "header comment" thing was a typo, I was talking about the comment over the function
body.

> and it's part of a sustained pattern that does not get better over multiple months?

I did look at the code, and I changed it I did a test build to see if anything
broke (it didn't). And I offered to update the documentation to match the code,
(http://lists.landley.net/pipermail/toybox-landley.net/2024-April/030285.html).
It was _one_ poorly phrased email, where I did check almost everything that you
mention and only forgot to mention them, not a "sustained pattern that does not
get better" (What other incidents of this pattern are there?). To imply I'm a
horrible developer on the only base of one email where I offer alternatives
(Which were ignored) is hurtful, and the only thing in this email I feel
personally insulted about (The "you will never learn or improve because you
are a bad developer" is a challenge so it doesn't cut as deep).

> No, I don't treat you the same way I treat Elliott.

That was never something I believed, was expecting, or even wanted.

> And it's not just his position at Google: he's been on the toybox
> list since 2015 and he's LEARNED stuff while he was here.

Because I haven't learned anything and never will... You can read through
the September and October posts I made and clearly see that I was the same
level of incompetent on September 4th as I was when I started work on vi.
And when I came back in February nothing changed throughout those months...
No technical knowladge gained, no massive amount of research done to learn
why things were, My drafts aren't filled with "why in the world..." messages
I forgot to delete when I found out why something did happen (admittedly, there
is no way you could've known that, but still). And I don't spend a massive amount
of time (Pretty much all of my free time) reading up and learning about not
just toybox, but programming in general, and when I don't respond to your
advice it clearly means I'm not trying to follow it in any way. Yeah, that's
whats happening... I'm just a lazy user who screams at you

The only real gripe I have with this email is the "you will never learn"
pattern, but I'm pretty sure that's intentional. And I'm being as polite
as I can in responding to it. (This is the "belittlement" in "belittlement
and derision", by the way). I hope it doesn't come of as hostile so you
assume that I'm "getting angry yet again because it's clearly Rob's problem"
instead of actually taking the context from this and learning why things
happened, seeing things from your perspective and considering it.

> P.S. I would happily cc: this message to the list if you didn't mind the parts
> of your private email being published.

Eh, I'm kinda split on CC-ing this reply to the list. With no prior context as to
what I thought, my messages do seem hysterical and unreasonable looking back at them.
Does anyone on the list care about this drama? If you want to put stuff from this
on your blog to make a example of me, there's nothing _stopping_ you. (Although if you
CC only your first reply to the list, I will CC this too)

> I did spend 3 hours writing it.

I got home from school (I got it when you sent it and spent a while
thinking about it) and have spent pretty much all afternoon responding
to it.

> which I do not expect to
> make you a better developer because you're just going to get angry again and not
> treat it as a learning experience because the problem is clearly me.)

"You will never learn because you are a bad developer", I've said all I needed
to say responding to what personally comes off as belittling in the most polite way
I probably can already.

Again, your actions are contradicting your words, so I'm assuming reverse psychology
with this being a backhanded challenge. To respond to the challenge: Yes Rob, I did
learn several things I didn't already know in this email. And I understand why you
are doing the things you do now. Thank you.

As for the patches, I need to step away from the project for a while after this (Even
if you *didn't* want me to) All excuse of "thou shalt maintain momentum" is gone. Maybe
I'll start trying to bootstrap up LFS and other packages through mkroot someday (The ./configure
for make fails when I hack together a compiler toolchain overlay because "host compiler does not
produce run-able executable") But for now, I'll try to find something else to do.

Thank You,

-   Oliver Webb <aquahobbyist at proton.me>


More information about the Toybox mailing list