My first pull request

Crazy to think that, even though I have had a GitHub account for 5 years and have poked, played and forked things, I have never made a pull request and contributed something to another project until today.

I attribute that mostly to the fact that I stopped actually developing and writing code right around the same time as I signed up for a GitHub account, and the fact that it took me a long time to grok how GitHub works. Honestly, I am still not totally sure I understand how GitHub works, but after a great session with Paul Hibbitts at the Festival of Learning last week where I had a chance to dig into both Grav and GitHub, I finally feel like I can work around GitHub with some level of confidence. Enough that when I saw an opportunity to contribute to a project earlier today I thought, “I can help!”

The trigger was a tweet from the web annotation project Hypothes.is. I’ve been playing with Hypothes.is since hearing about the project from David Wiley a few years ago. It is maturing into a really great annotation system that has found some use among educators, including Robin DeRosa who is using Hypothes.is as an annotation tool on an open textbook she has published in PressBooks.

The tweet from Hypothes.is pointed me to a small project that Kris Shaffer is working on – a WordPress plugin that will allow you to aggregate your Hypothes.is annotations on a page or post on your WordPress site.

As Kris points out on his blog post about the plugin, there are some compelling use cases

I envision a number of possible uses for Hypothes.is Aggregator. As I write in my post on hypothes.is as a public research notebook, you can use this plugin to make a public research notebook on your WordPress site. Read something interesting, annotate it, and aggregate those annotations ? perhaps organized by topic ? on your domain. They will automatically update. Just set it and leave it alone.

I also see this as a tool for a class. Many instructors already use hypothes.is by assigning a reading that students will annotate together. Hyopthes.is Aggregator makes it easy to assign a topic, rather than a reading, and ask students to find their own readings on the web, annotate them, and tag them with the course tag. Then Hypothes.is Aggregator can collect all the annotations with the class tag in one place, so students and instructors can see and follow-up on each other’s annotations. Similar activities can be done by a collaborative research group or in an unconference session.

I went to his GitHub site, downloaded the plugin and fired it up. It worked (although the Cover theme I am using has done some funky formatting to it, which i need to adjust). But when I took a look at the GitHub site, I noticed that Kris had no README file on the Github site and the actual instructions on how to install and use the plugin were only on his blog post. Aha! A chance for me to actually contribute something to a project! So, I fired up my Atom editor, forked his repo and added a README.md file with instructions that i copied and pasted from his blog post on how to install and use the plugin.

So far so good. Now to figure out how to actually do a pull request. i thought that, before I do this (and not knowing exactly what might happen when I hit the Pull Request button) I should check with Kris. So I fire him off a tweet.

Ok, all good. I used these instructions from GitHub on how to launch a pull request and a few minutes late, my README file was sitting in Kris’s GitHub repo.

I am still not totally sure what I am doing, but having that first pull request under my belt has given me a boost of GitHub confidence.

Image: GitHub (cropped from original) by Ben Nuttall CC-BY-SA GitHub (crop) used here released under same CC-BY-SA license.

 

Can the GitHub community be a sustainability model for Open textbooks?

tl:dr Like open source software, it takes a community to maintain an open textbook.

Anyone watching my Twitter feed this week knows I’ve got GitHub on my mind.

gitonmind

Part of the interest lies in the fact that there are some technical projects in development that I want to follow. But another part of me is interested in exploring the ideas of community & collaborative authorship and how individuals come together & contribute to create and maintain a shared resource.

On GitHub, the resource is usually software, but as I pointed out a few days ago, there are a number of academic projects popping up on GiTHub that are taking me down this path this week.

One of the non-technical questions we spend time thinking about on the open textbook project (and there are many) is around sustainability, and I think there is a model in the GitHub community that could be applied to open textbooks as a sustainability model.

GitHub is not only a code repository, but also a community for developers. At the centre of the community is the software; it is the tangible artifact that the community develops around. Members of the community take on the collective responsibility to maintain and develop the software, contributing code, fixing bugs, developing documentation, etc.

