I’ve seen discourse forums where ppl can login with their social media accounts. We should look at the listo all of the possibilities and decide which ones we want (for example, we definetly want GH me thinks?)
I’d like it better if we called the forum ‘Go Forum’ rather than ‘Go Discourse’, or even something else.
Most of these require a client or API key of some sort, so we’d need to figure out who is in charge of getting those made or if there’s some collective accounts owned by the community we could use.
I vote for at least Google, Twitter, and GitHub logins, but supporting more wouldn’t be much harder.
Also, changed the name to “Go Forum” for now. (Right now the logo image is hosted on imgur, but we can upload them to this server in Assets for the site design when the logo and name are decided…)
The issue with twitter is it doesn’t expose an email at all when logging in through it, though perhaps discourse fixes that by asking for the email directly ? Would have to try
Yes, we can disable local logins and allow OAuth registrations only. Would that negatively affect users in some countries that block some sites like Google, etc.? Also, I’m not always a fan of tying my accounts together like that. Not sure how others feel though. (e.g. if one site is compromised then my account on all those connected sites is too.)
One thing we could do is manually approve new users; the mailing list does something like this.
EDIT: I just saw that there is the option to approve the first n posts from a new user; right now it’s 0 but maybe if we changed it to 1 it would prevent most of the spam.
Using the “code” button (indents 4 spaces; no language specified):
func kdtree(data ByDimension, depth int) *Node {
k := len(data.Data[0]) // assumes all points have same dimension
data.Axis = depth % k
sort.Sort(data)
median := len(data.Data) / 2
left := ByDimension{Data: data.Data[:median]}
right := ByDimension{Data: data.Data[median+1:]}
return &Node{
Location: data.Data[median],
Left: kdtree(left, depth+1),
Right: kdtree(right, depth+1),
}
}
Using Github-flavored markdown (three backticks) with language specified:
func main() {
signal.Notify(interrupt)
for {
s := <-interrupt
switch s {
case os.Kill:
// Ctrl+\
fmt.Println("Kill signal! Quitting in a moment") // testing a really long line to see how line wrapping is configured
time.Sleep(time.Second)
os.Exit(0)
default:
fmt.Println(s)
}
}
}
FYI, last I checked, the Twitter login was useless… it just basically prefills your email address. You can’t actually authenticate via twitter… this is a restriction of twitter’s implementation of authentication. They actually don’t want you to be able to “log in with twitter” for some reason.