Question: "tests": [], "type": "basejump", "challengeType": 4,  "isRequired": true   "isRequired": true, "nameEs": "Microservicio de Marca de Tiempo", "descriptionEs": [ "Objetivo: Arma una aplicación de Pila Completa en JavaScript que sea funcionalmente similar a esta: https://timestamp-ms.herokuapp.com/ y despliegala en Heroku.", "Ten en cuenta que para cada proyecto, deberías crear un nuevo repositorio en GitHub y un nuevo proyecto en Heroku. Si no recuerdas como hacer esto, vuelve a visitar http://freecodecamp.com//challenges/get-set-for-our-back-end-development-projects.", "Aquí están las historias de usuario específicas que debes implementar para este proyecto:", "Historia de Usuario: Puedo pasar una cadena como parámetro y comprobará si contiene o no una marca de tiempo para Unix o una fecha en lenguaje natural en inglés (Ejemplo: January 1, 2016).", "Historia de Usuario: Si tiene una marca de tiempo para Unix, devuelve tanto la marca de tiempo de Unix como la fecha en lenguaje natural.", "Historia de Usuario: Si no contiene una fecha ni una marca de tiempo para Unix, devolverá esas propiedades en null.", "Una vez que hayas terminado de implementar estas historias de usuarios, pulsa el botón "I've completed this challenge" e introduce los URLs de tu repositorio en GitHub y de tu aplicación en vivo en Heroku.", "Puedes obtener retroalimentación sobre tu proyecto por parte de otros campistas, compartiendolo en nuestra Sala de chat para revisión de código. También puedes compartirlo en Twitter y en el campamento de tu ciudad (en Facebook)." ]  }, { "id": "bd7158d8c443edefaeb5bdff",

[x] Get Set for our Back End Development Projects [x] Timestamp Microservice [x] Request Header Parser Microservice [x] URL Shortener Microservice [x] Image Search Abstraction Layer [x] File Metadata Microservice
Currently working on this.
I just used part of the PR that you closed. Thank you. Blessings.


Question: background-color: var(--gray-10) !important; } <ins> .nav-lang-menu li:first-child .nav-link:hover { color: var(--love-dark) !important; } </ins> .nav-lang-button { display: flex; justify-content: space-between;

The language selection menu is not intuitive about the no. of available options. It's a bit paradoxical at the moment: You will not notice additional options until you start scrolling while being on top of the options. You will not start scrolling until you know there are additional options. to '/learn' on 'Menu' down to 'Change Language' the cursor on the options Scrolling while being in the area of the listed options. menu should be very clean and intuitive. "Cancel Change" option should have some form of visual separation. https://user- Device: All Devices OS: All OS Browser: All Browsers Version: All Versions No response
this will start becoming evident with more languages on the list. The quickest and simplest way this can be handled is by slightly increasing the height of the list and decreasing the height of the hover-state highlight (each item). That will leave some space at the bottom of the last item, intuitively letting the user know there is more to be looked at. Currently, the perfect-sized (height) items and the overall height of the list make it difficult to notice more entries. Finally, that "Cancel" option should be a different color or have some form of visual separation.
is this issue still being worked on? If not, I would like to take it.
That makes sense, I thought we fixed that. should be removed for and
or anyone else interested, this is up for grabs.
This is what makes the language menu full length so no vertical scroll bar appears. Originally, I had the language menu set so that a vertical scroll bar would appear if it was taller than the main menu. But it was decided that there shouldn't be a vertical scroll bar, the language menu should be as tall as necessary so no scroll bar was needed. Is this what we still want? Even as we continue to add even more languages?
thanks for bringing this up. Ideally we would need to show as many languages as possible in a viewport and display a minified scroll bar if the list exceeds the height viewport minus of the navigation. We could show a scrollbar initially as you recommended, but the dropdown needs expand further than the main menu if needed.


Question: return next(err); } req.flash('success', { msg: 'Success! You are logged in.' }); <ins> if (/hotStories/.test(req.session.returnTo)) { return res.redirect('../news'); } </ins> return res.redirect(req.session.returnTo || '/'); }); })(req, res, next);

Seeing this in production here: solution: Use and/or check for user existence and end early. cc:


Question: .fcc_searchBar { flex-grow: 1; padding: 0 10px; <ins> max-height: 33px; </ins> } .fcc_searchBar .ais-SearchBox-input,

Describe the bug On retina displays, this is what Learn's search navbar looks like on retina displays (2012 and beyond Macbooks): <img width="1064" alt="welcometolearnfreecodecamp" src="https://user-"Note that the Guide's navbar looks fine on Retina displays: <img width="1222" alt="freecodecamp_guide" src="https://user-"To Reproduce Steps to reproduce the behavior: to '...' on '....' down to '....' error Expected behavior A clear and concise description of what you expected to happen. Screenshots If applicable, add screenshots to help explain your problem. Desktop (please complete the following information): OS: [e.g. iOS] Browser [e.g. chrome, safari] Version [e.g. 22] Smartphone (please complete the following information): Device: [e.g. iPhone6] OS: [e.g. iOS8.1] Browser [e.g. stock browser, safari] Version [e.g. 22] Additional context Add any other context about the problem here.
sorry, I believe this is due to some of the changes I made way back in Fortunately, I don't think this was brought over into the monorepo. Does the navbar look like that when the site is running locally?
Yes - the navbar still looks slightly offset on my retina display when running locally: <img width="1187" alt="welcometolearnfreecodecamp" src="https://user-"The search field is way too wide, too, though that probably deserves a separate issue
sorry about that! Will take another crack at fixing the search bar soon.
Hi Thanks for working on this. Please let me know when you have the PR ready so we could review and merge it ASAP.
sorry for the delay with this! Been flying a bit blind since I don't have a Retina screen device of my own. Ended up using some kiosk MacBooks and playing with the CSS in the browser. Could only test with Safari, but I suspect that this is caused by the search bar having an undefined height. I'm just about to submit a PR, so could you and check it out when you can?


Question: import React, { useContext } from 'react'; import { FormContext } from '../form-group/form-group'; <del> import { FormControlFeedback as Feedback } from './form-control-feedback'; import { FormControlStatic as Static } from './form-control-static'; </del> <ins> import { FormControlFeedback } from './form-control-feedback'; import { FormControlStatic } from './form-control-static'; </ins> import { FormControlProps } from './types'; // Uses controlId from <FormGroup> if not explicitly specified. // type Only relevant if componentClass is 'input'. <ins> let variantClass: string; const defaultClasses = 'outline-0 block w-full py-1.5 px-2.5 text-md text-foreground-primary ' + 'bg-background-primary bg-none rounded-none border-1 border-solid ' + 'border-background-quaternary shadow-none ' + 'transition ease-in-out duration-150 focus:border-foreground-tertiary'; </ins> const FormControl = ({ id,

onChange: func value?: string componentClass?: string placeholder?: string name?: string required?: string rows?: 4 type?: 'text' 'url'FormControl FormControl.Feedback
Form control for chapter: Need to alter the props to account for chapter needs, here is the link to the chakira component
Which prop is being used in the chapter that we are not passing in the component library? Since chapter views are limited, it might be easier to create the components with learn specifications and use those props to control the component. does that make senes?
Instead of checking the chaikra library and comparing it with the current component, I am better off checking chapter itself for prop it's using. for example, in this file we are using and , so I note these down and check if these 2 props are different from the props we are using. depend on how different they are, I may do from the follow: Add new value to existing prop. Add new prop to the component. Do nothing.
Here is what I propose we do. We could continue building the components with the learn spec and ship them. For the second sprint, we collect the Chapter requirements and update the components accordingly.


