HN user

hdpe

2 karma
Posts0
Comments2
View on HN
No posts found.

Great list, even if I disagree with many of the ratings!

But astonished that Optional isn't mentioned either there or in the comments. A second way to represent no-value, with unclear and holy-war-ushering guidance on when to use, and the not exactly terse syntax I see everywhere:

Optional<Ick> ickOpt = Optional.ofNullable(ickGiver.newIck()); ickOpt.flatMap(IckWtfer::wtf).ifPresentOrElse((Wtf wtf) -> unreadable(wtf)), () -> { log.warn("in what universe is this clearer than a simple if == null statement?!"); });

Hi, developer on Cultivate here.

We ask to access data on all websites because our list of supported sites changes daily, and it would simply be too onerous to go through the web store approval processes for three different browsers every time we want to update them. So instead the extension periodically calls home to get our list of supported domains, then, on browser navigation, only does anything interesting if the current domain matches that allowlist. I think this is pretty typical for an extension of this type.

On your edit, "sav[ing] your search history on all e-commerce sites" makes this sound much more shadowy than it really is. All that is happening is that, on some sites such as Amazon, the URL and content of the page you are visiting are parameters used in generating product recommendations, and so are sent back to our servers to enable us to do this. We don't currently use this data for any other purpose. Our privacy policy leaves open the option for us to use this in aggregated anonymous analytics in future.