Question: # Contribute <del> Tools to help maintain [freeCodeCamp.org](https://www.freecodecamp.org)'s Open Source Codebase on GitHub. We are currently working on creating a tools dashboard for helping you review PRs and translations. Hangout with us in the [contributor's chat room](https://chat.freecodecamp.org/contributors) to learn more. </del> <ins> Tools to help maintain [freeCodeCamp.org](https://www.freecodecamp.org)'s Open Source Codebase on GitHub. We are currently working on creating a tools dashboard for helping you review PRs and translations. Hangout with us in the [contributor's chat room](https://chat.freecodecamp.org/channel/contributors) to learn more. </ins>

<!-- NOTE: If you want to become an author on freeCodeCamp, you can find everything here: --Describe your problem and how to reproduce it: The problem is when click on this in directory to open link is not valid and go to page. Add a Link to the page with the problem: Recommended fix, suggestions (how would you update it?): I recommend to replace this link by because the basic going to contributors channel. If possible, add a screenshot here (you can drag and drop, png, jpg, gif, etc. in this box): ! If i can fix it, It will be great for me. Thanks
Thank you for catching this - I'm opening this up to first timers to replace the link in the file.
Thanks, Can i fix it?
Go for it! If you have not done so already, we recommend reviewing our .
Okay, Thanks a lot, I will do that.


Question: } } <del> .button-group .btn:not(:last-child) { margin-bottom: 10px; } </del> strong { color: var(--secondary-color); }

The class is used in : The class doesn't have any effect because there isn't any in : That means it's safe to remove the class now. Remove the selector from Remove the class from
This issue is open for contribution. Please make sure you read our as well as our , we prioritize contributors following the instructions in our guides. Join us in our or our if you need help contributing; our moderators will guide you through this. Sometimes we may get more than one pull request. We typically accept the most quality contribution followed by the one that is made first. Happy contributing.


Question: The positive aspect is that you don't have to limit your moodboard to images in magazine. The negative aspect is that it might be hard to find the right images, since you have all internet to search from. The places to start look for images and ideas:  - google. Goole Images can be chosen according to colour, shape or form, so if you can search it, then it is possible that you find it.   - google. Google Images can be chosen according to colour, shape or form, so if you can search it, then it is possible that you find it.  - Pinterest. Same as for google, yet different. - free images. Such as Pixabay, Pexels, or free images sites, you can find tons of inspiration already in one picture. - go outside with a camera. There might be the exact item for your moodboard waiting for you to take that picture.

originally reported: Each time I log in with Twitter, I still have to authorize the app to allow FCC access to my profile.
PR resolves this issue successfully.
Twitter API documentation for GET oauth/authenticate distinguishes the difference between authorize and authenticate in paragraph four .
I believe this is still an issue. I've already authorized FCC to interact with my twitter account, yet every time I attempt sign-in with twitter it still wants permission to authorize account interaction. Rather than just logging in.
Angelica, The pull request hasn't been merged into the main branch and pushed live to the servers. As soon as the team has a chance to review my changes we'll get it going live for you to enjoy the ease of use! On Sat Jan 17 2015 at 6:07:48 PM Angelica Ferdinand < :


Question: npm run create-empty-steps X # where X is the number of steps to create. ``` <del> ## insert-step </del> <ins> ### insert-step </ins> A one-off script that automatically adds a new step at a specified position, incrementing all subsequent steps (both their titles and in their meta.json). The challenge seed code will use the previous step's challenge seed code with the editable region markers (ERMs) removed. **Note:** This script also runs [update-step-titles](#update-step-titles). <del> ### How to run script: </del> <ins> #### How to run script: </ins> 1. Change to the directory of the project. 2. Run the following npm command:

challenge-editor should be to the "How to work on practice projects" documentation here:
I'll tackle this today.


Question: Usernames are used everywhere on the internet. They are what give users a unique identity on their favorite sites. You need to check all the usernames in a database. Here are some simple rules that users have to follow when creating their username. 1) Usernames can only use alpha-numeric characters. <del> 2) The only numbers in the username have to be at the end. There can be zero or more of them at the end. </del> <ins> 2) The only numbers in the username have to be at the end. There can be zero or more of them at the end. Username cannot start with the number. </ins> 3) Username letters can be lowercase and uppercase. 4) Usernames have to be at least two characters long. A two-character username can only use alphabet letters as characters. </section>

Describe your problem and how to reproduce it: As discussed at exhaustive length , the username requirements don't technically preclude the username "007". The requirement "Usernames should begin with a letter" should be . Add a Link to the page with the problem: Low-hanging fruit for a new contributor.


Question: If a number appears four or more times, you will need to update the `Four of a Kind` option with your `updateRadioOption` function. If a number appears three or more times, you will need to update the `Three of a Kind` option. In both cases, the score value should be the sum of all five dice. <del> If neither of those are true, the final option should be updated with a score of `0`. Make sure to call your `getHighestDuplicates` when the dice are rolled. </del> <ins> Regardless of the outcome, the final option should be updated with a score of `0`. Make sure to call your `getHighestDuplicates` when the dice are rolled. </ins> # --hints--

In step 7 of the dice game (js beta) project, the instructions say: If a number appears four or more times, you will need to update the Four of a Kind option with your updateRadioOption function. If a number appears three or more times, you will need to update the Three of a Kind option. In both cases, the score value should be the sum of all five dice. If neither of those are true, the final option should be updated with a score of 0. However, when we check the code in step 8 we see that in fact, the final radio button should be updated regardless of whether any four or three of kind checks passed or failed. The code looks like this in step 8: So in fact the instruction was misleading when it said: If neither of those are true, the final option should be updated with a score of 0. What it actually should have said was: Also, the final option should be updated with a score of 0. (since the decision to update has nothing to do with whether duplicates were found) Whoever works on this issue should be aware of the other issue affecting step 13 in case the discussion there ends up changing what is done for this step N/A step should not suggest that the last radio button should only be updated if the previous checks have failed No response N/A No response
How about:? Regardless of the outcome, the final option should be updated with a score of .
Yes, let's go with this:


