fullmoon wrote:
Uh-oh! I have a video bug report for you here: http://www.screentoaster.com/watch/stUE … 1aXl1RXlVW
Sorry about the mic quality!
Huh, that's a weird bug...it happened to me too!
Offline
nXIII wrote:
I would not call pointers a "very low level of abstraction"...
"Low level" isn't an insult. It means "closer to what is actually happening in the computer." (Well, even that is an abstraction, over what's actually happening in the electrons.) Low level programming languages such as C are very useful, in writing operating systems, memory managers, and certain parts of compilers.
But usually, when writing applications, one wishes for a higher level of abstraction, e,g, a language such as Java with automatic memory management. But Java is still at a rather low level of abstraction. For example, because of certain restrictions in the hardware of certain computers, you can't easily compute the factorial of 100 in it. More serious programming languages such as Scratch provide "infinite precision" integers.
And, yeah, pointers (explicitly visible to the programmer) are at a low level of abstraction. They ask you to think about this stuff called "memory" and the notion that you put things in particular places in memory, and some memory locations are "close" to others, and so on.
Much less payoff? It's an important programming concept and you want to ignore it?!
Yup. There are many important concepts we want to ignore. Another example is the distinction between values stored in integer format and values stored in floating-point format. We want to ignore those completely. We want to ignore the existence of denormalized floating point numbers very near zero. More precisely, we don't want to ignore these things; we want BYOB users to ignore them.
One of the clever design decisions by the Scratch Team, as another example, was to do the scheduling of actions within threads with sufficiently coarse granularity so that Scratch users can pretty much ignore the super important concepts of serialization and critical sections.
Why would you want to pass variables by value and lists by reference? It's inconsistent, and I think BYOB programmers should learn that they need to pass by reference to change an object sent.
I think this is the wrong way to think about it. All bindings are passed by value. But some variables happen to be bound to mutable objects, such as lists.
It's praiseworthy, n, that you want to share with the world everything you know about computer programming and computer science. Much better than hoarding secrets would be! But you're not required to tell people everything at once. That would be bad pedagogy, and would just scare or bore them away. Scratch is a language for beginners, and it made certain choices about what to expose and what to abstract away. BYOB is a language for slightly older beginners, and we make slightly different choices about what to expose and what to abstract away. But even C abstracts certain things away! As a C programmer you have to know the memory model of the machine you're compiling for, but you don't have to know its instruction set. Without abstraction we would still be programming our computers with soldering irons.
Offline
@Jens&bharvey
I'm very far from high-level discussions above, and would not like to disturb you with a very minor issue at this time : I don't even know if it is a bug...or something else.
I've an infinite loop which takes as input numbers from 1 to 9 (each one moving accordingly the sprite). BYOB does not recognize the numeric pad keys, only the normal keyboard number keys (which is not very convenient). Strangely, the "hat control" "When ... is clicked " recognizes these numeric pad key, and in addition I've that Scratch does not have the problem. So it is not a hardware issue.I've workarounded this issue by using "hat control" instead of a function.
Ps : I shall probably attend the Constructionism conference, on Thursday 19th, although I've not fixed the issue of registering ( as far as I understand I can't register for only ONE day)
Offline
bharvey wrote:
rubiks_cube_guy238 wrote:
I think there should be an (argument # () of [a block]) block in the BYOB3 final.
Way too late for 3.0 feature proposals! Maybe 3.1 or something.
Ok. I knew (one of) you were going to say that. Glad I could help!
Offline
Jens wrote:
rubiks_cube_guy238 wrote:
Another glitch: if you do something like
say (call(the script[say [Hello!] ]) )
then the sprite would say 'Hello!' forever. It does this as long as there isn't a [report[]] block inside the script.Correct, reporters ought to report something.
But you can stop it by pressing the red stop button.rubiks_cube_guy238 wrote:
Also, the THE SCRIPT block inside the CALL block can't have the grey outline.
Yes it can for me.
When I do this it answers "true" when asked if it is a reporter, which it is.
When I said that the THE SCRIPT block can't have the grey outline, I meant that it can't in order for the above glitch to work.
Offline
rubiks_cube_guy238 wrote:
When I said that the THE SCRIPT block can't have the grey outline, I meant that it can't in order for the above glitch to work.
Yes, I think this is well understood... It's an error to CALL something that doesn't report a value, so some undesirable thing is going to happen when you do it. I agree that a less undesirable thing would be an error message. Imho the whole error-handling system needs work, but that will have to wait for next time.
Offline
Jens and I are pleased (more than pleased, delighted, relieved) to announce BYOB 3.0 now available at http://byob.berkeley.edu. It's only slightly changed from 2.995.008 but you should probably download the whole package complete with sample projects etc.
So don't find any more bugs!
Offline
bharvey wrote:
Jens and I are pleased (more than pleased, delighted, relieved) to announce BYOB 3.0 now available at http://byob.berkeley.edu. It's only slightly changed from 2.995.008 but you should probably download the whole package complete with sample projects etc.
So don't find any more bugs!
FINALLY!
You guys are the best!
Now to wait for Panther 1.1....
Offline
Another sugestion for 3.1:
When you select 'Multiple inputs (value is a list of inputs' in the argument type selection dialog, there should be an option for the minimum amount of arguments.
Offline
rubiks_cube_guy238 wrote:
Another sugestion for 3.1:
When you select 'Multiple inputs (value is a list of inputs' in the argument type selection dialog, there should be an option for the minimum amount of arguments.
Yeah, I agree, I've been wanting that for some time, but we just didn't get around to it for this release.
And, to save nXIII the trouble of reminding us, for single inputs of type other than text or number, you should be able to drag-and-drop a default value in. (The text box should just be an Any-type slot.)
And I want default values in grey in the actual block, so we can tell the difference between a default value and the same value explicitly entered by the user, so you could say something like
RUN [MOVE <10> STEPS] WITH INPUTS <20>
and if the 10 is there because it's the default, then it gets replaced with 20, but if the user actually typed 10 into that slot, then the 20 isn't used.
All in good time...
Offline
bharvey wrote:
Thanks!
You're welcome!
bharvey wrote:
Nah, now you guys have to get busy writing killer BYOB projects that'll knock everyone's socks off when we show them off.
Good idea!
Offline
bharvey wrote:
Jens and I are pleased (more than pleased, delighted, relieved) to announce BYOB 3.0 now available at http://byob.berkeley.edu. It's only slightly changed from 2.995.008 but you should probably download the whole package complete with sample projects etc.
So don't find any more bugs!
Woooot!!!!
You guys definitely each deserve pats on your backs
Last edited by Lucario621 (2010-08-06 23:03:17)
Offline
Lucario621 wrote:
bharvey wrote:
Jens and I are pleased (more than pleased, delighted, relieved) to announce BYOB 3.0 now available at http://byob.berkeley.edu. It's only slightly changed from 2.995.008 but you should probably download the whole package complete with sample projects etc.
So don't find any more bugs!Woooot!!!!
Woooot!!!!
Offline
Installing... Another scratch-related icon to go with my collection on the desktop.
I like my scratch mods...
Offline
bharvey wrote:
So don't find any more bugs!
Uh-oh, I think I just did.
When you save a project, any variables that have been set to a script report the script's tuples (y'know, asBlockTuple?)
Make sure that any block tuples stored into a variable get transfered into the script in 3.1.
markyparky56 wrote:
Installing... Another scratch-related icon to go with my collection on the desktop.
I like my scratch mods...
lol. you should see my desktop. I've made SO many downloads (95% Scratch projects, 4% Scratch mods, and 1% not-Scratch-related) that my desktop can't display all the files.
I like my Scractch mods too.
BTW, those letters on your desktop spell out PANTHER, don't they?
Last edited by rubiks_cube_guy238 (2010-08-07 07:37:23)
Offline
rubiks_cube_guy238 wrote:
When you save a project, any variables that have been set to a script report the script's tuples (y'know, asBlockTuple?)
Make sure that any block tuples stored into a variable get transfered into the script in 3.1.
Hmm, works for me -- maybe I'm not understanding what you mean. I made a "Make a Variable" variable, said SET <foo> TO [THE SCRIPT <blah blah>], then saved and quit, then double-clicked the saved project and the variable watcher had the right thing. What exactly did you do that failed?
Offline
bharvey wrote:
Jens and I are pleased (more than pleased, delighted, relieved) to announce BYOB 3.0 now available at http://byob.berkeley.edu. It's only slightly changed from 2.995.008 but you should probably download the whole package complete with sample projects etc.
D
Warmest congratulations to both of you. What you have achieved is extraordinary, unbelievable, incredible...(I lack words) !!!!
Offline
bharvey wrote:
It's an important programming concept and you want to ignore it?!
Yup.
Sheesh, you're just as bad as the Scratch Team with adding new stuff, you know that?
Offline
Lucario621 wrote:
bharvey wrote:
It's an important programming concept and you want to ignore it?!
Yup.
Sheesh, you're just as bad as the Scratch Team with adding new stuff, you know that?
Um, a new BYOB.image is released every day (or was). What do you mean they're bad at adding stuff?
Offline
ScratchReallyROCKS wrote:
Lucario621 wrote:
bharvey wrote:
Yup.Sheesh, you're just as bad as the Scratch Team with adding new stuff, you know that?
Um, a new BYOB.image is released every day (or was). What do you mean they're bad at adding stuff?
*facepalm*
I'm not talking about how often, I'm talking about adding new concepts. The Scratch Team won't consider many people's ideas, like BYOB's first class lists and stuff, and building new blocks and such. This relates to how bharvey is not including an 'important programming concept' suggested by nXIII.
Offline