It's probably the only part where hardware development (FPGA or ASIC) has a significant edge: "time travel debugging" is the norm, where you have a wave window with your design state cycle by cycle. Can't wait to see more of that in software!
> The answer, of course, would be research. All the students were working the same amount. Their work habits were different.
The proper research here would have been to make the student change their habit and see if they became better musicians as a result. This article isn't research, it's writing down a fact and then trying to extract conclusions when none can be made.
FYI the calendar link in July 28 should probably be a href="/nominations" instead of "nominations". Clicking it from outside the home page brings you to a 404.
Each task has its own stack, and can communicate with other tasks with mailboxes or shared memory (with a lock).
You'd have a task for each of the things you mention: debouncing a button, drive the display from a buffer, and application logic.
The application logic then doesn't have to worry about bounces, how long it'll take to drive the display, etc.
Modal screens over static screens is orthogonal to this though. You'd need to build a priority scheme, and only pass down events to the current on-screen view.