Skip to content

Latest commit

 

History

History
109 lines (71 loc) · 6.41 KB

open-source.md

File metadata and controls

109 lines (71 loc) · 6.41 KB
layout title permalink feature-img
page
Open Source
/Open-source/

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]( {{ site.baseurl }}/img/open-source/tape.png)

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.baseurl }}/img/open-source/branching.png)

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