GIS users, even those who don’t consider themselves programmers, may have heard of a mysterious location on the Web called GitHub. What is it and what do GIS users need to know about it?
1) GitHub is a Web-based hosting service for software development projects
GitHub is an online facility where projects are made available for others to access and make contributions. Projects are maintained and managed in repositories.
Git is a software tool for managing the contents and version control of a repository, independent of GitHub. Git is free and distributed under the GNU General Public License. Linus Torvalds, of Linux fame, originally designed and developed it for that project.If users want to contribute to an existing project or use that project as the basis for their own development work, they will “fork” the project repository. This means taking a copy of it and creating a new repository under their user account on GitHub. To modify the contents of a repository, or add new content, users must “clone” their forked repository to create a copy of it on their local machine. Any changes made to that local copy are “committed” and then “pushed” back to their forked repository on GitHub using Git commands.
GitHub is also used for managing the documentation and data that accompany projects. It's not particularly good at handling volatile binary data (e.g. images).The City of Chicago posts geodata on GitHub and there’s no reason other data types cannot be hosted, forked and reworked there, as well. The Chronicle of Higher Education launched a series on the use of GitHub for managing and sharing educational resources and collaborative scholarship.
GitHub Inc. started in 2008 in California and became a big player in 2012, when Andreessen Horowitz (and others) funded it to the tune of $100 million. The company offers a few other Web hosting services for things like slidedecks and wikis.
Just like a social networking site, individuals who participate on GitHub have profiles that share details about who they are. Individuals can watch repositories, follow other users’ activities, and interact with their peers.Repositories are ranked by popularity and number of forks.Repositories can be organized by language: JavaScript is the most popular (21% of repositories), with Python at number four (8% of repositories). There’s an interactive bar chart to explore the popularity of different languages.
GitHub offers private code hosting starting at $7/month for five repositories, and increases to $200/month for 125 repositories (plans). GitHub can also be hosted inside a company’s firewall for an additional fee. A job board also brings in revenue. Open source repositories (public) are hosted for free.
Esri joined GitHub in February 2011, but it wasn’t until the GeoIQ team joined the company that the presence grew. In August 2012, Chris Whelm discussed Esri’s plans to share more open source code and noted, “This really just means Esri is beginning to leverage Github.”As of March 2013, Esri has 57 public repositories and 75 members. As I write this, Esri is hosting a developer contest on GitHub around the March Developer Conference.
A quick search revealed:
GitHub makes it easy for even a new programmer to quickly fork a project, explore and change it. In the past, developers often worked in isolation without access to community groups for support. Now, searching for, downloading, managing and the social aspects of software development are wrapped into one online environment.
Even though many people eschew joining “yet another” social network, at the rate GitHub use is growing, it may not be long before you find you have to join its ranks to gain access to geodata, access a recipe or find plans to build an unmanned aerial vehicle (UAV).