Register forum user name Search FAQ

Gammon Forum

Notice: Any messages purporting to come from this site telling you that your password has expired, or that you need to verify your details, confirm your email, resolve issues, making threats, or asking for money, are spam. We do not email users with any such messages. If you have lost your password you can obtain a new one by using the password reset link.

Due to spam on this forum, all posts now need moderator approval.

 Entire forum ➜ MUDs ➜ General ➜ Suggested protocol for server to client "out of band" messages

Suggested protocol for server to client "out of band" messages

It is now over 60 days since the last post. This thread is closed.     Refresh page


Pages: 1  2  3  4 5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  

Posted by Worstje   Netherlands  (899 posts)  Bio
Date Reply #45 on Wed 03 Feb 2010 11:12 PM (UTC)
Message
Well, wouldn't you know, I did terminate it. Hahaha. This amuses me to no end, having my own code speak against my opinion in this topic.

I must have had the same logic as you do and implemented it without really giving it as much thought as I did in this discussion. Or maybe I added it during debugging for the hell of it. I really don't recall anymore, I wrote it many months ago. But still, quite entertaining indeed.
Top

Posted by Worstje   Netherlands  (899 posts)  Bio
Date Reply #46 on Wed 03 Feb 2010 11:18 PM (UTC)

Amended on Wed 03 Feb 2010 11:20 PM (UTC) by Worstje

Message
Nick Gammon said:

Worstje said:

Are you handling anything other than the IAC WILL/DO/WONT/DONT and IAC SB in the standard state? If you don't, I'll completely agree with you that keeping it is probably useless, since if you don't have such codes supported in MUSHclient after this many years, they probably aren't being used anymore at all.


No, but the state machine is more complex than that because it also handles colour sequences (eg. ESC something), and MXP sequences (eg. <bold>).

Anyway, things have worked so far, I agree, so it is probably a bit academic. Interesting that there is no really well defined way of handling it.


