#+title: User freedom on the web #+date: <2022-01-25> The user freedom issues on the web are slightly complicated. - Client-side: is code executed on the client machine (e.g. javascript) free? If so then the user's freedom is protected. - Then there's also the case when the client blocks the execution of nonfree javascript (e.g. by using [[https://www.gnu.org/software/librejs/][LibreJS]]), in which case the user's freedom is still protected. - There are also false positives when using LibreJS, when the javascript code is free, but not labelled or annoated in a LibreJS-compliant way. In this case, since the client code is free it is safe to whitelist the scripts. - Server-side: is the server not under the user's (individual or collective) control, doing computing on the user's behalf? If so then that's bad (SaaSS), otherwise user freedom respecting. - Examples of computing inherently one's own include translation, photo editing etc. - Examples of computing not inherently one's own are generally activities requiring communication with others' computers, include accessing information published by others (e.g. reading a blog post) and publishing information (e.g. tweeting). Case studies: - Visiting [[https://fsf.org][the FSF homepage]] in a graphical browser like Firefox :: This is fine, because all Javascript is trivial or LibreJS compliant. Reading information published by the FSF is computing not inherently one's own, so it's not SaaSS hence freedom respecting. - Tooting on Mastodon using its web client :: This is generally fine, as Mastodon webclient is free software, and some instances (like hostux.social) are LibreJS-compliant. Publishing microblogposts is a communication act, thus the Mastodon service that does so is not SasSS. - Watching videos on Peertube using its webclient :: Even though Peertube is unusable with LibreJS on, it is free software from backend to frontend. Whitelisting is generally safe. Watching videos is again access information published by others, thus not SaaSS. - Recaptcha :: Requires nonfree JS, bad. - Watching YouTube videos on an invidious proxy :: similarly reading tweets on nitter, reading stuff on bibliogram or doing these activities using a free software client. This is certainly OK on the frontend as well as backend since it's communication. - Routing on osmand :: Osmand is a free software client and all computation happens locally so it's good. - Routing on osm.org :: It depends whether the routing calculation is done locally using free javascript programs, or remotely (SaaSS). - Reading github issues :: Doable with LibreJS blocking all non-trivial nonfree javascript, and it is communications. - Publishing tweets using free software clients :: Using free clients is fine on the client side, and publication counts as communication i.e. not SaaSS. [[https://www.fsf.org/twitter][This is what the FSF does]]. - Get weather forecast :: Even though the forecast is done by computation on meteorological data, the user did not supply data, thus such computation does not count as SaaSS. It is similar to when someone does computation in their head (to outline, draft and revise) before publishing a blog post. We can spot some trends from these case studies: - Generally, a free software (not necessarily web) client is good. Many tools offer help with this, including the alternative frontends, haketilo and woot.tech. - F-droid Non-Free Network Service antifeature is not consistent with the above method. In fact, it is not clear what is the definition of this antifeature. For example, free alternative frontends like [[https://f-droid.org/en/packages/org.schabi.newpipe/][NewPipe]] and [[https://f-droid.org/en/packages/com.jonjomckay.fritter/][Fritter]] are labelled with such antifeature, though by the analysis above these are fine. - AGPL is mostly irrelevant in this discussion because it is mostly concerned with the freedom of the service provider, even though it is the best software license. - It's OK freedom-wise to use GAFAM service as long as the client is free and the service does not count as SaaSS, though there are separate concerns like user privacy. Further readings: - [[https://www.gnu.org/philosophy/who-does-that-server-really-serve.en.html][Who Does That Server Really Serve?]] - [[https://www.gnu.org/philosophy/network-services-arent-free-or-nonfree.html][Network Services Aren't Free or Nonfree; They Raise Other Issues]]