HNHacker News
TopNewBestAskShowJobs

_fq4v

4,309 karma · joined October 4, 2014

submissionscomments
_fq4v··on HTTP-over-QUIC will officially become HTTP/3
> I can not find there a single hint that anything is encrypted, and I would have been very surprised if I had. The security considerations do even explicitly acknowledge that it's up to the application to encrypt the payload if it wants to.

Plain text is typically used as the opposite of 'binary'. You are intending to say 'unencrypted' or 'clear text', not 'plain text'. SCTP is not encrypted by default. It is a transport protocol and it is intended that

> Well, yeah, but then what's the advantage over QUIC? It's also a complete flow control and encryption stack in user space if you want to run it over DTLS! I mean, I don't mind SCTP, but it's not like the kernel implementation is of any help when you want to run it over DTLS ...

the advantage is that DTLS over SCTP is an internet standard that was created organically by a variety of motivated individuals and organizations. DTLS over SCTP does not require kernel encryption, and is implementable in userspace. This is similar to how TLS is implemented in userspace but uses the kernel TCP drivers. SCTP has been a standard for almost two decades and DTLS over SCTP for a similarly long time. There is no reason to replace something that works, with something that is exactly the same, except for the fact it's invented by Google.

You claim QUIC is encrypted. It is not. QUIC is a transport protocol and transport protocols need their headers to be inspectable to provide good routing, etc. The payloads are encrypted, like any other transport protocol.

The point is that there is no technical advantage to QUIC over DTLS over SCTP over UDP. Thus, we should reject the new standard in favor of the existing one.

This is similar to how, if someone made a POSIX-like specification that fulfilled all the same requirements as POSIX, we shouldn't simply adopt because it's newer. If the new technology offers no advantage over the old, then the new technology should be rejected as offering nothing new.

_fq4v··on HTTP-over-QUIC will officially become HTTP/3
From wikipedia [1]:

> HTTP/3 (originally named QUIC) is an experimental transport layer[1] network protocol designed by Jim Roskind at Google,[2] initially implemented in 2012,[3] and announced publicly in 2013 as experimentation broadened

and then

> In June 2015, an Internet Draft of a specification for QUIC was submitted to the IETF for standardization

Unless you count 'developed independently by Google and then three years later submitted to IETF for standardization' as 'developed from scratch by an IETF working group', I fail to see how your assertion is backed by actual events.

For the record, SCTP has been standardized since 2000, and it was actually developed by an IETF working group.

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

_fq4v··on HTTP-over-QUIC will officially become HTTP/3
QUIC is a re-implementation of SCTP, an internet standard protocol. Google thinks it's better because they wrote it. Everyone else rolls their eyes.
_fq4v··on Millennial Men Leave Perplexing Hole in Hot U.S. Job Market
I like how the reason to care about men's failure to launch is the lack of reasonable spousal options for women. Men are people too, independent of their utility to women
_fq4v··on Arguing against using protobuffers
Product and coproduct types are not category theory (what is that?)
_fq4v··on Arguing against using protobuffers
C++ is a legacy language when it comes to data representation. Its ideas on what constitutes 'data' are from a different era. That is not a criticism of C++ or its utility. It is just a fact that data representation has changed a lot since the time of C++s development.

Products and coproduct types are not academic wankery.

_fq4v··on Arguing against using protobuffers
Ah right... when you can't attack the ideas, attack the author. Sandy is a Haskell enthusiast, and it is not a surprise that his criticism of protobuf is inspired heavily by that.

The argument presented is that protobuf does not attempt to even replicate the best practices we already have in terms of data representation. It makes sense why languages like C are constrained in their data representations -- they want to be close to the machine. However, a language meant literally to specify data really ought to be able to handle the basic competencies of its field (like sum and product types and polymorphism) with ease.

There is no excuse in 2018 for a data language without polymorphism and without product and co-product types. Compatibility with legacy or substandard languages is not an excuse for poor design. Compatibility with needed legacy languages should be the thing that's tacked on, not basic functionality.

_fq4v··on Disclosure of autism at work holds risks and benefits
I had a friend in elementary school that was diagnosed aspergers. I mean... the kid was a bit strange, don't get me wrong, but it wasn't really going to affect him anymore than other people's oddities affect them. He grew up, mellowed out, and is doing just fine. On the other hand, a lot of 'normal' people ended up as complete losers.

