jiebi/CodeConvo huggingface dataset:
Change:
In the fill in the blank challenges, the size of the blanks are based on the number of characters in that blank. It's 11px per letter, plus an additional 11px buffer - This works pretty good, but sometimes you get a word with really wide letters and it doesn't fit: <img width="774" alt="Screenshot 2024-06-17 at 5 36 44 PM" src=""^ You can see is a little too wide to fit because it has wide letters. Other times, you have a bunch of narrow letters like with in the image. That fits, but there's more space on each side than needed. The challenge I noticed this on is still in beta, so you will have to run the repo with upcoming changes shown to see this specific one - but you can see it in any of the fill in the blank challenges. to http://localhost:8000/learn/a2-english-for-developers/learn-how-to-document-code-for-a-project/task-38 in the first blank that one of the letters gets cut off. The in firefox, the in Chrome. So browsers are handling it differently. in the third blank the extra space in the input before and after the word. See the image above The answers to fit in the blanks better. I think the solution I would prefer is to make a map of the letters and their spacing and make the size of the input based on what letters are in the answers. Or perhaps just a default size of the 11px or something, and a small group of narrow letters that get maybe 8, and small group wide letters that get maybe 13 or something. Or perhaps we could use a monospace font.
Not sure why, but this is what it looks like for me (Chrome, and in incognito/on Windows). ! Also, the text color doesn't seem to change to white in night mode.
I don't think monospace fonts are quite the answer; at least not itself. ! Sure it's fine for say the word "When" but for "descriptive", it's a little bigger than the blank.
I'm only using the font for the blanks, but the point remains the same.
I think using 14 maxlength will be be a better solution. before : ! after !
That's not a viable solution. That's hard-coding a value for this one specific input. They're dynamically generated we can't do that.
I think this is the way to go. Then we can reliably know the size of every character, space our inputs accordingly, and we get the feature of visual feedback when a word is too long for that blank.
This is because the spacing is configured for 11px wide characters. I'd be willing to bet that monospace font is bigger. :)

Discussion:
} .fill-in-the-blank-input { <ins> font-family: monospace; </ins> padding: 0; text-align: center; background-color: var(--primary-background);

)}`} onChange={this.handleInputChange} data-index={node.value} <del> style={{ width: `${ blankAnswers[node.value].length * 11 + 11 }px` }} </del> <ins> size={blankAnswers[node.value].length} </ins> aria-label={t('learn.blank')} /> );
Change:
There's typo in two hints. Instead of element it mentions . - - This is 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: Please make sure you read , we prioritize contributors following the instructions in our guides. Join us in or if you need help contributing, our moderators will guide you through this. Sometimes we may get more than one pull requests. We typically accept the most quality contribution followed by the one that is made first. Happy contributing.
I was making a PR for a different issue and saw this, so I the fix to the PR.

Discussion:
}; ``` <del> 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`. Make sure the `#type` element content is cleared between searches. </del> <ins> 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`. Make sure the `#types` element content is cleared between searches. </ins> ```js async () => {

}; ``` <del> 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. Make sure the `#type` element content is cleared between searches. </del> <ins> 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. Make sure the `#types` element content is cleared between searches. </ins> ```js async () => {
Change:
Under the section, add the following line as the first item:
This issue is open to first-time code contributors to this repository. The file that you should be updating is linked in the original post. We typically do not assign issues. Instead, we accept the most quality contribution followed by the one that is made first. Please make sure you read our as well as our , we prioritize contributors following the instructions in our guides. Join us in our or our if you need help contributing; our moderators will guide you through this. Happy contributing.

Discussion:
#### 2. [JavaScript Algorithms and Data Structures Certification](https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures-v8/) <ins> - [Learn Introductory JavaScript by Building a Pyramid Generator](https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures-v8/#learn-introductory-javascript-by-building-a-pyramid-generator) </ins> - [Learn Basic JavaScript by Building a Role Playing Game](https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures-v8/#learn-basic-javascript-by-building-a-role-playing-game) - [Learn Form Validation by Building a Calorie Counter](https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures-v8/#learn-form-validation-by-building-a-calorie-counter) - [Learn Basic String and Array Methods by Building a Music Player](https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures-v8/#learn-basic-string-and-array-methods-by-building-a-music-player)
Change:
In step 41 of the RPG project in the JS beta curriculum, the instruction states: Change the property of the to be "You enter the store.". I believe this sentence is not 100% clear without either removing the word “the” in front of or adding the word “variable” to the right of . As it is, the sentence misleads a bit because it says “the ” which makes it sound like it is referring to some text somewhere, instead of the text variable. so either: Change the property of to be "You enter the store.". or Change the property of the variable to be "You enter the store.". will be clearer. Please look at questions posted on the forum for examples of people missing the point of the request with the current wording. I personally prefer the second one. N/A N/A N/A Example of confused learner:

