Hacker Newsnew | past | comments | ask | show | jobs | submit | erkl's commentslogin


thx


QUIC operates on top of UDP, which would make it layer 5.


QUIC is the transport layer (layer 4).

> QUIC is an experimental transport layer network protocol [1]

You can run layer 4 on top of layer 4. (Just as you could say, run TCP layer 4 on top of HTTP layer 7.)

[1] https://en.wikipedia.org/wiki/QUIC



I agree, but in this case we're not talking about reasonable false positives (e.g. toast burning or candles being blown out). I wouldn't put up with a £10 smoke detector waking me up in the middle of the night for no discernible reason, much less one I paid £89 + shipping for.


Unless you know something about SHA-512 that I don't, calling it less secure than SHA-512/256 seems like a mistake.


SHA-512 allows a length extension attack that SHA-512/256 does not. Some links:

http://en.wikipedia.org/wiki/Length_extension_attack http://cryptopals.com/sets/4/challenges/29/


First off, thanks for the reply.

I have to say it feels a bit weird to deduct points (so to speak) from a highly regarded cryptographic hash function because it doesn't outright prevent one particular, broken MAC generation scheme, but I guess the argument has some merit.

While I think it's harmless to say that SHA-512/256 is stronger than SHA-256 (as they otherwise provide the same theoretical level of security), I still think it's wrong to claim that SHA-512/256 is also stronger than SHA-512, which has a vastly greater theoretical security margin.

Just use a MAC algorithm that isn't terrible.


Susceptibility to length extension would also have disqualified SHA2-512 from SHA-3, where that property was a requirement, so it seems like the cryptographic community has come to conclusion about this.

The "security margin" of a full SHA2-512 digest, over its truncated SHA2-512/256 alternative, is not meaningful in practice.

If you want to use full-width SHA2-512, go ahead. SHA2-512/256 is safer.


Devil's advocate: 10 years from now if SHA-3 is dominant and HMAC has faded into obscurity, how hard will it be to get programmers to understand the difference between hash function and MAC? Keeping in mind that they barely understand today.


Now, I'm not sure this is useful at all, but I think it would make sense for the value of an if-expression to be Option<T>.


That might actually make sense... and I have to say that it would be useful, too. Quite often I find myself doing if condition { Some(foo) } else { None }; being able to just write if condition { foo } could be neat syntactic sugar for that (though it might also be confusing, since in Rust generally types don't form magically like that). The solution I'd come up with was just to give booleans a .then method (maybe they already have one that i missed).


> An unknown address family will return a '0'.

In this particular case, returning 0 doesn't necessarily indicate failure. Binding a socket to port 0 means you're asking the operating system to pick an available port for you, which one might argue is a reasonably safe default for unknown address families.


No, there is no 'default' at play here. If you don't know what address family is in use then you should simply abort rather than to let the end user of your product guess that the address family code is the culprit.

Let it crash, as close as possible to the point of origin of a problem is a very good principle.


This throws an error:

    typeof x; // throws an error
    let x = 1;
This doesn't:

    typeof x; // returns "undefined"
    var x = 1;
While using variables before declaring them is bad practice, I think it's fair to argue that this behaviour is inconsistent.


    let x = 0;
    function typeof_wrapper(y) { return typeof y; }

    (function() {
        typeof_wrapper(x); // throws an error
        let x = 1;
    })();

    (function() {
        typeof_wrapper(x); // returns "undefined"
        var x = 1;
    })();
Again, typeof isn't throwing the error, the runtime is, because a variable declared with "let" is being referenced before the declaration. It's not inconsistent, it's one of the main points of "let".

You're essentially arguing that a feature added because the old behaviour was undesirable is inconsistent because it's not exhibiting the old undesirable behaviour.


If a publicly distributed first-hand account by the person in question isn't "solid proof," what exactly are you looking for? What reason do you have to think she's being anything less than truthful?


Not judging her story as truthful does not imply judging it as not (or "anything less than") truthful either.

Her story as far as the article describes, is not an account, it's an accusation without much factual, actionable data. You normally don't judge on accusations until you have tried within reason to obtain factual data from both parties involved.


My approach is different actually. While I think the criminal justice "beyond a shadow of a doubt" standard is sensible for many criminal trials, because I have no legal power over github, I treat these things more like civil suits. Which means I just look for "the preponderance of the evidence". In this case there are varying amounts of evidence for all three of the following:

1) workplace harassment against women is quite common

2) such harassment is frequently ignored

3) there was some harassment in this case

And there's no evidence that I've seen that suggests there was no harassment or that it was handled properly by management. Therefore for the time being my assumption is that the harassment and mismanagement both happened.

