Friday, May 4, 2012

Pyjamas hijacked!

Image retreived from public-domain-image.com.

What is pyjamas?

Pyjamas is a port to python of google's web-toolkit (GWT). Pyjamas allows one to write python code, and have it automatically translated into javascript. The generated javascript then can be run inside a browser as a web application, or can be run unchanged in a suitable run-time environment as a desktop application. In both cases, the applications can communicate with web servers via AJAX calls.

What happened?

During a heated discussion about what it would take to promote pyjamas to a larger audience, some people got angry with pyjama's main developer and innovator, Luke Leighton. In summary, a few people were not happy with the existing infrastructure used by the project whereas the main developer rather bluntly dismissed the concerns and told people to concentrate on things that really matter instead. Furthermore, Luke told the people that pyjamas is bloody innovative. innovations are disruptive. get used to innovation being disruptive!. . People got really upset and concocted some sort of master plan to prove the world once and for all they were not to be laughed with. Innovation disruptive? They were going to teach Luke about innovation!
The normal procedure when people are not happy with the way an open source project is lead, is to create a fork and let both parties go their own way. This is more or less what happened here too, but with an evil twist (read on, stuff like this doesn't happen every day).
As it turns out Luke Leighton didn't hold the rights to the domain name pyjs.org, and the disgruntled people (at least one of which had admin rights on Luke's server to "help out" with administering it) contacted the rightful owner of the domain, and convinced him to transfer the domain name to the dissidents. Then, suddenly and out of the blue came an [[ANNOUNCEMENT]] on the (now defunct) pyjamas-devel mailing list (although to be honest there had been a vague hint to it in the past). In the announcement it was said how pyjs.org from now on points to a new location, where the pyjamas source code and wiki can be found on github, and the mailing list has been replaced with mailman3 software, and it was pointed out that Luke Leighton from now on was no longer in charge of the project in its new incarnation. Until today it's not entirely clear if private data has been copied from Luke's server to recreate the mailing list using new software. If that is indeed the case, it might consist of a criminal act (data theft) in at least one of the involved countries, and we may not yet have seen the last of this.

Effects of the hijacking

Well, the basic aim of the disgruntled people is to have better infrastructure, to make the project look more mature and attract more developers. How well did they succeed in achieving their goals with their actions? The current state of things for an outsider, at the time of writing 4 days after the facts, is not looking very good to say the least (although the dissidents, I'm sure, will disagree):
  • The new and "improved" website lacks basic functionality: most links are broken; the manual is offline; the examples are no longer accessible. Most links in google's archives now point to non-existing pages. Contact links still point to the old defunct mailing list, etc. I assume this will be solved over time, but in a proper transition to new infrastructure, this should have been solved before transitioning. Someone clearly was in a lot of haste to pull off this underhand trick, and apparently all this haste lead to getting very tired, too tired to fix the basic functionality. (And oh the irony of fate! While I'm writing this post, the google groups appear to suffer from very slow reply times. Seems like the shiny new technology has its share of flaws as well...)
  • During the recreation of the mailing list under the new ownership with new mailing list software, something went wrong and tens of people who had registered to the mailing list, but had asked not to receive emails (e.g. because they follow the group using an nntp reader via gmane) now suddenly got flooded with emails from the pyjamas list and started sending mails to unsubscribe (which were then received by all the other people who also didn't want to receive emails from the mailing list, who then also started to send unsubscribe mails...) The unsubscription emails didn't work, because the new mailing list software expects different commands (but of course no one had been informed about that), which led to an avalanche of "please unsubscribe me" and "please stop unsubscribing" messages, and eventually to killing off the mailing list, and creating a new one here. Looking at the number of people who've subscribed to the new list so far (5 at the time of writing, one of which already made it clear that he doesn't agree to how the changes had been hastily enforced), it would seem that this whole operation is not exactly something a 600+ community of people was waiting for.
  • Since the hijacking, only a few individuals have publicly applauded the event. So far, the hijack seems to have happened to serve the interests of those few individuals. No discussion about the matter happened on the mailing lists. No wonder a large part of the existing community is shocked and, frankly, pissed off (including, it seems, many of the current top committers). No matter how many professional tools one uses, without active committers the future of the project looks very uncertain. And with the main developer and innovator basically having been stabbed in the back, it can be expected that he won't be contributing to the project anymore (in the best case he would continue in a fork of his own, perhaps under a new name, but at this moment nothing's certain).
  • Corporate users of the framework now consider the whole project to be avoided-at-all-cost. No one in his right mind wants to base a business on a project hijacked by a minority of impulsive hotheads, without clear guarantees for continued development and support.

Conclusion

Even if the project manages to survive and attract new developers (and I really hope it does in one way or another, because pyjamas at its core is really cool technology!) the current state of matters where the main contributor and driving force Luke Leighton is as-good-as-eliminated from the project, where the fully functioning website is hastily replaced with something completely broken for days in a row and while making a significant part of the active and passive users unhappy is probably the worst possible thing that could have happened to it, and despite the new and shiny tools, the project might take a long time to reach a decent velocity, and gain some credibility with corporate users again.

EDITED TO ADD: shortly after publishing this blog entry, the copy of the pyjamas website has become more functional again. It was about time. EDITED A SECOND TIME TO ADD: see http://technogems.blogspot.com/2013/08/can-pyjamas-rise-from-its-ashes.html for a surprise :)

17 comments:

  1. Been watching this mess from comp.lang.python, and boy is it horrific. Too bad, Pyjamas looked like it'd be useful for someone like me, but there's no way I can back hostile takeovers. No way in hell.

    ReplyDelete
  2. unfortunately the only thing hostile about the whole ordeal is the reaction by the "leader".

    i have received little but thanks from *dozens* of people actually using the project, and the decision was backed by every prominent developer in the project, and the former owner of the domain. the previous administrator was a crass and callous to so many people, so often, leading to reactions like this:

    http://www.mail-archive.com/pyjamasdev@pyjs.org/msg00645.html

    ... several times. over the course of two years, i had numerous people asking me questions off-list due to the natural desire to avoid senseless bludgeoning.

    the decision was not made lightly; despite some personal dissonance, i believe it was a good move. as far as im concerned, the project was already HIJACKED ... and i simply returned it to the community.

    ReplyDelete
    Replies
    1. Unfortunately you're wrong buddy. It's like a raid in your house to find something that's interesting to the puplic, and once you find it, you share it and act like as if you were a hero.
      There are proper ways to disagree with people and forking does not kill anyone, in fact, sometimes it stimulates the development on both sides.
      You didn't have to hijack pyjs.org, you could have come up with something cooler and smarter but I guess you lost the opportunity.
      Shame...

      Delete
    2. This doesn't just give Open Source a bad name. It gives the development community a bad name, and reinforces the attitudes of those in the business community that will work with developers only when they can find absolutely no way of avoiding the experience.

      Open Source projects have the potential to turn out software superior to almost anything done in a proprietary environment, but there is unfortunately nothing to prevent the same kind of socially dysfunctional, impulsive, childish and closed-minded thinking that can be found permeating so much of the ranks of software engineering "professionals".

      Delete
  3. Anthony, as others already asked publicly a couple of times:

    Why didn't you fork the project, find a cool new name, register a domain, start a new mailing list, build a new infrastructure and start organizing a new community?

    The above option would have been a completely valid response given all your grievances.
    The fact that you didn't do the above suggests that you had other reasons beside the ones you publicly list. So, what's the real reason for not doing the above?

    ReplyDelete
  4. My two cents.
    As far as I've seen, forking just splits communities, which in that case would have been a shame, since the main purpose was to stop the constant bullying and irtrationality of the previous administrator. Go your new path, pyjs.

    ReplyDelete
    Replies
    1. Congratulations, that's the correct reasoning! The community wasn't that huge, splitting it up with a fork would have been counterproductive. I wouldn't have joined a new project, just because of Luke strong leadership role that gave comfort, and so probably wouldn't have others. What we want is a vibrant community - as with Luke who did a great job in communicating on the list, offering support, explaining the same things over and over again -, really a community *with* Luke, because he's precious as a communcator and developer, and he's obviously got personal, business related interest in pushing Pyj(ama)s forward---our common goal is pushing Python powered web development further.

      What lacked with the old setting was room for diversity, room for fair discussion, ways to find agreements, allow for changes that are potentially backed by great parts of the audience. It's good to have a strong leader, but - think twice - we're in the 21st century, we must allow for equal opportunities and - oh yeah, this hurts! - fight for democracy.

      Delete
  5. The new site makes no mention of new leadership, but mentions Luke many times over, which seems...fishy.

    Forking does not split communities like you might think. Open source has grown leaps and bounds with forks, sometimes the forks re-merge (XFree86, XOrg). Sometimes the forked project manages to grow while the original project dies in a dark corner (from a personal open source project I co-authored that was a fork of the, now defunct, original. The new project has found itself into many Linux distributions by default, while the original is in only one project that is slowly rotting itself.

    If there was strife between the community and its leader, then I don't see how the communities would split,and if it did, from the sounds of things here, the majority would have moved to the new fork.

    Sadly, what was done here is beyond belief. It's very childish, probably illegal (as the article and others have stated), and is completely contradictory to successful open source projects.

    But, is it rare? Somewhat, it happens; it happened to BusyBox. The reason I've seen it happen? A project lead/creator leaves and lets someone else take over, but only as development lead, not as project owner. At any time that project owner can give lead to another (which sounds possible in this situation).

    But a fork is the most appropriate solution.

    ReplyDelete
  6. Here's our run in with Luke. If you care, it's easy to find other instances of total douche-baggery. It's pretty clear he has anger/social issues:

    https://groups.google.com/forum/?fromgroups=#!topic/pyjamas-dev/4oqepzEqTAE

    FYI we abandoned our interest in Pyjamas because of him. I'm glad the other devs revolted as the project was a good idea. If you were never involved in the project, or read any of his poisonous posts you should STFU. You're ignorant.

    ReplyDelete
    Replies
    1. *cough* the pot calling the kettle black looks? *cough*

      Delete
  7. So, has the original dev continued his work under a new domain? Or any suggestions for untarnished Python->JS projects? brython.info looks promising.

    As other posters, no way am I using a project with such a twisted idea of community.

    ReplyDelete
    Replies
    1. As far as I can tell, the original developer has probably ceased all pyjamas related development activities and moved on to a number of hopefully greener pastures.

      http://www.computer.org/portal/web/computingnow/news/tiny-computers-take-center-stage

      http://hardware.slashdot.org/story/12/12/11/1550205/live-interview-luke-leighton-of-rhombus-tech

      http://www.yournextmp.com/candidates/luke_leighton

      Delete
  8. What a shame...I tried Pyjamas before, and liked it, but was waiting for some improvements and maturity...instead I got a project controversy leading to its demise. :(

    Any hope of getting this going again, legitimately?

    ReplyDelete
  9. Let me say I have very high respect for Luke and he has been doing tremondous work on pyjamas.
    Sometimes he may come across as a bit rude, but I'd say suck it up, unless it gets really bad.
    And from my experience it has never been too bad.
    I can understand with all the work pressures and repetitive questions on the email list, its easy to get annoyed unless your a buddha :-)
    In my opinion that be no justification for this hostile take over of the project.

    The word Hijack - I don't agree. This was an open source project that was owned by a community, not one person.
    Luke was and in my mind still is the leader of Pyjamas if he wants to continue to be.
    If people can still convince Luke to lead Pyjamas without compromising the improvements in development infrastruture that has been brought by Anthony and his team I think the community would still welcome and support that.


    All that said, I would agree with Anthony on some other things.
    1. Pyjamas is a project that has huge huge potential.
    2. Its development infrastructure was really really bad.
    3. It was really bad because Luke forced his extreme ideology on using only open source infrastructure for pyjamas. In my mind some of this didn't even make sense and the community suffered for it. Every open source project is funded and contributed to to some extent by corporations and individuals. And this includes Python funding from Google and others. Python the core of Pyjamas as well GWT which we have shameless translated to python. So I see all this contributions from Google. So not using Google groups or Github which offers these services free doesn't make any sense to me. Some Luke stuck to his guns to the detriment of Pyjamas in my opinion.
    4. More than that, since Pyjamas was a community effort these decisions should be a community driven and NOT driven by just one man's ideology. I would still follow Luke Leadership in pyjamas, but again only if he is willing to listen to the community and value their input just as they value his leadership

    I know its very late in this conversation.
    But its my 2cents.

    Sarvi

    ReplyDelete
    Replies
    1. Did the better infrastructure now, 7 months after the facts, result in a substantially larger community and faster development pace? Not as far as I can tell. ( https://github.com/pyjs/pyjs/commits/master )

      If anything, this incident perhaps teaches us that the whole operation is based on wrong assumptions about what makes a project successful. The worst athletes blame their shoes :)

      Delete
    2. Seriously, "extreme ideology"? Steering clear of a specific "free for now" proprietary solution simply makes sense, to ensure stability and avoid forced sudden migration.

      Regarding your second point (yes, you only made two) supporting the hijacking, would you describe the Linux kernel development as a community effort? I would. Linus can, much like Luke, be acerbic at times. Valuing community input is not the same thing as mindlessly obeying it - projects have leads to make decisions when presented with information.

      There is no doubt this should have been a fork. Anthony et alii should have set up their own website with a copy of the source code, and then started working on it independently from Luke's project. The community would then vote with their feet, by going where their needs were better fulfilled.

      Basically, Anthony got mad, upset the game board and we all lost.

      Delete
    3. From what I can tell of the history ownership for pyjs.org, Luke did not own the pyjs.org domain.
      And who ever "legally" owned the domain, "legally" gave control to the new team. And the new setup their own server which IS a fork of the old stuff. Except they gained ownership of the domain now. And from what I can tell
      Luke now has a new domain for the old fork that he continues to maintain at www.pyj.be.

      These the project HAS been forked, atleast from a legal standpoint.

      As for the mailing list issue. From what I understand, it went through 3 iterations to fix these sort of legal complaints. And in its current form the group was created and people were "invited" to join. Which incidentally is exactly what Luke did a few years ago when he decided to move this exact list from google groups to his own server. And Anthony has done exactly the same with the current iteration of google groups used by the pyjs.org fork. So that issue has been resolved as well.

      So at this point I believe there are 2 stable forks of the old pyjamas code base one at pyjs.org and one at pyj.be. Both seem to have their own following and some event contributing to both. And there doesnt seem to be any "legal" issues anymore.

      Delete