Question: "title": "Learn Modern JavaScript Methods by Building Football Team Cards", "intro": [ "One common aspect of building web applications: processing datasets, and then outputting information to the screen. In this sports team cards project, you'll learn how to work with DOM manipulation, object destructuring, event handling, and data filtering.",  "This project will cover concepts like switch statements, default parameters, Object.freeze(), the map() method, and more."   "This project will cover concepts like, default parameters, Object.freeze(), and reinforce your knowledge of the switch statement and map() method."  ] }, "learn-advanced-array-methods-by-building-a-statistics-calculator": {

The description of the project to build football team cards in the js beta curriculum says: In this project, you will build a set of football team cards and learn about nested objects, object destructuring, default parameters, event listeners, and switch statements. But switch statements were introduced in the date formatter project (step 16, 17). I think the description should be modified therefore to not mention learning switch statements. I haven't actually done this project, so I don't actually know if it re-teaches switch statements or not. (it would be nice if the date formatter description mentioned learning about switch statements though) N/A N/A No response N/A No response
I don't really get the title of this challenge, what "modern javascript methods" is it referring to, is it just the ? Because surely both map and filter has already been taught at this point. I'm also not sure the switch is really needed. It seems a little verbose and a lot of boilerplate. Compared to say:
Let's go ahead and remove switch statements from the description and the first step.
I feel like the switch used in the code is because the idea of the challenge, among other things, was to teach it. It takes up a lot of the total code. Not mentioning it, doesn't really change that fact. Not unless, we remove the switch from the code as well.
That's a fair point. I'd be fine rewriting the challenge to use the example you shared earlier.
Hi! I am a new, first time contributor. Can I put up a PR for this issue? Seems like a simple fix, just removing 'switch statements' from description and first step
It could be seen as reinforcement. I'm not saying we have to remove it, I'm just saying it seems like part of the point of this challenge was to teach the switch, which is why it is in the description and the code. Not sure how often we use switch statements, but this project is definitely reinforcing it. So we might want to keep it just for that reason. This also isn't the first time we teach and it is in the description as well. Maybe that could be it, reinforcement. Or something like that?
changing the description slightly seems like an easy way to fix the issue
I like this copy, yeah.


Question: "nav": { "forum": "https://forum.freecodecamp.org/", "news": "https://freecodecamp.org/news/" <ins> }, "help": { "HTML-CSS": "HTML-CSS", "JavaScript": "JavaScript", "Python": "Python", "Relational Databases": "Relational Databases" </ins> } }

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: }; } <del> updateData.$push = { ...updateData.$push, completedChallenges: finalChallenge </del> <ins> updateData.$set = { completedChallenges: _.uniqBy( [finalChallenge, ...completedChallenges], 'id' ) </ins> }; if (

Completing projects from the settings page, submitting a url, dose not increment the points a user has. We need to push a new timestamp to the users array.
Hi I can help out with this. Am I correct in thinking that this should be done in the file? If so, I'll look at for some guidance.


Question: assert(telephoneCheck('(555)5(55?)-5555') === false); ``` <ins> `telephoneCheck("55 55-55-555-5")` should return `false`. ```js assert(telephoneCheck('55 55-55-555-5') === false); ``` </ins> # --seed-- ## --seed-contents--

<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. --There is a problem with the test for the telephone validator. They pass validators which do not check for proper spacing or dashing. (i. e. my validator will return true for 55 55-55-555-5). This is the my code which passed the test, but really shouldn't have: I'd recommend adding some extra tests to the exercise. Here is a link to the Tell us about your browser and operating system: Browser Name: Chrome Browser Version: Version 87.0.4280.88 Operating System: Windows 10 If possible, add a screenshot here (you can drag and drop, png, jpg, gif, etc. in this box):
Link to Link to
I guess a simple fix would be to add this test. should be false


Question: ```js const sum = (...args) => { <del> return args.reduce((a, b) => a + b, 0); </del> <ins> let total = 0; for (let i = 0; i < args.length; i++) { total += args[i]; } return total; </ins> } ```

The challenge is using the method which hasn't been introduced yet. I believe it is an artifact of the current section order (ES6 now comes before functional programming). You don't really need to understand how works to solve the challenge but just to avoid any confusion it might be better to change it to use a simple for loop. The guide post will need to be updated as well if this change is made. Should not contain code that is unfamiliar to the student. 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 post: Guide post:
hey i have fix this issue let you check PR


Question: if (link.search(/^https?:///g) === -1) { link = 'http://' + link; } <del> Story.count( { storyLink: new RegExp('^' + storyLink + '(?: [0-9]+)?$', 'i') }, function (err, storyCount) { if (err) { return res.status(500); } </del> <ins> Story.count({ storyLink: new RegExp('^' + storyLink + '(?: [0-9]+)?$', 'i')}, function (err, storyCount) { if (err) { return res.status(500); } </ins> <del> // if duplicate storyLink add unique number storyLink = (storyCount === 0) ? storyLink : storyLink + ' ' + storyCount; </del> <ins> // if duplicate storyLink add unique number storyLink = (storyCount === 0) ? storyLink : storyLink + ' ' + storyCount; </ins> <del> var link = data.link; if (link.search(/^https?:///g) === -1) { link = 'http://' + link; </del> <ins> var link = data.link; if (link.search(/^https?:///g) === -1) { link = 'http://' + link; } var story = new Story({ headline: sanitizeHtml(data.headline, { allowedTags: [], allowedAttributes: [] }).replace(/"/g, '"'), timePosted: Date.now(), link: link, description: sanitizeHtml(data.description, { allowedTags: [], allowedAttributes: [] }).replace(/"/g, '"'), rank: 1, upVotes: [({ upVotedBy: req.user._id, upVotedByUsername: req.user.profile.username })], author: { picture: req.user.profile.picture, userId: req.user._id, username: req.user.profile.username, email: req.user.email }, comments: [], image: data.image, storyLink: storyLink, metaDescription: data.storyMetaDescription, originalStoryAuthorEmail: req.user.email }); story.save(function (err) { if (err) { return res.status(500); </ins> } <del> var story = new Story({ headline: sanitizeHtml(data.headline, { allowedTags: [], allowedAttributes: [] }).replace(/"/g, '"'), timePosted: Date.now(), link: link, description: sanitizeHtml(data.description, { allowedTags: [], allowedAttributes: [] }).replace(/"/g, '"'), rank: 1, upVotes: [({ upVotedBy: req.user._id, upVotedByUsername: req.user.profile.username })], author: { picture: req.user.profile.picture, userId: req.user._id, username: req.user.profile.username, email: req.user.email }, comments: [], image: data.image, storyLink: storyLink, metaDescription: data.storyMetaDescription, originalStoryAuthorEmail: req.user.email }); story.save(function (err) { </del> <ins> req.user.progressTimestamps.push(Date.now() || 0); req.user.save(function (err, user) { </ins> if (err) { <del> return res.status(500); </del> <ins> return next(err); </ins> } <del> req.user.progressTimestamps.push(Date.now() || 0); req.user.save(function (err) { if (err) { return next(err); } }); res.send(JSON.stringify({ storyLink: story.storyLink.replace(/s/g, '-').toLowerCase() })); </del> }); <del> } ); </del> <ins> res.send(JSON.stringify({ storyLink: story.storyLink.replace(/s/g, '-').toLowerCase() })); }); }); </ins> }; exports.commentSubmit = function(req, res, next) {

Seeing this in production here: solution: Use and/or check for user existence and end early. cc:


Question: margin-left: 1rem; } <del> .badge { </del> <ins> .camper-badge { </ins> margin-right: 1em; } @media (max-width: 768px) {

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: 1. You should have an element with an `id` of `special-defense` 1. You should have an element with an `id` of `speed` 1. When the `#search-input` element contains the value `Red` and the `#search-button` element is clicked, an alert should appear with the text `Pokémon not found` <del> 1. When the `#search-input` element contains the value `Pikachu` and the `#search-button` element is clicked, the values in the `#pokemon-name`, `#pokemon-id`, `#weight`, `#height`, `#hp`, `#attack`, `#defense`, `#special-attack`, and `#special-defense` elements should be `PIKACHU`, `#25` or `25`, `Weight: 60` or `60`, `Height: 4` or `4`, `35`, `55`, `40`, `50`, `50`, and `90`, respectively </del> <ins> 1. When the `#search-input` element contains the value `Pikachu` and the `#search-button` element is clicked, the values in the `#pokemon-name`, `#pokemon-id`, `#weight`, `#height`, `#hp`, `#attack`, `#defense`, `#special-attack`, `#special-defense`, and `#speed` elements should be `PIKACHU`, `#25` or `25`, `Weight: 60` or `60`, `Height: 4` or `4`, `35`, `55`, `40`, `50`, `50`, and `90`, respectively </ins> 1. When the `#search-input` element contains the value `Pikachu` and the `#search-button` element is clicked, you should add an `img` element with the `id` of `sprite` and the `src` set to the Pokémon's `front_default` sprite to the page 1. When the `#search-input` element contains the value `Pikachu` and the `#search-button` element is clicked, the `#types` element should contain a single inner element with the value `ELECTRIC`. The `#types` element content should be cleared between searches <del> 1. When the `#search-input` element contains the value `94` and the `#search-button` element is clicked, the values in the `#pokemon-name`, `#pokemon-id`, `#weight`, `#height`, `#hp`, `#attack`, `#defense`, `#special-attack`, and `#special-defense` elements should be `GENGAR`, `#94` or `94`, `Weight: 405` or `405`, `Height: 15` or `15`, `60`, `65`, `60`, `130`, `75`, and `110`, respectively </del> <ins> 1. When the `#search-input` element contains the value `94` and the `#search-button` element is clicked, the values in the `#pokemon-name`, `#pokemon-id`, `#weight`, `#height`, `#hp`, `#attack`, `#defense`, `#special-attack`, `#special-defense`, and `#speed`elements should be `GENGAR`, `#94` or `94`, `Weight: 405` or `405`, `Height: 15` or `15`, `60`, `65`, `60`, `130`, `75`, and `110`, respectively </ins> 1. When the `#search-input` element contains the value `94` and the `#search-button` element is clicked, you should add an `img` element with the `id` of `sprite` and the `src` set to the Pokémon's `front_default` sprite to the page 1. When the `#search-input` element contains the value `94` and the `#search-button` element is clicked, the `#types` element should contain two inner elements with the text values `GHOST` and `POISON`, respectively. The `#types` element content should be cleared between searches

Example: When the #search-input element contains the value Pikachu and the #search-button element is clicked, the values in the #pokemon-name, #pokemon-id, #weight, #height, #hp, #attack, #defense, #special-attack, and #special-defense elements should be PIKACHU, or 25, Weight: 60 or 60, Height: 4 or 4, 35, 55, 40, 50, 50, and 90, respectively. here #speed is missing leading to unclear errors same holds true for the Gangar test case this could easily be fixed by changing the wording in: I excpected the test-case to include all elements that should've been return/changed 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


Question: | npm (comes bundled with Node)                                                                 | `6.x`   | Does not have LTS releases, we use the version bundled with Node LTS | | [MongoDB Community Server](https://docs.mongodb.com/manual/administration/install-community/) | `4.0.x` | [Release Notes](https://docs.mongodb.com/v4.0/release-notes/)        | <del> > [!DANGER] </del> <ins> > [!ATTENTION] </ins> > If you have a different version, please install the recommended version. We can only support installation issues for recommended versions. See [troubleshooting](#troubleshooting) for details. If Node.js is already installed on your machine, run the following commands to validate the versions:

We are currently using the for our Docsify-powered contributing documentation. One of the alert types, , also accepts the keyword to render. We currently render one of these boxes with and four of them with . For consistency sake, we should use the same keyword to render these. IMHO, with the displayed text being "Attention" we should use the keyword, but I wanted to get some feedback before opening this up to first timers. As an alternative, if we prefer the text, we can modify the plugin config to render on the end-user view instead of .
At this time, there are 4 instances of usage of and 1 instance for , I think it would make sense to make it consistent. And seeing that with the displayed being "Attention" I agree on that being the one used.
+1 on making it
I am happy either way. The only reason I came into this is because I am used to the Bootstrap way of naming, and naturally put DANGER.
Alright, I am going to open this up to first timers. A pull request that closes this issue will: Replace all instances of with in the directory Will not modify any of the files in the directory (these will be updated through our translation worfklow) If you are interested in resolving this issue, we recommend starting with our . If you have further questions feel free to join us in our .
Hi, can I try this out?
Sure thing! Let us know if you have any questions :)
Hey Nick, I would like to work on this!
I also thought of that, but as this issue has been already received by someone, let's give them some time! If it is more than a week without no response, you can grab this!
Yup I got that. That's why I commented so if they are unable then I can pick that up


Question: You can `GET` `/api/convert` with a single parameter containing an accepted number and unit and have it converted. (Hint: Split the input by looking for the index of the first character which will mark the start of the unit) ```js ``` You can convert `'gal'` to `'L'` and vice versa. (1 gal to 3.78541 L)

An empty solution seed with the following format does not parse correctly in Crowdin: ! Adding an empty new-line between the backtick lines will parse correctly in Crowdin: ! The following files have empty seeds with the first format and need a blank line : JavaScript / Basic JavaScript comment your javascript code declare javascript variables declare string variables initializing variables with the assignment operator passing values to functions with arguments return a value from a function with return write reusable javascript with functions JavaScript / ES6 create a javascript promise JavaScript / Object Oriented Programming define a constructor function Front End Libraries / Bootstrap Create a bootstrap headline Front End Libraries / React Create a complex jsx element Quality Assurance Projects metric imperial converter Coding Interview Prep / Data Structures Create an ES6 Javascript Map
Hi, I'll add those blank lines. It'll be my first time contributing to an open-source project, though.
Please visit to find all the info you will need to get started with contributing a fix for this issue.
Alright. I'll go through the documentation.
Hi. First time contributor here. I have forked the free code camp files to my github page. I have cloned them locally, opened the appropriate folders into my VSCode editor and made the changes (though I was not able to find a # --seed-- in Quality Assurance Projects: metric imperial conversion) but now I have no idea of how to get the code back here. Is there some documentation with instructions on how to do that? Thanks in advance.


Question:
"</style>", "", "
CatPhotoApp
",  "",  "", "cat photos", "",  "",  "", "", "
Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.
",

! Challenge has an issue. User Agent is: <codeMozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36</code. Please describe how to reproduce this issue, and include links to screenshots if possible. My code:
This challenge is asking to you wrap the existing tag that is right below the , not create a new one at the bottom. The test expects to find your up there with the original , so adding it down at the bottom causes the test to fail. However, this is the third time in a week or so that I've seen this same issue reported, so I propose adding some clarifying language to the waypoint that lets the user know they should not be moving existing tag, only wrapping it.
It worked. Indeed the language should be more clarifying.
Great, just reading your your response. Unsure if you have clarifying language yet but I have run into the same of two days ago, 10/21...
The change has been pulled into the staging branch but hasn't been pushed into the production code yet. It shouldn't be too long before it is.


Question: ```js function isHeap(arr, i, n) { <del> if (i >= (n - 1) / 2) { return true; } if ( arr[i] >= arr[2 * i + 1] && arr[i] >= arr[2 * i + 2] && isHeap(arr, 2 * i + 1, n) && isHeap(arr, 2 * i + 2, n) ) { return true; } return false; </del> <ins> if( arr[i] < arr[2 * i + 1] || arr[i] < arr[2 * i + 2] ){ return false; } if (i > (n - 1) / 2) { return true; } if (isHeap(arr, 2 * i + 1, n) && isHeap(arr, 2 * i + 2, n)) { return true; } return false; </ins> } assert( (function () { let test = false; if (typeof MaxHeap !== 'undefined') { test = new MaxHeap(); } else { return false; } <del> let max = Infinity; const [result, vals] = [[], [2, 15, 3, 7, 12, 7, 10, 90]]; vals.forEach((val) => test.insert(val)); for (let i = 0; i < vals.length; i++) { const curHeap = test.print(); const arr = curHeap[0] === null ? curHeap.slice(1) : curHeap; if (!isHeap(arr, 0, arr.length - 1)) { return false; </del> <ins> let max = Infinity; const [result, vals] = [[], [9, 3, 5, 2, 15, 3, 7, 12, 7, 10, 90]]; vals.forEach((val) => test.insert(val)); for (let i = 0; i < vals.length; i++) { const curHeap = test.print(); const arr = curHeap[0] === null ? curHeap.slice(1) : curHeap; if (!isHeap(arr, 0, arr.length - 1)) { return false; } const removed = test.remove(); if (!vals.includes(removed)) return false; if (removed > max) return false max = removed; result.push(removed); </ins> } <del> const removed = test.remove(); if (!vals.includes(removed)) return false; if (removed > max) return false max = removed; result.push(removed); } for (let i = 0; i < vals.length; i++) { if (!result.includes(vals[i])) { return false; } } return true </del> <ins> for (let i = 0; i < vals.length; i++) { if (!result.includes(vals[i])) { return false; } } return true; </ins> })() ); ```

A wrong solution is accepted at coding-interview-prep/data-structures/remove-an-element-from-a-max-heap challenge The test case for The remove method should remove the greatest element from the max heap while maintaining the max heap property should not pass. The next example shows that, the function does not maintain the max heap properly: Device: [Laptop] OS: [ Windows 10] Browser: [Chrome] Version: [121.0.6167.86]
OK, I have make it.


Question: } function handleRunRequest(data: PythonRunEvent['data']) { <del> if (ignoreRunMessages) return; const code = (data.code.contents || '').slice(); // TODO: use reset-terminal for clarity? postMessage({ type: 'reset' }); const { runPython, getResetId, globals, printException } = initRunPython(); // use pyodide.runPythonAsync if we want top-level await </del> try { <del> runPython(code); } catch (e) { const err = e as PythonError; // the formatted exception is printed to the terminal printException(); // but the full error is logged to the console for debugging console.error(err); const resetId = getResetId(); // TODO: if a user raises a KeyboardInterrupt with a custom message this // will be treated as a reset, the client will resend their code and this // will loop. Can we fix that? Perhaps by using a custom exception? if (err.type === 'KeyboardInterrupt' && resetId) { // If the client sends a lot of run messages, it's easy for them to build // up while the worker is busy. As such, we both ignore any queued run // messages... ignoreRunMessages = true; // ...and tell the client that we're ignoring them. postMessage({ type: 'stopped', text: getResetId() }); </del> <ins> if (ignoreRunMessages) return; const code = (data.code.contents || '').slice(); // TODO: use reset-terminal for clarity? postMessage({ type: 'reset' }); const { runPython, getResetId, globals, printException } = initRunPython(); // use pyodide.runPythonAsync if we want top-level await try { runPython(code); } catch (e) { const err = e as PythonError; // the formatted exception is printed to the terminal printException(); // but the full error is logged to the console for debugging console.error(err); const resetId = getResetId(); // TODO: if a user raises a KeyboardInterrupt with a custom message this // will be treated as a reset, the client will resend their code and this // will loop. Can we fix that? Perhaps by using a custom exception? if (err.type === 'KeyboardInterrupt' && resetId) { // If the client sends a lot of run messages, it's easy for them to build // up while the worker is busy. As such, we both ignore any queued run // messages... ignoreRunMessages = true; // ...and tell the client that we're ignoring them. postMessage({ type: 'stopped', text: getResetId() }); } } finally { getResetId.destroy(); printException.destroy(); globals.destroy(); </ins> } <del> } finally { getResetId.destroy(); printException.destroy(); globals.destroy(); </del> <ins> } catch (e) { // This should only be reach if pyodide crashes, but it's helpful to log // the error in case it's something else. console.error(e); void resetPyodide(); </ins> } }

Pyodide can crash when adding or method to the class, while NOT trying to write invalid code. I'm mentioning intent, because it can be encountered when attempting to write correct code. ing instance of the class. or method to the class. On each key pressed, code will execute, including the newly written method. So when we are writing the method: Then starting writing inside of the brackets: . Code will be execute also when it's . That's when it will crash hard: Further changes to code will bring up in browser's console: With example challenge to the at the bottom of code. to class definition, add boilerplate: writing between brackets: on the right crashes at the point when it's . Ideally omitting the crashing part. After the crash window needs to be reloaded to make pyodide on the right work again. Tests still appear to work correctly. Recursive function going into maximum call stack size exceeded does not crash pyodide. I've tested example class from above on , it does not crash pyodide.


Question: You should import the `Lobster` font. ```js <del> assert(new RegExp('googleapis', 'gi').test(code)); </del> <ins> assert($('link[href*="googleapis" i]').length); </ins> ``` Your `h2` element should use the font `Lobster`.

<!-- 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 Importing must be outside the tag not inside it. This code above will pass the test cases even tho the font isn't applied and imported inside the tag. Screenshots As you can see the lobster font is not applied to the tag but it still passes all the tests. ! This is the right implementation of importing a tag ! System (please complete the following information): Device: Laptop OS: Windows 10 Browser: Chrome Version: 90.0.4430.212 (Official Build) (64-bit) Additional context Add any other context about the problem here.
Thanks for the report the regex for this one is a bit too permissive. It should check that the link is not inside the style tags (without using lookbehinds, because we've broken safari often enough recently)


Question:
constructor(props) { super(props); this.state = {  name: 'freeCodeCamp!'   firstName: 'freeCodeCamp!'  } } render() { return (

{this.state.name}

{this.state.firstName}

 ); }

A user wondering why his solution passed. I then realized the 2nd test test is not working as intended. The user is supposed to assign a string to a property of . The user's solution assigns an uninitialized variable as a property. The purpose of the test is to make sure the user assigns a string value to a prop named , but the test still allows the user to pass as the prop's value and the test passes. Not sure why, but assigning an uninitialized property to ends up assigned an empty string to it. This of course passes the test requirement but defeats the purpose of the learning here. I suggest changed the required property name to something like , so if a user does something like this, all of the tests will fail. Test in question: The second test should fail because the property of should be undefinedbecause it was not initialized by the user's code. 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
After a bit of research, it appears that assigning as a property that is uninitialized is the same as writing: = { } Since the window has no name, it is just an empty string.


Question: ## Bash command: ssh <del> **Used to securly connect to a remote server** using Diffie-Hellman algorythm for key exchange, ssh replaces the archaic telnet program for remote shell sessions. </del> <ins> **Used to connect to a remote computer** It's full form is 'Secure Shell'. It's purpose is to connect to another remote computer using tcp. The address of the remote computer can be provided using an IP address or, if provided, an identifier. </ins> <del> for example `ssh 192.0.2.1` will try to establish a connection with that host. The address of the remote computer can be provided using an IP address resolvable hostname or FQDN. </del> <ins> If the remote computer requires user login, the form `ssh username@remote_address` can be used, which will then prompt for the user password on successful connection. Example command: `ssh pi@192.168.0.101` This will connect to the computer in the local ip address of 192.168.0.101 and log in with the username pi. Another way to use this command is to pipe a command directly to it. For example: To execute the command `ls /tmp/doc` on the computer with ip address 192.168.0.101, type the following command at a shell prompt: `ssh 192.168.0.101  ls /tmp/doc` After authenticating to the remote server, the contents of the remote directory will be displayed, and you will return to your local shell prompt. </ins> If you wish to use a different username then the one initiating the session (i.e. you're using ssh from root but wish to log in as different user to a remote system), the form `ssh username@remote_address` can be used, which will then prompt for the user password on successful connection.

<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. --Describe your problem and how to reproduce it: this needs more work, but to begin a process - adding the proper acronym explanation (which is almost 50% of understanding the topic) and reducing misinformation about identifiers. also some explanation on the benefit of using this tool compared to its predecessor also adding basic usage and giving some more basic understanding of this tool Add a Link to the page with the problem:
I created a pull request for adding some basic information. Still need to correct the misinformation about identifiers.


Question: "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==" }, "monaco-editor": { <del> "version": "0.17.1", "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.17.1.tgz", "integrity": "sha512-JAc0mtW7NeO+0SwPRcdkfDbWLgkqL9WfP1NbpP9wNASsW6oWqgZqNIWt4teymGjZIXTElx3dnQmUYHmVrJ7HxA==" </del> <ins> "version": "0.18.1", "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.18.1.tgz", "integrity": "sha512-fmL+RFZ2Hrezy+X/5ZczQW51LUmvzfcqOurnkCIRFTyjdVjzR7JvENzI6+VKBJzJdPh6EYL4RoWl92b2Hrk9fw==" </ins> }, "monaco-editor-webpack-plugin": { "version": "1.7.0",

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: --- <del> `What do he does as our team lead?` </del> <ins> `What do he does as the team lead?` </ins> ### --feedback--

The fill-in-the-blank sentence doesn't match what the character says. The written sentence is: The character says: Note the "the", instead of "our". No response Device: all OS: all Browser: all Version: all No response
Thank you for reporting the issue. Note for maintainers: Step 54 () uses "our" instead of "the" in the quiz. I think it's fine as-is since there isn't associated audio/caption text, but I'd vote updating it, too, for consistency. This issue is open to first-time code contributors to this repository. Requirements: In Change the text in the tag from to In Change the text in the tag from to Change the fill-in-the-blank text from to Change the backtick placement in the description text from ` In Change the text of the answers from to 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.
Hi I've created a PR addressing these changes.


Question: } .certification-namespace.certificate-wrapper { <del> top: calc(100vh / 20); position: relative; </del> font-family: 'Sax Mono', monospace; }

Is there a reason the certifications have an apparent margin above them? ! It's bigger with a taller viewport. Seems like there should be no margin there.


Question: assert.match(__helpers.removeJSComments(code), /rows.push(padRows*(s*rows.lengths*+s*1/); ``` <del> Your `while` loop should run while `rows.length` is less than `count`. ```js assert.match(__helpers.removeJSComments(code), /whiles*(s*rows.lengths*<s*count)/); ``` </del> # --seed-- ## --seed-contents--

On step 89 and 90 of the Pyramid generator there is this misterious error that appear, it can be confusing for campers. !
Error is coming from the function, specifically one of the string repeats. Depending on the and , when or will be , calling method of string will show that error. Edit: When condition is there's no such issue.
Yep. I think reworking the lessons so we never leave the learner with broken code (or at least never unexplained broken code) is the way to go.
I'm not sure if it was even intended to have broken code, description is suggesting everything should work fine. Step 91 asks for two changes, one of which specifically makes this error appear (second change fixes the issue).
Yeah, it's a bit confusing. Probably not intentional, though. On 91 there's this: the only time I don't see the error is when I've followed all the instructions on step 91.
Is this not enough to clear up any doubts? Cuz after following the instructions in step 91, there's nothing mysterious about the error anymore.
I don't think so. Step 89, where error is introduced, doesn't mention it. Neither does 90. It's only when you reach 91 that the error is mentioned and the text is which is incorrect. Changing to has no effect on the error. It's only the combination of that and adjusting the conditional that finally removes the error. The main issue with this is that it breaks the feedback loop between learner's actions and the code's behaviour. Speaking for myself, everything gets harder when the results of my actions are essentially invisible. I know we run tests to check you re doing it right, but that's not really a substitute for them seeing how your actions impact the program.
Okay. We need to at least note the possibility of an unexpected error to the camper. I'm thinking on step 89 now.
Just for posterity, the steps got shifted. Error is introduced by completing step 95 Error is resolved by completing step 96 What should be changed here: Step 95 should: Introduce and explain the error Ask the campers to change the comparison to Step 96 should: No longer ask campers to change the to Not mention that creates a


Question: flex-direction: column; } .footer-right { <del> padding-left: 0px; </del> <ins> padding-left: 0; </ins> } .footer-container .col-spacer { margin-top: 40px;

found an issue: Unexpected shorthand "padding" after "padding-bottom" (declaration-block-no-shorthand-property-overrides) It's currently on:
I'm happy to fix this (and remove the units from zero values also in that file), but I'm not sure what the preferred replacement is for the padding. Should I just remove the padding: and add lines for padding-top: 0; padding-right: 15px; to reflect the styles currently specified by the padding: 0 15px 15px line?
I would delete , you can start and these question will be answer by reviewers if they need changes later


Question: Here is an example of returning a value using an `if-else` statement and a refactored example using a ternary operator: ```js <del> if (num > 5) { return 'num is greater than 5'; </del> <ins> // if-else statement if (score > 0) { return score </ins> } else { <del> return 'num is smaller than or equal to 5'; </del> <ins> return default_score </ins> } <del> return num > 5 ? 'num is greater than 5' : 'num is smaller than or equal to 5'; </del> <ins> // ternary operator score > 0 ? score : default_score </ins> ``` In `getMonsterAttackValue`, change `return hit` to a ternary operator that returns `hit` if `hit` is greater than `0`, or returns `0` if it is not.

We are still getting a lot of people on the forum confused on how to do step 146 of RPG project. They are looking to the current example and returning strings when the directions say to return the variable and the number . In order to clear up confusion, we should chose a different example. I know that this is updated code example is very similar to what they need to do in the step. But I think that is what they need at this stage. js // if-else statement if (score 0) { return score } else { return defaultscore } // ternary operator score 0 ? score : defaultscore ` 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 ctx: Worker & typeof globalThis = self as unknown as Worker & typeof globalThis; <del> let pyodide: PyodideInterface; </del> <ins> let pyodide: PyodideInterface | null = null; </ins> interface PythonRunEvent extends MessageEvent { data: {

Pyodide can crash when adding or method to the class, while NOT trying to write invalid code. I'm mentioning intent, because it can be encountered when attempting to write correct code. ing instance of the class. or method to the class. On each key pressed, code will execute, including the newly written method. So when we are writing the method: Then starting writing inside of the brackets: . Code will be execute also when it's . That's when it will crash hard: Further changes to code will bring up in browser's console: With example challenge to the at the bottom of code. to class definition, add boilerplate: writing between brackets: on the right crashes at the point when it's . Ideally omitting the crashing part. After the crash window needs to be reloaded to make pyodide on the right work again. Tests still appear to work correctly. Recursive function going into maximum call stack size exceeded does not crash pyodide. I've tested example class from above on , it does not crash pyodide.


Question: You have either deleted the `html` element or it is missing an opening tag or closing tag. ```js <del> assert(code.match(/<html.*?>/) && code.match(/</html>/)); </del> <ins> assert.match(code, /<html.*?>/); assert.match(code, /</html>/); </ins> ``` Your `html` element should have a `lang` attribute with the value `en`. You may have omitted the attribute/value, or have a typo. ```js const extraSpacesRemoved = code.replace(/s+/g, " "); <del> assert(extraSpacesRemoved.match(/<htmls+langs*=s*("?|'?)en1s*>/)); </del> <ins> assert.match(extraSpacesRemoved, /<htmls+langs*=s*("?|'?)en1s*>/); </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: "Here's the formula we'll use. Take a moment to read it and try to understand what this code is doing:", "Math.floor(Math.random() * (max - min + 1)) + min", "Define two variables: myMin and myMax, and set them both equal to numbers.",  "Then create a function called myFunction that returns a random number that's greater than or equal to myMin, and is less than myMax."   "Then create a function called myFunction that returns a random number that's greater than or equal to myMin, and is less than or equal to myMax."  ], "tests": [ "assert(myFunction() >= myMin, 'message: The random number generated by myFunction should be greater than or equal to your minimum number, myMin.');",

Challenge has an issue. User Agent is: <codeMozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36</code. Please describe how to reproduce this issue, and include links to screenshots if possible. My code: The instructions for this way point say: (emphasis ) However, the formula provided () is inclusive of the upper bound. The correct formula for an exclusive max is It may be intended that campers should catch this and change the formula, but using the inclusive formula will still pass the tests. I believe that either the description of the task should be changed, or the tests should be more stringent and there should be an indication that the formula needs to be modified.
!
Your code does not match the provided sample. You removed the from after .
Yes I know that,because the random number by myFunction should be less than or equal to your maximum number Remember: or equal
The is what makes it inclusive (less than or equal too). To be strictly less-than, you would omit the . Now that the instructions have been fixed, the is appropriate. That was the premise of this Issue.
Became aware of this while discussing the in chat. It appears that while the wording was changed to be for an inclusive range the tests still pass for an exclusive range. ! may have been referencing this but it appears his code was not passing back then but it would now. !
This is very difficult to test. Previously we had a horrible massive Regex that tried to look for the explicit code, which caused no end of trouble. Here are the current tests: The only way I could see to improve this would be to write a loop in the "tail" section (which executes after the user code) that, for example, did 100 or 1000 calls to the random function and collected min and max values. Now, there is no gaurentee that we'd always get a min and max . . . But that's pretty much the only way I can think of testing this "for real". I'd like to hear what the other have to say - is it worth the risk to do some sort of looping structure, or do we just want to leave it as is?

As the function is random, it won't necessarily catch the min or max values. One thing you could do is accept this "feature" and just educate the camper as much as possible on what the function is really doing. So to do so, I suggest first adding a note as a reminder on the specifics on what the function does. Secondly, you can then reference the if they get stuck, as it gives some really good examples on how it builds up the given equation. The downside to this approach is that you really could just copy-paste the example from MDN and not really learn. However, I believe in the honesty and curiosity of FCC coders trying to learn :) And if these changes are made, we could change it back to making the upper end exclusive and noting you will have to change the original formula. Given all these additional hints and instructions, it'll hopefully make it more clear on what needs to be changed to the original given formula with the .
Doesn't that cover it? I'm pretty sure we've re-written all 3 random number challenges since this issue was opened.
It does, but it would have been two challenges ago. I think it would just be a friendly reminder of that small detail.
I could see a full explanation of this formula: Probably needs some wordsmithing and may be too complex.
it looks like your suggestion to loop through 100 iterations in the "tail" section . On side note, it looks like the instructions are a little redundant with the "inclusive" and "or equal to" part:
I believe the instructions got updated as well. I'm going to close this as resolved.
just "return ()" is ok!


Question: 'moveToTab', <del> 'setEditorFocusability' </del> <ins> 'setEditorFocusability', 'setAccessibilityMode' </ins> ], ns );

Looking forward for reporting a security issue: Please report security issues by sending an email to instead of raising a Github issue. Describe the bug A clear and concise description of what the bug is. The Monaco editor contains features for accessibility, specifically a mode for screen reader users which helps in navigating and using the editor effectively. This feature, as of now, must be enabled at the start of each lesson, even after enabling it once at the beginning of the session. To Reproduce Steps to reproduce the behavior: to any lesson in the curriculum. the code editor, set focus to it. alt+f1 to show accessibility help for the editor, and choose to enable the screen reader mode the lesson, advance to the next, and repeat steps two and three Expected behavior A clear and concise description of what you expected to happen. The screen reader mode should have stayed enabled across lessons. Screenshots If applicable, add screenshots to help explain your problem. Desktop (please complete the following information): OS: [e.g. iOS] Windows Browser [e.g. chrome, safari] Chrome Version [e.g. 22] 69.0.3497.100 (Official Build) (64-bit) Smartphone (please complete the following information): Device: [e.g. iPhone6] OS: [e.g. iOS8.1] Browser [e.g. stock browser, safari] Version [e.g. 22] Additional context Add any other context about the problem here. Tested screen reader: NVDA version 2018.3.2 from
Hey, As a part of hacktoberfest, I would like to work on this issue. Can I expect mentorship on this?
I'm new on this too. But if you need help, I would like to work on this issue too.
Can you reproduce this issue?
A group of us are working on this issue for a class project in university. We aim to address this in the next couple of days. We will try and at least present the community with a first iteration of our proposed solution. Just a heads up. If the current developers have any advice or tips, feel free to contact me. Thank you. is the primary developer in the team, working alongside me.
Any updates on this ?
This looks to be fixed, the editor is focused on load.

Can you confirm that this is fixed If so, this can probably be closed.
I don't think it is fixed. It focuses on load by default, but I think that turning on the screen reader mode is separate from just focusing. I don't have a screen reader installed, but if I follow the steps above I keep having to re-enable that mode each time I go to a new challenge.
Sorry, I don’t think the editor should be focused on load, as that means the screen reader user most unfocus it, move back to the heading to read the challenge, then focus it again to write code. Also, I still have to enable accessibility mode on each challenge.
I see now. And I can say that the built in screen reader on osx doesn't do anything with the editor. Is this something we can control? Or is it just part of the monaco editor and we are at their mercy?
VoiceOver on MacOS is… not the best, sadly, when it comes to web apps. If possible, you can send technical info about this to <mailto: is Microsoft’s editor, which seems to be VSCode stripped down to the editor. Perhaps you could contact Microsoft and see if they could add a way to make accessibility states persistent across loads, if this isn’t possible already.
That is annoying. For now you should be able to focus the description by pressing escape (at the moment, it's still in a state of flux), but I'll see about making screen-reader mode something that persists between challenges.
Seeing as how this issue is beyond our control, should we close this and make a new issue about the editor being focused on load? You can feel free to email apple or microsoft if you want Thanks for the advice though.
no need to close this. I think I can fix it.
Yes, we can close this issue.
Quick update. Both the auto-focusing and the persistence of accessibility mode should be fixable. I think I'm about 90% of the way there, but for some reason it stops letting you toggle the accessibility support after a couple of toggles. This, obviously, isn't ideal, but most of the functionality is there.


Question: "  ", "  ", "</style>",  "CatPhotoApp"   "CatPhotoApp"  ], "tests": [ "assert($('a').css('color') == 'rgb(0, 0, 0)', 'message: The color of the anchor tag text should be black.')"

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: } #universal-nav-logo { <del> display: flex; position: absolute; </del> padding-top: 0.2em; <del> top: 0; </del> } .expand-nav {

When the user uses FreeCodeCamp on narrow screens like the Samsung galaxy fold, the FreeCodeCamp logo overlaps with the drop-down menu button and profile picture at the top of the page. to '' the developer tools dimensions select "Galaxy fold". the .png example in the screenshots section As a suggestion in this type of screens <= 280px * 653px we could remove the FCC fire logo or remove the profile picture to follow the responsive design rules. ! Device: [Laptop, Samsung Galaxy Fold, Pc] OS: [Android 12L ,Windows 11] Browser: [Chrome, OperaGx] No response
Bruce mentioned the possibility of changing the logo in this PR too I am kinda in favor, because of how many people started to associate freeCodeCamp with fCC, so change in logo may be possible. Note: that screens with size lower than aren't required to be supported as mentioned in his comment as well.
btw, the logo is on higher stack above the menu, so it isn't possible to click the menu. If we aren't changing the logo, changing the layout is the other option.
Hi What do you think about leaving only the "FreeCodeCamp" logo and removing the symbol? I think it would look more aesthetic xD and all the space would be fixed.
I think a part of the menu will still be blocked , but I hope I am wrong. Your suggestion may be better than fCC, but I don't know the workflow on removing and how important it's. Another dev or prolific contributor with more experience can indicate how important is the glyph.
I have solved this issue by dropping the fire icon. This is how it looks like. https://user-
Hey If you are working from a mobile Android device we recommend downloading the freeCodeCamp mobile app, which has a good mobile experience for the Responsive Web design certification.
Hey Thank you for making this change, although this works, it is in violation of our style guidelines. Please see them here: https://design-style-
yeah, I was thinking that it will go against the guidelines. I think putting the "sign in" button inside the "hamburger menu" for small screens can be a possible solution.
If I am reading the guidelines correctly then just the glyph can be used.

I'm sure the app is fine, but the web-based version should provide just as good an experience as the mobile app or we are doing something wrong. Also, just to be clear, since I might have started this in the first place, I am not insisting in any way that we adjust the header for very small widths. It was just an offhand suggestion in another PR that was somewhat related.
Yes. It probably wouldn't hurt to have a breakpoint that switched to the glyph, though I feel like this has been brought up (and turned down) before? might have more insight.
Hello, I am available to work on this issue. I believe I can solve this up you can Assignees the issue to me
I have resolved the Navbar logo responsiveness bug in the Galaxy Fold This is how it looks like.And i can Make a PR !
diff my name is vivek
diff my name is vivek my name is vivek yadav
We could go with the glyph or make the logo a bit more responsive. Either way would work.
Because there are 4 PRs opened doing the same thing, I want to clear the requirement to close this issue. The CSS solution, the issue is cased by the existing property of in , removing it and refactoring the layout of the navbar, will sort the issue as shown below, without the need to add another break point. Why am I against adding a break point? because it's a solution to a side effect and not the solution to the real cause of the issue The HTML solution, use element with fallback to glyph SVG. You can find the glyph in the .
For context, either solution is an enhancement to the navbar, so if a PR is fixing the CSS, while the other is changing the picture element, I wouldn't mind approving both, as both will be an enhancement to the current navbar. But maybe it's better to choose one option, before opening this for contribution so I am pushing it to triage again.
Shouldn't the element be conditionally rendered using the component instead of just being empty? That way it won't push the logo and the logo doesn't have to be position absolute. Code we have now wrapping the element instead. I only looked at this briefly so I will admit I might have missed something. Edit: I made a PR just to show what I mean.
Yeab, you are correct.


Question: style={characterFeatureStyles} className='character-feature' src={base}  alt='Character Body'   alt=''  /> <img style={characterFeatureStyles} className='character-feature' src={brows}  alt='Character Brows'   alt=''  /> <img style={characterFeatureStyles} className='character-feature' src={eyesAreOpen ? eyesOpen : eyesClosed}  alt='Character Eyes'   alt=''  /> <img style={characterFeatureStyles} className='character-feature' src={mouthIsOpen ? mouthOpen : mouthClosed}  alt='Character Mouth'   alt=''  /> {glasses && ( <img style={characterFeatureStyles} className='character-feature' src={glasses}  alt='Character Glasses'   alt=''  /> )}

Originally posted by in We should hide the character images with - we can probably hide all the images, except for maybe the base character.
I believe leaving blank should suffice: I haven't tested locally and only skimmed through the code. Correct me if I'm wrong, I think we are communicating which character is speaking only visually using these images. So hiding the images is one thing, but providing an alternative way to convey the information is another thing.
Yes, definitely, these images should have empty alt text!
Alt text emptied


Question: # --hints-- <del> Your `.cat-whisker-right-top` selector should have a `transform` property set to `rotate(-1deg)`. </del> <ins> Your `.cat-whisker-right-top` selector should have a `transform` property set to `rotate(-10deg)`. </ins> ```js assert(new __helpers.CSSHelp(document).getStyle('.cat-whisker-right-top')?.transform === 'rotate(-10deg)')

instructions state -10px failed test done incorrectly. error states that it must be -1degerror instruction bug proven. please be grateful free testing again to your company. I would like to one day do corrections to updated things like this on github, step 78 new responsive web design did not pass with clear instructions. error says -1deg ! 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
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: The test text should be updated to . 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.
Open Source is based upon free contributions. We're always grateful for efforts that move the codebase forward.


Question: If the OP (Original Poster) replies within a freeCodeCamp curriculum help thread with their final solution, blur it and use the **Blurred Spoiler Solution** canned reply. <del> If a user creates a thread asking for feedback on a solution, move the thread to the feedback subforum and blur the solution, as necessary. If the user is only posting the solution to show if off, then unlist the thread and use the **Solutions Thread** canned reply. </del> <ins> If a user creates a thread asking for feedback on a solution, move the thread to the feedback subforum and blur the solution, as necessary. If the user is only posting the solution to show it off, then unlist the thread and use the **Solutions Thread** canned reply. </ins> ### Underage Users

In the document, there is a sentence saying this: But this section is talking about dealing with solutions , it should be changed to this: here is the file If you would like to fix this issue, 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.
Hi there! I'm definitely a first-timer and would like to fix this. You can assign this issue to me.
Hi feel free to open a pull request after you have read our contribution guide
Hey there! I would like to fix this issue,you can assign this to me.
Hey feel free to open a pull request after you have read our contribution guide


Question: showPoints: PropTypes.bool, showPortfolio: PropTypes.bool, showTimeLine: PropTypes.bool, <del> updateMyProfileUI: PropTypes.func.isRequired </del> <ins> updateMyProfileUI: PropTypes.func.isRequired, user: PropTypes.object </ins> }; function PrivacySettings(props) {

Once we've built the JSON we want to output, I believe we can just use Pug like this for the button to initiate the file download:


Question: isResettingSelector, stopResetting, isProjectPreviewModalOpenSelector, <del> openModal </del> <ins> openModal, isChallengeCompletedSelector </ins> } from '../redux'; <ins> import GreenPass from '../../../assets/icons/green-pass'; </ins> import LowerJaw from './lower-jaw'; import './editor.css';

I am learning from the RWD course, and I wanted to revise what I had done previously. I went to previous steps, but I found that the steps are shown incomplete when I open them. It tells you to do the step again. This doesn't make sense because you have a button at the top if you do want to do the step again. Completed code should be shown in completed challenge's code editor along with an indicator like ! !
It would be relatively easy to show the solution to a step, and the "Step completed" text, (rather than storing the user's code) if a user has already submitted that step. If other maintainers are in favour of this change, I'd be happy to open this up for PRs.
My concern with that approach would be it completely destroys the UX if someone wants to go through a practise project again.
I propose to add a button under the summary of each project for this issue.
I'm not keen on adding a button to do that, given the potential for frustration if someone triggers that accidentally.
I think I'd be in favour of the existing flow, presonally.
At a minimum, we could probably add the checkmark next to "Step 22" like we do for all the other challenges after it has been completed. That seems to be missing here. !
That's a good idea, IMO.
I think just adding that check mark is probably the way to go then. It keeps it consistent with everything else. I'm going to open it up for contributions. If anyone still has reservations, be sure to bring them up.
May I suggest in addition to indicating completed challenges in the challenge itself, to do that in the list of steps. Here is a crude representation of what I have in mind: <p align="center"<img src="https://user-" width=500 align="centre"/</p
I believe it already does that. Here's a screenshot of what the challenge looks like for me, after I've completed it (the steps are highlighted in blue instead of white). !
Also, I would like to work on this issue, and I agree that adding a checkmark next to the step would be a good fix, but I noticed that the RWD courses don't have a step number or title at the top like the other courses do.

For other courses, the checkmark for completion is displayed next to the name of the challenge, like you can see in the first screenshot (of the JS Algorithms & Data Structures courses). However, for the RWD course, there is nothing in this location, as you can see in the second screenshot. ! ! How should we go about adding a checkmark to the RWD course? Should we just put it next to where it says on the screenshot (inside the instructions block)? Or should we move the step number to the same place as where the challenge names are for the other courses and put the checkmark there, in order to be consistent with the other courses?
Thanks I could not log in since yesterday and this is probably the reason I don't see indication for completed challenges in the list of steps.


Question: "dashedName": "build-a-palindrome-checker-project", "usesMultifileEditor": true, "helpCategory": "JavaScript", <del> "order": 8, </del> <ins> "order": 7, </ins> "superBlock": "javascript-algorithms-and-data-structures-v8", "challengeOrder": [ {

I was going through the new JS Beta curriculum and when I got to the date formatter project I realized that it probably doesn't really help add any specific knowledge that would be useful in completing the palindrome project. I think the date formatter project being in its current position may even be a hindrance because I think it is better to get people to work on the skills they have learned sooner rather than later. My suggestion is to move the palindrome project ahead of the date formatter project for this reason. N/A N/A No response N/A No response
please assign this to me
issues are not generally assigned, and this issue has not been marked as ready for contributions.
okiee thank you
I agree. That seems like the way to go. A PR which resolves this issue, then, will swap the properties in the meta files for these two projects.


Question:
``` error is the argument passed in to the reject method.  Note: the then and catch methods can be chained to the promise declaration if you choose.
 ## Instructions

In , the reader is told" "Note: the then and catch methods can be chained to the promise declaration if you choose." Nothing so far in the Javascript curriculum has explained what it might mean to "chain" methods to the promise declaration. I would propose one of two changes here: a hyperlink to a good resource that describes chaining methods to promises ( is what explained it for me); or add another example that shows what promise chaining would look like. I hesitate to write a PR doing solution (1) because I can imagine there are restrictions on outgoing links. What do you think? Is (1) a good idea? Or (2)? <!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. --Describe your problem and how to reproduce it: Add a Link to the page with the problem: Tell us about your browser and operating system: NA If possible, add a screenshot here (you can drag and drop, png, jpg, gif, etc. in this box):
I don't remember coming across a lesson in the javascript section linking to an external site for better explanation. Wouldn't it even be better to add a lesson explaining promise chaining than link to an external site if it has not been explained anywhere in the lesson series? TBH i see promise chaining used a lot.
Yeah, I don't see a lot of external links, so an explanation of promise chaining seems like the way to go. Not sure if it needs another lesson or could be explained here.
Hello there, You are correct, we try as much as possible to avoid links to external resources. One of the main ideas behind the challenges in this version of the curriculum is stated : As for the issue with campers potentially never having heard of "chaining", in my opinion: 1) Campers do not need to know about it to complete the challenge. I suspect the reason the original contributor who wrote the note, did it to give campers something to research, and potentially practice. If a camper already knows about chaining, then they will not give it a second though. If not, then perhaps, like yourself, they will research into it. Either way, the instructions do not ask for chaining to be used. 2) The note could be removed. I would not spend time explaining chaining in this challenge.

Obviously number 2 is not my preferred choice of action, because I appreciate the tid-bits of information given in some of the challenges which helped me learn by prompting me to research.
Hi . Well it is understandable to give learners something to research about but my honest opinion is if you decide to do it, then you must clearly state so. Looking at the wording of the note: From the above statement there is a very high likelihood for a learner to ignore the note because it is an alternative to the already explained method. I would most likely ignore it too, given the amount of material i have to learn, if i were the learner. Yes the task at hand may not need someone to know promise chaining to complete but do you think the concept is not important enough to include in the lesson series or as part of this lesson? In fact my very first encounter with promises is with the API which is more often than not implemented via promise chaining. My honest opinion is that ignoring it up to the point of just giving a one line "Note" is an oversight.
I fully understand where you are coming from. My main issue with including anything about chaining in this context or fetch/ASYNC context is and are not a part of this topic - ES6. I would much rather a new lesson be created teaching chaining in another block, and/or TRY/CATCH being taught as the standard with ASYNC/AWAIT in the ES6 block. That being said, I am concerned this topic is going down bike-shedding, as the new curriculum should probably be the platform taking note of these points.
Thanks for weighing in. Your comment about the "new curriculum" is news to me. If that's where this discussion belongs, that's fine with me. On the substance, as a beginner, I think the bare-bones note about promise chaining here does more harm than good. So given that there is no appetite for explaining it here, I would favor deleting the note.
Since you originally created this challenge and included the note, could you share your thoughts on this issue?
, In that case, I highly recommend you take a peak. Starting with these two posts announcing it:
I don't think I would expand this lesson to include teaching method chaining, since it would take away the focus of the lesson.

Even an extra example might be much - I know there's many other lessons that are longer with many examples - but that's my opinion. I wouldn't object to an additional lesson about it - but we aren't really adding lessons anymore in favor of the new curriculum. So I think that just leaves either removing the note, or leaving it. I would be fine with either. I'm open to suggestions.
My suggestion is to take it out. This fits best with the contributor guideline quoted by "Campers should never have to google anything during these challenges. " Right now, if a camper wants to understand the note, they have to google promise chaining. I realize that they don't actually have to google promise chaining because it isn't part of the challenge. But that's all the more reason to take the note out. It's just a confusing distraction.
Since we are not going to add an external link on the topic and we are not planning on adding a new challenge to the existing curriculum for the topic being linked, I think we should just remove the note.


Question: ```yml tests: <del> - text: declare the <code>--penguin-belly</code> variable in the <code>:root</code> and assign it to <code>pink</code>. testString: assert(code.match(/:roots*?{[sS]*--penguin-bellys*?:s*?pinks*?;[sS]*}/gi), 'declare the <code>--penguin-belly</code> variable in the <code>:root</code> and assign it to <code>pink</code>.'); </del> <ins> - text: Declare the <code>--penguin-belly</code> variable in the <code>:root</code> and assign it to <code>pink</code>. testString: assert(code.match(/:roots*?{[sS]*--penguin-bellys*?:s*?pinks*?;[sS]*}/gi), 'Declare the <code>--penguin-belly</code> variable in the <code>:root</code> and assign it to <code>pink</code>.'); </ins> ```

<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. --Describe your problem and how to reproduce it: Challenge test text typically capitalized, but the one for Cascading CSS Variables is not. Add a Link to the page with the problem: Live: Suggested Change: Tell us about your browser and operating system: Browser Name: Chrome Browser Version: Chrome Operating System: Chrome OS
Hello can I work on this issue? I'd like to start contributing. kind regards!
Go for it! Thanks for giving us a hand! You will need to follow the to set up freeCodeCamp locally. Also, we are hanging out in . You can ask for help there, or just come say hi :)
Thanks, yeah sure, see you at Glitter's Contributors chatroom
is it fixed ? i would like to contribute
there has been a pull request already submitted Thanks for your interest! Please take a look at the other issues. Happy coding!
Close the issue?


Question: **Examples** ```js <del> 4   <= 5 '7' <= 7 5   <= 5 3   <= 2 '8' <= 4 </del> <ins> 4   <= 5 // true '7' <= 7 // true 5   <= 5 // true 3   <= 2 // false '8' <= 4 // false </ins> ``` <del> In order, these expressions would evaluate to `true`, `true`, `true`, `false`, and `false`. </del> # --instructions-- Add the less than or equal to operator to the indicated lines so that the return statements make sense.

The student has to go all the way down up to the explanation "In order, these expressions would evaluate to true, false, true, and true." to realize what the result of the operations is. My suggestion is that the second section of the code should look like this: 1 == 1 // true 1 == 2 // false 1 == '1' // true "3" == 3 // true instead of the screenshot attached. <!-- Add a link to the coding challenge with the problem. -- <!-- If applicable, add screenshots to help explain your problem. you can drag and drop, png, jpg, gif, etc. in this box. --!
I would be fine with this change. Any interest in making a PR for it
, Can I? I don't know how to do it and I have never done it in my life, but besides that, I would like to do it by myself using some guide you could give me. I have never used GitHub in the past. And this will help me to contribute even more to this awesome project.
We have some . It may look a little intimidating, but if you follow the instructions it's not bad. The file where this needs to be fixed is Technically, you can edit the file on github and make a PR from there - which can work for some simple fixes, but you can't see and test your changes. I think we would accept those if you want to do that, but I would recommend setting the project up locally at some point if you want to contribute regularly. To be clear, we usually like to get second opinion before making changes like this - since we don't have that, I can't guarantee a PR would be merged - but I think others would be fine with the change so if you want to make a PR, go ahead.
This change seems good. For context, we got rid of a lot of comments since we'd need to translate them. However, these are keywords and don't need translation.
shall I take this up?
Could you clarify if this is actually what we wanted, because this is exactly what we removed 12 months ago in:
Yes, this is okay because these instances specifically are only keywords that don't get translated anyway.


Question: Use the `setAttribute` method on the `playButton` element to set an attribute named `"aria-label"`. Using a ternary, set the attribute value to `Play ${song.title}` or `"Play"` if `song?.title` is not available. <del> Don't forget you need template interpolation here, so you need to use backticks. </del> <ins> Don't forget you need string interpolation here, so you need to use backticks. </ins> # --hints--

When talking about template literals sometimes we use "template interpolation", I have not been able to find good documentation on this wording. It should be changed to "string interpolation" or "template literal" as needed. The changes needed are as follow: template interpolation -string interpolation use template interpolation -use string interpolation 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: ```js assert.strictEqual( (function () { <del> bob.setFullName('Haskell Curry'); return bob.getFullName(); </del> <ins> _test_bob.setFullName('Haskell Curry'); return _test_bob.getFullName(); </ins> })(), 'Haskell Curry' );

A user can fail with correct code because the tests secretly rely upon global variables accessible to the user. This code fails because the user has the correct solution but deleted the instantiation of the object. Tests should instantiate any data they need. We should update the seed code to We should then add and modify the test suite to use instead of . No response All No response
Hello, Just to clarify, did you want to add in the user code block? Because I noticed when I attempted to reproduce the bug you encountered that two test cases still passed, despite not being initialized in the user's code. I checked the lesson's markdown file and found out that those two test cases did have their own initialized. I was thinking of adding to all the test cases instead. For reference, here's the code for one of the test cases that still passed, despite the bug.
Those tests initiate their own values so they are fine. I'm talking about the tests that fail if users modify their seed code to not have the object initialization. The new variable would go into a new --after-user-code-- part; that's not currently present. Just adding this new variable inside of the seed creates the exact same problem. Note - this issue isn't marked as ready for contributions yet. Maybe we should review if the tests logic too to see if they are independent
Opening this up for contribution.
Hi assign this issue for branch bugfix/. I have resolved it, need to create PR for same
We don't assign issues. The first PR that fully covers the issue will be accepted.
Hi ok !! I have raised PR . thanks for reply.


Question: <del> --- title: Inline Function --- # Inline Function ## Introduction Inline function is a special function defined in C++ and is expanded inline when it is called. Now, what does that exactly mean? Whenever a function is called it takes a lot of extra time for performing series of activities such as jumping to the function, saving registers, pushing arguments into stack and returning to the calling function. So it takes a lot of time. But an inline function is a function in which the compiler has been requested to perform inline expansion. Where the function requests the compiler to insert the complete body of the function in every place that the function is called, rather than generating code to call the function in the one place it is defined. However, we cannot guarantee that every function declared inline will be inline. Because when we declare a function as `inline`, it is a request, not a command. Compiler may ignore the request of inlining in the following situations:- 1) If the function contains loop e.g `for` loop, `while` loop, `do-while` loop etc. 2) If the function contains a `switch` or `goto` statement. 3) If the function doesn't return anything even if return type (other than `void` of course) is mentioned. 4) If the function contains a static variable. 5) If the function contains a recursive call. ``` c++ syntax :- --------- inline return_type function_name(argument_list){ // function body } ``` ## When to use Inline function * When the function performs small tasks and is called very often. * When performance is important. * Instead of a macro. ``` c++ #include<iostream> using namespace std; class MathOperation{ public: inline int add(int x, int y){ return(x+y); } inline float div(int n1, float n2){ return(n1/n2); } }; int main(){ MathOperation obj; cout << "Addition is :" << obj.add(34,12) << <"n"; cout << "Division is :" << obj.div(12,3.4) << "n"; return 0; } ``` ## Advantages of Inline function * It saves the overhead of return call from a function. * It increases locality of reference by utilizing instruction cache. * It speeds up your program by avoiding function call overheads. * It saves overhead of variables push/pop operations on the stack, when function calls happen. * It is possible to put a function definition in a header file, i.e. it can be included in multiple compilation unit, without the linker complaining. ## Disadvantages of inline function * When used in a header, it makes your header file larger with information which users don’t care. * It increases the executable size due to code expansion. * C++ inlining is resolved at compile time. Which means if you change the code of the inlined function, you would need to recompile all the code using it to make sure it will be updated. * As mentioned above it increases the executable size, which may cause thrashing in memory. More number of page fault, bringing down your program performance. </del>

<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. -- Describe your problem and how to reproduce it: I noticed that the /guide/english/cplusplus has 2 seperate sections on 'inline functions' with much in common inbetween them. Add a Link to the page with the problem: Tell us about your browser and operating system: Browser Name: Google Chrome Browser Version: Version 69.0.3497.100 (Official Build) (64-bit) Operating System: Ubuntu 18.04.1 LTS If possible, add a screenshot here (you can drag and drop, png, jpg, gif, etc. in this box): !


Question: console.log(element.textContent); // Output: This is some text content ``` <ins> You can use a ternary operator to conditionally set the text content value. Here is an example of assigning the result of a ternary operator to a variable: ```js const example = condition ? "I'm true" : "I'm false"; ``` </ins> Use a ternary operator to check if `currentTitle` evaluates to a truthy value. If it does, set `playingSong.textContent` to `currentTitle`. Otherwise, set it to an empty string. Then below that, use a `ternary` operator to check if `currentArtist` is truthy. If so, set `songArtist.textContent` to `currentArtist`. Otherwise, set it to empty string.

in Step 70 of the music player project (js beta) the step requests a ternary statement that is assigned to a variable. People on the forum have a fair amount of struggles with this which is expected given that this may be the first time they are putting these two things together (ternary and assignment). But, now that I've personally moved on to the spam filter project, I noted a curious thing. Step 5 of the spam filter project has a handy-dandy example of exactly the type of thing needed back in the music player project: Here is an example of assigning the result of a ternary operator to an element's text content: Example Code So this issue is a request to consider adding a similar example into step 70. A quick search for this step in the forum will show many examples of people struggling with this code's construction as further evidence of need. I realise that this may make the text too long for step 70 though. If the example is , please modify it to include the 'else' section too. And maybe explain what is el. (el is the element reference) Thanks for your help. N/A N/A No response N/A No response
I think we can simplify the example to something like: And say "here's an example of assigning the result of a ternary operator to a variable. now do this for the elements text contents."
I started working on this and I was wondering how the localization is handled for the challenge markdowns? do I change one of the markdowns and run a script to apply it all?
You only need to update the English markdown. The rest are handled through Crowdin and our automated syncs. However, this issue has not been marked as open for contribution yet.
yeah I realized the issue is marked as discussing still, what more is needed to move the issue forward?
No one else has chimed in, so I'll go ahead and open it for contribution. A PR which resolves this issue should apply my suggestion:


Question: }; ``` <del> When the `#search-input` element contains the value `Pikachu` and the `#search-button` element is clicked, the values in the `#pokemon-name`, `#pokemon-id`, `#weight`, `#height`, `#hp`, `#attack`, `#defense`, `#special-attack`, and `#special-defense` elements should be `PIKACHU`, `#25` or `25`, `Weight: 60` or `60`, `Height: 4` or `4`, `35`, `55`, `40`, `50`, `50`, and `90`, respectively. </del> <ins> When the `#search-input` element contains the value `Pikachu` and the `#search-button` element is clicked, the values in the `#pokemon-name`, `#pokemon-id`, `#weight`, `#height`, `#hp`, `#attack`, `#defense`, `#special-attack`, `#special-defense`, and `#speed` elements should be `PIKACHU`, `#25` or `25`, `Weight: 60` or `60`, `Height: 4` or `4`, `35`, `55`, `40`, `50`, `50`, and `90`, respectively. </ins> ```js async () => {

Example: When the #search-input element contains the value Pikachu and the #search-button element is clicked, the values in the #pokemon-name, #pokemon-id, #weight, #height, #hp, #attack, #defense, #special-attack, and #special-defense elements should be PIKACHU, or 25, Weight: 60 or 60, Height: 4 or 4, 35, 55, 40, 50, 50, and 90, respectively. here #speed is missing leading to unclear errors same holds true for the Gangar test case this could easily be fixed by changing the wording in: I excpected the test-case to include all elements that should've been return/changed 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


Question: console.log(Date.now()); // 1628586800000 ``` <del> To see the new result, click on the `"Add New Task"` button. Then add a title of `WALK DOG` and click on the `"Add Task"` button. Open up the console to see the result with a random number added. </del> <ins> To see the new result, click on the `"Add New Task"` button. Then add a title of `WALK DOG` and click on the `"Add Task"` button. Open up the console to see the result. </ins> # --hints--

Wording in the description suggests a random number will appear in the console. The number generated is not random. It is a result of the calculation of the number of millisecond elapsed since January 1, 1970 00:00:00 UTC Remove the following text: On a new line, the following text to appear: ! 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
Hi, Can you mention the files where this change should be made.
This could be simplified to say "Open up the console to see the result"
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 js (()); // ` Happy coding


Question: Вы можете помочь нам: <del> - [📝 В исследовании, написании и обновлении статей нашего руководства.](#research-write-and-update-our-guide-articles) </del> <ins> - [📝 В исследовании, написании и обновлении статей нашего руководства.](#изучение-написание-и-обновление-статей-нашего-руководства) </ins> <del> - [💻 В создании, обновлении и исправлении ошибок в наших задачах по программированию.](#create-update-and-fix-bugs-in-our-curriculum-challenges) </del> <ins> - [💻 В создании, обновлении и исправлении ошибок в наших задачах по программированию.](#создание-обновление-и-исправление-ошибок-в-наших-задачах-на-кодирование) </ins> <del> - [🌐 В переводе обучающих статей и задач по программированию.](#translate-guide-articles-and-curriculum-challenges) </del> <ins> - [🌐 В переводе обучающих статей и задач по программированию.](#перевод-статей-руководства-и-задач-на-кодирование) </ins> <del> - [🛠 В исправлении ошибок на обучающей платформе freeCodeCamp.org](#help-us-fix-bugs-in-freecodecamporgs-learning-platform) </del> <ins> - [🛠 В исправлении ошибок на обучающей платформе freeCodeCamp.org](#помогите-нам-исправить-ошибки-в-обучающей-платформе-freecodecamporg) </ins> ### Изучение, написание и обновление статей нашего руководства

Describe your problem and how to reproduce it: Anchor links such is not working properly in several languages. For sure is not working in: Russian, Spanish, Chinese languages. Add a Link to the page with the problem: Tell us about your browser and operating system: Browser Name: Chrome Browser Version: Version 74.0.3729.169 (Official Build) (64-bit) Operating System: Windows 10 Pro 1809 If possible, add a screenshot here (you can drag and drop, png, jpg, gif, etc. in this box): !
These 3/4 PRs (exlude one - which I PR'd to my own forked-repo) may close this issue. Please review them.