725 karma · joined June 26, 2021
The latter sounds nice but in practice game execs just use that to cut corners and you end up with an unrewarding grirnd fest of a game.
That's a fair point, but I would say that if you encourage your devs to make each commit logical, meaningful and self contained, this is worth the extra cost.
Also, you don't need to run ALL unit tests - just the ones affected by commit you are testing. This of course requires a build system with good dependency analysis.
+100. Though every time this comes up on HN you would be surprised by how much some people just vehemently disagree.
I will also add another requirement - all unit tests should pass at each commit in the PR. That way, you can use the rebase strategy to merge and you would still be able to bisect.
Here's what I personally use to test my keyboard setups: monkeytype.com.
My best is ~95 WPM and 100% accuracy.
Not really. Don't we estimate the age of the universe by estimating how redshifted the CMB is compared to what we would expect given initial conditions?
Not necessarily. Look at papers like the lottery ticket hypothesis - big ML models may be doing better simply because gradient descent just isn't doing a good enough job. Better optimizers would go a long way than just throwing compute at the the problem. Even if you can, it's impractical to use something like GPT-3 all the time.
From https://www.britannica.com/science/Earth-impact-hazard/Frequ...:
> Because there are far fewer large NEOs and long-period comets in space than smaller ones, the chances of a collision decrease rapidly with increasing size. The impact-hazard community—primarily scientists with an interest in the issue—has defined a global catastrophe to be an impact that leads to the death of one-fourth or more of the world’s population. An impact by a 1-km- (0.6-mile-) diameter NEO, the smallest believed capable of causing such a catastrophe, is estimated to occur about once per 100,000 years on average, based on the assumed population in space of such objects. On the other hand, an impact by a 100-metre (328-foot) NEO, the smallest believed capable of causing regional devastation, is estimated to occur about once every 1,000 years on average.
It's much easier to use the "Rods from God" idea - that is more precise and minimizes collateral damage.
It gets me to https://pytorch.org/docs/1.9.1/generated/torch.nn.functional...
Note that that will only normalize to (-inf, 1]. Tweaking the formula on that page You want (v - vmin) / (vmax - vmin + eps) with vmin and vmax produced along th dimensions you care normalizing against.
Not really?
With git you just keep track of three things:
1. The actual committed code 2. Code that's in the staging area 3. Code on disk right now
(git has official names for these but I forget)
Then during a rebase, if there a conflict, the base comes from the parent of the commit (in 1) you are applying the new commit on top of and the conflict is basically how the new commit makes changes w.r.t to the latest commit in 1. This conflict is written to 3 for files that are in conflict (and to 2 for files that aren't) and then you can resolve the conflict in 3, move the new code to 2 and commit that to 1. You can think of all of it in terms of diffs.
Full on differential privacy is meant to address harder problems. For example, if you assume that there was a minor bug and people were asked to take the mandatory yearly survey again in a week.
Now if you assume that the responses of people who responded before will stay the same when they re-respond, then by taking the difference between both results you can identify some specific people by looking at which bucket counts changed - this would be how the new guy who joined in that week voted.
Differential privacy techniques are meant to anonymise data in way that you can't even do this.
This is not even REMOTELY true. Plenty of companies use massive pure C++ projects.
Of course, assume a and n are relatively prime.
Then this is equivalent to finding a b such that (a % n + b % n) % n == 1.
We already know that 0 < a % n < n so simply picking b = n + 1 - a % n works. In fact, b = zn + 1 - a % n for any positive integer z works.
Your solution makes sense to me too but I wonder if I'm missing something obvious above?
It's (a % n + b % n) == 1. So pick b = a + 1 - a % n and you are done?
How are they different?
Thats so anti consumer.
When you are familiar or at lease somewhat familiar with a code base printf + careful thought is King. It also has the added benefit of forcing your to think through related edge cases you are missing or will miss if you fix the bug in a certain way.
But when you are working on a massive codebase with significant state being maintained, a debugger will go a looong way.