Github from the Top Down
Understanding the basics of git version control is a natural progression into using Github. The learning curve for git is extremely high and git abstractions take time to understand. We don’t have time. In this course I hope to avoid deep discussions on version control because, currently, most archetypes of research scientists have little need for version control.
More of Version Control Systems
My intention is teach the collaborative tools provided by Github for software development and apply them research science. Github is a fantastic place to build tools, ideas, and projects with others. This is the intent of research science and we are going to use Github for just that.
My Opinion: No scientists needs version control until they have used it. Version control has frustrated me for weeks on end, but there have been times when it has saved me weeks of man hours fixing unforunate blunders in my code. I suggest taking the time to learn to integrate version control for research code development.
So… What is Github then?
Our Intepretation: Github is as an awesome place to confidently edit plain-text (ascii) files.
Why is it Awesome?
Github is an open source software collaboration tool that provides great free services to its users. A healthy combination of Github and select external services can provide an efficient centralized stack for scientific research. Github notification and reply services support a wide array of users who like to use Software as a Service, Command Line Prompts, and email clients.
I contend that the most important feature of Github for Research Science are Github Pages combined with the Jekyll engine that interprets its contents.
Blog Aware Publishing
Publication does not refer to peer reviewed publication. I am referring to anything that is used to present data, software, or knowledge about a research project. This layer includes discussions, PDF’s, slideshows, code, binary files, etc.
Blog aware publishing injects a finer granularity into reporting in the research process. Publishing short term research information in parallel to research process is advantageous. It assists in
- Data Sharing
- Expediting Discussions
- Staging Results
- Analytics on Research Progress
The intention of fine grained research blogging is to inform yourself and your project cohorts on progress during the life of the research project. Intermediate research publications of blogs, codes, data, and discussions can later be injected into peer-reviewed publications using existing work rather than new work. Redudancy can be better avoided in this process and peer review questions can be tracked in the provenance history of a Github project.
Github as a Centralized Presentation Layer
Github is built to present and collaborate on code/software, Github pages can leverage external storage API’s, Github pages provides a blog aware publication method, and Pages combined with Wiki’s build the foundation for teaching tools.
Github History
Let’s have a look at revision history.