Keep Informed

Entries in Final State (2)

Tuesday
Aug162011

MUG Meeting August 22nd, 2011

[17:06]  Antonius: Hello Raven.
[17:06]  Raven: hey there :)
[17:06]  Antonius: Welcome to the HQ.
[17:06]  Raven: How have things been?
[17:07]  Antonius: Been busy & good. Working on the next version of MOAB.
[17:07]  Antonius: How have you been?
[17:07]  Antonius: A few more will join us shortly.
[17:08]  Antonius: Hello Sally!
[17:08]  Antonius: Hi Sally. Meet Raven.
[17:08]  Sally: Hi Ant , Hi Raven °?°
[17:09]  Raven: hey there
[17:09]  Antonius: Sally was here last week and really put me through my paces with great questions!
[17:09]  Raven: lol
[17:09]  Sally: haha .. sorry about that
[17:09]  Antonius: Not at all- it was great!
[17:09]  Raven: That's good to do tho
[17:09]  Antonius: How was your progress Sally this past week?
[17:10]  Sally: unfortunately I didnt get a lot of time to work on it, although our talk last week helped with a few things ;)
[17:11]  Antonius: That's good. I've also added your feature request to the todo list for v1.0.3.
[17:11]  Sally: cool °?°
[17:11]  Antonius: Raven, Sally wanted an icon to indicate when a state has any State Variables or Functions defined for it.
[17:12]  Antonius: I just need to figure out a good icon for it! That's really the hardest part of this feature.
[17:12]  Antonius: Being somewhat graphically challenged I struggle with things like that.
[17:13]  Antonius: Raven, how has your work with MOAB been going?
[17:15]  Raven: ah, pretty good so far. i still resort to vim a lot of the time lol but i've been working towards using moab more
[17:15]  Raven: I do have a question.
[17:15]  Antonius: Shoot.
[17:16]  Raven: How can you trigger a state exit without an event?
[17:17]  Antonius: Aha. Sally, do you want to answer that one???
[17:17]  Sally: yes
[17:17]  Sally: lol
[17:17]  Antonius: Sally asked the same question last week!
[17:17]  Raven: haha
[17:17]  Sally: you can create a final state inside the state
[17:17]  Antonius: Go ahead. I'll back you up.
[17:18]  Sally: transition to it and it will fire a completion event which you can use to transition out
[17:18]  Antonius: 10/10 Sally.
[17:18]  Sally: \o/
[17:18]  Sally:   || Yaaaaaaaay n Stuff!!!!!
[17:18]  Sally:  / \
[17:18]  Antonius: Do you follow Raven?
[17:19]  Antonius: Basically you can transition to a state, perform some work, and then automatically transition out of the state with a transition set to the Completion Event.
[17:19]  Raven: ok so you go into the state you want to exit
[17:19]  Raven: create a final state inside
[17:19]  Antonius: Yes and transition to it on the same event that brought you into that state.
[17:19]  Raven: Hmm
[17:20]  Raven: Well, let's say you have a state
[17:20]  Antonius: Go ahead.
[17:22]  Raven: I guess my question is how do you trigger the final state within the code?
[17:22]  Raven: If you have a state with a state inside and a final state, then how do you trigger the final state from the inner state?
[17:22]  Raven: Wow, that confused myself to read lol!
[17:23]  Antonius: It has to transition to the Final State on the same event that brought you into the containing state.
[17:23]  Raven: in normal LSL (moab aside), I can call 'state otherstate' to get there, which would trigger the state exit
[17:24]  Raven: Hmm, so you have a transition from one state to another
[17:24]  Antonius: Check out the screen. (http://screencast.com/t/MuWWTFgwR)
[17:25]  Raven: Okay now, assuming the same as there, but
[17:26]  Antonius: Re: LSL: Yes that's true. But in MOAB you cannot arbitrarily jump from state to state without an event and transition sequence.
[17:26]  Raven: You need the Init stage to also process other events.
[17:26]  Raven: Ah
[17:26]  Raven: That's the issue I believe, that I am having - eventless transitions
[17:27]  Raven: Within the state_entry event
[17:27]  Raven: Can you transition to a final state?
[17:27]  Antonius: Bascially in MOAB, you have an event, and then you use Choice Points to decide which other state to go to.
[17:27]  Antonius: It forces you to visually specify how you get to the next state.
[17:28]  Sally: ((sorry guys goign to be afk for a bit ))
[17:28]  Antonius: Ok Sally.
[17:28]  Antonius: Yes you can transition to a Final State as shown in the model on the screen.
[17:28]  Raven: So I need to use the state to generate a completion event, at which time i can use the choice to split to other states?
[17:28]  Antonius: Yes, you can do that Raven.
[17:28]  Raven: In the shown example there, the state_entry of Init is still processed?
[17:28]  Antonius: Yes.
[17:29]  Raven: It would immediately fire the completion event, wouldn't it?
[17:29]  Antonius: Yes, when you enter the Final State and if there is a transition leaving the enclosing state set to the Completion event.
[17:30]  Antonius: Of course you should examine whether this Final State trick is really necessary.
[17:30]  Raven: Yes, there are some concepts that take a fresh pair of eyes for me to realize other ways of doing it! :)
[17:31]  Antonius: For sure.
[17:31]  Antonius: On any event, you can still of course go directly to a Choice Point and then decide which state to forward to.
[17:33]  Antonius: Did you see the Sneak Peek of v1.0.3 features Raven?
[17:33]  Raven: Oh, I may have missed that - Heck, I'm still on v1.0.1 =x
[17:34]  Antonius: Oh! Please upgrade to v1.0.2 asap.
[17:36]  Antonius: Much better release.
[17:36]  Raven: hehe
[17:37]  Raven: I must have missed it somehow
[17:37]  Antonius: Here's the blog entry on v1.0.2: http://bit.ly/qdaCnI
[17:38]  Antonius: You got to use the LSL Action Wizard with MOAB. It's a great feature.
[17:39]  Antonius: Since then I've also put out a few videos which you should definately take a look at. Not that I'm a great video star LOL, but you'll find them useful.
[17:39]  Antonius: Intro Video: http://bit.ly/ihCqyf
[17:39]  Antonius: 3-Part MOAB Basics: http://bit.ly/mRRhq2
[17:40]  Raven: mk, upgraded lol
[17:41]  Raven: I'll definitely look at those videos as well.
[17:42]  Antonius: Here's the link on what's been developed so far for v1.0.3: http://bit.ly/pkEp7D
[17:42]  Antonius: Hey Pilot!
[17:43]  Pilot: G'day all... Bit late today :)
[17:43]  Pilot: How's it hangin' Ant?
[17:43]  Antonius: np. I don't know if you've met Raven before.
[17:43]  Raven: hello
[17:43]  Antonius: Sally's here too, but afk.
[17:43]  Raven: i wouldn't remember if so. i'm terrible with names haha
[17:43]  Pilot: G'day Raven :) good to meet ya mate.
[17:44]  Antonius: Raven, did you have any other questions?
[17:45]  Raven: I think that's it. I will definitely play with this Final state business lol
[17:46]  Antonius: That's great Raven. & please update to v1.0.2
[17:46]  Raven: ah yes, i have already lol
[17:46]  Raven: went and did that immediately
[17:47]  Antonius: Excellent. I think you'll like the new features there.
[17:47]  Antonius: How's it going Pilot?
[17:47]  Pilot: Not too bad thanks mate, been really busy over the last week, had grandkids etc, so been occupied outside SL.
[17:48]  Raven: When you have a state and you have things in the state entry but no outgoing events, it will never fire completion event unless you have the internal final state linked to the incoming event nodes, right?
[17:49]  Pilot: lol... Raven seems to have a handle on MOAB!
[17:49]  Antonius: That's right Raven.
[17:48]  Pilot: How's things in Canada?
[17:49]  Antonius: Ok. Economy is better than most others, but Europe & the U.S. may drag us down.
[17:49]  Raven: ah ha, got it now :)
[17:50]  Antonius: Raven asked the same question on Final States & Completion events that Sally asked last week.
[17:50]  Sally: back
[17:50]  Sally: Hi Pilot °?°
[17:50]  Pilot: wb Sally
[17:50]  Raven: I was thinking orignally that it would just 'end' since there was nothing else to do except the completion event.
[17:50]  Raven: That makes more sense now, to just add that final state.
[17:51]  Antonius: Yes, it can really help in some situations, but I wouldn't use it all the time.
[17:51]  Antonius: Normally an external event should be the trigger that moves you from state to state.
[17:52]  Raven: In the script I have been working on for ages it has nothing in the default state but an if statement lol
[17:52]  Sally: yes but sometimes its a second level dependency ... like sometimes I might want a state change after the date changes .... but I check for the date change using a timer
[17:53]  Antonius: Without a Completion Event on the outside, a transition to a Final State will indeed be final (& the script though running, will no longer respond to any events).
[17:53]  Raven: Mhm
[17:53]  Pilot McBride faints....
[17:54]  Antonius: Sally, wouldn't the trigger for the state change then be the timer event?
[17:54]  Sally: yes in a sense .. but the real trigger is the calendar flipping over a page
[17:54]  Sally: we are using the timer to check for that
[17:55]  Raven: My default state is just "if config_complete state running else state config" lol
[17:55]  Antonius: Raven: You mean in regular LSL.
[17:55]  Raven: i guess i can make running state the default state. hmm
[17:56]  Raven: yes, in plain lsl
[17:56]  Antonius: Sally: what causes the calendar to flip over?
[17:56]  Sally: the clock passing midnight in the current time zone
[17:57]  Sally: I mean I get it ... but the timer even is kind of secondary
[17:58]  Sally: so its a guard condition on a timer event
[17:59]  Raven: You could get the current timestamp, determine how long until midnight, set a timer. on timer fire, set timer to 24h at that point
[17:59]  Raven: Not sure if there is a better way, though?
[17:59]  Antonius: So you need to get out of the current state when that happens.
[18:00]  Sally: right like it could be .. "your lease has just run out" .. go to the "available for rent" state
[18:01]  Antonius: Do you go to the Final State (& exit via completion event) just to avoid extra transitions within the state (exiting via an Exit Point)?
[18:02]  Pilot: Ah... why would you include a final state? Wouldn't the calendar script need to loop?
[18:02]  Pilot: Or have I missed something?
[18:03]  Sally: I need to exit "Rented" state and go to "Available " state
[18:03]  Sally: I can do that with a timer though
[18:03]  Sally: and check the date to see if the time is up
[18:04]  Antonius: You can have a timer transition on the Rented state that goes to a Choice Point that has two transitions: one going to the Available state, and the other one returning to the Rented state.
[18:04]  Sally: yep got it thanks Ant °?°
[18:04]  Antonius: Also take a look at using a Group Transition for the timer, especially if there's other states other than Rented that need to go to Available.
[18:04]  Raven: oh!
[18:04]  Raven: I was working on a script
[18:04]  Raven: I have a pure LSL version in-world that works (one that I made), but when putting it in MOAB, it doesn't 'fit' lol. I literally cannot put it into one script - I'm not sure how long a script can be offhand 65k characters or something?
[18:04]  Raven: i tinkered with the optimized lsl in moab, made sure there were no debugging options turned on and even deleted all comments from the moab-generated code lol
[18:05]  Sally: thats a good point Raven about script size
[18:06]  Sally: but it raises the question of inter script communication and how you model that?
[18:06]  Raven: it's not about memory while it's running, i just mean that you can't paste it into the script window, as it is too long lol
[18:07]  Antonius: Raven: Try it again with v1.0.2. How many lines in the original LSL program?
[18:07]  Raven: hmm let me check
[18:08]  Pilot: I ran into that as well Raven. Currently getting rid of all excess characters from the script.
[18:09]  Sally: Ant, I know that we can have multiple script models open at the same time, but is there any way of "connecting" them so that they can communicate ?
[18:09]  Antonius: Sally: I have a longer term feature planned for that. Take a look at: http://www.miceonabeam.com/feature-requests/post/1233279
[18:09]  Sally: oh that would be awesome
[18:10]  Antonius: There's no automatic way yet... You have to manually use the link messages as you do now.
[18:10]  Sally: nods
[18:10]  Antonius: It will be quite exciting when I get to do that script communication feature.
[18:10]  Raven: 743 lines, 25,560 characters in the original lsl
[18:11]  Raven: I haven't compiled it in 1.0.2 though.
[18:11]  Antonius: Raven: How many states in the MOAB model?
[18:12]  Antonius: There were some code optimizations put into v1.0.2 depending on which features you used.
[18:13]  Raven: looks like 6 states, 6 choices. some hefty-sized functions though lol
[18:13]  Antonius: User comments are also automatically ignored when you use the optimized version of code gen.
[18:14]  Antonius: The v1.0.2 version will definately be smaller.
[18:14]  Sally: really? what happens to comments if you don't use optimised?
[18:14]  Antonius: They're copied to the generated code.
[18:15]  Raven: hmm, it does look like it is fitting with 1.0.2
[18:15]  Raven: lol
[18:15]  Raven: in 1.0.1... whew. it was chopping off a lot of it
[18:15]  Sally: oh ok .. but they're not turned into llSays or something
[18:15]  Antonius: No.
[18:15]  Raven: 255-lines 9018 characters in "the big function" in this one lol
[18:15]  Antonius: There you go.
[18:16]  Antonius: Raven: The function is then identical to the basic LSL version then.
[18:16]  Raven: Yes, 90% of it is, yeah.
[18:17]  Raven: I had to make changes with moab
[18:17]  Antonius: As time goes on I hope to add additional optimizations.
[18:17]  Raven: where i had state soandso in the middle of the function, i had to move to using flags in moab
[18:17]  Raven: after the function returns, i use a choice to check the flag, and go to each state depending on the value
[18:19]  Antonius: Raven: A direct translation of the logic might lead to a more complex MOAB than is necessary. After initially getting it to work, you might want to sit back and look at the overall functionality and see how you might structure it in MOAB if you were starting from scratch. You may get some insights from that.
[18:19]  Raven: mhm
[18:20]  Raven: Definitely am hoping to get that optimized for moab use. I don't want to end up with 100 states in moab, though :p
[18:20]  Raven: Keeping it as low as possible is the trick lol
[18:20]  Antonius: You shouldn't need to!
[18:20]  Raven: I tell ya, I'm so tempted to have states inside states inside states inside states :p
[18:21]  Raven: lol
[18:21]  Pilot: Been there, done that, works well Raven...
[18:21]  Raven: I don't, but
[18:21]  Antonius: Composite States when used judiciously, can reduce the overall number of states.
[18:21]  Raven: It's still a learning experience, but I'm getting there :)
[18:21]  Antonius: For sure!
[18:22]  Antonius: & Composite States facilitate the using of Group Transitions which can really simplify a design.
[18:23]  Antonius: In the future I'll have more videos with advice on these key features.
[18:24]  Sally: you know what I would find really useful ... is an example of how to use the component library components and incorporate those into my own script ...
[18:24]  Sally: ie .. a worked example
[18:25]  Pilot: That door project of mine makes use of states etc rather than typing code. Yeah, the component library, wow...
[18:25]  Sally: I think components are the secret sauce .. but knowing how to "wire them in" is the key
[18:25]  Antonius: Yes. There really needs to be more work on these components. They're mostly examples for now.
[18:25]  Pilot: I think the trick is to make your own components Sally.
[18:26]  Raven: Okay guys, I have an SL land issue I need to take care of real fast. Thank you for all the help and tips - I learned some new things :)
[18:26]  Raven: Y'all have fun!
[18:26]  Antonius: Yes Pilot. I was hoping that people might develop components for the community too!
[18:26]  Sally: cheers Raven
[18:26]  Pilot: See you again Raven :)
[18:26]  Antonius: np Raven. Great to see you again.
[18:26]  Pilot: You too mate.
[18:27]  Antonius: Anything else guys?
[18:28]  Pilot: We can't code like you Ant, that's the problem. I did the menu state in my door script as a component to move across the other operational scripts.
[18:28]  Sally: I have some ideas for some components ...
[18:28]  Sally: like a sub menu type one
[18:28]  Pilot: Yeah.
[18:28]  Antonius: There is a menu component that you can link together.
[18:30]  Pilot: Yeah, the menu component, lol... Couldn't make head nor tail of it Ant, sorry mate, so I built my own, lol.
[18:30]  Pilot: In simple but probably execssive code, lol.
[18:30]  Antonius: Oops. It does work Pilot. You have to use the Configuration Wizard to set it up.
[18:31]  Pilot: Oh.... lol.
[18:31]  Pilot: Wizards make spooky things happen, lol.
[18:32]  Antonius: Trust the Wizard!
[18:32]  Sally: if you had multiple showmenus linked to themselves ... would they create new listeners each time?
[18:33]  Pilot: They do... Each time a call for a menu is made a new random channel is defined. (I think.)
[18:33]  Antonius: They each would have their own listener that they disable when not used if I remember correctly.
[18:34]  Sally: so once they go back out .. they close down the listener i guess that's not so bad
[18:34]  Pilot McBride gets lost easy... lol
[18:35]  Sally: in LSL code .. I would have a single listener for the whole sub menu structure
[18:35]  Antonius: Really rough, but something like what's on the screen. (http://screencast.com/t/iT9zq8ESMSVS)
[18:36]  Pilot: lmao.. here we go again....
[18:36]  Antonius: Sally: Yes, there is always a tradeoff if you want something modular.
[18:37]  Antonius: It has to standalone on it's own.
[18:37]  Sally: yes I see that
[18:37]  Sally: now what you have on screen there ....
[18:37]  Sally: could you turn that whole thing into a component?
[18:37]  Sally: a Menu with 2 submenus component?
[18:38]  Pilot: Yep (imo)
[18:38]  Antonius: Yes. Aggregate it into a Composite State, and set the appropriate State Variables to be configurable.
[18:39]  Sally: can you do that at the script level?
[18:39]  Antonius: Not sure I understand what you mean?
[18:39]  Sally: well like on the screen .. there .. you are showing a script with 3 states
[18:40]  Sally: how do you envelope the 3 states inside another one from where you are there
[18:41]  Antonius: You use the Aggregate Component menu item.
[18:42]  Antonius: See screen. (http://screencast.com/t/PthS1nxO8)
[18:42]  Sally: oh crap on a craker !!! ... I missed that option .. brilliant !! °?°
[18:42]  Pilot: Holy smoke!
[18:42]  Antonius: You can also decompose a Composite State too.
[18:42]  Pilot: Stone the crows!! Didn't I miss the boat!
[18:43]  Antonius: But BE CAREFUL. It will discard any transitions connected to the states outside the selection.
[18:43]  Sally: right so you need to re-wire a few bits
[18:43]  Antonius: So in the example, the Initial Transition from the Initial Point will be discarded.
[18:44]  Antonius: Yes. So if you need to save a transition to the group, redirect it temporarily to a temporary state, and then reconnect it to the new Composite (aggregate) State.
[18:45]  Sally: this one tip was worth the price of admission today :0
[18:46]  Antonius: LOL! & considering it's free, the bar fortunately is not set too high for me! :-)
[18:46]  Pilot McBride steered clear of that aggregate business... lol. Will have to check it out!
[18:46]  Sally: awwww
[18:47]  Sally: really appreciate the level of support that your time here represents
[18:47]  Sally: MOAB will take off im sure ! °?°
[18:47]  Antonius: It's my pleasure. But RL awaits.
[18:47]  Pilot: Here's a simple one Ant: What is the difference between opening a state and going inside a state?
[18:47]  Sally: kk thanks again see you next time
[18:48]  Pilot: See on the dropdown menu on the board, you can open the state but not go inside it :)
[18:48]  Antonius: Pilot: "Open State" opens a separate State Editor while "Go Inside State" will replace the existing contents of the current State Editor with the state of interest.
[18:48]  Pilot: Oops, multiple states & transitions, selected....
[18:49]  Sally: so Go inside is like drilling down
[18:49]  Pilot: Silly me, lol.
[18:49]  Pilot: Steered clear of that too... lol.
[18:49]  Pilot: Yep. I've just been using "Go inside"....
[18:49]  Antonius: Except for the top level state, which must stay open if the model is to stay opened.
[18:49]  Antonius: Yes. & in v1.0.3. you can just double-click on the background to go up a state.
[18:49]  Antonius: So when you set your double-click option to Go Inside, you can just use double-clicking to go up and down the state hierarchy.
[18:49]  Antonius: Of course in v1.0,3 there's also the State Explorer which is really convenient too.
[18:49]  Sally: kk see you guys gotta fly °?°
[18:49]  Sally: have a good week
[18:49]  Pilot: See ya later Sally :) thanks mate :)
[18:50]  Antonius: Bye Pilot. See you next week.
[18:51]  Pilot: Righto mate. Stay good & healthy mate.
[18:51]  Pilot: :)
[18:51]  Antonius: You too friend.
[18:51]  Pilot: Thanks for all :)
[18:51]  Antonius: Bye.

