jordoh
It would also be difficult for said professionals to detect IP-(range)-specific backdoors (with as much obfuscation as you like; only send on Tuesdays; encrypted using a string constant elsewhere in the binary), in App Store delivered binaries that are harder to vary per downloader.
Some web apps - [Cryptee](https://crypt.ee/threat-model) is a notable example - address this with a "trust on first use" approach, that makes any change to the (web) code require approval, but that's in the same realm as a desktop app, where you've trusted it on the first download, and trust it to have actually followed through on that promise.
The Last-Modified header can be used in exactly the same way, and isn't blocked by this extension, which harkens back to my original point: this is an extension that appears to see significant use by non-technical users, yet it breaks a browser feature by default. There are plenty of other methods of identifying a unique user that it doesn't prevent, so this seems like a pretty unexpected feature users should take note of.
While the ETag header may have been usable for cross site tracking at some point in the past [1], browser caches are isolated per-origin in Firefox, so there's no longer a cross-site tracking concern. That leaves it usable to identify you across sessions only in a first-party context, just like cookies, IP addresses (to a lesser extent), the Last-Modified header, and any number of other identification techniques ClearURLs doesn't block.
[1] I'd be interested to see any credible evidence of ETag headers being used for tracking in the wild - I've only seen theorizing that it _could_ be used as such, prior to cache isolation being implemented in Firefox and Chrome.
[1]: https://github.com/ruby/irb/blob/master/lib/irb/context.rb#L...
[1] https://api.rubyonrails.org/classes/ActiveRecord/Base.html#c...
[2] http://www.jkfill.com/2012/03/10/preventing-mass-assignment-...
[1] https://www.gettyimages.com/detail/news-photo/ken-griffey-jr...
Edit: and now it's hopefully clarified in the article itself. :)
Whether AdWords should allow "assisted open knife" ads is beside the point. Correct or not, AdWords is counting those as prohibited, the allegation of the OP is that AdWords banning criteria are applied differently to large accounts. I'm suggesting that the criteria is applied _exactly the same_, based on a percentage.
What I'm describing is also how Google Product Listing Ads get moderated: if X% of your items are in violation, your account is automatically shut down, pending appeal. Google sends a warning when you reach (X - Y)%, and another email when you reach X% and your account is shut down. I administrate 30,000+ PLA accounts and deal with this on a daily basis. This banning process is completely automated.
- Google adds some terms like "assisted opening knife" and "assist folding knife" so they are recognized as prohibited knife ads. Adding these terms could very well have been automated based on the terms having a strong association with other terms found alongside prohibited items.
- knife-depots' account suddenly contains X% disallowed knife ads, based on the new terms - where X is relatively large percentage. Account automatically disabled.
- Amazon and Walmart also have X% disallowed knife ads, but X is an extremely small percent of their overall number of items. Accounts remain active.
Fortunately, AdWords is one of the few Google properties where you can actually get a human on the phone and have them intervene with the automated results (though it can certainly take a lot of back and forth, in my personal experience).
In a more general sense, this is something that you constantly run in to if you have your automated systems performing any action that a user could view as punitive. I've yet to see a site that was open about automated actions being such - likely because they don't want to make it too easy to automate getting around the automated rules - but it does seem like there is a reasonable amount of explanation of the system that could diffuse these assumptions of persecution.
1. Whoever touched a line of code last is most familiar with that line of code. I just moved a method to a different module, so following this assumption I am now the person most familiar with every line contained in that method.
2. The line of code triggering the exception is actually at fault. I just changed a value in a configuration file and it triggered an exception off in some code that creates a network connection - code I've never touched.
How faulty these assumptions are probably varies pretty wildly from organization to organization.
Where I work, we send mail through Amazon SES, so we get digests of all the messages that have been marked as spam (stripped of identifying email headers). We see it used on (marketing) newsletters of course, but also on welcome messages; transactional messages (both the "action required to receive money" and "you owe us money" type, though the latter get marked as spam much more frequently); password reset messages; and pretty much anything else we've sent out more than some middling-to-large number of times.
To help deal with this, we include a token in each message and process the digests so marking a message as spam will unsubscribe you (or disable the notification). It's not ideal from our point of view - because we are presumably getting dinged by the mail provider when someone marks a message as spam - but hopefully it helps in the long run since we don't send more messages that will likely just get marked as spam.
When I mark something as spam, I'm doing it to penalize the sender. Whether they made it hard for me to unsubscribe, bought my email from someone else to spam me (hooray for "+blah" gmail aliases), or whatever else - I see it as a different action than unsubscribing. I'm not sure, however, that this difference is commonly perceived. It seems like there are a lot of people out there that use it much less judiciously.
Occasionally I will mark a message as spam in Gmail and get a dialog asking if I want to unsubscribe instead of mark as spam; though I only recall this happening with messages from Google properties. It would be nice (though possibly ripe for abuse) if there was some way to let Gmail know where the unsubscribe link is in the message, so third parties could take advantage of this feature. That way the user could be a little clearer about whether they are punishing the sender, or just want the message to go away.
I agree that the fully indented code is much easier to visually parse - whether that outweighs the refactoring cost is certainly going to vary depending on the team (in addition to personal preference, as you mention).
names.select { |name| name.start_with?("S") }.
map { |name| name.upcase }.
sort.
join(', ')
Which is slightly more annoying in that you need to modify two lines to add a new chained line (the line you are adding and the dot added to the previous line).This also creates a mild headache when refactoring, as any change to the length of the "names" variable would force you to re-align the entire chain. You could do something like:
names.
select { |name| name.start_with?("S") }.
map { |name| name.upcase }.
sort.
join(', ')Ray Traced Quaternion Julia Sets in WebGL
That said, once you switch over to more advanced scaling, the artist loses a lot of the fine control over the result that can really make pixel art shine.