Discussion:
# --description-- <del> Now you need to modify your display text. Change the `innerText` property of the `text` to be `"You enter the store."`. </del> <ins> Now you need to modify your display text. Change the `innerText` property of the `text` variable to be `"You enter the store."`. </ins> # --hints--

button1.onclick = buyHealth; button2.onclick = buyWeapon; button3.onclick = goTown; } --fcc-editable-region--
Change:
Thanks for opening this issue. This looks 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: Please make sure you read , we prioritize contributors following the instructions in our guides. Join us in or if you need help contributing, our moderators will guide you through this. Sometimes we may get more than one pull requests. We typically accept the most quality contribution followed by the one that is made first. Happy contributing.

Discussion:
**User Stories:** 1. You should have an `input` element with an `id` of `"search-input"` <del> 1. You should have a `button` element with an `id` of `"search-button` </del> <ins> 1. You should have a `button` element with an `id` of `"search-button"` </ins> 1. You should have an element with an `id` of `"pokemon-name"` 1. You should have an element with an `id` of `"pokemon-id"` 1. You should have an element with an `id` of `"weight"`
Change:
In the last part of step 5 in the rock, paper, scissors review project, the instructions given say: If there is a winner, you will want to show the resetGameBtn button and hide the optionsContainer so the player can play again. Tips You can use the property to show the resetGameBtn button and hide the optionsContainer. I have 2 concerns here. 1- at no point is there any mention of what type of display the resetGameBtn requires (is it block, inline-block, flex...?) I guessed 'block' which worked but the lack of this detail made me hesitate. 2- the mention of '' is confusing. In the previous project, using style.display was discussed before in the rpg project () but it was never referred to or mentioned as '' before. I wasn't sure if 'el' meant the element in question or if there was an actual 'el' variable somewhere. I ended up going with what made sense (replacing the 'el' with the element reference) but I'm not sure how easy this would be for someone with only the last few js projects under their belt. A clarification would be great here. N/A N/A No response N/A No response
I fixed the wording of the challenge to make it more clear to the user.
This issue has not been triaged yet, in the future please do not create a PR until then. Anyway, I will open it up to contribution.
my bad sir, won't happen again.

Discussion:
**Tips** <del> - You can use the `el.style.display` property to show the `resetGameBtn` button and hide the `optionsContainer`. </del> <ins> Use the `style.display` property on an element, with the value `"block"` or `"none"`, to show or hide the element. </ins> # --hints--

} else { assert.equal(winnerMsgElement.innerText, "Computer has won the game!"); } ``` You should hide the `optionsContainer` and if the player or computer has reached three points.
Change:
Example Code Below the expenses list, create a while loop. Use True for the condition, and print the string 'nExpense Tracker' inside the loop body to show the title of the program. Highlighted portion should instead be changed to False, since while loops terminate when their condition is false.
As an alternative "A while loop is another kind of loop that runs a portion of code until a specified condition is <b</b:"
My suggestion for clarity "A while loop is another kind of loop that runs a portion of code a specified condition is ."
I would go with:

Discussion:
# --description-- <del> A `while` loop is another kind of loop that runs a portion of code until a specified condition is `True`: </del> <ins> A `while` loop is another kind of loop that runs a portion of code as long as a specified condition is `True`. The loop terminates when the condition becomes `False`: </ins> ```py while condition:
Change:
The form element is missing a closing tag, but the challenge still accept it and let me move onto the next step It should respond with "You are missing the closing tag", instead of accepting it and letting you move onto the next step ! 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] According to It should result in a valid form element, because the browser will close it. However, the element technically does not have any "Tag omission" so it should have an end tag in the HTML (even if it gets to the DOM by the browser).
This is no more the first project, it would become regex galore, and when possible instead we prefer to not use regex, so fixing all these tests is probably not worth it
We don't need to keep testing for closing tags everywhere. But this challenge is about building a form, so having one test to check the initial form element is created correctly doesn't seem unreasonable.
Agreed, this seems like a good reason to regex test a closing tag. Opening for contribution.

