Significant new inventions in computing since 1980

The Internet itself pre-dates 1980, but the World Wide Web (“distributed hypertext via simple mechanisms”) as proposed and implemented by Tim Berners-Lee started in 1989/90. While the idea of hypertext had existed before (Nelson’s Xanadu had tried to implement a distributed scheme), the WWW was a new approach for implementing a distributed hypertext system. Berners-Lee … Read more

What does the quote “An extra level of indirection solves every problem” mean? [closed]

Generally it means that by increasing the level of abstraction one can make the problem easier to understand/resolve. Be careful with your abstractions though, the full quote at least as I heard it is, “You can solve every problem with another level of indirection, except for the problem of too many levels of indirection”.

C volatile variables and Cache Memory

Firmware developer here. This is a standard problem in embedded programming, and one that trips up many (even very experienced) developers. My assumption is that you are attempting to access a hardware register, and that register value can change over time (be it interrupt status, timer, GPIO indications, etc.). The volatile keyword is only part … Read more

Are duplicate keys allowed in the definition of binary search trees?

Many algorithms will specify that duplicates are excluded. For example, the example algorithms in the MIT Algorithms book usually present examples without duplicates. It is fairly trivial to implement duplicates (either as a list at the node, or in one particular direction.) Most (that I’ve seen) specify left children as <= and right children as … Read more