Outside of the big open textbook projects (which are currently being supported primarily by grant & foundation money), some of the more successful, small scale open textbook projects I see are starting to use this community-as-resource-steward model to maintain and improve their resource.

One small example of this is the Stitz-Zeager Open Source Mathematics Textbook site where the textbook authors set up some community forums over the summer. I see setting up a discussion forum for those who have adopted the book as a good way to begin to develop a community around the resource & begin to engender a feeling of community stewardship around that textbook.

Scaling up from that example, I was also struck this week by the story of Joe Moxley, an English professor who wrote a commercial textbook published by Pearson. In 2008, he received the copyright work to his textbook back from Pearson (I’d love to hear the story about how that happened). At that point, Joe had a few options for what to do with his book. In the end, he licensed it with a CC license & released it online as Writing Commons. In Joe’s words (emphasis mine):

In 2008, when I received copyright back from Pearson for College Writing Online, a textbook I’d published online in 2003, I decided to self-publish the work. Rather than pursuing a for-profit model, I opted to give the book away for free, first at http://collegewriting.org and later at http://writingcommons.org. With hopes of developing a community around my project, I established a distinguished editorial board and review board, and I invited my colleagues to submit “web texts”— that is, texts designed for web-based publication—for the project. Since then, rather than helping merely a handful of students, the work has been viewed by over half a million people, and we’ve been able to publish original, peer-reviewed web texts.

Since then, dozens of authors have contributed resources to the Writing Commons, and the project continues to encourage contributions from the community to further develop and improve the resource. This benefits not only the project,  but, as Joe points out, also the contributors.

From my experiencing directing the Writing Program at USF, I’ve found that graduate students, adjuncts, and university faculty take pleasure in developing collaboratively-authored pedagogical materials. Additionally, developing online teaching and learning spaces via collaborative tools energizes colleagues as well as students, giving them an opportunity to extend their learning, to talk with one another, and to produce relevant texts—texts that other Internet-users may read. Engaging colleagues and students in a collaborative effort to build a viable textbook creates energy and focus for courses. Rather than importing the values of a book editor from Boston or New York, faculty can customize their contributions to meet the special needs of their students and colleagues.

and (again emphasis mine)

Ultimately, from my perspective as an academic author, by crowdsourcing what had been a single-authored work, I’ve gained communal agency while losing some individual agency. I may no longer be able to do exactly what I want, yet from a team effort I can do more than I’d ever imagined.

Now, I am not sure if the team of contributors who are contributing to the success of Writing Commons are the people who actually use the open resource in class & suggest improvements based upon their direct experience with the resource, but I suspect it is.

Which is the point I am trying to make – those who use a resource are more often than not the ones in the best position to maintain that resource. And the best way to maintain that resource is not a single author being responsible for the maintainance and upkeep of the textbook, but an entire community of engaged users iteratively adding improvements and developments to the textbook over time.

Kinda like the communities of developers who cluster around code projects on GitHub. Those that cluster and contribute are generally those who stand to gain the most from the success of the project. They might use the software on a daily basis for their projects, or it mind underpin an important piece of their work. So they have some motivation to contribute and maintain the project. Just like faculty who adopt an open textbook .

Now, this community development model is not something that is exclusive to GitHub, which is just the latest flavour in a long line of success stories in open source collaborative software development (in edu you don’t have to look much farther than Moodle to see a perfect example of a successful open source community development model in action). But there are some feature of GitHub that I think parallel a community open textbook development model.

First, GitHub allows for various levels of engagement with a project. For newbies in the community (those lurkers on the edge watching for little pieces of low hanging fruit that can bring them in deeper in the community), they can contribute in small ways to improving a project. Find a spelling error? You have the power to fix it in a fairly low risk operation that would bring some recognition from those deeper inside the community.