Hrm, you have all those in the same loop? I suppose I can see the point of doing escape sequences in the same level, seeing how it is also a byte-level state machine, but I'd expect the MXP stuff to be quite seperate. Either a level deeper, or abstracted away. I don't recall how it works precisely anymore (sub-negotiation, pure tags in the plain output stream, I don't recall), but either way, I doubt MXP has any place in the core processing loop, but ought to be refactored out of it as much as possible. Or am I missing or misunderstanding something here?

Simplicity is key, and as you probably saw in my code, I want the code to be as self-documenting as possible. MCCP handling, MXP handling, IAC EOR/GA, they are all handled by the same few functions away from the inner loop.

Edit: Btw, a bug in your forum. Look at the post I am quoting. It has the date, but it is lacking the time completely.
Top

Posted by Twisol   USA  (2,257 posts)  Bio
Date Reply #47 on Wed 03 Feb 2010 11:31 PM (UTC)
Message
Worstje said:

Edit: Btw, a bug in your forum. Look at the post I am quoting. It has the date, but it is lacking the time completely.


I see the time fine. O_o

'Soludra' on Achaea

Blog: http://jonathan.com/
GitHub: http://github.com/Twisol
Top

Posted by Worstje   Netherlands  (899 posts)  Bio
Date Reply #48 on Wed 03 Feb 2010 11:34 PM (UTC)
Message
Ok, here's a link with a screenshot: http://qs.merseine.nu/images/gammon_post_lacks_the_time.png
Top

Posted by Nick Gammon   Australia  (23,165 posts)  Bio   Forum Administrator
Date Reply #49 on Wed 03 Feb 2010 11:38 PM (UTC)
Message
Worstje said:

Hrm, you have all those in the same loop? I suppose I can see the point of doing escape sequences in the same level, seeing how it is also a byte-level state machine, but I'd expect the MXP stuff to be quite seperate.


Yes I am. Initially the loop was just the colour codes, and then I think the telnet stuff got added, and eventually MXP. Remember MXP was initially described as "a way of marking up the text" in a similar way to colour codes, and it was supposed to be done on the fly, like colour codes.

Worstje said:

Edit: Btw, a bug in your forum. Look at the post I am quoting. It has the date, but it is lacking the time completely.


Seems OK to me, is it close to midnight with your time correction? It might be zero and suppressed by the time-printing function.

- Nick Gammon

www.gammon.com.au, www.mushclient.com
Top

Posted by Twisol   USA  (2,257 posts)  Bio
Date Reply #50 on Wed 03 Feb 2010 11:39 PM (UTC)
Message
Here's what I see. It's undeniably a bug though! http://img69.imageshack.us/img69/8449/gammontime.jpg

It shows 3:00, so Nick might have an excellent theory with that time correction thing.

'Soludra' on Achaea

Blog: http://jonathan.com/
GitHub: http://github.com/Twisol
Top

Posted by Worstje   Netherlands  (899 posts)  Bio
Date Reply #51 on Wed 03 Feb 2010 11:42 PM (UTC)

Amended on Wed 03 Feb 2010 11:44 PM (UTC) by Worstje

Message
Yup it must be the time correction thing. It is midnight according to that indeed. Silly that I didn't notice. :)

Back on topic though: If you are indeed rewriting the internals a bit to go along with the changed times, I look forward to it. It isn't really a bottleneck, but any optimizations are welcome for those running MUSHclient on older computers. So many features get added, so likely those people can use every bit of optimization possible.
Top

Posted by Nick Gammon   Australia  (23,165 posts)  Bio   Forum Administrator
Date Reply #52 on Wed 03 Feb 2010 11:49 PM (UTC)
Message
On file the time is: 2010-02-03 23:00:16

Your time correction is 1, so that would make it 24:00:16, shown to the nearest minute.

Ah, lol, I thought it was a MySQL bug where it wouldn't show midnight correctly, but guess what I found in the forum code?


   // get rid of postings at exactly midnight
    if (substr ($formatted_date, -8) == "12:00 AM")
      $formatted_date = substr ($formatted_date, 0,
                                strlen ($formatted_date) - 8);


Now I wonder why I did that?

- Nick Gammon

www.gammon.com.au, www.mushclient.com
Top

Posted by Twisol   USA  (2,257 posts)  Bio
Date Reply #53 on Wed 03 Feb 2010 11:51 PM (UTC)
Message
D'oh! *laughs*

'Soludra' on Achaea

Blog: http://jonathan.com/
GitHub: http://github.com/Twisol
Top

Posted by Nick Gammon   Australia  (23,165 posts)  Bio   Forum Administrator
Date Reply #54 on Wed 03 Feb 2010 11:51 PM (UTC)
Message
Worstje said:

If you are indeed rewriting the internals a bit to go along with the changed times, I look forward to it. It isn't really a bottleneck, but any optimizations are welcome for those running MUSHclient on older computers. So many features get added, so likely those people can use every bit of optimization possible.


It won't really be optimized, it will just be ... better. More flexible. More extensible. Easier to work with.

- Nick Gammon

www.gammon.com.au, www.mushclient.com
Top

Posted by Nick Gammon   Australia  (23,165 posts)  Bio   Forum Administrator
Date Reply #55 on Wed 03 Feb 2010 11:52 PM (UTC)
Message
Twisol said:

D'oh! *laughs*


That wasn't a bug - it was By Design.

Can't quite think why it was by design but there you are.

- Nick Gammon

www.gammon.com.au, www.mushclient.com
Top

Posted by Worstje   Netherlands  (899 posts)  Bio
Date Reply #56 on Wed 03 Feb 2010 11:55 PM (UTC)
Message
That's awesome. Simply awesome. Were you using version control for the forum since the start? Maybe you can backtrack it to a date and look in the forum for bug reports etc around that date.
Top

Posted by Twisol   USA  (2,257 posts)  Bio
Date Reply #57 on Wed 03 Feb 2010 11:59 PM (UTC)

Amended on Thu 04 Feb 2010 12:00 AM (UTC) by Twisol

Message
Nick Gammon said:
It won't really be optimized, it will just be ... better. More flexible. More extensible. Easier to work with.


On a similar train of thought, is there any chance we would take advantage of the wiki every GitHub project has, and use it as a sort of to-do list of things that need to be done, are in progress by someone, or would just be great to have? I'd love to contribute to something that's actually wanted.

(Also, any chance we could get the project that builds the resources DLL (i.e. EN.DLL) uplaoded to GitHub too?)

'Soludra' on Achaea

Blog: http://jonathan.com/
GitHub: http://github.com/Twisol
Top

Posted by Nick Gammon   Australia  (23,165 posts)  Bio   Forum Administrator
Date Reply #58 on Thu 04 Feb 2010 12:01 AM (UTC)
Message
David Haley said:

I'll fess up straight away that I don't really see the advantage of this over, say, ZMP. I don't know ATCP but apparently it does something kinda similar. But really, this kind of protocol exists, and ZMP at least is quite simple, and it's easier to define semantics in ZMP using the package/command mechanism. (ZMP is also very easy to parse.)

...

Were there specific issues with other protocols that you wanted to address?


Twisol said:

I have to agree with David here, I don't see the benefits of this over ZMP in particular. If you wanted to use Lua as part of the protocol, you could probably define a subpackage in ZMP for it quite easily.


I think you guys are answering your own questions here:

David Haley said:

ZMP makes no provision whatsoever for data types, as far as I can remember. This means that you must define your own interpretation for what it means to have subfields, etc.


Worstje said:

I don't feel ZMP is the perfect solution, since from what I see it has considerable flaws.

First of all, it keeps mentioning commands, and I don't see anywhere about plain notifications that do not require a response.
….
Second, it has limitations on the content-bytes, no NUL bytes and so forth.
...
Either way, my point is... ZMP has flaws. The new LNL (Lasher-Nick-Lua) has flaws. XML has flaws. JSON has flaws, as does Python, VBScript, as well as bencoding.


Let's assume every system has some flaws, and at this stage I am trying to reduce any in my proposed system (e.g. message limits, handling of subnegotiation), and offer up simplicity and ease of use as an argument for it.

- Nick Gammon

www.gammon.com.au, www.mushclient.com
Top

Posted by Nick Gammon   Australia  (23,165 posts)  Bio   Forum Administrator
Date Reply #59 on Thu 04 Feb 2010 12:02 AM (UTC)
Message
Worstje said:

That's awesome. Simply awesome. Were you using version control for the forum since the start? Maybe you can backtrack it to a date and look in the forum for bug reports etc around that date.


I can only guess that when I uploaded the old posts years ago, some didn't have times on them, so they all appeared to be posted at midnight, which looked funny.

- Nick Gammon

www.gammon.com.au, www.mushclient.com
Top

The dates and times for posts above are shown in Universal Co-ordinated Time (UTC).

To show them in your local time you can join the forum, and then set the 'time correction' field in your profile to the number of hours difference between your location and UTC time.


928,612 views.

This is page 4, subject is 23 pages long:  [Previous page]  1  2  3  4 5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  [Next page]

It is now over 60 days since the last post. This thread is closed.     Refresh page

Go to topic:           Search the forum


[Go to top] top

Information and images on this site are licensed under the Creative Commons Attribution 3.0 Australia License unless stated otherwise.