This is an organizational problem. You should not have that many meetings. People need to learn how to write. I manage people and we work fully asynchronously by using gitlab to its full potential. I have close to zero meeting a week. Everything is in writing. We write epics for new features and discuss there. A
They say it doesn't apply to Canada. What prevents a Chinese company to open a business in Canada and get access to US A.I software without the license?
To be fair, this was one side of that argument. A lot of people adopted the boolean convention, not the truthy one. And the few examples like "defined?" and "nonzero?" really seem more like quirks than conventions. In five years of doing Ruby, those examples built into the language and the Rails shitstorm are the only places I've seen this truthy convention adopted.
Original intent aside, if your language is prided on convention, then it has to be open to the convention changing.
One of the quotes in the linked blog post is the pretty much official statement of the languages creator. defined? and nonzero? are core language methods and unlikely to change. The fact that many ruby programmers have a misconception about what predicates were supposed to imply is sad, but won't change things. In short: All ruby devs need to learn how predicates were intended or they're in for a surprise.
Btw: The mantra "convention over configuration" is a rails mantra and not a ruby mantra.
I'm expecting core methods to change either, as that would undoubtedly break programs. Incidentally, this would be kinda funny because the argument about your program being written poorly if it fails with such a change would be turned on its head. But, in any event, to pretend that Ruby was a perfectly designed language and couldn't possibly have warts is weird.
Also, I never said "convention over configuration," since there's nothing to configure here. I was talking specifically about the convention of what a "?" should return. In that same quote Matz also says that predicates typically return a boolean value, but it's not required. That seems to both imply and endorse a convention.
I think we may be in more agreement than either is letting on. However, in most arguments on this matter, the "should" part seems to just get ignored.
Now in that whole Rails hoopla, it turned into "it's not required and neither defined? nor nonzero? do it," ignoring the whole "should" part. And now people are pointing at Rails as another example, reinforcing their own bias.
I agree with you that it might be nice if you could actually rely on it, but OTOH I have never personally encountered an error caused by a non-boolean predicate.
However, it's not only nonzero? or defined? that don't return boolean values. see http://news.ycombinator.com/item?id=5074676 for more examples. If you read through the core libs documentation you'll find more examples. You just cannot rely on predicates returning true/false in all cases, so you either have to learn not to rely on it at all or learn every example where it doesn't. So just don't rely on it.
I have long (6+ years) used truthy values from my predicate methods, and rarely coerce them into explicitly true or false values. (There are times when it's necessary, but these are extremely rare.)
That doesn't mean anything. You need a real study (placebo works great you know). crntaylor is right. The sleep stages differs a lot between individuals. You need to analyze brain waves in order to be more precise (you could also try to detect movements like the "Sleep as android" app on android. But that's far from perfect.)