Hacker News new | past | comments | ask | show | jobs | submit login
Steve Wozniak is not boring (github.com)
62 points by neilellis on June 8, 2014 | hide | past | web | favorite | 18 comments

For the nontechnical out there:

This is a random name generator that pairs adjectives with names (e.g. "angry_einstein").

In the unlikely chance the generator returns the pair "boring_wozniak", it discards it and generates another name.

A good example of companies and open source projects having a little humour and showing that they're human too.

Can we say something about using goto?

Why? To be sure they should be used sparingly, but it looks it makes enough sense in this particular case and isn't single-handedly going to cause any spaghetti-code problems.

In this particular case I think a goto fits the bill.

Go is fairly strict in the use of goto: http://golang.org/ref/spec#Goto_statements

They have their use cases, and this code seems like a fine use of it. Goto is taught as one of those things you should never use but it still has a purpose. If you look at any C code goto still used. You just have to make sure not to overuse it.

At least in this situation, you can see the entire affected control flow within four lines.

goto generally becomes a problem when suddenly everything is short-circuiting everywhere and you can't see where control's getting passed off to.

All tools can be misused. Goto has a dark past, but it can still be used responsibly. It's almost like generalizing a concept like OOP to be bad because horrible code can be made with it.

Sure. This is a fair use case. Kind of makes more sense than a full while loop, especially since the case is only likely to occur at most once per call to GetRandomName().

If you use it responsibly, I don't see much problem.

or a loop that is not guaranteed to end?

PRNGs don't work that way. They have periods over which all possible output values are produced, close to an equal number of times. Even when producing tuples, we know that this won't loop forever.

You know that, because you already know how "rand" is implemented

Is this a reference to some earlier comment? Or just a general shout out to a hero of the programmer?

Read the source - it's a random name generator that pairs adjectives + names.

No, sometimes the generator will come up with boring_wozniac, and they just catch that case.

Inspirational for sure but never boring.

Nice touch.

Applications are open for YC Summer 2019

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