

I drink because I like to support local business. It just happens that the local business I want to support are breweries.
I drink because I like to support local business. It just happens that the local business I want to support are breweries.
It seems like Japan’s government has made such app
Liberals are just sheep. They believe whatever the media tells them.
That projection.
My first reaction when seeing the salute was ” oh come on, it can’t be that bad… oh it’s way worse than I thought”
Basically it’s just an optimization of a double nested for loop. It’s a way to avoid running the inner for loop when it is known there will be no hit.
This is useful when we for example want to find all product orders of customers in a particular country. The way we can do this is to first filter all customers by their country, and then match orders by the remaining customers. The matching step is the double for loop.
Something like this:
for order in orders:
for customer in customers_in_country:
if order.customer_id == customer.id:
…
Many orders won’t match a customer in the above query, so we want to single out these orders before we run the expensive inner for loop. The way they do it is to create a cache using a Bloom filter. I’d recommend looking it up, but it’s a probabilistic cache that’s fast and space efficient, at the cost of letting through some false positives. With this particular use case it’s ok to have some false positives. The worst thing that can happen is that the inner for loop is run more times than necessary.
The final code is something like this:
bloom_filter = create_bloom(customers_in_country)
for order in orders:
if bloom_filter.contains(order.customer_id):
for customer in customers_in_country:
if order.customer_id == customer.id:
…
Edit: this comment probably contain many inaccuracies, as I’ve never done this kind of stuff in practice, so don’t rely too much on it.
In EU with their GDPR/cookie laws. I’m pretty sure hiding the declining of tracking or cookies behind a paywall is not supported under those laws.