Goal: Version Control for Data on the Distributed Web

We are creating an open-source adapter to allow Noms to store its data on IPFS. This trio of technologies will provide top-to-bottom support for distributed version control of tabular data.

Secondary Goal: A model project for mentorship and collaborative learning

We are structuring this project with a strong emphasis on mentorship and group learning so that it can function as a setting where people become great software engineers by contributing to this open source project.

Read an initial statement of intention in a blog post about Bypassing (some) Cultural, Gender and Racial Barriers by Training Great Engineers

Schedule for Oct-Dec 2016

Week Date Location Topic (and links to workshops)
1 10/04/2016 Localhost Introduction: Project overview, roadmap, and technical fundamentals
2 10/11/2016 Localhost Get Started with Golang
3 10/18/2016 Localhost Version Control Week I: Git hands-on & light theory
4 10/25/2016 TBD Version Control Week II: Pull Requests and Code Reviews
5 11/01/2016 TBD Version Control Week III: Noms hands-on
- 11/08/2016 - ELECTION DAY - GO VOTE!
6 11/15/2016 TBD Version Control Week IV: Panel discussion — what do our users want to do with their data? How could Noms (and Noms+IPFS) help?
7 11/22/2016 TBD Version Control Week V: Under the Hood of Git and Noms: deeper theory / data models of Git and Noms
8 11/29/2016 TBD IPFS: hands-on & theory
- - - Switch to Coding: The IPFS workshop will be the final “pre-development” workshop. The following workshops will be our “transition to development” phase, during which participants will need to decide whether they’ll participate in the sprints going forward. | -
9 12/06/2016 TBD Agile Process Crash course in Agile Development Process / Methodology
10 12/13/2016 TBD Testing Your Code Writing Tests, Running them, and Using Continuous Integration

After this, we'll do eight weeks of development sprints, during which we'll design, build, test, and deploy our Noms–IPFS connector.

Contact Us

We mainly use Slack to communicate. To contact us, log into the Code for Philly Slack and post a message in the dat-jawn channel. To make sure the organizers know you've posted a message, address it to @flyingzumwalt and @jadrian.

If you've never used the Code for Philly Slack before, create an account on the Code for Philly website then go to and log in using your Code for Philly username & password.

Getting Involved

There are multiple ways to get involved. If you want to write code, consider Joining the Cohort. There are also a number of other ways to get involved. We are looking for people to:

  1. Join the Cohort - If you're in Philadelphia and want to write code, consider Joining the Cohort. See Joining the Cohort below
  2. Be a Mentor - If you have coding skills and want to help with design sessions, pair programming, code reviews, etc. Let us know!
  3. Provide Use Cases - If you have use cases for a 'git for tabular data', get in touch. We want to hear from you.
  4. Help with Community Engagement - Want to help us stream our meetings online? Want to help document our work so the world can follow along? Let us know.
  5. Contribute Remotely - If you're not in Philadelphia or can't get to our meetings, you can still follow our meetings, participate in discussions online and contribute Pull Requests.

Joining the Cohort

This is an opportunity to learn the skills of great engineers by participating in a real project. We are currently recruiting a cohort of 15–20 participants.

The current cohort is open for new people to join by September 27th.

What is a Cohort?

In this case, a cohort is a group of people who all began working and learning together at roughly the same time.

We are tackling a complicated problem that involves a lot of technologies. By starting with a cohort of people who commit to learn together and contribute for a while, we get to do more collaborative learning. It also gives us an opportunity to establish a healthy culture of respect and mutual support within the project.

As the project proceeds, it will be easier to incorporate new contributors without forming a cohort.

Skills We Will Practice

  • Working in an Agile Team, coordinating efforts using Github Issues and Scrum-style meetings/calls
  • Designing Software
  • Testing Software
  • Contributing code using Pull Requests on Github
  • Reviewing Pull Requests
  • Releasing and Maintaining Software

Requirements for Cohort Members

In order to join the cohort, you should be

  • Able to provide and maintain your own working computer
  • Comfortable writing code in some programming language — we will be using the Go programming language
  • Able to attend most of the in-person workshops for the first eight weeks and to do 5+ hours of work outside of the meetings each week
  • Interested in Data Science and Open Data
  • Willing and Legally Able to contribute code under an open source license

Project Activity

This project doesn't have any activity yet, post an update or log some buzz!