the msn module isnt half as good as a possible custom made client.
I take personal offense to that since I wrote the bulk of the latest Perl MSN module, version 2.0. I took the old 1.X code, made it work, reorganized, reshaped, fleshed it out, debugged it, made it consistent and clean. And from the original writers to Eric, Matt and Siebe and all the sets of eyes who have seen the many revisions in the last 6 months, it's pretty solid code. On top of that, Matt is now working on reorganzing the P2P code and adding complete filesharing.
Now let's see your custom made client code. Show me why MSN 2.0 isn't half as good as your custom code. MSN and my other modules are all out there in the open for you to criticize and take from, to mangle and improve, but where is your code? Let's do a comparison, I dare you.
Quote:
lol... what a n00b website....
...depend entirely on this website for code.
You kind of bounce around on this subject, first saying this website is n00b, then suggesting that people depend on this website for code.
If you have a personal issue with someone on this site, keep it private instead of putting down this site and all the hard work we have put into developing good modules.
maybe some people on this forum DO have some intelligence, that is the first post i have seen on here that has been sensible.
and for the record, the msn.pm doesnt actually allow you to organise your client as you want it. when i had my client i wanted it to ping every minute to test for server response times, that would be so much more fiddley with the module. i also wanted mirrors, which unless it was pre-designed in the module, would be rather pathetically difficult. i can't think of ways to improve io::socket, or LWP modules, but i can certainly think of better ways to run something as flexible as an msn connection, with its billions of protocol items.
why did it take so many people to make the pm? it is hardly the world's largest, most difficult, creation now, is it?
and for the record, the msn.pm doesnt actually allow you to organise your client as you want it. when i had my client i wanted it to ping every minute to test for server response times, that would be so much more fiddley with the module. i also wanted mirrors, which unless it was pre-designed in the module, would be rather pathetically difficult. i can't think of ways to improve io::socket, or LWP modules, but i can certainly think of better ways to run something as flexible as an msn connection, with its billions of protocol items.
MSN.pm is an interface, it is not a client. What can't you organize in your client because of MSN.pm?
MSN already pings the server correctly. I can't remember (and don't feel like looking), but I believe there's a way to get the ping response time.
Mirrors are actually "pathetically" easy with MSN.pm. You should search these forums for discussions about them and the mirror modules I have written - of course, since you don't use modules, you'll have to write them yourself, but it's very easy - give it a try.
Quote:
why did it take so many people to make the pm? it is hardly the world's largest, most difficult, creation now, is it?
You need to read my post more carefully. I did the bulk of the work, Eric contributed a good amount of code and ideas, mattaustin (code and ideas) and Siebe (docs) helped with P2P. That's actually a very small number of developers for an open source project. You should read up on open source to get a better understanding of how it works. But as open source, it was viewed by many other developers (hundreds here on bot-depot), errors were reported and suggestions made.
Pinging the server every minute (60 seconds) would be entirely useless and actually quite the wrong thing to do. If you had bothered to research the MSN Protocol (http://www.hypothetic.org/docs/msn/) you would know that once you send a PNG the server responds with a QNG - this QNG has an interger after it and that interger tells the client the time it has left in which to send another PNG (or ANY other comand). Now, this QNG is *ALWAYS* less than or equal to 50 (seconds) - Which means that the server expects a response in LESS than 50 seconds, and not only this it TELLS you when it needs one. Which all translates to - Sending a response every 60 seconds is too long to wait, it is also the wrong thing to do since the server tells you when it wants a response. And the safest thing to do is take the servers timeframe for a response and take 5-10 seconds off it incase something hangs the code for a bit that way your always replying less than the specified time window.
Perhaps MSN 2 isnt the most 'user friendly' inteface - perhaps it is.. this is a personal thing, depending on whats needed of it. More so - its written for free - which means you dont have to pay for it and if that isnt good enough for you, then you can write your own client. I for one know how long it takes and how much debugging is involved since im the original author of Net::MSN (soon to be re-released in full OO).
If you had bothered to research the MSN Protocol (http://www.hypothetic.org/docs/msn/) you would know that once you send a PNG the server responds with a QNG
I don't know if this was directed towards me, but yes I've "bothered" to read over Hypothetic many many times and I *do* know about the correct way to handle PNG/QNG. I remember implementing a hack initially, planning to get around to the correct implementation later, but kind of forgot about it because it works fine - we have dozens and dozens of bots running on it. Anyway, it is something we'll get matt to fix in the next version.
On a side note: The integer QNG gives you is the minimum amount of time to wait before sending your next ping. You aren't forced into sending another ping after the time expires, you do however have to wait at least the speficied number of seconds though.
Allthough, these PNG are completely optional. I've had bots online for over 10 days without sending a single PNG, but of course it's hard to track when you actually loose the connection and according to the TCP stack the socket stays open (which happened weird enough, when my cable modem crashed a while back).
So, i too have implemented occasional PNG pings in my ScriptersMOO and acting upon their reply to either keep connected quietly or close the socket & reconnect. It makes for a stabile bot and high availability. Cut the MSN servers some slack though, sometimes it takes up to 5 seconds before i receive my QNG reply (lag @ msn? or just the idle socket?).
Allthough i have written the MSN gateway on my MOO from the ground up, i highly support re-usable code, certainly if it's being developed for several years and has had input from a big community. I'm sure only a small part of the bot-depot visitors/botcoders are able to talk raw MSN protocol, so offering them a tool that allows them to handle such things without having to know all those cryptic MSN commands can only increase productivity and inspiration...
Minimum time you say? http://www.hypothetic.org/docs/msn/research/msnp9.php gave the impression that you should reply before that - but I guess looking again you could read it either way. In any case, im sure a figure AROUND that time will work - But id have to say that not having a PNG->QNG system at all will cause the bot to die - I myself used to get an unexplained 'Broken Pipe' error and the program just shut down untill I added this.. oh well I may switch my code to just using the QNG time rather than subtracting 10 seconds
True, some home router devices and even professional ones close idle tcp connections after a while. If you are one of those lucky ones that can disable/doesn't have it, you can get by without... allthough not recommended.