That said, although I have seen mountains of evidence for 1) and 2), because the amount of evidence for the specific situation is small, that means a small amount of counter-evidence about the specific situation could easily shift the balance of probabilities.

That said, I have seen quite a bit of evidence that such accusations are only rarely false, so while I would change my balance of properties readily, I don't expect that to happen.


An accusation is not a proof, at least not in any civilized country. As for your other question, it's hard to prove a negative but if you want reasons, well, github doesn't have any past record of sexism and no one has ever quit from github. So the least we can do is give them the benefit of the doubt, right? Or shall we grab our pitchforks?


The corollary of your benefit of the doubt for github is "Horvath is probably lying or at best mistaken." Why is that your default assumption?


Because for two years she said the opposite? She is, was, or is and was obviously lying, it is just a matter of when and how much. Was she lying before when she said everything was awesome, or is she lying now?

You could play the super long odds, everything was AWESOME for the past two years, but just turned awful. Then she was only lying now (because "I've been harassed by 'leadership' at GitHub for two years..."). That would paint her in the absolute best light, and it IMHO, rather unrealistic.

You could even play the super-super long odds, and assume everything she said before was a lie (said it was good, it was actually awful) and then things BECAME good recently and she doubled-down on lying and said things were bad.

... in my case, it isn't an assumption. It is a expectation based on prior behavior.


She has previously classified someone complaining to her employer that she used foul language during a speech at a conference where she was representing her employer as harassment. This makes me question her judgment regarding what should be considered harassment.


I'll quote Lea Verou here: "not accepting something as de facto objective truth w/ no info != thinking one is lying. It's being rational instead of emotional." https://twitter.com/LeaVerou/status/445001688923914241

Here's an example:

X: The economy of Southern Portugal during the first half of the 13th century was bad. Do you agree?

Y: I don't know, I don't have enough info and absolutely zero knowledge of Portugal's economy during the 13th century.

X: are you calling me a liar?


that seems like a poor analogy to me. Try this one

Harry: I can't afford to do that

Tom: I don't know, I don't have enough info here to know if you can afford to do it or not.

Bob: Are you saying that Tom is lying, or that he doesn't know his own situation?

The big difference in this case is that while it is totally plausible for X and Y in your conversation to know literally nothing about Portugal, in my example it is not plausible for Harry to be unaware of his own situation without being an idiot. So when Tom 'withholds judgment' on Harry's situation, he is saying that evidence directly from Harry is untrustworthy - Harry is either a liar or an idiot. (I introduced the third person, Bob, as in this case Tom is Horvath and she is not the one responding to you, doubting Tom).


This is a wrong analogy because it doesn't involve grave accusations of a third party (Portugal's economy in my case and github in the other).


ok, try this

  Harry: John punched me     
  Tom: I don't know, I don't have enough info here to know if you were punched or not     
  Bob: Are you saying that Tom is lying, or that he can't recognise when he's being punched?


If I tweet that Github once kicked my puppy, is that "solid proof"?

There's even the possibility that she's being completely truthful, but GitHub's side of the situation is relevant and changes the full picture.


> what exactly are you looking for

Corroboration. Unless Julie Ann Horvath suffered in silence AND everyone else turned a blind eye, then there will be people who can support her story and provide additional credence to what she says.

> What reason do you have to think she's being anything less than truthful?

Experience. How often have we read a sensationalist-sounding story on the internet[0] that, in the end, turned out to be over-blown or an outright deception?

0 - "Single person claims that large/popular entity has done something despicable/outrageous! More at 11."


There are three sides to every story. In this case there is her side, github's side and the truth. It is not that someone is lying, it is that people perceive things differently and it takes time to detangle perceptions to reach the truth. Let's wait for the truth before casting stones in either direction ...


A counter-claim by the opposite party. more witnesses. evidence.

This isn't a formal court, but the court of public opinion can (in some cases) be more hurtful and more damaging than a real court that is merely exercising governmental powers.


Because by definition it's not. You need to corroborate with other views before making a conclusion. So far we only have some bite-sized anecdotes.

What's more is her testimony thus far has been very vague. She hasn't described any concrete event.


Without a proof that is legally acceptable in a court of law, it's just her word against the companies.

I am not implying what she is saying is false. As @Jare said, "Her story as far as the article describes, is not an account, it's an accusation without much factual, actionable data."


Packages in the Go standard library are no different from user packages – they're just included in the Go distribution. If you find the need to modify anything in net/http (to fix a bug, add low-level hooks, etc), just copy it into a subfolder in your project, like so:

> cp -R $GOROOT/src/pkg/net/http ./net/http

Then simply change all "net/http" imports to "./net/http". Now you're free to carry out any changes you'd like.

P.S: Just because you can do this doesn't mean you should.


Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: