904 karma · joined January 15, 2019
Edit: To explain more, it is guaranteed that you can reduce any NP problem to 3SAT in polynomial time with a polynomial factor in input size. You still have to solve it.
If 3SAT were solvable in polynomial time, then polynomial(polynomial(x)) = polynomial(x) and you're implied to have an overall polynomial time solution.
But what we have here is that 3SAT is solveable in subexponential time. subexponential(polynomial(x)) is not guaranteed to be sub-exponential.
Further edit: The subexponential solution does carry over to any (?) problems that have can be reduced to 3SAT in a linear number of variables. They list: Counting independent sets, Counting proper q-colorings, Counting perfect matchings.
I think they were responding to this. You can use BERT to provide zero shot classification predictions.
Sadly, that was me ~10 years ago, but the lure of FAANG money was too strong and I went into EE/CS after 1 year as a civil engineering major. I wonder if one day we will really start feeling the affects of this talent reallocation, and civil engineering will become a higher paying profession.
Right now someone who only streams a few songs gets a very small “vote” (assuming pay is per stream). That would make it so that everyone had the same “voting” power. But I doubt there’s much correlation between people who use Spotify less and small artists. In fact that’s probably a negative correlation if anything, and this could end up hurting local artists.
If someone wants to build a computer and they don't need a graphics card, it's better to give them the option not to get one for less money, or to get one for more money.
The wrong abstraction isn't crappy code itself. It is a reasonable looking piece of code that will force the next person into writing crappy code to accommodate it.
Edit: I think the entire project of TensorFlow is a good example of this. They built the library around a "graph" entity, and anything you did had to be shoehorned to fit that. That worked OK for some straightforward neural networks and situations for a while. As the area evolved though, it proved very burdensome. They tried to evolve it into TensorFlow 2.0 which was more forgiving, but by that point it was too late, the ecosystem became a mess. PyTorch stole the thunder because they didn't make the wrong abstraction (though I'm not sure if "duplicating" is what helped them do that)
You should want to know _why_ it works that way too if you want to do any meaningful work with it. Context matters. I’ve seen many cases where the way something works seems dumb, only to learn later they had already tried the “smart” way but ran into some obscure problem which the “dumb” way solves.