Open Source projects and Git self hosting

A mailing list I’m on has been discussing where Open Source projects should host Git repositories. I wrote up these rough thoughts and have been asked to post them for others:

Been thinking about this, and I realised Open Source projects have to be very careful self-hosting.

The whole model of Open Source on Git for welcoming contributors is Fork-and-pull-request. As in Random Person A forks your projects, makes changes, makes pull request, you check,¬† accept and merge – great. But that also means you have to allow Random Person B to fork, change, request and you to realise that B’s code changes are totally wrong¬†(or worse, B themselves is an idiot) and politely refuse.

But this means if you self-host your Git repository for an Open Source project, you ideally have to allow random person A and B (who may be an abusive moron) to make accounts and start putting whatever code they want up there. You basically have to became a code host and start watching your hosting very carefully, otherwise before you know it someone is abusing your servers or has uploaded objectionable material. That’s not a welcoming prospect at all for an already overworked Open Source project.

The alternative is not to allow others to make new repos on your own Git hosting, but then suddenly you’ve made it harder for new contributors to contribute. You also lose visibility; if a random person forks your code most places like GitHub will track that with pretty graphs but if they clone your project and push that elsewhere you don’t see that. This matters because even if someone forks your project and changes it for their own personal use, it’s still interesting to see what they have done.

I don’t know where Open Source should host Git projects; comments and more blog posts welcome.


Adults wanting to learn to code?

Recently lots of clubs where volunteers teach kids to code have sprung up like CoderDojo and Prewired, and I know several adults have been jealous.

Often the best thing to do is start small and see how it goes, so let’s suggest this: a regular evening slot, maybe twice a month, where adults who want to learn to code can meet up and work together. They would work online on a course of their choice (Codeacademy for instance) but be with other people they could swap tips with and get encouragement from. We would try and encourage a couple of programmers along to help out people who get really stuck.

What do you think? Would people be interested? Comment below ….

You shouldn’t be able to downvote without comment

Discuss: You shouldn’t be able to downvote someone else’s content on a community moderated site without also having to explain why.

A downvote without explanation may deal with trolls but it does a terrible job of encouraging newcomers to a community who just get something slightly wrong. It basically sends the message “f* off” with no explanation or clear path on how they can engage better in the future.

For this reason, it also encourages groupthink not discussion. Anyone who’s opinion differs slightly from the prevailing opinion is down voted. The downvote offers no chance to engage in discussion to explore the issue; it simply says “You’re wrong – end of”.

Basically, a downvote without comment is a door slammed in someone’s face which offers them no path to discuss the issue more, no path to further learning and no path to re-engage with the community. The person who gets it is shut out, and the person who does it just reinforces their own views and reinforces the groupthink of the community.

Of course, it’s not all bad. Some people are just trolls who need many doors slammed in their faces and also communities need a bit of cohesion to survive. But it seems to be an unchallenged assumption that community moderated sites should allow members with a high score to downvote freely, and I think it should be considered more carefully.