📆 March 30, 2020 | ⏱️ 5 minutes read | 🏷️ computing, siue

Rejecting Discord and Google Colab

Background

This semester I took Deep Learning at SIUe. Deep learning is a senior level CS elective course. I’ll call the professor, “Professor X” to preserve anonymity.

Story

In Deep Learning class, after the lectures, we had to get into groups for our class project. The class project consisted of designing and implementing our own neural network which would do some novel task. It didn’t take me long to get into a group. The issue as always was finding a communication platform that we could all use that was free software. Since most students opt for proprietary walled gardens instead such as Discord, I had a lot of difficulty because I wasn’t willing to use Discord. Our whole group of four agreed on using Discord except for me. Email wouldn’t be viable. It’s not great for real time communication and file sharing. Even after I explained that I don’t use proprietary software, the group still did not want to budge as I expected. So the admin of the Discord “channel” and I got together and set up a Matrix bridge. I was surprised at how easy this was. Because Matrix has a Matrix-Discord bridge available and there is a public bot called t2bot, I was able to use Riot.im client instead of Discord. Riot.im is free software and Matrix is an open protocol which is more acceptable than the proprietary walled garden of Discord. The bot allowed me to create a Matrix room which bridged Discord and the Matrix network. It took less than ten minutes to set up. Now that I got the hang of using it, I’m able to get it working in less than five minutes. There are a few quirks but overall it works fantastically and it’s completely free. I recommend donating if you use the bot since there is no charge for using it. It’s a great tool for avoiding proprietary Discord and Slack.

Google Colab is a service Google offers that gives researchers and students a free GPU. It can be used for things like training neural networks in Python. It wasn’t required for this course per se, but if you didn’t have one you had better have a GPU or be in a group with a member that had a GPU. I have a computer with a GPU, but it is AMD, not Nvidia so it wouldn’t work with the Python libraries like Keras and Tensorflow we were using to train the neural networks. I discovered this after I had already set up the machine for class unfortunately. I really took issue with Google Colab being basically required. If students didn’t agree to the Google terms of service, how would it be possible to do the project? You could have relied on a group member to have an account and train the networks, but that just pushes the problem back a step to your team member agreeing to the terms of service. Worse, Colab requires proprietary JavaScript in the browser so you would have to run proprietary code to use it. And you know Google is collecting your experiment data in case you find something of interest because that’s their whole evil business model.

I ended up emailing Professor X about the issue explaining that students shouldn’t have to agree to Google’s terms of service and run proprietary JavaScript just to take Deep Learning class. He responded saying unfortunately that while he understands my concerns that’s the only way the class could exist and also it was in the syllabus. I don’t believe that at all. If it was within budget, the school could offer students GPUs in a lab to train the neural networks the same way the networking lab has special networking equipment for each student. Of course SIUe isn’t going to do that because it costs lots of money and using a service from an evil data collecting company costs only your soul. Besides, no one except me in the whole computer science department would care about the ethical advantage of students having their own dedicated GPUs, so it wasn’t in SIUe’s interest to purchase GPUs for each student.

There were other problems with the class as well not related to proprietary software. I believe the average grade on the midterm was below 50%. There was a lot of background needed to understand the concepts in class that many students didn’t have. I felt like my time was being wasted every day in the class because too much material was being covered way too quickly to really learn anything. I don’t say that about many classes because there’s always the student responsibility to study, but if you ask me that class was a mess. So after I found out my GPU wouldn’t work and I couldn’t train our group’s network myself, I completely lost motivation for the project. There was no way for me to run the code since I refused to sign up to Google Colab. I couldn’t even check if my code ran and due to COVID-19, I couldn’t get with any group members who had a GPU. The only option was to rent a VPS with a GPU and neural network training capabilities. I decided ultimately that I shouldn’t have to and wasn’t going to rent a VPS just to pass a class. Despite having our midpoint report finished and a working neural network, I wasn’t really learning anything to the depth I wanted to in that class, and the proprietary Google Colab had me discouraged, so I dropped the class.