From 5893f613084de280aaa6ed9346abbfb2022fd421 Mon Sep 17 00:00:00 2001 From: Pilou <8350914+pil0u@users.noreply.github.com> Date: Fri, 17 Nov 2023 01:46:54 +0100 Subject: [PATCH] Refresh the FAQ (#326) * Update the wording of the existing FAQ * Remove data notice in settings, it's already in the FAQ * Reorder questions * Remove horrendous spaces --- app/views/pages/faq.html.erb | 302 ++++++++++++++++------------------ app/views/users/edit.html.erb | 3 +- 2 files changed, 139 insertions(+), 166 deletions(-) diff --git a/app/views/pages/faq.html.erb b/app/views/pages/faq.html.erb index a1f94478..0af107ad 100644 --- a/app/views/pages/faq.html.erb +++ b/app/views/pages/faq.html.erb @@ -7,14 +7,14 @@

- Solve puzzles 🧠 Earn points 💎 Win prizes 🎁 + Solve puzzles 🧠 Gain points 💎 Win prizes 🎁

- Every single challenge you solve at any time will give you, your campus and your squad, points. + Each puzzle you solve at any time grants points to you, your campus and your squad.

- The <%= link_to "calendar", calendar_path, class: "link-explicit link-internal" %>(*) starts on - December 1st, and the winners in all categories will be determined by the standings on December 31st. + The competition starts on December 1st, winners in all categories will be determined + by the final standings on December 31st.

<% if user_signed_in? %> @@ -43,16 +43,16 @@

<%= link_to "Advent of Code", "https://adventofcode.com/", target: :ext, class: "link-explicit link-external" %> - is an Advent calendar of small programming puzzles that can be solved in any programming language. + is an Advent calendar of small programming puzzles that you can solve in any programming language.

- Every day at midnight EST/UTC-5, from December 1st to - December 25th, a new puzzle pops up with some fictional Christmas backstory 🎄 + A new puzzle is released every day at midnight EST/UTC-5 (or 6am Paris time 😴), from + December 1st to December 25th, accompanied by a + fictional Christmas backstory 🎄

- Solving any puzzle earns you points 💎, not only for you, but also for - your campus @ Le Wagon and your custom - squad of 4. + Solving puzzles earns you points 💎, for yourself, your campus @ + Le Wagon and your custom squad of 4.

@@ -62,16 +62,16 @@

- A puzzle is a problem defined in plain English terms, for which the answer can only be found using programming. - For a given input, you need to compute the corresponding - output, usually a number. + A puzzle is a problem stated in plain English terms, (usually) requiring a programming solution to find the + answer. Given an input, you have to compute the corresponding + output, typically a number.

- A puzzle is made of two parts, two challenges: you access the second one only - if you solved the first one. + Each puzzle consists of two parts, two challenges, with access to the second one granted only + upon solving the first.

- If you want to take a closer look, puzzles from previous editions are available + Puzzles from past editions are available <%= link_to "here", "https://adventofcode.com/events", target: :ext, class: "link-explicit link-external" %>.

@@ -82,62 +82,57 @@

- The difficulty of a puzzle varies from day to day. The first part of each puzzle is - largely accessible to a Wagoner, student or Alumni. The second part is usually - harder, but still accessible to more or less experienced profiles. + Puzzle difficulty fluctuates across the event. The first part of each puzzle is + generally accessible to Wagoners, students and Alumni. The second part is somewhat + harder, but still doable for varying experience levels.

- Although the author of the puzzles attempts to increase the difficulty over time, in - reality it's not the case and pretty random. You may find puzzle #20 much easier than #5. The notion of - difficulty is very relative to your personal skill set and past experience with problem solving in general. + Difficulty is not strictly progressive; you may find puzzle #21 much easier than #6. + Difficulty is very relative to your personal skills and past problem-solving experience.

If you get stuck on a puzzle, you can always - <%= link_to "discuss it", Aoc.slack_channel, class: "link-explicit link-slack" %> - with others! This event with Le Wagon is, above all, a great opportunity - for sharing, learning and helping each other, regardless of your initial skill level. - It's also a perfect moment to reconnect with your campus/batch 🤙 + <%= link_to "discuss with other Wagoners", Aoc.slack_channel, class: "link-explicit link-slack" %>! This event + is about sharing, learning, and mutual help, irrespective of your skill level. + It's also a perfect time to reconnect with your campus/batch 🤙

- <%= render Faq::DetailsSummaryComponent.new(title: "Why are there two different platforms?") %> + <%= render Faq::DetailsSummaryComponent.new(title: "What is a squad?") %>

- The Advent of Code platform is where you find and solve the puzzles. + A squad is a group of up to 4 participants, and each participant can be part of 0 or + 1 squad.

- Because @ Le Wagon we like things spicy, we wanted to build scoreboards - by campus. The leaderboard system on adventofcode.com is not flexible enough - for that. + You build your squad by assembling your dream team (find people + <%= link_to "on Slack", Aoc.slack_channel, class: "link-explicit link-slack" %>) and create a squad in your + <%= link_to "settings", settings_path, class: "link-explicit link-internal" %>(*) in 1 click.

- We built this platform to create a link between Kitt and Advent of Code, so we can build - <%= link_to "custom agregated scoreboards", scores_path, class: "link-explicit link-internal" %>(*). + Creating a squad generates a unique PIN to share with your peers for joining. +

+

+ Squads have their own scoreboards, and the squad's score is + the sum of its members' scores. +

+

+ ⚠️ Squads lock on + <%= "#{Aoc.lock_time.to_fs(:long_ordinal)} #{Aoc.lock_time.zone}" %>. No squad creation, joining or leaving is + possible after that.

- <%= render Faq::DetailsSummaryComponent.new(title: "Why are leaderboards different on adventofcode.com vs aoc.lewagon.community?") %> + <%= render Faq::DetailsSummaryComponent.new(title: "What are the prizes?") %>

- When you pass the setup process, you actually join a private leaderboard on adventofcode.com. These private - leaderboards are capped to 200 members and you are definitely more than 200 to participate :-) -

-

- To overcome this issue and build a global leaderboard with everybody, - we create multiple private leaderboards on adventofcode.com behind the scenes: - each participant is assigned to one. Once a private leaderboard is full, we create a new one. -

-

- Bottom line is that the private leaderboard you appear on adventofcode.com does not make a lot of sense, - because you belong to a group of 200 people that is pretty random. You should look at the - <%= link_to "scoreboards", scores_path, class: "link-explicit link-internal" %>(*) - on our own platform that includes everybody from all of our private leaderboards. + Coming soon... 👀

@@ -147,83 +142,86 @@

- In a nutshell, you have 24 hours to get the maximum points available for a daily puzzle. After that, points you - can earn slightly decrease over time. + TL;DR - You have 24 hours to maximise points for a daily puzzle; after that, points decrease slightly over time.

Individual scores

- There are 50 challenges (25 days * 2 challenges per day). - For each one of them: + There are 50 challenges (25 days * 2 challenges/day). For each challenge:

- To be clear, even if you solve a challenge 2 weeks from its release, you still get - 25 points. + Even if you solve a challenge 2 weeks after release, you still get 25 points.

- Your individual score is the sum of scores for every challenge you solved. + Your individual score is the sum of scores for every challenge you solve.

Tiebreakers:

  1. Score
  2. -
  3. Total number of challenges solved in less than 24 hours
  4. -
  5. Total number of challenges solved in less than 48 hours
  6. +
  7. Total challenges solved in less than 24 hours
  8. +
  9. Total challenges solved in less than 48 hours

Campus scores

- Ranking campuses is hard, because the number of Alumni per campus is very different. + Ranking campuses is hard, because Alumni per campus vary a lot. +

+

+ For each challenge, the campus' top N individual scores are taken into + account.

- For each challenge, only the scores of your campus' top contributors are taken into account. The number - of top contributors is determined by your campus' size: it's either - 3% of your campus' size, or 10 contributors, whatever - the greatest. + N is determined by your campus' size: it's equals either to + 3% of your campus' size, or 10, whichever is + greater.

Examples:

- The number of top contributors will be set according to the number of Alumni per campus ~ a week before December, - and will stay the same until the end of the event. -

-

- So, for each challenge, the score of a campus is the average of the individual scores from its top - contributors. Finally, the global score of a campus is the sum of these averages for all challenges. + Campus score, for each challenge, is + the average of the top N individual scores. The global campus score is + the sum of these averages for all challenges.

Examples:

- <%= render Faq::DetailsSummaryComponent.new(title: "What is a squad?") %> + <%= render Faq::DetailsSummaryComponent.new(title: "The Ladder of Insanity?!") %>

- A squad is a group of up to 4 participants.
A participant can belong to 0 or - 1 squad. -

-

- You are responsible for building your squad: assemble your dream team (you can find people - <%= link_to "on Slack", Aoc.slack_channel, class: "link-explicit link-slack" %>), then materialize it in a squad - in your <%= link_to "settings", settings_path, class: "link-explicit link-internal" %>(*). -

-

- Create a squad in 1 click and share the generated PIN of your squad to your - peers: they will need it to join you. + Puzzles release globally at midnight EST/UTC-5, or 5:00/6:00 in Western Europe.

- Squads have their own scoreboards. The score of a squad is simply - the sum of its members' scores. + Some of you wake up right before 6:00 to start coding upon puzzle release, every day, during 25 days.

- ⚠️ Squads will be locked on - <%= "#{Aoc.lock_time.to_fs(:long_ordinal)} #{Aoc.lock_time.zone}" %>. From that moment, you will not be able to - create, join or leave a squad. + This is insane.

- In case of late registration or exceptional situation after lock time, please - <%= link_to "contact us", Aoc.slack_channel, class: "link-explicit link-slack" %>. + But I don't want to get in the way of people adopting new morning habits.

-
-
- -
- <%= render Faq::DetailsSummaryComponent.new(title: "The Ladder of Insanity?!") %> - -

- In 2021, the amount of points you could earn depended on your rank/time to solve a challenge - from its release. The puzzles release at midnight EST/UTC-5, which is also 5:00/6:00 in Western Europe - or 12:00/13:00 in Asia. + So we created an additional individual scoring system, based on your time to solve a challenge + from its release:

- Some people woke up right before 6:00 to start coding upon release, every day, during 25 days. -

-

- This is insane. -

-

- However, I don't want to prevent people from getting new morning habits and solve puzzles before sunrise. So I - decided to keep this scoring system as an opt-in (being insane myself had nothing to do with that decision). -

-

- It is now called The Ladder of Insanity. + The Ladder of Insanity

- I am insane, how can I join? + I am insane, how can I join?

Go to your <%= link_to "settings", settings_path, class: "link-explicit link-internal" %>(*) and @@ -336,24 +290,23 @@

- ⚠️ The Ladder of Insanity will be locked on - <%= "#{Aoc.lock_time.to_fs(:long_ordinal)} #{Aoc.lock_time.zone}" %>. From that moment, you will not be able to - join or leave it. -

-

- In case of late registration or exceptional situation after lock time, please - <%= link_to "contact us", Aoc.slack_channel, class: "link-explicit link-slack" %>. + ⚠️ The Ladder of Insanity locks on + <%= "#{Aoc.lock_time.to_fs(:long_ordinal)} #{Aoc.lock_time.zone}" %>. No joining or leaving is possible after + that.

- How the ranking works + How the ranking works

- Let N be the number of participants who opted-in for The Ladder of Insanity. + Let X be the opt-in (insane) participants. +

+

+ For each challenge, participants are ranked by relative time to solve it. The first participant wins + X points, the second one wins X-1 points, the third one X-2 points and so + on.

- For each challenge, participants are ranked by their relative time to solve it. The first participant - to find the correct answer to a puzzle wins N points, the second one wins N-1 points, - the third one N-2 points and so on. Example: + Example:

@@ -441,42 +394,59 @@

- Scores are dynamically adjusted as new participants join The Ladder of Insanity. Your score of Insanity is - the sum of scores for every challenge you solved. + Scores are adjusted dynamically as new participants join The Ladder of Insanity. Your Insanity score is + the sum of scores for challenge you solve.

- <%= render Faq::DetailsSummaryComponent.new(title: "When does the contest end?") %> + <%= render Faq::DetailsSummaryComponent.new(title: "Why two platforms?") %>

- You have until <%= "#{Aoc.lewagon_end_time.to_fs(:long_ordinal)} #{Aoc.lewagon_end_time.zone}" %> - to solve the puzzles 🏁 From that moment, all scores will freeze to determine and announce the results. + Advent of Code hosts and presents the puzzles for solving. +

+

+ At Le Wagon we like things spicy, we want + campus-specific scoreboards, which the adventofcode.com leaderboard system does not + support. +

+

+ So, we created a platform (this website), linking Kitt and Advent of Code, to build + <%= link_to "custom agregated scoreboards", scores_path, class: "link-explicit link-internal" %>(*).

- <%= render Faq::DetailsSummaryComponent.new(title: "What are the prizes?") %> + <%= render Faq::DetailsSummaryComponent.new(title: "Why are leaderboards different on adventofcode.com vs aoc.lewagon.community?") %>

- The best <%= link_to "individuals", scores_solo_path, class: "link-internal link-explicit" %> (including - <%= link_to "insane ones", scores_insanity_path, class: "link-internal link-explicit" %>) will win - exclusive t-shirts from the event. + During the setup process, you join a private leaderboard on adventofcode.com, capped at 200 members. As + participants here exceed this limit, multiple private leaderboards are created behind the scenes, + assigning each participant to one.

-

- The best <%= link_to "squads", scores_squads_path, class: "link-internal link-explicit" %> will win - online escape rooms - more puzzles! + Your private leaderboard on adventofcode.com is meaningless, it's a random group of 200 Wagoners.

+

+ Check our platform's + <%= link_to "scoreboards", scores_path, class: "link-explicit link-internal" %>(*) instead, they + include everyone in the comunity! +

+
+
+
+ <%= render Faq::DetailsSummaryComponent.new(title: "When does the contest end?") %> + +

- The best <%= link_to "campus", scores_campuses_path, class: "link-internal link-explicit" %> will win - a check from Le Wagon HQ to fund a huge party/event in 2023. But most importantly, - the campus will earn the most prestigious award: the golden star ⭐ + <%= "#{Aoc.lewagon_end_time.to_fs(:long_ordinal)} #{Aoc.lewagon_end_time.zone}" %> + is the deadline for solving puzzles 🏁 At this point, all scores will freeze, and the results will be determined + and announced.

@@ -486,11 +456,15 @@

- When you hit the button "Sign in with Kitt", we only collect your GitHub username. - We use it as your default public username on the platform, but you can change it any time. + When you hit "Sign in with Kitt", we collect your GitHub username, batch number and + campus. We use your GitHub username as your default public username, changeable at any time. +

+

+ When you hit "Link Slack account", we collect your Slack ID, Slack username and + encrypted authentication token from Le Wagon Alumni workspace.

- We do not collect emails or real names. That's it. + We do not collect emails or real names.

diff --git a/app/views/users/edit.html.erb b/app/views/users/edit.html.erb index 347be4e3..39fdc87a 100644 --- a/app/views/users/edit.html.erb +++ b/app/views/users/edit.html.erb @@ -48,8 +48,7 @@

To facilitate support and communication (e.g. for the rewards), you can link your Le Wagon Slack account with the - platform. You also might access to other cool features 👀
- Data we retrieve: slack_id, slack_username + platform. You also might access to other cool features 👀