Page 1 of 1

Bugs found at a Programming Club session [FIXED]

Posted: Oct 15th, '15, 09:27
by bromagosa
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.

Re: Bugs found at a Programming Club session

Posted: Oct 21st, '15, 11:58
by bromagosa
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!

Re: Bugs found at a Programming Club session

Posted: Oct 27th, '15, 13:55
by bromagosa
More upside down issues:

Image

Re: Bugs found at a Programming Club session

Posted: Nov 3rd, '15, 15:38
by JohnM
That's a funny symptom!

Re: Bugs found at a Programming Club session

Posted: Dec 11th, '15, 14:51
by JohnM
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.

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

Posted: Dec 11th, '15, 15:29
by bromagosa
Thank you, John.

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