One thing I ask is to be able to have one of these to make accessing much quicker and not require a external variable, but direct access:
A (last received) block. Doesn't seem that hard...?
A <%e received> block. The code is already in several forums.'
Maybe you could just pop it in with the next BYOB release?
Offline
@bharvey - sprite cloning
I'm working with applications using many sprites; Byob with its "methods" offer many powerful features o achieve a full inter-sprite communication (any sprite can act on any other sprite).
Cloning in pratice ( I know that the theoretical aspects are very important) could be done in this way :
- clone will start with "naming" of the child sprite (parent.child for example)
- the child would then inherit of all parent local variables renamed in such a way that Local variables of "child" are defined like the parent variables but named in a structured manner. For example if "parentmet" is a method variable defined in "parent", the name of the equivalent child variable would be "parentmet.childname" . Then OF the keystone instruction of interprocess communication would display <parentmet.childname OF parent.childname>
As this OF instruction accepts a "composed string", (with JOIN for example, contrarily to SET), the parent blocks could be used without "re-writing" them.
Offline
xly wrote:
...the name of the equivalent child variable would be "parentmet.childname" . Then OF the keystone instruction of interprocess communication would display <parentmet.childname OF parent.childname>...
Congratulations! You have successfully managed to confuse me!
Offline
In the new edition of BYOB, could you add a script list function
It would make blocks a lot easier to make!
Offline
subzerostig wrote:
In the new edition of BYOB, could you add a script list function
It would make blocks a lot easier to make!
Exellent idea! We've been discussing a script encoding / parsing mechanism, and it's pretty straightforward with stack of command blocks. But how would you encode reporters?
Offline
rubiks_cube_guy238 wrote:
xly wrote:
...the name of the equivalent child variable would be "parentmet.childname" . Then OF the keystone instruction of interprocess communication would display <parentmet.childname OF parent.childname>...
Congratulations! You have successfully managed to confuse me!
xly -> Sorry, read "intersprite" instead of "interprocess". But after all each sprite can be considered like a separate process !
Offline
I was debugging a function and saw something weird, a blue 'answer' block shaped like a 'report' block. There are pictures of it and the function I was debugging here:
http://scratch.mit.edu/projects/EvilGenius/1473776
Press space to see other image.
Anyone know anything about this? The function was supposed to be like switch in the Tools project but for returning data. There was another block, called 'elif' that was supposed to go in the elifs... spot. It returned a list of the boolean and the (unevaluated) data point.
Offline
EvilGenius wrote:
I was debugging a function and saw something weird, a blue 'answer' block shaped like a 'report' block. There are pictures of it and the function I was debugging here:
http://scratch.mit.edu/projects/EvilGenius/1473776
Press space to see other image.
Anyone know anything about this? The function was supposed to be like switch in the Tools project but for returning data. There was another block, called 'elif' that was supposed to go in the elifs... spot. It returned a list of the boolean and the (unevaluated) data point.
That shows up if you use the report box at the bottom of the block window instead of the report block.
Offline
EvilGenius wrote:
The function was supposed to be like switch in the Tools project but for returning data. There was another block, called 'elif' that was supposed to go in the elifs... spot. It returned a list of the boolean and the (unevaluated) data point.
Ah, very interesting. You've found... well, not a bug, I guess, because Scheme just disallows what you did, so we can handle it however we want , but definitely something that could be better documented.
Executive summary: Unevaluated inputs don't work well with CALL etc.
Here is a very simple special form that just reports its (unevaluated) input:
Here's a straightforward invocation of it, to show that it works normally:
But watch what happens when I try to do the same thing using CALL:
What's that strange result??? Basically you can think of it as equivalent to [THE <5> BLOCK], which is something you can't ordinarily create because "5" isn't a block.
You get this result because, first of all, even though SPEC is a special form (a block with unevaluated input slots), CALL isn't! So the [<2> + <3>] gets evaluated by CALL before being passed to SPEC. And then BYOB notices that you have a non-block value where a block is expected, so it wraps THE BLOCK around it for you.
The easiest way to make a recursive call to a special form is to create a non-special-form helper block that takes, e.g., Reporter-type inputs instead of Any-unevaluated-type inputs. Then that helper can call itself recursively, straightforwardly.
Last edited by bharvey (2010-12-12 03:07:04)
Offline
MathWizz wrote:
BYOB lists can't store some characters in a list without changing them into something else. For example the byte 6. I add it to a list then I read the item and I get something else.
Interesting. I get 0 for every code less than 32; is that what you're seeing?
You should file a bug report!
Offline
Heres a sample project I made in BYOB.
Just a normal Scratch project, BUT with an extra feature: Press 0 and then b y o and b and you will enter a BYOB mode. It detectes if you enter a number or a letter.
http://www.mediafire.com/?2kzlh1sxq1dz14h
Please tell me if there are any bugs in it. Thanks!
Offline
BYOB is so cool. If there was a magic loveit button, i would use it on BYOB3.
Offline
May i make another suggestion?
A "Custom Code" block. It would enable the vast areas around Smalltalk as well, enabling us to make other useful blocks for use with custom blocks!
Offline
bbbeb wrote:
May i make another suggestion?
A "Custom Code" block. It would enable the vast areas around Smalltalk as well, enabling us to make other useful blocks for use with custom blocks!
If you run "BYOB Development" (in the same folder as BYOB.image) you can shift-click on Edit to get an expanded menu that gives access to the Smalltalk browser. Is that what you wanted?
Offline
fullmoon wrote:
I built a library that includes hash functionality and JSON encoding/decoding. You can download it in the form of a BYOB sprite here
Hi fullmoon, the link above is dead. Would you mind posting a new one? Thanks.
Offline
bharvey wrote:
bbbeb wrote:
May i make another suggestion?
A "Custom Code" block. It would enable the vast areas around Smalltalk as well, enabling us to make other useful blocks for use with custom blocks!If you run "BYOB Development" (in the same folder as BYOB.image) you can shift-click on Edit to get an expanded menu that gives access to the Smalltalk browser. Is that what you wanted?
No, as in a block in BYOB that says "Custom Code:" %s that runs it. That lets us make our own blocks for use in building our own blocks!
Offline
Jens wrote:
Hmm, bbbeb, are you saying that you want to write text code into a custom block, sort of like Panther does? Which scripting language would you use for that, Smalltalk?
Every professional software designed to build costly applications using the user-friendly drag-and-drop technique like : web sites, RPG, video games, business windows-oriented applications need to embed a scripting language to walk around limitations of these sophisticated tools. I'm currently playing with applications offering Ruby andJava script extensions. But the difference is that BYOB is not a business-oriented programming software made to build costly end-user professional applications.
As far as I'm concerned I feel some frustrations with Byob, but I take care of them. For example you can't command with an instruction simple actions like "make a variable", "export/import text files" , or can't pass composed strings (JOIN map 1) to instructions like SET (but happily you can do this with <property OF sprite >, <broadcast> etc)
By the way, Brian and Jens- and all other Byobers - I take this opportunity to wish you an Happy Xmas and New Year and thank you for all your remarkable achievements in 2010 !!
xly
Offline
s_federici wrote:
fullmoon wrote:
I built a library that includes hash functionality and JSON encoding/decoding. You can download it in the form of a BYOB sprite here
Hi fullmoon, the link above is dead. Would you mind posting a new one? Thanks.
Here we go. Drop.io was bought out by Facebook, apparently, which is really disappointing.
Offline
Jens wrote:
Hmm, bbbeb, are you saying that you want to write text code into a custom block, sort of like Panther does? Which scripting language would you use for that, Smalltalk?
Yes indeed, but in a diffrent way.
Like how the [run [%block]] works, you could make [run code [v]] where v indicates a drop down menu where you can place Smalltalk code.
And yes, Smalltalk. So that if we find something missing, you could add it, in it's native language.
Offline
fullmoon wrote:
I built a library that includes hash functionality and JSON encoding/decoding. You can download it in the form of a BYOB sprite here
s_federici wrote:
Hi fullmoon, the link above is dead. Would you mind posting a new one? Thanks.
fullmoon wrote:
Here we go. Drop.io was bought out by Facebook, apparently, which is really disappointing.
Thanks!
Offline
Morphic framework for browser-based JavaScript
Hi gang, recently I have been working on a new HTML5 based Morphic framework for web browsers called morphic.js, which might serve as a platform for BYOB4 or someting similar (yeah, it does work on the iPad). I just finished the documentation and released it under a free and open source MIT license. If you're interested you're invited to check it out at:
http://www.chirp.scratchr.org/blog/?p=34
it's a blog post with a link to a live Morphic web page that looks and feels a lot like the Squeak version Scratch is written in, plus a video showing some tricks.
This is the very beginning of what might eventually turn out to be a complete re-write of BYOB...
Last edited by Jens (2011-01-05 16:39:47)
Offline
i'd like a person to teach me squeak! yes, i've read the tutorials. I want a PERSON to teach me. anyone?
Offline