Page 1 of 2

Social network handles

Posted: Fri Aug 08, 2014 5:10 am
by domob
Since I'm getting requests sometimes, I think it would be a good idea to implement social networking handles in NameID (and to specify them for id/ in general). I see two possibilities:

1) Just use values like "twitter" or "github" on the top level. This seems simplest and is, AFAIK, what OneName does.

2) Since these are not "generic terms" but instead names of particular companies, another idea is to introduce a new "social" value which holds an object with unspecified keys that can link to arbitrary social network handles. Like this:

Code: Select all

{
  "social":
    {
      "twitter": "my-name",
      "github": "domob1812",
      "sourceforge": "domob"
    }
}
The actually allowed names would not absolutely need to be formally specified and can be "in flux".

What do you think? My opinion is that 2) is a "nice" solution, although it may be overspecifying things. Also, one could argue that fields like "bitcoin"/"namecoin", "otr"/"gpg" or "xmpp"/"email" would have to be put under similar schemes for crypto-addresses, cryptographic key fingerprints and communication protocols, respectively. However, I believe it is justified to draw a distinction here between (semi-)official standards/protocols and company names.

.

Posted: Fri Aug 08, 2014 8:15 am
by signup292
.

Re: Social network handles

Posted: Fri Aug 08, 2014 10:24 am
by mightbemike
I like #2 because it gives more control to the user in the sense that if yoyoyo network catches on fire tomorrow, the cool kids can put this into their id/ and it will be perfectly valid (if I understood correctly)

"social":
{
"instagram": "domobian",
"yoyoyo": "misterma"
}

Re: Social network handles

Posted: Fri Aug 08, 2014 8:54 pm
by biolizard89
domob wrote:Since I'm getting requests sometimes, I think it would be a good idea to implement social networking handles in NameID (and to specify them for id/ in general). I see two possibilities:

1) Just use values like "twitter" or "github" on the top level. This seems simplest and is, AFAIK, what OneName does.

2) Since these are not "generic terms" but instead names of particular companies, another idea is to introduce a new "social" value which holds an object with unspecified keys that can link to arbitrary social network handles. Like this:

Code: Select all

{
  "social":
    {
      "twitter": "my-name",
      "github": "domob1812",
      "sourceforge": "domob"
    }
}
The actually allowed names would not absolutely need to be formally specified and can be "in flux".

What do you think? My opinion is that 2) is a "nice" solution, although it may be overspecifying things. Also, one could argue that fields like "bitcoin"/"namecoin", "otr"/"gpg" or "xmpp"/"email" would have to be put under similar schemes for crypto-addresses, cryptographic key fingerprints and communication protocols, respectively. However, I believe it is justified to draw a distinction here between (semi-)official standards/protocols and company names.
I can see (2) being useful in some cases, but I think it can be improved by specifying a URL for the service names. This way, there is a unique, deterministic way to identify the website that corresponds to a service username. (Your spec would encounter issues if 2 social networks have the same name.) I also would suggest not using the field "social", but something that also is inclusive of forums... maybe "web-username"?

Something like this:

Code: Select all

{
  "social":
    {
      "https://www.twitter.com": "my-name",
      "https://www.github.com": "domob1812",
      "https://www.sourceforge.net": "domob"
    }
}

Re: Social network handles

Posted: Fri Aug 08, 2014 9:40 pm
by tosh0
is there any tool to create/format your nameid?
for what i see onename have this tool, but don't alow you to login to any site,
and nameid allows you to login to openid but lacks a way for newbies to create an id...

Re: Social network handles

Posted: Fri Aug 08, 2014 9:45 pm
by biolizard89
tosh0 wrote:is there any tool to create/format your nameid?
for what i see onename have this tool, but don't alow you to login to any site,
and nameid allows you to login to openid but lacks a way for newbies to create an id...
Namecoin-Qt has a GUI for creating an id/ name, although right now only "real name", "e-mail address", and "Bitmessage address" are supported. (Starting a new thread might be good if you have further questions about that.) :)

Re: Social network handles