I mean... the oddities that led him to be diagnosed included things like lack of eye contact and bizarre play habits. But, honestly, these are rather unimportant in the grand scheme of things, because the 'normies' were missing pretty fundamental, yet non-diagnosable, personality traits, such as ambition and conscientiousness

_fq4v··on If monads are the solution, what is the problem?
In haskell? I'd construct an API that could be used like the following. This looks like the code we write at the place i work at:

     runService=
       s <- note SocketConnectionError $ socket AF_INET ...
       note CouldNotListen $ listen s 5
       note CouldNotBind $ bind s ...
       
       forever $ do
          client <- note CouldNotAccept $ accept s
          response <- serveRequest client
          ...
The signatures of socket, bind, etc, would look like (for example):

    socket :: ExceptT SocketError IO Int
    listen :: Int -> Int -> ExceptT ListenError IO ()
Then, at top level

    main = runExceptT runService >>=
           either handleError pure

    handleError (SocketConnectionError rsn) = <try again, maybe>
    handleError ...
The key here is that error handling is factored out. The 'runService' function expresses concisely all the steps taken, and the entire concern of error handling is factored out into the 'handleError' function, whose behavior I can actually change based on what I may want. In a C implementation, changing error handling strategies, would mean passing some kind of flag in (you could rebuild exceptions using setjmp/longjmp, but meh).
_fq4v··on Finding a Therapist
Americans have systematically destroyed / left the various community organizations and ties and/or interpersonal relationships that in the past would have been the place to go for these things. Like, after our seven miscarriages, people suggested a therapist, which we saw. We saw the top rated therapist in our area for pregnancy loss grief, but honestly, she was quite useless in comparison to our two sets of married in-laws (quite a rarity these days), our priest, our deacon, and our deacon's wife, who have been significantly more helpful simply by being there and being close to us.

The thing is that therapy can be bought, and Americans love spending money on things. You can't buy relationships. This is my -- admittedly completely unfounded -- explanation.

_fq4v··on XARs: An efficient system for self-contained executables
If you statically link, it doesn't matter what version of glibc is on the target machine, because it's not used.
_fq4v··on The rise and fall of Sugru
Wow, I'm surprised to hear this. My wife and I bought an antique dresser. It was in perfect condition except some of the metal handles had broken apart. We didn't want to buy a mismatched handle, and we didn't want to have to replace all the handles, which were so beautiful, to achieve consistency. My wife researched a bit, and she used sugru in a very thin layer to hold the back together. You could never tell the handle is broken, and the hold is very strong. It's a wonder material. We tried so many things to get the metal to stick, but nothing was strong enough. Sugru was.
_fq4v··on US Births Dip to 30-yr Low; Fertility Rate Sinks Further Below Replacement Level
I totally agree. A man who sits at home all day (or even after work), drinks, and plays video games, is not someone who is going to make me a better person, in any respect. I'd cut my losses. The last thing anyone needs is to be associated with a loser.
_fq4v··on US Births Dip to 30-yr Low; Fertility Rate Sinks Further Below Replacement Level
We know a couple like this, and if I were the wife, I'd leave him. He's a nice guy and all, but he's utterly useless, and I've told him that a few times. I'm just a friend though, and his wife puts up with him. I just don't get it -- she's a smart, educated woman, and he's quite educated as well, but I don't see how a grown adult can act like he does. Their marriage feels abnormal though, and I can see it breaking apart in the future. Perhaps this is a reason why divorce rates are up too, if this behavior is considered normal.
_fq4v··on Non-Recursive Make Considered Harmful: Build Systems at Scale (2016) [pdf]
I mean... Nix and Guix build entire systems off of the idea of capturing every single dependency in the build system, and they work in production
_fq4v··on Conversations with a six-year-old on functional programming
I mean... honestly, understanding functions is not overly difficult. The only reason we don't expect children to understand them is because we don't teach it to them. On the other hand, we teach them bizarrely detailed and extensive algorithms for doing all sorts of computations on the rational numbers, and expect them to be able to do them perfectly.
_fq4v··on C Is Not a Low-Level Language
The Itanium processor did exactly this. Other than being a commercial flop, it was found to be quite difficult to actually get the compiler to generate good management instructions, and x86 was often able to beat out an itanium core at the same clock speed
_fq4v··on Ask HN: Anyone making money through algorithmic trading?
Yes. I have a very simple algorithm. Expressed as a function

