HackerTrans
TopNewTrendsCommentsPastAskShowJobs

azurelake

no profile record

comments

azurelake
·letztes Jahr·discuss
You have to understand that Broadcom isn't actually Broadcom the chipmaker. It's a private equity firm that used be named Avago Technologies before it bought Broadcom. So squeezing until there's nothing left is the plan.

https://digitstodollars.com/2022/06/15/what-has-broadcom-bec...
azurelake
·vor 2 Jahren·discuss
> Put another way, automated tests don’t go far enough. We need yet another higher layer of abstraction. Computers are better at deciding what tests to run and when, and are also better at interpreting the results.

Sounds like you might be interested in https://antithesis.com/ (no affiliation).
azurelake
·vor 2 Jahren·discuss
MySQL has a very mature open source HA story with the flavors of group replication, as well as being able to replicate DDL. Not to mention Orchestrator and friends.

As a matter of fact, EnterpriseDB (the largest contributor to Postgres) has a paid multi master offering, so there's anti incentives in place to improve its HA story...
azurelake
·vor 2 Jahren·discuss
You can also add add GSIs (with their caveats) without any re-work.
azurelake
·vor 2 Jahren·discuss
Your second sentence is more on the right path (speaking for myself at least). It's about labeling and observing the literal physiological sensation that is occurring in your body and choosing how to react vs. identifying strongly with the current emotion and reacting.

Easier said than done, of course!
azurelake
·vor 2 Jahren·discuss
I’d be curious to hear more detail about the FoundationDB data loss issue that you saw? Do you remember what version / what year that you saw it?
azurelake
·vor 2 Jahren·discuss
Elixir is in the process of adding a gradual type system right now FWIW.
azurelake
·vor 2 Jahren·discuss
One of the best articles I've seen on here this year! I didn't know about the existence of `pg_hint_plan`.
azurelake
·vor 2 Jahren·discuss
> Define "actual experiences".

People without aphantasia literally count sheep to go to sleep.
azurelake
·vor 2 Jahren·discuss
Same. I would pay 50 / month for an Elixir plugin that had a comparable amount of polish to RubyMine.
azurelake
·vor 2 Jahren·discuss
My argument against wrapping for backend services is that is:

1. I think that it is preferable to handle the error where it happened instead of at the top of the stack. For a backend service, there's really only three things you want to do with an error: log it, maybe bump some metrics, and return an error code and ID to the client. You have a lot more information available (including a stack trace if desired) if you handle it at this point.

2. By wrapping the error up the call stack, you're building an ad hoc stack trace. Performance wise, this is (probably, haven't measured) a lot better than an actual stack trace, but as you said yourself, the top concern is debug-ability and developer velocity.

3. Wrapping an error doesn't provide just a stack though, you can add values to the error! Except...what does that really buy you vs. just adding the values to your structured logging system going down the stack vs. doing it on the way back up in an ad-hoc way? Those wrapped error values are a lot more difficult to work with in Grafana vs. searching based on fields.

4. If I have a stack trace, structured log fields, and a correlation ID, I personally don't get any value out of messages like ("could not open file), as I can just use the stack trace to go look at exactly what the line of code is doing. You could argue that with good enough wrapping, looking at the code wouldn't even be necessary, but I think that's pretty rare in practice. It also seems like a lot of extra work to spend a minute loading up the code in an IDE.

5. As mentioned in 1), what the client gets is just an error code and trace ID anyways. In fact, we actively don't want the wrapped context to be sent back to the client since it can be a security concern. If that's the case, we need to remove it and log it anyways. Why not just log the information in the first place?

Anyways, curious to hear your thoughts. I used to advocate for wrapping errors, FWIW.
azurelake
·vor 2 Jahren·discuss
Thank you!
azurelake
·vor 2 Jahren·discuss
Curious what the gem is?
azurelake
·vor 2 Jahren·discuss
Can’t wait!
azurelake
·vor 2 Jahren·discuss
I’m curious if you’re willing and able to share: Are you using FoundationDB as the data store for Antithesis?
azurelake
·vor 2 Jahren·discuss
Vector clocks give a partial ordering. FDB version stamps give a total ordering by having a single process issue them for the entire cluster. There's a good breakdown here: https://blog.the-pans.com/notes-on-the-foundationdb-paper/
azurelake
·vor 3 Jahren·discuss
That's more or less what Kafka is.
azurelake
·vor 3 Jahren·discuss
Probably not too much to say that’s specific to FLAME. Closures are serializable and can be sent as messages to actors on the BEAM with a few caveats.

From a quick look at the code, this looks the magic line: https://github.com/phoenixframework/flame/blob/main/lib/flam...
azurelake
·vor 3 Jahren·discuss
> Like most things, it's more complex than that,

Sure, no doubt. My point wasn't really about the particularities. It was around the mistaken idea that I see sometimes where people believe that TrueTime allows for synchronized global writes without any need for consensus.
azurelake
·vor 3 Jahren·discuss
> who doesn't want instantaneous global writes

I want to gently note since I see a lot of misunderstanding around Spanner and global writes: Global writes need at least one round trip to each data center, and so they're still subject to the speed of light.