Today:
Today’s Social Software: Licenses
Repo - Short for repository. It’s a project. The folder (directory) holds all of the code for a specific project.
Cloning - a copy of a repository. For example, you may have your main repo on the GitHub server, then make a clone (copy) onto your own personal laptop. You effectively now have two different copies, and you may make changes to the one on your laptop for a while before eventually pushing those changes to the main repo on the server.
Commit - A saved moment in time that you are marking as important. You add a short message explaining what you did in your code.
Push - When you make updates to your own personal clone of a repo, then want to sync so those updates are added to the original main repo that you had initially copied.
Pull Request - When you want the main repository to add in the updates you’ve made to your own copy of the repo, you submit this is a request. You (or someone else) may be the one to review this request, depending on who controls the remote repo.
Pull - If there are new changes in the remote repo and you want them in your cloned copy, you pull them and they will (ideally) merge into your own code.
Branches allow you to safely develop features, fix bugs, or try experiments in your code, all done separately from the rest of your previous work on a project.
It’s a little like a branching narrative and you can continue to work on branches separately. Usually you create a branch when you want to make a new feature or bug fix. After you add your new feature or solve your bug you commit your code in that branch. Then you usually merge that branch back into your Main and delete the extra branch.
drawing of git branching
simple
more complex branching
2 options:
Git is open source software that runs on your computer or on a server.
GitHub is proprietary commercial server space for your Git projects, with a nice GUI :) (perhaps I’m oversimplifying)
There are many alternatives to GitHub, including using our own anti-soft server.
When we talk about licensing, we are talking about how you may use, modify and share code.
While it may potentially seem to be of minor consequence (or maybe not), programmers have lots of opinions on this. Licensing and our thoughts on it are influenced by culture, politics, personal experience, personal ethics and worldview.
An Open Letter to Hobbyists, Bill Gates, 1976
The word “free” or “freedom” in English has several meanings. Free software is an older term than Open Source. Both deal with who may get access to source code, how they may use, modify and share it.
Freedom 0: The freedom to run the program for any purpose.
Freedom 1: The freedom to study how the program works, and change it to make it do what you wish.
Freedom 2: The freedom to redistribute and make copies so you can help your neighbour.
Freedom 3: The freedom to improve the program, and release your improvements (and modified versions in general) to the public, so that the whole community benefits.
The Free Software Licenses are a hack on copyright. They use the legal system of licensing but then add in to their license a list of freedoms and restrictions that require certain freedoms to be passed on to users of the licensed software.
Open Source software was an attempt at reforming the ethos of free software and to bring the ideas and advantages of free software to commercial industry.
Open-source software (OSS) is computer software that is released under a license in which the copyright holder grants users the rights to use, study, change, and distribute the software and its source code to anyone and for any purpose.
Some of the purposes of creating and using open source software:
Localization
Where FLOSS (Free, Libre and Open Source) licenses are used for software projects, artists and other creators making non-software projects may want to also grant similar terms to their own creative works.
Creative Commons is a set of legal tools, a nonprofit organization, as well as a global network and a movement — all inspired by people’s willingness to share their creativity and knowledge, and enabled by a set of open copyright licenses. Creative Commons began in response to an outdated global copyright legal system. CC licenses are built on copyright and are designed to give more options to creators who want to share. Over time, the role and value of Creative Commons has expanded. This unit will introduce you to where CC came from and where it is headed.
Creative works (software, art, music, film, etc) with no copyright restrictions. The work is either ‘out of copyright’ (such as the works of William Shakespeare, Jane Austen, Poe) or were
How do works become public domain?
Public Domain images on Pexels
Read the ml5.js Code of Conduct Call for comment, 7 minutes Read the Anti-Capitalist Software License, 4 minutes Read Freedom Isn’t Free by Wendy Liu, 15 minutes Review the Peer Production License (yes, this is the same Wiki software that Wikipedia uses. Click View history to see all of the edits and contributors that collectively wrote this. This is version control software for a wiki.)
Pick a project of yours to publish to the internet on GitHub. Choose with intention: a project that makes sense to share in this way for you. It can be artwork, software, writing, poetry, etc. Choose a license for the work and add the license to your repository. At minimum your README.md file should contain 1. title, 2. description explaining what your repository is, 3. and list the license. You may also want to include info on how to use or adapt your project in your README. Make sure to make this a markdown file and use proper markdown formatting.
You should also include the text of the full license as a separate document inside the repo.
Your repo could consist of one file or multiple.
Separately from the repo create a blog post on your class blog. Link to and describe the project you are sharing with the world. Why did you select the license that you selected? Why did you reject others that you evaluated? Describe how the license you chose supports your goals for the project.