How Open Source Projects Survive Poisonous People
CoolVibe writes "Two Subversion developers talk at Google about how to keep pests and malcontents out of your open source projects. From the abstract: 'Every open source project runs into people who are selfish, uncooperative, and disrespectful. These people can silently poison the atmosphere of a happy developer community. Come learn how to identify these people and peacefully de-fuse them before they derail your project. Told through a series of (often amusing) real-life anecdotes and experiences.'"
Tag the story video or videolink to inform.
Spam removed for the Internet's pleasure
Lock them out and tell them to become Anonymous Cowards on Slashdot.
...with swamp boots, just like everybody else, right?
Could we please get video and flash links in stories tagged "(video)" or "(flash)" like is done for PDF links? Especially things that will generate audio which might be disruptive in a work environment and when it isn't necessarily apparent in the URL.
Oh, say does that Star-Spangled Banner entwine / The myrtle of Venus with Bacchus's vine?
he goes around calling us all "FUCKING IDIOTS" and "INTERFACE NAZI'S", we try to tell him to put down some constructive criticism - even though its an area he has no expertise in - but he just refuses, sometimes even sending in "advice" which will go against the whole ethos of the project.
Let's try and identify potential malcontents before they destroy our community! Then we can hound them out and humiliate them. What a wonderful way to ensure our project stays all happy and peaceful. What could possibly go wrong?
Maybe if you would just implement SVN Obliterate, you'd be pestered less. ;)
They don't grade fathers, but if your daughter's a stripper, you fucked up. --Chris Rock
... does that explain why I'm still waiting to see the HURD in action?
RMS seems like he'd be a tough guy to work with/for. I've always wondered if his personality doesn't slow down GNU development in general.
OTOH, Linus seems like a generally amiable dude, and the Linux community has grown more than I ever would have thought possible 10 years ago.
I don't need no instructions to know how to rock!!!!
Every open source project runs into people who are selfish, uncooperative, and disrespectful.
Those are easy to deal with. The problem is with people who, under the cover of "doing good to the project", make everybody hate everybody else. Those usually spread rumors around, go tell John that Jack, frankly, doesn't work enough, while at the same time telling Jack that John, really, isn't leading the project in the right direction, etc...
We've had plenty of those at the company. More often than not, those are what we usually called "software diva", people whom management think are indispensable, and therefore should be more or less allowed to do or say anything.
My way of dealing with these folks was usually simple: single them out at the weekley meeting, sum up the shit they've been spewing around, and tell them they're allowed to run free with whatever they thought was best on a local fork of the project for a week and prove they're right and/or better and/or more efficient than Jack or John. Failing to prove it, they'd be relegated to the line-pisser pool, otherwise they could take my place as team lead. Usually the result was the software diva leaving the meeting all offended, and half of the time resigning after a couple of days. Public shame and the threat of putting their supposed programming skills where their mouth is is a very efficient method of putting these people in their place.
"A door is what a dog is perpetually on the wrong side of" - Ogden Nash
Every open source project runs into people who are selfish, uncooperative, and disrespectful.
AKA "coders".
Get a dizzying intellect. Oh, and build up an immunity to iocane.
...need Youtube videos to know howto tell people that I'd rather fork the project than continue working with them.
...uh.. oh... so this article is about me?
...like Eric S. Raymond?
I'll say it out, I don't like Theo de Raadt's hostile attitude, but I do like the way he's adamant about what he believes in, and actually does something about it.
I don't like the GNU project, not because of a distaste for free software, but because of a distaste for crufted-together bloatware that feels like the Microsoft of Unix. And have I done something? I'm actually working on getting the leaner, meaner, BSD stuff up on my system in place of gnuware. A lot of that comes from NetBSD and OpenBSD.
I mean seriously, when my own fully functional version of "echo" is 4116 bytes stripped, how come GNU's is 13880, and all it has mine doesn't is --help and --version? (Both are dynamically linked.)
-uso.
What you hear in the ear, preach from the rooftop Matthew 10.27b
Hey, don't badmouth Theo just because he didn't like your "Let's install Firefox suid root!" idea.
...assassination in the journals. Quick, clean, and ensures they can't just be transferred to another department to create headaches for someone else.
GetOuttaMySpace - The Anti-Social Network
There was a guy named Ilya who would clash with people regularly on perl5 porters back in the 99-00 days but I tell you, he was a huge contributer to perl and it would not be where it is without him. But he did cause a lot of social issues within the group and we lost other really good developers because of him. Not sure where the net loss/gain fell on that one, but it is an interesting problem to have witnessed first hand.
Who are you? The new #2 Who is #1? You are #617565. I am not a number, I am a free man! Muhahaha.
You'll find that most of that 'bloat' is actually robustness code, error condition checking, etc., ...the stuff that makes most GNU tools /prefered/ by admins. That incredibly alpha-quality 'BSD gzip' that shipped with NetBSD-2.0-RELEASE was a joke. I can't wait to see what a fiasco a 'BSD rsync' turns out to be.
I'm used to you trolling the Ubuntu stories crying about your terrible experience installing Linux, but at least you kept the bitching to a story that was (at least tangentially) related to ubuntu. Now you're just looking for any excuse to bitch. Mod parent down, he's trying to ignite a flamewar, AGAIN.
it's about time for a new acronym: WTFV? btw, I didn't
La vida no es una pastafrola.
People like Stallman, Torvalds, or van Rossum are not the nicest or easiest people to get along with. Nor, for that matter, are commercial software leaders like Jobs or Gates. It takes a certain degree of focus and arrogance to lead big software projects and to make the tough decisions that need to be made.
On the other hand, malcontents are often malcontent for good reason--look at the dispute over the Xfree86/X.org split. Sometimes,someone who is an effective leader on one project is making a nuisance of himself on another, like when Torvalds was interfering with the Gnome project.
So, it's OK for open source project leaders to dismiss "malcontents" and focus. On the other hand, those "malcontents" are often going to be right and justified, and they may fork your project and make you irrelevant.
If the word "videoplay" in the URI didn't help you I'm not sure that a (video) tag would.
REM Old programmers don't die. They just GOSUB without RETURN.
Your version of "life" happens to have even less bytes than those of Gentoo devs!
The final type of person, the one that bothers me perhaps the most, is the coder or contributor who simply doesn't answer bug reports or emails (whatever the appropriate method may be) at all, even after several weeks of waiting. Are you guys *trying* to turn your users away!?
People really do see those buggy programs, folks. They show up in lists of stuff at places like FM and SF. If you think your code is good and you want to release it, great! But if you won't consider bug fixes, keep the damn thing to yourself and/or contribute your code to an already-existing project instead.
I've been a programmer since 1986 on another platform, but stopped in around 2000 and haven't come back since (outdated platform anyway, so my "skillz" don't exactly translate to modern programming methods), and I have never once considered telling someone off like these examples. What went wrong? When did the F/OSS community start to gain this elitist attitude?
Mod me down if you want, I don't care. I've got the karma to burn.
Was this Ilia Alshanetsky?
But the project itself is a good idea.
Fork?
Did anyone say "Tomcat" or "JBoss"?
Never mind the developers/contributors, it is severely disconcerting to users of the code (and managers of those users) to feel that an OSS project is staffed by developer-hating truth-dodging self-regarding sociopaths.
Did anyone see the recent(ish) furore about synchronisation on session objects in Tomcat 5? I refuse to use any Tomcat newer than 4 until I think that someone not wedded to the sound of their own voice will take advice and rejoin the real world and make things *safe* without attempting to bend the spec out of whack to suit their own warped view of the world, programming and thread-safety!
Goodness.
Rgds
Damon
http://m.earth.org.uk/
...and have serious problems with some of the things they are advocating.
A large part of the video was toned negative. Only the word "poisonous people" is enough to know what they are thinking. Yes, there are mistakes certain people make that can be *called* poisonous, and could indeed destroy your project, but don't label the *person* but the *behaviour*.
Apart from being very undiplomatic, you run the risk of losing good people in your OSS project just because you get anal about someone not 'doing things by the book'.
An example is the "CVS date-parser contributor", where the guy wanted his name on top of the file, but SVN-dev rules stated not to. Instead of talking diplomacy, and getting a solution that satisfies both developer as community - the code was good as they said - they throw out the code *and the person who wrote it*. Maybe this example was bad, and the person was thrown out because of other reasons, but they made it an example in their video so that's the fact right now..
I think I would like a label for OSS projects that handle people this way: cactus-OSS communities - they can grow great software, but press the wrong part and you get hurt so much you don't want anything to do with it.
Seriously, if you're running an OSS project by all means protect it, but try to change the behaviour people portray rather than kick them out. Kicking out a developer should be a last resort, as it on itself could have serious implications for the status of the OSS project imho.
Slashdot: stuff for news, nerds that matter, matter for news, stuff that nerd
(Would someone summarize? Don't have time to watch 55 minutes of talking head video.)
MMORPGs have the same problem, with "griefers". The trick is to design the system so that a griefer can't annoy a disproportionate number of people.
The classic line is "It takes ten honest people to support one crook". That's very real; when the fraction of troublemakers gets too large, nobody can get anything done. Happens routinely in bad neighborhoods and war zones.
Um, what's wrong in redoing something to make it faster and smaller ? Nowadays most programmers just take all libraries they can get, to simplify the process of programming, and produce bloated code, when they could just write their own functions, smaller which would suit their needs, and yes, I do that quite a lot, and when I need to use a library, I take time to choose the better one.
\,,/ Rock and Roll ain't noise pollution, Rock and roll ain't gonna die! \,,/
Funny how this aired the same day as the Gentoo Crisis.
I mean seriously, when my own fully functional version of "echo" is 4116 bytes stripped, how come GNU's is 13880, and all it has mine doesn't is --help and --version? (Both are dynamically linked.
See it for yourself:o /echo.c?rev=1.6&content-type=text/x-cvsweb-markup / src/echo.c?view=markup
OpenBSD `echo': http://www.openbsd.org/cgi-bin/cvsweb/src/bin/ech
GNU `echo': http://cvs.sv.gnu.org/viewcvs/coreutils/coreutils
GNU version supports de-escaping the parameters before printing them while your version probably doesn't.
It's exactly that way of thinking that produces so much bloat these days, you say there's no point in making echo smaller and more simple (of course, you DO realise it's just an example, right?), and people take that to a higher level, 'why should I optimise, rethink my code, when we have 2 GB's of RAM, dualcore cpu's, 300 GB HDD's' and so on.
\,,/ Rock and Roll ain't noise pollution, Rock and roll ain't gonna die! \,,/
That's exactly my point: why does echo have to be that big? What's it doing? Efficiency isn't just for ancient computers, and the lack of efficiency in today's software is driving people to buy ever faster hardware just to run at the same damn speeds they used to get on their old hardware, with their old software.
Hell, WordPerfect 5.0 ran faster on my old 12 MHz 286 than OpenOffice.org 2.x runs on my 2 GHz Sempron - and had pretty much all the functionality I need in a word processor even now.
-uso.
What you hear in the ear, preach from the rooftop Matthew 10.27b
HURD is 17, give or take a few months. Can you believe it...started around 1990....
You mean, like \a causes a beep, -n suppresses newline, and the octal escape stuff?
Yep, supports that
-uso.
What you hear in the ear, preach from the rooftop Matthew 10.27b
Computer time is more plentiful than human time.
Faster hardware is cheaper than better programmers, and much easier to find, and you know when you got good hardware, but you can think you've got a good programmer and be really wrong.
Just because it CAN be done, doesn't mean it should!
I would like to commend the Subversion community for being the one piece of open source software that I have used in several years that had a support community (between their websites, and the #svn channel) that is not just full of arrogant elitists.
If I ask a question on #svn, I almost always get an answer from someone who can point me to where in the manual to look - and that's pretty valuable, since if you aren't intimiately familiar with the product, you might have no idea how to search for what you're actually looking for.
"Champagne for my real friends - and real pain for my sham friends!" http://ericblade.postalboard.com/
The unfortunate truth, although, not every coder is out to get release fast, some of us still take some extra time to make our code simpler and lighter rather than just brute-forcing it.
-uso.
What you hear in the ear, preach from the rooftop Matthew 10.27b
I have a related problem that I've been trying to understand and cope with. One day while searching for information to further my OSS project TabletMagic I discovered a discussion board where someone had simply modified an older version of my driver to work on TabletPC computers, and he was claiming that he'd "started from scratch" in creating it. I downloaded the binary and examined it, and it was clearly built from a modified version of my source code. It even had my name and original copyright message in it, and printed these to Terminal when started.
So I challenged this person's disingenuous claim that he'd created it "from scratch" and asked him to make his source code available, as he should do under the GPL.
Instead he pretended to be indignant, continued to insist he'd "started over," and removed (!) the binary he'd posted (you know, because of his overwhelming indignation). Rather than let him conceal the binary under dispute I reposted it, which caused him to feign even more indignation and call me names. There was some back-and-forth in which I continued to press him for an admission, and in which he continued to stick to his position, and to insult and ridicule me.
After a few exchanges he posted a new build of the driver with various strings hastily replaced. For example, he replaced the word "Magic" with the string "Khash" (same number of letters... odd since he has the source code) and replaced the copyright message with one of his own (again, same number of letters), and he replaced the CVS-generated "Revision" number with a value (0.31) that CVS could never produce. Anyhow, I kept giving him rope, and he kept hanging himself with it.
Eventually, I softened my stance and let things lie, and just asked him to share with me either source code or information to help me get my driver working on TabletPC. He didn't provide either one, and instead he deleted all his posts (smart, because they were very embarrassing) and went on to work on other Hackintosh driver issues. Fortunately, I had been saving his posts all along with the hope of writing an article about "FOSS usurpation" on my website.
I'm happy to say I did manage to get TabletMagic working on TabletPC systems, but even now I could still use some of this madman's insights into ISD-V4 digitizers. Despite his lack of character, this guy is no dummy.
What still astounds me is the striking similarity between this person and other hackers who have done this sort of thing in the past. You might remember a few years ago a hacker had modified a bunch of Mac shareware binaries and was distributing them under different titles, and more recently "CherryOS" was found to be a rip-off of PearPC. What's striking is that whenever these guys are challenged they display very characteristic behavior, producing indecipherable denials that border on the insane, and insulting those who challenge them. In the end they always end up making themselves look bad, and they always give themselves away by the illogic of their denials and their exaggerated bluster.
Now in my case I was lucky. This person had modified my code for use on an unsupported platform and as far as I know he was not planning to sell his work. And when I think about it, it doesn't seem he could do much harm to my project. Nevertheless, it alerted me to one of the more annoying aspects of FOSS software, and my powerlessness against it. To his credit, he did push me to add TabletPC support to my driver which otherwise I might not have done so soon. But overall this experience has been very unpleasant.
Is there really anything an OSS developer can do to combat this kind of annoyance? Are there any smart tools out there for comparing binaries to see if they come from similar source codes? Does the Free Software Foundation or Sourceforge have any kind of policy or resource to help poor saps like me? And in the end, what does it all mean?
-- thinkyhead software and media
One of the biggest poison personalities, that I ever met, on an OSS project was Reece Sellin when he was ramrodding the Freedows project.
Granted, it was his idea and his uKernal, but Lord, talk about a case of the messenger killing the message. His penchant for flame wars, well he was a kid at the time, and his elasticity quotient as a 0 is what killed the project.
Good idea.
Lousy leadership.
Dead project.
Note, even ReactOS is woefully on track to be the Duke Nukem of the OS world.
Politics is the art of looking for trouble, finding it everywhere, diagnosing it incorrectly and applying the wrong fix.
Efficiency in /bin/echo would be very pointless, as the binary serves almost no purpose. When you type 'echo' at a command prompt, or use it in a script, you're getting the version built into your shell.
This just goes to show that the best optimization of computer system, including balancing the value of programmer time vs user time and computer time, also considering flexibility for the future, is a complex topic. Making an example out of a simple binary that nobody ever uses is a mistake. Code me a better version of gcc and we'll talk.
Regardless of how small your echo is on disk, it's going to take at least 8196 bytes in RAM. By all means, keep thinking efficiency, but how about applying it to targets that really need it, like, oh, GNOME?
Done with slashdot, done with nerds, getting a life.
Every time I tried to join an open-source project, I'd find that I was cut out of the discussion, no matter how much I complained and accused people of trying to shut me out.
If I were able to get in there, I'd be able to rid those projects of these pesky people who won't respond to my constant requests!
Signed,
RealGrouchy.
Hey pal, this isn't a pleasantforest, so don't waste my time with pleasantries!
wasn't taking any precaution when he was speaking. He would say stuff like: "if you don't understand this, you can't comment on that so you better say nothing or you'll look like an ignorant fool..." or "this way is the best way, it's a fact. You can't beat logic. You can't prove me wrong so you better do like I do." and lots of talk like that. But the thing is: he was right, always. And he was younger than me. The problem, however, wasn't so much his attitude but the attitude of all the others, who very often refused to admit at first that he was right. Oh yeah, it was even funnier than that: when people would try to prove him wrong he'd say "See... I told you. How was it wasting your time?".
After being shown I was wrong a few times, I realized how good that person was. And I learned, a lot. Because the guy hated people thinking they knew better than him (they did not) but loved to share and explain. He was a living encyclopedia of computing.
So maybe the guy lacked some communication skills, but it should also be expected from others to sometimes try to deal with the fact that some people may be excellent programmers but have poor communication skills, instead of simply entering in a pissing contest, which you'll loose because the guy is really that good.
My point is that sometimes it's not just about the odd contributors lacking communication skills. If the guy is really that excellent, it may be worth to put your ego aside and learn...
I was surprised the guy in the front row (kde tshirt) had any hands left afterwards!
They talk a lot about poisonous people. Which misses the point. It's all about removing poisonous behaviour from the community. Sometimes people make mistakes and do stupid things.
Yet even though they don't understand it well enough to label it properly, they do provide concrete examples on how such poisonous behaviour has negatively impacted their development process, and how they feel they have successfully dealt with that behaviour.
These are problems that every team deals with. Not just open source projects. Even really good people can produce poisonous interactions in a team environment. It happens. The best tactic is to learn how to recognize it, and learn how to shift the team to more constructive behaviour.
So I'll say this. Watch the talk with the full realization that while they don't have the most complete perspective on this issue, neither do you/we. Maybe we can learn something from their mistakes. Even the mistakes that they think are successes. This attitude seems to match the presenters' attitude. They don't make any claim to have all the answers.
I had to click through several thread redirects before your Dell Dimension thread showed up:
m essage?message.uid=18143969#U18143969
http://www.dellcommunity.com/supportforums/board/
Did you ever get the feeling the story is too damn long and in the present tense?
I've recently been considering getting involved in some OSS projects and have always wondered how such communities function with these types of people in them. I've found people like this in nearly every online community I've been involved with, and the idea of them in OSS projects has put me off the idea of joining in on any in the past.
I didn't get to see the whole video (It stopped at about 20% complete), so I'm sorry if this is covered. Dealing with those types of people is part of management in any project, even open ones. Projects with good management do well and those without do poorly, all other things being equal.
"Always forgive your enemies; nothing annoys them so much." - Oscar Wilde
You can always look at their code.
I know I'll never use %x in printf for my lemonade stand program, so I'll write my own printf without support for it. That'll save a lot of space.
(In case you don't get it, I'm better off using the standard function anyway, because it'll already be there. Your idea just adds to the bloat by discouraging use of shared code).
So dont look a gift horse in the mouth, or complain about the color of a free bike shed. If you need something that badly pay for it, or build it yourself. If someone was kind enough to build something for free that doesnt work for you, badmouthing them is just bad form. If they dont want to spend time coding, its not their problem.
You're lucky, I'm an obsessive note-taker. You'll have to supply your own verbs, though.
Talk, How to protect your open source projects from poisonous people, Ben Collins-Sussman and Brian W. Fitzpatrick, January 25, 2007, Subversion developers from Google explain their experiences. Google TechTalks. http://video.google.nl/videoplay?docid=-4216011961 522818645
Open Source Developers Speakers Series, 4. Google engineers, Chicago.
"Abstract: Every open source project runs into people who are selfish, uncooperative, and disrespectful. These people can silently poison the atmosphere of a happy developer community. Come learn how to identify these people and peacefully de-fuse them before they derail your project. Told through a series of (often amusing) real life anecdotes and experiences."
Most important resource is the attention and focus of your community. Poisonous people can show up, distract your developers, cause emotional drain.
On purpose or accident. More often unintentionally.
Perfectionism. Design document went on forever.
Painting the bike shed. Enginers hand in huge document for design of the nuclear power plant, approved in 5 minutes. Week later, come in with blueprint of bike shed they want to build, debate for months on what color.
"Call bikeshed."
People want to put their stamp.
Habits that make healthy open source community: Politeness, Respect, Trust, Humility.
Pick a direction and limit it. Subversion mission statement, "To create a competing replacement for CVS." Could point to it when people wanted to expand it. That's not in the mission statement.
Google Web Toolkit. Ajax development environment in Java.
Mailing list, primary communication. Read archives first. If they don't, they're disrespecting everybody's time.
One vehement dissenter, half the messages from one person. Call people out on it, filibustering. Consensus-based community, consensus derailed.
Document history, including mistakes. Standard format, consistent log messages. Dealt with client in old job, guy said, I can't get my programmers to write in a standard format. Responded, I've got 30 volunteers off the Internet, they follow detailed format, and you're telling me you can't get your paid employees to folow a standard format?
Commit email.
No Powerpoints. Some people go off and write big Powerpoints, come back with big document later, nobody can go through it. We have to see what you're doing as you go along.
Bus factor. How many people would have to be hit by a bus for you to wind up in a pile of shit. Project that depended on one guy, assign him a collaborator, share expertise.
Egalitarianism, not owning, no names. Good coder insisted on name, blackmail, you can't use it if I don't get my name, refused his contribution. Not willing to sacrifice our community for your ego.
Expand community. Culture perpetuates.
Founder can be booted, too possessive of his code, voted him off.
Voting is a last resort. It shows consensus didn't work.
Identify people. Put them on Bozo list.
Good cop, bad cop. Guy can turn out to be good, make valuable contributions.
Can identify them early on. Usually have a nick like CRAZYJOE, lots of different nicks, lots of caps, exclamation points.
Can't pick up on mood, ask questions they could look up, which disrespects other peoples' time.
Blackmail. Trolling. Hostility. Continually object.
"Patches welcome" is the open-source term by which you dismiss people. Send in your patch.
Is this debate worth it? Ignore them.
Concentrate on what they have to say, ignore the hostility.
One guy challenged basis of Subversion, people responded emotionally. Wasted 2 days of my time.
Good cop. Sometimes people look like trolls, actually miscommunication. Not native speakers of English. Give benefit of doubt, sometime
IMHO, the major difference is that Linus is primarily a doer/engineer while RMS is primarily a talker/philosopher. Linus sees GNU and GPL etc as tools to get to where he wants to be, while RMS is is more interested in the almost religious pursuit of GPL and the software just comes along for the ride.
Witness the whole GNU/Linux naming debate: For RMS, this was a very important milestone http://www.gnu.org/gnu/gnu-linux-faq.html; Linus thought it ridiculous, but didn't burn much energy in debating it.
Engineering is the art of compromise.
As a bonus, other poisonous people will leave to follow.
First of all, judging from the video I must say Ben and Brian excel at managing projects.
Now, there seems to be a sort of OSS code of honour which is: "R-E-S-P-E-C-T" (gesticulate idiotically like some rappers do.) How often did Ben and Brian say the word? If you see this as a management training video, why do they bother to educate already educated people? Isn't respect a matter of course?
In corporate interaction respect is implicit. Disrespect bares consequences.
Why is it that so many OSS developers require some 'hood protocol to communicate? I sometimes feel like in a movie where it's us against the bad guys in power and that therefore we do funny hand shakes to distinguish ourselves. (OK, I exaggerate a bit but understand what I mean.) It's so tyring and time consuming. In corporate coding you ask for stuff, get an answer and move on.
I remember one time when it took quite some while to get an answer from a developer for some trivial issue. I made a remark saying that the guy most likely had other more urgent things to attend to than my little issue. This is a compliment; It means I appreciate some horribly busy guy is willing to do some shitty work for me. The guy in question got mad and started to lecturing me. He of course never touched the fact although my issue was minor, he was horribly late in his reply. To set him at ease I had to spend time on explaining the remark. This is so tiring and puts me a bit off OSS coding. I nevertheless continue to contribute.
Message to the OSS prima-donnas: Read also books on communication and social techniques. They contain usefull stuff you need to know when communicating. See them as manuals on social behaviour.
I hadn't the slightest objection to his spending his time planning massacres for the bourgeoisie... (P.G. Wodehouse)
at about 26.20 if you wanna get to the meat of the article.
I have a FreeBSD server. FreeBSD is good, but I hate some of its userland. I much prefer GNU tar, bash, ls, etc. over BSD's own userland. And frankly I don't care whether the binaries are a few kilobytes bigger, this is 2007 and a few kilobytes or even megabytes isn't going to kill me. I think it's quite useless to speak about "bloat" in your example.
Really, of all the people involved in all the open-source projects out there, I think Linus' personality is the most destructive. His arrogance and brusque tone have engendered a community whose first response to ANY request for help is "RTFM", and whose first response to anything that isn't a request for help is a flamewar.
Amdahl's Law. Why spend effort improving the non-shell based echo binary when it is such a negligible portion of usage, and thus your overall real-world speedup is also negligible, when you could spend the same effort optimizing something that hordes resources?
Linus muddied things when he made his microkernel/masturbation simily. Just because he said things in a way geeks can relate to does not make him right on this point.
There are many highly reliable and highly efficient microkernels out there. For example, QNX (which runs just fine on a 286), is a microkernel, as are Minix, OS9 and many other RTOSs. You don't get to be an RTOS if you're just bloat. I saw some pretty cool systems using QNX clusters running on 286s back in 1989 or so.
Hurd just goes no where because there is no motivation and drive. Hurd lacks drivers. Hurd lacks drive. Hurd lacks.
Engineering is the art of compromise.
If any of you have ever had to ask a question on the Hibernate Forums, and been unlucky enough to have Gavin King [bigwig founder] answer your question, you know that his first reaction is to tell you what an idiot you are. The next is to demand you buy his book. I recommend to new Hibernate developers that they NEVER use their real names
See XFree86 versus X.org.
See SodiPodi versus Inkscape.
etc.
As mentioned in another post, if the leaders don't pay attention to some of these "poisonous people" then they and they work they have done may be made irrelevant by someone who actually knows what they are doing. Most of the time that doesn't happen though because very often people making suggestions don't have time to do it correctly themselves.
I'm guilty of being a "poisonous person" myself and I often didn't see it within myself. So the discussion is also good not only with regard to identifying poison in others, but also within one's self. We're not inherently poisonous people, but sometimes either through frustrations that need to be vented or even through really good intentions, you can become poisonous.
It's also a really good discussion in that I agree with the presenters a great deal. This is especially true when it comes to divorcing yourself (and your pride) from your sense of ownership. I'd like to liken such feelings of ownership to children or your job's work responsibilities. As with children or your job, you have agreed to take responsibility and participate in something where you shouldn't expect to have real or actual ownership and if you feel like you have ownership, you should reconsider your feelings on the matter. You cannot own people so you don't own your children. The company owns the fruits of your labor and so even though you accept responsibility, ownership is not typically yours. (I get annoyed when employees put THEIR names on software and other forms of registration and licensing. Yes, I know Robert Smith was the IT manager, but *I'M* the IT manager now and even though it has his name on it, it's really the company's money that paid for it so it's the company's license for Adobe Creative suite... If you have to put a name on it, use a ROLE name, not your own!)
And yes, I also agree greatly when it comes to putting your name on code submissions. Check your pride at the door and you'll have an easier time being an objective participant.
I like NetBSD a lot, but to be fair it's had more than its fair share of problems politics-wise. It seems that however sincere or however long they've been involved, everyone is fair game for personal attacks at NetBSD. I would love to get involved with NetBSD, but it appears that recently the tone of the project changed, and these days they're less open to involvement of the type you described (i.e. code optimisations) than they once were.
You insensitive clod, I've only got an Atari 400!
Your thoughts form your reality.
Most likely, WordPerfect 5.0 used a fixed-pitch font for display, which by default is 80x25. OpenOffice.org 2.x uses a GUI, which can be configured to display more text than what's normally possible under an 80x25 terminal window.
If you want something fast, pick Wordpad, Textedit or the Linux equivalant - which is more than enough for a basic wordprocessor. If you need something more fancy, you can load up OpenOffice.org or your favourite word processor.
This is countered by taking the opposite approach - for example, Number crunching. Even with all that processing power, you cannot obtain an optimal result by doing a brute force approach, as it will take up too much time.
One of the previous contests required me to number crunch to determine whether or not a number was prime. Unless your Bignum library is as fast as possible, you will lose a significant amount of time on slow operations. Likewise, if your algorithm is O(n log n) rather than O(n), you will lose a lot of time.
I group arrogant people into roughly two classes. The first is like the guy you describe--people who are arrogant because they're damn good. Off hand I can immediately think of one guy I work with who completely fits the type. He's a brilliant network engineer, and he never stops letting you know about it. Fortunately he's charming enough to get away with it most of the time. The second is the guy who tells you how goddamn good he is, but can't back it up. Unfortunately, in my experience people like this outnumber the first group by about ten to one. I suspect some in the second group are just deluded, and some were actually damn good at one time. If my colleague lets his skills erode without realizing it, there will come a day when he's a real nuisance.
We didn't boot any person at all, we simply rejected the offered patch. The person wasn't a member of the community, just a drive-by patch contributor.... we didn't "throw him out", because he wasn't "in" to begin with!
That's totally diabolical --- so a person has to be "in" with your crowd before they can submit a patch with any high chance of having it accepted.
I've seen a number of FOSS communities like this, completely fanboy-ridden and operating as a clique instead of as an open developer community. It's one of the worst aspects of some allegedly-open development groups, pandering to "their" in-crowd instead of being driven by contributions regardless of their source.
If you're an incestuous clique, requiring newcomers to "prove" themselves in the community before being "accepted", then you're not truly open. In fact, you're probably intrinsically stagnating (although you don't know it, as that can only be seen from outside the group), and alienating the new blood that would give you vigour and progress.
This whole thing was a pretty depressing indictment of how some FOSS communities work. Fanboys and cliques are the antithesis of open development.
I mean seriously, when my own fully functional version of "echo" is 4116 bytes stripped, how come GNU's is 13880, and all it has mine doesn't is --help and --version? (Both are dynamically linked.)
I'm sure everybody on the GNU project is just aching to hear about the inner workings of BSD's marvelous 4116-byte echo binary. Surely all the systems with GNU userlands are going to go down in a heap of flames due to the extra 9000 bytes.
It really is a shame there's no way for us to learn about the magic inner workings of BSD echo.
Ummm, that's true, however the GNU tools have been around for many many years. You can call it bloatware (or the OP, I didn't notice if you were the OP or not), but the other programmer's code isn't going to have the wide deployment and testing to go with it. GNU ls may seem large, but it also works *everywhere*. Will yours?
It's very easy to get caught in the trap of thinking that you can write a program smaller and faster and just as functional as the one you're using. Sometimes that's actually true, but most of the time it's not. The program you're using, for all you know, is 80% workarounds to deal with (take your pick) broken platforms/non-standard drivers/broken filesystems/etc. Your code, fresh and virgin, will *not* have any of that stuff in it. Can you be certain that when your code is as widely deployed on as many different platforms as the one you're replacing that it will still be as small as it was when it was new?
Like what I said? You might like my music
This is patently untrue. I have firsthand knowledge of a developer that was requested to abandon the project willingly or be locked out. This guy was attempting to help wherever he could - however he was allowed. His mistake was being too prolific in his reponses. Most of which positive comments. The issue raised was there was too much noise. He asked if he could stay if he didn't respond as many times. He was told in no uncertain terms. Leave voluntarily or be ousted. Instead of being redirected when he was obviously willing to do things in the ":subversion:" way.
Take that however you want. It does happen.
You should have contacted the FSF, they give support for these kind of GPL violations... they have lawyers that might scare the guy pretty fast.
at least for the GPL you have some very usefull help.
Higuita