Posted: Sat Aug 09, 2014 7:13 am
by domob
biolizard89 wrote:I can see (2) being useful in some cases, but I think it can be improved by specifying a URL for the service names. This way, there is a unique, deterministic way to identify the website that corresponds to a service username. (Your spec would encounter issues if 2 social networks have the same name.) I also would suggest not using the field "social", but something that also is inclusive of forums... maybe "web-username"?

Something like this:

Code: Select all

{
  "social":
    {
      "https://www.twitter.com": "my-name",
      "https://www.github.com": "domob1812",
      "https://www.sourceforge.net": "domob"
    }
}
That's an interesting idea - somewhat like XML namespaces or Java package names. However, in the end, it also boils down to finding a "unique" identifier for the network/service. What if I use "sf.net", someone "http://sf.net/" and the third one "https://www.sourceforge.net/" - with and without training slash, HTTP vs HTTPS and so on? I think this approach may lead to lots of trouble ... but maybe we can find a good rule to apply. (E. g., only the second-level domain name of the site, like "twitter.com" - but again, the site may have .at, .de, .us, .net, .com ... and it may not always be perfectly clear which one is the "main" TLD.) That's why I suggested to use simple names. If two sites/services/networks have the same "name", one would have to modify it to make it unambiguous - but I don't see this as a big risk. Do you have an example?

Regarding the name: "social" was only a suggestion. Other ideas could be "network", "service" or "webservice". Nothing really strikes me as "perfect" for now ... also "web-username" is quite descriptive, but sounds very cumbersome.

Re: Social network handles

Posted: Sat Aug 09, 2014 9:58 pm
by biolizard89
domob wrote:
biolizard89 wrote:I can see (2) being useful in some cases, but I think it can be improved by specifying a URL for the service names. This way, there is a unique, deterministic way to identify the website that corresponds to a service username. (Your spec would encounter issues if 2 social networks have the same name.) I also would suggest not using the field "social", but something that also is inclusive of forums... maybe "web-username"?

Something like this:

Code: Select all

{
  "social":
    {
      "https://www.twitter.com": "my-name",
      "https://www.github.com": "domob1812",
      "https://www.sourceforge.net": "domob"
    }
}
That's an interesting idea - somewhat like XML namespaces or Java package names. However, in the end, it also boils down to finding a "unique" identifier for the network/service. What if I use "sf.net", someone "http://sf.net/" and the third one "https://www.sourceforge.net/" - with and without training slash, HTTP vs HTTPS and so on? I think this approach may lead to lots of trouble ... but maybe we can find a good rule to apply. (E. g., only the second-level domain name of the site, like "twitter.com" - but again, the site may have .at, .de, .us, .net, .com ... and it may not always be perfectly clear which one is the "main" TLD.) That's why I suggested to use simple names. If two sites/services/networks have the same "name", one would have to modify it to make it unambiguous - but I don't see this as a big risk. Do you have an example?

Regarding the name: "social" was only a suggestion. Other ideas could be "network", "service" or "webservice". Nothing really strikes me as "perfect" for now ... also "web-username" is quite descriptive, but sounds very cumbersome.
That's a good point. I guess one other question is, what are the consequences of a collision? If there are 2 websites calling themselves Twitter, they would have to both convince users to use that field. Would this yield unexpected results? What if I own a small website that's not well-known, and an attacker sets up another website with the same name (with a different subject), could the attacker do something to my site, or users of my site, by getting people to place colliding data in their id/ names?

I think a good solution would be to have the website pick an "official" domain name for their entry if it's not obvious... so SourceForge would pick either sourceforge.net or sf.net, and users would use that. I agree that sourceforge.net is better than https://www.sourceforge.net... so suggest that websites use their 2nd level domain unless there's a reason not to.

Thoughts?

Re: Social network handles

Posted: Sun Aug 10, 2014 7:45 am
by domob
My preference is to use an "unspecific" name, like just "twitter" or "facebook" or whatever as long as it makes sense to most users. I don't really think there are dangers of collisions - at least, I can't imagine one at the moment. But I'm also fine with asking for a kind of second-level domain name or so. We should list common values on some semi-official wiki page anyway, to at least give some guidance. Then people can easily find out whether they are supposed to use "sourceforge", "sf", "sourceforge.net" or "sf.net".

Re: Social network handles

Posted: Tue Aug 12, 2014 10:43 pm
by sudoquai
+1 for Modell 2