Discussion:
assert.equal(document.querySelector('form')?.action, 'https://register-demo.freecodecamp.org/'); ``` <ins> Your `form` element should have a closing tag `</form>`. ```js assert.match(code, /</form>/); ``` </ins> # --seed-- ## --seed-contents--
Change:
please clarify the instructions for step 39 of JS Beta Build a Music Player Currently they consist of 2 sentences: "Add an else block to handle the current song’s position in the playlist. Within the else block, set the currentTime property of the audio object to the value stored in userData?.songCurrentTime." The first sentence doesn't seem to relate to the second. It is not clear how 'the current song's position in the playlist" is affected by the actions requested of setting the audio object's currentTime? This makes me think that there's a mistake in the first sentence (or maybe I've misunderstood what it is trying to say so it needs more clarification) N/A N/A No response N/A No response
I don't think it has anything to do with the playlist order. The only thing is used for is pause/play (it gets reset everywhere else). Maybe it can just be:
My thoughts was that the else block was designed to continue playing the song at the place you stopped it. The current song has been chosen and it's same id of the song. In the block, we're setting the time to zero. In the else block, we're setting it at the old time.
FYI: I attempted to test pausing and restarting the song but it always restarted from the beginning.
In what step did you test it? If you go to the last step, the play/pause should work as intended (or to whatever step has it implemented). Pausing saves the audio element's current time to , and playing restores it back to the element's current time when is available.
I see, I thought I would be able to pause and play something else then come back to the original selection and it would start from where I stopped (but I don't think the code was created for that).
Nah. It only resumes and plays back for the current song. Once you switch songs, it forgets where you left off on the old one.
I would be fine adding something like "This allows you to resume the current song at the point where it was paused."
This looks like something that can be fixed by "first time" code contributors to this repository. Here is the file that you should be looking at to work on a fix: Change: To: Please make sure you read , we prioritize contributors following the instructions in our guides. Join us in our chat room or the forum if you need help contributing, our moderators will guide you through this. Sometimes we may get more than one pull-requests. We typically accept the most quality contribution followed by the one that is made first. Happy contributing.

Discussion:
# --description-- <del> Add an `else` block to handle the current song's position in the playlist. </del> <ins> Add an `else` block to handle the song's current playback time. This allows you to resume the current song at the point where it was paused. </ins> Within the `else` block, set the `currentTime` property of the `audio` object to the value stored in `userData?.songCurrentTime`.
Change:
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.

Discussion:
"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": [ {

"usesMultifileEditor": true, "hasEditableBoundaries": true, "dashedName": "learn-the-date-object-by-building-a-date-formatter", <del> "order": 7, </del> <ins> "order": 8, </ins> "superBlock": "javascript-algorithms-and-data-structures-v8", "challengeOrder": [ {
Change:
The is being hard-coded with an English string, we should change this to use a translation string instead. Additionally, the attribute is redundant as already has role implicitly. Replace the string with a translation string, something like (the string also needs to be to ) Remove

Discussion:
"last-page": "Go to last page", "primary-nav": "primary", "breadcrumb-nav": "breadcrumb", <ins> "timeline-pagination-nav": "Timeline Pagination", </ins> "submit": "Use Ctrl + Enter to submit.", "running-tests": "Running tests", "hide-preview": "Hide the preview",

</tbody> </table> <nav <del> aria-label="Timeline Pagination" role="navigation" </del> <ins> aria-label="aria.timeline-pagination-nav" </ins> > <ul aria-hidden="true"

const { t } = useTranslation(); return ( <del> <nav aria-label='Timeline Pagination' role='navigation'> </del> <ins> <nav aria-label={t('aria.timeline-pagination-nav')}> </ins> <ul aria-hidden='true' className='timeline-pagination_list'> {totalPages > 10 && ( <li
Change:
In step 6 of the Todo app (js beta) the following sentence needs a slight correction: The part where it says "an empty callback function for the second argument" is the issue. It needs to say "a callback function..." (minus the word empty). This is because the word empty implies this: but actually the very next instruction tells us to add some code in the function after-all. Note that step 7 has a very similar set of instructions but doesn't make the mistake of saying "an empty callback function" in its instructions. (please compare 6 to 7 for this slight difference in the wording) N/A N/A N/A N/A No response
Maybe instead:
This looks like something that can be fixed by "first time" code contributors to this repository. Here is the file that you should be looking at to work on a fix: Change: To: Please make sure you read , we prioritize contributors following the instructions in our guides. Join us in our chat room or the forum if you need help contributing, our moderators will guide you through this. Sometimes we may get more than one pull-requests. We typically accept the most quality contribution followed by the one that is made first. Happy contributing.
Hi, I can fix this issue
It is open to all first timers, you do not need to get permission.
Ok, thank for letting me know

Discussion:
element.classList.toggle("class-to-toggle"); ``` <del> Add an event listener to the `openTaskFormBtn` element and pass in a `click` event for the first argument and an empty callback function for the second argument. </del> <ins> Add an event listener to the `openTaskFormBtn` element and pass in a `"click"` event for the first argument and an anonymous callback function for the second argument. </ins> <del> For the callback function, use the `classList.toggle()` method to toggle the `hidden` class on the `taskForm` element. </del> <ins> Inside the callback function, use the `classList.toggle()` method to toggle the `"hidden"` class on the `taskForm` element. </ins> Now you can `click` on the "Add new Task" button and see the form modal.
Change:
Error thrown: The issue seems to be with the dependencies and/or NumPy. Not really sure if it is a peer dependency or if PIL is part of the docker image. Forum post for context The Gitpod boilerplate not to throw errors. No response Device: [e.g. iPhone 6, Laptop] OS: [e.g. iOS 14, Windows 10, Ubuntu 20.04] Browser: [e.g. Chrome, Safari] Version: [e.g. 22] No response
I updgraded with : It installed version. After that was giving errors, and after upgrading it: To the version project appears to work fine. might need updating to these versions.

