Bugs found at a Programming Club session [FIXED]

(Read-only) To re-open a bug, start a new thread in the Bugs forum.

Moderator: MSandro

Locked
bromagosa
Posts: 33
Joined: Sep 15th, '15, 07:11

Bugs found at a Programming Club session [FIXED]

Post by bromagosa » Oct 15th, '15, 09:27

Hi!

Last Tuesday we held the third session of the Programming Clubs at the Citilab, and we began to implement Flappy Bird in GP. Here's a list of bugs we found:
  • If the focus is inside an input and you click on "Go", you can't edit the input contents any more. Before clicking on "Go" you always need to get the focus out of any input by clicking somewhere else, otherwise the contents are not saved and that input becomes unusable.
  • We couldn't reproduce this bug, but at some point objects were not being clipped by the Stage boundaries and were covering part of the instances panel and the scripts canvas.
  • Add a "When I receive [initialize] (data)" block to the scripts canvas and some other block that uses that data, then remove all instances of that class, then click on another class and back again on the original one. This creates a new instance and thus sends the initialize message with nil data, freezing GP.
  • Again, we couldn't find out when was this happening, but in some cases the whole UI became really sluggish and we had to kill it and open it back, as even dragging blocks around became really slow.
I'm sorry if some of those are not very concise, I'm really sleepy today...

On a side note, the participants suggested a nice feature would be to be able to export blocks and scripts to reuse them in other projects. In their particular case, they're working on different parts of the game in different computers, and they wanted to merge them together afterwards. For this project we'll just merge the source files with an editor, but it may be interesting to think on such a feature.

Overall, they all liked the language a lot. It was an heterogeneous group with a very talented 14 year old Scratch programmer, a 50-something year old who had never programmed before, a 20-something year old computer science student and a 40-something year old "traditional" mainstream language programmer. These last two had never used a blocks-based language before and picked it up really fast.

bromagosa
Posts: 33
Joined: Sep 15th, '15, 07:11

Re: Bugs found at a Programming Club session

Post by bromagosa » Oct 21st, '15, 11:58

More feedback from our Tuesday "casual coders":
  • When using the shift+click keyboard input, blocks appear upside-down.
  • Highlight morphs (and only highlights, not the highlighted blocks themselves) also appear upside-down everywhere.
As for suggestions, they really missed Scratch's (if touching [color]) block. I know this one's a pain to implement, but people really use it a lot in Scratch.

A participant also suggested to add (pause sound [sound name]) and (resume sound [sound name]) blocks, as she's found it missing in every blocks language and thought maybe in GP she'd find it. The use case is: you have some background music going on, you want to pause it to play some other sound for a while, and then retake the background music from where you paused it.

By the way, they managed to finish a prototype of Flappy Bird with minimal help from our side. We got them started with a 10 minute intro to the environment and then left them on their own except to offer very occasional help when they got stuck. I'm attaching the early prototype so you can take a look at it!
Attachments
Flappy Bird.gpp
(171.16 KiB) Downloaded 144 times

bromagosa
Posts: 33
Joined: Sep 15th, '15, 07:11

Re: Bugs found at a Programming Club session

Post by bromagosa » Oct 27th, '15, 13:55

More upside down issues:

Image

JohnM
Posts: 379
Joined: Sep 11th, '15, 14:42

Re: Bugs found at a Programming Club session

Post by JohnM » Nov 3rd, '15, 15:38

That's a funny symptom!

JohnM
Posts: 379
Joined: Sep 11th, '15, 14:42

Re: Bugs found at a Programming Club session

Post by JohnM » Dec 11th, '15, 14:51

Thanks for the bug reports. It's great that you were able to implement "flappy birds"!
bromagosa wrote:
  • If the focus is inside an input and you click on "Go", you can't edit the input contents any more. Before clicking on "Go" you always need to get the focus out of any input by clicking somewhere else, otherwise the contents are not saved and that input becomes unusable.
Fixed.
bromagosa wrote: We couldn't reproduce this bug, but at some point objects were not being clipped by the Stage boundaries and were covering part of the instances panel and the scripts canvas.
I can't reproduce this, but I don't think it is fixed. There is a separate bug report about it.
bromagosa wrote:
  • Add a "When I receive [initialize] (data)" block to the scripts canvas and some other block that uses that data, then remove all instances of that class, then click on another class and back again on the original one. This creates a new instance and thus sends the initialize message with nil data, freezing GP.
  • Again, we couldn't find out when was this happening, but in some cases the whole UI became really sluggish and we had to kill it and open it back, as even dragging blocks around became really slow.
[/list]
We've fixed several problems with GP locking up with run-away scripts. While certain cases (e.g. infinite recursion) will cause GP to get sluggish, the goal is to be able to stop run-away scripts using either the escape key or the stop button. If you are still seeing cases where GP becomes unresponsive, and the escape key doesn't stop everything, please post another bug report.
bromagosa wrote: On a side note, the participants suggested a nice feature would be to be able to export blocks and scripts to reuse them in other projects. In their particular case, they're working on different parts of the game in different computers, and they wanted to merge them together afterwards. For this project we'll just merge the source files with an editor, but it may be interesting to think on such a feature.
The new 'copy to clipboard' and 'paste script' commands can be used to copy scripts from one project to another. You can even paste the copied script into an email, send it, select and copy that text, and then paste the script into a different project.

bromagosa
Posts: 33
Joined: Sep 15th, '15, 07:11

Re: Bugs found at a Programming Club session [FIXED]

Post by bromagosa » Dec 11th, '15, 15:29

Thank you, John.

They'll be happy to know these have been fixed :)

Locked