Discuss Scratch

_nix
Scratcher
1000+ posts

Snap! Team development discussion, vol. 2

djdolphin wrote:

Having both loves and favorites always struck me as weird. Favorites show appreciation to the creator and save the project in your favorites list, and loves are just an extra ego boost to the creator, I guess? I think having just favorites would be perfectly fine.
Oh yeah, this reminds me of my suggestion to the Scratch site here, about showing who favorited a project right on that project page. Might be interesting to you too, bh!

art blog – My pronouns are they/them, btw. sparrows one word to the paragraph
s2online: Run Scratch 2.0 in your browser; edit and back up any 1.4 or 2.0 project.
HK Scenery: WIP Hollow Knight-inspired adventure project!
HK Parallax & Toolbox: I wrote a lot of code to deal with clones! And then I wrote a lot of text discussing it here!
technoboy10
Scratcher
1000+ posts

Snap! Team development discussion, vol. 2

People browse and interact with posts on the local timeline frequently, and there is very rarely anything inappropriate which ends up there. And the local timeline shows all posts (save for unlisted ones), immediately once they are posted. This indicates that sites such as Mastodon are nearly wholly free of inappropriate content.
these are my own opinions and not representative of ST opinions, etc
I'm not sure this is true, to be honest. I've seen plenty of inappropriate posts on Mastodon timelines, but because Mastodon provides granular filtering tools, it's possible to never see them. This isn't a great model for sites like the Snap! social site though, because the target audience is children and you really don't want the possibility of exposing problematic material to kids.

I do agree that Mastodon does a lot of things better than Twitter (as far as creepy soul-sucking social media tactics go).

my github
“I wish I had more funny quotes to take out of context” -me, about myself
_nix
Scratcher
1000+ posts

Snap! Team development discussion, vol. 2

technoboy10 wrote:

People browse and interact with posts on the local timeline frequently, and there is very rarely anything inappropriate which ends up there. And the local timeline shows all posts (save for unlisted ones), immediately once they are posted. This indicates that sites such as Mastodon are nearly wholly free of inappropriate content.
these are my own opinions and not representative of ST opinions, etc
I'm not sure this is true, to be honest. I've seen plenty of inappropriate posts on Mastodon timelines, but because Mastodon provides granular filtering tools, it's possible to never see them. This isn't a great model for sites like the Snap! social site though, because the target audience is children and you really don't want the possibility of exposing problematic material to kids.
Right, I see. You might have more experience than me - I don't know when you joined, but I've only been anywhere on Mastodon for a few months. There might also be bias in that I'm on a different instance than you; I'll mention cybre.space has registrations closed most of the time, although toot.cafe is also closed to registers (and isn't significantly different in how many people are registered). I don't browse the federated timeline much.

(Oh, and to be clear, when I say “inappropriate”, I mean harassment and similar bad-spirited posts. Presumably those are usually done in private, but I didn't mention that since the topic is having a public list of recent posts. Of course there are tons and tons of not-good-for-kids things everywhere on Mastodon, and while most of them are behind content warnings, it's not unordinary for Bad Words to be in no-CW, public posts. But that's because Mastodon has a totally different (set of) communities than Scratch or Snap! do, and there's no globally understood rule that bad words shall not be spoken. OTOH, there are globally understood rules regarding content warnings, which are, for the most part, followed well.)

art blog – My pronouns are they/them, btw. sparrows one word to the paragraph
s2online: Run Scratch 2.0 in your browser; edit and back up any 1.4 or 2.0 project.
HK Scenery: WIP Hollow Knight-inspired adventure project!
HK Parallax & Toolbox: I wrote a lot of code to deal with clones! And then I wrote a lot of text discussing it here!
technoboy10
Scratcher
1000+ posts

Snap! Team development discussion, vol. 2

_nix wrote:

(Oh, and to be clear, when I say “inappropriate”, I mean harassment and similar bad-spirited posts.)
Ah, gotcha, we were talking about somewhat different things. I'd still say that Discourse/bad-spirited posts can appear on local timelines, but it's certainly less common.

my github
“I wish I had more funny quotes to take out of context” -me, about myself
Hardmath123
Scratcher
1000+ posts

Snap! Team development discussion, vol. 2

bharvey wrote:

Hardmath123 wrote:

Have we asked any of them why they want one, then?
Umm, we are doing so right now, right here!
Okay, well, since you asked…

I want a Snap! site because it gives legitimacy to this whole operation we're running. When I tell a parent about Scratch, I can pull up the website and they instantly see that Scratch (a) has many regular users, and (b) those users are creating compelling projects that they might want their son/daughter to be able to do. There isn't an equivalent page for Snap!, so parents need to take it on faith that Snap! isn't a waste of time for their children. Saying "it's used by n high schools" really just makes it worse, because it makes Snap! sound like one of those cheesy edtech products that force mediocre apps upon kids.

So features like a front page with new projects, well-curated projects, and other gauges of activity and quality are important from my point of view (which is not the POV of an actual user — sorry!).

So why have stars at all? That stuff makes me feel like I'm back in kindergarten.
Stars serve lots of purposes:
* I like this repository for whatever reason, and want to save it for later
* This repository just saved my hours of work and I want to send a bit of appreciation to the creator
* I think this is the coolest thing ever and want my friends to see it, but without personally texting each friend the link

The brain-candy part of the Scratch site is, I think, in part a substitute for direct one-on-one conversation, but it's just not satisfying to people my age who didn't grow up with social media.
In a way, sure. Imagine if you're a 13-year-old who is fascinated by Church numerals or whatever and nobody within 100 miles of you cares. Getting a direct message about it is definitely brain-candy material (again, it feels good and happens once in a while).

But there's also the brain-candy reward you get for checking your notifications and finding that someone commented “Awesome!!!” on your project or you got some number of likes or views or whatever. If there are numbers, people enjoy seeing them go up. In itself, it isn't awful, but it gets really bad if you start associating your self-worth with the numbers. Have you ever talked to a 14-year-old about how many Instagram followers they have? Or, at my high school, what their chemistry grade is…

(relevant recommended reading)

it would be much more useful to pop up a window saying something like “Our not-so-perfect software has noticed this insult word in your message; are you sure you want to express yourself that way?” with action buttons such as “You're right; I'd like to edit my message before posting” and “I am using that word in a context in which it's not an insult directed to an actual person or persons.”
Yes, exactly, that's what I meant. It won't stop anyone dedicated from posting an insult, but it'll at least make them think twice, and usually that's good enough.

(irrelevant recommended reading)

And I think this is harder for us than for Scratch because they're aiming for G and we're aiming for PG, or maybe PG-13. So the edge cases are edgier.

"Snap! memes for edgy tweens" reacts only

EDIT: This is entirely Connor's fault.

Last edited by Hardmath123 (Aug. 6, 2018 15:03:39)

jokebookservice1
Scratcher
1000+ posts

Snap! Team development discussion, vol. 2

it would be much more useful to pop up a window saying something like “Our not-so-perfect software has noticed this insult word in your message; are you sure you want to express yourself that way?” with action buttons such as “You're right; I'd like to edit my message before posting” and “I am using that word in a context in which it's not an insult directed to an actual person or persons.”

You might want to avoid doing this for words that children “shouldn't” know. For example, if a user enters the word “skyscraper”, and the software notices that a particular substring of that word is bad, don't say which substring is bad – that's just teaching a bad word.
djdolphin
Scratcher
1000+ posts

Snap! Team development discussion, vol. 2

bharvey wrote:

I need to understand this “discovery” business better. My first impression is that all these friend-of-a-friend techniques should just encourage cliques – or “bubbles” as they say in the social media biz. I'd like to see some creative new approaches, different from how Facebook, or even Scratch, does it. Here's a stupid idea off the top of my head, just to kickstart a discussion: Have a button that says “I have an hour to spare; show me ten random recent projects.” Then let the person pick “my favorite out of these ten.” Then do not count total picks per project! Instead, try to find statistical clusters, as in "people who bought this also liked that“ on Amazon. And use that to show the person an 11th project from the same cluster as the one s/he picked. And maybe even ask ”Did we guess right that you'd also like this one?" to refine the clusters.

(I am not a machine learning expert, but we have some… By the way, the Amazon recommendations I get are really bad. I would only want to do this if we could do it way better than they do.)
I tend to dislike machine-learning-based solutions to recommendations. They almost always seem to turn into a semi-dystopian fight against the algorithm that thinks it knows what I like better than I do. "Oh, you clicked one video about this topic? I hope you really like it, because now half your feed is videos about the same topic. Enjoy! Oh, you selected ‘Not interested’ for all of the videos we just showed you? You must be interested, so HAVE SOME MORE." These algorithms also always seem to have some other weird problems which are summed up pretty well by this tweet:

inappropriate twitter username wrote:

TWITTER RECOMMENDATION ALGORITHM: would you like to see some [adult content] your friends like
FACEBOOK RECOMMENDATION ALGORITHM: this terrible thing happened a year ago
AMAZON RECOMMENDATION ALGORITHM: buy five more TVs
YOUTUBE RECOMMENDATION ALGORITHM: would you like to become a nazi
Yes, the extremist recommendations on YouTube are a real problem.

Something like you suggest, where the user has to purposely train and give feedback to the algorithm, might be better, but I have doubts about how many users would actually take the time to do that. And, of course, the Snap! site would (hopefully) be unaffected by bias toward corporate interests like “buy five more TVs.”

Scratch doesn't have an overbearing recommendation algorithm (yay!), but it doesn't have a good substitute either. It's positively awful at helping people find new projects that interest them, and that makes it hard for new users to get their projects noticed.

I honestly think that the best thing Scratch had going was the first iteration of the tag system. Users could add tags to projects, click tags to find recent projects with the same tag, sort by different metrics, and explore a subset of popular tags. Its fatal flaw was that anyone could add unlimited tags to any project, and now the current iteration is a shell of its former self.

Now, when you click a tag on a project page, it doesn't even show you projects with the same tag. It just brings you to the search page for that tag, and you can't even sort the results. I have no idea how results are ranked, but it only shows popular projects. On the Explore page, you can view projects with certain tags, and you can sort them so you don't just see popular projects. But this only works for 6 tags (Animations, Art, Games, Music, Stories, and Tutorials), and there's no easy way to find different tags besides those 6.

Studios are much more helpful for finding projects related to a topic than tags currently are, but they're manually curated by a certain set of people. Because of that, a studio might not be updated, and if it is, the projects are limited to what the curators can find.

The front page contains some interesting projects, but only within the bubble of what's popular on the website and what the Scratch Team wants you to see. There are 3 rows custom to you, based on the people and studios you follow, but they're stuck in the middle of the page, and they're so badly organized that I never look at them. They're just semi-random messes of projects.

Something I've always wanted to try on a Scratch-esque website:
  • Allow creators to add tags to their projects. The tag addition UI would have a search bar to find relevant existing tags.
  • When you click on a tag, it would bring you to a page of recent projects with the same tag.
  • On the front page, have a row of recent projects with a random tag. The tag would change when you refresh the page.
  • Allow users to customize their front page with rows of recent projects with certain tags.
  • Have a page that shows popular tags, as well as random less popular tags, and allow users to search for tags.
This would encourage users to categorize their projects so people can find them. People could explore different categories of projects and see more of the ones they like, while not completely limiting themselves to a bubble.

!
bharvey
Scratcher
1000+ posts

Snap! Team development discussion, vol. 2

PullJosh wrote:

The front page can be one big list of projects which is randomized every time you reload. Each person sees a different set of projects, and it's different every time. And it is random, but it's weighted randomness.
Yes. I love this idea.

Please tell me it's Discourse?
Yes.

bharvey
Scratcher
1000+ posts

Snap! Team development discussion, vol. 2

_nix wrote:

When we look at Scratch, we see it mimicking many functional parts of Twitter, such as favorites (equivalent to Twitter “likes”), followers, and comments. We also see that Scratch's community mimics Twitter's in some ways… There is usually a clear, even internalized, divide between “popular” and “not popular” Scratchers… So, then, the question is: How do we lessen this feeling of wanting more popularity? I think it's important to get to the root of that problem, to lessen that popular/not-popular divide. I doubt it's possible to altogether get rid of the feeling of wanting more, but making the split smaller is sure to help.
Thank you for this very thoughtful post.

Yes, chronological listing of threads in the forum. (The Scratch practice of reverse-chronological by latest update ends up serving as a sort of popularity surrogate. In our early days I remember a bunch of “Oh no we fell off the first page of AT!” posts.) But it'll be easy to filter by “things I haven't seen yet.” I think the weighted-random idea is better for actual project lists, for two related reasons: (1) there will be a lot of projects; (2) nobody is going to try to keep up with every project.

I'm not sure we need anything like a “boost” feature. I'm using the Scratch forum as a model; I read a thread chronologically, if I read it at all.

(I think I see less “how to get famous” or “how do I get famous?” -style posts, but maybe that's just because the people in the Twitter community are generally older than those in the Scratch one; or maybe I'm just not looking hard enough.)
Argh, this brought up a memory of me, in sixth grade, asking a popular kid “What do you do to be popular?” The poor kid had no idea what to tell me, of course; he just had a naturally outgoing personality. I often say “when I grow up I want to be a kid,” but I don't want to repeat that particular episode.

bharvey
Scratcher
1000+ posts

Snap! Team development discussion, vol. 2

_nix wrote:

Of course there are tons and tons of not-good-for-kids things everywhere on Mastodon, and while most of them are behind content warnings, it's not unordinary for Bad Words to be in no-CW, public posts.
This reminds me of another question. Our target audience is ages 12-22. My personal feeling is that the occasional four-letter word (it just occurs to me for the first time that “four-letter word” is self-referential ) isn't going to shock anyone, and I really don't want medium-size kids to have to self-censor, partly because I selfishly want to get a real sense of what our users are like. On the other hand, many 12-year-olds have easily-shocked parents, so that's an argument for staying with Scratch's G rating. (Of course obscenities used in the context of insulting another user should be squished for being insults, regardless of being obscenities.)

And I definitely want to allow mature discussion of adult topics, as a public service.

Thoughts?

bharvey
Scratcher
1000+ posts

Snap! Team development discussion, vol. 2

Hardmath123 wrote:

I want a Snap! site because it gives legitimacy to this whole operation we're running.
Yes, of course, but that just pushes the question back a level. I bet Python doesn't run a social site; what do our users get from us having one? But, as I said, the user community is the best thing about Scratch, and I don't think we've ever considered not having one!

So why have stars at all? That stuff makes me feel like I'm back in kindergarten.
Stars serve lots of purposes…
Yes, but, aside from the purposes, they're also stars, just like kindergarten. That matters. The purposes could all be satisfied in non-infantilizing ways:
I like this repository for whatever reason, and want to save it for later
Bookmarks; no reason at all to make them public.
This repository just saved me hours of work and I want to send a bit of appreciation to the creator.
Email! When you do something great for Snap!, I send you a thank-you email, one human being to another. And we have a credits list in the program itself. But I don't feel a need to stroke your ego in public.
I think this is the coolest thing ever and want my friends to see it, but without personally texting each friend the link
This is what mailing lists are for. Not all my friends are on Github, or on Scratch. In a pinch, I suppose I could use Twitter, but my email list is way bigger than the number of Twitter followers I have, and I have zero followees. I admit that I may be showing my age here.

Imagine if you're a 13-year-old who is fascinated by Church numerals or whatever and nobody within 100 miles of you cares. Getting a direct message about it is definitely brain-candy material (again, it feels good and happens once in a while).
That's not what I meant; I'm talking about the content-free, merely brain candy things like stars and hearts.

EDIT: This is entirely Connor's fault.
Our not-so-perfect software has noticed this insult word FAULT in your message; are you sure you want to express yourself that way?

bharvey
Scratcher
1000+ posts

Snap! Team development discussion, vol. 2

jokebookservice1 wrote:

You might want to avoid doing this for words that children “shouldn't” know. For example, if a user enters the word “skyscraper”, and the software notices that a particular substring of that word is bad, don't say which substring is bad – that's just teaching a bad word.
I would hope that we wouldn't flag “skyscraper” at all!

But anyway, remember our lower limit is age 12; I think there is no realistic chance of us teaching any teenager a bad word, unless maybe it's a kid who's just run away from a religious cult. (I'm not even convinced that there are many 8-year-olds who don't already know them all.)

But, again, it's the kids' parents we really have to worry about.

bharvey
Scratcher
1000+ posts

Snap! Team development discussion, vol. 2

djdolphin wrote:

inappropriate twitter username wrote:

AMAZON RECOMMENDATION ALGORITHM: buy five more TVs
Yes, this always drives me crazy! Even from a pro-corporate point of view, I'm not going to buy five more TVs (in my case it was cameras); you'd be much smarter to suggest 5-channel speaker sets (or tripods).

Scratch doesn't have an overbearing recommendation algorithm (yay!), but it doesn't have a good substitute either. It's positively awful at helping people find new projects that interest them, and that makes it hard for new users to get their projects noticed.
How do you feel about weighted-random?

I honestly think that the best thing Scratch had going was the first iteration of the tag system. Users could add tags to projects, click tags to find recent projects with the same tag, sort by different metrics, and explore a subset of popular tags. Its fatal flaw was that anyone could add unlimited tags to any project, and now the current iteration is a shell of its former self.
This is a good idea. The obvious fix to the fatal flaw is to allow only five tags.

Studios are much more helpful for finding projects related to a topic than tags currently are, but they're manually curated by a certain set of people. Because of that, a studio might not be updated, and if it is, the projects are limited to what the curators can find.
Yeah, studios, I guess we should do that, although maybe not of the “my favorite projects” variety.

Something I've always wanted to try on a Scratch-esque website:
  • Allow creators to add tags to their projects. The tag addition UI would have a search bar to find relevant existing tags.
  • When you click on a tag, it would bring you to a page of recent projects with the same tag.
  • On the front page, have a row of recent projects with a random tag. The tag would change when you refresh the page.
  • Allow users to customize their front page with rows of recent projects with certain tags.
  • Have a page that shows popular tags, as well as random less popular tags, and allow users to search for tags.
This would encourage users to categorize their projects so people can find them. People could explore different categories of projects and see more of the ones they like, while not completely limiting themselves to a bubble.
Yes, this seems exactly right to me.

bharvey
Scratcher
1000+ posts

Snap! Team development discussion, vol. 2

technoboy10 wrote:

Discourse/bad-spirited posts
Is this saying that Discourse encourages bad-spirited posts? Should we be looking at alternate platforms?

xn--cr8h
New to Scratch
41 posts

Snap! Team development discussion, vol. 2

a big problem with social media sites like twitter (and scratch) is that they emphasize users first - you discover new content by following people, and people with more followers have more visible content - if Kanye West tweets something it will get much more attention than if Joe McPerson were to tweet it. this is kind of a double edged sword - it results in a bit of a popularity contest (as we've seen on scratch before), but also this makes it hard to discover new content for new users who don't know any of the existing users on the platform.

a better approach is demonstrated by the likes of reddit (and google+ to an extent, but i haven't used that in years) - a more content-first approach in which you follow communities rather than people, and anyone can have their content seen as long as it's good enough. directly copying reddit wouldn't work very well for snap! imo, so i propose a WIP solution:

  • tags - let people add any tag to their project, similar to how it worked back on the 1.x site, and also let people follow these tags so they show up on the user's front page. when a tag is being added to a project, show a dropdown with the most popular tags being listed first. however, nobody *owns* a tag, and tags aren't linked to people at all really. (the tag implementation could also be an improvement of scratch's existing studio implementation?)
  • perhaps some sort of voting system, so that higher quality content would reach the front page? this is where the distinction between love-its and favourites could come in (or whatever you decide to call them), or it could just be sorted by favourites (or even views, but that's probably not a good idea). also i don't think vote counts should be shown anywhere
  • probably keep following users a feature too, since users are more tied to their content on snap! than on sites like reddit.

maybe not perfect, but it would be much better than what scratch is doing

edit: oops, i was too lazy to read djdolphin's wall of text and didn't realize that he suggested the same exact thing before me. sorry, mr. dolphin

Last edited by xn--cr8h (Aug. 6, 2018 23:28:08)


rip scratch forums 2007-2017
PullJosh
Scratcher
1000+ posts

Snap! Team development discussion, vol. 2

@bharvey Not sure where you're at in terms of site development, but if you happen to be in need of frontend design, it's something that I quite enjoy doing. You might have other designers/frontend folks already, but if the CSS could use a little sprucing up, I think it'd be quite fun. (Just thought I'd put it out there. )

Also, unrelated: What's the protocol for sharing projects which contain the javascript block? Will it be allowed?

Base 10 is the best number system.
bharvey
Scratcher
1000+ posts

Snap! Team development discussion, vol. 2

PullJosh wrote:

if you happen to be in need of frontend design, it's something that I quite enjoy doing.
Not my department, but I'm passing it on to our site wizard.
What's the protocol for sharing projects which contain the javascript block? Will it be allowed?
Oy. Yes, that's one of the hard questions. We are thinking that the first time that block is called in a project not your own, we pop up a window saying “Are you sure you trust this person?” With some mechanism for exempting ones in the official libraries, although that's far from trivial since a library block could be edited before saving a project, so we have to do a checksum or something.

bharvey
Scratcher
1000+ posts

Snap! Team development discussion, vol. 2

xn--cr8h wrote:

perhaps some sort of voting system
I'm really hoping to avoid this part. If we really need some such mechanism, I'd be inclined to make the votes visible only to the site moderators, who could decide to elevate a post or project. But of course that doesn't scale. But it'll be quite a while before that matters!

PullJosh
Scratcher
1000+ posts

Snap! Team development discussion, vol. 2

bharvey wrote:

PullJosh wrote:

if you happen to be in need of frontend design, it's something that I quite enjoy doing.
Not my department, but I'm passing it on to our site wizard.
Awesome!

bharvey wrote:

What's the protocol for sharing projects which contain the javascript block? Will it be allowed?
Oy. Yes, that's one of the hard questions. We are thinking that the first time that block is called in a project not your own, we pop up a window saying “Are you sure you trust this person?” With some mechanism for exempting ones in the official libraries, although that's far from trivial since a library block could be edited before saving a project, so we have to do a checksum or something.
Ouch. That's tough. I have no idea what the best technical solution is to the problem, but one thing that could help mitigate the concern is to prevent new users from sharing projects containing Javascript. Only after a user has built up a certain level of “trust” would they be allowed to share JS-containing projects. Of course, I have no idea what the exact criteria for a trusted user should be.

It's also probably worth exploring how websites like JSFiddle or Codepen approach the problem. (Codepen, especially, seems to be security-conscientious. Might be worth having a dig around their source.)

Base 10 is the best number system.
djdolphin
Scratcher
1000+ posts

Snap! Team development discussion, vol. 2

PullJosh wrote:

It's also probably worth exploring how websites like JSFiddle or Codepen approach the problem. (Codepen, especially, seems to be security-conscientious. Might be worth having a dig around their source.)
Both of those sites isolate the project on another domain and embed it in an iframe to prevent it from screwing with the main frame. The Snap! site should probably do the same.

And there should be some mechanism to ensure that projects can only access the parts of the Snap! cloud they're supposed to. You could probably just look at the referer and block requests from the sandbox domain for anything other than loading public projects.

But then there's the question of what to do when the someone wants to edit the project they're viewing, since the editor would need full cloud privileges.

!

Powered by DjangoBB

Standard | Mobile