Augment Code is great on JetBrains
HN user
c0ff
Of course there was scientific opposition to Galileo. Scientific ideas get hammered out through debate and disagreement. New ideas in science often take decades or even centuries to fully develop and reach broad acceptance.
That is why it is important that new ideas can be discussed freely, which wasn't the case in Galileo's time.
Plato and Aristotle developed principles of thinking about the world that laid foundation for science, mathematics, ethics, and other fields of study.
How many people alive today could come up with Dijkstra's shortest path algorithm when faced with a problem that calls for it? Probably hundreds of thousands, if not more. But, Dijkstra described the problem and its solution at a time when computer science was an obscure field of study. His contribution - among others - helped pave the way for the modern computerized world.
If someone today solves an obscure problem of similar difficulty to Dijkstra's graph search, they won't be called great anything. It is the impact that matters, not the difficulty of the problem or the IQ of the inventor. Great scientists, philosophers and artists had the foresight, luck, and ability to develop something that subsequently had a massive impact on the world.
A point in the article that I agree with is that great philosophers shouldn't be treated as flawless geniuses. Great people of the past made massively impactful contributions, but that doesn't make them the ultimate authority on their field. Answers to today's problems aren't going to be found by disecting footnotes of Aristotle, Turing or Einstein, but in work of people who will make contributions today that will shape the future.
The site isn't making any asynchronous requests, so there really is no "real time" aspect to this. If you look at the bottom of the page, it says "Showing the latest hot searches in All Regions".
So, these are just the top X searches from some time period, presumably after some processing and filtering (NSFW results eliminated, capitalization and spelling corrected, maybe some categories omitted, etc).
From the perspective of theoretical computer science, the interviewer was correct. I'll try to sketch out why.
------------------
1. In the initial probing for the upper bound, there is no point to grow faster than 2x each time
If we double the probe each time, we'll find the upper bound in O(log N) time. Then, we'll need O(log N) additional time to find the real answer. That makes the entire algorithm O(log N).
Suppose instead, in the initial probing we grow the bound faster, say by squaring each time. We'll find the upper bound faster, but we'll still need additional O(log N) time to find the real answer. So, we didn't really make the algorithm (asymptotically) faster - it is still O(log N).
(I glossed over some details in the explanation, but even if you work out the math exactly - which is not that hard to do - the conclusion holds.)
------------------
2. There is no point starting from a number greater than 1
There is no way to pick a "good" starting number - should it be 1,000? 1,000,000,000? 10^100? (10^100)^100? You might as well start from 1. That way, you guarantee that you'll find small numbers fast and large numbers still in an asymptotically optimal time.
------------------
As someone with fairly strong theoretical computer science backgound, I can see the intended meaning behind the interviewer's question and answer. But, it is a theoretical question. There definitely are a lot of highly valuable software developers out there who couldn't answer it.
On the contrary, we overeat precisely because we listen to our bodies.
Evolution tuned us to survive in a world where food is scarce and periods of starvation are frequent. In the rare occasion that you have excess food, you eat it and build up fat reserves. The saved up fat will help you survive the period of starvation that undoubtedly follows.
That may be true of actors and directors. But for software? I can't imagine.
Look at the presenter's experience:
> Over a six month period, I lead the project to rewrite a top 100 website using a new software stack. Doing so, we used HAProxy, Varnish, Nginx, PHP-FPM, Symfony2, Syslog-ng, Redis and MySQL to create a platform that handles 100 million page views per day and has room to grow.
There are tons of companies out there eager to hire someone with that experience.