Discuss Scratch

_nix
Scratcher
1000+ posts

Unofficial Guide to Scratch Private-Source Projects

Here's the topic of uncertain helpful-ness listing various private LLK Scratch repositories! Wonderful.

(I'll likely only use this as a log for myself. I didn't have a log before this. Also, if anybody can remember the other repositories – since I recall there being more than these few – that would be appreciated )

Obligatory glossary:
  • Migrated page: any page on the Scratch website that used to exist in the site we know from the (current) era of 2.0 but is now migrated into the new scratch-www codebase.

Here's a list of some of LLK's current (or not) private-source projects:
  • scratch-api – The backend for various things Scratch. Maybe it's the backend primarily used by migrated pages?

  • scratch-search – The backend for Scratch's search bar functionality.

  • scratch-projects – The backend interface for storing project JSON files.
    colbygk wrote: The scratch-projects repository and software is our interface for storing project JSON files to our backend storage system. We have no current plans for open sourcing this and I think it's unlikely we will make any documentation updates before or immediately after the Scratch 3.0 release in January 2019.

  • scratch-ops
    jwzimmer wrote: scratch-ops is the repo where we track things that have to do with keeping the site up & running as smoothly as we can. I put some things about compatibility/ support there since I didn't think they really made sense in the other repos (it's sort of a “meta” question whereas e.g. scratch-flash has to do with the editor & scratch-www has to do with the website pages, and support/ compatibility needed to bridge both).

  • scratch-day – Presumably the code for day.scratch.mit.edu.
    chrisgarrity wrote: I added these to the scratchday site recently
    https://github.com/LLK/scratchday/blob/master/scratchday/scratchday/static/img/social-icon_sprite.png

    I'll try to figure out where I found the icon.

  • scratch-desktop – Presumably the code for the Scratch 3.0 offline editor.

  • scratch-link – The code for the Scratch Link, the software which allows Scratch 3.0 to connect to hardware devices like micro:bit and EV3.

  • scratchr2 – The second revision of the Scratch website (hence “r2”). It contains the code for just about everything you'll find in non-migrated pages, like user and project pages, currently. It probably also contains the code for the backend of various features, like comments on projects and profiles, studio management, and such. Fun fact: scratchr2 has over 4700 pull requests and issues!
    thisandagain wrote: It is a big monolithic (and also now legacy) codebase that is very tightly tied to our old moderation systems as well as our infrastructure. Because of this, MIT was not comfortable granting us permission to open source the codebase. For everything new we work on, we try to have the code be much more modular which makes it much easier to open source / get approved by MIT's lawyers.

  • scratch-flash-online – Code specific to the online Scratch 2.0 editor (probably containing things like the username block, cloud data, and the backpack).

  • scratch-flash-offline – Code specific to the offline Scratch 2.0 editor. I'm not 100% sure what would go here; maybe the code for the old HTTP-based extensions?

Last edited by _nix (Sept. 24, 2018 18:36:03)


art blog – My pronouns are they/them, btw. sparrows one word to the paragraph
_nix
Scratcher
1000+ posts

Unofficial Guide to Scratch Private-Source Projects

I sent an email through Contact Us asking about the purpose of scratch-api being a private repository; here was the response, for anybody curious:

thisandagain wrote:

Our backend code is private for a number of reasons:

- It is tied very closely to our backend infrastructure which for reasons of scale is fairly large and complex. Because of this, open sourcing our backend code wouldn't just mean publishing `scratch-api` but also nearly 20 other repos that support it (otherwise it would be useless). With that and the scale of our hardware it isn't something that any single engineer could just put on a server and run.

- The API and related repos contain our search, explore, front-page, and other relevance algorithms that govern how content discovery works. While part of me would really like to release this info to the community it does present a fairly great risk of helping Scratchers “game” the algorithm and cheat the community.

- The API and related repos contain all of the information about how we automatically filter and moderate content. Sharing this information would make it easier for spammers and trolls to attack the community.

- This is a terrible reason: The API and related repos include some technology that MIT would prefer that we not disclose because they are interested in patenting it. This is a really bummer as I am strongly opposed to software patents of any kind, but until we resolve this issue we cannot even consider releasing the code.

I am a huge advocate of OSS (I was the Director of Research at the Mozilla Foundation before joining MIT) and have been pushing us to release more and more, but we have to balance the needs of the community. Hope that helps clarify!

- Andrew (thisandagain)

art blog – My pronouns are they/them, btw. sparrows one word to the paragraph
Jonathan50
Scratcher
1000+ posts

Unofficial Guide to Scratch Private-Source Projects

I think none of those except the last two can really be called “closed source” because they aren't public yet
_nix
Scratcher
1000+ posts

Unofficial Guide to Scratch Private-Source Projects

Jonathan50 wrote:

I think none of those except the last two can really be called “closed source” because they aren't public yet
That's fair, updated.

art blog – My pronouns are they/them, btw. sparrows one word to the paragraph
_nix
Scratcher
1000+ posts

Unofficial Guide to Scratch Private-Source Projects

Just a quick bump since this is probably an interesting topic to anyone viewing /discuss/49/, and I updated the list (I added scratch-projects).

art blog – My pronouns are they/them, btw. sparrows one word to the paragraph
_nix
Scratcher
1000+ posts

Unofficial Guide to Scratch Private-Source Projects

Bump, added an interesting quote from thisandagain:
thisandagain wrote: [scratchr2] is a big monolithic (and also now legacy) codebase that is very tightly tied to our old moderation systems as well as our infrastructure. Because of this, MIT was not comfortable granting us permission to open source the codebase. For everything new we work on, we try to have the code be much more modular which makes it much easier to open source / get approved by MIT's lawyers.

Last edited by _nix (Sept. 12, 2018 16:10:55)


art blog – My pronouns are they/them, btw. sparrows one word to the paragraph

Powered by DjangoBB

Standard | Mobile