I don't remember the details, but in one of the recent updates they increased the performance at top speed and initial start (below 3 mph). Prior to that, 85D and 90D (all-wheel drive configuration) got a significant boost to its 0-60 performance via a software update.
Since all the hardware is controlled via a software firmware, they are able to tweak the voltage supply of each motor to decrease or increase output performance.
If you own a Tesla Model S and live near a supercharger network, charging is not an issue. Over 8,000 miles in my Model S, all powered exclusively by the superchargers, free of charge.
Note: I live in an apartment less than 2 miles from the nearest supercharger in Los Angeles and only 8 miles from work. So, the range is never a problem.
I find inheritance much harder to reason about or even read. Mixins don't always lead to the clearest code, but they're better than all the alternatives.
I don't think that avoiding mixins implies inheritance. The more common pattern, at least in React, is "higher-order" or "wrapper" components where the responsibility for managing the mixin's behavior is moved into a separate, composable component.
The main issue with mixins is that the origin of behavior becomes opaque. If I call this.mixinFunction(), it's not defined in my file or imported directly, so I have to know exactly which functions come from which mixins. With higher-order components, you can just look at the props and know where things originated.
I'm not a staunch defender of any particular approach, but I think that's the main argument against mixins. (And it applies to other languages as well, such as Ruby.)
import Foo from './foo';
let Bar == React.createClass({});
Bar = Foo(Bar);
Bar.mixinFunction();
and:
import Foo from './foo';
let Bar == React.crateClass({mixins: Foo});
Bar.mixinFunction();
In both cases I'm adding functions to my Bar component; in neither case is it defined in my file or added directly.
It is true that in the general case the mixin approach would mutate the internal state of Bar, whereas the higher-order component approach would re-render Bar with updated props, which is a solid win for the latter style. (Conversely, a mixin can check the state of the underlying component, while a higher-order component cannot, which means that you can't really implement shouldComponentUpdate as a higher-order component.)
But it's really a fairly subtle difference, and I wouldn't say that either is particularly more transparent. :)
I actually commute every day via 405 and 10. You are right, it's awful during the rush hour, but during non-rush hours it is still faster than taking local streets. A few weeks ago I left work via 405 at 4:45pm and arrived home at 7:10pm, the commute that would take no more than 12-15 minutes without traffic.
I agree with you but temp varies greatly. It often is 30 degrees warmer in the valley than in Malibu which you notice immediately driving over Topanga.
That's an excellent question. Doing this did not, at any point in time, feel like I was sacrificing my time for other fun activities. I enjoy coding the point of addiction sometimes.
On contrary, I felt the opposite most of the time - "I should be writing code right now instead of playing video games or socializing on weekends." But that will differ from person to person. Certainly not everyone will enjoy programming 24/7.
I just implemented a GitHub sign-in and it took me only 8 minutes because on the server it was mostly copy-&-paste of the Facebook sign-in and on the client it's just:
Since all the hardware is controlled via a software firmware, they are able to tweak the voltage supply of each motor to decrease or increase output performance.