Dear viewer, these subtitles were generated by a machine via the service Trint and therefore are (very) buggy. If you are capable, please help us to create good quality subtitles: https://c3subtitles.de/talk/574 Thanks!
In this next talk, we will talk about
philosophy.
This is Peter Stoga.
He has many years of experience
in software, hardware, security
and networking and
and now failure
because.
PETA is going to tell you his story with
this lip USPI
and about mistakes and
things that he learned with that, give
him a warm welcome.
Liz.
Hello, my name is Peter, I am a failed
open source project maintainer.
All right, so I will.
This is not a technical talk, I will talk
a bit about what the abuse is
because of that just mentioned briefly,
I will mention a few things
that I've seen in
the live USB community and in related
communities over the time that I've been
involved.
I will tell you
my story will try to tell you my story.
I will talk about the mistakes that I
made and I
will talk about what I learned from all
of this, hopefully.
So Libya's B is a
software library for programmers
that want to
communicate with USB devices of
different kinds in an easy way.
It's pretty widely
used in Linux systems.
It's also used as a Mac OS software
and even some Windows software
here and there.
If you've used a USB printer or USB
scanner, some digital camera,
some media player, and it's not unlikely
that you've actually been using the USB
or the software that you've been using
has been using the USB
freebies he has implemented.
Let me use B on their own for licensing
reasons. As far as I understand, the DP
is there's an L
GPL library,
which means that it's
not quite as a license, is
not quite as permissive as the BSD
project. And and so they chose
to write their own.
This is not a technical talk about device
drivers. As I said, I gave
a technical talk about USB and
and the be five years ago.
There's the link.
Check it out if you're interested in
that.
So while
involved in Libya's beehive,
I've noticed or observed
that even though this is a pretty,
pretty widely used library and I'm
pretty, pretty common project, there are
very few people actually working on
on development here, which is a
shame. I wish there were more.
There are also there's also a.
There seems to be this this
tendency to not work together
very much in the
extended liberties community, I would say
there are many different liberties, be
alternatives or sort of variants
of the abuse concept, and
they traditionally haven't done much
to work together or
they've even started because
of disagreements while attempting
to work together or after trying to work
together.
So there's that original abuse by zero
one. That's the very first one.
Then there was the the Lemieux's B
1.0, which is where I,
uh, I was the maintainer.
Meanwhile, there was the Lemieux's B
Win32 project, which was completely
standalone. It
it's sort of compatible
with Libya's P zero one.
Well, it is compatible, but it also
extends Libya's zero one.
It adds new features
and it's made specifically for
Windows. But the developers
working on Libya's Win32, they didn't
really make any effort to
to join the sort of the rebels
or the original Libya as we project.
They just kept to themselves
and made their own thing,
which caused some confusion for
the users because they had to.
They all they knew was that,
well, this this kind of software
or digital camera software or whatever it
uses the be. So I need
why do I need to what's
the difference?
Why do I need one or the other?
And of course, I only got worse when the
USB 1.0
started working differently and started
requiring programmers to do different
things to use the new
features which live USB
Win32 didn't support.
I never wanted to support and development
hadn't stopped a long time ago.
And there's open USB.
I'll come back to that in a bit.
Then there's Libya SBX.
I'll come back to that in a bit too.
And on the side of that there's
Libya's becae so the
first group of these there,
they're sort of similar open USB is
probably the most difference.
They decided to make their
some large changes.
The music is also different.
It's got its own on line
simply because I don't know exactly how
many developers there are.
I think there's there aren't really many.
There's probably also one or two, but I
don't know for sure.
So I wanted to mention
it separately.
So moving on to to my story, I
joined the project in 2003.
I just wanted to use live because I
was interested
in using technology, it seemed seemed
new or it was new and it seemed
interesting and useful.
I I was a
mostly lurking subscriber.
I read the mailing list.
I tried to try
to answer questions when I could.
I tried to contribute to the community
as as you do,
of course, according to what time I had
and so on.
A few years later, 2005,
starting winter 2005 and
going all through the year of 2006,
sudden Sun Microsystems.
Anyone remember them?
All right.
If you had OK,
a few of them joined
the mailing list and joined the live
music community. And they were they were
working on what it seemed to be a thin
client, USB support or something.
They wanted to have USB over the network.
So they were
they were driving the or
trying to drive. They were putting a lot
of effort into the project and trying to
trying to set a direction.
But the the maintainer
at the time, Yohannes, had felt he didn't
really agree with them and a few other
people, including myself and some
others, we also didn't really agree with
him.
So what happened then is in January
2007 and I had almost forgotten
about this after after winter there,
uh, the some people, they they published
or started a friendly
FAQ called Open USB.
That's a separate project.
And they did it, uh, they did
it in a fine way.
I think we had some some
sometimes difficult discussions
before they started
open use. Be trying to figure out how
the next version of Libya's vote was
going to work. And they had their vision
and other people had another vision.
They went off and they did their thing.
They got a new name and
and they went for it.
It wasn't successful.
But but, you know, you never
know.
And I think they I think they did really
the right thing.
A couple of months later, the then
maintainer U.A., that felt he offered
me to to take over the abuse
project. He said he was,
um, he was he had spent
a lot of energy discussing
with this these UCB people.
And he didn't
he didn't have fun in the project
anymore. And he said he was
happy to let me take over or he would
be happy, too.
He mentioned that there might be another
few people who could take over as well.
And I thought about this and I was really
happy to to
to get this offer.
But I didn't feel that I
had been in their project long
enough. I didn't feel that I knew the
code well enough.
Um, even though I
agreed with him on many points,
I still it
didn't feel like I would be able to do a
good job. So I said thank
you, but but no thank you.
But I'll stay in the community and I'll
try to contribute and continue
to contribute.
So then nothing happened because Yohanan,
he was he was.
He was tired and.
Essentially, there was no active
maintainer in the project for
for some time until
January 2008, when
Daniel Drake, who came along,
started working quite, quite
a bit on on the code, he had
already done something similar
for some fingerprint software that he
wanted to implement or that he had
implemented and.
What he had ideas that he had
for USB device communication, they fit
well with a project, so he
naturally fitted
in this position
of the new Mentana.
Yohannes announced it and
everybody was happy. I was also super
happy to have Daniel and
I continued.
And in summer
later in summer, I.
I set up a track,
a bug tracker and some source
code hosting for for the
project.
And Daniel continued
development. So Daniel made the first USB
one zero release after he had started
and in 2008, and
he made several releases and then
in 2010 and in spring
he released one zero eight.
So that was the last
um, the last Lemieux's
to be released that he made or released.
And
two months later.
So end of 2009,
beginning of 2010, there was a
lot of work going on trying
out to add Windows support
to leave USB 1.0 and
out of no where they came, this new
contributor who was pretty active on the
mailing list. And
very clearly he put a lot of a lot of
time, a lot of effort into the abuse me
and I had.
I had actually created a ticket, number
one, in the new bug tracker, which was to
add Windows support.
So and I always thought that there was
this was an important step for live USB
and for several different reasons, you
know, get more open source software
working on Windows, but also maybe
tricked some Windows developers in to
start using the USB and then we get the
Linux support for free.
Right.
Um, so I was I was
excited that somebody was working on on
Windows because I didn't know anything
about how Windows USB worked.
Really, the little I knew was
that it was pretty complicated.
So anyway, this guy
joined and he sent some some
he didn't send actual
patches the way you generate them with
with get normally and
send them to a mailing list.
But he sent some tips without any
committee message and and not so
structured. And I gave him a lot of
feedback about these.
And I was
I was expecting that
he would send another round of patches,
as normally happens in open source
projects with at least
some of these these things addressed
where he had sort of thought about what I
the feedback I had given.
And, um,
you know, that didn't really happen.
So there were.
There were new patches, but not much
of the feedback had been
considered.
So this continued through
the beginning of 2010.
And one of the last things that
Daniel did before he
he moved on was to commit some
some of the Windows support into
Libya's one one 1.0.
Now, I I wasn't
I thought that was too early.
I didn't think this code was was quite,
quite there yet, but Danielle
had hadn't done it and I didn't really
want to
object or I didn't want to
revert the source code, undo
what he had done. I thought that was a
bit respect, showing not
so much respect for for the previous
maintainer.
So I sort of the solution that
I saw was, OK, let's let's fix this up
and let's get the next release out
because it's high time.
It's nice to have releases every now and
then, but I also felt that it was
important not to add too many new bugs
or leave too many bugs.
Or like if we release something
with Windows support for the very first
time, at least it should work.
And that took that took a long
time.
The development in this this time
it wasn't I wasn't working so well
together with this this guy
who joined who did much of the windows
work
endless email threads
on the mailing list.
And during this time, a lot of people,
they just abandoned the project because
they couldn't keep up with the volume of
email. And I found it hard to I
don't know what what other guy, how
he felt about it, but, um,
he kept doing it anyway.
And I
I was still happy that there
was a Windows developer,
but I also
felt that it was very difficult.
I really felt how difficult
it was to work together and
I kept pushing forward.
I'm I can be pretty stubborn sometimes.
So I kept pushing forward and just
trying to work on the code and trying to
get the the
the windows support into shape.
And finally made a release candidate,
the first one in 2011.
And then later, um,
a few months later, there was one
person on the mailing list, somebody else
who who who sends
or who wrote this
fundamental, incomprehensible and
it seems unresolvable disparity
between what you see as reasonable
and the right way to conduct development
and what the rest of us
feel.
This was just one of these kinds of
emails. There were lots of them.
And of course, this didn't help
my motivation very much, but
and not even not helping
my motivation. It was hard it was hard to
hear this, but I kept going because
I I felt that we
should get these Windows support done
and and released.
A few months later, still April
19th, 2012, there was an
email thread and started on the abuse
mailing list announcing a
hostile talk with the subject, you'd
be dead.
Long live if you live Newsbeat X
and yes, to celebrate.
So this is the Windows guy who was also,
um.
Driving the Lilliput SBX
initiation or, yes,
Falke,
he,
um, he said yes or
Roach to celebrate the two year
anniversary of the last public release
of live USB, which is one way
that Daniel made about a half a year
before you made me maintainer.
Um.
They announced the abuse X and
they think this two year anniversary is
proof enough that Lemieux's B is a dead
project. So they
he's he's he's an excellent rhetoric.
This person. He's very, very good at
writing English.
He's he's an Irish Irishman.
And if you look at the
abuse, B X, so they started their own
mailing list on SourceForge.
And if you look through the archives, you
can see that they worked quite a lot on
this text before they
sent it out to the to the mailing list.
They, um,
they had multiple iterations going
through. And they really if you compare
the versions, you can see how they really
tweaked words and sentences
here and there to create a very specific
effect or to send a very specific
message. It was very well engineered
propaganda.
They're saying that Lemieux's Baeza dead
project and they're in their
Falke announcement.
Even though we've been working on it
constantly for two years, so
there are lots of committees in
India and the repository
public comments for anyone to see, there
wasn't a release.
A lot of users, they said, we want to
release, we want to release, we want to
release, and I want to release, too.
But like I said, I didn't really want to
release just anything I wanted to this
window support to to be
all right and not to have too many
problems it needed to to to work
on. Right. And I also wanted to fix as
many bugs as possible in the in the
previous version.
They also mentioned here, if you're
interested in submitting patches to to
the live USB fork,
please be aware that Libya SBX will soon
have Garet and Jenkins' operational.
So this was in 2012.
There's there never was any Garrett
or Jenkins for Libya SBX, by the
way. But I. Well, anyway, so on
April the 20th, some 20
hours code sprinting later
I
put out the 109 release
and it included some
200, 260 commits
since the previous version.
So there was quite a lot of work that
went into it, went into this.
There's one 09 release over these
two years since the last one.
I think I spent about 2000
hours roughly
over two years.
So that's about a half time, half time
job, 20 hours a week
on this project.
But it wasn't enough and it wasn't I
didn't do it, I didn't spend it on
exactly the right things.
There was this this people pushing
for a release and I didn't deliver
on the release. And I'll get back to
that.
So in May, just a few
weeks later, RedHat employee
who was also involved in the abuse
because he had a blog
which he was posting and
he hadn't posted about Lemieux's be ex
or Lemieux's be before, but he he posted
this very short blog
post just to two lines of text
or one and a half line of text about
how he had now switched the package
for providing the little USB
functionality and fedora over to use
the fork lemieux's b x
and it took maybe a week,
maybe even maybe even less, just a few
days for all the major distributions
to to follow.
They had suddenly also all of them
switched to using the USB and
I'm not a single one, got in touch
with me to just sort of ask, OK,
what's, what's going on.
I guess nobody looked in the repository
and saw that all the permits were
or not all the comments, but that
many comments were also
by or involving me,
the existing maintainer of the project.
I'm I guess I don't know.
I guess it was enough that fedora
switched.
I got I tried to get in touch with some
of them. I sent the ARC
Linux maintainers an email
with I direct the amount, no
mailing list, um, telling
them how I felt about the situation and
how it really broke my heart that nobody
actually got in touch with me and
or like I said, seemed to
me bothered to look into
some facts about this whole situation.
And by accident,
I later learned that
or I got a link and this
email was up on Pastebin.
So thanks for that.
I don't know. I found that strange.
Oh, well, anyway, so there was this fork
and there was still the original
project, and we were working
alongside, um,
most of the people, they went to the fork
because they saw there and there was a
potential for new and exciting things.
But the one guy who had
always been working on the Mac OS
support, he was sticking with the
original project and
he was also very outspoken against this
hostile force. He said he disagreed very
strongly with some of the technical
decisions they made and also how
how they had conducted themselves.
And I was happy to have his support.
No bugs.
All right.
There we go.
All right, so a little bit later or
sometime later, I don't know exactly
because my network connection dropped
down to when I was was trying to research
this.
Nathan unexpectedly removes
me from the live music project on
SourceForge. So this was the primary
distribution point for further project,
and it was where the mailing list was and
and where we published releases.
OK, so he suddenly decides to take
over the project, take control
over the project.
He was working on some some changes.
And I again, I,
I felt very strongly that they weren't
ready. There were some issues with them.
I communicated the issues to him
and he didn't I'm not sure
that he understood exactly what the
issues were.
And I'm sure that he was frustrated that
the development wasn't moving forward.
I really am.
Still, so the next thing he did
was he invited all of the abuse back
people to join the project and
and those two things, they really, really
surprised me. I
didn't expect that.
I did not see that coming.
And so they
then.
Sort of say that their lives would be
in 2014,
the Libby would be called Lemieux's be ex
sorry code base that they continue
working on on their code and I continue
working on my code.
And there's this committee and the GitHub
lemieux's be a repository, which is shows
pretty clearly that, um,
what they call merging
is really just renaming their,
their libidos b x code
base to use B and
no, not many people knew that.
I spoke with a pretty
prominent Linux kernel developer.
He didn't notice this either naive or I
mean, he just reads the
news like everyone else.
Right. And in the news, it says the
project merged.
So mistakes that I made.
I made a lot of mistakes, a
few of them were more
important than the other ones,
the major mistake I made, which would
have avoided all these problems, was
to not release
anything, because that is what.
What sort of signals activity
in the project to
anyone who's not working on the project?
You could you could say that it's only
for show and actually, if
you do a release and there's nothing
really much that has changed, then that's
perfectly fine as long as you sort
of send out a heartbeat and
and make sure that people know that,
well, the project is still moving
forward, even if there's nothing really
happening.
Another mistake I made was that I was I'm
I'm Swedish.
And I think it's a trait
in Scandinavia that we we like to seek
consensus. And I did
that for for far too long.
I was trying very, very hard to work
together with other developers
who wanted to do
different things that I wanted to do and
who wanted to do things differently
than I wanted to do.
And I shouldn't have I
shouldn't have tried to do that for so
long. I should have much, much quicker.
At some point, I finally realized, OK,
this is not going to work out.
We should go separate ways.
But that took me like a good year and a
half of fighting,
as this kernel developer called it,
as or discussing as I
had the impression that we were doing.
But that wasn't how it was perceived
outside the
outside. They had a lot of negative
negativity come out of these pretty
intense discussions.
And there's a really good presentation
by Tony Burke holds where he,
among other things, has that
five one negative
experience requires five positive
experiences within
an open source project or
any voluntary project for a contributor
to stay, stay there and to
stay to sort of level things out.
So for every single negative thing,
there are five good that are needed.
And that's a lot of a lot
of positive stuff.
That is needed to compensate for just a
single bad experience.
I learned lots of things about
how different contributors
do
well, what motivates different
contributors and what kind of
that there are different kinds of
contributors. I was
I was quite naive when I started
maintaining this project.
And I was
I was engaged in the project for
four selfless reasons.
I wanted to make a good software
library for others to use, for others
to benefit from it and for
me, myself to use as well.
But that's not necessarily what
drives everyone else.
Right. Especially if you have corporate
contributor. So the red headed guy, for
example, he just needed to solve the
problem that the paying customer had.
And he didn't really care much
about the drama.
He just needed a working library.
All right.
Package maintainers in operating system
distribution's. I learned that they don't
maybe don't look so much into the fact
they I tried to talk with
several of them.
They were all super, super busy
and stressed and
overworked.
And, of course, they don't have time to
to do investigative journalism.
I learned about trolls on the Internet,
and I'm not saying that people were
were trolls, but I was
trolled
and I let myself be trolled and I fed
the trolls.
And that's that's not good because
it creates these negative experiences
within the project.
And that hurts the community.
And it hurts it hurts me as well.
GitHub, that's a funny story, but
we're a bit out of time.
I'll skip that and go right to what I
learned about myself.
I want to do I want to do things
really, really well.
And I learned that I besides the
consensus thing, that I tried to do that
too much. I learned that I tried to do
things too well.
I have to I have to
work on that.
I have to be
I have to be more open to
how other people want to do things.
And I have to also not
insist that we fix all
the problems before we've experienced
them. I have to
let things go wrong sometimes and
and maybe I can.
And in retrospect than say
I told you so.
Thank you.