I really like your analogy but I am concerned that analogies take you only so far. Human presence in digital world is simply unprecedented and deploying existing ideas without adapting them might prove to be difficult and ineffective.
Isn't it possible that by the time LIDAR is technically and economically ready for general deployment current Tesla models will have enough mileage and Tesla avoids retrofitting completely?
I am quite used to C++ exceptions and strongly favor them against error codes mainly because of error handling decoupling and the fact that exception (unlike return code) cannot be passively ignored - if you want to swallow it you need to do it rather explicitly. If you forget to handle exception it crashes loud and that I prefer.
All things accounted I still find HN the best discussion venue. I force myself to avoid reading discussions I suspect might not be interesting and apart from well known controversial topics signal to noise ration is usually high.
Genuinely curious question - do you know about place where these controversial technologies would be discussed in a "better" way?
"After careful review of your background, we have elected to pursue other more properly ignored candidates. Please don’t hesitate to contact us if you have any questions!"
Although sometimes "I do not tend to make many of the mistakes that would be caught by the C++ type system" might be related to "how to use C++ type system so it would catch mistakes people tend to make".
There are hints that even less than 8 bits per weight might be usable (for certain cases and on custom hw). Not sure if it's practical but it is definitely interesting.
I wanted to have some basic idea about hardware so I did some "research" (googling) and ended up giving a short informal talk. My slides with some links are here:
It's the same for any other mental load that could be offloaded to machine. Coding style? Don't demand people sticking to rules - use some formatter/prettyfier/linter. Well known and frequent bugs? At least try to use static analysis or write tests and run those with some sanitizer. Codebase too big/convoluted/... - use some tools (parsers, indexers, search) to get better insight. Just try use proper tools and machines.
Quite recently I happily used libcurl for C++ project rather than any of those C++ wrappers found at github. Granted there is some non-elegance when you adapt C-style error codes to C++ exceptions and non-C++-idiomatic code style right next to any C lib. Yet libcurl is battle tested (AKA proved to be rather bug free) and has nice clean API unlike.
IMHO it might eventually make sense to use other language/tech/whatever but the bar is quite high and it will quite probably take some serious sustained effort.
I think it is pretty basic but with nice explanations, examples, it's pretty complete and it is free so you can basically hand it to someone willing to learn these things.
Some recommendations seem little bit like "don't make mistakes" but still I like it.
For C++ I find both Google Test and Boost Unit Test Framework pretty usable. They both have some quirks but IMHO no show-stoppers. I prefer these to custom solutions because don't want to maintain yet another tool but to focus on my problem domain and it is nice when some fellow developers actually have experience with these tools.
The best reasonably priced keyboard I have found. Decided to give it a try 5 year ago when dealing with sport-induced shoulder issue and never looked back. I was briefly thinking about more expensive alternatives (Kinesis Advantage, Maltron) but decided that MS Natural 4000 is optimal for me.
I was always puzzled by how unrelated metric used for hiring is to actual work at many companies.
I don't mind algorithmic brainteasers - on the contrary I would absolutely love to solve such problems at work yet those seem to be scarce.
I also don't mind other types of developer work - be it more research or architectural oriented or "just" coding.
But I am not happy learning something different for interviews every few years and then forgetting it over the course of next period of day to day work. Feels like a waste of time and is confusing in regards to what one would actually do in certain job.
Might as well traffic signs were intentionally chosen as something human are good in classification of without any regard to machine learning algorithms (nonexistent at that time).
Yet there are definitely tasks where specially crafted noise can fool humans. Think optical illusions or this car prototype camouflage:
https://arstechnica.com/cars/2017/02/the-new-mclaren-720s-wi...
While hearing about COBOL in banks quite often all my friends actually working there say Java and Oracle and all related job adverts I have seen so far were Java or C++. Could someone please provide some relevant facts?