Question: import meta from './meta'; import mathjax from './mathjax'; import sassjs from './sassjs'; <ins> import scripts from './scripts'; </ins> const metaAndStyleSheets = meta <del> .concat(favicons, mathjax, sassjs) </del> <ins> .concat(favicons, mathjax, sassjs, scripts) </ins> .map((element, i) => ({ ...element, key: `meta-stylesheet-${i}`,

I can work on this. A little confused though, since it appears to be there already. Does the mission statement go here? Please provide instructions, thanks.


Question:
"tests": [], "type": "Waypoint", "challengeType": 7,  "nameEs": "Prepárate para los Ziplines",   "nameEs": "Prepárate para los Proyectos de Desarrollo de Interfaces",  "descriptionEs": [ [  "http://i.imgur.com/OAD6SJz.png", "Una imagen del juego Simón, uno de nuestros proyectos de interfaz.", "Nuestros proyectos de desarrollo de interfaces te darán oportunidad de aplicar las habilidades con interfaces que has desarrollado hasta este momento.  Usaremos un editor de código basado en el navegador llamado CodePen.", "" ], [ "http://i.imgur.com/WBetuBa.jpg", "Un programador frustado golpeando la pantalla de su computador.", "Nuestros desafíos sobre algoritmos son difíciles.  Algunos pueden requerir muchas horas para resolverse.  Podrás frustarte, pero no te rindas.", "" ], [ "http://i.imgur.com/p2TpOQd.jpg", "Un tierno perro que salta sobre un obstáculo, pica el ojo y te apunta con su pata.", "Cuando te atasques, usa la metodología Leer-Buscar-Preguntar.
No te preocupes -  ya lo has entendido.", "" ], [  "http://i.imgur.com/6WLULsC.gif", "Un gif que muestra cómo crear una cuenta en Codepen.",  "Para nuestros desafíos de front end, los Ziplines, usaremos un editor muy famoso llamado Codepen, el cual es completamente basado en el navegador. Abre CodePen y pulsa en "Sign up" en la esquina superior derecha, luego ve hacia abajo donde se encuentra el plan gratuito (free plan) y pulsa en "Sign up". Da clic en el botón que dice "Use info from GitHub", luego agrega tu dirección de correo electrónico y crea una contraseña. Pulsa el botón que dice "Sign up". Luego, en la esquina superior derecha , da clic en "New pen".",   "Para nuestros desafíos de interfaces, usaremos un editor muy famoso llamado Codepen, el cual es completamente basado en el navegador. Abre CodePen y pulsa en "Sign up" en la esquina superior derecha, luego ve hacia abajo donde se encuentra el plan gratuito (free plan) y pulsa en "Sign up". Da clic en el botón que dice "Use info from GitHub", luego agrega tu dirección de correo electrónico y crea una contraseña. Pulsa el botón que dice "Sign up". Luego, en la esquina superior derecha , da clic en "New pen".",  "http://codepen.io" ], [ "http://i.imgur.com/U4y9RJ1.gif", "Un gif que muestra que puedes escribir "hello world" en el editor, lo cual escribirá "hello world" en la ventana de vista previa. También puedes mover las ventanas para cambiar su tamaño, y cambiar su orientación.",  "En la ventana de HTML, crea un elemento h1 con el texto "Hola mundo". Puedes arrastrar los bordes de las ventanas para cambiar su tamaño. Tambiénn puedes pulsar el botón de "Change View" para cambiar la orientación de las ventanas.",   "En la ventana de HTML, crea un elemento h1 con el texto "Hola mundo". Puedes arrastrar los bordes de las ventanas para cambiar su tamaño. También puedes pulsar el botón de "Change View" para cambiar la orientación de las ventanas.",  "" ], [ "http://i.imgur.com/G9KFQDL.gif", "Un gif que muestra el proceso de agregar Bootstrap a tu proyecto.",  "Pulsa el engrane en la esquina superior izquierda de la ventana de CSS, luego ve hacia abajo hasta donde dice "Quick add" y elige Bootstrap. Ahora dale a tu elemento h1 la clase "text-primary" para cambiar su color y verificar que Bootstrap está activado.",   "Pulsa el engrane en la esquina superior izquierda de la ventana de CSS, luego ve hacia abajo hasta donde dice "Quick add" y elige Bootstrap. Ahora dale a tu elemento h1 la clase "text-primary" para cambiar su color y verificar que Bootstrap está activado.",  "" ], [ "http://i.imgur.com/Gi3aig0.gif", "Un gif que muestra el proceso de agregar Animate.css y jQuery a tu proyecto.",  "Pulsa el engrane en la esquina superior izquierda de la ventana de CSS, luego ve hacia abajo hasta donde dice "Quick add" y elige Animate.css. Haz clic en el engrane en la esquina superior izquierda de la ventana de JS, luego ve hacia abajo hasta donde dice "Quick add" y elige jQuery. Provemos que Animate.css y jQuery se cargaron propiamente. En la ventana de JS, agrega el siguiente código para hacer tu elemento h1 rebotar: $(document).ready(function(){ $("h1").addClass("animated bounce"); });.",   "Pulsa el engrane en la esquina superior izquierda de la ventana de CSS, luego ve hacia abajo hasta donde dice "Quick add" y elige Animate.css. Haz clic en el engrane en la esquina superior izquierda de la ventana de JS, luego ve hacia abajo hasta donde dice "Quick add" y elige jQuery. Comprobemos que Animate.css y jQuery se cargaron propiamente. En la ventana de JS, agrega el siguiente código para hacer rebotar tu elemento h1: $(document).ready(function(){ $("h1").addClass("animated bounce"); });.",  "" ], [

[x] Get Set for our Front End Development Projects [x] Build a Personal Portfolio Webpage [x] Build a Random Quote Machine [x] Build a JavaScript Calculator [x] Build a Pomodoro Clock
Working on this one


Question: console.log(canary.numLegs); ``` <del> Since all instances automatically have the properties on the `prototype`, think of a `prototype` as a "recipe" for creating objects. Note that the `prototype` for `duck` and `canary` is part of the `Bird` constructor as `Bird.prototype`. Nearly every object in JavaScript has a `prototype` property which is part of the constructor function that created it. </del> <ins> Since all instances automatically have the properties on the `prototype`, think of a `prototype` as a "recipe" for creating objects. Note that the `prototype` for `duck` and `canary` is part of the `Bird` constructor as `Bird.prototype`. </ins> # --instructions--

When I learned the JavaScript,I saw this expression "Nearly every object in JavaScript has a prototype property which is part of the constructor function that created it.", I give me a vibe that "All objects in JavaScript have prototype property". I don't know if this is my misunderstanding, If not , correct it It will bring great misleading to novices. Correct it into below “Nearly every object in JavaScript has a constructor that created it ,and this constructor function has a prototype property.” No response Device: [Laptop] OS: [MacOs 13.2] Browser: [Chrome] Version: [110.0.5481.177] No response
Thank you for taking the time to open this. I am not sure what you mean by this. I am not sure how you interpret "all objects" from the words "nearly every object" Aside from that, I suggest we remove the sentence completely. It does not do much, and is incorrect: I believe the sentence is referring to some primitives like which do not have a property . However, these are not objects, unless referring to the . man, js is confusing
Sorry, I am not good at English.I didn't expect MDN to have a similar expression, because I didn't read the English version before.By the way, you just said that this expression is incorrect and gave you your thoughts I remember that not only some primitives like number do not have a property prototype, but also an object like this does not have a property prototype too. <img width="276" alt="image" src="https://user-"It seems that only functions have a property prototype.
All JavaScript objects have prototypes - not just functions: Hope this clarifies
I agree with - that sentence is confusing at best. I vote we remove it.
Sorry to reply your so late. Well, I think I may be aware of the key to the problem. I just looked at the definition of Property. Property included three parts: key value some attributes I used to think that Property only refers to the key. Okay, I admit that I have always been wrong before. Then I looked at the definition of Prototype again, but unfortunately I did not find a very clear definition. I only saw the following sentence I seem to understand Prototype as an object, it does not contain Key, right?

If so, The Property cannot be put together with Prototype, because Property contains Key + Value + Attributes, but Prototype is just a value, and it is an Object Value. Although there is such an expression in MDN: But there is also such a note below: This really makes me feel confused.
I suggest you ask your questions on . To summarise: Everything in JavaScript is an object. except for some primitives Every object has a prototype Prototypes are objects You cannot access an object's prototype by using , because the prototype is not explicitly named Often, the prototype is called , in which case it is possible to access it using If you have any more questions, please head over to the forum. A Github issue is not the best place for such discussion.
An issue with the label is open for contribution. The first comprehensive PR created will be reviewed and merged. We typically do not assign issues to anyone other than long-time contributors. If you would like to contribute, and have not read the contributors docs, please do so here: If you have any issues with contributing, be sure to join us on the , or on the Affected file: Changes to Close: Remove this sentence from the instructions (description):


Question:
"tests": [ "assert($("#left-well").css("background-color") === 'red' || $("#left-well").css("background-color") === 'rgb(255, 0, 0)' || $("#left-well").css("background-color").toLowerCase() === '#ff0000' || $("#left-well").css("background-color").toLowerCase() === '#f00', 'message: Your left-well element should have a red background.');", "assert(code.match(/.parents*()s*.css/g), 'message: You should use the .parent() function to modify this element.');",  "assert(code.match(/$s*?(s*?(?:'|")s*?#target1s*?(?:'|")s*?).parent/gi), 'message: The .parent() method should be called on the #target1 element.');",   "assert(code.match(/$s*?(s*?(?:'|")s*?#target1s*?(?:'|")s*?)s*?.parent/gi), 'message: The .parent() method should be called on the #target1 element.');",  "assert(code.match(/
/g), 'message: Only use jQuery to add these classes to the element.');" ], "type": "waypoint",

Challenge has an issue. User Agent is: <codeMozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36</code. Please describe how to reproduce this issue, and include links to screenshots if possible. My code: The challenge accepts only (single or double quotes) without any spaces between the end of the call and the dot. For example, neither of the following is accepted:
Regex should probably be this (escaped for JS): instead of this:
We welcome a PR to fix this :smile:


Question: "assert($("img").length === 2, 'You should have a total of two images.')", "assert(editor.match(/<img/g) && editor.match(//g).length === 2 && editor.match(/<img/g).length === 2, 'Make sure your new img element has a closing angle bracket.')", "assert($("img").hasClass("img-responsive"), 'Your new image should have the class img-responsive.')",  "assert(new RegExp("http://bit.ly/fcc-running-cats", "gi").test($("img.img-responsive").attr("src")), 'Add a second image with the src of http://bit.ly/fcc-running-cats.')"   "assert(new RegExp("http://bit.ly/fcc-running-cats", "gi").test($("img.img-responsive").attr("src")), 'Your new image should have a src attribute of http://bit.ly/fcc-running-cats.')"  ], "challengeSeed": [ "<link href="http://fonts.googleapis.com/css?family=Lobster" rel="stylesheet" type="text/css">",

Challenge has an issue. Please describe how to reproduce it, and include links to screen shots if possible. The following will pass the test: Note: it's missing a at the end of it Im thinking this is a flaw with it rendering it on the fly creating the dom elements even if it's not complete? But it leads to a false sense of being done when you really aren't done with the element to pass it. Subjective I guess depending on your view of it?
new url
This is not passing for me. Has this been fixed? EDIT: okay yeah, it IS passing for me.
should apparently fix it. I have no idea how to add regex to the challenge, so is someone willing to test this out?
I will take a look into it, please feel free to assign the issue to me. EDIT: I've got some changes together to fix the issue.


Question: isUsingKeyboardInTablist }: RenderEditorArgs) => { return ( <del> reduxChallengeFiles && ( </del> <ins> challengeFiles && ( </ins> <MultifileEditor <del> challengeFiles={reduxChallengeFiles} </del> <ins> challengeFiles={challengeFiles} </ins> block={block} superBlock={superBlock} containerRef={containerRef}

During development adding or modifying the head or tail code ( and ) don't seem to be updated in the challenge. Tested locally and on gitpod. Steps to reproduce the behavior: /modify the or in challenge. For example one of the steps in the JS curriculum. I was adding function and variables to it, and then was attempting to use them in tests. and wait for challenge to be updated. () the challenge page, or visit it for the first time. running tests, referencing the function/variables from head/tail code, there will be reference errors. Changing head or tail code, should update the challenge to use it. Login status don't seem to affect issue. During changing the code, thinking I might do something incorrectly, there were handful times when challenge was updated with the head/tail code. Not sure what was the exact reason. What makes it stranger is stopping client develop and starting again, is not necessarily solving the problem. At some point I thought that's working to get challenge fully updated, but right now that doesn't seem to work.
I might have seen this as well. I remember trying to save a regex in to use in multiple tests, and it didn't seem to work. Kind of just thought I was using it incorrectly, but maybe this was the issue.
Thanks for the detailed investigation of another tricky bug. It was another example where saved code messes things up. They're always a pain to debug because everyone sees something different, depending on whether or not they have something saved. Hopefully this is the last of them!
What's the most throwing off, that wasn't even code saved manually!
Weird. Is there nothing in your local storage?
Hmm, well there is after running tests. That must have been the point when saving mishap happened.
Oh, that's right. No mystery beyond "how did I forget this?" :face_exhaling:


Question: "  ", "  ", "</style>",  "CatPhotoApp"   "CatPhotoApp"  ], "tests": [ "assert($('a').css('color') == 'rgb(0, 0, 0)', 'message: The anchor tag color should remain black, only add CSS rules for the :hover state.');",

We need to update the links in the challenges from to Changes are to be made here: and here:
I can take it! :)
please go ahead! Good luck. Here are the .
Donezo :). Thanks!


Question: "descriptionEs": [ [ "http://i.imgur.com/NAOFJWN.jpg", <del> "Una imagen de algunos de nuestros campistas compartiendo en un café local. 3 hombres y 3 mujeres estan sentados alrededor de una mesa con portátiles afuera, y estan sonriendo y programando.", </del> <ins> "Una imagen de algunos de nuestros campistas compartiendo en un café local. 3 hombres y 3 mujeres están sentados alrededor de una mesa con portátiles afuera, y están sonriendo y programando.", </ins> "Nuestros Campamentos te ayudan a programar con otros campistas en tu ciudad. Puedes coordinar grupos de estudio o atender eventos de programación locales juntos.", "" ], [ "http://i.imgur.com/fTFMjwf.gif", <del> "Un gif mostrandote como puedes pulsar en el enlace inferior, encontrar tu ciudad en la lista de Campamentos, entonces haz clic en el enlace de Facebook para tu ciudad y unirte al grupo de Facebook de tu ciudad.", </del> <ins> "Un gif mostrándote como puedes pulsar en el enlace inferior, encontrar tu ciudad en la lista de Campamentos, entonces haz clic en el enlace de Facebook para tu ciudad y unirte al grupo de Facebook de tu ciudad.", </ins> "Encuentra tu ciudad en esta lista y haz clic en esta. Esto te llevara al grupo de Facebook del Campamento de tu ciudad. Da clic en el botón de "Unirse al grupo" para unirte a el grupo. Alguien del mismo campamento debería aprobarte en breve. Si tu ciudad no esta en esta lista, ve al final del articulo de la wiki para ver instrucciones de como crear un campamento para tu ciudad.", "https://github.com/FreeCodeCamp/freecodecamp/wiki/List-of-Free-Code-Camp-city-based-Campsites" ]

[X] Learn how Free Code Camp Works [X] Create a GitHub Account and Join our Chat Rooms [X] Configure your Code Portfolio [X] Join a Campsite in Your City [X] Learn What to Do If You Get Stuck


Question: *, ::before, ::after { padding: 0; margin: 0; <ins> box-sizing: border-box; </ins> } html { font-size: 62.5%; <del> box-sizing: border-box; </del> } body {

Someone in the forums pointed out that adding the property just to will not have the intended effect since the property is not inherited. It appears to me that removing this property completely from in the final product does not seem to make any difference to the layout. Do we need ? If so, if the intent is to apply it to all elements then it should probably be moved to the rule set. Either remove completely or move it into the ruleset. No response N/A No response
Pretty sure I saw this in another challenge too and it got fixed. The CSS used looks like the of setting the but with the actual inheriting missing from the code. It should be fixed, but I would not suggest we remove , setting that (in my opinion) is pretty much a best pratice.
I'm guessing it would be easier and take less explaining to update step 26 to add the on that selector and then remove the mention of it in step 27. Then update all the seed code.
Just a heads up, if lasjorg PR merged without issue, balance sheet project suffer the same issue, we can open a PR or issue for it, if the PR is merged. Except that the balance sheet project , doesn't do much and moving it break the layout.


Question:
Lets render this to the DOM

 );  // Change code below this line   // Add your code below this line  ReactDOM.render(JSX, document.getElementById('challenge-node')); ```

In module, the users are supposed to add their code after the provided code snippet. Keeping that in mind, the comment ( within the provided code snippet ) should be changed from to . In module, the provided code snippet should look as follows: ! Device: Laptop OS: macOS 13.0.1 Browser: Chrome Version: 107.0.5304.110


Question: "Left factorials" ], [ <del> "5a23c84252665b21eecc7ee1", </del> <ins> "5e4ce2bbac708cc68c1df25f", </ins> "Letter frequency" ], [ <del> "5a23c84252665b21eecc7ee2", </del> <ins> "5e4ce2eaac708cc68c1df260", </ins> "Levenshtein distance" ], [ <del> "5a23c84252665b21eecc7ee3", </del> <ins> "5e4ce2f5ac708cc68c1df261", </ins> "Linear congruential generator" ], [ <del> "5a23c84252665b21eecc7eec", </del> <ins> "5e4ce2a1ac708cc68c1df25d", </ins> "Long multiplication" ], [

<img width="428" alt="Screen Shot 2020-03-26 at 8 07 49 PM" src="https://user-"The rosetta code challenges are all in alphabetical order except those first few. I did some digging and found that regenerated some mongo ID's for the challenge files. But it looks like those ID's we're never updated to match in the . I'm assuming that's the problem. And strangely I can't find them when I search my local DB - This may cause some issues if someone tries to submit one of these - not sure. Edit: that first link is actually to a commit and not a PR - with that commit Seems like there should be a test for this.


Question: assert(typeof josephus(30, 3) == 'number'); ``` <del> `josephus(30,3)` should return `29`. </del> <ins> `josephus(30,3)` should return `28`. </ins> ```js <del> assert.equal(josephus(30, 3), 29); </del> <ins> assert.equal(josephus(30, 3), 28); </ins> ``` <del> `josephus(30,5)` should return `3`. </del> <ins> `josephus(30,5)` should return `2`. </ins> ```js <del> assert.equal(josephus(30, 5), 3); </del> <ins> assert.equal(josephus(30, 5), 2); </ins> ``` <del> `josephus(20,2)` should return `9`. </del> <ins> `josephus(20,2)` should return `8`. </ins> ```js <del> assert.equal(josephus(20, 2), 9); </del> <ins> assert.equal(josephus(20, 2), 8); </ins> ``` <del> `josephus(17,6)` should return `2`. </del> <ins> `josephus(17,6)` should return `1`. </ins> ```js <del> assert.equal(josephus(17, 6), 2); </del> <ins> assert.equal(josephus(17, 6), 1); </ins> ``` <del> `josephus(29,4)` should return `2`. </del> <ins> `josephus(29,4)` should return `1`. </ins> ```js <del> assert.equal(josephus(29, 4), 2); </del> <ins> assert.equal(josephus(29, 4), 1); </ins> ``` # --seed--

<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. --Affected page Your code Expected behavior The code that passes the test suite (given above) provides different output than the traditional description of the problem. I think the test suite has an 'off by one' error in initializing the starting position. Current output with solution that passes test suite: Expected output per problem description: Relevant portion of problem description: See also discussion here: Proposed Fix Change test suite to Bug reported by jsdisco on the forum.
The issue seems to originate from the original challenge at the Rosetta Code, there's optional allowance for numbering prisoners from in solution, and that's what's happening in the used solution - Sample solution for the challenge also needs small change to use for initial label, instead of . And .
I'm confused in the example given in the description, if the executioner starts at 0 and kills every 2nd prisoner then shouldn't the first prisoner that is killed be "prisoner 2" and hence the killing order becomes . I think the challenge description is the one that has to be changed here. Also if numbering started from then the above killing order is just incremented by 1 which still won't be the solution given as example.
This is how I'm seeing it.
Killing every other would be 'safe', 'kill', 'safe' , 'kill', 'safe',.... But the current solution is 'safe', 'safe', 'kill', 'safe', 'kill', 'safe',... The solution/tests definitely have an off by one
I understood it wrongly . Also yea its the tests which are off by one. Looks like a good first issue.
Hi, I have a working solution for this, although not the most efficient one. It's relatively concise but using the time complexity is quadratic. Can I make a PR?
You can always open a PR. After that, we can give feedback and suggest changes if needed.
I'm not sure why you need to make a brand new solution. You just need to modify one of the existing solutions to reduce the starting value. In my solution, for example, you just set
Hi AFAIK, there is no compelling reason to completely change the original solution. The original solution has a better time complexity.

The only benefit to my approach is that the code is less error prone, since we are not implementing a fundamental data structure from scratch, and the basic steps of the algorithm that solve the problem are easier to read, since they are not mixed with the implementation details of the underlying data structure. I have already made a PR, but can fall back to the original solution, if you see necessary.
I agree that the original solution is pretty convoluted.


Question:
HTML/CSS Quiz
  --fcc-editable-region--

[X] The "CSS" and the have the same value. This is affecting screen reader users since this involves an input and associated label. [ ] The logo in the upper left needs alt text. I would suggest it just be "freeCodeCamp". A lot of them. N/A Resolved Add alt text to the logo. Do we need to add an extra step for this or can we just add it to ? No response Device: [e.g. iPhone 6, Laptop] OS: [e.g. iOS 14, Windows 10, Ubuntu 20.04] Browser: [e.g. Chrome, Safari] Version: [e.g. 22] No response
Seeing as the logo is non-functional, do we want the alt to be null? ? If it does require an , then this should get its own step, and a clear description as to why it needs one should be given. I suggest changing the of the (and associated ) to .
Per , the logo does require alt text. Functionality isn't the deciding factor here, it's if the image conveys information (i.e. is not purely decorative), which this image clearly does. Do we want to split this off into its own issue if we are going to create a new step?
I would say yes, but it is not fun to deal with the merge conflict, when two PRs are opened at the same time.
The logo still needs an alt text. The logo is introduced in step 7: That step should be updated to instruct campers to give the an alt text of . The seed code in all subsequent steps should be updated to include that new attribute.
hey may i work on this issue? if so please assign it to me
Hey We typically do not assign issues. Instead, we accept the first pull request that comprehensively solves the issue. Issues labelled with or are open for contributions. Please make sure you read . We prioritize contributors following the instructions in our guide. Join us in or if you need help contributing - our community will be happy to assist you.


Question: )}n${i18next.t('forum-help.add-code-three')}nn```n${endingText}` ); <del> const category = window.encodeURIComponent(helpCategory || 'Help'); </del> <ins> const category = window.encodeURIComponent( i18next.t('links:help.' + helpCategory || 'Help') ); </ins> const studentCode = window.encodeURIComponent(textMessage); const altStudentCode = window.encodeURIComponent(altTextMessage);

As we are now rolling out the curriculum in Chinese and Spanish, we need to think about how to get the button to work for the two languages. Currently, when the button is clicked, the user is taken to the English forum () where a pre-populated topic message (in English) is displayed for the user to fill in with relevant information. These topics are dynamically generated before the post is created on the forum, so we will just need to make use of the file for the content of the topics. Also, we will need to route to the correct forum url for Chinese and target the correct subforum for Spanish.
So the Chinese links work correctly, because the Chinese forum is hosted at a different domain (which is passed in to the environment variable). For Espanol, as it currently stands the category comes from the value returned by the .


Question: Something does not look right. You added the correct `class` attribute value to the `p` element with `Donut` as its text, but you have not defined a selector for it. <del> Since the `flavor` class selector already has the properties you want, just add the `dessert` class name to it. </del> <ins> The CSS rule for the `flavor` class already sets the properties you want. Add the `dessert` class as an additional selector for this CSS rule. </ins> # --hints--

'just' is a bad word. If it doesn't already, our style guide should dissuade it. It implies the task is 'simple' which can frustrate learners who don't get it right. N/A Text should use friendly language. Possible fix: Note: the selector technically doesn't have the properties; the selector is part of a CSS rule that sets the desired properties. No response All No response_


Question: runs-on: ubuntu-18.04 strategy: matrix: <del> browsers: [chrome] </del> <ins> browsers: [chrome, firefox] </ins> services: mongodb: image: mongo:3.6.19

!
Dropping Firefox support temporarily with . This was causing me to slow down with the PRs and rapid testing we are doing on the staging. I will let someone else investigate this.
any thoughts on this one? I'll take a look when I can, but I figured you might have some insight.
I'll look into it soon. Will let you know when I get to the bottom of it.
Mrugesh shared two links to the CI runs that failed and both of them failed for the . So, I was looking at the test and saw a lot of explicit timeout increasing... this is probably the reason why it fails on Firefox. Because the timeout were increased by watching the time it took on Chrome and manually adjusting it. But Firefox normally needs a few more seconds to finish running (this is due to ). I think increasing the timeout limit should do the trick.
We do wait for the editor, but everything after that should be basically instantaneous. Thanks for investigating that, but it should be fixed for Firefox 80 () and that's what we run the tests on. Also, suggests we should be using which could be a factor, but would have thought that would make things fail entirely rather than run slowly. That could work, yeah. The strange thing is the dev mode works perfectly locally and the CI should be even faster, since it uses the built site.
The bug is fixed on Firefox but Cypress still manually triggers GC as it is said in the Cypress docs (also when you run the tests locally in Firefox, it'll show you a message about GC. This is because Cypress doesn't manually run GC on but when it's run in CI using then Cypress manually triggers GC). I agree. I don't think this is the reason. I couldn't reproduce the bug locally... maybe we should try to reproduce it in CI by running it repeatedly?
Right, but would this make a test fail? If it runs between tests, which is the default, it should just make the whole run a bit slower. If it's included in the timeout for a particular test, that would be a massive oversight. My assumption is that the only timeout you might hit because of this is the limit for the entire run. Sure.

I'll let decide when he wants to do this, though, since it makes deploying a bit of a headache (if you're being bombarded with fail negatives, I mean).
I am open to creating a new branch on the upstream if you need to test it on CI by adding random commits? In theory you should be able to test it on a fork as well.


Question: </Table> )} {id && ( <del> <Modal onClose={closeSolution} open={solutionOpen}> </del> <ins> <Modal onClose={closeSolution} open={solutionOpen} size='large'> </ins> <Modal.Header showCloseButton={true} closeButtonClassNames='close'> {`${username}'s Solution to ${ idToNameMap.get(id)?.challengeTitle ?? '' }`} </Modal.Header> <del> <Modal.Body> </del> <ins> <Modal.Body alignment='left'> </ins> <SolutionViewer challengeFiles={challengeData.challengeFiles} solution={challengeData.solution ?? ''}

The code should not be centered in the preview modal. or to on button for certification project with code ! ! Device: [e.g. iPhone 6, Laptop] OS: [e.g. iOS 14, Windows 10, Ubuntu 20.04] Browser: [e.g. Chrome, Safari] Version: [e.g. 22] No response_


Question: # --description--  Cramer's rule is a formula for solving a system of linear equations by using the determinants of matrixes formed from subsets of the coefficients and right hand side values.   Cramer's rule is a formula for solving a system of linear equations by using the determinants of matrices formed from subsets of the coefficients and right hand side values.   The determinate of a matrix with 2 rows and two columns is given by:   The determinant of a matrix with 2 rows and two columns is given by:  $begin{aligned}|A|={begin{vmatrix}a&bc&dend{vmatrix}}=ad-bc.end{aligned}$

there is a typo in cramers-rule challenge, is used instead of which is wrong these sentences should be changed to Here is the markdown file Please make sure you read , we prioritize contributors following the instructions in our guides. Join us in or if you need help contributing, our moderators will guide you through this. Sometimes we may get more than one pull requests. We typically accept the most quality contribution, followed by the one that is made first. Happy contributing.
I wanted to work on this issue
feel free to open pull request after you have read


Question: ); }; <del> export const completedPercentageSelector = state => { const isSignedIn = isSignedInSelector(state); if (isSignedIn) { const completedChallengesIds = completedChallengesIdsSelector(state); const { id } = challengeMetaSelector(state); const currentBlockIds = currentBlockIdsSelector(state); const completedPercentage = getCompletedPercentage( completedChallengesIds, currentBlockIds, id ); return completedPercentage; } else return 0; }; </del> <ins> export const completedPercentageSelector = createSelector( isSignedInSelector, completedChallengesSelector, challengeMetaSelector, currentBlockIdsSelector, (isSignedIn, completedChallenges, { id }, currentBlockIds) => { if (isSignedIn) { const completedPercentage = getCompletedPercentage( completedChallenges.map(node => node.id), currentBlockIds, id ); return completedPercentage; } else return 0; } ); </ins> export const isBlockNewlyCompletedSelector = state => { const completedPercentage = completedPercentageSelector(state);

Opening for visibility. I have not seen this happen myself, but I also haven't spent much time in the editor. Link to threads reporting this. Unknown, I guess usage over time. Performance not degrading over time. No response Device: [e.g. iPhone 6, Laptop] OS: [e.g. iOS 14, Windows 10, Ubuntu 20.04] Browser: [e.g. Chrome, Safari] Version: [e.g. 22] No response
I've experienced this issue multiple times. After the donation pop-up appears, the performance of the website becomes laggy. Even after refreshing the page, it returns to normal temporarily, but the lag returns once the donation pop-up reappears. ! Note: the lag doesn't occur immediately after the pop-up, it becomes noticeable as you continue solving challenges, with delays in typing and overall slowness.
I have not noticed this in the dev environment, even if the pop-up is present there too (python course)
I thought I was crazy or that my machine was "too old" for this, but I have experienced this too. In my experience, it has happened after working a while on the editor or just doing a little bit of work on the editor, leaving it open, and then coming back. It becomes really slow and the only workaround that I have found is closing my browser completely and opening it again. Note: As a current donor, the pop-up doesn't show up in my account and I don't think is related to that component itself.
Commenting to add I experience this every single time I use the editor for more than maybe 20 minutes. It doesn't just happen suddenly. It starts with a slight delay then gets worse and worse. I just opened up Incognito with no extensions enabled, and I noticed the delay after around 15 minutes. Then by 25 minutes it was definitely worse. It isn't unusable, but if you type relatively quickly it is very noticeable that words on screen are being completed maybe 100ms after you actually type them, then gets a little worse from there. Info: Chrome/124.0.6367.158 (no extensions) macOS Ventura Responsive Web Design Certification (I have had delays throughout this entire course)
I'm able to get the slowdown both in production and in development.

Reproducing it a bit loosely: Go through multiple steps (around 20?). At some point writing few characters in a row will start feel delayed/lagged. In console start appearing warnings, something like [Violation] 'input' handler took 1123ms. Recorded performance showed then longer times of redux updates coming from (if I didn't mix up anything) the editor's :
Thanks, that's really helpful! Just so I'm on the same page: how did you record the performance and did you have campfire mode on while you were testing this? Also, did you complete and submit 20 steps or just navigate through them?
Hey It was the Performance tab in the browser's developer tools. Not the profiler from react developer tools. Once I noticed the lagging, I turned on recording and did couple more steps. Then stopped recording, and tried to make heads or tails out of it :eyes: It doesn't seem to be related to campfire mode. I actually have campfire mode on in production, but when I was checking in development I believe it was off. Steps were completed/submitted. I haven't tried just navigating them.
It's not easy to read, but it does seem to be that's taking the time, which makes sense. That's what I see even when the editor is working normally. I've yet to see the slowdown from having the editor open for a long time typing a lot in a single page navigating through 80+ challenges I'll try completing a lot of challenges next and see if I see what you saw, Regardless, it seems like either the amount of typing you need to do to complete a bunch of challenges OR the completion/submission process is the problem. That's my current guess.
I'm seeing the same code editor latency after about 5 to 10 minutes of usage. I see it both in Chrome and Firefox browsers when testing in Windows 11 and Linux Fedora 40. The best solution I have is to do a of the page when it starts happening. Is the code editor overloading the cache to cause a slow down?
I'm on Windows Chrome browser and the editor is super slow for me. I type and I can't see what I've typed in till seconds later (good thing I'm a good typist) and I click Submit and it takes a long pause to respond.

I tried clearing cache but it fixes the issue for maybe a couple of steps max then back to the slow performance. Definitely something I didn't experience back in early 2023 when I last used the curriculum. If there's some data I can collect to help debug, let me know. (Edit: i switched to MS Edge which I didn't use for fcc work before and the issue disappeared for the first 10 steps i tried). I may continue here for a bit before retrying chrome again at some point.) 2nd Edit: the performance improvement didn't last. Same issue occurred after a few more steps and I persisted for a couple more of these slow steps just to see if anything would change, but nothing did. So I logged off and switched back to Chrome. First few steps are back to normal performance at this point. Perhaps the pattern will repeat (and things will slow down momentarily at which point I will try another browser switch).
Hi all, thank you for reporting the issue. We are trying to reproduce the issue, but no luck yet. From what I gather, the issue can happen: On any OS (so far we have reports on MacOS, Windows, and Linux) On any browser (so far we have reports on Chrome, Firefox, and MS Edge) In both incognito and normal browsing modes With or without browser extensions To both donor and non-donor users With both campfire mode enabled and disabled I guess what's left is the challenge pages that you are on when you experience the issue. I personally have tried going through 50+ Python challenges of the , and I haven't experienced the lag. We have one user experienced the issue with the Responsive Web Design challenges (), so maybe this is where I'd try next. But we would love to get more information from everyone else: which page / course you were on when you experienced the issue. Thanks again for reporting.
The lag happens consistently to me on the Role Playing Game project (js beta) pages. Everytime I recycle my browser the issue goes away temporarily. (Or if I close the tab on edge and reopen it)
As I have , I experienced this throughout the responsive web design cert, but I have since finished that course and moved onto the JavaScript one, and can confirm I am having the exact same issue on there.

The easiest way I've found to get rid of the delay is to reload page while ignoring cache.
It might be needed for user to be logged in. I've tried to reproduce it on Firefox. I've went from last steps of to about 30 step of the - without being logged in, no issues. Then after logging in, I started at the first step of , passing code was still in browser, so was just submitting it for the most part. By the 20th step writing was again slowing down. Edit: although Firefox doesn't display warning in console.
I also see it when logged in. It literally became so bad that is spiked the CPU if I held down a key and just let it repeat. It might somehow be related to the completion modal in the lower jaw, but I'm really not certain. That is at least also different depending on if you are signed in or not. The problem is, it didn't seem as bad in dev mode for me, so I'm not confident. But I removed the progress component and did twice as many steps, and it didn't happen. But as said, I'm really not sure if I trust it in dev mode. In the Performance log, looking at the bottom-up tab, was the first one.
Thanks everyone. I've finally reproduced it by doing ~20 responsive web design lessons while signed in. It does seem like is part of the problem, thanks I'm not sure it's the root of the problem, but it's definitely getting called far too often. My plan is to create a quick PR to stop the unnecessary calls and/or memoize the function. Hopefully that fixes it, but we'll have to see.
I was briefly looking at the Progress component and saw ProgressInner  Something about that code doesn't sit right with me. The and variable names seems a little like something that wasn't fully checked and tested. If I just log when the component renders, it does so on every keystroke, and even just left-clicking inside the active editor section logs a re-render. This is after you have completed at least one challenge step. ! Might not be related, but it doesn't seem right considering it isn't even shown. I'm a little skeptical of the Intersection observer and useEffect. I know this isn't very constructive, but that's all I've got for now.

I agree about the naming, it's a little sloppy. And, yes, something is going wrong meaning that it's getting re-rendered after challenge completion. makes it a lot better, though. It's still rendering when you start a new challenge (and it shouldn't), but it no longer renders in response to, well, everything.
I have unpinned the issue, considering it is closed as completed.
Hi Guys i am still experiencing this on two separate machines both running windows 11 and Chrome Browser extension installed , ublock origin and Ghostery this is whilst going through the responsive web design curriculum, in both building a balance sheet and the cat painting projects. I have experienced this behaviour both before and after i became a supported, and most recently experienced it about 5mins ago
Thank you for mentioning. However, the potential fix for this has not been deployed to production yet. So, until that is deployed, you can expect the issue to be present.
Hi everyone, the potential fix has been deployed, please report back if you're still experiencing the issue. Thank you for your patience, and happy coding.
hi , I've been using the JS beta curriculum all day from a single tab today. I did end up running into the performance issue again but it took a -lot- longer to run into it, and it was not lagging as bad as it used to when I would type (one of the issues I saw was that I would type and it would take a bit of time for the editor to display what I typed). Now when it slows down, the lag is not nearly as long (and as I said, I ran through a lot of steps today before seeing the slow-down). This is just to let you know what I have observed as you've asked us to report back. Thanks for the fix(es) already done.
Thanks for the follow-up, Some slowdown is expected, since the 'fix' was to make rendering considerably more efficient. This delays and mitigates the slowdown, but clearly something is getting less efficient over time. Since it's not too bad at the moment and it's hard to pin down the ultimate cause, I think we can leave this for now. We do plan to give the client some love before too long and that will give us another chance to squash the bug.

Hi Guys I am still running in to this issue, im currently working my way through learn-basic-javascript-by-building-a-role-playing-game. and after about 10 mins the typing of text starts to lag, im having to refresh the page and it seems to make it go away for a while
Other reports of slow performance
Thanks I'll give this another look.
should be another decent perf boost. Same deal as last time: while I expect this to be a lot better, there may still be deeper problems.
Tentatively closing again, since has been merged and should help considerably.


Question: You have either deleted the `body` element or it is missing an opening tag or closing tag. ```js <del> assert(document.querySelector('body') && code.match(/</body>/)); </del> <ins> assert.exists(document.querySelector('body')); assert.match(code, /</body>/); </ins> ``` Your `head` element should have an opening tag. Opening tags have the following syntax: `<elementName>`. ```js <del> assert(code.match(/<head>/)); </del> <ins> assert.match(code, /<head>/); </ins> ``` Your `head` element should have a closing tag. Closing tags have a `/` just after the `<` character. ```js <del> assert(code.match(/</head>/)); </del> <ins> assert.match(code, /</head>/); </ins> ``` Your `head` element should be above the opening `body` element tag. You have put it somewhere else. ```js const noSpaces = code.replace(/s/g, ''); <del> assert(noSpaces.match(/</head><body>/)); </del> <ins> assert.match(noSpaces, /</head><body>/); </ins> ``` # --seed--

We recently updated the guidelines for writing assertions here For consistency and matching what is in the docs, we should slowly start to update the tests for the workshops and labs in the new frontend cert. For this issue, just focus on updating the tests for steps 36 - 40 of the cat photo app workshop. We don't want to have a large PR that updates a whole bunch of tests in a bunch of steps and makes it harder to review. Here is the link to the workshop: The tests should be updated, where appropriate, to use specific methods like , , , etc instead of just . Here is the complete API reference Just focus on the new frontend cert and don't worry about updating the RWD cat photo app since that will become legacy anyway.


Question: function* verifyCertificationSaga({ payload }) { // check redux if can claim cert before calling backend <del> const completedChallenges = yield select(completedChallengesSelector); </del> const currentCert = certMap.find(cert => cert.certSlug === payload); <del> const currentCertIds = currentCert?.projects.map(project => project.id); </del> <ins> const completedChallenges = yield select(completedChallengesSelector); </ins> const certTitle = currentCert?.title || payload; <del> const flash = { type: 'info', message: 'flash.incomplete-steps', variables: { name: certTitle } }; const canClaimCert = currentCertIds.every(id => completedChallenges.find(challenge => challenge.id === id) ); </del> <ins> // (20/06/2022) Full Stack client-side validation is already done here: // https://github.com/freeCodeCamp/freeCodeCamp/blob/main/client/src/components/settings/certification.js#L309 if (currentCert?.id !== certTypeIdMap[certTypes.fullStack]) { const flash = { type: 'info', message: 'flash.incomplete-steps', variables: { name: certTitle } }; const currentCertIds = currentCert?.projects?.map(project => project.id); const canClaimCert = currentCertIds.every(id => completedChallenges.find(challenge => challenge.id === id) ); </ins> <del> if (!canClaimCert) { yield put(createFlashMessage(flash)); return; </del> <ins> if (!canClaimCert) { yield put(createFlashMessage(flash)); return; } </ins> } // redux says challenges are complete, call back end

Describe the bug I have completed the necessary requirements to get the Legacy Full Stack Certification, whenever I click on the claim certification button, it displays nothing, leaving the page as it is, I emailed the support team about this, they agreed i've fulfilled the requirements to get Legacy Full Stack certified and they said its a bug, and I should open a github case about it, so here I am. please help. Desktop (please complete the following information): OS: [Windows] Browser: [chrome] Version: [102.0.5005.115 (Official Build) (64-bit)] Additional context My username is muhammedctgr and my name is Popoola Muhammed
to investigate
hi pls whats the status on this?
it needs to be investigated
says page not found....
noted, thank you. i'll wait.
Many thanks to the dev team, I really appreciate the this mean its been fixed? Still unable to claim the cert tho.
Once the next production build is deployed, this fix should be in. We typically do 1 - 2 deployments each week.
This should be live now!
appreciate this, I've been able to claim the full stack cert. Promise to make FCC proud.


Question:
## Instructions
  Modify function multiplyAll so that it multiplies the product variable by each number in the sub-arrays of arr   Modify function multiplyAll so that it returns the product of all the numbers in the sub-arrays of arr.
 ## Tests

Challenge: " Modify function multiplyAll so that it multiplies the product variable by each number in the sub-arrays of arr" That would mean multiplying each number in the sub-arrays of ‘arr’ by 1, while the “official” solution of the challenge is (product *= arr[etc. etc.] since the problem instructions never specifies the PRODUCT variable should be changed at any point. I would solve this contradiction by putting product as an argument of the function and making the student code it, or just changing the instructions to ask to multiply each element by 1.
I see very few people making this mistake on the forum. I came across one post where someone did. So I guess we could maybe make it a little more clear. I don't like this because it's not really what the challenge was designed to have happen. This isn't bad, but then the hints and solution would need to be updated. So I would prefer to just change the instructions around a little so it's more clear.
Hi, I've never contributed to an open-source project before and Free Code Camp is one of the resource that got me into coding in the first place, so if there's an opportunity to help it'd be awesome! I was thinking that the instructions aren't too bad on this example, but it could help to include an example of how the code should work. I would probably just add a line under the current instructions that says something along the lines of: For example: multiplyAll([2,3], [ 4,5]) should return the product of 1 2 3 4 5, where the 1 comes from the initial value of the "product" variable.
I don't know about adding this example. It feels unnecessary.
I agree with changing the wording. What about this: Modify function so that it performs repeated multiplication on the variable with each number in the sub-arrays of . <p align="center"OR</pModify function so that it multiplies each number in the sub-arrays of with one another times the variable. Those are the only ways I can think of rewording, without any additional context.
I personally do not see a reason to change this challenge, but if others agree it needs to be changed, then I would vote for second suggestion above.

I like this... Use a nested loop to make the function return the product of all the numbers in the sub-arrays of .
I gave it some thought. I would solve it by sticking to a recurring pedagogical device in other challenges of FCC: Make the instructions clear about "obtaining the product of each number and the next one", and provide a code example that does a similar operation with a different array, perhaps a division or addition.
"Multiplying product variable by each number" sounds correct to me I'm not sure it's possible to perform this without changing product variable. It's kinda implicit here
As this issue is going stale: I suggest we make this a first-timers issue with the following expected change: Modify function so that it returns the product of all the numbers in the sub-arrays of .
Hello. I am new and would love to contribute. I would like to fix this issue, if no one is already on it.
, I do not think anyone is working on it. Go ahead . Be sure to read our , if you have not already.
sir can you help me understand the code
, sure. Generally, I recommend you either send a message on the Contributors chat room on Gitter, or you can ask on the . What are you struggling to understand, so far?
I saw there had been no activity on this for almost a week, so I wanted to try my hand at making my first contribution.


Question: } api.get('/signout', (req, res) => { <del> const { origin } = getRedirectParams(req); </del> <ins> const { origin, returnTo } = getRedirectParams(req); </ins> req.logout(); req.session.destroy(err => { if (err) {

If I am signed in as a user while on and log out, I am redirected to the english home page. redirects to the chinese page.
wrong endpoint in server code? Thats what I would assume, but am not sure how to locate where the correct endpoint would be placed in the code.
Here is the endpoint: and most likely the issue is with the redirect "predictor" utility: However we would want to confirm the cause before we open this up for contributions.
yes, that's the issue. To fix it we can grab the from and combine that with to get the desired redirect.
Should that be done in the getRedirectParams function or should the path be put together from the data set returned by getRedirectParams in
You need to construct the URL from the values you get from the as a consumer of the function and not change its existing behavior. In simple terms the change is required within the endpoint handler.
That makes sense.
I got the codebase installed locally is there a way to run just
Not sure what you mean by running only one file? The API server is an express based application (Loopback 3). You need to start up at least the api-server app. If you want to do that, you should be able to do that by navigating to directory and using the run-script commands in its
I'm trying to figure out what gets passed in pathPrefix, from getRedirectParams, when one signs out from the Spanish page. But when running the site locally, switching to Espanol leads to a "This site can't be reached" error. Just for clarity's sake, I realize now that is not meant to be run alone and I am using the "npm run develop" command to try and recreate this bug locally. Is this a bad approach?
Ah - right. Sorry about sending you on a goose-chase. When you build locally, we do not have a way yet to develop both and at the same time alongside the API app. I am going to untag this from help-wanted and assign this instead. Oliver, you should be able to test / reproduce and recommend a fix on our staging instance - not sure because this may be needing access for "close to prod" type setup.
I was just in the process of going through the steps, when you commented Mrugesh!

I'll leave them here for the curious: Unfortunately testing locally is quite a pain, because we use since is entirely separate from . It's a bit of a slow, memory intensive process, but you can do this: in your .env file Then you can go to


Question: } }, "react-is": { <del> "version": "16.9.0", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.9.0.tgz", "integrity": "sha512-tJBzzzIgnnRfEm046qRcURvwQnZVXmuCbscxUO5RWrGTXpon2d4c8mI0D8WE6ydVIm29JiLB6+RslkIvym9Rjw==" </del> <ins> "version": "16.10.2", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.10.2.tgz", "integrity": "sha512-INBT1QEgtcCCgvccr5/86CfD71fw9EPmDxgiJX4I2Ddr6ZsV6iFXsuby+qWJPtmNuMY0zByTsG4468P7nHuNWA==" </ins> } } },

Describe the bug When viewing any challenge in Firefox, I can scroll in the instructions/theory part of the window, but the scrolling does not work in the code editor. I have tried with an external mouse as well as with the Trackpad in my Mac. In the same computer and with the same devices it works perfectly using Chrome. To Reproduce to any challenge. to scroll inside the code editor. does not work. Expected behavior It should scroll. Desktop: macOS 10.14.6 Mozilla Firefox 69.0.3 Additional context So far, to scroll in Firefox I have to click and drag the side scrolling bar in order to navigate the code. I think I'm only having this issue since the last redesign, but I may be wrong on this.
I've noticed this for quite a while - but I don't recall if it was present before the latest redesign.
I am also experiencing this problem as of the update. Windows 10 desktop Firefox 69.0.3 External mouse with a scroll wheel In order to scroll I have to find the very small and hard to see scroll bar inside the code editor and click+drag
Having the same issue as you Might take a dig in the code/inspector and see what's up.
It looks like a possible bug with the monaco editor (we are using monaco-editor": "^0.17.1") I confirmed the bug locally first and I then updated to the latest version of monaco and the scroll works again in Firefox. So it has been fixed. I'm just not sure how involved it is for us to update the editor?
Thanks for digging into this and finding the updates. I think we should be able to update monaco-editor itself which we have as a dep: But the issue right now is to confirm if react-monaco-editor is going to play along as well: I think I could not bump it last time I was trying to update it. Opening up for investigation and fix. A PR is most welcome, or any pointers are welcome as well.
I am also experiencing this problem after the update. MacOS 10.14.6 Firefox 69.0.3 Both external mouse with a scroll wheel and Macbook Pro trackpad cannot scroll the code window however Chrome and Safari browser does not have this problem.
I was able to update to both and .

I updated react-monaco to 0.18.1 and react-monaco-editor to 0.31.0, did a few challenges locally and didn't see any immediate issues from the editor update. A PR would just be a chore update to and package- correct?
Thanks for reporting, please use the voting feature instead of confirming further. We know this is a confirmed bug, more so in an underlying library that we have little control over. We are working on a solution. Keeping the thread free for solutions will help.
Yes please. You are the rockstar.


Question: npm run develop ``` <del> > The documentation site should be available at <http://localhost:3200> </del> <ins> > The documentation site should be available at <http://localhost:3400> </ins>

And here! So the documentation is updated together Originally posted by in Following the docs need to be updated
I mean, the documentation should reflect the 3200-3400 change made in .


Question: const res = await fetch('https://pokeapi-proxy.freecodecamp.rocks/api/pokemon/94'); // Fetch from proxy to simulate network delay if (res.ok) { <del> await new Promise(resolve => setTimeout(resolve, 50)); // Brief additional delay to allow UI to update </del> <ins> await new Promise(resolve => setTimeout(resolve, 1000)); // Additional delay to allow UI to update </ins> const targetTypes = ['ghost', 'poison']; assert.lengthOf(typesEl.children, 2);

When testing one camper's code it fails some tests unless I increase all the delays to 1000ms, I tested with 500ms but that was not enough. I also saw the example project fail a test but it does pass more consistently (my guess is it is just faster with fewer async functions). To be on the safe side we should have a longer delay. I know 1000ms is a lot but better safe than sorry. Tests: Valid code should not fail because of "timing" issues. No response Device: [e.g. iPhone 6, Laptop] OS: [e.g. iOS 14, Windows 10, Ubuntu 20.04] Browser: [e.g. Chrome, Safari] Version: [e.g. 22] Forum:
As this is a bug with a certificate project I the showstopper label.


Question: # --description-- <del> A tooltip shows more information about an item on a page when the user hovers over that item. There are several ways to add a tooltip to a visualization, this challenge uses the SVG `title` element. </del> <ins> A tooltip shows more information about an item on a page when the user hovers over that item. There are several ways to add a tooltip to a visualization. This challenge uses the SVG `title` element. </ins> `title` pairs with the `text()` method to dynamically add data to the bars.

In the sentence: "There are several ways to add a tooltip to a visualization, this challenge uses the SVG <codetitle</codeelement." The comma should be a period (from an English grammar perspective, the sentence after a comma should not be a complete sentence but here it is. ) This is a comma splice. Ref: https://www-s3-,of%20equal%20weight%20and%20importance.) File: 04-data-visualization/data-visualization-with-d3/add-a-tooltip-to-a-d3- Use a period where the comma splice is located currently. No response not applicable No response
instead of , there should be . at the highlighted position. Is that correct? <img width="499" alt="Screenshot 2023-02-08 at 1 08 22 AM" src="https://user-"
yes burh
have you fixed the issue??
yes I fixed it.


Question: # --description-- <del> To make an checkbox input checked by default, you can add the `checked` attribute. </del> <ins> To make a checkbox input checked by default, you can add the `checked` attribute. </ins> Here is an example of using the `checked` attribute:

"an checkbox input" should be changed to "a checkbox input". Fix the typo in the following files:
This issue is open for contribution. The file that you should be updating is linked in the original post. We typically do not assign issues. Instead, we accept the most quality contribution followed by the one that is made first. Please make sure you read our as well as our , we prioritize contributors following the instructions in our guides. Join us in our or our if you need help contributing; our moderators will guide you through this. Happy contributing.


Question: The <dfn>HSL</dfn> color model, or hue, saturation, and lightness, is another way to represent colors. <del> The CSS hsl function accepts 3 values: a number from 0 to 360 for hue, a percentage from 0 to 100 for saturation, and a percentage from 0 to 100 for lightness. </del> <ins> The CSS `hsl` function accepts 3 values: a number from 0 to 360 for hue, a percentage from 0 to 100 for saturation, and a percentage from 0 to 100 for lightness. </ins> If you imagine a color wheel, the hue red is at 0 degrees, green is at 120 degrees, and blue is at 240 degrees.

The keyword should be wrapped in a pair of backticks.
This issue is open to first-time code contributors to this repository. The file that you should be updating is: We typically do not assign issues. Instead, we accept the most quality contribution followed by the one that is made first. Please make sure you read our as well as our , we prioritize contributors following the instructions in our guides. Join us in our or our if you need help contributing; our moderators will guide you through this. Happy contributing.
Hi! I'm a first timer and would love to contribute to this project and fix this typo. :)
Hey We typically do not assign issues. Instead, we accept the first pull request that comprehensively solves the issue. Issues labelled with or are open for contributions. Please make sure you read . We prioritize contributors following the instructions in our guide. Join us in or if you need help contributing - our community will be happy to assist you.
can i work on this issue if it still open


Question: # --description-- <ins> The child combinator selector `>` is used between selectors to target only elements that match the second selector and are a direct child of the first selector. This can be helpful when you have deeply nested elements and want to control the scope of your styling. </ins> Use the `>` selector to target the unordered list elements within the `nav` elements, and use _Flexbox_ to evenly space the children. # --hints--

I believe that Accessibility Quiz step 13 is the first time we introduce the CSS child combinator. (I've looked through the finished CSS for all previous courses and have not found it.) The instructions and hint for step 13 merely say to use it but they don't explain what it does or why it is needed. And really, since the only child in the is the , and there are no embedded s in the list items, then it is not obvious why it is needed in the first place. We also require the child combinator in later steps and I am not finding any explanation for it in those steps either. The current instructions for step 13: The hint if you don't use the child combinator: Add additional information to the instructions: Give the name of the selector (child combinator) Describe what it is used for Explain why it is being used in this step No response N/A I don't have any suggested text at the moment, I just wanted to get this issue recorded so I wouldn't forget about it. And to be honest, I'm not sure what the rationale is for requiring the child combinator here. Perhaps we are just using it merely for the sake of introducing a new feature in CSS?
It would make more sense to introduce the selector in an instance where it is actually needed and with its usage explained. Having said that I don't mind its use here. It should still be explained, because otherwise, what is really being taught? The why might be a little harder to explain in this example if it is only done as a coding style choice. Personally, I do think the child combinator is often preferable to the descendant combinator when applicable, especially when using type selectors. It is more explicit about the location of the targeted element which makes it less side-effect prone (i.e. later targeting elements you didn't mean to as more code is introduced or changed). It is less work for the matching engine. I believe it was used as a bit of a performance enhancement back in the day, but I doubt it really matters much today in most cases (it might if the DOM tree is big enough).
Adding an explanation of the selector would be good. Maybe something like:
Alternative explanation for CSS child combinator step 13: To select all children elements within the parent elements, we use the selector.

In this step, use the selector to target the unordered list elements within the elements, and use Flexbox to evenly space the children.
I feel like that's a bit too reductive.
I'm happy with Naomi's suggestion. This seems like a good first timer issue if we are done discussing.
Thanks for opening this issue. This looks like something that can be fixed by "first-time" code contributors to this repository. Here are the files that you should be looking at to work on a fix: List of files: A pull request which resolves this issue should Please make sure you read our , we prioritize contributors following the instructions in our guides. Join us in our or our if you need help contributing; our moderators will guide you through this. Sometimes we may get more than one pull request. We typically accept the most quality contribution followed by the one that is made first. Happy contributing.


Question: type SolutionStateType = { projectTitle: string; <del> challengeFiles: ChallengeFileType[] | null; </del> <ins> files?: ChallengeFileType[] | null; </ins> solution: CompletedChallenge['solution']; isOpen: boolean; }; const initSolutionState: SolutionStateType = { projectTitle: '', <del> challengeFiles: null, </del> <ins> files: null, </ins> solution: null, isOpen: false };

When trying to view a JS solution, the following error appears in dev, explaining the issue in production. It seems we followed the expected prop-types too early (ref: ). The object is still an object literal. Reported on forum:
I have the same problem as I said in the forum, the bottom error says it responded with 404 to the request for the certification on JS algorithms and data structures. Seems like there's an issue with the backend reaching that certification. !


Question: } ]); <ins> profileValidation.controller('nonprofitFormController', ['$scope', function($scope) { } ]); </ins> profileValidation.directive('uniqueUsername', function($http) { return { restrict: 'A',

it should be --important <-- instead of import Learn Bash Scripting by Building Five Programs False. An important operator in that menu is =~. It allows for pattern matching. Using the same syntax but with this operator, check if hello contains the pattern el. ! Device: [e.g. iPhone 6, Laptop] OS: [e.g. iOS 14, Windows 10, Ubuntu 20.04] Browser: [e.g. Chrome, Safari] Version: [e.g. 22] No response
I'll fix this! Just for reference, I will be fixing this issue in repository.
Hey guys! I'm getting this error when typing in the terminal. Anyone know how to fix? I created a seperate branch that is up to date.
For generating file, the coderoad cli requires for the version branch to exist locally. Detailed guidelines how to contribute to these tutorials can be found on Please refer to the parts about making changes on the branch. Thank you and happy coding!
Perfect. I have the typo fixed and ill make that branch work with coderoad. Thank you for your patience

<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. --In this sentence, the emphasized "then" should be "than". Link to file: Link to page:
Yes, it is a grammatical error. Thx for pointing it out. PR done in curriculum module.


Question: "id": "bb000000000000000000004", "title":  "Render Images from Data Sources", "description": [  "In the JSON that we receive data from Free Code Camp's Cat Photo API.",  "We've seen from the last two lessons that each object in our JSON array contains an imageLink key with a value that is the url of a cat's image.", "When we're looping through these objects, let's use this imageLink property to display this image in an img element.", "Here's the code that does this:",

Challenge has an issue. User Agent is: <codeMozilla/5.0 (Macintosh; Intel Mac OS X ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36</code. The first sentence of the instructions, , is incomplete. At a guess, it should read
I could be wrong, but could we just remove this sentence from the challenge? It just seems to be hanging there (maybe from an old version of the challenge?) not actually contributing to the description.
I initially read it as a recap for the benefit of anyone taking a break after the previous waypoints, but perhaps it isn't necessary. Without it, the next paragraph would still prompt the reader to refer to the previous lessons if they had forgotten what led to the current state.
I agree, just nuke the sentence. The next one is a nice lead-in.


Question: # --description-- <del> To use a variable, put the variable name in parentheses with `var` in front of them like this: `var(--variable-name)`. Add your variable as the value of the `background-color` property of the `.bb1a` class. Whatever value you gave the variable will be applied to whatever property you use it on. In this case, your variable has the value of `#999`. So `#999` will be used as the value for the `background-color` property. </del> <ins> To use a variable, put the variable name in parentheses with `var` in front of them like this: `var(--variable-name)`. Whatever value you gave the variable will be applied to whatever property you use it on. Add the variable `--building-color-1` you created in the previous step as the value of the `background-color` property of the `.bb1a` class. </ins> # --hints--

In step 15 of the curriculum called Learn CSS Variables By Building a City Skyline, the instructions fail to provide the name of the variable that is being referenced. The instructions say: Notice that at no point does this paragraph give the exact name of the variable that is to be used to pass this step. ("Add your variable" all of these are not variable names) Instead the instructions should mention the variable name once: To use a variable, put the variable name in parentheses with var in front of them like this: var(--variable-name). Add your variable as the value of the background-color property of the .bb1a class. Whatever value you gave the variable will be applied to whatever property you use it on. In this case, the variable has the value of . So will be used as the value for the background-color property. No response Device: Laptop OS: Windows 11 Browser: Chrome Version: n/a No response
The user is expected to use the variable they created on the last step: That is the only CSS variable that exists at this point in the project. That said, people take breaks between steps, so it can be mildly unreasonable to expect users to remember details from previous steps. Perhaps:
yes please. Also I spent a long time trying to help someone because I didn't realize right away that the variable was being referenced from a previous step. (I could see the hints, but I couldn't understand why the hints were hinting at something I had never seen) (alternate solution that I think would work also is to call out the previous step: "Add the variable you created in the previous step...")
Why not the best of both worlds?
Change the text to: Seems straightforward of a PR. I'll open it for first timers.
Thanks for the update. I had a question about updates and how they make it back to what we see as users in the curriculum. Is there a schedule at all for a release or whenever someone's PR is accepted, it immediately is available to everyone who uses fCC?
Releases aren't done on a specific schedule. We merge into to trigger a staging release (on ), and merge into to trigger a production release.
if no one is working on this issue yet, could i work on this?
Can I work on it if no one works on it?
Anyone can work on an issue - they are not assigned.

We merge the first complete PR to address the issue. The desired new text is listed above.
.bb1a { width: 70%; height: 10%; background-color: var(--building-color1); } here i am getting :- The background-color of the .bb1a element should be set. i dont know what to do?????
open a topic on the forum, the repo is not the place to ask for help in solving the steps


Question: <label className='fcc_sr_only' htmlFor='fcc_instantsearch'> Search </label> <del> <SearchBox focusShortcuts={[83, 191]} onChange={this.handleChange} onFocus={this.handleFocus} onSubmit={this.handleSearch} showLoadingIndicator={true} translations={{ placeholder }} /> </del> <ins> <ObserveKeys> <SearchBox focusShortcuts={[83, 191]} onChange={this.handleChange} onFocus={this.handleFocus} onSubmit={this.handleSearch} showLoadingIndicator={true} translations={{ placeholder }} /> </ObserveKeys> </ins> {isDropdownEnabled && isSearchFocused && ( <SearchHits handleHits={this.handleHits}

Describe the bug Entering 'n' or 'p' in the solution URL of projects takes me back to the previous('p') or next('n') challenge. To Reproduce to any project section where URL is required 'n' or 'p' in the URL field Expected behavior This should only happen when the text field is not in focus. Desktop (please complete the following information): OS: Windows 10 Pro 32 Bit Pro Browser: Chrome Version: 77.0.3865.90


Question: [ { "id":0, <del> "imageLink":"https://s3.amazonaws.com/freecodecamp/funny-cat.jpg", </del> <ins> "imageLink":"https://cdn.freecodecamp.org/curriculum/legacy-json-apis-ajax/funny-cat.jpg", </ins> "altText":"A white cat wearing a green helmet shaped melon on its head. ", "codeNames":[ "Juggernaut", "Mrs. Wallace", "Buttercup" ]

We need to replace all images and audio samples for the legacy content with the ones that were just to our freeCodeCamp cdn. Here are all of the files that will need to be updated Here are all of the new asset links


Question: yield put(updateSuccessMessage(randomCompliment())); } <ins> function* showDonateModalSaga() { let { isDonating } = yield select(userSelector); let shouldShowDonate = yield select(showDonationSelector); if (!isDonating && shouldShowDonate) { yield put(openDonationModal()); } } </ins> export function createCurrentChallengeSaga(types) { return [ takeEvery(types.challengeMounted, currentChallengeSaga), <del> takeEvery(types.challengeMounted, updateSuccessMessageSaga) </del> <ins> takeEvery(types.challengeMounted, updateSuccessMessageSaga), takeEvery(types.challengeMounted, showDonateModalSaga) </ins> ]; }

Donate modal is rendered/animated twice when invoked
Steps to reproduce. Complete at least 9 challenges. See modal once per session.
alternatively, change this line to true and get the modal after completion of each challenge.
Just in case someone tackle this before I get back to it. it seems like the app gets updated after the donate modal is up. so that might be causing the flashing. redux devtools actions order: <img width="338" alt="screen shot 2019-02-22 at 6 46 38 pm" src="https://user-"devtoolds error: <img width="642" alt="screen shot 2019-02-23 at 12 19 40 pm" src="https://user-"and here is where the modal is being called:


Question: "decimalToBinary(1) returns '1' (base case) and gives that value to the stack below. Then it pops off the stack." ``` <del> Note that, since the string itself contains double quotation marks, you'll need to escape them with a backslash, or use single quotation marks for your string value. </del> # --hints-- You should add the property `msg` to the animation object at the top of the stack.

in step 99 of the decimal to binary project (js beta), the instructions are: Set the value of the msg property to the following string: Example Code "decimalToBinary(1) returns '1' (base case) and gives that value to the stack below. Then it pops off the stack." Note that, since the string itself contains double quotation marks, you'll need to escape them with a backslash, or use single quotation marks for your string value. The remarks at the end say we need to escape the 'double quotation marks' in the string, but the string doesn't have any double quotation marks and I'm able to copy the string as-is and submit it with success to move onto step 100. However, in step 100, the string suddenly changes in the code and becomes: 'decimalToBinary(1) returns "1" (base case) and gives that value to the stack below. Then it pops off the stack.' And now we can see the double quotes that step 99 was referring to. I'm not sure what happened between step 99 and 100 but I think it is confusing and some fix (to one or the other of these steps) is needed. The above is what I have in the editor in step 99 when I click submit and successfully move forward to step 100. N/A No response N/A No response
As I can see, in the step 99, it shows how to use single quotation marks instead of double so that the string works. And in the 100th step it makes a swap in the use of single and double quotation marks. Is there a need to make the swap in the quotation marks in step 99? As the note would then become useless and would need to be changed also
How do you explain the note? I didn’t see double quotation marks in the string that need a backlash , did you?
All I can infer from the note is that to emphasize that 1 by either "1" or '1' a backlash is required or the need to change the quotation so that it does't count that string as ending at that point. The message has chosen the latter solution.
That is not how you should interpret the note. It clearly uses present tense when it says “the string itself contains quotation marks”. This is undeniable and needs an appropriate fix.

But it's indirectly stating to use whichever method to print the required message right? Possibility1: "decimalToBinary(1) returns '1' (base case) and gives that value to the stack below. Then it pops off the stack." Possibility2: "decimalToBinary(1) returns "1 " (base case) and gives that value to the stack below. Then it pops off the stack." I just made the msg same as step 100
And for that double quotation mark, the note says as the string starts with ", it should end with ", and thus it can't use simply " for "1" and need to use '1' instead. Backlash would be another method to amend this issue as I stated in the message above.
Specifying why it's bad would be a little helpful rather than thumbs down, no?
It's a bit odd that step 100 uses single quotes for the string, while other strings in the file use double quotes instead. To simplify things, I think we could: Remove the note from step 99 Swap the quotation marks of the string from step 100 onward: -
thanks. Incorporated both of your suggestions in the linked PR.


Question: # --description-- <del> Within the first `span` element, add the text `"Question"`. </del> <ins> Within the first `span` element, add the text `Question`. </ins> <del> In the second `span` element, add the text `"Question"`. </del> <ins> In the second `span` element, add the text `Question`. </ins> # --hints--

In the instruction it says: It might be related to , but I think we shouldn't have the double quotes here since they don't appear in the code. If the user put double quotes around , they will get the hint below: ! (It's not deployed to production yet) Change to . No response Device: [e.g. iPhone 6, Laptop] OS: [e.g. iOS 14, Windows 10, Ubuntu 20.04] Browser: [e.g. Chrome, Safari] Version: [e.g. 22] No response
Issue is related to string literals. I think you are right, quote marks are not used in the RWD instructions for html text.
I agree, lets remove the quotes from the description. I the first timers label. The Be sure to check out our if you haven't already. Let us know if there's any questions.


Question: Before moving on, this is a great opportunity to learn a common array use. Currently, your code accesses the last element in the array with `rows[2]`. But you may not know how many elements are in an array when you want the last one. <del> You can make use of the `.length` property of an array - this returns the number of elements in the array. For example, your `rows` array has 3 elements, so `rows.length` would be `3`. </del> <ins> You can make use of the `.length` property of an array - this returns the number of elements in the array. To get the last element of any array, you can use the following syntax: </ins> <del> Since you know the last element is at index `2`, you can compare that with the length of the array and see it is one less. The last element of an array will always be accessible at the index `length - 1`. You can use that in your bracket notation. </del> <ins> ```js array[array.length - 1] ``` `array.length` returns the number of elements in the array. By subtracting `1`, you get the index of the last element in the array. You can apply this same concept to your `rows` array. Update your `rows[2]` to dynamically access the last element in the `rows` array. Refer to the example above to help you. </ins> <del> Update your `rows[2]` to access the `rows.length - 1` index instead of the `2` index. You should not see anything change in your console. </del> <ins> You should not see anything change in your console. </ins> # --hints--

To make it clearer what the syntax should be for accessing the last element of an array, let's go with this updated description js array[ - 1] ` see explanation above see explanation above No response Device: [e.g. iPhone 6, Laptop] OS: [e.g. iOS 14, Windows 10, Ubuntu 20.04] Browser: [e.g. Chrome, Safari] Version: [e.g. 22] No response
This has been opened for contribution. The first comprehensive PR created will be reviewed and merged. We typically do not assign issues to anyone other than long-time contributors. If you would like to contribute and have not read the contributors docs, please do so here: If you have any issues with contributing, be sure to join us on the , or on the Happy coding


Question: const isMacOS = navigator.userAgent.includes('Mac OS'); <ins> const isDesktop = window.innerWidth > MAX_MOBILE_WIDTH; let buttonText; if (isDesktop) { if (isMacOS) { buttonText = isSignedIn ? t('buttons.submit-and-go-3') : t('buttons.go-to-next-3'); } else { buttonText = isSignedIn ? t('buttons.submit-and-go-2') : t('buttons.go-to-next-2'); } } else { buttonText = isSignedIn ? t('buttons.submit-and-go') : t('buttons.go-to-next'); } </ins> return ( <Modal onClose={close}

We are using the class to conditionally hide some text on mobile screens: This class comes from Bootstrap, which is something we are going to remove (). So instead of using the class, we can use an check, like this (which is also a little more consistent with how we've handled this kind of conditional rendering): Update the file to replace the class with an check. I noticed that we are using multiple methods for mobile device detection, so I think the check should be standardized, and there should be a shared util for this check. But I'm leaving this out of the scope of this issue, and will create a separate issue for it.
We typically do not assign issues. Instead, we accept the first pull request that comprehensively solves the issue. Issues labelled with or are open for contributions. Please make sure you read . We prioritize contributors following the instructions in our guide. Join us in or if you need help contributing - our community will be happy to assist you.
I already have a pull request that technically resolves this. While it is done the same way we did the lower-jaw i.e checks for a desktop instead of being mobile , it does solve the problem and pass the tests.


Question: ```js const labelChildNodes = [...$('label')].map((node) => [...node.childNodes]); assert( <del> labelChildNodes.filter((childNode) => childNode[0].nodeName === 'INPUT') .length === 2 </del> <ins> labelChildNodes.filter( childNodes => childNodes.filter(node => node.nodeName === 'INPUT').length === 1 ).length === 2 </ins> ); ```

The tests for the formatting are too strict and won't let valid code pass. The above code should pass. This code passes: No response Device: [e.g. iPhone 6, Laptop] OS: [e.g. iOS 14, Windows 10, Ubuntu 20.04] Browser: [e.g. Chrome, Safari] Version: [e.g. 22] No response
here is failing test, in this markdown file Both radio buttons should still be located between opening and closing element tags. but why it's failing is alluding me. Anyway, I am in support of changing it to make it pass
This code works: But this code doesn't: Those 2 codes are exactly the same expect the second one has a little empty space between and . So something about the empty space makes the thing declare it as 'no longer between the opening and closing of the ' I dont know if this helps but that seems to be how to reproduce this bug. As even in the original buggy code that showed us there is empty space between the and : As you can see the code passes: ! So the empty space is messing stuff up. Again idk if this helps its my first time contributing so idk what im doing lol but i hope it helps somewhat in fixing the issue.
finding this, without debugging is impressive, good job. Yeab, this is helpful
Test expects to be first child node of the . When there's text (spaces) before it, first node will be node with spaces. To check for in all child nodes, and to ensure there's only one input per label, assertion can be changed to something like:


Question:
 {isDonating && (

  <SupporterBadgeEmblem />

A2 English blocks have challenges whose title is displayed next to a completion indicator. The indicator is having a right margin, which creates a gap between the indicator and the text. <img width="746" alt="Screenshot 2024-05-31 at 22 49 13" src=""This issue is because the indicator has a class: This class was harmless as it didn't have any CSS rules associated, until we badges to the user profile page, which caused a class name collision: Remove the class from: Rename the class in to to avoid future collision
I can take this one, but I don't seem to have the permissions to assign myself to this issue.
We typically do not assign issues. Instead, we accept the first pull request that comprehensively solves the issue. Issues labelled with or are open for contributions. Please make sure you read . We prioritize contributors following the instructions in our guide. Join us in or if you need help contributing - our community will be happy to assist you.
Awesome, thanks for clarifying!


Question: guideUrl: PropTypes.string, instructions: PropTypes.string, introPath: PropTypes.string, <ins> isChallengeCompleted: PropTypes.bool, </ins> nextChallengePath: PropTypes.string, prevChallengePath: PropTypes.string, section: PropTypes.string,

In the new beta (currently at ), it would be great if a challenge page indicated somehow when the challenge has already been completed. Currently, since user inputed code is not saved, there is no indication on a challenge page that it has already been completed.
We need a check mark in the title or a badge or to indicate the same?
The most elegant thing I can think of to have something like the little circular check mark next to the title like how it is on the learn homepage - only if it's been solved, and don't show anything if it hasn't.
That would be a nice way to handle it. Please go forth if you are interested in this?


Question: //## Night mode styles @night-body-bg:         @gray-dark; <del> @night-text-color:            #999; </del> <ins> @night-text-color:            #ccc; </ins> //== Typography //

<!-- freeCodeCamp Issue Template --<!-- Please provide as much detail as possible for us to fix your issue --<!-- Remove any heading sections you did not fill out --<!-- NOTE: If your issue is CodePen Project / Test Suite related, please open it using the below URL instead --<!-- --<!-- Describe below when the issue happens and how to reproduce it --I love Night Mode when doing the challenges. However, I noticed that the contrast seemed a bit low. Running the WCAG Contrast Checker extension confirmed my belief. See screenshot below. Lightening up the foreground color would be beneficial to everyone. Thanks! <!-- Describe your workspace in which you are having issues--Browser Name, Version: Mozilla 52.0 Operating System: Windows 7 Mobile, Desktop, or Tablet: Desktop <!-- Add a screenshot of your issue --!
I'm happy to tackle this, if it's open! I just need to finish setting up my dev environment according to the contribution guidelines.
I have set up local FCC. I will be able to give it a shot by tonight unless hasn't done it already.
Hi, i have committed a . It passed WCAG luminosity as shown in the below screenshot. <img width="838" alt="screen shot 2017-03-21 at 10 41 47 pm" src=""
You beat me to it! This is an improvement, though. Thanks for making the site better.


Question: "title": "Sift through Text with Regular Expressions", "difficulty":"9.984", "description":[  "Regular expressions are way to find certain words or patterns inside of strings.",   "Regular expressions are used to find certain words or patterns inside of strings.",  "For example, if we wanted to find the number of times the word the occurred in the string The dog chased the cat, we could use the following regular expression: /the+/gi", "Let's break this down a bit:", "the is the pattern we want to match.",

Challenge has an issue. The original text is, "Regular expressions are way to find certain words or patterns inside of strings." It should instead read, "Regular expressions are a way to find certain words or patterns inside of strings." I would instead write, "Regular expressions are used to find certain words or patterns inside of strings."