YAML template: code and hack
The template of the metadata YAML file for a programming solution and for a ctf-hacking solution.
For a code challenge and for a hack challenge, the name of this file is
{user-name}.yml. Remove all the comments from your file.
Fill the fields in angle brackets <>. The list below the box tells you what
each field is.
type: <scope>
user-name: <user-name>
stage: <phase>
complexity: <complexity>
others:
in: <M>
out: <N>
totals: <M+N>
score:
initial: <X>
final: <Y>
progress: <Y-X>
global-rank:
initial: <A>
final: <B>
progress: <A-B>
national-rank:
initial: <A>
final: <B>
progress: <A-B>
effort: <H>
productivity: <P>
date: <commit-date>
path: <solution-path>-
<scope>iscodefor a programming challenge, orhackfor a ctf-hacking challenge. -
<user-name>is your GitLab username. It must be the same as the first part of the name of your branch. -
<phase>is the phase of the Academy that you are in. The key of this field in the YAML file isstage, and it is not the academy stage of Terms. Your team leader gives you the phase when you start. Select one of these four values, and use the same value in all your merge requests. Change it only when your team leader tells you to change it.journey.quest.onboarding.practice.
How it works gives each phase.
-
<complexity>is the difficulty of the challenge, or its score, from the platform. The same value goes in the parentheses of your commit title.- CodeAbbey. The blessing of the problem, which is equal to
score.progress. - SPOJ. The score of the problem, which SPOJ shows at the moment of the solution.
Score and ranking tells you how to read this value.
- CodeAbbey. The blessing of the problem, which is equal to
-
<solution-path>is the name of your solution file. It must obey the naming conventions of the repository. -
<commit-date>is the date of the commit. The commandgit loggives it to you. You must write the UTC date. If you are in Bogota, Colombia, add 5 hours. The format isYear-Month-Day Hours:Min:SecondsZ. An example is2021-04-16 09:41:52Z. -
M, N, A and B are integers. X, Y, H and P can have decimals. When a calculation gives a decimal, write 3 decimal places or less, and do not round the value. For example, write
15.075and not15.08. Write15.07as15.07, and15.0as15.0. All the formulas below obey this rule. -
M is the quantity of internal solutions of other talents for the challenge that you solve. Fluid Attacks counts the
.ymlfiles of the challenge folder, and it does not count your own file. -
N is the quantity of external solutions in the
OTHERS.lstfile for the challenge that you solve. Fluid Attacks counts the lines that are not empty.CAUTION: Read the challenge folder again before you push. Fluid Attacks computes M and N from the repository. A merge request that a reviewer merged after you made your branch changes M.
-
A and B are your position in a ranking, before and after the solution. They go in
global-rankand innational-rank. -
Effort is the quantity of hours that you used for this challenge, in decimal hours. The value must be a number over zero.
Time Doctor gives no time for each challenge, because it runs against one task. You decide which part of a session is for this challenge, and you write that value. Terms gives the time-tracking rules.
The value can be exact, or an honest estimate.
Write the hours with 3 decimal places or less, and do not round the value. For example, 10 hours and 0 minutes is
10.0. A time of 0 hours and 24 minutes is0.4, because 24 / 60 = 0.4. A time of 5 hours and 13 minutes is5.216. -
Productivity is the progress in points divided by the effort:
P = (Y - X) / H. Write the exact result of this division with 3 decimal places or less, and do not round it. For example,score.progressis6.03and the effort is0.4. Then6.03 / 0.4 = 15.075, and yourPvalue is15.075.Use
score.progressand not the complexity. The two values are equal on CodeAbbey, and they are different on SPOJ. -
Rank progress is
initial - final, forglobal-rankand fornational-rank. A positive value shows that you moved up in the ranking. A negative value shows that your position became worse. The rankings of a platform such as CodeAbbey are dynamic, so this can occur. Other users send solutions while you work on your challenge. Always write the values that the platform shows.
You must fill all these values. Every field is applicable, because each challenge gives a score and gives ranks. Read Score.
Full example:
type: code
user-name: friendglak
stage: onboarding
complexity: 8.95
others:
in: 4
out: 14
totals: 18
score:
initial: 111.26
final: 120.21
progress: 8.95
global-rank:
initial: 4285
final: 3998
progress: 287
national-rank:
initial: 221
final: 206
progress: 15
effort: 11.0
productivity: 0.814
date: "2021-04-16 09:41:52Z"
path: friendglak.elvThese are user.yml files that are already in the repository: