Morph functions library [PATCHED]

I mean, honestly, we're trying to attract artists, athletes, musicians, and math-fobes to computing, but we're only successful with the usual crowd of narcissistic hackers on the spectrum. I hate my life.

You know that might be the problem. Art and music in the computing industry has been predominantly hackers for decades and the underlying culture behind it is the art of hacking.

Like, I've been using computers for decades now and feven before I stared using them, the drive of the industry was "how do I make THIS do THAT?" from the AMIGAAAA days to John Carmack fitting Quake on a 486, something that shouldn't have been possible and yet, it did.

That drives the whole "but can it run doom" phenomenon, because doom ran on really primitive tech and now everything has a chip that's far more powerful than anything that was state of the art in 1992. Even pregnancy tests have chips, and yes, someone put doom on one, because they could.

Now you're teaching everyone to code, but because the industry is primarily built on hacking, what you're seeing is that bleed over from that, and people take that mentality into everything and even though you're teaching everyone how to code, once they leave snap and start learning javascript or c or rust or whichever and then want to start experimenting and they know snap, so they start hacking into snap! because that's the norm?

Like, the thing that blew MY mind after Quake, was The Product, which fit an 11 Minute music video into 65536 bytes of code and the way they did it was reducing everything down to math, and they did that with a visual language that stacked everything together, not quite like scratch, because scratch didn't exist yet. (and may have inspired scratch, based on timing.... maaaybe, probably not)

They released their source code in 2012 in C++ and much like Quake being written in C for a 486, it was text and I just got LOST.

I'd given up on coding until I discovered snap, but the hack it into pieces until it kind of works methodology is still very much the industry as a whole. How do you fix that? Can you fix that?

The solution I want to try is to extend snap, primarily because it's block based and I understand it, until I can use it as a rosetta stone to understand text code, because otherwise I get nowhere, and eventually I want to write my own language, but for now, I have snap! and very little else, because the industry is designed to hack things into pieces and reshape it as necessary.

um i already know what jens believes after all these years in the forum

Yeah, if you create a programming language, you're going to attract programers, and some of these programmers like to find exploits and report them. Some of them, such as @tethrarxitet, exploited them. In this case, I don't think they fully realized the extent of the exploit outside of changing the width of morphs

:joy: :joy: :joy:

But, just to be clear, I don't want to turn Snap! in C++ (as @bh knows).

I do certanly want to exploit to its maximum Snap!'s metaprogramming features (that I do really love, a lot) so that a user -not me- can turn Snap! into whatever they want. My students turned it in an English language tutoring system for small kids allowing them to "code" English sentences, in a tool to create animated stories with just a minimum of programming, in a tool to create and visualize sorting algorithms, in a HTML+PHP+MySQL coding environment, etc etc etc

And I do really love to see all this stemming from the same incredible programming environment/tool/2001 space odissey black monolith (Snap!) just using very little coding.

So, I really hope that the block Jens added (that I didn't really understand what kind of limits it imposes yet) is not limiting Snap!'s metaprogramming.

That would break my heart.

don't worry, Stefano, I didn't take out anything or limit metaprogramming in any way. What I did was prevent a hack that let you run arbitrary JavaScript functions.

That's fair. Maybe, as part of a future update, you could add the features present in the project?

??? of course not, you guys are so weird.

Jens, this is so unfair! Maybe the OP only did something "rather harmless" because, like all but one of all the users we've ever had, he's a good kid who only wanted to do something harmless!

In fact, what he wanted to do was better than just harmless; it's the same thing that Zak wanted to do at EDC: rearrange and resize UI elements. And indeed the same thing Michael wanted to do in the autograder, repurposing the sprite corral area. But because it's a kid rather than an adult, you frame this as an attack on Snap! itself.

Yes, fine, the same technique could be used to attack the cloud, and so it has to be disallowed. I get it. But that's no reason to slander @tethrarxitet.

You don't want to do that permanently, or impose it on other users, but you want to be able to do it in your project, which is fine. It's great that Snap! has the flexibility to let you do it!

Yes, it really is.

If the function is defined in the Morph itself.

Everything can run Doom. If you're powerful enough.

Yeah. I've only been messing around with useless and cute blocks, like stage width and position relative to the screen.

Yeah. I didn't want to try to start a fight with anyone, I just wanted to show people a Morph quirk and that became an issue for ol' Jens here...

I feel like leaving this community, people here aren't acting approving of kids' discoveries (besides the write formatting oversight). But at the same time, I really love the creations here, so I'm undecided. I'll think about it.

Oh, yes! The beloved Murphy's laws in action. I encounter them literally every other day when working with children.
:exploding_head:

yeah, thats what i was saying.
i really want to be able to change the properties of morphs like the stretchy stage example and make fun, cool projects without having a ceiling.

Oh, please don't. We love you and cherish your spirit. Probably even Jens, once he gets over being angry. :~)

And really, he's not even angry about what people (such as you) are doing. He's angry about what people aren't doing, namely, make media computation projects. So, to get in his good graces, make a project to take an animated GIF of Trump and replace his head with Harris's at the correct angle in each frame.

But, don't tell anyone, just between you and me, one time Jens was tickled pink when some kid exploited a bug that let a block find out who called it to rewrite the × (times) block to give the wrong answer except when called by an "inspector" block, to simulate the Volkswagen diesel pollution scandal.

this honestly seems like a pretty cool project.

:laughing: maybe ill try-but should I make it like ai sort of to detect where the head is? or just edit the image frame by frame by moving the head on top the other by using the motion blocks?


anyway, im not sure why he immediately jumped to the conclusion that we would use the 'exploit' for 'exploitation'. I only wanted to originally try out these blocks for changing how the morphs look/stretching them, which is completely harmeless and imo should be unbanned.

I feel like you mention marge scale politics and controversies unnecessarily often in your posts.

So you're saying I should make an audio processing library in snap using the stuff I learned when working on my audio processing library in python (these include, audacity's adjustable fade (which the source code is in a dialect of lisp by the way), finding the decibels of a sound to then be able to create a normalized volume, truncating silence at the start and end of audio clips, applying gain properly, etc)?

what?

what? there is no controversy here. also, this is your first post. Welcome, and how much time have you had to read his other posts? because I dont think he does that.

When he said

He used Trump and Harris as a meme example,, so I thought it was funny.

Plus, he doesn't bring up politics very often.

Please share more