Among a strong field, this is the single most depressing comment I’ve ever read on Hacker News. Several grim components but it’s the “I don’t understand why” which seals the deal.
The game’s difficult to understand so it’s too punitive to not offer even a single practice/example puzzle to use for learning. One puzzle a day is nice once you’ve got the hang of it, but it’s discouraging to “waste” today’s puzzle on learning the rules and not be able to try for real until tomorrow.
What do you mean by “Pagemorphs”? A quick Google search suggests you’re the only person using this term so it’s hard to know what you’re recommending. I think it must mean e.g. https://turbo.hotwired.dev/handbook/page_refreshes?
Do you want another person (or yourself in the future) to be able to read your commits, in order, to get a clear account of what changed & why? If so, you should fix up those commits to address mistakes. If not, it doesn’t matter.
The branding is incredibly confusing, but: Hotwire (https://hotwired.dev/) is a set of ideas about how to build dynamic web UI (“HTML over the wire”), and the Turbo, Stimulus and Native frameworks are complementary implementations of those ideas in JavaScript and native mobile code. You can use all, some or none of them to build a Hotwire-style app.
The three frameworks originated in Rails apps, so they have good Rails integrations, but there’s nothing Rails-specific about them and you can use them in any environment where HTML is sent from server to client, even a static web site.
I did read your comment but I don’t really understand what you mean by “the memory system”. A linear bounded automaton is by definition a finite state machine for a given input (i.e. fixed tape size) because the number of possible configurations is finite. A Turing machine’s infinite tape is what stops it being a finite state machine.
Real-world computers are equivalent to linear bounded automata, not true Turing machines, because they have finite memory. This technicality is mostly ignored because a computer with a large finite memory is a decent enough approximation to a Turing machine for practical purposes. But, for example, the halting problem is decidable for linear bounded automata — because there are only finitely many states, every computation must either halt or eventually revisit an earlier state and get stuck in a loop — so in theory it’s an important distinction.
You’re taking the use of the word “state” too literally. The original comment was complaining about how Ruby `require` adds names (constants) to a global namespace; Python `import` only binds names in the local scope.
You might be interested in Chris Salzberg’s Im [0], already usable on Ruby 3.2, or the discussion about the speculative “namespace on read” feature [1].