Client Information And You: My Information
December 12, 2006 2 Comments
It has undergone a few changes through the years, it has been through several heated discussions and a few have wondered about it day and night. No, I am not talking about Britney Spears’s belly. I am talking about NMDC’s $MyINFO.
The information you may find in $MyINFO is (the client’s) nick, description, connection type (and some more info on it), e-mail and share size.
This command is sent during login and will be completely re-broadcast if any of these parts change. As many may notice at this point is that this is quite annoying, stupid and pointless. If don’t get it, then consider the scenario where your share size change (constantly) while the other types of information remain intact. This will cause your client to send information about itself that people already know. Why should they want to see your nick or description again if only your share size changed? This is one of the short comings of NMDC’s $MyINFO.
One of the major changes made to $MyINFO (that some consider) is the “hijacking” of the description. This is the addition of the tag (that originally came from DC++, do to pressure from hub owners, requiring DC++ to notify how many hubs it was in [since the original NMDC client was only capable of connecting to one hub simultaneously]). Of course, this was more a client and hub implementation standard, rather than a protocol standard (there’s no definition of any of the NMDC commands, remember?).
Some decided, at some point, that instead of hijacking any other part of the description (or $MyINFO), that it would be best to provide (and get) client information through extensions. ClientID for “global identifier”, UserIp for getting users’ IP and so on.
What is great about $MyINFO, $ClientID and all of the other NMDC client informational commands? It is that they are relatively short and concise. They provide a nice deal for client developers, since they don’t require that you implement them all at once. They don’t rely on each other, so you can send one but don’t need to send the other.
Unfortunately, their problems are equally important to know. Like I said about $MyINFO, it (and other NMDC commands) has a problem with re-broadcasting of already established information. Also, none of the current commands are (easily?) extensible. That means that if you want to make a small change, you need to (1) change it in your client (duh!), (2) change it in today’s hub softs and, hopefully, (3) notify others by posting on eg the DC++ wiki.
This was everything from this edition of Client Information And You. Next up is Client Information And You: The Information.