Hacker News new | past | comments | ask | show | jobs | submit | haimez's comments login

It stands for “Advanced Persistent Threat” - https://en.m.wikipedia.org/wiki/Advanced_persistent_threat


Delete API calls are free, listing the objects in a bucket to know what to delete is not.


Let’s be a little charitable here- having and raising children has been a much, much more dangerous proposition health wise even at your parents generation to say nothing of your grandparents generation.


There’s not a lot to be charitable about in the parent comment. Some poorly researched race replacement bs?

You personally are right, it has never been safer health wise to have children. It has never been more expensive either, win some, lose some.


Expensive relative to expectations. Not in terms of what most people could provide.

That's not bad. It's fine that people expect more and want to be able to provide more before having children (and I do agree the commenter who argued this is somehow confined to the Western world is way out there).

But we need to understand that across most of the developed world - there will be exceptions in pockets here and there - it is not the ability to afford children that has dropped, but that we're not willing to give up what we have to have children at a living standard that was considered good before.

E.g. when I grew up we always had food, but the food we had was dictated by cost in a way I never think about, and wouldn't want to deal with. We lived in less space, and I want more space, not less. Our living standard when I was a kid was fine; far above average for most of the world, about average for where I grew up. But if what it took to have more kids was to go back to that, I wouldn't.

The commenter above can call that soft all they want - I don't feel bad for wanting to enjoy life more than I want more children (I have one son; I might well have another child, but because I'm at a stage where my girlfriend and I can afford it without sacrificing our standard of living and that does place me in a privileged position)


more expensive than when? people had nothing 150 years ago and still had kids, mind you


Yes they, and especially women, had absolutely no choice due to lack of birth control and various repressions. A relevant and useful comparison.


10x reduction in latency, higher storage costs with lower access costs (SSD instead of spinning disks). So high I/O, small files situations (with no need for cross AZ access) are where the benefits can be found.


Or like SSD’s vs spinning disks…


Counterfeiting parts, including passing even a small part off as an original OEM one, absolutely enters into it


This is a non-sequitur to the comment you replied to.


> This seems like a bad idea, because the whole point of an assert is that something shouldn't happen, but might due to a (future?) bug.

And so it’s a bad idea because…?

The whole idea is to notice a bug before it ships. Asserts are usually enabled in test and debug builds. So having an assert hit the “unreachable” path should be a good way to notice “hey, you’ve achieved the unexpected” in a bad way. You’re going to need to clarify in more detail why you think that’s a bad thing. I’m guessing because you would prefer this to be a real runtime check in non debug builds?


It's undefined behavior if the assert triggers in production. It's too greedy for minor performance benefit at the risk of causing strange issues.


Yikes. I did have to go down a little rabbit hole to understand the semantics of that builtin (I don’t normally write C if that wasn’t immediately obvious from the question) but that seems like a really questionable interpretation of “this should never happen”. I would expect the equivalent of a fault being triggered and termination of the program, but I guess this is what the legacy of intentionally obtuse undefined behavior handling in compilers gets you.


The builtin itself is fine. It works exactly as it's intended. It says "I've double and tripple checked this. Trust me compiler. Just go fast". But you should not use it to construct an assert.


Eh. I absolutely get what you're saying. And this is for sure flying very close to the knife's edge. But if your assertion checks don't run in release mode, and due to some bug, those invariants don't hold, well, your program is already going to exhibit undefined behaviour. Why not let the compiler know about the undefined behaviour so it can optimize better?

The nice thing about this approach is that the assertion provides value both in debug and release mode. In debug mode, it checks your invariants. And in release mode, it makes your program smaller and faster.

Personally I quite like rust's choice to have a pair of assert functions: assert!() and debug_assert!(). The standard assert function still does its check in both debug and release mode. And honestly thats a fine default these days. Sure, it makes the binary slightly bigger and the program slightly slower, but on modern computers it usually doesn't matter. And when it does matter (like your assertion check is expensive), we have debug_assert instead.


> But if your assertion checks don't run in release mode, and due to some bug, those invariants don't hold, well, your program is already going to exhibit undefined behaviour. Why not let the compiler know about the undefined behaviour so it can optimize better?

Usually in release mode you want to log the core dump and then fix the bug.


Yeah; thats why I like rust's approach. You can either leave assertions in in release mode, so you get your core dump. Or you can take them out if you're confident they won't fire in order to make the program faster.

The unreachable pragma suggested by the author is just a more extreme version of the latter choice.


this is a true unconditional assert, e.g. "I assert that this condition is true". Problem is that's too much power to throw at most use cases.


LLM’s are spitting out responses based on their inputs. It is (or was) shockingly effective, but there is no generalized math processing going on. That’s not what LLM’s are, that’s not how they work.


And yet, trained on a large corpora of correct math statements, they produce responses that are more often right than wrong (I am taking this for true- it might not be)- which simply raises more questions about the nature of math.


…or the nature of the question and corpus?


The other “tabs” here are other airplanes in flight, depending on being able to land before they run out of fuel. You don’t just ignore one and move on.


> "Pick two randomly" requires no state. Every thread and server can run the same algorithm without regard for each other.

That’s not quite true. Picking between two “buckets” still requires knowing how many “balls” are in each which is state. That state can be local to each server or global, that state can be accessed concurrently or synchronously, but you still have the same problem to solve.


In addition, there is a physical machine somewhere that has all the actual data and it's costly to move. The machine you're connecting to can get taken down by a noisy neighbor and rebalancing data is expensive.


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

Search: