Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove World Sunlight Map as a source #296

Closed
aaron42net opened this issue Feb 9, 2020 · 2 comments
Closed

Remove World Sunlight Map as a source #296

aaron42net opened this issue Feb 9, 2020 · 2 comments

Comments

@aaron42net
Copy link

aaron42net commented Feb 9, 2020

I'm the owner of die.net, the source of the World Sunlight Map image fetched in EarthDownloader.py. As the usage guidelines on https://www.die.net/earth/how.html have mentioned for years, "If you have a use for the World Sunlight Map images, contact me with details and we'll discuss options. I don't charge for the use of the images, but I do want to make sure you minimize your use of my bandwidth and provide a link back to the World Sunlight Map wherever the image is used."

As far as I can tell, no attempt has been made to minimize the use of bandwidth of any of your sources, including die.net. Being nice to your sources would look like:

  • Always supporting Last-Modified or ETag from all sources, converting those to If-Modify-Since or If-None-Match request headers, allowing the server to return 304 if nothing has changed.
  • Not fetching more often than the source usually changes (for example, the World Sunlight Map isn't updated every 15 minutes).
  • Don't ask for a higher-resolution image than is necessary for the current display, instead of always the highest-resolution one.
  • Not fetching if the image has little chance of being seen by a human, such as if the machine is idle, the screen is off, the screensaver is locked, the desktop isn't visible, etc.
  • Have a clear and unambiguous User-Agent (preferably including the link http://peterlevi.com/variety), and if that gets blocked, stop fetching and don't play games with switching it.
  • If permitted by the source, mirror the images via a CDN that you pay the bill for.

As a result of the above, Variety adds an extra 5TB per month to my bandwidth bill. No, thanks.

Rather than asking for permission or paying attention to my previous attempts to stop you from consuming my bandwidth, you've intentionally worked around my attempts to stop you with changes like #173 to switch User-Agent, which references #119 as a reason for implementation.

So I'm now telling you directly: Stop fetching images from die.net.

@peterlevi
Copy link
Member

Hi @aaron42net. Just seeing this bugreport. I apologize for the pain this has caused. I'll remove the source and push an update ASAP.

I'm really sorry, but for whatever reason I have completely missed the instructions on https://www.die.net/earth/how.html. This source was added quite a long time ago when Variety was more of a toy experiment than a real project, then hadn't been touched for a long time, and during those recent updates initiated by #119, it seems I have been way too quick to accept suggested code changes and "make things work" without checking the actual website's usage guidelines.

The latest changes to the user-agent (referenced in #173) were exactly to switch from a generic user agent to a Variety-specific one so remote servers can control it (since those changes the user agent is computed as USER_AGENT = "Variety Wallpaper Changer " + get_version() ).

I'll push an update ASAP, but since Variety is a client-side app, lots of users will remain on older versions for some time and we have no mechanism to force an update on them - if the bandwidth generated by them is still causing an issue, please block these user-agents:

"Variety Wallpaper Changer .*"
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"

Once again, apologies for this. Variety is a project that started way back as a toy project when I was yet quite inexperienced, especially around things like networking and netiquette, and evolved back then when I had way more time, and while later it improved in a lots of aspects (e.g. in the criteria for what is acceptable as a source, author attribution, preferring sources with APIs that can be rate-limited, etc.), there's obviously a lot more to fix and improve for it to become a good net citizen, unfortunately my time for it has been way too scarce in recent years...

@peterlevi
Copy link
Member

Pushed the update, tagged a new 0.8.3 release, and triggered uploads to all PPAs.
But again, it will take quite some time till this update reaches all users, especially those that install from their distro's repositories, so please block based on the above two UAs in the meantime.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants