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 python
3 and also get the package for python
3 (on systems that default to 2.x).
⬆
Update (hours later): almost 5,900 now.