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
|Topic (and links to workshops)
|Introduction: Project overview, roadmap, and technical fundamentals
|Get Started with Golang
|Version Control Week I: Git hands-on & light theory
|Version Control Week II: Pull Requests and Code Reviews
|Version Control Week III: Noms hands-on
|ELECTION DAY - GO VOTE!
|Version Control Week IV: Panel discussion — what do our users want to do with their data? How could Noms (and Noms+IPFS) help?
|Version Control Week V: Under the Hood of Git and Noms: deeper theory / data models of Git and Noms
|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.
|Agile Process Crash course in Agile Development Process / Methodology
|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.
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 https://codeforphilly.slack.com/messages/dat-jawn/ and log in using your Code for Philly username & password.
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:
- Join the Cohort - If you're in Philadelphia and want to write code, consider Joining the Cohort. See Joining the Cohort below
- Be a Mentor - If you have coding skills and want to help with design sessions, pair programming, code reviews, etc. Let us know!
- Provide Use Cases - If you have use cases for a 'git for tabular data', get in touch. We want to hear from you.
- 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.
- 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