HN user

Mavvie

151 karma
Posts0
Comments94
View on HN
No posts found.

I haven't tried this yet, but I wanted to say I think there's a lot of potential in this space. There's so much friction with the current popular solutions...and yet it's so hard to justify trying some of the newer and less popular ones.

I wish you luck because there are a lot of good ideas in here. Running locally and remote debugger are the most exciting to me.

Well, you have to go out of your way to prevent it. The sub-addressing complexity is on the email provider side; ticketmaster doesn't have to do anything for it to work except not reject valid email addresses.

In my experience, most but not all sites will accept "+" email addresses.

The UX of UUIDs 2 years ago

I don't think that's how it works... It's a checksum, not letting you check if each section is part of the key.

At worst, the key would have some portion less entropy since there's a lot of bits used for checksums.

Testcontainers 2 years ago

Can you (or someone else) explain what the alternatives are? How can I write unit tests without mocks or fakes?

I strongly agree with this.

I would add that, at least for me, planning each day out is beneficial as well. When I don't have a plan for a day, I often will sit there, not really doing anything, and not sure what to start doing. This typically ends when I get distracted by something (maybe a question on Slack), and overall leads to some very unproductive days.

Even a simple high-level plan, like "today I want to get these tickets ready for review and work on this RFC", is incredibly helpful for me. A weekly plan may be even more effective, but I struggle to plan that far in advance.

--libcurl 2 years ago

This is pretty interesting. It's not like HTTP needs an intermediate representation, but since cURL is so ubiquitous, it ends up functioning as one. cURL is popular so people write tools that can export requests as cURL, and it's popular so people write tools that can import it.

Idempotency 3 years ago

That's actually the formula for nullipotency, where applying it 0 times is the same as applying it any number of times.

I believe idempotency is when f(f(x)) = f(x)

Huh, can you explain that a bit more for a rust noob like myself?

1. How does it know how to create your Error enum? I guess it's from the #[from]? 2. What happens if your method tries to return something that's not an io::Error or a gz::Error? I guess the compiler catches that? 3. How would you handle doing this for multiple methods in the same file? Would you rename your enum to DecompError or something to avoid conflicts?

Thanks for your post. While it might not be the optimal approach for maximizing profit, I think your Stocketa blog post is absolutely stunning and shows an incredible commitment to quality as well as a very impressive work ethic to spend so much time on it.

If I may ask a question - how did you do it?

The actual quote:

There's a level of admiration I actually have for China. Their basic dictatorship is actually allowing them to turn their economy around on a dime.

I don't think that's wrong? Although it is certainly in bad taste for a prime minister.

I've only ever done river sailing (including some intentional rudderless sailing), but I imagine in the open seas rudderless sailing isn't really feasible (at least in some conditions). Waves might make it impossible on their own.

No, because they're setting acquired_at which marks it as "handled". You only need FOR UPDATE (SKIP LOCKED) if you want to process the event inside a transaction; but the approach in the article is to just bulk "grab the events and mark them as done, atomically"

Setting acquired_at on read guarantees that each event is handled only once. After they've been handled, you can then delete the acquired events in batches too (there are better options than Postgres for permanently storing historical event data of unbounded size).

This bothers me. It's technically true, but ignores a lot of nuance/complexity around real-world event processing needs. This approach means you will never be able to retry event processing in case it fails (or your server is shut down/crashes). So you either have to update the logic to also process events where "acquired_at is older than some timeout", which breaks your "handled only once" guarantee, or you can change to a SELECT FOR UPDATE SKIP LOCKED approach which has its own problems like higher database resource usage (but at least it won't process a slow job twice at the same time).

Load Balancing 3 years ago

So what do you think the disadvantage is of a pull approach? Presumably it's not just better or else tools would use it?

For sure, I agree with you.

I would say that queued jobs being lost is different from an in-flight transaction being auto-rolled-back, but it's not a super important distinction. Like others have said, I think Sidekiq really nailed the free vs premium features and its success is evidence of that.