我如何奮鬥才能在不使用非自由軟體的情況下畢業
作者:Wojciech Kosior [1]身為大學生,我和其他所有人一樣在疫情期間掙扎求生。許多人經歷了家人過世或失業。當我在波蘭克拉科夫的 AGH 科技大學攻讀資訊學時,我一直在進行另一場看似不那麼重要,但我熱切認為對我們未來的自由至關重要的戰鬥。我在下面描述我的奮鬥,以鼓勵和啟發他人。
不道德的平台
軟體自由在我們的時代是一個巨大但隱藏的問題。視訊會議等數位通訊技術已成為我們生活中的重心,對許多人來說,使用這些技術是一種救星。他們沒有注意到其運作方式中隱藏的危險:誰控制了這項技術,誰就控制了我們的生活。最近,我們看到了大型科技公司顛覆民主、控制言論、排斥群體和侵犯我們隱私的力量。
軟體自由是一場將控制權歸還給人民的鬥爭。這是一場反對「非自由」軟體的鬥爭,也稱為專有軟體,它對其使用者施加不公正和侵入性的傷害。為了追求我們解放的使命,像我這樣的軟體自由倡導者堅持使用自由軟體。
尤其重要的是將這些理想傳播給新世代。不幸的是,我們經常看到相反的趨勢。在我國大多數電腦教室中發現的預設作業系統是專有的 Microsoft Windows,甚至有些大學還為學生提供許可證。在某個時候,我意識到這種做法實際上只對專有作業系統供應商有利。同樣令人恐懼的是課程組織對非自由 Google 試算表和 Google 表單的依賴程度。
在疫情期間,我們看到教育機構倉促擁抱 Microsoft Teams、Zoom 和 WhatsApp 等專有工具,這些工具受到它們產生的網絡壓力。然後,學校和大學試圖將它們強加於學生身上,學生隨後遭受了使用使用者無法控制的程式而失去自由,以及糟糕的安全性和侵犯隱私的後果。
由於我拒絕使用不道德的軟體,因此完全依賴專有平台造成了道德衝突。我的目標是在不屈服於強加的非自由服務的情況下完成大學學位,方法是說服我的教授[2]允許我僅使用自由軟體替代專有應用程式。我沒想到會贏得一場對抗如此強大力量的戰鬥,但現在,透過禮貌但堅定的行動,我認為我可能已經獲勝了。希望這個故事也能幫助您抵抗。
符合倫理的學習
隨著時間的推移,我越來越決心避免使用非自由軟體。在其他挑戰中,這意味著要獲得一台 Libreboot'ed ThinkPad 並切換到僅包含自由套件的 GNU/Linux 發行版。有人可能會問
那學業呢?您不是被要求使用 Windows 嗎?還是 MS Office?還是其他一些專有工具?
實際上,大多數課堂作業都可以用自由軟體完成。今天,我們很幸運擁有出色的自由作業系統和適用於大多數任務的自由工具。大多數流行的程式語言都有自由軟體實作。在極少數情況下,當嚴格要求使用某些非自由工具時,我能夠說服教授讓我進行替換——例如,使用 PostgreSQL 資料庫而不是 Oracle 完成練習——或者在實驗室的大學電腦上完成作業。我承認,在非自己的電腦上執行非自由軟體並不能完全解決倫理問題。這似乎只是公平的,但這並不是我引以為傲的事情。
我現在也更認真地看待瀏覽器內 JavaScript (js) 的問題。Web js 在隔離的沙箱中執行,這讓許多人認為它是可以接受的,即使它是非自由的。沙箱化可能確實解決了安全問題,但專有程式的真正問題在於其他方面,在於它拒絕讓使用者擁有控制權。目前,在網路瀏覽領域保持軟體自由並不容易。當 js 被禁用時,網站經常發生故障。我不得不請同事幫助我將與學習相關的資料輸入到 Google 試算表中,因為如果沒有啟用 js,我就無法做到這一點。此外,js 程式碼用於實作瀏覽器指紋識別,瀏覽器指紋識別用於追蹤使用者。
溫和的說服
沒有嚴重的問題,我完成了第五個學期的學業。在第六個學期開始時,疫情爆發了。大學關閉了實體設施,因此大多數學生返回家園,教授開始組織遠距課程。不出所料,他們都選擇了專有平台。Cisco WebEx、Microsoft Teams、ClickMeeting 和 Skype 是流行的選擇。我找不到任何這些平台的自由軟體客戶端。此外,由於沒有意識到非自由 js 的問題,教授們期望每個人都能使用任何網路介面輕鬆加入視訊會議。
我如何處理這些要求?我會非常禮貌地發送電子郵件給每一位宣布將使用有問題平台的教授,解釋缺乏合適的自由軟體客戶端。我經常附上一個流行的線上解釋軟體自由和大學問題的連結,即自由軟體基金會 (FSF) 製作的「Costumed Heroes」影片,以及一些其他自由視訊會議程式(如 Jami 和 Jitsi Meet)的連結。
儘管這些集中式平台存在許多有記錄的監視和安全問題,但我解釋說,對我而言,軟體自由是令人困擾的因素。敦促我「在虛擬機器中執行程式」或說我「不需要原始碼即可使用服務」的回覆清楚地表明,我的一些教授不理解,或僅理解部分問題。如果我學習的不是資訊學,我懷疑理解這個問題的人的比例會小得多。
錯失良機
有兩個明顯的關注領域。第一個是存取和參與教學材料;例如,在機器學習課程中,我找到人將教授所說的內容轉發給我。第二個是關於註冊和評估。對於某些遠距課程,不檢查出席率。我跳過了這些。將我的作業上傳到 Moodle 也沒有造成任何問題。
第一個真正的問題出現在人工智慧 (AI) 課程中。它是輪流授課的。第一位教授佈置的作業需要使用專有的 Framsticks 應用程式,但允許我改為做一個神經網路練習。另一位教授同意我可以使用 Webots 而不是 Choreographe 進行模擬練習。還有一位教授要求我們完成一個需要非自由 js 的線上 NVIDIA 課程。這位教授沒有回覆我的電子郵件。
一個分散式系統作業應該透過 WebEx 提交,但那位教授同意讓我改用 Jami。
不確定性和懷疑
出現的另一個問題是在沒有明確政策的情況下持續存在的不確定性。不知道大學是否會認可我的原則是持續壓力的原因。儘管我取得了小小的早期勝利,但其他輪流課程意味著如果我要通過,還需要另外三位教授各自同意,因此直到六月我才能確定我會成功。三月份,系統程式設計課程開始了。這位教授不想浪費時間連接到自由平台來評估我的作業,他沒有給我帶來太多希望,因此我再次要在復活節及以後的日子裡生活在不確定性中。
我認為每門課程都應該至少提供與自由工具互通操作的方式,以便學生至少可以在自由平台上閱讀課程作業,並從這些平台上傳他們的答案。除非大學提供互通操作性,否則對專有軟體的依賴會耗費學生和教授的時間和精力。有一次,我發送電子郵件給兩位教授,詢問他們在講座中使用非自由平台的問題。一位沒有回覆,另一位則粗魯地回覆。他們似乎不理解,但我懷疑他們是在避免任何額外的工作。這對我的參與產生了腐蝕性的影響,我不再關心講座。避免使用我認為會使我面臨安全和自由問題的特定語言套件管理器花費了我大量時間,並延遲了我的學業。時間對我們所有人來說都很寶貴。
關於自由的摩擦
雖然壓力很大,但到目前為止,事情進展得相當順利。但在復活節之後,軟體工程課程出現了第一個大問題。這位教授最初忽略了我的電子郵件,但最終寫了一長篇回覆,並威脅說如果我再缺席一次會議,就會不及格。那封電子郵件的語氣顯示出極大的惱怒,甚至可能是憤怒。有人建議我借助同事的幫助來參加會議。我和另一位同學透過 Mumble 連線,教授也透過 Mumble 進行中介——雖然不完美,但它奏效了!
軟體自由的問題是倫理問題,必須與開源支持者經常優先考慮的其他問題分開。例如,開源倡導者避免將這些重要的自由問題擺上檯面,而只是說原始碼公開可用的軟體將在社群的幫助下實現更高的品質。同時,我們的對手聲稱專有軟體可以帶來更高的收入,從而可以僱用更多的開發人員來改進它。
編譯器課程考試將透過 Microsoft Teams 進行。再次強調,堅持我的原則,我認為我會不及格。有趣的是,是 Teams 出了問題。它無法處理數十名學生的連線,因此考試改為透過電子郵件進行。另一方面,在七月份與我的論文指導教授聯繫期間,Jami 在會議期間崩潰了。沒有軟體是完美的。但是使用自由軟體,當它崩潰時,您至少可以保留這兩個部分。
並非一定是軟體的功能方面造成了圍繞缺乏軟體自由的摩擦。在夏天,我必須做實習。在得知雇主會將我的程式碼設為非自由後,我退出了有薪職位。我最終做了另一個無薪實習。
因此,經過我所有的掙扎,我終於通過了暑期學期,甚至取得了不錯的成績。在某個時候看起來幾乎不可能的事情,現在變成了現實。
專有軟體在各個層面都被強加
在冬季學期之前,教授們收到了一份符合資料保護法的允許視訊會議平台清單。其中包含 Microsoft Teams、Cisco WebEx、ClickMeeting 和 Google Meet。您肯定會看到這裡的諷刺之處!
一位教授同意在他的所有課程中使用 Jitsi Meet,並建議我請學生會向院長推薦它,但學生會從未回覆我的電子郵件。提供更高資料保護能力的高品質軟體被故意擱置一旁,轉而支持商業非自由解決方案,這似乎是企業腐敗地奪取教育機構的案例。自由軟體沒有獲得批准,教授繼續透過 WebEx 與其他學生溝通。
誤解
正如我之前提到的,儘管許多學者是非常有知識的電腦科學家,並且在資訊學方面經驗豐富,但他們普遍對圍繞軟體的政治和倫理學的理解很差。
舉辦研討會的教授聲稱,由於自由平台也在別人的伺服器上執行,「它不可能更安全」。我回應說,Jitsi Meet 允許建立獨立的實例,這消除了依賴單一公司的需要。我也注意到,缺乏自由客戶端是其他服務的主要問題。令人遺憾的是,在這個層次的教授,他們完全掌握了中介加密和端到端加密之間的區別,他們會在課堂上教授它,但不會在日常工作中實踐它。
在另一次,我反對使用 Windows VM 進行滲透測試練習。這位教授評論說,如果僅限於測試自由伺服器,就無法成為一名優秀的滲透測試人員。我放棄了回覆他,但我認為專有平台應該預設被認為是不安全的,例如,由於它們可能存在的後門。
擁有決心
在某個時候,我與我的指導教授發生了爭吵,他給我下達了最後通牒,我必須使用 Microsoft Teams。我不同意,我的指導教授應該通知院長撤回對我的指導。也許院長沒有讀到那封電子郵件?我只是猜測。無論如何,幾週後,我甚至向我的指導教授借了一些電子產品——幾乎就像爭吵從未發生過一樣。
後來,一位不同意在不使用 Teams 的情況下讓我通過課程的教授想以我「缺席」為由讓我 Fail 掉,儘管我整個學期都在上傳作業。經過長時間的爭論後,我被提供了一個選擇,可以在 1 月 8 日線上會面……在 Teams 上!我再次禮貌地拒絕了,並重申了我的觀點。這位教授最終在電子郵件中 CC 了副院長。與此同時,一月份論文答辯的上傳論文截止日期已過。在發送了許多提醒電子郵件後,終於收到了回覆,並且透過院長的斡旋,我獲得了成績,通過了第七個學期,並在三月份成功答辯了我的論文。
結論
回顧過去,我為自己的行為感到自豪。我冒著學業不及格的風險,而且如果我屈服於使用不道德且不安全的軟體產品,我的最終成績會比現在更低。但我對此感到滿意。我不認為屈服於非自由平台會帶來任何長期的好處——只會帶來更多的妥協。
我們可以看到有些人對軟體自由原則不寬容,但最終這些人很少,而且 AGH 大學的大多數教職員實際上對我都很友善。感謝他們,我現在有證據證明,在不依賴專有軟體的情況下學習、畢業……甚至生活是有可能的。經過所有這些艱苦的經歷,我感到比以往任何時候都更加獨立,我甚至收到了知名 RMS [3] 的讚賞。希望我的故事能幫助更多學生達到我現在的狀態。
努力僅執行自由程式迫使,並將繼續迫使我獲得新技能。我現在對網路技術有足夠的了解,可以讓幾個網站無需 JavaScript 即可運作。但我的經驗中最棒的是,我將能夠與他人分享我的修復程式,並最終使一部分全球資訊網在自由的情況下可用。