jonathanperret / paysage

Paysage is a visual shared playground for code.
http://paysage.xyz
GNU Affero General Public License v3.0
20 stars 9 forks source link

Should access to /list be restricted? #99

Open jonathanperret opened 6 years ago

jonathanperret commented 6 years ago

It’s like a pad

In terms of permissions, I’ve always thought of Paysage’s playgrounds as similar to shared pads such as can be created on http://framapad.org and the like. The commonalities are obvious:

That last property of pads is only viable because of the next one:

Note that those properties of pads are also shared by conferencing sites such as http://appear.in and probably many others.

Unfortunately, by publicly exposing the /list view, and documenting it in README, Paysage falls short here: there is no current way to create a space on http://paysage.xyz where a group of people can play together without the worry that a stranger may come and wreak havoc with the collective work in progress. When the tool is used with a classroom for example, one would really like a reasonable degree of certainty that only authorized people can edit the workspace.

It’s also like a game

That said, Paysage can also be thought of as an online game, which gives rise to other, somewhat contradictory with those of pads, properties to emulate:

Again, what makes these properties work for games is that:

In this view, Paysage’s /list would be a reasonable, if basic, implementation of the “lobby” of many online games. However, feature parity stops here: there’s absolutely nothing you can do in Paysage to select who is allowed to change code — a “griefer”’s paradise, in short.

Can’t you choose already?

I think the main thing the “pad” view (“the URL is the password”) has going for it is its simplicity, both in implementation and usage: no need for user authentication, permissions management, etc.

But in the longer term, I’d really like to enjoy the benefits of the “game” approach – collaborative coding seems to have a huge potential for connecting people with a shared love of creative coding. This is just going to take some work.

In the meantime, I suggest that we protect the /list page with a password known only to site administrators, leaving to users the decision of whether to share the URL to their playground with people in a room, remote friends or Twitter.

Thoughts?

juliendorra commented 6 years ago

Great summary, food for thoughts! It's quite interesting to reflect on what experience we want Paysage to be for users.

First feedbacks, not in any particular order, just my reactions:

Wow, sorry, it's a lot of unstructured feedback! Hopefully it helps.

juliendorra commented 6 years ago

one more:

Of course it's a political stance, not a technical one, and it's not easy, as we are so used to every tools working in closed mode by default (except Wikipedia, maybe). There's a cost (vandalism, but you need either enemies or to be mainstream for that), but there's a huge gain in learning, trying new things and not restricting any user in their contributions.

There's not much places on the web to explore what happens when everybody can change everything. It would be nice if Paysage could be one.

End of lyrical techno-communist comment

etienneCharignon commented 6 years ago

We could also give a mean to users to hide one playground from the list. A sort of « go private for this one ». Or like in https://scratch.mit.edu/ an opt-in mecanisme « share my project » would make it appears in the list.

juliendorra commented 6 years ago

Implementation proposal: We automatically hide in the list the playgrounds which names start with COWARD or SELFISH. So you have to openly declare your fear to be attacked or your desire to cut your code off from others ;-)

Kidding, kidding, but not that much.

My feeling is that this issue is not about "how to do it", but rather about:

"Why do it? Is that coherent with what we want Paysage to about? Who would benefit and in what situation? What would be gained or made possible? What would be lost or made impossible? Would it be reversible? Is the current situation reversible?" So it's a question about the values of Paysage, and a challenge to define a common view of the motivations and missions behind it.

I'd love more feedback from you all on the values aspect (rather than implementation solutions), because defining now a common core of values about Paysage, about collective creating coding with Paysage will help a lot in the future. If we can't, we'll have either endless discussions, or "I added this feature, so live with it now" (do-ocraty can have bad side-effects, I have seen them in the Drupal France and Museomix communities).

As an example, it helped a lot to have defined and clarified the basic values and missions for Museomix just after the second event (early 2013) and before fully opening the format, and it's still an useful core to refer to years later for the new organizers and contributors.

etienneCharignon commented 6 years ago

I thought that citing scratch would be enough discussion about values ;-)

Kidding, kidding, but not that much.

Sometime we can open a discussion by giving some other path (through solution proposal in that case).

Concerning the feedback on values, I'm fully aligned with you previous comment, even to the "extreme" of techno-communist comment. I'm really attached to the kind of freedom that we have today.

However, I dislike the "list page" as it is today and would be pleased if we could find a better way with it.

Side thought: I'm also thinking about the ephemeral aspect of paysage today and this discussion is also going on that area (but really going away from the initial question). Wouldn't it be breaking something to implement persistency ?

juliendorra commented 6 years ago

I thought that citing scratch would be enough discussion about values ;-)

We all love Scratch, and the Scratch sharing platform is a great enhancement. But there's some values embedded in Scratch that we might not want to carry along in Paysage: Teaching as the main purpose, the notion that projects are first and foremost an individual's work and pass from individual to individual without never really being collective, pseudonymity, etc.

Sometime we can open a discussion by giving some other path (through solution proposal in that case).

You're right! Thanks, it worked :-)

Side though : I'm also thinking about the ephemeral aspect of paysage today and this discussion is also going on that area (but really going away from the initial question). Wouldn't it be breaking something to implement persistency ?

I grew fond of this ephemeral aspect. We stumbled upon it merely because it was the easiest thing to do, but it has beneficial consequences. In a way it's very zen, or at least opposed to the western values of keeping everything, of curation and heritage. It's akin to building an incredible mandala together, and sweeping all the sand at the end. In fact it is a closely related issue, as it is also about values and how different from other tools Paysage should be. I think we all share the view that Paysage should be as different as possible from other tools, in term of values and general experience. It's already unique in several aspects.