Programming feature request for the visual learner

Hi guys, I’ve decided to dive in head first with almost no programming skills. And thanks to some awesome people in this forum, I’ve way exceeded my expectations all ready. I have to say I’m really impressed with the SDK so far.

But I do have a feature request.

I’ve never been very good at learning how to do something from a book. I need to put my hands on it, and then eventually get to the point where I can visualize how it works. The way I troubleshoot is best described as me visualizing a giant Rube Goldberg Machine and then following the various functions through each step of the processes until I get to the part where the problem is.

So this weekend has had me trying to figure out in my own way what each piece of the SDK does so that I know where to put that gear in the grand machine. I have a lot of the basics down but there are still some pieces that I need to master before I can really take off. I’ll get there but it would be far easier if there were some sort of step debugging in the simulator.

Ideally if I could start a debug mode that would show the behavior tree highlighting each step as it progressed through a skills rules and behaviors. So you could go to the simulator, type “Hey Jibo” then watch the listen command trigger then go to “look At” and then on to what ever is next. Then you could trigger a rule and see at what point you have something in the wrong place. This would have saved me hours today. :wink:

If this is something that is already there and I’ve just missed it please let me know.

Regards,
Tony

1 Like

Seconded. This is a great idea, not only for new developers but for the seasoned ones as well working on more complex skills. Stepping through a behavior tree (which is essentially what the Jibo Behavior editor is) would be a great way to debug a skill, or at the very least, to visualize how it’s moving through the process.

I could see it simply as a highlight in the Behavior editor when the skill is running showing which behavior(s) is/are currently active at any given moment. Additionally, we could have breakpoints, watched variables, and execution status later on, but the highlight feature would already be a big help.

Great idea, @codemonkey2k5!

1 Like

Hi @codemonkey2k5!

This is a great idea and I will let our team know this is something our developers would like to see implemented in the future.

In the meantime, a great way to see what is happening with your skill when you are running it is to use console.log(); in Execute Scripts before and after behaviors, or within certain behaviors. This will help give you an idea of what is happening with your skill as it is running, including where breakpoints may be and how variables are being set.

For example:

  • Beginning of Sequence parent behavior:

    () => {
    console.log(“Entering Sequence”);
    }

End of Sequence with WhileCondition for help with looping and how variables are being set:

() => {
  notepad.loop = true;
  console.log("loop set to " + notepad.loop);
  console.log ("loop");
}

In Listen behaviors, you can use it to see how responses are parsed:

(listener) => {
    listener.on('cloud', function(asrResult, speakerIds) {
      if (asrResult && asrResult.NLParse) {
        notepad.what = asrResult.NLParse.what;
        console.log("notepad.what is set to " + notepad.what);
      };
    });
}

This will print out on the developer tools console while you are running your skill. If you haven’t done this already, you can enable this while running a skill (in Electron) by using:

  • View > Developer > Developer Tools.
  • Mac: Option + Command + i.
  • Windows: Ctrl + Shift + i

I hope this helps! Let me know if you have any questions and I’ll be happy help you further :slight_smile:

1 Like

Oh so you want me to comment the bajesus out of my code. :wink:
That will get me by until something better comes along.

Thank you.