Moving up the scale, you could contribute a new chapter, or revise a section of text , add images and graphics, charts and tables. Build supplemental resources and easily contribute all of this back to the original project to iteratively improve it.

Finally, the OER holy grail, a full on derivative remixed version of the project is one click away with GitHub. Fork, and you have a complete clone of a project ready for you to begin your own fully developed derivative version of the work. And, if it was a particularly active project, branch another community who might be interested in your derivative version of the project.

This isn’t new stuff. The roots of Open Educational Resources lie in the Open Source Software (pdf) movement. Which is maybe why I find myself this week so enamoured with the GitHub community. It grounds me and connects me to the roots of where we come from. I don’t know if any practical application of my playing and exploring of GitHub this week will lead to something concrete with the open textbook project, but at a theoretical level it has connected me back to the roots of OER. And even if GitHub plays no part in open textbooks, I suspect this won’t be the last time I think openly about community supported open textbooks.

 

Here a Git, there a Git everywhere a Git

I meant to spend most of the day today prepping for my week-long facilitation stint for our Adopting Open Textbooks workshop (which began yesterday in SCoPE), but instead got distracted by books and Github.

If you are not familiar, Github is a very popular code repository used by programmers to store code & collaborate with others on software projects. Recently, GitHub has been popping up on my radar with regards to open textbooks. I’ve come across a few book projects that are using GitHub.

Kathi Fletcher and the OERPub development team have been exploring GitHub fairly deeply, using the code repository as the backend to store book content being authored using OERPub.

A couple weeks ago, I came across an open Philosophy textbook originally authored by Walter Ott. Alex Dunn took Ott’s textbook,  converted it to the Markdown language (using a document conversion tool that I need to play with more called pandoc) and stuck it in GitHub (he could do this because Ott licensed his book with a CC license allowing the creation of derivative copies). Since GitHub is designed for collaborative coding, Dunn’s idea was to see if he could encourage others to contribute to the further development of Ott’s original book.

The third book project in GitHub that popped onto my radar earlier today via a tweet from Alan Levine, was the release of the open ebook by (now RRU and Victoria based colleague) George Veletsianos Learner Experiences with MOOCs and Open Online Learning.

Hey look! It’s been released on GitHub.

I’ve been playing with GitHub for the past couple of months trying to wrap my head around how it works and, to be honest, it is not the easiest to use (although the GUI tools certainly make it easier for those who are not comfortable bashing around with command line). I’m a hacker, not a coder, and the only time I used a code repository was about 10 years ago when I quickly found myself tangled in the underbrush of branches and trunks. Picking up Git a few months back took me right back to those days. So, I am not sure how practical using GitHub will be for those who are not at all technical.

That said, there are some very interesting possibilities about using GithHub as a repository for an open textbook.

For one, it is built for collaboration and has robust version control. Collaboratively authoring is what it is made for, and writing textbooks is often a collaborative affair. True, it was made for collaborative code authoring, but in the end a document is a document, be it code or words.

It is extremely easy to fork (create a new copy) of a project. In the OER world, this ability to easily clone one project to create a derivative version is very attractive. Want to modify a CC license textbook? Fork it and off you go.

GitHub can handle a number of document types. Word, HTML, LaTeX, whatever format you feel comfortable authoring in, Git can handle.

Finally, along with each repository comes a stand alone website to host the project. Meaning your textbook has a home on the web. For free.

Like I said, learning Git is not going to be for everyone (but if you are interested, ProfHacker has  a nice Intro to GitHub aimed at educators and academics, along with a few more use cases that you might find interesting), but it has certainly piqued my interest enough that I am going to keep playing with it, at least to try and keep track of some of the projects I am interested in, like OERPub and PressBooks.

Then at the end of the day, just as I am packing up, this tweet from Mark Smithers pops into my feed

Coursefork. A Github for course creation. Hmmm….maybe the investment time in learning GitHub will pay off in a few ways for educators.