637 karma · joined September 12, 2022
In terms of preserving state, the answer for rate limiting is that it is almost always far, far less dangerous to fail open than it is to deny requests during a failure. If you really, really, wanted to preserve state (something I'd suggest avoiding for a rate limiter), several KVS's have optional persistence you can turn on, for example, Redis' AOF.
The end services themselves should be designed with some sort of pushback mechanism, so they shouldn't be in any danger of overloading, regardless of what's going on with the rate limiter.
This reads to me as your career shouldn't involve doing something you enjoy. I think this mostly happens in situations where people are doing exactly at work what they'd do at home, and they don't like their job for any vast number of reasons. Usually that's only a problem if you don't have the security to find another job.
My personal experience is that it really helps to be able to be passionate about your work. It's fulfilling. You will perform better at your job, because you will be multiplying your experience from work with your experience at home. Sometimes my hobbies and my work have been literally exactly the same, e.g. I've been able to open source projects from work (which I then work on as a hobby).
The advice I'd give people instead:
Like your job. Get a degree in a field that you both enjoy and that pays well. That sounds glib, but so many people don't think about this at all (part of the focus of the article). You probably won't be able to align your career and the exact activity you enjoy the most, but you should shoot for them being in the same ballpark. Where they don't align? Sure, that's opportunity for a hobby.
Re: "introductional/topical contents", this is what package-info.java files are for.
IME, the most common GC problems I see are:
- incredibly basic settings are wrong, like the max heap size
- the app was written with some very poor behavior, e.g. unreal amounts of allocation or tons of allocation thrashing in tenured heap.
There aren't even a lot of GCs knobs to "manage" anymore compared to a decade ago [0]. Don't treat your GC as a black-box machine with infinitely available resources, and you'll be fine.0) https://docs.oracle.com/en/java/javase/22/gctuning/ergonomic...
- after ignoring the persistent warning you had days in advance that the 12v is dying
- you lose power in the exact few seconds between
- first securing every vehicle door
- and then proceeding to open any other door
- and there's another passenger inside
- and they are also incapable of operating a door
then you will have to either jump your 12v or otherwise somehow unlock your door. The odds are diminishingly small given all of those factors, but wait there's also more: - You don't have all the accidental 12v drains that happen in other vehicles (lights, accessories, etc... accidentally left running)
- The 12v is constantly replenished from the main battery, rather than a more unreliable alternator
So, I suppose there's this and then there are also the odds that your passenger is immediately struck by lightning as they exit the vehicle. At least in the former unlikely scenario, emergency responders can help you out with relative ease and little harm.I own a 2019 model 3 and will be replacing it with a 2024. In those 5 years, it's accumulated a bunch of improvements. I don't exactly have a changelog to work with, but here's what I can think of off the top of my head:
- more powerful rear motor, 10% faster 0-60, breaking 10s quarter mile
- track mode v3
- heat pump
- matrix headlights
- adaptive suspension w/ frequency response suspension dampers
- ryzen media control unit
- triple pane glass
- heated steering wheel
- sport seating
- ventilated seats
- usb-c ports
- rear entertainment system
- HW4
- updated wheels/tires
- exterior styling updates (front bumper, non-chrome handles, etc...)
- interior styling updates (LED lighting, carbon fiber dash, etc...)
Oh, and there's also the fact that I'm only paying 70% of what I did the first time around (inflation adjusted).I'm in the process of buying my 3rd Tesla, because I still don't think there's anything better out there (based on my personal needs). I'm not making any political or moral statements. I'm just buying an excellent vehicle.
I think I'd rather troubleshoot with a well-scripted AI chatbot, than a human being who's forced into the role of an automaton - executing directly from a script. Just, FFS, let me escalate to an actual competently trained human being once I've been through the troubleshooting.
So, statistics and heuristics.
AFAIK, the speedup is almost never function call overhead. As you mention at the tail end, it's all about the compiler optimizations being able to see past the dynamic branch. Good JITs support polymorphic inlining. My (somewhat dated) experience for C++ is that PGO is the solve for this, but it's not widely used. Instead people tend to avoid dynamic dispatch altogether in performance sensitive code.
I think the more general moral of the story is to avoid all kinds of unnecessary dynamic branching in hot sections of code in any language unless you have strong/confidence your compiler/JIT is seeing through it.
Re: car batteries, the difference between the rear-wheel drive and long range is about 20kwh (60kwh vs 80kwh), for $8K. That's $400/kwh and doesn't even include all the other trim differences like having dual motors instead of single.
So, it looks like reality is closer to $300-$400/kwh, depending. Not close to your ideal of $50/kwh, but still much better than $1000/kwh.
1) https://www.tesla.com/energy/design/overview 2) https://service.tesla.com/docs/Public/Energy/Powerwall/Power...
It sounds a lot more intimidating than reality. The puzzles start off easy enough that you can ramp into the difficulty., and they usually have many different possible solutions. You can "win" with easy solutions, and then later revisit them and try to produce the "best" solution. (Often pretty difficult).
To be fair, I did come at them from somewhat of a background in hardware, but my son also loved them (with no such background).
Instead, the recent trend has been that wealthy areas near downtown (e.g. Buckhead) have been trying to incorporate so that they're no longer subsidizing the rest of the city.
I think mass transit can be great in the right contexts. For ATL, I think it makes the most sense in the few sq miles of city proper, not 20+ mi out.
I have always heard and used authz and authn (pronounced auth-z and auth-n). Bare "auth" typically was used to mean both, but IAM was more clear for that in specific contexts. E.G. you might say someone "authed" to indicate both authentication and authorization, and you might have an IAM team that handles both authentication and authorization.
FWIW, I lead an IAM team.