Skip to content

Latest commit

 

History

History
61 lines (33 loc) · 7.32 KB

introduction.md

File metadata and controls

61 lines (33 loc) · 7.32 KB
Main Page Next: Using GitHub for Course Materials

1. Introduction: Understanding GitHub and Slack

Let's start with the basics of what GitHub and Slack are, and what they're used for.

GitHub

GitHub is a site where anyone can store a repository (often referred to as a "repo") of documents. While it is most often used to store, share, and collaborate on source code for software projects, repos can include any type of digital file--including human-readable documentation pages like this one!

GitHub vs git

GitHub gets its name from the software it uses to keep track of files and changes, which is called git. Git is what's known as version control (or source control) software, and developers use it to keep track of changes that they and others make to files.

You can run git on nearly any type of computer--Windows, Mac, Linux, etc--and it's a standard tool for most software developers these days. Git is considered distributed version control, which means that each person working with the repository of documents has their own complete copy of the files, which they can sync with any other copy of the repository. Typically, one copy of the repository is placed on a server accessible to all developers, and designated as the primary shared version. Developers modifying the code on their own machines then send their revisions to the copy on the server.

GitHub is simply a publicly accessible shared server running git, with a web-based interface, which can be used to host both public and private repositories of digital files. Many open source projects are housed on GitHub, allowing anyone to download the most recent version of the software, as well as permitting them to assist with improving the code (don't worry, there are controls over that process!). GitHub isn't the only server offering this functionality, but it's well known and widely used, so it's the one we'll be working with today.

Learning git

In today's workshop, we're only going to work with the web-based interface to GitHub, so you won't need to have git installed on your own computer. However, if you end up deciding to regularly publish content on GitHub, it will be important to learn how the underlying git software works, and how to use it on your own computer. My favorite tutorial for this is a James Williamson's GitHub for Web Designers tutorial on Lynda.com--unfortunately, it requires a subscription, and could use a litle updating since it was published three years ago. There are also many other tutorials and guides for both git and GitHub available online.

Creating a GitHub Account

Before we go any further, make sure you've created a free GitHub account (if you don't already have one). You can do that by clicking the "Sign Up" link in the top right corner of this page! (If you already have an account, there's no need to create a new one--just sign in with that.)

Slack

At its core, Slack is a group messaging tool. It provides a group workspace with both public and private channels for discussion, private messaging capability, and file storage. Once you've created a Slack workspace, it can be accessed using either a web interface or one of their many clients for desktop and mobile devices.

There's a lot more to Slack than than text messaging, though, which is one of the reasons it has become so popular in business settings. (That's also why, even in the "What is Slack?" portion of their Getting Started guide, the description is pretty vague!) One of Slack's most powerful features is that it can be extended with a wide variety of apps that integrate it with other online services--from Google Docs and Dropbox to Trello and even GitHub.

Joining the Workshop Slack

The best way to understand how Slack works is to actually play around with it, so I've created a workspace for this workshop. Here's the invitation link to join it: http://links.lawley.net/joinDML (Because invitation links are a little unwieldy, I used a link shortener on my domain to redirect to the invitation; that also lets me replace the invitation URL with a new one if necessary.)

Slack workspaces can be set up with a generic invitation link for joining (like this one), which has an expiration date (in this case, October 9th). You can also generate individual invitations to specific email addresses. And finally, you can configure them allow anyone with an email address in a specific domain to join, which is what I use for my classes.

You'll be able to return to the workspace in the future by using this URL rather than the invite link: https://dml2017-lawley.slack.com/ (keep in mind, however, that I generally don't stay logged into Slacks from past classes and events, so while it's a fine way to explore the features, it won't be a good way to reach me directly).

If you already use Slack with another group or project, be aware that every Slack workspace is a completely separate instantiation--a login on one Slack workspace can't be used on any other workspace. This can also be confusing for students who are already using Slack for other purposes. You can be logged into different workspaces in different tabs on the same browser, though, and all of the Slack clients allow you to be logged into multiple workspaces.

Here's what my Mac desktop client looks like when I'm logged into the workspaces for both of my current classes and the one for this workspace:

Slack DML Workspace Screenshot

I've done only a small amount of customization on this workspace. Click on the Channels heading (the word itself, not the plus sign), to see a list of available channels in the workspace. In addition to the two channels (#general and #random) that are created by default in a new workspace, there should be two additional channels visible to you: #introductions and #github. Go ahead and join the #introductions channel, and post a brief intro there.

After you've posted your intro, take a look at the #github channel. This is an example of a Slack integration. I've set it up so that every time I send changes to the GitHub repo for the workshop, that information is automatically posted to this channel. In my classes, this lets students see if and when I've made changes to the syllabus or assignments--and what the short description of those changes are.

You may also want to customize your notification settings for this Slack so you don't get overwhelmed with messages (that's particularly important if you're using a mobile client).

Slack notification settings

Feel free to use the #general channel to chat about the session as we go along. (Full disclosure, though: I won't stay logged into this workspace after DML is over, so it won't be a good place to ask me questions after that!)

Main Page Next: Using GitHub for Course Materials

This page is part of Liz Lawley's Fork Your Syllabus, You Slacker! : A DML Teach-In, 6 October 2017