summaryrefslogtreecommitdiff
path: root/static/resource/narrative.org
diff options
context:
space:
mode:
Diffstat (limited to 'static/resource/narrative.org')
-rw-r--r--static/resource/narrative.org375
1 files changed, 0 insertions, 375 deletions
diff --git a/static/resource/narrative.org b/static/resource/narrative.org
deleted file mode 100644
index 49b9e62..0000000
--- a/static/resource/narrative.org
+++ /dev/null
@@ -1,375 +0,0 @@
-#+TITLE: Struggle to graduate without nonfree software
-#+LANG: en
-#+AUTHOR: Wojciech Kosior
-#+LICENSE: CC0
-
-Due to pandemic many people experienced deaths of their relatives, others became
-jobless. Those are some severe losses, many of which couldn't be prevented.
-At the same time we also witnessed an embrace of proprietary videoconferencing
-platforms, that brought a huge loss of freedom. Most ppl would disagree over
-how severe this loss is, but one is certain - it *could* be prevented.
-
-As a university student, I struggled to avoid losing freedom and pass my courses
-without surrendering to the imposed not-free-as-in-freedom services,
-often by proposing free/libre solutions instead. I didn't expect to win this
-fight - but now I think it may happen. I describe my fight below so as to
-build up and inspire others.
-
-* Studies
-For over 3 years I've been studying informatics at the AGH University of Science
-and Technology in Kraków, Poland. Over that time I was becoming more and more
-determined to avoid nonfree software. That, among others, meant getting
-a librebooted ThinkPad and switching to GNU/Linux distros that only include
-libre packages.
-
-"What about studies?" - one could ask - "Weren't You required to use Windows?
- Or MS Office? Or some other proprietary tools?"
-
-Actually, a great majority of the jobs could be completed with (or even
-required) free software. In present times there we have the luxury
-of having excellent libre operating systems and libre tools for most tasks,
-including free software implementations of most popular programming languages.
-On those few occasions some nonfree tool was required, I was either able
-to convince given professor to let me do a replacement homework (e.g. doing the
-same exercises under Postgres database instead of Oracle's) or do it at the
-university during other groups' classes. I admit running nonfree software
-on someone else's computer doesn't fully solve the problem of nonfreeness
-and is not something to be proud of. Nevertheless, it just seemed fair.
-
-I was also gradually taking the issue of in-browser javascript
-more seriously. Web pages' js runs in an isolated sandbox, which makes many
-ppl believe it's OK even when it's nonfree. Sandbox might indeed solve
-security issues, but the true problem with proprietary programs lies elsewhere,
-in taking away of user control. Currently, maintaining one's software freedom
-in the field of web browsing is not easy. Numerous sites break with js disabled.
-On many occasions I had to ask colleagues to put me into a Google sheet
-for something studies-related, because I couldn't do that without js
-(also, proprietary js is not the only issue with Google services).
-I only dared to ask them for that, because I knew they were already accessing
-Google sheets.
-
-* Start of the pandemic
-Without bigger problems I completed the 5th semester of my studies. At the
-beginning of 6th - the pandemic began. Universities closed, most students
-traveled home and professors started organizing remote
-lectures and classes. You guessed it - they all chose proprietary platforms.
-The ones used were Cisco Webex, MS Teams, ClickMeeting and, duh, Skype.
-Each of those either doesn't have a free software client or I couldn't find one.
-Of course, the professors expected everyone to be able to easily connect using
-web interface. They didn't realize the problem of nonfree js.
-
-Lectures didn't pose a real problem, since they're not obligatory at the AGH.
-As to lab classes, their form varied from professor to professor. Some only
-described what they want us to do for homework. Then we had to just upload the
-completed homework to UPEL (AGH's modified version of Moodle). Some organized
-non-obligatory consultancies. Many didn't care about actual presence on classes
-and only wanted student to appear at specified time to interactively
-hand homework in. Finally, one expected us all to attend the meetings at lab
-class hours and was very angry about me having issues with it.
-
-What were my actions in those circumstances? I would *very* politely email every
-single professor who announced something would be done via one of the
-problematic platforms. In my mails I usually linked the Costumed Heroes video
-and some free videoconferencing tools (Jami, Jitsi Meet). I often remarked, that
-the service used by them has no free software client available. Centralized
-nature of those services and surveillance being possibly conducted through them
-are also severe issues, but to me - software freedom was the decisive factor.
-
-I'm under impression, that few professors didn't understand the issue or only
-understood it partially. Hence, replies like "the solution would be to run
-the program in a virtual machine" or "You don't need the source code to use the
-service". Fortunately, even though many professors were irritated by my emails,
-most of them eventually agreed to for example use another tool (Jami/Jitsi Meet)
-to receive my homework. I think what helped me a bit is the fact, that they are
-all teaching some field of computer science. Otherwise, the fraction of those
-who don't understand the problem would be way higher. That's why I think it
-could be more difficult on other faculties or in case of lower-level education
-(e.g. schools).
-
-* 6th semester
-As the universities were closing, I was in the middle of doing some kind of
-group homework for machine learning course. It was quite natural, that
-I asked one person doing that homework with me to forward
-what the professor said during Skype sessions. She later continued to do
-me this favor and everything else could be done in free software.
-
-The first real problem was with the artificial intelligence methods course (I shall later
-just call it AI). It was rotational and we managed to have one lab class on-site before
-the pandemic. The homework for this class was to be done in proprietary Framsticks
-application. When emailed, the professor allowed me to do some neural networks
-exercise instead. But I did have double stress, because I then had to ask him to
-provide me with the required materials using some method other than Google Drive
-(which I would be able to download from, but only if someone gave me a link to
-a single file and not to a folder).
-
-Later in march we learned another professor teaching AI wanted us to
-complete an online NVIDIA course and send him a certificate. This was supposed
-to serve as a replacement for a single lab class. The course,
-obviously, required nonfree js. I wrote an email to that professor,
-but did not receive any response.
-
-Also in the early part of the semester, I was supposed to hand in distributed
-systems homework via Webex. When I emailed the professor, he agreed to use Jami
-for that. That was a little victory, but classes of this course were also
-rotational - I knew I would have to ask 3 more professors with subsequent
-homework. The grading system was such, that if one refused,
-I would fail the entire course.
-
-Near the end of March, system programming (i.e. meddling with guts of Linux)
-classes started. Those were obligatory and during Webex meetings students would
-present their homework. The professor didn't want to lose time connecting to other
-services than Webex. At that point, his response didn't give any hope. Especially
-that I knew him from earlier semester and he didn't seem very kind.
-I kept uploading homework exercises to UPEL but I was to live in uncertainty
-through the Easter and long after it.
-
-At some point I emailed two professors about the use of nonfree platforms
-for lectures. One didn't respond at all and the other replied rudely
-and seemed not to understand the issue. That's how I stopped caring about
-lectures.
-
-It was April. I presented second distributed systems homework. But even in cases
-proprietary videoconferencing platforms were not needed,
-there were other difficulties. For example, some lab classes assumed using
-Java packages from Maven repository. Even though I knew given library is
-free software, I would always attempt to avoid using a language-specific
-package manager for it. That's because repositories used by tools like Pip (for Python)
-and Gradle (for Java) allow some sorts nonfree packages and also lack good
-security verification. This deserves its own essay. Eventually, I would
-install libre libraries from there, but only if they were not packaged for my distro
-and there were too many dependencies to install them manually. You can imagine,
-that this costed some time and on my faculty - time is precious.
-
-Also in April, the lazy "do an NVIDIA course" professor sent us a list of
-students who did not send a certificate. Surprisingly, my name was not on the list.
-Instead, I was rated 100% for this exercise. I concluded, that he just wrote down
-surnames of all students who sent him emails with certificates and also mistakenly
-included my surname from my mail... I did not want to be a cheater, so I later
-emailed him about his mistake, but he didn't respond anyway.
-
-More problems with AI were to come. Another professor wanted us to do homework
-in proprietary Choreographe simulator. After learning about the nonfreeness issue,
-he proposed that I use Webots instead and I agreed.
-
-Around that time I was to realize, that the most unkind professor of that semester
-wold the one giving software engineering course. The course had the form of a group
-project, but we were still expected to appear on meetings every week.
-The professor first didn't answer my emails and eventually wrote a long reply
-in which he threatened, that if I miss one more meeting, I'm going to fail the
-course. He wrote why he thinks I'm obliged to connect to ClickMeeting and the
-way he wrote that showed great annoyance or even anger. He did, however, write,
-that he doesn't care whether I connect directly or my voice reaches him through
-colleague's computer. And that's what we did. Me and 1 buddy from my project
-group were connected through Mumble and he was also connected to the meeting
-(as he would anyway). He moved his microphone close to the speaker so that
-I could hear the others and vice-versa. That was so provisional I am very
-surprised it worked!
-
-May. Distributed systems homework presented to 3 professors and 1 left to
-convince. Another AI homework was also supposed to be handed in interactively,
-but the professor first agreed to use Jami and later decided, that he's already
-seen so much AIML stuff, that he doesn't even need my commentary.
-
-End of May was when the situation seemed to be the most overwhelming.
-There was yet no course I knew for sure I would pass, there were still many
-emails to be written and I was already having delays with some homework
-due to lack of time.
-
-In June the semester was theoretically ending, but in practice grades could
-be given until the middle of September. Everyone, who hoped they would be able
-to conduct some classes at the university, now knew it wouldn't be possible.
-One of those ppl was the last professor I had to hand in distributed systems
-homework to. Although he was not eager to use another platform, he agreed
-for Jitsi Meet, which doesn't require installation.
-
-Professor giving network security course also put up with the impossibility
-to organize stationary finals, as he used to. He instead gave us some
-exercise to complete and upload. Unfortunately, we were supposed to use
-Cisco Packet Tracer to simulate networks. The professor was unkind at some
-point earlier, so I was not sure if he would allow me to do some replacement
-task. But he did. The new exercise involved Mininet and nDPI library.
-
-The last AI homework could only be fully done using Jupyter Notebook on Google
-servers. I did what I could on a local Jupyter Notebook instance. I did not
-need to have this 100% completed in order to pass the course.
-
-System programming classes were also finishing in June.
-I wrote another email to the professor. I was afraid he would just say I failed,
-but no. He said he would look at my solutions and decide and *maybe*
-it would be possible to meet at the university in September.
-Hence, I had some hope, but no guarantee.
-
-Now, another, bigger problem - the compilers course included an exam, that was
-supposed to be done through MS Teams. I wrote to the professor preparing it.
-Even though he always seemed to like me, he did not (could not?) give me
-an option to write the exam some other way. I though I would fail then, but
-funnily - Teams failed to handle the load of over 100 students connecting and
-the exam was instead conducted via email (sending photos of solutions).
-
-In that semester we already had seminar classes. The professor wanted
-students to present their prototypes on some meeting, but I didn't have
-mine ready yet, so he allowed me to finish it during summer holidays and
-eventually I avoided the meeting. I also had little contact with my
-thesis supervisor. We were to talk in July and that was the first time
-free software videoconferencing failed me by refusing to work properly
-(there were some issues earlier, but not so severe).
-At least it didn't happen during handing in of some homework...
-
-In summer I also had to do an internship. I first backed out of a well-paid
-(as for internship) offer after learning, that there is no way to
-negotiate a contract, that would allow my code to be released
-as free software. I eventually did another, unpaid internship,
-which had the benefit, that I was able to spend some of its time working
-on my thesis.
-
-In September I finally met with the professor and presented my system
-programming homework. He turned out not to be as unkind as
-he seemed before.
-
-So after all the struggle I finally passed the summer semester and even had
-decent grades. What at some point seemed almost impossible, was now a reality.
-
-* 7th semester
-The winter semester was the last semester of the first-cycle
-studies, so it was shorter - all classes had to finish by the middle of
-December or earlier. Before the semester started in October, university had
-specified some formal rules as to what platforms and tools can be used
-to conduct classes and exams. This was mostly to comply with GDPR.
-Allowed videoconferencing solutions lecturers and teachers can
-officially use were MS Teams, Cisco Webex, ClickMeeting and Google Meet,
-although didn't see anyone use the last one.
-
-This time most professors required presence on meetings.
-The only exception was introduction to security engineering where
-the professor announced there would only be consultancies and uploading
-homework on time equals presence on lab classes.
-
-There was a cryptography course. The professor did not agree to use
-Jitsi Meet citing too big amount of work to bother using another
-platform. Even though he suggested that I write to university
-authorities, I didn't do that, for reasons not related to the topic.
-I just kept writing tests (those were conducted through UPEL, so it
-was not a problem for me) and uploading Jupyter notebooks with completed
-exercises. This course didn't involve anything like interactive handing
-of homework, so the only problem were my "absences".
-
-Situation with computational geometry course was very silimar, with
-the exception, that all homework was to be presented through MS Teams.
-
-Another course I chose was optimization of code for different architectures.
-I knew the professor teaching this. During fortran course on one of the
-earlier semesters he required us to use proprietary ifort compiler.
-On the other hand, he was one of the professors showing appreciation
-for stuff I do well. When I emailed him, he was kind, although
-afraid of using any other platform that those allowed. He suggested
-me to contact student council of our faculty to suggest Jitsi Meet to
-dean and eventually get it hosted by university itself. The professor
-even said, that he would then happily use it for all his classes.
-Unfortunately, student council never responded to my emails.
-I was allowed to gain presence by writing reports instead of
-participating in the meetings. This took more of precious time,
-but I was glad anyway.
-
-For second and final part of the seminar course the professor
-made obligatory consultancies. He initially wanted to stick to allowed
-platforms and even pointed out, that Jitsi Meet also runs on someone
-else's server and hence - is not safer. I then responded with my
-counterpoints and once again asked politely that we use Jitsi Meet.
-I made it clear, that I'd rather fail, than use any proprietary platform
-and he finally agreed.
-
-For optimization of code we were also supposed to be presenting our
-homework interactively, 2 times during the semester. The first time was
-at the beginning of November and the professor wrote, that he agrees
-to use platform not from the official list. He just noted, that he
-doesn't take responsibility for security of any data exchanged
-through it.
-
-Then I had an argument with my supervisor, who got annoyed with
-me (although there were probably other factors, too) and gave an
-ultimatum that I use MS Teams. I didn't agree and my
-supervisor was supposed to inform dean about resignation from
-supervising. Perhaps the dean didn't read the email?
-I'm just guessing. Anyway, I wrote again a few weeks later
-and even borrowed some electronics from my supervisor - almost
-as if the argument never happened.
-
-Around that time someone told on the professors giving security course
-and they started organizing classes via MS Teams, but they still didn't
-require students to do anything during those classes and they allowed
-me to just send them emails at the right time and they marked me present
-based on that. There were also difficulties with Windows VM being required
-for some exploit exercise - but I eventually also avoided Windows, even
-though it required some additional work.
-
-At the beginning of December it was clear, the only problems
-were cryptography and geometry. I wrote another email asking for
-a way to pass the first one. The professor told me to implement some hashing
-algorithm in Jupyter. I suspect he might have needed that as a teaching
-resource. I chose BLAKE2b, implemented it, sent it to him and this way
-passed the course and even got the highest grade for it, despite my
-mistakes in tests. That was surprisingly easy.
-
-I also wrote to the professor giving geometry course. At first, she
-didn't respond. The semester was supposed to end on 15 December
-(although only some of the professors gave final grades that early).
-Before that I wrote another email and I eventually received a determined
-response, that I am being failed for absences. She did not mention
-some of my homework being uploaded late, but I guess that's good for me.
-
-At that point I was going to stop arguing. My supervisor in an email
-got back to the topic of meeting on MS Teams and I responded, that
-I'm not going to pass this semester and thanked for cooperation.
-
-Then, someone convinced me not to hesitate to argue more or seek help
-from university authorities. Or rather, I still didn't want to do the
-second thing, because I already declared to the professor, that I won't.
-But I did write subsequent emails. She agreed for an online meeting
-on 8 January... but on MS Teams only. And I refused again and yet
-again wrote why it is wrong to fail me like that.
-She was not responding to all of my emails and I ended up spending
-a lot of time waiting for replies. She eventually told me again
-to contact the authorities for a permission to use another platform
-and CC'd associate dean in that email. Given that, I no longer felt obligated
-not to inform him about the issue.
-
-As he's always busy, quite a few reminder emails were needed. In the
-meantime, the deadline to upload thesis passed. Actually, that was
-the deadline for those, who wanted to defend in January. Defense
-in March was still possible, it would just be too late to apply
-for second-cycle studies - something I wouldn't be interested in,
-given all the difficulties I faced so far.
-
-The dean eventually responded, but he didn't read into the right email
-in the thread, so another set of reminders was needed. On 13 January
-he finally wrote, that he talked to the professor and she would
-allow me to correct the reports she considered bad.
-No mention of videoconferencing services. Was there another misunderstanding?
-
-The email i received from the professor explained the situation to me.
-The dean pleaded for her to allow me to pass without interactive
-presentation of my homework. So she would then give me a positive
-grade and I would pass the semester, right? In theory only.
-
-She then wrote about how bad my homework is. I never claimed it
-to be perfect, because it was all done in a hurry and I even couldn't fix
-some problems I knew about. But I don't think it was bad either, especially
-considering the mere amount of it.
-She eventually wanted me to correct 2 exercises. So I did.
-I finally uploaded those on 15 January. I had to actually wait 4 more days for
-the grade, but I got it. I finally passed my 7th semester.
-
-Now, there are still some possible pitfalls, e.g. getting statement from my
-supervisor. But after a month of stagnation the case seems to be finally
-heading into the right direction.
-
-When I look behind, I'm actually glad I acted
-how I acted. Perhaps I won't be able to please those who want to see
-me graduate. But I don't think graduating by surrendering to
-nonfree platforms would bring any long-term benefits. Only more compromises.
-Come back in some time to see how this compromise-less effort ends.
-This article will be updated :)
-
-* Notes
-- I called all university teachers professors, although only the Framsticks
-and seminar ones have that title.