benkuhn
Mandala: Python programs that save, query and version themselves
Old Spleens Suck (2021)
High-impact career review: Software engineering
A history of transcranial electric stimulation, 1900-present
Wave – Building a Cashless Africa
Sequoia, Stripe, others invest $200M in African fintech Wave at $1.7B
To go from 10% to 30% in ~5 generations, the median-artery-having population would have had to expand by (30/10)^(1/5) = 25% more than the non-median artery population over each generation. It just seems totally implausible that median artery carriers could have that much more offspring.
This makes me pretty suspicious that the paper may be wrong.
Greg Packer has been quoted in hundreds of articles as a “man on the street”
How to Do Everything
For other headphones you can use the various flavors of Antlion ModMic, but it’s more expensive and less convenient because you have two cables.
(You need a standalone mic since most headsets, even really nice ones, have really bad mics because most headset buyers don't care about or even know how good their mic sounds. The one I linked is wired because wireless is evil[3] and in particular, Bluetooth will silently degrade your audio quality. If you want a pair of wired headphones, I like these[4] which are "open back" and therefore sound more natural + cool your ears better, although the open back also means they "leak" sound and are only suitable for working without people next to you. But you shouldn't be having calls with people next to you anyway!)
[1]: https://www.amazon.com/V-MODA-BoomPro-Microphone-Gaming-Comm...
[2]: https://www.benkuhn.net/vc/#get-a-better-microphone
[3]: https://www.benkuhn.net/wireless/
[4]: https://www.amazon.com/Philips-SHP9500S-Precision-Over-ear-H...
This post[2] suggests 80k's key researchers think about 15% of people interested in EA would be the best fit for earning to give, while 10% of people attending an EA-themed conference were perfectly planning to.
I don't think criticizing effective altruism based on the assertion that it's mostly about earning-to-give is reasonable given those numbers or the framing in 80k's "key ideas" post.
[1]: https://80000hours.org/key-ideas/#career-categories [2]: https://forum.effectivealtruism.org/posts/LrKFNQxjETPvzXQcv/...
For example:
> The most charitable explanation of Singer’s dismissal of political action is that he is trying to sell being an altruist and he thinks a consumer -hero version is the one people are most likely to buy. Singer and other effective altruist philosophers believe that their most likely customers find institutional reform too complicated and political action too impersonal and hit and miss to be attractive.
Interestingly, the author quotes part of Singer providing an argument against the effectiveness of institutional reform, but does not himself provide an argument for it, just an assertion that political change is "the most obvious and powerful tool we have." (I think that's far from obvious!) Instead, he jumps straight to accusing Singer of arguing in bad faith. This is actually the opposite of charitable.
For another example, I'm deeply confused about how the author of this piece could cite Will MacAskill and Toby Ord, then write:
> The underlying problem is that effective altruism's distinctive combination of political pessimism and consumer-hero hubris forecloses the consideration of promising possibilities for achieving far more good.
Ord and MacAskill co-founded an organization, 80,000 Hours[1], which advocates mostly not for effective giving (which the author derides as a "consumer hero" approach) but rather for spending your career working on one of the world's most pressing problems; notably including for instance several types of policy change.
EDIT: and I missed this one the first time around:
> One could spend at most a few tens of millions of dollars on anti-mosquito bed nets before returns start dramatically diminishing because everyone who can be helped by them already has one.
A single bednet charity, the Against Malaria Foundation, has literally already raised 10x this amount without substantially diminishing returns: https://en.wikipedia.org/wiki/Against_Malaria_Foundation
The general version of the point doesn’t work very well, and many of the other OO use-cases the author discusses actually work much better than alternatives.
For example, on abstract base classes: if you replace this with a bag of functions I think you end up reinventing virtual dispatch—that is, each function’s top level is a bunch of `if isinstance(...)` branches. This is much harder to read, and harder to add new implementations to, than abstract methods. It’s also no easier to understand.
(There is a subset of this advice that I think does improve your code’s understandability, which is “only ever override abstract methods,” but that is very different from “don’t use OO.”)
For impure classes, the author suggests e.g. using `responses` (an HTTP-level mocking library) instead of encapsulating these behind an interface. This is a fine pattern for simple stuff, but it is not more understandable than a fake interface. The hand-written fake HTTP responses you end up having to write are a lot less readable than a mock implementation of a purpose-built Python interface. (Source: I once mocked a lot of XML-RPC APIs with `responses` before I knew better; it was not understandable.)
I guess between this and the other commenter who made money betting 538's model on predictit, I consider this pretty thoroughly debunked.
1. There's a statistical gadget specifically for doing this—a "scoring rule" [1] which is a principled way to compare different probabilistic predictions. A bunch of scatterplots of random quantities against each other are... not that.
By comparing only binary win/loss predictions instead of probabilities, like in the first chart, you throw away almost all information contained in the probabilistic estimates—if Democrats win a state, there's no bonus for predicting (say) 95% Dem instead of 55% dem.
It's plausible that 538 would actually win under a proper scoring rule, because betting markets were underconfident (relative to 538) in deep dem/rep states (predicting e.g. <95% Dem win in VT, vs 538's >99%). [2]
2. The calibration analysis assumes that different state win/loss rates are independent, but that's really untrue: 538's predictions were specifically not independent because they assumed polling errors were correlated between states.
3. Many of the other scatterplots look outlier-driven and don't include r^2 or p-values. With so few datapoints, it's unclear if they are meaningful at all.
[1]: https://en.wikipedia.org/wiki/Scoring_rule
[2]: Maybe we should cut prediction markets some slack here because liquidity constraints make them inaccurate for small probabilities. If that's the article's position, though, they should address this instead of just... not using a scoring rule.
Virtual workspaces – working in a Minecraft office?
[1]: https://www.homedepot.com/p/Cree-100W-Equivalent-Daylight-50...
When you're building one single thing that's used by 4.6 billion people, it turns out that percentage optimizations matter!
(I work for a company that built a shitty half-baked homegrown QUIC equivalent because in rural Ethiopia, HTTPS handshakes were so slow that they literally just didn't work. Glad that Google is optimizing our percent-of-a-percent use case!)
Using methods from YC to help protect US democracy
In my experience, even in "slow" languages, that type of thing is the predominant source of major performance problems, and the supposedly "slow" language would be perfectly adequate if you an stop shooting yourself in the foot (and if you can't, a faster language will not help you).
I'm sure there are extremely high-performance or high-scale points where language choice starts to matter more, but I'm also not surprised if Shopify is correct not to think they're there yet.