04.07.21
Gemini version available ♊︎Pro-Free Software Foundation Petition Soon Reaching 6,000 Signatures (and Still Rising Steadily)
Related: The FSF Got a Tonne of Free Media Coverage/Publicity While the OSI Goes Defunct Completely (a Corpse of an Institution, Weaponised Against Free Software) | Looks Like the Pro-FSF Petition Will Double the Number of Signatures of FSF Haters | [Meme] Attacking Hydras, Attacking Communities | It’s Hard to Remove a Man Based on a Lie | Defend Richard Stallman!
Summary: It seems rather apparent that not many people have been conned by the hateful corporations, their corporate media, and corporate-led (or funded) NGOs that insisted FSF should reject its very own founder
The above-shown (charted) data can be generated using the publicly-accessible data, albeit this data is hosted by a monopoly and proprietary software trap. That’s what anti-FSF petitioners chose as their platform!
A picture is worth a thousand words.
With Git installed fetch the repos in their current form, as follows: cd /tmp && git clone https://github.com/rms-open-letter/rms-open-letter.github.io.git && git clone https://github.com/rms-support-letter/rms-support-letter.github.io.git
Running the following code in python3 should then be possible (this may take a while!):
# author: Kezi # license: gplv3 import time import os import subprocess from threading import Thread from datetime import datetime start_time = 1616522054+60*60*4 stop_time = int(time.time()) path_open = "/tmp/rms-open-letter.github.io" # https://github.com/rms-open-letter/rms-open-letter.github.io.git path_support = "/tmp/rms-support-letter.github.io" # https://github.com/rms-support-letter/rms-support-letter.github.io.git cwd = os.getcwd() def count_open(): lol=subprocess.check_output(['sh', '-c', f"cd {path_open}; cat index.md | grep -e \"^1.\" -e \"^- \" | wc -l"]) return int(lol) def count_support(): lol=subprocess.check_output(['sh', '-c', f"cd {path_support}; ls _data/signed/ | wc -l"]) return int(lol) def checkout_open(date): try: subprocess.check_output(['sh', '-c', f"cd {path_open}; git checkout -f `git rev-list -n 1 --before=\"{date}\" main`"]) except: pass def checkout_support(date): try: subprocess.check_output(['sh', '-c', f"cd {path_support}; git checkout -f `git rev-list -n 1 --before=\"{date}\" master`"]) except: pass def time_machine(timestamp): print("time machine", datetime.fromtimestamp(timestamp), timestamp) date=datetime.utcfromtimestamp(timestamp).strftime('%Y-%m-%d %H:%M') thread1 = Thread(target = checkout_open, args = (date, )) thread1.start() thread2 = Thread(target = checkout_support, args = (date, )) thread2.start() thread1.join() thread2.join() dates=[] points_open=[] points_support=[] for i in range(start_time, stop_time, 60*5): time_machine(i) dates.append(datetime.fromtimestamp(i)) points_open.append(count_open()) points_support.append(count_support()) import matplotlib.pyplot as plt import matplotlib.dates as md plt.subplots_adjust(bottom=0.2) plt.xticks(rotation=25) ax = plt.gca() xfmt = md.DateFormatter('%Y-%m-%d') ax.xaxis.set_major_formatter(xfmt) plt.plot(dates, points_open, label="rms hate letter") plt.subplots_adjust(bottom=0.2) plt.xticks(rotation=25) ax = plt.gca() xfmt = md.DateFormatter('%Y-%m-%d') ax.xaxis.set_major_formatter(xfmt) plt.plot(dates, points_support, label="rms support letter") plt.legend() plt.show()
On Debian-like systems one may also need to apt-get install python3-matplotlib
(for rendering the graph). On my laptop it takes 8 minutes to generate. As the list grows it’ll take longer and longer to re-generate. Be sure to use python3 and also get the package for python3 (on systems that default to 2.x). █
Update (hours later): almost 5,900 now.