Sad that they still haven't added a requirement that you accept an invite to become a collaborator, or at least a profile setting on your account that requires that confirmation.
Sad that they still haven't added a requirement that you accept an invite to become a collaborator, or at least a profile setting on your account that requires that confirmation.
As it stands, when you are added as a collaborator to a project it shows up in exactly one place — your private, logged in dashboard. It doesn't show up publicly anywhere.
Bypassing confirmations keeps the workflow simple for the professionals who use GitHub and want to collaborate with ease.
Your average professional developer isn't trolled on a regular basis, nor would they go about adding "tech stars" to their repos just to have a big name on there or because they wished that person was a contributor - it's unprofessional and rude. So just dismissing yourself from the projects you are maliciously or mistakenly added to seems much simpler than having to confirm each one.
> The optimal way to use confirmations is often not hitting "Reject" to requests you don't want. Just do nothing.
and didn't read carefully. I was probably pointing out that if trolling is not the common case then that system is not in fact optimal (which I think we agree on), without realizing you didn't claim it was the optimal system but only the optimal system-which-uses-confirmations. Sorry about that.
You must make a contribution to a project before you show up in any kind of public fashion.
Or does Github track pushes by the pusher's Github username?
It should be fairly trivial to script account creation, project creation, and marking someone as a collaborator. As such a troll could simply automate the process of creating accounts and junk projects and then add the victim as a collaborator to them. The result is a useless dashboard full of crap that the victim has to manually remove themselves from. The troll succeeds in screwing with the victim by wasting lots of time. If permission had to be explicitly granted there would be no change to the dashboard and all of the confirmation messages could be ignored, or ideally bulk deleted from the incoming message queue. I don't have any idea if there's flood prevention mechanisms built into github to prevent this, but with unlimited public projects on the free accounts it seems like an avenue of abuse for trolls.
But remember that Undo > Confirmation. Always.
Remember that reputation is important. Always.
And you explicitly telling people about how being a collaborator works isn't a scalable way for people to find out. And it sounds like this question/issue has come up before. Perhaps it can be made clearer somehow?
In any case, thanks for clarifying when you become visible as a collaborator, even if only in this one comment to me.
[1]: http://news.ycombinator.com/item?id=2606063
[2]: http://news.ycombinator.com/item?id=2605804
For me, it was pretty obvious because it doesn't show up on the profile under 'Public Repositories', only on the dashboard in a list of projects you have access to.It's easy to say "oh just add it to the UI", but to actually do it is another story. Before you know it you've got hundreds of preferences, and then people will be complaining that there's too many options and it's too confusing (a-la facebook privacy settings). Honestly, GitHub's preference pages already need some work, so I for one am glad they don't add drop downs for every person's pet feature.
Regardless, it doesn't matter now. Now you just remove the project and block the user (or, presumably, just blocking the user might remove the repo... either way), so that's that.
Also; with the "professionals" thing - I totally get what you mean, and it's abundantly clear you guys are doing things for the right reasons, but the tone kind of jarred with me a little bit there. Nothing drastic, but I'm a person first, a professional second...
I got "dong markup" in my RSS reader from pull requests to zedshaw/mongrel2 today. So, the trolling was very much in public view.
So, there are ways to publicly troll someone on GitHub, even if not in this precise way.
How long until you get clued in that maybe the problem is not with the end users but with your UI?
I don't participate on github so I did't think you'd just stuff all of those notices on the dashboard. That sounds like a pretty broken UI IMHO.
> But remember that Undo > Confirmation. Always.
That's your opinion and it's very clear from this thread that a significant number of people strongly disagree with it. I will concede that Undo in this context has much less friction, likely for most github users. I wouldn't necessarily agree that it's better and certainly not always.
I must admit to having been persuaded by Aza Raskin, in his widely-read article "Never Use a Warning When You Mean Undo".
But a worse interface that makes the software easier to code is one thing; a worse interface that makes the software more easily comply with the law is an entirely different trade-off.
Not exactly, the legal audit trail can be messy and it doesn't matter one bit so long as it's accurate. In the case described change one is logged and the undo constitues a second change which is also logged. Change one incurs liability for the user and change two simply increases the liability for the user (sorry I can't go into specifics) even though it's correcting a problem. In my experience it's very difficult to create a user interface where the "undo" action clearly indicates the consequence of the change in these scenarios. Preventing unnecessary changes via a combination of up front documentation and confirmation provided the better user experience, and legal liability reduction, in my experience and based on some user feedback.
> But a worse interface that makes the software easier to code is one thing; a worse interface that makes the software more easily comply with the law is an entirely different trade-off.
Believe me, not confirming user actions would have been less code and easier to build and maintain in this case. Legal compliance on my part would have been maintained in either case. Allowing my users to quickly and easily build up liability would be doing them a disservice however. Adding some friction to those transactions was agreed to be the better option by everyone involved.
I think the idea that confirmation vs undo is subjective. We can go on and on for hours and come up with examples and counter examples. The particular context of the action likely determines which provides the better user experience in total (not just on that one screen or interaction but via the consequences of the action as well). I would certainly prefer that if I'm using a system like facebook that it confirm I really want to make my home address and phone number public before it does so rather than letting me check a box and it's done. The same goes with a money transfer where an undo may not even be possible after some amount of time. Not prompting for confirmation certainly makes the transactions move faster (less friction) and undo is easy enough in many cases, but does that frictionless transaction have the best outcome for my users? Not always. The blanket statement that "undo > confirmation. Always." is just plain wrong, not that you made it of course.
That's one way to look at it..the other way is that they just designed coded, tested and rolled out a feature a day or two after a fairly hostile and accusatory customer complaint.