HN user

mansr

619 karma
Posts2
Comments261
View on HN

I stopped reading at the part where he spends a full page on semantic games around the precise meaning of the word vaccine, misspelling the name of a famous dictionary in the process. This person is clearly not being honest about his intentions.

It's the standard method, and I see nothing wrong with it. What you suggest (deliberate exposure) is called a challenge trial. This is normally considered ethical only when an effective cure (e.g. antibiotics) is available. Even so, there are plans to conduct such a trial in the UK, and there's no shortage of volunteers. We'll see if they get approval.

Nothing is misleading. Half the participants got the vaccine, the rest placebo, before going about their usual lives. Now, a few months later, 95 cases have been confirmed across both groups. Of these, 90 had received the placebo and only 5 the vaccine. If the vaccine didn't work at all, the split would be roughly 50/50. A somewhat effective vaccine might result in a 70/30 split, and so on.

One factor speeding up the phase 3 trials is the high rate of infections. Since the evaluation is done at a set number of confirmed cases among the test subjects, this happens much sooner for covid than it would be for just about anything else at this time.

Another factor is money. The covid vaccine trials have done some testing steps in parallel that would normally be done sequentially to avoid wasting money should it fail along the way. So yes, more risks are being taken, but they are financial, not clinical.

This isn't the final evaluation. There will be another at ~150 cases. The numbers may seem small, but this is enough for the purpose of deciding for or against approval. Anything over 80% effectiveness would likely be approved, so it doesn't matter whether the true value (insofar one exists) is 90%, 95%, or something in between. It's useful regardless.

Both groups have (approximately) the same size, in the tens of thousands. The first evaluation is done when 90 or so cases have been confirmed, not knowing which group they belong to. The blinding of these subjects is then unsealed, in this case revealing that 90 of the 95 confirmed infections occurred in the control group. This distribution means the vaccine has been highly effective at preventing infection.

Niels Bohr, widely regarded as an expert, has said that an expert is someone who has made all the mistakes which can be made, in a narrow field. If you want to become an expert, you should presumably pick a suitable narrow field and start making mistakes.

The problem addressed by git or any other serious version control system is complex. Any seemingly simple solution will be severely limited, even if it does some particular things reasonably well (e.g. Subversion).

Git offers the flexibility to let each person work the way they prefer, even (to a large extent) on large shared projects.

With some wrappers and hooks, you could quite easily cripple git so as to emulate most any simple VCS. The aforementioned enterprise products barely work at all, so replicating their non-functionality might require more effort.

Why do keyboards have hard-wired cables anyhow?

Low-speed USB devices are not permitted by the spec to have a detachable cable. The fancier keyboards are probably full- or high-speed, though, so that doesn't apply to them. As someone else said, mechanical strength may have something to do with it. Keyboards get shoved around a lot, and a connector would likely break off too easily.

What I said about inline is true of C99. C++ might be different though.

It is also true that Unix linkers give an error if the final set of object files to link contain more than one external definition of the same symbol. The linker can't tell if functions were marked inline in the source code or not. A definition is a definition. The Microsoft object file format might record this information. If it does, it would appear to be a misguided decision that opens the door for the kind of breakage you're complaining about.

Unix linkers give an error if any symbol is defined in multiple object files, different or not. After all the object files have been combined, remaining undefined symbols are resolved by searching the specified libraries in command line order. Each object from a library that provides a needed definition is selected and its undefined symbols are added to the global list. Some linkers will scan the libraries a second time in order to resolve interdependencies. If at the end of this, the combined set of object files (from command line and from libraries) contain more than one definition for any symbol, an error is raised. The MSVC linker is apparently much more lax in this regard.

With the inline semantics defined by C99 there are two solutions to this problem:

1. Use static inline. Any non-inlined calls will result in an instance of the function with internal linkage. Aside from wasting space with multiple copies of the same function it is harmless. As mentioned, an optimising linker might even merge identical functions across compilation units.

2. Use inline without explicit extern. Non-inlined calls result in an undefined external reference to be resolved by the linker with a definition provided elsewhere. The inline definition is only used when the function is actually inlined and never provides a non-inline definition of the function, internal or external.

Neither of these approaches result in duplicate definitions with external linkage, so the described problem cannot arise.

It's disappointing that Microsoft seem to have chosen the one approach to inline functions that results in this sort of breakage.

Referer spam has been around almost as long as web analytics. What's new is that they found a way to infiltrate Google Analytics, which previously avoided them somehow. I'm surprised Google hasn't come up with a countermeasure yet.