What happened? I reloaded the page and suddenly all my block definitions disappeared! They all changed to the empty script!
Offline
bharvey wrote:
shadow_7283 wrote:
I LOATHE how Scratch handles direction
Do you mean clockwise-from-North rather than counterclockwise-from-East?
long explanation...
I think he meant that weird left-negative-right-positive thing
Offline
roijac wrote:
I think he meant that weird left-negative-right-positive thing
Huh? What do you want, origin at the top left?
The purpose of computer science is to allow people to talk about their problems in the language appropriate to the problem, rather than to have to focus on the limitations of computers.
Top-left-origin is a system designed for the convenience of computers, not for the convenience of people. As with zero-origin arrays, the only point is to minimize the calculation necessary to find where in memory a particular pixel is located. (Minimize by all of one instruction, by the way, too.)
Center-origin is the most natural way for people to talk about positions. When Scratch starts up, where is the cat? In the center! Not off in the corner like a boxer waiting for the bell to ring. Human vision is strongest at the center of the visual field, not at the edges. And so on.
We all have the tendency to take the style of whatever programming language we learned first as The Way It Should Be. But people who get trapped in that mode of thinking aren't the ones who create great new ideas.
So there.
Offline
bharvey wrote:
roijac wrote:
I think he meant that weird left-negative-right-positive thing
Huh? What do you want, origin at the top left?
[lecture]
So there.
But rotation is different! Direction isn't intuitive like position. When I create a new sprite, why does it face 90 degrees? Shouldn't it face 0 degrees? I haven't rotated it, right? The whole setup seems to make sense just for the direction a sample cat image faces.
When I draw a rocket upright and make it face 0 degrees, it points left. That's weird, zero means up so my rocket should be upright. When I make it point towards the mouse and track the direction, it "jumps" from -180 to 180 when facing down. That's silly, the obvious jump is from 0 to 360, when you make a true full circle. And how come angles can be negative anyway? My protractor doesn't have anything negative marked on it.
...and so on. I went through this a long time ago, so I'm confident the current rotation system has room for improvement. Your average Scratcher doesn't have a major in polar geometry (that's what it's called, right?).
Offline
Hardmath123 wrote:
But rotation is different!
Oh! OK, I'm finally understanding what issue you guys are raising. Sorry for being obtuse.
There are two separate questions: (1) Why are directions clockwise from North? (2) Why is the default direction facing East?
1. This is a decision that Scratch inherits from Logo, and Logo gets it from orienteering. Apparently (as it was explained to me) the CW-from-N convention long predates computers.
2. This one does not come from Logo; the Logo turtle starts out facing North. As you say, it seems that Scratch made this choice for the sake of an animal mascot whose natural motion is horizontal rather than vertical.
In BYOB, Alonzo is more animal-like than rocket-like, so it made sense to keep the Scratch rule, and besides, we were trying to be just like Scratch whenever possible. But in Snap! our default shape is the turtle (except for a slight confusion on Jens's part about where the rotation point should be ), and so I'd be perfectly happy for us to start out facing North, whicih is the right thing anyway for drawing a fractal tree!
If we did start out facing North, then measuring directions from North would be sensible. We could even have some sort of compatibility feature for old Scratch/BYOB projects without too much trouble.
Jens?
Offline
bharvey wrote:
Hardmath123 wrote:
But rotation is different!
Oh! OK, I'm finally understanding what issue you guys are raising. Sorry for being obtuse.
There are two separate questions: (1) Why are directions clockwise from North? (2) Why is the default direction facing East?
1. This is a decision that Scratch inherits from Logo, and Logo gets it from orienteering. Apparently (as it was explained to me) the CW-from-N convention long predates computers.
2. This one does not come from Logo; the Logo turtle starts out facing North. As you say, it seems that Scratch made this choice for the sake of an animal mascot whose natural motion is horizontal rather than vertical.
In BYOB, Alonzo is more animal-like than rocket-like, so it made sense to keep the Scratch rule, and besides, we were trying to be just like Scratch whenever possible. But in Snap! our default shape is the turtle (except for a slight confusion on Jens's part about where the rotation point should be ), and so I'd be perfectly happy for us to start out facing North, which is the right thing anyway for drawing a fractal tree!
If we did start out facing North, then measuring directions from North would be sensible. We could even have some sort of compatibility feature for old Scratch/BYOB projects without too much trouble.
Jens?
Yeah, that's what I meant. I don't mind measuring degrees from the top, though I am a stickler for having left side positive whenever possible just because I'm a proud lefty. Just an eccentricity, I suppose, but I do get annoyed when people tell me not to hand them stuff with my left hand. Who cares?!
Digressions aside, it sounds sensible. One more problem in my opinion is the direction reporter. IMO it should report 0 to 360 not -180 to 180. I don't know why, but that seems more intuitive.
Last edited by Hardmath123 (2012-08-16 11:08:35)
Offline
Hardmath123 wrote:
I do get annoyed when people tell me not to hand them stuff with my left hand.
Hmm, do you live in one of those places where you're supposed to wipe your butt with your left hand?
One more problem in my opinion is the direction reporter. IMO it should report 0 to 360 not -180 to 180. I don't know why, but that seems more intuitive.
I think the theory is that if you're facing north and want to face west, you're more likely to turn left 90 degrees than turn right 270.
Offline
bharvey wrote:
Hardmath123 wrote:
I do get annoyed when people tell me not to hand them stuff with my left hand.
Hmm, do you live in one of those places where you're supposed to wipe your butt with your left hand?
Ew, no! I thought you were mature!
So much for advanced topics...
One more problem in my opinion is the direction reporter. IMO it should report 0 to 360 not -180 to 180. I don't know why, but that seems more intuitive.
I think the theory is that if you're facing north and want to face west, you're more likely to turn left 90 degrees than turn right 270.
Agreed. Though you don't turn west -90 degrees, you turn east -90 degrees which IMO sounds weirder.
Last edited by Hardmath123 (2012-08-16 11:32:29)
Offline
Hardmath123 wrote:
I thought you were mature!
You haven't known me very long, I guess...
But, btw, I'm left-handed, too, and I've never had anyone complain about which hand I use to hand them things, so that's why I thought of that question.
Though you don't turn west -90 degrees, you turn east -90 degrees which IMO sounds weirder.
No, no, you don't turn west or east. You turn clockwise or counterclockwise. Just like MOVE, the turning is body-relative, not stage-relative.
(In Logo they're called RIGHT and LEFT, which admittedly could be misinterpreted as stage-relative; that's why Scratch uses the curved arrows and eschews words altogether.)
Offline
bharvey wrote:
Hardmath123 wrote:
I thought you were mature!
But, btw, I'm left-handed, too, and I've never had anyone complain about which hand I use to hand them things, so that's why I thought of that question.
Cool. It's not just handing things; have you ever been annoyed when the basketball teacher makes the class do more shots with their right hand, or when you at someone's right on a bench and when you try to write your elbows bang? Or when you try to pour tea and you find the spout's on the wrong side? Or the way doors need you to push with your right hand? Or how your piano teacher complains about your too-strong bass? Or how you always lose at thumb wrestling/arm wrestling? I could go on and on, but in the interest of keeping the BYOB discussion thread discussing BYOB, I'm going to stop.
Last edited by Hardmath123 (2012-08-16 11:58:58)
Offline
@bharvey&Jens
Snap! instruction TOUCHING Colour can't hardly be used as there is not , like in Byob, this tool that is activated by right-clicking onto the color box, to pick up one color to be filled into the color box(I don't know the english name of this tool, in French the name is "pipette" a glass instrument used to pick out wine from a barrel)
Offline
xly wrote:
@bharvey&Jens
Snap! instruction TOUCHING Colour can't hardly be used as there is not , like in Byob, this tool that is activated by right-clicking onto the color box, to pick up one color to be filled into the color box(I don't know the english name of this tool, in French the name is "pipette" a glass instrument used to pick out wine from a barrel)
I believe it's "eyedropper", as in what you use in labs to put HCl drop-by-drop into NaOH+phenolphthalein to demonstrate neutralization.
Last edited by Hardmath123 (2012-08-16 12:00:42)
Offline
Hardmath123 wrote:
Or how your piano teacher complains about your too-strong bass?
Now, if you played guitar instead of piano, you could just put the strings on in the other order like Paul McCartney, another leftie.
As for basketball teachers, I was way too annoyed about being made to take gym class altogether to worry about secondary annoyances.
But, look on the bright side: All the best computer programmers and mathematicians are lefties.
P.S. If you use your EYEdropper for HCl, you'll regret it the next time you want to put normal saline in your eyes.
Offline
Can we get back on topiuc?
I wrote:
snap! wrote:
Save Failed: Type Error: Object doStop has no method 'toXML'
Why? It saved before and i only changed one block. (I changed a call to a run)
Also, it is REALLY slow opening projects with a URL-embedded XML file.
Then, I wrote:
What happened? I reloaded the page and suddenly all my block definitions disappeared! They all changed to the empty script!
Offline
In mathematical operations, a rotation block that reports 0-360 is much more useful. When you bring negatives in to the equations it messes everything up. Besides, when you describe the measure of an angle, you NEVER use negatives. Well, in the level of math I'm in anyway.
Offline
bharvey wrote:
But, look on the bright side: All the best computer programmers and mathematicians are lefties.
Ouch... I guess being right-handed is too mainstream.
Offline
shadow_7283 wrote:
In mathematical operations, a rotation block that reports 0-360 is much more useful. When you bring negatives in to the equations it messes everything up. Besides, when you describe the measure of an angle, you NEVER use negatives. Well, in the level of math I'm in anyway.
How does it mess anything up...?
sin(-90) = sin(270)
Last edited by MathWizz (2012-08-16 13:31:12)
Offline
xly wrote:
@bharvey&Jens
Snap! instruction TOUCHING Colour can't hardly be used as there is not , like in Byob, this tool that is activated by right-clicking onto the color box, to pick up one color to be filled into the color box(I don't know the english name of this tool, in French the name is "pipette" a glass instrument used to pick out wine from a barrel)
Oh, but there is! it works just the same as in Scratch, but it doesn't change the shape of the mouse cursor.
Offline
joefarebrother wrote:
Save Failed:
Yes, I've had such problems, too. I didn't respond earlier b/c we really need a response from Jens. Meanwhile, what browser are you using? We have had best results with Chrome.
Offline
shadow_7283 wrote:
In mathematical operations, a rotation block that reports 0-360 is much more useful.
I don't see why. All the trig functions interpret their inputs modulo 360. The TURN blocks accept positive and negative angles. What is it you want to do that you can't do?
Offline
joefarebrother wrote:
Can we get back on topiuc?
Sure. Here's the latest news. I taught 35 high school teachers our Beauty and Joy of Computing course, including recursion and higher order functions in Snap!, in official NSF-sponsored six-week workshops, plus short courses for programmers volunteering at high schools in Seattle and for high school teachers in Connecticut. And just last week, an impromptu workshop at a Google Summit for CS faculty at Historically Black Colleges and Universities. Lots of excitement all around about the curriculum and visual programming. Fingers crossed about squeezing a few dimes out of Google's deep pockets, e.g., to take the full six-week workshop to the HBCUs.
On the technology front, Jens's big project right now is to develop a uniform interface for locally installed software providing Snap! with access to hardware such as robots and sensors, and optionally to the local filesystem. Once this is done, the device-specific stuff should be writeable in Snap! itself, allowing quick and easy support for new devices as they're invented. Not to mention serious local saving of projects. We are also, as part of the same project, going to gain the ability to serve media (costumes, etc.) from an Internet back end.
Despite joefarebrother's problems described above, and similar problems I've seen in the workshops, we are leaning toward declaring that Snap! is now more stable than BYOB 3.1.1, which also has known bugs that strike occasionally.
We do know that there are a million little details to work out in the UI.
I think next summer we should rope some of you experts in to help teach the workshops!
Offline
Since I can't get posting my project to work, I'm reposting my nonworking AMB project as a screenshot. Jens can fix it if it's a Snap! bug, and joefarebrother can fix it if it's a bug in my code.
PS The THINK block is just there for debugging.
Offline
bharvey says "Not to mention serious local saving of projects."
I already use the following method for local saving of my projects (Chrome + Win Xp)
- export one project named "sample"
- a new tab is opened containing the xml text of the project.
- copy and paste the text into a void text file, then name it "sample.xml"
- close Snap!, reopen it, Import "sample.xml" ...the project is reloaded and (most of the time) is usable.
This method can be long and unsafe if the xml file is very large,at the risk of spoiling the cut/paste procedure.
Offline