News for hackers. Stuff that matters.
Re:The Unreasonable Effectiveness of IT by ChuckMcM on Monday July 06, 2015 @10:36PM (#9843335)
I certainly disagree with this bit, "There’s no systematic way to know how solve ambitious problems. We just don’t know what will lead to what. The future is a fog. An ambitious problem is not deciding what to have for lunch, it’s more like curing cancer or creating an AI."

I have always started on the solution to an ambitious problem by asking "what would have to be true for this to be solvable?" and from each of those things working backward until you get to things that are all true now. Then you can start solving the "almost" true things and work forward to the ambitious solution at the end.

Re:The Unreasonable Effectiveness of IT by npalli on Monday July 06, 2015 @11:05PM (#9843427)
> I have always started on the solution to an ambitious problem by asking "what would have to be true for this to be solvable?" and from each of those things working backward until you get to things

Can you give an example of an ambitious problem you solved backward this way.

Re:The Unreasonable Effectiveness of IT by hderms on Tuesday July 07, 2015 @01:18AM (#9843763)
You could see a (perhaps incorrect or ultimately misleading) example of it:

1. What would have to be true for us to have reliable transmission of messages over an inherently lossy network? 1a. some kind of method to ensure that a message got to its intended destination

2. what would have to be true to ensure that a message got to its intended destination?

2a. some kind of method of ensuring that failures don't occur, or if that is impossible, some kind of method of making intermittent failures not prevent the system from eventually functioning.

3. what would need to be true to make intermittent failures not prevent the system from functioning

... etc...

Slightly misleading because I'm obviously working back from a familiar example, but I think the technique is applicable in some cases. At the very least your solution is born out of trying to make the impossible just barely possible rather than seeking to build layer by layer to achieve something possible.

However, with TCP/IP you can also see how using traditional methods also work.

Re:The Unreasonable Effectiveness of IT by ChuckMcM on Tuesday July 07, 2015 @11:23AM (#9846000)
Perhaps one of the more practical uses was figuring out how to scale storage performance when I was at NetApp. Since processors had stopped scaling like they had been in 2001 their CTO challenged me to scale storage performance in terms of IOs per second and total available capacity, without improving the speed of the processors.

The challenge there ended up localized around a couple of really hard sub-problems. One was that Netapp's storage model was file based (rather than block based) and so part of the problem was scaling the operation of a file state machine, and the other serious sub-problem was the creating a reliable way to keeping protocol/process state that was in "flight" in order to recover from failures. Working backwards led to what I ended up calling the "three layer cake" model which split the storage stack into parts that were loosely coherent and tightly coherent.