-
Notifications
You must be signed in to change notification settings - Fork 209
/
glossary.yml
355 lines (267 loc) · 17.8 KB
/
glossary.yml
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
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
# A collection of commonly used terms.
#
# Please add new terms in alphabetical order.
## Structure
## ```typescript
## type Term {
## // Slugified word. Must be unique. Assigned to `slugify(term)` if unspecified.
## id: string;
## // The term in our glossary
## term: string;
## // Description of the term in Markdown. Converted to HTML during build.
## description?: string;
## // Optional acronym form.
## acronym?: string;
## // Optional path to a page in our docs. The title will be set automatically.
## see?: string;
## // List of external links
## links?: {title: string; url: string}[];
## }
## ```
## Example
## ```yaml
## - term: Test Driven Development
## description: A software development process ...
## acronym: TDD
## see: /path/to/a-page/
## links:
## - title: Test-driven Development (Wikipedia)
## url: https://en.wikipedia.org/wiki/Test-driven_development
## ```
- term: Abandoned kata
description: |
Kata whose the author is not active anymore.
- term: Active (author)
description: Author who has been connected to Codewars during the last 30 days.
- term: Allies
description: Users who are following each others, or who are part of the same clan.
- term: Approve (a kata, a translation)
description: |
Action to push a kata out of the beta process, giving it a rank (kyu). This can be done by power users.
For a translation, consists to validate it a make the language available in the kata for all users.
- term: Attempt
description: |
In the trainer, when you click on the `ATTEMPT` button, you run your code against the full test suite (see "test cases"). Validating all the tests makes you pass/validate the kata, and grants you honor points and progress.
- term: Author
description: User who created a kata (either an approved one or one still in beta).
- term: Beta (kata/process)
description: The beta process is the phase where a kata is visible to any other user in the database/[katas search page](https://www.codewars.com/kata/my-languages) but does not have a rank yet. It is to be tested by other users, so that it can be enhanced, modified, ranked and finally approved... or retired if not qualitative enough.
- term: Clan(s)
description: |
You can write the name of your clan/company/organization through your `profile/account settings` page. All the members of this clan are automatically recognized as allies of yours, hence are added to your personnal leaderboard in the dashboard.
links:
- title: Dashboard leaderboard
url: https://www.codewars.com/dashboard
- term: Collections(s)
description: |
Collections are sets or libraries of katas that any user can create, for any purpose. All collections are public.
links:
- title: Collections created by one user
url: https://www.codewars.com/users/Blind4Basics/authored_collections
- title: Browse through all collections
url: https://www.codewars.com/collections
- term: Console
description: See [output panel](/glossary/#output-panel)
- term: Contributor(s)
description: User(s) who have either authored, approved, translated or modified a kata in any way (a list of them can be seen in the "Details" page of any kata.
- term: Dan
description: |
Dan (段) indicates the number of degrees in master level. This is why they count upward.
The term is borrowed from a system in Japanese martial arts, which is in turn borrowed from the game of Go.
see: /gamification/ranks/
links:
- title: Dan (rank) - Wikipedia
url: https://en.wikipedia.org/wiki/Dan_(rank)
- term: Dashboard
description: This is the main page for a code warrior. You land there by clicking on the picture in the top left vertical bar (Codewars' logo). It contains kata suggestions, a leaderboard of you and your allies and a flow of the last comments posted anywhere on Codewars.
links:
- title: Codewars Dashboard
url: https://www.codewars.com/dashboard
- term: Draft (kata)
description: |
Initial state of a new born kata: when you create a new kata, it is in Draft mode as long as it is not "published".
Kata in draft state are not visible through the [kata search page](https://www.codewars.com/kata/my-languages), but can be accessed and tried by other users if the author gives them the direct link to the trainer. Note that a kata in draft state cannot be completed (eg. "submit final" will not show up if you pass all the tests of a draft).
- term: Duplicates (Kata)
description: |
Kata may be considered as duplicates in the following situations, for example:
- another Kata is already published (currently in beta or approved) asking for nearly the same thing(s)
- other Kata already exist about the same topic which has been covered already a lot (like, "yet another fizz buzz thing...")
The usual course of action for an author being told his kata is a duplicate is to unpublish his kata, if he cannot make it different/valuable enough compared to what's already present in the database.
- term: Edit panel
description: |
This is the interface an author uses to create or modify a kata. There you can see all the available languages, author's solution, initial solution, all the tests, the preloaded version and the description. Contributors and some power users (in specific conditions) have access to the edit panel of published katas.
Notes:
* Entering the edit panel is an automatic forfeit of the kata for the user going there.
* Translating a kata has to be done through the creation of a translation, and ___never___ directly through the edit panel (unless you're the author, but even then, you are advise to use translations)
- term: Example tests
description: |
Tests that are visible to the user in the trainer. Most of the time, they are only a tiny part of the full tests suite. Hence, passing all the tests of the example tests doesn't make you pass the kata. You have to use `ATTEMPT`.
You run the example tests using the `TEST` button in the trainer.
- term: Fixed tests
description: |
Tests whose inputs/outputs are always the same, each time your run the tests. Generally, the example tests are made of those, and the test cases contains both fixed and random tests.
- term: Followers
description: |
Users who are following other users.
You can follow an user by clicking on the `Follow` button in his profile or by making yourself part of the same clan.
You can see in the `Social` section of the profile of a user who he is following, who are his followers and who he is ally with.
- term: Forfeit (a kata)
description: |
You forfeit a kata when you do one of those actions:
* You unlock the solutions (through the button in the trainer, for example)
* You enter the edit panel (_warning_, power users may have the possibility to enter the edit panel of some katas. If you do so before you solved it, you actually forfeit it).
Forfeiting a kata makes you lose the opportunity to gain honor points or progress by completing this kata.
- term: Fork
description: |
In the solutions page of a kata, you can see the solutions of other users, and you can `fork` them to suggest modifications/enhancements (button below each solution).
Using the fork panel is the right way to try out a solution of another user, rather than to copy it in the trainer of the kata.
- term: Honor (points)
description: |
Honor points are the score that is showing up in the top right corner, aside of your avatar. You can win honor points in different ways (completing katas, up votes on your comments or solutions, translations, creating katas, ...)
see: /gamification/honor/
- term: Inactive (author)
description: |
Author of a kata who hasn't been connected for more than 30 days.
When an author is inactive, some actions he's normally the only person allowed to do are doable by other people (power users with the required privilegees).
- term: Initial solution
description: |
This is the starting point of your code when you enter the trainer of a kata (the "Solution" box).
- term: Issue (comment)
description: |
`Issue` is the label to use when you write a comment in the discourses section of a kata to point out some problems in the kata itself (wrong tests, wrong reference solution, wrong description, missing tests, misleading description, ...).
Note that the `Issue` label is ___NOT___ to use for a user who doesn't understand why his solution is failing some (or all) the tests of the kata.
- term: Kata
description: |
Kata (型) is how coding tasks are named on Codewars. See [here - TODO]() for more information about it.
- term: Kata search page
description: |
This is the page on Codewars where you can search for specific Kata by name, rank, language, ...
See [TODO]() for more explanations.
links:
- title: Kata search page on Codewars
url: https://www.codewars.com/kata/my-languages
- term: Kumite
description: 組手
links:
- title: Kumite - Wikipedia
url: https://en.wikipedia.org/wiki/Kumite
- term: Kyū
description: |
Kyū (級) indicates the number of degrees away from master level (Dan). This is why they count downward.
The term is borrowed from a system in Japanese martial arts, which is in turn borrowed from the game of Go.
see: /gamification/ranks/
links:
- title: Kyū - Wikipedia
url: https://en.wikipedia.org/wiki/Ky%C5%AB
- term: Language versions
description: |
A kata may be available in one or more languages (javascript, python, coq, ...), and for each language there may be different versions like Node 8 or Node 10 for JS, python 3.4.3 or 3.6, ...
You can choose the language _and_ the language version in the trainer of a kata (amongst the available ones only).
- term: Leaderboards
description: Leaderboards are grouping different users according to different criteria.
links:
- title: Overall top 500
url: https://www.codewars.com/users/leaderboard
- title: Top 500 by completed Kata
url: https://www.codewars.com/users/leaderboard/kata
- title: Top 500 by authored Kata and translations
url: https://www.codewars.com/users/leaderboard/authored
- title: Your personnal leaderboard (with your allies, in the dashboard)
url: https://www.codewars.com/dashboard
- term: Markdowns (formatting)
description: |
Codewars is responsive to `markdowns`. They allow you to format code, descriptions or comments so that thay are properly readable for other users.
see: /references/markdown/
- term: Merge conflicts
description: |
When a translation of a kata is published but some changes are done to the description (through the edit panel) before the translation gets approved, it becomes impossible to approve it because of those "merge conflicts".
To resolve this problem, you have to fork the translation and update the description starting with its current (new) version.
- term: Mutation of the input
description: |
To keep it short...: ___Don't mutate the input... Ever___ (eg. don't use sort, append, push, remove, ... and alike before doing a copy of the input).
This is about side effects, modifying the arguments (typically lists/arrays, or even strings if they are mutable in your language) sent to your function during the executions. This can have weird consequences, depending on how the tests are written.
Nowadays, most test suites are written in a way that avoids this kind of problem but typically, if you end up passing the fixed tests but failing all the random tests with something along the line of `[your result] should equal []`, you're most likely facing a "mutation of the input" problem.
Hence... Don't mutate the input.
- term: Output panel
description: |
The output panel is the tab in the trainer where the tests feedback and all that you print to the console from inside your code are written to. It's actually the usual `STDOUT/STDERR`.
It's useful for [debugging - TODO]() too.
- term: Preloaded (code/section)
description: |
In a Kata, the preloaded section is code that is executed _before_ the solution of the user is defined. The code hold by this section isn't visible to the user but every function or variable defined there is accessible to him drugint the executions of his code.
If you need/want to see the preloaded section of a Kata, open a fork of a solution _after_ you solved it and look to the `Preloaded` panel.
- term: Progress
description: |
Aside of honor points, you gain "progress" by completing Kata (and only that way). Progess is what is conditioning your current rank as a codewarrior.
see: /gamification/ranks/
- term: Publishing (kata)
description: When you hit "publish" in the edit panel of a kata you created, it enters the beta process and becomes visible to anyone in the [katas search page](https://www.codewars.com/kata/my-languages). The beta process begins at the moment a kata is published.
- term: Question (comment)
description: |
`Question` is the label to use when you write a comment in the discourses section of a kata when you encounter some problems to solve it and you don't understand why your solution is failing some (or all) the tests. Or if you ___believe___ your solution is correct while the expected result isn't.
Most of the times, the user (you) is actually missing something, so use the Question label and not the Issue label, unless you can ___prove___ that the problem you're facing is actually an "issue".
- term: Random tests
description: |
Tests whose the inputs/outputs aren't the same each time you run the test suite.
Random tests are preferred to randomized tests, when creating Kata.
- term: Randomized tests
description: |
Tests whose the inputs/outputs are always the same each time you run the tests, but are showing up each time in a random order.
- term: Rank
description: |
Ranks are expressed through the kyu/dan scale (8 kyu -> 1 kyu, then 1 dan -> 8 dan). They may represent the difficulty of a Kata, or the mastery level of a user.
- term: Reject (translation)
description: |
A translation written by a user can be rejected during the review process if it is not fulfilling the original requirements or if the translated task doesn't fit with the original difficulty of the Kata.
- term: Retire/Retired kata
description: |
A retired Kata is a Kata that has been judge not qualitative enough by other codewarriors during the beta process.
It has been removed from the beta process after some critical thresholds have been reached, without any action of the author. Nothing can be done anymore with a retired Kata.
- term: Sample tests
description: See [example tests](/glossary/#example-tests)
- term: Satisfaction rating
description: |
Value as percents, shown below the title of a Kata. It indicates the average rating of users on that Kata.
The satisfaction rating is important during the beta process: it may trigger the auto-retirement if it becomes too low, and it needs to be high enough to allow the approval of a beta kata.
- term: Sensei
description: |
Another name used for the author of a kata.
- term: Solution setup
description: See [initial solution](/glossary/#initial-solution).
- term: Submit/Submit final
description: |
In the trainer of a Kata, when you hit `ATTEMPT` and that your code passes all the tests, the attempt button is replaced by a green `SUBMIT` one. Hitting this green button is publishing your solution to the solutions page of the kata. You can take some time to refactor your solution before your final submission.
- term: Suggestion (comment)
description: |
Label used in the discourses section of Kata to suggest non critical improvements to it (like rewording some parts of the description, or the feedback of some assertion messages in the tests), or to announce the pulication of a translation (useful when the author is inactive, so that power users can review and approve the translation).
- term: Test cases
description: |
Test cases represent the full batch of tests the code of a user has to pass to complete a Kata on Codewars.
Test cases generally contain more tests than the [example tests](/glossary/#example-tests), combining both [fixed](/glossary/#fixed-tests) and [random tests](/glossary/#random-tests).
- term: Test Driven Development
description: |
Kata are built following this principle: you are provided with specifications and a set of tests, and your goal is to pass those tests (by following the specifications or finding a way to at least pass the tests).
acronym: TDD
links:
- title: Test-driven Development - Wikipedia
url: https://en.wikipedia.org/wiki/Test-driven_development
- term: Test suite (kata)
description: See [test cases](/glossary/#test-cases)
- term: Trainer (kata)
description: |
This is the place where you write your code to complete a task.
see: /training/getting-started/solving-kata/
- term: Trainer suggestions
description: |
Trainer suggestions are the Kata that are showing up at the top of the dashboard. Those suggestions can be tweaked at some point, either through the profile of the user or directly through the dashboard.
See [training setup](/training/getting-started/setting-up/#training-setup).
- term: Translation
description: |
A translation is created by an user to make a Kata available in a new language. A translation can be rejected during the peer review process.
- term: Translator
description: |
User who translated an existing kata to a new language, making it available for other codewarriors.
- term: Unpublish (Kata)
description: |
An author can unpublish his Kata if it's still in beta state (and only in this case). An unpublished kata goes back to draft state, and cannot be completed anymore by other users.
Unpublishing a Kata may be the best way for the author to have time to resolve issues raised by other users during the beta process.