Discussion:
extends ../layout block content <del> .jumbotron .col-sm-8.col-sm-offset-2 form(method='POST') </del> <ins> .col-sm-8.col-sm-offset-2.jumbotron form(method='POST', action="/forgot") </ins> h1 Forgot Password input(type='hidden', name='_csrf', value=_csrf) .form-group

button.btn.btn-primary(type='submit') i.fa.fa-key | Reset Password
Change:
Step 77 of the decimal to binary converter project (js beta) says this: Now your showAnimation() function is set up. But if you look closely at your checkUserInput() function, you'll notice that it's not very DRY – you're calling parseInt() to convert into a number several times. I don't think the DRY acronym was introduced before and so this would be a confusing sentence to parse. If the acronym is required, then a definition should be presented. N/A N/A No response N/A No response
Even if we do give a definition, the principle is introduced pretty haphazardly. It's perfectly fine that we make the camper aware that some code is being repeated that should be consolidated. But I don't think we need to introduce the DRY principle. The DRY principle has both pros and cons. Mentioning it as an absolute, without any depth to the subject, is questionable. This is especially true for learners/beginners, which tend to create premature abstractions and over-abstractions the minute they hear about the DRY principle.
I personally think the lesson works without any reference to DRY
My initial reaction is also to just remove it. Maybe something like:
would it also be possible to say something about why it is desirable to not call parseInt several times? Is it a good time to mention for eg that this is waste of processing power or can introduce errors in the code or something like that which would be relevant to know?
Sure, building on lasjorg's suggestion:

Discussion:
# --description-- <del> Now your `showAnimation()` function is set up. But if you look closely at your `checkUserInput()` function, you'll notice that it's not very DRY – you're calling `parseInt()` to convert `numberInput.value` into a number several times. </del> <ins> Now your `showAnimation()` function is set up. But if you look at your `checkUserInput()` function, you'll notice that it is calling `parseInt()` to convert `numberInput.value` into a number several times. </ins> <del> A simple way to fix this is to create a new variable to store the converted number. Then you only have to convert the number once and can use it throughout the function. </del> <ins> This is generally a poor practice, for reasons like performance concerns or even just the fact that you'd have to change your logic in multiple places to update the `parseInt()` call. To fix this, create a new variable to store the converted number. Then you only have to convert the number once and can use it throughout the function. </ins> Create a new variable called `inputInt` and assign it the number converted from `numberInput.value`.