I don't understand how this is a Rube Goldberg machine. Everything that happens is triggered by a Javascript setTimeout call, not from the action that happened before.
A Rube Goldberg machine is a contraption, invention, device or apparatus that is deliberately over-engineered to perform a simple task in a complicated fashion, generally including a chain reaction [from wikipedia]. In this example, the simple task is displaying the email button. And most computing operations are Rube Goldberg state machines if you think about it, no?
I think the point was that it's not really a chain reaction as each action has its own timer and will happen regardless of if any other action completes or doesn't complete.
Which is not to say I didn't thoroughly enjoy it :)
> would memory have been an issue with the amount of callback chaining required?
Unlikely; you gotta hit a really deep stack to really kill something with callback chaining.
It could have used a start button that sets focus to the first one and then each focus change makes it go to the next but without the setTimeouts it would go by so far it wouldn't be nearly as fun.
Neat though its code could have been significantly simplified through the usage of some focus events and using tabindex to iterate over each field (to a degree; some items would require a little bit more fancy-ness but not much).
Also this page has the biggest html table I've seen in years :)
Considering this was written by a Dane (assuming from the TLD alone), the author might personally have referred to this as a »Storm P.-maskine«.[0] I know I would (being a Dane and all).
Recently had to rube goldberg my HTML form POST's to work with API Gateway because of this issue: https://forums.aws.amazon.com/thread.jspa?threadID=205782. Work around I came up with was a ridiculous redirect chain utilizing JWT. This is much prettier though.
If anyone is interested, it seems like you can probably get away with ~20 temporary redirects before your browser starts complaining about redirect loops.