^^^That was the 7000th post on the topic.
And THIS is the 7000th reply.
EDIT: New page kinda ruined the fact that I was pointing to bharvey's post.
Last edited by henley (2013-02-19 23:53:17)
Offline
henley wrote:
And THIS is the 7000th reply.
![]()
That is kind of a lot of messages, isn't it? Is it a record? Maybe we should have multiple threads, you know, "puzzles posted by Snap!pers," "criticism of school posted by Snap!pers," etc.
EDIT: Or, maybe when Jens gets our server up, we can include a forum system and instead of sections such as "Advanced Topics" we can have, you know, "Arguments About Politics," "Arguments About Religion," "Teasing nXIII," and so on.
Last edited by bharvey (2013-02-20 00:07:40)
Offline
nXIII wrote:
It's part of Snap!. You can drag a .ypr project in to import it.
Load failed: Type Error: Cannot call method 'setContents' of undefined
@New forums: Don't forget OS Wars.
Can't wait until new forums when I can ditch my 4th grade username. Shadow, underscore, four digit number.... could it be any worse?
Last edited by shadow_7283 (2013-02-20 00:30:23)
Offline
TypeError: 'undefined' is not an object (evaluating 'this.congents.src') (http://codepad.org/t5pp0ksK)
Jens…
Offline
Yay!
Offline
@bharvey I made this ugly language as a joke. It is made up entirely of JSON list literals:
(Inbuilt values): 01: Define 02: Reference 03: Set 04: Number 05: Compose 06: Decompose 07: If 08: While 09: Equal to 10:Output Syntax: [[<function>, <args…>], [<function>, <args…>], …] Compose brackets recursively to get numbers: [[]] => 2 Examples: [[], [], []] => "Define", "Memory at 1", "1" [ [[[]]], [], [[[[[]]]], [[]]] ] => "Set", "Memory at 1", ["Number literal", "2"] [ [[[[[[[[[[]]]]]]]]]], [ [[]], [] ] ] => "Output", "Reference", "Memory at 1"
I'm going to write an interpreter in Snap!
Offline
Ooh, does list-equality-checking check if lists are deeply equal? Nice—I was expecting Python/JS-style checking if they are references to the same object.
EDIT: How do I do reference-checking, then? How about <{} is {}?>?
EDIT2: Forget it… this is way too confusing:
<project name="abc" app="Snap! 4.0, http://snap.berkeley.edu" version="1"> <notes/> <thumbnail> data:image/png;base64,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 </thumbnail> <stage name="Stage" costume="0" tempo="60" threadsafe="false" scheduled="false" id="1"> <pentrails> data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAOiklEQVR4Ae3VwQkAIAwEQbX/niM24X4mDRwMgd0zsxwBAgQIECDwV+D8nbNGgAABAgQIPAEB9gcECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBC4qcoFzaZQGfQAAAAASUVORK5CYII= </pentrails> <costumes> <list id="2"/> </costumes> <sounds> <list id="3"/> </sounds> <variables/> <blocks/> <scripts/> <sprites> <sprite name="Sprite" idx="1" x="0" y="0" heading="90" scale="1" rotation="1" draggable="true" costume="0" color="80,80,80" pen="tip" id="8"> <costumes> <list id="9"/> </costumes> <sounds> <list id="10"/> </sounds> <variables/> <blocks/> <scripts> <script x="20" y="20"> <block s="doSetVar"> <l>list1</l> <block s="reportNewList"> <list> <l>a</l> </list> </block> </block> <block s="doSetVar"> <l>list2</l> <block var="list1"/> </block> <block s="doAddToList"> <l>a</l> <block var="list2"/> </block> </script> <script x="20" y="107"> <block s="reportEquals"> <block var="list1"/> <block var="list2"/> </block> </script> <script x="20" y="141"> <block s="reportEquals"> <block s="reportNewList"> <list> <l>a</l> <l>b</l> </list> </block> <block var="list2"/> </block> </script> <script x="20" y="178"> <block s="reportEquals"> <block s="reportNewList"> <list> <l>a</l> <l>b</l> </list> </block> <block var="list1"/> </block> </script> <script x="20" y="215"> <block s="reportEquals"> <block s="reportNewList"> <list> <l>a</l> <l>b</l> </list> </block> <block s="reportNewList"> <list> <l>a</l> <l>b</l> </list> </block> </block> </script> </scripts> </sprite> <watcher var="list1" style="normal" x="10" y="10" color="243,118,29" extX="80" extY="70"/> <watcher var="list2" style="normal" x="259" y="13.000001999999995" color="243,118,29" extX="80" extY="70"/> </sprites> </stage> <blocks> <block-definition s="Parse JSON" type="reporter" category="other"> <inputs/> </block-definition> </blocks> <variables> <variable name="list1"> <list id="64"> <item> <l>a</l> </item> <item> <l>a</l> </item> </list> </variable> <variable name="list2"> <ref id="64"/> </variable> </variables> </project>
Last edited by Hardmath123 (2013-02-20 04:42:56)
Offline
Jens wrote:
Thanks, that's a typo I introduced yesterday along with SVG_Costumes. It's supposed to be "this.contents.src", and will be fixed later today. When I correct it the project appears to actually work!
![]()
I was very surprised when testing Scratch 2.0 by its "velocity" to display "clouds" of Clones (See for example Worm, Snowfall, Tornado, Waterfall etc) I am suspecting that this is in line with the size and the type of costumes Small svg costumes seems to be much quicker to display than png ones, even if they are very small. I'am eager to make new tests with your correction. ( I have found a Firefox add_on, SgvViewer which permits to display a svg shape)
Offline
Masses of clones are way slower in Snap than in Scratch 2.0, regardless of whether their costumes are PNGs, SVGs or the built-in special "Turtle" visualization. That's because I haven't yet had any time to optimize the evaluator for Scratch-type clones, and it's even an open question whether I ever will. Snap's goal in life isn't so much to mimick Scratch but to optimize the learning experience for "technically rigorous" ideas. Therefore I'd much rather optimize reporter evaluation (which is the case in Snap) and things like nested sprites (yet to come).
Offline
Ok, I caused two crashes so far (losing all my work! ), due to displaying extremely large list structures. Any chance you'll improve the list displays?
Why do boolean results show up as the block if you double-click an expression? It makes me feel like "calling" the result. I'm actually unsure of a good replacement, though, maybe a green "true" and red "false" text?
Writing my parser, I found that you haven't really added much string manipulation. I think the most powerful string manipulation functions are "characters () to () in []", and "find [] in []" (which returns a list of indices). Also, preferably these functions should also work for lists, exactly the same way. These blocks are admittedly replicable, but I'd prefer having fast native support.
Finally, about my converter:
1. In the to-do list you may have noticed that I have an entry for an error about empty boolean slots. Do you think that's worth putting a shim in for? I don't think any serious project would have empty inputs.
2. Should I generate "hacks" for the "when () > ()" hat block? It needs something like this:
when flag forever if <condition> code wait until <not <condition>>
but I don't think that looks too nice. I can also gracefully throw a "feature unsupported" error.
Offline
I don't understand the part about large list structure. List watchers only ever show 100 entries at the most. Using WARP with lists I can create lists of tens of thousands of entries in seconds, and display them onstage. Although the stage displaying part is admittedly not very fast in favor of actual lists being optimized for speed.
The Boolean value representation as blocks was something we put in last August. Don't you think it's pretty and expressive?
Why are empty Boolean slots cause errors?
The WHEN (loudness) > ( ) hat block isn't going to be supported in Snap any time soon, so I vote you show an "this feature is unsupported" message
Offline
Hardmath123 wrote:
Ooh, does list-equality-checking check if lists are deeply equal? Nice—I was expecting Python/JS-style checking if they are references to the same object.
EDIT: How do I do reference-checking, then? How about <{} is {}?>?
EDIT2: Forget it… this is way too confusing:
...
Python does deep equality checking, btw...
Offline
Jens wrote:
I don't understand the part about large list structure. List watchers only ever show 100 entries at the most. Using WARP with lists I can create lists of tens of thousands of entries in seconds, and display them onstage. Although the stage displaying part is admittedly not very fast in favor of actual lists being optimized for speed.
Including nested lists?
The Boolean value representation as blocks was something we put in last August. Don't you think it's pretty and expressive?
Well… I guess.
Why are empty Boolean slots cause errors?
Don't worry, this isn't a Snap! issue. The Scratch format doesn't even add an item to the list of arguments when there is no boolean inside, while your format needs <l/>.
The WHEN (loudness) > ( ) hat block isn't going to be supported in Snap any time soon, so I vote you show an "this feature is unsupported" message
![]()
Great, thanks.
@roijac really? Cool, I didn't know that.
Offline
Yes, lists are optimized for speed, including and especially nested lists. List watchers, however, are slower than in BYOB. But now you can have multiple watchers on the same list, and even edit each one of them independently, while all others still stay in synch. You can even edit list watchers in speech bubbles and in reporter value bubbles (in the scripting area).
Offline
#python you can use the 'is' operator if you need identity check (or just id() == id(), but well...)
for example:
[1, 2, 3, 4, (5, 6, 7)] == [1, 2, 3, 4, (5, 6, 7)] #True
[1, 2, 3, 4, (5, 6, 7)] is [1, 2, 3, 4, (5, 6, 7)] #False
Offline
Hardmath123 wrote:
Ok, I caused two crashes so far (losing all my work!
), due to displaying extremely large list structures.
You didn't accidentally make them circular, did you?
...empty boolean slots. Do you think that's worth putting a shim in for?
Yes! Someone might drag in a control block and not use it — and you don't want snapin8r to fail just because I left an empty if <> block lying around...
Last edited by blob8108 (2013-02-20 10:56:12)
Offline
Hardmath123 wrote:
Why do boolean results show up as the block if you double-click an expression? It makes me feel like "calling" the result. I'm actually unsure of a good replacement, though, maybe a green "true" and red "false" text?
They don't exactly "show up as the block" because there's no ring around them, as there would be if you displayed the block as a value.
Scratch (1.4) does a really bad job of dealing with Boolean values. In some contexts you see the words "true" and "false"; in other contexts you see the numbers 1 and 0. That's why we decided to make Booleans not look like anything else.
Offline
Hardmath123 wrote:
Writing my parser, I found that you haven't really added much string manipulation. I think the most powerful string manipulation functions are "characters () to () in []", and "find [] in []" (which returns a list of indices). Also, preferably these functions should also work for lists, exactly the same way. These blocks are admittedly replicable, but I'd prefer having fast native support.
The trouble with starting down this path is that we all have our favorite blocks to speed up. Before anything about text, I'd add FIRSTS (takes a list of lists and reports a list of the first items of each item) and BUTFIRSTS; I actually made those primitive in Berkeley Logo because it made the implementation of MAP much faster!
I'd like to encourage people to deal with text by using SENTENCE->LIST and then use list operations. You'll reply that dividing at spaces may not be exactly what people want, and I suppose it wouldn't kill me if S->L took an optional second input that would be a list of delimiter characters. But I lean toward using text strings to represent natural language, as opposed to programming languages. YMMV.
Offline
blob8108 wrote:
Hardmath123 wrote:
Ok, I caused two crashes so far (losing all my work!
), due to displaying extremely large list structures.
You didn't accidentally make them circular, did you?
![]()
Ah, that could be—does that cause an issue, Jens? I'm used to using that as a feature, because in Python you can have infinitely long lists/circular lists:
x = [] x.append(x)
...empty boolean slots. Do you think that's worth putting a shim in for?
Yes! Someone might drag in a control block and not use it — and you don't want snapin8r to fail just because I left an empty if <> block lying around...
Good point—I suppose it may be a good safety net.
Last edited by Hardmath123 (2013-02-20 21:34:33)
Offline
@bharvey: That sounds good, having a "split string [She sells sea shells] at word [s]" will solve a lot of problems.
Oh, and is it bad that I had to look up YMMV?
@Jens: Any chance you'll add "set rotation style to []"? It's now supported in Scratch. Also, did you fix the typo glitch you mentioned above?
Offline