Week 7: Creative Commons, Open Source and Public Domain

Week 7: Creative Commons, Open Source and Public Domain

Today:

  • Vocab review
  • Branching
  • Free, Libre and Open Source software (and licenses)
  • Creative Commons and Public Domain

Today’s Social Software: Licenses

Warmup: The Arctice Code Vault

video / propaganda

Vocab review:

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.

Branching

branching

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.

git branching
drawing of git branching

simple branch simple

more complex branching
more complex branching

Resources

Version Control on your own computer

2 options:

  • CLI (Command Line) with Git
  • GUI app with programs like GitHub for Desktop

Git Isn’t a Web Service

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.

Resources

Licenses

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.

Open Letter to Hobbyists 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.

Free Software

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.

  • “Free as in speech, not free as in beer” (Libre)
  • Focuses on freedom as a philosophical idea versus technical considerations

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

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:

Creative Commons and Public Domain

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.

Public Domain

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?

  • the copyright has expired (example: Mozart)
  • the copyright owner failed to follow copyright renewal rules (example: The New 3 Stages cartoon)
  • the copyright owner deliberately places it in the public domain, known as “dedication,” (example: public domain images on Flickr)
  • copyright law does not protect this type of work, such as ideas, facts, domain names, mechanical parts, fonts, song titles, chord progressions… (example: any government documents or images including from NASA, etc)

Public Domain images on Pexels

Homework

Read

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.)

Write

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.

Resources