Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Show HN - usernique.com: Generate usernames and check availability (usernique.com)
31 points by trevorah on March 10, 2013 | hide | past | favorite | 42 comments


What are you using to determine whether *.io domains are "free" vs "taken"? It seems to be incorrect.

  http://www.usernique.com/io/x
  -- "free"

  http://www.nic.io/cgi-bin/whois?query=x.io
  -- The domain is unavailable for use.


Looks like there's some bugs here. Just claimed 'esi' was available on Twitter and GitHub, but it's not.


Hmm. Judging from the way the server.js is written, I'd expect he's being rate-limited, and the server returns free whenever the HTTP call doesn't return 200.

Edit: Just to be sure, I threw in a breakpoint on line 18 of generate.js, and set name to my username (cbhl) -- and got a false "free" result for both Twitter and GitHub.

The OP might need to be getting OAuth tokens and using the GitHub/Twitter APIs.


Any tips to sort this out? How are things being rate limited?

edit: just realised you meant that twitter/github etc are rate limiting my requests. Bummer.


Just hit the profile page URL and get the HTTP staus code. If https://twitter.com/ksdhbfslbflsdbs returns 404, it's not available.

Not quit the same (a username might be reserved internally), but either way, nobody else can use the name.


Yep, thats pretty much how it works at the moment (see https://github.com/trevorah/usernique/blob/master/server.js). The issue is that the server is sending out quite a few of these hits to twitter, and twitter is smart enough to start reject requests when things get a bit too much.


I'm not a node guy, but I found this module for Whois checks - https://npmjs.org/package/whois-available It uses the IANA Whois service, an admittedly cursory look doesn't turn up anything re: rate limits, but you could just do a get request on the root url and only check Whois if it 404s to be safe. http://www.iana.org/whois


Whois wouldn't help here. The problem is that so many requests are going to twitter.com/[username] that they start sending false 404s (or some other error, not 200) because of rate limiting.


I meant to fix the false positives on the domain name availability, or is that issue related somehow?


If you can figure out how to do the request on the client side, that would mitigate the issue.

Otherwise, I'd say you're probably out of luck. (You could try doing the query over IPv6, but eventually they'll just block the entire subnet, so I don't know if it's worth the trouble.)


Here's another one: says "ece" is available. http://d.pr/i/fiRF


just checking the return code on a GET request. src is on github if you're curious. You're right though, looks like the domain lookups need a bit of work.


You should do a "whois" lookup for the domain. The return code for a 'get' request on the domain has no bearing on its availability -- many parked domains do not even have DNS configured, let alone HTTP.


I'd be wary of doing automated whois lookups, which might be considered abusive / against terms of service depending on which server you hit.


Good point. This doesnt sound like a quick fix.


Very true. This requires a little more work than my current hack. I'll see if there is a whois package for node...


The quickest way I've found is to do a DNS lookup, and if that fails, hit the WHOIS.


Idea is awesome. I like how the usernames are generated in the first place. It doesn't work, however. I've been looking for simple things that I can hack up to help me learn ruby, so I made a little Ruby version using this idea. "UNameGen"

https://github.com/scrapcode/ruby-unamegen


I love, it has some great user name suggestions. It would be great if it would check some more sites.


Apparently etune.com is available... cooler than any of my domains, and randomly generated. Nice.


Nope. etune.com is taken. Some of the "available" results being returned are not correct.


I noticed this too. It said "ely.com" is available, which was strange because most (all?) 3-character .com's are registered. And yeah, ely.com is registered.


Sweet! I love this name: etabocagi

Sounds like an indigenous tribe or something


It seems like every username starts with vowel.


Yeah, it's very basic. If you check out the src, you can see that it is vowel, consonant, vowel... Basic, but it kinda works.


Any feedback would be really cool...


You should add more services! I wrote http://handlehelp.com which checks for username availability across multiple sites. It's open source[1], so you can use some of my checks if you'd like.

[1]: https://github.com/kyleconroy/handlehelp


Regarding the reddit check, a username can be unavailable for registration even if there is no profile, after an account is deleted the username is reserved forever. Not sure if there is any way to check if a username is actually available with out trying to register it. For example "citricsquid" is unavailable on reddit but your service reports it is available.


Damn, I only just added the reddit check. Looks like I might have to revert that...


Just found the API that reddit uses to check for usernames[1]. I'll be adding it to handlehelp right now.

[1]: http://www.reddit.com/api/username_available.json?user=foo


awesome, good find!


Good idea, thanks!


Could you include domain names (.com, maybe .io/.ly) and maybe Facebook url? If you had those this could be great for finding pronounceable names.

It's be great if you could set it so that it would just keep trying until it found one that was available on all services, but I can see that adding a ton of overhead, so I can see why you haven't done that yet.


I've just added the .io and i'll add .com in a bit. Adding in the loop might be a bit much if you're not bothered about certain services - e.g constantly updating the page just because a twitter name cant be found.


Yeah, I agree. You could do a sortable list of services so the user could rank their importance and then pick the best result from the first X(10?) iterations given their preferences. Obviously, that adds a lot of complexity, you just got me excited.



Should look up the domain name too.

And what's the point in showing the ones that are taken?


Wow, that was fast. I love that you're literally rolling out new features while I refresh this thread. Kudos!


github+heroku baby!


Is there a way to have the checks performed for a given username? That would seem a lot more useful to me...


You should include some form of timeouting. I purposely have Reddit blocked on my computer, and the page wouldn't finish loading because of that.


you should be clearer about what the site does without ruining the simplicity. I was shown the site and didn't notice the title, so it caught me off guard. it appeared to be someone's about page rather than a generator.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: