# Free Software Presentation
## TODO
- [x] Introduction
- [x] What is Software Freedom
- [x] Why is freedom important
- [x] How Free Software Works
- [x] Examples of Free Software
- [x] How Free Software Affects All Freedoms
- [x] Impactful Conclusion
## References
[What is Free Software](https://www.gnu.org/philosophy/free-sw.html)
## Introduction
I had intended to open stating this was a talk on software freedom - a term, I assure you, you will soon become all too familar with.
However, after further thought, and remarking on some of my peers opinions on democracy, I have decided to brand this a talk on freedom.
## Software Freedom
We will though, still need to first discuss sotware freedom. And, to do so, we must understand software. Simply, it is language understood by computers. Since they are stupidly obedient things, it is essentially a dictation of a computer's actions.
Now, when we create software, we write in a human understable language: Python, C, what have you. This is what we call source code and it represents, in legible form, the computer's language. When we need to produce a program from our code, we pass it to a program called the compiler. This translates human language to computer language, also known as machine code. And, voilĂ , we have software.
People make and distribute programs. If you're given a program without being provided it's human legible code that it was made from, you have no way of knowing for certain what that program does. Because us humans don't understand computer language. Of course, you could trust whoever gave you their program. And if it is, per say, someone close to you: a friend or family member, I would imagine that would be fine. But, if perhaps who you were blindly trusting was a mulinational mega corporation or a corrupt government, complications may emerge.
Now we can make our first distinction between software. Proprietary software distributes only the program. Open source software distributes the program as well as the legible code that was compiled to make it - the source code.
So, we may conclude, software freedom is, at least in part, about knowing what a program does. But this merely informs us of our oppression, and we ought to know of it anyway. True freedom demmands more. How much more has been conveniently defined by a group called GNU. That is G.N.U, a recusive acroynmn which stands for Gnu's Not Unix.
### GNU
Here's a quick history lesson: we used to have mainfraims, which were powerful centralised computers accecible via terminals. So several people, with their seperate monitors, would connect to one machine. Unix, an operating system designed for these such systems, started its development with Ken Thompson at the Bell Labs research centre. The GNU project aimed to created their own Unix-like operating system that contained only free software. This project was publically announced in 1983.
### Four Software Freedoms
GNU have provided us with four freedoms they deem to be essential to software freedom which they refer to as Free Software. That is free as in freedom not as in price. These freedoms are as follows.
1. The freedom to run the program as you wish, for any purpose.
Like if I buy a cheesegrater to use as a lemon zester and I use the big holes rather than the small holes. Odd as it may be, I am entitled to do so because that cheesegrater is mine. The cheesegrater company doesn't look over my shoulder ready to report me to the authorities if I incorrectly use their product.
Likewise, when a developer distrobutes software they should not constrain the user's purpose if it does not align with their one.
2. The freedom to study how the program works, and change it so it does your computing as you wish. Access to the source code is a precondition for this.
Back to the cheesegrater analogy, I can drill more holes into my cheesegrater, or fill in holes, or weaponise said cheesegrater - the point is I can change it. And so should we be able to with each program we acquire.
3. The freedom to redistribute copies so you can help others.
I buy a cheesegrater; I utilise the cheesegrater; I then give it away, or sell it, to another in need of a cheesegrater.
4. The freedom to distribute copies of your modified versions to others. By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.
I can give my modified, holeless, weaponised cheesegrater to a friend.
So these freedoms largely apply already to that which isn't software: cheesegraters and such. But not for software. What we can learn from this is that the digital world is a blindspot in our understanding of how things should function.
### How Free Software Works
At this point you may be thinking, I can't read source code so what's the point of having it. Well, to answer briefly, other users will be able to and will fight your battle for you. Software published along with its source code will almost never contain malware - programs intended to harm you. This is for the simple reason that, if they did, someone would point it out.
A benefit of Free Software is that it creates diversity within a particular program's ecosystem. If a developer releases a game, let's say. For the example, it's a single-player campaign game. The developer programs the graphics, the physics, all the components of the game exepct the story. So when you load in, all you see is a void. Now a group of friends from Massachusetts decide to fork the project, maintaining the original code while adding their own in order to contribute their own story. They program the first few levels at the end of which the player is to fight a boss. The Massachusetts crowd wish for this boss to be a yatch-sized spider. Yet half of the player base are aranaphobic. So a few of these arachnophobes who can code fork the project once again, keeping the story thus far, but replacing the final giant arthropod with a mechanical worm. Yet half of the arachnophobes have scoleciphobia and the project is forked again. Again and again this cycle can continue so that as many as possible are catered for.
Free Software permits efficient community feedback and contribution. If you can't contribute yourself, you can offer feedback. If you don't want to do that, someone with the same opinions as you likely will, if not contribute themselves.
## Freedom
### The Relavance of Free Software
You might say, I don't care if my software freedom is compromised; it doesn't affect me. **It does.** In our modern world with computers as its centerpiece, freedom hinges on software freedom.
Freedom of speech, in this day and age where most communication takes place online, is compromised if the platform used, say Twitter, takes down your post.
Freedom of privacy is compromised if your maps app informs its developer where you are travelling, if your smart speaker listens in on your conversations, if every time you query the internet, that search is fed to a virtual model of you sold off to the highest bidder.
Freedom of thought, conscience and religion is compromised if that model can realise your religion or your idelogy, feeding this data back to, let's say, the state. If you are familiar with history, you'll know states have a tendency to persecute on religous and ideological grounds.
In the event of an authoritarian regime taking control of this country, their first means of control would be digital. They would establish their own messaging service, their own social media, their own internet. As has been done already in dicatorships such as North Korea.
How a government could transition to authoritarian is also relavent to Free Software. If all software abided by GNUs four freedoms, a government could not sobpoena a company for the information they collected without the user's knowledge. Information such as the meeting place of a opposition party. Which, in the hands of this government could be used to jepordise that opposition.
### The final Argument
So the argument for Free Software is two fold: principled and practical. All software should strive to be Free Software because, as per our understanding of the world, it makes sense. When I buy something, it is mine. However, when I buy Non-Free software, in practice, it isn't - I'm just sort of allowed to use it for the time being with an agent suveiling me so that I don't provide it to someone else. And, secondly, the practical reason: if we don't encourage Free Software moving forward, we could well loose our other freedoms.
## So why is Non-Free Software so common
Firsly, profit-seeking companies might prefer Non-Free software as they can monopolise on their code and use backdoors to gather information about their users. Companies with sufficient means have wrangled their way into the education system, keeping Children oblivious to software outside of the ecosystem them have been made to use. What has been done is wrong on so many levels. If nothing else, it harms the efficacy of our computer operation as we are using programs not specific to our character but generalised for every user. Preventing exploration into the digital world does not streamline nor make more efficiant our experience, it hinders it.
Schools should embrace the diversity of users and their decision to not participate in a mono-cultured hive-mind. When we create, when we write, when we design, the outcome is the same. So what does it matter the tools that we use. Software is a tool and tools should bend to the needs of the worker. Not hold their operatives captive as they demmand system updates and crash only when we need them most.
## What can we do?
To begin, you can start by using Free Software. The GNU project successfully made their operating system, outsourcing one key component (the kernel) which is Linux. The kernel's role is to facilitate interactions between hardware and software components, like a translator, although not really. Despite this operating system being commonly referred to as "Linux", the GNU people would really rather people say GNU / Linux, or GNU Linux, or GNU plus Linux.
If a whole operating system change is to radical, you could use specific programs which are Free Software. Instead of the photo editing tool Abobe PhotoShop, you could use a program called GIMP. Instead of the web browser Edge, you could use Firefox. Instead of the 3D modelling software SolidWorks, Blender. Instead of the game engines Unity or Unreal, Godot. Instead of Whatsapp, Signal. Instead of Twitter, Mastodon. Instead of Youtube, Odyssee. Visual Studio Code -> Emacs, Age of Empires -> 0AD, C++ -> Rust. And so on and so on.
Although not all of those were examples of Free Software as per GNUs definition, they were all open source. Meaning, at the very least, their is full transparacy between the user and the program and you can modify them for your own use as you please.
## Impactful Conclusion
To summarise, humans tell machines what to do: people are always to blame when ethics are questioned. When the Non-Free software you use spies on you and forwards your daily routine to a foreign government, that isn't the computer's doing, it's a person's. So blame peole; blame people always. When faced with ignorance, with someone unwilling to consider your opinion because to do so would uproot their planned course of actions challenge that person. And continue to challenge them until either you win or you die after trying so long.
Innovations in technology have brought about substantial progress but, as of yet, the consequences of these innovations are not fully understood by everyone. The lives we lead into the world of tommorow will be shaped by the influence of the established, through means of software, on the innocent. Free-Software is a tool for creation; Non-Free Software is a tool for control. I have no doubt it already controls us and, if we do not act to prevent it, it will continue to dictate our lives just as man dictates to machine.