nshepperd
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...
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.
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.)
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).
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).
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.
That sounds great tbh. Not everything needs to be a 4MB bootstrap.js webshit that doesn't even load with adblockers enabled.
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
(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.)
I'll note that it's mainly users of Firefox who had to "face the consequences" of firing Eich for his views...
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.
1/0.17 = 5.9 ppd is about half the angular resolution of the commercial Index VR headset, so it does still need a bit more progress before it would be competitive. Or a lot more, giving it a few additional factors of 2 for the fact that it's not emitting from directly inside your pupil, and you probably don't want adjacent pixels bleeding into each other (fwhm is still... half maximum which is quite a lot).
Edit: https://en.wikipedia.org/wiki/High_Efficiency_Image_File_For...
Isn't that because the aspect of merit which is measured by an arm wrestling contest isn't the same as that which is relevant to running a feudal society?
A tournament for selecting a feudal lord would need to measure economic and strategic literacy, intelligence, moral compass, etc.
> ...[rant about 'inheritance' and 'subclassing' and 'hierarchies']...
> If C++ and Java are about type hierarchies and the taxonomy of types, Go is about composition.
How do you get all the way through designing a programming language without realizing how incredibly wrong-headed this is? "Inheritance hierarchies are bad", so... you exclude generics (which are compositional, and have nothing to do with inheritance), and only support subtyping polymorphism via 'interfaces' (ie. inheritance)? That is the exact opposite of his claimed principles!
(And then as a minor concession to programming usability, he adds generics anyway, but only for built in types (maps and arrays), so advanced data structures are still an exercise in void* wrangling.)
> It has nothing to do with privacy concerns. The idea that contact tracing can be done with an app, and not human health professionals, is just plain dumb.
Human health professionals doing contact tracing means exactly that.