Close
Showing results 1 to 10 of 13

Hybrid View

  1. #1

    Default

    So.. I have a few thoughts myself, and I would be interested in people's reaction.

    Firstly, here is a typical log entry that I see myself. However, I do not have more than one PC, so I am already missing a complete example of the current message. Could someone else post a good example for multiple PCs?
    Single PC version looks like:
    Code:
    Command executed
        From this computer.
        Broadcast W Down to target windows on this PC.
        Window handle 0x200602.
        Window handle 0x160024.
        Window handle 0x1B060C.
        Window handle 0x170596.
    
    Message sent
        Broadcast W Down to World of Warcraft.
    Using a common language
    "Input", "Message" and "Action" were the key words Freddie used. Assuming we stick with these three names, then I suggest we use them in the log.

    Then, when problem solving or explaining on forums etc, we have a common language and understanding which is also communicated in the log.

    The current log uses words such as "Command" and "Broadcast". Unless we change what word we use for the 3 basic things Mojo does, I suggest we avoid these words and use Input, Message and Action instead, wherever possible.


    Sequence of events
    If a Message is sent before an Action, then I suggest the log should log them in that order.

    The example above shows a Message being sent to itself after an Action is sent to various windows. This would confuse me - I would not realise that the Message had actually been sent first.


    Cause and effect
    To take this further: why did something happen? Was it because a key was pressed/lifted? Or because a Message was received from another Mojo? Or because of some other piece of code yet to be implemented? I suggest this info also be included, or am I missing something and it already is in a different information panel?


    Lost in a sea of info - Autorepeat
    I can see a major use for the log being checking new code to get it working. In WoW, I will be holding down movement keys and modifiers, causing Autorepeats. At present, these Autorepeats fill up the log very quickly with the same key-down, and therefore I will find it very hard to find the info I need within the log.

    I suggest that Autorepeats be restricted to one entry between other events. If possible, a count of Autorepeats could be shown perhaps? So as it repeated, instead of seeing the log fill up, you might see just a counter counting up?

    Finally, to display this info in a way which does not make people (eg Blizzard) think there is any illegal automation going on because, well, there isn't.


    Actions on other PCs
    This is ground I cannot cover myself, since I only use one PC. But my guesses are that Mojo will only show events that happen on "This PC".

    Other people will have to chip in when I make up poorly imagined suggestions for how to display this which are not useful or can be improved.

    My first idea was that Messages are sent between "This Mojo" and other Mojos. So in a similar vein to "This PC" perhaps use "This Mojo" etc.


    Broadcasting vs Passing through?
    Freddie, I didn't fully understand your explanation about why I see Actions sent to 4 windows when there are actually 5. The bit I need clarifying is - referring to the picture - how does it work? Case 1 or 2? Or something else?


    For my example below, I will assume case 2, but I assume that Mojo would be able to block keys from being sent to the active window as well (eg for a 'Round Robin' button which is sent to each window in turn, one window per press.)

    If this is not an "Action", then how about extending the common language and calling it something else. "Pass Through"?


    First hash at an example
    So basically all that was working up to an example. Well, what do you think of something like this? Hopefully I'm not way off.

    On "This PC":
    Code:
    Input: W Down, received from: keyboard on this PC
    Message sent to: this Mojo
        Pass through:  W Down. Window name: World of Warcraft, handle: 0x200123.
        Action: W Down. Window name: World of Warcraft, handle: 0x200602.
        Action: W Down. Window name: World of Warcraft, handle: 0x160024.
    Message sent to: other Mojo (2ndPCNameHere)
        Action: W Down. Window name: World of Warcraft, handle: 0x1B060C.
        Action: W Down. Window name: World of Warcraft, handle: 0x170596.
    On 2nd PC:
    Code:
    Input: Message, received from: Mojo on 1stPCNameHere
        Action: W Down. Window name: World of Warcraft, handle: 0x1B060C.
        Action: W Down. Window name: World of Warcraft, handle: 0x170596.
    On 1st PC for subsequent autorepeats: re-write the following lines (ie delete so that only one block remains to represent all 999 autorepeats, assuming nothing else was in-between):
    Code:
    Input: W Down (Autorepeat), received from: keyboard on this PC, 999 times.
    Message sent to: this Mojo, 999 times
        Pass through:  W Down. Window name: World of Warcraft, handle: 0x200123.
        Action: W Down. Window name: World of Warcraft, handle: 0x200602.
        Action: W Down. Window name: World of Warcraft, handle: 0x160024.
    Message sent to: other Mojo (2ndPCNameHere), 999 times
        Action: W Down. Window name: World of Warcraft, handle: 0x1B060C.
        Action: W Down. Window name: World of Warcraft, handle: 0x170596.
    I included window names, which makes it more cluttered. Lose them if it's a problem..?
    Last edited by Flekkie : 12-01-2009 at 10:55 PM
    Coming out of nowhere drivin' like rain, Stormbringer dance on the thunder again
    Dark cloud gathering breaking the day, no point running cause its coming your way

    Rainbow shaker on a stallion twister, bareback rider on the eye of the sky
    Stormbringer coming down meaning to stay, thunder and lightning heading your way

    Ride the rainbow crack the sky, Stormbringer coming time to die

    ~ Deep Purple, Stormbringer

  2. #2

    Default

    You do QA or technical writing for a living? This is pretty impressive (sorry, I need to read it thoroughly, but wanted to comment on your post).
    Team Riff Raff
    Scoundrel
    Nasty
    Delinquent
    Juvenile

    Four Orcs with an Attitude!

  3. #3

    Default

    I'd better make some of my other ideas explicit.

    Actions on a per window basis

    So with some systems (eg FTL), each window receives a different input. This made me think of showing the action for each window, instead of the action as a header paragraph and the affected windows below.

    But the flipside is it can seem more cluttered, I suppose.


    Clutter
    Here's another idea, looking at reducing clutter. Hopefully Freddie can stop me suggesting impossible stuff, and others stop me suggesting crappy stuff.
    Code:
    Input: W Down, from: keyboard on this PC
    Message sent to: this Mojo
        Pass through:  W Down to 0x200123 (World of Warcraft).
        Action: W Down to 0x200602 (World of Warcraft).
        Action: W Down to 0x160024 (World of Warcraft).
    Message sent to: other Mojo (2ndPCNameHere)
        Action: W Down to 0x1B060C (World of Warcraft).
        Action: W Down to 0x170596 (World of Warcraft).
    I also thought of colouration, but I assume colour formatting would be harder to implement, and prevent logging to text file / posting on forums etc.

    Or how about using spacing a bit?
    Code:
    Input: W Down, from: keyboard on this PC
    Message sent to: this Mojo
        Pass through:  W Down to 0x200123 (World of Warcraft).
        Action:        W Down to 0x200602 (World of Warcraft).
        Action:        W Down to 0x160024 (World of Warcraft).
    Message sent to: other Mojo (2ndPCNameHere)
        Action:        W Down to 0x1B060C (World of Warcraft).
        Action:        W Down to 0x170596 (World of Warcraft).


    Quote Originally Posted by rocnroll View Post
    You do QA or technical writing for a living?
    I'm an accountant for my sins! I don't enjoy it, so I'm trying other stuff too, until I hit on something I enjoy. The last year I was installing and customising accounts software for a greetings cards company. I guess I was project leader, but the team was just me, and the software consultant! Designed some pretty funky spreadsheets and Crystal reports at the end of that one, and taught myself most of it as I went, some SQL basics as well.

    Quote Originally Posted by rocnroll View Post
    This is pretty impressive (sorry, I need to read it thoroughly, but wanted to comment on your post).
    Thanks. I was worried the wall of text would kill it at birth TBH.

    Dammit I've picked up Freddie's habbit of quoting everything.
    Last edited by Flekkie : 12-02-2009 at 08:14 AM
    Coming out of nowhere drivin' like rain, Stormbringer dance on the thunder again
    Dark cloud gathering breaking the day, no point running cause its coming your way

    Rainbow shaker on a stallion twister, bareback rider on the eye of the sky
    Stormbringer coming down meaning to stay, thunder and lightning heading your way

    Ride the rainbow crack the sky, Stormbringer coming time to die

    ~ Deep Purple, Stormbringer

  4. #4

    Default

    Thanks, Flekkie for all the thought you're putting into this!

    I'd like to stay quiet for a while and see what other people think. But I should probably say the following.

    The program has two windows, "Your actions" and "Mojo's Actions." They show Mojo's input and Mojo's output. If the word "action" is used differently in one of the windows, or if input is shown in the second window, then the windows themselves have to change.
    Last edited by Freddie : 12-02-2009 at 11:49 AM
    �Author of HotkeyNet and Mojo

  5. #5

    Default

    Quote Originally Posted by Flekkie View Post
    Freddie, I didn't fully understand your explanation about why I see Actions sent to 4 windows when there are actually 5. The bit I need clarifying is - referring to the picture - how does it work? Case 1 or 2? Or something else?
    The second picture is the correct one.

    Some of the arrows in that picture indicate actions by the operating system. Some of them indicate actions by Mojo.

    Everything you're talking about here is appearing in a window called "Mojo's actions on this computer."

    The only things shown in that window are Mojo's actions.

    Mojo doesn't do anything to the foreground window.

    The operating system, not Mojo, is sending keystrokes to the foreground window, just like it does when Mojo isn't running.

    When I made the window, I thought of it like the speedometer in your car. The speedometer is an instrument that helps people control the car. This window is an instrument that helps people control Mojo. The speedometer shows your car's speed, not other car's speeds. This screen shows Mojo's actions, not the operating system's actions

    Yes, Mojo can block keystrokes from reaching the foreground window, if it wants to But right now it's not blocking them.

    In HKN1 and HKN2, which are hotkey programs, not broadcast programs, blocking the trigger (the physical key event) from reaching the foreground window is the default for a hotkey, so whenever they allow the trigger of a hotkey to reach the foreground window, that's treated as an action.

    "Passthrough" is treated as an action in those programs because it's not the default. Since it's not the default, the user has to actually write "Passthrough" in a script, and anything you write in a script seems like an action, since you're writing an instruction for Mojo.

    But here, where the program is acting like a broadcaster, where there are no triggers, the default is to do nothing to the foreground window, so passing through doesn't seem like an action to me.

    Now that you've got me thinking about this, I think probably "passthrough" should be treated identically in broadcast and hotkey modes, since Mojo will do both. If it works one way with broadcasting and a different way with hotkeys, people will get confused.

    One thing I've learned during HotkeyNet's two-year beta is that many people get terribly confused by this even with hotkeys by themselves. I've gotten many dozens of angry emails and bug reports accusing HotkeyNet of "disabling" their keyboards because (for example) they defined the X key as a hotkey and then found that pressing X no longer sends the character X to their foreground window. Well of course it doesn't, they just defined it as a hotkey! They just redefined the action performed by that key! In HKN1's script language, if they want X to continue to perform its normal functions in addition to triggering a hotkey, they have to write "passthrough" in the hotkey definition. But broadcasting is a different kind of thing.

    I should add that "PassThrough" is one of the most misunderstood words in HKN1' s script language. I've noticed that even some smart programmers who use HKN1 find it incomprehensible.

    Given the confusion, maybe it's a good idea to change the way this is done.

    .
    Last edited by Freddie : 12-02-2009 at 12:11 PM
    �Author of HotkeyNet and Mojo

  6. #6

    Default

    I deleted this because I really do want to stay quiet for a while.
    Last edited by Freddie : 12-02-2009 at 11:49 AM
    �Author of HotkeyNet and Mojo

  7. #7

    Default

    I just added some more stuff to my answer about 4 vs 5 windows.
    �Author of HotkeyNet and Mojo

Posting Rules

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •