How we got here

When computers were giant room-sized machines, the people who operated them (usually academics) would use tape as a medium to “write” their programs on. They would then feed these lengths of tape into a reader which would interpret their programs and run them on the computer.

tape

The programs were usually relatively small because computers could only process small bits of information. The idea of open source can be traced back to these early computer users, who stored their tapes in a drawer so that anyone using the computer could use their code. This saved colleagues from having to re-writing the program themselves on another tape.

Problems in open source

Technologies like Git, SVN, or Mercurial allow for anyone to contribute to projects. Connecting many great minds to work on projects together has obvious benefits, but along with that comes a relaxed structure of the development process.

A good open source process has a few maintainers that guide the project along. Like on any other type of project, it helps to have a few people in charge who make decisions when they need to be made.

The open source world has politics like any other community. But the power of open source is that if anyone doesn’t like a direction in which a project is going they can “fork” it. By doing so they can create their own version and build the features they need or want to be included. If done right this can create healthy competition.

Along with the competition will always be a concern of projects fragmenting into too many different versions. Choice is good but sometimes there’s too much variety. It’s just like when you’re grocery shopping: it’s not always helpful to have 100 different kinds of bread to choose from.

Examples and Code

Github

branching

Site: github.com

Github plays an important role as a tool and platform for building software. It’s primarily used to collaboratively build software, but in its simplest form, it allows anyone to post their code either publicly or privately to a Github account. It acts as a web interface for hosting Git repositories and allows anyone to share their code with others.

While most work with Github is done from the command line, the Github website does serve as an important tool, allowing teams or individuals to track bugs and features with a web interface.

Since launching in 2008, Github been a big influence in promoting open source software while giving transparency to complex software development processes. It’s also where the majority of all open source libraries, frameworks, and tools are shared. It’s common to search for a piece of code with a specific function on Github so you don’t recreate something that already exists.

You should always be aware of the copyright notices posted with a project as they differ depending on the owner’s preference.

It’s unrealistic to use email to share complex codebases with dozens or hundreds of files. Github hosts the files and Git allows many to work and add to the same codebase.

Other resources about open source and journalism

Mozilla’s Source

List of news organizations of Github

Canadian news orgs in open source Github
Ubyssey github.com/ubyssey/
Globe and Mail github.com/globeandmail
CBC News github.com/cbcnews
Toronto Star []()
National Post []()
US news orgs in open source Github
NYTimes github.com/nytimes & github.com/nytlabs
Knightlab (Northwestern) github.com/NUKnightLab
ProPublica github.com/propublica
NPR github.com/npr & github.com/nprapps
Chicago Tribune github.com/newsapps
LA Times github.com/datadesk
Texas Tribune github.com/texastribune
Washington Post github.com/washingtonpost
Boston Globe github.com/BostonGlobe
WNYC github.com/wnyc
Columbia U School of Journalism github.com/jsieben
Vox Media github.com/voxmedia
Al Jazeera America github.com/ajam
Time Magazine github.com/TimeMagazine
HuffPost Data https://github.com/huffpostdata
BuzzFeedNews github.com/BuzzFeedNews
FiveThirtyEight github.com/fivethirtyeight
USC Annenberg J-School https://github.com/uscannenberg