-
Notifications
You must be signed in to change notification settings - Fork 41
/
Copy pathindex.html
executable file
·201 lines (201 loc) · 17.5 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
<!Doctype html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<meta name="robots" content="noodp,noydir" />
<meta name="keywords" content=""/>
<meta name="description" content=""/>
<title>LearnProgramming on Github</title>
<!-- Linked CSS -->
<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="css/style.css">
<!-- Linked Javascript -->
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript" src="js/bootstrap.min.js"></script>
</head>
<body>
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a id="logo" href="http://lpmc-site.herokuapp.com">LearnProgramming</a>
<ul class="nav">
<li><a href="http://lpmc-site.herokuapp.com">Visit the Official LPMC Website</a></li>
</ul>
<ul class="nav pull-right">
<li><a href="https://github.com/LearnProgramming">View the Projects on Github</a></li> <a href="https://github.com/LearnProgramming"><img src="images/blacktocat.png" id="cat" class="rotate"/></a>
</ul>
</div> <!-- end container -->
</div> <!-- end navbar-inner -->
</div> <!-- end navbar -->
<div class="container">
<div class="row">
<div class="span9">
<div class="space visible-desktop"></div>
<div class="space2 hidden-desktop"></div>
<h1>Welcome to the LearnProgramming Mentoring Community on Github</h1>
<br><br>
<p>LearnProgramming is an organization that grew out of the subreddit
<a href="http://learnprogramming.reddit.com" target="_blank">r/learnprogramming</a>. Our aim is to provide
a set of 'hackable' projects for beginners to contribute to in a open, encouraging
atmosphere.<br><br>In many cases, it seems, new programmers feel daunted by the task of
contributing to open source, they don't know what to do, how to write code that meets
standards, or how to really contribute in an effective way to open source projects. This
organization intends to provide a playground, staffed by the best and brightest self-elected
members of the <a href="http://programming.reddit.com" target="_blank">r/programming</a> community, where the new open source contributor can
cut their teeth; contributing to real projects used in the real world, without fear of
reproach or denial due to their beginner status.</p>
<br><div class="line"></div><br>
<h2>Frequently Asked Questions</h2><br>
<div class="accordion" id="accordion2">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseOne">What do I do if I'm new?</a>
</div>
<div id="collapseOne" class="accordion-body collapse" style="height: 0px; ">
<div class="accordion-inner">
<p>Below are some basic steps to get you started with the Learn Programming Mentoring Community<br>
<ol>
<li>Learn how to use Git with GitHub. We suggest the following resources:</li>
<ul class="unstyled">
<li><a href="https://help.github.com/categories/54/articles">Github Help</a></li>
<li><a href="http://try.github.com">Interactive git tutorial by github</a></li>
<li><a href="http://git-scm.com/documentation">Git documentation</a></li>
</ul><br>
<li>Once you've familiarized yourself with git and github, fork the standards-and-practices repo and add yourself to members.md</li>
<ul class="unstyled"><li><a href="https://help.github.com/articles/fork-a-repo">Fork a repo</a></li></ul><br>
<li>After adding yourself to the list you can submit a Pull Request back to the LPMC standards-and-practices repo</li>
<ul class="unstyled"><a href="https://help.github.com/articles/using-pull-requests">Using Pull Requests</a></li></ul><br>
<li>At this point you should be familiar with the basic processes required to fork the projects you want to contribute to as well as requesting that code be pulled back to the project. All that is left now is to pick a project you want to work on and get started.</li>
</ol>
<p>If you need help with any of the steps in this process, choosing or working on these projects, learning the languages, etc. feel free to contact any of the project leaders or mentors listed on the LPMC member list. A link to this list is in the section titled "List of members"</p>
<p>We also strongly encourage our members to join the IRC channel #lpmc on freenode.net. It enables us to provide quick feedback to answer your questions and a place for you to interact with other members.</p>
</div>
</div>
</div>
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseTwo">I have no prior programming experience. Is this a good place for me?</a>
</div>
<div id="collapseTwo" class="accordion-body collapse">
<div class="accordion-inner">
The Learn Programming Mentoring Community is meant for beginners as a good place to start and really the whole point of the LPMC. We have people who are experienced who can help mentor you through the projects and help anyone who has little or no experience get started. Any questions you have about the process you can ask in our subreddit at <a href="http://www.reddit.com/r/lpmc">r/lpmc</a> or you can visit the IRC (internet relay chat) we have on freenode.net at <a href="irc://irc.freenode.net/lpmc">#lpmc</a>. We have various projects in different languages that are meant to be entry points for anyone to join in with. Some tasks will be easy for beginners and others will scale the difficulty up to give everyone a challenge.<br><br>
For information on getting started please see the FAQ sections "What do I do if I'm new?" followed by "How do I start contributing?"
</div>
</div>
</div>
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseThree">How do I start contributing?</a>
</div>
<div id="collapseThree" class="accordion-body collapse">
<div class="accordion-inner">
Comming Soon!
</div>
</div>
</div>
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseFour"> What do I do if a project has been updated since I have made local changes?</a>
</div>
<div id="collapseFour" class="accordion-body collapse">
<div class="accordion-inner">
<p>Run the following commands in Git to update your local repository:</p>
<pre># Fetches any new changes from the original repo<br>git fetch upstream<br># Merges any changes fetched into your working files<br>git merge upstream/master</pre>
<p>If you are prompted to resolve merge conflicts, try the following command:</p>
<pre>git mergetool</pre>
<p>You can also consult the <a href="http://www.kernel.org/pub/software/scm/git/docs/v1.7.3/user-manual.html#resolving-a-merge">Git User's Manual - Resolving a Merge</a></p>
<p>After your repository has been updated, you can submit a pull request to merge your changes with the official project.</p>
</div>
</div>
</div>
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseFive">Basic Git Tutorial</a>
</div>
<div id="collapseFive" class="accordion-body collapse">
<div class="accordion-inner">
Comming Soon!
</div>
</div>
</div>
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseSix">List of members</a>
</div>
<div id="collapseSix" class="accordion-body collapse">
<div class="accordion-inner">
View the most recent list of members here <a href="https://github.com/LearnProgramming/standards-and-practices/blob/master/members.md">LPMC Members list</a>. Feel free to contact any of the mentors and/or project leaders if you have any questions regarding the LPMC or OSS projects.
</div>
</div>
</div>
</div>
<h6>For a list of any other questions and the most up to date info on LPMC check out the <a href="#">r/lpmc FAQ page</a> on reddit</h6><br>
<br><div class="line"></div><br>
<h2>General structure of the LearnProgramming Mentoring Community<h2/>
<h3>Levels of Participation</h3><br>
<p>The LearnProgramming Mentoring Community (LPMC) is structured in the following way:</p>
<h4>1. Learners</h4>
<p>These are programmers with little experience in contributing to OSS projects, though they may have prior experience programming. The primary goal of the LPMC for these individuals is to give a 'safe' place to contribute, without fear of out-of-hand rejection or any sort of ridicule. The primary interaction a learner has with the LPMC is through fork/pull requests. By the nature of the LPMC, the commit bit is only given out sparingly; since we want to encourage code review and learning-through-iteration.</p>
<h4>2. Associates</h4>
<p>These are former learners who have acheieved some degree of expertise on certain projects, and have demonstrated a consistent ability to contribute good code. Associates are, essentially, "graduated" Learners. They are thus introduced to new responsibilities and opportunities. In particular, for the projects they have demonstrated the most contributions too, they may be given the commit bit, and given the opportunity to review and accept/reject pull requests. Mentors are still responsible for doing the final merge for new associates, but over time the associate is given full pull-request administration duties.</p>
<h4>3. Mentors</h4>
<p>These are associates who have demonstrated through continued service to the LPMC that they have learned excellent FOSS development and contribution skills. They are intimately familiar with many, if not all, of the projects, and have shown themselves to be highly valued members of the LPMC. As with Associate status, these individuals are granted, for their efforts, more responsibility. They are given full access to merge any pull requests on any project.</p>
<h4>4. Project Leaders</h4>
<p>Thesea are mentors who demonstrate considerably deep knowledge about a given project. They are responsible for guiding the future of a project with their fellow Project Leaders. In particular, they are the ones who act as "Maintainers" in the traditional sense of the word. They may decide amongst themselves in the context of each project how best to guide it's development. Though it is the opinion of this document that they should favor a small, odd number of Project Leaders per project, and use a simple-majority voting system.</p>
<h4>5. Chief Mentors</h4>
<p>The Chief Mentors are a group of five individuals who have demonstrated dedication and skill within the community. They are elected from the group of mentors by all members of the community who are associates and up, and serve for life. These five people are responsible for the 'back-end' administrative tasks dealing with the Github organization, website administration, and similar. Otherwise, they are exactly Mentors. Over time, the number of Chief Mentors may increase to any odd number. This is to facilitate avoidance of ties in any votes they may need to take.</p>
<h3>Filling multiple positions</h3>
<p>Each individual may serve in multiple roles. Generally, if you are a Mentor, it is better to take the role of Learner in a project with which you are not familiar. Similarly, a Project Leader may be Project Leader of more than one (especially related) project.</p>
<h3>Regarding Votes</h3>
<p>In general, when a vote for some change is called for, it is a vote of all LPMC members _except_ Learners. The reasoning is thus. While any opinion from any Learner is valued and should be heard, it is the case that they are coming to this project with necessarily less contribution, and perhaps less knowledge, then any other member. To that end, it is more appropriate to allow those who have demonstrated contribution to be the decisionmakers, than it is to allow every learner to vote. On top of that, it is much more difficult to manage ensuring the veracity of every one of the (hopefully) many learner's identitys, so this allows some degree of assurance that people vote only once.</p>
<h4>Actions of the Chief Mentors</h4>
<p>Any action deemed 'controversial' by the Chief Mentors should be put to a vote. Over time, a list of known 'controversial' actions should be formed. An example may be the foreclosure of a dead project, the re-naming of a repo, etc. Essentially, any 'breaking change' on the level of administrative tasks (crucially, _not_ breaking changes in the feature of any project), should be put to a simple majority vote of the Chief Mentors.</p>
<h4>Regarding Breaking Changes</h4>
<p>Non-backwards compatible changes should be at the discretion of the project leaders. Often, when the breaking change is controversial, this document encourages the Project Leaders to put the decision to a vote of all contributors to the project.</p>
<h4>Regarding Versioning</h4>
<p>Unless there is a compelling reason to do otherwise, all LPMC projects should use the [SemVer](#) standard of versioning.</p>
<h4>Regarding Design</h4>
<p>Design and future direction, features, etc are to be managed by the Project Leaders in a way they see fit. All community members are encouraged to contribute to future feature ideas using the issue-tracker for the project, or other facility the Project Leader may have in place.</p>
<h4>Regarding Design by Committee</h4>
<p>In general, most decisions of a project are made by it's Project Leaders, and voting on features should only happen rarely, and ideally not make it past the Project Leaders. This document provides for community voting as a last resort, but such things are discouraged, as continued use is essentially design-by-committee, which is a recipe for disaster.</p>
<h4>Regarding this document</h4>
<p>Though it is written in a formal tone, this document should be taken informally in most respects except for regarding the ranking structure in "Levels of Participation" above. The only truly important thing this document does do and should be regarded is set up an ideal structure which we can all aim to implement. This document can and should be changed through pull requests, which should only be approved by the Chief Mentors after discussion and a vote.</p>
<h4>Regarding the standards-and-practices repo</h4>
<p>In general, this repo is administrated directly by the Chief Mentors, though as with all repos, everyone is encouraged to make pull requests regarding policy changes to it, or -- if they feel they cannot write the policy change appropriately -- to file an issue with a description of their suggestion which may then be crafted into a properly worded pull request. As with all LPMC repos, Pull Request rejection should always be paired with explanation as to why it was rejected, and -- if applicable -- what could be done to improve it for potential later acceptance.</p><br>
</div> <!-- end span 9 -->
<div class="space visible-desktop"></div>
<div class="space2 hidden-desktop"></div>
<div class="span3">
<h2>How do I join?</h2>
<div class="line"></div><br>
<p><b>1.</b> Create an account on Github<br><i style="font-size:13px; color:gray;">If you already have one skip to step 2</i></p>
<p><b>2.</b> Fork the standards-and-practices repo and add yourself onto the members list.</p>
<p><b>3.</b> Commit your changes and do a Pull Request from your repo to the LPMC. We'll merge the request there after.</p>
<p><b>4.</b> That's it! Welcome to the Learn Programming Mentoring Community.</p>
<p>Feel free to fork any of the projects below and get started. If you have any questions, message one of the mentors, visit us in our IRC channel <a href="irc://irc.freenode.net/lpmc">#lpmc</a> on freenode.net, or post it in our subreddit at <a href="http://www.reddit.com/r/lpmc/">r/lpmc</a>. We will respond as soon as we can.<br><br>If you do not have a IRC client you can use the webchat client for freenode.net at <a href="http://webchat.freenode.net/">Webchat IRC</a>
<h2>Current Projects</h2>
<div class="line"></div><br>
<div class="well">
<h4>Python</h4>
<div class="line"></div>
<a href="https://github.com/LearnProgramming/LPMCBot">LPMCBot</a> - an IRC bot project
<br><br>
<h4>Ruby</h4>
<div class="line"></div>
<a href="https://github.com/LearnProgramming/lpmc-site">LPMC Website</a> - website for LPMC
<br>
<a href="https://github.com/LearnProgramming/percival">Percival</a> - an IRC bot project
<br><br>
<h4>C++</h4>
<div class="line"></div>
<a href="https://github.com/LearnProgramming/libastar">Libastar</a> - pathfinding algorithm library
<br><br>
<h4>Objective-C</h4>
<div class="line"></div>
<a href="https://github.com/LearnProgramming/RedditWeather">RedditWeather</a> - weather app for iOS
</div> <!-- end well -->
</div> <!-- end span3 -->
</div> <!-- end row -->
</div> <!-- end container -->
</body>
</html>