Tuesday
Aug092011

MUG Meeting August 15th, 2011

[17:14]  Pilot: G'day Ant.. Slept in mate, sorry... lol
[17:14]  Antonius: Well G'day Pilot!
[17:14]  Pilot: What's happenin'?
[17:14]  Antonius: I was just trying to get up on the board a script model I did for Jorie.
[17:14]  Antonius: Can you see it?
[17:15]  Antonius: Here's the link if not: http://screencast.com/t/0OAJqXnFn
[17:15]  Pilot: Idle, wait for permission, Stance, Attack....?
[17:15]  Antonius: It's a weapon script.
[17:16]  Pilot: Can't see it mate, lol.
[17:16]  Pilot: hahaha
[17:16]  Pilot: Looks good.
[17:16]  Antonius: draw sword
[17:16]  Antonius: On Guard!
[17:16]  Pilot: Geeze louize mate, I was only kiddin'
[17:16]  Pilot: lol
[17:17]  Antonius: Seems to work.
[17:17]  Antonius: You can configure the model to add in your own animations.
[17:17]  Pilot: But ya don't need to ask permissions each time you draw it.
[17:18]  Antonius: That was the happy animation. Watch when I miss.
[17:18]  Antonius: I sigh....
[17:18]  Antonius: Then when I put it away.....
[17:18]  Antonius: sheath sword
[17:18]  Antonius: Peace bro.
[17:18]  Pilot: lol...
[17:19]  Pilot: Bringin' a knife to a gun fight, lmao.
[17:19]  Antonius: Yes you're right about the permission test. But sometimes it can be simpler to simply do the test all the time.
[17:22]  Antonius: I'm waiting for Jorie to give me feedback on the weapon model and then I'll give it away.
[17:23]  Antonius: It shows how you can use the configuration feature.
[17:23]  Pilot: I'll have to look at weapons soon, but over the last week it has been mayhem here.
[17:24]  Antonius: Take a look at the configuration: http://screencast.com/t/MwDfRABz
[17:25]  Pilot whispers: You got a weapons "configurator" (lol
[17:28]  Pilot: Now, this configuator,lol.. looks good!
[17:29]  Antonius: You can configure the State Variables of any state in this way.
[17:31]  Pilot: This tool is in 1.0.3?
[17:31]  Antonius: It's already in v1.0.2.
[17:31]  Antonius: Do you understand how to setup configuration for a State Variable?
[17:32]  Antonius: It's that Configure checkbox column in the state variables editor
[17:32]  Pilot: Oh.... Oops, no mate, I just setup varibles anywhere I can mate... lol... Here comes my lack of knowledge again, lol.
[17:33]  Pilot: Geeze louize...
[17:33]  Antonius: There's a section on it in the docs for full details: https://miceonabeam.fogbugz.com/default.asp?W112
[17:34]  Pilot: Holy smoke!!!
[17:34]  Antonius: It's great when you have a state that you want to re-use, you can set up one or more of it's state variables to be configurable.
[17:34]  Pilot: lol.. Never used that!
[17:35]  Antonius: Then when you import or copy the state, you open up the Configuration Wizard to set values for the variables using a form!
[17:36]  Pilot: Didn't know what it was about! As I was finding my way, the check box didn't come up, lol.
[17:38]  Sally: hey everyone °?°
[17:38]  Pilot: G'day Sally
[17:38]  Sally: Gday Mate!!
[17:38]  Antonius: Hello Sally & welcome!
[17:39]  Antonius: I was just talking with Pilot about the State configuration feature in MiceOnABeam.
[17:39]  Pilot: Stone the crows... Ant, lookout! Another Aussie, lol.
[17:39]  Antonius: It's a bit more advanced topic.
[17:39]  Sally: lol yep
[17:39]  Antonius: Are you from downunder Sally?
[17:39]  Sally: yep
[17:39]  Sally: live in the usa tho
[17:39]  Pilot: Can't hide it, lol.
[17:40]  Pilot: Poor bugger...
[17:40]  Pilot: Could be worse...
[17:40]  Pilot: Could be in Canada, lmao....
[17:40]  Sally: yeah .. could live in New Zealand
[17:40]  Pilot: (Antonius is Canadian), lol.
[17:40]  Antonius: Be careful. Beavers can bite.
[17:41]  Pilot: New Zealand??? holy smoke!! Wouldn't wish that onya mate!
[17:41]  Sally: oh you should be enjoying your summmer ... all two weeks of it !
[17:41]  Pilot: lol.
[17:41]  Antonius: We've had lots of hottish weather here this summer 25-35C, but Pilot tells me that's cold.
[17:42]  Sally: yeha we'd still be wearing our coats at that temperature
[17:42]  Pilot: Bloody freezin' mate. We have had those temps all weekend and it is winter here.
[17:42]  Antonius: ha-ha. Well, we're hardier that way.
[17:43]  Pilot: I'm inland and a few hundred miles NW of Sydney Sal, fyi :)
[17:43]  Antonius: So Sally, have you used MiceOnABeam much?
[17:43]  Sally: I have started playing with it
[17:43]  Sally: I think the learning curve may pay off
[17:43]  Sally: so what's the news .. when is 1.03 coming out?
[17:43]  Antonius: Still working on it & a fair bit to do yet. I'm planning for a Fall release.
[17:44]  Antonius: Did you see the Sneak Peek of v1.0.3 features?
[17:44]  Sally: yeah they seem good
[17:44]  Sally: are you building the check for undeclared variables in that one?
[17:45]  Pilot is only a noob scriptor and have done some experimenting. It's really good.
[17:45]  Antonius: I'm just working on the "undeclared identifiers" feature now. The error reporting system is done and should make life much easier too for users.
[17:45]  Sally: oh cool
[17:46]  Antonius: Probably going to put in a Join Point feature too so diagrams can be cleaner.
[17:46]  Pilot: You makin' fun of me again Ant??
[17:46]  Antonius: No Pilot, feedback from customers such as yourself is critical for me.
[17:46]  Pilot: :) (just havin' a dig again Ant, lol)
[17:46]  Sally: you know with it being a visual environment my general feedback is .. I need more visual feedback ... like .. show me if there are state variables and functions defiend
[17:47]  Sally: like look at that model there on the weapon ...
[17:47]  Antonius: Yes Sally I agree. So you're saying you would like another icon showing on the state to tell you that it has variables/functions defined for it.
[17:47]  Sally: there is no way to tell if there is a state variable or function defined at the top layer
[17:48]  Sally: unless i go in and check
[17:48]  Antonius: Good point.
[17:48]  Antonius: I will look into that.
[17:49]  Antonius: Sally, do you set the options to display Entry/Exit & Guards & transition actions?
[17:49]  Sally: yep I do
[17:49]  Antonius: I often start out with that, but end up turning it off due to excessive clutter.
[17:50]  Antonius: That would be my only concern. Would you prefer an icon, or info on the state like the entry/exit action indication?
[17:50]  Sally: icon .. the info is truncated anyway
[17:51]  Antonius: Ok. Should not be difficult to do.
[17:51]  Sally: Join point would be good do you mean on simple states?
[17:52]  Antonius: The Join point will be like an Entry Point, but can be created as a component inside a state's decomposition.
[17:53]  Antonius: So then you can have multiple transition into it, with a single transition out. Also like a Choice Point, except there will be no guard conditions on the transitions leaving the Join Point.
[17:53]  Sally: that would be good ... help clean up a lot
[17:54]  Pilot's head spins....
[17:54]  Antonius: Yes. I'm also hoping to add in the ability to have multiple bends in a transition.
[17:52]  Sally: im still on the learning curve ... the biggest issue I struggle with is the scope or lifetime of variables
[17:54]  Antonius: So to your question on variables...
[17:55]  Sally: if I have a listen event that transitions me to another state ... the listen params .. are only available to the transition action but not to the target state right?
[17:55]  Antonius: The scope of a state variable is confined to the state in which it is defined and all states contained within that state.
[17:55]  Sally: right
[17:55]  Sally: and event params?
[17:56]  Antonius: Event parms are directly accessible in the transition with the event (& new in v1.0.3 in transitions leaving a Choice Point where there is a single event transition into it).
[17:57]  Antonius: However, the event parms are also automatically saved and you can access them via the built-in EVENT_XXX functions.
[17:57]  Sally: the last event? ... is accessible in the target state?
[17:57]  Antonius: So if you transition to another state, you can still access the event arguments there using these functions.
[17:58]  Sally: awesome
[17:58]  Antonius: Yes, the most recent event is always saved.
[17:58]  Sally: that makes things easier
[17:58]  Antonius: Yes. See the following section in the docs.: https://miceonabeam.fogbugz.com/default.asp?W33
[17:59]  Sally: thanks
[17:59]  Sally: sorry for hogging the floor Pilot °?°
[17:59]  Antonius: No problem Sally. We all learn from each other!
[17:59]  Sally: the docs mention Internal Self Transitions ... how do you make those?
[18:00]  Sally: wherein, the entry and exit actions aren't fired
[18:00]  Pilot: Sal, I'm listenin' mate, don't you worry, lol.
[18:00]  Antonius: Internal self transitions are like regular self transitions except they bypass executing the exit & entry code of the state.
[18:01]  Sally: right so what's the trick for making one °?°
[18:01]  Antonius: You create them using the Transition Tool and clicking and dragging from the border of the State Editor for the state in question.
[18:01]  Antonius: ... to another point on the border.
[18:02]  Sally: ok so they still appear as arc on the outside of the state?
[18:03]  Antonius: No, they appear only on the inside. Take a look at this: http://screencast.com/t/G2fuf3pV2OWa
[18:03]  Pilot whispers: (Crikey! Don't ask me....)
[18:04]  Sally: for the life of me i can't get that to work do you have to drag inside the state?
[18:05]  Antonius: Select the transition tool....click and hold the mouse button on a spot on the INSIDE border....drag to another spot on the inside border.... and then release the mouse button.
[18:06]  Sally: oh damn !!
[18:06]  Sally: I just realized what I was doing wrong ...
[18:06]  Antonius: ??
[18:07]  Sally: I have been trying to do them on states without going inside the state
[18:07]  Antonius: Ahhh. Yes that would be it. :-)
[18:07]  Sally: like on that model there ... for state waitfor permisison
[18:07]  Sally: I would try to do the drag right there
[18:08]  Sally: but I need to Open the state first
[18:08]  Antonius: Yes since the self transition is inside the state.
[18:08]  Sally: doh !! °?°
[18:08]  Sally: hehehe
[18:09]  Antonius: It's not unreasonable what you thought to do. There is a UML feature which allows you to see what's inside the state from outside the state!
[18:09]  Antonius: It shows a miniature graphic of the decomposition from the outside.
[18:09]  Sally: right !
[18:09]  Pilot faints.......
[18:10]  Antonius: Poor Pilot.... LOL
[18:10]  Sally: giggles
[18:10]  Antonius: That's a great fainting aninmation Pilot!
[18:10]  Sally: you need some vegemite mate :0
[18:10]  Pilot: Ah man..... lmao... Got for it you 2!!! Good stuff!
[18:10]  Pilot: I need you 2 to keep talkin' lmao...
[18:11]  Antonius: When my talking gets too complex, Pilot routinely faints. :-)
[18:11]  Sally: hehehe
[18:11]  Pilot: :)
[18:11]  Pilot: Well, you know how stressed we Aussies can get, lol....
[18:12]  Antonius: I think our view here in Canada is how relaxed you all are. Paul Hogan, etc.
[18:12]  Pilot: :)
[18:12]  Sally: whats a good way of exiting a state without an LSL event taking place?
[18:12]  Sally: or .. does that mean that that state is probably useless?
[18:13]  Antonius: You're getting advanced there Sally. I think Pilot will faint for this one too.
[18:13]  Pilot: Keep talkin' you pair, lol.
[18:13]  Antonius: There are certain cases where you might want to do that.
[18:14]  Pilot: An undefined event will take you out of a state won't it?
[18:14]  Antonius: Normally an event takes you out of the state. But you can use a transition to a Final State to automatically generate an internal Completion Event for the state.
[18:15]  Antonius: Then you can exit the state by having a transition set to the Completion Event.
[18:15]  Sally: ahhhhh
[18:16]  Sally: but you would need at least one internal state inside that state right?
[18:16]  Antonius: So that means that you can transition out of a state that internally transitions (during the same event) to a Final State.
[18:16]  Antonius: It can be the Final State component.
[18:16]  Sally: so you could just draw a final state icon inside a state
[18:17]  Antonius: yes. and transition to it either from the Initial Point or via an Entry Point.
[18:17]  Sally: then exit via a completion event
[18:17]  Antonius: Correct.
[18:17]  Sally: cool
[18:18]  Antonius: Of course never have your completion transition redirected back to the state, as then you could end up with an infinite loop!
[18:19]  Sally: right
[18:20]  Antonius: I think I described this usage somewhere in the docs- just can't think exactly where right now.
[18:20]  Sally: any thought to making nested actions? °?°
[18:20]  Antonius: Nested actions?
[18:21]  Sally: like for instance .. I might want to give inventory to detected ... but then for the Item I might want to get the name of the first notecard in the inventory (which could also be an action)
[18:21]  Pilot whispers: Just passed a photo of my project to Sally...
[18:22]  Antonius: Hmmm. Might be complex to do.
[18:22]  Sally: So you could have an Action GiveSomething with an Action Get NotecardName assigned to the item
[18:23]  Antonius: What you can do of course is do the first action and assign the value to a variable and then when configuring the second action, enter in the variable name containing the value from the first action.
[18:23]  Sally: thats a good way to do it
[18:23]  Sally: that project looks pretty complicated Pilot °?°
[18:24]  Antonius: Of course you can always define your own action too that combines these two things.
[18:24]  Sally: right .. and just add a parameter for the type of thing you are looking for, for instance
[18:25]  Pilot: Minimum of typed code Sal, all done visually :)
[18:25]  Sally: cool bananas °?°
[18:25]  Antonius: yes. Defining your own action is only for experienced LSL users I would say though.
[18:26]  Antonius: Well Aussies, I think that's it for today.
[18:26]  Sally: oh I know what I was going to ask .. when I look at the generated code ... how do you come up with the state numners? °?°
[18:26]  Sally: I know I shouldn't be trying to figure out whats happening in the code °?°
[18:26]  Antonius: The code generator assigns them.
[18:27]  Sally: hard to break ol habits
[18:27]  Antonius: No you certainly can read the generated code (don't use the optimized version for this though).
[18:28]  Antonius: I actually designed it that way so people could read it.
[18:28]  Antonius: This section in the docs covers the layout of the generated code: https://miceonabeam.fogbugz.com/default.asp?W94
[18:28]  Sally: book marks it ;)
[18:28]  Sally: well thanks Ant, that was really helpful, and this tool has so much potential °?°
[18:28]  Pilot faints.....
[18:28]  Sally: next time I'll ask you about inter-prim communication :P
[18:29]  Antonius: np! Very nice meeting you Sally!
[18:29]  Sally: thank you °?°
[18:29]  Antonius: Pilot you can now form an Aussies MOAB group!
[18:29]  Pilot: That door project I gave you Sal will operate as many doors within listening range ... Thanks Sal :)
[18:29]  Sally: and Im looking forward to the HTTP IN component .. lol
[18:30]  Antonius: I'll take note.
[18:30]  Antonius: Do you play rugby Sally?
[18:30]  Sally: not me °?°
[18:30]  Pilot: Geeze Ant!!
[18:30]  Sally: windsurfer
[18:30]  Antonius: I thought I'd ask for Pilot. :-)
[18:30]  Sally: hahaha
[18:31]  Sally: ok im a geek girl
[18:31]  Pilot: Fair dinkum mate.. Ya don't ask Aussie girls that!
[18:31]  Sally: btu i dont play ruggers
[18:31]  Pilot: Maaaaaate....
[18:31]  Pilot: lmao
[18:31]  Pilot: That's like askin' them their age, lmao.
[18:31]  Pilot: They belt ya for that!
[18:31]  Pilot: lmao.
[18:31]  Antonius: I'm learning proper Aussie etiquette. Forgive me. My niece plays rugby.
[18:31]  Pilot: hahaha
[18:32]  Sally: or the Aussie comeback for asking that would be .. no Do you play Netball?
[18:33]  Antonius: I'll have to look that one up.
[18:33]  Pilot: Ah well... lmao.. Been great.... Great to meet you Sally....
[18:33]  Sally: great to me you two too
[18:33]  Sally: catch ya's later °?°
[18:33]  Antonius: Bye guys! Have a great week. If you have any questions, don't hesitate to ask if I'm online or send them to support@miceonabeam.com
[18:33]  Pilot: No worries mate.....
[18:34]  Sally: cheers
[18:34]  Pilot: Hooroo you two :)