Today:
This week’s social software: git and GitHub
who
lists everyone signed into the server
ls ..
when you sign in, or ls ~/..
from anywhere will list the enclosing directory holding your own personal home directory. From there you should see the listed home directories of all users of the server.
Now you can run finger on any of these usernames.
Here’s my goal for you today:
By the end of this class, be able to say:
Saving moments in time
Git is a piece of software for saving your work. It lets you step back and forth through time to see your work at different moments in time. If you deleted a file from your project 2 weeks ago or 2 months ago and need it again you can jump back to that timeperiod and grab the file and revive it.
Git is also often used for collaboration. Specifically, many people use the online commercial website GitHub as a central hub as another location holding copies of all of their Git projects. With this method, everyone has their own copy of the Git project, makes their own changes, and then merges their work with a centralized GitHub version of the project. In this method, GitHub serves as a more complex version of something like Google Docs where you have a folder holding a number of inter-related files all being edited at different times by many people.
Git is used to save code as well as any file that can be saved as text. You can save lists, data, programs, text files, blog posts, drawings, even image files.
The implications of this is that text files, documentation, to-do lists, as well as code are all shared and edited collaboratively.
Git is local software you run on your own computer. It’s the software you use to store and save your project at different moments in time. GitHub is a commercial website that exists as a cloud-based server. You can use it to store a copy of any of the projects you track with Git on your own computer. This can be just a backup, or it’s common to include a README file that explains what your project is, and potentially how to use it or collaborate.
If your computer ever died, you could get a new computer and then download all of the projects you’ve stored on GitHub, and not only would you have a copy of the project, you’d have its full history at each step along the way. GitHub provides other functionality as stated earlier, like tools for collaboration, hosting a website, making lists.
GitHub’s main competitor is GitLab. There is also Sourcehut, Sourceforge, Codeberg and many other alterantives. You can even host your own Git server if you have a server.
MOMA has a github repository called collection that contains data of all of the artists and artwork in their permanent collection. It is kept up to date, with a current 139,003 records of art objects. The information is stored as json, a data file format meant to be human-readable but also parseable by software.
From this GitHub project computational poet Allison Parrish created a Twitter bot modernart_exe that randomly generates meta-dada. In other words, it uses the metadata from MOMA’s collection repository (things like titles, medium, dates…) and generates new descriptions of fake artworks several times a day.
BANNERS OF THE PRESIDENTENSTUDIO, MELNIKOVA, VELIMIR KHLEBNIKOV, NO. 10
— ModernArt.exe (@modernart_exe) March 16, 2020
1987
3 plates, poster with artist's standard mailing form
Researchers have used the data to produce data visualizations of the collection as well as other research.
Artist, professor and programmer Jeffrey Thompson has created a GitHub project called Repo-As-Artwork. All projects in Git (and GitHub) are called Repositories or Repos for short. Thompson’s project is a simple list file that links to other art projects stored in GitHub repos. These include:
Mimi Onouha’s On Missing Data Sets
My term for the blank spots that exist in spaces that are otherwise data-saturated. My interest in them stems from the observation that within many spaces where large amounts of data are collected, there are often empty spaces where no data live. Unsurprisingly, this lack of data typically correlates with issues affecting those who are most vulnerable in that context. *–On Missing Data Sets.
Owen Mundy’s After Douglas Davis is:
A “fork” of an early net.art piece, “The World’s First Collaborative Sentence,” by Douglas Davis
Mundy describes how the Whitney’s curators had “placed small sections of garbled ASCII text from [a] project on Github with the hope that others would “fork” the data and repair the original [project].”
Jeff Thompson’s own project Pebble Dataset is:
…a machine learning dataset consisting of 5000 images of pebbles gathered in Cambridge, England in the fall of 2018. Pebbles are literally cast-offs from something else, not the stone of buildings or triumphal sculptures but the thing left behind in the mud by scraping glaciers and on the beach by rolling waves and collecting along roadside ditches. A dataset of pebbles is a poetic addition to the overwhelmingly ultilitarian datasets that already exist.
Many programmers, writers, educators and other scholars use GitHub as a place to place and share syllabi, manifestos, writing and notes. For this class I created a repository and then used GitHub to publish it complete with syllabi and weekly class notes.
For almost all text-based description files the project pages are described in a file format called Markdown, which is a simple plain text file with a few characters inserted to indicate the title, headlines, links, images and lists. It is optional to do this, but it makes your writing easily readable on GitHub.
Start by creating (and/or logging in) to a new free account on GitHub. Note that you can also use GitLab instead, but the interface will be slightly different.
In the top right click on the plus button and click New Repository.
Now enter a repository name. Write in an (optional) description below. If this should be publicly-viewable click Public. If you want it private, click Private so that only you can see it when you log in, click Private. Make sure to click on the checkbox next to Initialize this repository with a README. Ignore those other dropdown menus below and click Create Repository.
In a moment you’ll see your new repository and you’ll be looking at your starter README file. You can start by editing this file. Click on the pencil icon on the right. You can type in plain text (and add any markdown characters if you want to add links, bold, headlines, or create a list for example). When you’re finished editing, scroll down and click on the big green Commit changes button.
Let’s say you want to upload some images or add some other files from your computer (text, a bio, a list, anything). Click on the name of the repository (a link) at the top of the page. It will bring you back to the main page. From here you can click Create New File to start a new text file, or Upload files to upload any files.
Let’s start by clicking Create New File. In the top, it will ask you to enter a name. If you want the page to be readable online here, you can give it a name like names.md if you want to have it be readable as markdown text, or you can give it a name like some-text.txt to have just a simple text file. In any case, you can start writing text in this file. When you’re done, scroll down and click and the big green Commit new file button.
After clicking to commit you’ll be brought back to the main page.
If you want to upload some files click on the Upload files button. You can then drag and drop your files into this window. When they’ve uploaded, scroll down and click on the big green Commit changes button.
It will take you back to your home page for that project, and you’ll see all of your files listed there.
….if you actually want to take precautionary steps that might really limit whatever damage social media is doing, you need those steps to be much simpler and blunter: You need to create a world where social media is understood to be for adults and the biggest networks are expected to police their membership and try to keep kids under 16 or 18 out.
….It would be to allow for an experience of adolescence liberated from an automatic pressure to congregate on platforms built to be panopticons, to host performances geared to audiences in the tens of millions and to create addictive pressures that clearly drive fully mature adults a little bit insane.
Write a post of several paragraphs. What do you think about Ross Douthat’s Op Ed piece and his suggestions? Explain whether you agree/disagree and why, and if you think his prescription would be effective.
Review the Building Consentful Tech (pdf) zine. Note down any questions or comments you have while reading this, and bring these notes to class next week.
Fork my Class Playlist coding music repostory (fork button in top right).
In your own copy, make some changes. For example, add some music.
Commit your changes (and give it a commit message).
Then submit a “pull request” asking me to pull in your changes.
Note that if there have been changes submitted by others in the time between you forking and you submitting a pull request, you may have to pull again to get those latest changes.