When you need to run an unbounded program each time you want to provide real time feedback, like type inference or in Rust case lifetime inference, you make the language tooling much less simple and accessible.
533 karma · joined September 20, 2015
When you need to run an unbounded program each time you want to provide real time feedback, like type inference or in Rust case lifetime inference, you make the language tooling much less simple and accessible.
Many vulgarization sources say that DNA is like the source code of life. But they mostly skim across the issue and go to conclusions like "this gene or set of genes are responsible for that outcome".
But coming from a CS background that sounds a bit like non-sense. I feel like it is like saying that "this processor instruction is responsible for that outcome". But in the end what is important is not the individual instruction but the interaction between them and the environment (Input / Ouput).
I'm not sure sure why, but CS courses and interview questions mostly focus on _asymptotic complexity_ and usually forget to take into consideration the complexity for "little values of n". And funnily enough, in real life n never goes to infinity!
In a strict sense big O notation only cares about what happens when n goes to infinity. The algorithm could behave in any way up to numbers unimaginable (like TREE(3)) but still, its big O wouldn't change.
Maybe what is missing to those "new grad" is a felling of real world data, and how a computer behave in the real world (with caches, latencies, optimised instructions etc...) not just having an ideal computer model in their mind when they design algorithms.
For example we could imagine the scenario where some people were able to keep their habit and did not have a great decrease in step numbers, while some other sub-groups have become sedentary because of the confinement. This would show up as an increase in variance in the number of steps.
Stats are hard and it is very easy to draw a wrong conclusion (that sound right) from aggregated data.
I'm not Italian, but I could understand that some people might find offensive to imply that Northern Italy (with one of the bests healthcare system) are less smart and resourceful than Bay people.
I think for most of us can make this mistake, and reasoning in higher order (i.e. using a function from a tested library) helps avoiding this kind of error.
I feel that this advice only fixes the symptoms and not the underlying root cause. This is a culture issue, not a technical issue.
For example as of today Wireguard only works with static ip addresses. Using the official client it is not possible to assign IP (or pass DNS information) through a DHCP.
Code review should not be about being right or wrong, but as a team to provide the best work possible. People should accept that everybody make mistakes, and the goal of the environment/society is to minimize the consequences of those inevitable mistakes, not judge individuals based on arbitrary metrics.
This blog post closing remarks summarize the recurring issue well: https://www.beauzee.fr/2017/07/04/videolan-and-https/
This is a very interesting phrase. Linus often appeared to be yelling at developers not respecting the rule #1 of the kernel. However the kernel being strictly backward compatible is a boon for Linux users, most of the industry should be inspired by this strict policy.
Interestingly, Microsoft (compared to Google, Apple...) is the company providing the best long term support for its products.
That is why I am very septic about predictions of the future, even if some become true alone, it is quite impossible to grasp how a future society might look as a whole.