475 karma · joined August 20, 2013
Usually all but the most simple "systems" will need to access more than one component, which means you have a choice between a) store component data in regular arrays (and potentially waste huge amounts of space if relatively few entities have those components) or b) store component data in some kind of hash table (and then you use cache locality for all but the "primary" component of a system).
When I implemented a variation on ECS for a game I'm building, I did exactly as you suggest, re, message passing: components receive and respond to messages but their implementation is hidden.
Perhaps we should be asking, what subjects are we failing to be introspective about now, that will fall into this category 10, 20, 30 years in the future?
> How is it so easy to “lose” your data in a system that’s supposed to never lose your data?
I think the author is mistaken; git isn't "a system that’s supposed to never lose your data". One of its features is the ability to "lose" data in a controlled way; i.e., to rewrite history. If you want a version control that is supposed to never lose data, use Fossil.
> realistic way to get out of, e.g., by utterly bombing on an exam
> or missing a few assignments early in the semester.
You've pretty much hit the nail on the head. The authors of _Grading For Equity_ spoke at my school and the reasoning they gave for eliminating 0-grading (i.e., not using 0 as the lowest possible grade) was because it's basically impossible to recover from. Ideally, a student who masters the material by the end of class should get the same grade as one who masters it at the beginning; being fast or slow shouldn't factor into your grade, but with 0-grading, like you say, an early test or assignment can tank your final grade, even if your knowledge eventually catches up to what it should be.
[0]: https://www.cs.uoregon.edu/research/summerschool/summer18
connect(option1,
option2,
option3);
That is, will the spaces from the column `connect` starts in be preserved as spaces, or will they be converted to tabs?This is an instance of a more general problem in all software development: tools are created usually to serve a purpose, but when they become popular they end up being used, not because they're a good fit for the problem, but because they're popular -- everybody knows how to use them. The tradeoff (which may be worth making) is the time to learn a new tool vs. the continual cost of using a tool that's not quite right for what you're doing.
Ironically, a lot of documentation systems now do the opposite: take your code and produce UML diagrams from it.
It's not just "actual work", writing high quality tests and projects and then grading them is multiple full-time jobs worth of work. It's equivalent to interviewing 100 job candidates every week, forever.
I think the devs are putting their effort into ST4 while unfortunately letting 3 somewhat languish. The same thing happened with the 2 -> 3 transition; 2 sat around without getting any updates for a long while, and then 3 was released.
It's even more ironic: he was teaching a class on international communication, and used it as an example of how you shouldn't jump to judgment of people from other cultures/languages. Cue his students doing just that.
From the faculty perspective: lack of time to do anything else. Writing good test questions (questions that require synthesis of multiple topics and not just regurgitation) is hard, takes a lot of time, and may not even be possible in some introductory classes. Looking for cheaters after the fact is time consuming, too. I have to pay for a Chegg account out of my own pocket, and then keep it open whenever I do my grading, to look for solutions to my own questions.
That said, I steadfastly refuse to use Lockdown or Protorio or any of the other "solutions" my school offers; the downsides are simply too great. If I end up passing a few people who cheated their way to an A, that's a price I'm willing to pay.