summaryrefslogtreecommitdiff
path: root/static/narrative.org
diff options
context:
space:
mode:
authorNicholas Johnson <nick@nicholasjohnson.ch>2024-05-26 00:00:00 +0000
committerNicholas Johnson <nick@nicholasjohnson.ch>2024-05-26 00:00:00 +0000
commit8193b4daba5bcf5502701f1e9e22f9390bac86b0775d49ef3509444d11ba45e8 (patch)
tree22df9a5b8950530903e61724854d5952c772710b8de36b48a35e9cedc6090112 /static/narrative.org
parent9101e9507e26a9725d5929ebb1fd0c347269056c65842161a8ed3b39cd2607e4 (diff)
downloadjournal-8193b4daba5bcf5502701f1e9e22f9390bac86b0775d49ef3509444d11ba45e8.tar.gz
journal-8193b4daba5bcf5502701f1e9e22f9390bac86b0775d49ef3509444d11ba45e8.zip
Flatten directory structure
Diffstat (limited to 'static/narrative.org')
-rw-r--r--static/narrative.org375
1 files changed, 375 insertions, 0 deletions
diff --git a/static/narrative.org b/static/narrative.org
new file mode 100644
index 0000000..49b9e62
--- /dev/null
+++ b/static/narrative.org
@@ -0,0 +1,375 @@
+#+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.