HN user

lenticular

784 karma

I'm a functional programmer, data scientist, and former geophysicist.

Posts0
Comments241
View on HN
No posts found.

That just means that there was an impact at around the same time. There's been numerous impacts like this that have been claimed to be the cause of Younger Dryas in the past. However, just because there was an impact doesn't mean it had anything to do with YD.

The Atlantic meridional overturning current shutdown from a freshwater pulse is much more parsimonious, and is exactly what we would expect from the physics of the Laurentide melt going into the Atlantic.

Impacts still don't explain the multiple advance and retreats during the Laurentide, but it is obvious why that would occur with the AMOC shutdown explanation:

Melting causes the AMOC to shut down, causing nothern hemisphere cooling. The cooling reduces melting, inducing the AMOC to start back up, increasing melting once again.

No, speaking as a former glaciologist, that's not likely to be true. The parent poster is correct. Younger Dryas featured multiple advances and retreats, which is inconsistent with an impact. Multiple impact over many centuries just isn't that statistically likely, and we would see better evidence of it.

Instead, the most probably cause is freshwater pulses coming out of the melting Laurentide ice sheet changing circulation in the Atlantic. This is actually quite well supported.

Younger Dryas was also confined to the parts of the northern hemisphere, mainly in higher latitudes. A large enough impact to significantly alter climate would see the resulting particulates globally mix in the atmosphere, resulting in more uniform cooling.

Instead, the fact that it was confined to parts of the northern hemisphere also supports the freshwater pulse hypothesis, since it is only a change in the transport of heat from the tropics to the pole, not a change in total heat.

The fact that freshwater pulses from the Laurentide ice sheet caused so much cooling is actually a concern with climate change. It's possible that it could happen again with melting of the Greenland Ice Sheet, at least a weakened version of it (the Laurentide Ice Sheet dwarfed the GIS).

Sequential access is O(1) just like mutable arrays. These structures really are fast and practical. The benefits of immutability are enormous. That's why they are so popular.

Edit: That's true about log32 and log2 become close in the limit, but that's irrelevant for practical data sizes. For example,

log2(10^6) ~ 20,

log32(10^6) ~ 4

That's a 5x difference.

Modern persistent tree-based data structures are usually O(log32n) random access, which is essentially O(1) for all practical purposes. With a mutable array of references, random access follows one pointer, while these structures follow usually less than 5. Sequential access is usually O(1).

These kind of persistent data structures are already the standard data structures in Scala and Clojure, and they are fast enough for the vast majority of non-numerical purposes. In typical access patterns, they are faster than mutable arrays.

These persistent structures use what's called structural sharing. The simplest persistent structure is just a regular linked list. While random access is O(n), inserting, deleting, or concating is O(1). Since the list is not mutated, we can insert an element to the head of the list just by taking the new element and making a pointer between it and the original list. The original list is not modified, nor is it copied.

More sophisticated persistent structures like Funkia List have O(log32n) access, which is basically constant time. This makes them better general-purpose data structures than mutable arrays.

Residents don't sleep much, so this doesn't surprise me at all.

Related, the residency process needs to be massively reformed. The flimsy justification for making people responsible for human lives work 80 hours a week is usually that the long hours help them learn faster. But that's really BS. The brain has an incredibly hard time forming new memories when sleep deprived.

I know a couple of nurses who often talk about how spaced-out residents are at night. They'll page them to consult on something, usually waking them up. The residents will usually just blearily agree with whatever the nurse was planning on doing, so they aren't getting in meaningful physician supervision.

Yeah, Neanderthal is great (I'm a Clojure a user). It's got support for structured sparse matrices (like Toeplitz) the last I checked, but not general CSC/CSR matrices.

I'm eagerly awaiting their sparse matrix support. It's unbelievable that the entire JVM doesn't have a single comprehensive, production quality sparse matrix library [0]. This is one of the big things keeping my machine learning in Python.

We're talking about employment here. Masculine vs. feminine has nothing to do with job performance except in maybe porn or something.

If masculine men are preferred, then that means everyone else isn't. It's an obvious avenue for discrimination against women and LGBT people.

I'm a very masculine gay man (I'm just stating that as a fact, I'm not better than anyone else for it). I do know many more effeminate gay men. Things really are more difficult in the workplace for them especially, not jut in my experience, but empirically. I'm glad I don't have that affect because it makes my life easier, but biases like this can creep in and will always be damaging.

I doubt it is anywhere near just as likely to flow in the opposite direction. It's not like masculine white males are favored just because of their voice pitch. That ideal as the ideal of power is deeply ingrained in our society.

More generally, humans will basically always show bias towards those in more dominant groups, because currying favor with such people is a far better winning strategy than being nice to low-status individuals. Whether the Hutus and Tutsis, white and black, masculine male vs effeminate, etc, it always is the same.

This is just an unfortunate thing about the human brain, but we can use our reasoning ability to correct it. But first, we have to accept hat it exists.

It's really easy to do this with pure functional programming in impure languages like Scala. You can use arbitrary impure code within lazy IO values. Outside, the functional purity makes reasoning easy. If, as recommended, there is only a single point in your program where the IO values are actually executed, then the execution order can be reasoned about statically.

It's pretty incredible how recent many of our seemingly inalienable rights (actual freedom of speech, de jure racial equality, right to representation, prohibition of the use of illegally obtained evidence, etc) have actually only been around a few decades, mostly thanks to the visionary Warren and Burger courts.

They were considered dangerous activist judges by many in their time.

They're usually evangelicals. Evangelicals outnumber Catholics in the US, and also outnumber all mainline Protestent denominations (Methodist, Lutheran, etc) combined. They're fast gaining ground in Latin America as well.

Not all evangelicals are so adamantly anti-reason, but I'd be very confident in saying most are. Evangelical Christianity in the US is lazy and cruel. The Bible is used to justify their worst impulses, while they ignore all the parts about loving your enemies, etc. It's not a demanding religion. It's easy. Their god doesn't care about charity or peace that take effort and compassion, but only that you are on His team.

Whereas with composition, you now need to manually implement all 20+ methods in the interface, just to make the pass-through call. This adds a tremendous amount of boilerplate to the code.

Inheritance is not necessary for this. The traditional way of achieving this in functional languages is to use a closure to return an object/record. Instead of brittle inheritance, just pass this object to another function that returns an object modified however you want it. Objects can be combined too, achieving the same goal as multiple inheritance, but less dangerous. Simple, easy, succinct, composable.

Giving up tea presumably would mean giving up something the poster presumably finds pleasurable. Drinking tap water instead of bottled has no such trade off. There's a big difference between asking people to live like monks and asking them to not consume things that give them little to no value.

It's not that you can't make money off it, it's that this sort of mindless unnecessary consumption has severe social and environmental consequences.