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
202
203
204
205
206
207
|
{% extends "main/base.html" %}
{% block title %}Code Jams{% endblock %}
{% block og_title %}Code Jams{% endblock %}
{% block og_description %}Information about our code jams - monthly events where users are grouped into pairs to solve a Python task{% endblock %}
{% block content %}
<div class="uk-section">
<div class="uk-container uk-container-small">
<article class="uk-article">
<div uk-grid class="uk-grid-large">
<div class="uk-width-expand">
<h1 class="uk-article-title hover-title" id="top">
Code Jams
<a href="#top" class="uk-text-primary" title="Permanent link to this header">
<i class="fas fa-paragraph" data-fa-transform="shrink-8"></i>
</a>
</h1>
<p class="uk-article-meta">
We jammin'
</p>
<p>
Every three months or so, we aim to host a server-wide code jam, suitable for all members of the server. In
these, we announce a theme and date in advance, and users may sign up via a link provided in the
announcements channel on the server. Once the sign-up period is over, users are grouped into
teams. On the day of the code jam, we announce a task - each team will then work on a solution
to this task.
</p>
<p>
Once the code jam is over, our staff team will review and test each submission. Once that's done,
a winner will be decided!
</p>
<p>
If you'd like to join one of our code jams, feel free to ask a member of staff about the next one.
</p>
</div>
<figure class="jetbrains uk-width-1-4@l uk-width-1-4@m uk-width-1-1@s">
<h1 class="uk-article-title">
Sponsors
</h1>
<p class="uk-article-meta">
Our generous benefactors
</p>
<a href="https://jetbrains.com">
<img src="{{ static_file("images/jetbrains.png") }}" />
</a>
</figure>
</div>
<h2 class="uk-article-title hover-title" id="rules">
Rules and Guidelines
<a href="#rules" class="uk-text-primary" title="Permanent link to this header">
<i class="fas fa-paragraph" data-fa-transform="shrink-8"></i>
</a>
</h2>
<p class="uk-article-meta">
Keeping the fight clean
</p>
<p>
In order to keep things fair and on-topic, the following rules must be adhered to. Failure to
follow these rules will result in disqualification.
</p>
<ul>
<li>
Projects must be strongly Python-oriented.
<ul>
<li>You may mix in other languages, but the project must be Python-based.</li>
</ul>
</li>
<li>You may not write any code in advance.</li>
<li>You may not write any code after the deadline.</li>
<li>The work must be your own - don't copy another team's work.</li>
</ul>
<p>
Additionally, the following suggestions could be helpful for all teams.
</p>
<ul>
<li>All team members should contribute to the project in some way. Work together!</li>
<li>Open your pull request early - that way, you know it'll be there by the deadline.</li>
<li>Lint your code - we lint each pull request using Flake8, and your code should validate.</li>
<li>Communicate with your teammates - Add them as a friend, start a group DM, and work together on the problem.</li>
</ul>
<h2 class="uk-article-title hover-title" id="getting-started">
Getting Started
<a href="#getting-started" class="uk-text-primary" title="Permanent link to this header">
<i class="fas fa-paragraph" data-fa-transform="shrink-8"></i>
</a>
</h2>
<p class="uk-article-meta">
Git good - Dropbox bad
</p>
<p>
All of our code jams happen on <a href="http://github.com/">GitHub</a>. If you don't have an
account there, you'll need to create one before you can join one of our code jams. Teams are required
to fork the repository we have set up for the current code jam, commit their code to their fork, and
then open a pull request with their project on the code jam repository.
</p>
<p>
Once the challenge task has been announced, head to the link provided to reach the challenge repository.
In order to work on the task, you will need to fork the repository - this will create a copy of the
repository under your account, which you will be able to work on with your teammates. To do so,
log into GitHub and click on the "Fork" button on the repository page. Select your username from the
dialogue, and it will be forked to your account.
</p>
<figure>
<img src="{{ static_file('images/jams/jams_1.png') }}" class="uk-align-center uk-border-rounded" />
<img src="{{ static_file('images/jams/jams_2.png') }}" class="uk-align-center uk-border-rounded" />
</figure>
<p>
Once this has been done, you should find yourself looking at your new copy of the repository. Next
up, you'll need to give your teammates access to it! Click on the "Settings" tab, click on
"Collaborators", enter your password if you're prompted for it, and add your teammates as
collaborators.
</p>
<figure>
<img src="{{ static_file('images/jams/jams_3.png') }}" class="uk-align-center uk-border-rounded" />
<img src="{{ static_file('images/jams/jams_4.png') }}" class="uk-align-center uk-border-rounded" />
<img src="{{ static_file('images/jams/jams_5.png') }}" class="uk-align-center uk-border-rounded" />
</figure>
<p>
Now that you've set up your repository, it's time to install Git. If you're on Linux, you can
install Git using your system's package manager. Windows users can install
<a href="https://git-scm.com/download/win">Git for Windows</a>, and Mac users can install Git
using <a href="https://brew.sh">Homebrew</a>. Once you're all installed, open up a terminal
(or open Git Bash if you're on Windows). For the purpose of illustration we will be working on
Windows, but this will work on any platform.
</p>
<p>
We will use Git to clone the repository to the machine. Simply type <code>git clone <url></code>
and Git will download a copy of the repository. The URL is the same one you use to get to the
repository page on GitHub. Use <code>cd project-name</code> to change directory to the repository.
</p>
<figure>
<img src="{{ static_file('images/jams/jams_6.png') }}" class="uk-align-center uk-border-rounded" />
</figure>
<p>
Now, open the newly-cloned repository in your favourite editor and make some edits. We'll be using
<a href="https://code.visualstudio.com/">Visual Studio Code</a> in this example, but use whatever
you prefer. For example, let's create a file named "hello.py", and add a line of code to it.
</p>
<figure>
<img src="{{ static_file('images/jams/jams_7.png') }}" class="uk-align-center uk-border-rounded" />
</figure>
<p>
Now that we've edited a file, we need to make Git aware of our changes. Head back over to your
terminal, and type <code>git add hello.py</code> to add this file to our changeset.
</p>
<p>
Next up, we'll need to bundle up our changes into a commit, and push it to GitHub. To do that, we'll
use <code>git commit -am "message"</code>. Make sure you use a descriptive message explaining why
you made your changes and what they are, but try to keep it to a single line of text if you can.
Following this, we can use <code>git push origin master</code> to push our commit up to GitHub.
</p>
<figure>
<img src="{{ static_file('images/jams/jams_8.png') }}" class="uk-align-center uk-border-rounded" />
<img src="{{ static_file('images/jams/jams_9.png') }}" class="uk-align-center uk-border-rounded" />
</figure>
<p>
In order to pull the latest version of the code when the repository was cloned earlier, we can
simply use the <code>git pull</code> command. In order to illustrate this, we will need to enlist
the help of our lovely assistant...
</p>
<figure>
<img src="{{ static_file('images/jams/jams_10.png') }}" class="uk-align-center uk-border-rounded" />
<img src="{{ static_file('images/jams/jams_11.png') }}" class="uk-align-center uk-border-rounded" />
<img src="{{ static_file('images/jams/jams_12.png') }}" class="uk-align-center uk-border-rounded" />
</figure>
<p>
Oh boy.
</p>
<p>
Once you've pushed some code to the repository, you will notice a "Pull request" link. Click on
that to create a pull request, which will let us know that you're working on the task and help us
to keep track of things. Simply click on the "Create pull request" button on the next page, fill
in the "Title" box with your team number - for example, "Team 1" - and click the big green
button to finish.
</p>
<figure>
<img src="{{ static_file('images/jams/jams_13.png') }}" class="uk-align-center uk-border-rounded" />
<img src="{{ static_file('images/jams/jams_14.png') }}" class="uk-align-center uk-border-rounded" />
<img src="{{ static_file('images/jams/jams_15.png') }}" class="uk-align-center uk-border-rounded" />
<img src="{{ static_file('images/jams/jams_16.png') }}" class="uk-align-center uk-border-rounded" />
</figure>
<p>
Now that your pull request has been created, keep working on your project! Code that you push to
GitHub will automatically be added to your pull request in real-time. As the code jam continues on,
you may find review comments waiting from us. These are just suggestions to help you improve as
a programmer - free advice from us. Feel free to incorporate our suggestions into your project
if you wish.
</p>
<figure>
<img src="{{ static_file('images/jams/jams_17.png') }}" class="uk-align-center uk-border-rounded" />
</figure>
<p>
That's all there is to it! Keep working at your task, do your best and you might just come out
on top!
</p>
</article>
</div>
</div>
{% endblock %}
|