f(state of the market) = purchase shares in a fund that tracks the S&P 500

Total return: 12-20%/yr. Sometimes more, sometimes less

_fq4v··on Microsoft, Google, Mozilla, and Apple Object to W3C Fork of DOM Spec
A good first step in enforcing web standards would be if browsers would detect these rule violations, and -- instead of failing -- put a giant banner on the top of the page warning end users that the site may be compromised and could compromise data.

Soon, every business will be clamoring to fix their buggy software, and users will still be able to access the unsafe websites they so desire.

_fq4v··on Microsoft, Google, Mozilla, and Apple Object to W3C Fork of DOM Spec
To be fair, I only use obscure type-safe functional programming frameworks. That's what I'm employed to do, and this obviously impacts my feelings on the matter. Personally, I think it's irresponsible to use anything that could be this unsafe. This doesn't mean everyone needs to use FP, just that frameworks and libraries should be chosen so as to guarantee safety. There are easy-to-use libraries for all these things in every language.

In no other world of engineering is this attitude okay. If you were a civil engineer and had to hold a license to practice due to the danger your designs could present to society, this attitude would eventually cause you to lose your ability to practice. It's becoming more and more clear that software can have similar levels of impact, and software engineers should practice as scuh.

_fq4v··on Microsoft, Google, Mozilla, and Apple Object to W3C Fork of DOM Spec
> and having to be extremely conscious of any possible stray < that could sneak in to a page without being quoted, would have been preferable to:

Any system that publishes content that would let this kind of thing pass is incredibly insecure, and shouldn't be on the internet. Today it's a stray <. Tomorrow it's a stray <script>

It's no wonder software is where it is today with attitudes like these.

_fq4v··on Fuchsia is not Linux
You have to be kidding right? Microkernels have been used in production for decades in situations where safety, accuracy, and robustness are key. QNX is a microkernel used in real-time systems to great avail and great stability. Unlike linux, it's the sort of kernel you could really trust to run important infrastructure, like automobiles, unmanned aircraft, high speed trains, and robotic surgery.

Just because you don't consciously interact with them on a daily basis, does not mean they do not exist. My guess is that QNX and kernels like it are the reason you can take for granted such obvious things as your car braking correctly, your train not derailing, and your robot surgeon not crashing.

In today's world, we're so used to software breaking that if it doesn't break, we oftentimes think it must not exist. But, there is a whole world of reliable software out there that can actually be trusted. You don't hear about it often, because they work so well.

_fq4v··on How the West Got China Wrong
> Most people, including myself, find the idea of eating dog meat abhorrent

A Muslim person might find someone eating pig morally abhorrent and a Hindu may find someone eating beef reprehensible.

Grow up — people can eat what they like and what’s food is going to differ between places. If you prioritize your own personal food preferences over the right of others to eat a perfectly ethical food, you’re just spreading xenophobia.

I have never understood why people are so upset that other humans eat animals.

_fq4v··on The Big Vitamin D Mistake
This supports my lived experience. Found to be incredibly low in vitamin D, and diagnosed with autoimmune thyroiditis. Doctor said to supplement with 2000 IU being the max per day.

After seeing no improvement whatsoever in vitamin D levels, and after talking with others with the same issue, I self medicated to 10000 IU / day.

Lo and behold my vitamin D levels went back up and my auto-antibodies went back down.

_fq4v··on Young, Vegetarian, Non-Smoking Indians Are Struggling With Heart Disease
Don't be so sure about that. My family is Indian and Catholic, which means our diets have always been much more like the "typical" American diet... lots of beef, pork, and chicken; less ghee than vegetarian Indian food; no fried food (why fry vegetables, when you can just cook in animal fat?); and about as much potato and bread as in the US. Grandparents still have or had all the problems in the article even though they don't eat any added sugar, and have cut down on fats, etc. Parents and aunts/uncles shaping out to be the same way.
← PreviousPage 3 of 3