nshepperd's comments

nshepperd | 2 years ago | on: A DIY ‘bionic pancreas’ is changing diabetes care

> The DIY community and industry are not in opposition, says Lewis.

I would really like to believe that, but given how Medtronic and every CGM I have used have seemingly intentionally sabotaged open source loop compatibility with every new product, it doesn't seem like everyone's on board...

nshepperd | 3 years ago | on: The Public Shouldn’t Pay for Drugs Twice

> put a spotlight on the big pharmaceutical companies that had brought them to market — especially Pfizer and Moderna

Moderna? The research startup that had only recently IPO'd and didn't have a single commercial product before covid? Seems weird to call it a "big pharmaceutical company".

I'd rather a few founders become billionaires from a successful startup than have Moderna gone bankrupt and lose the vaccines they were developing forever.

nshepperd | 3 years ago | on: Nuclear-Powered Cardiac Pacemakers

Medical professionals worry a lot about "compliance". It would not be unusual for a doctor to unironically believe that "leverage" like this—forcing the patient to come in for a check-up instead of letting them make their own decisions—actually benefits the patient. So it's not necessarily about money, but that's not imo saying it's much better.

nshepperd | 5 years ago | on: Evidence on Poverty Traps from Rural Bangladesh [pdf]

Why Musk what? The point is that it's not about Musk. We're talking about whether Musk "deserves" his billions in profit and the answer is it's not about Musk, and it's not about "deserve". It's about all the people who benefit because of the existence of spacex/tesla/etc, who wouldn't benefit if we refuse to pay for the work of intelligent investment (by, say, seizing profits), because that would prevent their existence in the first place.

Certainly, if you think you can identify people who are particularly qualified to pick good ideas and make investments in them, it's not a bad idea to give them some money (but where do you get that money? hopefully not somewhere with negative externalities such as stealing it from different random business owners). Although structurally it's better if the billion itself is given as an investment instead of a gift, because then the person giving the billion has "skin in the game" themselves. Which is basically what I think VCs do, although I don't know how effective they usually are.

(Yes, this whole thing assumes a regulatory framework where businesses that have negative externalities or are otherwise bad for the world do not make profit. Indeed, companies that use dark patterns or rent seeking tactics to make profit should be legally punished, and if such punishments make them bad investments it's a good thing, because it means they were on net bad for the world.)

nshepperd | 5 years ago | on: Evidence on Poverty Traps from Rural Bangladesh [pdf]

Providing up-front funding for crazy ideas like electric cars and reusable rockets when everyone else is too stupid and shortsighted to is itself productive activity. In fact it is the most important productive activity: figuring out what to do, what is a good idea, and being willing to bet the returns of your previous labour on it and wait.

The return on investment is the payment it is in our self-interest to give for this activity, because we want and need such work to be done (so that we can make use of the fruits of such ventures, instead of getting nothing at all when wealth is squandered on bad ideas or just plain old consumption).

nshepperd | 5 years ago | on: P² quantile estimator – estimating the median without storing values

It's an online algorithm. It's meant to be used on essentially infinite streams of data, such as a live dashboard of latencies of a running server. In that context, providing a 5 element, or any finite list as an example seems like a non sequitur.

Your examples do relate to problems the algorithm actually has in this application, but they manifest as things like "extremely large warmup time" and "adjusting to a regime change in the distribution taking time proportional to the change". For instance if your data is [1000, 1001, 1000, 1001...] then it takes 1000 steps to converge, which may be longer than the user has patience for.

However, the algorithm does always converge eventually, as long as the stream is not something pathological like an infinite sequence of consecutive numbers (for which the median is undefined anyhow).

nshepperd | 5 years ago | on: To do politics or not do politics? Tech startups are divided

Parent said "influence desired career paths", which is not the same as differences in performance. People choose a career path for many reasons besides ability, such as individual personality, ability in alternative jobs (note the quote in your first link which points out that "girls outperform their male counterparts on achievement tests in stereotypically feminine subject areas"), or even their experience being bullied in high school with regard to the job.

Furthermore, if you want to come to valid statistical conclusions about whether a discrepancy is due to a particular cause (and can't just do a RCT), it's not enough to just ignore plausible confounders until they are "provable". You need to systematically control for all possible confounders.

nshepperd | 5 years ago | on: I’m deaf, and this is what happens when I get on a Zoom call

> The team immediately spotted the tradeoffs: while Meet’s captions were built in, there’s no history, meaning each person had to dedicate their attention to the captions to make sure they didn’t miss anything.

I actually wrote a js bookmarklet to solve this problem by continuously capturing the caption updates and writing them into a separate window. It's a little janky, but works (at least until Meet releases the next update that changes the obfuscated class names in the DOM). https://zlkj.in/bookmarklets#record-meet-captions

nshepperd | 5 years ago | on: Vaccine hopes rise as Oxford jab prompts immune response among old and young

To add to the other comments: because giving a placebo is essential for the experimental results to have any validity, not giving a placebo would be imo way more unethical, since it would mean you are exposing people to a medical risk (experimental vaccine) for no scientific benefit.

(Needless to say, running an invalid vaccine trial also has very bad consequences: it would delay the actual deployment of a working vaccine to the general public, resulting in millions of unnecessary person-hours of potential virus exposure.)

nshepperd | 5 years ago | on: Firefox: The Jewel^WEmbarassment of Open Source

"Face the consequences"? What consequences? Anything you want? Is this supposed to be a license to extrajudicially impose arbitrary consequences on people?

I'll note that it's mainly users of Firefox who had to "face the consequences" of firing Eich for his views...

nshepperd | 5 years ago | on: Mozilla RegretsReporter

There are frequently comments on such threads from people discovering this fact for the first time, so it does seem to be a point worth repeating.

nshepperd | 5 years ago | on: Oculus Quest 2

I screwed the base stations into a piece of wooden 2x4, and stuck the latter to the wall with two bits of Command hanging tape. Super easy. The kit ought to come with these pieces imo.

nshepperd | 5 years ago | on: Division by zero in type theory: a FAQ

This strikes me as having some interesting similarity to the practice in Haskell of placing type class constraints on functions, not data types. A deprecated feature of Haskell used to allow you to write data types like:

    data Ord k => Map k v = ...
This defined a data type representing an ordered map from k to v, with the additional restriction that before you can talk about such a map you had to know that the type k is orderable (has an instance of the Ord type class which defines comparison operators).

This may be considered to be similar to the definition of (/) requiring that its second argument is nonzero.

This style was supplanted by leaving the data type definition 'bare' and placing the constraints on the API's functions instead:

    data Map k v = ...
    insert :: Ord k => k -> v -> Map k v -> Map k v
    lookup :: Ord k => k -> Map k v -> Maybe v
This style is similar to instead placing the nonzero-ness constraint on the theorems which define the API of (/).

In both cases there are basic engineering reasons for the switch:

- Having the constraints in the definition of terminology (Map, /) doesn't save any work, as you still need to prove those constraints to do anything or refer to it (in Haskell this meant sprinkling `Ord k =>` in the type of anything that referred to Map k v).

- In fact it results in doing more work than necessary, as you are sometimes forced to prove the constraints just to mention Map, even when what you are doing does not require them. For instance defining the empty map 'empty :: Map k v' shouldn't require you to know anything about k, because an empty tree doesn't contain any keys, let alone care about their ordering. In this case requiring Ord k in order to mention Map k v would be superfluous.

page 1